Gnie logiciel des applications ubiquitaires Un sousproblme Composition
Génie logiciel des applications ubiquitaires Un sous-problème Composition dirigée par les modèles des applications à base de composants Objectifs : - Séparation des préoccupations - Composition automatique non basée sur l’ordre de déclarations des compositions ou caractéristiques - Détection des conflits de composition - Indépendance des Plates-formes et adéquation aux plateformes - Adéquation entre le domaine cible et les mécanismes de composition mis en place. Bonn, July 17, 2006 1
2 Contexte et démarche • Les applications sont décrites comme des assemblages de composants • Les “interactions” entre les composants sont explicites. – – Analyse des domaines d’applications cibles Modélisation du langage de composition Définition d’algorithmes de composition adapté Réalisation de prototypes pour valider le procédé si possible sur plusieurs cibles Bonn, July 17, 2006
3 Quelques domaines applicatifs • Adaptation dynamique d’assemblages de composants hétérogènes par interactions logicielles (Environnement Noah) • Construction d’assemblages de “devices” : (Integration des interactions dans l’environnement Wcomp) • Intégration de services (sécurité, …. ) indépendante plateforme dans des applications à composants (Thèse sur le système Mic. M) • Vérification de sûreté des adaptations dynamiques d’assemblages de composants (Système SATIN) • Composition et génération de composants d’IHMs sur la base des interactions entre composants métiers (Amusing et les travaux en cours) • Fusion d’orchestrations de services (en cours) Bonn, July 17, 2006
Interactions logicielles pour l’adaptation dynamique des applications à base de composants Bonn, July 17, 2006 4
5 Interactions logicielles : pourquoi faire ? IHM Where. Is( « name » ) ? Localization. Admin Detector Bonn, July 17, 2006
6 Interactions logicielles : pourquoi faire ? Timetable Service Where. Is( « name » ) ? IHM get. Info( « name » ) <Lieu, …. > Localization. Admin Detector Bonn, July 17, 2006 I don’t know
Scenario - ISL Language – – Life Cycle - Demonstration - Merging rules - Model applications Interactions logicielles : pourquoi faire ? time. Table. Service IHM Localization. Admin Detector Bonn, July 17, 2006 7
Scenario - ISL Language – – Life Cycle - Demonstration - Merging rules - Model applications Interactions logicielles : pourquoi faire ? time. Table. Service IHM Localization. Admin Detector Bonn, July 17, 2006 8
9 Interactions Logicielles: Modélisation et Expression séparée Default behavior public Date. And. Place Where. Is(string login) { int Number. Of. Seconds. To. Expire = Int 32. Parse(System. Configuration. Settings. App. Settings["epub. services. localisation. expiration. seconds"]); Date. And. Place info= Get. Last. Place. Known(login ); if i(nfo. Is. Defined()) { // check if it has expired Date. Time now = Date. Time. Now; Time. Span tm = now - info. Date; if tm. Total. Seconds ( > Number. Of. Seconds. To. Expire) { return new. Date. And. Place (); } } return info; } interaction localization_Timetable(Localization LOC, Timetable TT){ Interaction between Timetable and Localization LOC. Where. Is(string login) -> RESULT: =LOC. _call; if (!RESULT. Is. Defined ()) { TTItem: =TT. Get. Info(login); if (TTItem. Is. Defined()) { RESULT. Set. Place(TTItem. Get. Place()) } } } interaction monitor_localisation(Localization LOC, Monitor MONITOR){ Monitoring behaviour LOC. Where. Is(string login) -> LOC. _call // MONITOR. Log("LOCALISATION", login) } interaction cache(Timetable TT, Cache CACHE){ Cache behaviour EDT. Get. Info(string login) -> RESULT: =CACHE. Get. Info(login); if (!RESULT. Is. Defined ()) { RESULT: =EDT. _call ; if (RESULT. Is. Defined ()) { CACHE. Store(login, RESULT ); } } else { delegate { CACHE. Get. Info(login) } } } Bonn, July 17, 2006
ISL: Interaction Specification Language Modélisation et composition 10 interaction localization_Timetable(Localization LOC, Timetable TT){ LOC. Where. Is(string login) -> RESULT: =LOC. _call; if (!RESULT. Is. Defined()) { TTItem: =TT. Get. Info(login); if (TTItem. Is. Defined()) { RESULT. Set. Place(TTItem. Get. Place()) } } } Description en sémantique naturelle TYPOL des opérateurs réactif Indépendance Langage et plateforme Fusion comportementale : Solution Formelle XML Bonn, July 17, 2006
11 Mises en oeuvre des interactions • http: //noah. essi. fr – – – C# objecs Java objects Java RMI objects J 2 EE- EJB Jonas component. Net objects Fractal components Bonn, July 17, 2006
Interfaces Hommes-Machines et compositions Nos ambitions et nos pistes Bonn, July 17, 2006 12
13 IHMs : problématiques Renderer Atelier de composition Bonn, July 17, 2006
Modèlisation, indépendance plateforme et composition IHM Abstraite : langage SUNML <sunml> <interface id="Fiche. Client"> <structure> <dialog id="Main. Dialog" sequence="true"> <element id="Titre" type="string" editable="false" value="Fiche Client"/> <element id="Label. Nom" type="string" editable="false" value="Nom : "/> <element id="Champ. Nom" type="string" editable="true" value=""/> … </dialog> <dialog id="Menu" sequence="true"> <link id="Recharger"> <element id="Label. Bt. R" type="string" editable="false" value="Recharger"/> </link> … </dialog> </structure> </interface> </sunml> Bonn, July 17, 2006 Projection dynamique Spécification de la composition et opérateurs : Architecture basée sur des modèles 14
15 Bonn, July 17, 2006
En résumé une démarche basée sur des modèles et guidée par les applications Expression séparée des “adaptations” Algorithme de composition Langage adapté Bonn, July 17, 2006 16
En résumé une démarche basée sur des modèles et guidée par les applications Expression séparée des “Interactions” ISL et Algorithme : Langage adapté À la mise en oeuvre d’interactions Logicielles Noah une mise en oeuvre multiplateforme Bonn, July 17, 2006 17
En résumé une démarche basée sur des modèles et guidée par les applications Expression séparée Des “assemblages de composants” Bonn, July 17, 2006 18 ISL 4 Wcomp : Extension d’ISL : Adaptation au monde des devices Wcomp : une mise en oeuvre par génération de composants multiplateforme
En résumé une démarche basée sur des modèles et guidée par les applications Expression séparée Des “adaptations” dynamiques De composants Satin : Algo de Validation des propriétés de sûreté (preuves formelles) Plateformes multiples Bonn, July 17, 2006 19
En résumé une démarche basée sur des modèles et guidée par les applications Expression séparée Des orchestrations entre Services Mise en oeuvre de nouveaux algorithmes de composition Adaptés à la multiplicité des sélecteurs Implémentations en cours Bonn, July 17, 2006 20
En résumé une démarche basée sur des modèles et guidée par les applications Expression séparée Des Relations entre composants du Noyau fornctionnel et composants d’IHMs Mise en oeuvre de nouveaux algorithmes de composition Adaptés aux Composants d’IHMS Implémentations en cours Bonn, July 17, 2006 21
22 Résultats and perspectives • Une démarche qui renforce – Separation of concerns – Gestion de cohérence par fusion – Mise en place de Prototypes dont certains sont diffusés • Work in progress 1. IHM 2. Using interaction for Web service management : recherche (Faros) et usages dans le cadre SMNG Bonn, July 17, 2006
- Slides: 22