Réseau National des Technologies Logicielles - Appel à propositions 2000

ARCAD

serveur du projet : arcad.polytech.unice.fr

Architecture Répartie extensible pour Composants ADaptables

Résumé 

Les technologies de la répartition sont parvenues récemment à un bon degré de maturité, notamment avec l'apparition de plates-formes d'exécution réparties conformes aux spécifications CORBA ou EJB.
Néanmoins, ces plates-formes ne satisfont que de manière très partielle les besoins de nombreux applicatifs. Tout au plus, on assiste à des tentatives ponctuelles et morcelées pour étendre ces plates-formes à chaque domaine applicatif rencontré.

On peut certes considérer que des infrastructures logicielles particulières doivent être pensées en relation avec des domaines d'application précis. Mais, d'une part, demeurent des principes d'organisation communs des infrastructures logicielles exploitables dans ces domaines d'application, et, d'autre part, une tendance lourde des recherches actuelles porte justement sur la conception et la construction d'infrastructures adaptables, c'est-à-dire susceptibles d'être adaptées à des conditions opératoires et à des domaines d'application différents. La technologie à composants est en passe de s'imposer pour la construction et la mise en oeuvre de grandes applications réparties.

Un environnement d'exécution pour composants comporte des "structures d'accueil". Celles-ci doivent fournir à un ensemble de modules logiciels des services communs permettant le déploiement d'une application, la modification dynamique de la configuration et l'adaptabilité des composants en fonction de la modification de l'environnement. L'objectif principal de ce projet est de proposer un tel environnement qui doit être extensible afin de pouvoir le compléter pour prendre en compte des services non prévus lors de son activation et qui doit permettre le déploiement des composants d'une application répartie et la modification dynamique des configurations afin de pouvoir installer une application y compris sur des sous-systèmes pour lesquels une telle installation n'avait pas été prévue à l'origine. Les différents composants de l'application devant être pour leur part adaptables afin de pouvoir modifier leur comportement en fonction des modifications de leur environnement (modification des caractéristiques physique de l'environnement : ajout de station, modification du débit réseau, etc. mais aussi modification logique : ajout/suppression de services, modification de propriétés non fonctionnelles).

Partenaires du projet 


1. Projet SIRAC - INP Grenoble, Université Joseph Fourier et INRIA
2. Equipe DTL/ASR - France Telecom R&D
3. Projet Oasis - INRIA et Laboratoire I3S (CNRS et Université de Nice)
4. Équipe ESLO (École des Mines de Nantes)
5. Equipe Rainbow - Laboratoire I3S (CNRS et Université de Nice)

Identification 


Projet Exploratoire 
Durée : 36 mois 

Thème de l'appel 


1. Anticiper sur la technologie des composants...
2. Etendre les systèmes d'information...
3. Interagir avec les machines...
4. Elaborer une nouvelle conception...
5. Enrichir les objets et systèmes...

Pour plus d'information 


Michel RIVEILL
Université de Nice-Sophia Antipolis

Mél : riveill@unice.fr


Secrétariat du RNTL
Secrétariat d'Etat à l'Industrie
DiGITIP 3/STSI/SDEI
LE BERVIL
12, rue Villiot 75572 Paris cedex 12

http://www.industrie.gouv.fr/rntl
http://www.technologie.gouv.fr/rntl
Mél : rntl@industrie.gouv.fr 

Mél : rntl@technologie.gouv.fr 

Objectifs :
Une application est dite répartie lorsqu'elle met en jeu des parties qui s'exécutent sur plusieurs machines reliées par un système de communication. L'écriture efficace d'une application répartie est un exercice difficile, parce que les systèmes d'exploitation sont trop rigides, les environnements d'exécution sont peu appropriés aux besoins des applications actuelles et le matériel évolue trop rapidement. Les efforts fournis jusqu'à présent dans ce domaine ont principalement visé à :

a) dissimuler autant que possible la répartition pour se ramener aux schémas connus de programmation en centralisé,
b) fournir des mécanismes de niveau d'abstraction de plus en plus haut,
c) faciliter la maintenance et l'évolution des applications pour qu'elles puissent s'adapter aux nouveaux besoins et aux nouveaux environnements de développement,
d) faciliter la réutilisation des applications (en totalité ou en partie) pour en construire de nouvelles. Pour mettre en place ces différents objectifs, la notion de composants logiciels a été introduite mais ceci ne suffit pas car il faut offrir à ceux-ci un environnement leur permettant de s'exécuter correctement.
Cet environnement comporte des "structures d'accueil" fournissant pour un ensemble de composants des services communs permettant le déploiement d'une application, la modification dynamique de la configuration et l'adaptabilité des composants.

L'objectif principal de ce projet est de proposer un environnement réparti extensible pour le déploiement d'applications construites par assemblage de composants, la modification dynamique des configurations et l'exécution de composants logiciels adaptables.

