View
105
Download
2
Category
Preview:
Citation preview
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
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
d’atomes
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-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)
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ètemétacirculaire
source duprogramme
étatd’exécution de
l’interprète
Niveau de baseprogrammeétat
d’exécution
Relation« implante »
réification 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
StructuralMeta BehavioralMeta
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-objetstructurel
Méta-objetcomportemental
Objet de baseModificationsde structure
Modifications dedescription structurelle
Modificationsde l’état
Notifications dechangements d’état
Requêtes decalculs 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 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
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
Recommended