SlideShare una empresa de Scribd logo
1 de 273
Descargar para leer sin conexión
`
                                       THESE
                                       Pour obtenir le grade de

                                                             ´
                                       DOCTEUR DE L’UNIVERSITE DE GRENOBLE
                                         ´      ´
                                       Specialite : Informatique
                                          ˆ ´        ´           ˆ ´       ´                                `
                                       Arretes ministeriels : Arrete ministeriel du 6 janvier 2005, relatif a la cotutelle internationale
                                            `          ´          ˆ ´        ´
                                       de these, modifie par l’arrete ministeriel du 7 aout 2006
                                                                                         ˆ

                                                ´
                                       Universite de cotutelle:            ´
                                                                  Universite Polytechnique de Bucarest


                                         ´    ´
                                       Presentee par

                                       Damien Thivolle
tel-00685209, version 1 - 4 Apr 2012




                                          `        ´
                                       These dirigee par Hubert Garavel
                                                 ´
                                       et codirigee par Valentin Cristea

                                          ´   ´
                                       preparee au sein Laboratoire d’Informatique de Grenoble et Laboratoire
                                                                    ´
                                       d’Informatique de l’Universite Polytechnique de Bucarest
                                                                    ´
                                       et de Ecole Doctorale Mathematiques, Sciences et Technologies de
                                       l’Information, Informatique




                                       Langages modernes pour la
                                           ´               ´
                                       modelisation et la verification des
                                           `
                                       systemes asynchrones

                                         `
                                       These soutenue publiquement le ,
                                                            ´
                                       devant le jury compose de :

                                       Monsieur, Dumitru Popescu
                                                  `            ´                              ´
                                       Professeur a l’Universite Polytechnique de Bucarest, President
                                       Monsieur, Ioan Jurca
                                                  `            ´
                                       Professeur a l’Universite Polytechnique de Timisoara, Rapporteur
                                                                                      ¸
                                       Monsieur, Charles Pecheur
                                                  `            ´
                                       Professeur a l’Universite Catholique de Louvain, Rapporteur
                                       Madame, Mihaela Sighireanu
                                                     ´       `            ´
                                       Maˆtre de Conferences a l’Universite Paris Diderot, Examinatrice
                                         ı
                                       Monsieur, Hubert Garavel
                                                              `                         `
                                       Directeur de Recherche a l’INRIA, Directeur de these
                                       Monsieur, Valentin Cristea
                                                  `            ´                                              `
                                       Professeur a l’Universite Polytechnique de Bucarest, Co-Directeur de these
R´sum´ :
                                        e   e
                                       Cette th`se se situe ` l’intersection de deux domaines-cl´s : l’ing´nierie dirig´e par les mod`les
                                                e            a                                      e        e           e             e
                                       (Idm) et les m´thodes formelles, avec diff´rents champs d’application. Elle porte sur la v´rification
                                                      e                           e                                               e
                                       formelle d’applications parall`les mod´lis´es selon l’approche Idm. Dans cette approche, les mod`les
                                                                     e        e e                                                      e
                                       tiennent un rˆle central et permettent de d´velopper une application par transformations successives
                                                    o                              e
                                       (automatis´es ou non) entre mod`les interm´diaires ` diff´rents niveaux d’abstraction, jusqu’` la
                                                  e                        e          e        a     e                                 a
                                       production de code ex´cutable. Lorsque les mod`les ont une s´mantique formelle, il est possible
                                                               e                            e            e
                                       d’effectuer une v´rification automatis´e ou semi-automatis´e de l’application. Ces principes sont mis
                                                        e                    e                     e
                                       en œuvre dans Topcased, un environnement de d´veloppement d’applications critiques embarqu´es
                                                                                           e                                            e
                                       bas´ sur Eclipse, qui permet la v´rification formelle par connexion ` des boˆ ` outils existantes.
                                           e                             e                                 a      ıtes a
                                       Cette th`se met en œuvre l’approche Topcased en s’appuyant sur la boˆ ` outils Cadp pour
                                                e                                                              ıte a
                                       la v´rification et sur son plus r´cent formalisme d’entr´e : Lotos NT. Elle aborde la v´rification
                                           e                           e                      e                              e
                                       formelle d’applications Idm ` travers deux probl`mes concrets :
                                                                   a                   e
                                       1) Pour les syst`mes Gals (Globalement Asynchrone, Localement Synchrone), une m´thode de
                                                         e                                                                       e
                                       v´rification g´n´rique par transformation en Lotos NT est propos´e, puis illustr´e sur une ´tude
                                        e            e e                                                    e              e          e
                                       de cas industrielle fournie par Airbus : un protocole pour les communications entre un avion et le sol
                                       d´crit dans le langage synchrone Sam con¸u par Airbus.
                                        e                                         c
tel-00685209, version 1 - 4 Apr 2012




                                       2) Pour les services Web d´crits ` l’aide de la norme Bpel (Business Process Execution Language),
                                                                 e      a
                                       une m´thode de v´rification est propos´e, qui est bas´e sur une transformation en Lotos NT des
                                             e            e                     e            e
                                       mod`les Bpel, en prenant en compte les sous-langages Xml Schema, XPath et Wsdl sur lesquels
                                           e
                                       repose la norme Bpel.

                                       Mots-cl´s : Ing´nierie dirig´e par les mod`les, m´thodes formelles, v´rification, LOTOS NT, CADP,
                                               e        e          e             e      e                   e
                                       syst`mes critiques, syst`mes GALS, Services Web, BPEL
                                           e                   e
Rezumat:
                                       Aceast˘ tez˘ de doctorat se situeaz˘ la intersectia a dou˘ domenii-cheie : ingineria dirijat˘ de modele
                                              a     a                       a            ¸         a                               a
                                       (Idm) ¸i metodele formale, cu diverse cˆmpuri de aplicare. Subiectul tratat este verificarea formal˘
                                              s                                  a                                                            a
                                       a aplicatiilor paralele modelizate conform abord˘rii Idm. In aceast˘ abordare, modelele joac˘ un
                                                ¸                                           a                   a                         a
                                       rol central ¸i permit dezvoltarea unei aplicatii prin transform˘ri succesive (automatizate sau nu)
                                                    s                                  ¸                  a
                                       ˆ
                                       ıntre modele intermediare cu diferite niveluri de abstractizare, pˆn˘ la producerea de cod executabil.
                                                                                                          a a
                                       Cˆnd modelele au o semantic˘ formal˘, este posibil˘ efectuarea unei verific˘ri automatizate sau semi-
                                         a                            a        a              a                      a
                                       automatizate a aplicatiei. Aceste principii sunt puse ˆ aplicare ˆ Topcased, un mediu de dezvoltare
                                                                ¸                               ın       ın
                                       a aplicatiilor critice ˆ
                                               ¸              ımbarcate bazat pe Eclipse, care permite verificarea formal˘ prin conectarea c˘tre
                                                                                                                        a                  a
                                       toolbox-uri existente.
                                       Aceast˘ tez˘ pune in aplicare abordarea Topcased bazˆndu-se pe toolbox-ul Cadp pentru verificare
                                               a   a                                              a
                                       ¸i pe formalismul lui cel mai recent acceptat ca intrare : Lotos NT. Verificarea formal˘ a aplicatiilor
                                       s                                                                                     a         ¸
                                       Idm este abordat˘ prin prisma a dou˘ probleme concrete :
                                                         a                    a
                                       1) Pentru sistemele Gals (Globally Asynchronous, Locally Synchronous), o metod˘ de verificare
                                                                                                                             a
                                       generic˘ prin transformare c˘tre Lotos NT este propus˘, apoi ilustrat˘ cu ajutorul unui studiu de
                                              a                     a                          a               a
                                       caz industrial furnizat de Airbus : un protocol pentru comunicatiile ˆ
                                                                                                      ¸     ıntre un avion ¸i sol, descris ˆ
                                                                                                                           s               ın
                                       limbajul sincron Sam conceput de Airbus.
tel-00685209, version 1 - 4 Apr 2012




                                       2) Pentru serviciile Web descrise cu ajutorul standardului Bpel (Business Process Execution Lan-
                                       guage), o metod˘ de verificare este propus˘, bazat˘ pe o transformare a modelelor Bpel ˆ
                                                         a                           a       a                                       ın
                                       Lotos NT, ¸inˆnd seama de sublimbajele Xml Schema, XPath ¸i Wsdl— pe care se bazeaz˘
                                                    t a                                                  s                            a
                                       standardul Bpel.

                                       Cuvinte cheie : Ingineria dirijat˘ de modele, metodele formale, verificare, LOTOS NT, CADP,
                                                                           a
                                       sistemele critice, sistemele GALS, Serviciile Web, BPEL
Abstract:
                                       The work in this thesis is at the intersection of two major research domains : Model-Driven Engi-
                                       neering (Mde) and formal methods, and has various fields of application. This thesis deals with the
                                       formal verification of parallel applications modelled by the Mde approach. In this approach, models
                                       play a central role and enable to develop an application through successive transformations (auto-
                                       mated or not) between intermediate models of differing levels of abstraction, until executable code is
                                       produced. When models have a formal semantics, the application can be verified, either automati-
                                       cally or semi-automatically. These principles are used in Topcased, an Eclipse-based development
                                       environment for critical embedded applications, which enables formal verification by interconnecting
                                       existing tools.
                                       This thesis implements the Topcased approach by relying on the Cadp toolbox for verifying systems,
                                       and on its most recent input formalism : Lotos NT. This thesis tackles the formal verification of
                                       Mde applications through two real problems :
                                       1) For Gals (Globally Asynchronous, Locally Synchronous), a generic verification method, based on
                                       a transformation to Lotos NT, is proposed and illustrated by an industrial case-study provided by
                                       Airbus : a communication protocol between the airplane and the ground described in the synchronous
                                       langage Sam designed at Airbus.
tel-00685209, version 1 - 4 Apr 2012




                                       2) For Web services specified with the Bpel (Business Process Execution Language) norm, a veri-
                                       fication method is proposed. It is based on a Bpel to Lotos NT transformation which takes into
                                       account Xml Schema, XPath, and Wsdl, the languages on which the Bpel norm is built.

                                       Keywords: Model-Driven Engineering, formal methods, verification, LOTOS NT, CADP, critical
                                       systems, GALS systems, Web services, BPEL
tel-00685209, version 1 - 4 Apr 2012




                                       Remerciements
Table des mati`res
                                                     e

                                       I    Pr´ambule
                                              e                                                                                                                                             1
                                       Notations                                                                                                                                            7

                                       1 Ing´nierie dirig´e par les mod`les
                                            e            e                 e                                                                                                                9
                                         1.1 Principes . . . . . . . . . . . . . . . . . . . . . . . . .           . . . . . . .               .   .   .   .   .   .   .   .   .   .   .    9
                                         1.2 Implantation dans Eclipse . . . . . . . . . . . . . . . .             . . . . . . .               .   .   .   .   .   .   .   .   .   .   .   11
                                              1.2.1 D´finition et manipulation de m´ta-mod`les . .
                                                      e                                e        e                  . . . . . . .               .   .   .   .   .   .   .   .   .   .   .   12