Pour des raisons d'efficacité dans l'intégration des différentes contributions et dans la diffusion des résultats obtenus, le consortium fera un effort significatif pour intégrer ses résultats à la plate-forme réparties à objets libre ObjectWeb (http://www.objectweb.org). Cette plate-forme a été en partie réalisée dans le cadre du projet RNRT Parol avec le soutien de France Télécom R&D, de l'INRIA et de l'AFNOR.

On peut certes considérer que des infrastructures logicielles particulières doivent être pensées en relation avec des domaines d'application précis. Mais, d'une part, demeurent des principes d'organisation communs des infrastructures logicielles exploitables dans ces domaines d'application, et, d'autre part, une tendance lourde des recherches actuelles porte justement sur la conception et la construction d'infrastructures adaptables, c'est-à-dire susceptibles d'être adaptées à des conditions opératoires et à des domaines d'application différents. La technologie à composants est en passe de s'imposer pour la construction et la mise en oeuvre de grandes applications réparties. L'offre industrielle en matière de programmation par composants et d'infrastructures logicielles réparties est actuellement dominée par trois grandes familles de technologies :

a) La technologie Microsoft, organisée autour du système NT et de la plate-forme à composants COM+.
b) La technologie CORBA, dont les spécifications sont développées sous l'égide de l'OMG (Object Management Group) et qui a très récemment défini un modèle à composants, dont l'interopérabilité est assurée par des services CORBA.
c) La technologie Java, sur l’initiative de Sun Microsystems, qui s'appuie sur le langage à objets Java et la machine virtuelle "universelle" JVM, et qui a été plus récemment étendue avec le système de composants EJB (Enterprise JavaBeans).

Aucune de ces propositions n'est réellement extensible, ni ne permet une adaptabilité à des conditions d'utilisation variables. Les mécanismes de base sont figés et l'ensemble des services à un instant donné est fixe et il est difficile d'en ajouter dynamiquement de nouveaux et de les faire prendre en compte par les applications en cours d'exécution. C'est pour cela qu'il nous parait important d'offrir une plate-forme extensible (qui peut être étendue dynamiquement) basée sur des composants adaptables (capables de se modifier pour prendre en compte une évolution de l'environnement).

Mise en oeuvre et état de l'art :
La conception et la construction de plates-formes flexibles, adaptables, sûres émergent actuellement comme un thème de recherche majeur. Plusieurs approches sont considérées pour prendre en compte l'adaptabilité et l'extensibilité.
On peut citer par exemple :
a) les travaux portant sur l'architecture de l'infrastructure logicielle pour l'exécution de composants adaptables : approches fondées sur les exo-noyaux et nano-noyaux, tels que : Aegis (MIT), L4 (GMD), Nemesis (U. Cambdrige) ; systèmes d'exploitation réflexifs tels que : Flexinet (APM ), Apertos (Sony) ; systèmes d'exploitation extensibles tels que Spin (U. de Washington), Synthetix (Oregon Institute)
b) les travaux portant sur des technologies de compilation, tels que : Tempo, Harissa (INRIA Rennes), HotSpot (Sun Microsystems), Java Hot Set
c) les travaux portant sur des versions réflexives de Java : Reflective Java (APM), MetaXa (U. d'Erlangen), Kava (U. de Newcastle), Javassist (U. de Tsukuba)
d) les travaux portant sur les approches "middleware" ouvert, c'est-à-dire sur la construction de services systèmes pour gérer l'adaptabilité en fonction des besoins des applications. Cette approche repose aussi sur l'existence d'une API flexible pour réaliser le dialogue entre l'application et le système.

Le projet proposé ici vise à faire la synthèse de ces différentes approches afin d'être capable de proposer une infrastructure logicielle extensible pour permettre la définition de configurations et le déploiement d'applications, celles-ci étant écrites sous la forme de composants adaptables. Il nous semble nécessaire d’offrir aux applications un contrôle fin et efficace des ressources qu'elles mobilisent au cours de leur exécution, tout en gardant une programmation de haut niveau. En d'autres termes, on souhaite pouvoir configurer une application répartie en vue de continuer à remplir ses fonctions pour faire face à l'évolution de ses besoins propres ou à des variations de son environnement d'exécution. La réactivité étant une qualité recherchée dans beaucoup d'applications, il est souhaitable que cette configuration puisse être réalisée dynamiquement. Ce projet doit en en particulier valider différentes solutions permettant d’exprimer et de mettre en oeuvre cette adaptabilité.

Pour des raisons d'efficacité, le cadre technique de ce projet est mono-langage et se limite à Java. L'objectif en terme de réalisation est d'aboutir à une plate-forme unique intégrant les contributions de tous les partenaires.

