Tải bản đầy đủ (.pdf) (75 trang)

Accès aux contenus du système iclass grâce à un adaptateur utilisant la SQI

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.06 MB, 75 trang )

INSTITUT DE LA FRANCOPHONIE POUR L’INFORMATIQUE
——————–//——————–


emoire de fin d’´
etudes

Acc`es aux contenus du syst`eme iClass grˆace
`a un Adaptateur utilisant la ✭✭ SQI ✮✮

NGUYEN DUY CU

Ann´
ee acad´
emique 2003-2005
Promotion 9

Responsable de stage :

Bruxelles, Belgique - 2005

David MASSART



esum´
e
De nos jours, la Technologie de l’Information et de la Communication prend part
efficacement `a la formation. Plusieurs syst`emes d’apprentissage sont d´evelopp´es afin
de fournir aux ´el`eves la possibilit´e d’acc´eder `a des cours facilement. Cependant, en
Europe, des statistiques montrent que l’on a besoin d’augmenter l’efficacit´e et l’effet


d’apprentissage et d’enseignement. C’est particuli`erement ´evident quand on analyse
plusieurs indications de la performance de l’´ecole, le taux d’abandon par exemple.
Le projet “Intelligent distributed Cognitive-based LeArning System for School”
(iClass), financ´e par la commission europ´eenne, vise `a d´evelopper un syst`eme d’apprentissage avanc´e. Il a pour but de r´esoudre le probl`eme pos´e et de pr´eparer un
environnement pour les g´en´erations prochaines, o`
u les comp´etences acquises doivent
ˆetre mises `a jour en permanence pour r´eagir a` l’´evolution de la soci´et´e.
L’Adaptateur est un composant du syst`eme iClass. Il permet l’interop´erabilit´e entre
le syst`eme iClass et d’autres syst`emes d’apprentissage. Ce m´emoire de fin d’´etudes
pr´esente le d´eveloppement de cet Adaptateur. Il aborde des ´etudes pr´ealables concernant l’Adaptateur, des technologies utilis´ees, des propositions de la gestion num´erique
des droits d’auteur, et la mise en application de l’Adaptateur.

ii


Abstract
Nowadays, the Communication and Information Technology takes part to the formation effectively. Many systems of training are developed in order to provide to the pupil
the possibility of reaching courses easily. However, in Europe, some statistics show that
one needs to increase the effectiveness and the effect of the training and teaching. It is
particularly obvious when one analyzes several indications of the performance of the
school, the rate of abandonment for example.
The “Intelligent distributed Cognitive-based LeArning System for School” (iClass)
project, financed by the European Commission, aims at developing an advanced learning system. The purpose of the project is to solve the problem and to prepare an
environment for the next generations, where acquired competences must be updated
permanently reflecting the evolution of the society.
The Adapter is a component of the iClass system. It allows the interoperability
between the iClass system and another learning systems. This thesis presents the development of the Adapter. It shows preliminary studies concerning the Adapter, the
technologies used, the proposals of the Digital Rights Management, and the implementation of the Adapter.

iii



Remerciements
Je tiens avant tout a` remercier David Massart, mon responsable de stage et “Senior
Software Architect” a` European Schoolnet. Sans lui, mon stage n’existerait pas. Ses
conseils pertinents et son ouverture d’esprit m’ont permit d’achever ce travail.
Je tiens `a remercier Ulf W Lundin, le Directeur d’European Schoolnet, qui m’a
accord´e une bourse de stage, et m’a ´egalement encourag´e pendant mon s´ejour de 6
mois a` European Schoolnet.
Le travail est r´ealis´e dans le cadre du projet iClass, un projet des collaborations de
plusieurs soci´et´es informatiques, p.ex., Siemens, Sun Microsystems, Microsoft, Intel,
Infogate. Je voudrais remercier mes coll`egues, particuli`erement Jean-Noel Colin, Igor
Blyuss, Oven Colan, Ilhami Gorgun, Eric Meyvis, Ali Turkey. Non seulement ils m’ont
collabor´e pour l’objectif du projet, mais ils m’ont apport´e ´egalement la chance de
perfectionner mon anglais et mon fran¸cais.
Je voudrais remercier mes amis a` European Schoolnet (Quentin Tr´em´erie, Chhuoy
Bun Chheang, Brigitte Parry, Mourad Etbaz, Sylvia Hartinger, Yong Chui Hsia, Sophie
Vandeputte). Pendant mon stage, j’ai re¸cu leurs aides et leurs encouragements.
Je voudrais ´egalement remercier mes parents, ma copine, mes soeurs, mon fr`ere qui
m’ont encourag´e quand j’´etais loin de la maison.
Merci `a tout !

iv


Acronymes

SAC

