Mise en œuvre de WComp 2trolen.polytech.unice.fr/cours/maje/cours/09 - WComp.pdf · –Concepts de...

Post on 11-Oct-2020

4 views 0 download

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: Stephane.Lavirotte@unice.fr

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