Implémentation d`une infrastructure collaborative asynchrone basée

Commentaires

Transcription

Implémentation d`une infrastructure collaborative asynchrone basée
Badji Mokhtar University -AnnabaUniversite Badji Mokhtar -Annaba-
‫ﺟﺎﻣﻌﺔ ﺑـﺎﺟﻲ ﻣﺨـﺘﺎر ﻋﻨﺎﺑﺔ‬
Faculté : Sciences de l'Ingénieur
Année 2010
Département : Informatique
MEMOIRE
Présenté en vue de l'obtention du diplôme de magister
Implémentation d’une infrastructure
collaborative asynchrone basée sur les
services web
Option
Texte Parole et Image
Par
Chemame Chaouki
DIRECTEUR DE MEMOIRE: M. M.SELLAMI
Professeur Université Annaba
DEVANT LE JURY
Président :
FARAH Nadir
MC
Université Annaba
Examinateurs :
SERIDI Hassina
MC
Université Annaba
BELLEILI Habiba
MC
Université Annaba
Avant tout, je remercie Dieu le tout puissant de m’avoir
aidé à concrétiser et à mener à terme ce travail.
Je tiens à exprimer mes vifs remerciements à mon
encadreur ; le professeur Sellami « Directeur du laboratoire
de recherche en informatique de l’université Badji Mokhtar
Annaba », d’avoir assuré l’encadrement de ce travail et pour
le soutien qu’il m’a apporté tout le long de la réalisation de
ce manuscrit, qu’il trouve ici l’expression de ma très
profonde reconnaissance.
Je remercie vivement les membres du jury qui m’ont fait
le grand honneur d’accepter de juger ce travail.
Ma reconnaissance s’adresse, à tous les enseignants du
département d’informatique pour l’enseignement et les
conseils qu’ils m’ont apportés durant toute ma formation
ainsi qu’à toutes les personnes qui, de prés ou de loin, ont
généreusement contribués à l’élaboration de ce mémoire.
Merci infiniment
Mémoire de Magister
1
2010
‫ﻣﻠﺨﺺ‬
‫اﻟﺘﻄﻮر اﻟﺴﺮﻳﻊ ﻓﻲ ﺗﻜﻨﻮﻟﻮﺟﻴﺎ اﻟﻤﻌﻠﻮﻣﺎت ‪ ،‬اﻟﺸﺒﻜﺎت واﻻﺗﺼﺎﻻت أدى إﻟﻲ‬
‫ﺗﻮﺱﻊ هﺎﺋﻞ ﻟﻺﻥﺘﺮﻥﺖ‪ .‬إﻥﻨﺎ ﻥﻤﺮ ﺏﻌﻬﺪ ﺟﺪﻳﺪ ﻣﻦ اﻟﺪﻳﻤﻘﺮاﻃﻴﺔ ﻓﻲ ﻹﻥﺘﺮﻥﺖ ‪ ،‬و اﻻﻥﺘﻘﺎل‬
‫إﻟﻰ ﻣﺠﺘﻤﻊ اﻟﻤﻌﻠﻮﻣﺎت اﻟﻠﺬان أدﻳﺎ إﻟﻰ ﻋﻤﻠﻴﺔ ﻋﻮﻟﻤﺔ اﻟﺘﻲ ﻗﺎﻣﺖ ﺏﺘﺤﺮﻳﺾ اﻟﻨﺎس ﻋﻠﻰ‬
‫إﻗﺎﻣﺔ ﻋﻼﻗﺎت وإﻥﺸﺎء ﻓﺮق اﻓﺘﺮاﺿﻴﺔ ﻣﻊ ﺏﻌﻀﻬﻢ اﻟﺒﻌﺾ وﻓﻲ آﺎﻓﺔ أﻥﺤﺎء اﻟﻌﺎﻟﻢ‪.‬‬
‫وهﻜﺬا ﻳﺄﺗﻲ ﻋﻬﺪ ﺏﻨﺎء ﻣﻨﺎهﺞ ﺗﻌﺎوﻥﻴﺔ ﻓﻲ ﻣﺨﺘﻠﻒ اﻟﻤﺠﺎﻻت )إدارة اﻟﻤﻌﺮﻓﺔ‪ ،‬اﻟﺘﻌﻠﻢ‬
‫واﻟﻄﺐ ﻋﻦ ﺏﻌﺪ‪ ...‬إﻟﺦ(‪ .‬هﺬﻩ اﻟﻤﻨﺎهﺞ اﻟﺘﻌﺎوﻥﻴﺔ ﻳﻤﻜﻦ أن ﺗﺪﻣﺞ ﻋﺪة أدوات ﺗﻌﺎوﻥﻴﺔ‬
‫اﻟﻤﺘﺰاﻣﻨﺔ ﻣﻨﻬﺎ و اﻟﻐﻴﺮ ﻣﺘﺰاﻣﻨﺔ‪ ،‬و هﺬا ﻹﺗﺎﺡﺔ ﻓﺮص اﻟﺘﻔﺎﻋﻞ وﺗﺒﺎدل اﻟﻤﻌﻠﻮﻣﺎت‬
‫ﺏﻴﻦ ﻣﺠﻤﻮﻋﺎت ﻣﻦ اﻟﻨﺎس ﻋﻦ ﺏﻌﺪ‪.‬‬
‫إن وﺹﻮل ﺗﻜﻨﻮﻟﻮﺟﻴﺎ اﻟﺨﺪﻣﺎت اﻟﻤﻮﺟﻬﺔ وﺗﻜﻨﻮﻟﻮﺟﻴﺎ ﺥﺪﻣﺎت اﻻﻥﺘﺮﻥﺖ وﻓﺮ ﻋﺪة‬
‫ﺡﻠﻮل ﺟﺪﻳﺪة ﻟﻬﺬﻩ اﻟﻤﻨﺎهﺞ اﻟﺘﻌﺎوﻥﻴﺔ‪ ،‬ﻻﺱﻴﻤﺎ ﻣﻦ ﺡﻴﺚ ﺱﺮﻋﺔ اﻻﺱﺘﺠﺎﺏﺔ وذﻟﻚ ﻣﻦ‬
‫ﺥﻼل إﻥﺸﺎء وﺡﺪات ﺗﻌﺎوﻥﻴﺔ ﻗﺎﺏﻠﺔ ﻟﻺﻋﺎدة ﺡﺴﺐ اﺡﺘﻴﺎﺟﺎت اﻟﻤﺴﺘﺨﺪﻣﻴﻦ‪،‬أو ﻣﻦ‬
‫ﺡﻴﺚ ﻣﺴﺘﻮى اﻟﻤﺮوﻥﺔ وﻋﺪم اﻟﺘﺠﺎﻥﺲ ﺏﺠﻌﻞ آﺎﻓﺔ اﻟﺨﺪﻣﺎت ﺗﺘﻌﺎﻣﻞ ﻣﻊ ﺏﻌﻀﻬﺎ‬
‫اﻟﺒﻌﺾ رﻏﻢ اﺥﺘﻼف ﻃﺒﻴﻌﺘﻬﺎ‪ ،‬اﻟﺘﻲ ﺗﺼﺒﺢ ﺏﺪورهﺎ ﺥﺪﻣﺎت ﺟﺪﻳﺪ ﻗﺎﺏﻠﺔ ﻟﻼﺱﺘﻬﻼك‬
‫ﻣﻦ ﻃﺮف ﻣﻨﺎهﺞ أﺥﺮى‪.‬‬
‫إذا اﻟﻐﺮض ﻣﻦ هﺬﻩ اﻟﻤﺬآﺮة هﻮ ﺗﻮﻓﻴﺮ ﺏﻨﻴﺔ ﺗﻌﺎوﻥﻴﺔ ﺗﺴﺘﻨﺪ إﻟﻲ ﻣﺠﻤﻮﻋﺔ ﻣﻦ‬
‫أدوات اﻟﺘﻌﺎون اﻟﻐﻴﺮ ﻣﺘﺰاﻣﻦ ﻣﺼﻤﻤﺔ ﻓﻲ ﺵﻜﻞ ﺥﺪﻣﺎت ﻳﻤﻜﻦ اﺱﺘﻬﻼآﻬﺎ ﻣﻦ ﻃﺮف‬
‫أي ﻣﻨﺼﺔ ﺗﻮﻓﺮ هﺬا اﻟﻨﻮع ﻣﻦ اﻟﺘﻜﻨﻮﻟﻮﺟﻴﺎ‪.‬‬
‫اﻝﻜﻠﻤﺎت اﻝﻤﻔﺘﺎﺣﻴﺔ‪ :‬اﻟﻬﻨﺪﺱﺔ اﻟﻤﻮﺟﻬﺔ ﻟﻠﺨﺪﻣﺎت‪ ،‬ﺥﺪﻣﺎت اﻟﺸﺒﻜﺔ اﻟﻌﺎﻟﻤﻴﺔ‪ ،‬اﻟﻤﻨﺼﺔ‬
‫اﻟﺘﻌﺎوﻥﻴﺔ‪ ،‬أداة اﻟﺘﻌﺎون اﻟﻤﺘﺰاﻣﻦ‪ ،‬أداة اﻟﺘﻌﺎون اﻟﻐﻴﺮ ﻣﺘﺰاﻣﻦ‪.‬‬
‫‪2010‬‬
‫‪2‬‬
‫‪Mémoire de Magister‬‬
Résumé
Le développement fulgurant des technologies de l’information, des réseaux et
des moyens de communication est à l’origine d’une expansion prodigieuse de
l’internet. Nous traversons une nouvelle ère où la démocratisation de l’internet et le
passage à la société de l’information conduisent à un processus de globalisation
incitant à la mise en relation des personnes et à la constitution d’équipes virtuelles
réparties à travers le monde. Ainsi l’ère des plates-formes collaboratives construites
dans des domaines différents (gestion des connaissances, enseignement à distance,
Télémédecine, etc.), intègrent plusieurs outils de collaboration (synchrones et
asynchrones) et offrent des possibilités d’interaction et d’échange d’informations
entre des groupes de personnes situés dans des endroits différents.
L’avènement de l’architecture orientée service et des technologies des services
web a apporté de nouvelles solutions à ces plates-formes collaboratives , notamment
au niveau de la réactivité et de l’évolutivité, en mettant en place des services ou des
modules de collaboration évolutifs et recomposables au gré des besoins des
utilisateurs, et au niveau de la flexibilité et de l’hétérogénéité, en faisant
communiquer des services de natures différentes, qui peuvent devenir à leur tour
des nouveaux services consommables par d’autres plates-formes.
Le but de ce mémoire est ainsi de proposer une infrastructure collaborative
basée sur un ensemble d’outils de collaboration asynchrones conçus sous forme de
services et qui peuvent être consommés par n’importe quelle plate-forme offrant ce
type de technologies.
Mots clés : Architecture Orientée Services, SOA, Services web, Plate-forme
collaborative, Outil de collaboration synchrone, Outil de collaboration asynchrone.
Mémoire de Magister
3
2010
Abstract
The rapid development of information technology, networks and
communications rise to a prodigious expansion of the Internet, We are in a
developing era where democratization of the Internet and the transition from
information to society has led a process of globalization, encouraging the linking of
people and the creation of virtual teams spread around the world. Thus the era of
collaborative platforms built in different fields, such as knowledge management,
distance learning, telemedicine, etc, that are Integrating several collaborative tools,
which include synchronous and asynchronous, providing opportunities for
interaction and exchange of information between groups of people located in
different places.
The arrival of service-oriented architecture and Web services technologies has
provided solutions to this newly found collaborative platform, especially in the
reactivity and the scalability, by setting up services or collaborative evolutionary
modules and redialing to the needs of users and concerning flexibility and
heterogeneity by communicating with different types of services, which have become
new services consumable by other platforms.
The purpose of this memorandum is to provide a collaborative infrastructure
based on a set of asynchronous collaboration tools designed in the form of services
and which can be consumed by any other platform offering this type of technology.
Key words: Service oriented architecture, SOA, Web service, Collaborative
platform, Synchronous tool for collaboration, Asynchronous tool for collaboration.
Mémoire de Magister
4
2010
TABLEAU DE MATIERES
Table des matières
‫ ﻣﻠﺨﺺ‬................................................................................................................................................ 2
RESUME........................................................................................................................................ 3
ABSTRACT ................................................................................................................................... 4
TABLE DES MATIERES ............................................................................................................ 5
LISTE DES FIGURES.................................................................................................................. 9
INTRODUCTION GENERALE ............................................................................................... 11
CHAPITRE I : ARCHITECTURE DES SERVICES WEB ................................................... 14
PARTIE 1 : ARCHITECTURE DES SERVICES WEB......................................................... 15
I.1. INTRODUCTION.....................................................................................................................15
I.2. SERVICES WEB : DEFINITION ET PRINCIPES ...........................................................................15
I.3. DESCRIPTION DE SERVICES WEB ..........................................................................................16
I.3.1. Description fonctionnelle et structurelle WSDL .........................................................16
I.3.2. Description comportementale......................................................................................17
I.3.3. Description d'aspects non-fonctionnels < WS-Policy >.............................................17
I.4. LES PRINCIPALES TECHNOLOGIES DE DEVELOPPEMENT DES SERVICES WEB ........................18
I.4.1. XML (Extensible Markup Language)...........................................................................18
I.4.1.1. XML un descendant de SGML .............................................................................18
I.4.1.2. Codage des données et interopérabilité.................................................................18
I.4.1.3. Utilisation des fichiers XML ................................................................................19
I.4.2. SOAP (Simple Object Access Protocol).......................................................................20
I.4.2.1. Modèles d’échange de messages en SOAP ..........................................................20
I.4.2.2. Enveloppe SOAP ..................................................................................................21
I.4.2.3. En tête SOAP ........................................................................................................21
I.4.2.4. Corps SOAP..........................................................................................................21
I.4.3. Apatche-Axis Une mise en œuvre de SOAP .................................................................22
I.4.4. WSDL (Web Service Description Language)...............................................................23
I.4.5. UDDI (Universal Description Discovery and Integration) .........................................24
I.5. CYCLE DE VIE DES SERVICES WEB........................................................................................24
I.6. AVANTAGES DES SERVICES WEB.........................................................................................25
I.7. LIMITES DES SERVICES WEB.................................................................................................26
PARTIE 2 : COMPOSITION DES SERVICES WEB ............................................................ 27
I.8. DEFINITIONS ET TYPES DE COMPOSITION DE SERVICES WEB ................................................27
I.8.1. Définitions....................................................................................................................27
I.8.1.1. L’encapsulation de services natifs ........................................................................27
I.8.1.2. L’établissement d’accord d’externalisation ..........................................................27
I.8.1.3. L’assemblage de services composants..................................................................27
I.8.1.4. L’exécution de services composants.....................................................................27
I.8.1.5. Le contrôle de l’exécution de services composites...............................................27
I.8.1.6. L’évolutivité des services .....................................................................................28
I.8.2. Types de composition de services Web ........................................................................28
Mémoire de Magister
5
2010
TABLEAU DE MATIERES
I.8.2.1. Orchestration.........................................................................................................28
I.8.2.2. Chorégraphie.........................................................................................................30
I.8.3. Langages de composition de services Web..................................................................32
I.8.3.1. XLANG (XML Business Process Language).......................................................33
I.8.3.2. BPML (Business Process Modeling Language) ...................................................33
I.8.3.3. WSFL (Web Service Flow Language)..................................................................33
I.8.3.4. WSCL (Web Service Conversation Language) ....................................................34
I.8.3.5. WSCI (Web Service Choreography Interface) .....................................................34
I.8.3.6. BPEL4WS.............................................................................................................34
a. Le processus abstrait..................................................................................................35
b. Le processus exécutable ............................................................................................35
I.8.3.7. WS-CDL (Web Services Choreography Description Language) .........................37
I.9. CONCLUSION ........................................................................................................................37
CHAPITRE II : LES PLATES-FORMES COLLABORATIVES ......................................... 38
II.1. INTRODUCTION ...................................................................................................................39
II.1.1. Les Outils Synchrones ................................................................................................39
II.1.2. Les Outils Asynchrones ..............................................................................................39
II.2. DEFINITION DE TRAVAIL COLLABORATIVE ..........................................................................39
II.3. CATEGORIE DES SYSTEMES COLLABORATIFS.......................................................................40
II.3.1. Les collecticiels...........................................................................................................40
II.3.2. Le Workflow................................................................................................................40
II.4. LES PRINCIPAUX PLATES-FORMES EXISTANTES ...................................................................41
II.4.1. SAKAI .........................................................................................................................41
II.4.2. Open-Xchange ............................................................................................................42
II.4.2.1. Présentation ......................................................................................................... 42
II.4.2.2. Fonctionnalités de Open-Xchange Server ...........................................................43
II.4.3. Silverpeas....................................................................................................................44
II.4.3.1. Des services collaboratifs ....................................................................................44
a. Le service« ALMANACH » .....................................................................................45
b. Le service« CHAT » .................................................................................................45
c. Le service « ANNUAIRE ».......................................................................................45
d. Le service « ENQUETE ».........................................................................................45
e. Le service « FORUM » .............................................................................................46
f. Le service de « GESTION DE PROJET » - (PROJECT ORGANIZER)..................47
g. Le service « PLAN D’ACTION ».............................................................................47
h. Le service « QUIZ »..................................................................................................48
i. Le service « NEWS ».................................................................................................48
j. Le service « BLOG » .................................................................................................49
k. Le service « GALLERY » (BANQUE D’IMAGES)................................................49
l. Le service « SILVERCRAWLER »...........................................................................50
m. Le service de NOTIFICATION ...............................................................................50
n. WORKFLOW DE CIRCULATION DES INFORMATIONS .................................50
II.4.3.2. Des services de GED et de gestion de connaissances .........................................50
II.4.4. Xwiki ...........................................................................................................................51
II.5. CONCLUSION ......................................................................................................................52
Mémoire de Magister
6
2010
TABLEAU DE MATIERES
CHAPITRE III : ARCHITECTURE PROPOSEE.................................................................. 53
III.1. INTRODUCTION ..................................................................................................................54
III.2. L’OUTIL OPEN SOURCE ......................................................................................................54
III.2.1. Définition...................................................................................................................54
III.2.2. La licence open source..............................................................................................54
III.2.2.1. Libre redistribution.............................................................................................54
III.2.2.2. Code source ........................................................................................................54
III.2.2.3. Travaux dérivés ..................................................................................................54
III.2.2.4. Intégrité du code source de l'auteur....................................................................55
III.2.2.5. Pas de discrimination entre les personnes ou les groupes..................................55
III.2.2.6. Pas de discrimination entre les domaines d'application .....................................55
III.2.2.7. Distribution de la licence....................................................................................55
III.2.2.8. La licence ne doit pas être spécifique à un produit ............................................55
III.2.2.9. La licence ne doit pas contaminer d'autres logiciels ..........................................55
III.3. L’INTEGRATION DES APPLICATIONS AU SEIN D'UN ENVIRONNEMENT COLLABORATIVE ........56
III.3.1. Les problèmes liés à l’intégration d’applications.....................................................56
III.3.1.1. La complexité.....................................................................................................56
III.3.1.2. Une programmation redondante et ne pouvant être réutilisée............................56
III.3.1.3. Des interfaces multiples .....................................................................................56
III.3.2. Les exigences de la programmation d’aujourd’hui ..................................................57
III.3.2.1. L’exploitation du parc informatique existant .....................................................57
III.3.2.2. La prise en charge de tous les types d’intégrations requis .................................57
III.3.2.3. La possibilité de mises en œuvre incrémentielles et de migration du parc ........58
III.3.2.4. La constitution dans un cadre de composants standards ....................................58
III.3.2.5. La possibilité de mise en œuvre de nouveaux modèles informatiques ..............58
III.3.3. Une architecture orientée services : au-delà des services Web................................58
III.3.3.1. Les éléments constitutifs d’une architecture orientée services ..........................59
III.3.3.2. La nature d’un service ........................................................................................59
III.3.3.3. L’intégration d’applications ...............................................................................60
III.3.3.4. Les exigences d’intégration au sein de l’architecture ........................................61
a. L’intégration au niveau de l’interface .......................................................................62
b. La connectivité d’applications ..................................................................................62
c. L’intégration des informations ..................................................................................62
III.4. ARCHITECTURE PROPOSEE .................................................................................................63
III.4.1. Architecture orientée service (SOA) .........................................................................63
III.4.2. Difficultés rencontrées dans la réalisation d’une plate-forme collaborative complète
...............................................................................................................................................64
III.4.3. Vers l’intégration d’applications existantes .............................................................65
III.4.4. Architecture proposée ...............................................................................................66
III.5. CONCLUSION .....................................................................................................................68
CHAPITRE IV : EXPERIMENTATION................................................................................. 69
IV.1. INTRODUCTION ..................................................................................................................70
IV.2. LA PLATE-FORME SILVERPEAS ..........................................................................................70
IV.2.1. Présentation de la plateforme silverpeas ..................................................................70
IV.2.2. La Structure de Silverpeas.........................................................................................71
IV.2.2.1. Administration ...................................................................................................72
IV.2.2.2. Le Bus ................................................................................................................72
IV.2.2.3. Services ..............................................................................................................73
Mémoire de Magister
7
2010
TABLEAU DE MATIERES
IV.2.3. L’architecture de Silverpeas......................................................................................73
IV.3. LA PLATE-FORME XWIKI ...................................................................................................74
IV.3.1. Installation de Xwiki..................................................................................................75
IV.3.1.1. Configurer Tomcat .............................................................................................75
IV.3.1.2. Configurer MySQL ............................................................................................76
IV.3.1.3. Démarrer Xwiki .................................................................................................77
IV.3.2. Architecture de la plate-forme Xwiki ........................................................................78
IV.4. QUELQUES SCENARIOS DE TEST .........................................................................................78
IV.4.1. L’espace personnel....................................................................................................79
IV.4.2. Moteur de recherche..................................................................................................80
IV.4.3. Barre D’outils............................................................................................................80
IV.4.4. Page d’accueil ...........................................................................................................81
IV.4.5. Logo Silverpeas .........................................................................................................81
IV.4.6. Espaces et Services....................................................................................................81
IV.5. LES SERVICES DE LA PLATE-FORME ...................................................................................81
IV.5.1. Attribution des Rôles .................................................................................................82
IV.6. CREER UN ESPACE OU UN SOUS ESPACE .............................................................................82
IV.7. OUVRIR XWIKI ..................................................................................................................83
IV.8. CONCLUSION .....................................................................................................................84
CONCLUSION............................................................................................................................ 86
RÉFÉRENCES ............................................................................................................................ 89
ANNEXE ...................................................................................................................................... 91
Mémoire de Magister
8
2010
LISTE DES FIGURES
Liste des figures
Figure I-1 : Représentation d’un livre en xml .......................................................................... 19
Figure I-2 : Structure d’un message SOAP.............................................................................. 20
Figure I-3 : Définition du type d’enveloppe SOAP ................................................................. 22
Figure I-4 : Spécification d’un Service Web avec WSDL ....................................................... 23
Figure I-5 : Cycle de vie de service Web ................................................................................. 25
Figure I-6 : Illustration de l'orchestration................................................................................. 29
Figure I-7 : Vue générale de l'orchestration ............................................................................. 29
Figure I-8 : Illustration de la Chorégraphie............................................................................. 31
Figure I-9 : Vue générale d’une composition de services Web de type chorégraphie............. 31
Figure I-10 : Langages de coordination de Web services ........................................................ 33
Figure I-11 : Mise en œuvre des deux types de processus (exécutable et abstrait) par BPEL4WS
............................................................................................................................ 36
Figure I-12 : Exemple de code source...................................................................................... 37
Figure II-1 : Architecture Générale de Sakai ........................................................................... 41
Figure II-2 : Open-Xchange ..................................................................................................... 43
Figure II-3 : Interface Silverpeas. ............................................................................................ 44
Figure II-4 : Interface Xwiki. ................................................................................................... 51
Figure III-1 : Le problème d’intégration .................................................................................. 57
Figure III-2 : L’intégration d’applications ............................................................................... 61
Figure III-3 : L’intégration des services................................................................................... 61
Figure III-4 : Exemple d’interaction simple entre une application cliente et un service Web. 66
Figure III-5 : L’architecture générale de la plate-forme .......................................................... 67
Figure IV-1 : Présentation de Silverpeas.................................................................................. 71
Figure IV-2 : Structure de Silverpeas....................................................................................... 72
Figure IV-3 : Architecture de Silverpeas. ................................................................................ 74
Figure IV-4 : Ouverture de serveur Tomcat............................................................................. 75
Figure IV-5 : La page d’administration Tomcat. ..................................................................... 76
Figure IV-6 : Fichier Hibernate................................................................................................ 76
Figure IV-7 : Page d’ouverture de Xwiki................................................................................. 77
Figure IV-8 : La page d’accueil par défaut de Xwiki .............................................................. 77
Figure IV-9 : L’architecture de la plate-forme Xwiki.............................................................. 78
Figure IV-10 : La fenêtre d’accueille de l’application............................................................. 79
Figure IV-11 : Rubriques de l’espace personnel...................................................................... 79
Figure IV-12 : Barre d’outils.................................................................................................... 81
Figure IV-13 : Liste des services disponibles .......................................................................... 81
Figure IV-14 : Création d’un espace ou d’un sous-espace....................................................... 83
Figure IV-15 : Espace université badji mokhtar annaba. ......................................................... 83
Figure IV-16 : le lien de service wiki....................................................................................... 84
Figure IV-17 : Service Wiki de la plate-forme ........................................................................ 84
Mémoire de Magister
9
2010
INTRODUCTION
INTRODUCTION
Mémoire de Magister 2010
10
Chemame Chaouki
« Implémentation d’une infrastructure collaborative asynchrone basée sur les services web »
INTRODUCTION GENERALE
Introduction Générale
Problématique abordée
Face aux nouveaux défis à relever, l'information, la connaissance et le savoir-faire
constituent des ressources stratégiques et opérationnelles indispensables pour permettre aux
diverses organisations d'assurer une croissance pérenne. Le développement et l'exploitation
des connaissances requièrent alors de déployer des dispositifs organisationnels et techniques
(réseaux informatiques et les technologies de l’information et de la connaissance) permettant
à la fois leur mémorisation, leur partage, leur production collective et leur diffusion au plus
près des acteurs concernés.
Autour de ces technologies, le management des " communautés de pratiques " prend
une importance considérable, en définissant des nouvelles formes de coordination au sein ou
entre les organisations, mais en offrant également des outils facilitant la communication et les
échanges, tels que les services de collaboration asynchrones. Nous pouvons citer à titre
d’exemple :
¾
Forum : ce service permet l’organisation et le suivi de forums de discussion sur
l’ensemble de l’entreprise ou au niveau d’un espace collaboratif.
¾
Gestion de projet : ce service permet au chef de projet d’allouer des tâches aux
membres de son équipe et faire le suivi de l’évolution du projet. Chaque participant peut
gérer ses propres tâches tout en visualisant le travail réalisé par les autres membres de
l’équipe.
¾
Quizz : le service Quizz permet d’évaluer le niveau de connaissance acquis par
l’audience visée et de faire un suivi des formations. Ce service est instanciable dans
l’espace entreprise mais également dans chaque espace collaboratif. Il peut être utilisé
pour des tests de vérification des connaissances.
¾
Le service Gallery : permet de gérer et d’afficher des fichiers de type images dans une
arborescence d’albums. La publication d’images est facilitée grâce à l’utilisation du
glisser/déposer qui accepte un/plusieurs fichier(s), un/plusieurs répertoire(s) mais aussi
un fichier zip. Gallery permet de classer et d’afficher des images (photos, logos,
plans…etc) dans des albums.
Faire interagir ces différentes applications en réseau a toujours été une affaire
complexe, notamment si on souhaite standardiser certains aspects de cette interaction.
Mémoire de Magister
11
2010
INTRODUCTION GENERALE
Pour résoudre ce problème on fait appel à un ensemble de protocoles qui permettent,
au moins de faire communiquer (avec un protocole de haut niveau) des programmes tournant
sur des machines différentes et écrits dans des langages de programmation différents. Ils le
font en reprenant certains principes du Web (transport sur HTTP, formatage en XML) mais en
mettant l’accent sur la communication entre applications, pas entre humains en se basant sur
une architecture orientée services.
Objectif du mémoire
On a deux principaux objectifs dans notre mémoire, le premier objectif, est ainsi de
proposer une infrastructure collaborative intégrant et offrant des services de collaboration
asynchrones en se basant sur les nouvelles technologies orientées services.
Notre deuxième objectif est de mettre en œuvre cette infrastructure en proposant une
approche qui se base sur l’intégration d’applications déjà existantes en utilisant des services
web. De nombreux travaux se sont déjà focalisés sur cette problématique : les plates-formes
collaboratives à base d’intégration. Notamment dans le domaine des applications reparties, où
le spectre va vers des solutions à base d’intergiciels (tel que CORBA, et les langages de
composition des services web) à l’utilisation de nouvelles technologies des services web.
Plan du mémoire
Le mémoire est structuré en quatre chapitres, plus cette introduction et une conclusion
générale et perspectives.
Dans le premier chapitre, intitulé « Architecture Des Services Web », se compose de
deux parties, dans la première partie, nous présentons la définition, la description et les
principales technologies de développement des services web. Dans la deuxième partie, nous
présentons les différents types de composition de service web et nous terminons par la
présentation d’un ensemble des langages de composition des services web les plus utilisés
actuellement.
Dans le deuxième chapitre, intitulé « Les Plates-Formes Collaboratives », nous présentons
un état de l’art de notre problématique de recherche, nous introduisons des concepts
fondamentaux sur la collaboration et la coopération, afin de présenter le contexte de nos travaux.
Dans ce contexte, nous abordons la problématique liée au développement d’applications
collaboratives, nous présentons les différents outils de collaboration ainsi que quelques platesformes collaboratives que nous avons testé tout au long de notre travail, pour pouvoir concevoir
une plate-forme qui se base sur une approche d’intégration basée sur des frameworks.
Mémoire de Magister
12
2010
INTRODUCTION GENERALE
Dans le troisième chapitre intitulé « Architecture Proposée », on fait une présentation
générale de l’architecture orientée service, et l’outil open source afin de pouvoir proposer une
architecture ou bien une infrastructure collaborative basée sur ce type de technologies. Nous
présentons aussi notre propre architecture basé sur une architecture web service et qui englobe
plusieurs technologies :
¾
L’utilisation d’outils open source.
¾
L’utilisation d’une architecture orientée service.
¾
la notion d’intégration d’applications.
Dans le dernier chapitre, intitulé « Expérimentation », et dans le but de valider notre
approche nous optons pour l’intégration de deux plates-formes libres afin d’offrir à une
communauté d’utilisateurs un environnement collaboratif proposant des outils de
collaboration asynchrones dans un domaine bien précis. La première plate-forme s’appelle
« Silverpeas » qui se base sur une architecture orienté service, elle offre à l’utilisateur via une
interface riche un ensemble de services asynchrones (forum, enquête, annuaire, …etc). La
deuxième plate-forme s’appelle « XWIKI », c’est une plate-forme de la famille des systèmes
de gestion de contenu de site web rendant les pages web modifiables par tous les visiteurs y
étant autorisés. Il facilite l'écriture collaborative de documents avec un minimum de
contraintes.
Nous terminons notre contribution par une conclusion générale et perspectives où nous
présentons les principaux résultats et nous proposons quelques perspectives à développer dans
le prochain futur.
Mémoire de Magister
13
2010
CHAPITRE I
ARCHITECTURE DES SERVICES WEB
CHAPITRE I. ARCHITECTURE DES
SERVICES WEB
Mémoire de Magister 2010
14
Chemame Chaouki
« Implémentation d’une infrastructure collaborative asynchrone basée sur les services web »
CHAPITRE I
ARCHITECTURE DES SERVICES WEB
Partie 1 : Architecture Des Services Web
I.1. Introduction
L'accès aux systèmes d'information s'appuie aujourd'hui de plus en plus sur des
technologies de l’Internet. Les efforts de standardisation dans ce contexte ont accentué
l'engouement des personnes et des organisations (aussi bien académiques, qu'industrielles,
commerciales, ou institutionnelles) pour l'utilisation de l'Internet et ont permis l'émergence
des services Web comme support de développement des applications accessibles par Internet.
Ainsi, les technologies associées aux services Web sont devenues incontournables pour le
développement d'applications interagissant les unes avec les autres par le biais de l'Internet.
Nous proposons dans ce chapitre de faire un point sur le sujet des services Web.
L'objectif de la discussion est de traiter des aspects conceptuels des services aussi bien
que des aspects liés à leur implantation.
I.2. Services Web : définition et principes
Plusieurs définitions des services Web ont été mises en avant par différents auteurs.
Ci-dessous, nous citons une définition généralement acceptée et fournie par le
consortiumW3C
“A Web service is a software system designed to support interoperable machine-tomachine interaction over a network. It has an interface described in a machine-processable
format (specifically WSDL). Other systems interact with the Web service in a manner
prescribed by its description using SOAP messages, typically conveyed using HTTP with an
XML serialization in conjunction with other Web-related standards” [1].
Une étude plus approfondie des points communs partagés par les différentes
définitions et par les usages qui sont faits des services Web, permet de dégager au moins deux
principes fondamentaux :
¾
Les services Web interagissent au travers d'échanges de messages encodés en XML.
¾
Les interactions dans lesquelles les services Web peuvent s'engager sont décrites au sein
d'interfaces. La définition W3C restreint la portée des interfaces des services Web aux
aspects fonctionnels et structurels, en utilisant le langage WSDL qui, essentiellement,
ne permet de décrire que des noms d'opérations et des types de messages
Mémoire de Magister
15
2010
CHAPITRE I
ARCHITECTURE DES SERVICES WEB
I.3. Description de services Web
Dans cette section nous discutons à la description des interfaces des services. Cette
description peut porter sur les aspects structurels et/ou comportementaux des services, aussi
bien que sur leurs aspects non-fonctionnels. Les langages présentés dans cette section sont
fondés sur XML (Extensible Markup Language), XML est un standard de représentation de
données semi-structurées [2].
Dans un document XML, la structure des données est fournie par le biais de
l'utilisation de balises (comme en SGML Standard Generalized Markup Language [3], mais
en s'affranchissant des aspects liés à la présentation des données). Cette structure n'est pas
aussi rigide que celle d'une base de données relationnelle par exemple. Dans un document
XML, les données peuvent être définies selon un schéma, mais cela n'est pas obligatoire et le
schéma peut laisser quelques parties partiellement spécifiées.
Une problématique généralement associée à la description de services est celle de leur
publication et de leur découverte. Un standard proposé pour s'attaquer à cette problématique
est UDDI [4]. UDDI définit une interface de programmation pour publier des descriptions de
services dans des répertoires dédiés, pour soumettre des requêtes à base de mots-clés sur ces
répertoires et pour naviguer au travers des descriptions obtenues par le biais de ces requêtes.
I.3.1. Description fonctionnelle et structurelle WSDL
WSDL (Web Services Description Language) est un langage de la famille XML
permettant de décrire les types de données supportés et les fonctions offertes par un service
Web. L'objectif est de fournir la description, en XML, des services indépendamment de la
plate-forme et du langage utilisés et sous une forme que des personnes ou des programmes
peuvent interpréter. Les descriptions WSDL sont en fait l'équivalent des interfaces IDL
(Interface Définition Language) de CORBA par exemple [5].
Dans le langage WSDL, un service est vu comme une collection de messages pour les
échanges et d'une collection de points d'entrée. Un point d'entrée consiste en la description
abstraite d'une interface et de son implantation. La description abstraite contient :
¾
la définition des messages qui sont consommés et générés par le service (les entrées et
les sorties)
¾
la signature des opérations offertes par le service.
Mémoire de Magister
16
2010
CHAPITRE I
ARCHITECTURE DES SERVICES WEB
I.3.2. Description comportementale
La portée de WSDL est limitée la description des types des données incluses dans les
messages qu'un service est capable de recevoir ou d'émettre. Dans de nombreuses
applications, ces descriptions uniquement structurelles n'offrent pas assez d'information sur
les contraintes régissant les interactions dans lesquelles un service peut ou est censé s'engager.
Dans certains cas, ces contraintes sont assez simples, comme par exemple : < le
fournisseur n'envoie le bordereau de livraison qu'après avoir reçu la confirmation du paiement
>. D'autres fois, ces contraintes peuvent être relativement complexes.
Plusieurs initiatives de recherche, de développement et de standardisation sont en
cours afin de définir des langages de description de services prenant en compte des aspects
comportementaux, et d'utiliser ces descriptions < comportementales >lors du développement
et de l'exécution des services.
BPEL est un langage fondé sur XML et permettant de décrire aussi bien des interfaces
comportementales que des orchestrations complètement exécutables. En quelques mots,
BPEL permet de décrire des actions communicationnelles (envois et réceptions de message
dont les types sont décrits en WSDL et XML Schéma), et de lier ces actions au travers
d'opérateurs de flot de contrôle (par exemple la séquence, le choix, l'itération, et les clauses
throw/catch pour le traitement des exceptions).
I.3.3. Description d'aspects non-fonctionnels < WS-Policy >
Les services Web étant généralement développés par des équipes indépendantes, ont
besoin d'être décrits de façon précise selon des conventions standards, et de telle manière que
leurs descriptions puissent être utilisées au maximum pour automatiser le processus de
développement et de déploiement des futurs services devant interagir avec un service existant.
WSDL et BPEL permettent de décrire les opérations fournies par un service Web, les types de
données des messages devant être échangés pour invoquer ces opérations, et les dépendances
comportementales entre ces opérations. Cependant, ils ne permettent pas de décrire des
aspects non-fonctionnels des services tels que leur capacité à garantir une certaine qualité de
service par rapport à des préoccupations telles que la sécurité, la fiabilité, la journalisation des
accès ou la gestion de transactions.
Ce manque est en partie compensé par le concept de politiques d'usage. Une politique
d'usage est une énonciation explicite des possibilités et des restrictions d'usage d'un service
Web. < WS-Policy >est un langage extensible permettant d'exprimer des politiques (ou règles)
d'usage sous forme de conjonctions et de disjonctions (au sens logique) d'assertions [6].
Mémoire de Magister
17
2010
CHAPITRE I
ARCHITECTURE DES SERVICES WEB
I.4. Les principales technologies de développement des Services Web
Une caractéristique qui a permis un grand succès de la technologie des services web
est qu'elle est construite sur des technologies standards de l’industrie. Dans cette section il y a
une description de ces technologies.
I.4.1. XML (Extensible Markup Language)
Le langage XML (Extensible Markup Language) est un langage balisé, issu d’une
recommandation W3C (WorldWideWeb Consortium), ayant pour but d’encoder tout type de
données, indépendamment du code machine de celles-ci. Il a été développé dans le but de
partager facilement des données entres différents systèmes et en particulier à travers un réseau
Internet.
I.4.1.1. XML un descendant de SGML
SGML (Standard Generalized Markup Language) est un métalangage avec lequel il est
possible de définir des langages balisés. Il est lui-même descendant de la recherche sur la
théorie des langages et en particulier du langage GML (Generalized Markup Language)
d’IBM. Il est devenu par la suite un standard ISO.
XML est un sous-ensemble simplifié du langage SGML (Standard Generalized
Markup Language) et est utilisé dans de nombreuses technologies ou protocoles tels que
(RDF, RSS, XHTML, Atom, MathML, ...etc). Tous les langages dérivés présentent le même
avantage : encoder de façon structurée l’information destinée à être partagée à travers un parc
d’ordinateurs et de logiciels hétérogènes.
En plus d’avoir donné naissance à XML, SGML est également à la base du langage de
balisage HTML, un des éléments clés d’Internet. Par contre, son petit frère, XHTML qui
hérite les propriétés de XML, d’où les similitudes entre ces différents langages [7].
I.4.1.2. Codage des données et interopérabilité
XML permet d’écrire sous forme de fichier texte, dont le codage est exprimé en entête, tous les types définis eux-mêmes par un autre fichier XML. Ainsi, grâce à ces deux
fichiers (l’un contenant les données, l’autre de description des types de données), n’importe
quel logiciel pouvant accéder à des fichiers texte peut analyser les données.
Ce type de technologie est une solution, très utilisée aujourd’hui, pour permettre
l’interopérabilité des logiciels à travers Internet. Il est vrai que la syntaxe XML est très
verbeuse, ce qui la rend difficilement lisible pour un humain : mais c’est le prix à payer pour
une compatibilité maximale et une description au mieux des données pour leur traduction
informatique.
Mémoire de Magister
18
2010
CHAPITRE I
ARCHITECTURE DES SERVICES WEB
Son succès est grandissant, et de nouvelles technologies apparaissent comme AJAX
par exemple, une technologie web basée sur la JavaScript, le XML et le XHTML, permettant
de travailler les données du côté client pour en envoyer une version complète au serveur sans
faire de requête entre chaque petite modification.
I.4.1.3. Utilisation des fichiers XML
Plusieurs méthodes permettent d’exploiter les données d’un fichier XML. Des
méthodes permettent d’accéder à la donnée précise en parcourant le chemin hiérarchique lié
au balisage du fichier : ce sont les technologies telles que le langage XPath. Il permet
d’exploiter le fichier sans devoir construire une représentation complète en mémoire du
fichier. D’autres technologies consistent à construire un arbre représentant le fichier XML
dans son entier, les nœuds de cet arbre étant les différentes balises XML. Cet arbre s’appelle
l’arbre DOM (Document Object Model). Une telle utilisation est difficilement concevable
pour accéder aux quantités de données stockées dans une base de données XML, mais est
totalement viable pour analyser un fichier de description simple de service web, par exemple.
Nous allons prendre un exemple simple pour visualiser graphiquement quelle serait la
hiérarchie du document XML correspondant et quelle est la structure du document.
L’exemple choisi est celui d’un livre (Figure I-1).
<Livre>
<titre>Le super livre</titre>
<chapitre>
<numéro>1</numéro>
<titre>titre du chapitre 1</titre>
<contenu>abcdef…</contenu>
</chapitre>
<chapitre>
</chapitre>
</Livre>
Figure I-1 : Représentation d’un livre en xml
XML possède une galaxie de technologies. Parmi celles-ci nous pouvons citer XML
Query (langage de requêtes), XSL – Extensible Stylesheet Language (définition de
présentations de documents XML), XSLT – XSL Transformations (langage permettant la
transformation de documents XML), XPath – XML Path (langage de requêtes permettant
d’accéder à chaque élément d’un document XML).
Mémoire de Magister
19
2010
CHAPITRE I
ARCHITECTURE DES SERVICES WEB
I.4.2. SOAP (Simple Object Access Protocol)
SOAP [8] est un protocole pour l’échange d’information dans un environnement réparti,
basé sur le standard XML. Ce protocole comporte trois parties : Une enveloppe qui définit un
canevas pour décrire le contenu du message, la façon de le traiter, un jeu de règles de codage
pour exprimer les types de données et une convention pour représenter des appels de procédure
éloignés. SOAP n’est lié à aucun système d’exploitation ni langage de programmation. Il est
indépendant du langage d’implémentation des applications client et serveur. En plus, il peut
potentiellement être utilisé avec une variété de protocoles (ex : HTTP, HTTP Extension
Framework).
I.4.2.1. Modèles d’échange de messages en SOAP
Les messages SOAP sont des transmissions fondamentalement à sens unique d'un
expéditeur à un récepteur. Lorsqu’une transmissions d’un message commence (ex : invocation
d’un service web), un message SOAP (ou document XML) est généré. Ce message est envoyé
à partir d’une entité appelé le SOAP sender, localisé dans un SOAP nœud. Le message est
transmis à zéro ou plusieurs nœuds intermédiaires (SOAP intermediates) et le processus fini
lorsque le message arrive au SOAP receiver. Le chemin suivi par un message SOAP est
nommé message path. La Figure I-2 montre les éléments qui participent au processus.
SOAP Message
SOAP Enveloppe
SOAP Header
SOAP Body
Nœud Serveur
Nœud Client
SOAP
Sender
Nœud Intermédiaire
SOAP
Receiver
Figure I-2 : Structure d’un message SOAP
Quand un message SOAP arrive dans une entité SOAP, il suit le processus décrit ci-dessous :
¾
Identifier toutes les parties du message SOAP destiné à cette entité.
¾
Vérifiez que ces parties sont soutenues par l’entité et traitez-les en conséquence. Si ce
n'est pas le cas rejeter le message.
Mémoire de Magister
20
2010
CHAPITRE I
¾
ARCHITECTURE DES SERVICES WEB
Si l’entité n'est pas la destination suprême du message, il faut enlever alors toutes les
parties identifiées avant l'expédition du message.
I.4.2.2. Enveloppe SOAP
Un message SOAP est composé d’un élément obligatoire appelé le SOAP enveloppe.
L’enveloppe SOAP définit l’espace de nom (Namespace : URI permettant de connaître la
provenance de chaque balise) précisant la version supportée de SOAP. Cet espace de nom est
standard et permet de différencier les éléments du schéma.
L’enveloppe SOAP est constituée d’un en-tête facultatif (SOAP header) et d’un corps
obligatoire (SOAP body). Une description générale de l’enveloppe SOAP et ses composants
est donnée par un extrait de code (Figure I-3).
I.4.2.3. En tête SOAP
L’en-tête peut avoir plusieurs fils (SOAP blocks). Ces fils sont utilisés pour ajouter
des fonctionnalités au message comme l’authentification et la gestion des transactions. L’entête peut utiliser les attributs mustUnderstand et/ou SOAP actor pour indiquer comment traiter
l'entrée et par qui.
L'attribut mustunderstand peut être utilisé pour indiquer si une entrée d’en-tête est
obligatoire ou facultative pour être traitée par le destinataire. Le destinataire d'une entrée
d’en-tête est défini par l'attribut d'acteur de SOAP. La valeur de l'attribut de mustunderstand
est "1" ou "0". L'absence de cet attribut est sémantiquement équivalente à sa présence avec la
valeur "0".
Un message SOAP voyage du SOAP sender au SOAP receiver, en passant par un
groupe de SOAP intermédiaires. Un SOAP intermédiaire est une entité qui est capable de
recevoir et transmettre les messages SOAP. Les nœuds intermédiaires aussi bien que le SOAP
receiver sont identifiés par une URL. L'attribut acteur de SOAP peut être utilisé pour indiquer
le destinataire d'un élément d'en-tête. La valeur de l'attribut d'acteur de SOAP est une URL.
I.4.2.4. Corps SOAP
Le corps SOAP contient l’information destinée au receveur. Il doit fournir le nom de
la méthode invoquée par une requête, ou le nom de la méthode pour générer la réponse. Il doit
aussi, fournir l’espace de nom correspondant au nom du service. Le contenu du corps SOAP
est utilisé dans le processus comme le marshaling d’appels RPC et le rapport des erreurs.
Le corps SOAP peut contenir un SOAP fault. Ce bloc est utilisé pour transmettre
l’information des erreurs durant le traitement du message.
Mémoire de Magister
21
2010
CHAPITRE I
ARCHITECTURE DES SERVICES WEB
Malgré que l'en-tête et le corps soient définis comme des éléments indépendants, ils
ont une relation : une entrée de corps est sémantiquement équivalente à une entrée d'en-tête
destinée pour l'acteur de défaut et avec une valeur d'attribut mustunderstand de 1 (Figure I-3).
<env:Envelope xmlns:env="http://www.w3.org/2001/06/soap-envelope/ ">
<env:Header>
<authentication xmlns=http://myDomain/app” >
<user>admin</user>
<password>********</password>
</authentication>
</env:Header>
<env:Body>
<stock: getStockQuoteResponse
xmlns: stock=”http://www.acme.com/service ”>
<stock_quote>
…
</stock_quote>
</stock: getStockQuoteResponse
</env:Body>
</env:Envelope>
Figure I-3 : Définition du type d’enveloppe SOAP
I.4.3. Apatche-Axis Une mise en œuvre de SOAP
Axis est essentiellement un moteur de SOAP, mais il inclut aussi :
¾
Un serveur autonome simple.
¾
Un serveur servlet comme Tomcat.
¾
Appui vaste pour WSDL.
¾
L'outillage d'émetteur (ex : WSDL2Java) qui produit des classes Java à partir du fichier
WSDL.
¾
L'outillage d'émetteur (ex : Java2WSDL) qui produit le fichier WSDL à partir de la
classe de l’interface Java.
¾
Un outil pour surveiller des paquets de TCP/IP [9].
Mémoire de Magister
22
2010
CHAPITRE I
ARCHITECTURE DES SERVICES WEB
I.4.4. WSDL (Web Service Description Language)
Le WSDL [10] est un langage qui permet de décrire les services web, et en particulier,
leurs interfaces. Ces descriptions sont des documents XML. WSDL décrit un service web en
deux étapes fondamentales : une abstraite et une concrète. Dans chaque étape, la description
utilise un nombre de constructions pour favoriser la réutilisation de la description et pour
séparer les préoccupations de conception indépendantes (voir Figure I-4).
Spécification WSDL
Partie abstraite
Types
Messages
Operations
Types de port
Partie concrète
bindings
Services et ports
Figure I-4 : Spécification d’un Service Web avec WSDL
Au niveau abstrait, WSDL décrit un service Web en termes des messages qu'il envoie
et reçoit; les messages sont décrits de façon indépendante d'un format spécifique en utilisant
un système de types, typiquement un schéma XML. La partie abstraite est composée de
définitions de "port type" qui sont analogues aux interfaces des "middleware" traditionnel.
Chaque "port type" est une collection logique d'opérations. Une "opération"
associe un
modèle d'échange de message à un ou plusieurs messages. Un message est une unité de
communication avec un service web. Il représente les données échangées dans une unique
transmission logique.
Un modèle d'échange de messages identifie l'ordre et la cardinalité des messages
envoyés et/ou reçus. Une interface groupe un ensemble d'opérations.
Mémoire de Magister
23
2010
CHAPITRE I
ARCHITECTURE DES SERVICES WEB
Au niveau concret, un "binding" indique des détails de format de transport pour une ou
plusieurs interfaces. Un "endpoint" (point final) associe une adresse de réseau à un "binding"
(attache). Finalement, un service groupe un ensemble d'endpoints qui implémente une
interface commune.
I.4.5. UDDI (Universal Description Discovery and Integration)
L’objectif primaire d'UDDI [8] est la spécification d'un canevas pour décrire et
découvrir des services Web. Le noyau d’UDDI travaille avec la notion de "business registry",
qui est un service sophistiqué de noms et répertoires. Plus précisément, UDDI définit des
structures de données et APIs pour publier les descriptions des services dans le registre et
pour interroger ce registre afin de chercher des descriptions publiées. Parce que les APIs
d’UDDI sont aussi spécifiés en WSDL avec une attache SOAP, le registre peut être invoqué
comme un service Web (en conséquence, ses caractéristiques peuvent être décrites dans le
même registre, comme un autre service).
Les spécifications du « registry » UDDI ont deux buts principaux en ce qui concerne
la découverte d'un service: le premier, soutenir les développeurs dans la découverte
d'informations sur les services. Le deuxième, permettre la liaison dynamique et en
conséquence habiliter les clients pour interroger le registre et obtenir des références aux
services d’intérêt.
I.5. Cycle de vie des services Web
¾
Chaque service Web est défini par un fournisseur. Le fournisseur de services déploie et
publie la description de son service dans des registres en vue d’être localisé par des
clients.
¾
Les clients localisent leurs besoins en terme de services en effectuant des recherches sur
les registres de services Web ;
¾
Une fois le service localisé, le client extrait sa description du registre ;
¾
Sur la base des informations définies dans la description du service, le client entreprend
une interaction (Figure I-5).
Mémoire de Magister
24
2010
CHAPITRE I
ARCHITECTURE DES SERVICES WEB
Figure I-5 : Cycle de vie de service Web
¾
SOAP : « assure la communication avec et inter services Web »
¾
WSDL : « offre un schéma formel de description des services Web »
¾
UDDI : « offre une manière uniforme de définir des registres des services Web et aussi
un schéma uniformément extensible de descriptions des services Web. »
Actuellement, SOAP, WSDL et UDDI sont les trois standards qui constituent
l’architecture Services Web. Ensemble, ils résolvent les problèmes de l’hétérogénéité des
systèmes pour l’intégration d’applications en ligne.
I.6. Avantages Des Services Web
Il y a trois caractéristiques qui ont réellement fait la différence et sont en grande partie
responsable du succès des services Web :
¾
Technologie basée sur des standards ouverts (XML).
¾
Loose Coupling ou le Découplage: Séparation nette entre les interfaces et les
implémentations. Une fois qu’un programme est publié en tant que service Web, il est
relativement simple de le déplacer grâce au fait que ces services constituent une couche
d’abstraction des fonctionnalités logicielles par rapport à l’interface.
¾
La disponibilité permanente: Utilisation universelle et abondance des outils
disponibles. La disponibilité permanente correspond aux capacités des services Web à
être actives et disponibles partout sur un réseau, ou un groupe de réseaux, sans aucuns
impacts quand à ses fonctionnalités.
Mémoire de Magister
25
2010
CHAPITRE I
ARCHITECTURE DES SERVICES WEB
I.7. Limites des services Web
Les services Web présentent quelques inconvénients :
¾
Service sans état (Stateless Service).
¾
Comportement orienté objet.
¾
Orientation client/serveur.
¾
Aucune adaptation à l’utilisateur.
¾
Aucune mémoire.
¾
Aucune gestion de vie.
¾
Aucune conversation (interaction requête/réponse simple).
¾
Communication synchrone.
¾
Pas plus que des appels à des procédures à distance passifs.
Mémoire de Magister
26
2010
CHAPITRE I
ARCHITECTURE DES SERVICES WEB
Partie 2 : Composition Des Services Web
Dans cette partie, nous présentons dans un premier temps les définitions et les types de
composition de services Web présents dans la littérature. Ensuite, nous étudions quelques
langages de composition de services Web.
I.8. Définitions et types de composition de services Web
Cette section a pour but d’exposer, d’une part, l’ensemble des définitions et objectifs
de la composition de services selon différents points de vue rencontrés dans la littérature, et,
d’autre part, les différents types de composition.
I.8.1. Définitions
La composition de services Web est un moyen efficace pour créer, exécuter, et
maintenir des services qui dépendent d’autres services. Le cycle de vie d’une composition de
services Web reposant à partir de six activités [11].
I.8.1.1. L’encapsulation de services natifs
Cette première activité permet de s’assurer que tout service peut être appelé lors d’une
composition, indépendamment de son modèle de données, de son format de message, et de
son protocole d’interaction.
I.8.1.2. L’établissement d’accord d’externalisation
Cette seconde activité consiste à négocier, établir, et appliquer des obligations
contractuelles entre les services.
I.8.1.3. L’assemblage de services composants
Cette activité permet de spécifier, à un haut niveau d’abstraction, l’ensemble des
services à composer afin d’atteindre l’objectif attendu. Cet assemblage comporte une phase
d’identification des services et de spécification de leurs interactions conformément aux
descriptions et aux accords entre services.
I.8.1.4. L’exécution de services composants
Cette activité consiste en l’exécution des spécifications de la composition
précédemment définies.
I.8.1.5. Le contrôle de l’exécution de services composites
La phase de contrôle permet de superviser l’exécution de la composition en vérifiant,
par exemple, l’accès aux services, les changements de statut, les échanges de messages. Ce
contrôle permet de détecter des violations de contrats, de mesurer les performances des services
appelés et de prédire des exceptions.
Mémoire de Magister
27
2010
CHAPITRE I
ARCHITECTURE DES SERVICES WEB
I.8.1.6. L’évolutivité des services
Cette dernière phase permet de faire évoluer la composition en modifiant les
altérations de l’organisation de services, en utilisant de nouveaux services, ou en prenant en
compte les retours de la phase de contrôle.
I.8.2. Types de composition de services Web
La plupart des travaux portant sur la composition de services Web reconnaissent deux
types de composition : l’orchestration et la chorégraphie de services. Cependant, selon les
travaux, les définitions des types de composition diffèrent.
¾
l’orchestration et la chorégraphie sont des moyens de concevoir la composition [12].
¾
tandis que l’orchestration et la chorégraphie sont des points de vue de la composition de
services [13].
I.8.2.1. Orchestration
L’orchestration est un ensemble de processus exécutés dans un ordre prédéfini afin de
répondre à un but [13]. Ce type de composition permet de centraliser l’invocation des services
Web composant. Chaque service est décrit en termes d’actions internes. Les contrats entre
deux services sont constitués selon le processus à exécuter.
L’orchestration est un ensemble d’actions à réaliser par l’intermédiaire de services
Web. Un moteur d’exécution, un service Web jouant le rôle de chef d’orchestre, gère
l’enchaînement des services Web par une logique de contrôle. Pour concevoir une
orchestration de services Web, il faut décrire les interactions entre le moteur d’exécution et les
services Web. Ces interactions correspondent aux appels, effectués par le moteur, d’action(s)
proposée(s) par les services Web composants [13].
L’orchestration de services Web consiste en la programmation d’un moteur qui
appelle un ensemble de services Web selon un processus prédéfini. Ce moteur définit le
processus dans son ensemble et appelle les services Web (tant internes qu’externes à
l’organisation) selon l’ordre des tâches d’exécution. La Figure I-6 illustre l’exécution du
moteur (lui-même un service Web – Service Web Moteur) permise par l’enchaînement de
l’exécution de deux autres services Web (le Service Web 1 puis le Service Web 2).
Cet enchaînement est possible via un opérateur d’ordonnancement (représenté par le
losange). L’exécution de la composition repose sur l’appel du Service Web 1, puis sur l’appel
du Service Web 2, réalisés tous deux par le Service Web Moteur [12].
Mémoire de Magister
28
2010
CHAPITRE I
ARCHITECTURE DES SERVICES WEB
Service
Web
Moteur
Service
Web1
Service
Web2
Figure I-6 : Illustration de l'orchestration
SW2
SW1
1° appel
Client
2° appel
Moteur
4° appel
SW4
3° appel
SW3
Légende
Requête
Résultat de la requête
Figure I-7 : Vue générale de l'orchestration
Mémoire de Magister
29
2010
CHAPITRE I
ARCHITECTURE DES SERVICES WEB
L’orchestration peut être vue comme une composition ascendante : les services Web
utilisés dans la composition existent au préalable et sont appelés selon un enchaînement
prédéfini afin de réaliser un processus précis. La Figure I-7 illustre l’orchestration. La requête
du client (logiciel ou humain) est transmise au moteur d’exécution (Moteur). Ce dernier,
d’après le processus préalablement défini, appelle les services Web (ici, SW1, SW2, SW3 et
SW4) selon l’ordre d’exécution.
I.8.2.2. Chorégraphie
La chorégraphie permet de décrire la composition comme un moyen d’atteindre un but
commun en utilisant un ensemble de services Web [12]. La collaboration entre chaque service
Web de la collection (faisant partie de la composition) est décrite par des flots de contrôle. Le
fait que la chorégraphie mette en oeuvre un ensemble de services Web afin d’accomplir un
but commun [14].
Pour concevoir une chorégraphie, les interactions entre les différents services doivent
être décrites. La logique de contrôle est supervisée par chacun des services intervenant dans la
composition. L’exécution du processus est alors distribuée.
La description de chaque service Web intervenant dans la chorégraphie inclut la
description de sa participation dans le processus. De ce fait, ces services peuvent collaborer à
l’aide de messages échangés afin de savoir si tel ou tel service peut aider dans l’exécution de
la requête [12].
Chaque service Web peut communiquer avec un autre service Web par l’intermédiaire
d’échange de messages. La
Figure I-8 représente un protocole d’initiation de collaboration entre deux services dans
le cadre d’une chorégraphie. Dans cet exemple, le Service Web 1 demande l’exécution d’une
méthode du Service Web 2 par l’intermédiaire d’un envoi de message (Requête de service).
Cette requête est acceptée par le service Web 2. Ce dernier envoi un message
d’acceptation au Service Web 1 (Acceptation). Le Service Web 1 accepte le service proposé
par le Service Web 2 en lui envoyant un message (Service admis) accordé (Acceptation) par
ce second service. Une fois ces messages échangés le Service Web 1 peut invoquer les Service
Web 2 dans le cadre de la composition.
Mémoire de Magister
30
2010
CHAPITRE I
ARCHITECTURE DES SERVICES WEB
Service Web 1
Requête de service
Acceptation
Service admis
Acceptation
Service Web 2
Figure I-8 : Illustration de la Chorégraphie
La chorégraphie est aussi appelée composition dynamique [12]. En effet, l’exécution
n’est pas régie de manière statique comme dans une composition de type orchestration. Dans
une chorégraphie, à chaque pas de l’exécution (à chaque étape de la composition), un service
Web choisit le service Web qui lui succède et implémente ainsi une partie de la chorégraphie.
La composition de type chorégraphie n’est pas connue, ni décrite à l’avance (Figure I-9).
SW1
SW2
SW4
SW3
Client
Légende
Requête
Résultat de la requête
Echange de messages
Envoi du résultat du SW
Figure I-9 : Vue générale d’une composition de services Web de type chorégraphie
Mémoire de Magister
31
2010
CHAPITRE I
ARCHITECTURE DES SERVICES WEB
Cette figure (Figure I-9) permet d’illustrer une vue générale d’une composition de
services Web de type chorégraphie. Le client (logiciel ou humain) établit une requête qui est
satisfaite par l’exécution automatique de quatre services Web (SW1, SW2, SW3 et SW4). La
requête de l’utilisateur est transmise au premier service Web (SW1) qui est exécuté. Le SW1
découvre ensuite le service Web lui succédant. Le processus de découverte repose, selon les
cas, soit sur une recherche dans un registre local ou public, soit sur une découverte globale sur
le Web à l’aide d’ontologies. Une fois le service découvert, les deux services (SW1 et SW2)
échangent des messages (comme illustré par la Figure I-9) afin de vérifier si leur
communication est viable dans le cadre de la requête. Si les échanges de messages sont
concluants, le résultat de l’action du SW1 est transmis au SW2 qui l’utilise comme paramètre
d’entrée. Le processus d’implémentation de la composition est identique pour chaque étape
(SW2 et SW3). Le SW4 termine le processus et le résultat de son action est transmis au client.
I.8.3. Langages de composition de services Web
De nombreux industriels (tels qu’IBM ou Microsoft) et consortium (tel que le W3C)
travaillent afin de mettre en œuvre un langage de composition de services Web standard (tel
que WSCI – Web Service Choreography Integration [15]). Dans cette section, nous étudions
les langages qui sont soit largement utilisés dans l’industrie (BPEL4WS), soit en cours de
standardisation (WS-CDL et OWL-S). Pour chaque langage étudié, nous indiquons l’origine
du travail, les bases théoriques sur lesquelles le langage est construit et une illustration de la
description d’une composition de services.
Depuis la naissance des termes Orchestration et Chorégraphie, de nombreux langages
de coordination de Web services sont apparus. Certains de ces langages étaient plutôt centrés
sur l’orchestration, d’autres plutôt sur la chorégraphie, représentés sur la (Figure I-10) dans
l’ordre chronologique d’apparition sur le marché:
¾
XLANG XML Business Process Language (Microsoft).
¾
BPML Business Process Modeling Language (BPMI).
¾
WSFL Web Service Flow Langage (IBM).
¾
WSCL Web Service Conversation Language (Hewlett-Packard).
¾
WSCI Web Service Choregraphy Interface (SUN).
¾
BPEL4WS-Business Process Execution Language for Web Services (IBM, Microsoft,
BEA).
¾
WS-CDL Web Services Choreography Description Language (effort du W3C).
Mémoire de Magister
32
2010
CHAPITRE I
ARCHITECTURE DES SERVICES WEB
Figure I-10 : Langages de coordination de Web services
I.8.3.1. XLANG (XML Business Process Language)
Le langage XLANG est une extension de la spécification WSDL. Elle fournit en même
temps un modèle pour une orchestration des services et des contrats de collaboration entre
celles-ci.
Les actions sont les constituants de base d'une définition de processus de XLANG. Le
fichier de description de service XLANG contient donc la description WSDL, et y ajoute les
deux autres genres d'action: arrêts (date-limite et durée) et exceptions [16].
I.8.3.2. BPML (Business Process Modeling Language)
Le BPML est un langage de modélisation des processus métiers. Il gère la
coordination de toute sorte de participants, et non pas de Web services uniquement [17].
Les processus métiers sont représentés par un flux de données, un flux d'événements
sur lesquels on peut influer en définissant des règles métier, des règles de sécurité, des règles
de transactions.
On peut ensuite lancer l'exécution du modèle et vérifier le fonctionnement théorique
des différents processus.
I.8.3.3. WSFL (Web Service Flow Language)
WSFL est un langage basé sur XML pour la description des Web services composite.
Il permet de décrire :
¾
L’enchaînement des appels d’opérations de Web services.
¾
Les
interactions
entre
deux
Web
services,
en
explicitant
les
relations
"producteur/consommateur de messages" entre leurs descriptions WSDL. Cette
description est abstraite, basée sur les deux fichiers WSDL, en laissant les Web services
"en blanc" afin de les implémenter plus tard [16].
Mémoire de Magister
33
2010
CHAPITRE I
ARCHITECTURE DES SERVICES WEB
I.8.3.4. WSCL (Web Service Conversation Language)
WSCL est un langage XML, il se charge uniquement de d´écrire les interactions entre
les couples de Web services sans spécifier comment est crée le contenu des messages
échangés [18].
WSDL permet de décrire les Web services, et WSCL se charge de décrire les
conversations entre deux Web services. Ainsi, ces deux descriptions sont séparées, afin de
permettre la réutilisation [17].
Le langage de conversation WSCL ne s’occupe que de la description de conversations
entre paires de Web services. Il est donc plus léger que WSCI qui décrit des conversations
entre plusieurs Web services, et non pas seulement entre deux Web services. Mais
contrairement à WSCI, WSCL utilise une forme de procédé pour décrire la conversation, et
l’exécution de la conversation n’est pas centralisée. C’est un langage de chorégraphie.
I.8.3.5. WSCI (Web Service Choreography Interface)
WSCI est un langage de description basé sur XML, il décrit l’interface du Web service
participant à un échange donné de message (la chorégraphie de messages) [19].
« WSCI est un langage XML, permettant de décrire la chorégraphie entre les Web services.
Ainsi, les interfaces statiques des Web services sont décrites en WSDL, et la chorégraphie
entre eux est décrite en WSCI »[17].
Le langage WSCI permet de décrire les interfaces de Web services pour réaliser une
chorégraphie. Ce langage offre une vision différente de la collaboration, qui prend une forme
de conversation entre plusieurs Web services. La collaboration se passe alors d’une manière
décentralisée en utilisant plusieurs procédés distribués plutôt qu’un procédé principal.
I.8.3.6. BPEL4WS
BEA, IBM, SAP, Siebel Systems et Microsoft ont uni leurs efforts afin de produire un
langage de composition de services Web, conçu pour supporter les processus métier à travers
les services Web.
Ce langage, BPEL4WS (Business Process Execution Language for Web Services), est
issu de la fusion de deux langages : WSFL – Web Service Flow Language [20] d’IBM et
XLANG de Microsoft. BPEL4WS combine les caractéristiques d'un langage de processus
structuré par bloc (XLANG) avec ceux d'un langage de processus basé sur les processus
métier (WSFL). BPEL4WS est basé sur XML et sur les workflows. Ce langage distingue les
processus abstraits des processus exécutables [21].
Mémoire de Magister
34
2010
CHAPITRE I
ARCHITECTURE DES SERVICES WEB
a. Le processus abstrait
Ce processus spécifie les messages échangés entre les différentes parties (services Web
composants) sans indiquer le comportement de chacune d’elles.
Business Protocol, c'est-à-dire la spécification du comportement des partenaires par
rapport aux messages échangés, sans rendre public le comportement interne [22]. Ce
processus abstrait peut être relié à une composition de type chorégraphie. Les services Web
communiquent alors à l’aide d’échanges de messages (partie gauche de la Figure I-11).
b. Le processus exécutable
Ce processus permet de spécifier l’ordre d’exécution des activités, le partenaire
concerné, les messages échangés entre ces partenaires, et les mécanismes des erreurs et des
exceptions. En d’autres termes, il s’agit du moteur de l’orchestration donnant une
représentation indépendante des interactions entre les partenaires.
La Figure I-11 illustre la mise en œuvre des deux types de processus (exécutable et
abstrait) par BPEL4WS. La définition du processus métier est donnée par le processus
exécutable. Les processus abstraits gèrent les invocations entre les différents services Web
(WS) permettant l’exécution de la composition de services définie dans le processus
exécutable.
Trois éléments permettent à BPEL4WS de gérer le flot de processus dans le processus
exécutable :
Les transactions (Exception handling and transactions), les partenaires (Roles and
Partners) et les espaces de stockage (Persistance and Containers) (Figure I-11).
¾
Les transactions : Les transactions sont utilisées dans BPEL4WS pour gérer les
erreurs et les appels d’autres services si le service appelé est indisponible ou défaillant.
¾
Les partenaires : Les partenaires sont différents services Web invoqués dans le
processus. Ils ont chacun un rôle spécifique dans un processus donné. Chaque partenaire
est décrit par son nom, son rôle (en tant que service indépendant), et son rôle dans le
processus. Dans la Figure I-12, présentant la définition d’un processus exécutable en
BPEL4WS, nous pouvons voir les définitions de deux partenaires (des lignes 2 à 11). Le
fait de décrire deux niveaux de rôle permet à chaque partenaire d’avoir une vie
indépendante des compositions dans lesquelles il intervient.
Mémoire de Magister
35
2010
CHAPITRE I
¾
ARCHITECTURE DES SERVICES WEB
Les espaces de stockage : Les espaces de stockage permettent la transmission des
données. Le flot de processus BPEL4WS permet que ces données soient cohérentes à
travers les messages échangés entre les services Web. Un message peut être un message
d’appel (invoke), de réponse (reply) ou d’attente (receive).
Figure I-11 : Mise en œuvre des deux types de processus (exécutable et abstrait) par
BPEL4WS
La structure des différentes activités peut être, soit séquentielle (Sequential flow), soit
parallèle (Parallel flow). Si l’activité est parallèle, alors plusieurs services peuvent être
invoqués en même temps.
Mémoire de Magister
36
2010
CHAPITRE I
ARCHITECTURE DES SERVICES WEB
Figure I-12 : Exemple de code source.
I.8.3.7. WS-CDL (Web Services Choreography Description Language)
Le langage de description de chorégraphies de Web services, WS-CDL est un effort du
W3C ayant pour objectif d’apporter un langage reflétant des collaborations pair-à-pair (P2P)
entre services. C’est un langage basé sur XML définissant, selon un point de vue global, le
comportement observable commun et complémentaire des services, dont le résultat est
l'accomplissement d'un processus métier[23].
En WS-CDL, seules les interactions entre deux Web services sont considérées. La
description qui en découle prend la forme d'un processus dont l'exécution est effectuée de
manière décentralisée, comme une chorégraphie. La description des interactions est
indépendante des environnements d'exécution des services impliqués. Une définition globale
des conditions et des contraintes selon lesquelles les messages sont échangés est donnée par le
biais d'un contrat que chaque partenaire doit respecter [24] .
I.9. Conclusion
Dans ce chapitre, nous avons mis en relief les différents langages proposés par le
consortium W3C permettant aux fournisseurs de décrire leurs services Web. Cette étape de
description est le premier processus indispensable (après l’implémentation du service) dans le
cycle de vie d’une application basée sur une AOS (Architecture Orientée Service).
Mémoire de Magister
37
2010
CHAPITRE II
LES PLATES FORMES COLLABORATIVES
CHAPITRE II. LES PLATES FORMES
COLLABORATIVES
Mémoire de Magister 2010
38
Chemame Chaouki
« Implémentation d’une infrastructure collaborative asynchrone basée sur les services web »
LES PLATES-FORMES COLLABORATIVES
CHAPITRE II
II.1. Introduction
Le Groupware, ou logiciel de travail en groupe, ou logiciel collaboratif, désigne une
catégorie des logiciels conçus pour une utilisation en réseau par plusieurs individus faisant
partie d'une même équipe de travail ou amenés à travailler ensemble [25].
Cependant un grand nombre de ces outils a été conçu dans le but évident de faciliter la
tache aux personnes qui travaillent en réseau
mais il est extrêmement rare que les
développeurs de logiciels ou d’outils de communication consultent des utilisateurs pour
s’assurer de répondre à l’ensemble des besoins de toutes les clientèles c’est la raison qui nous
incite à développer l’outil de travail qui répond à nos propre besoins a l'aide des plateformes
collaboratives open source.
II.1.1. Les Outils Synchrones
Se sont des outils de collaboration qui s’utilisent en temps réel entre des personnes
situées à des endroits différents. La communication à distance entre les interlocuteurs se fait
donc un peu comme au téléphone c’est-à-dire en temps réel. Le but de ce type de
communication est d’échanger des informations le plus rapidement possible pour décider de
la suite des événements ou encore de réunir différentes personnes pour les informer en même
temps de certaines informations à consigner (Exemple : réunions, cours). Parmi ces types
d’outils de collaboration synchrones, on peut citer : la vidéoconférence, la téléphonie par
Internet, la séance de clavardage, l’utilisation de tableau partagé ou (« whiteboard »).
II.1.2. Les Outils Asynchrones
Ces outils sont utilisés dans le web mais à des moments différents dans le temps. Ces
outils, à temps différé, permettent une communication en continu sans tenir compte des
obstacles liés à l’espace et au temps. (Exemple : La messagerie électronique, le forum de
discussion, les listes de diffusion, les journaux Web (type blogue, wiki, portails et les outils de
transfert de fichiers).
II.2. Définition de travail collaborative
Dans la littérature scientifique il y a quelques nuances entre le « travail coopératif » et
« travail collaboratif ». Le travail coopératif implique une division du travail entre les
participants, chaque participant étant responsable d’une partie du problème à résoudre. Dans
le travail collaboratif, les participants s’engagent tous dans les mêmes tâches, en se
coordonnant, afin de résoudre le problème ensemble. Cette distinction n’est pas toujours
pertinente, il n’est pas toujours facile de différencier les deux [26].
Mémoire de Magister
39
2010
LES PLATES-FORMES COLLABORATIVES
CHAPITRE II
Le travail collaboratif [27], appelé à l'origine travail coopératif (ou Computer upported
Cooperative Work), correspond à l'utilisation d'ordinateurs en réseau pour le travail des
groupes d'utilisateurs. Pour clarifier nos propos, deux citations très générales définissent bien
le domaine des systèmes collaboratifs:
¾
Première citation est donnée par [28] : « Système à base d'ordinateurs qui supporte
des groupes de personnes réalisant en commun une tâche ou un but et qui fournit une
interface pour accéder à un environnement commun ».
¾
Deuxième citation est donnée par [29] : « Système informatique qui facilite la
résolution de problèmes par un ensemble de décideurs travaillant en groupe ».
Donc un système collaboratif est un système informatique qui regroupe plusieurs
utilisateurs répartis au sein de différents groupes. Ce système facilite la prise en charge
d’activités commune aux membres d’un groupe et fournit une interface pour un
environnement partagé.
II.3. Catégorie des systèmes collaboratifs
Les systèmes collaboratifs actuels sont principalement répartis suivant deux catégories
: les collecticiels et les systèmes de Workflows [30].
II.3.1. Les collecticiels
Le collecticiel (ou groupware) désigne tous les produits logiciels, outils, services ou
plates-formes, conçus pour des groupes d'utilisateurs. Le collecticiel représente la technologie
qui met en œuvre cette coopération en exploitant les progrès marqués par les technologies
d'information dans le domaine des réseaux, mais aussi dans les domaines du matériels et du
logiciels. Toutes les technologies qui mettent en œuvre la communication et le partage
d'information ont aussi une place importante dans cette technologie (groupware) qui peut être
définie comme étant tout système aidant les individus à coopérer au sein d'un groupe en vue
d'atteindre des objectifs communs [6].
II.3.2. Le Workflow
Le workflow se joint à la définition des rôles et à l'exécution des tâches inhérentes aux
activités du processus. Au-delà, le workflow s’étend à la gestion des mécanismes de
coordination et de coopération entre les différents acteurs d'un processus. Dans toutes les
organisations, la division du travail et le mécanisme de coordination qui lui sont sous-jacents,
reposent sur de nombreux procédés structurés et prédéfinis. A cet effet, le workflow recouvre
tous les processus de travail prédéfinis pour lesquels il est possible de formaliser des règles de
gestion et de coordination.
Mémoire de Magister
40
2010
LES PLATES-FORMES COLLABORATIVES
CHAPITRE II
Ces règles sont ensuite implémentées dans un système de gestion de workflow qui
permet d’améliorer les performances en qualité des produits, des services fournis, de réduire
les coûts et les délais au niveau de nombreux processus.
II.4. Les principaux plates-formes existantes
II.4.1. SAKAI
Sakai [30] est un environnement collaboratif open source lancé en 2004 par quatre
universités américaines avec pour objectif de consolider leurs développements en matière de
plateforme d’apprentissage. Chacune de ces universités, soit Indiana University,
Massachusetts Institute of Technology (MIT), Stanford University et University of Michigan
utilisaient des systèmes de gestion de cours différents, souvent développé à l’interne. A ce
groupe s’est joint des membres de Uportal ainsi du projet OKI (Open Knowledge Initiative).
Sakai est développé en Java et utilise plusieurs technologies issues de J2EE. Il est construit
sur des frameworks et librairies libres tels que Spring, Hibernate, log4j et Jakarta Common.
Sakai permet la mise en place d’une architecture orientée service (SOA) en offrant la
possibilité d’interconnecter les différents composants à l’aide des services Web (Figure II-1).
Figure II-1 : Architecture Générale de Sakai
Sakai se décompose en trois composants principaux : les outils, les services et le Framework.
¾
Les outils : correspondent aux fonctionnalités présentées aux utilisateurs (barres de
navigation, texte de présentation, forum de discussion, calendrier,…). Seuls les outils
génèrent du contenu graphique. Les contenus qu’ils présentent sont accédés via les services.
¾
Les services : regroupent l’ensemble des opérations relatives à la plateforme. Il s’agit, entre
autres, l’authentification, la gestion des utilisateurs, la gestion des contenus, l’accès aux
données et la gestion des groupes, ...etc
¾
Le Framework : agit comme le point central de l’application, son rôle est de gérer et de
référencer les services et les outils.
Mémoire de Magister
41
2010
LES PLATES-FORMES COLLABORATIVES
CHAPITRE II
Sakai propose des outils de collaboration synchrones, tel que les salles de discussion
(également appelées chat room), ainsi que des outils de collaboration asynchrones comme par
exemple des forums de discussion. Les salles de discussion permettent aux élèves inscrits
dans le même cour de discuter entre eux en direct. Le professeur peut également organiser des
périodes de consultation pendant lesquelles il sera connecté à la salle de discussion afin
répondre aux questions des étudiants. Ces échanges ne sont pas confidentiels et il est possible
de consulter les derniers messages sur la page d’accueil du site. Quant aux forums de
discussion, ils permettent aux étudiants et enseignants d’échanger des messages qui sont
consultables par tous les membres de la plateforme.
II.4.2. Open-Xchange
II.4.2.1. Présentation
Le serveur Open-Xchange est un environnement de collaboration et de messagerie
permettant de : enregistrer les contacts, prendre des rendez-vous, planifier les tâches, envoyer
des emails, partager des documents et d'autres choses encore que les utilisateurs pourront
partager avec les autres.
Cet environnement peut être utilisé par un navigateur Web ou par de multiples clients
lourds comme KDE Contact, Apples Ical, Konqueror, Mozilla Calendar et bien d'autre basé
sur des standards ouverts (Figure II-2).
Si vous utilisez le connecteur Outlook OXTender, les fonctionnalités de OpenXchange peuvent aussi être accessibles via Outlook ou certains périphériques mobiles.
Chaque produit tiers permet d'accéder aux différentes applications en utilisant
différentes interfaces comme WebDAV (XML), LDAP, ICal et HTTP/S. Toutes ces
fonctionnalités font de Open-Xchange Server un produit puissant pouvant être utilisé
facilement par tous les utilisateurs depuis toutes les plateformes pour accéder aux emails ou
partager des informations.
Open-Xchange Server est basé sur les modules open source suivant :
¾
Un serveur HTTP/S (Apache)
¾
Un moteur de génération de Servlet (Tomcat)
¾
Une base de donnée (PostgreSQL)
¾
Un annuaire (OpenLDAP)
¾
Un serveur de messagerie SMTP / IMAP / POP3 (Postfix et Cyrus)
Mémoire de Magister
42
2010
LES PLATES-FORMES COLLABORATIVES
CHAPITRE II
Figure II-2 : Open-Xchange
II.4.2.2. Fonctionnalités de Open-Xchange Server
¾
Portail : Une page d'accueil permet d'avoir un aperçu de tous les éléments concernant
l’utilisateur, y compris les emails, calendrier et contacts et un accès direct à toutes les
informations personnelles comme les tâches, les réunions, les projets en cours. Les
nouveaux éléments sont mis en gras pour une meilleure visibilité.
¾
Calendrier : Ce module OPEN-XCHANGE permet de coordonner les rendez-vous
personnels et de grouper avec les informations de disponibilité de chaque utilisateur et
chaque ressource.
¾
Contacts : Un module pour la gestion de contact peut être personnalisé avec des
catégories optionnelles, le carnet d'adresse global de la société, les contacts relatifs aux
projets internes et externes.
¾
Tâches : Un module OPEN-XCHANGE pour la gestion et l'administration des tâches
individuelles.
¾
Projets : Un module OPEN-XCHANGE conçu pour organiser les équipes qui
travaillent sur des projets en planifiant les réunions, les tâches, et en gérant les
documents rattachés au projet.
¾
Gestion de documents : Un module OPEN-XCHANGE pour la gestion de documents
inclut des fonctionnalités de gestion de version, de verrouillage pendant l'édition des
documents.
Mémoire de Magister
43
2010
LES PLATES-FORMES COLLABORATIVES
CHAPITRE II
¾
Webmail : Un module OPEN-XCHANGE permet de lire, filtrer, envoyer et gérer les
emails et les dossiers de messagerie en utilisant le carnet d'adresse global ou personnel,
les signatures, ...etc
¾
Base de connaissances, Signet, Forum et tableau d'affichage : Il existe d'autres
modules pour la gestion des connaissances entre les employés: l'utilisateur peut
construire une base de connaissance centralisée, gérer les signets et les discutions dans
les forums.
II.4.3. Silverpeas
La plateforme Silverpeas est un outil destiné à faciliter la collaboration des différents
acteurs et partenaires de l’entreprise, par la mise à disposition d’outils dans le cadre d’un
Intranet, d’un Extranet ou d’un site Internet « Web 2.0 » (Figure II-3). Silverpeas propose
différents services.
Figure II-3 : Interface Silverpeas.
II.4.3.1. Des services collaboratifs
Les services décrits ci-après ne constituent qu’une petite partie du catalogue de
services, riche de plus de 40 éléments. (Agendas partagés, Annuaires, Documents partagés,
Galerie d’images, Blogs, Forums, Chat, Enquêtes, Messagerie instantanée, Notifications et
abonnements, Actualités , Annuaire de sites , Designer de page web , Designer de site web ,
Journal périodique ,Gestion de contenu multi-axes , Hyperliens , Lettre informative )
Mémoire de Magister
44
2010
LES PLATES-FORMES COLLABORATIVES
CHAPITRE II
a. Le service« ALMANACH »
Il permet de créer et de visualiser les différents agendas d’évènements définis dans les
espaces et sous espaces collaboratifs. L’Almanach est maintenu par le publieur de ce service.
Le gestionnaire du service le déploie en lui donnant :
¾
Un titre, un descriptif, une date de début et de fin, un caractère prioritaire ou non
¾
La possibilité d’associer des fichiers aux événements.
Chaque événement peut être décrit avec une heure et un lieu. Une extension de
fonctionnalités permet en outre de réserver des ressources (salles, video- projecteurs), et un
planning de formations.
b. Le service« CHAT »
Le service « Chat » offre un lieu de réunion virtuel où les utilisateurs peuvent se
rencontrer et discuter avec tous les collaborateurs de l’entreprise ou en privé au sein d’un
espace collaboratif ou de sous-espaces.
Le Chat est défini par:
¾
Un titre, un sujet, un nombre maximum d’utilisateurs
¾
Une liste de participants
¾
Le nombre maximum de messages
¾
La fréquence de réactualisation
¾
Liste des messages publics et privés
c. Le service « ANNUAIRE »
Ce service permet de créer des annuaires partagés instanciables dans chaque espace
collaboratif. Ces annuaires peuvent intégrer des contacts internes et externes à l’organisation.
Les contacts sont définis par :
¾
Les coordonnées professionnelles complètes de la personne
¾
L’auteur de la fiche contact
¾
La date de création
¾
Le modèle de présentation pouvant inclure une photo et les coordonnées personnelles
d. Le service « ENQUETE »
Ce service permet de créer des enquêtes d’opinion au sein de l’organisation. Les
participants peuvent suivre l’évolution des réponses en temps réel. Le publieur du service gère
l’intégralité du processus.
Mémoire de Magister
45
2010
LES PLATES-FORMES COLLABORATIVES
CHAPITRE II
Ce service est défini par :
¾
Un libellé
¾
Une description
¾
Les dates de création, d’ouverture et de clôture des enquêtes
¾
Le nombre de questions
¾
Le type de questions
¾
Le nombre de réponses autorisées
¾
La possibilité d’ajouter un commentaire
Les fonctionnalités majeures sont :
¾
Création d’enquêtes
¾
Définition de questions ouvertes ou fermées
¾
Définition de questions à choix multiple
¾
Possibilité d’associer des images aux questions
¾
Suivi du niveau de participation et des résultats
¾
Organisation des enquêtes en cours, terminées et en attente
e. Le service « FORUM »
Ce service permet l’organisation et le suivi de forums de discussion sur l’ensemble de
l’entreprise ou au niveau d’un espace collaboratif.
Forum est défini par :
¾
Un thème et un descriptif
¾
Des messages postés par les participants
¾
L’auteur
¾
La date de publication
¾
La possibilité de répondre aux messages
Les fonctionnalités majeures sont :
¾
Création de forum
¾
Contact du modérateur du Forum
¾
Definition des participants
Mémoire de Magister
46
2010
LES PLATES-FORMES COLLABORATIVES
CHAPITRE II
f. Le service de « GESTION DE PROJET » - (PROJECT ORGANIZER)
Ce service permet au chef de projet d’allouer des tâches aux membres de son équipe et
faire le suivi de l’évolution du projet. Chaque participant peut gérer ses propres tâches tout en
visualisant le travail réalisé par les autres membres de l’équipe.
Un Project est défini par :
¾
Le nom du projet .
¾
Un chef de projet
¾
Les objectifs du projet
¾
Les dates de début et de fin du projet
¾
La désignation du projet
¾
La personne affectée au projet
¾
La durée du projet
¾
Le taux d’avancement du projet
¾
La description des actions
Les fonctionnalités majeures sont :
¾
Création du projet
¾
Création de tâches et de liens entre tâches pour re-planification automatique
¾
Allocation des tâches aux membres de l’équipe
¾
Réalisation du suivi des tâches par le diagramme de Gantt
¾
Notification des modifications de tâches aux ressources concernées
g. Le service « PLAN D’ACTION »
Il permet de faire vivre un plan d’action décidé en réunion. Le service Plan d’actions
reprend le quasi totalité des fonctionnalités du composant Project Organiser :
¾
le diagramme de Gantt
¾
les commentaires au niveau global et au niveau d’une tâche
¾
les pièces jointes au niveau d’une tâche
¾
la notion de sous-tâche (ou de tâche composite)
Mémoire de Magister
47
2010
LES PLATES-FORMES COLLABORATIVES
CHAPITRE II
h. Le service « QUIZ »
Le service Quizz permet d’évaluer le niveau de connaissance acquis par l’audience
visée et de faire un suivi des formations. Ce service est instancier dans l’espace entreprise
mais également dans chaque espace collaboratif.
Il peut être utilisé pour des tests de vérification des connaissances et gestion des formations.
Le service est défini par :
¾
Un titre et un descriptif
¾
Des dates de création, d’ouverture et de clôture
¾
Le nombre de questions par page
¾
Le nombre de participations possibles
¾
Un libellé pour les questions
¾
Le type de réponse (unique ou multiple)
¾
Le nombre de réponses proposées
¾
Le nombre de points minimum, maximum et de pénalité attribuables
¾
Un indice
Les fonctionnalités majeures sont :
¾
Création du questionnaire
¾
Définition des participants
¾
Définition des questions
¾
Suivi du niveau de participation et des résultats
i. Le service « NEWS »
Le service « News » permet de diffuser des nouvelles brèves à toute l’organisation ou à un
public plus restreint.
Elles ont une durée de vie définie par le publieur du service.
Un service « News » est défini par :
¾
Un titre
¾
Une information
¾
Une date de début et de fin de diffusion
Les fonctionnalités majeures sont :
¾
Publication d’informations
Mémoire de Magister
48
2010
LES PLATES-FORMES COLLABORATIVES
CHAPITRE II
¾
Copier/coller
j. Le service « BLOG »
Le service « News » permet de gérer le contenu d’un blog.
Un « billet » est défini par:
¾
Un titre
¾
Une date de publication
¾
Une catégorie
¾
un contenu WYSIWYG
¾
Des liens
Les fonctionnalités majeures sont :
¾
Créer des catégories
¾
Ajouter un billet (article) et le rattacher à une catégorie
¾
Ajouter des commentaires sur un billet
¾
Rechercher par date, par catégorie
¾
Recherche sur mot clé.
k. Le service « GALLERY » (BANQUE D’IMAGES)
Le service Gallery Permet de gérer et d’afficher des fichiers de type images dans une
arborescence d’albums. Gallery permet de classer et d’afficher des images (photos, logos,
plans…) dans des albums
Une image est définie par:
¾
Un titre, une description
¾
Une vignette
¾
Un auteur
¾
Des dates limites de téléchargement
¾
Si l’image est téléchargeable au format original
Les fonctionnalités majeures sont :
¾
Ajouter un album
¾
Ajouter des images
¾
Classer les images, trier les images
Mémoire de Magister
49
2010
LES PLATES-FORMES COLLABORATIVES
CHAPITRE II
¾
Choisir la taille des vignettes
¾
Diaporama
l. Le service « SILVERCRAWLER »
Ce service permet de donner accès en consultation à des répertoires d’un serveur de
fichiers, et d’indexer le contenu de façon à ce que le moteur de recherche de Silverpeas puisse
compléter ses résultats avec des fichiers contenus dans ces répertoires.
Les droits d’accès peuvent donc être gérés au niveau de ce service.
m. Le service de NOTIFICATION
Ce puissant outil permet à l’utilisateur de créer des canaux d’information par lesquels
il sera notifié, soit spontanément par des contributeurs, soit automatiquement, dans le cas d’un
abonnement à des thèmes, ou Forums de discussion.
Les canaux par lequel les informations viennent à l’utilisateur sont au choix : boîte (s) e-mail,
SMS via un serveur SMS, fenêtre pop-up, boîte de notification dans la plateforme.
n. WORKFLOW DE CIRCULATION DES INFORMATIONS
Grâce à son moteur de workflow, Silverpeas permet d’automatiser et coordonner les
procédures de circulation des informations, auprès de différents utilisateurs, en faisant passer
formulaires, documents et tâches d’un intervenant à un autre selon des règles procédurales
prédéfinies, de façon à ce que chacun puisse remplir son rôle au moment opportun.
Exemples : Procédure de validation d’une demande d’achat, d'un contenu destiné au Web, ou
simple procédure de gestion des congés.
Dans Silverpeas, les INTERVENANTS (ex : le comptable) se voient attribuer des
rôles (ex : valideur, responsable hiérarchique, …) et accomplissent des ACTIONS (ex :
valider une demande de congés), commandées par L’ETAT d’avancement de la procédure (ex
: demande en attente de validation). Le DOSSIER rassemble l’ensemble des informations, des
pièces et des documents qui font l’objet d’une procédure (ex : justificatifs et formulaire de
saisie d’une note de frais) et les données (ex : nombre de jours, commentaire du responsable).
¾
Des Workflows documentaires,
¾
Un CMS (Content Management System)
¾
L’accès à d’autres applications (fonction portail)
II.4.3.2. Des services de GED et de gestion de connaissances
Les services « ThemeTracker » ou « FileBox » sont les deux principaux services de
gestion documentaire. (GED).
Mémoire de Magister
50
2010
LES PLATES-FORMES COLLABORATIVES
CHAPITRE II
¾
ThemeTracker est une gestion de contenu multi thèmes, qui permet de créer des
publications à l'aide de formulaires ou d'un éditeur WYSIWYG, et de leur associer des
pièces jointes.
¾
FileBox plus simple, permet de construire des bibliothèques de fichiers et de les classer
II.4.4. Xwiki
XWiki est un wiki Open-Source de seconde génération (ou "wiki applicatif") écrit en
Java (Figure II-4). Il offre non seulement les principales fonctions d'un wiki (édition
collaborative, suivi d'information, gestion de l'accès des membres), mais aussi des possibilités
de développement avancées comme :
¾
Créer et utiliser de nouveaux templates dans la création de page wiki grâce à
l'intégration de Velocity.
¾
créer des pages wiki "applicative" grâce à l'intégration du langage de script Groovy.
¾
créer de nouveaux objets Xwiki en plus des objets prédéfinis (albums photo, calendrier,
blog) grâce à une API de plugin Java .
¾
gérer finement les droits d'accès : cela permet de restreindre certaines actions (lecture,
écriture, administration) à une certaine population (un simple internaute, un membre du
wiki ou un administrateur) et ceci, par page ou par espace du wiki.
Figure II-4 : Interface Xwiki.
Mémoire de Magister
51
2010
LES PLATES-FORMES COLLABORATIVES
CHAPITRE II
II.5. Conclusion
Dans ce chapitre nous avons vu quelques plateformes collaboratives et les différents
outils de communication utilisés dans ces derniers. Ce court panorama nous a donné une idée
sur les systèmes existants et les fonctionnalités qu’il serait intéressant de l’exploiter dans
notre contribution.
Mémoire de Magister
52
2010
CHAPITRE III
ARCHITECTURE PROPOSEE
CHAPITRE III. ARCHITECTURE
PROPOSEE
Mémoire de Magister 2010
53
Chemame Chaouki
« Implémentation d’une infrastructure collaborative asynchrone basée sur les services web »
CHAPITRE III
ARCHITECTURE PROPOSEE
III.1. Introduction
Dans ce chapitre nous allons donner une architecture globale d’une plate-forme
collaborative basée sur les différents outils de collaborations, cette architecture englobe
plusieurs technologies.
III.2. L’outil open source
III.2.1. Définition
L'expression Open Source signifie littéralement "source ouverte" en français,
s'applique à certains logiciels dont la licence respecte les critères définis par l'association
Open Source Initiative(OSI).
L’Open Source Initiative défend en particulier la liberté d'accéder aux sources des
programmes. Ainsi, les logiciels approuvés par l’OSI offrent la possibilité de libre
redistribution, d'accès au code source et de travaux dérivés.
III.2.2. La licence open source
« Open Source » implique plus que la simple diffusion du code source. La licence d'un
programme « open-source » doit correspondre aux critères suivants :
III.2.2.1. Libre redistribution
La licence ne doit pas empêcher de vendre ou de donner le logiciel en tant que
composant d'une distribution d'un ensemble contenant des programmes de diverses origines.
La licence ne doit pas exiger que cette vente soit soumise à l'acquittement de droits d'auteur
ou de royalties.
III.2.2.2. Code source
Le programme doit inclure le code source, et la distribution sous forme de code source
comme sous forme compilée doit être autorisée. Quand une forme d'un produit n'est pas
distribuée avec le code source correspondant, il doit exister un moyen clairement indiqué de
télécharger le code source, depuis l'Internet, sans frais supplémentaires. Le code source est la
forme la plus adéquate pour qu'un programmeur modifie le programme. Il n'est pas autorisé
de proposer un code source rendu difficile à comprendre. Il n'est pas autorisé de proposer des
formes intermédiaires, comme ce qu'engendre un pré processeur ou un traducteur
automatique.
III.2.2.3. Travaux dérivés
La licence doit autoriser les modifications et les travaux dérivés, et leur distribution
sous les mêmes conditions que celles qu'autorise la licence du programme original.
Mémoire de Magister
54
2010
CHAPITRE III
ARCHITECTURE PROPOSEE
III.2.2.4. Intégrité du code source de l'auteur
La licence ne peut restreindre la redistribution du code source sous forme modifiée
que si elle autorise la distribution de fichiers « patch » aux côtés du code source dans le but de
modifier le programme au moment de la construction. La licence doit explicitement permettre
la distribution de logiciel construit à partir du code source modifié. La licence peut exiger que
les travaux dérivés portent un nom différent ou un numéro de version distinct de ceux du
logiciel original.
III.2.2.5. Pas de discrimination entre les personnes ou les groupes
La licence ne doit opérer aucune discrimination à l'encontre de personnes ou de
groupes de personnes.
III.2.2.6. Pas de discrimination entre les domaines d'application
La licence ne doit pas limiter le champ d'application du programme. Par exemple, elle
ne doit pas interdire l'utilisation du programme pour faire des affaires ou dans le cadre de la
recherche génétique.
III.2.2.7. Distribution de la licence
Les droits attachés au programme doivent s'appliquer à tous ceux à qui le programme
est redistribué sans que ces parties ne doivent remplir les conditions d'une licence
supplémentaire.
III.2.2.8. La licence ne doit pas être spécifique à un produit
Les droits attachés au programme ne doivent pas dépendre du fait que le programme
fait partie d'une distribution logicielle spécifique. Si le programme est extrait de cette
distribution et utilisé ou distribué selon les conditions de la licence du programme, toutes les
parties auxquelles le programme est redistribué doivent bénéficier des droits accordés lorsque
le programme est au sein de la distribution originale de logiciels
III.2.2.9. La licence ne doit pas contaminer d'autres logiciels
La licence ne doit pas apposer de restrictions sur d'autres logiciels distribués avec le
programme qu'elle couvre. Par exemple, la licence ne doit pas exiger que tous les programmes
distribués grâce au même médium soient des logiciels « open-source ».
Mémoire de Magister
55
2010
CHAPITRE III
ARCHITECTURE PROPOSEE
III.3. L’intégration des applications au sein d'un environnement
collaborative
III.3.1. Les problèmes liés à l’intégration d’applications
Depuis que CORBA a pensé que l’intégration d’applications sur des plates-formes
hétérogènes était possible, beaucoup de problèmes sont apparus et deviennent de plus en plus
complexes chaque année. Parmi ces problèmes on peut citer :
III.3.1.1. La complexité
Aujourd’hui, certains aspects informatiques ont changé, les environnements sont plus
complexes, l’accès à faible coût et omniprésent à Internet a créé de nouveaux modèles de
développement surtout pour les entreprises qui souhaitent fusionner des applications entières
qui répondent à leurs besoins. Dans un environnement d’une telle complexité, les solutions
point à point ne font qu’exacerber les problèmes et ne relèvent jamais véritablement les défis.
Donc il faut développer des systèmes qui incorporent le caractère hétérogène des
organisations, en tant que composant essentiel de l’environnement informatique, de sorte que
ces systèmes puissent prendre en charge une gamme diverse et sans limite de matériel, de
systèmes d’exploitation, de logiciels intermédiaires, de langages et de stockage de données.
III.3.1.2. Une programmation redondante et ne pouvant être réutilisée
Comme dans beaucoup de sociétés, l’éventail des applications a peut-être augmenté en
raison de fusions ou d’acquisitions d’autres entreprises. Le résultat est de faire face à des
applications redondantes ou à des applications dont les fonctions ne peuvent être facilement
réutilisées. Il se peut que chaque unité de l’organisation ait travaillé indépendamment des
autres, ce qui freine l’effort de coordination visant à créer un parc ou des services
informatiques fonctionnels et réutilisables. Cette redondance augmente les coûts et le temps
de mise sur le marché pour le déploiement de nouveaux produits et services, car les
modifications doivent être effectuées pour chaque application ou système concerné. Le fait de
ne pouvoir réutiliser certaines fonctions requiert, en fin de compte, plus de ressources, et
souvent plus de temps, pour livrer de nouvelles applications.
III.3.1.3. Des interfaces multiples
Il faut penser au problème d’intégration. Les développeurs d’entreprises par exemple
doivent faire face à des problèmes d’intégration, quelle que soit leur nature, en raison d’une
fusion, d’un nouveau partenariat commercial ou simplement d’un besoin d’interconnexion
entre des systèmes existants. Si n systèmes d’applications doivent être directement
interconnectés, le processus va créer n.(n-1) connexions ou interfaces. Comme illustre la
Figure III-1, où chaque pointe de flèche représente une interface.
Mémoire de Magister
56
2010
CHAPITRE III
ARCHITECTURE PROPOSEE
Application 1
Application 2
Application 3
Application 4
Application 5
Figure III-1 : Le problème d’intégration
Par conséquent, si on a besoin d’intégrer un autre système d’applications (n+1), on
doit créer, documenter, tester et maintenir 2n interfaces nouvelles. Dans la Figure III-1,
l’ensemble de cinq applications requiert 20 interfaces directes. L’ajout d’une sixième
application supposerait dix nouvelles interfaces. Et pour augmenter la complexité de
l’opération, on doit également modifier le code de chaque application.
III.3.2. Les exigences de la programmation d’aujourd’hui
Au vu des problèmes débattus précédemment, il devrait être évident qu’il est
important de développer une architecture qui satisfasse un ensemble d’exigences. Ces
exigences devraient inclure les éléments suivants :
III.3.2.1. L’exploitation du parc informatique existant
Il s’agit de la condition la plus importante. Il est rare que des systèmes existants
puissent être éliminés. Ils contiennent certainement des données de grande importance.
L’objectif est de constituer une nouvelle architecture dont le rendement corresponde à ce
qu’on souhaite.
III.3.2.2. La prise en charge de tous les types d’intégrations requis
Cela comprend l’interaction avec l’utilisateur (pour fournir un fonctionnement unique
et interactif), la connectivité des applications (pour créer un modèle de communication qui
sous-tend toute l’architecture), l’intégration des processus (pour organiser les applications et
les services), l’intégration des informations (pour rassembler et déplacer les données)
et la possibilité d’effectuer de futures intégrations (pour créer et déployer de nouveaux
services et applications).
Mémoire de Magister
57
2010
CHAPITRE III
ARCHITECTURE PROPOSEE
III.3.2.3. La possibilité de mises en œuvre incrémentielles et de migration
du parc
Si cette exigence est satisfaite, l’un des aspects essentiels du développement de
l’architecture pourra être mis en place la possibilité de produire un retour sur investissement
différentiel. D’innombrables projets d’intégration ont échoué en raison de leur complexité, de
leur coût et de temps de mise en œuvre impossibles à réaliser.
III.3.2.4. La constitution dans un cadre de composants standards
On doit inclure un environnement de développement créé autour d’un cadre de
composants standards pour promouvoir une meilleure réutilisation des modules et des
systèmes, permettre au parc informatique existant de migrer vers le cadre en question et
permettre une mise en œuvre opportune des nouvelles technologies.
III.3.2.5. La possibilité de mise en œuvre de nouveaux modèles
informatiques
Avec l’apparition des nouveaux modèles tels que les clients de portails, le calcul
distribué et l’informatique à la demande ...etc L’Architecture Orientée Services vienne à
répondre à ces exigences, car elle permet de concevoir des systèmes logiciels fournissant des
services à d’autres applications à l’aide d’interfaces publiées et découvrables, et où les
services peuvent être sollicités via un réseau.
Ce nouveau model d’architecture est apparu avec l’apparition de ce qu’on appelle les
services web, car son principal objectif était de publier sur (internet, extranet ou encore
intranet) un ensemble d’offre (existant ou non) réalisant un service bien précis (par exemple
un service pour crypter des données, un autre pour authentifier une personne, etc…).Une
apparition dans ce cadre appelle ces différents services quand elle en a besoin et peut être ellemême déployée comme un nouveau service.
III.3.3. Une architecture orientée services : au-delà des services Web
L’évènement des services Web a précipité le changement fondamental dans le
développement, le déploiement et la gestion des infrastructures informatiques. La réussite de
nombreux projets de services Web a montré que la technologie permettant de mettre en œuvre
une véritable architecture orientée services. Elle permet de prendre du recul pour examiner
l’architecture des applications. D’un point de vue de l’entreprise, le problème n’est plus
uniquement un problème technologique. Il s’agit de développer une architecture et un cadre
d’applications au sein desquels on pourra définir des problèmes et mettre en œuvre des
solutions qu’on pourra réutiliser de manière cohérente.
Mémoire de Magister
58
2010
CHAPITRE III
ARCHITECTURE PROPOSEE
Toutefois, il est important d’abord de comprendre qu’une architecture orientée
services ne se limite pas aux services Web. Les services Web constituent un ensemble de
technologies, y compris les technologies XML, SOAP (Simple Object Access Protocol),
WSDL (Web Services Description Language) et UDDI (Universal Description, Discover and
Integration), qui nous permet de créer des solutions de programmation pour des problèmes de
messagerie et d’intégration d’applications spécifiques. Ces technologies sont suffisantes et ont
déjà démontré qu’on peut dès à présent mettre en œuvre une architecture orientée services.
III.3.3.1. Les éléments constitutifs d’une architecture orientée services
Une architecture orientée services porte bien son nom car il s’agit en effet d’une
architecture. Ce n’est pas uniquement un ensemble spécifique de technologies, telles que les
services Web. Elle transcende ces technologies et, en théorie, en est complètement
indépendante. Au sein d’un environnement d’entreprise, une définition purement
architecturale d’une architecture orientée services pourrait être la suivante : « Architecture
d’applications au sein de laquelle toutes les fonctions sont définies en tant que services
indépendants, comprenant des interfaces bien définies qui peuvent être sollicitées dans des
séquences définies ».
Par conséquent, un système basé sur ce type d’architecture doit effectuer et gérer la
sollicitation du service et non l’application appelante. Cette fonction permet la réalisation de
deux caractéristiques essentielles :
¾
L’indépendance véritable des services
¾
La possibilité de gérer les services.
La gestion comprend plusieurs fonctions :
¾
La sécurité, l’autorisation des requêtes, le cryptage et le décryptage des données, selon
les instructions données, et la validation des informations.
¾
Le déploiement permet au service d’être déplacé au sein du réseau pour maximiser les
performances et supprimer la redondance afin que la disponibilité des applications soit
maximale.
¾
La maintenance permet de gérer de nouvelles versions du service.
III.3.3.2. La nature d’un service
Un service au sein d’un environnement d’entreprise constitue en général une fonction
simple, une transaction plus complexe ou un service système. D’un point de vue de
l’application, ces fonctions sont des fonctions non atomiques.
Mémoire de Magister
59
2010
CHAPITRE III
ARCHITECTURE PROPOSEE
Les transactions peuvent sembler n’être que de simples fonctions pour l’application
appelante, mais elles peuvent être mises en œuvre en tant que fonctions composites masquées
par leur contexte transactionnel propre. Elles impliquent parfois de multiples fonctions de
niveau inférieur transparentes pour l’appelant. Les fonctions systèmes sont des fonctions
généralisées qui peuvent être extraites d’une plateforme spécifique, telle que Microsoft
Windows ou Linux.
Ceci n’est pas une simple distinction artificielle entre les différents services. D’un
point de vue de l’application, tous les services sont atomiques, mais le fait qu’il s’agisse de
services d’entreprise ou système n’a aucune importance. Cette distinction ne sert qu’à
introduire le concept important de granularité. La décomposition des applications d’entreprise
en services ne constitue pas uniquement un processus abstrait, elle implique également des
opérations très pratiques. Les services peuvent être composés de fonctions de niveau inférieur
(granularité fine) ou de niveau supérieur complexe (granularité grossière). Il existe de
véritables compromis de performance, de flexibilité, de possibilités de maintenance et de
réutilisation basés sur les définitions de ces fonctions. Le niveau de granularité indique la
richesse fonctionnelle d’un service. Par exemple, plus la granularité d’un service est grossière,
plus la fonction offerte par le service est riche.
Les services sont en général composés de fonctions commerciales à granularité
grossière, telles que le service « ouvrir un compte », car ces opérations peuvent supposer
l’exécution de multiples opérations à granularité plus fine, telles que le service « vérifier
l’identité du client » et le service « créer le compte client ». Ce processus de définition de
services est en général effectué dans un cadre plus large, le cadre d’applications. C’est ce
cadre qui doit être mis en place. Il s’agit de développer un cadre d’applications de composants
dans lequel les services sont définis en tant qu’ensemble de composants réutilisables pour
créer de nouvelles applications ou intégrer un parc logiciel existant.
III.3.3.3. L’intégration d’applications
Si nous revenons à présent au premier exemple d’intégration mentionné (Figure III-1),
on peut l’améliorer par un schéma qui minimise le nombre d’interfaces requises, tel que celui
présenté à la Figure III-2, cette figure peut paraître trop simpliste, mais elle illustre bien le
point de départ de l’intégration des applications.
Mémoire de Magister
60
2010
CHAPITRE III
ARCHITECTURE PROPOSEE
Application 1
Application 3
Application 2
Application 4
Application 5
Figure III-2 : L’intégration d’applications
En suivant ce cadre d’intégration, on peut ajouter le concept architectural de bus de
services, représenté dans la figure précédente par la ligne épaisse au centre, et un gestionnaire
de services ou de flux pour connecter les services et fournir un chemin aux requêtes de
services. Le gestionnaire de flux traite une séquence d’exécution définie, ou flux de services,
qui sollicite les services requis dans la séquence adéquate pour produire le résultat final
(voir Figure III-3).
Service 2
Service1
Gestionnaire
de flux
Service 3
Service 4
Service n
Figure III-3 : L’intégration des services
III.3.3.4. Les exigences d’intégration au sein de l’architecture
Jusqu’à présent, le débat sur l’intégration s’est limité à l’intégration d’applications via
des services de composants, mais l’intégration est un sujet beaucoup plus vaste. Lorsqu’on
évalue nos exigences en ce qui concerne une architecture, on doit prendre en compte plusieurs
types d’intégrations. On doit penser non seulement à l’intégration d’applications, mais
également à celle de l’interface de l’utilisateur final, à la connectivité des applications, à
l’intégration des processus, à l’intégration des informations et au modèle de développement
prêt à l’intégration.
Mémoire de Magister
61
2010
CHAPITRE III
ARCHITECTURE PROPOSEE
a. L’intégration au niveau de l’interface
L’intégration au niveau de l’interface de l’utilisateur final correspond à la manière
dont l’ensemble complet d’applications et de services auquel un utilisateur donné accède est
intégré afin de fournir une interface utilisable, efficace et cohérente. Ce sujet est en évolution
constante et les nouveaux développements, à court terme, traiteront essentiellement des
avancées dans l’utilisation des serveurs de portails. Alors que les portlets peuvent déjà
solliciter des composants de services locaux à l’aide des services Web, des nouvelles
technologies, telles que les services Web pour portlets distants, activeront des fournisseurs de
contenu et d’applications pour créer des services interactifs prêts à être utilisés avec des
portails via Internet et offriront donc de nombreuses possibilités nouvelles d’intégration.
b. La connectivité d’applications
La connectivité d’applications est un type d’intégration relatif à tous les types de
connectivités devant être pris en charge par l’architecture. À un certain niveau, cette
intégration traite des communications synchrones et asynchrones, du routage, des
transformations, de la distribution rapide des données, et des convertisseurs de passerelles et
de protocoles. À un autre niveau, elle s’occupe également de la virtualisation des données en
entrée et des résultats, ou des sources et des récepteurs, tels que les programmes de gestion de
canaux et de protocoles. Le problème réside dans la manière fondamentale dont les données
entrent, sortent et se déplacent dans le cadre qui met en œuvre l’architecture.
c. L’intégration des informations
L’intégration des informations est un processus qui fournit un accès cohérent à toutes
les données pour toutes les applications, quel que soit la manière dont ces données doivent
être envoyées : leur format, leur source ou leur emplacement. Lors de la mise en œuvre, cette
exigence peut supposer la simple utilisation d’un logiciel adaptateur et d’un moteur de
transformation. Toutefois, en général, le processus est plus complexe. Le concept clé est
souvent la virtualisation des données qui peut inclure le développement d’un bus de données à
partir duquel toutes les applications peuvent envoyer des requêtes de données via des services
ou des interfaces standards. Les données peuvent ainsi être envoyées à l’application qu’elles
proviennent d’une feuille de calcul, d’un fichier natif, d’une base de données SQL (Structure
Query Language), d’un autre type de base de données ou d’un stockage de données en
mémoire.
Mémoire de Magister
62
2010
CHAPITRE III
ARCHITECTURE PROPOSEE
III.4. Architecture proposée
III.4.1. Architecture orientée service (SOA)
L’Architecture Orientée Services (AOS ou SOA – Service-Oriented Architecture en
anglais) permet aux concepteurs de systèmes d’information d’organiser un ensemble de
logiciels isolés en un ensemble de services interconnectés, accessibles par une interface et des
protocoles standard.
Un service est une unité discrète qui remplit une collection de tâches répondant au(x)
même(s) objectif(s). L’AOS est un paradigme architectural qui peut être utilisé pour
concevoir des infrastructures permettant aux clients et aux fournisseurs d’échanger des
services, malgré la disparité des domaines, des technologies, et des fournisseurs.
Un ensemble de facteurs clés fait converger les clients vers une architecture orientée services.
D’après notre point de vue, trois facteurs sont essentiels : la réutilisation, la découverte, et la
composition.
¾
La réutilisation : Les unités logiques des architectures des systèmes sont divisées en
services dans l’intention de promouvoir leur réutilisation. Cette réutilisation nécessite
que chaque service utilisé dans un système basé sur une AOS soit, au préalable, décrit
par son fournisseur. L’avantage de la réutilisation est un gain de temps et
d’investissement lors de la conception d’une nouvelle application.
¾
La découverte : Les services sont conçus afin d’être sélectionnés via des mécanismes
de recherche. La découverte est permise par la description préalable des services et leur
publication au sein d’un registre. La découverte est un point clé nécessaire à la
réutilisation des services élémentaires dans une AOS.
¾
La composition : Des collections de services peuvent être coordonnées et assemblées
afin de former une composition de services. Cette possibilité de construire de nouveaux
systèmes à partir de services existants constitue un des avantages de l’AOS.
Dans le contexte de mise en œuvre d’applications à base d’architecture orientée
services, la technologie la plus utilisée est celle des services Web. Un service Web est un
logiciel conçu pour supporter l’interaction entre machines inter opérables à travers un réseau.
Cette interopérabilité est rendue possible grâce à deux standards connus par l’ensemble des
acteurs (fournisseurs et clients). Le premier est le langage de description (WSDL – Web
Service Description Language ) et le second est le protocole de communication (SOAP –
Simple Object Access Protocol).
Mémoire de Magister
63
2010
CHAPITRE III
ARCHITECTURE PROPOSEE
L’avantage principal de l’architecture orientée services en général et Web en
particulier, est que ce paradigme pourrait répondre aux besoins en termes de flexibilité et
d’adaptabilité rapide exprimés par les concepteurs. Une application à base de services est
flexible puisqu’un service défaillant peut être remplacé par un autre sans modifier l’ensemble
de l’application. De plus, elle est adaptable du fait que le service sélectionné est celui choisi
comme étant le meilleur dans un contexte donné. Ce type d’architecture est aujourd’hui
d’autant plus populaire qu’il est amplement utilisé par les organisations qui veulent prendre
part au Web 2.0.
III.4.2. Difficultés rencontrées dans la réalisation d’une plate-forme
collaborative complète
Indépendamment de l’approche de développement choisie, la conception de nouvelles
applications collaboratives qui soient extensibles se présente comme un grand défi pour les
développeurs. Si d’un coté l’utilisation de boîtes à outils s’avère simple et rapide, le degré
d’extensibilité obtenu est très restreint. Si les développeurs choisissent de s’appuyer sur des
Framework ou des plates-formes, la possibilité d’intégrer de nouveaux composants est
également contraignante puisque ces derniers doivent suivre un schéma d’interaction imposé
par le système en question. Ou alors les développeurs doivent faire face à la complexité des
logiciels afin de pouvoir intégrer des composants disponibles en open source.
Dans la pratique il n’existe que des collecticiels se focalisant sur des aspects spécifiques de la
collaboration, et qui ont souvent été développés selon l’approche « From scratch », soit des platesformes collaboratives, qui ont souvent été développées selon des frameworks très sophistiqués. Ces
applications peuvent donner à l’utilisateur un certain niveau d’extensibilité, mais malgré toutes les
possibilités d’extensibilité offertes par ces plates-formes, elles sont loin d’être considérées comme une
panacée. Outre le coût associé à ces systèmes, l’utilisateur se trouve toujours limité à une plate-forme
donnée. Autrement dit, il est confronté à un choix limité d’outils de collaboration. Ainsi, des
utilisateurs finissent par composer leurs propres “environnements collaboratifs” en choisissant, selon
leurs besoins, différentes applications offrant des fonctionnalités spécifiques, en les exécutant en
même temps mais indépendamment les unes des autres.
Réaliser une plate-forme collaborative qui répond aux exigences des collaborateurs est
une tâche très difficile même avec l’utilisation d’une architecture orientée service qui offre
beaucoup de solutions d’interopérabilité et d’extensibilité, les développeurs doivent
développer les différents services de collaboration (exemple : le tableau blanc, la vidéo
conférence, le bureau partagé, quiz, enquête, le chat, le forum, le wiki, …etc) en prenant en
compte leurs domaines d’utilisation.
Mémoire de Magister
64
2010
CHAPITRE III
ARCHITECTURE PROPOSEE
Pour remédier à cela nous proposons une approche permettant à plusieurs platesformes collaboratives de communiquer ensemble à l’aide de ce qu’on appelle l’intégration de
modules en se basant sur l’architecture orientée service, et plus précisément les services web.
Avant de détailler cette approche nous allons donner une petite introduction sur la technique
d’intégration des outils de collaboration.
III.4.3. Vers l’intégration d’applications existantes
La problématique associée à l’intégration d’applications existantes est l’un des
principaux axes de recherche qui concerne la possibilité de faire interopérer différents
systèmes. L’interopérabilité ou l’intégration entre les applications facilite la coopération au
sein d’une organisation ou entre différentes organisations sans les obliger à utiliser
exactement les mêmes systèmes ni à posséder les mêmes équipements.
La notion d’intergiciel a fait son apparition afin de faciliter le développement
d’applications réparties et de gérer les interactions entre ces applications via des plates-formes
hétérogènes (par exemple diversité du matériel, des systèmes d’exploitation ou des langages
de programmation). Un intergiciel représente ainsi une solution architecturale au problème de
l’intégration de différentes applications tout en imposant à ces applications une interface de
service commune.
Parallèlement à l’évolution des intergiciels et d’internet, les technologies Web ont
émergé et remporté un succès important, en permettant des interactions simples avec des
ordinateurs à distance. Plus récemment, les services Web, qui reprennent la plupart des
principes du Web en les appliquant à des interactions ordinateur-ordinateur, se présentent
comme une technologie potentielle pour l’intégration d’applications à travers l’Internet.
Le Figure III-4 illustre de façon détaillée l’interaction entre une application cliente et
un service web. Ce schéma nous montre que SOAP représente une sorte de façade qui masque
l’hétérogénéité technique de l’application ou des données sous-jacentes. Nous avons donc une
surcouche logicielle intercalée entre le programme développé (dans un langage propriétaire)
et le monde extérieur. L’interopérabilité est ainsi un aspect intrinsèque des services Web.
Grâce à leur formalisation standard définissant des normes ouvertes, ils fournissent un moyen
technique pour exposer les interfaces de programmation de leurs applications dans un format
compréhensible par n’importe quelle autre application. Des applications implémentées dans
divers langages de programmation et sur diverses plates-formes peuvent ainsi employer des
services Web pour interagir et échanger des données à travers des réseaux informatiques.
Mémoire de Magister
65
2010
CHAPITRE III
ARCHITECTURE PROPOSEE
Application
cliente
Client
SOAP
Service
Requête SOAP
Réponse SOAP
Processeur
SOAP
Application
WSDL
Requête
UDDI
PublicationUDDI
Annuaire
UDDI
Figure III-4 : Exemple d’interaction simple entre une application cliente et un service Web.
III.4.4. Architecture proposée
L’architecture qu’on propose pour la conception d’une plate-forme collaborative est
une infrastructure composée d’une architecture orientée service SOA qui met en œuvre un
certain nombre de services pour la plate-forme utiles pour la collaboration couplée avec une
interface client, qui offre ainsi un degré d’interactivité et une ergonomie comparables aux
interfaces utilisateurs standards. L'objectif principal de l’architecture orientée services est
donc de décomposer une fonctionnalité en un ensemble de fonctions basiques, appelées
services, ce dernier est le composant clef de l'Architecture. Il consiste en une fonction ou
fonctionnalité bien définie. C'est aussi un composant autonome qui ne dépend d’aucun
contexte ou service externe, fournis par des composants et de décrire finement le schéma
d'interaction entre ces services. L'idée de cette approche est de construire une architecture
logicielle globale décomposée en services correspondant aux besoins des utilisateurs.
Notre architecture est composée de deux plateforme collaboratives la premier est la
Plate-forme open source SILVERPEAS et la deuxième c'est la plate-forme XWIKI et un
service web coordinateur d’orchestration.
Le service web coordinateur d’orchestration peut être vue comme une composition des
services Web utilisés dans la composition existent au préalable et sont appelés selon un
enchaînement défini par l’utilisateur afin de réaliser un processus précis (voir Figure III-5).
Mémoire de Magister
66
2010
CHAPITRE III
ARCHITECTURE PROPOSEE
Service web
Coordinateur
Services Web WIKI
Service 1
Service 2
BUS
Service 3
Service 4
UDDI
.
.
.
Service n
Outils d’administration
Outils d’administration
Plate-forme
Open Source
SILVERPEAS
Plate-forme
Open Source
XWIKI
Figure III-5 : L’architecture générale de la plate-forme
Le schéma précédant montre qu’on peut intégrer des applications collaboratives déjà
existantes en open source dans une infrastructure collaborative basée services web, cela se fait
en se basant sur les services web. Initialement on va définir un service web qu’on va nommer
« service coordinateur », on va l’intégrer dans une plate-forme collaborative open source
basée sur les services de collaboration asynchrone dans le but de rendre cette plate-forme
capable de communiquer avec n’importe quelle plate-forme collaborative. Le rôle principal de
ce service est de récupérer les paramètres nécessaires du serveur d’application de la plateforme qu’on veut intégrer par la création d’un fichier XML qui englobe tous les paramètres
concernant cette application.
Ce service peut être enregistré dans un annuaire UDDI comme étant un nouveau
service qui sera prêt à être utilisé par d’autres applications clientes, ce registre sert donc de
répertoire des applications intégrées, dans le quel on trouve les informations nécessaires pour
communiquer avec le service généré (identificateur et URL).
Mémoire de Magister
67
2010
CHAPITRE III
ARCHITECTURE PROPOSEE
III.5. Conclusion
Dans ce chapitre nous avons pu constater la difficulté associée à la conception d’une
plate-forme collaborative extensible offrant plusieurs services de collaboration. Nous avons
proposé une architecture générale basée sur l’intégration d’applications existantes (open
source). Ces applications peuvent être des applications collaboratives client/serveur
accessibles depuis le Web ou bien des applications déjà basées services web.
Pour mettre en œuvre cette approche, le meilleur choix est d’utiliser les technologies
de services Web. Pour cela on peut utiliser un service web qui peut communiquer avec
l’interface service web d’une autre application externe dans le but de générer un nouveau
service accessible pour d’autres applications.
Mémoire de Magister
68
2010
CHAPITRE IV
EXPERIMENTATION
CHAPITRE IV. EXPERIMENTATION
Mémoire de Magister 2010
69
Chemame Chaouki
« Implémentation d’une infrastructure collaborative asynchrone basée sur les services web »
CHAPITRE IV
EXPERIMENTATION
IV.1. Introduction
Dans le chapitre précédant nous avons vu la difficulté de concevoir une plate-forme
collaborative offrant les différents outils de collaboration qui peuvent être utilisé dans
plusieurs domaines nécessitant la collaboration.
Pour résoudre ce problème, nous avons proposé une architecture globale basée sur
l’intégration d’outils open source en utilisant les services Web. Pour valider cette approche
nous avons travaillé sur deux plates-formes open-source, la première s’appelle Silverpeas qui
est une plate-forme collaborative basée sur des services Web offrant les différents outils de
collaboration asynchrones (le forum, Agendas partagés, Annuaires, Documents partagés,
Galerie d’images, Blogs, Forums, Enquêtes), et la deuxième plate-forme s’appelle XWIKI
offre un service wiki. Pour bien comprendre notre approche proposée on a besoin des tests et
d’expérimentation
IV.2. La plate-forme Silverpeas
IV.2.1. Présentation de la plateforme silverpeas
La plateforme Silverpeas est un outil destiné à faciliter la collaboration des différents
acteurs et partenaires de l’entreprise, par la mise à disposition d’outils dans le cadre d’un
Intranet, d’un Extranet ou d’un site Internet « Web 2.0 » (Figure IV-1).
Accessible depuis un simple navigateur, ou depuis un PDA, Silverpeas propose :
¾
des services collaboratifs : Agendas partagés, Annuaires, Documents partagés, Galerie
d’images, Blogs, Forums, Chat, Enquêtes, Messagerie instantanée, Notifications et
abonnements,
¾
des Workflows documentaires,
¾
des services de GED et de gestion de connaissances,
¾
un CMS (Content Management System)
¾
l’accès à d’autres applications (fonction portail)
L’outil permet donc à des utilisateurs, voisins ou géographiquement distants, de collaborer
autour de documents, de dossiers et de projets, etc…
Son ergonomie intuitive leur permet d’utiliser l’outil sans formation particulière.
Mémoire de Magister
70
2010
CHAPITRE IV
EXPERIMENTATION
Figure IV-1 : Présentation de Silverpeas.
Silverpeas est une application qui offre aux utilisateurs de :
¾
Fournir ou accéder à des données qui contiennent la connaissance de l’entreprise multisources (base documentaire, sites Web, etc…) ou multi-formes (document, publication
Web, mail, base de données, forum et agenda, etc…).
¾
Réaliser des actions en ligne, prendre des décisions dans des domaines d’activités variés
grâce aux ressources disponibles.
¾
Communiquer, collaborer et coordonner des travaux d’équipe.
¾
Mettre en place une stratégie et des outils de gestion de la connaissance (Knowledge
Management)
IV.2.2. La Structure de Silverpeas
La Figure IV-2 représente la structure de la plateforme Silverpeas, cette structure
constituée essentiellement d’un outil d’administration, de bus et un ensemble de service.
Mémoire de Magister
71
2010
CHAPITRE IV
EXPERIMENTATION
Service 1
Service 3
Service 4
BUS
Service 2
.
.
.
Service n
Administration
Figure IV-2 : Structure de Silverpeas.
IV.2.2.1. Administration
Le module d’administration permet d'agencer l’ensemble du portail. Il est essentiel car au
démarrage de Silverpeas, la première chose à faire est de structurer le portail : de créer les
Espaces, d’attribuer des rôles et de déployer les services.
L'administration est constituée de quatre volets :
¾
Outils : permet notamment d'importer des données dans Silverpeas à partir d'un fichier
XML.
¾
Statistiques : permet de gérer toutes sortes de statistiques. Par ex: la quantité de
publications stockées sur Silverpeas, combien de connexions il y a eu à une date
précise.
¾
Plan de Classement : contient les services « axe » et « synonyme ». Ces services
permettent de gérer le plan de classement.
¾
Administration : organise et gère le domaine, les espaces et le design des espaces.
IV.2.2.2. Le Bus
Le bus contient le savoir-faire pour animer les services et gérer les flux d’informations
internes à l’application et entre l’application et l’utilisateur comme les fonctionnalités ou les
services suivants :
Mémoire de Magister
72
2010
CHAPITRE IV
EXPERIMENTATION
¾
Moteur de recherche.
¾
Plan de classement
¾
Espace Personnel : comprend mon Agenda, mes Tâches, mes Notifications, mes
Abonnements, mes Requêtes favorites et mes Liens Favoris.
¾
Espaces Collaboratifs.
IV.2.2.3. Services
Des mini-applications réutilisables, chaque service remplit une mission. Les services
s'appuient sur le bus pour fonctionner. La structuration du portail Silverpeas se déroule en 5
phases :
¾
Création du référentiel des utilisateurs : saisie ou import des utilisateurs Silverpeas.
¾
Description de l’organisation : constitution de l’arborescence multi-niveaux des
utilisateurs, en relation avec l’organisation interne et externe de l’entreprise.
¾
Identification des espaces collaboratifs, reflétant l’organisation de la communication et
des groupes de travail dans l’entreprise.
¾
Instanciation des service pour chaque espace, permettant la mise en œuvre d’outils de
collaboration propres à chaque espace.
¾
Attribution des droits par service, les rôles étant propres à chaque service.
IV.2.3. L’architecture de Silverpeas
L'architecture de Silverpeas est de type "client léger" (aucune installation nécessaire
sur les postes clients) et s'appuie sur le standard J2EE (Java 2 Enterprise Edition).
La base de données est relationnelle (MS SQL et Oracle) utilisée pour stocker les
métas donnés, le système de fichier du système d’exploitation (Windows ou Unix) et les
pièces jointes, la plateforme silverpeas contienne aussi un serveur d'application J2EE (serveur
de page et Java Beans) : Weblogic, Websphere, Borland Enterprise Server, Orion ou JBoss
(Figure IV-3).
Mémoire de Magister
73
2010
CHAPITRE IV
EXPERIMENTATION
Figure IV-3 : Architecture de Silverpeas.
Cette architecture est celle retenue par les plus grandes entreprises et assure la
scalabilité de l'application pour une montée en charge importante. (pooling d’objet, loadbalancing, clustering, gestion des transactions)
Le langage JAVA est le langage objet standard de l’industrie, il assure :
¾
La portabilité (Linux, NT, Solaris, ….)
¾
La modularité.
¾
La maintenabilité.
¾
L’évolutivité.
XML (eXtensible Markup Language) est le langage de description de données, il assure :
¾
Une sémantique ouverte au contraire de HTML.
¾
Une grande souplesse dans la gestion des flux de données inter-applicatif.
IV.3. La plate-forme Xwiki
XWiki est un wiki Open-Source de seconde génération (ou "wiki applicatif") écrit en
Java. Il offre non seulement les fonctions principales d'un wiki (édition collaborative, suivi
d'informations, gestion de l'accès des membres), mais aussi des possibilités de développement
avancées
Mémoire de Magister
74
2010
CHAPITRE IV
EXPERIMENTATION
IV.3.1. Installation de Xwiki
Il y a plusieurs manières d'installer XWiki. La plus simple étant l'utilisation de
l'installateur Windows qui vient avec la base de données HSQLDB et le moteur web Jetty.
XWiki peut aussi s'exécuter sur tout conteneur de servlet récent (Tomcat, JBoss, GlassFish...)
et avec plusieurs bases de données relationnelles (comme HSQL et MySQL).
Dans notre implémentation, on utilisera Tomcat et MySQL. Tout d'abord, il faut
télécharger les deux fichiers XWiki, c'est à dire :
¾
xwiki-1.0.war qui contient l'application à proprement parlé
¾
xwiki-1.0.xar qui contient des modules XWiki déjà créés (le user admin, des panneaux,
des pages...).
IV.3.1.1. Configurer Tomcat
L'installation de XWiki dans Tomcat est très simple. Une fois votre Tomcat téléchargé
et installé, il suffit de décompresser le fichier xwiki-1.0.war dans le répertoire
%TOMCAT_HOME%\webapps\xwiki. ( ce répertoire sera nommé %XWIKI_HOME%.).
Lancer le serveur d'application tomcat en utilisant l'option Start Tomcat, attention les
ports 8080 et 8081 ne doivent pas être occupés par un autre serveur. Lancer un navigateur sur
l'url http://localhost:8080/admin.
Il faut saisir le nom de l'utilisateur et le mot de passe utilisés lors de l'installation (voirFigure
IV-4), après la page d’administration de Tomcat s’affiche (voir Figure IV-5)
Figure IV-4 : Ouverture de serveur Tomcat.
Mémoire de Magister
75
2010
CHAPITRE IV
EXPERIMENTATION
Figure IV-5 : La page d’administration Tomcat.
IV.3.1.2. Configurer MySQL
XWiki stocke ses pages dans une base de données. Il faut donc télécharger et installer
MySQL. Il faut ensuite créer une base pour XWiki, pour cela :
¾
On démarre MySQL (mysqld --console).
¾
On crée la base de données xwikiDB en tapant la commande mysql « user=root »
exécute="create database xwikiDB".
¾
On donne les droits d'accès à l'utilisateur xwikiUser (mot de passe xwikiPwd) sur la
base de données xwikiDB en tapant la commande mysql « user=root » execute="grant
all privilèges on xwikiDB.* to [email protected] identified by 'xwikiPwd'".
¾
On vérifie que la base de données xwikiDB a bien été créé en tapant mysql
« user=root » execute="show databases".
XWiki utilise Hibernate comme moteur de persistance. Il faut donc lui fournir tous les
paramètres de connexion à la base de données xwikiDB. Pour cela, il faut modifier le fichier
%WIKI_HOME%\WEB-INF\hibernate.cfg.xml (voir Figure IV-6).
Figure IV-6 : Fichier Hibernate.
Mémoire de Magister
76
2010
CHAPITRE IV
EXPERIMENTATION
IV.3.1.3. Démarrer Xwiki
Il ne nous reste plus qu'à démarrer Tomcat (%TOMCAT_HOME% \bin\startup.bat) et
nous rendre à l'URL http://localhost:8080/xwiki. Une première page s'affiche sur notre
navigateur vous informant que l'installation de XWiki est imminente (voir Figure IV-7).
Figure IV-7 : Page d’ouverture de Xwiki.
Il nous suffit de cliquer sur le lien "XWiki Home Page" et d'attendre un petit moment,
le temps qu'Hibernate crée les tables dont XWiki a besoin. Si nous voulons voir la liste des
tables créées, on tape la commande suivante : mysql --user=xwikiUser --password=xwikiPwd
--database=xwikiDB --execute="show tables".
XWiki maintenant est configuré et la page d'accueil par défaut s'affiche (voir Figure IV-8).
Figure IV-8 : La page d’accueil par défaut de Xwiki
Mémoire de Magister
77
2010
CHAPITRE IV
EXPERIMENTATION
IV.3.2. Architecture de la plate-forme Xwiki
La Plate-forme XWiki propose des interfaces communes et des éléments de l'interface
utilisateur avec un ensemble de fichiers tel que : Figure IV-9
XWiki Core est un fichier JAR unique qui se fractionne en plusieurs modules distincts
et qui met actuellement en œuvre les fonctionnalités suivantes :
¾
Modèle : Toutes les classes représentant le modèle du wiki, c'est à dire les notions
suivantes: classes de documents, Espace, Wiki, et Objets, pièces jointes et plus encore.
¾
Cache : Il s'agit du service cache qui est utilisé pour éviter de recréer les pages de wiki
à partir de la base de données pour chaque utilisateur.
¾
XWiki Syntax : un service utilisé pour la gestion de la syntaxe.
¾
Localisation: Gère les traductions dans différentes langues.
¾
Notification : Utilisée pour exporter n’importe quel type de document (PDF, RTF,
XAR).
¾
Sécurité: Authentification et autorisation de manutention.
Figure IV-9 : L’architecture de la plate-forme Xwiki
IV.4. Quelques scénarios de test
La Figure IV-10 montre la page d’accueille de la plate forme Silverpeas avec ces
différentes services.
Mémoire de Magister
78
2010
CHAPITRE IV
EXPERIMENTATION
Figure IV-10 : La fenêtre d’accueille de l’application
IV.4.1. L’espace personnel
La Figure IV-11 montre un exemple de l’espace personnel, où on trouve différentes
services tels que : l’agenda, les taches, les notifications, les abonnements, les requêtes
favorites, les liens favoris, personnalisation, écrire à l’administrateur et la presse papier.
Figure IV-11 : Rubriques de l’espace personnel
¾
Mon agenda : Il permet de:
9 Planifier tout type d’événement à la journée, à la semaine, au mois ou à l’année.
9 Inviter d'autres utilisateurs à un événement.
9 Consulter les disponibilités des utilisateurs que l'on souhaite inviter.
9 Refuser ou accepter une invitation
¾
Mes tâches : Vous avez la possibilité de définir des tâches, spécifier l’avancement, la
date de début, de fin, la classification (privée, publique) ainsi que la priorité de la tâche
à effectuer.
Mémoire de Magister
79
2010
CHAPITRE IV
¾
EXPERIMENTATION
Mes notifications : Permet de vous tenir informé de certaines nouveautés (une nouvelle
publication par exemple). Vous en serez informé par courrier dans votre messagerie
personnelle, votre boîte de notification, ou encore par une fenêtre pop-up.
¾
Mes abonnements : Vous pouvez vous abonner à des thèmes et recevoir ensuite des
notifications quand une nouvelle publication est faite dans ce thème.
¾
Mes requêtes favorites : Lorsque l’on cherche des données (en général des
publications), on peut utiliser les options de recherche avancée pour cibler un peu plus
la recherche. Il s’agit de requêtes. Vous pouvez ainsi enregistrer vos requêtes favorites,
lorsque celles-ci sont effectuées régulièrement.
¾
Mes liens favoris : Possibilité de spécifier des thèmes ou des fichiers favoris.
¾
Personnaliser : Possibilité de changer votre mot de passe, votre langue d’interface,
votre espace d’accueil, votre e-mail, vos coordonnées, de désactiver les applets et
activeX (glisser-déposer et intégration MS Office).
¾
Ecrire à l’administrateur : Pour suggérer une amélioration, signaler une anomalie.
¾
Presse papier : Permet de visualiser et supprimer des éléments copiés ou coupés dans
le presse papier (publications, thèmes, services, espaces).
IV.4.2. Moteur de recherche
Il permet de retrouver les différentes publications créées dans la plupart des services
2
de Silverpeas à partir de mots clés, de classements, de services, de formulaires, etc…
Les documents trouvés sont ensuite listés par ordre de pertinence décroissante, et
peuvent être exportés. Il est aussi possible de mémoriser une recherche pour la relancer plus
tard.
IV.4.3. Barre D’outils
Dans la barre d’outils on trouve plusieurs liens tels que (voirFigure IV-12) :
¾
Glossaire (définition de vocabulaires spécifiques à la société).
¾
Plan du site (Arborescence des espaces (personnel et autres).
¾
Aide détaillée sur la plate forme.
¾
Administration
Mémoire de Magister
80
2010
CHAPITRE IV
EXPERIMENTATION
Figure IV-12 : Barre d’outils
IV.4.4. Page d’accueil
Cette page peut être personnalisée (choix de portlets, page HTML, ou service particulier)
IV.4.5. Logo Silverpeas
Pour retourner à la page d’accueil de Silverpeas, on clique sur le logo Silverpeas (ou
bien le logo personnalisé)
IV.4.6. Espaces et Services
On utilisant ce volet pour accéder aux espaces, les sous-espaces collaboratifs et les services
accessibles
IV.5. Les services de la plate-forme
La plate-forme collaborative Silverpeas contienne plusieurs services comme il est illustré dans
la Figure IV-13.
Figure IV-13 : Liste des services disponibles
Mémoire de Magister
81
2010
CHAPITRE IV
EXPERIMENTATION
Pour ajouter un service dans un espace, on a choisi dans la liste d’opérations située en
haut à droite, l’icône « Ajouter un service ». Pour avoir des explications sur les différents
services, on glisse la souris au dessus de l’icône, une bulle apparaît qui explique le service.
IV.5.1. Attribution des Rôles
Il est possible de définir des droits au niveau espace ou au niveau service, si des droits
sont définis au niveau espace, tous les services qui y sont installés, en héritant par défaut, mais
il est possible de les modifier.
Pour chaque service on définit des rôles qui induisent des droits d’utilisation
différents. Il y a de 2 à 4 rôles selon le service :
¾
Gestionnaire : il organise et structure le composant en gérant les thèmes, les dossiers,
les forums, les consultations.
¾
Publieur : il alimente et gère le contenu, les publications, les articles, les documents,
les événements, etc…
¾
Rédacteur : il rédige des publications soumises à validation.
¾
Lecteur : son rôle est présent dans tous les services tel que la consultation et la
participation si c'est possible.
IV.6. Créer un espace ou un sous espace
Pour créer un espace on sélectionne l’option « Créer un espace » Dans la liste des
opérations accessibles dans l’onglet « gestion d’espace». Par exemple, on peut créer un espace
« université badji mokhtar annaba » sur la base d’un modèle d’espace (paramétrable en
XML), dans le champ modèle d’espace on sélectionne « tous les composants » afin d’installer
automatiquement tous les services disponible dans la plate-forme (voirFigure IV-14).
Mémoire de Magister
82
2010
CHAPITRE IV
EXPERIMENTATION
Figure IV-14 : Création d’un espace ou d’un sous-espace
Après la création de l’espace « Université Badji Mokhtar Annaba », ce dernier
apparaîtra dans la page d’accueil de la plate forme avec tous les services disponibles (voir
Figure IV-15).
Figure IV-15 : Espace université badji mokhtar annaba.
IV.7. Ouvrir Xwiki
Pour atteindre la page d’accueille de la plate-forme Xwiki, on va sélectionner dans la
liste des services le service wiki qui nous permettre de modifier les pages online (voir Figure
IV-16). Apres la sélection du service wiki la page d’accueil de la plate forme Xwiki s’affiche
(voir Figure IV-17).
Mémoire de Magister
83
2010
CHAPITRE IV
EXPERIMENTATION
Figure IV-16 : le lien de service wiki
Figure IV-17 : Service Wiki de la plate-forme
IV.8. Conclusion
Nous avons vu dans ce chapitre une expérimentation sur l’utilisation et le déploiement
de nos deux plates-formes. La première qui s’appelle Silverpeas, elle offre aux utilisateurs les
différents outils de collaboration asynchrones, et la deuxième qui s’appelle Xwiki qui offre le
service wiki.
Mémoire de Magister
84
2010
CONCLUSION GENERALE & PERSPECTIVES
CONCLUSION GENERALE
&
PERSPECTIVES
Mémoire de Magister 2010
85
Chemame Chaouki
« Implémentation d’une infrastructure collaborative asynchrone basée sur les services web »
CONCLUSION GENERALE & PERSPECTIVES
Conclusion
Les travaux de recherche développés dans ce mémoire s’inscrivent dans le domaine
des plates-formes collaboratives intégrant les différents outils de collaboration (synchrones et
asynchrones). Plus précisément, nous avons proposé une approche générale pour créer un
environnement collaboratif qui se base sur les différents outils de collaborations synchrones
s’appuyant sur une intégration d’applications collaboratives (ou collecticiels) existantes.
Dans le premier chapitre de ce mémoire nous avons présenté l’architecture orienté
service et nous avons consacré le deuxième chapitre pour illustrer les différents outils de
collaborations, leurs domaines d’application, en citant les différentes approches de
développement avec leurs avantages et limitations. Ceci pour pouvoir positionner notre
approche, qui se base sur une architecture orientée services basés sur l’intégration des platesformes dans le but d’accomplir une tache collaborative dans un domaine bien précis.
Comme notre approche est basée sur les architectures orientées services, nous avons
expliqué en détail le concept général de cette architecture qui constitue la prochaine vague de
développement et qui comprend des propriétés spécifiques, des composants et des
interconnexions qui mettent l’accent sur l’interfonctionnement et la transparence
d’emplacement.
Dans le troisième chapitre, nous avons proposé une approche générale pour concevoir
un environnement collaboratif simple et extensible. Cette approche se base sur l’intégration
d’applications existantes en utilisant le principe des services web qui est une nouvelle
technologie permettant l’interopérabilité et l’extensibilité des applications.
Dans la pratique ceci nous a conduit de choisir deux plates-formes existantes open
source, la première plate-forme Silverpeas qui offre des outils de collaboration en générale
synchrones en les exposant comme étant des services web, et la deuxième plate-forme xwiki
pour l’édition collaborative et le suivi d'information.
Donc notre but était de proposer un environnement collaboratif qui offre des outils
collaboratifs asynchrones le forum, email, gallérie d’images, news, wiki, quiz,…etc. et nous
avons implémenté cet environnement avec l’utilisation des services web et les plates-formes
open source. Nous avons testé avec succès notre plate forme ce qui rendre l’intégration et
l’extensibilité des plates-formes possible. Ce qui présente l’intérêt majeur de l’utilisation des
services web.
Mémoire de Magister
86
2010
CONCLUSION GENERALE & PERSPECTIVES
Limitations et perspectives
Des limitations peuvent être observées dans notre approche, parmi les quelles on peut citer :
¾
L’approche est basée sur l’intégration des applications par le billet des services web,
donc l’implémentation va se baser sur les propriétés des deux plates-formes.
¾
La plate-forme n’a pas été testée sur un grand réseau et avec un nombre important de
participants, où d’autres problèmes peuvent surgir.
Les améliorations que nous proposons sont les suivantes :
¾
Notre premier objectif consiste à compléter l’implémentation de notre approche surtout
par l’intégration d’autres outils de collaborations asynchrone et synchrone pour rendre
notre environnement plus complet.
¾
Notre deuxième objectif consiste à poursuivre nos travaux pour une mise en œuvre
complète d’un environnement collaboratif qui ne se base pas uniquement sur
l’intégration des plates-formes basées sur des services web, mais peut aussi intégrer
d’autres plates-formes client serveur. Cela se fait par l’implémentation d’un module
constitué d’un ensemble de services qui permet d’intégrer un maximum des platesformes et d’outils de collaboration en les considérant comme étant des boites noires
(c'est-à-dire sans modifier leurs codes internes).
Mémoire de Magister
87
2010
REFERENCES BIBLIOGRAPHIQUES
REFERENCES BIBLIOGRAPHIQUES
Mémoire de Magister 2010
88
Chemame Chaouki
« Implémentation d’une infrastructure collaborative asynchrone basée sur les services web »
REFERENCES BIBLIOGRAPHIQUES
Références
[1] W3C-WSA-Group (2004). W3C Web Service Architecture Group. Web
[2] W3C-XML. XML coordination group.
[3] Goldfard, C.-F. (1990). The SGML Handbook. Oxford Clarendon Press.
[4] OASIS UDDI (2005). Universal Description, Discovery and Integration version
[5] W3C-WSD-Group. Web Services Description Working Group.
[6] Kaler, C. and Nadalin, A. Web services security policy language (wssecuritypolicy)
[7] Origine des normes SGML, HTML et XML, Standard Generalized Markup, Language,
http://www.jalix.org/ressources/miscellaneous/infodoc/_Loria-Evry/04.xml.pdf
[8] Eric van der Vlist, “Le tryptique SOAP/WSDL/UDDI ”, Web service convention, juin
2004. http://dyomedea.com/papers/2004-wsc/3-soap.pdf
[9] Mohamed Karami, “Déploiement et Appel aux web services java avec Axis”.
http://superdown.sourceforge.net/Pages/wsaxis/wsaxis.pdf
[10] Yasser shohoud, “Introduction to WSDL”.
http://w2ks.dei.isep.ipp.pt/labdotnet/recursos/wsdl.pdf
[11] Benatallah, B., Dumas, M., Fauvet, M.-C., Rabhi, F.A., Sheng, Q.Z.
[12] Peltz, C. Web Services Orchestration and Choreography. IEEE Computer,
2003, vol.36, n°10, pp.46-52.
[13] Barros A., Dumas, M., Oaks, P. Standards for Web Service Choreography and
Orchestration: Status and Perspectives. In: Procs of the 3rd International Conference the
Business Process Management (BPM 2005), 1st International Workshop on Web Service
Choreography and Orchestration for Business Process Management, Nancy, France, Sept.
2005, pp.1-15.
[14] Benatallah B., Dijkman R., Dumas M., Maamar Z. Service Composition: Concepts,
Techniques, Tools and Trends. In: Stojanovic Z., Dahanayake A., Eds. Service-Oriented
Software Engineering: Challenges and Practices. Idea Group Inc (IGI), 2005, pp.48-66.
[15] Arkin, A., Askary, S., Fordin, S., Jekeli, W., Kawaguchi, K., Orchard, D.,
Pogliani, S., Riemer, K., Struble, S., Takacsi, P., Trickovic, I., Zimek, S. Web Service
Choreography Interface (WSCI) 1.0. W3C Note [en ligne], 2002. Disponible sur :
<http://www.w3.org/TR/wsci>.
[16] Leymann F. Web Service Flow Language 1.0. IBM Report [en ligne], 2001.
Disponible sur : <http://www-306.ibm.com/software/solutions/webservices/pdf/WSFL.pdf>.
[17] Andrews, T., Curbera, F., Dholakia, H., Goland, Y., Klein, J., Leymann, F.,
Liu, K., Roller, D., Smith, D., Thatte, S., Trickovic, I., Weerawarana, S. Business Process
Execution Language for Web Services, Version 1.1. IBM Specification [en ligne], 2003.
Mémoire de Magister
89
2010
REFERENCES BIBLIOGRAPHIQUES
Disponible sur : <http://www-128.ibm.com/developerworks/library/specification/ws-bpel>.
[18] Wynen F. Conception et développement d’une plate-forme de coopération
inter-organisationnelle : le point de synchronisation. Mémoire d’ingénieur CNAM –
Conservatoire Nationale des Arts et Métiers, Nancy, 2003, 102p.
[19] N. Arenaza, Composition semi-automatique de Services Web, Projet de Master,
Ecole Polytechnique Fédérale de Lausanne (EPFL), Février 2006.
http://lawww.epfl.ch/webdav/site/la/users/139973/public/repports/Rapport- Arenaza.pdf
[20] S. Jamal (épouse Sanlaville), Environnement de procédé extensible pour l’orchestration :
Application aux services Web, Thèse présentée et soutenue publiquement le 13 Décembre
2005 pour l'obtention du Doctorat de l'Université Joseph Fourier de Grenoble I.
http://tel.archives-ouvertes.fr/docs/00/05/38/31/PDF/TheseSonia.pdf
[21] J. Guitton, Planification multi-agent pour la composition dynamique de services Web,
Université Joseph Fourier, Grenoble I, Informatique et Mathématiques Appliquées, Rapport
de stage Master 2 Recherche, Juin 2006.
http://www.cert.fr/dcsd/THESES/jguitton/papers/guitton-master-06.pdf
[22] H. D. Rojas, Orchestration à haut niveau et BPEL, Master Mathématiques Informatique
2e année, Recherche Spécialité Systèmes et Logiciels, Soutenu le 21 juin 2006, Université
Joseph
Fourier
de
Grenoble.
http://www-adele.imag.fr/Les.Publications/reports/
M2R2006Roj.pdf
[23] Y. Charif, Chorégraphie dynamique de services basée sur la coordination d’agents
introspectifs, Thèse de doctorat, université pierre et marie curie, paris IV, 10 Décembre 2007.
http://www-poleia.lip6.fr/~sabouret/ps/yasmine-PhD.pdf
[24] H. Duarte Amaya, Tcows : Canevas pour la composition de services web avec propriétés
transactionnelles, Thèse présentée et soutenue publiquement le 13 Novembre 2007 pour
l'obtention du Doctorat de l'Université Joseph Fourier.
http://tel.archives-ouvertes.fr/docs/00/19/29/24/PDF/TheseHelgaDuarteAmaya.pdf
[25] guide pratique des outils de collaboration, Une production du Centre des lettres et des
mots (CLEM),
[26] Recherche et rédaction : Mario Breton, Brigitte Juteau, Bernard Hudon et Martin Lauzon
[27] Graphisme et mise en page : Mario Breton et Martin Lauzon
[28] Coordination du projet : Bernard Hudon
[29] http://www.nald.ca/clrf/guide/titre.htm.
[30] I. Salah, A. Kadmi, E. Reyes, L’hypermédia au service du travail collaboratif, Juin
2005, édition Hermès.
Mémoire de Magister
90
2010
ANNEXE
ANNEXE
Mémoire de Magister 2010
91
Chemame Chaouki
« Implémentation d’une infrastructure collaborative asynchrone basée sur les services web »
ANNEXE
GLOSSAIRE
Ajax (Asynchronous Java Script and XML) désignant une solution informatique libre pour
le développement d’applications web. Ajax n’est pas une technologie en elle-même, mais un
terme qui évoque l’utilisation conjointe d’un ensemble de technologies libres couramment
utilisées sur le web par exemple (XML et HTML).
Apache Apache HTTP Server, souvent appelé Apache, est un logiciel de serveur HTTP
produit par l’Apache software fondation. C’est le serveur HTTP le plus populaire du Web.
C’est un logiciel libre avec un type spécifique de licence, nommée licence Apache.
BSD (Berkeley Software Distribution) c’est une licence libre utilisée pour la distribution de
logiciels. Elle permet de réutiliser tout ou une partie du logiciel sans restriction, qu’il soit
intégré dans un logiciel libre ou propriétaire.
CORBA (Common Object Request Broker Architecture) est une architecture logicielle
pour le développement de composants et d’ORB (Object Request Broker).ces composants qui
sont assemblés afin de construire des applications complètes, peuvent être écrits dans des
langages de programmation distincts, être exécutés dans des processus séparés, voire être
déployés sur des machines distinctes.
Framework est un ensemble de bibliothèques, d’outils et de conventions permettant le
développement
d’applications.il fournit suffisamment de briques logicielles et impose
suffisamment de rigueur pour pouvoir produire une application aboutie et dont la maintenance
est aisée.ces composants sont organisés pour être utilisés en interaction les uns avec les autres.
GPL (Licence Publique Générale) c’est une licence qui fixe les conditions légales de
distribution des logiciels libres du projet GNU.
HTML (HyperText Markup Language) Langage de balise servant a la publication de
pages web sur internet.les bases de HTML ont été développées dans le but de pouvoir écrire
des documents hypertextes liant les diverses ressources d’internet.
HTTP (Hypertext Transfer Protocol) le protocole de transfert hypertexte est un protocole
de communication client-serveur développé pour le World Wide Web.il est utilisé pour
échanger toute sorte de données entre un client http et un serveur http.
JAVA Java est à la fois un langage de programmation et une plateforme d'exécution. Le
langage Java a la particularité principale d'être portable sur plusieurs systèmes d'exploitation
tels que Windows, MacOS ou Linux. C'est la plate-forme qui garantit la portabilité des
applications développées en Java.
Mémoire de Magister
92
2010
ANNEXE
J2EE (Java Entreprise Edition) est spécification pour la technologie Java de Sun plus
particulièrement destinée aux applications d’entreprise .
JRE (Java Runtime Environment) ou environnement d’exécution java, c’est un ensemble
d’outils permettant l’exécution de programmes java sur toutes les plates-formes supportées.
La JRE est constituée d’une JVM (machine virtuelle JAVA) pour interpréter le code java et le
convertir en code natif, et d’une bibliothèque standard à partir de laquelle doivent être
développés tous les programmes en java.
MySQL est un système de gestion de base de données (SGBD) développé dans un souci de
performances élevées, ce qui signifie qu’il est d’avantage orienté vers le service de données
déjà en place que vers celui de mises a jour fréquentes et sécurisées.il est multi-thread et
multi-utilisateurs.
ORB (Object Request Broker) est l’ensemble de fonctions (classes Java, bibliothèque, C++,
etc…), qui implémentent un bus logiciel par lequel des objets envoient et reçoivent des
requêtes et des réponses, de manière transparente et portable : il s’agit de l’activation ou de
l’invocation par un objet, et a distance d’une méthode d’un autre objet distant.
PDA (Personal Digital Assistant) est un assistant personnel ou un ordinateur de poche basé
sur le principe d’une calculatrice évoluée, il sert d’agenda, de carnet d’adresses et de blocnotes.il est doté d’un clavier, avec des petites touches ou d’écran tactile, associé alors a un
stylet.
PDF (Portable Document Format)
le format de document portable généralement abrégé
PDF, est un format de fichier informatique créer par Adobe Systems .c’est un format ouvert
dont les spécifications sont publiques et utilisables librement et gratuitement.il est dérivé du
format PostScript et contient des données au format XML.
P2P (Peer-To-Peer) souvent abrégé “P2P”, est un modèle de réseau informatique qui
s’oppose strictement au modèle client-serveur. Le partage des fichiers avec ce type de réseau
se fait d’égal à égal, c’est-à-dire les différentes machines ont à la fois le rôle de serveur et du
client.
RPC (Remote Procedure Call) est un protocole permettant de faire des appels de procédures
sur un ordinateur distant à l’aide d’un serveur d’application. Ce protocole est utilisé dans le
modèle client-serveur et permet de gérer les différents messages entre ces différentes entités.
Mémoire de Magister
93
2010
ANNEXE
SQL (Structured Query Language) le langage structuré de requêtes est un pseudo-langage
informatique (de type requête) standard et normalisé, destiné à interroger ou à manipuler une
base de données relationnelles.
W3C (World Wide Web Consortium) abrégé par le sigle W3C, est un organisme de
standardisation a but non lucratif ,fondé en octobre 1994 comme un consortium « association
ou collaboration temporaire » chargé de promouvoir la compatibilité des technologies du web
telles que XML,HTML,RDF,CSS,SOAP,etc…
XPath est le langage de requêtes élémentaire dans XSLT, il détermine si une règle s’applique
Via son attribut, et peut aussi servir à extraire des contenus du document XML transformé
par le programme XSLT.
XPath peut être utilisé comme langage de requêtes dans les bases de données XML, souvent
en tant que sous-ensemble de X-Query.
XSL (eXtensible Stylsheet Language) c’est le langage de description de feuilles de style du
W3C associé à XML.une feuille de style XSL est un fichier qui décrit comment doivent êtres
présentés Les documents XML basés sur une même définition de type de documents (DTD)
ou un même schéma.
XSLT (eXtensible Stylsheet Language Transformations) défini au sein de la
recommandation XSL du W3C comme étant un langage de transformation d’un document
XML vers un autre, que ce soit un dialecte XML (XHTML, XSL-FO, HTML, ...etc) ou bien
un autre type de document.
Mémoire de Magister
94
2010