Sensibilité au contexte Modélisation et adaptation - Semantic Scholar

Ajustement de sa vitesse en fonction de la distance du véhicule qui est devant. (réaction). □ Modification ...... l'ontologie pour : ◇ Calculer les contextes dérivés.
2MB taille 5 téléchargements 154 vues
Sensibilité au contexte Modélisation et adaptation [email protected]

CSC5004 Janvier 2009

Sensibilité au contexte : modélisation et adaptation

Sommaire

1 2 3 4 5

Sensibilité au contexte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Découplage Application / Sensibilité au contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Modélisation des informations de contextes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Adaptation à l’exécution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57 Adaptations au déploiement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

2/112

Sensibilité au contexte : modélisation et adaptation

1 Sensibilité au contexte

1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9

Définition du contexte en informatique ubiquitaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Définition de la sensibilité au contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Sensibilité au contexte, comment ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Sensibilité au contexte pourquoi ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Quelques exemples de sensibilité au contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Sensibilité au contexte et adhésion des utilisateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Les premières applications sensibles au contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Sensibilité au contexte et cycle de vie des applications . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Sensibilité au contexte : travaux de recherche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

3/112

Sensibilité au contexte : modélisation et adaptation

1 Sensibilité au contexte

1.1 Définition du contexte en informatique ubiquitaire ¥ En intelligence artificielle, Brézillon [Brézillon, 2002] définit le contexte par : “Le contexte est ce qui n’intervient pas directement dans la résolution d’un problème mais contraint sa résolution” ¥ Dey [Dey et al., 2001] définit par contexte : “toute information pouvant être utilisée pour caractériser la situation d’une entité (personne, objet physique ou informatique). Et plus généralement tout élément pouvant influencer le comportement d’une application ¥ Dans le cadre de l’informatique ubiquitaire, quelques exemples d’entités et de contextes associés : ¨ terminal utilisé : bande passante de la connexion réseau, disponibilité de la mémoire, charge du processeur, taille d’écran et modes d’interaction avec l’utilisateur ¨ utilisateur : identité de l’utilisateur, sa langue maternelle, sa localisation géographique ¨ salle : niveau de lumière ou de bruit, température TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

4/112

Sensibilité au contexte : modélisation et adaptation

1 Sensibilité au contexte

1.2 Définition de la sensibilité au contexte

¥ Informatique sensible au contexte ou Context Aware Computing : terme introduit par [Schilit and Want, 1994] ¥ [Brown et al., 1997] : Les applications sensibles au contexte sont des applications dont le comportement peut varier en fonction du contexte. ¥ [Dey et al., 2001] : Un système est sensible au contexte s’il utilise le contexte pour offrir des informations ou des services pertinents pour l’utilisateur.

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

5/112

Sensibilité au contexte : modélisation et adaptation

1 Sensibilité au contexte

1.3 Sensibilité au contexte, comment ?

¥ Plusieurs fonctions nécessaires ¨ Collecte des informations de contexte ¨ Détection des changements de situations de contexte ¨ Réalisation des adaptations (sans intervention de l’utilisateur)

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

6/112

Sensibilité au contexte : modélisation et adaptation

1 Sensibilité au contexte

1.4 Sensibilité au contexte pourquoi ?

¥ Informatique mobile (mobilité utilisateur, mobilité du terminal, mobilité réseau) caractérisée par un changement de contexte permanent : ¨ Connecté /déconnecté ¨ Bande passante faible ou élevée ¨ Changement de localisation ¨ Grand écran / petit écran ¨ Dispositifs de saisie variables ¨ ... ¥ Il est important que le système informatique réagisse de manière automatique.

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

7/112

Sensibilité au contexte : modélisation et adaptation

1 Sensibilité au contexte

1.5 Quelques exemples de sensibilité au contexte ¥ Choix d’un algorithme de réconciliation en fonction des temps de latence (comportement) ¥ Démarrage d’une synchronisation lorsque le réseau est rétabli (réaction) ¥ Client/Serveur : mode synchrone lorsque le réseau est opérationnel en mode bufferisation sinon (comportement) ¥ Avertissement lorsqu’une personne est à proximité (réaction) ¥ Affichage une position géographique (connexion contexte – attribut) ¥ Ajustement de sa vitesse en fonction de la distance du véhicule qui est devant (réaction) ¥ Modification la température de la pièce en fonction des personnes présentes (comportement) ¥ Arrêt de la radio lors de la réception d’un appel téléphonique (réaction) ¥ Découverte des serveurs de proximité et liaison avec ces serveurs (structure de l’application) ¥ Dans un magasin, affichage des réductions du rayon (réaction) ¥ Message SMS visuel ou vocal (si je suis dans ma voiture) (comportement) TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

8/112

Sensibilité au contexte : modélisation et adaptation

1 Sensibilité au contexte

¥ Choix du composant interface en fonction des capacités du terminaux (structure de l’application)

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

9/112

Sensibilité au contexte : modélisation et adaptation

1 Sensibilité au contexte

1.6 Sensibilité au contexte et adhésion des utilisateurs

¥ Changement radical : ¨ Hier, l’utilisateur était (plus ou moins) maître des réactions de l’application (interactions souris, clavier, pointeur ...) ¨ −→ Demain, les changements de situations de contexte entraîneront des modifications dans la structure et le comportement des applications ¥ Interrogations : ¨ Qu’est-ce que l’utilisateur est en mesure de supporter ? ¨ L’utilisateur risque-t-il d’avoir un sentiment de perte de contrôle ? ¨ Quelle valeur ajoutée pour l’utilisateur ? ¨ Quelle connaissance nécessaire pour débrayer des comportements jugés inopportuns ?

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

10/112

Sensibilité au contexte : modélisation et adaptation

1 Sensibilité au contexte

1.7 Les premières applications sensibles au contexte ¥ Shopping Assistant guide [Asthana et al., 1994] : utilise la localisation de l’utilisateur pour le guider dans un magasin ¥ CyberGuide [Abowd et al., 1997] : offre des informations touristiques sur une carte interactive (sites à visiter selon (1) localisation utilisateur et (2) historique des visites) ¥ Conference Assistant [Dey et al., 1999] : assiste les participants à une conférence ; suggestion de présentations à laquelle assister ; affichage automatique des présentations en cours ¥ Adaptive GSM phone and PDA [Schmidt et al., 1999] : assiste les utilisateurs de terminaux mobiles ; change la taille d’écriture en fonction de l’activité de l’utilisateur ; sélection automatique des profils de téléphones portables en fonction du contexte (sonner, vibrer ou rester silencieux) ¥ Call Forwarding [Want et al., 1992] grâce au système de localisation d’Active Badge, le réceptionniste utilise la localisation de l’utilisateur pour faire suivre les appels téléphoniques vers le téléphone le plus proche de l’utilisateur TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

