• Aucun résultat trouvé

I NTERMEZZO Intermezzo [Edwards 1996a][Edwards 1996b] est une infrastructure reposant sur le modèle client-serveur et est écrit en C++ et Python

Chapitre V Outils de développement de collecticiels

4. Les outils existants

4.4. I NTERMEZZO Intermezzo [Edwards 1996a][Edwards 1996b] est une infrastructure reposant sur le modèle client-serveur et est écrit en C++ et Python

Intermezzo offre un support flexible pour la coordination à base de spécification de règles. La partie serveur contient différents services : stockage persistant des données de coordination, service de coordination, service de rendez-vous (session management), service de notification, chargement dynamique de code et exécution à distance (comparable au

RMI, Remote Method Invocation, dans l’environnement Java). De plus, le

serveur se charge de vérifier l’homogénéité des données partagées stockées sur le serveur mais aussi des copies stockées dans le cache de tous les clients.

Par le biais de règles, il est possible de définir les droits d’accès sur les différents objets manipulés. Cette infrastructure est basée sur le mécanisme de liste de contrôle d’accès (ACL, Acces Control Lists). La gestion de sessions repose aussi sur le même type de règles étant donné qu’une session est assimilée à un type d’objet particulier. Une règle est associée à un ensemble de ressources. Pour chaque attribut caractérisant

LESOUTILSEXISTANTS

COCA

une ressource, il convient de spécifier un droit d’accès (lecture uniquement, écriture, etc). Un rôle est l’association d’un identifiant avec un ensemble de règles.

Actions et couverture fonctionnelle

Selon la première dimension de notre grille, Intermezzo met en place un support très évolué à l’action collective dédiée à la coordination. Les règles régissant la coordination entre utilisateurs sont spécifiées dans le langage Python sous forme de scripts chargés dynamiquement. Ces scripts définissent les rôles et les droits accordés.

Pour la production, Intermezzo dispose de deux services, un pour la gestion de la concurrence, l’autre pour le contrôle de l’homogénéité des données.

Le support de l’action collective dédiée à la communication est délégué au développeur chargé de mettre en œuvre une solution adaptée.

Ressources du contexte

L’outil Intermezzo utilise explicitement le terme de ressources pour identifier l’ensemble des données manipulées, qu’elles soient privées (ressources individuelles) ou partagées (ressources collectives). Cependant, une ressource ne peut disposer que d’un seul propriétaire et une ressource est partagée que si le propriétaire la rend observable et accessible.

Observabilité des actions et des ressources

Les données rendues accessibles sont protégées par des droits d’accès modifiables uniquement par le propriétaire. Grâce à la définition de droits d’accès, un propriétaire peut donc spécifier quel utilisateur est autorisé à consulter ou modifier une ressource. Le système offre donc un système de filtrage et de protection des données.

L’outil Intermezzo dispose aussi d’un service de notification, à base de propagation d’événements et de trigger, pour diffuser les changements d’état et les données partagées modifiées. Enfin, cet outil favorise la rétroaction de groupe en maintenant une base d’informations du type “qui manipule tel objet avec quelle application” sur toutes les activités en cours.

4.5.COCA COCA [Li 1998][Li 1999] offre une infrastructure pour le développement d’applications collaboratives centrée sur la coordination. Cette infrastructure est écrite dans le langage Java et repose entièrement sur le protocole Multicast pour assurer la communication entre les différents clients et processus dédiés. Un interpréteur permet de définir des règles de coordination, spécifiées dans un langage de logique du premier ordre proche de Prolog.

Comme le montre la Figure 9, l’architecture d’implémentation d’une application conçue avec COCA est constituée de deux bus de

LESOUTILSEXISTANTS

COCA

