|
Le projet VEHICULAIRE s'intéresse à la vérification de systèmes modélisés à base de réseaux de Petri de haut niveau, plus particulièrement une
algèbre de réseaux structurée appelée M-Net. Ce formalisme a été choisi pour différents critères :
-
Il relève du domaine de compétence des membres de l'équipe " Systèmes communicants " du LACL ;
-
Les réseaux de Petri commencent à être utilisés de manière pratique par l'industrie et des communautés différentes que celles de la
vérification des systèmes ;
-
Il présente des caractéristiques autorisant d'intéressantes techniques d'accélération : les réseaux de Petri utilisés sont
composables, autorisant ainsi une modélisation structurée ;
-
L'algèbre est de haut-niveau et permet donc une représentation plus compacte des problèmes à modéliser et une explosion des états
moindres du fait de cette description plus symbolique ;
-
Les techniques d'accélération utilisées pour ce modèle (basées sur la concurrence des actions) sont souvent complémentaires de
celles développées pour d'autres (abstraction, réduction, etc.).
Le projet a pour but principal la conception d'un algorithme parallèle BSP de construction du graphe des états d'une classe dédiée
des M-Nets. Nous nous baserons sur la structuration d'une telle classe et du modèle BSP (via son modèle de performance) pour réduire
les communications de l'algorithme et permettre un re-balancement optimal des données et des calculs pour la construction de ce
graphe. En effet, la structuration de ces réseaux nous permettra de connaître de manière dynamique les tailles maximales des
sous-graphes des sous-réseaux et ainsi de re-balancer au mieux les calculs et les communications (afin d'optimiser les performances
de l'outil). L'utilisation du modèle de coûts BSP nous donnera aussi une prédiction des performances du model-checker et ce de
manière très portable : il sera alors possible à l'utilisateur de prédire le temps d'exécution de l'algorithme sur une machine
parallèle et donc de choisir au mieux la machine qu'il souhaite utiliser (ce travail, dans le futur, pourra être fait de manière
automatique sur une grille de calcul via l'utilisation très aisée d'agents mobiles). Ceci diffèrera des précédents résultats
sur des algorithmes distribués de model-checking où les performances sont imprédictibles et où les calculs (ainsi que les
communications) sont mal balancés : une distribution randomisée des données sur les processeurs est en général utilisée et se révèle
trop souvent inefficace à cause du mauvais balancement des calculs.
Pour implanter cet algorithme nous utiliserons le langage de programmation de haut-niveau (fonctionnelle, polymorphe, modulaire,
etc.) Objective Caml (OCaml) et son extension BSP via une bibliothèque développée conjointement
au LACL et au LIFO (la BSMLlib). L'utilisation des modules et du polymorphisme de OCaml nous permettra une exécution native
(compilation en code machine) des réseaux sans nécessité un interpréteur de réseau : un réseau sera en fait un foncteur dépendant
d'un module décrivant le type de jeton présent dans les places du réseau et d'un autre module décrivant les calculs faits par les
transitions entre les places du réseau. Cette programmation de haut-niveau est donc idéale pour une indépendance de l'algorithme
aux types de données (symboliques ou non) représentées par les jetons. Il en résultera donc une autonomie vis- à-vis des autres
techniques de réduction des graphes des états.
Ce projet est innovant à plus d'un titre, en particulier sur ces deux points principaux :
-
A notre connaissance il n'existe pas de technique de modularisation et de parallélisation (structurée) basées sur la bonne
structuration d'un modèle de haut-niveau ;
-
Contrairement à la tradition de la communauté de vérification qui tend à privilégier les langages de bas-niveau (C ou C++), nous
utiliserons un langage de haut-niveau dont les bénéfices attendus seront une meilleure portabilité, une maintenance plus aisée,
une meilleure évolutivité et la capacité d'exécuter de manière native les transitions d'un réseaux de Petri de haut-niveau (les
transitions pourront être directement écrites dans du code OCaml).
Pour vérifier expérimentalement notre travail, nous appliquerons notre implantation à des protocoles cryptographiques qui ont déjà
été modélisés par des membres du LACL avec une classe particulière des M-Nets (la sécurité et la sûreté des systèmes étant les
thèmes fédérateurs du LACL). Pour continuer cette expérimentation, il sera envisagé de modéliser avec les M-Nets, puis vérifier
avec notre outil de model-checking, les systèmes étudiés au LIFO par l'équipe PRV (notamment les protocoles pour le commerce
électronique).
|