11/112

Sensibilité au contexte : modélisation et adaptation

1 Sensibilité au contexte

1.8 Sensibilité au contexte et cycle de vie des applications

¥ Adaptation statique ¨ Choix de conception, lignes de produit

¨ Choix de déploiement : I Quelle ligne de produit pour quel matériel ? I Quelle structure de l’application (services externes) ?

¥ Adaptation dynamique ¨ Choix à l’exécution I Modifications du comportement ou de la structure de l’application

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

12/112

Sensibilité au contexte : modélisation et adaptation

1 Sensibilité au contexte

1.9 Sensibilité au contexte : travaux de recherche

¥ Des applications sensibles au contexte existent aujourd’hui. Pourquoi encore des travaux de recherche sur la sensibilité au contexte ? ¨ Réduction de la charge de travail du développeur d’applications : marge de manœuvre ; ¨ Découplage lorsque possible de la partie sensibilité au contexte de la partie métier de l’application ; ¨ 3 pistes explorées dans la suite du cours : 1. S’appuyer sur une étape de modélisation de contexte 2. S’appuyer sur des services intergiciels notamment le collecteur de contexte (cf. cours gestion de contexte) 3. Offrir des intergiciels qui réalisent des interactions entre les informations de contexte et les applications (adaptations)

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

13/112

Sensibilité au contexte : modélisation et adaptation

2 Découplage Application / Sensibilité au contexte

2.1 Tâches associées à la gestion de la sensibilité au contexte . . . . . . . . . . . . . . . . . . . . . . 15 2.2 Découplage et modélisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

14/112

Sensibilité au contexte : modélisation et adaptation

2 Découplage Application / Sensibilité au contexte

2.1 Tâches associées à la gestion de la sensibilité au contexte

2.1.1 Exemple de l’architecture Context Toolkit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16 2.1.2 Exemple de l’architecture CAMidO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.1.3 Tâches pouvant être découplées de l’application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

15/112

2 Découplage Application / Sensibilité au contexte

2.1 Tâches associées à la gestion de la sensibilité au contexte

2.1.1 Exemple de l’architecture Context Toolkit

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

16/112

2 Découplage Application / Sensibilité au contexte

2.1 Tâches associées à la gestion de la sensibilité au contexte

2.1.2 Exemple de l’architecture CAMidO

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

17/112

2 Découplage Application / Sensibilité au contexte

2.1 Tâches associées à la gestion de la sensibilité au contexte

2.1.3 Tâches pouvant être découplées de l’application

¥ Collecte des informations de contexte

¥ Stockage des informations de contexte

¥ Interprétation des informations de contexte

¥ Analyse des informations de contexte

¥ Adaptations à des situations de contexte

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

18/112

Sensibilité au contexte : modélisation et adaptation

2 Découplage Application / Sensibilité au contexte

2.2 Découplage et modélisation

2.2.1 Pourquoi la modélisation de contexte ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.2.2 Modèle et méta-modèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

19/112

2 Découplage Application / Sensibilité au contexte

2.2 Découplage et modélisation

2.2.1 Pourquoi la modélisation de contexte ?

¥ La modélisation de contexte est un pas vers le découplage entre les tâches de gestion de contexte et l’application.

¥ Plusieurs niveaux de modèles : ¨ Les modèles de contextes décrivent les contextes qui peuvent être observés. ¨ Les modèles de sensibilité au contexte décrivent les variations/adaptations associées à des modifications dans l’état du contexte. ¥ Les modèles sont : ¨ Fournis pour une application (modèles de sensibilité au contexte) ou pour un ensemble d’applications ¨ Puis interprétés par les services intergiciels

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

20/112

2 Découplage Application / Sensibilité au contexte

2.2 Découplage et modélisation

2.2.2 Modèle et méta-modèle

¥ La structure des informations stockées dans les modèles est définie par un méta-modèle Un modèle est conforme à un méta-modèle ¨ Plusieurs langages et technologies permettent de définir des modèles conformes à des méta-modèles : I Un fichier XML est conforme à un XML schéma (ou un DTD), I Ecore est un langage pour définir des DSM Domain Specific Model (des (méta-)classes avec leurs relations) I Les ontologies permettent de définir des concepts et leur relations (qui peuvent être instanciés)

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

21/112

Sensibilité au contexte : modélisation et adaptation

3 Modélisation des informations de contextes

3.1 3.2 3.3 3.4 3.5 3.6

Quelques définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Comparaison de modèles de contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Profils de contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Approche orientée base de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Approches IDM (Ingénierie Dirigée par les Modèles) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Illustration avec ca3m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

22/112

Sensibilité au contexte : modélisation et adaptation

3 Modélisation des informations de contextes

3.1 Quelques définitions

3.1.1 3.1.2 3.1.3 3.1.4

Entités observables, observables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Observation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Système sensible au contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Espace des informations de contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

23/112

3 Modélisation des informations de contextes

3.1 Quelques définitions

3.1.1 Entités observables, observables

Définition ¥ Une entité observable est une entité physique ou logique qui peut être observée. ¥ Pour une entité observable, plusieurs observables peuvent donner lieu à des observations Exemples ¥ Une machine est une entité observable les observables associés : son niveau de batterie, la taille de son écran, la mémoire totale, la mémoire disponible ¥ Une personne est une entité observable les observables associés : sa localisation, sa préférence langage ¥ Une salle est une entité observable les observables associés : le nombre de personnes présentes ; la luminosité

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

24/112

3 Modélisation des informations de contextes

3.1 Quelques définitions

3.1.2 Observation

¥ Chaque observable peut donner lieu à une ou plusieurs observations ¥ En fonction des observables les observations peuvent ou non évoluer dans le temps Observable immuable : une personne : préférence langage, nom (français, tartempion) Observable dynamique : une personne : sa localisation latitude : xx ; longitude : yy ¥ Suivant les possibilités du modèle, un historique des observations peut être conservé ou non

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

25/112

3 Modélisation des informations de contextes

3.1 Quelques définitions

3.1.3 Système sensible au contexte

¥ Un Système sensible au contexte est un système dont le comportement ou la structure peut varier en fonction de l’état de l’espace des informations de contexte. intergiciel (le mode de communication peut varier en fonction de l’état du réseau) composant (pour un composant interface utilisateur, l’affichage peut varier en fonction du terminal) application multi-composant (la structure de l’assemblage varie en fonction de l’état de l’espace des informations de contexte)

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

26/112

3 Modélisation des informations de contextes