Service d’Acc`es aux Contenus


CGP

Conducteur-G´en´erateur-Pr´esentateur

EUN

European Schoolnet

IST

Information Society Technologies

SQI

Simple Query Interface

XML

Extensible Mark-up Language

WSDL

Web Services Definition Language

SOAP

Simple Object Access Protocol

UDDI


Universal Description, Discovery and Integration

CORBA

Common Object Request Broker Architecture

ODRL

Open Digital Rights Language

SAML

Security Assertion Markup Language

SCORM

Sharable Courseware Object Reference Model

JAX-RPC

Java API for XML-based Remote Procedure Call

JAXB

Java Architecture for XML Binding

JWSDP

Java Web Services Developer Pack


UML

Unified Modeling Language

API

Application Programming Interface

LCMS

Learning Content Management System

LMS

Learning Management System

LO

Learning Object

LOM

Learning Object Model

v


Table des mati`
eres



esum´
e

ii

Remerciements

iv

Acronymes

v

1 Introduction

1

1.1

Introduction g´en´erale . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1

1.2

Probl´ematique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2


1.3

Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2

1.4

Structure du rapport . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

2 Travaux concern´
es
2.1

2.2

2.3

4

Adaptateur dans le contexte de projet iClass . . . . . . . . . . . . . . .

4

2.1.1

Introduction du projet iClass . . . . . . . . . . . . . . . . . . .


4

2.1.2

Adaptateur dans le contexte de projet iClass . . . . . . . . . . .

7

Travaux ant´erieurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9

2.2.1

Interface SQI . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9

2.2.2

Langage de d´efinition de services Web WSDL . . . . . . . . . .

11

2.2.3

Sp´ecification de SQI avec WSDL . . . . . . . . . . . . . . . . .

17


Sommaire du chapitre . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

3 M´
ethodes et Solutions

23

vi


`
TABLE DES MATIERES

vii

3.1

Sc´enarios d’acc`es aux contenus . . . . . . . . . . . . . . . . . . . . . . .

23

3.2

M´ecanisme de gestion num´erique des droits et d’authentification . . . .

26


3.2.1

Expression de l’accord . . . . . . . . . . . . . . . . . . . . . . .

27

3.2.2

Protocole de n´egociation et v´erification des droits et d’authentification

3.3

3.4

3.5

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

28

Formats des donn´ees . . . . . . . . . . . . . . . . . . . . . . . . . . . .

31

3.3.1

Requˆete des m´etadonn´ees . . . . . . . . . . . . . . . . . . . . .

31


3.3.2

Format des r´esultats . . . . . . . . . . . . . . . . . . . . . . . .

32

3.3.3

Requˆete de l’accord . . . . . . . . . . . . . . . . . . . . . . . . .

34

Mise en application de l’Adaptateur . . . . . . . . . . . . . . . . . . . .

35

3.4.1

Environnement de d´eveloppement et de d´eploiement . . . . . . .

35

3.4.2

Conception et impl´ementation de l’Adaptateur . . . . . . . . . .

36

3.4.3


Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

38

Sommaire du chapitre . . . . . . . . . . . . . . . . . . . . . . . . . . .

38

4 Evaluation et Conclusion

39

4.1

R´esultats du travail et Evaluation . . . . . . . . . . . . . . . . . . . . .

39

4.2

Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

40

A Connaissances techniques de base

42

A.1 Java Architecture for XML Binding . . . . . . . . . . . . . . . . . . . .


42

A.2 Java API for XML-based RPC (JAX-RPC)

43

. . . . . . . . . . . . . . .

B Interfaces graphique de l’Adaptateur

44

B.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

44

B.2 Interfaces de configuration . . . . . . . . . . . . . . . . . . . . . . . . .

46

B.3 Interfaces d’administration . . . . . . . . . . . . . . . . . . . . . . . . .

47

C Conception de l’Adaptateur
C.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

49
49



`
TABLE DES MATIERES
C.2 Conception d´etaill´ee . . . . . . . . . . . . . . . . . . . . . . . . . . . .
D Outil de Test

viii
50
55

D.1 Fonctionnalit´es de l’outil . . . . . . . . . . . . . . . . . . . . . . . . . .

55

D.2 Cas de test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

56


Table des figures
2.1

Environnement de collaboration du syst`eme iClass . . . . . . . . . . . .

5

2.2

Architecture du syst`eme iClass


. . . . . . . . . . . . . . . . . . . . . .

6

2.3

Diagramme des composants qui interagissent avec l’Adaptateur . . . .

8

2.4

Diagramme de classe de la “Simple Query Interface” . . . . . . . . . .

10

2.5

Sp´ecification graphique de l’exemple de WSDL . . . . . . . . . . . . . .

17

2.6

Sp´ecification de SQI avec WSDL . . . . . . . . . . . . . . . . . . . . .

18

3.1


Diagramme d’activit´e pour obtenir un objet d’apprentissage. . . . . . .

24

3.2

Recherche des m´etadonn´ees et r´esolution le location d’un objet d’apprentissage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25

3.3

Un exemple d’expression des droits. . . . . . . . . . . . . . . . . . . . .

27

3.4

Exemple de jeton de s´ecurit´e SAML . . . . . . . . . . . . . . . . . . . .

29

3.5

Format de l’accord . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

30

3.6


Protocole de gestion num´erique des droits et d’authentification . . . . .

30

B.1 Page de maison de l’Adaptateur . . . . . . . . . . . . . . . . . . . . . .

45

B.2 Configuration param`etres de SAC . . . . . . . . . . . . . . . . . . . . .

