Title: Adaptabilit dynamique de la smantique de communication dans Jonathan
1Adaptabilité dynamique de la sémantique de
communication dans Jonathan
- François Sarradin
-
- Thomas Ledoux
2Construction dapplications réparties (1/2)
- Contexte
- Convergence informatique et télécommunications
- Accès universel à linformation (Internet)
- Enjeux
- Système dinformations des entreprises et des
organisations (Intranet) - Informatique distribuée grand public
3Construction dapplications réparties (2/2)
- Besoins
- Maîtrise de la complexité et des systèmes ouverts
? interopérabilité - Délai time-to-market de plus en plus court et
évolution rapide des technologies ? réactivité - Maîtrise de la QoS sur des flots multimédia dans
des environnements hétéroclites ? adaptabilité
4Constats
- Bus logiciels
- plates-formes dintégration et
dinteropérabilité - architectures complexes
- architectures trop peu ouvertes
- Jonathan
- plate-forme dexécution répartie ouverte
- architecture générique pour instancier des bus
logiciels - flexibilité compromise à lexécution
5Solution
- Proposer une extension de Jonathan permettant
ladaptabilité dynamique du bus pour bénéficier
de nouvelles stratégies de communication à
lexécution. - Exemples dadaptabilité
- sécuriser les communications quand la
confidentialité est nécessaire - répartir les charges si un serveur ne peut
répondre rapidement aux requêtes
6A la découverte de Jonathan
- Plate-forme dexécution répartie en Java
- développé par France Telecom RD
- basé sur le modèle RM-ODP
- infrastructure de base pour le projet RNRT Parol
- Objet de liaison
- réifie la liaison entre deux objets distants
- facilite la création de nouveaux types de
liaisons - Personnalité
- unique à chaque type de bus logiciel (CORBA, RMI)
- une API et un ensemble de protocoles
7Objets de liaison dans Jonathan
- Demeurent une abstraction (i.e. pas des entités
de plein droit) - ? où se trouve la sémantique de communication ?
- ? comment la modifier à lexécution ?
8Réflexion
- Caractérise la capacité dun système à raisonner
et à agir sur lui-même - auto-réprésentation (introspection)
- modification, adaptation de sa propre
interprétation (intercession) - Méta-objet au sens Kiczales et al.
- un objet du méta-niveau
- MOP ou protocole à méta-objets
- une interface pour adapter le système
9Vers une modification de la sémantique de
communication
- sortir la sémantique dinvocation de base de
lobjet de liaison pour la réifier - la modifier grâce à des aspects non-fonctionnels
(synchronisation, réplication, authentification)
qui proposent une interprétation de cette
sémantique - représenter chaque fragment dinterprète de la
sémantique dinvocation par un méta-objet - proposer un MOP pour manipuler les méta-objets et
adapter les stratégies de communication à
lexécution.
10Notre solution
- Intercepter les invocations au niveau des stubs
Jonathan - le stub joue le rôle de wrapper et délègue la
sémantique dinvocation aux méta-objets - Utiliser un conteneur de méta-objets pour
- offrir ladaptabilité de la sémantique de
communication - ajout/maj/retrait des aspects non-fonctionnels
- permettre ladaptabilité de la sémantique de
composition - linéaire, dynamique, avec priorités, avec
contraintes
11Intégration des aspects non-fonctionnels via le
conteneur
BaseMO
BaseMO
Conteneur A
Conteneur B
Objet de liaison
objet serveur
client
VM cliente
VM serveur
12Classes clés du MOP
- Interface MetaObjectContainer
- Spécification du contrat des conteneurs
- addMetaObject()/removeMetaObject()
ajoute/retire un méta-objet au conteneur - invoke() appelé par le stub, réalise le passage
au méta-niveau - invokeNext() décrit la sémantique de
composition - Classe BaseMOContainer fournit une sémantique
par défaut de la composition - Interface MetaObject
- Spécification du contrat des méta-objets
- invoke() décrit la sémantique de laspect
non-fonctionnel - Classe BaseMO fournit la sémantique de
linvocation à distance
13Adaptabilité de la sémantique de communication
(1er exemple)
- Lincrevable trace TraceMO
- Définition
- Utilisation
public class TraceMO extends AbstractMO
implements MetaObject // public Object
invoke(Object obj, Method method, Object
params) throws Exception Object
result String call_string
this.callToString(obj, method, params)
System.out.println(call call_string)
result container.invokeNext(obj, method,
params) if (result ! null)
System.out.println(return return)
return result
//.. TraceMO trace new TraceMO() MetaObjectCont
ainer container (MetaObjectHolder)
compte).getMetaObjectContainer() container.addMet
aObject(trace)
14Adaptabilité de la sémantique de communication
(2ème exemple)
- Un méta-objet configurable ResourceProtectionMO
- But accès synchronisé à une ressource partagée
(le compte) avec le schéma du producteur/consommat
eur concurrents. - Configuration
- new ResourceProtectionMO(ajoutCredit,
ajoutDebit, getSolde) - Redéfinition de la méthode invoke() pour
bloquer/débloquer le thread associé à la ressource
15Adaptabilité de la sémantique de communication
(3ème exemple)
- Via un conteneur RemoteMOContainer
- But créer un conteneur distribué grâce à la
personnalité Jeremie - Résultat administration à distance du contenu
du conteneur
16Adaptabilité de la sémantique de composition (1er
exemple)
- Un exemple naïf NoTraceMOContainer
- But inhiber momentanément tous les méta-objets
permettant de tracer ou journaliser les
invocations - Comment réaliser un changement dynamique de
container (les références aux méta-objets sont
copiés) - Redéfinition de la méthode invokeNext() pour ne
pas exécuter certains méta-objets
17Adaptabilité de la sémantique de composition
(2ème exemple)
- Une auto-adaptabilité via le code fonctionnel
DynamicTraceMOContainer - But le conteneur teste un prédicat à chaque
invocation (e.g. solde sous la barre de 500F). Si
faux, il sadapte lui-même et ajoute un
méta-objet trace - Défaut majeur le méta-niveau teste les données
du niveau de base
18Adaptabilité de la sémantique de composition
(3ème exemple)
- Une auto-adaptabilité via le contexte dexécution
à venir - Exemples
- si milieu non sécurisé, le conteneur sadapte
lui-même et ajoute un méta-objet
dauthentification - cet après-midi...
19Travaux connexes
- Les filtres de composition Aksit et al. 92
- Les open bindings Blair et al. 98
- JavaPod Bruneton et al. 00
- etc.
20Conclusion
- Extension des objets de liaison avec des aspects
non-fonctionnels pour modifier la sémantique de
communication de Jonathan à lexécution - Adaptabilité
- de communication
- de composition
- Perspectives nouveaux conteneurs de
composition, auto-adaptabilité via le contexte
dexécution
via un conteneur