220 likes | 356 Views
Cilia, un framework de médiation ouvert, léger, multi-personnalités PARTIE 4 : Cas d'usage Auteurs : LIG/Adèle – Orange Labs/MAPS/MEP. Workshop Cilia : 21 juin 2010. Plan. Partie 1 : Médiation Historique Technologies de médiation Cilia : génération OSGi et multi-personnalités
E N D
Cilia, un framework de médiation ouvert, léger, multi-personnalités PARTIE 4 : Cas d'usage Auteurs:LIG/Adèle – Orange Labs/MAPS/MEP Workshop Cilia : 21 juin 2010
Plan • Partie 1 : Médiation • Historique • Technologies de médiation • Cilia : génération OSGi et multi-personnalités • Partie 2 : Framework Cilia • Core • Médiation de données • Médiation de service • Partie 3 : Processus logiciel • Spécification d’architecture • Spécification d’instances • Déploiement • Partie 4 : Cas d'usage • Interopérabilité dans un Système d’Information • Remontée de données dans un Système Embarqué
Cas d'usage Système d'Information UC1 : Décomposition de messages et agrégation de messages • Application Pervasive • UC2 : Système de remonté de données RFID • Description et analyse • Spécification de l’architecture • Spécification des instances • Déploiement
UC2 : description • L’application produit de façon périodique un ou plusieurs rapports (documents généralement en XML) qui contiennent les étiquètes qui ont été lues par un ensemble de lecteurs (des dispositifs RFID). • Chaque cycle de production des rapports est connu comme Event Cycle (EC). Les étiquètes lues par les lecteurs pendant un EC doivent être traitées avant de produire les rapports. Le traitement consiste en : • Agrégation de données de différents lectuers • Eliminitation de doublons • Calcul de l’ensemble • Filtrage • Génération
UC2 : description Enorme quantité de données Données traitées
UC2 : analyse 1. Logical Reader 1) Lecture périodique (poll) des étiquètes 2) Agréger les étiquetes lues par de differents lecteurs 3) Ajouter l’identifiant de l’event cycle EC 2. Aggregate (EC) 4) Eliminatation des doublons 3. Duplicate 4) Ordonnance des messages 5) Calcul de l’ensemble (CURRENT, ADDITION, DELETION) 4. ReportSet 6) Filtrage des etiquetes (en utilisant des expressions) 5. Filtrage 7) Generation du rapport 6. Génération 7) Notification des rapports aux clients 7. Notification
Format de rapport • <?xml version="1.0" encoding="UTF-8"?> • <tag-list round="5"> • <count>10</count> • <tag>urn:epc:pat:gid-96:145.56.99</tag> • <tag>urn:epc:pat:gid-96:145.56.100</tag> • <tag>urn:epc:pat:gid-96:145.56.101</tag> • <tag>urn:epc:pat:gid-96:145.56.102</tag> • <tag>urn:epc:pat:gid-96:145.56.103</tag> • <tag>urn:epc:pat:gid-96:145.56.104</tag> • <tag>urn:epc:pat:gid-96:145.56.105</tag> • <tag>urn:epc:pat:gid-96:145.56.106</tag> • <tag>urn:epc:pat:gid-96:145.56.107</tag> • <tag>urn:epc:pat:gid-96:145.56.91</tag> • </tag-list>
Cas d'usage Système d'Information UC1 : Décomposition de messages et agrégation de messages • Application Pervasive • UC2 : Système de remonté de données RFID • Description et analyse • Spécification de l’architecture Spécification des instances Déploiement
Architecture Catégories de médiateurs identifiés Duplicate, Calculate, Filter, InvokeS, Aggregate Types de médiateur identifiés pour le cas d'usage Types spécifiques : - EventCycle, Duplicate, Filter, Notifier - CurrentSet, AdditionSet, DeletionSet Types de la bibliothèque Cilia : … - Dispatchers et scheduler
Event Cycle Aspire RFID compendium : Aspire-EventCycle Scheduler = synchronisation But : transmettre sans délai le message à la partie "traitement métier" Handler “periodic-scheduler" de la bibliothèque Cilia Processor = traitement métier • But : agrégation des étiquètes qui proviennent de différents lecteurs POJO "EventCycle" Dispatcher = routage But : router un message vers le composant destinataire Handler "multicast-dispatcher" de la bibliothèque Cilia
Spécification de Filter Cilia compendium : Aspire-Filter <mediator-component category="Aggregator" name="aspire-event-cycle"> <processor name="EventCycle"/> <scheduler name="periodic-scheduler" /> <dispatcher name="multicast-dispatcher" /> </mediator-component>
Filter Aspire RFID compendium : Filter 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 : filtrage des étiquètes en utilisant des expressions réguliers POJO "Filter" Dispatcher = routage But : router un message vers le composant destinataire Handler "multicast-dispatcher" de la bibliothèque Cilia
Spécification de Filter Cilia compendium : Aspire-Filter <mediator-component category="Filter" name="aspire-filter"> <processor name="Filter"/> <scheduler name="inmediate-scheduler" /> <dispatcher name="multicast-dispatcher" /> </mediator-component>
Cas d'usage Système d'Information UC1 : Décomposition de messages et agrégation de messages • Application Pervasive • UC2 : Système de remonté de données RFID • Description et analyse • Spécification de l’architecture Spécification des instances Déploiement
Instances Chaîne ou graphe de médiation Spécification des instances des types identifiés Spécification séparée des liaisons (binding)
N instances de Logical-Reader Un ensemble de lecteurs sont disponibles… • <mediator-instance type=“aspire-logical-reader" id="logical-reader-1"> • <scheduler> • <property name="period" value="2000" /> • </scheduler> • <property name="requires.from"> • <item key="reader-id" value="simulator-reader-1" /> • </property> • </mediator-instance>
Une instance de EventCycle • Un aggregator EventCycle qui va grouper les données des differents lecteurs… • <mediator-instance type="aspire-event-cycle" id="event-cycle"> • <scheduler> • <property name="delay" value="500" /> • <property name="period" value="5000" /> • </scheduler> • </mediator-instance>
M instance de Filter • <mediator-instance type="aspire-filter" id="filter"> • <property name="includeList" value="urn:epc:pat:gid-96:145.56.*" /> • </mediator-instance> Une instance de Duplicate <mediator-instance type= "aspire-duplicate" id="duplicate"> </mediator-instance>
Spécification des liaisons • Les instances sont liées en utilisant de bindings. • <bindings> • <binding from="logical-reader-1:end" to="event-cycle:begin1" /> • <binding from="logical-reader-2:end" to="event-cycle:begin2" /> • <binding from="event-cycle:end" to="duplicate:begin" /> • <binding from="duplicate:end" to="filter:begin" /> • <bindingfrom="filter:end" to="xml-generator:begin" /> • <binding from="xml-generator:end" to="notifier:begin" /> • </bindings>
Liaison avec le premier médiateur • Utilisation du patron proxy • Chaque lecteur RFID doit implementer une interface AbstractAdaptor Logical Reader Mediator Reader Adaptor
Cas d'usage Système d'Information UC1 : Décomposition de messages et aggrégation de messages • Application Pervasive • UC2 : Système de remonté de données RFID • Description et analyse • Spécification de l’architecture Spécification des instances • Déploiement