46

B.3 Configuration des param`etres du Conducteur et du Service de S´ecurit´e

47

B.4 Interface d’administration de l’Adaptateur . . . . . . . . . . . . . . . .

48

C.1 Diagramme des paquetages . . . . . . . . . . . . . . . . . . . . . . . . .

51

D.1 Cr´eation de session . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

56

ix



TABLE DES FIGURES

x

D.2 Recherche des m´etadonn´ees . . . . . . . . . . . . . . . . . . . . . . . .

57

D.3 R´esultats des m´etadonn´ees . . . . . . . . . . . . . . . . . . . . . . . . .

58

D.4 R´ecup´eration de jeton de s´ecurit´e . . . . . . . . . . . . . . . . . . . . .

59

D.5 Jeton de s´ecurit´e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

60


Liste des tableaux
2.1

Sp´ecification de SQI avec WSDL - Gestion de session . . . . . . . . . .

18

2.2


Sp´ecification de SQI avec WSDL - M´ethodes de la destination . . . . .

20

3.1

Environnement de d´eveloppement et de d´eploiement de l’Adaptateur .

36

3.2

Liste des fonctionnalit´es de l’Adaptateur . . . . . . . . . . . . . . . . .

37

C.1 Liste des classes du paquetage “adapter” . . . . . . . . . . . . . . . . .

52

C.2 Liste des classes du paquetage “sessionmanagement” . . . . . . . . . .

53

C.3 Liste des classes du paquetage “sqi” . . . . . . . . . . . . . . . . . . . .

53

C.4 Liste des classes du paquetage “timeoutmanagement” . . . . . . . . . .


53

C.5 Liste des classes du paquetage “tokenmanagement” . . . . . . . . . . .

54

C.6 Liste des classes du paquetage “translation” . . . . . . . . . . . . . . .

54

C.7 Liste des classes du paquetage “utils” . . . . . . . . . . . . . . . . . . .

54

xi


Chapitre 1
Introduction
1.1

Introduction g´
en´
erale

Dans le programme de la formation a` l’Institut de la Francophonie pour l’Informatique,
l’´etudiant a l’occasion d’effectuer un stage de fin d’´etudes. Il s’agit d’un stage dans
un environnement informatique francophone de type d´eveloppement ou recherche qui
a pour but de pr´eparer l’´etudiant a` la vie professionnelle, soit comme ing´enieur, soit

comme chercheur.
Mon stage s’est d´eroul´e `a European Schoolnet (EUN)1 , 61 rue de Tr`eves, 1040
Bruxelles, Belgique. C’est une organisation de plus de 26 minist`eres de l’´education
en Europe. Son objectif est de d´evelopper des plates-formes d’apprentissage pour les
lyc´ees, les enseignants et les apprenants en Europe. Mon stage concerne a` un grand
projet dans le domaine e-learning dont l’European Schoolnet est un partenaire. J’ai
achev´e bien mon travail sous la direction du Dr. David Massart2
J’´etais motiv´e par ce th`eme de stage car j’ai des exp´eriences et connaissances
dans le domaine e-learning comme j’ai fait des recherches sur les m´ethodologies et les
normes employ´ees pour la formation a` distance lors de la r´ealisation de mon TIPE
(Travail d’Int´erˆet Personnel Encadr´e) a` l’IFI. En plus, je m’int´eresse vivement aux
questions d’interop´erabilit´e entre syst`emes d’apprentissage et `a la construction des
normes. D’ailleurs, je voulais participer a` un projet international a` l’´etranger pour
profiter de l’environnement de travail et perfectionner mes comp´etences linguistiques.
1

Pour vous informer vite, visitez le site Web :

2

Dr. David Massart travaille en tant que “Senior Software Architect” a` l’EUN. Son travail concerne
a l’architecture, l’interop´erabilit´e et aux standards pour les applications d’e-learning r´eparties
`

1


CHAPITRE 1. INTRODUCTION

1.2


2

Probl´
ematique

