Environnement collaboratif synchrone basé services web destiné pour la gestion des connaissances

Sous utilisation des ressources et répartition des calculs

L’évolution des capacités de calcul des ordinateurs est très liée au nombre et à la complexité des semi-conducteurs utilisés pour la fabrication de leurs processeurs.
La plupart des ordinateurs sont cependant sous-utilisés. L’exemple le plus flagrant est l’ordinateur de bureau qui reste allumé la nuit : à part quelques transferts réseaux liés aux scripts de sauvegarde et aux mises à jours logiciels, il n’a aucune information à traiter pendant ce laps de temps.
C’est ainsi que sont nés plusieurs projets tel que Decrypton, lancé par l’AFM (Association Française contre les Myopathies), et IBM suite au Téléthon 2001, dont le but est de réaliser la première cartographie du protéome humain (c’est-à-dire la modélisation de l’ensemble des protéines produites par le génome humain) qui a mobilisé 75000 ordinateurs permettant de réaliser en 2 ans ce qu’un ordinateur, à lui tout seul, aurait mis 1170 années.
Tous ces calculs ne sont possibles que par l’entente mutuelle traduite par les communications entre des serveurs et des ordinateurs hétérogènes à travers un réseau non stable (Internet). Ces communications utilisent alors des protocoles (pour la communication) et des langages (pour le codage des données) se rapprochant des technologies proches des services web .
Il est à noter que ces approches de gestion de l’interopérabilité ne sont pas récentes et ont toujours existé depuis l’apparition des premiers réseaux (ARPANET –Advanced Research Projects Agency Network–, projet lancé en 1967, première démonstration en 1972) . Mais ces dernières années, cela est rendu encore plus présent par l’utilisation d’un plus grand nombre d’ordinateurs et l’automatisation obligatoire des différentes tâches de communications à travers un réseau. Cette automatisation se réalise sans même savoir précisément les destinataires des données et par quels moyens elles vont être transmises.

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.

Codage des données et interopérabilité

XML permet d’écrire sous forme de fichier texte, dont le codage est exprimé en en-tê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.
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.

La collaboration et la coopération

Les termes “coopération” et “collaboration”, et les concepts qu’ils représentent, sont important dans notre travail. Néanmoins, leur distinction devient rapidement difficile. Dans la littérature ces deux termes sont très souvent utilisés comme synonymes.
Les dictionnaires ne nous aident pas vraiment dans cette tâche : une des définitions pour “collaborer” étant “coopérer”.
Dans les travaux d’Ellis, nous trouvons cependant une distinction entre ces deux termes. Son “modèle des trois couches” cherche à caractériser la coopération en trois niveaux distincts, selon l’intensité des relations établies entre les individus et les tâches réalisées : la communication, la coordination, et la collaboration. La communication représente le niveau de coopération le plus lâche, la coordination un niveau intermédiaire, et la collaboration représente le niveau de coopération où les tâches sont les plus imbriquées et fortement liées.
Dans “le modèle du trèfle fonctionnel” nous trouvons une classification plutôt fonctionnelle qui n’insiste pas sur une distinction entre coopération et collaboration. La notion de coopération est caractérisée par trois axes ou fonctions principales: la communication, la coordination, et la production.
La communication correspond à l’échange direct d’informations entre les membres d’un groupe. La coordination consiste à définir les règles d’interaction pour contrôler la contribution des membres du groupe qui participent à un travail commun. La production est caractérisée par le partage d’un espace où les membres peuvent stocker, traiter et partager un ou plusieurs objets communs.

Les outils de collaboration asynchrones

Ces outils sont utilisés dans le web mais à des moments différents dans le temps. Ils 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).
Messagerie ou courrier électronique : Un outil de messagerie ou de courrier électronique est un outil de collaboration en temps différé (asynchrone) qui permet l’envoi de messages (plus rapidement qu’une lettre à la poste) et de joindre des fichiers à ces envois. Déjà plusieurs connaissent des logiciels de messagerie comme : Outlook Express ou la messagerie de Netscape. D’autres messageries existent sur Internet et sont la plupart du temps gratuites telle que Hotmail ou Yahoo. Ce sont des boîtes de messagerie disponibles sur le Web sur des annuaires ou des portails visant à fidéliser des internautes. Chacun peut donc disposer d’une adresse de courrier électronique et peut être rejoint aisément sur Internet. De plus en plus, certains nouveaux outils (notamment les plateformes de formation et les messageries instantanées) ajoutent une 0messagerie à l’ensemble des fonctionnalités qu’ils mettent à la disposition de leurs utilisateurs. L’utilisation d’une messagerie ou du courrier électronique facilite la distribution des tâches entre les utilisateurs. En outre, ce type d’outil permet d’offrir un soutien particulier à certains participants afin d’accroître leur motivation et leur intérêt.
Forum de discussion : Le forum de discussion désigne un outil collaboratif qui permet d’échanger entre plusieurs usagers ou groupes d’usagers, des messages en mode texte, en temps différé, à n’importe quel moment et à partir de n’importe quel endroit sur Terre (en autant qu’il soit possible d’avoir accès à Internet). Un utilisateur d’un forum peut entrer en communication avec le serveur qui gère le forum et participer à des discussions de groupe sur un thème particulier. Le principe est simple, un utilisateur écrit un message et d’autres personnes, participant au même forum, vont le lire, répondent ou rédigent de nouveaux messages. Tous les messages apparaissent à l’écran et se présentent selon l’ordre chronologique (du plus récent au plus ancien).
Le message d’origine est affiché en premier puis les autres qui ont été rédigés par la suite apparaissent en réponse à ce message, constituant ce qu’on appelle un fil de discussion.

