La mise en œuvre, dans une chaîne de transmission optique ...
Mise en œuvre de WComp 2trolen.polytech.unice.fr/cours/maje/cours/09 - WComp.pdf · –Concepts de...
Transcript of Mise en œuvre de WComp 2trolen.polytech.unice.fr/cours/maje/cours/09 - WComp.pdf · –Concepts de...
Mise en œuvre de WComp 2.0
Mail: [email protected]
Web: http://stephane.lavirotte.com/
Université de Nice – Sophia Antipolis
16/03/2015 1S. Lavirotte - G. Rey - J.-y. Tigli
Plan Cours / TP
Cours :
– Architecture orientée services pour dispositifs en Informatique
Ambiante
– Concepts de la Plate-forme WComp 2.0
TP:
– Installation de WComp 2.0
– Mise en œuvre de WComp pour UPnP
16/03/2015 2S. Lavirotte - G. Rey - J.-y. Tigli
Architecture orientée services
pour dispositifs en
Informatique AmbiantePartie 1
16/03/2015 3S. Lavirotte - G. Rey - J.-y. Tigli
Modélisation des systèmes en
Informatique Ambiante
« L’application reste, les dispositifs d’entrée/sortie changent … »
Hétérogénéité et Dynamicité de
l’environnement d’exécution
Organes de traitement de l’information
Classe des
systèmes
Description
CPU des Unités de Traitement Matérielles-
Logicielles
D des Dispositifs d’entrée-sortie
16/03/2015 4S. Lavirotte - G. Rey - J.-y. Tigli
Modélisation des systèmes en
Informatique Ambiante Organes d’interaction avec l’environnement (dispositifs
d’entrée/sortie du système d’information)
Catégorie de
dispositifUtilisation
Dccommunication entre CPUs constituant nos réseaux de
télécommunications
Distockage de l’information
Duinteraction avec l’utilisateur
Deentrée-sortie vers l’environnement physique ou réel
(appellation commune)
16/03/2015 5S. Lavirotte - G. Rey - J.-y. Tigli
Exemple : Objets communicants
ou "Ubiquituous Computing"
Informatique pervasive ou ubiquitaire
U
DcCPU
Du
Du
De
Liaisons permanentes
Liaisons non permanentes
16/03/2015 6S. Lavirotte - G. Rey - J.-y. Tigli
Exemple : Ordinateur Porté ou «
Wearable Computer »
Ordinateur Porté
UDc
CPU
Du
Du
De
Dc
De
Liaisons permanentes
Liaisons non permanentes
16/03/2015 7S. Lavirotte - G. Rey - J.-y. Tigli
Approches Logicielles : Des
bibliothèques aux services … Historique :
– Avant toute distribution :
Pilotes
Bibliothèques Widgets / Phidgets
– Approches Clients/Serveurs :
Services à protocole dédié (ex. VRPN … )
Services basés sur des intergicielles
Web Services
16/03/2015 8S. Lavirotte - G. Rey - J.-y. Tigli
Les services pour dispositifs
Salutation SLP Jini UPnP Bonjour Bluetooth JESA SCP
Fondateur
Consortium
Année
Langage
Transport
SUN Microsoft Apple Indep. Microsoft
Salutation SVRLOC Java UPnP Zeroconf Bluetooth
1995 1997 1999 1999 1999 2001 2002 2002
RPC lang Indep. Java Indep. Indep. Indep. Java Indep.
Indep. IP IP IP IP Bluetooth IP Indep.
V. Hourdin, S. Lavirotte, J.-Y. Tigli, « Comparaison des Services pour Dispositifs, » rapport de recherche I3S CNRS UNSA, RR-2006-25-FR
16/03/2015 9S. Lavirotte - G. Rey - J.-y. Tigli
Des Web Services aux Dispositifs
Phase 1 : Données,
Phase 2 : Programmes,
Phase 3 : Dispositifs …
HTTP Request
HTTP Response : HTML
HTTP Request
HTTP Response : Données
HTTP Request
HTTP Response : Données
16/03/2015 10S. Lavirotte - G. Rey - J.-y. Tigli
Faiblesses des Web Services
dans le cadre des Dispositifs Classer et chercher :
– Annuaire
Communiquer :
– Protocole Requête / Réponse
Web Services pour Dispositifs :
– Recherche et Découverte Distribuée
– Communications Asynchrones par événements
16/03/2015 11S. Lavirotte - G. Rey - J.-y. Tigli
Web Services pour Dispositifs :
ex UPNP UPnP
http://www.upnp.org/
16/03/2015 S. Lavirotte - G. Rey - J.-y. Tigli 12
EvènementsContrôleRecherche et Découverte
IP
UDP TCP
HTTPMU(multicast)
SSDP
GENA HTTPU(Unicast)
SSDP HTTP GENASOAP
HTTP
Méthodologie de
Développement Une constellation de Services :
– Ubiquarium Informatique
Plate-forme WComp 2.0 :
– Recherche / Découverte / Orchestration
– Réification de l’assemblage en un service
Des outils d’orchestration transversaux basés sur des
domaines de préoccupation
16/03/2015 13S. Lavirotte - G. Rey - J.-y. Tigli
Ubiquarium
Partie 2
16/03/2015 14S. Lavirotte - G. Rey - J.-y. Tigli
UBIQUARIUM Informatique* Ubiquarium Informatique
– Du latin Ubique, en toute chose et tout être, avec le suffixe
rium signifiant lieu ou structure.
– Donc « lieu ou structure dans laquelle l’informatique est en
toute chose et tout être »
* depuis Jan 2006
16/03/2015 15S. Lavirotte - G. Rey - J.-y. Tigli
V. Hourdin, D. Cheung-Foo-Wo, S. Lavirotte et J.-Y. Tigli. « Ubiquarium Informatique: Une plate-forme pour l'étude des équipements informatiques mobiles en environnement simulé ». Dans 3ème Journées Francophones Mobilité et Ubiquité (UbiMob), Paris, sept. 2006.
Partenaires Plateforme d’Etude des usages de l’Informatique
Mobile et Ubiquitaire en environnement simulé
– Projet Polytech’Nice Sophia – Région PACA : 240 K€
– Partenaires Académiques
– Partenaires industriels
* depuis Jan 2006
16/03/2015 16S. Lavirotte - G. Rey - J.-y. Tigli
V. Hourdin, D. Cheung-Foo-Wo, S. Lavirotte et J.-Y. Tigli. « Ubiquarium Informatique: Une plate-forme pour l'étude des équipements informatiques mobiles en environnement simulé ». Dans 3ème Journées Francophones Mobilité et Ubiquité (UbiMob), Paris, sept. 2006.
EnvironnementVirtuel
Dispositifs
virtuelles
Environnement Ubiquitaire
Dispositifs
proches
Dispositifs
portés
UBIQUARIUM : Principes
16/03/2015 17S. Lavirotte - G. Rey - J.-y. Tigli
Outils
d’analyse
du c
om
porte
ment
Utilis
ate
ur
Dispositifs
d’analyse
Des serveurs pour dispositifs …
D’une approche Ad-Hoc …
– Phidget, I2C, Bluetooth
– VRPN
… à une approche plus générique UPnP (description et
découverte dynamique)
WComp
16/03/2015 18S. Lavirotte - G. Rey - J.-y. Tigli
Bridge UPnP
Dispositifs intégrés à
l’environnement Dispositifs d’entrée
– Clavier
– Souris
– Wiimote
– Centrale Inertielle
– RFID
– Tags Bluetooth
– Phidgets Actionneurs physiques (boutons,
sliders, ...)
– Dispositifs NewSteo Capteurs divers (pression,
humidité, luminosité, ...)
– Téléphone portable Clavier
Joystick
– Tablet PC / PDA
– Nabaztag / tag
– Caméra motorisée
16/03/2015 S. Lavirotte - G. Rey - J.-y. Tigli 19
Dispositifs intégrés à
l’environnement Dispositifs de sortie
– Ecran PC
– Environnement Virtuel Audio / Son
Vidéo
Plaquage de texture sur un objet
Déplacement , Déformation d’objets
...
– Tablet PC / PDA
– Téléphone portable Ecran
Vibreur
Sonnerie / Audio
– Synthèse vocale
– Nabaztag Diffusion de message audio
Mouvements du lapin
Allumage des diodes de couleur
– Prise Electrique commandée
– Retroviseur Bluetooth
– Headset Bluetooth
16/03/2015 S. Lavirotte - G. Rey - J.-y. Tigli 20
WComp 2.0: Concepts de la
Plate-forme
Partie 3
16/03/2015 21S. Lavirotte - G. Rey - J.-y. Tigli
Les défis de l’Informatique
Ambiante Les défis de l’informatique ambiante
– Hétérogénéité (dispositifs, systèmes, langages...)
– Mobilité (utilisateurs, dispositifs ...)
– Extensibilité (nouveaux dispositifs, résultante de la mobilité)
– Dynamicité (de l’environnement, Rechercher et Découverte, …)
– Réactivité (Réagir au plus vite aux changement, pour une bonne utilisabilité)
– Adaptabilité (utilisateur, contexte)
Nombreux paradigmes logiciels :– EDA : Event Driven Architecture (Réactivité)
– SOA : Service Oriented Architectures
– AOP : Aspect Oriented Programming
– CBSE: Component-Based Software Engineering
– Et beaucoup d’approches hybrides…
16/03/2015 S. Lavirotte - G. Rey - J.-y. Tigli 22
EDA
AOP
CBSE
SOA
SCA
Notre approche: WComp
WComp et le paradigme SLCA
(Service Lightweight Component Architecture)
16/03/2015 S. Lavirotte - G. Rey - J.-y. Tigli 23
SLCA
ServicesHétérogénéitéInteropérabilitéApproche distribuée
ComposantsRéutilisabilitéMaintenance
Boite noire
EvénementsDynamicitéRéactivité
Couplage faible
AspectsMaintenanceModularité transverse
WS4DSOA 2.0
SCA
LCA(EJB)
Pourquoi distinguer deux
niveaux de composition ?
Distinguer deux niveaux pour mieux gérer l’évolution
de l’application en fonction de l’apparition et la
disparition des dispositifs (distribution explicite)
– Niveau Local : approche de la composition LCA
– Distribuée : approche de la composition SLCA
16/03/2015 S. Lavirotte - G. Rey - J.-y. Tigli 24
Composition dynamique locale : LCA
Objectif
– Mécanisme de composition dynamique de services pour
dispositifs simple
Principes
– Approches à composants légers :
OpenCom [204], JavaBeans [96], PicoContainer [205]
– Même structure d’exécution
– Composition dynamique de services :
Assemblage de composants à l’exécution
– Interactions par événements entre composants
Chaque réaction est exécutée dans une thread
– Composants boites-noires
16/03/2015 S. Lavirotte - G. Rey - J.-y. Tigli 25
Composant et Connecteurs LCA
méthodes
événements
propriétés
Composant LCA
ConnecteursConnecteur Event Simple
C1.Event (param) C2.Méthode (param)Transmission de l’événement
Connecteur Event Complexe
C1.Event (param) C2.Méthode ( C1.GetAProperty())Modification de la donnée transmise par callback
simple
complexe
16/03/2015 S. Lavirotte - G. Rey - J.-y. Tigli 26
Composition dynamique locale
LCA et services pour dispositifs
16/03/2015 S. Lavirotte - G. Rey - J.-y. Tigli 27
Service pour Dispositif
Composant Proxy
De LCA à SLCA
16/03/2015 S. Lavirotte - G. Rey - J.-y. Tigli 28
Assemblage d’une logiqueinterne avec des composantsde base
Assemblage de composants
Composant Proxy d’un dispositif communiquant par événements
Composant de base
De LCA à SLCA
16/03/2015 S. Lavirotte - G. Rey - J.-y. Tigli 29
Composant Proxy
Composant Sonde
Interfacefonctionnelle
Service composite
Interfacestructurelle
ServiceComposite
3.4 Interface de Contrôle du
services composite CheckBeanProperties Donne la liste des noms et des types de propriétés pour un type de composants (prend
actuellement un nom d'instance à la place)
CheckBeanPropertyValue Donne la valeur et le type d'une propriété d'une instance, sérialisé au format XML
CheckBeans Donne la liste des instances de l'assemblage
CheckBeanType Donne le type de composant d'une instance
CheckBeanTypes Donne la liste des types de composants chargés dans le container
CheckEvents Donne la liste des événements de l'interface d'un type de composants (prend actuellement un nom
d'instance à la place)
CheckLinkedBeansFrom Donne la liste des noms des instances qui sont à la source d'une liaison en commun avec
l'argument
CheckLinkedBeansTo Donne la liste des noms des instances qui sont à la destination d'une liaison en commun avec
l'argument
CheckLinks Donne la liste des liaisons de l'assemblage
CheckLinksFrom Donne les noms des liaisons qui partent du composant dont le nom est donné en argument
CheckLinksTo Donne les noms des liaisons qui arrivent au composant dont le nom est donné en argument
CheckMethods Donne la liste des méthodes de l'interface d'un type de composants (prend actuellement un nom
d'instance à la place)
CreateBean Crée une instance de composant
CreateLink Crée une liaison entre deux composants
CreateNamedBean Crée une instance de composant, et on peut en spécifier le nom
LoadType Charge un type de composants dans le container
RemoveBean Supprime une instance de composants de l'assemblage
RemoveLink Supprime une liaison de l'assemblage
SetBeanPropertyValue Modifie la valeur d'une propriété d'une instance, sérialisé au format XML
UnloadType Décharge un type de composants dans le container (if ever...)
16/03/2015 S. Lavirotte - G. Rey - J.-y. Tigli 30
La construction des services
composites SLCA Définition de nouveaux composants Sonde
16/03/2015 S. Lavirotte - G. Rey - J.-y. Tigli 31
Service composite
Assemblage de composants
Structurelle
Source Puits
B
Evénement
méthode(int i)Fonctionnelle
A
Source:Appel local Diffusion d’événement à partir de l’interface fonctionnelle
Puits:Appel service Diffusion d’événement local
Composition dynamique
distribuée : SLCA
16/03/2015 S. Lavirotte - G. Rey - J.-y. Tigli 32
L’ application distribuée est une graphede services de l’infrastructure et de services composites
Vue générale de l’approche
WComp
16/03/2015 S. Lavirotte - G. Rey - J.-y. Tigli 33
Trois principes de notre
approche Middleware
16/03/2015 S. Lavirotte - G. Rey - J.-y. Tigli 34
Infrastructure dynamique de Services événementiels
Utilisateur mobile ou Service centre « business »
Ou
r M
idd
lew
are
2 Dynamic Services CompositionBased on lightweight componentsA composite service is event-flow assembly
3 Crosscutting, Independent, SuperposableAdaptations as Aspects of Assembly (AA)
1Services InfrastructureEvent Based Web Services (ex. UPnP, DPWS …) …For devices …but also for provided specific software …
Infrastructure dynamique de Services événementiels
Utilisateur mobile ou Service centre « business »
Ou
r M
idd
lew
are
Trois principes de notre
approche Middleware
16/03/2015 S. Lavirotte - G. Rey - J.-y. Tigli 35
33Aspects
d’Assemblages
Programmation par aspects
Le paradigme de la programmation par aspect s'utilise
conjointement à d'autres
Modularité transverse [charfi04]
– Séparation des services d’une application
et de ses propriétés non fonctionnelles
Sécurité, persistance …
Grâce au tissage dynamique les aspects
peuvent appliqués/supprimé au runtime
16/03/2015 S. Lavirotte - G. Rey - J.-y. Tigli 36
PO + Aspect = AOPServices + Aspect = AO4BPEL
...SLCA + Aspects = Aspects d‘Assemblage (AA)
[charfi 04] A. Charfi , M. Mezini, « Aspect-oriented Web service composition with A04BPEL », ECOWS 2004 : Europeanconference on web services, Erfurt , ALLEMAGNE (27/09/2004) 2004, vol. 3250, pp. 168-182,
37
A2 B1
C3
A1
A* E
Pointcut A*
Adaptation Advice
B* D
B*
Adaptation Advice
Pointcut
Weaver
Pointcut Matching
Advice Application
AA1
AA2
A2 B1
C3
A1A2 B1
C3
A1A2 B1
C3
A1
Aspects d’Assemblages (AA)
16/03/2015 37S. Lavirotte - G. Rey - J.-y. Tigli
38
A2 B1
C3
A1
A* E
Pointcut A*
Adaptation Advice
B* D
B*
Adaptation Advice
Pointcut
Weaver
Pointcut Matching
Advice Application
AA1
AA2
A2 B1
C3
A1A2 B1
C3
A1A2 B1
C3
A1
B1A2 A1Join Points
Aspects d’Assemblages (AA)
16/03/2015 38S. Lavirotte - G. Rey - J.-y. Tigli
39
A2 B1
C3
A1
A* E
Pointcut A*
Adaptation Advice
B* D
B*
Adaptation Advice
Pointcut
Weaver
Pointcut Matching
Advice Application
AA1
AA2
A2 B1
C3
A1A2 B1
C3
A1A2 B1
C3
A1
A2 A1Join Points
A2 B1
C3
A1
D1
E1
E2
B1
Aspects d’Assemblages (AA)
16/03/2015 39S. Lavirotte - G. Rey - J.-y. Tigli
40
A2 B1
C3
A1
A* E
Pointcut A*
Adaptation Advice
B* D
B*
Adaptation Advice
Pointcut
Weaver
Pointcut Matching
Advice Application
AA1
AA2
A2 B1
C3
A1A2 B1
C3
A1A2 B1
C3
A1
A2 A1Join Points
A2 B1
C3
A1
D1
E1
E2
B1
Regexp
ISL4WComp
SCHEMA Ex (observed):
observed.^Out1 -> Bcomp.do; CALL /* before
observed.^Out2 -> CALL ; Bcomp.do; /* after
observed.^Out3 -> B2comp.do ; CALL ; Bcomp.do /*around
Aspects d’Assemblages (AA)
16/03/2015 40S. Lavirotte - G. Rey - J.-y. Tigli
AA:
Logique de Fusion des
Opérateurs et Preuves
– [Daniel Cheung, Ph. D.
Thesis]
Propriétés de Fusion
16/03/2015 S. Lavirotte - G. Rey - J.-y. Tigli 41
Commutativity : AA0 AA1 = AA0 AA1Associativity : (AA0 AA1) AA2 = AA0 (AA1 AA2)Idempotence : AA0 AA0 = AA0
WComp: Implémentations
Containers
– .NET (C#)
– J2SE, J2ME
– Android
– Linux (modules noyau)
– Microcontrôleur
Designers
– Graphique
– Textuel
– Générateur de composant proxy Web Service et UPnP
16/03/2015 S. Lavirotte - G. Rey - J.-y. Tigli 42
D. Cheung, Y-J. Tigli, S. Lavirotte, M. Riveill, « WComp: a Multi-Design Approach for Prototyping Applications usingHeterogeneous Resources », Proceedings of 17th IEEE International Workshop on Rapid System Prototyping (RSP), June 14-16, 2006, Chania, Crete.
WComp en Action
16/03/2015 S. Lavirotte - G. Rey - J.-y. Tigli 43
Conclusion
Notre Middleware WComp:
– Trouve sa place au-dessus d’une infrastructure de services
événementiels (UPnP/ DPWS ..etc.).
– Autorise la création de services composites vers de nouveaux
services centrés utilisateurs, en utilisant des assemblages de
composants légers
– Gère l’adaptation en utilisant les Aspects d’Assemblages
16/03/2015 S. Lavirotte - G. Rey - J.-y. Tigli 44
Travaux Pratiques
Installation et
Mise en œuvre avec WComp
Partie 4
16/03/2015 45S. Lavirotte - G. Rey - J.-y. Tigli
Installation
Si vous n’avez pas Windows XP SP2 et .Net Framework
1.1 => Installation de VMPlayer
– http://www.vmware.com/download/player/
– puis
– http://www.vmware.com/download/player/download.html
.tar et rpm pour linux
.exe pour windows
Utilisez l’image XP_pro_SP2 Dev
16/03/2015 46S. Lavirotte - G. Rey - J.-y. Tigli
Installation
Dans la machine virtuelle installer Sharpdevelop
1.0.2.1726 fourni dans l’image
D:\Dev\src\WComp\SharpWcomp\opt
Puis dezipper WComp.1.2.0.???.zip à la racine de
Sharpdevelop installé (généralement C:\Programme
Files\SharpDevelop) pour l’addin WComp
Puis dezipper dispositifs_UPnP.zip pour un serveur
light.exe de test UPnP…
16/03/2015 47S. Lavirotte - G. Rey - J.-y. Tigli
Découverte de WComp
Programmation par flot d'événements
Ouvrir WComp, le designer graphique
16/03/2015 48S. Lavirotte - G. Rey - J.-y. Tigli
Évènements simples
Dans outils, windows forms, instancier un button et
une textBox
Tirer un lien entre la sortie du bouton et l’entrée de la
textBox :
16/03/2015 49S. Lavirotte - G. Rey - J.-y. Tigli
16/03/2015 50S. Lavirotte - G. Rey - J.-y. Tigli
Evènements complexes
Instancier un composant TextToSpeech, section
services
Relier avec une textBox
16/03/2015 51S. Lavirotte - G. Rey - J.-y. Tigli
Evènements complexes
16/03/2015 52S. Lavirotte - G. Rey - J.-y. Tigli
Intégration de Web Services
pour Dispositifs Dispositifs physiques UPnP
Ouvrir le UPnP Wizard
16/03/2015 53S. Lavirotte - G. Rey - J.-y. Tigli
Dispositifs Physiques UPnP
Recharger les composants : menu WComp.NET -> Reload beans
16/03/2015 54S. Lavirotte - G. Rey - J.-y. Tigli
Dispositifs Physiques UPnP
Relier la checkbox en sortie du joystick
16/03/2015 55S. Lavirotte - G. Rey - J.-y. Tigli
Dispositifs Physiques UPnP
16/03/2015 S. Lavirotte - G. Rey - J.-y. Tigli 56
Dispositif Virtuel UPnP
Générer le client UPnP avec le Wizard
Faire une IHM / UPnP
16/03/2015 57S. Lavirotte - G. Rey - J.-y. Tigli
UPnP : création d’un serveur et
exemple d’application Télécommande winamp
– Installer les outils Intel
– Lancer Service Author
– Ajouter les actions et les variables
16/03/2015 58S. Lavirotte - G. Rey - J.-y. Tigli
Télécommande Winamp
Sauvegarder le fichier XML et l’importer dans Intel
Device Builder
Remplir les champs de configuration
16/03/2015 59S. Lavirotte - G. Rey - J.-y. Tigli
Télécommande Winamp
Générer le code (Export Device Stack)
Ouvrir la solution .sln (#Develop 2)
16/03/2015 60S. Lavirotte - G. Rey - J.-y. Tigli
Télécommande Winamp
Modification du code du serveur pour effectuer les
appels sur la dll de contrôle de winamp :
– Ajouter WinampFrontEndLib.dll dans les références du projet
– Ajouter using WinampFrontEndLib; en haut de
SampleDevice.cs
– Compléter le code des actions :
WinampLib.GetCurrentSongTitle();
WinampLib.VolumeDown();
16/03/2015 61S. Lavirotte - G. Rey - J.-y. Tigli
Télécommande Winamp
Évènements :
– déplacer la déclaration Intel.DeviceBuilder.Winamp Winamp
en attribut private de la classe
Envoi :
– Winamp.Evented_current_song =
WinampLib.GetCurrentSongTitle();
Compiler le projet
Lancer Intel Device Spy ou le wizard de WComp, le
serveur et Winamp
On a maintenant le contrôle de Winamp par UPnP !
16/03/2015 62S. Lavirotte - G. Rey - J.-y. Tigli
Site de distribution Ubiquarium :
http://rainbow.i3s.unice.fr/ubiquarium/
Site de distribution WComp :
http://rainbow.i3s.unice.fr/wcomp/
Conclusion
16/03/2015 63S. Lavirotte - G. Rey - J.-y. Tigli