DUT Informatique - Module M-4102C Modélisation et construction des applications réparties Applications réparties (distributed systems) J. Christian Attiogbé Février 2009, maj 2015 J. Christian Attiogbé (Février 2009, maj 2015)DUT Informatique - Module M-4102C Modélisation et construction des applications réparties 1 / 34 Plan de la suite Plan 1 Définitions 2 Les bases 3 Fonctionnement d un réseau 4 Graphe de marquage : sémantique J. Christian Attiogbé (Février 2009, maj 2015)DUT Informatique - Module M-4102C Modélisation et construction des applications réparties 2 / 34
Plan Introduction Carl Adam Petri, 1962 Une notation mathématique et graphique Fondée sur une bonne théorie Plusieurs extensions et outils logiciels pour les analyser Modélisation de systèmes asynchrones, concurrents, distribués, non-déterministes, Utilisable à différentes étapes de construction de logiciels : analyse, modélisation, simulation, développement (synthèse) Utilisation dans de nombreux domaines : protocoles, systèmes critiques, systèmes d exploitation,... J. Christian Attiogbé (Février 2009, maj 2015)DUT Informatique - Module M-4102C Modélisation et construction des applications réparties 3 / 34 Introduction Plan Le réseau de Petri comme un outil de l ingénieur : modélisation et étude du fonctionnement d un système (avant sa construction). Exemple : modélisons le comportement de deux robots (dans une usine). Les deux robots usinent des pièces en se servant d outils communs. Plusieurs problèmes : accès concurrent, synchronisation, blocage,... J. Christian Attiogbé (Février 2009, maj 2015)DUT Informatique - Module M-4102C Modélisation et construction des applications réparties 4 / 34
Plan Introduction : un exemple de concurrence J. Christian Attiogbé (Février 2009, maj 2015)DUT Informatique - Module M-4102C Modélisation et construction des applications réparties 5 / 34 Plan Caractéristiques des réseaux de Petri Spécification et étude des systèmes concurrents (communication, synchronisation) Abstraction sur les comportements, et les états Mode de synchronisation : synchrone, asynchrone Mode de composition : via le partage de transitions, (pas de hiérarchie) Modèles sémantiques : opérationnelle, axiomatique (algébrique) J. Christian Attiogbé (Février 2009, maj 2015)DUT Informatique - Module M-4102C Modélisation et construction des applications réparties 6 / 34
Concepts fondamentaux Plan Ensemble de Places : P Ensemble de transitions : T Arcs entrant/sortant des transitions et des places Jetons (dans des places) Marquage (des places) : M i Fonctionnement du réseau : franchissement des transitions et donc, changement de l état global (marquage). J. Christian Attiogbé (Février 2009, maj 2015)DUT Informatique - Module M-4102C Modélisation et construction des applications réparties 7 / 34 Plan Etude empirique du fonctionnement des R. de Petri Exemples de base Modélisation d un système producteur/consommateur avec les RdP Modélisation d une chaîne d assemblage avec des robots... J. Christian Attiogbé (Février 2009, maj 2015)DUT Informatique - Module M-4102C Modélisation et construction des applications réparties 8 / 34
Plan Exemple : Producteur/Consomateur Modélisation du comportement d un producteur : repos buffer produire reposer production P = {repos, production, buffer} T = {produire, reposer} J. Christian Attiogbé (Février 2009, maj 2015)DUT Informatique - Module M-4102C Modélisation et construction des applications réparties 9 / 34 Plan Exemples : fonctionnement Modélisation de la composition producteur et consommateur : repos buffer reposc produire reposer prelever repsoserc production consommation J. Christian Attiogbé (Février 2009, maj 2015)DUT Informatique - Module M-4102C Modélisation et construction des applications10 réparties / 34
Les bases Définitions formelles Un réseau de Petri (R) est un quadruplet (P, T, Pre, Post) où : P est un ensemble fini de places (avec P P), = m, le cardinal de T un ensemble fini de transitions, disjoint de P, (avec T cardinal de T) Pre : P T IN une application d incidence avant (une matrice) : les places entrant dans une transition Post : P T IN une application d incidence arrière (une matrice) : les places sortant d une transition = n, le J. Christian Attiogbé (Février 2009, maj 2015)DUT Informatique - Module M-4102C Modélisation et construction des applications11 réparties / 34 Exemple Les bases Soit P = {1, 2, 3, 4, 5} et T = {a, b, c, d, e}. Soient Pre (places avant les transitions) et Post (places après les transitions) : Pre a b c d e 1 1 0 0 0 0 2 0 1 0 0 0 3 0 0 1 0 0 4 0 0 0 1 0 5 0 0 0 1 1 Post a b c d e 1 0 0 0 1 0 2 1 0 0 0 0 3 1 0 0 0 1 4 0 1 0 0 0 5 0 0 1 0 0 J. Christian Attiogbé (Février 2009, maj 2015)DUT Informatique - Module M-4102C Modélisation et construction des applications12 réparties / 34
Les bases Graphe du réseau 1. a 3 2 c b 5 4 e d J. Christian Attiogbé (Février 2009, maj 2015)DUT Informatique - Module M-4102C Modélisation et construction des applications13 réparties / 34 Marquage des réseaux Les bases Un réseau marqué est le couple N = (R, µ) formé de : un réseau R et une application (fonction totale) µ : P IN. µ(p) est le marquage de la place p, on dit aussi le nombre de marques contenues dans p. Jeton : indique le marquage de chaque place. J. Christian Attiogbé (Février 2009, maj 2015)DUT Informatique - Module M-4102C Modélisation et construction des applications14 réparties / 34
Les bases Marquage des places repos buffer produire reposer production µ(repos) = 1 µ(production) = 0 µ(buffer) = 0 (µ(repos), µ(production), µ(buffer)) (1, 0, 0) J. Christian Attiogbé (Février 2009, maj 2015)DUT Informatique - Module M-4102C Modélisation et construction des applications15 réparties / 34 Fonctionnement d un réseau Fonctionnement et propriétés des réseaux de Petri Franchissement des transitions (non-déterminisme, synchronisation) Franchissable? quel est le marquage résultant? J. Christian Attiogbé (Février 2009, maj 2015)DUT Informatique - Module M-4102C Modélisation et construction des applications16 réparties / 34
Fonctionnement d un réseau Fonctionnement des réseaux de Petri (règles sémantiques) Une transition est franchissable (ou tirable) (enabled) lorsqu il y a aumoins un jeton dans chacune de ses places en entrée. Une transition franchissable est franchie (instantanément) ou non franchie. Lorsque plusieurs transitions sont franchissables, une d entre elles (de façon non-déterministe) est franchie. Lorsqu une transition est franchie, on enlève un jeton de chacune de ses places en entrée et on ajoute un jeton dans chacune de ses places en sortie : modification du marquage. Chaque arc a un poids de 1 par défaut. J. Christian Attiogbé (Février 2009, maj 2015)DUT Informatique - Module M-4102C Modélisation et construction des applications17 réparties / 34 Fonctionnement d un réseau Fonctionnement du réseau : graphe et propriétés On étudie le modèle à partir du graphe de marquage (réseau borné). Marquage et vivacité : Transition vivace (vivante) = il y a toujours un chemin qui y passe ; Réseau vivace = tout noeud sans arc sortant contient au moins chaque transition Réseau sans blocage = à partir d un noeud il y a toujours un arc sortant. Interblocage : aucune action possible à partir d un noeud atteignable.... On peut avoir des réseaux non bornés. J. Christian Attiogbé (Février 2009, maj 2015)DUT Informatique - Module M-4102C Modélisation et construction des applications18 réparties / 34
Fonctionnement d un réseau Fonctionnement du réseau : graphe et propriétés Exemples de réseaux : Les philosophes (exo au tableau) Lecteurs/rédacteurs J. Christian Attiogbé (Février 2009, maj 2015)DUT Informatique - Module M-4102C Modélisation et construction des applications19 réparties / 34 Fonctionnement d un réseau Graphe associé à un réseau Le graphe (P, T, Γ, V) associé au réseau R = (P, T, Pre, Post) est défini par : p P Γ p (p) = {t T Pre(p, t) > 0} (transitions atteignables) t T Γ t (t) = {p P Post(p, t) > 0} (places atteignables) p P, t T, V(p, t) = Pre(p, t) et V(t, p) = Post(p, t). (valuation) J. Christian Attiogbé (Février 2009, maj 2015)DUT Informatique - Module M-4102C Modélisation et construction des applications20 réparties / 34
Fonctionnement d un réseau Exemple Soit P = {1, 2, 3, 4, 5} et T = {a, b, c, d, e}. Soient Pre et Post : Pre a b c d e Post a b c d e 1 1 0 0 0 0 1 0 0 0 1 0 2 0 1 0 0 0 2 1 0 0 0 0 3 0 0 1 0 0 3 1 0 0 0 1 4 0 0 0 1 0 4 0 1 0 0 0 5 0 0 0 1 1 5 0 0 1 0 0 soit M 0 = (1 0 0 0 0) le marquage initial. On construit le réseau suivant avec M 0 : J. Christian Attiogbé (Février 2009, maj 2015)DUT Informatique - Module M-4102C Modélisation et construction des applications21 réparties / 34 Graphe du réseau Fonctionnement d un réseau 1. a 3 2 c b 5 4 e d J. Christian Attiogbé (Février 2009, maj 2015)DUT Informatique - Module M-4102C Modélisation et construction des applications22 réparties / 34
Graphe de marquage : sémantique Graphe de marquage On construit le graphe sur l ensemble des marquages accessibles noté A(R, M) (ou espace d états) du réseau. Un état est un marquage. Si les places du réseau sont p 1, p 2,..., p P, un marquage est de la forme (µ(p 1 ), µ(p 2 ),..., µ(p P )). Le graphe des marquages est noté G(R, M). Ses sommets sont les éléments de A(R, M). Ses arcs sont etiquetés par t i tel que t i T. Soient M i des sommets, M 1 t M 2 ssi : M 1, M 2 t T, A(R, M), M 2 est accessible par t à partir de M 1 J. Christian Attiogbé (Février 2009, maj 2015)DUT Informatique - Module M-4102C Modélisation et construction des applications23 réparties / 34 Graphe de marquage : sémantique Entrée et sortie d une transition On appelle entrées d une transition t : les places Γ 1 (t) et On appelle sorties d une transition t : les places de Γ(t). On appelle entrées d une place p : les transitions Γ 1 (p) et sorties d une place p : les transitions de Γ(p). J. Christian Attiogbé (Février 2009, maj 2015)DUT Informatique - Module M-4102C Modélisation et construction des applications24 réparties / 34
Graphe de marquage : sémantique On donne Γ p et Γ t telles que : (on utilisera Γ t pour les transitions et Γ p pour les places et Γ abusivement pour les deux cas) Γ p (1) = {a} Γ p (2) = {b} Γ p (3) = {c} Γ p (4) = {d} Γ p (5) = {d, e} Γ t (a) = {2, 3} Γ t (b) = {4} Γ t (c) = {5} Γ t (d) = {1} Γ t (e) = {3} Construisez le graphe du réseau associé à cette description. J. Christian Attiogbé (Février 2009, maj 2015)DUT Informatique - Module M-4102C Modélisation et construction des applications25 réparties / 34 Graphe de marquage : sémantique Pondération des arcs, arcs inhibiteurs Arcs pondérés Arcs pondérés par défaut avec 1 Les arcs peuvent avoir un poids > 1 Exemple d utilisation : Lecteurs/rédacteur ; on veut autoriser n lectures ; mais exclusion entre un redacteur et les lecteurs ; rédaction en exclusion avec les lecteurs. J. Christian Attiogbé (Février 2009, maj 2015)DUT Informatique - Module M-4102C Modélisation et construction des applications26 réparties / 34
Graphe de marquage : sémantique Pondération des arcs Par défaut les arcs ont un poids de 1 repos buffer 1 1 1 produire 1 1 reposer production J. Christian Attiogbé (Février 2009, maj 2015)DUT Informatique - Module M-4102C Modélisation et construction des applications27 réparties / 34 Graphe de marquage : sémantique Pondération des arcs : consommation 3 par 3 de ce qui est produit : repos 1 1 1 buffer 3 produire 1 1 reposer 1 vider production J. Christian Attiogbé (Février 2009, maj 2015)DUT Informatique - Module M-4102C Modélisation et construction des applications28 réparties / 34
Graphe de marquage : sémantique Pondération des arcs : Modélisation de la composition des comportements des processus lecteurs/rédacteurs. N ressources sont disponibles pour la lecture ou la rédaction ; un seul processus rédacteur à la fois, 1 à N processus lecteurs peuvent lire simultanément, On veut assurer l exclusion entre lecture et rédaction. J. Christian Attiogbé (Février 2009, maj 2015)DUT Informatique - Module M-4102C Modélisation et construction des applications29 réparties / 34 Graphe de marquage : sémantique Arcs inhibiteurs Arcs inhibiteurs : permettent des franchissements spécifiques. Un RdP à arcs inhibiteur est une variante des RdP, où on un peut avoir une transition spécifique franchissable lorsque le marquage de la place entrante est 0. : patients/médecin (au tableau) J. Christian Attiogbé (Février 2009, maj 2015)DUT Informatique - Module M-4102C Modélisation et construction des applications30 réparties / 34
Graphe de marquage : sémantique Arcs inhibiteurs Modélisation de la détection de fin d un traitement... p1 n rscrc 1 prendre1 finir Traitement Terminaison FinTraiter J. Christian Attiogbé (Février 2009, maj 2015)DUT Informatique - Module M-4102C Modélisation et construction des applications31 réparties / 34 Graphe de marquage : sémantique Les limites des réseaux de Petri Manque de modularité pas de hiérarchisation pas de composition explicite Explosion du modèle (pour la modélisation de grands systèmes) Prise en compte de la modélisation des données... J. Christian Attiogbé (Février 2009, maj 2015)DUT Informatique - Module M-4102C Modélisation et construction des applications32 réparties / 34
Graphe de marquage : sémantique Les extensions des réseaux de Petri Il existe de nombreuses extensions pour les réseaux de Petri Réseaux de Petri avec des données (langage de données élaboré) HLPN (High-Level Petri Nets, réseaux de Petri avec prédicats, etc)... J. Christian Attiogbé (Février 2009, maj 2015)DUT Informatique - Module M-4102C Modélisation et construction des applications33 réparties / 34 Graphe de marquage : sémantique Références De nombreuses références existent : Génie logiciel, Réseaux de Petri, Racloz et Buchs Les réseaux de Petri, Un outil de modélisation, Annie Choquet-Geniet, Dunod... J. Christian Attiogbé (Février 2009, maj 2015)DUT Informatique - Module M-4102C Modélisation et construction des applications34 réparties / 34