[François Taïani] Ph.D. Thesis
I defended my Ph.D. Thesis on January 12th 2004. You can find here the
slides of my presentation in
French
and in
English.
Manuscrit complet
Here is the final version of my manuscript. (In French!)
Ph.D. Summary
Complex software systems are increasingly used for applications with
high dependability requirements (telecommunication, railway,
automobile...). Such systems typically integrate numerous components
developed independently, in complex architectures organised around
many abstraction levels. This recent evolution raises many questions
regarding the safety of the resulting systems. Because previous
approaches that were developed for small critical systems do not scale
well to handle these issues, new techniques are required to harden
these systems by adding adaptable and flexible fault-tolerance
mechanisms orthogonally to their functional components.
Reflection, a long known software technique, allows the decoupling of
the functional and not-functional aspects of a system. As such, it
appears as a very good candidate to address this problem. However,
until now, reflection for fault-tolerance has essentially been applied
to simple prototypes, often produced ex-nihilo for experimentation
purposes. In this thesis, we investigate how the reflexive paradigm
can be extended beyond those first attempts to encompass both the
algorithmic considerations of fault tolerance (validity, observation,
control), and the architectural constraints (abstraction,
transparency, interoperability) of complex software systems.
To address this issue, we present a new conceptual framework, called
multilevel reflection, along with its associated concepts of
reflexive footprint and inter-level mappings. We
validate the practical relevance of our proposal by considering the
replication of multi-threaded CORBA servers on a concrete
platform containing the OS GNU/Linux and the commercial ORB
ORBacus. Finally, we conclude on the need for new paradigm
of component based development in which components would be made
reflexive from their realisation up.
Résumé de la thèse
L'utilisation banalisée de logiciels complexes construits à partir de
nombreux composants hétérogènes pour des emplois de plus en plus
critiques (télécommunication, ferroviaire, automobile...) pose
aujourd'hui problème. Les approches développées jadis pour de petits
systèmes ne leur sont plus applicables. Les risques encourus, aussi
bien humains qu'économiques, exigent aujourd'hui de pouvoir mettre en
place dans ces systèmes des mécanismes de tolérance aux fautes
flexibles et adaptables indépendamment des composants réutilisés, pour
durcir leur robustesse et exclure tout scénario catastrophe.
Connues depuis longtemps, les architectures réflexives, en autorisant
le découplage des aspects fonctionnels et non-fonctionnels d'un
système, visent à résoudre ce problème. Jusqu'ici cependant, les
approches proposées s'étaient limitées à des prototypes simples,
souvent réalisés ex-nihilo pour expérimentation. Or la tolérance aux
fautes est une propriété globale des systèmes considérés, qui requiert
la prise en compte de tous les niveaux d'abstraction rencontrés. Dans
cette thèse, nous étudions comment le paradigme réflexif peut être
adapté pour permettre d'intégrer les considérations algorithmiques de
la tolérance aux fautes (validité, observation, contrôle) aux
contraintes architecturales (abstraction, transparence,
inter-opérabilité) rencontrées dans les systèmes complexes.
Pour aborder cette problématique, nous développons un nouveau cadre
conceptuel, la réflexivité multi-niveaux, et les concepts
d'empreinte réflexive et de correspondances
inter-niveaux qui lui sont associés. Nous validons ensuite la
pertinence pratique de notre proposition en abordant la réplication de
serveurs CORBA à brins d'exécution multiples (multithreaded) sur un
exemple concret constitué de GNU/Linux et de l'ORB
commercial ORBacus. Nous concluons finalement à la nécessité
d'un nouveau paradigme de développement basé sur des composants
rendus réflexifs dès leur réalisation.
Back to Home