Prototype de plate-forme de Tribus Instantanées : Version 2.0 Cédric BISSOL Grégory DAVID Henrick MAURY Julien RIGOBERT TER Prototype de plate-forme de Tribus Instantanées : Projet encadré par : Audrey Occello Anne-Marie Dery-Pinna Philippe Collet Juin 2005
Description du travail réalisé Présentation Concept et fonctionnalité Fractal Satin L’architecture générale de notre prototype Scénarios d’utilisation Description du travail réalisé Les différentes phases Phase 1 Phase 2 Phase 3 Bilan Le travail réalisé Perspectives Le bilan sur le projet Le bilan personnel Si c’était à refaire Le plan Présentation Description du travail réalisé Bilan
Principe et fonctionnalités (1) Présentation Principe et fonctionnalités Fractal Satin L’architecture générale de notre prototype Scénarios d’utilisation Description du travail réalisé Les différentes phases Phase 1 Phase 2 Phase 3 Bilan Le travail réalisé Perspectives Le bilan sur le projet Le bilan personnel Si c’était à refaire Principe et fonctionnalités (1) Le concept de tribus instantanées Un scénario d’utilisation : Recherche d’emploi Connexion au serveur Employeur Connexion au serveur Étudiant Étudiant
Principe et fonctionnalités (2) Présentation Principe et fonctionnalités Fractal Satin L’architecture générale de notre prototype Scénarios d’utilisation Description du travail réalisé Les différentes phases Phase 1 Phase 2 Phase 3 Bilan Le travail réalisé Perspectives Le bilan sur le projet Le bilan personnel Si c’était à refaire Principe et fonctionnalités (2) Choix de la tribu Création d’une tribu Employeur Choix de la tribu Étudiant Étudiant
Principe et fonctionnalités (3) Présentation Principe et fonctionnalités Fractal Satin L’architecture générale de notre prototype Scénarios d’utilisation Description du travail réalisé Les différentes phases Phase 1 Phase 2 Phase 3 Bilan Le travail réalisé Perspectives Le bilan sur le projet Le bilan personnel Si c’était à refaire Principe et fonctionnalités (3) … Modèle Pair à Pair Employeur 3 Employeur 2 Employeur 1 Mise en relation (discussion) … Étudiant 3 Étudiant 2 Étudiant 1
Principe et fonctionnalités (4) Présentation Principe et fonctionnalités Fractal Satin L’architecture générale de notre prototype Scénarios d’utilisation Description du travail réalisé Les différentes phases Phase 1 Phase 2 Phase 3 Bilan Le travail réalisé Perspectives Bilan sur le projet Bilan personnel Si c’était à refaire Principe et fonctionnalités (4) Employeur Ajout de la fonctionnalité de synthèse de la parole Problème : comment vérifier la validité de l’ajout ? ? Étudiant déficient visuel Étudiant
Principe et fonctionnalités (5) Présentation Principe et fonctionnalités Fractal Satin L’architecture générale de notre prototype Scénarios d’utilisation Description du travail réalisé Les différentes phases Phase 1 Phase 2 Phase 3 Bilan Le travail réalisé Perspectives Bilan sur le projet Bilan personnel Si c’était à refaire Principe et fonctionnalités (5) Serveur Satin Demande de validation Employeur Ajout validé Traduction Texte -> Voix Ajout de la fonctionnalité de synthèse de la parole Étudiant Étudiant déficient visuel
Fractal Modèle à base de composants hiérarchiques : Présentation Principe et fonctionnalités Fractal Satin L’architecture générale de notre prototype Scénarios d’utilisation Description du travail réalisé Les différentes phases Phase 1 Phase 2 Phase 3 Bilan Le travail réalisé Perspectives Bilan sur le projet Bilan personnel Si c’était à refaire Fractal Modèle à base de composants hiérarchiques : Primitifs (Code Java encapsulé) Composites (assemblage de composants) RMI Fractal Modèle supportant la reconfiguration dynamique
Satin Service de sûreté (Équipe Rainbow) Présentation Principe et fonctionnalités Fractal Satin L’architecture générale de notre prototype Scénarios d’utilisation Description du travail réalisé Les différentes phases Phase 1 Phase 2 Phase 3 Bilan Le travail réalisé Perspectives Bilan sur le projet Bilan personnel Si c’était à refaire Satin Service de sûreté (Équipe Rainbow) Permet de fiabiliser le processus d’adaptation dynamique des composants indépendamment de la plateforme Ajouter / Retirer des composants de façon sûre : Enregistrer les composants Enregistrer un schéma d’adaptation (ASL: Adaptation Spécification language) Tenter d’appliquer ce schéma aux composants concernés
L’architecture générale de notre prototype Présentation Principe et fonctionnalités Fractal Satin L’architecture générale de notre prototype Scénarios d’utilisation Description du travail réalisé Les différentes phases Phase 1 Phase 2 Phase 3 Bilan Le travail réalisé Perspectives Bilan sur le projet Bilan personnel Si c’était à refaire
Scénarios d’utilisation (1)
Scénarios d’utilisation (2)
Scénarios d’utilisation (3) Présentation Principe et fonctionnalités Fractal Satin L’architecture générale de notre prototype Scénarios d’utilisation Description du travail réalisé Les différentes phases Phase 1 Phase 2 Phase 3 Bilan Le travail réalisé Perspectives Bilan sur le projet Bilan personnel Si c’était à refaire Scénarios d’utilisation (3)
Les différentes phases Présentation Principe et fonctionnalités Fractal Satin L’architecture générale de notre prototype Scénarios d’utilisation Description du travail réalisé Les différentes phases Phase 1 Phase 2 Phase 3 Bilan Le travail réalisé Perspectives Bilan sur le projet Bilan personnel Si c’était à refaire Les différentes phases Avant la période de développement : Analyse du sujet, conception de l’architecture 2. Développement d’un prototype en Java Modèle de développement en spirale : 3 phases Fractalisation, amélioration de l’interface graphique, tests et documentation 2. Intégration de Satin, gestion des plugins, amélioration du prototype, tests et documentation 3. Finalisation, derniers tests et documentation
Planning prévisionnel Présentation Principe et fonctionnalités Fractal Satin L’architecture générale de notre prototype Scénarios d’utilisation Description du travail réalisé Les différentes phases Phase 1 Phase 2 Phase 3 Bilan Le travail réalisé Perspectives Bilan sur le projet Bilan personnel Si c’était à refaire Phase 1 (1) Fractalisation, amélioration de l’interface graphique, tests et documentation Mai Planning prévisionnel
Présentation Principe et fonctionnalités Fractal Satin L’architecture générale de notre prototype Scénarios d’utilisation Description du travail réalisé Les différentes phases Phase 1 Phase 2 Phase 3 Bilan Le travail réalisé Perspectives Bilan sur le projet Bilan personnel Si c’était à refaire Phase 1 (2) Changement de version de Java : incompatibilité entre Fractal RMI 2.3 et Java 1.3 Mai Planning effectif
Planning prévisionnel Présentation Principe et fonctionnalités Fractal Satin L’architecture générale de notre prototype Scénarios d’utilisation Description du travail réalisé Les différentes phases Phase 1 Phase 2 Phase 3 Bilan Le travail réalisé Perspectives Bilan sur le projet Bilan personnel Si c’était à refaire Phase 2 (1) Intégration de Satin, gestion des plugins, amélioration de la plateforme, tests et documentation Mai Juin Planning prévisionnel
Présentation Principe et fonctionnalités Fractal Satin L’architecture générale de notre prototype Scénarios d’utilisation Description du travail réalisé Les différentes phases Phase 1 Phase 2 Phase 3 Bilan Le travail réalisé Perspectives Bilan sur le projet Bilan personnel Si c’était à refaire Phase 2 (2) Amélioration de Satin pour l’enregistrement des composants Fractal Changement d’attribution des tâches Mai Juin Planning effectif
Planning prévisionnel Présentation Principe et fonctionnalités Fractal Satin L’architecture générale de notre prototype Scénarios d’utilisation Description du travail réalisé Les différentes phases Phase 1 Phase 2 Phase 3 Bilan Le travail réalisé Perspectives Bilan sur le projet Bilan personnel Si c’était à refaire Phase 3 (1) Finalisation, derniers tests et documentation Juin Planning prévisionnel
Planning effectif de Juin Présentation Principe et fonctionnalités Fractal Satin L’architecture générale de notre prototype Scénarios d’utilisation Description du travail réalisé Les différentes phases Phase 1 Phase 2 Phase 3 Bilan Le travail réalisé Perspectives Bilan sur le projet Bilan personnel Si c’était à refaire Phase 3 (2) Efforts particuliers sur la documentation Juin Planning effectif de Juin
Le travail réalisé Nous avons atteint nos principaux objectifs : Présentation Principe et fonctionnalités Fractal Satin L’architecture générale de notre prototype Scénarios d’utilisation Description du travail réalisé Les différentes phases Phase 1 Phase 2 Phase 3 Bilan Le travail réalisé Perspectives Bilan sur le projet Bilan personnel Si c’était à refaire Le travail réalisé Nous avons atteint nos principaux objectifs : Nous avons intégré Satin à Fractal et validé cette intégration. Le service Satin a été amélioré. 2. Notre prototype est évolutif : on peut ajouter des plugins, et ce de façon sûre avec Satin. 3. Nous avons conçu une architecture qui n’a pas été modifiée en profondeur durant la phase de développement. 4. Nous avons tenté autant que possible d’avoir un code clair et bien commenté. 5. Nous avons également pu améliorer le prototype : interface graphique, ajout de fonctionnalités …
Perspectives Améliorer l’intégration de Satin et Fractal Présentation Principe et fonctionnalités Fractal Satin L’architecture générale de notre prototype Scénarios d’utilisation Description du travail réalisé Les différentes phases Phase 1 Phase 2 Phase 3 Bilan Le travail réalisé Perspectives Bilan sur le projet Bilan personnel Si c’était à refaire Perspectives Améliorer l’intégration de Satin et Fractal Indépendante du prototype Améliorer notre prototype Fiabilité : sécurité, charge … Déploiement : Linux, PDA, Firewalls Évolutivité : plugins plus complexes
Le bilan sur le projet De nombreuses difficultés surmontées Présentation Principe et fonctionnalités Fractal Satin L’architecture générale de notre prototype Scénarios d’utilisation Description du travail réalisé Les différentes phases Phase 1 Phase 2 Phase 3 Bilan Le travail réalisé Perspectives Bilan sur le projet Bilan personnel Si c’était à refaire Le bilan sur le projet De nombreuses difficultés surmontées Une bonne organisation Les objectifs principaux atteints
Le bilan personnel Une bonne expérience : Présentation Principe et fonctionnalités Fractal Satin L’architecture générale de notre prototype Scénarios d’utilisation Description du travail réalisé Les différentes phases Phase 1 Phase 2 Phase 3 Bilan Le travail réalisé Perspectives Bilan sur le projet Bilan personnel Si c’était à refaire Le bilan personnel Une bonne expérience : Avoir une réelle approche de conception et de planification avant la phase de codage Ecrire le cahier des charges Concevoir et respecter un planning Apprendre de nouvelles technologies avec peu de documentation
Si c’était à refaire Coder en Fractal plus tôt Une solution idéale ? Présentation Principe et fonctionnalités Fractal Satin L’architecture générale de notre prototype Scénarios d’utilisation Description du travail réalisé Les différentes phases Phase 1 Phase 2 Phase 3 Bilan Le travail réalisé Perspectives Bilan sur le projet Bilan personnel Si c’était à refaire Si c’était à refaire Coder en Fractal plus tôt Une solution idéale ?
Tiennent à remercier leurs encadrants pour leur disponibilité. Cédric BISSOL Grégory DAVID Henrick MAURY et Julien RIGOBERT Tiennent à remercier leurs encadrants pour leur disponibilité. Juin 2005
Cédric BISSOL Grégory DAVID Henrick MAURY Julien RIGOBERT Merci, des questions ? Juin 2005
Cédric BISSOL Grégory DAVID Henrick MAURY Julien RIGOBERT Merci, des questions ? Juin 2005
TribalFractal.fractal <?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE definition PUBLIC "-//objectweb.org//DTD Fractal ADL 2.0//EN" "classpath://org/objectweb/fractal/adl/xml/basic.dtd"> <definition name="TribalFractal.TribalFractal"> <interface name="m" role="server" signature="chat.remote.RemoteClient"/> <!--<interface name="s" role="server" signature="chat.remote.RemoteServeur"/>--> <component name="client" definition="TribalFractal.Client"/> <!-- <component name="server" definition="TribalFractal.Server"/>--> <binding client="this.m" server="client.m"/> <!-- <binding client="this.s" server="server.S"/>--> <!-- <binding client="client.s" server="server.s"/>--> </definition>
Cycle.adp adaptationPattern Cycle (Couleur plugin1, Couleur plugin2) { modifyPort plugin1.getCouleur() -> plugin1._call() ; plugin2._call() }