La réalisation de cette plate-forme unique est rendue possible par le cadre mono-langage du projet et par l'existance d'un "noyau" de plate-forme répartie à objets, disponible en licence code source et avec laquelle les différents partenaires du projets sont déjà familiés. Par rapport à d'autres projets labellisés dans le cadre du RNRT, nous pouvons mettre en évidence les complémentarités suivantes :

  • le projet RNRT Parol jette les base d'une plate-forme à objets répartis libre. Nous profiterons de cette plate-forme pour l'étendre et lui apporter de nouvelles fonctionnalités,
  • le projet RNRT Phénix s'intéresse à la mise en oeuvre de la réflexivité au niveau du l'OS. Nous profiterons là aussi de cette expérience pour étendre l'approche et offrir une utilisation de la réflexivité dans des couches plus hautes (middleware, containers et composants),
  • le projet RNRT Marvel jette les bases d'un modèle formel pour la construction d'applications réparties sûres de fonctionnement (preuve, validation). Nous essayerons de développer des synergies avec ce projet pour inclure dans nos propositions des passerelles vers les outils proposés.

Les actions de normalisation se feront en direction des groupes de travail de l'OMG et par la participation aux forums EJB. L'ensemble des travaux sera intégré à la plate-forme répartie à objet libre ObjectWeb pour pouvoir être librement utilisé (licence code source) par la communauté scientifique et industrielle. Le middleware ObjectWeb est accessible à l'URI : http://www.objectweb.org.

Ruptures technologiques :
Décrire de manière architecturale une application, puis construire à la demande une infrastructure extensible adaptée à l'exécution d'une application construite par assemblage de composants, permettre son déploiement et l'adaptabilité dynamique de ses composants tout en offrant des performances satisfaisantes nécessitent la cohabitation au sein d'un même système de différentes technologies. Cela pose donc un double problème d'efficacité de la conception et du développement d'une part, et d'interopérabilité des infrastructures d'autre part.

Organisation du projet : 

En prenant comme point de départ les travaux autour du modèle TINA, qui propose de construire une application répartie sous la forme d'un assemblage de composants reliés entre eux par des objets de liaison (appelés connecteurs), nous avons organisé ce projet en 5 sous-projets :

1.Architecture d'une infrastructure réflexive à composants répartis : concevoir et réaliser un telle infrastructure en prenant comme point de départ un langage de programmation (Java et sa machine virtuelle), un middleware de communication (Jonathan développé dans le cadre du projet PAROL) et un middleware d'intégration (JOnAs proche du modèle EJB).
2.Ajout dynamique de propriétés non-fonctionnelles aux composants : validation de l'architecture réflexive pour mettre en oeuvre des propriétés de migration et réplication liées au support de la mobilité et du mode déconnecté.
3.Ajout dynamique de propriétés non fonctionnelles aux objets de liaison : validation de l'architecture réflexive pour mettre en oeuvre des propriétés liées à la communication (communication de groupe, coordination, interaction).
4.Supervision et configuration dynamique : validation de l'architecture pour la prise en compte du déploiement, de l'administration, de la reconfiguration de composants. Ce sous-projet servira d'application de test permettant de mettre en évidence la flexibilité de la plate-forme et l'adaptabilité des composants.
5.Intégration, évaluation de la plate-forme et diffusion des résultats : coordination de l'intégration de tous les éléments développés dans le cadre du projet. Évaluation fonctionnelle de la plate-forme au travers d'applications tests. Evaluation quantitative de la plate-forme extensible réalisée. Diffusion des résultats dans le consortium ObjectWeb et dans d'autres organisations.

Retombées du projet : 
Les bénéfices attendus pour les communautés industrielles et universitaires françaises sont importantes : Pour les universitaires, le fait de posséder un ORB libre, flexible et adaptable, constitue une plate-forme d'expérimentation et un matériel pédagogique idéal ; c'est pour cela que nous proposons d'étendre une plate-forme existante (ObjectWeb), afin de mettre en évidence l'intérêt de nos propositions : extensibilité dynamique de la plate-forme et adaptabilité des composants en cours d'exécution. L'intégration de nos travaux à la plate-forme ObjectWeb permettra une plus grade diffusion et un excellent faire valoir des savoirs faire universitaire. Pour les industriels, l'ajout de fonctionnalités à une plate-forme de type CORBA et EJB qui sont actuellement partiellement supportées permet d'avoir accès à un ORB libre ayant une excellente couverture fonctionnelle pouvant servir de référence et permettre de nouveaux développements. Le fait de posséder un ORB extensible, permet d'adapter celui-ci à une gamme de besoins non prévu initialement. Pour tous, le fait de participer à cette action peut permettre d'influer de manière plus efficace à la définition de nouvelles normes, par exemple, auprès de l'OMG en lien avec les groupes de travail de l'AFNOR.


© Réseau National de Technologies Logicielles, 20/10/2000

Michel RIVEILL

Laboratoire I3S
Polytech - Nice - Sophia
930 Route des Colles
BP 145
F-06903 Sophia Antipolis CEDEX

Email : riveill at unice.fr

Généralité

Ressources en lignes

Une partie de mon agenda

Des liens

Rechercher sur ce site avec Google

dernière mise à jour
le 24 août 2006

 

 

Réservation d'Hôtel à Prix Réduits - HotelClub