Modèle de développement du logiciel libre

Le modèle de développement des logiciels libres est essentiellement collaboratif. On parle d’ailleurs beaucoup de « communauté » du logiciel libre. Un projet de logiciel libre rassemble généralement plusieurs développeurs qui peuvent éventuellement être distants les uns des autres. Le logiciel libre n’est pas uniquement le fruit des développeurs isolés et en marge du monde informatique, au contraire, de nombreuses sociétés, reconnues dans le domaine, investissent pour développer du logiciel libre. C’est le cas par exemple au sein de Red Hat, Mandrake , et dans une certaine mesure, dans des compagnies reconnues, telles qu’Oracle ou Sun.
En effet, la communauté open source peut compter sur une collaboration avec des compagnies qui développent du logiciel propriétaire tout en utilisant des solutions open source.
Ainsi, Oracle utilise le serveur Apache et fournit du support pour ses clients sur de tels logiciels libres. Donc dès qu’un problème est détecté et résolu, le produit libre se trouve amélioré et la communauté du logiciel libre profite de cette expérience. Chacun peut ainsi librement apporter sa contribution au développement de ce type de logiciels.

Table des matières

Introduction Générale
Problématique abordée
Plan du mémoire
Chapitre 1 : Apparition des technologies web
1.1 Historique
1.2 Démocratisation de l’internet
1.2.1 Parc d’ordinateurs hétérogène
1.2.2 Sous utilisation des ressources et répartition des calculs
1.3 L’Apparition de JAVA
1.3.1 Portabilité et multi-plateformes
1.3.1.1 Le Concept de bytecode
1.3.1.2 API de base
1.3.1.3 API très complète et documentée
1.3.2 La machine virtuelle Java
1.4 L’Apparition d’XML
1.4.1 XML : un descendant de SGML
1.4.2 Codage des données et interopérabilité
1.4.3 Utilisation des fichiers XML
1.5 Conclusion
Chapitre 2 : Les plates-formes collaboratives
2.1 Introduction
2.2 Quelques concepts fondamentaux
2.2.1 La collaboration et la coopération
2.2.2 La télé-présence
2.2.3 La session et les artéfacts de travail
2.3 La classification des applications collaboratives
2.3.1 La classification espace-temps
2.3.2 Les catégories fonctionnelles d’applications
2.4 Les outils de collaboration asynchrones
2.4.1 Messagerie ou courrier électronique
2.4.2 Forum de discussion
2.4.3 Les outils d’édition
2.5 Les outils de collaboration synchrones
2.5.1 La vidéoconférence ou la visioconférence
2.5.1.1 Les utilisations
2.5.1.2 Quelques logiciels de visioconférence
2.5.2 Fonctionnalités de communication écrites (clavardage ou chat)
2.5.3 Le Tableau blanc partagé
2.6 Les plates-formes collaboratives libres (open source)
2.6.1 La définition du logiciel libre
2.6.2 Modèle de développement du logiciel libre
2.6.3 Quelques plates-formes collaboratives open source
2.6.3.1 Moodle
2.6.3.2 Sakai
2.6.3.3 Open-Xchange
2.7 Différentes approches de développement
2.7.1 Le développement from scratch
2.7.2 Développement s’appuyant sur des boîtes à outils
2.7.3 Le développement s’appuyant sur des frameworks et des plates-formes
2.8 Conclusion
Chapitre 3 : L’architecture orientée services
3.1 Introduction 
3.2 L’évolution de l’architecture
3.2.1 Architecture basée sur la programmation modulaire
3.2.2 Architecture basée sur la programmation orientée objet
3.2.3 Architecture orientée composant
3.3 Les problèmes liés à l’intégration d’applications
3.3.1 La complexité
3.3.2 Une programmation redondante et ne pouvant être réutilisée
3.3.3 Des interfaces multiples
3.4 Les exigences de la programmation d’aujourd’hui 
3.4.1 L’exploitation du parc informatique existant
3.4.2 La prise en charge de tous les types d’intégrations requis
3.4.3 La possibilité de mises en œuvre incrémentielles et de migration du parc
3.4.4 La constitution dans un cadre de composants standards
3.4.5 La possibilité de mise en œuvre de nouveaux modèles informatiques
3.5 Une architecture orientée services : au-delà des services Web
3.5.1 Les éléments constitutifs d’une architecture orientée services
3.5.2 La nature d’un service
3.5.3 L’intégration d’applications
3.5.4 Les exigences d’intégration au sein de l’architecture
3.5.4.1 L’intégration au niveau de l’interface
3.5.4.2 La connectivité d’applications
3.5.4.3 L’intégration des informations
3.6 Les avantages du déploiement d’une architecture orientée services
3.6.1 L’exploitation du parc informatique existant
3.6.2 L’infrastructure comme matière première
3.6.3 Le temps de développement
3.6.4 L’atténuation des risques
3.6.5 Une architecture centrée autour des processus
3.7 Conclusion
Chapitre 4 : La technologie des services web dans la pratique
4.1 Introduction 
4.2 Définition et description de Services Web
4.3 Les principales technologies de développement des Services Web
4.3.1 XML – eXtensible Markup Language
4.3.2 SOAP : Simple Object Access Protocol
4.3.2.1 Modèles d’échange de messages en SOAP
4.3.2.2 Enveloppe SOAP
4.3.2.3 En tête SOAP
4.3.2.4 Corps SOAP
4.3.3 Apatche-Axis : une mise en œuvre de SOAP
4.3.4 WSDL : Web Service Description Language
4.3.5 UDDI: Universal Description Discovery and Integration
4.4 Conclusion
Chapitre 5 : Architecture proposée
5.1 Introduction 
5.2 Architecture proposée 
5.2.1 Les couches de l’architecture
5.2.1.1 Premier niveau ou couche présentation
5.2.1.2 Deuxième niveau ou couche métier
5.2.1.3 Troisième niveau ou couche d’accès aux données
5.2.2 Concepts utilisés au niveau de la couche présentation (RIA)
5.2.2.1 Le client riche.
5.2.2.2 Openlaszlo
A Mode de déploiement
A.1 Proxy
A.2 SOLO
B Client et Serveur : Synopsis
B.1 L’architecture d’Openlaszlo coté serveur
B.2 L’architecture d’openlaszlo coté client
C Modèle de sécurité
5.2.3 Concepts utilisés au niveau de la couche SOA
5.2.3.1 L’activation de services
5.2.3.2 Couplage faible
5.2.3.3 La décomposition SOA
5.2.3.4 La réutilisation des services
5.3 Difficultés rencontrées dans la réalisation d’une plate-forme collaborative complète
5.4 Vers l’intégration d’applications existantes
5.5 Le cadre général d’intégration
5.6 La structure générale de la plate-forme
5.7 Conclusion
Chapitre 6 : Expérimentation
6.1 Introduction
6.2 Les Bases d’Openmeetings
6.2.1 L’architecture d’Openmeetings
6.2.2 L’interaction par les services Web
6.2.3 L’implémentation des services Web dans Openmeetings
6.2.3.1 Les services utilisateur (Userservice)
6.2.3.2 Les services de fichier (fileservice)
6.2.3.3 Les services de la salle (RoomService)
6.3 La gestion des connaissances avec compendium
6.3.1 Les bases du logiciel
6.3.1.1 Nœuds, liens et vues
6.3.1.2 Les nœuds de références
6.3.1.3 Les principes des liens hypertexte dans compendium
6.3.2 Les techniques utilisées par compendium
6.3.2.1 L’étiquetage de nœuds
6.3.2.2 La recherche
6.3.3.3 Les catalogues (listes)
6.3.3.4 La publication des cartes sur le web
6.4 Rendre compendium accessible par le web
6.4.1 La nouvelle architecture de compendium
6.4.2 Changement du code source
6.4.3 Le développement du serveur Web compendium
6.5 La communication entre les deux plates-formes
6.6 Quelques scenarios de test
6.7 L’adaptation de la plate-forme aux besoins des clients
6.8 Conclusion
Conclusion Générale & perspectives
7.1 Conclusion
7.2 Limitations et perspectives
Références bibliographiques
Annexe

Télécharger le rapport complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *