Groupe France Télécom Projet Cilia : collaboration LIG Adèle – Orange Labs/MAPS/MEP― slide 1 Cilia, un framework de médiation ouvert, léger, multi-personnalités PARTIE 3 : Processus Logiciel Auteurs : LIG/Adèle – Orange Labs/MAPS/MEP Workshop Cilia : 21 juin 2010
Groupe France Télécom Projet Cilia : collaboration LIG Adèle – Orange Labs/MAPS/MEP― slide 2 Plan Médiation Historique Technologies de médiation Cilia : génération OSGi et multi-personnalités Framework Cilia Modèle d’implantation Modèle de conception Médiation de données et de service Processus logiciel Vue d’ensemble Spécification d’architecture Spécification d’instances Déploiement Cas d'usage Interopérabilité dans un Système d’Information Remontée de données dans un Système Embarqué
Groupe France Télécom Projet Cilia : collaboration LIG Adèle – Orange Labs/MAPS/MEP― slide 3 Processus Logiciel Vue d’ensemble Spécification d’architecture Spécification d’instances Déploiement
Groupe France Télécom Projet Cilia : collaboration LIG Adèle – Orange Labs/MAPS/MEP― slide 4 Branche "architecture" Modèle de médiation Cilia Spécification des médiateurs du projet en DSL XML Modèle de programmation Code du Processor Conception détaillée Cilia Data Conception Développeur projet : traitement métier
Groupe France Télécom Projet Cilia : collaboration LIG Adèle – Orange Labs/MAPS/MEP― slide 5 Branche "instantiation" Machine d'exécution iPOJO Service Client Déploiement générer Spécification des médiateurs du projet : modèle DSL XML Instances de médiateur iPOJO Spécification de la chaîne de médiation : modèle DSL XML ou API Java Conception Modèle de médiation Cilia
Groupe France Télécom Projet Cilia : collaboration LIG Adèle – Orange Labs/MAPS/MEP― slide 6 Processus Logiciel Vue d’ensemble Spécification d’architecture Spécification d’instances Déploiement
Groupe France Télécom Projet Cilia : collaboration LIG Adèle – Orange Labs/MAPS/MEP― slide 7 Conception des médiateurs Un médiateur est composé de trois constituants : Un scheduler, un processor, un dispatcher Un médiateur est typé et le type fait partie d’une famille ("category") Exemple : Transform, Split, Aggregate, etc. Les types sont uniques dans l'espace d'un projet Garanti par construction
Groupe France Télécom Projet Cilia : collaboration LIG Adèle – Orange Labs/MAPS/MEP― slide 8 Bibliothèques Cilia Qu’est-ce qu’une bibliothèque ? Une bibliothèque est un bundle regroupant : - des spécifications de médiateurs (fichiers XML), - des spécifications de handlers (dispatchers et schedulers), - des fichiers.class de processor, scheduler et dispatcher Les médiateurs, schedulers et dispatchers sont réutilisables La bibliothèque Cilia (Cilia compendium) Elle contient des types de médiateur, des schedulers et des dispatchers prédéfinis Bibliothèques liées à des domaines Les entreprises doivent développer leur propre bibliothèque pour apporter des réponses spécifiques Exemples : Médiation de service/Système d’Information, Médiation de données/Habitat
Groupe France Télécom Projet Cilia : collaboration LIG Adèle – Orange Labs/MAPS/MEP― slide 9 Exemple : Translator Scheduler = synchronisation But : transmettre sans délai le message à la partie "traitement métier" Handler "immediate-scheduler" de la bibliothèque Cilia Processor = traitement métier But : traduire des éléments du contenu d'un message en utilisant un dictionnaire local au médiateur (paramètre) POJO TranslatorProcessor Dispatcher = routage But : router un message vers le composant destinataire Handler "multicast-dispatcher" de la bibliothèque Cilia Cilia compendium : Translator
Groupe France Télécom Projet Cilia : collaboration LIG Adèle – Orange Labs/MAPS/MEP― slide 10 Spécification de types de médiateur DSL XML Utilisation d’une syntaxe spécifique à la médiation Reprise du modéle Cilia : découpage en Scheduler, Processor et Dispatcher Réutilisation possible des constituants Scheduler et Dispatcher pour créer de nouveaux types de médiateur
Groupe France Télécom Projet Cilia : collaboration LIG Adèle – Orange Labs/MAPS/MEP― slide 11 Exemple : spécification de Translator Cilia compendium : Translator
Groupe France Télécom Projet Cilia : collaboration LIG Adèle – Orange Labs/MAPS/MEP― slide 12 Processus Logiciel Vue d’ensemble Spécification d’architecture Spécification d’instances Déploiement
Groupe France Télécom Projet Cilia : collaboration LIG Adèle – Orange Labs/MAPS/MEP― slide 13 Instances et liaisons Instances de médiateur Elles sont typées (nom du médiateur) Elles sont spécifiées en DSL XML ou Java Liaisons Elles sont liées à la logique de création et de déploiement d’une chaîne Elles sont définies par des noms de port (outport – inport) et un protocole - Exemple 1 : event-admin pour l’échange d’événements entre deux instances de médiateur co-localisées. Les événements peuvent être envoyés de façon asynchrone ou synchrone - Exemple 2 : jms pour l’échange d’événements entre deux instances de médiateur distribuées
Groupe France Télécom Projet Cilia : collaboration LIG Adèle – Orange Labs/MAPS/MEP― slide 14 Spécification d’une chaîne de médiation DSL XML Utilisation d’une syntaxe spécifique à la médiation Reprise du modéle Cilia : spécification de Scheduler, Processor et Dispatcher et des liaisons (binding et port-name)
Groupe France Télécom Projet Cilia : collaboration LIG Adèle – Orange Labs/MAPS/MEP― slide 15 Exemple de deux instances de Translator FacturationFixe FacturationMobile
Groupe France Télécom Projet Cilia : collaboration LIG Adèle – Orange Labs/MAPS/MEP― slide 16 Exemple de spécification de liaisons … <binding from="xslttransformer-1” to="xmlsplitterwithcorrelation-1”/> <binding from="xmlsplitterwithcorrelation-1:fixe“ to="translator-1" /> <binding from="xmlsplitterwithcorrelation-1:mobile“ to="translator-2" /> <binding from="xmlsplitterwithcorrelation-1:internet“ to="translator-3" /> … Ports de sortie
Groupe France Télécom Projet Cilia : collaboration LIG Adèle – Orange Labs/MAPS/MEP― slide 17 Processus Logiciel Vue d’ensemble Spécification d’architecture Spécification d’instances Déploiement
Groupe France Télécom Projet Cilia : collaboration LIG Adèle – Orange Labs/MAPS/MEP― slide 18 Déploiement Machine d'exécution iPOJO Service Client Déploiement générer Spécification des médiateurs du projet : Maven => bundle Instances de médiateur iPOJO Spécification de la chaîne de médiation : fichier XML