Rapport de Stage DEA Méthodes Informatiques des ?· Rapport de Stage DEA Méthodes ... 4.5 Importation…

  • Published on
    16-Sep-2018

  • View
    221

  • Download
    0

Embed Size (px)

Transcript

  • Universit de Versailles Saint-Quentin-en-Yvelines

    Institut National des Tlcommunications

    Rapport de StageDEA Mthodes Informatiques des Systmes Industriels

    (M.I.S.I)

    ENREGISTREMENT ET PROPRITS NONFONCTIONNELLES

    Nabiha BELHANAFI

    Responsable de DEA : Ahmed MEHAOUAResponsable de stage : Chantal TACONET

    Septembre 2003

    Ce stage de DEA a t ralis au sein du laboratoire Systmes Rpartis du dpartement Informatique delInstitut National des Tlcommunications

  • RemerciementsJe tiens remercier, Guy Bernard pour mavoir accueilli dans lquipe Systmes Rpartis de

    lInstitut National des Tlcommunications.

    Je tiens exprimer mes plus sincres remerciements Chantal Taconet pour son rle denca-drante, ses conseils et pour sa disponibilit.Merci Nabil Kouici et Douha Ayed pour le partage de leurs connaissances informatique.Merci toute lquipe systmes rpartis de lINT.

    Merci aux membres de ma famille, et tous ceux qui sont trs chres mon coeur.

    Un grand merci ceux avec qui jai partage des moments inoubliables : fazou et lynda, enesprant quon partagera beaucoup dautres moments agrables dans le futur.

    Une pense chaleureuse a tous mes ami(e)s.

    Enfin une pense trs mue ma chre et tendre mre ainsi qu mon pre.

    i

  • ii

  • Table des matires

    1 Introduction 1

    2 Spcification CCM 32.1 Proprits foncionnelles et non fonctionnelles . . . . . . . . . . . . . . . . . . . . . 42.2 Modle abstrait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    2.2.1 Type de composant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.2.2 Facettes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2.3 Rceptacles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2.4 vnements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    2.2.4.1 Sources dvnements . . . . . . . . . . . . . . . . . . . . . . . . 62.2.4.2 Puits dvnements . . . . . . . . . . . . . . . . . . . . . . . . . 6

    2.2.5 Attributs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.2.6 Maisons de composants . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.2.7 Synthse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    2.3 Modle dimplantation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.3.1 CIDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    2.3.1.1 Catgories de composant . . . . . . . . . . . . . . . . . . . . . . 102.3.1.2 Compilation CIDL . . . . . . . . . . . . . . . . . . . . . . . . . . 11

    2.3.2 PSDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.4 Modle dexcution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

    2.4.1 Type de conteneur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.4.2 Interfaces du conteneur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

    2.4.2.1 Interfaces externes . . . . . . . . . . . . . . . . . . . . . . . . . . 142.4.2.2 Interfaces internes et de callback . . . . . . . . . . . . . . . . . . 14

    2.5 Modle dassemblage et de dploiement . . . . . . . . . . . . . . . . . . . . . . . . 142.5.1 Paquetage des composants . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

    2.5.1.1 Descripteur dassemblage de composants . . . . . . . . . . . . . . 152.5.1.2 Descripteur de composant CORBA . . . . . . . . . . . . . . . . . 162.5.1.3 Descripteur logiciel du composant . . . . . . . . . . . . . . . . . 162.5.1.4 Descripteur de proprits du composant . . . . . . . . . . . . . . 16

    2.5.2 Dploiement dapplications . . . . . . . . . . . . . . . . . . . . . . . . . . 162.5.2.1 Squences de dploiement . . . . . . . . . . . . . . . . . . . . . . 17

    2.6 Implmentation OpenCCM de la spcification CCM . . . . . . . . . . . . . . . . . . 172.6.1 Chane de production . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.6.2 Chane dexcution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.6.3 Chane dassemblage et de dploiement . . . . . . . . . . . . . . . . . . . . 20

    2.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

    iii

  • 3 Enregistrement des composants 213.1 Services denregistrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    3.1.1 Service de nommage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.1.2 Service de courtage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    3.1.2.1 Service de courtage CORBA . . . . . . . . . . . . . . . . . . . . 223.1.2.2 Types de services . . . . . . . . . . . . . . . . . . . . . . . . . . 223.1.2.3 Exportation de services auprs du Trader . . . . . . . . . . . . . . 233.1.2.4 Proprits dynamiques . . . . . . . . . . . . . . . . . . . . . . . . 233.1.2.5 Les API du service de courtage . . . . . . . . . . . . . . . . . . . 23

    3.2 Enregistrement dans CCM et OpenCCM . . . . . . . . . . . . . . . . . . . . . . . . 243.3 Contrat de courtage TORBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

    4 Automatisation de lenregistrement 274.1 Description de lenregistrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    4.1.1 Description au niveau du modle de dploiement . . . . . . . . . . . . . . . 274.1.2 Description au niveau du modle abstrait . . . . . . . . . . . . . . . . . . . 284.1.3 Descripteur au niveau du modle dimplantation . . . . . . . . . . . . . . . 28

    4.2 Contenu de la description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294.2.1 Contrat denregistrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

    4.2.1.1 Contrat denregistrement dans le CIDL . . . . . . . . . . . . . . . 314.2.1.2 Contrat denregistrement externe au CIDL . . . . . . . . . . . . . 31

    4.3 Gnration de code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334.4 Qui fait lenregistrement ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334.5 Type de composant et enregistrement . . . . . . . . . . . . . . . . . . . . . . . . . . 354.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

    5 Ralisation 375.1 Contrat denregistrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375.2 Chane de compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395.3 Production de code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405.4 Lancement des mthodes gnres . . . . . . . . . . . . . . . . . . . . . . . . . . . 415.5 Travail en cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

    6 Conclusion 45

    iv

  • Table des figures

    2.1 Le modle abstrait du composant CORBA . . . . . . . . . . . . . . . . . . . . . . . 52.2 Dfinition dune facette en IDL3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.3 Dfinition de rceptacles en IDL3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.4 Declaration dattributs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.5 Projection de lIDL3 lIDL2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.6 Chane de compilation IDL et CIDL . . . . . . . . . . . . . . . . . . . . . . . . . . 112.7 Larchitecture du modle de programmation des conteneurs . . . . . . . . . . . . . . 132.8 Paquetages de dploiement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.9 Le processus de dploiement guid par les objets de dploiement . . . . . . . . . . . 182.10 tapes de production et de dploiement des applications . . . . . . . . . . . . . . . 182.11 Chane de production dOpenCCM . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

    3.1 Fonctionnement du trader CORBA . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.2 Portion de code du fichier CAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.3 Un exemple de contrat de courtage TDL . . . . . . . . . . . . . . . . . . . . . . . . 26

    4.1 Descripteur XML au niveau du modle abstrait . . . . . . . . . . . . . . . . . . . . 294.2 Description IDL3 du composant Imprimante . . . . . . . . . . . . . . . . . . . . . . 314.3 Contrat denregistrement dans le CIDL . . . . . . . . . . . . . . . . . . . . . . . . . 314.4 Fichier RDL pour le contrat denregistrement . . . . . . . . . . . . . . . . . . . . . 324.5 Importation du RDL dans le fichier CIDL . . . . . . . . . . . . . . . . . . . . . . . 324.6 Interaction du conteneur avec le bus ORB . . . . . . . . . . . . . . . . . . . . . . . 344.7 Interception des vnements par le conteneur . . . . . . . . . . . . . . . . . . . . . 34

    5.1 Rgles de productions ajoutes au CIDL . . . . . . . . . . . . . . . . . . . . . . . . 385.2 Grammaire du RDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385.3 Rgles de production pour limportation du RDL . . . . . . . . . . . . . . . . . . . 395.4 Vue globale de la chane de compilation dOpenCCM . . . . . . . . . . . . . . . . 405.5 Chane danalyse et de remplissage de larbre AST . . . . . . . . . . . . . . . . . . 415.6 Code gnr au niveau du squelette . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

    v

  • vi

  • Chapitre 1

    Introduction

    En quelques dcennies, la production logicielle a volue de manire trs importante, rendantson processus de plus en plus complexe.Il devient extrmement difficile pour une mme personne dtre acteur de la conception lutilisationdun logiciel. Cette constatation rend ncessaire le dcoupage du processus de production en rlesdistincts et interoprables.

    Dans ce contexte il y a eu un courant de recherche trs actif portant sur lutilisation de mo-dles et langages objets pour la construction dapplications rparties. Ces modles permettaientdune part, dexprimer les interfaces des entits logiciels manipules, rsultat de la conception, etdautre part, de bien sparer la dfinition de ces interfaces de limplantation des entits logiciels.Les principaux objectifs des modles objets taient damliorer la modlisation dune applica-tion, doptimiser la rutilisation du code produit et de prendre en compte lensemble du cycle deproduction des applications. Cependant lintgration dentits logiciels existantes savre difficilecar les aspects de communication sont mixs dans les aspects fonctionnels rendant le maintien etlvolution complexes[MMG99].

    Pour pallier les dfauts de lapproche objet et viser des notions non prvues initialement, lap-proche composant est apparue, cette approche est fonde sur des techniques et des langages deconstruction dapplications qui intgrent dune manire homogne des entits logicielle provenantde diverses sources.

    Dans le cadre de la norme CORBA 2 [GGM97] [CCM02], lObject Management Group (OMG)offrait une technologie permettant lexcution rpartie dobjets htrognes. Pour cela elle offraitun cycle de dveloppement bas sur lexpression des interfaces des objets en OMG IDL (InterfaceDescription Langage), la projection de ces interfaces vers un langage de programmation et limplan-tation des objets dans ce langage .Cette approche rpondait bien au besoin de spcifier les interfaces fournies par un objet, mais rien nepermettait de spcifier les interfaces requises, de plus les aspects scurit ou persistance des objetsdevaient tre mise en oeuvre difficilement dans limplantation des objets.Afin de faciliter le dveloppement dapplications, la spcification CORBA 3 tend offrir des moyenspour exprimer les dpendances et besoins dune entit logicielle en fonction de son environne-ment sous la forme dune description plutt que par programmation, ceci a permis de dchargerle programmeur de lcriture du code non directement li au mtier du composant, en le considrantcomme tant une proprit non fonctionnelle.

    Une fois les composants instancis, et pour quils puissent tre utiliss par les clients, leursexportation ou enregistrement, auprs de divers annuaires de recherche sur proprits est ncessaire.Ils doivent galement systmatiquement se d-enregistrer. Lenregistrement bien que systmatiqueest toujours la charge du programmeur dobjets.

    1

  • La question pose par ce stage est la suivante : le mode denregistrement des composants peut-iltre dcrit par des proprits non fonctionnelles ? si cest le cas, les middlewares pourront fournirdes entits qui ralisent des enregistrements intelligent de ces composants.Le travail propos dans ce stage comporte diffrentes facettes, en outre ltude dtaille du modlede composant corba (CCM), proposition de modle pour intgrer ces nouvelles proprits nonfonctionnelles dans CCM et implantation de la proposition dans OpenCCM.

    Ce document prsente lensemble du travail et des rsultats obtenus au cours de ce stage. Ilsarticule autour du plan suivant. Dans le chapitre 2, nous prsentons la spcification du modle decomposant CORBA et nous parlons de limplantation OpenCCM de ce modle. Dans le chapitre 3nous examinons lenregistrement dans la spcification CCM, ensuite nous prsentons dans le cha-pitre 4 lapproche denregistrement automatique que nous avons intgre dans OpenCCM. Enfin,pour dmontrer la faisabilit de notre approche, le chapitre 5 prsente la ralisation de la proposi-tion.

    2

  • Chapitre 2

    Spcification CCM

    Comme il a t discut dans [MMG99] [MP02], les modles objets ont progressivement montrleurs limites. Certains industriels, comme Microsoft, Sun et lOMG, ont fait voluer leurs modles,vers les composants, dans le but de simplifier le dveloppement dapplications.

    La rponse de lOMG est le CORBA Component Model (CCM), modle de base de la normeCORBA 3. Le CCM est un framework de composants, il se dcompose en deux niveaux, un niveaubasique qui permet de mettre sous forme de composants des objets CORBA, et un niveau tendu quisera prsent dans ce chapitre .

    Tout comme EJB de Sun [VM99], auquel correspond la version basique du CCM en java, latechnologie CCM repose sur lutilisation de conteneurs pour hberger les instances de composantset faciliter leurs dploiement .La spcification CCM [CCM02] est dcoupe en quatre modles et un mta modle :

    Le modle abstrait : offre aux concepteurs le moyen dexprimer les interfaces et les propritsdes composants (voir section 2.2). Pour cela le langage IDL a t tendu pour prendre encompte les nouveaux concepts introduits dans le CCM.

    Le modle dimplantation : dcrit la structure de limplantation dun composant ainsi quecertains de ses aspects non fonctionnels travers le langage CIDL (Component Implementa-tion Dfinition Langage). Lutilisation de ce langage est associe au CIF (Component Imple-mentation Framework) qui dcrit linteraction entre les parties fonctionnelles et non fonction-nelles.

    Le modle de dploiement : permet dautomatiser la diffusion et la mise en place duneapplication distribue, et contribue accrotre la rutilisabilit dentits logicielles en facilitantlutilisation et lintgration de composants existants.

    Le modle dexcution : dfinit lenvironnement dexcution des instances de composants. Leconteneur a pour fonction principale linterception des requtes inv...

Recommended

View more >