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 Jacques Malenfant et Simon Denier Université de Bretagne sud 3 février 2003
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.
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 datomes
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
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
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
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
ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003) Réflexion selon B. Smith Méta-niveau Réification du programme Réification de létat dexécution Niveau de base programme État dexécution Relation « méta » réification (connexion causale) réification (connexion causale)
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
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ète métacirculaire source du programme état dexécution de linterprète Niveau de base programme état dexécution Relation « implante » réification
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
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)
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)
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 »
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
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
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
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 StructuralMetaBehavioralMeta basicBehavioralMeta
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-objet structurel Méta-objet comportemental Objet de base Modifications de structure Modifications de description structurelle Modifications de létat Notifications de changements détat Requêtes de calculs réflexifs
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
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
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
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
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 et J2EE (JMS) À intégrer : XML, AspectJ, BCEL Calendrier : Démonstrateur 02/2003 Première plate-forme utilisable : 07/2003
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
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
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