ARM : un modèle réflexif asynchrone pour les objets répartis et réactifs
L'approche procédurale traditionnelle pour la réflexion dans les langages de programmation, où la connexion entre les niveaux de base et méta est réalisée par une relation de nature implantatoire, est remise en cause par les systèmes à base de composants, les systèmes répartis et les systèmes réactifs. Dans tous ces cas, une partie du système ne peut être capturée par une relation de nature implantatoire, où le méta-niveau est un processeur de langage (par exemple, un interprète), soit parce que la notion d'état global y échappe, soit parce que des éléments essentiels se situent en dehors de l'implantation du système. Nous proposons un nouveau modèle de réflexion asynchrone, ARM, où la connexion entre les niveaux est fondée sur une communication d'événements par publication/souscription. Nous démontrons non seulement que ce modèle est mieux adapté aux systèmes répartis ou réactifs, mais qu'il permet aussi de généraliser les formes de réflexions possibles en adoptant et s'adaptant à la «juste combinaison de connexion et de détachement» entre les niveaux. Nous présentons une première implantation d'ARM en Java, sous J2EE avec JMS.
The traditional procedural approach to programming language reflection, where the connection between the base and the meta levels is of an implementation nature, is challenged by component-based, distributed and reactive systems. In all of these fields, part of the system to reflect upon cannot be captured in an "implements" relation, where the metalevel operates as a language processor (e.g. interpreter) either because we lack a centralized state or an essential ingredient lies outside the system. We introduce a novel asynchronous reflective model, ARM, where the connection between levels use an asynchronous publish/subscribe communication model. We show not only that this model is better suited to distributed and reactive systems, but that it also generalizes the possible forms of reflection by adopting and adapting to the "right combination of connection and detachment" between the base and the meta level. We present a first implementation of ARM in Java, under J2EE with JMS.
J.MALENFANT, S.DENIER
réflexion, publication/souscription, Java, connexion causale, adaptation dynamique.
reflection, publish/subscribe, Java, causal connection, dynamic adaptation.
Français
|