PhD thesis


 

Réflexion dans les systèmes répartis : application à CORBA et Smalltalk

Résumé

Aujourd'hui, la technologie objet s'impose dans le monde industriel comme la meilleure solution pour répondre aux problèmes de l'intégration et de la réutilisation des composants logiciels distribués. En normalisant des spécifications pour la portabilité et l'interopérabilité des composants objets, le bus logiciel CORBA (Common Object Request Broker Architecture) constitue une première approche pour aborder le problème de la construction d'applications distribuées à objets. Par ailleurs, les concepts de la réflexion permettent de réaliser des systèmes ouverts en rendant adaptables les différentes caractéristiques d'un programme. Ainsi, dans le contexte des environnements répartis, les langages réflexifs offrent un modèle dynamique d'exécution permettant l'introspection et la modification des stratégies et des mécanismes de distribution.

L'objectif de cette thèse est d'explorer l'apport des techniques de réflexion dans le cadre des architectures distribuées et plus particulièrement autour de CORBA. Nous mettons notamment l'accent sur deux propriétés indispensables pour la construction d'applications réparties : la séparation des aspects et l'adaptabilité dynamique.

Nous présentons OpenCorba, un système ouvert, basé sur un nouveau protocole à métaobjets Smalltalk. Il réifie différents aspects du bus CORBA afin de rendre plus malléable la " boîte noire " de l'ORB (Object Request Broker, i.e. le bus). OpenCorba favorise la séparation des caractéristiques internes du bus pour mieux les organiser, les rendre modulaires et donc interchangeables (séparation des aspects). OpenCorba permet ainsi d'intervenir sur le modèle d'exécution répartie de l'ORB, pour changer dynamiquement les stratégies de représentation et d'exécution (adaptabilité dynamique). OpenCorba est le premier ORB réflexif apportant la flexibilité nécessaire aux environnements distribués.
 

Mots-clés

Adaptabilité dynamique, architectures réparties à objets, CORBA, OpenCorba, ORB réflexif, protocole à métaobjets, réflexion, séparation des aspects, Smalltalk.


 

Reflection and Distributed Systems : an Experiment with CORBA and Smalltalk

Abstract

Today, object technology brings a major evolution in realizing integrated and reusable distributed software components. By supporting specifications for portable and interoperable object components, the CORBA (Common Object Request Broker Architecture) software bus is one of the first approaches to deal with the construction of object-oriented distributed applications. The concept of reflection also enables the realization of open distributed systems by allowing their characteristics to be adapted. In this context, reflective languages offer a dynamic model of execution, allowing introspection and modification of distributed implementation policies and mechanisms.

The aim of this thesis is to explore the contribution of reflection to CORBA-based distributed architectures. We privilege two important properties of the construction of distributed applications: the separation of aspects, which is leading to a decompositional definition of systems, and the dynamic adaptability of complete systems.

We present OpenCorba, an open system based on a new metaobject protocol for Smalltalk. OpenCorba reifies different aspects of the CORBA bus in order to make the "black box" of the ORB (Object Request Broker) more adaptive. The resulting separation of aspects, provided by OpenCorba, enables the construction of an ORB from modular and interchangeable components, where each component cleanly encapsulates a particular aspect. OpenCorba achieves dynamic adaptability by modifying the underlying run-time model. As a result, data representation issues and execution policies can be changed dynamically. OpenCorba is the first reflective ORB allowing the flexibility indispensable in distributed environments.
 

Keywords

Dynamic adaptability, distributed object-oriented architectures, CORBA, OpenCorba, reflective ORB, meta object protocol, reflection, separation of aspects, Smalltalk.