Dans la plupart des pays europ´eens, le syst`eme d’´education, particuli`erement au niveau secondaire, a d´ej`a satisfait l’objectif consistant a` donner acc`es `a tous les enfants
`a l’´education de base et secondaire. Cependant, des statistiques montrent que l’on a
besoin d’augmenter l’efficacit´e et l’effet d’apprentissage et d’enseignement. C’est particuli`erement ´evident quand on analyse plusieurs indications de la performance de
l’´ecole, le taux d’abandon par exemple. D’ailleurs, on a besoin d’avoir un environnement pour les g´en´erations prochaines, o`
u les comp´etences acquises doivent ˆetre mises
`a jour en permanence, en r´eagissant a` l’´evolution de la soci´et´e.
Traditionnellement, l’utilisation de la TIC (Technologie de l’Information et de la
Communication) pour l’apprentissage se concentre sur l’approche “s’entraˆıner et pratiquer” (c.-`a-d., l’apprenant s’entraˆıne puis pratique sur un th`eme donn´e). On n’arrive
pas a` int´egrer la TIC dans l’enseignement/apprentissage en prenant en compte le profil de chaque ´etudiant et sa capacit´e `a d´efinir enfin un mod`ele d’apprentissage qui lui
convient.
Le projet “Intelligent distributed Cognitive-based LeArning System for School
(iClass)” , financ´e par la commission europ´eenne, a pour but de contribuer a` la
r´ealisation d’un d´ecalage :“rendre la Technologie de l’Information et de la Communication davantage qu’un outil simple”. Le projet vise a` d´evelopper un syst`eme d’apprentissage a` base d’ontologies pour s´equencer les connaissances et les adapter au niveau
de compr´ehension de l’´el`eve et au style d’apprentissage qui lui convient le mieux en
cr´eant dynamiquement des objets d’apprentissage.
Un syst`eme iClass sert non seulement ses utilisateurs, il doit pouvoir interop´erer
avec des syst`emes d’apprentissage existants, par exemple les syst`emes qui sont membres
de la f´ed´eration Celebrate [20, 17] ; permettre a` ces syst`emes d’acc´eder `a ses ressources
d’apprentissage enrichissant par des riches m´edias. Le composant “iClass Adapter”
(dans notre contexte, nous l’appelons d´esormais Adaptateur) vise a` r´epondre `a ce
probl`eme.

1.3


Objectifs

L’objectif de ce m´emoire consiste a` ´elaborer des sc´enarios d’acc`es aux contenus d’iClass,
`a d´efinir des formats des donn´ees (pour les requˆetes et les r´esultats utilis´es), et `a


CHAPITRE 1. INTRODUCTION

3

proposer un m´ecanisme de gestion num´erique des droits3 et d’authentification. Enfin,
tous ces aspects seront joints ensemble dans la mise en application de l’Adaptateur.

1.4

Structure du rapport

La suite du rapport est structur´ee comme suit : Chapitre 2 aborde l’introduction
du projet iClass, l’architecture de l’Adaptateur et les besoins concernant l’Adaptateur. Il pr´esente ´egalement l’interface SQI et la technique de base utilis´es dans le
d´eveloppement de l’Adapter ; Chapitre 3, M´ethodes et Solutions, parle de solutions
pour les sc´enarios d’acc`es aux contenus ainsi que la gestion num´erique des droits et
l’authentification, et ´egalement de la mise en application de l’Adaptateur ; Finalement,
Chapitre 4 donne l’´evaluation des r´esultats obtenus et la conclusion du rapport.

3

Mots d’origine en anglais : Digital Rights Management


Chapitre 2

Travaux concern´
es
Ce chapitre introduit le projet iClass et son architecture. Puis, il aborde l’Adaptateur,
c’est l’objectif du stage, et autres composants qui interagissent avec l’Adaptateur dans
le contexte du projet iClass. Finalement, il pr´esente des travaux ant´erieurs, il s’agit
de l’interface SQI dont l’Adaptateur a besoin pour communiquer avec d’autres composants, et du langage de d´efinition des services Web (WSDL) qui est utilis´e pour
sp´ecifier l’interface SQI dans la mise en application de l’Adaptateur.

2.1
2.1.1

Adaptateur dans le contexte de projet iClass
Introduction du projet iClass

iClass est un projet de 54 mois (depuis janvier 2004), 11 millions d’euros provenant du programme IST (Information Society Technologies) de la commission europ´eenne et 22 partenaires dans 11 pays (minist`eres, universit´es, ´editeurs de contenu
et fournisseurs des technologies, p.ex., Microsoft, Sun Microsystems, Intel, Infogate
etc.)(o). Le projet vise a` d´evelopper un syst`eme d’apprentissage a` base d’ontologies pour s´equencer les connaissances et les adapter au niveau de
compr´ehension de l’´el`eve et au style d’apprentissage qui lui convient le mieux en cr´eant
dynamiquement des objets d’apprentissage. La Figure 2.1 illustre l’environnement de
collaboration du syst`eme iClass, y compris les apprenants, les enseignants, les parents
des apprenants, les minist`eres d’´education, les fournisseurs de contenu, etc. et leurs
collaborations orient´ees-apprenant.
Le projet iClass prend en compte non seulement l’apprenant et l’enseignant,ce
4


´
CHAPITRE 2. TRAVAUX CONCERNES

5


