Thèse soutenue

Sémantique opérationnelle des interactions pour la vérification d'exécutions partiellement observées de systèmes distribués

FR  |  
EN
Auteur / Autrice : Erwan Mahe
Direction : Pascale Le GallChristophe Gaston
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 15/07/2021
Etablissement(s) : université Paris-Saclay
Ecole(s) doctorale(s) : École doctorale Interfaces : matériaux, systèmes, usages (Palaiseau, Essonne ; 2015-....)
Partenaire(s) de recherche : Laboratoire : Mathématiques et informatique pour la complexité et les systèmes (Gif-sur-Yvette, Essonne ; 2006-....)
Référent : CentraleSupélec (2015-....)
Jury : Président / Présidente : Stefan Haar
Examinateurs / Examinatrices : Xavier Urbain, Gwen Salaün, Delphine Longuet, Bernhard K. Aichernig, Yliès Carlo Falcone
Rapporteur / Rapporteuse : Xavier Urbain, Gwen Salaün

Résumé

FR  |  
EN

Les interactions représentent des communications asynchrones dans un contexte distribué et sont associées à des diagrammes qui sont faciles à prendre en main tout en pouvant spécifier des comportements précis. Dans cette thèse nous formalisons ce type de modèles avec un Langage d'Interactions (LI) se présentant sous la forme d'une algèbre de termes incluant des opérateurs pour le séquencement strict et faible, la composition alternative et parallèle ainsi que quatre boucles distinctes.Notre LI est équipé d'une sémantique associant à chaque interaction un ensemble de traces (séquences d’événements) pouvant être exprimées. Nous proposons deux sémantiques dont nous avons prouvé l'équivalence. La première formulation dénotationnelle est donnée sous la forme d'un homomorphisme d'algèbres, donnant accès aux techniques de réécriture afin de définir des classes d'équivalence et des formes normales. Une seconde formulation, opérationnelle, permet diverses applications en vérification formelle.Les exécutions d'un système distribué peuvent être observées au travers de logs des événements de communication collectés localement. Sans horloge globale il n'est pas possible de réordonner ces événements globalement. Analyser une exécution revient donc à analyser un ensemble de traces qu'on appelle une multi-trace. De plus, sur chaque composante locale, il se peut que l'observation ait commencé trop tard ou ait cessé trop tôt. Ainsi, une multi-trace peut correspondre à une observation partielle d'une exécution. Tirant parti de la sémantique opérationnelle nous proposons des algorithmes d'analyse permettant d'identifier une multi-trace comme étant une observation d'un comportement spécifié par une interaction.Notre approche a été implémentée au sein d'un outil appelé HIBOU qui permet de spécifier et dessiner des interactions, d'explorer leur sémantiques, de calculer des formes normales ou d'analyser des multi-traces.Nous avons étendu notre LI pour inclure des données sous la forme de variables définies localement. Des gardes, expressions booléennes sur les variables, peuvent conditionner l'exécution d'actions et les messages peuvent porter des données exprimées à l'aide des variables. L'extension aux données a été implémentée en utilisant les techniques d'exécution symbolique. Cet outil étendu a été utilisé pour un cas d'usage industriel dans le cadre du projet FUI DisTA.