Modèles pour Calculs d'Objets Répartis et Mobiles


Les systèmes à objets répartis sont de plus en plus présents dans les environnements logiciels, et dans de nombreux cas il est nécessaire de vérifier formellement certaines propriétés (sûreté, sécurité, etc.).
L'analyse de modèles (Model Checking) est une technique permettant de telles vérifications, à condition de disposer d'un modèle fini du système, alors que les modèles naturels des systèmes à objets répartis sont le plus souvent infinis.

L'objectif général de ce stage de DEA consiste à trouver des solutions à un challenge important et difficile:
       passer d'un modèle infini d'un système à objets répartis,     à     un modèle fini pour model checking.


Nous présentons maintenant en détail le cadre et les objectifs de ce sujet de DEA.

Nous avons développé ProActive, une bibliothèque 100% Java, qui fournit :
    o des objets distants,
    o des appels asynchrones avec futurs transparents,
    o de la migration d'objets actifs (mobilité),
le tout offrant des mécanismes de synchronisation de haut niveau qui simplifient la programmation répartie.
Dans ce cadre, nous avons défini le calcul ASP (Asynchronous Sequential Processes), un calcul d'objets à la Abadi-Cardelli, qui modélise de façon précise et élégante la sémantique infinie d'un tel système à objets répartis.
Voir ici pour une présentation rapide de ProActive et du Calcul ASP.

D'autre part, nous avons commencé la vérification formelle par model checking de systèmes à objets répartis. Nous utilisons un modèle à base d'automates finis synchronisés, et des outils de vérification permettant de composer, de minimiser et de comparer de tels systèmes, et de vérifier leur propriétés comportementales (absence de deadlock, propriétés de sureté et de vivacité).

Le sujet de DEA consiste donc à:
   trouver un ou plusieurs mappings d'un calcul à objets répartis vers un modèle fini.
On pourra par exemple définir différents sous-ensembles du calcul d'objets pour lesquels on définira différents mappings. Ce genre d'approche utilise des restrictions syntaxiques du langage, et a déjà été utilisé dans d'autres contextes, par exemple pour Java ou pour les calculs de processus.

En fonction des affinités de l'étudiant, ce stage pourra être plus ou moins formel, et présenter plus ou moins de mise en oeuvre.

Ces travaux pourront naturellement se poursuivre en Thèse de Doctorat.


Encadrement :    Denis Caromel     et     Eric Madelaine
Téléphone : 04 92 38 76 31 ou 78 07
Email : Denis.Caromel@inria.fr,Eric.Madelaine@inria.fr
Laboratoire ou équipe : INRIA Sophia Antipolis -- I3S-CNRS, Projet OASIS
 
Prérequis : langages à objets, programmation répartie, des bases en lambda calcul, sémantique des langages de programmation
Matériel et logiciels utilisés : Stations de travail

Lieu du stage: INRIA Sophia Antipolis, Nice, France
 
Références:
  • Towards Seamless Computing and Metacomputing in Java, D. Caromel, W. Klauser, J. Vayssiere,
    pp. 1043--1061 in Concurrency Practice and Experience, September-November 1998, 10(11--13), Editor Geoffrey C. Fox, Published by Wiley & Sons, Ltd.
  • A Theory of Objects, Martin Abadi and Luca Cardelli, Springer-Verlag, New York, NY, 1996
  • Verification Tools: Autograph and Fc2Tools, Documentation and downloads
  • Tools for Process Algebras, E. Madelaine and D. Vergamini, 4th FORTE conférence, North-Holland, Sydney 1991
  • Finiteness Conditions and Structural Construction of Automata for all Process Algebras, E. Madelaine and D. Vergamini, 2nd CAV workshop, Princeton, New-Jersey, June 1990
  • Bandera: Extracting Finite-state Models from Java Source Code, J.C. Corbett et all., ICSE 2000