Fig. 2.1 – Environnement de collaboration du syst`eme iClass
sont les personnes qui font part directement dans un syst`eme d’apprentissage. Il fournit
´egalement des possibilit´es qui permettent aux parents, et aux minist`eres de l’´education
de suivre les ´el`eves et d’analyser les r´esultats de l’enseignement en temps r´eel (voyez
la Figure 2.1).
L’objectif du projet cherche d’une part a` formuler une nouvelle approche p´edagogique
qui exploite la capacit´e de la TIC de permettre une approche flexible et bas´ee sur apprenant, en prenant en compte les styles d’apprentissage, les comp´etences personnelles
et le comportement d’´etude de l’apprenant. D’autre part, on va d´evelopper des outils
TIC permettant cette nouvelle approche de l’enseignement et la mettant en valeur.
Ceci sera r´ealis´e en cr´eant :
– un syst`eme d’apprentissage avanc´e, fond´e sur une architecture a` base d’ontologies ;
– un environnement distribu´e et de collaboration avec les participants principaux
du processus de la formation (p.ex., les parents, les professeurs, les apprenants,
les minist`eres) ;
– une architecture ouverte et capable de garantir un degr´e ad´equat d’interop´erabilit´e
avec les syst`emes et les outils d’apprentissage existants et de favoriser l’´evolution
des normes existantes concernant des objets d’apprentissage.


´
CHAPITRE 2. TRAVAUX CONCERNES

6

Fig. 2.2 – Architecture du syst`eme iClass
Ce syst`eme doit prendre en compte la gestion de distribution de contenus et des
droits d’acc`es aux objets d’apprentissage adaptatifs. Ceci permet de prot´eger les droits
d’auteur des fournisseurs des contenus. Cette question est discut´ee en d´etail a` la section 3.2.2.
Afin d’atteindre l’objectif du projet, une architecture distribu´ee et ouverte est

exig´ee. La Figure 2.2 pr´esente une telle architecture : l’architecture du syst`eme iClass.
Elle se compose des ´el´ements suivants (illustr´es `a la Figure 2.2). Notons le grand
nombre de composants, donc vous pouvez passer rapidement les descriptions qui
suivent.
– Architecture de r´eseaux. C’est l’infrastructure TCP/IP et le protocole HTTP.
– Service de base de donn´ees contenant les bases de donn´ees de profils des apprenants, de donn´ees (r´esultats) interm´ediaires de d´emarche d’un apprenant durant
ses ´etudes (qui sert `a g´en´erer un chemin d’apprentissage qui lui convient le mieux)
etc.
– Service de messagerie (SOAP, XML-RPC). Il fournit une plate-forme de messagerie pour ´echanger les messages de SOAP/HTTP
– R´eseau pair-`a-pair des d´epˆots des objets d’apprentissage. C’est un r´eseau pair-


´
CHAPITRE 2. TRAVAUX CONCERNES

7

`a-pair des noeuds (chaque noeud correspond a` un d´epˆot des objets d’apprentissage), il a pour but d’´equilibrer la charge des demandes et ´egalement d’augmenter
la capacit´e de stockage.
– Service d’Acc`es aux Contenus. C’est un service qui nous permet de g´erer(d’ajouter,
de mettre a` jour, de supprimer) les m´etadonn´ees des objets d’apprentissage et
de chercher des m´etadonn´ees.
– Service de distribution des contenus. Son rˆole consiste a` localiser et distribuer
des objets d’apprentissage.
– Service de S´ecurit´e et de gestion num´erique des droits.
– Composant de gestion de profil des utilisateurs.
– S´electeur. Grˆace aux r´esultats obtenus par un apprenant, ce composant communique avec le G´en´erateur de LO (Learning Object) pour cr´eer dynamiquement
des contenus adapt´es `a l’apprenant.
– Conducteur. Ce composant contrˆole tous les acc`es au syst`eme iClass, y compris
le suivi des apprenants.

– G´en´erateur de LO. Ce composant coop`ere avec le service de distribution des
contenus et le S´electeur pour g´en´erer de fa¸con dynamique des objets d’apprentissage.
– Service de Portail. Un syst`eme Web qui fournit des interfaces pour les utilisateurs, y compris un Pr´esentateur qui a pour but de consommer un objet d’apprentissage.
– Interfaces client. Ce sont des interfaces graphiques sur les navigateurs des utilisateurs, sp´ecifi´ees pour chaque groupe d’utilisateurs.
– Autres syst`emes (syst`emes de 3`eme partie) ou syst`emes existants qui voudraient
acc´eder aux contenus de riches m´edias du syst`eme iClass.
– Adaptateur. C’est le pont liant le syst`eme iClass aux autres syst`emes qui existent
d´ej`a. La conception de l’Adaptateur est le but de ce rapport.

2.1.2

Adaptateur dans le contexte de projet iClass

L’Adaptateur est un composant du syst`eme iClass [8]. Il permet aux utilisateurs des
syst`emes existants1 , comme les syst`emes de num´eriques de travail e et les syst`emes de
gestion de contenu d’apprentissage qui sont membres de la f´ed´eration Celebrate [20, 17],
de rechercher et d’utiliser les contenus du syst`eme iClass.
1

Dans le contexte de projet iClass, “syst`eme existant” se rapporte `a n’importe quel syst`eme noniClass qui existe d´ej`a


´
CHAPITRE 2. TRAVAUX CONCERNES

8

Fig. 2.3 – Diagramme des composants qui interagissent avec l’Adaptateur
Les composants du syst`eme iClass interagissant avec l’Adaptateur sont indiqu´es
sur la Figure 2.3. Pour ex´ecuter une recherche des m´etadonn´ees, le syst`eme existant

communique avec l’Adaptateur via la “Simple Query Interface” (pr´esent´e dans la section 2.2.1). Pour mette en jeu un objet d’apprentissage a` distance, Il connecte au
Conducteur-G´en´erateur-Pr´esentateur. Afin de servir des requˆetes du syst`eme existant,
l’Adaptateur interagit avec deux ´el´ements du syst`eme iClass : le Service d’Acc`es aux
Contenus (SAC) et le Service de S´ecurit´e. Le Conducteur-G´en´erateur-Pr´esentateur
communique avec l’Adaptateur et le SAC en employant leurs interfaces respectives
pour ´echanger des jetons de s´ecurit´e (sous-section 3.2.1).
Le SAC est le point d’entr´ee d’un r´eseau pair-`a-pair de d´epˆots d’objets d’apprentissage [2]. Il propage chaque requˆete re¸cue de noeud `a noeud. Chaque noeud traite la
requˆete et renvoie les r´esultats au SAC qui va les exp´edier de fa¸con asynchrone a` la
source de la requˆete, l’Adaptateur.
Le Conducteur-G´en´erateur-Pr´esentateur repr´esente le Conducteur, le G´en´erateur
et le Pr´esentateur du syst`eme iClass. Le Pr´esentateur est une interface Web dont les
objets peuvent ˆetre consomm´es. Le G´en´erateur est un service qui cr´ee dynamiquement
des objets d’apprentissage depuis des d´epˆots d’objets d’apprentissage pour un cas
d’´etude sp´ecifique. Le Conducteur a pour but de contrˆoler tous les acc`es au syst`eme
iClass. Ces trois composants sont group´es pour simplifier notre mod`ele. Ils r´esolvent
la demande de jouer un objet d’apprentissage du syst`eme existant.
Le Service de S´ecurit´e et de gestion num´erique des droits est un service Web qui
produit des jetons de s´ecurit´e (utilis´es pour authentifier les syst`emes externes) pour les
syst`emes existants lors qu’ils acc`edent au syst`eme iClass. Ce service fournit ´egalement
des accords d’utilisation des objets d’apprentissage


´
CHAPITRE 2. TRAVAUX CONCERNES

9

L’Adaptateur a pour but de fournir aux syst`emes d’apprentissage existants des
acc`es au syst`eme iClass . La mise en oeuvre de l’Adaptateur consiste en quatre modules
suivants :

– Gestion des connections (gestions des sessions de communication) avec les syst`emes
existants ;
– Gestion des jetons de s´ecurit´e ;
– Partie principale : recherche des m´etadonn´ees, adaptation des r´esultats et lancement de l’objet d’apprentissage ;
– Configuration et administration de l’Adaptateur.

2.2

Travaux ant´
erieurs

Pour que les composants du syst`eme iClass et y compris l’Adaptateur soient interop´erables, une interface commune est n´ecessaire. Parmi les interfaces d’interrogation
existantes 2 , l’interface SQI (Simple Query Interface) est une bonne candidate grˆace
`a sa simplicit´e et sa capacit´e `a fonctionner en mode asynchrone (partie 2.2.1) dont
le syst`eme ayant de r´eseau pair-`a-pair des d´epˆots comme iClass a besoin. Cet section
pr´esente l’interface SQI, un aper¸cu des services Web et le langage de sp´ecification
WSDL qui est utilis´e pour d´efinir SQI de fa¸con partageable. Finalement, elle aborde
la sp´ecification de SQI avec WSDL. Ce sont des ´el´ements importants dans la mise en
oeuvre de l’Adaptateur.

2.2.1

Interface SQI

L’interface SQI (Simple Query Inteface)[16] est une interface de programmation (API)
qui sert a` interroger les m´etadonn´ees des objets d’apprentissage contenus dans des
d´epˆots des objets d’apprentissage h´et´erog`enes. Ses caract´eristiques principales sont :
– simplicit´e et facilit´e d’impl´ementation
– neutralit´e en terme de langage d’interrogation et de format des r´esultats, et
– capacit´e `a fonctionner en mode synchrone et asynchrone

Etant donn´e deux d´epˆots qui partagent au moins un langage d’interrogation et
un format des m´etadonn´ees commun, les phases suivantes sont n´ecessaires pour qu’un
2

p.ex., la “IMS Digital Repository Interoperability (DRI) Specification” [4], la “Simple Query

Interface” [16], la “Zing Search/Retrieve Web Service” (SRW) [22], ou la “Open Knowledge Initiative
(OKI) Open Service Definition Interface (OSID)” [13].


´
CHAPITRE 2. TRAVAUX CONCERNES

10

d´epˆot (nomm´e “source de la requˆete”) puisse interroger un autre d´epˆot (nomm´e “destination de la requˆete”) en utilisant SQI :
– la source s´electionne un langage d’interrogation support´e par la destination(p.ex.,
XQUERY). Nous pouvons oublier cette phase si le langage d’interrogation est
d´ej`a propos´e par la destination,
– la source s´electionne un format de r´esultat disponible du cot´e de la destination(p.ex., le ”IEEE Learning Object Metadata”. Cette phase peut ˆetre ´egalement
omise si le format est propos´e par la destination,
– la source envoie une requˆete dans le langage s´electionn´e,
– en fonction du mode de requˆete s´electionn´e, la destination fourni des r´esultats
dans le format s´electionn´e soit comme valeur retourn´ee (mode synchrone), soit
par un appel a` un m´ethode (results listener) impl´ement´ee par la source (mode
asynchrone). Ce dernier mode est plus robuste. Il permet a` SQI d’ˆetre utilis´ee
comme interface des recherches f´ed´er´ees sans qu’il ne soit pas n´ecessaire d’attendre les derniers r´esultats avant de retourner les premiers r´esultats.

Fig. 2.4 – Diagramme de classe de la “Simple Query Interface”
Le diagramme de classe 2.4 d´ecrit les m´ethodes de SQI. Il y a treize m´ethodes regroup´ees en quatre cat´egories : gestion des sessions, gestion des param`etres de requˆete,

requˆete en mode synchrone, requˆete en mode asynchrone.
Actuellement, les m´ethodes de gestion des sessions ne font pas partie de la sp´ecification
de SQI et peuvent ˆetre remplac´ees par tout autre m´ecanisme de gestion des sessions qui
serait consid´er´e plus appropri´e. Les m´ethodes courantes permettent d’ouvrir une session anonyme (createAnonymousSession) ou authentifi´ee (createSession) et de clˆoturer
(destroySession ) une session avec un d´epˆot cible.


´
CHAPITRE 2. TRAVAUX CONCERNES

11

Les m´ethodes de gestion des param`etres de requˆete nous permettent de configurer
les param`etres de requˆete tels que le langage d’interrogation (setQueryLanguage), le
format des r´esultats (setResultsFormat ), le nombre maximum des r´esultats retourn´es
(des setMaxQueryResults ), et la dur´ee d’une requˆete (setMaxDuration ).
En mode synchrone, les r´esultats d’une requˆete sont retourn´es comme le r´esultat
d’un appel (synchronousQuery ). Des m´ethodes additionnelles permettent de choisir
le nombre des r´esultats retourn´es par un appel (setResultsSetSize), et savoir le nombre
des r´esultats d’une requˆete (getTotalResultsCount ).
En mode asynchrone, les r´esultats d’une requˆete sont envoy´es par la destination a`
la source de la requˆete en appelant une m´ethode impl´ement´ee par la source (queryResultsListener). Ceci implique que la source doit indiquer la location de la m´ethode
`a appeler la destination (setSourceLocation ) avant d’envoyer une requˆete asynchrone
(asynchronousQuery).
Le m´ecanisme de gestion des erreurs fourni par SQI est intentionnellement peu
sophistiqu´e. Quand un ´echec se produit, n’importe quelle m´ethode de SQI peut le
rapporter moyen d’une exception(SQIFault) qui conforte un code d’erreur pr´ed´efini3
et un message en texte libre.
En pratique, l’interface SQI est impl´ement´ee dans tous les deux cˆot´es d’interrogation : la source et la destination. La destination doit impl´ementer les m´ethodes de
gestion de session, les m´ethodes de gestion des param`etres, les m´ethodes du mode de

requˆete synchrone, et la m´ethode asynchronousQuery. La source d’interrogation doit
impl´ementer la m´ethode queryResultsListener pour que la destination puisse retourner
des r´esultats si l’on applique le mode asynchrone.

2.2.2

Langage de d´
efinition de services Web WSDL

WSDL est l’acronyme de “Web Services Definition Language”, c’est un standard de
sp´ecification utilis´e pour d´ecrire les interfaces des services Web (Web Services). Cette
section pr´esente un aper¸cu des services Web ainsi que le WSDL. Puis, elle parle de la
sp´ecification de SQI en WSDL.
3

Les codes d’erreur font partie de la sp´ecification de SQI.


´
CHAPITRE 2. TRAVAUX CONCERNES

12

Aper¸cu de services Web
Aujourd’hui, les entreprises comptent sur des milliers de diff´erentes applications de
logiciel chacune avec leur propre rˆole en faisant des affaires. Pour appeler juste quelques
unes, les applications de base de donn´ees stockent des informations de clients et des
inventaires, les applications Web permettent a` des clients de passer en revue et acheter
des produits en ligne, et les applications suivant les ventes identifient des tendances
et prennent des d´ecisions `a l’avenir. Ces applications fonctionnent normalement sur

de diff´erents plateformes et syst`emes d’exploitation, et ´egalement elles sont mises en
application dans diff´erents langages de programmation. En cons´equence, il est tr`es
difficile que les diff´erentes applications de communiquer entre eux et partagent leurs
ressources d’une mani`ere coordonn´ee.
Pour r´esoudre le probl`eme de communication d’application-`a-application. Les entreprises ont besoin d’une mani`ere normalis´ee pour les applications de communiquer
entre eux via des r´eseaux, n’importe comment ces applications ont ´et´e d´evelopp´ees.
Les services Web fournissent exactement cette solution en fournissant une m´ethode
normalis´ee de communication entre les applications de logiciel. Elle permet les applications d’exposer leurs ressources au monde ext´erieur de sorte que n’importe quel
utilisateur puisse dessiner sur les ressources de l’application. Les services Web adh`erent
aux normes de communication suivantes :
1. un service Web d´ecrit publiquement sa propre fonctionnalit´e par un dossier de
WSDL.
2. un service Web communique avec d’autres applications par l’interm´ediaire des
messages de XML, normalement ce sont des messages de SOAP.
3. un service Web emploie un protocole de r´eseau standard tel que le HTTP.
Dans la partie suivante, on parle de WSDL, un ´el´ement important dans la mise
en application de l’Adaptateur, et de l’impl´ementation de SQI avec WSDL. XML et
SOAP sont omit car il existe ´enorm´ement de documents concernant ces standards.
Introduction `
a WSDL
Le langage de d´efinition de services Web WSDL (publi´e par le W3C) est d´efinit comme
une grammaire XML. Il a pour but de d´ecrire la fonctionnalit´e d’un service Web et
de sp´ecifier la mani`ere dont d’autres applications peuvent acc´eder `a ce service via une
interface [3].


´
CHAPITRE 2. TRAVAUX CONCERNES

13


En clair, WSDL d´efinit, de mani`ere abstraite et ind´ependante du langage de programmation, l’ensemble des op´erations et des messages qui peuvent ˆetre transmis vers
et depuis un service web donn´e. Le WSDL d´ecrit quatre ensembles des donn´ees importants :
– information de type de donn´ee pour toutes les requˆetes de message et requˆetes
de r´eponse,
– information d’interface d´ecrivant toutes les fonctions disponibles publiquement,
– information de liaison sur le protocole de transport utilis´e,
– information d’adresse pour localiser le service sp´ecifi´e.
Une fois qu’un Web Services est d´evelopp´e, il faut publier sa description et faire un
lien vers elle dans un catalogue UDDI (Universal Description, Discovery and Integration), de sorte que les utilisateurs potentiels peuvent le trouver. Quand un utilisateurs
souhaite utiliser le service, il fait une demande de son fichier WSDL afin de connaˆıtre
son emplacement, les appels de fonctions et comment y acc´eder. A partir de cela, il
peut composer, par exemple, une requˆete SOAP (Simple Object Access Protocol) vers
l’ordinateur du service. Tout ce parcours peut ´evidemment ˆetre automatis´e `a l’aide
d’outils reconnaissant WSDL, et permet ainsi d’int´egrer de nouveaux services pratiquement sans devoir entrer de nouveau code [1].
WSDL est donc con¸cu pour ˆetre la pierre d’angle de l’´edifice Web Services, avec
un langage commun pour d´ecrire les services et une plateforme pour int´egrer automatiquement ces services.
L’exemple suivant figure un service Web qui a pour but de connaˆıtre le nombre
d’´etudiants dans une promotion (`a l’IFI par exemple). Ce service a une m´ethode unique
appel´ee getNombreEtudiant qui prend un param`etre de type “string” (nomClasse)
et retourne le nombre d’´etudiant dans la classe correspondant au param`etre. Cette
m´ethode est d´eploy´ee en utilisant le protocole SOAP 1.1 sur HTTP.
Exemple de sp´
ecification de WSDL : S´emantiquement, l’interface de ce service
est d´efinie tout simplement comme suivant :
interface
{
service EtudiantService
{
op´

eration getNombreEtudiant(entr´
ee nomClasse: string)
retour NombreEtudiant: integer;


´
CHAPITRE 2. TRAVAUX CONCERNES

14

}
}
En utilisant WSDL, nous avons donc quatre ensembles principaux pr´esent´es sous
forme de XML comme suivant :
– Type de donn´ees et de messages. Ils sont sp´ecifi´es dans les ´el´ements “types et
messages” :
<types>

</types>
<message name="getNombreEtudiantRequest">

</message>
<message name="getNombreEtudiantResponse">

</message>
– Interface d´ecrit la fonctionnalit´e du service :

<operation name="getNombreEtudiant">

<input message="tns:getNombreEtudiantRequest"/>
<output message="tns:getNombreEtudiantResponse"/>
</operation>
</portType>
– Liaison sur le protocole de transport. Dans cet exemple, on utilise le protocole
SOAP / HTTP :
type="tns:EtudiantServicePortType">
transport=" /><operation name="getNombreEtudiant">
<soap:operation soapAction="urn:#getNombreEtudiant"/>

</operation>
</binding>
– Nom du service et de son adresse :
<service name="EtudiantService">


×