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.
|