3.1 Quelques définitions

3.1.4 Espace des informations de contexte

¥ L’espace des informations de contexte d’un système est caractérisé par l’état des différents éléments le caractérisant : les entités observables, les observables et l’état des observations attachées aux observables. ¥ Un observable interprété est obtenu par interprétation à partir d’un ou de plusieurs autres observables : ¨ Exemple : la ville la plus proche peut-être calculée à partir d’une information de localisation ¥ Certains observables peuvent fournir des Situations d’adaptation ¨ Afin de repérer un changement d’état dans l’espace des informations de contexte. ¨ Ce changement d’état significatif pour le système nécessite une réaction dans le système : I Une adaptation.

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

27/112

Sensibilité au contexte : modélisation et adaptation

3 Modélisation des informations de contextes

3.2 Comparaison de modèles de contexte

3.2.1 Critères de comparaison de modèles de contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.2.2 Caractéristiques des observations de contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

28/112

3 Modélisation des informations de contextes

3.2 Comparaison de modèles de contexte

3.2.1 Critères de comparaison de modèles de contexte

structuration : structuration de l’espace des informations (plat, arbre, graphe) validation : comment valider le modèle (quel méta-modèle) distribution : ¥ Les entités observables peuvent-elles être distribuées ? les observations interprétées peuvent-elles provenir d’observables distribués ? ¥ Le modèle peut-il être distribué ? contenu : jusqu’où va la description ? observables, entités, situations, adaptations ? QoC caractérisation de la qualité de contexte collecte : le modèle permet-il d’être associé à un gestionnaire de contexte outils : outils d’interrogation, de modification, d’interprétation associés

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

29/112

3 Modélisation des informations de contextes

3.2 Comparaison de modèles de contexte

3.2.2 Caractéristiques des observations de contexte

¥ En plus des informations de noms et de valeurs, d’autres caractéristiques peuvent compléter une observation de contexte : ¨ Caractéristiques temporelles : I Date d’obtention du contexte I Durée de vie d’une information de contexte I Combien d’informations de contexte doivent être conservées dans un historique ¨ Identification de la source du contexte ¨ Intervalle de confiance ¥ La modélisation clé/valeur ne suffit pas pour qualifier les observations de contexte

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

30/112

Sensibilité au contexte : modélisation et adaptation

3 Modélisation des informations de contextes

3.3 Profils de contexte

3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6

Principe d’un profil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Modélisation clé-valeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Exemple de wurfl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 CCPP Composite Capability / Preference Profiles (W3C) . . . . . . . . . . . . . . . . . . . . . 36 UAProf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Point sur les profils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

31/112

3 Modélisation des informations de contextes

3.3 Profils de contexte

3.3.1 Principe d’un profil

¥ Description des caractéristiques d’une entité observable ¥ Profils approprié pour des caractéristiques immuables ¥ Principe d’utilisation : ¨ Lors d’une demande de service (p. ex : requête HTTP) : I Le client fournit un identifiant de profil I Le serveur consulte les informations correspondant à ce profil I Le serveur fournit une réponse adaptée au profil

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

32/112

3 Modélisation des informations de contextes

3.3 Profils de contexte

3.3.2 Modélisation clé-valeur

¥ La modélisation la plus simple de l’information de contexte : une information de contexte est donnée par : ¨ La clé (le nom logique) du contexte ¨ La valeur du contexte

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

33/112

3 Modélisation des informations de contextes

3.3 Profils de contexte

3.3.3 Exemple de wurfl

¥ WURFL : Wireless Universal Resource FiLe [Passani, 2007] ¥ Fichier qui recense les caractéristiques de l’ensemble des terminaux mobiles (entité observable) ¥ La grammaire de ce fichier est fournie par une DTD ¥ Une URL permet de mettre à jour les informations de ce fichier ¥ Tout le monde peut mettre à jour, tout le monde peut télécharger ce fichier

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

34/112

3 Modélisation des informations de contextes

3.3 Profils de contexte

¥ Exemple de profil défini dans wurfl :

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

35/112

3 Modélisation des informations de contextes

3.3 Profils de contexte

3.3.4 CCPP Composite Capability / Preference Profiles (W3C) ¥ Description en RDF (Resource Description Framework) grammaire XML pour représenter des graphes orientés étiquetés ¥ Caractéristiques du terminal et préférences utilisateurs ¥ Utilisé pour le choix automatique des pages HTML en fonction des contraintes ¥ Hiérarchie de description à deux niveaux 320 200 TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

36/112

3 Modélisation des informations de contextes

3.3 Profils de contexte

3.3.5 UAProf

¥ Extension de la grammaire CC/PP ¥ Pour une utilisation par WAP (Wireless Application Protocol) ¥ Définition d’une liste d’attributs pour : ¨ HardwarePlatform ¨ SoftwarePlatform ¨ BrowserUA ¨ NetworkCharacteristic ¨ WapCharacteristics ¨ PushCharacteristics

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

37/112

3 Modélisation des informations de contextes

3.3 Profils de contexte

3.3.6 Point sur les profils

¥ Des profils existent sur une ou plusieurs entités observables ¥ Ils sont adaptés pour des observables immuables ¥ Des langages d’interrogation permettent de parcourir les profils (ex SPARQL proposé par W3C) ¥ Difficultés : la mise à jour des fichiers de profils et leur réplication pour assurer leur disponibilité

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

38/112

Sensibilité au contexte : modélisation et adaptation

3 Modélisation des informations de contextes

3.4 Approche orientée base de données

3.4.1 3.4.2 3.4.3 3.4.4

Context Modeling Language (Université de Queensland) . . . . . . . . . . . . . . . . . . . . . . 40 Ontologie de contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Delivery Context Ontology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 CAMidO méta-modèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

39/112

3 Modélisation des informations de contextes

3.4 Approche orientée base de données

3.4.1 Context Modeling Language (Université de Queensland) [McFadden et al., 2004] proposent une notation graphique pour la modélisation des informations de contexte :

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

40/112

3 Modélisation des informations de contextes

3.4 Approche orientée base de données

3.4.2 Ontologie de contexte

¥ ¥ ¥ ¥ ¥ ¥

Modèle d’organisation des connaissances dans un domaine donné Proche de la modélisation orientée objet Description constituée de classes, sous classes et de relations Riche pour exprimer les contraintes sur des propriétés des relations Donne le moyen de raisonner sur les informations de contexte (moteur d’inférence) Plusieurs ontologies de contextes ont été définis

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

41/112

3 Modélisation des informations de contextes

3.4 Approche orientée base de données

3.4.3 Delivery Context Ontology

