Cilia, un framework de médiation ouvert, léger, multi-personnalités PARTIE 2 : Framework Cilia Auteurs : LIG/Adèle – Orange Labs/MAPS/MEP Workshop Cilia : 21 juin 2010 1
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é
Framework Cilia Modèle d’implantation Modèle de conception Médiation de données et de service 3
Container iPOJO spécifique Technologies de base OSGi : fournit un environnent dynamique aux développeurs pour construire des applications basées sur les services iPOJO : modèle à composant qui permet d’abstraire la complexité de développement d’applications OSGi Composant générique iPOJO => Médiateur iPOJO Scheduler Dispatcher Cilia s’appuie sur l’extensibilité d’iPOJO pour construire des composants iPOJO dédiés à la médiation Processor
Schéma UML d'un médiateur Cilia Un médiateur iPOJO est composé de : Scheduler : planifie le traitement des données reçues Processor : effectue le traitement des données Dispatcher : effectue le routage des données après traitement scheduler processor dispatcher Médiateur Un médiateur correspond à un type défini lors de la phase de conception
Communication entre les médiateurs La communication entre deux médiateurs est réalisée par des senders et des collectors Une chaîne ou graphe de médiation est composé d’un ensemble de médiateurs qui communiquent Processor Scheduler Dispatcher Mediator Collector Sender 1..n 1..n
Framework Cilia Container iPOJO spécifique Modèle de conception Médiation de données et de service 7
Modèles de conception et d’implantation Modèle conceptuel = médiateurs, instances et assemblage spécifiés à l’aide du DSL XML de médiation Syntaxe médiation Syntaxe médiation Modèle conceptuel exécutable = chaîne spécifiée en java à partir de l’API Java de médiation Syntaxe iPOJO + médiation Modèle d’implantation = médiateurs en iPOJO Service Client Service Service Plate-forme d'exécution
Schéma UML Une liaison (binding) relie deux médiateurs par des ports de sortie et d’entrée Une chaîne ou graphe de médiation est composée d’un ensemble de médiateurs et de leurs liaisons
Liaisons Une liaison a un type qui correspond à un protocole Types de liaison possibles : Inter-médiateurs direct, event-admin, jms Entrée dans la chaîne event-admin, jms, connecteur BD, etc. Sortie de la chaîne email, event-admin, jms, etc.
API Java Permet de créer en java le modèle d’une chaîne de médiation Instances de médiateurs et liaisons Permet de décrire des actions autonomiques sur une chaîne Par exemple, remplacement ou reconfiguration d’un médiateur à l’exécution Permet de suivre à tout moment l’évolution d’une chaîne de médiation Notion de modèle exécutable Description java d’une chaîne équivalente à sa spécification en XML
Framework Cilia Modèle d’implantation Modèle de conception Médiation de données et de service 12
Médiation de données La médiation de données se place entre des sources d’information et des applications consommatrices Cilia permet d’effectuer ces liaisons et de réaliser des opérations de médiation sur ces données Plate-forme d'exécution
Médiation de service Les caractéristiques de Cilia par rapport aux ESB : Permettre de mettre en place les patrons d’intégration (EIP) de l’entreprise Routage, split/aggregagate, resequences, … Permettre d’avoir des chaînes de médiation distribuées Profiter d’OSGi et d’iPOJO pour obtenir une solution de médiation dynamique Possibilité de déléguer le code technique à un service externe à la chaîne. Service Client Service Service Service Plate-forme d'exécution