tel-00685209, version 1 - 4 Apr 2012




                                              1.2.2 Editeurs de mod`les . . . . . . . . . . . . . . .
                                                                     e                                             . . . . . . .               .   .   .   .   .   .   .   .   .   .   .   15
                                              1.2.3 Transformation de mod`les vers mod`les . . . .
                                                                             e              e                      . . . . . . .               .   .   .   .   .   .   .   .   .   .   .   17
                                              1.2.4 Transformations entre mod`les avec ATL . . .
                                                                                 e                                 . . . . . . .               .   .   .   .   .   .   .   .   .   .   .   19
                                              1.2.5 Transformations entre mod`les avec Kermeta .
                                                                                 e                                 . . . . . . .               .   .   .   .   .   .   .   .   .   .   .   21
                                              1.2.6 Transformations de mod`les avec Java . . . . .
                                                                              e                                    . . . . . . .               .   .   .   .   .   .   .   .   .   .   .   22
                                              1.2.7 G´n´ration de code (transformation de mod`les
                                                      e e                                           e              vers texte)                 .   .   .   .   .   .   .   .   .   .   .   22
                                         1.3 Le projet Topcased . . . . . . . . . . . . . . . . . . . .            . . . . . . .               .   .   .   .   .   .   .   .   .   .   .   25

                                       2 M´thodes formelles
                                            e                                                                                                                                              27
                                         2.1 Principes . . . . . . . . . . . . . . . . . . . . .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   27
                                         2.2 CADP . . . . . . . . . . . . . . . . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   28
                                              2.2.1 Les syst`mes de transitions . . . . . . .
                                                            e                                      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   28
                                              2.2.2 Alg`bres de processus . . . . . . . . . .
                                                        e                                          .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   28
                                              2.2.3 Techniques de v´rification . . . . . . . .
                                                                     e                             .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   29
                                              2.2.4 Les outils . . . . . . . . . . . . . . . . .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   29
                                         2.3 Pr´sentation de LOTOS NT . . . . . . . . . . .
                                                 e                                                 .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   30
                                         2.4 Sous-ensemble de LOTOS NT utilis´ . . . . . .
                                                                                   e               .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   30
                                              2.4.1 Identifiants . . . . . . . . . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   30
                                              2.4.2 D´finitions de modules . . . . . . . . . .
                                                      e                                            .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   31
                                              2.4.3 D´finitions de types . . . . . . . . . . .
                                                      e                                            .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   31
                                              2.4.4 D´finitions de fonctions . . . . . . . . .
                                                      e                                            .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   31
                                              2.4.5 Instructions . . . . . . . . . . . . . . . .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   32
                                              2.4.6 Expressions . . . . . . . . . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   34
                                              2.4.7 D´finitions de canaux de communication
                                                      e                                            .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   35
                                              2.4.8 D´finitions de processus . . . . . . . . .
                                                      e                                            .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   35
                                              2.4.9 Comportements . . . . . . . . . . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   35


                                       II   Mod´lisation et v´rification de syst`mes GALS
                                               e             e                 e                                                                                                           39
                                       3 Motivations                                                                                                                                       41


                                                                                         i
3.1    Paradigme synchrone . . . . . . . . . . . . . . . . .         .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   41
                                                 3.1.1 Syst`mes r´actifs . . . . . . . . . . . . . . .
                                                             e      e                                          .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   41
                                                 3.1.2 Mod`le de calcul synchrone . . . . . . . . .
                                                             e                                                 .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   42
                                                 3.1.3 Langages de programmation synchrone . . .               .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   43
                                                 3.1.4 V´rification des programmes synchrones . .
                                                          e                                                    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   44
                                          3.2    Syst`mes GALS . . . . . . . . . . . . . . . . . . . .
                                                      e                                                        .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   45
                                          3.3    Etat de l’art sur la v´rification de syst`mes GALS
                                                                       e                  e                    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   45
                                          3.4    Contributions . . . . . . . . . . . . . . . . . . . . .       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   47

                                       4 Approche propos´e e                                                                                                                                   49
                                         4.1 Description g´n´rale de l’approche . . . . . .
                                                          e e                                      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   49
                                         4.2 Encodage des programmes synchrones . . . .            .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   49
                                         4.3 Encapsulation dans un processus asynchrone            .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   50
                                         4.4 Communication avec l’environnement . . . . .          .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   52
                                         4.5 Le langage SAM . . . . . . . . . . . . . . . .        .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   53
                                             4.5.1 Pr´sentation . . . . . . . . . . . . . .
                                                       e                                           .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   53
                                             4.5.2 S´mantique . . . . . . . . . . . . . . .
                                                     e                                             .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   54
                                         4.6 Traduction de SAM en LOTOS NT . . . . . .             .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   55
tel-00685209, version 1 - 4 Apr 2012




                                       5 Application ` une ´tude de cas industrielle
                                                      a      e                                                                                                                                 59
                                         5.1 Description de l’´tude de cas . . . . . . . . . . . . . . . . . . .
                                                              e                                                                            . . . .         . . . .         .   .   .   .   .   59
                                             5.1.1 Protocole TFTP . . . . . . . . . . . . . . . . . . . . . .                              . . . .         . . . .         .   .   .   .   .   59
                                             5.1.2 Variante Airbus du protocole TFTP . . . . . . . . . . .                                 . . . .         . . . .         .   .   .   .   .   60
                                         5.2 Mod´lisation en LOTOS NT . . . . . . . . . . . . . . . . . . .
                                                  e                                                                                        . . . .         . . . .         .   .   .   .   .   61
                                             5.2.1 Mod´lisation d’entit´s TFTP simplifi´es . . . . . . . . .
                                                         e               e                e                                                . . . .         . . . .         .   .   .   .   .   61
                                             5.2.2 Mod´lisation d’entit´s TFTP r´alistes . . . . . . . . . .
                                                         e               e         e                                                       . . . .         . . . .         .   .   .   .   .   62
                                             5.2.3 Mod´lisation des liens de communication . . . . . . . .
                                                         e                                                                                 . . . .         . . . .         .   .   .   .   .   63
                                             5.2.4 Composition parall`le des liens de communication et des
                                                                        e                                                                  entit´s
                                                                                                                                                e          TFTP            .   .   .   .   .   65
                                         5.3 Description formelle des propri´t´s de bon fonctionnement . . .
                                                                            ee                                                             . . . .         . . . .         .   .   .   .   .   65
                                             5.3.1 Logique temporelle RAFMC de CADP . . . . . . . . . .                                    . . . .         . . . .         .   .   .   .   .   66
                                             5.3.2 Logique temporelle MCL de CADP . . . . . . . . . . . .                                  . . . .         . . . .         .   .   .   .   .   67
                                             5.3.3 Propri´t´s exprim´es en RAFMC . . . . . . . . . . . . .
                                                           ee         e                                                                    . . . .         . . . .         .   .   .   .   .   68
                                             5.3.4 Propri´t´s exprim´es en MCL . . . . . . . . . . . . . . .
                                                           ee         e                                                                    . . . .         . . . .         .   .   .   .   .   71
                                             5.3.5 Classification des propri´t´s . . . . . . . . . . . . . . . .
                                                                            ee                                                             . . . .         . . . .         .   .   .   .   .   78
                                         5.4 V´rification fonctionnelle des mod`les . . . . . . . . . . . . . .
                                               e                                e                                                          . . . .         . . . .         .   .   .   .   .   78
                                             5.4.1 G´n´ration de l’espace d’´tats . . . . . . . . . . . . . . .
                                                      e e                     e                                                            . . . .         . . . .         .   .   .   .   .   78
                                             5.4.2 G´n´ration directe . . . . . . . . . . . . . . . . . . . . .
                                                      e e                                                                                  . . . .         . . . .         .   .   .   .   .   79
                                             5.4.3 G´n´ration compositionnelle – niveau 1 . . . . . . . . .
                                                      e e                                                                                  . . . .         . . . .         .   .   .   .   .   80
                                             5.4.4 G´n´ration compositionnelle – niveau 2 . . . . . . . . .
                                                      e e                                                                                  . . . .         . . . .         .   .   .   .   .   82
                                             5.4.5 G´n´ration compositionnelle – niveau 3 . . . . . . . . .
                                                      e e                                                                                  . . . .         . . . .         .   .   .   .   .   83
                                             5.4.6 V´rification ` la vol´e . . . . . . . . . . . . . . . . . . .
                                                      e          a       e                                                                 . . . .         . . . .         .   .   .   .   .   85
                                             5.4.7 R´sultats de v´rification . . . . . . . . . . . . . . . . . .
                                                      e            e                                                                       . . . .         . . . .         .   .   .   .   .   86
                                         5.5 Evaluation des performances par simulation . . . . . . . . . . .                              . . . .         . . . .         .   .   .   .   .   87
                                             5.5.1 M´thodologie de simulation avec CADP . . . . . . . . .
                                                      e                                                                                    . . . .         . . . .         .   .   .   .   .   87
                                             5.5.2 R´sultats de simulation . . . . . . . . . . . . . . . . . .
                                                      e                                                                                    . . . .         . . . .         .   .   .   .   .   89


                                       III      Mod´lisation et v´rification de services Web
                                                   e             e                                                                                                                             91
                                       6 Les services Web                                                                                                                                      93


                                                                                            ii
6.1    Les origines des services Web . . . . . . . . . . . . . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   . 93
                                          6.2    Les solutions W3C : l’approche par les services Web . . . . .         .   .   .   .   .   .   .   .   .   .   .   .   .   . 94
                                          6.3    Les langages de description de services Web . . . . . . . . . .       .   .   .   .   .   .   .   .   .   .   .   .   .   . 95
                                          6.4    V´rification des services Web . . . . . . . . . . . . . . . . . .
                                                  e                                                                    .   .   .   .   .   .   .   .   .   .   .   .   .   . 96
                                          6.5    V´rification des donn´es uniquement . . . . . . . . . . . . . .
                                                  e                    e                                               .   .   .   .   .   .   .   .   .   .   .   .   .   . 97
                                          6.6    V´rification du comportement uniquement . . . . . . . . . . .
                                                  e                                                                    .   .   .   .   .   .   .   .   .   .   .   .   .   . 97
                                          6.7    V´rification du comportement en tenant compte des donn´es
                                                  e                                                            e       .   .   .   .   .   .   .   .   .   .   .   .   .   . 99
                                          6.8    Comparaison des approches de v´rification des services Web .
                                                                                   e                                   .   .   .   .   .   .   .   .   .   .   .   .   .   . 100
                                          6.9    Consid´rations pragmatiques . . . . . . . . . . . . . . . . . .
                                                        e                                                              .   .   .   .   .   .   .   .   .   .   .   .   .   . 101
                                          6.10   Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . .   .   .   .   .   .   .   .   .   .   .   .   .   .   . 102

                                       7 Traduction des types XML Schema                                                                                                       105
                                         7.1 Les termes de XML . . . . . . . . . . . . . . . . . . . . . . . . . . . .                     .   .   .   .   .   .   .   .   .   105
                                         7.2 Pr´sentation de XML Schema . . . . . . . . . . . . . . . . . . . . . . .
                                                e                                                                                          .   .   .   .   .   .   .   .   .   107
                                             7.2.1 Types sp´ciaux . . . . . . . . . . . . . . . . . . . . . . . . . . .
                                                             e                                                                             .   .   .   .   .   .   .   .   .   107
                                             7.2.2 Types pr´d´finis . . . . . . . . . . . . . . . . . . . . . . . . . .
                                                             e e                                                                           .   .   .   .   .   .   .   .   .   107
                                             7.2.3 Types simples . . . . . . . . . . . . . . . . . . . . . . . . . . . .                   .   .   .   .   .   .   .   .   .   109
                                             7.2.4 Types complexes . . . . . . . . . . . . . . . . . . . . . . . . . .                     .   .   .   .   .   .   .   .   .   111
                                             7.2.5 Types complexes ` contenu simple . . . . . . . . . . . . . . . .
                                                                      a                                                                    .   .   .   .   .   .   .   .   .   111
tel-00685209, version 1 - 4 Apr 2012




                                             7.2.6 Types complexes ` contenu complexe . . . . . . . . . . . . . . .
                                                                      a                                                                    .   .   .   .   .   .   .   .   .   111
                                             7.2.7 Attributs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                   .   .   .   .   .   .   .   .   .   112
                                             7.2.8 El´ments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
                                                       e                                                                                   .   .   .   .   .   .   .   .   .   113
                                             7.2.9 Exemple d’utilisation de XML Schema . . . . . . . . . . . . . .                         .   .   .   .   .   .   .   .   .   114
                                         7.3 Grammaire abstraite pour XML Schema . . . . . . . . . . . . . . . . .                         .   .   .   .   .   .   .   .   .   115
                                         7.4 Traduction en LOTOS NT . . . . . . . . . . . . . . . . . . . . . . . . .                      .   .   .   .   .   .   .   .   .   116
                                             7.4.1 Etat de l’art . . . . . . . . . . . . . . . . . . . . . . . . . . . .                   .   .   .   .   .   .   .   .   .   116
                                             7.4.2 Principe g´n´ral de traduction . . . . . . . . . . . . . . . . . .
                                                               e e                                                                         .   .   .   .   .   .   .   .   .   116
                                             7.4.3 Domaines et types de base . . . . . . . . . . . . . . . . . . . . .                     .   .   .   .   .   .   .   .   .   118
                                             7.4.4 Les conversions . . . . . . . . . . . . . . . . . . . . . . . . . . .                   .   .   .   .   .   .   .   .   .   119
                                             7.4.5 Les it´rateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . .
                                                          e                                                                                .   .   .   .   .   .   .   .   .   121
                                             7.4.6 Traduction des types pr´d´finis . . . . . . . . . . . . . . . . . .
                                                                            e e                                                            .   .   .   .   .   .   .   .   .   121
                                             7.4.7 Conversion des types pr´d´finis . . . . . . . . . . . . . . . . . .
                                                                            e e                                                            .   .   .   .   .   .   .   .   .   122
                                             7.4.8 It´rateurs pour les types pr´d´finis . . . . . . . . . . . . . . . .
                                                      e                         e e                                                        .   .   .   .   .   .   .   .   .   123
                                             7.4.9 Traduction des types simples . . . . . . . . . . . . . . . . . . .                      .   .   .   .   .   .   .   .   .   123
                                             7.4.10 Conversion des types simples . . . . . . . . . . . . . . . . . . .                     .   .   .   .   .   .   .   .   .   126
                                             7.4.11 It´rateurs pour les types simples . . . . . . . . . . . . . . . . .
                                                      e                                                                                    .   .   .   .   .   .   .   .   .   126
                                             7.4.12 Traduction des attributs des types complexes . . . . . . . . . .                       .   .   .   .   .   .   .   .   .   128
                                             7.4.13 Traduction des ´l´ments racine . . . . . . . . . . . . . . . . . .
                                                                    ee                                                                     .   .   .   .   .   .   .   .   .   129
                                             7.4.14 Conversion des ´l´ments racine . . . . . . . . . . . . . . . . . .
                                                                    ee                                                                     .   .   .   .   .   .   .   .   .   130
                                             7.4.15 It´rateurs pour les ´l´ments racine . . . . . . . . . . . . . . . .
                                                      e                 ee                                                                 .   .   .   .   .   .   .   .   .   130
                                             7.4.16 Traduction des ´l´ments des types complexes . . . . . . . . . .
                                                                    ee                                                                     .   .   .   .   .   .   .   .   .   130
                                             7.4.17 Traduction des types complexes . . . . . . . . . . . . . . . . . .                     .   .   .   .   .   .   .   .   .   132
                                         7.5 Traduction des constantes BPEL . . . . . . . . . . . . . . . . . . . . .                      .   .   .   .   .   .   .   .   .   133
                                             7.5.1 Grammaire des constantes BPEL . . . . . . . . . . . . . . . . .                         .   .   .   .   .   .   .   .   .   135
                                             7.5.2 Principe g´n´ral de traduction des constantes . . . . . . . . . .
                                                               e e                                                                         .   .   .   .   .   .   .   .   .   135
                                             7.5.3 Traduction des constantes de type simple . . . . . . . . . . . .                        .   .   .   .   .   .   .   .   .   136
                                             7.5.4 Traduction des constantes de type ´l´ment racine . . . . . . . .
                                                                                         ee                                                .   .   .   .   .   .   .   .   .   136
                                             7.5.5 Traduction d’un attribut dans le contenu d’une constante . . .                          .   .   .   .   .   .   .   .   .   137
                                             7.5.6 Traduction des attributs dans le contenu d’une constante . . .                          .   .   .   .   .   .   .   .   .   138
                                             7.5.7 Traduction d’un sous-´l´ment dans le contenu d’une constante
                                                                           ee                                                              .   .   .   .   .   .   .   .   .   139

                                                                                            iii
7.5.8 Traduction des sous-´l´ments dans le contenu d’une constante . . . . . . . . . . 141
                                                                          ee
                                                7.5.9 Traduction du contenu simple d’une constante . . . . . . . . . . . . . . . . . . 144
                                                7.5.10 Traduction du contenu complexe d’une constante . . . . . . . . . . . . . . . . . 145

                                       8 Traduction des expressions XPath                                                                                                           147
                                         8.1 Mod`le de donn´es . . . . . . . . . . . . . . . . . . .
                                                  e         e                                           .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   147
                                         8.2 Partitionnement d’un arbre Xml autour d’un nœud            .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   149
                                         8.3 Syntaxe normalis´e . . . . . . . . . . . . . . . . . . .
                                                              e                                         .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   151
                                         8.4 S´mantique statique normalis´e . . . . . . . . . . . .
                                              e                            e                            .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   153
                                         8.5 S´mantique dynamique normalis´e . . . . . . . . . .
                                              e                               e                         .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   154
                                             8.5.1 Contexte d’´valuation . . . . . . . . . . . . .
                                                                e                                       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   154
                                             8.5.2 S´mantique d´notationnelle . . . . . . . . . .
                                                      e           e                                     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   155
                                         8.6 Traduction en LOTOS NT . . . . . . . . . . . . . . .       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   158
                                             8.6.1 Etat de l’art . . . . . . . . . . . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   158
                                             8.6.2 Sous-ensemble utile de XPath . . . . . . . . .       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   159
                                             8.6.3 S´mantique statique simplifi´e . . . . . . . .
                                                      e                          e                      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   160
                                             8.6.4 S´mantique op´rationnelle simplifi´e . . . . .
                                                      e             e                   e               .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   169

                                       9 Traduction des interfaces WSDL                                                                                                             173
tel-00685209, version 1 - 4 Apr 2012




                                         9.1 Pr´sentation du langage WSDL . . . . . . . . . . . . . .
                                                e                                                               .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   173
                                             9.1.1 Messages . . . . . . . . . . . . . . . . . . . . . .         .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   174
                                             9.1.2 Fonctions distantes . . . . . . . . . . . . . . . . .        .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   174
                                             9.1.3 Fonctionnalit´ d’un service . . . . . . . . . . . .
                                                                  e                                             .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   175
                                             9.1.4 Types de liens de communication . . . . . . . . .            .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   175
                                             9.1.5 Grammaire Wsdl . . . . . . . . . . . . . . . . .             .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   175
                                         9.2 Traduction en LOTOS NT . . . . . . . . . . . . . . . . .           .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   176
                                         9.3 Etat de l’art des traductions d’interfaces WSDL . . . . .          .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   176
                                         9.4 D´finition de la traduction . . . . . . . . . . . . . . . . .
                                               e                                                                .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   176
                                         9.5 Traduction d’une interface WSDL . . . . . . . . . . . .            .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   178
                                         9.6 Traduction des messages . . . . . . . . . . . . . . . . . .        .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   178
                                         9.7 Traduction des fonctionnalit´s de services . . . . . . . .
                                                                          e                                     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   178
                                             9.7.1 Traduction des fonctionnalit´s de service . . . . .
                                                                                  e                             .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   179
                                             9.7.2 Traduction des types de liens de communication               .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   179
                                             9.7.3 Traduction des exceptions . . . . . . . . . . . . .          .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   179

                                       10 Traduction des services BPEL                                                                                                              181
                                          10.1 Pr´sentation du langage BPEL . . . . . . . . . . . . . .
                                                 e                                                              .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   181
                                               10.1.1 Mod`le de communication . . . . . . . . . . . . .
                                                            e                                                   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   181
                                               10.1.2 Vue d’ensemble d’un service Web BPEL . . . . .            .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   182
                                               10.1.3 Relations entre activit´s, services et sous-services
                                                                             e                                  .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   184
                                               10.1.4 Abr´viations syntaxiques . . . . . . . . . . . . .
                                                           e                                                    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   184
                                               10.1.5 Syntaxe concr`te d’un service BPEL . . . . . . .
                                                                     e                                          .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   185
                                               10.1.6 Attribut sp´cial “suppressJoinFailure . . . . . . .
                                                                  e                                             .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   186
                                               10.1.7 Variables . . . . . . . . . . . . . . . . . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   186
                                               10.1.8 Inclusion de fichiers XML Schema et WSDL . . .             .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   187
                                               10.1.9 Extensions du langage Bpel . . . . . . . . . . .          .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   187
                                               10.1.10 Liens de communication . . . . . . . . . . . . . .       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   187
                                               10.1.11 M´canisme d’´changes de messages . . . . . . . .
                                                         e          e                                           .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   188
                                               10.1.12 M´canisme de corr´lation . . . . . . . . . . . . .
                                                         e               e                                      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   189
                                               10.1.13 Gestionnaires d’exceptions . . . . . . . . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   190


                                                                                          iv
10.1.14 Gestionnaires d’´v´nements . . . . . . . . . . . . . . . .
                                                                       e e                                            .   .   .   .   .   .   .   .   .   .   .   .   .   191
                                              10.1.15 Activit´s . . . . . . . . . . . . . . . . . . . . . . . . . .
                                                             e                                                        .   .   .   .   .   .   .   .   .   .   .   .   .   192
                                              10.1.16 Activit´ “empty” . . . . . . . . . . . . . . . . . . . . . .
                                                             e                                                        .   .   .   .   .   .   .   .   .   .   .   .   .   192
                                              10.1.17 Activit´ “exit” . . . . . . . . . . . . . . . . . . . . . . .
                                                             e                                                        .   .   .   .   .   .   .   .   .   .   .   .   .   193
                                              10.1.18 Activit´ “wait” . . . . . . . . . . . . . . . . . . . . . . .
                                                             e                                                        .   .   .   .   .   .   .   .   .   .   .   .   .   193
                                              10.1.19 Activit´ “receive” . . . . . . . . . . . . . . . . . . . . .
                                                             e                                                        .   .   .   .   .   .   .   .   .   .   .   .   .   193
                                              10.1.20 Activit´ “reply” . . . . . . . . . . . . . . . . . . . . . .
                                                             e                                                        .   .   .   .   .   .   .   .   .   .   .   .   .   194
                                              10.1.21 Activit´ “invoke” . . . . . . . . . . . . . . . . . . . . . .
                                                             e                                                        .   .   .   .   .   .   .   .   .   .   .   .   .   194
                                              10.1.22 Activit´ “throw” . . . . . . . . . . . . . . . . . . . . . .
                                                             e                                                        .   .   .   .   .   .   .   .   .   .   .   .   .   195
                                              10.1.23 Activit´ “rethrow” . . . . . . . . . . . . . . . . . . . . .
                                                             e                                                        .   .   .   .   .   .   .   .   .   .   .   .   .   195
                                              10.1.24 Activit´ “assign” . . . . . . . . . . . . . . . . . . . . . .
                                                             e                                                        .   .   .   .   .   .   .   .   .   .   .   .   .   195
                                              10.1.25 Activit´ “validate” . . . . . . . . . . . . . . . . . . . . .
                                                             e                                                        .   .   .   .   .   .   .   .   .   .   .   .   .   197
                                              10.1.26 Activit´ “sequence” . . . . . . . . . . . . . . . . . . . .
                                                             e                                                        .   .   .   .   .   .   .   .   .   .   .   .   .   197
                                              10.1.27 Activit´ “if” . . . . . . . . . . . . . . . . . . . . . . . .
                                                             e                                                        .   .   .   .   .   .   .   .   .   .   .   .   .   197
                                              10.1.28 Activit´ “while” . . . . . . . . . . . . . . . . . . . . . .
                                                             e                                                        .   .   .   .   .   .   .   .   .   .   .   .   .   198
                                              10.1.29 Activit´ “repeatUntil” . . . . . . . . . . . . . . . . . . .
                                                             e                                                        .   .   .   .   .   .   .   .   .   .   .   .   .   198
                                              10.1.30 Activit´ “forEach” . . . . . . . . . . . . . . . . . . . . .
                                                             e                                                        .   .   .   .   .   .   .   .   .   .   .   .   .   198
                                              10.1.31 Activit´ “pick” . . . . . . . . . . . . . . . . . . . . . . .
                                                             e                                                        .   .   .   .   .   .   .   .   .   .   .   .   .   199
tel-00685209, version 1 - 4 Apr 2012




                                              10.1.32 Activit´ “flow” et liens de contrˆle . . . . . . . . . . . .
                                                             e                         o                              .   .   .   .   .   .   .   .   .   .   .   .   .   200
                                              10.1.33 Activit´ “extensionActivity” . . . . . . . . . . . . . . .
                                                             e                                                        .   .   .   .   .   .   .   .   .   .   .   .   .   202
                                              10.1.34 Activit´ “scope” et notion de sous-service . . . . . . . .
                                                             e                                                        .   .   .   .   .   .   .   .   .   .   .   .   .   203
                                              10.1.35 Gestionnaires de compensation . . . . . . . . . . . . . .       .   .   .   .   .   .   .   .   .   .   .   .   .   204
                                         10.2 Traduction en LOTOS NT . . . . . . . . . . . . . . . . . . . . .        .   .   .   .   .   .   .   .   .   .   .   .   .   205
                                              10.2.1 Restrictions . . . . . . . . . . . . . . . . . . . . . . . . .   .   .   .   .   .   .   .   .   .   .   .   .   .   205
                                              10.2.2 Syntaxe abstraite du sous-ensemble de BPEL consid´r´      e e    .   .   .   .   .   .   .   .   .   .   .   .   .   208
                                              10.2.3 Traduction des d´clarations de services . . . . . . . . . .
                                                                        e                                             .   .   .   .   .   .   .   .   .   .   .   .   .   208
                                              10.2.4 Pr´servation de l’atomicit´ des activit´s atomiques . . .
                                                        e                        e            e                       .   .   .   .   .   .   .   .   .   .   .   .   .   210
                                              10.2.5 Gestion des variables partag´es . . . . . . . . . . . . . .
                                                                                   e                                  .   .   .   .   .   .   .   .   .   .   .   .   .   211
                                              10.2.6 Gestion des exceptions . . . . . . . . . . . . . . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   213
                                              10.2.7 Gestion des ´v´nements . . . . . . . . . . . . . . . . . .
                                                                   e e                                                .   .   .   .   .   .   .   .   .   .   .   .   .   216
                                              10.2.8 Traduction de l’activit´ “empty” . . . . . . . . . . . . .
                                                                             e                                        .   .   .   .   .   .   .   .   .   .   .   .   .   218
                                              10.2.9 Traduction de l’activit´ “exit” . . . . . . . . . . . . . .
                                                                             e                                        .   .   .   .   .   .   .   .   .   .   .   .   .   219
                                              10.2.10 Traduction de l’activit´ “wait” . . . . . . . . . . . . . .
                                                                             e                                        .   .   .   .   .   .   .   .   .   .   .   .   .   219
                                              10.2.11 Traduction de l’activit´ “receive” . . . . . . . . . . . . .
                                                                             e                                        .   .   .   .   .   .   .   .   .   .   .   .   .   220
                                              10.2.12 Traduction de l’activit´ “reply” . . . . . . . . . . . . . .
                                                                             e                                        .   .   .   .   .   .   .   .   .   .   .   .   .   220
                                              10.2.13 Traduction de l’activit´ “invoke” . . . . . . . . . . . . .
                                                                             e                                        .   .   .   .   .   .   .   .   .   .   .   .   .   221
                                              10.2.14 Traduction de l’activit´ “assign” . . . . . . . . . . . . .
                                                                             e                                        .   .   .   .   .   .   .   .   .   .   .   .   .   223
                                              10.2.15 Traduction de l’activit´ “throw” . . . . . . . . . . . . .
                                                                             e                                        .   .   .   .   .   .   .   .   .   .   .   .   .   224
                                              10.2.16 Traduction de l’activit´ “rethrow” . . . . . . . . . . . .
                                                                             e                                        .   .   .   .   .   .   .   .   .   .   .   .   .   225
                                              10.2.17 Traduction de l’activit´ “validate” . . . . . . . . . . . .
                                                                             e                                        .   .   .   .   .   .   .   .   .   .   .   .   .   225
                                              10.2.18 Traduction de l’activit´ “sequence” . . . . . . . . . . . .
                                                                             e                                        .   .   .   .   .   .   .   .   .   .   .   .   .   226
                                              10.2.19 Traduction de l’activit´ “if” . . . . . . . . . . . . . . . .
                                                                             e                                        .   .   .   .   .   .   .   .   .   .   .   .   .   226
                                              10.2.20 Traduction de l’activit´ “while” . . . . . . . . . . . . . .
                                                                             e                                        .   .   .   .   .   .   .   .   .   .   .   .   .   226
                                              10.2.21 Traduction de l’activit´ “repeatUntil” . . . . . . . . . .
                                                                             e                                        .   .   .   .   .   .   .   .   .   .   .   .   .   227
                                              10.2.22 Traduction de l’activit´ “forEach” . . . . . . . . . . . .
                                                                             e                                        .   .   .   .   .   .   .   .   .   .   .   .   .   228
                                              10.2.23 Traduction de l’activit´ “pick” . . . . . . . . . . . . . .
                                                                             e                                        .   .   .   .   .   .   .   .   .   .   .   .   .   229
                                              10.2.24 Traduction de l’activit´ “flow” et des liens de contrˆle .
                                                                             e                               o        .   .   .   .   .   .   .   .   .   .   .   .   .   230
                                              10.2.25 Traduction des activit´s au sein de l’activit´ “flow” . . .
                                                                             e                      e                 .   .   .   .   .   .   .   .   .   .   .   .   .   235

                                       11 Conception d’un traducteur automatique                                                                                          241

                                                                                          v
11.1 Choix du langage de programmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
                                         11.2 R´alisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
                                               e
                                         11.3 Espaces de noms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243


                                       IV   Conclusion                                                                                      245
                                       Bibliographie                                                                                        253
tel-00685209, version 1 - 4 Apr 2012




                                                                                          vi
tel-00685209, version 1 - 4 Apr 2012




                            e
                                       Partie I

                          Pr´ambule
tel-00685209, version 1 - 4 Apr 2012
Introduction

                                       Cette th`se s’est effectu´e en co-tutelle entre l’Universit´ Joseph Fourier de Grenoble, France et
                                                e                e                               e
                                       l’Universit´ Polytechnique de Bucarest, Roumanie. Les travaux de recherche ont ´t´ effectu´s au
                                                  e                                                                      ee        e
                                       centre Inria de Grenoble Rhˆne-Alpes, sous la direction de Hubert Garavel, et au Laboratoire
                                                                       o
                                       d’Informatique de la Facult´ d’Automatique et d’Ordinateurs de l’Universit´ Polytechnique de Bu-
                                                                    e                                             e
                                       carest, sous la direction de Valentin Cristea.
tel-00685209, version 1 - 4 Apr 2012




                                       V´rification des syst`mes asynchrones
                                        e                  e
                                       Un syst`me asynchrone est constitu´ d’un ensemble de composants qui ´voluent ind´pendamment
                                                e                             e                                    e            e
                                       et qui communiquent ponctuellement pour se synchroniser et ´ventuellement ´changer des donn´es.
                                                                                                        e               e                 e
                                       Les syst`mes asynchrones se distinguent donc des syst`mes synchrones dans lesquels les composants
                                                e                                              e
                                       ´voluent ` l’unisson selon une horloge commune. En effet, mˆme s’il a ´t´ d´montr´ que le paradigme
                                       e          a                                                  e        ee e          e
                                       de programmation asynchrone et le paradigme de programmation synchrone sont ´quivalents [Mil83],
                                                                                                                           e
                                       les langages asynchrones et synchrones sont adapt´s ` la description de classes de syst`mes diff´rentes.
                                                                                          e a                                 e       e
                                       De nos jours, les syst`mes asynchrones sont omnipr´sents (protocoles de communication, processeurs
                                                              e                             e
                                       multi-cœurs...) et tendent ` s’imposer dans des domaines autrefois exclusivement constitu´s de
                                                                      a                                                                 e
                                       syst`mes synchrones, tels que les contrˆleurs critiques embarqu´s (dans les avions, voitures, trains...)
                                            e                                   o                       e
                                       ou les circuits int´gr´s (g´n´ralisation des syst`mes sur puce).
                                                          e e     e e                   e
                                       La validation du bon comportement de tels syst`mes est un domaine de recherche important qui
                                                                                            e
                                       englobe diverses techniques telles que le test classique, le test unitaire, la simulation, l’analyse de code
                                       et la v´rification formelle. La v´rification formelle consiste ` analyser un mod`le du syst`me pour
                                              e                           e                              a                    e          e
                                       v´rifier qu’il remplit des crit`res d’exigences d´finis sous la forme de propri´t´s de bon fonctionnement
                                         e                           e                 e                                ee
                                       (le plus souvent exprim´es par des formules de logique temporelle), on parle alors de v´rification
                                                                 e                                                                       e
                                       exhaustive ou model checking [CES83], ou bien sous la forme d’un second mod`le du syst`me, on
                                                                                                                                e          e
                                       parle alors de v´rification par ´quivalence ou equivalence checking [NH84].
                                                        e               e
                                       La v´rification formelle est tr`s efficace1 , mais tr`s complexe ` mettre en oœuvre. En effet, cette
                                             e                        e                     e            a
                                       technique n´cessite d’avoir ` disposition des outils performants mais aussi de connaˆ parfaitement
                                                   e                a                                                        ıtre
                                       les langages d’entr´e de ces outils : les alg`bres de processus pour la mod´lisation des syst`mes ainsi
                                                          e                          e                            e                 e
                                       que les logiques temporelles pour la sp´cification des propri´t´s de bon fonctionnement. Dans cette
                                                                                 e                    ee
                                       th`se, nous consid´rons les cas de la boˆ ` outils de v´rification formelle Cadp [GLMS11], et de son
                                          e               e                      ıte a          e
                                       plus r´cent langage d’entr´e : l’alg`bre de processus Lotos NT [Sig00, CCG+ 10].
                                               e                  e         e
                                         1 http://ercim-news.ercim.eu/model-checking-of-safety-critical-software-for-avionics
4

                                       Ing´nierie dirig´e par les mod`les
                                          e            e             e
                                       Ces derni`res ann´es ont vu l’apparition d’une nouvelle approche de d´veloppement logiciel appel´
                                                  e        e                                                      e                            e
                                       l’ing´nierie dirig´e par les mod`les [Ken02] (Mde ou Model-Driven Engineering en anglais). Dans
                                            e            e             e
                                       ce paradigme, les mod`les d’une application ont un rˆle fondamental. Chaque mod`le repr´sente
                                                                e                               o                                 e       e
                                       l’application ` un niveau d’abstraction particulier. La r´alisation de l’application s’effectue par trans-
                                                     a                                          e
                                       formations successives, manuelles, automatis´es ou semi-automatis´es, des mod`les jusqu’` l’obtention
                                                                                    e                       e            e          a
                                       d’un mod`le final.
                                                  e
                                       Grˆce ` des outils appropri´s, l’approche Idm facilite la cr´ation d’´diteurs, de transformateurs et de
                                           a a                     e                               e        e
                                       g´n´rateurs de code pour les mod`les. La v´rification formelle s’inscrit ais´ment dans l’approche Idm.
                                         e e                             e         e                              e
                                       En effet, en consid´rant comme mod`le final d’une chaˆ de transformations, un mod`le d´crit dans
                                                          e                  e                 ıne                              e   e
                                       une alg`bre de processus, il devient possible de combiner l’approche Idm et la v´rification formelle.
                                              e                                                                            e
                                       En appliquant ce principe, l’environnement Topcased2 , cr´´ par extension de l’environnement de
                                                                                                     ee
                                       d´veloppement int´gr´ (Ide ou Integrated Developement Environment en anglais) Eclipse, vise ` con-
                                         e                e e                                                                          a
                                       necter des langages de mod´lisation d’applications critiques (de l’industrie a´ronautique notamment)
                                                                   e                                                  e
                                       ` des outils de v´rification formelle tels que Cadp3 .
                                       a                e
tel-00685209, version 1 - 4 Apr 2012




                                       Langages d´di´s
                                                 e e
                                       Dsl [VDKV00] (Domain-Specific Language) est un terme g´n´rique d´signant les langages de pro-
                                                                                                     e e        e
                                       grammation ou de mod´lisation d´di´s ` un domaine particulier, par opposition aux langages de
                                                                e           e e a
                                       programmation (C, Java) ou de mod´lisation (Uml [OMG97]) classiques qui ont une vocation plus
                                                                              e
                                       g´n´rale. Un Dsl exhibe usuellement un nombre restreint de constructions de fa¸on ` pouvoir d´crire
                                        e e                                                                               c a             e
                                       aussi succintement que possible les applications relevant du domaine qu’il couvre. Les mod`les       e
                                       d’applications ´crits dans les langages d´di´s sont donc souvent simples et se prˆtent bien ` l’approche
                                                       e                        e e                                     e          a
                                       Idm. Les exemples de langages d´di´s incluent : Sql [Cod70] pour interroger des syst`mes de gestion
                                                                          e e                                                  e
                                       de bases de donn´es, Yacc [Joh75] pour d´crire des analyseurs syntaxiques ou encore les langages de
                                                         e                         e
                                       shell script des syst`mes Unix tels que sh et csh.
                                                            e
                                       Dans cette th`se, nous consid´rons les cas particuliers de deux Dsls : Sam [CGT08], dans le cadre
                                                     e               e
                                       des travaux effectu´s ` l’Inria et Bpel [Com01], dans le cadre des travaux effectu´s ` l’Universit´
                                                          e a                                                               e a           e
                                       Polytechnique de Bucarest. Sam est un langage de programmation synchrone d´fini par Airbus pour
                                                                                                                        e
                                       sp´cifier des syst`mes de contrˆle pour les avions tandis que Bpel est une norme du consortium Oasis4
                                         e              e            o
                                       pour la d´finition de services Web. Ces deux langages, bien que s´mantiquement tr`s diff´rents,
                                                 e                                                            e                e     e
                                       poss`dent de nombreux points communs :
                                           e
                                           • Ce sont des langages d´di´s pour lesquels Eclipse poss`de des environnements de travail.
                                                                   e e                             e
                                           • Ils peuvent servir ` la d´finition d’applications critiques : des contrˆleurs avioniques pour Sam
                                                                a     e                                            o
                                             et des applications de commerce ´lectronique pour Bpel.
                                                                                e
                                           • Ils peuvent d´finir des syst`mes concurrents.
                                                          e             e
                                           • Ils sont utilis´s industriellement.
                                                            e
                                           • Il existe un besoin de v´rification formelle pour les applications d´crites dans ces langages.
                                                                     e                                          e
                                           2 http://www.topcased.org
                                           3 http://vasy.inria.fr/cadp
                                           4 http://www.oasis-open.org
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_

Más contenido relacionado

Destacado

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Destacado (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

19727 thivolle 2011_archivage_1_

  • 1. ` THESE Pour obtenir le grade de ´ DOCTEUR DE L’UNIVERSITE DE GRENOBLE ´ ´ Specialite : Informatique ˆ ´ ´ ˆ ´ ´ ` Arretes ministeriels : Arrete ministeriel du 6 janvier 2005, relatif a la cotutelle internationale ` ´ ˆ ´ ´ de these, modifie par l’arrete ministeriel du 7 aout 2006 ˆ ´ Universite de cotutelle: ´ Universite Polytechnique de Bucarest ´ ´ Presentee par Damien Thivolle tel-00685209, version 1 - 4 Apr 2012 ` ´ These dirigee par Hubert Garavel ´ et codirigee par Valentin Cristea ´ ´ preparee au sein Laboratoire d’Informatique de Grenoble et Laboratoire ´ d’Informatique de l’Universite Polytechnique de Bucarest ´ et de Ecole Doctorale Mathematiques, Sciences et Technologies de l’Information, Informatique Langages modernes pour la ´ ´ modelisation et la verification des ` systemes asynchrones ` These soutenue publiquement le , ´ devant le jury compose de : Monsieur, Dumitru Popescu ` ´ ´ Professeur a l’Universite Polytechnique de Bucarest, President Monsieur, Ioan Jurca ` ´ Professeur a l’Universite Polytechnique de Timisoara, Rapporteur ¸ Monsieur, Charles Pecheur ` ´ Professeur a l’Universite Catholique de Louvain, Rapporteur Madame, Mihaela Sighireanu ´ ` ´ Maˆtre de Conferences a l’Universite Paris Diderot, Examinatrice ı Monsieur, Hubert Garavel ` ` Directeur de Recherche a l’INRIA, Directeur de these Monsieur, Valentin Cristea ` ´ ` Professeur a l’Universite Polytechnique de Bucarest, Co-Directeur de these
  • 2. R´sum´ : e e Cette th`se se situe ` l’intersection de deux domaines-cl´s : l’ing´nierie dirig´e par les mod`les e a e e e e (Idm) et les m´thodes formelles, avec diff´rents champs d’application. Elle porte sur la v´rification e e e formelle d’applications parall`les mod´lis´es selon l’approche Idm. Dans cette approche, les mod`les e e e e tiennent un rˆle central et permettent de d´velopper une application par transformations successives o e (automatis´es ou non) entre mod`les interm´diaires ` diff´rents niveaux d’abstraction, jusqu’` la e e e a e a production de code ex´cutable. Lorsque les mod`les ont une s´mantique formelle, il est possible e e e d’effectuer une v´rification automatis´e ou semi-automatis´e de l’application. Ces principes sont mis e e e en œuvre dans Topcased, un environnement de d´veloppement d’applications critiques embarqu´es e e bas´ sur Eclipse, qui permet la v´rification formelle par connexion ` des boˆ ` outils existantes. e e a ıtes a Cette th`se met en œuvre l’approche Topcased en s’appuyant sur la boˆ ` outils Cadp pour e ıte a la v´rification et sur son plus r´cent formalisme d’entr´e : Lotos NT. Elle aborde la v´rification e e e e formelle d’applications Idm ` travers deux probl`mes concrets : a e 1) Pour les syst`mes Gals (Globalement Asynchrone, Localement Synchrone), une m´thode de e e v´rification g´n´rique par transformation en Lotos NT est propos´e, puis illustr´e sur une ´tude e e e e e e de cas industrielle fournie par Airbus : un protocole pour les communications entre un avion et le sol d´crit dans le langage synchrone Sam con¸u par Airbus. e c tel-00685209, version 1 - 4 Apr 2012 2) Pour les services Web d´crits ` l’aide de la norme Bpel (Business Process Execution Language), e a une m´thode de v´rification est propos´e, qui est bas´e sur une transformation en Lotos NT des e e e e mod`les Bpel, en prenant en compte les sous-langages Xml Schema, XPath et Wsdl sur lesquels e repose la norme Bpel. Mots-cl´s : Ing´nierie dirig´e par les mod`les, m´thodes formelles, v´rification, LOTOS NT, CADP, e e e e e e syst`mes critiques, syst`mes GALS, Services Web, BPEL e e
  • 3. Rezumat: Aceast˘ tez˘ de doctorat se situeaz˘ la intersectia a dou˘ domenii-cheie : ingineria dirijat˘ de modele a a a ¸ a a (Idm) ¸i metodele formale, cu diverse cˆmpuri de aplicare. Subiectul tratat este verificarea formal˘ s a a a aplicatiilor paralele modelizate conform abord˘rii Idm. In aceast˘ abordare, modelele joac˘ un ¸ a a a rol central ¸i permit dezvoltarea unei aplicatii prin transform˘ri succesive (automatizate sau nu) s ¸ a ˆ ıntre modele intermediare cu diferite niveluri de abstractizare, pˆn˘ la producerea de cod executabil. a a Cˆnd modelele au o semantic˘ formal˘, este posibil˘ efectuarea unei verific˘ri automatizate sau semi- a a a a a automatizate a aplicatiei. Aceste principii sunt puse ˆ aplicare ˆ Topcased, un mediu de dezvoltare ¸ ın ın a aplicatiilor critice ˆ ¸ ımbarcate bazat pe Eclipse, care permite verificarea formal˘ prin conectarea c˘tre a a toolbox-uri existente. Aceast˘ tez˘ pune in aplicare abordarea Topcased bazˆndu-se pe toolbox-ul Cadp pentru verificare a a a ¸i pe formalismul lui cel mai recent acceptat ca intrare : Lotos NT. Verificarea formal˘ a aplicatiilor s a ¸ Idm este abordat˘ prin prisma a dou˘ probleme concrete : a a 1) Pentru sistemele Gals (Globally Asynchronous, Locally Synchronous), o metod˘ de verificare a generic˘ prin transformare c˘tre Lotos NT este propus˘, apoi ilustrat˘ cu ajutorul unui studiu de a a a a caz industrial furnizat de Airbus : un protocol pentru comunicatiile ˆ ¸ ıntre un avion ¸i sol, descris ˆ s ın limbajul sincron Sam conceput de Airbus. tel-00685209, version 1 - 4 Apr 2012 2) Pentru serviciile Web descrise cu ajutorul standardului Bpel (Business Process Execution Lan- guage), o metod˘ de verificare este propus˘, bazat˘ pe o transformare a modelelor Bpel ˆ a a a ın Lotos NT, ¸inˆnd seama de sublimbajele Xml Schema, XPath ¸i Wsdl— pe care se bazeaz˘ t a s a standardul Bpel. Cuvinte cheie : Ingineria dirijat˘ de modele, metodele formale, verificare, LOTOS NT, CADP, a sistemele critice, sistemele GALS, Serviciile Web, BPEL
  • 4. Abstract: The work in this thesis is at the intersection of two major research domains : Model-Driven Engi- neering (Mde) and formal methods, and has various fields of application. This thesis deals with the formal verification of parallel applications modelled by the Mde approach. In this approach, models play a central role and enable to develop an application through successive transformations (auto- mated or not) between intermediate models of differing levels of abstraction, until executable code is produced. When models have a formal semantics, the application can be verified, either automati- cally or semi-automatically. These principles are used in Topcased, an Eclipse-based development environment for critical embedded applications, which enables formal verification by interconnecting existing tools. This thesis implements the Topcased approach by relying on the Cadp toolbox for verifying systems, and on its most recent input formalism : Lotos NT. This thesis tackles the formal verification of Mde applications through two real problems : 1) For Gals (Globally Asynchronous, Locally Synchronous), a generic verification method, based on a transformation to Lotos NT, is proposed and illustrated by an industrial case-study provided by Airbus : a communication protocol between the airplane and the ground described in the synchronous langage Sam designed at Airbus. tel-00685209, version 1 - 4 Apr 2012 2) For Web services specified with the Bpel (Business Process Execution Language) norm, a veri- fication method is proposed. It is based on a Bpel to Lotos NT transformation which takes into account Xml Schema, XPath, and Wsdl, the languages on which the Bpel norm is built. Keywords: Model-Driven Engineering, formal methods, verification, LOTOS NT, CADP, critical systems, GALS systems, Web services, BPEL
  • 5. tel-00685209, version 1 - 4 Apr 2012 Remerciements
  • 6. Table des mati`res e I Pr´ambule e 1 Notations 7 1 Ing´nierie dirig´e par les mod`les e e e 9 1.1 Principes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.2 Implantation dans Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.2.1 D´finition et manipulation de m´ta-mod`les . . e e e . . . . . . . . . . . . . . . . . . 12 tel-00685209, version 1 - 4 Apr 2012 1.2.2 Editeurs de mod`les . . . . . . . . . . . . . . . e . . . . . . . . . . . . . . . . . . 15 1.2.3 Transformation de mod`les vers mod`les . . . . e e . . . . . . . . . . . . . . . . . . 17 1.2.4 Transformations entre mod`les avec ATL . . . e . . . . . . . . . . . . . . . . . . 19 1.2.5 Transformations entre mod`les avec Kermeta . e . . . . . . . . . . . . . . . . . . 21 1.2.6 Transformations de mod`les avec Java . . . . . e . . . . . . . . . . . . . . . . . . 22 1.2.7 G´n´ration de code (transformation de mod`les e e e vers texte) . . . . . . . . . . . 22 1.3 Le projet Topcased . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2 M´thodes formelles e 27 2.1 Principes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.2 CADP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.2.1 Les syst`mes de transitions . . . . . . . e . . . . . . . . . . . . . . . . . . . . . . 28 2.2.2 Alg`bres de processus . . . . . . . . . . e . . . . . . . . . . . . . . . . . . . . . . 28 2.2.3 Techniques de v´rification . . . . . . . . e . . . . . . . . . . . . . . . . . . . . . . 29 2.2.4 Les outils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.3 Pr´sentation de LOTOS NT . . . . . . . . . . . e . . . . . . . . . . . . . . . . . . . . . . 30 2.4 Sous-ensemble de LOTOS NT utilis´ . . . . . . e . . . . . . . . . . . . . . . . . . . . . . 30 2.4.1 Identifiants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.4.2 D´finitions de modules . . . . . . . . . . e . . . . . . . . . . . . . . . . . . . . . . 31 2.4.3 D´finitions de types . . . . . . . . . . . e . . . . . . . . . . . . . . . . . . . . . . 31 2.4.4 D´finitions de fonctions . . . . . . . . . e . . . . . . . . . . . . . . . . . . . . . . 31 2.4.5 Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.4.6 Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2.4.7 D´finitions de canaux de communication e . . . . . . . . . . . . . . . . . . . . . . 35 2.4.8 D´finitions de processus . . . . . . . . . e . . . . . . . . . . . . . . . . . . . . . . 35 2.4.9 Comportements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 II Mod´lisation et v´rification de syst`mes GALS e e e 39 3 Motivations 41 i
  • 7. 3.1 Paradigme synchrone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 3.1.1 Syst`mes r´actifs . . . . . . . . . . . . . . . e e . . . . . . . . . . . . . . . . . . . . 41 3.1.2 Mod`le de calcul synchrone . . . . . . . . . e . . . . . . . . . . . . . . . . . . . . 42 3.1.3 Langages de programmation synchrone . . . . . . . . . . . . . . . . . . . . . . . 43 3.1.4 V´rification des programmes synchrones . . e . . . . . . . . . . . . . . . . . . . . 44 3.2 Syst`mes GALS . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . . . . . . . . 45 3.3 Etat de l’art sur la v´rification de syst`mes GALS e e . . . . . . . . . . . . . . . . . . . . 45 3.4 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4 Approche propos´e e 49 4.1 Description g´n´rale de l’approche . . . . . . e e . . . . . . . . . . . . . . . . . . . . . . . 49 4.2 Encodage des programmes synchrones . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.3 Encapsulation dans un processus asynchrone . . . . . . . . . . . . . . . . . . . . . . . 50 4.4 Communication avec l’environnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.5 Le langage SAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.5.1 Pr´sentation . . . . . . . . . . . . . . e . . . . . . . . . . . . . . . . . . . . . . . 53 4.5.2 S´mantique . . . . . . . . . . . . . . . e . . . . . . . . . . . . . . . . . . . . . . . 54 4.6 Traduction de SAM en LOTOS NT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 tel-00685209, version 1 - 4 Apr 2012 5 Application ` une ´tude de cas industrielle a e 59 5.1 Description de l’´tude de cas . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 59 5.1.1 Protocole TFTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 5.1.2 Variante Airbus du protocole TFTP . . . . . . . . . . . . . . . . . . . . . . . . 60 5.2 Mod´lisation en LOTOS NT . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 61 5.2.1 Mod´lisation d’entit´s TFTP simplifi´es . . . . . . . . . e e e . . . . . . . . . . . . . 61 5.2.2 Mod´lisation d’entit´s TFTP r´alistes . . . . . . . . . . e e e . . . . . . . . . . . . . 62 5.2.3 Mod´lisation des liens de communication . . . . . . . . e . . . . . . . . . . . . . 63 5.2.4 Composition parall`le des liens de communication et des e entit´s e TFTP . . . . . 65 5.3 Description formelle des propri´t´s de bon fonctionnement . . . ee . . . . . . . . . . . . . 65 5.3.1 Logique temporelle RAFMC de CADP . . . . . . . . . . . . . . . . . . . . . . . 66 5.3.2 Logique temporelle MCL de CADP . . . . . . . . . . . . . . . . . . . . . . . . . 67 5.3.3 Propri´t´s exprim´es en RAFMC . . . . . . . . . . . . . ee e . . . . . . . . . . . . . 68 5.3.4 Propri´t´s exprim´es en MCL . . . . . . . . . . . . . . . ee e . . . . . . . . . . . . . 71 5.3.5 Classification des propri´t´s . . . . . . . . . . . . . . . . ee . . . . . . . . . . . . . 78 5.4 V´rification fonctionnelle des mod`les . . . . . . . . . . . . . . e e . . . . . . . . . . . . . 78 5.4.1 G´n´ration de l’espace d’´tats . . . . . . . . . . . . . . . e e e . . . . . . . . . . . . . 78 5.4.2 G´n´ration directe . . . . . . . . . . . . . . . . . . . . . e e . . . . . . . . . . . . . 79 5.4.3 G´n´ration compositionnelle – niveau 1 . . . . . . . . . e e . . . . . . . . . . . . . 80 5.4.4 G´n´ration compositionnelle – niveau 2 . . . . . . . . . e e . . . . . . . . . . . . . 82 5.4.5 G´n´ration compositionnelle – niveau 3 . . . . . . . . . e e . . . . . . . . . . . . . 83 5.4.6 V´rification ` la vol´e . . . . . . . . . . . . . . . . . . . e a e . . . . . . . . . . . . . 85 5.4.7 R´sultats de v´rification . . . . . . . . . . . . . . . . . . e e . . . . . . . . . . . . . 86 5.5 Evaluation des performances par simulation . . . . . . . . . . . . . . . . . . . . . . . . 87 5.5.1 M´thodologie de simulation avec CADP . . . . . . . . . e . . . . . . . . . . . . . 87 5.5.2 R´sultats de simulation . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 89 III Mod´lisation et v´rification de services Web e e 91 6 Les services Web 93 ii
  • 8. 6.1 Les origines des services Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 6.2 Les solutions W3C : l’approche par les services Web . . . . . . . . . . . . . . . . . . . 94 6.3 Les langages de description de services Web . . . . . . . . . . . . . . . . . . . . . . . . 95 6.4 V´rification des services Web . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . . 96 6.5 V´rification des donn´es uniquement . . . . . . . . . . . . . . e e . . . . . . . . . . . . . . 97 6.6 V´rification du comportement uniquement . . . . . . . . . . . e . . . . . . . . . . . . . . 97 6.7 V´rification du comportement en tenant compte des donn´es e e . . . . . . . . . . . . . . 99 6.8 Comparaison des approches de v´rification des services Web . e . . . . . . . . . . . . . . 100 6.9 Consid´rations pragmatiques . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . . 101 6.10 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 7 Traduction des types XML Schema 105 7.1 Les termes de XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 7.2 Pr´sentation de XML Schema . . . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . 107 7.2.1 Types sp´ciaux . . . . . . . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . 107 7.2.2 Types pr´d´finis . . . . . . . . . . . . . . . . . . . . . . . . . . e e . . . . . . . . . 107 7.2.3 Types simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 7.2.4 Types complexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 7.2.5 Types complexes ` contenu simple . . . . . . . . . . . . . . . . a . . . . . . . . . 111 tel-00685209, version 1 - 4 Apr 2012 7.2.6 Types complexes ` contenu complexe . . . . . . . . . . . . . . . a . . . . . . . . . 111 7.2.7 Attributs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 7.2.8 El´ments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . 113 7.2.9 Exemple d’utilisation de XML Schema . . . . . . . . . . . . . . . . . . . . . . . 114 7.3 Grammaire abstraite pour XML Schema . . . . . . . . . . . . . . . . . . . . . . . . . . 115 7.4 Traduction en LOTOS NT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 7.4.1 Etat de l’art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 7.4.2 Principe g´n´ral de traduction . . . . . . . . . . . . . . . . . . e e . . . . . . . . . 116 7.4.3 Domaines et types de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 7.4.4 Les conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 7.4.5 Les it´rateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . 121 7.4.6 Traduction des types pr´d´finis . . . . . . . . . . . . . . . . . . e e . . . . . . . . . 121 7.4.7 Conversion des types pr´d´finis . . . . . . . . . . . . . . . . . . e e . . . . . . . . . 122 7.4.8 It´rateurs pour les types pr´d´finis . . . . . . . . . . . . . . . . e e e . . . . . . . . . 123 7.4.9 Traduction des types simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 7.4.10 Conversion des types simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 7.4.11 It´rateurs pour les types simples . . . . . . . . . . . . . . . . . e . . . . . . . . . 126 7.4.12 Traduction des attributs des types complexes . . . . . . . . . . . . . . . . . . . 128 7.4.13 Traduction des ´l´ments racine . . . . . . . . . . . . . . . . . . ee . . . . . . . . . 129 7.4.14 Conversion des ´l´ments racine . . . . . . . . . . . . . . . . . . ee . . . . . . . . . 130 7.4.15 It´rateurs pour les ´l´ments racine . . . . . . . . . . . . . . . . e ee . . . . . . . . . 130 7.4.16 Traduction des ´l´ments des types complexes . . . . . . . . . . ee . . . . . . . . . 130 7.4.17 Traduction des types complexes . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 7.5 Traduction des constantes BPEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 7.5.1 Grammaire des constantes BPEL . . . . . . . . . . . . . . . . . . . . . . . . . . 135 7.5.2 Principe g´n´ral de traduction des constantes . . . . . . . . . . e e . . . . . . . . . 135 7.5.3 Traduction des constantes de type simple . . . . . . . . . . . . . . . . . . . . . 136 7.5.4 Traduction des constantes de type ´l´ment racine . . . . . . . . ee . . . . . . . . . 136 7.5.5 Traduction d’un attribut dans le contenu d’une constante . . . . . . . . . . . . 137 7.5.6 Traduction des attributs dans le contenu d’une constante . . . . . . . . . . . . 138 7.5.7 Traduction d’un sous-´l´ment dans le contenu d’une constante ee . . . . . . . . . 139 iii
  • 9. 7.5.8 Traduction des sous-´l´ments dans le contenu d’une constante . . . . . . . . . . 141 ee 7.5.9 Traduction du contenu simple d’une constante . . . . . . . . . . . . . . . . . . 144 7.5.10 Traduction du contenu complexe d’une constante . . . . . . . . . . . . . . . . . 145 8 Traduction des expressions XPath 147 8.1 Mod`le de donn´es . . . . . . . . . . . . . . . . . . . e e . . . . . . . . . . . . . . . . . . . 147 8.2 Partitionnement d’un arbre Xml autour d’un nœud . . . . . . . . . . . . . . . . . . . 149 8.3 Syntaxe normalis´e . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . . . . . . . 151 8.4 S´mantique statique normalis´e . . . . . . . . . . . . e e . . . . . . . . . . . . . . . . . . . 153 8.5 S´mantique dynamique normalis´e . . . . . . . . . . e e . . . . . . . . . . . . . . . . . . . 154 8.5.1 Contexte d’´valuation . . . . . . . . . . . . . e . . . . . . . . . . . . . . . . . . . 154 8.5.2 S´mantique d´notationnelle . . . . . . . . . . e e . . . . . . . . . . . . . . . . . . . 155 8.6 Traduction en LOTOS NT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 8.6.1 Etat de l’art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 8.6.2 Sous-ensemble utile de XPath . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 8.6.3 S´mantique statique simplifi´e . . . . . . . . e e . . . . . . . . . . . . . . . . . . . 160 8.6.4 S´mantique op´rationnelle simplifi´e . . . . . e e e . . . . . . . . . . . . . . . . . . . 169 9 Traduction des interfaces WSDL 173 tel-00685209, version 1 - 4 Apr 2012 9.1 Pr´sentation du langage WSDL . . . . . . . . . . . . . . e . . . . . . . . . . . . . . . . . 173 9.1.1 Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 9.1.2 Fonctions distantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 9.1.3 Fonctionnalit´ d’un service . . . . . . . . . . . . e . . . . . . . . . . . . . . . . . 175 9.1.4 Types de liens de communication . . . . . . . . . . . . . . . . . . . . . . . . . . 175 9.1.5 Grammaire Wsdl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 9.2 Traduction en LOTOS NT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 9.3 Etat de l’art des traductions d’interfaces WSDL . . . . . . . . . . . . . . . . . . . . . . 176 9.4 D´finition de la traduction . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . . . . . 176 9.5 Traduction d’une interface WSDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 9.6 Traduction des messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 9.7 Traduction des fonctionnalit´s de services . . . . . . . . e . . . . . . . . . . . . . . . . . 178 9.7.1 Traduction des fonctionnalit´s de service . . . . . e . . . . . . . . . . . . . . . . . 179 9.7.2 Traduction des types de liens de communication . . . . . . . . . . . . . . . . . 179 9.7.3 Traduction des exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 10 Traduction des services BPEL 181 10.1 Pr´sentation du langage BPEL . . . . . . . . . . . . . . e . . . . . . . . . . . . . . . . . 181 10.1.1 Mod`le de communication . . . . . . . . . . . . . e . . . . . . . . . . . . . . . . . 181 10.1.2 Vue d’ensemble d’un service Web BPEL . . . . . . . . . . . . . . . . . . . . . . 182 10.1.3 Relations entre activit´s, services et sous-services e . . . . . . . . . . . . . . . . . 184 10.1.4 Abr´viations syntaxiques . . . . . . . . . . . . . e . . . . . . . . . . . . . . . . . 184 10.1.5 Syntaxe concr`te d’un service BPEL . . . . . . . e . . . . . . . . . . . . . . . . . 185 10.1.6 Attribut sp´cial “suppressJoinFailure . . . . . . . e . . . . . . . . . . . . . . . . . 186 10.1.7 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 10.1.8 Inclusion de fichiers XML Schema et WSDL . . . . . . . . . . . . . . . . . . . . 187 10.1.9 Extensions du langage Bpel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 10.1.10 Liens de communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 10.1.11 M´canisme d’´changes de messages . . . . . . . . e e . . . . . . . . . . . . . . . . . 188 10.1.12 M´canisme de corr´lation . . . . . . . . . . . . . e e . . . . . . . . . . . . . . . . . 189 10.1.13 Gestionnaires d’exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 iv
  • 10. 10.1.14 Gestionnaires d’´v´nements . . . . . . . . . . . . . . . . e e . . . . . . . . . . . . . 191 10.1.15 Activit´s . . . . . . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 192 10.1.16 Activit´ “empty” . . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 192 10.1.17 Activit´ “exit” . . . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 193 10.1.18 Activit´ “wait” . . . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 193 10.1.19 Activit´ “receive” . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 193 10.1.20 Activit´ “reply” . . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 194 10.1.21 Activit´ “invoke” . . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 194 10.1.22 Activit´ “throw” . . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 195 10.1.23 Activit´ “rethrow” . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 195 10.1.24 Activit´ “assign” . . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 195 10.1.25 Activit´ “validate” . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 197 10.1.26 Activit´ “sequence” . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 197 10.1.27 Activit´ “if” . . . . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 197 10.1.28 Activit´ “while” . . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 198 10.1.29 Activit´ “repeatUntil” . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 198 10.1.30 Activit´ “forEach” . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 198 10.1.31 Activit´ “pick” . . . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 199 tel-00685209, version 1 - 4 Apr 2012 10.1.32 Activit´ “flow” et liens de contrˆle . . . . . . . . . . . . e o . . . . . . . . . . . . . 200 10.1.33 Activit´ “extensionActivity” . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 202 10.1.34 Activit´ “scope” et notion de sous-service . . . . . . . . e . . . . . . . . . . . . . 203 10.1.35 Gestionnaires de compensation . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 10.2 Traduction en LOTOS NT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 10.2.1 Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 10.2.2 Syntaxe abstraite du sous-ensemble de BPEL consid´r´ e e . . . . . . . . . . . . . 208 10.2.3 Traduction des d´clarations de services . . . . . . . . . . e . . . . . . . . . . . . . 208 10.2.4 Pr´servation de l’atomicit´ des activit´s atomiques . . . e e e . . . . . . . . . . . . . 210 10.2.5 Gestion des variables partag´es . . . . . . . . . . . . . . e . . . . . . . . . . . . . 211 10.2.6 Gestion des exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 10.2.7 Gestion des ´v´nements . . . . . . . . . . . . . . . . . . e e . . . . . . . . . . . . . 216 10.2.8 Traduction de l’activit´ “empty” . . . . . . . . . . . . . e . . . . . . . . . . . . . 218 10.2.9 Traduction de l’activit´ “exit” . . . . . . . . . . . . . . e . . . . . . . . . . . . . 219 10.2.10 Traduction de l’activit´ “wait” . . . . . . . . . . . . . . e . . . . . . . . . . . . . 219 10.2.11 Traduction de l’activit´ “receive” . . . . . . . . . . . . . e . . . . . . . . . . . . . 220 10.2.12 Traduction de l’activit´ “reply” . . . . . . . . . . . . . . e . . . . . . . . . . . . . 220 10.2.13 Traduction de l’activit´ “invoke” . . . . . . . . . . . . . e . . . . . . . . . . . . . 221 10.2.14 Traduction de l’activit´ “assign” . . . . . . . . . . . . . e . . . . . . . . . . . . . 223 10.2.15 Traduction de l’activit´ “throw” . . . . . . . . . . . . . e . . . . . . . . . . . . . 224 10.2.16 Traduction de l’activit´ “rethrow” . . . . . . . . . . . . e . . . . . . . . . . . . . 225 10.2.17 Traduction de l’activit´ “validate” . . . . . . . . . . . . e . . . . . . . . . . . . . 225 10.2.18 Traduction de l’activit´ “sequence” . . . . . . . . . . . . e . . . . . . . . . . . . . 226 10.2.19 Traduction de l’activit´ “if” . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 226 10.2.20 Traduction de l’activit´ “while” . . . . . . . . . . . . . . e . . . . . . . . . . . . . 226 10.2.21 Traduction de l’activit´ “repeatUntil” . . . . . . . . . . e . . . . . . . . . . . . . 227 10.2.22 Traduction de l’activit´ “forEach” . . . . . . . . . . . . e . . . . . . . . . . . . . 228 10.2.23 Traduction de l’activit´ “pick” . . . . . . . . . . . . . . e . . . . . . . . . . . . . 229 10.2.24 Traduction de l’activit´ “flow” et des liens de contrˆle . e o . . . . . . . . . . . . . 230 10.2.25 Traduction des activit´s au sein de l’activit´ “flow” . . . e e . . . . . . . . . . . . . 235 11 Conception d’un traducteur automatique 241 v
  • 11. 11.1 Choix du langage de programmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 11.2 R´alisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 e 11.3 Espaces de noms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 IV Conclusion 245 Bibliographie 253 tel-00685209, version 1 - 4 Apr 2012 vi
  • 12. tel-00685209, version 1 - 4 Apr 2012 e Partie I Pr´ambule
  • 13. tel-00685209, version 1 - 4 Apr 2012
  • 14. Introduction Cette th`se s’est effectu´e en co-tutelle entre l’Universit´ Joseph Fourier de Grenoble, France et e e e l’Universit´ Polytechnique de Bucarest, Roumanie. Les travaux de recherche ont ´t´ effectu´s au e ee e centre Inria de Grenoble Rhˆne-Alpes, sous la direction de Hubert Garavel, et au Laboratoire o d’Informatique de la Facult´ d’Automatique et d’Ordinateurs de l’Universit´ Polytechnique de Bu- e e carest, sous la direction de Valentin Cristea. tel-00685209, version 1 - 4 Apr 2012 V´rification des syst`mes asynchrones e e Un syst`me asynchrone est constitu´ d’un ensemble de composants qui ´voluent ind´pendamment e e e e et qui communiquent ponctuellement pour se synchroniser et ´ventuellement ´changer des donn´es. e e e Les syst`mes asynchrones se distinguent donc des syst`mes synchrones dans lesquels les composants e e ´voluent ` l’unisson selon une horloge commune. En effet, mˆme s’il a ´t´ d´montr´ que le paradigme e a e ee e e de programmation asynchrone et le paradigme de programmation synchrone sont ´quivalents [Mil83], e les langages asynchrones et synchrones sont adapt´s ` la description de classes de syst`mes diff´rentes. e a e e De nos jours, les syst`mes asynchrones sont omnipr´sents (protocoles de communication, processeurs e e multi-cœurs...) et tendent ` s’imposer dans des domaines autrefois exclusivement constitu´s de a e syst`mes synchrones, tels que les contrˆleurs critiques embarqu´s (dans les avions, voitures, trains...) e o e ou les circuits int´gr´s (g´n´ralisation des syst`mes sur puce). e e e e e La validation du bon comportement de tels syst`mes est un domaine de recherche important qui e englobe diverses techniques telles que le test classique, le test unitaire, la simulation, l’analyse de code et la v´rification formelle. La v´rification formelle consiste ` analyser un mod`le du syst`me pour e e a e e v´rifier qu’il remplit des crit`res d’exigences d´finis sous la forme de propri´t´s de bon fonctionnement e e e ee (le plus souvent exprim´es par des formules de logique temporelle), on parle alors de v´rification e e exhaustive ou model checking [CES83], ou bien sous la forme d’un second mod`le du syst`me, on e e parle alors de v´rification par ´quivalence ou equivalence checking [NH84]. e e La v´rification formelle est tr`s efficace1 , mais tr`s complexe ` mettre en oœuvre. En effet, cette e e e a technique n´cessite d’avoir ` disposition des outils performants mais aussi de connaˆ parfaitement e a ıtre les langages d’entr´e de ces outils : les alg`bres de processus pour la mod´lisation des syst`mes ainsi e e e e que les logiques temporelles pour la sp´cification des propri´t´s de bon fonctionnement. Dans cette e ee th`se, nous consid´rons les cas de la boˆ ` outils de v´rification formelle Cadp [GLMS11], et de son e e ıte a e plus r´cent langage d’entr´e : l’alg`bre de processus Lotos NT [Sig00, CCG+ 10]. e e e 1 http://ercim-news.ercim.eu/model-checking-of-safety-critical-software-for-avionics
  • 15. 4 Ing´nierie dirig´e par les mod`les e e e Ces derni`res ann´es ont vu l’apparition d’une nouvelle approche de d´veloppement logiciel appel´ e e e e l’ing´nierie dirig´e par les mod`les [Ken02] (Mde ou Model-Driven Engineering en anglais). Dans e e e ce paradigme, les mod`les d’une application ont un rˆle fondamental. Chaque mod`le repr´sente e o e e l’application ` un niveau d’abstraction particulier. La r´alisation de l’application s’effectue par trans- a e formations successives, manuelles, automatis´es ou semi-automatis´es, des mod`les jusqu’` l’obtention e e e a d’un mod`le final. e Grˆce ` des outils appropri´s, l’approche Idm facilite la cr´ation d’´diteurs, de transformateurs et de a a e e e g´n´rateurs de code pour les mod`les. La v´rification formelle s’inscrit ais´ment dans l’approche Idm. e e e e e En effet, en consid´rant comme mod`le final d’une chaˆ de transformations, un mod`le d´crit dans e e ıne e e une alg`bre de processus, il devient possible de combiner l’approche Idm et la v´rification formelle. e e En appliquant ce principe, l’environnement Topcased2 , cr´´ par extension de l’environnement de ee d´veloppement int´gr´ (Ide ou Integrated Developement Environment en anglais) Eclipse, vise ` con- e e e a necter des langages de mod´lisation d’applications critiques (de l’industrie a´ronautique notamment) e e ` des outils de v´rification formelle tels que Cadp3 . a e tel-00685209, version 1 - 4 Apr 2012 Langages d´di´s e e Dsl [VDKV00] (Domain-Specific Language) est un terme g´n´rique d´signant les langages de pro- e e e grammation ou de mod´lisation d´di´s ` un domaine particulier, par opposition aux langages de e e e a programmation (C, Java) ou de mod´lisation (Uml [OMG97]) classiques qui ont une vocation plus e g´n´rale. Un Dsl exhibe usuellement un nombre restreint de constructions de fa¸on ` pouvoir d´crire e e c a e aussi succintement que possible les applications relevant du domaine qu’il couvre. Les mod`les e d’applications ´crits dans les langages d´di´s sont donc souvent simples et se prˆtent bien ` l’approche e e e e a Idm. Les exemples de langages d´di´s incluent : Sql [Cod70] pour interroger des syst`mes de gestion e e e de bases de donn´es, Yacc [Joh75] pour d´crire des analyseurs syntaxiques ou encore les langages de e e shell script des syst`mes Unix tels que sh et csh. e Dans cette th`se, nous consid´rons les cas particuliers de deux Dsls : Sam [CGT08], dans le cadre e e des travaux effectu´s ` l’Inria et Bpel [Com01], dans le cadre des travaux effectu´s ` l’Universit´ e a e a e Polytechnique de Bucarest. Sam est un langage de programmation synchrone d´fini par Airbus pour e sp´cifier des syst`mes de contrˆle pour les avions tandis que Bpel est une norme du consortium Oasis4 e e o pour la d´finition de services Web. Ces deux langages, bien que s´mantiquement tr`s diff´rents, e e e e poss`dent de nombreux points communs : e • Ce sont des langages d´di´s pour lesquels Eclipse poss`de des environnements de travail. e e e • Ils peuvent servir ` la d´finition d’applications critiques : des contrˆleurs avioniques pour Sam a e o et des applications de commerce ´lectronique pour Bpel. e • Ils peuvent d´finir des syst`mes concurrents. e e • Ils sont utilis´s industriellement. e • Il existe un besoin de v´rification formelle pour les applications d´crites dans ces langages. e e 2 http://www.topcased.org 3 http://vasy.inria.fr/cadp 4 http://www.oasis-open.org