[W3C, 2007] ¥ Ontologie définie par W3C pour représenter les terminaux mobiles ¨ Extension de UA-Prof ¥ Observables dynamiques (non immuables) : ¨ Niveau de batterie ¨ Connectivité réseau ¥ Observables interprétés : ¨ Dimensions de l’écran en différentes unités ¨ Différentes unités obtenues par inférence

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

42/112

3 Modélisation des informations de contextes

3.4 Approche orientée base de données

3.4.4 CAMidO méta-modèle

[Belhanafi et al., 2005] ¥ Méta-modèle décrit avec le langage OWL (Web Ontology Language) ¥ CAMidO modélise : ¨ Le contexte (context level) ¨ Le mode d’acquisition des informations de contexte (middleware level) ¨ Mais aussi, les actions de réaction au contexte (application level)

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

43/112

3 Modélisation des informations de contextes

3.4 Approche orientée base de données

Application Contains 1..n

CAService

Component

Niveau Application

RegistredFor

*

AwareOf

Adaptation

Necessitates 1..n

Use

*

ReactivAdaptation

RelevantSituation Needs

OperationToCall

RelevantAction ProactivClientdaptation

* 1..n

1..n

ProactivAdaptation

BooleanAction ProactivServerAdaptation

RelevantContext RelevantCondition

0..1 Action

LeafCondition ObjectProperty

* Condition

0..1

LogicalOperator

Subset ExtendedProperty

CompositeCondition

Deduction 0..1 HowDeduce 0..1

0..1 0..1 IndirectContext

Context

InterpretationOperation

Niveau Contexte DirectContext

TakesDataFrom 0..1 Niveau Capteur Sensor

Classe Héritage Relation entre deux classes

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

44/112

Sensibilité au contexte : modélisation et adaptation

3 Modélisation des informations de contextes

3.5 Approches IDM (Ingénierie Dirigée par les Modèles)

3.5.1 3.5.2 3.5.3 3.5.4 3.5.5 3.5.6

Principes de l’IDM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Outils de l’IDM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Travaux sur la sensibilité au contexte et l’IDM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 ContextUML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Élément du modèle de l’application sensible au contexte . . . . . . . . . . . . . . . . . . . . . . 50 Conclusion sur l’approche IDM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

45/112

3 Modélisation des informations de contextes

3.5 Approches IDM (Ingénierie Dirigée par les Modèles)

3.5.1 Principes de l’IDM

¥ Ajout d’un niveau d’abstraction (par rapport aux modèles) ¥ Méta-modèle définit ce niveau d’abstraction ¥ On utilise le méta-modèle pour : ¨ Définir un modèle conforme à un méta-modèle ¨ Écrire des programmes pour : I Parcourir les modèles I Faire des transformations de modèles I Réaliser des adaptations de modèle

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

46/112

3 Modélisation des informations de contextes

3.5 Approches IDM (Ingénierie Dirigée par les Modèles)

3.5.2 Outils de l’IDM

¥ Langages de méta-modélisation : Ecore EMF (Eclipse Modeling Framework), MOF (Meta-Object Facility ) ; ¥ Profils UML : taguer les classes et les associations (stéréotypes) ; ¥ Programmes qui parcourent les modèles ¨ p. ex. : API EMF pour parcourir les modèles conformes à un méta-modèle EMF ¨ p. ex. : API UML pour parcourir les modèles conformes à un profil UML ¥ Des outils de transformation de modèle ¥ Les outils de l’IDM arrivent à maturité ¥ Ce sont des candidats pour la modélisation de contexte et la modélisation de la sensibilité au contexte

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

47/112

3 Modélisation des informations de contextes

3.5 Approches IDM (Ingénierie Dirigée par les Modèles)

3.5.3 Travaux sur la sensibilité au contexte et l’IDM

¥ Définition de filtres à appliquer aux paramètres de services Web : ContextUML [Sheng and Benatallah, 2005] ¥ Approche pour l’intégration de la sensibilité au contexte dans la modélisation des applications [Ayed et al., 2007] ¥ Orchestrations sensibles au contexte CAComp [Seyler et al., 2007] ¥ Lignes de produit pour applications mobiles [White and Schmidt, 2008]

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

48/112

3 Modélisation des informations de contextes

3.5 Approches IDM (Ingénierie Dirigée par les Modèles)

3.5.4 ContextUML

Atomic

Service

Composite

*

1..* Operation output 0..1 0..1 Message

* Part

CAMechanism 1..*

*

Binding

Context *

Triggering

* *

1..*

* * 1..* 1..*

input

CAObject

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

ContextSource 1..*

Constraint Action

49/112

3 Modélisation des informations de contextes

3.5 Approches IDM (Ingénierie Dirigée par les Modèles)

3.5.5 Élément du modèle de l’application sensible au contexte

Définition Un élément qui réagit à des changements de contexte Exemple ¥ ¥ ¥ ¥ ¥ ¥ ¥

Système Application Composant Collaboration entre composants Opération Paramètre d’opération ...

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

50/112

3 Modélisation des informations de contextes

3.5 Approches IDM (Ingénierie Dirigée par les Modèles)

3.5.6 Conclusion sur l’approche IDM

¥ Avec l’approche IDM, on peut définir dans le modèle de l’application un point de vue de sensibilité au contexte ¨ Quels éléments du modèle de l’application peuvent subir des modifications dans certaines situations de contextes. ¨ Quelles situations doit-on évaluer ? ¨ Quelles entités observables ? I Quels observables ? ¨ Quelles adaptations ? ¥ Les adaptations peuvent être réalisées à la conception, au déploiement, à l’exécution. ¥ Quelques travaux en cours...

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

51/112

Sensibilité au contexte : modélisation et adaptation

3 Modélisation des informations de contextes

3.6 Illustration avec ca3m

3.6.1 3.6.2 3.6.3 3.6.4

Suzanne’s Scenario : context-aware offers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Suzanne’s Scenario : context-aware product description application . . . . . . . . . . . . 54 Context-Awareness meta-model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Suzanne’s scenario Context-Awareness model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

52/112

3 Modélisation des informations de contextes

3.6 Illustration avec ca3m

3.6.1 Suzanne’s Scenario : context-aware offers

¥ Suzanne ... ¨ Is a client of a e-commerce merchant. ¨ Goes by train to visit her friend. ¨ Uses her 3G connexion to access to the merchant site. ¨ Receives offers on : I Hiking shoes (Hobby = Hiking) I Pullovers (Temperature = 5 degrees Celsius)

50 % TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

53/112

3 Modélisation des informations de contextes

3.6 Illustration avec ca3m

