PAMS-Plateforme collaborative pour la
Transcription
PAMS-Plateforme collaborative pour la
Institut de la francophonie pour l’informatique et Institut de recherche pour le développement (Géodes) Master II PAMS-Plateforme collaborative pour la modélisation et simulation par NGUYEN Trong Khanh Encadrants : HO Tuong Vinh MARILLEAU Nicolas France, 2008 Remerciements ... Je tiens à remercier dans un premier temps, toute l’équipe pédagogique de l’Institut de la Francophonie pour l’Informatique et de l’université Lyon 1, et les intervenants professionnels responsables de la formation Master Sciences, Technique, Santé Mention Informatique Professionnel et Recherche Spécialité Réseaux, pour avoir assuré la partie théorique de celle-ci. Je remercie également Monsieur Nicolas Marilleau et Monsieur Ho Tuong Vinh pour l’aide et les conseils concernant les missions évoquées dans ce rapport, qu’il m’ont apportés. Je tiens à remercier à Tran Nguyen Minh Thu, Chu Thanh Quang, Nguyen Ngoc Doanh Vo Duc An, et Nguyen Huu Chi pour leur amitié, leur aide et des plats Vietnamiens dans mon séjour à Bondy. Je remercie chaleureusement mes camarades de la promotion XII pour leur amitié sans faille et leur souhaite bonne chance pour la soutenance. Enfin, je tiens à remercier tout particulièrement mes parents, ma petite amie Phan Thi Thuy Hanh pour leur soutien, leur encouragement et leur confiance. Résumé Actuellement, plusieurs recherches dans le domaine du système complexe sont interdisciplinaires et collaboratifs. Elles associent des scientifiques venant de différents domaines de recherche. De plus, les chercheurs sont souvent géographiquement distribués. Pour ces raisons, l’échange entre les scientifiques est difficile. Le but de notre travail est d’explorer une nouvelle approche de collaboration scientifique qui facilite l’interaction dans le processus de modélisation et la simulation. L’originalité de l’approche est considérée des modèles et des simulateurs comme un panneau de la collaboration : un objet partagé qui est manipulé par un groupe de scientifiques. Dans ce contexte, nous développons une plate-forme collaborative qui dédie à la simulation à base d’agent (PAMS). Ce nouvel environnement intègre des outils collaboratifs communs (par exemple la vidéo conférence, la messagerie instantanée, tableau blanc) et des outils spécifiques pour partager et pour manipuler des modèles, des simulateurs, des expérimentations et des résultats. Nous prenons l’avantage des technologies du système distribué (en particulier Enterprise Java Beans) et le web (Ajax, JSP, Servlet). La version actuelle du PAMS est basé sur le serveur d’applications Jonas, le serveur d’applications Web Sakai / Tomcat et Agora, un outil collaboratif. Maintenant groupware PAMS soutient simulateurs à base de la plate-forme Repast et Gama. Mais il est possible de soutenir de nombreux simulateur à base d’agent. [44]. Abstract Major researches in the domain of complex systems are interdisciplinary and collaborative. They associate scientists coming from various research areas. In addition, researchers are often geographically distributed. For these reasons, exchange between scientists is rather difficult. The purpose of our work is to explore a new collaborative approach that facilitates scientist’s interactions during the modeling and simulating process. The originality of the presented approach is to consider models and simulators as a board of the collaboration : a shared object manipulated by a group of scientists. In this context, we develop a collaborative platform dedicated to agent-based simulation (PAMS). This new environment integrates common collaborative tools (e.g. videoconferencing, instant messaging, whiteboard) and specific tools to share and manipulate models, simulators, experiments and results. To develop PAMS environment, we take advantage of technologies coming from distributed systems (particularly Enterprise Java Beans) and the web (Ajax, Jsp, Servlet). The current version of PAMS is based on Jonas application server, Sakai/Tomcat web application server and Agora collaborative tools. Today PAMS groupware supports simulators based on Repast and Gama platforms. But it is possible to support many other agent based simulation frameworks. [44] Table des matières Table des matières 1 Introduction 1.1 Contexte du travail 1.2 Problématique . . 1.3 L’objectif du stage 1.4 Plan du mémoire . i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 État de l’art 2.1 Systèmes collaboratifs . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.2 Classification . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.3 Domaines d’application . . . . . . . . . . . . . . . . . . . 2.2 La collaboration en simulation . . . . . . . . . . . . . . . . . . . 2.2.1 Processus de modélisation - simulation . . . . . . . . . . . 2.2.2 Taxonomie des participants . . . . . . . . . . . . . . . . . 2.2.3 Collaboration dans un projet de modélisation - simulation 2.2.4 Techniques de collaboration en simulation . . . . . . . . . 2.3 Plate-forme collaborative . . . . . . . . . . . . . . . . . . . . . . 2.3.1 Outils de collaboration . . . . . . . . . . . . . . . . . . . . 2.3.2 Plate-forme générique . . . . . . . . . . . . . . . . . . . . 2.3.3 Plate-forme spécifique . . . . . . . . . . . . . . . . . . . . 2.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 PAMS 3.1 Analyse . . . . . . . . . . . . . . . . . . . . 3.1.1 Scénario de collaboration . . . . . . 3.1.2 Cahier de charge . . . . . . . . . . . 3.2 État existant de PAMS . . . . . . . . . . . 3.2.1 Présentation . . . . . . . . . . . . . 3.2.2 Architecture . . . . . . . . . . . . . 3.3 Proposition de fonctionnalités collaboratives 3.3.1 Mise en place de solutions existantes 3.3.2 Module de partage des simulations . 3.4 Tests . . . . . . . . . . . . . . . . . . . . . . 3.4.1 Test scénario 1 . . . . . . . . . . . . i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 1 2 2 . . . . . . . . . . . . . . 3 3 3 4 4 5 5 7 8 9 12 12 15 17 20 . . . . . . . . . . . 21 21 21 23 25 25 26 28 28 28 40 40 ii TABLE DES MATIÈRES 3.4.2 3.4.3 3.4.4 Test scénario 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Test scénario 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Test scénario 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 42 42 4 Une étude de cas 43 5 Conclusion 55 Bibliographie 57 A Des cas d’utilisation 63 B Intégration d’Agora dans Sakai 71 C L’article de PRIMA 2008 73 Table des figures 81 Liste des tableaux 83 Chapitre 1 Introduction 1.1 Contexte du travail Ce projet a pour objet de concevoir une plate-forme permettant de créer des modèles, de les manipuler, de les expérimenter, de les modifier et de les coupler avec d’autres déjà existants. Ce projet permettra, d’une part, de faciliter la capitalisation du travail scientifique, et d’autre part de favoriser le rapprochement des chercheurs de GEODES et chercheurs d’une autre unité de recherche de l’IRD, c’est MSI de l’Institut de la Francophonie pour l’Informatique (IFI). La première version de la plate-forme Pams développée dans le cadre du programme Spirales en 2007 offre déjà des perspectives très prometteuses devant être approfondies. Grace à ces premiers résultats, le projet obtient, en 2008, une prolongation des financement Spirales. Ce projet est une collaboration entre deux unités : Geodes d’IRD Bondy-France et IFIMSI, Jeune Équipe Associée à l’IRD (Hanoi, Vietnam). Créée en mars 2006, cette jeune équipe vise à accompagner le programme d’enseignement Master et à développer la recherche à l’IFI. Mon stage se déroule une partie à MSI d’IFI à Hanoi et d’autre partie à Geodes d’IRD Bondy. 1.2 Problématique Ce projet s’intéresse à l’apport des NTIC (Nouvelles Technologies de l’Information et de la Communication), et en particulier des environnements d’accompagnement du travail collaboratif à distance, dans le cadre des activités de modélisation et de simulation de systèmes naturels complexes. Son idée principale est de placer le modèle (et les outils de conception et d’expérimentation associés) au centre du dispositif de collaboration. Il s’agit de développer un espace virtuel, intégré dans un collecticiel existant, dans lequel thématiciens et modélisateurs seront en mesure d’utiliser ou d’installer des modèles ou des simulateurs, de les expérimenter en ligne (via une interface standardisée), de les annoter (et d’annoter chacune des expérimentations), d’enregistrer et de rechercher dans une base de données les résultats expérimentaux et de communiquer et d’interagir ensemble en utilisant les outils du collecticiel. L’ensemble sera ainsi conçu comme un véritable ” laboratoire virtuel collaboratif ”, centré 1 2 CHAPITRE 1. INTRODUCTION sur un ou plusieurs modèles, où chacun peut proposer ses résultats, ses remarques et ses questions aux partenaires scientifiques concernés, réexploiter les démarches et les propositions antérieures et interagir au moyen d’outils collaboratifs afin d’améliorer la coordination entre partenaires, la capitalisation et la réutilisation des modèles existants et leur transmission à de nouveaux intervenants (comme par exemple des étudiants). 1.3 L’objectif du stage L’objectif du stage est d’implémenter une interface collaborative pour la plate-forme Pams. Afin de concevoir une telle interface, il est, dans un premier temps, important d’avoir une réflexion sur les activités de simulation et de collaboration. Ainsi, il sera possible identifier et de préconiser une manière de collaborer appropriée au domaine de la simulation des systèmes complexes. Ensuite, nous serons en mesure de concevoir et de développer une interface qui suit ces préconisations. 1.4 Plan du mémoire La suite de ce mémoire est organisée en quatre parties qui sont les suivantes : – Première partie : dans un premier temps, nous analyserons le problème à étudier. Ensuite, les solutions existantes sont présentées en vue d’apporter une évaluations des technologies. – Deuxième partie : L’état du projet PAMS (au début de mon stage) est présenté. A partir des analyses présentée dans la première partie de ce document, nous proposons des scénarios et des solutions (contribution de mon travail) pour les problèmes. Nous présentons aussi des tests pour vérifier les solutions que nous avons apportées. – Troisième partie : Une étude de cas est présentée pour, premièrement, montrer le fonctionnement du prototype que nous avons conçu et deuxièmement guider l’utilisation de plate-forme. – La conclusion, les perspectifs, et les références cloture ce mémoire. Chapitre 2 État de l’art 2.1 2.1.1 Systèmes collaboratifs Définition La collaboration est un processus visant à partager la création [10]. Un groupe d’individus a un problème commun à résoudre. Chaque membre dispose d’un point de vue et une compréhension différente du problème. Ils échangent leurs connaissances et leurs opinions pour résoudre le problème. Dans la plupart des cas, un problème est divisé en sous-problèmes qui sont résolus par un ou plusieurs membres du groupe. Un système collaboratif ou bien un collecticiel (“groupware” en anglais) est une infrastructure logiciel qui favorise le travail en collaboratif. Selon [12], système collaboratif est un système à la base d’ordinateurs qui supporte des groupes de personnes engagés dans une tâche commune. Pour cela, il fournit une interface partagée permettant la réalisation de tâches communes. Une tâche commune et une interface partagée sont des éléments essentielles pour un système collaboratif. Les termes coopération, coordination sont souvent considérées comme synonyme de collaboration, si bien que leurs différences sont souvent mal comprises. Ces termes évoquent différentes manières de travailler en groupe, mais dénotent des niveaux d’interaction différents (voir la table 2.1). On peut considérer que la communication constitue la base de la coordination, de la collaboration et de la coopération. Ici, la communication se résume par l’échange d’informations entre les membres d’un groupe. Les autres modes d’échange se reposent sur la communication. La coordination se défini par une décomposition d’un travail en tâches ordonnées dans le temps. Quand un groupe travaille en coordination, le travail est planifié. Chaque membre se voit assigné une tâche concrète. La collaboration se situe à un degré d’échange plus haut que la coordination. La clef principale de la collaboration est le partage. Un groupe partage une tâche et un même but. Mais chaque personne du groupe dispose d’une vue différente du problème. On peut considérer la collaboration comme le découpage d’une tâche en sous-tâches qui seront exécutées par différents entités [45]. La coopération rassemble autour d’un même projets des individus qui ont une même vision d’un problème et qui tente de le résoudre ensemble en partageant l’ensemble des moyens et des connaissances dont ils disposent. 3 4 CHAPITRE 2. ÉTAT DE L’ART Communication → Coordination → Collaboration → Coopération → Table 2.1: Dégréé de travail en groupe [45] Dans le paragraphe suivant, nous établissons une classification de la collaboration en nous basant sur divers critères. 2.1.2 Classification Dans le cadre d’une action en groupe, la spatialité et la temporalité occupent une place importante dans la décision et le choix d’une méthode de travail. A partir de ces deux critères, 4 niveaux de collaboration peuvent être identifiés [12] (voir la table 2.2) Présentiel Distanciel Synchrone Collaboration face-à-face Collaboration distante synchrone Asynchrone Collaboration asynchrone Collaboration distante asynchrone Table 2.2: Table des modes de travail en groupe La collaboration la plus efficace est réalisée face-à-face car tous les membres collaborent en même temps et sur le même espace. Ensuite, c’est la collaboration distante synchrone, avec laquelle les membres collaborent simultanément, mais chacun d’eux se situe en des lieux différents, par exemple : un éditeur de document en temps réel. Puis, c’est la collaboration asynchrone où les membres échangent sur même espace, mais pas simultanément, par exemple : le tableau d’information physique. Enfin, la collaboration distante asynchrone qui est correspondante avec le cas que les membres collaborent ni simultanément et n’en même temps par exemple : le système de courriel électronique, le forum. . . 2.1.3 Domaines d’application Avec le développement des NTIC (Nouvelles Technologies de l’Information et de la Communication), et des besoins, les systèmes collaboratifs sont plus en plus nécessaires et utilisés. Ils sont appliqués dans nombre de domaines comme [22]. : – Les jeux, plus particulièrement des jeux en réseaux, par exemple : Starcraft [7] , Quake [27] . . . Dans ce type d’application, les joueurs collaborent afin de réaliser des missions et gagner. – Les Workflows, systèmes qui permettent la coordination. Ce type de système aide plusieurs participants à gérer un processus de travail. (ex : Ultimus Workflow Suite [34], IBM MQSeries [15] . . . ) – L’enseignement où des systèmes collaboratifs reposent sur des médias et des technologies du réseau en vue de faciliter l’apprentissage. (ex : Sakai [13], Netop [41] . . . ) – La communication où systèmes collaboratifs permettent à plusieurs membres d’un groupe de communiquer et de consulter . . . via des support audios, vidéos ou textuels. (ex : Agora [1], Net Meeting [42]. . . ) – L’espace de travail partagé où des systèmes collaboratifs fournissent un espace partagé dans laquelle des participants peuvent manipuler des artefacts. (ex PHP Groupware 2.2. LA COLLABORATION EN SIMULATION 5 [21], EGroupware [4], Sakai [13]. . . ) L’échange d’information, et de résultats entre des chercheurs est important pour le succès d’une action de recherche. Souvent, les chercheurs ne travaillent pas en un même lieu (parfois, ils se situent dans des pays différents). Dans ce contexte, les systèmes collaboratifs sont un bon moyen pour palier aux contraintes de temps et de distances auxquelles chaque chercheur est confronté. Dans les domaines de la Télé-médecine, de la E-maintenance et de la simulation, quelques outils collaboratifs existent comme par exemple : les plate-forme TeneCI, WBSC [18] et DISCOVERY [26]. L’objectif de ce travail n’est pas de faire une liste exhaustive de l’ensemble des domaines où les principes de la collaboration s’appliquent. Il ne s’agit pas, non plus, d’énumérer l’ensemble des plate-formes collaboratives. Pour ces raisons, dans la suite de ce chapitre nous nous focaliserons sur les systèmes collaboratifs appliqués au domaine de la simulation. 2.2 La collaboration en simulation Un projet de simulation nécessite souvent la contribution de plusieurs chercheurs issues de différents champs disciplinaires. La réalisation d’un projet de simulation nécessite des connaissances larges qui appartiennent à plusieurs domaines, par exemple la simulation d’un moteur électrique exige des spécialistes de l’électronique et des programmeurs. L’interaction, l’échange des idées entre des participants est la clés principales pour le succès d’un projet simulation. Selon Robinson et Pidd [39], 3 conditions sont essentielles à la bonne réalisation d’un projet de simulation : – Une communication régulière entre des experts consultants et les thématiciens – Des réunions régulières entre les experts consultants et leur thématicien – Une cohésion d’équipe Donc, le succès d’un projet de simulation dépend la fréquence des rencontres entre des experts consultants, les thématiciens ainsi tous les membres. 2.2.1 Processus de modélisation - simulation On étudie souvent un système complexe réel par simulations. Des modèles représentatifs du système sont alors établis, implémentés au sein d’un simulateur et exécutés pour obtenir des résultats. ”Un modèle permet de donner une représentation structurée du système faisant l’objet de l’étude” [28]. Donc qu’est-ce qu’un modèle ? Selon Marilleau Nicolas [28], la vision d’un modèle dans la monde scientifique est contraire à la définition originel. En sciences, un modèle est une représentation possible d’un système réel ou imaginaire. La définition originel identifie un modèle comme un objet qui sert ou doit servir d’objet d’imitation pour faire ou reproduire quelque chose [36]. La modélisation est l’activité de concevoir des modèles. La simulation vise, quant-à elle, à exécuter ces modèles. La simulation est donc une ”reproduction artificielle d’un phénomène, d’une variation, voire d’un avenir possible” [5]. Un projet de modélisation-simulation est réalisé en plusieurs étapes qui sont : – L’analyse du problème à résoudre – La construction d’un modèle conceptuel – La construction d’un modèle informatique ou bien un simulateur – L’expérimentation – L’analyse des résultats 6 CHAPITRE 2. ÉTAT DE L’ART Figure 2.1: Processus d’un projet de modélisation-simulation [42] Les figures 2.1 et 2.2 sont extraites de [42] et de [39]. Elles présentent le processus d’un projet de simulation. En général, un projet de simulation est défini à partir des besoins identifiés lors de l’analyse d’un problème réel. En somme cette étape revient à définir le problème. Figure 2.2: Processus d’un projet de modélisation-simulation [39] L’étape suivante vise à définir un modèle conceptuel. Un modèle conceptuel est une représentation abstraite mais réaliste du système complexe étudié. Lors de cette étape, des techniques diagrammatiques sont souvent utilisées (des diagrammes cycle de l’activité , des graphiques d’événement , des schémas, etc.). Le modèle conceptuel est ensuite traduit en un modèle informatique autrement dit un simulateur. Ce dernier est ensuite testé pour déterminer s’il reproduit bien le système étudié. Lors de la phase d’expérimentation, le modèle informatique est combiné avec des données expérimentales afin d’essayer de mieux comprendre le problème étudié. La validation doit être effectuée à tous les stades du projet de simulation afin de s’assurer que les différents modèles utilisés ne s’écartent pas du système physique étudié. 7 2.2. LA COLLABORATION EN SIMULATION 2.2.2 Taxonomie des participants Les membres d’un même projet de simulation ont un rôle déterminé. Selon [43], les rôles de ces membres se scindent 5 catégories (voir le tableau 2.3). Groupe Concepteurs Utilisateurs Expert Connaisseurs Bénéficiaire Signification Responsable de la gestion du projet Développe le modèle (conceptuel et informatique) Expérimenter le modèle pour comprendre et chercher des solutions pour le problème étudié Le problème propriétaire et recevoir des résultats ; fonds direct ou indirect pour des travaux Recevoir le modèle Experts en la matière qui sont capable de fournir des données et de l’information pour le projet Un tiers d’experts (fournisseur de logiciels, de consultant ou de d’experts) fournit des logiciels et / ou des compétences de modélisation Un large groupe de personnes par lequel l’information est obtenu Les bénéficiaires du projet, qui n’y anticipent pas. Dans certains cas, ils ne sont pas au courant du projet Exemple Chef de projet Modélisateur Utilisateurs du modèle (à la dernière étape du projet) Clients Utilisateurs du modèle (au début du projet) Fournisseurs de donné Supporteur de modélisation Les personnes interrogées pour l’information Administrateur, clients Table 2.3: Taxonomie des participants [43] En effet, un membre peut prendre un ou plusieurs rôle. Un rôle peut être attribué à un ou plusieurs membre(s). Un modélisateur prend souvent les rôles de chef de projet, de concepteur du modèle, et d’utilisateur car il participe à la l’ensemble du processus de modélisation-simulation. Les thématiciens sont quant à eux des experts, des fournisseurs de données expérimentales, et des utilisateurs. Ces trois premières catégories regroupent le noyau principal de l’équipe d’un projet. Le groupe des connaisseurs caractérise un large groupe de personnes qui doivent être interrogées afin d’obtenir des informations sur le système modélisé. Néanmoins, ces personnes ne participent pas directement au projet de simulation. Les bénéficiaires sont profitent du projet, mais ils souvent ne savent pas l’existence du projet. Des administrateurs par exemple. La Communication, la Coordination et la Collaboration entre chaque membre ayant un ou plusieurs rôles sont la clé du succès d’un projet de modélisation-simulation. Dans la section suivante nous allons analyser plus en détail cet aspect. 8 2.2.3 CHAPITRE 2. ÉTAT DE L’ART Collaboration dans un projet de modélisation - simulation Le plus souvent, un processus de modélisation-simulation nécessite la réalisation de toute les étapes présentées par la figure 2.2 et 2.1. Pour chaque étape, la Communication, la Coordination, la Collaboration ou la coopération s’avère nécessaire. Au début d’un projet, lors de l’étape de Définition du problème, des réunions de lancement du projet sont souvent menées. Elles font, le plus souvent, intervenir le gestionnaire du projet, les concepteurs, et les experts du domaine pour déterminer les contours du problème à étudier [40]. Dans ce contexte, une Collaboration face-à-face ou une Collaboration distante synchrone s’avère la plus efficace. Le Modèle conceptuel est l’étape la plus importante dans un projet de modélisationsimulation. Cette étape conditionne les résultats qui seront obtenus lors d’expérimentation. Selon [38] un des facteurs important pour la modélisation d’un système complexe se situe dans l’échange entre le thématicien et le modélisateur. Seule le thématicien connaît en profondeur le système étudiés. Les modélisateurs sont, la plupart du temps, pluridisciplinaires si bien qu’ils ont ni l’expérience ni les connaissances d’un thématicien dans une thématique de recherche précise (à l’exception du domaine de la modélisation). Il est donc nécessaire de maintenir une communication, une interaction constante entre le thématicien et le modélisateur. Le concepteur donc doit communiquer régulièrement avec l’utilisateur, l’expert et les connaisseurs. Lors de cette étape, les quatre méthodes collaboratives s’appliquent à savoir : (i) la collaboration face-à-face ; (ii) la collaboration asynchrone ; (iii) la collaboration distante synchrone ; et (iv) la collaboration distance asynchrone. Figure 2.3: Modèle conceptuel et collaboration L’étape d’implémentation d’un simulation autrement dit de création d’un modèle informatique nécessite des échanges moins soutenus entre les participants. Des approches de collaboration asynchrone sont le plus souvent suffisantes. Après la phase de développement, le modèle informatique est testé et calibré. Pour cela, le concours des thématiciens est primordial. Enfin, lors de l’étape d’analyse des résultats, le modèle informatique est paramétré avec des données expérimentales pour essayer de découvrir une solution pour le problème étudié. A cette étape, le modèle informatique est exécuté plusieurs fois en changeant les paramètres d’entrée, et une analyse des résultats est faite en sortie. Souvent, tous les membres du projet participent dans cet étape. Ils discutent, travaillent collaborativement afin de déterminer les paramètres d’entrée et d’identifier d’éventuels bogs.. 9 2.2. LA COLLABORATION EN SIMULATION La figure 2.4 représente la fréquence des interactions dans un projet en fonction des étapes d’un processus de modélisation. Elevé Fréquence d'interaction Moyen Bas Modélisation conceptuelle Codage du modèle Expérimentation Implémentation Figure 2.4: Fréquence d’interaction dans un projet de simulation [43] Notons que la collaboration apparaît dans toute l’étape d’un projet de simulation. On peut dire que la collaboration est la clef du succès dans un projet. Dans la session suivante, nous aborderons quelques techniques usitées pour collaborer dans un projet de simulation. 2.2.4 Techniques de collaboration en simulation Pour chaque étape du processus de modélisation-simulation, on applique des techniques de collaborations différentes qui sont adaptées au besoin de l’étape. Pour l’étape Définir le problème, la collaboration se résume souvent à des réunions entre des membres. Donc, les techniques de communication synchrone comme messagerie instantanée, la vidéo conférence, audio conférence. Par exemple : NetMeeting [42], Agora [1], Skype [31] . . .. L’établissement du modèle conceptuel constitue l’étape où il est particulièrement important de collaborer. Pourtant, il n’y a pas beaucoup d’outils et de techniques qui permettent à plusieurs modélisateurs de créer ensemble des modèles conceptuels. La plupart du temps, les concepteurs construisent individuellement les modèles et les communiquent ensuite aux autres membres d’un projet. Dans [17], A.Hanisch présente une technique appelée Collaw (voir la table 2.5) qui permet d’écrire collaborativement des modèles de conceptuel. D’autres outils comme Net-Meeting [42] et VNC [25] proposent des solutions intéressante pour construire des modèles conceptuels de manière collaborative. Les outils de partage de bureau virtuel permettent à deux concepteurs de construire ensemble un modèle conceptuel. Les modélisateurs doivent cependant accéder à un même bureau virtuel et partager : aucune gestion d’un espace privé n’est possible. Comme nous l’avons déjà vu, l’étape de création du Modèle informatique exige une activité de collaboration moins importante : Les développeurs programment des modèles 10 CHAPITRE 2. ÉTAT DE L’ART informatiques tout seul selon les spécifications du modèle conceptuel précédemment établi. Les techniques collaboratives utilisées lors de cette étape peuvent être asynchrone comme le courriel, les forum . . . . Figure 2.5: Collaw [17] Lors de l’expérimentation d’un modèle, les scientifiques effectuent trois tâches principales : (i) la saisie des paramètres, (ii) l’exécution de la simulation et (iii) l’analyse des résultats. Pour la saisie des paramètres de simulation, quelques techniques de collaboration existent comme : la saisie directe via une interface collaborative, ou bien l’écriture collaborative et le partage de fichiers de paramètres qui vont être lus par les simulateurs. Figure 2.6: Entrée directe des paramètres 2.2. LA COLLABORATION EN SIMULATION 11 Dans la plate-forme WBSC [17], la deuxième solution est adoptée. Les paramètres sont formatés dans un fichier spécifique (le plus souvent texte ou XML) que le simulateur peut interpréter. Ce fichier est chargé sur la plate-forme collaborative et le simulateur est exécuté. L’inconvénient de cette technique est que l’on doit connaître la spécification du fichier d’entrée. De plus il faut éditer de manière individuelle le fichier avant de le communiquer à l’ensemble des membres du projet. Pour l’exécution d’un simulateur peut se réaliser de deux façons : (i) sur un serveur distant unique, (ii) sur la machine du chercheur. Pour la première façons, le contrôle de l’exécution s’effectue à distance via une interface commune. Dans ce cas, il faut construire un mécanisme de travail collaboratif permettant le partage du contrôleur. Pour la deuxième, un outil de partage de bureau comme VNC s’applique. Figure 2.7: NetMeeting et SIMUL8 [42] Les sorties d’un simulateur sont souvent présentés sous forme textuelle. Donc une plateforme doit fournir une fonction pour convertir des fichiers texte en images ou en graphique. Cette fonctionnalité peut être réalisée sur un serveur qui convertit les résultats de simulation et les diffuse à tous les participants. L’avantage de cette approche est de permettre une gestion simple du partage des résultats de simulation. Cependant, si il y a beaucoup de demandes de convertir au serveur, le serveur peut-être surcharge. On peut surmonter cet inconvénient par envoyer directement le fichier texte à la machine de chaque chercheur. La machine doit installer le logiciel pour le convertir à la forme qui peut visualiser. 12 CHAPITRE 2. ÉTAT DE L’ART Figure 2.8: Représenter le résultat par le converteur Proof2SVG [18] Quelques techniques pour appliquer la collaboration dans la modélisation - simulation viennent d’être présentés. Leur choix dépend des exigences et des contraintes liés à chaque projet. Dans la section suivante, nous allons présenter des définitions et des classifications sur les plate-formes collaboratives actuelles. 2.3 Plate-forme collaborative Une plate-forme collaborative est un système distribué qui fournit des services permettant l’échange entre les membres d’un groupe via le réseau. Elle intègre : (i) des outils (vidéoconférence, messagerie instantanée, tableau blanc, etc) pour soutenir les interactions entre les personnes, (ii) des fonctionnalités pour gérer les utilisateurs, les groupes et les droits, (iii) la sécurité pour assurer la confidentialité des données utilisateur et la cohérence. On peut considérer une plate-forme collaborative comme une plate-forme qui centralise des fonctionnalités différentes permettant de collaborer. Les plates-formes actuelles se divisent en deux catégories : les plates-formes génériques et les plates-formes spécifiques. Dans cette section, nous abordons quelques outils de collaboration plus connus et leur fonctionnalité, avant de nous focaliser, successivement, sur les environnements génériques et spécifiques. 2.3.1 Outils de collaboration Grâce à une analyse des différentes plates-formes existantes, nous avons été en mesure d’établir une liste des outils collaboratifs très utilisés (voir le tableau 2.4 et 2.5) : 13 2.3. PLATE-FORME COLLABORATIVE Nom Description Agenda partagé Un outil permet aux utilisateurs de pouvoir ordonner le travail de chacun ou de groupe Des notifications automatiques, correspondant à un envoi de mail suite à un événement spécifique pourront être configurées Pour mieux comprendre l’avis des autres membres sur un événement, une action . . . Permettre de recenser des différents paramètres concernant la plate-forme, par exemple le nombre d’accéder . . . Fournir à chaque membre un espace privé, flexible . Cette fonctionnalité permet d’enregistrer les différentes tâches à réaliser dans le cadre du projet et de les affecter aux membres de l’environnement de travail. Cette fonctionnalité permet de partager des documents de travail. On peut ajouter des contacts d’affecter et superviser les tâches des différents acteurs du projet. Il remplira une fonction similaire à celle d’un panneau d’affichage. Les membres pourront placer un nouveau message ou faire une remarque sur un message affiché. Les messages envoyés sont stockés dans le Forum et peuvent être lus par tous. Cet outil permet aux membres de communiquer en temps réel et en textuel Pour changer l’affichage de l’espace de travail. Alerte Sondage Statistiques Personnalisation Préférences Gestion de tâches Gestion de projet Forum Messagerie instantanée Thèmes Table 2.4: Outils collaboratifs (1) Syn ou Asyn Syn et asyn Syn et asyn Aysn Asyn Asyn Syn Exemple Google Agenda , OBM . . . 14 CHAPITRE 2. ÉTAT DE L’ART Nom Description Tableau blanc-News Le tableau blanc permettra aux membres de pouvoir noter toutes les informations qu’ils jugent utiles pour les membres de l’espace de travail collaboratif. gères les questions les plus fréquemment posées. FAQ Email Recherche Liste de contactsCarnets d’adresses Visio conférence Pour l’échange de messages Pour chercher des fichiers, des publicités, des articles . . . Cette fonctionnalité permet d’enregistrer une liste de contacts nécessaire à tous les membres de l’environnement de travail collaboratif. Syn ou Asyn Asyn Exemple Asyn Asyn Asyn Syn Il permet de communiquer par audio et vidéo. Agora [1], NetMeeting [42] Table 2.5: Outils collaboratifs (2) De plus, une plate-forme collaborative fournit des outils permettant : – La gestion des utilisateurs + le contrôle droit d’accès : Chaque membre de l’environnement de travail n’a pas les mêmes droits d’accès. Certaines fonctionnalités ne sont accessibles que par certain membre. Ces droits d’accès sont en principe définis à l’aide de profil utilisateur. + la création des membres et des groupes + l’authentification : Chaque personne voulant se connecter à un environnement de travail collaboratif doit s’authentifier à l’aide d’un nom d’utilisateur et d’un mot de passe. + la gestion des profils utilisateurs : Chaque membre peut appartenir à un profil, c’est-à-dire à une catégorie d’utilisateur spécifique, comme par exemple : auteur, lecteur, gestionnaire. . . + la gestion des espaces privés : Les membres peuvent être amenés à créer des espaces de travail privés, qui sont soit accessible par plusieurs utilisateurs, soit seulement par son auteur. Ces espaces sont appelés (suivant l’outil) ” salles ”, ” sous-salles ”, ” workspaces ”, ou ” département ”. – Gestion des documents, qui supporte + Le versionning : Chaque membre peut bénéficier de cette fonctionnalité afin de sauvegarder différentes versions de son document. + Le Partage de documents : Chaque document peut être déposé dans des espaces de partage afin qu’il soit accessible par l’ensemble des membres habilités. 2.3. PLATE-FORME COLLABORATIVE 15 + La publication : Cette fonctionnalité permet de publier à la volée un document achevé et disponible à l’ensemble des membres. – Gestion des données, qui supporte : + Formulaire de saisie : Cette fonctionnalité permet de créer des formulaires spécifiques avec un control automatique des champs afin de normaliser l’enregistrement des informations saisies. + Database : La base de données permet de sauvegarder l’ensemble des informations saisies à l’aide de formulaires spécifiques. Les outils précédemment cités s’organisent le plus souvent au sein de plates-formes collaboratives 2.3.2 Plate-forme générique Les plates-formes génériques sont composés d’outils collaboratifs conventionnels (vidéoconférence, messagerie instantanée, agenda partagé, gestion de groupe, etc . . . ). Les platesformes génériques actuelles partagent toutes un même modèle d’accès : un accès Web. Dans un contexte scientifique, une plate-forme générique est intéressante si elle offre : – Des outils collaboratifs nécessaires à la recherche ; – La possibilité d’extensibilité ; – Une facilité d’utilisation ; – Un support à la fois des collaborations Synchrone et Asynchrone A la base de ces critiques, faisons une étude comparative des plates-formes génériques actuelles (il ne s’agit pas d’une étude exhaustive) : – Egroupware [4] : Outil de niveau professionnel pour le travail collaboratif en ligne. – Mioga2 [24] : Mioga 2 est une solution pour un projet que les membres géographiquement isolées. Il dispose d’un riche ensemble d’outils, par exemple : document partagé, gestion des contacts, ordre du jour, et possibilité d’accès à partir d’un navigateur et PDA. – Moregroupware [9] : Moregroupware est une application collaborative à la base de web. Cette application présente l’avantage d’avoir des outils simples de configuration, et des modules permettant sa mise a jour, en plus des outils collaboratifs traditionnels. . . – Lucane [14] : Une plate-forme collaborative simple et complète. C’est une plate-forme de collaboration libre de droit. Elle est écrit en Java. – Phpgroupware [21] : Comme les autres plates-formes, phpGroupWare est libre de droit. Elle s’appuie sur de nombreuses fonctions de base, par exemple : gestion des contacts, e-mail, agenda partagé, gestion et partage le contenu Web et le documents, gestion de projet . . . . – Sakai [1] : Sakai permet la collaboration en ligne et le E-learning. Comme une plateforme générique, Sakai renferme tous les outils nécessaires à la collaboration, par exemple : Forum de discussion, messagerie instantanée, agenda, espace privé, espace partagé ... En outre, il s’agit d’une plate-forme modulaire. Ainsi, il est possible de développer, d’intégrer de nouvelles fonctionnalités si bien qu’il est possible de créer des environnements dédiés adaptées au contexte de travail. – Xoops [3] : XOOPS (eXtended Object Oriented Personal System) est un système de construction de portail écrit en PHP orienté objet (OO). XOOPS est l’outil idéal pour développer des sites communautaires, portails intranet, portails collaboratifs . . . Async Non Non Non Non Oui Oui Oui Oui Oui Moins une moi Sync/Async Non Non Oui Non Oui Oui Oui Oui Non Moins une semaine Syn/asyn Vidéo Conference Audio Conference Messagerie instantanée Tableau blanc Email Forum Wiki Gestion d’utilisateur Gestion de configuration Dernièrr mise à jours Moins 2 ans Non Oui Oui Oui Oui Non Non Non Async Non Oui Php/bd Moregroupware Navigateur, Oui Oui Oui Non Oui Oui Oui Oui Lucane Navigateur, client mail, Environement spécifique Oui Java WebService Sync/async Non Moins 2 ans Oui Oui Oui Oui Oui Non Oui Non Async Non Oui Php/bd Phpgroupware Navigateur, Moins une moi Oui Oui Oui Oui Oui Non Oui Non Oui Java WebServie Sync/async Non Sakai Navigateur, client mail, PDA Table 2.6: Une étude comparative des plate-formes générique actuelles Oui Php/bd Oui Ajax/Php/bd Extensibilité Technologie Mioga Navigateur, client mail, PDA Egroupware Navigateur, client mail, PDA Plate-forme Mode d’accès Moins une semaine Non Oui Oui Oui Oui Non Non Non async Non Oui Php/bd Xoops Navigateur client mail, PDA 16 CHAPITRE 2. ÉTAT DE L’ART 2.3. PLATE-FORME COLLABORATIVE 17 Le tableau 2.6 montre que la plupart plates-formes proposent les fonctionnalités collaboratives conventionnelles. Par exemple, dans la plate-forme Lucane ou Sakai, on trouve des outils permettant l’Audio Conférence, le Courriel, le Forum, le Wiki. Parmi les 7 platesformes précédent citées, Sakai semble le choix le plus pertinent pour des applications au monde de la recherche, plus particulièrement au monde de la modélisation-simulation des systèmes complexes. Au cours de la section suivante, nous étudierons quelques plates-formes spécifiques. 2.3.3 Plate-forme spécifique Les plates-formes spécifiques sont des environnements collaboratifs dédiés à un domaine d’application précis comme l’e-médecine [45], la e-maintenance [45], l’apprentissage en ligne [45, 13] ou la modélisation de simulation [42, 43, 18, 20]. Elles intègrent souvent des outils présent dans les plates-formes génériques complétées par des outils collaboratifs spécifiques tels que des outils de télé-diagnostic en l’e-médecine . . . . Dans la suite de cette section, nous analyserons les plates-formes collaboratives dans trois domaines d’application : la Télé-médecine, la E-Maintenance et la modélisation-simulation des systèmes complexes. 2.3.3.1 Télé-médecine En médecine, on utilise des systèmes collaboratifs pour faciliter les consultations à distance. Ce sont des systèmes de ”Télé-Assistance Médicale” ou ”Télé-Médecine”. On peut facilement reconnaître le grand avantage de cette technique. Les patients peuvent bénéficier des diagnostics d’experts sans être obliger de se déplacer dans les hôpitaux où ces experts exercent. Le coût de reviens d’une consultation est aussi réduit. Ce système est spécialement utile dans le cas des catastrophes naturelles ou des zones géographiquement isolé. Le projet TeneCI (Télé-neurologie coopérative) est une collaboration entre le Laboratoire d’Informatique de l’Université (LIFC) de Franche-Comté et des neurologues de l’hôpital de Lausanne. Par des techniques de collaboration, par exemple la vidéo ou le télé-pointeur . . . les experts, les neurologues peut travail ensemble sur le diagnostic de patients. 2.3.3.2 E-maintenance Selon la définition de [45], “l’e-maintenance est une maintenance d’une unité fonctionnelle, assuré par télécommunication directe entre cette unité et un centre spécialisé. C’est un service à distance d’aide au diagnostic et à la réparation.” Le centre spécialisé est souvent des experts. Un système de e-maintenance se compose de 2 parties : – Le centre d’experts de l’e-maintenance – Des sites à maintenir L’e-maintenance est appliqué dans plusieurs domaines : – Pour informatique, elle est utilisée pour détecter et réparer des extraordinaires, comme des erreurs d’un système informatique – Pour l’armée : elle est utilisée pour maintenir des équipes de soldat, assistance technique et collaborer à distance via Internet. Dans ce contexte, il y a le projet LARs du centre Tobyhanna1 de l’armée américaine. – Pour l’industrie : Aider à avertir automatiquement des problèmes techniques sur des machines et déclencher des réparations à distance. Dans ce contexte, il y a le projet eu- 18 CHAPITRE 2. ÉTAT DE L’ART ropéen Proteus, une collaboration entre l’entreprise CEGELEC et Schneider Electrinc et LIFC, laboratoire d’Automatique de Besançon (LAB), laboratoire d’informatique de Paris 6 (LIP6) et laboratoire Lorrain de Recherche en Informatique et ses applications (LORIA) [45]. – Et pour les opérations dangereuse : par exemple travailler avec des lignes hautes tension, ou avec le nucléaire. 2.3.3.3 Modélisation-Simulation Étant donnée la nécessité de collaborer dans le domaine de la modélisation-simulation, quelques plate-formes ont vu le jour comme : – ViroLab [16] : VicroLab est un laboratoire virtuel qui aide à la décision afin de fournir une base de connaissances des maladies contagieuses. De plus, ViroLab fournit un laboratoire virtuel où les chercheurs et les médecins peuvent facilement accéder à des simulations distribuées et partager, traiter et analyser des données . – Virtual Laboratory Environment - VLE [33] : VLE est une plate-forme de conception et de mise en oeuvre d’expériences virtuelles dans le cadre de systèmes spatialisés. VLE permet de spécifier des systèmes complexes par des modèles à base d’agents réactifs, de simuler la dynamique du système et d’analyser les résultats des simulations. L’avantage de VLE est qu’elle fournit suffisamment d’outils pour réaliser le processus de modélisation - simulation. Mais, VLE est un logiciel qui dépend au système d’exploitation, il fonctionne uniquement sur Windows et Linux. Son installation est un peu difficile et surtout elle ne support pas beaucoup d’outils collaboratifs. Actuellement, on souvent développe des plate-formes simulation - modélisation collaborative à la base de WEB. Le mode de travail de ce type de simulation est souvent sous forme du serveur et client, la simulation peut-être en distance ou local : Simulateur Paramètres Commencer la simulation Résultat Figure 2.9: Simulation en distance [32] Dans la figure 2.9, la simulation est exécutée à distance. Le client envoie des paramètres au serveur via des formulaires HTML, le serveur les reçoit et les transmet au simulateur. Lorsque la simulation est terminée, les résultats sont renvoyés via le serveur de Web au client qui les affiche. Par contre, dans le mode local (la figure 2.10) le client envoie la demande de simulation, le serveur va répond par un Java Applet, et la simulation est lancé à côté du client. 2.3. PLATE-FORME COLLABORATIVE 19 Figure 2.10: Simulation locale [32] Les plates-formes de modélisation-simulation à base de WEB répondent à deux grands inconvénients des plates-formes “normales” qui ne se basent pas sur la technologie WEB : – La plupart des plates-formes normales sont dépendantes du système d’exploitation. – Il est difficile d’intégrer des simulateurs dans des plates-formes “normale”. En raison des logiciels propriétaires et des problèmes de compatibilité avec le système d’exploitation. Les plates-formes à base de WEB présentent deux avantages majeurs : – Une plate-forme indépendante avec le système d’exploitation, facile à utiliser avec toute les fonctionnalités nécessaires. Et on doit le déployer seulement une fois, sur le Web serveur par exemple. – un environnement modulaire permettant une intégration aisée de nouvelles fonctionnalités et de nouveaux composants. Grâce à ces avantages, plusieurs plate-formes de modélisation-simulation à base de Web ont vu le jour, par exemple : – WEB-SIM-MIOR [6] : WEB-SIM-MIOR définit un concept original de la modélisation en proposant un nouvel outil de simulation accessible sur un site WEB interactif. Cet outil est interactif et permet à chacun de paramétrer et contrôler sa propre simulation. WEB-SIM-MIOR se construit comme une couche logicielle ”englobant” le simulateur existant MIOR. Les simulateurs proposés dans WEB-SIM-MIOR sont des applets java reposant sur la technologie NetLogo [46] si bien qu’ils ne sont pas exécutés sur un serveur mais sur l’ordinateur du visiteur. – WBSC (Web Based Simulation Center) [18] : “WBSC est un concept et un prototype de solutions pour le soutien des spécialistes de différents domaines qui sont impliqués dans un projet de simulation, phase par phase, avec l’appui de ressources sur le Web” [18]. WBSC supporte toutes les étapes d’un projet de simulation collaboratif. L’avantage de la plate-forme WBSC est qu’elle fournit suffisamment de fonctionnalités pour la collaboration comme : une messagerie instantanée, un système de gestion de fichiers, un environnement pour écrire collaborativement (Collaw [18]), ainsi que des fonctionnalités pour réaliser des expérimentations (de la saisie des paramètres, à l’exécution la simulation et à l’affichage de résultats sous forme d’images...). Mais, l’inconvénient principal de la plate-forme WBSC est qu’elle supporte seulement le simulateur GPSS/H [37]. Il est, en effet, complexe d’intégrer de nouveaux simulateurs. D’autre part, WBSC ne supporte pas les outils collaboratifs comme la vidéo conférence, le tableau blanc ou le partage d’écran . . . 20 2.4 CHAPITRE 2. ÉTAT DE L’ART Conclusion La collaboration est une activité essentielle dans un contexte de groupe. Elle vise à partager la création [10]. Avec le développement de NTIC (Nouvelles Technologies de l’Information et de la Communication), il y a de plus en plus de systèmes collaboratifs. Ces systèmes couvrent plusieurs domaines dont les Jeux, les Workflow, l’enseignement, la Communication, .... Une plate-forme collaborative est un système distribué qui fournit des services permettant l’échange entre les membres d’un groupe via Internet. Elle fournit des fonctionnalités de bases comme des outils de vidéo-conférences, de messagerie instantanée et de tableau blanc permettant les interactions entre des personnes distantes. Elles intègrent aussi des fonctionnalités pour gérer les utilisateurs, les groupes et la sécurité. Les divers plates-formes collaboratives peuvent se diviser en deux groupes : un groupe de plates-formes génériques et un groupe de plates-formes spécifiques. Les plates-formes génériques ne se spécialisent pas dans un domaine concret, elles fournissent simplement des fonctionnalités basics permettant la collaboration. Les plates-formes spécifiques sont conçus pour des domaines d’application concrets. Elle intègrent donc des fonctions spécifiques au domaine considéré. La façon rapide pour développer une plate-forme spécifique est l’extension d’environnement générique en ajoutant de nouvelles fonctions plus spécifiques. Pour la modélisation-simulation, la collaboration occupe un rôle très important. Elle apparaît dans toutes étapes du processus particulièrement dans l’étape visant construire le modèle conceptuel et l’étape d’expérimentation. Actuellement peu de plates-formes supporte l’activité de collaboration lors de la simulation collaborative. Nous présentons, dans le chapitre suivant, une plate-forme de modélisation - simulation collaborative appelée PAMS. Cette plate-forme fournit à la fois des fonctionnalités collaboratives génériques et de nouveaux outils qui sont spécifiques au domaine de la modélisation et de la simulation. Chapitre 3 PAMS La collaboration occupe une place importante dans le processus de modélisation-simulation. Cependant, comme cela a été constaté dans le chapitre précédent, peu de plates-formes de modélisation-simulation la supporte. Le but du projet PAMS est de créer un ensemble d’outils méthodologiques et logiciels pour modéliser et simuler des systèmes complexes. Cet environnement associe des outils conventionnels de collaboration (tableau blanc, messagerie instantanée, forums, répertoires partagés, etc...) avec des outils spécifiques permettant la manipulation de simulateurs, d’expérimentations et des résultats. Notre travail initie une nouvelle démarche de collaboration dans un projet de recherche. Les modèles et les simulateurs ne sont plus uniquement diffusés au travers de communications scientifiques (articles, conférence...), ils deviennent des objets manipulables à distance, via le Web, et sont ainsi élevés au rang de support de la collaboration. Au cours de ce chapitre, nous développons cette idée qui nous a conduit à la création de l’environnement PAMS. Afin de mieux définir les contours du projet PAMS, quelques scénarios de simulations collaboratives sont identifiés dans un premier temps. Ceci nous permettra d’établir une liste d’outils collaboratifs que doit intégrer un environnement tel que PAMS. Ensuite, nous présentons l’état de PAMS au début de l’année 2008. La troisième section décrit en détail la nouvelle architecture de PAMS et les technologies utilisées. La dernière section propose des scénarios d’utilisation de PAMS. 3.1 Analyse L’originalité de l’approche PAMS est de considérer le modèle ou le simulateur comme un objet partagé par un groupe de chercheurs. Ainsi, il est possible de manipuler des simulateurs, de les configurer et/ou de les exécuter de manière collaborative. 3.1.1 Scénario de collaboration Identifions au moyen de quelques scénarios les besoins. Ainsi, nous serons en mesure de définir les fonctionnalités et les outils collaboratifs nécessaires à PAMS. 21 22 3.1.1.1 CHAPITRE 3. PAMS Scénario1 : Expérimentation collaborative synchrone en distance [44] M.X et Y (chercheurs en écologie), respectivement situés à Paris et à Hanoi, souhaitent lancer des simulations afin d’obtenir des résultats qui seront illustrés dans l’article qu’ils écrivent ensemble. Les deux chercheurs se connectent à la plate-forme PAMS et commencent une discussion privée. M. X charge le simulateur souhaité, et invite M. Y. à partager à son interface. M. X commence à saisir les paramètres de simulation. N’étant pas d’accords, M. Y. commence une session de vidéo conférence afin d’échanger avec M. X ses idées. Il a également déposé sur l’interface du simulateur un mémo indiquant la valeur des paramètres qui semble correcte. Après un long débat, les chercheurs s’accordent sur les valeurs. M. X lance la simulation et choisit d’afficher seulement le graphique de l’évolution de la biodiversité, tandis que Mr.Y visualise uniquement la distribution spatiale des espèces. Chacun dépose, en temps réel, sur sa propre interface, des annotations explicatives. Ces dernières apparaissent, simulatanément, dans l’interface des deux chercheurs. Ainsi, ils amorcent l’ébauche d’une discussion (enregistrée en tant que telle dans le système de messagerie instantanée). Faute de temps, M. X doit partir. Ils décident de reprendre cette discussion plus tard et d’enregistrer la session actuelle. Trois jours plus tard, en revenant sur le site, la conversation redémarre là où elle s’était arrêté. . . Ce scénario propose l’utilisation des outils collaboratifs pour surmonter le problème de l’éloignement géographique. 3.1.1.2 Scénario2 : Expérimentation collaborative asynchrone à distance M.X et Y (chercheurs en écologie) sont respectivement situés à Paris et à Hanoi. Supposons que M.X a commencé une simulation, mais M.Y ne peut pas de participer à la simulation pour des raisons de décalage horaire. M.X choisi des paramètres de simulation, exécute le simulateur et enregistre l’état final de la simulation dans la base de données. Par l’intermédiaire d’outil collabortif asynchrone dont le blog, M.X informe à M.Y ce qu’il a fait ainsi sa réflexion. Quelques jours plus tard, M.Y accède à son tour à l’espace collaboratif. Il visualise et analyse les paramètres d’expérimentation choisi par M.X ainsi que les résultats de la simulation. N’étant pas d’accord avec les choix de M.X, M.Y change les paramètres qui lui posent problèmes. Il exécute ensuite le simulateur, enregistre les résultats dans la base de données et notifie ses modifications au moyen du blog. Quelques jours plus tard, M.X se reconnecte, il visualise les modifications de M.Y, les analyse et approuve les modifications apportées. Ce scénario présente un protocole de travail, courant dans le monde scientifique. Les intervenants d’un même projet ne peuvent pas travailler ensemble en même temps mais arrivent à collaborer gràce à la plate-forme collaborative. 3.1.1.3 Scénario3 : Création d’une expérimentation privée puis publique M.X et Y (les chercheurs en écologie) respectivement situés à Paris et à Hanoi, sont membres d’un projet où plusieurs dizaines de scientifiques participent. Etant donnée la taille du projet, les participants sont organisés en groupes de travail et réalisent des tâches différentes. M.X et M.Y réfléchissent sur un modèle écologique. M. X et M. Y souhaitent lancer le simulateur en privées afin de vérifier une hypothèse avant d’ouvrir l’expérimentation à l’ensemble des membres du projet. Les deux chercheurs se connectent à la plate-forme PAMS et créent une expérimentation privée. Ils lancent le simulateur et conversent pour déterminer les paramètres qui valideront leur hypothèse. Lorsque les paramètres sont déterminés, 3.1. ANALYSE 23 M. X et Y ouvrent l’expérimentation à l’ensemble des membres du groupe. M.Z qui est un membre du groupe se connecte à son tour à l’expérimentation. Etant surpris des résultats, M. Z. décide donc d’approfondir l’expérimentation.... Ce scénario montre l’importance d’un espace de travail personnel et partagé. 3.1.1.4 Scénario4 : Expérimentation collaborative optionnelle avec des rôle différents M.A et B, chercheurs en écologie, sont respectivement situés à Paris et à Hanoi, M.C est représentant d’une organisation écologique. Ces trois personnes veullent résoudre un problème posé par M.D portant sur de la pollution de l’eau dans les pays d’Afrique. M.E et F sont des modélisateurs appartenant à une université espagnole. M.C propose une hypothèse sur un forum international et demande de l’aide auprès de modélisateurs et d’experts du domaine. M.A, B, E et F intéressés par la problématique décident de contacter M.C. Ce dernier crée alors un nouveau projet , où M.C est le chef du projet, M.A et M.B sont des utilisateurs, M.E et M.F sont des concepteurs du modèle. M.E et M.F développent le modèle à partir des informations de M.C, M.D, M.A, et M.B. Lorsque des problèmes apparaissent, ils accèdent à la plate-forme afin de collaborer. Après avoir terminer la phase de développement des modèles conceptuels et informatiques, les chercheurs déploient le simulateur sur le serveur pour que les autres puissent l’utiliser. M.C crée une expérimentation du nouveau modèle et invite les membres du projet. Il attribue un rôle à chaque membre : (i) le chef de projet (M. C) peut utiliser toutes les fonctionnalités d’une expérimentation ( manipuler l’expérimentation, créer des groupes, ajouter, supprimer des membres... ), (ii) les utilisateurs (M.A et M.B) peuvent seulement modifier les paramètres du simulateur, contrôler l’exécution des simulations et analyser les résultats, (iii) un client ( M.D), M.E et M.F a que le droit de regarder. Au cours de l’exécution de la simulation M.A veut observer seulement changement du paramètre P tandis que M.B veut visualiser image représentative de la topologie d’un espace. Durant la simulation, M.A identifie un bog. Il souhaite en référer à M.B. Pour cela, M.A autorise M.B à visualiser le paramètre P. M.A et M.B discutent et comprennent la raison du bog et le corrige. Ensuite, Ils continuent leur discussion un long moment et décident d’arrêter pour reprendre un autre jour. Pour cela, ils enregistrent l’état de la simulation dans la base de données. Trois jours plus tard, ils reaccédent à la plate-forme et reprennent leur travail où ils s’étaient arretés. Ce scénario met en évidence l’adaptabilité d’une plate-forme collaborative. les quatres scénarios sont des cas que l’on rencontre souvent dans un projet de simulation. En nous basant sur ces scénarios, nous identifions des fonctionnalités collaboratives intéressantes pour un projet de simulation. 3.1.2 Cahier de charge Grâce aux scénarios présentés dans la section précédente, nous avons été en mesure d’identifié des fonctionnalités importantes qui doivent être disponible dans une plate-forme collborative de simulation. Ainsi nous avons pu établir un cahier des charges. 3.1.2.1 Une plate-forme WEB collaborative Une plate-forme web collaborative doit intégrer toutes les fonctionnalités nécessaires au domaine d’application et être conviviale et ludique pour les utilisateurs. Pout l’utiliser, les 24 CHAPITRE 3. PAMS utilisateurs ne doivent pas être obligés d’installer des logiciels spécifiques : la plate-forme doit être disponible et accessible n’importe où et n’importe quand. Les plate-formes web collaboratives actuelles répondent à ces problèmes de temporalité et de spatialité : Avec un simple navigateur WEB, il est possible de collaborer facilement. Pour cette raison, nous orientons nos travaux vers la création d’un portail web qui sera accessible à tous (moyennant une gestion élaborée des utilisateurs) au travers d’un navigateur web tel que Mozilla Firefox, Internet Explorer ou Sarafi. La plate-forme doit fournir les fonctionnalités nécessaires à la collaboration dans un projet de recherche. Elle doit renfermer des fonctionnalités de collaboration synchrone : – vidéo conférence, audio conférence ; – messagerie instantanée ; – partage d’écran ; – tableau blanc ; Elle doit aussi intégrer des outils de collaboration asynchrone tels que : – le courriel ; – les forums ; – les blogs ; – les wikis ; – le partage de documents En plus de ces fonctionnalités génériques (proposées dans toutes plate-formes collaboratives), il est nćessaire d’intégrer des outils spécifiques au domaine de la simulation des systèmes complexes. 3.1.2.2 Une plate-forme WEB collaborative dédiée à la simulation Un simulateur peut être exécuté plusieurs fois avec différents paramètres afin d’expérimenter divers situations. Dans ce contexte, les utilisateurs se focalisent sur les entrées et les sorties du simulateur et se désintéresse du fonctionnement interne du modèle implémenté. Pour cette raison, considérons un simulateur comme une boîte noire qui possèdent des entrées et des sorties manipulable par les chercheurs. De plus, dans un contexte de travail collaboratif, un simulateur doit être manipulable par plusieurs utilisateurs, de concert (au sein d’une même expérimentation) ou en parallèle (dans plusieurs expérimentations). Figure 3.1: Concept central Par conséquent, la plate-forme collaborative que nous souhaitons mettre en place doit fournir un panneau de simulation commun qui permet : – la modification d’un ou plusieurs paramètre(s) ; 3.2. ÉTAT EXISTANT DE PAMS – – – – – 3.2 25 l’exécution et l’arrêt des simulations ; la visualisualisation et le partage de l’ensemble des expérimentations ; la visualisation et l’analyse des résultats de simulation ; l’annotation et l’enregistrement des expérimentations ainsi que des résultats ; la gestion des utilisateurs, des groupes, des rôles et des droits. État existant de PAMS PAMS (Plate-forme d’Aide à la Modélisation-Simulation) est un environnement collaboratif conçue et développé en collaboration avec l’Unité de recherche GEODES (IRD, France) et le laboratoire MSI (IFI, VietNam). Ce projet qui a débuté en 2007 nous a permis de développer une première version de l’environnement PAMS qui a ensuite été refondue pour aboutir à la version actuelle de l’environnement. Dans cette section, nous allons présenter l’architecture ainsi que les résultats obtenu en 2007. 3.2.1 Présentation La mise en place d’une plate-forme collaborative de modélisation - simulation soulève de nombreuses questions scientifiques dans les domaines de la modélisation, des systèmes répartis et des systèmes collaboratifs. Une importante phase d’analyse du projet a été nécessaire afin de caractériser précisément l’activité de collaboration en modélisation-simulation. A la suite de cette analyse, des choix ont alors été faits autant sur le plan conceptuel en définissant le fonctionnement général de la plate-forme (les outils collaboratifs qu’elles incorporent, son architecture, . . . ), que sur le plan technique en déterminant avec précision les environnements logiciels utilisés (Sakai , Jonas , Mysql , Repast ). Compte tenu de la diversité des modèles et des environnements de simulation existants, nous avons, temporairement, restreint le champ d’application de la plate-forme Pams aux modèles multi-agents qui s’exécutent sur l’environnement Repast. Cette décision se justifie par le nombre de développements effectués au laboratoire MSI qui repose sur Repast. Ensuite, la phase de développement proprement dit a débuté et se décompose en trois grandes étapes : – Mise en place de l’infrastructure logicielle : les environnements Sakai et Repast ont été installés sur deux serveurs administrés par le laboratoire MSI. – Implémentation d’une interface web de simulation : il s’agissait de développer tous les algorithmes distribués et les interfaces graphiques permettant le paramétrage des simulateurs, l’exécution à distance de ces derniers et la visualisation des résultats de simulation. – Intégration d’outils collaboratifs : cette étape a visé à mettre en place autour de l’interface de paramétrage et de visualisation des résultats, un ensemble d’outils collaboratifs, tels que des wiki, des forums et des messageries instantanés. Les deux premières étapes et une partie de la troisième étape ( Installer quelques outils colllaboratifs tels que des wiki, des forums, des messageries instantanés ) était globalement achevées : à la fin de l’année 2007, la plate-forme Pams permettait, au travers d’une interface web, (figures 3.2 et 3.3) de choisir un simulateur, de modifier les paramètres de simulation, d’exécuter à distance (sur un serveur dédié) le simulateur et de visualiser les résultats de simulation sous la forme de textes, graphiques et vidéo. 26 CHAPITRE 3. PAMS Figure 3.2: Page d’accueil de la plate-forme PAMS Figure 3.3: Affichage graphique du résultat d’une simulation 3.2.2 Architecture L’environnement PAMS est basée sur une architecture multi-niveaux. C’est une architecture à la base de composant qui est vue, en génie logiciel, comme une approche de développement modulaire et flexible. L’architecture de PAMS tire partie de l’approche MVC (Model View Controller) [35] qui distingue l’interface graphique (View) des fonctions métiers (les contrôleurs) et les bases de données (Modèle). L’approche multi-niveaux [11] organise 3.2. ÉTAT EXISTANT DE PAMS 27 les fonctions métiers sous forme de modules qui peuvent être appelés et utilisés indépendamment. Figure 3.4: Architecture à la fin 2007 Cinq modules composent le noyau de l’environnement PAMS (voir figure 3.4) : – le module drivers permet l’interconnexion entre l’environnement PAMS et des plateformes de simulation multi-agents tel que Repast [30] ou Gama [2]. Ce module exécute les simulateurs stockées dans une base de données, produit des données et les envoie vers les modules Sorties. Il y a un drivers par une plate-forme de simulation. – le module Sorties rassemble et met en forme les résultats de simulations provenant des drivers afin de partager ces données avec les autres modules du système. Puis ces données sont formatées pour être affichées dans l’interface utilisateur et/ou stockées dans la base de données. – le module Affichage formate les données partagées (issues des simulateurs) afin de générer et gérer l’affichage des utilisateurs. Plusieurs affichages sont proposés : (i) les moniteurs pour observer des changements des paramètres, (ii) les plots pour visualiser les graphiques et / ou (iii) les grilles 2D (images). L’interface utilisateur accède au module Affiche pour générer automatiquement et dynamiquement une interface personnalisée du simulateur utilisé dans l’expérimentation. – le module sauvegarde enregistre dans une base de données l’ensemble des résultats de simulation. Ces données sont utilisé par la suite pour revoir le déroulement de la simulation sans réexécuter le simulateur. – le module Contrôleurs permet le contrôle des simulateurs (exécuter, et voir le résultat). Malgré l’état d’avancement de la première version de PAMS, des inconvénients majeurs subsistent. Par exemple, il n’était pas possible de manipuler à plusieurs les résultats des simulateurs. Mais surtout, cette première version ne possédait pas d’outils collaboratifs dédiés au domaine de la modélisation-simulation. L’objet principal de mon stage a été de proposer, de concevoir et de développer dans PAMS des outils collaboratifs spécifiques et dédiés au monde de la modélisation-simulation des systèmes complexes. 28 3.3 CHAPITRE 3. PAMS Proposition de fonctionnalités collaboratives Ce stage fait suite au travaux réalisés en 2007 en mettant en place des outils collaboratifs adaptés au domaine de la modélisation simulation. Un premier volet de mon travail a consisté à déployer des outils collaboratifs existants. Le second, plus important, visait à concevoir et à développer des outils collaboratifs spécifiques au domaine de la modélisation-simulation des systèmes complexes. Pour cela, je me suis aidé de l’étude bibliographique présentée dans le chapitre 2. Au cours de cette section nous aborderons, dans un premier temps, les solutions qui ont été déployées dans l’environnement PAMS. Ensuite, nous présenterons les outils collaboratifs que j’ai conçus, développés et installés dans le cadre de ce stage et du projet PAMS. 3.3.1 Mise en place de solutions existantes L’environnement Sakai propose nativement des outils collaboratifs (voir la session 2.3.2). Grâce à l’analyse des besoins établi dans la section 3.1 nous avons fait le choix de déployer les outils collaboratifs internes Sakai suivants : – une messagerie instantanée (collaboration synchrone) ; – un blog (collaboration asynchrone) ; – un wiki (collaboration asynchrone) ; Même si les fonctionnalités collaboratives de la plate-forme Sakai sont particulièrement avancées (notamment du point de vue des outils asynchrone), nous pouvons noter le manque d’outils de collaboration synchrone. Afin de répondre à ce manque nous avons installé le plug-in Agora [1]. Agora est un outil de conférence simple et efficace. Son installation au sein de l’environnement SAKAI est aussi simple (voir l’annexe B). Il fournit les fonctionnalités suivantes : – la vidéo-conférence multi-points (”plusieurs à plusieurs”) : Organiser en salles de réunion virtuelles. Ainsi, on peut faire de le vidéo-conférence avec un nombre important de participants. – la messagerie instantanée ; – le partage d’écran ; – le tableau blanc ; – broadcast des films ; – enregistrant des sessions de travail. Grâce à l’intégration du plug-in Agora dans Sakai, nous avons répondu à la première partie du cahier de charge : PAMS intègre désormait des outils génériques supportant des interactions synchrone et asynchrone. Ces fonctionnalités génériques ont été complétés par de nouveaux outils, spécifiques au domaine de la modélisation-simulation. Ces derniers sont intégrés au sein d’un même module dont le développement à fait l’objet principal de mon travail. Dans la section suivante, nous allons présenter ce travail. 3.3.2 Module de partage des simulations Au cours de cette section, nous abordons plus en détail le module de partage des simulations. Dans un premier temps, des cas d’utilisation sont abordés. Ensuite, la conception nous permet de mieux comprendre la nouvelle architecture de PAMS et ainsi que les technologies est utilisée. Enfin, l’implémentation sera présentée. 3.3. PROPOSITION DE FONCTIONNALITÉS COLLABORATIVES 29 Figure 3.5: Fonctionnalité d’Agora [1] 3.3.2.1 Cas d’utilisation A partir des scénarios proposées dans la section 3.1, nous identifions les principaux cas d’utilisation qui sont (voir figure 3.6) : – Voir la liste des modèles disponibles : les utilisateurs seront en mesure de choisir un modèle pour l’expérimenter ensuite ; – Voir la liste des expérimentations : action de voir une liste d’expérimentations (pour un modèle donné) qui sont en cours d’exécution ou terminées – Créer une expérimentation : action de créer une nouvelle expérimentation – Rejoindre une expérimentation encours : Possibilité de rejoindre une expérimentation à laquelle l’utilisateur a été invité ; – Demander le jeton de contrôle : action de faire la demande de contrôle du simulateur ; – Contrôler l’expérimentation : action de manipuler l’expérimentation (start, stop, step) – Analyser les résultats : action d’analyser les résultats des simulation – Rendre le jeton de contrôle : action de laisser le droit de manipuler l’expérimentation – Quitter l’expérimentation : action de quitter l’expérimentation – Vérifier le groupe : action de vérifier si un chercheur est un membre d’un groupe – Vérifier le jeton de contrôle : action de déterminer si le simulateur est utilisé par un autre membre collaborant – Mettre la demande dans la queue : Possibilité de mettre la demande dans la queue qui stocke les demandes arrivées – Exécuter l’expérimentation : Possibilité d’exécuter l’expérimentation – Modifier des paramètres : Possibilité de modifier des paramètres – Arrêter l’expérimentation : Possibilité d’arrêter l’expérimentation – Observer la valeur d’une paramètre en cours : Possibilité d’observer le changement 30 CHAPITRE 3. PAMS Figure 3.6: Cas d’utilisation pour la simulation collaborative – – – – Pour d’un paramètre Attribuer les permissions : Possibilité de changer les permissions de partage des différents moniteurs, graphiques et images Afficher les graphiques : Possibilité d’afficher les graphiques Vérifier la queue : Possibilité de vérifier si il y des demandes stockées dans la queue Détruire l’expérimentation : Possibilité de détruire une expérimentation en cours ou déjà réalisé plus d’information, le lecteur peut se référer à l’annexe A. 3.3.2.2 Conception Au cours de cette section, nous présentons l’architecture et les technologies utilisées dans l’environnenment PAMS. Architecture du module collaboratif Le schéma 3.7 présente l’architecture de PAMS complétée par les modules des simulations collaboratives qui ont fait l’objet principal de ce stage. La mise en place de fonctionnalités collaboratives dans PAMS s’est concrétisée par l’ajout de deux modules de contrôle. L’un assure l’accès concurrent aux simulateurs : (i) modification collaborative des paramètres de simulation ; (ii) visualisation collaborative des résultats et (iii) gestion des droits. L’autre 3.3. PROPOSITION DE FONCTIONNALITÉS COLLABORATIVES 31 Figure 3.7: Nouvel architecture permet le partage des expérimentations : (i) l’énumération des expérimentations déjà réalisées et encours ; (ii) l’accès aux expérimentations. Adossé à ces deux modules une interface WEB collaborative a été développée. Cette dernière se scinde en deux nouveaux modules de présentation : – Un explorateur d’expérimentations qui permet la gestion, le partage des expérimentations et les échanges des résultats. Grâce à cette interface, les utilisateurs peuvent voir des expérimentations réalisées ou en créer de nouvelles. De plus, il est possible de : (i) rejoindre des expérimentations en cours d’exécution, de revoir des expérimentations terminées (si elle est publique), et (ii) télécharger les résultats de ces expérimentations pour les analyser ensuite. – Une GUI permettant l’exécution à distance des simulateurs, le partage et le contrôle de ces mêmes simulateurs. Ainsi, les utilisateurs peuvent modifier les paramètres, déterminer et afficher les résultats ensemble. De plus, l’interface fournit des fonctionnalités pour la création de groupes de travail, la visualisation des informations personnelles et la configuration des options personnelles. Technologies envisagées La plate-forme PAMS peut être considérée comme un conteneur dans lequel les simulateurs sont chargés, connectés avec une base de données, exécutés par des serveurs dédiés et gérés via une interface Web. L’environnement PAMS est basé sur des technologies issues du domaine des systèmes distribués (voir le figure 3.8) : – Un serveur d’applications Web renferme les pages JSP, Ajax [8] et les Servlet [19] (Sakai-Tomcat) permettant la gestion de l’interface collaborative – Un serveur d’applications Entreprise Java Bean (Jonas) pour exécuter des simulateurs, pour gérer des expérimentations, des entrées, des sorties et de collaboration. – Une base de données (MySQL) pour stocker les modèles, les expérimentations (condi- 32 CHAPITRE 3. PAMS Figure 3.8: Technologies utilisées dans PAMS tions initiales et résultats) et les échanges entre les utilisateurs PAMS. PAMS tire partie de l’environnement Sakai [13]. Sakai est un environnement de collaboration et d’apprentissage en ligne principalement orienté vers le monde de la recherche. En nous reposant sur l’environnement Sakai, nous développons de nouveaux modules qui gèrent une GUI (Graphic User Interface) collaborative spécifique au domaine de la simulation. Les modules de PAMS seront associés avec l’environnement Agora [1] qui, quant à lui apportera des fonctionnalités collaborative générique. L’utilisation d’Entreprise Java Beans (EJB) [29] est une technique qui permet à environnement PAMS d’être flexible, modulaire et améliorable. Chaque modules du framework est composé de plusieurs EJB. Tous les EJB d’un même module sont utilisés au travers d’une interface métier unique (déterminée pour le module). Ainsi, pour ajouter de nouvelles fonctionnalités, des EJBs peuvent être développés et déployés dynamiquement sans réviser le anciens composants de PAMS. Mais, ces nouveaux EJB doivent implémenter les interfaces prédéfinies dans PAMS. Les interactions entre les composants du framework seront assurées par des messages JMS et des appels distants de méthodes (RMI). L’environnement PAMS pourra ainsi être déployé sur une grille d’ordinateurs. Divers configurations de déploiement peuvent être proposées et utilisées, par exemple : un serveur pour gérer l’interface web, l’affichage, les sorties, des modules d’enregistrement, et plusieurs serveurs à exécuter des simulateurs. Base de données associées Le diagramme de la base de données : 3.3. PROPOSITION DE FONCTIONNALITÉS COLLABORATIVES 33 Figure 3.9: La base de données La description de chaque tableau est présenté dans la table 3.1. Nom de table ModelSystem Model Experiment ExperimentParameter Variable Display Save et SaveData Plot et PlotData Monitor ExperimentGroup ExperimentMember Description Stocker des informations concernant des plate-forme de simulation Stocker des informations concernant des modèles Stocker des informations concernant des expérimentations Stocker des paramètres des modèles disponibles Stocker des informations concernant de valeur des variables observés (l’observation, le graphique, l’affichage ) dans l’expérimentation Stocker des informations concernant la chemin des affichages générés Stocker des informations concernant tous les variables observés dans des expérimentations Stocker des informations concernant des graphiques observées dans des expérimentations Stocker des informations concernant des observations dans des expérimentations Stocker des informations concernant des groupes créés dans des expérimentations Stocker des informations concernant des membres dans des expérimentations Table 3.1: Les informations des tables Pour gérer ces tables, nous avons implémenté quelques entités beans pour réaliser des activités concernant la base de donnée. Chaque tableau dans la base de données est gérée par une entité bean. Dans cette base de données, nous avons introduit deux nouvelles notions par rapport 34 CHAPITRE 3. PAMS Entité ExperimentEJB ExperimentMembreEJB ExperimentGroupEJB ParameterEJB ModelEJB Tableau Experiment ExperimentMember ExperimentGroup Parameter Model Table 3.2: Des entités beans avec la version en 2007 : les notions de membre et de groupe d’une expérimentation. En effet, dans Sakai, il existe déjà ces notions, mais elles appliquent seulement pour les sites et les outils de Sakai. Les améliorations que nous avons apportées permettent l’attribution de droit à un chercheur ou à un groupe de chercheurs pour la manipulation des expérimentations. Ces droits sont définis par l’utilisateur au moment de la création de l’expérimentation et peuvent être modifiés durant l’expérimentation. 3.3.2.3 Implémentation L’implémentation de la plate-forme PAMS s’est déroulé en deux étapes qui sont : 1. Installer une plate-forme avec des fonctionnalités collaboratives génériques ( voir 3.3.1 - Intégrer AGORA dans Sakai) 2. Développer des fonctionnalités collaboratives spécifique au domaine de la simulation La deuxième tâche s’est divisée en 3 sous-étapes : – Développement des composants permettant la gestion des expérimentations et des accès concurrents – Développement d’une interface WEB permettant la manipulation collaboratives des simulateurs – Développement d’un explorateur WEB des expérimentations. Nous détaillerons ces trois sous-tâches dans la suite de cette section. Le contrôleur de gestion d’une expérimentation et de la concurrence. Cette fonctionnalité est implémentée par 4 modules principaux (Voir la table 3.3). Deux session bean qui fonctionnent sur le serveur d’application Jonas, une servlet et un javascript qui fonctionnent sur le serveur de WEB Sakai-tomcat. 3.3. PROPOSITION DE FONCTIONNALITÉS COLLABORATIVES Nom ExperimentManager GroupManage ExperimentManageServlet Board.js Description C’est un bean session qui permet de gérer les expérimentation. Il intègre notamment des fonctions permettant la manipulation des paramètres. C’est une session bean qui permet de réaliser les utilisateurs et les groupes. Par example : l’addition ou la suppression un participant ou un sous groupe . . . C’est un servlet qui permet de réaliser des demandes des utilisateurs. En effet, cette servlet reçoit la demande et fait appels au session bean ExperimentManager C’est un javascript integrant des primitives Ajax qui permet d’envoyer des demandes de l’utilisateur et de recevoir la réponse du serveur Table 3.3: 4 composants principaux L’interaction entre chaque modules est montré dans la figure 3.10. Figure 3.10: Modèle de contrôleur 35 36 CHAPITRE 3. PAMS Jusqu’au moment d’écrire ce rapport, 13 types de demandes différentes pouvaient être envoyées du client au serveur de Web. Pour le contrôle de la concurrence dans la manipulation de l’expérimentation, nous avons appliqué l’algorithme suivant. Figure 3.11: L’algorithme de demande la manipulation Cet algorithme est implémenté par l’interaction entre des composants (voir la figure 3.12) 3.3. PROPOSITION DE FONCTIONNALITÉS COLLABORATIVES 37 Figure 3.12: Le diagramme séquentiel de la demande de la manipulation Une interface Web de simulation collaborative Cet étape fournir une interface graphique WEB qui permet à l’utilisateur de simuler collaborativement. Cet interface est unique pour tous les membres. 38 CHAPITRE 3. PAMS Figure 3.13: Interface graphique Cette interface se décompose en 6 panneaux différents et indépendants (voir la figure 3.13). Grace à cette division, nous pouvons les gérer facilement. Nom Information personnelle Des outils collaborcatifs Liste des membres Travaux concernant le groupe Le queue de de demande Des options Description Ce composant contient des informations tel que le nom, le rôle, le groupe . . . Ce composant contient des outils tel que le vidéo conférence, le forum, le wiki, le messagerie instantanée. . . Ce composant contient une liste des participants en ligne Ce composant contient l’outil qui permet de créer un groupe de travail Ce composant contient une queue des demandes le droit de manipuler l’expérimentation Ce composant contient des options qui déterminent les participants qui peuvent visualiser des observations créées Table 3.4: Le panneau collaboratif Pour mettre à jours cet interface, après une période déterminée nous envoyons consécutivement des demandes en appliquant la technologie Ajax. 5 fichiers jsp sont créés pour traiter des demandes (voir la table 3.5). Quand il y une demande, les composants lisent ou écrivent dans les tables correspondantes dans la base de données. 3.3. PROPOSITION DE FONCTIONNALITÉS COLLABORATIVES Nom experimentMember.jsp monitor.jsp memberQuit.jsp parameter.jsp setPublic.jsp 39 Description Ce composant permet la mise à jours des participants en ligne Ce composant permet la mise à jours des moniteurs ajoutées Ce composant permet de traiter l’événement qu’un participant quitte l’expérimentation Ce composant permet de mise à jours le changement des paramètres Ce composant permet de changer la caractéristique des observations Table 3.5: 5 pages ajax pour la mise à jour de l’interface L’interface obtenue après implémentation est présentée par la figure 3.14 : Figure 3.14: L’interface graphique de WEB Une interface de navigation des expérimentations En plus de proposer une interface d’expérimentation collaborative, nous avons également fournit une interface permettant la navigation collaborative dans les expérimentations. Premièrement, cette interface listent des expérimentations en cours et terminée. Deuxièmement elle assure la gestion des droits des utilisateurs pour la visualisation des experimentation réaliser et en-cours Quand on crée une expérimentation, on sélectionne des participants, ces informations sont enregistrées dans le tableau ExperimentMember de la base de donnée PAMS. Nous avons appliqué la technologie ajax pour mise à jours des nouvelles expérimentations. Après une période déterminé, une demande de récupérer la listes de l’expérimentation est envoyée. Cette tâche est réalisé par 3 composants principales : 40 CHAPITRE 3. PAMS Nom experiment.jsp experiment.js experimentMoniter.jps Description Ce composant construit une interface permet de créer ou joindre des expérimentations. De plus, elle fait afficher la liste des expérimentations en cours et terminée Ce fichier javascript permet d’envoyer des demandes et de recevoir des réponses pour mettre à jour la liste des expérimentations réalisées et encours Ce composant permet de récupérer la liste des expérimentations en lisant le tableau Experiment et ExperimentMember dans la base de données Table 3.6: 3 composants implémentent le navigateur collaboratif Après avoir implémenté tous les trois étapes. Nous avons obtenu une plate-forme avec des fonctionnalités collaboratives contenant des fonctionnalités collaboratives dédiées au domaine de la modélisation et simulation. Dans la section suivante, nous testons cette interface au travers de scénarios d’utilisation. 3.4 Tests Dans cette section, nous allons tester les 4 scénarios proposés (voir 3.1.1). Nous avons déployé notre plate-forme sur un serveur de IRD-Montreplier. L’adresses est : http ://vmpams.mpl.ird.fr :8080/portal. Le méthode utilisée est ”Tester à la base des spécifications” (Specification Based Testing [23]) . Le but de ce méthode est de tester des fonctionnalités selon de ce que nous avons spécifier dans les scénarios. 3.4.1 Test scénario 1 Nous identifions 10 activités principales dans ce scénario. 1. Description : Deux chercheurs M.X et M.Y se connectent au site du projet Résultat attendu : Ils arrivent avec succès à se connecter au site du projet, et se situent à la page d’accueil. Résultat obtenu : Avec le login et le mot de passe, les deux chercheurs sont en mesure de s’identifier et d’accèder à un même espace de travail. 2. Description : M.X commence l’expérimentation. Résultat attendu : L’expérimentation est active. Résultat obtenu : M.X accède dans l’espace de préparer pour l’expérimentation. Il entre des paramètres nécessaires pour une nouvelle expérimentation et clique ensuite sur le bouton New. L’espace de l’expérimentation affiche. L’expérimentation est active. 3. Description : M.Y partage son interface. Résultat attendu : M.X pourra voir l’interface de M.Y. Résultat obtenu : Grace à l’architecture spécifique, l’interface de M.X et M.Y est identique. Donc, M.X peut voir l’interface de M.Y. 4. Description : M. X saisit des paramètres de simulation. Résultat attendu : M.X pourra saisir des paramètres de simulation. et M.Y pourra également de visualiser des changements. 3.4. TESTS 41 Résultat obtenu : Des paramètres sont affichées dans des boîtes de texte modifiable. Donc, M.X saisit les paramètres. Il clique ensuite sur le bouton Apply et immédiatement M.Y voit la nouvelle valeur des paramètres. 5. Description : M. Y commence une session de vidéoconférence. Résultat attendu : M.Y pourra commencer une session de vidéoconférence. M.X sera invité de participer pour échanger des idées. Résultat obtenu : Dans l’ensemble des outils collaboratifs dans la partie de collaboration, à droit. M.Y clique sur le lien Conferencing, l’outil Agora est actif. Il crée une vidéoconférence et invite M.X. Après quelques second, M.X joint à cette conférence. Ils discutent, communiquent et échangent des idées par la messagerie instantané, le tableau blanc, le partage du bureau... 6. Description : M. X lance la simulation. Résultat attendu : M.X pourra lancer la simulation, tandis que M.Y ne pourra pas. Résultat obtenu : Grace aux buttons dans la partie contrôleur, M.X lance la simulation (clique sur le bouton Start). Tandis que, les boutons de M.Y sont inactifs. Donc à ce moment, M.Y ne peut pas lancer la simulation. 7. Description : M.X choisit d’afficher seulement le graphique. Résultat attendu : M.X pourra faire afficher seulement le graphique. Résultat obtenu : Dans la partie de l’affichage, M.X ajoute seulement d’observer la paramètre display. Il lance la simulation, le graphique et seulement le graphique est affiché. 8. Description : M.Y visualise uniquement la distribution spatiale des espèces Résultat attendu : M.Y pourra visualiser uniquement la distribution spatiale des espèces. Résultat obtenu : Dans la partie de l’affichage, M.Y ajoute seulement d’observer la paramètre qui représente la distribution spatiale des espèces. La simulation est lancé, il visualiser uniquement la distribution spatiale des espèces. 9. Description : M.X doit partir, il enregistrer la session actuelle. Résultat attendu : Ils pourront enregistrer la session actuelle. Résultat obtenu : Ils cliquent sur le lien Logout. Le système automatiquement enregistre la session actuelle. Cependant, il enregistre seulement l’état de l’expérimentation au moment de quitter. 10. Description : M.X et M.Y reprennent cette discussion Résultat attendu : Ils pourront reprendre l’expérimentation. Résultat obtenu : Ils accèdent à l’espace de préparation de l’expérimentation. Le lien de cet expérimentation affiche dans la colonne des expérimentations terminées. Il clique sur ce lien, l’expérimentation est active avec les paramètres au moment qu’ils ont quitté. 3.4.2 Test scénario 2 Dans ce scénario, nous identifions 2 activités alternatives entre deux chercheurs, M.X et M.Y : 1. Description : M.X lance la simulation. Résultat attendu : En raisons de décalage horaire. M.X lancera la simulation tout seul. Après avoir finit, il enregistra l’état actuel à la base de donnée. 42 CHAPITRE 3. PAMS Résultat obtenu : Il est succès de lancer la simulation tout seul, et d’enregistrer l’état. Pour plus détailler voir le test 1 3.4.1. 2. Description : M.X informe à M.Y ce qu’il a fait par des outils collaboratifs asynchrone. Résultat attendu : M.Y sera au courant ce que M.X a fait. Il pourra lancer la simulation de l’expérimentation que M.X a créé. Résultat obtenu : Après avoir terminé l’expérimentation, M.X clique sur le lien de l’outil Blogger (Il peut utiliser d’autres outils comme Forum, Courriel . . . ) du projet, et rédiger un nouvel article qui décrit ce qu’il a fait. Quand M.Y connecte au site du projet, il voit ces informations. Il réactive l’expérimentation, exécute la simulation, et informe le résultat à M.X. 3.4.3 Test scénario 3 Nous identifions deux activités pour ce scénario : 1. Description : Créer une expérimentation privée. Résultat attendu : M.X et M.Y créent une expérimentation qui sera accédée seulement par ces deux chercheur. Résultat obtenu : Dans l’espace de préparation pour l’expérimentation, M.X sélectionne M.Y comme le participant unique pour l’expérimentation. Donc, M.X et M.Y accèdent à l’espace de préparation de l’expérimentation, seulement M.Y peut voir le lien vers l’expérimentation nouvellement créée. 2. Description : Changer le caractère privée de l’expérimentation à public. Résultat attendu : M.X et M.Y pourront ouvrir l’expérimentation pour que d’autres membres afin qu’ils puissent la visualiser. Résultat obtenu : NON. Cette fonctionnalité n’est pas encore implémentée. 3.4.4 Test scénario 4 Pour ce scénario, il y a quelques activités que nous avons testé. Donc, nous identifions des activités qui ne sont pas testées. On a deux activités suivantes : 1. Description : Attribuer aux participants un rôle concret. Résultat attendu : Chacun se verra attribué à un rôle avec une permission déterminée. Résultat obtenu : Dans l’espace de préparation de l’expérimentation, M.C sélectionne M.A et M.B avec le rôle User, M.D, M.E et M.F avec des autres rôles. L’expérimentation est créée. M.C peut utiliser toutes les fonctionnalités, M.A et M.B peuvent utiliser seulement des fonctionnalités concernant la simulation (start, stop, step,. . . ), et les autres utilisateurs regardent seulement. 2. Description : La possibilité de changer le caractère des observations créées. Résultat attendu : M.A pourra visualiser des observations de M.B et inversement. Résultat obtenu : Dans la partie de moniteur, à côté des observations, il y a un lien pour activer la fonction de changer le caractère de chaque observation. M.A clique sur ce lien de l’observation qu’il veut publier. Une fenêtre s’affiche. M.A choisit l’option Public. Immédiatement, tous les participants visualisent cette observation (Il peut restreindre la visualisation à seulement M.B en choisissant l’option Public for a membre). Chapitre 4 Une étude de cas Dans cet étude de cas, nous allons montrer, étape par étape, la création d’une expérimentation collaborative synchrone à distance, comme cela a été présenté dans la section 3.1.1.1. L’étape 1 : Se connecter à l’espace du projet. Les deux M.X et M.Y se connectent au site http ://vmpams.mpl.ird.fr :8080/portal en fournissant leur identifiant et leur mot de passe (voir la figure 4.1) : Fournir le compte FOURNIR LE COMPTE ET DE PASS etLEleMOTmot de pass Figure 4.1: Se connecter L’espace personnelle affiche (voir la figure 4.2). En haut de cet espace, il y a une liste des différents menus qui représentent des espaces personnels et des espaces de travail pour les projets dont ils sont membres. 43 44 CHAPITRE 4. UNE ÉTUDE DE CAS L'espace personnelle de M.X L'espace de chaque projet que M.X participe Figure 4.2: L’espace personnelle de M.X L'espace personnelle et du projet de M.Y Figure 4.3: L’espace personnelle de M.Y M.X et M.Y travaillent dans un même projet : Pams. Ils cliquent sur le menu de ce projet pour accéder l’espace du projet Pams. Cet espace est identique (voir la figure 4.4 ). Cet espace est divisé par 4 parties : La partie au milieu représente la description du projet ; les deux parties à droite contiennent des messageries instantanées récentes, des courriels et le forum ; La partie le plus important est le menu de gauche. Chaque item de ce menu est proposé une fonctionnalité, par exemple : 45 Le menu principal La description du projet Des messageries instantanées récentes Des courriels et le Forum Figure 4.4: Espace du projet Pams – – – – – – Chat Room Wiki Email Archive Blogger Forums Conferencing (C’est Agora) L’étape 2 : Créer une nouvelle expérimentation. M.Y clique sur l’item Pams, dans le menu de gauche. Une liste des modèles disponibles s’affichent (voir la figure 4.5). Il clique ensuite sur le lien du modèle “Enn”. L’espace de création de l’expérimentation est affiché (voir la figure 4.6). Dans cet espace, la description complète du modèle est présente. M.Y entre 3 informations pour créer l’expérimentation : (i) un nom pour l’expérimentation (“TEST”) ; (ii) une description de l’expérimentation (“TEST”) ; et (iii) le seul participant à savoir M.X. Ensuite Il clique sur le bouton New, l’expérimentation est créée. 46 CHAPITRE 4. UNE ÉTUDE DE CAS Tab Pams Des modèles disponibles Figure 4.5: Des modèles disponibles Description du mdèle Le nom de nouvelle expérimentation Description de nouvelle expérimentation Sélectionner des participants Clique ici pour créer nouvelle expérimentation Figure 4.6: L’espace de préparation de l’expérimentation L’espace de l’expérimentation collaborative est affiché. Sur cet espace, il y a 6 parties différentes (voir la figure 4.7 ) : le tableau collaboratif des paramètres ; les moniteurs collaboratifs, les graphiques, le contrôleur collaboratif, l’afficheur d’images, et l’afficheur informations collaboratives. 47 Configuration collaborative des paramètres Le contrôleur collaboratif Le button collaboratif Fonctionnalité collaborative Le button pour charger L'affichage optionel Le moniteur collaboratif Le graphique optionnel Figure 4.7: L’espace de l’expérimentation L’étape 3 : Joindre à l’expérimentation créé. M. X accède, à son tour, à l’espace de préparation de l’expérimentation, il peut voir le lien de la nouvelle expérimentation. Il clique sur ce lien, l’espace de l’expérimentation s’affiche. Le lien de l'expérimentation Figure 4.8: Joindre à l’expérimentation créé L’étape 4 :Changer des paramètres. M. X clique sur le bouton collaboratif pour demander le droit de manipuler, le bouton 48 CHAPITRE 4. UNE ÉTUDE DE CAS prend la couleur rouge. Il obtient donc le droit de contrôle du simulateur Enn. Il clique ensuite sur le bouton de chargement, Enn modèle est chargé. Ce bouton disparait pour laisser place aux bouttons de control de la simulation : – le bouton Setup pour initialiser le modèle Enn en fonction des paramètre courant ; – Le bouton Start pour exécuter la simulation en mode de continue ; – le bouton Stop pour arrêter l’exécution de la simulation ; – le butons Step pour exécuter la simulation en mode “pas à pas”. Figure 4.9: La partie contrôleur L’interface de M.X est devenu éditable. M.X saisit alors de nouveaux paramètres et clique sur le bouton Apply. Immédiatement, M.Y visualise les changements. Figure 4.10: Les paramètres sont changées L’étape 5 : Créer une session de vidéo conférence. M.Y n’est pas d’accord avec les changement de M.X. Il veut lancer un débat. Il clique sur 49 le lien Conferencing (proposé dans la partie de droite de l’interface) . Une fenêtre de type popup s’affiche. Il s’agit de l’espace principal d’Agora. (Voir la figure 4.11) Nouvelle fenêtre d'Agora Des outils collaboratifs Figure 4.11: La fenêtre d’Agora M.Y clique ensuite sur le lien New Conference pour entrer des paramètres de la vidéo conférence (voir la figure 4.12). Les informations nécessaires sont : (i) le titre de conférence, (ii) la description, et (iii) la liste des participants. Le titre de conférence La description Sélectionner des participants Clique sur le button Create Figure 4.12: Entrer des informations pour la conférence Après avoir fini, M.Y clique sur le bouton Create. Le lien de nouvelle conférence est affiche (voir la figure 4.13). 50 CHAPITRE 4. UNE ÉTUDE DE CAS Conférence créée Figure 4.13: Le lien de nouvelle conférence M.Y clique sur ce lien. Une application de type Java Web Start est exécutée. Un fichier de type JNLP est téléchargé à partir du serveur, il lance ensuite l’application téléchargée. La fenêtre d’Agora s’affiche (voir la figure 4.14). M.X n’est pas encore connecté. Messagerie instantanée Tableau blanc L'état de M.X (déconnecté) La fenêtre de camera et audio de M.Y Figure 4.14: La fenêtre de conférence de M.Y M.X clique sur le lien Conferencing. La fenêtre d’Agora s’affiche avec un lien vers la conférence de M.Y. Il clique sur ce lien et suit le même processus d’installation et de chargement de l’outil Agora. Lorsque fenêtre de conférence est affichée, les deux chercheurs 51 sont connectés (voir la figure 4.15). L'état de M.Y (connecté) L'écran de M.Y Figure 4.15: La fenêtre de conférence de M.X Ils commencent à discuter à l’aide de plusieurs outils collaboratifs comme : la messagerie instantanée, le tableau blanc, l’écran partagé et la vidéo-conférence. L’étape 6 : M.X choisit d’afficher seulement le graphique. M.X commence à lancer la simulation en choisissant d’afficher des graphiques. A la partie de graphique, il entre : (i) le nom de graphique dans la zone de texte Plot label, (ii) le nom des deux axes x et y dans les zones de texte X label et Y label, (iii) le noms des deux variables étudiées du modèle dans les zones de texte X variable et Y variable et le taux de rafraîchissement du graphique dans la zone de texte Refresh rate. 52 CHAPITRE 4. UNE ÉTUDE DE CAS Figure 4.16: Le graphique L’étape 7 : M.Y veut visualiser seulement la distribution. Dans la partie de l’affichage, il saisit display dans la zone de texte Label (ça correspondant avec le nom de l’affichage va afficher sur l’interface) et Variable (ça correspondant avec le nom de variable) et 1 (ça correspondant avec le taux de rafraîchissement du graphique) dans la boîte texte Refresh rate. Clique ensuite sur le bouton Add. Figure 4.17: La distribution 53 Parameter s Simulation's control button Camera of Mr Y Collaboratif functions Camera of Mr X WhiteBoard Chat tool Queue list for manipulate simulation Desktop of Mr X Monitors Graphs Observe simulation by images Collaboratif informations Permission options Figure 4.18: L’espace de l’expérimentation de M.Y Ils expérimentent un long moment jusqu’au moment ou M.X décide de partir. Ils décident de reprendre cette discussion plus tard ce qui est possible car la session actuelle est automatiquement enregistré dans la base de donnée. Chapitre 5 Conclusion Dans ce mémoire, nous avons présenté le travail d’un stage visant à construction une plate-forme collaborative d’Accompagnement des activités de Modélisation et Simulation. Ce travail est composé en deux étapes principales : 1. Dans la première étape, nous analysons la problématique. Ensuite des solutions, des outils libres sont examinés pour choisir la plate-forme la plus adaptée. 2. Lors de la deuxième étape, les fonctionnalités nécessaires à un environnement collaboratif de simulation sont établies. En nous reposant sur l’existant de PAMS, nous développons de nouveaux composants afin de répondre aux 4 scénarios proposés. La nouvelle version de PAMS, développée dans le cadre de ce stage est déployer sur un serveur. Dans la partie 1, la nécessité de collaborer en modélisation et simulation est examinée. La collaboration apparaît dans presque toutes les étapes d’un projet de modélisation et simulation (surtout aux étapes de construction du modèle conceptuel et d’expérimentation). Des méthodes de collaboration dans un tel projet de modélisation et simulation sont abordées. Cet partie est s’achèvent par une étude comparative des plate-forme actuelles qui support la collaboration. Concernant la partie 2, l’état existant de PAMS est d’abord examiné. A la base de des résultats disponibles, nous proposons 4 scénarios courants, pour la modélisation et la simulation collaborative. Ensuite nous abordons l’implémentation des fonctionnalités collaboratives. Après la présentation de la phase de développement, nous déployons avec succès l’environnement PAMS sur un serveur d’IRD. On peut l’accéder et le tester à l’adresse http ://vmpams.mpl.ird.fr :8080/portal. Grâce à une interface web qui permet de manipuler des simulateurs, de contrôler (à distance) les simulations, les scientifiques sont capable de collaborer. Cette interface graphique contient des outils communs (visioconférence, messagerie instantanée, tableau blanc . . . ), qui sont complétés par des outils spécifiques dédiés au domaine de la simulation de systèmes complexes. Cette interface graphique fournit de fonctions de collaboration permettant de sélectionner un simulateur, de l’exécuter sur un serveur distant, de visualiser et d’analyser les résultats des simulations, et de garder les traces de chaque expérimentation. Donc, après mon stage, PAMS est maintenant une plate-forme collaborative d’Accompagnement des activités de Modélisation et Simulation. Nous somme succès de fournir deux types de fonctionnalités comme la spécifications au début : 55 56 CHAPITRE 5. CONCLUSION – Des fonctionnalités collaborative généraliste (visio-conférence, messagerie instantanée, ...) – des fonctionnalités collaboratives spécifiques au domaine de la modélisation et simulation des systèmes complexes Actuellement, l’environnement PAMS est compatible avec deux plates-formes de simulation à la base d’agents (Repast et Gama). L’ajout de nouveaux pilotes pour suporter d’autres plates-formes de simulation devra et sera réalisé dans l’avenir. La modularité de l’environnement PAMS permet de multiples améliorations, notamment par l’ajout de nouveaux types d’affichages ou d’outils collaboratifs. Dans le futur, PAMS sera développé dans plusieurs aspects : (i) l’ajout de nouveaux outils de collaboration (par exemple, un système d’annotation permettant de commenter les expérimentations), (ii) l’optimisation du système (par exemple l’ajout de stratégies de répartition de charge (load-balancing) ), et (iii) le support de nouvelles plates-formes de simulation (par exemple Madkit, Netlogo, . . . .) Bibliographie [1] R. Allan, X. Yang, A. Fish, M. Gonzalez, and R. Crouchley. Using sakai for e-research : Building a multi-institution virtual research environment. 10 2007. [cited at p. 4, 9, 14, 15, 28, 29, 32, 81] [2] E. Amouroux, C.T Quang, A. Boucher, and A. Drogoul. Gama : an environment for implementing and running spatially explicit multi-agent simulations. Prima-2007, 2007. [cited at p. 27] [3] S. Atwal. Building websites with Xoops : A step-by-step tutorial. Packt Publishing, 2006. [cited at p. 15] [4] R. Becker, B. Becker, M. Knotte, and I. KreiBlemeyer. Manual eGroupware 1.4. Creative Commons, 1.4 edition, 2007. [cited at p. 5, 15] [5] R. Brunet, R. Ferras, and H. Théry. Les mots de la géographie, dictionnaire critique. La documentation Française, Montpellier-Paris, France, 1993. [cited at p. 5] [6] C. Cambier, D. Masse, M. Bousso, and E. Perrier. Mior, a spatially explicit, individual based modeling approach to simulate soil microbial and organic matter processes. Ecological Modelling, 2006. [cited at p. 19] [7] M. Claypool, D. LaPoint, and J. Winslow. Network analysis of counter-strike and starcraft. In Performance, Computing, and Communications Conference, 2003. Conference Proceedings of the 2003 IEEE International, pages 261– 268. IEEE International, 2003. [cited at p. 4] [8] Darren James Dave Crane, Eric Pascarello. Ajax in Action. Manning Publications Co. Greenwich, CT, USA, 2005. [cited at p. 31] [9] M.P. De Leon, F.C. Grant, M.G. Moreno, A.R. Vicente, M. Roddy, C. Jedrzejek, and Waterford ; Waterford Inst. of Technol. Daidalos framework for successful testbed integration. In Testbeds and Research Infrastructure for the Development of Networks and Communities, 2007. TridentCom 2007. 3rd International Conference on, pages 1–6. IEEE, IEEE, 2007. [cited at p. 15] [10] L. Denise. Collaboration vs. c-three (cooperation, coordination, and communication). In INNOVATING Spring, 7 :3, 1999. [cited at p. 3, 20] [11] Eckerson and W. Wayne. Three tier client/server architecture : Achieving scalability, performance, and efficiency in client server applications. . Open Information Systems, 10 :3 :20, 1995. [cited at p. 26] [12] C.A. ElliS, S.J. Gibbs, and G.L. Rein. Groupware some issues and experineces. COMMUNiCATiONS OF THE ACM, 34(1) :38–58, January 1991. [cited at p. 3, 4] [13] J. Farmer and I Dolphin. Sakai : elearning and more. EUNIS-2005, Manchester-2005. [cited at p. 4, 5, 17, 32] [14] V. Fiack. Lucane groupware project presentation. Technical report, Creative Commons, 2004. [cited at p. 15] 57 58 BIBLIOGRAPHIE [15] L. Gilman and R. Schreiber. Distributed Computing with IBM MQSeries. John Wiley & Sons, New York, NY, USA, 1996. [cited at p. 4] [16] T. Gubala, B. Balis, M. Malawski, M. Kasztelnik, P. Nowakowski, M. Assel, D. Harÿezlak, J. Bartynski, T.and Kocot, E. Ciepiela, D. Król, J. Wach, M. Pelczar, W. Funika, and M. Bubak. Virolab virtual laboratory. In Cracow Grid Workshop 2007-CGW’07, pages 35–41. Cracow Grid Workshop, 2007. [cited at p. 18] [17] A. Hanisch. Groupware Components for Collaborative Work in a Web-based Mining Simulation Center. PhD thesis, Otto-von-Guericke-Universität Magdeburg, 2001. [cited at p. 9, 10, 11, 81] [18] J.O. Henriksen, P. Lorenz, A. Hanisch, S. Osterburg, and T.J. Schriber. Web based simulation center : professional support for simulation projects. In 1, editor, Simulation Conference, 2002. Proceedings of the Winter, pages 807 – 815. Winter Simulation Conference, 2002. [cited at p. 5, 12, 17, 19, 81] [19] William Crawford Jason Hunter. Java Servlet Programming. O’Reilly & Associates, Inc., 101 Morris Street, Sebastopol, CA 95472., 101 Morris Street, Sebastopol, CA 95472., paula ferguson edition, 1998. [cited at p. 31] [20] A. Korichi and B. Belattar. Towards a web based simulation groupware : Experiment with bscw. nformation Technology Journal, 7(2) :332–337, 2008. [cited at p. 17] [21] D. Kuykendall. PhpGroupWare Application Development. PHP Documentation Group, 2000. [cited at p. 5, 15] [22] Y. Laurillau. Conception et réalisation logicielles pour les collecticiels, centrées sur l’activité de groupe : le modèle et la plate-forme Clover. PhD thesis, Université Joseph Fourier, Grenoble, Grenoble, 9 2002. [cited at p. 4] [23] G. T. Laycock. The Theory and Practice of Specification Based Software Testing. PhD thesis, Dept of Computer Science, Sheffield University, UK, 1993. [cited at p. 40] [24] LSU. Mioga2. Documentation d’utilisation. Mioga, 2004. [cited at p. 15] [25] Xiaolin Lu. Construct collaborative distance learning environment with vnc technology. In SKG ’05 : Proceedings of the First International Conference on Semantics, Knowledge and Grid, page 127, Washington, DC, USA, 2005. IEEE Computer Society. [cited at p. 9] [26] V. Mann and M. Parashar. Grid Computing : Making the Global Infrastructure a Reality, chapter DISCOVER : A Computational Collaboratory for Interactive Grid Applications. Wiley Series in Communications Networking & Distributed Systems. John Wiley & Sons, 2003. [cited at p. 5] [27] M.V. Mantgem and K. Ward. Prima’s Quake Game Secrets : Unauthorized Guide to the ShareWare Levels. 0761509089. Prima Communications, Inc. Rocklin, CA, USA, Rocklin, CA, USA, 1996. [cited at p. 4] [28] N. Marilleau. Méthodologie, formalismes et outils de modélisation-simulation pour l’étude des systèmes complexes : application à la mobilité géographique. PhD thesis, l’Université de FrancheComté, 11 2006. [cited at p. 5] [29] E Team N Kassem. Designing Enterprise Applications : Java 2 Platform. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 2000. [cited at p. 32] [30] M.J. North, N.T. Collier, and J.R. Vos. Experiences creating three implementations of the repast agent modeling toolkit. ACM Transactions on Modeling and Computer Simulation, 16(1) :1–25, 2006. [cited at p. 27] [31] Marcell Perényi and Sándor Molnár. Enhanced skype traffic identification. In ValueTools ’07 : Proceedings of the 2nd international conference on Performance evaluation methodologies and tools, pages 1–9, ICST, Brussels, Belgium, Belgium, 2007. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering). [cited at p. 9] BIBLIOGRAPHIE 59 [32] L. Peter, J.S. Thomas, D. Heiko, and R. Klaus-Christoph. Towards a web based simulation environment. In WSC ’97 : Proceedings of the 29th conference on Winter simulation, Washington, DC, USA, 1997. IEEE Computer Society. [cited at p. 18, 19, 81] [33] Gauthier Quesnel, Raphael Duboz, Éric Ramat, and Mamadou K. Traoré. Vle : a multimodeling and simulation environment. In SCSC : Proceedings of the 2007 summer computer simulation conference, pages 367–374. Society for Computer Simulation International, San Diego, CA, USA 2007. [cited at p. 18] [34] N.C. Raleigh. Ultimus Workflow Suite 4. Product Guide, 4 edition, July 1998. [cited at p. 4] [35] T. Reenskaug. The model-view-controller (mvc) its past and present. Oslo, 2003. JavaZONE Conference. [cited at p. 26] [36] J. Rey-Debove and A. Rey. Nouvelle édition du petit Robert. Le Robert, 1996. [cited at p. 5] [37] C.C. Robert. Simulation with gpss/h. In WSC ’98 : Proceedings of the 30th conference on Winter simulation, pages 235–240, Los Alamitos, CA, USA, 1998. IEEE Computer Society Press. [cited at p. 19] [38] S. Robinson. Conceptual modeling for simulation : Issues and research requirements. wsc, 0 :792–800, 2006. [cited at p. 8] [39] S. Robinson and M. Pidd. Provider and customer expectations of successful simulation projects. Journal of the Operational Research Society, 49(3) :200–209, 1998. [cited at p. 5, 6, 81] [40] RPG. A PractitionerŠs Perspective on Simulation Validation. RPG Reference Document, 2001. [cited at p. 8] [41] V. Sidorenco. Distance learning technology based on netop virtual classrooms. In Proceedings of the The 7th International Conference of European University Information Systems on The Changing Universities - The Role of Technology, pages 112–118. GI, 2002. [cited at p. 4] [42] S.J. Taylor. Netmeeting : A tool for collaborative simulation modelling. J. of SIMULATION, 1(1-2) :59–68, 2001. [cited at p. 4, 6, 9, 11, 14, 17, 81] [43] S.J. Taylor, S. Robinson, and J. Ladbrook. Towards collaborative simulation modelling : Improving human-to-human interaction through groupware. In Proceedings of the 17th European Simulation Multiconference (ESM 2003), pages 474–482, SCS Europe Bvba, Erlangen, Germany, 2003. SCS Europe Bvba. [cited at p. 7, 9, 17, 81, 83] [44] Tuong Vinh Ho Trong Khanh Nguyen, Nicolas Marilleau. Pams - a new collaborative framework for agent-based simulation of complex systems. In LNAI series, pages 282–290. Springer Verlag, 2008. [cited at p. iii, iv, 22] [45] David Saint Voirin. Contribution à la modélisation et à l’analyse des systèmes coopératif : application à la e-maintenance. PhD thesis, 2006. [cited at p. 3, 4, 17, 18, 83] [46] U. Wilensky and IL. Evanston. Netlogo. center for connected learning and computer based modeling. Technical report, Northwestern University, 1999. [cited at p. 19] Appendices 61 Annexe A Des cas d’utilisation Les descriptions en détail de chaque cas d’utilisation sont présentées dans des tableaux suivantes : But Acteurs Initialisation Description Exceptions Fin Possibilité de voir une liste des modèles disponibles Concepteur et Utilisateur Des chercheurs veulent choisir un modèle pour expérimenter 1. Le Concepteur et utilisateur s’identifie à la plate-forme 2. Ils accèdent à l’espace de Pams 3. Une liste des modèles disponibles va s’afficher. / Une liste des modèles disponibles avec les informations associées s’affiche Table A.1: Voir liste de modèle disponible But Acteurs Initialisation Description Exception Fin Possibilité de voir une liste d’expérimentation qui est en cours d’exécution ou terminée du modèle sélectionné Concepteur et Utilisateur Le concepteur et l’utilisateur accèdent à l’espace de préparation de l’expérimentation d’un modèle 1. Le concepteur et l’utilisateur sélectionnent un modèle 2. Ils accèdent à l’espace de préparation de l’expérimentation Le concepteur et l’utilisateur doivent avoir le droit pour voir le lien de chaque expérimentation Les expérimentations dont ils sont membres s’affichent Table A.2: Voir liste d’expérimentation 63 64 ANNEXE A. DES CAS D’UTILISATION But Acteurs Initialisation Description Exception Fin Possibilité de créer une expérimentation Concepteur et Utilisateur Le concepteur et l’utilisateur veulent créer une expérimentation 1. Le concepteur et l’utilisateur accèdent à l’espace de préparation de l’expérimentation 2. Ils entrent des informations nécessaires : - Titre d’expérimentation - Description d’expérimentation - Sélectionner des membres - Attribuer des rôles pour chaque membre 3. Ils appuient sur le bouton pour confirmer / L’espace de l’expérimentation de ce modèle s’affiche Table A.3: Créer une expérimentation But Acteurs Initialisation Description Exception Fin Possibilité de rejoindre à une expérimentation en cours d’exécution Concepteur et Utilisateur Le concepteur et l’utilisateur sont invité à joindre à une expérimentation 1. Ils accèdent à l’espace de préparation de l’expérimentation 2. Ils peuvent voir le lien de cette expérimentation 3. Cliquer sur ce lien, l’espace de l’expérimentation affiche Le concepteur et l’utilisateur doivent avoir le droit pour voir le lien d’expérimentation L’espace d’expérimentation de ce modèle affiche Table A.4: Joindre à une expérimentation But Acteurs Initialisation Description Exception Fin Possibilité de demander le jeton de contrôle Concepteur et Utilisateur Le concepteur et l’utilisateur veulent manipuler l’expérimentation 1. Le concepteur et utilisateur accèdent à l’espace d’expérimentation 2. Un chercheur veut manipuler l’expérimentation selon son idée 3. Il clique sur le bouton pour demander le contrôle Il doit avoir le droit de manipuler l’expérimentation La demande est traitée ou mise dans la queue Table A.5: Demander à manipuler d’expérimentation 65 But Acteurs Initialisation Description Exceptions Fin Possibilité de contrôler l’expérimentation Concepteur et Utilisateur On obtient le droit de manipuler l’expérimentation 1. Le concepteur et l’utilisateur se trouvent dans l’espace d’expérimentation 2. Ils demandent à manipuler l’expérimentation 3. Ils obtiennent le droit de manipuler 4. Il manipule l’expérimentation / L’interface d’expérimentation collaborative change selon la manipulation Table A.6: Contrôler l’expérimentation But Acteurs Initialisation Description Exception Fin Possibilité d’analyser les résultats Concepteur et Utilisateur Le concepteur et l’utilisateur veulent analyser la sortie d’expérimentation 1. L’expérimentation est exécutée 2. Des données sont produites 3. On analyse ces données Les données doivent exister Les résultats présentent sous la forme désirée Table A.7: Analyser les résultats But Acteurs Initialisation Description Exception Fin Possibilité de rendre le jeton de contrôle Concepteur et Utilisateur On veut laisser le droit de manipuler pour les autres puissent contrôler 1. Un membre obtient le droit de manipuler l’expérimentation 2. Il ne veut pas encore la manipuler 3. Il laisse la manipulation / Il ne manipule pas encore l’expérimentation Table A.8: Rendre le jeton de contrôle But Acteurs Initialisation Description Exception Fin Possibilité de quitter l’expérimentation Concepteur et Utilisateur Ils veulent quitter l’expérimentation 1. Ils accèdent à l’espace d’expérimentation 2. Ils ne veulent pas encore expérimenter 3. Ils cliquent sur le button Back ou Refresh ou Close Tout membre quitte tandis que la simulation est encore expérimentée Ils quittent de l’expérimentation Table A.9: Quitter l’expérimentation 66 ANNEXE A. DES CAS D’UTILISATION But Acteurs Initialisation Description Exceptions Fin Possibilité de vérifier si un chercheur est un membre d’un groupe Tous membres Déterminer si un membre peut voir le lien d’une expérimentation 1. Un membre accède à l’espace d’expérimentation 2. Pour une lien d’expérimentation, le système détermine si ce membre est un membre du groupe de cette expérimentation / Si ce membre est un des membres du groupe d’une expérimentation, il peut voir le lien de cette expérimentation et à l’inverse Table A.10: Vérifier le groupe But Acteurs Initialisation Description Exception Fin Possibilité de vérifier le jeton de contrôle Système Quelqu’un demande à manipuler l’expérimentation 1. On expérimente 2. On clique sur le button de demande du contrôle de l’expérimentation 3. Le système va déterminer si l’expérimentation est libre ou non / Un message informe que l’expérimentation soit occupée, ou on obtient le droit de manipuler Table A.11: Vérifier le jeton de contrôle. But Acteurs Initialisation Description Exception Fin Possibilité de mettre la demande dans la queue Système L’expérimentation est occupée, des demandes de manipuler sont stockées dans une queue 1. Un chercheur demande le droit de manipuler 2. Système détermine si l’expérimentation est libre 3. Sinon, la demande est stockée dans une queue / Le nom de ce chercheur affiche dans la liste de la queue Table A.12: Mettre la demande dans la queue 67 But Acteurs Initialisation Description Possibilité d’exécuter l’expérimentation Détenteur du contrôle Il veut exécuter l’expérimentation 1. Ils accède à l’espace de l’expérimentation 2. Il obtient le droit de manipuler l’expérimentation 3. Il clique sur le button Start 4. Sur le serveur, à distance, la simulation s’exécute / Toutes les opérations sont désactivées, les moniteurs sont régulièrement mis à jour Exception Fin Table A.13: Exécuter l’expérimentation But Acteurs Initialisation Possibilité d’initier et de modifier des paramètres Détenteur de manipuler Il veut essayer l’expérimentation avec des paramètres différents 1. Il obtient le droit de manipuler 2. Il identifie les paramètres 3. Il entre de nouvelles valeurs pour chacun des paramètres 4. Il clique sur le button Apply La valeur entré doit numérique et satisfaire la condition de chaque modèle Touts les membres visualise le changement des paramètres Description Exception Fin Table A.14: Initier et modifier des paramètres But Acteurs Initialisation Description Exception Fin Possibilité d’arrêter l’expérimentation Détenteur de manipuler Il veut arrêter l’expérimentation en cours d’exécution 1. Il obtient le droit de manipuler 2. Il initie et modifie les paramètres 3. Il exécute l’expérimentation 4. Il clique sur le button Stop pour arrêter la simulation / La simulation est arrêté, tous opération est activée Table A.15: Arrêter l’expérimentation But Acteurs Initialisation Description Exception Fin Possibilité d’observer le changement d’un paramètre Concepteur et Utilisateur Ils veulent mieux connaître le changement des paramètres 1. On accède l’espace de l’expérimentation 2. On ajoute des observations sur des paramètres en entrant des informations : - le nom de paramètre - le taux de rafraîchissement 3. On clique sur le button Add Le nom de paramètre entré n’existe pas Le nom et la valeur de cet paramètre s’affiche Table A.16: Observer la valeur d’une paramètre en cours 68 ANNEXE A. DES CAS D’UTILISATION But Acteurs Initialisation Description Exception Fin Possibilité d’attribuer la permission pour voir des observations Concepteur et Utilisateur Ils veulent créer des observations qui sont privées ou ouvertes 1. On clique sur l’option : - Public pour ouvrir à tout participant - For a group pour un groupe, le nom du groupe est demandé - Form a member pour un membre, le nom du membre est demandé - Private pour seulement l’auteur Le nom du groupe et membre n’existe pas - Si Public tous participants peuvent voir les paramètres créés - Si For a group, seulement l’auteur et des membres de ce groupe peuvent voir - Si For a member, seulement l’auteur et ce membre peuvent voir Table A.17: Attribuer la permission But Acteurs Initialisation Description Exception Fin Possibilité d’afficher les graphiques Concepteur et Utilisateur Ils veulent visualiser les graphiques produits 1. On entre le nom de variable qui représente le graphique 2. On clique sur le button Add, dans le board d’affichage graphique 3. Cette variable affiche sous la forme d’une chaîne de caractères 4. Le graphique va afficher lors que l’on exécute la simulation Le nom de variable n’existe pas La nom de variable est affiché sous la forme d’une chaîne Le graphique va s’afficher durant la simulation Table A.18: Afficher les graphiques But Acteurs Initialisation Description Exception Fin Possibilité d’attribuer la manipulation Système L’expérimentation est libre et il y a des demande dans la queue 1. Un participant laisse la manipulation, l’expérimentation devient libre 2. Système vérifie s’il y a des demandes dans la queue 3. Il y a des demandes dans la queue, système attribue la manipulation a la première demande. / L’auteur de cette demande obtient le droit de manipuler Table A.19: Attribuer la manipulation 69 But Acteurs Initialisation Description Exception Fin Possibilité de vérifier la queue Système Un participant laisser la manipulation, ou mettre à jours la queue 1. Après une période du temps, le système vérifie automatiquement la que. Ou bien, un participant laisser la manipulation / La liste de la queue met j̀ours Table A.20: Vérifier la queue But Acteurs Initialisation Description Exception Fin Possibilité de détruire l’expérimentation Système Tous participants quittent 1. Le dernier participant quitte l’expérimentation 2. Le système détermine que le nombre de participant soit égale zéro 3. L’expérimentation est détruite / Le lien de cette expérimentation affiche dans la colonne Expérimentation terminé dans l’espace de préparation d’expérimentation Table A.21: Détruire l’expérimentation Annexe B Intégration d’Agora dans Sakai Après avoir téléchargé Agora à http ://agora.lancs.ac.uk/downloads/agora.zip, l’extraire et réalise des 4 étapes suivant, on peut utiliser Agora : – étape 1 : Copiez le répertoire agora avec les trois fichiers de configuration à la répertoire de $SAKAI TOMCAT HOME . – étape 2 : Changer les noms d’hôte dans les fichiers de configuration. – étape 3 : Copier les trois fichiers war dans le répertoire $SAKAI TOMCAT HOME/webapps. – étape 4 : Ajouter l’outil Conférence de Sakai pour le site, ce outil est Agora, après avoir intégré et avoir déployé. 71 Annexe C L’article de PRIMA 2008 PAMS - a new collaborative framework for agent-based simulation of complex systems Trong Khanh Nguyen2, Nicolas Marilleau1, Tuong Vinh Ho2 1 : Geodes, Institut de Recherche pour le développment (IRD), 32 av. H. Varagnat, 93143 Bondy Cedex, France. 2 : MSI Lab, Institut de la Francophonie pour l’Informatique(IFI), ngo 42, Ta Quang Buu, Ha Noi, Viet Nam [email protected], [email protected], [email protected] Abstract. Major researches in the domain of complex systems are interdisciplinary, collaborative and geographically distributed. The purpose of our work is to explore a new collaborative approach that facilitates scientist’s interactions during the modelling and simulating process. The originality of the presented approach is to consider models and simulators as a board of the collaboration : a shared object manipulated by a group of scientists. Agent-based simulations are powerful tools for studying complex systems. In this context, we develop a collaborative platform dedicated to agent-based simulation (PAMS). This new environment integrates common collaborative tools (e.g. videoconferencing, instant messaging, whiteboard) and specific tools to share and manipulate models, simulators, experiments and results... The current version of PAMS is based technologies coming from distributed systems. Today PAMS has been designed to support major agent based simulation frameworks. This paper aims to give an overview of the PAMS environment by defining the collaborating approach, the framework architecture and an example of its utilization. Keywords : collaborative simulation, agent-based simulation, distributed systems 73 74 ANNEXE C. L’ARTICLE DE PRIMA 2008 1 Introduction Modeling and simulation often requires cooperation between researchers from different disciplines. Data collection, model conceptualization and implementing those models using computational tools all require close teamwork amongst various players (domain experts, modelers and computer scientists). Modern-day research projects are interdisciplinary, collaborative, and researchers are often geographically separated. Given these modern conditions, the use of collaborative systems becomes essential to facilitate complex systems research when a team of geographically and professionally dispersed researchers must work together towards a common goal. The advent of new information technologies and communications tools over the past fifteen years has enabled the development of a plethora of collaborative platforms [2]. A few of them, such as BSCW [11], E-Groupware[12], and Sakai [1] have positioned themselves as collaboration-oriented extensions of generalist communications platforms in the scientific world. These products integrate specific functionalities facilitating : (i) access to knowledge and scientific information, (ii) interaction and collaboration between researchers, and (iii) a more effective dissemination of research results. These activities are often referred as ”E-Research”. The platforms supporting such work are referred to as Virtual Research Environments (VRE) [13]. VRE systems are still relatively undeveloped. Most of the available environments remain incapable of supporting significant collaborative efforts ; despite growing demands for such tools the scientific community [6]. Most of these collaboration systems are simply data repositories with web interfaces [5]. In the domain of modeling and simulation of complex systems, the use of agent-based simulation models (ABM) is increasingly popular. Many ABM platforms (Repast [8], NetLogo [9], Swarm [7] or GAMA [3]) have been developed and used by researchers [3, 10]. In the context of collaborative research, one major question is : How can geographically diverse researchers effectively work together to conduct ABM simulations without regard to the ABM platforms used ? One of our research interests focuses on the design and implementation of collaborative environments for computer modeling and the simulation of complex systems, essentially those based in ABM. The main idea is to place models, simulators, experiments and results at the center of the collaboration. From this idea, we have designed and developed methodologies and a form of ”groupware” (known as ”PAMS”) for supporting collaboration between domain experts, modelers and computer scientists. PAMS is a type of web-based groupware containing common collaborative tools (video-conferencing, instant messaging, and so on) and specific tools dedicated to the simulation domain (sharing experiments, results, experience exchange...). The aim of this paper is to present the PAMS framework. Firstly, we shall summarize the platform’s functionalities. Secondly, we provide a short description of the PAMS architecture. Finally, a case study is described demonstrating how a collaborative simulation might be executed within this new paradigm. 2 PAMS - a new collaborative framework for agent-based simulation of complex systems 75 The PAMS project introduces a new approach to collaboration in research projects. Models and simulators will no longer simply come in the form of ”research results” distributed to the community through scientific communications (journal articles, workshops etc.). Rather, with PAMS, models and simulators become concrete entities available to interested parties on the web to support collaborative work and research. The originality of our approach is to consider the model or the simulator as an object shared by a group of researchers, which can be manipulated, configured, analysed and so on. PAMS groupware is an environment allowing researchers to work together in designing or exploring models (execution of models based on various scenarios, interactions conceptualized in various contexts or of a specific simulation). For example, consider a scenario for collaboration between researchers in which they used the software environment in development. Scenario1 : ”Collaborative experimentation from distance” Mr. X and Y, researchers in ecology, respectively located in Paris and Hanoi, wish to execute some simulations in order to get results that will be illustrated in an article they will write together. The two researchers connect to the project website and begin a private discussion. Mr. X starts the simulator, and suggests that Mr. Y. shares his interface. Mr. X starts entering simulation parameters, which are not suitable to Mr Y. Mr Y starts a videoconferencing session to share with Mr. X his surprise. He posts a note on the simulator interface indicating the value of parameters that seem correct to him. After discussion, and display, by Mr. Y, part of the item they want to illustrate, the two fall into agreement on common values. Mr. X launches the simulation and then chooses to display only the graph of the evolution of biodiversity, while Mr. Y visualizes the spatial distribution of species. Each researcher posts annotations of visualization in real time on his own interface, which also appear on the interface of his colleague and they begin holding a discussion (registered as such in the instant messaging system). Due to time constraints, however, Mr. X must leave. They both decide to resume this discussion later and record the session. Three days later, returning to the site, the conversation restarts and resumes in the state where it had been left earlier . . . This scenario shows that the use of a collaborative tool firstly : addresses the problem posed by the geographical dispersion of researchers and secondly, brings a fresh dimension to the simulation activities of complex systems. An agent-based simulator is run many, many times using different parameter values in order to postulate various situations and to understand the dynamics of the studied system. In this context, users focus on inputs and outputs of a model. They are free to forget how the model works. For this reason, we assume that a perfect agent-based simulator is a ”black box” that scientists (except for the box’s creators) use by defining inputs and analyzing outputs without really caring how the ”black box” works. Existing Open Source web-based groupware constitutes a solid basis upon which it is possible to add new modules providing collaboration in the field of complex systems. We chose one of them called ”Sakai”[1] and added new collaborative modules dedicated to simulation activities, such as : (i) setting simulations ; (ii) executing simulations on a remote server ; (iii) visualising and analysing results ; (iv) managing versions of available models ; (v) archiving experiments and results ; (vi) annotating experiments and results (giving contextual comment). 3 PAMS : a modular environment 76 ANNEXE C. L’ARTICLE DE PRIMA 2008 3.1 Logical Architecture PAMS is based on a multi-tier architecture called Model View Controller (MVC) [15]. This approach distinguishes graphical user interface (Presentation Tier) from the kernel of the application (Logic Tier) and databases (Data Tier). Fives modules compose the kernel of the PAMS environment (See figure C.1) : - Simulation platform drivers package contains the kernel of agent-based plate-forms such as Repast [8] or Gama [3]. - Outputs package manages simulation results coming from simulation platforms, and shares these data for other modules of the systems. - Displays package formats shared outputs in order to generate and manage user displays : monitors, plots and/or 2D grids (images). - Recorder package saves every value that an output has taken during a simulation in a database. This data is read by the experiment’s web browser interface. - -Controllers package aims at managing experiments and simulators, ensuring the coherency and concurrency of objects shared by users (parameters, simulation outputs, experiments . . . ). Figure C.1: PAMS logical architecture. The PAMS environment proposes a generic web-based collaborative GUI. This interface takes advantage of typical collaborative tools (video-conferencing, white-board and so on) coming from Sakai and Agora tools. In addition, PAMS provides functions dedicated to the simulation domain : - A collaborative simulation board for executing and sharing remote simulators - An experiment browser for managing and replaying completed experiments and exchanging results. Today, PAMS supports simulators derived from two agent-based platforms : Repast and Gama. A few famous and simple simulators were deployed, e.g. the life game (Enn for Repast, Life for Gama) to test PAMS functionalities. In addition, specific simulators, as GamaAvi, with its origins in a multi-disciplinary research project, are and will be added. 77 Scientists (epidemiologists, geographers, computer scientists or mathematicians) will use these simulators to run experiments and to collaborate. 3.2 Technological Architecture The PAMS framework is a distributed system. It can be viewed as a container in which simulators are loaded, connected with a database, executed by dedicated servers and managed through a web interface. Figure C.2: Technological architecture PAMS is based on common technologies from the domain of distributed systems (see figure C.2) : - A web application server based on Jsp, Ajax and Servlet (Tomcat) to manage the collaborative and adaptable web interface that displays models, experiments, simulators and results with a simple, adaptable and didactic structure of data. - An Enterprise Java bean application server (Jonas) to execute simulators, manage experiments, inputs, outputs and collaboration. - A Database (MySQL) to store models, experiments inputs, outputs and exchanges between PAMS users. The PAMS framework takes advantage of the Sakai environment [1]. Sakai is an online Collaboration and Learning Environment that permits research exchange. From the Sakai environment, we developed new modules that manage a collaborative GUI specific to the simulation domain (experiment viewer, simulation board etc). The PAMS module is associated with the Agora environment [14]. Agora is a plug-in of Sakai that offers typical collaborative features like videoconferencing, whiteboard, chat and others. The use of Enterprise Java Beans is one of the keys that allows PAMS environment to be flexible, modular and modifiable. Each module of the framework is composed of several EJBs. Every EJB of a same module is used through a unique interface (determined for the module). To improve the PAMS framework, new EJB could be developed and dynamically deployed without revising old PAMS components. But, these new EJBs must follow predefined interfaces of the PAMS. The PAMS environment can be deployed on a GRID of computers. Thanks to this distributed architecture, load-balancing rules can be imagined to spread experiment executions over a GRID. 78 ANNEXE C. L’ARTICLE DE PRIMA 2008 Most of agent-based simulators depend on a specific platform such as Netlogo, Repast or Madkit. These agent-based frameworks must be installed on the computer before the setup of the simulator. Sometimes, simulators need a database to obtain working data. Simulator setups are not trivial : much experience in computer science is required. In addition, many simulators need resources (memory or processor) that are not available on a personal desktop or laptop. Thanks to the web interface of PAMS and its distributed architecture, scientists have nothing to install before using the framework. In addition they can take advantage of resources provided by the Grid in which the platform is executed. 4 Case study : The aim of this case study is to show how a group of scientists can use the PAMS environment to run simulations and collaborate. Scenario 1 (”Collaborative experimentation from a distance”) can be taken as an example. In this instance, Mr. X and Mr. Y, want to study the famous Life game model [4]. Consider that a PAMS service is running on a server. This service supports various agent based simulation frameworks, in particular the Repast environment. Several simulators have been installed, deployed and are available. For example, the environment proposes the Enn simulator, which is a Repast version of the Life game model. Using a web browser, Mr. X and Mr. Y connect themselves to the PAMS platform. After the identification step, they access to their private workspace. Mr. X is the initiator of the experiment. He has to create an experiment and to determine the participants. From a list available in the agent-based simulator, Mr. X selects the Enn simulator. A new display appears that shows information about the Enn simulator : aims of the model, inputs, outputs and so one. On this screen, Mr. X can see every public experiment done with the Enn simulator. But, he prefers to create a new one. For that, X inputs a comment about the new experiment (its aim) and selects participants from a list of subscribed persons. In the case of this scenario, Mr. X selects Mr. Y. and submits the form. The experiment is now created. X is waiting Y’s connection to start simulations. Y selects the Enn simulator from the list that contains available agent-based simulators. Information about this simulator is displayed, and Y sees that X has invited him to participate in an experiment. Y selects connects to the experiment. X and Y are seeing the same display : the simulation board of the Enn simulator. For that, he takes the token. Mr. Y’s display is freezing. Y cannot perform the action on the simulator board, but he sees modifications. After doing modifications, X releases the token. Y does not agree with X’s parameter modification. To explain his surprise, Y starts a videoconferencing session integrated in the Agora meeting tool (see figure 2). Thanks to video, audio and whiteboard tools, Y discusses with X. X and Y exchange their opinions through a user-friendly GUI. To illustrate its says, Y shows an article by sharing its desktop and convinces X. X wants to modify simulation parameters according to Y’s recommendation. He takes the token and changes parameter values. Then, X starts the simulation. X and Y see the evolution of predetermined outputs in real time. During the simulation, they discuss the evolution of the outputs. From these results, X and Y begin an analysis and make hypothesis about the phenomena they see. Due to time constraints Mr. X must leave. They both decide to resume this discussion later. So they record the session. Three days later, returning to the site, the conversation starts and resumes in the state where it had been left earlier . . . 79 Figure C.3 shows the screen shots (of the PAMS environment) during the execution of the above scenario. Parameter s Simulation's control button Camera of Mr Y Collaboratif functions Camera of Mr X WhiteBoard Chat tool Queue list for manipulate simulation Desktop of Mr X Monitors Graphs Observe simulation by images Collaboratif informations Permission options Figure C.3: Screen shot of the PAMS environment (Desktop of Mr. Y). 5 Conclusion PAMS is a collaborative framework for simulating Agent-based models of complex systems. It is based on an original approach in which the simulator supports the exchange : it is a shared object manipulated by every member of a scientific group. In addition, we consider that users view a simulator as a ”black box”. So users concentrate and collaborate on the input and output of the simulators. Scientists are able to collaborate in this manner thanks to a web-based GUI that allows remote, shared access to simulators. This GUI contains common tools (videoconferencing, instant-messaging, whiteboard, and so one), which are improved by specific tools dedicated to the domain of the simulation of complex systems. This GUI supplies collaborative functions to setup simulators, to execute simulators on a remote server, to visualize and analyze simulation results, and to keep logs of each experiment. Currently, the PAMS environment supports two agent-based simulation platforms (Repast and Gama). Adding new drivers will support of every simulation platform in the future. The modularity of PAMS permits our environment to be improved in many ways. Adding new kinds of displays or collaborative tools is one example. The PAMS environment will be improved in many ways : (i) adding new collaborative tools (e.g. an annotating system to comment experiments), (ii) optimizing the system (e.g. adding load-balancing strategies), and (iii) supporting new agent based simulation platforms (e.g. Madkit, Repast and so on). Before that happens, we will have to test the existing version on a concrete research project applied to, for instance, geography or epidemiology. 80 ANNEXE C. L’ARTICLE DE PRIMA 2008 Feedback from these tests will provide the vital keys we require to further development and future improvements of the PAMS environment. References 1. Severance, C., Hardin, J., Golden, G., Crouchley, R., Fish, A., Finholt, T., Kirschner, B., Eng, J., Allan, R. : Using the Sakai collaborative toolkit in e-Research applications. Concurrency and Computation : Practice and Experience 19 :12, 1643–1652 (2007) 2. Saint-Voirin, D. : Contribution à la modélisation et à l’analyse des systèmes coopératif : application à la e-maintenance. Université de Franche-Comté, Besançon, (2006). 3. Amouroux, E., Quang, C.T, Boucher, A., Drogoul, A. : GAMA : an environment for implementing and running spatially explicit multi-agent simulations. Prima-2007. Bangkok (2007) 4. Conway, J. : The Game of Life. Scientific American 223, 120–123 (1970) 5. Henriksen, J.O., Lorenz, P., Hanisch, A., Osterburg, S., Schriber, T.J. : Web based simulation center : professional support for simulation projects. Winter Simulation Conference2002 1, 807 - 815 (2002) 6. Ahmed, K., Brahim, B. : Towards a Web Based Simulation Groupware : Experiment with BSCW. Information Technology Journal 1812 :5638, 332–337 (2008) 7. Terna, P. : Simulation Tools for Social Scientists : Building Agent Based Models with SWARM. Journal of Artificial Societies and Social Simulation 1 :2, (1998) 8. North, M.J., Collier, N.T., Vos, J.R. : Experiences Creating Three Implementations of the Repast Agent Modeling Toolkit. ACM Transactions on Modeling and Computer Simulation, Vol. 16, Issue 1, pp. 1-25, ACM, NY, (2006). 9. Wilensky, U., Evanston, IL. : NetLogo. Center for Connected Learning and Computer Based Modeling, Northwestern University (1999). 10. Railsback, S.F. : Agent-based based Models in Ecology : Patterns and Alternative Theories of Adaptive Behaviour, Agent-Based Computational Modelling, Physica-Verlag, 139-152 (2006) 11. Horstmann, T., Bentley, R. : Distributed authoring on the Web with the BSCW shared workspace system, StandardView, vol 5, number 1, pp. 9-16, ACM, (1997) 12. Becker, R., Becker, B., Knotte, M., KreiBlemeyer, I. : Manual eGroupware 1.4. Creative Commons (2007) 13.Yang, X., Allan, R. : Web-Based Virtual Research Environments (VRE) : Support Collaboration in e-Science, WI-IATW ’06 : Proceedings of the 2006 IEEE/WIC/ACM international conference on Web Intelligence and Intelligent Agent Technology, p184-187, IEEE Computer Society (2006) 14. Severance, C., Hardin, J., Golden, G., Crouchley, R., Fish, A., Finholt, T., Kirschner, B., Eng, J., Allan, R. : Using the Sakai collaborative toolkit in e-Research applications. Concurrency and Computation : Practice and Experience 19 :12, 1643–1652 (2007) 15. Reenskaug, T. : The Model-View-Controller (MVC) Its Past and Present. JavaZONE Conference, Oslo, (2003). Table des figures 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 Processus d’un projet de modélisation-simulation [42] . . Processus d’un projet de modélisation-simulation [39] . . Modèle conceptuel et collaboration . . . . . . . . . . . . . Fréquence d’interaction dans un projet de simulation [43] Collaw [17] . . . . . . . . . . . . . . . . . . . . . . . . . . Entrée directe des paramètres . . . . . . . . . . . . . . . . NetMeeting et SIMUL8 [42] . . . . . . . . . . . . . . . . . Représenter le résultat par le converteur Proof2SVG [18] . Simulation en distance [32] . . . . . . . . . . . . . . . . . Simulation locale [32] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6 8 9 10 10 11 12 18 19 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 Concept central . . . . . . . . . . . . . . . . . . . . . . . . . Page d’accueil de la plate-forme PAMS . . . . . . . . . . . . Affichage graphique du résultat d’une simulation . . . . . . Architecture à la fin 2007 . . . . . . . . . . . . . . . . . . . Fonctionnalité d’Agora [1] . . . . . . . . . . . . . . . . . . . Cas d’utilisation pour la simulation collaborative . . . . . . Nouvel architecture . . . . . . . . . . . . . . . . . . . . . . . Technologies utilisées dans PAMS . . . . . . . . . . . . . . . La base de données . . . . . . . . . . . . . . . . . . . . . . . Modèle de contrôleur . . . . . . . . . . . . . . . . . . . . . . L’algorithme de demande la manipulation . . . . . . . . . . Le diagramme séquentiel de la demande de la manipulation Interface graphique . . . . . . . . . . . . . . . . . . . . . . . L’interface graphique de WEB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 26 26 27 29 30 31 32 33 35 36 37 38 39 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 Se connecter . . . . . . . . . . . . . . . . . . L’espace personnelle de M.X . . . . . . . . . L’espace personnelle de M.Y . . . . . . . . . Espace du projet Pams . . . . . . . . . . . . . Des modèles disponibles . . . . . . . . . . . . L’espace de préparation de l’expérimentation L’espace de l’expérimentation . . . . . . . . . Joindre à l’expérimentation créé . . . . . . . La partie contrôleur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 44 44 45 46 46 47 47 48 81 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 4.10 4.11 4.12 4.13 4.14 4.15 4.16 4.17 4.18 TABLE DES FIGURES Les paramètres sont changées . . . . . . . . La fenêtre d’Agora . . . . . . . . . . . . . . Entrer des informations pour la conférence Le lien de nouvelle conférence . . . . . . . . La fenêtre de conférence de M.Y . . . . . . La fenêtre de conférence de M.X . . . . . . Le graphique . . . . . . . . . . . . . . . . . La distribution . . . . . . . . . . . . . . . . L’espace de l’expérimentation de M.Y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 49 49 50 50 51 52 52 53 C.1 PAMS logical architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C.2 Technological architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C.3 Screen shot of the PAMS environment (Desktop of Mr. Y). . . . . . . . . . . . . 76 77 79 Liste des tableaux 2.1 2.2 2.3 2.4 2.5 2.6 Dégréé de travail en groupe [45] . . . . . . . . . . . . . . . . Table des modes de travail en groupe . . . . . . . . . . . . . Taxonomie des participants [43] . . . . . . . . . . . . . . . Outils collaboratifs (1) . . . . . . . . . . . . . . . . . . . . . Outils collaboratifs (2) . . . . . . . . . . . . . . . . . . . . . Une étude comparative des plate-formes générique actuelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4 7 13 14 16 3.1 3.2 3.3 3.4 3.5 3.6 Les informations des tables . . . . . . . . . . . . . . . Des entités beans . . . . . . . . . . . . . . . . . . . . . 4 composants principaux . . . . . . . . . . . . . . . . . Le panneau collaboratif . . . . . . . . . . . . . . . . . 5 pages ajax pour la mise à jour de l’interface . . . . . 3 composants implémentent le navigateur collaboratif A.1 Voir liste de modèle disponible . . . . . . . . A.2 Voir liste d’expérimentation . . . . . . . . . . A.3 Créer une expérimentation . . . . . . . . . . A.4 Joindre à une expérimentation . . . . . . . . A.5 Demander à manipuler d’expérimentation . . A.6 Contrôler l’expérimentation . . . . . . . . . . A.7 Analyser les résultats . . . . . . . . . . . . . . A.8 Rendre le jeton de contrôle . . . . . . . . . . A.9 Quitter l’expérimentation . . . . . . . . . . . A.10 Vérifier le groupe . . . . . . . . . . . . . . . . A.11 Vérifier le jeton de contrôle. . . . . . . . . . . A.12 Mettre la demande dans la queue . . . . . . . A.13 Exécuter l’expérimentation . . . . . . . . . . A.14 Initier et modifier des paramètres . . . . . . . A.15 Arrêter l’expérimentation . . . . . . . . . . . A.16 Observer la valeur d’une paramètre en cours . A.17 Attribuer la permission . . . . . . . . . . . . A.18 Afficher les graphiques . . . . . . . . . . . . . A.19 Attribuer la manipulation . . . . . . . . . . . A.20 Vérifier la queue . . . . . . . . . . . . . . . . A.21 Détruire l’expérimentation . . . . . . . . . . . 83 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 34 35 38 39 40 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 63 64 64 64 65 65 65 65 66 66 66 67 67 67 67 68 68 68 69 69