![Page 1: ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003) ARM : un modèle réflexif asynchrone pour les objets répartis et réactifs](https://reader033.vdocuments.pub/reader033/viewer/2022051614/551d9d91497959293b8c7001/html5/thumbnails/1.jpg)
ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003)
ARM : un modèle réflexif asynchronepour les objets répartis et réactifs
Jacques Malenfant et Simon DenierUniversité de Bretagne sud
3 février 2003
![Page 2: ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003) ARM : un modèle réflexif asynchrone pour les objets répartis et réactifs](https://reader033.vdocuments.pub/reader033/viewer/2022051614/551d9d91497959293b8c7001/html5/thumbnails/2.jpg)
ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003)
Introduction : contexte
➢ Révolutions en marche :- informatique centralisée,+ informatique répartie,+ mobilité (réseaux hertziens),+ systèmes embarqués.
➢ Défis à relever :1. qualité de service,2. propriétés « non-fonctionnelles »,3. adaptabilité dynamique.
![Page 3: ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003) ARM : un modèle réflexif asynchrone pour les objets répartis et réactifs](https://reader033.vdocuments.pub/reader033/viewer/2022051614/551d9d91497959293b8c7001/html5/thumbnails/3.jpg)
ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003)
Projet MAAM
➢ Robotique modulaire➢ Atome : six pattes➢ Pattes :
1. bougent dans cône,
2. se connectent➢ Molécule = agrégat
d’atomes
![Page 4: ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003) ARM : un modèle réflexif asynchrone pour les objets répartis et réactifs](https://reader033.vdocuments.pub/reader033/viewer/2022051614/551d9d91497959293b8c7001/html5/thumbnails/4.jpg)
ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003)
Nécessaire reconfigurabilité
➢ Besoin :
Reconfigurabilité morphologique
implique
Reconfigurabilité logicielle
➢ Réponse : réflexion
![Page 5: ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003) ARM : un modèle réflexif asynchrone pour les objets répartis et réactifs](https://reader033.vdocuments.pub/reader033/viewer/2022051614/551d9d91497959293b8c7001/html5/thumbnails/5.jpg)
ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003)
Principes fondateurs de la réflexion
➢ Séparation entre :1. fonctionnalités de l'application (base)2. auto-adaptation de l'application (méta)
➢ « Génie logiciel » induit par cette séparation➢ Niveaux : pas de recouvrement introspectif➢ Le niveau de base peut initier des calculs au
méta-niveau :métaprogrammation programmation réflexive
![Page 6: ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003) ARM : un modèle réflexif asynchrone pour les objets répartis et réactifs](https://reader033.vdocuments.pub/reader033/viewer/2022051614/551d9d91497959293b8c7001/html5/thumbnails/6.jpg)
ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003)
Mais…
➢ Principale forme de réflexion à ce jour :réflexion procédurale.
➢ Thèse : insuffisance de celle-ci !
➢ Proposition :• nouvelle forme de réflexion asynchrone• un modèle : Asynchronous Reflective Model, ARM
• une implantation en J2EE/JMS
![Page 7: ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003) ARM : un modèle réflexif asynchrone pour les objets répartis et réactifs](https://reader033.vdocuments.pub/reader033/viewer/2022051614/551d9d91497959293b8c7001/html5/thumbnails/7.jpg)
ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003)
Plan du reste de la présentation
➢ Motivations➢ Fondements de la réflexion asynchrone➢ Le modèle ARM➢ Implantation en Java, sous J2EE et JMS➢ Travaux connexes➢ Conclusions et perspectives
![Page 8: ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003) ARM : un modèle réflexif asynchrone pour les objets répartis et réactifs](https://reader033.vdocuments.pub/reader033/viewer/2022051614/551d9d91497959293b8c7001/html5/thumbnails/8.jpg)
ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003)
Réflexion selon B. Smith
Méta-niveauRéification du
programme
Réificationde l’état
d’exécution
Niveau de baseprogrammeÉtat
d’exécution
Relation« méta »
réification(connexion
causale)
réification(connexion
causale)
![Page 9: ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003) ARM : un modèle réflexif asynchrone pour les objets répartis et réactifs](https://reader033.vdocuments.pub/reader033/viewer/2022051614/551d9d91497959293b8c7001/html5/thumbnails/9.jpg)
ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003)
Vers la réflexion procédurale
➢ Notions fondamentales : méta-modèle, réification, introspection, intercession.
➢ Quelle est la nature de la relation méta ?➢ 3-Lisp a introduit une relation d'implantation➢ Méta-niveau = interprète métacirculaire➢ Suivi par la vaste majorité des travaux
![Page 10: ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003) ARM : un modèle réflexif asynchrone pour les objets répartis et réactifs](https://reader033.vdocuments.pub/reader033/viewer/2022051614/551d9d91497959293b8c7001/html5/thumbnails/10.jpg)
ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003)
Illustration de la réflexion procédurale
Interprètemétacirculaire
source duprogramme
étatd’exécution de
l’interprète
Niveau de baseprogrammeétat
d’exécution
Relation« implante »
réification réification
![Page 11: ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003) ARM : un modèle réflexif asynchrone pour les objets répartis et réactifs](https://reader033.vdocuments.pub/reader033/viewer/2022051614/551d9d91497959293b8c7001/html5/thumbnails/11.jpg)
ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003)
Limites de la réflexion procédurale
➢ Principal avantage : connexion causale immédiate
➢ Inconvénients :✔ Couplage fort et strict entre niveaux✔ Méta-niveau exécute, donc est le niveau
de base✔ Représentation complète, fidèle et à jour✔ Intercession supposée synchrone avec le
niveau de base
![Page 12: ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003) ARM : un modèle réflexif asynchrone pour les objets répartis et réactifs](https://reader033.vdocuments.pub/reader033/viewer/2022051614/551d9d91497959293b8c7001/html5/thumbnails/12.jpg)
ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003)
Limites … (bis)
➢ Plus généralement :✔ Ne peut prendre en compte la répartition
faute d'état global procéduralement réifiable
✔ Ne peut prendre en compte les systèmes réactifs car nombreux aspects hors du système (environnement)
✔ Réflexion limitée aux aspects de l'exécution des programmes (d'où un manque d'exemples probants)
![Page 13: ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003) ARM : un modèle réflexif asynchrone pour les objets répartis et réactifs](https://reader033.vdocuments.pub/reader033/viewer/2022051614/551d9d91497959293b8c7001/html5/thumbnails/13.jpg)
ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003)
Principes de la réflexion asynchrone
➢ Abandon du rôle unique de processeur de langage pour le méta-niveau
➢ Rétablissement de la généralité de la relation « méta »
➢ Ouverture à la multiplicité et au polymorphisme de cette relation « méta »
➢ Réification = modélisation (au sens large)➢ Méta-niveau = processeur de modèles
(+ manipulateur du niveau de base)
![Page 14: ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003) ARM : un modèle réflexif asynchrone pour les objets répartis et réactifs](https://reader033.vdocuments.pub/reader033/viewer/2022051614/551d9d91497959293b8c7001/html5/thumbnails/14.jpg)
ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003)
Technologies soutenant l'approche
➢ Messagerie asynchrone pour communiquer entre niveaux permet :• l'exécution parallèle des niveaux• la notification non-intrusive (2 sens)
➢ Publication/souscription permet :• diffusion d'une même notification via
plusieurs relations « méta »• Vision du canal de communication comme
un milieu où s'exerce une forme de « perception »
![Page 15: ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003) ARM : un modèle réflexif asynchrone pour les objets répartis et réactifs](https://reader033.vdocuments.pub/reader033/viewer/2022051614/551d9d91497959293b8c7001/html5/thumbnails/15.jpg)
ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003)
Avantages de la réflexion asynchrone
➢ Facilité à réifier en plusieurs modèles➢ Choix du niveau d'abstraction approprié➢ Possibilité de modèles partiels, pas
strictement à jour, probabilistes ou flous, tolérants aux pannes, ...
➢ Objectif : « juste combinaison de connexion et de détachement entre niveaux » (Smith)
➢ « Juste » ? => nécessaire et suffisant pour supporter la décision lors de l'intercession
![Page 16: ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003) ARM : un modèle réflexif asynchrone pour les objets répartis et réactifs](https://reader033.vdocuments.pub/reader033/viewer/2022051614/551d9d91497959293b8c7001/html5/thumbnails/16.jpg)
ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003)
Avantages … (bis)
➢ Construction de modèles par « perception »• modèles non-implantatoires• modèles des autres entités, de
l'environnement, etc.➢ Multiples utilisation des modèles
• introspection et intercession• simulation, planification, apprentissage, ...• mais pas exécution
![Page 17: ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003) ARM : un modèle réflexif asynchrone pour les objets répartis et réactifs](https://reader033.vdocuments.pub/reader033/viewer/2022051614/551d9d91497959293b8c7001/html5/thumbnails/17.jpg)
ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003)
Nouvelles problématiques
➢ Construction et manipulation de modèles non-implantatoires à l'exécution ?
➢ Quelle API réflexive sur le niveau de base ?➢ Utilisation conjointe de plusieurs modèles en
introspection et intercession ?➢ Utilisation de modèles partiels, probabilistes
ou flous ?➢ Introduction de notions de commande et
contrôle dans l'intercession ?Intercession => programmation dynamique
![Page 18: ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003) ARM : un modèle réflexif asynchrone pour les objets répartis et réactifs](https://reader033.vdocuments.pub/reader033/viewer/2022051614/551d9d91497959293b8c7001/html5/thumbnails/18.jpg)
ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003)
Le noyau d'ARM : les « classes »
➢ Généralisation d'ObjVlisp avec méta-objets➢ Généricité des notions de méta
Entity
StructuralMeta BehavioralMeta
basicBehavioralMeta
![Page 19: ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003) ARM : un modèle réflexif asynchrone pour les objets répartis et réactifs](https://reader033.vdocuments.pub/reader033/viewer/2022051614/551d9d91497959293b8c7001/html5/thumbnails/19.jpg)
ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003)
Événements de communication
➢ Communication par messages asynchrones
Méta-objetstructurel
Méta-objetcomportemental
Objet de baseModificationsde structure
Modifications dedescription structurelle
Modificationsde l’état
Notifications dechangements d’état
Requêtes decalculs réflexifs
![Page 20: ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003) ARM : un modèle réflexif asynchrone pour les objets répartis et réactifs](https://reader033.vdocuments.pub/reader033/viewer/2022051614/551d9d91497959293b8c7001/html5/thumbnails/20.jpg)
ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003)
Modes de notification objet/méta-objet
➢ Deux modes :1. notification de transitions (ActionEvent)2. notification d'états courants (StateEvent)
➢ Notification de transition :• moins d'information transférée• pas robuste aux pertes d'événements
➢ Notification d'état courant :• plus d'information transférée• robuste aux pertes d'événements
![Page 21: ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003) ARM : un modèle réflexif asynchrone pour les objets répartis et réactifs](https://reader033.vdocuments.pub/reader033/viewer/2022051614/551d9d91497959293b8c7001/html5/thumbnails/21.jpg)
ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003)
Représentation réifiée généralisée
➢ Objectif : généralisation de la réification
réification = modélisation
➢ ARM() = noyau générique ou abstrait• paramétré par le type de représentation
réifiée• définit les éléments génériques de toute
représentation réifiée• doit être complété par une déclinaison
![Page 22: ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003) ARM : un modèle réflexif asynchrone pour les objets répartis et réactifs](https://reader033.vdocuments.pub/reader033/viewer/2022051614/551d9d91497959293b8c7001/html5/thumbnails/22.jpg)
ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003)
Concepts génériques de représentation
➢ State : état➢ StateSpace : ensemble des états
possibles➢ Behavior : un comportement➢ Behaviors : ensemble des comportements➢ Activation : état d'activation
![Page 23: ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003) ARM : un modèle réflexif asynchrone pour les objets répartis et réactifs](https://reader033.vdocuments.pub/reader033/viewer/2022051614/551d9d91497959293b8c7001/html5/thumbnails/23.jpg)
ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003)
Déclinaisons actuelles et futures
➢ ARM(DFA) : automates d'état finis➢ ARM(SC) : représentation par « statechart »➢ ARM(P) : représentation procédurale
« classique »➢ D'autres seront développées, dont :
• chaînes de Markov et autres modèles stochastiques
• Réseaux de Pétri• Modèle UML
![Page 24: ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003) ARM : un modèle réflexif asynchrone pour les objets répartis et réactifs](https://reader033.vdocuments.pub/reader033/viewer/2022051614/551d9d91497959293b8c7001/html5/thumbnails/24.jpg)
ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003)
ARM en Java
➢ Modèle objets actifs : Hybrid (Nierstrasz, 87)➢ Communication par JMS➢ Auto-amorçage en trois phases➢ Technologies associées :
• J2SE 1.4.1 et J2EE 1.3.1 (JMS)• À intégrer : XML, AspectJ, BCEL
➢ Calendrier :• Démonstrateur 02/2003• Première plate-forme utilisable : 07/2003
![Page 25: ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003) ARM : un modèle réflexif asynchrone pour les objets répartis et réactifs](https://reader033.vdocuments.pub/reader033/viewer/2022051614/551d9d91497959293b8c7001/html5/thumbnails/25.jpg)
ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003)
Travaux connexes
➢ Notification et publication/souscription• acquisition d'une stature industrielle• introduction dans les intersticiels réflexifs• travaux en IHM (MVC, Observateur, ...)
➢ LEAD++➢ Dynascope, MetaXa, JPDA : événements
pour profilage, réflexion, déverminage➢ Réflexion pour objets répartis
![Page 26: ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003) ARM : un modèle réflexif asynchrone pour les objets répartis et réactifs](https://reader033.vdocuments.pub/reader033/viewer/2022051614/551d9d91497959293b8c7001/html5/thumbnails/26.jpg)
ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003)
Travaux connexes (suite)
➢ Réflexion et contrôle : Pii Lunau 1997➢ Agents :
• ARM comme intersticiel pour agents (approche MAAM)
• Illustre par une approche du bas vers le haut (bottom-up) du besoin de techniques agents pour l'adaptation dynamique
![Page 27: ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003) ARM : un modèle réflexif asynchrone pour les objets répartis et réactifs](https://reader033.vdocuments.pub/reader033/viewer/2022051614/551d9d91497959293b8c7001/html5/thumbnails/27.jpg)
ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003)
Conclusions et perspectives
➢ Nouveau modèle de réflexion asynchrone➢ Implantation prototype sous J2EE et JMS
➔ Étude plus approfondie des possibilités concrètes
➔ Passage à J2ME + Bluetooth➔ Modèle d'objets réactifs (temps-réel)➔ Utilisation dans MAAM➔ Fondements théoriques