3.6.2 Suzanne’s Scenario : context-aware product description application ¥ Suzanne wants to look to the offers in detail using the product description application... ¨ The battery level is low and the cell phone is not plugged ==> the product description application switches to a poor mode

¨ Once the cell phone plugged, the product description application switches to a normal mode

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

54/112

3 Modélisation des informations de contextes

3.6 Illustration avec ca3m

3.6.3 Context-Awareness meta-model

entry point

ContextAwareSystem

entities

observationalContracts

0..*

mainUser terminal serveur

0..*

Entity

observables

name: String

0..*

observable

Observable

ObservationalContract

1..1 0..*

linkedEntities

entityRelations

Contracts between the application and the observation system

derivedFrom

0..*

InterpretedObservable

0..*

adaptationContracts

EntityRelation name: String lowerCardinality: Integer upperCardinality: Integer

0..*

AdaptationSituations

adaptationSituations

AdaptationContract

1..1

Instance of (or reference) types defined in ContextView models

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

55/112

3 Modélisation des informations de contextes

3.6 Illustration avec ca3m

3.6.4 Suzanne’s scenario Context-Awareness model >

ECommerceApplication

> >

>

>

WeatherStation

User

Terminal

>

>

>

Hobby

BatteryLevel > >

TemperatureValue > >

TemperatureStates

BatteryStates Battery State Enumeration : NormalBattery BatteryLow

Temperature State Enumeration : WinterTemperature(10) > >

>

BatteryContract

HobbyContract

TemperatureContract

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

56/112

Sensibilité au contexte : modélisation et adaptation

4 Adaptation à l’exécution

4.1 4.2 4.3 4.4

Modes et mécanismes d’adaptation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58 Middleware réflexifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Génération de code d’adaptation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Questions ouvertes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

57/112

Sensibilité au contexte : modélisation et adaptation

4 Adaptation à l’exécution

4.1 Modes et mécanismes d’adaptation

4.1.1 4.1.2 4.1.3 4.1.4 4.1.5 4.1.6 4.1.7 4.1.8

Gestion application / gestion middleware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Boucle des systèmes autonomes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Réflexivité. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61 Programmation par aspects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Points d’interception d’une requête . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Conteneur de composants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Moteur d’inférence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Adaptation réactive / modification de comportement . . . . . . . . . . . . . . . . . . . . . . . . . 66

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

58/112

4 Adaptation à l’exécution

4.1 Modes et mécanismes d’adaptation

4.1.1 Gestion application / gestion middleware ¥ Quelle entité se charge de : l’application ou le middleware ? ¨ Récolter les informations de contexte ¨ Déclarer les contextes pertinents/les situations pertinentes ¨ Analyser les informations de contexte et détecter les situations pertinentes ¨ Déclencher les opérations d’adaptation ¥ Dans les premières applications sensibles au contexte : ¨ L’application codait l’ensemble de ces opérations, I Pas d’indépendance vis-à-vis des capteurs (changement de capteurs entraîne le changement du code de l’application) I Codage de code non directement lié au métier de l’application ¥ Des intergiciels sensibles au contexte permettent de décharger le développeur de l’application. ¨ Les actions d’adaptation sont uniquement décrites (propriétés extra fonctionnelles) ¨ L’intergiciel prend en charge les opérations de sensibilité au contexte

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

59/112

4 Adaptation à l’exécution

4.1 Modes et mécanismes d’adaptation

4.1.2 Boucle des systèmes autonomes Politique d’adaptation

n

P

n n a l

tio a ific

An a

lys

e

Base de connaissances Exécution

Observation Lien causal

Environnement d’exécution Plateforme TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

60/112

4 Adaptation à l’exécution

4.1 Modes et mécanismes d’adaptation

4.1.3 Réflexivité ¥ La réflexivité représente la capacité d’un système à s’observer et agir sur lui-même [BOBROW et al., 1993]. ¨ L’introspection est la capacité d’un système à observer et raisonner sur son propre état ¨ L’intercession est la capacité d’un programme à modifier son propre état d’exécution ¥ Un système réflexif est composé de deux niveaux : ¨ Le niveau de base qui comporte les données et le code fonctionnel du système (le « quoi » du système) ¨ Le méta-niveau qui comporte les données et le code non fonctionnel du système (le « comment » du système) I Le méta-niveau permet au système de s’observer et d’agir sur lui-même pour s’adapter

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

61/112

4 Adaptation à l’exécution

4.1 Modes et mécanismes d’adaptation

4.1.4 Programmation par aspects Le paradigme de programmation orientée aspect permet de développer des applications en séparant leur code métier (fonctionnel) de leur code technique (non fonctionnel) selon le principe de séparation des préoccupations [Kiczales, 1996]. Cette séparation permet de structurer l’application en modules indépendants représentant différents aspects : ¥ Un noyau qui représente le cœur fonctionnel de l’application (le « quoi » de l’application) ; ¥ Plusieurs aspects qui représentent des propriétés transversales au noyau (le « comment » de l’application). La construction d’une application en utilisant ces différents modules nécessite la définition de points de jonction.

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

62/112

4 Adaptation à l’exécution

4.1 Modes et mécanismes d’adaptation

4.1.5 Points d’interception d’une requête

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

63/112

4 Adaptation à l’exécution

4.1 Modes et mécanismes d’adaptation

4.1.6 Conteneur de composants

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

64/112

4 Adaptation à l’exécution

4.1 Modes et mécanismes d’adaptation

4.1.7 Moteur d’inférence ¥ Programme réalisant les déductions logiques d’un système expert à partir d’une base de connaissances (ontologie) et d’une base de règles ¥ Un moteur d’inférence peut raisonner sur les informations de contexte stockées dans l’ontologie pour : ¨ Calculer les contextes dérivés ¨ Déclencher des actions d’adaptation

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

65/112

4 Adaptation à l’exécution

4.1 Modes et mécanismes d’adaptation

4.1.8 Adaptation réactive / modification de comportement ¥ Adaptation réactive : L’arrivée dans une situation de contexte déclenche une opération d’adaptation immédiatement activée ¨ Démarrer une synchronisation lorsque le réseau est rétabli (réaction) ¨ Être prévenu lorsqu’une personne est à proximité (réaction) ¨ Dans un magasin, affichage des réductions du rayon (réaction) ¥ Modification de comportement : L’arrivée dans une situation de contexte modifie le comportement d’une opération de l’application Le comportement de cette opération sera modifié à son prochain appel ¨ Choix d’un algorithme de réconciliation en fonction des temps de latence (comportement) ¨ Message SMS visuel ou vocal (comportement)

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

66/112

Sensibilité au contexte : modélisation et adaptation

4 Adaptation à l’exécution

4.2 Middleware réflexifs