communication, c’est-à-dire deux groupes multicast : un bus dédié à la collaboration (bus collaboration à la Figure 9) qui assure la liaison entre tous les utilisateurs et un bus assurant l’accès aux différents outils (bus conférence à la Figure 9) tels que les outils de présentation (slideshow) ou de dessin (whiteboard). Le système de gestion de la collaboration est un processus dédié, la machine virtuelle COCA, processus répliqué au niveau de tous les clients. La machine virtuelle COCA se charge de réguler les accès et les échanges de données entre tous les utilisateurs via les outils utilisés. Pour cela, elle intègre un moteur d’inférence qui analyse dynamiquement un ensemble de règles décrivant des rôles et les droits d’utilisation des différents outils. De plus, cette machine virtuelle inclut une base de données, sorte de cache contenant une vue éphémère de l’état de la collaboration pour la synchronisation entre les clients. Enfin, tous les outils sont exécutés localement à chaque client et communiquent avec la machine virtuelle via le bus dédié à la conférence. L’implémentation actuelle permet de réutiliser des outils conçus au départ pour des applications mono-utilisateur : il s’agit alors de l’approche par collaboration transparente expliquée au paragraphe 2.1.

Pour réguler la coordination entre les différents participants d’une conférence, les règles spécifient, en fonction des différents rôles, comment se réalisent les échanges de messages liés à une action au niveau de l’interface homme-machine. Ainsi la coordination est définie indépendamment de la sémantique de l’outil (Noyau Fonctionnel), puisque sa spécification ne s’appuie que sur des actions-utilisateur au niveau de l’interface graphique. De plus, le langage utilisé pour spécifier ces règles est constitué d’opérateurs, comme les transactions, qui facilitent la programmation :

• de services de gestion d’accès aux outils en spécifiant pour chaque rôle les droits accordés (floor control et access control),

Figure 9 Architecture d’implémentation

d’applications conçues avec COCA

Bus collaboration

Bus conférence

Règles Machine virtuelle

BD

Outil Outil Outil de

Outil de Panneau de gestion

Moteur

COCA

video audio dessin

présentation d’accès (floor control)

LESOUTILSEXISTANTS

DARE

• de services de gestion de sessions par la définition d’une règle de conférence (session manager) et,

• de services de gestion d’accès concurrent (concurrency control). Pour ce dernier service, la programmation est de très bas niveau puisque COCA offre des prédicats pour définir des zones de transactions (begin-transaction et end-transaction) et des prédicats pour le verouillage d’objets (lock et unlock).

Actions et couverture fonctionnelle

Tout comme Intermezzo, COCA se concentre uniquement sur l’aspect coordination de l’activité de groupe. L’objectif affiché est de proposer une plate-forme capable de contrôler la coordination entre utilisateurs indépendamment des outils utilisés [Li 1999]. La coordination est régie par un ensemble de règles programmées dans un langage déclaratif de logique du premier ordre. Avec ce langage, il est possible de spécifier précisément les rôles joués par les utilisateurs, de définir les règles d’utilisation des différents outils et les droits d’accès aux objets partagés. Ainsi, le support de l’action collective dédiée à la coordination est défini à haut niveau d’abstraction.

Par contre, cet outil ne traite pas de l’activité de groupe liée à la communication et à la production. Ces aspects de l’activité de groupe sont délégués aux outils manipulés comme les outils audio/video ou l’outil de dessin (whiteboard).

Ressources du contexte

La plate-forme COCA raisonne à très gros grain puisqu’une ressource collective est assimilée à un outil. Toutefois, nous avons évoqué l’existence d’objets partagés. Il s’agit d’objets au sens de la programmation orientée objet du type C++.

Observabilité des actions et des ressources

Il est difficile de parler d’observabilité des ressources du contexte sachant que les ressources sont des outils. Néanmoins, le modèle de coordination met en œuvre un système de droits d’accès et d’utilisation que l’on peut apparenter, par extension, à une forme de filtrage lié à l’observabilité. Enfin, la plate-forme COCA met en œuvre des services systèmes à base de communication multicast et de gestionnaire d’événements (event

handling) chargés de diffuser les informations sur les actions en cours.

4.6.DARE DARE (Activités Distribuées dans un Environnement Réflexif)

Documents relatifs