4.2.1 CARISMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 4.2.2 ReMMoC Reflective Middleware for Mobile Computing . . . . . . . . . . . . . . . . . . . . . . 70

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

67/112

4 Adaptation à l’exécution

4.2 Middleware réflexifs

4.2.1 CARISMA

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

68/112

4 Adaptation à l’exécution

4.2 Middleware réflexifs

CARISMA : Context Aware Reflexive mIddleware System for Mobile Applications [Capra et al., 2003] ¥ Middleware personnalisable en fonction des besoins des applications ¥ Chaque application définit son profil : ¨ Profil de notification : quelles situations de contextes doivent être notifiées à l’application ¨ Profil de comportement : quelle politique de service pour quelle situation de contexte ¥ Les profils peuvent être modifiés pendant l’exécution de l’application grâce à une réïfication des profils ¥ L’API réflexive permet de modifier les associations (service, politique, situation de contexte) en cours d’exécution

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

69/112

4 Adaptation à l’exécution

4.2 Middleware réflexifs

4.2.2 ReMMoC Reflective Middleware for Mobile Computing

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

70/112

4 Adaptation à l’exécution

4.2 Middleware réflexifs

[Grace et al., 2003] ¥ Le cadre liaison/Binding assure l’intéropérabilité entre des services implémentés sur plusieurs types d’intergiciels. Ce cadre est basé sur un mécanisme de greffe de différents types d’implémentations de liaisons ; Le mécanisme de liaison est choisi dynamiquement. ¥ Le cadre service de recherche/Service Discovery permet de choisir un protocole de découverte de services. Ce cadre est également basé sur un mécanisme de greffe de différents protocoles de découverte de services ;

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

71/112

Sensibilité au contexte : modélisation et adaptation

4 Adaptation à l’exécution

4.3 Génération de code d’adaptation

4.3.1 4.3.2 4.3.3 4.3.4 4.3.5

RCSM Reconfigurable Context-Sensitive Middleware . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Architecture de CAMidO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75 Architecture du conteneur du composant CA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .76 CAMidO redirection de requêtes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Compilateur CAMidO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

72/112

4 Adaptation à l’exécution

4.3 Génération de code d’adaptation

4.3.1 RCSM Reconfigurable Context-Sensitive Middleware [Yau et al., 2002]

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

73/112

4 Adaptation à l’exécution

4.3 Génération de code d’adaptation

Exemple de description en CA-IDL (Context Aware Definition Language) //context source RCSMContext dc { char [] string location; boolean light; }; //beginning of context-sensitive interface interface instructor_object { //context variables RCSMContext_var dc C1 where location= screen ; RCSMContext_var dc C2 where light=true; RCSMContext_var dc C3 where light=false; //context-sensitive method [outgoing] [activate when C1^(C2->C3)] void distribute (string lectures); }; TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

74/112

4 Adaptation à l’exécution

4.3 Génération de code d’adaptation

4.3.2 Architecture de CAMidO

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

75/112

4 Adaptation à l’exécution

4.3 Génération de code d’adaptation

4.3.3 Architecture du conteneur du composant CA

¥ AD Adaptation Detector

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

76/112

4 Adaptation à l’exécution

4.3 Génération de code d’adaptation

4.3.4 CAMidO redirection de requêtes

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

77/112

4 Adaptation à l’exécution

4.3 Génération de code d’adaptation

4.3.5 Compilateur CAMidO

IDL/CIDL

CAMidO OWL Description

User’s code

RuleFile IDL/CIDL Compiler

CAMidO Ontology Compiler

Programing Language Tool

Implementation Stub and Skeleton Packaging Component Descriptor

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

78/112

Sensibilité au contexte : modélisation et adaptation

4 Adaptation à l’exécution

4.4 Questions ouvertes

¥ Effet ping-pong ¥ Conflits entre choix d’adaptations de plusieurs applications ¥ Décision d’adaptation côté client, côté serveur, les deux

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

79/112

Sensibilité au contexte : modélisation et adaptation

5 Adaptations au déploiement

5.1 5.2 5.3 5.4

Déploiement d’applications et déploiement sensibles au contexte . . . . . . . . . . . . . . . . 81 Déploiement d’applications multi-composants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 CADeComp Context Aware Deployment of Component Based Applications . . . . . . 99 Questions ouvertes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

80/112

Sensibilité au contexte : modélisation et adaptation

5 Adaptations au déploiement

5.1 Déploiement d’applications et déploiement sensibles au contexte

5.1.1 5.1.2 5.1.3 5.1.4

Cycle de vie du déploiement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Automatisation des déploiements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Descripteurs de déploiement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Motivation pour un déploiement à la volée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

81/112

5 Adaptations au déploiement

5.1 Déploiement d’applications et déploiement sensibles au contexte

5.1.1 Cycle de vie du déploiement

Le processus de déploiement se situe après le processus de développement d’un logiciel. L’objectif est de rendre disponible le logiciel à l’exécution pour un ou plusieurs utilisateurs, sur une ou plusieurs de machines. Les opérations de déploiement sont les suivantes : ¥ Installation ; ¥ Configuration ; ¥ Désinstallation ; ¥ Mises à jour ; ¥ Reconfiguration ;

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

82/112

5 Adaptations au déploiement

5.1 Déploiement d’applications et déploiement sensibles au contexte

5.1.2 Automatisation des déploiements

¥ Les tâches de déploiement sont répétitives et complexes ; ¥ Nécessité de les automatiser ; ¥ De nombreux outils de déploiements existent : ¨ Pour les applications monolithiques ; ¨ Pour les applications à base de composants (CCM ; EJB) ¥ L’automatisation du déploiement passe par des descripteurs de déploiement.

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

83/112

5 Adaptations au déploiement

5.1 Déploiement d’applications et déploiement sensibles au contexte

5.1.3 Descripteurs de déploiement

¥ ¥ ¥ ¥

Informations générales sur le logiciel ; Informations de dépendances logicielles ; Informations sur les ressouces consommées ; Contraintes matérielles et logicielles ;

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

84/112

5 Adaptations au déploiement

5.1 Déploiement d’applications et déploiement sensibles au contexte

5.1.4 Motivation pour un déploiement à la volée

Un utilisateur utilise des terminaux variés pour accéder à ses applications. Certains de ces terminaux sont mobiles. Caractéristiques des terminaux mobiles : ¥ Capables d’héberger une large gamme d’applications mais disposent de ressources variées et parfois limitées ; ¥ Contextes variés : localisation, connexion réseau, environnement physique, etc.

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

85/112

Sensibilité au contexte : modélisation et adaptation

5 Adaptations au déploiement

5.2 Déploiement d’applications multi-composants

5.2.1 Type de composant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87 5.2.2 Assemblage de composants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 5.2.3 Implémentations de composants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 5.2.4 Instanciation de composant et composant préinstancié . . . . . . . . . . . . . . . . . . . . . . . . 90 5.2.5 Descripteur d’assemblage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 5.2.6 Plan de déploiement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 5.2.7 Déploiement CCM : Packaging et déploiement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 5.2.8 Déploiement CCM : déploiement distribué . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 5.2.9 Déploiement CCM : API de déploiement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 5.2.10 Déploiement D&C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 5.2.11 Domaine de déploiement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .97 5.2.12 Interface de déploiement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

86/112

5 Adaptations au déploiement

5.2 Déploiement d’applications multi-composants

5.2.1 Type de composant

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

87/112

5 Adaptations au déploiement

5.2 Déploiement d’applications multi-composants

5.2.2 Assemblage de composants

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

88/112

5 Adaptations au déploiement

5.2 Déploiement d’applications multi-composants

5.2.3 Implémentations de composants

¥ Plusieurs implémentations d’un même type de composant peuvent être développées ; ¥ chaque implémentation a des propriétés non fonctionnelles différentes : ¨ contraintes logicielles et matérielles ; ¨ qualité de service ;

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

89/112

5 Adaptations au déploiement

5.2 Déploiement d’applications multi-composants

5.2.4 Instanciation de composant et composant préinstancié

Lors du déploiement d’une application à base de composants : ¥ Un composant peut être instancié (il sera téléchargé, instancié, configuré) ; ¥ Un composant peut être pré-instancié (il faudra le découvrir) ;

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

90/112

5 Adaptations au déploiement

5.2 Déploiement d’applications multi-composants

5.2.5 Descripteur d’assemblage ¥ Un descripteur d’assemblage contient la description des instances de composant (leur type) ainsi que leurs connections ; ¥ Plusieurs langages d’assemblages plus ou moins abstraits existent (Fractal [Bruneton et al., 2004], Darwin, Rapide [Medvidovic and Taylor, 2000]

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

91/112

5 Adaptations au déploiement

5.2 Déploiement d’applications multi-composants

5.2.6 Plan de déploiement

¥ Un plan de déploiement est directement utilisable par un outil de déploiement ; ¥ Il décrit les opérations élémentaires à réaliser : ¨ l’instanciation des composants ; ¨ l’emplacement des composants ; ¨ la configuration des composants ;

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

92/112

5 Adaptations au déploiement

5.2 Déploiement d’applications multi-composants

5.2.7 Déploiement CCM : Packaging et déploiement [OMG, 2002]

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

93/112

5 Adaptations au déploiement

5.2 Déploiement d’applications multi-composants

5.2.8 Déploiement CCM : déploiement distribué

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

94/112

5 Adaptations au déploiement

5.2 Déploiement d’applications multi-composants

5.2.9 Déploiement CCM : API de déploiement

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

95/112

5 Adaptations au déploiement

5.2 Déploiement d’applications multi-composants

5.2.10 Déploiement D&C

[OMG, 2003] Modèle de déploiement indépendant de la plateforme ¥ Le modèle de données des composants (décrit la configuration d’un paquetage de composants : le type de composant, ses différentes implémentations) ; ¥ Le modèle de données du domaine de déploiement ; ¥ Le modèle de données d’exécution ;

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

96/112

5 Adaptations au déploiement

5.2 Déploiement d’applications multi-composants

5.2.11 Domaine de déploiement ¥ Machines sur lesquels l’application peut être déployée

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

97/112

5 Adaptations au déploiement

5.2 Déploiement d’applications multi-composants

5.2.12 Interface de déploiement

¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥

Assignation d’un site cible pour chaque composant d’une application ; Installation des paquetages sur les sites ; Instanciation des composants ; Connection des instances de composants ; Fourniture d’informations sur l’environnement cible Activation et désactivation de l’assemblage des composants, Fourniture d’informations sur l’assemblage en cours d’exécution Désinstallation des paquetages de composants installés.

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

98/112

Sensibilité au contexte : modélisation et adaptation

5 Adaptations au déploiement

5.3 CADeComp Context Aware Deployment of Component Based Applications

5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.3.6

Facteurs variables lors du déploiement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Exemple Application Gestion de crise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Déploiement de l’application de gestion de crise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Exemple Application Vente en ligne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Architecture CADeComp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 Architecture CADeComp distribuée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

99/112

5 Adaptations au déploiement

5.3 CADeComp Context Aware Deployment of Component Based Applications

5.3.1 Facteurs variables lors du déploiement

¥ Architecture de l’application : nombre de composants et connexions entre eux variables ; ¥ Choix des machines d’installation des composants ; ¥ Choix des implémentations des composants ; ¥ Propriétés de configuration des composants ; ¥ Découverte de composants préinstanciés ;

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

100/112

5 Adaptations au déploiement

5.3 CADeComp Context Aware Deployment of Component Based Applications

5.3.2 Exemple Application Gestion de crise ¥ Composant (rescuerGUI), interface graphique pour saisir l’état des victimes. ¥ Composant "serveur de partenaires" reçoit les informations sur les victimes, les traite et les diffuse vers les sauveteurs. ¥ Un ou plusieurs composants "partenaires" permettant aux sauveteurs de recevoir l’état des victimes. ¥ Composant "journalisation"

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

101/112

5 Adaptations au déploiement

5.3 CADeComp Context Aware Deployment of Component Based Applications

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

102/112

5 Adaptations au déploiement

5.3 CADeComp Context Aware Deployment of Component Based Applications

5.3.3 Déploiement de l’application de gestion de crise

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

103/112

5 Adaptations au déploiement

5.3 CADeComp Context Aware Deployment of Component Based Applications

5.3.4 Exemple Application Vente en ligne

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

104/112

5 Adaptations au déploiement

5.3 CADeComp Context Aware Deployment of Component Based Applications

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

105/112

5 Adaptations au déploiement

5.3 CADeComp Context Aware Deployment of Component Based Applications

5.3.5 Architecture CADeComp [Ayed et al., 2005]

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

106/112

5 Adaptations au déploiement

5.3 CADeComp Context Aware Deployment of Component Based Applications

5.3.6 Architecture CADeComp distribuée [Ayed et al., 2005]

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

107/112

Sensibilité au contexte : modélisation et adaptation

5 Adaptations au déploiement

5.4 Questions ouvertes

¥ Reconfigurations d’un déploiement : ¨ Nécessite des API de déploiement adaptées ; ¨ Effet ping-pong ; ¨ Savoir changer un composant par un autre pendant son exécution ;

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

108/112

Sensibilité au contexte : modélisation et adaptation

Conclusions

¥ Applications sensibles au contexte : une nouvelle forme d’applications en informatique ubiquitaire ¥ Nécessité de modèles de contexte des applications. ¥ Adaptations lignes de produit, adaptations déploiement, adaptations éxécutions. ¥ Secteur en développement.

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

109/112

Sensibilité au contexte : modélisation et adaptation

Références [OMG, 2003] (Mars 2003). Specification for Deployment and Configuration of Component Based Distributed Applications. OMG. [Abowd et al., 1997] Abowd, G. D., Atkeson, C. G., Hong, J., Long, S., Kooper, R., and Pinkerton, M. (1997). Cyberguide : A mobile context-aware tour guide. Wireless Networks, 3(5) :421–433. [Asthana et al., 1994] Asthana, A., Cravatts, M., and Krzyzanowski, P. (December 1994). An indoor wireless system for personalized shopping assistance. In Proceedings of IEEE Workshop on Mobile Computing Systems and Applications, pages 69–74, Santa Cruz, California. [Ayed et al., 2005] Ayed, D., Belhanafi, N., Taconet, C., and Bernard, G. (February 2005). Deployment of component-based applications on top of a context-aware middleware. In The IASTED International Conference on Software Engineering (SE 2005), Innsbruck, Austria. [Ayed et al., 2007] Ayed, D., Delanote, D., and Berbers, Y. (2007). Computer Science, volume 4635/2007 of Lecture Notes in Computer Science, chapter MDD Approach for the Development of Context-Aware Applications, pages 15–28. Springer, Berlin / Heidelberg. [Belhanafi et al., 2005] Belhanafi, N., Taconet, C., and Bernard, G. (16-17 June,2005). Camido, a context-aware middleware based on ontology meta-model. In CAPS 2005, Workshop on Context Awareness for Proactiv Systems, Helsinki,Finland. [BOBROW et al., 1993] BOBROW, D., GABRIEL, R., and WHITE, J. (1993). Clos in context - the shape of the design space. In Object-Oriented Programming : the CLOS Perspective, MIT Press. [Brown et al., 1997] Brown, P., Bovey, J., and Chen, X. (1997). Context-aware Applications : from the Laboratory to the Marketplace. IEEE Personal Communications, 4(5) :58–64. [Bruneton et al., 2004] Bruneton, E., Coupaye, T., and Stefani, J. (2004). The fractal component model. In ObjectWeb Specification. TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

110/112

Sensibilité au contexte : modélisation et adaptation

[Brézillon, 2002] Brézillon, P. (2002). Hors du contexte point de salut. In Objets communicants, Autrans, France. [Capra et al., 2003] Capra, L., Emmerich, W., and Mascolo, C. (2003). CARISMA : Context-Aware Reflective mIddleware System for Mobile Applications. IEEE Transactions on Software Engineering, 29(10) :929–945. [Dey et al., 2001] Dey, A., Abowd, G., and Salber, D. (2001). A conceptual framework and toolkit for supporting the rapid prototyping of context-aware applications. Human-computer Interaction, 16(2-4 (special issue on context-aware computing)) :97–166. [Dey et al., 1999] Dey, A. K., Futakawa, M., Salber, D., and Abowd, G. D. (October 1999). The conference assistant : Combining context-awareness with wearable computing. In Proceedings of the 3rd International Symposium on Wearable Computers (ISWC ’99), pages 21–28, San Francisco, CA. [Grace et al., 2003] Grace, P., Blair, G. S., and Samuel, S. (November 2003). Remmoc : A reflective middleware to support mobile client interoperability. In International Symposium on Distributed Objects and Applications(DOA), Catania, Sicily, Italy. [Kiczales, 1996] Kiczales, G. (1996). Aspect-oriented programming. surveys, 28A(4). [McFadden et al., 2004] McFadden, T., Henricksen, K., and Indulska, J. (September, 2004). Automating context-aware application development. In First International whorkshop on Advanced Context Modeling, Reasoning and Managenemt, UbiComp, Nottingham, England. [Medvidovic and Taylor, 2000] Medvidovic, N. and Taylor, R. N. (2000). A Classification and Comparison Framework for Software Architecture Description Languages. IEEE Transactiond Software Engineering, 26(1) :70–93. [OMG, 2002] OMG (June 2002). Corba components version 3.0 an adopted specification of the object management group. OMG Document formal/02-06-65. [Passani, 2007] Passani, L. (2007). Wurfl (Wireless Universal Resource File). http ://wurfl.sourceforge.net/. [Schilit and Want, 1994] Schilit, B.and Adams, N. and Want, R. (1994). Context-aware computing applications. In Proceedings of the 1st IEEE International Workshop on Mobile Computing Systems and Applications, Los Alamitos, CA. TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

111/112

Sensibilité au contexte : modélisation et adaptation

[Schmidt et al., 1999] Schmidt, A., Aidoo, K. A., Takaluoma, A., Tuomela, U., Van Laerhoven, K., and Van de Velde, W. (September 1999). Advanced interaction in context. In Proceedings of the First International Symposium on Handheld and Ubiquitous Computing,HUC’99, pages 89–101, Karlsruhe, Germany. [Seyler et al., 2007] Seyler, F., Taconet, C., and Bernard, G. (2007). Context Aware Orchestration Meta-Model. In ICAS’07 The Third International Conference on Autonomic and Autonomous Systems, Athens, Greece. [Sheng and Benatallah, 2005] Sheng, Q. and Benatallah, B. (2005). ContextUML : A UML-Based Modeling Language for Model-Driven Development of Context-Aware Web Services. In The 4th International Conference on Mobile Business (ICMB’05), IEEE Computer Society. Sydney, Australia., pages 206–212. [W3C, 2007] W3C (2007). Delivery Context Ontology working draft. W3C Recommendation http ://www.w3.org/TR/dcontology/. [Want et al., 1992] Want, R., Hopper, A., Falcão, V., and Gibbons, J. (January 1992). The active badge location system. ACM Transactions on Information Systems, 10(1) :91–102. [White and Schmidt, 2008] White, J. and Schmidt, D. (2008). Model-Driven Product-Line Architectures for Mobile Devices. In 17th Annual Conference of the International Federation of Automatic Control, Seoul, Korea. [Yau et al., 2002] Yau, S. S., Karim, F., Wang, Y., Wang, B., and Gupta, S. K. S. (2002). Reconfigurable Context-Sensitive Middleware for Pervasive Computing. IEEE Pervasive Computing, 1(3) :33–40.

TELECOM SudParis — [email protected] — Janvier 2009 — CSC5004

112/112