La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Common Object Request Broker Architecture (CORBA) GL4 G1 05/01/2007 El Amouri Annowar Hammami Wael Ben Salem Aicha Farhat Mohamed Kharrat Houceme Eddine.

Présentations similaires


Présentation au sujet: "Common Object Request Broker Architecture (CORBA) GL4 G1 05/01/2007 El Amouri Annowar Hammami Wael Ben Salem Aicha Farhat Mohamed Kharrat Houceme Eddine."— Transcription de la présentation:

1 Common Object Request Broker Architecture (CORBA) GL4 G1 05/01/2007 El Amouri Annowar Hammami Wael Ben Salem Aicha Farhat Mohamed Kharrat Houceme Eddine Zine Alabidine Nabih

2 Plan 1.Introduction 2.Norme CORBA 3.Architecture CORBA n Services n Utilitaires n Interfaces de domaines n Communication 4.Langage de Définition dInterface: IDL 5.Conclusion

3 Introduction

4 Application réparties uApplication répartie = traitements coopérants sur des tâches et des données réparties n Coopération= communication + synchronisation uProblèmes généraux n Tolérance aux pannes (reliability) n Nommage nommer et localiser les ressources n Sécurité authentification n Disponibilité (availability) deux appels sur un même serveur ? n Outils pour le développement génie logiciel

5 Modèle Client/Serveur uClient/Serveur « à procédure » n RPC uClient/Serveur « à objet » n RMI, Corba, DCOM uClient/Serveur « de données » n Requêtes SQL uClient/Serveur « WEB » n CGI, servlet, asp, jsp, php...

6 Client/Serveur à objets uParadigmes objets : encapsulation polymorphisme, composition, généricité uObjet = unité de désignation et de distribution uEx. RMI, CORBA

7 Norme CORBA

8 Qu'est ce que l'OMG ? uO.M.G. ( Object Management Group ) est un consortium qui regroupe plus 800 entreprises du monde entier. n Consortium ouvert aux horizons autres que les concepteurs de logiciels ( industriels, chercheurs, université, etc... ). uCe consortium définit des spécifications pour fournir un modèle de coopération entre objets répartis. n CORBA 1.0 : 1991 (modèle objet) n CORBA 2.0 : 1995 (interopérabilité, IIOP) n CORBA 3.0 : 2002 (modèle composant)

9 Les spécifications de l'OMG uL'OMG spécifie tous les constituants d'un modèle objet global appelé O.M.A. ( Object Model Architecture ) n CORBA est une partie de ce modèle, n Utilitaires communs ( services ), n Eléments spécifiques à des corps de métier ( objets de domaines ).

10 Vue du modèle OMA Le bus CORBA AnnuaireTransaction Services Médecine Electronique Objets de domaines ClientServeur Applications utilisateurs AdministrationImpression Utilitaires communs

11 Objectifs de CORBA uFournir un environnement ouvert n les membres participent aux spécifications uFournir un environnement portable n les API sont définis pour rendre les applications portables ( quelque soit le produit CORBA utilisé ) uFournir un environnement interopérable n Permettre aux applications CORBA de collaborer entre elles.

12 Qu'est ce que CORBA ? n standard ouvert pour les applications réparties n bus logiciel, orienté objet n communication par appel de méthode à distance n géré par l Object Management Group (OMG). n indépendant v du matériel, du système, des langages v Mais aussi des vendeurs uCommon Object Request Broker Architecture interopérabilité

13 Un environnement complet... uCORBA est une architecture qui définit un environnement pour permettre la collaboration entre applications réparties. uCORBA est disponible sur de nombreuses plate-formes, dans de nombreux langages et chez de nombreux fournisseurs. uCORBA est simple à programmer en comparaison des environnements équivalent. uCORBA offre une homogénéisation du système d'informations.

14 PCSparc NT PC UNIX Le bus CORBA Le bus CORBA = ORB

15 Le concept de bus logiciel uajouter/supprimer des objets sans recompiler lensemble de lapplication n enregistrer/retrouver des références globales sur des objets n connaître à priori ou découvrir les méthodes dun objet uréaliser les appels de méthode à distance n passage de paramètres (par valeur) n indépendance vis à vis de la localisation des objets

16 La vue réelle du bus CORBA PCSparc NT PC UNIX ORB PC/NT ORB PC/UNIX ORB Sparc/UNIX Réseau TCP/IP

17 Le modèle objet de CORBA uUn serveur CORBA peut héberger plusieurs objets CORBA. uChaque objet est accessible indépendamment des autres objets du serveur. uChaque objet exprime son offre de services sous forme dune interface IDL n Pour cela, on utiliser un langage de description de services appelé IDL CORBA. n Il s'agit de décrire au sein d'une interface (vue cliente de l'objet) la liste des services offerts ( ensemble de méthodes).

18 Architecture CORBA

19 Modèle CORBA

20 Les services CORBA uPour accélérer et faciliter le développement d'applications avec CORBA, l'O.M.G a spécifiée un ensemble de services. uA l'heure actuelle, plus de 17 services ont été définis. uLes services sont vendus séparément du bus CORBA. uSeul quelques services sont actuellement disponibles sur le marché.

21 Service de nommage uRôle : retrouver les références dobjet à partir de noms symboliques uDéfinition du service : dans une interface IDL n Module CosNaming uStructure : arborescence appelé graphe de désignation (Naming Graph) n Une racine n Des répertoires, appelés « contexte de nommage » n Des feuilles : les références dobjet uUn contexte est un objet qui gère une liste de liaisons (= associations nom-référence)

22 Les utilitaires CORBA uLes utilitaires communs (CORBAfacilities) sont des canevas dobjets (« Frameworks ») qui répondent plus particulièrement aux besoins des utilisateurs. Ils standardisent linterface utilisateur, la gestion de linformation, ladministration, le Workflow, etc. uIls définissent un cadre de haut niveau pour la création de logiciels à laide de composants réutilisables. Ils sont à ce jour bien moins avancés que les services.

23 Les interfaces de domaines uLes interfaces de domaines concernent des marchés verticaux et définissent donc des interfaces spécialisées répondant aux besoins spécifiques de tel ou tel marché comme les télécommunications ou la finance par exemple. uObjectif : interopérabilité sémantique entre les systèmes d'informations des entreprises, Objets métiers spécifiques à des secteurs d'activités : Finance, santé, télécoms.

24 le bus CORBA Vue de l'architecture CORBA soucheD.I.I. CLIENT SERVEUR Adaptateur d'objets SqueletteD.S.I. Objet CORBA

25 La compilation IDL uUne description IDL est compilée pour générer les souches nécessaires au mécanisme dinvocation à distance. description IDL Génération de l'amorce cliente souche Génération de l'amorce serveur squelette

26 Souche et squelette IDL uGénérés par le compilateur IDL n à partir de la description IDL de lobjet serveur (doit être connue lors de lécriture du client) souche IDL Squelette IDL Cœur de lORB GIOP / IIOP / ESIOP Adaptateur dobjet client Implémentation de lobjet Compilateur IDL Spécification IDL

27 Normalisation des communications uProtocoles dinteropérabilité entre ORBs conformes à CORBA 2 n GIOP : General Inter-ORB Protocol v Messages : request, reply, cancelrequest, … v nécessite un protocole de transport fiable, orienté connexion n IIOP (Internet IOP) : instanciation de GIOP sur TCP v Autres implantations de GIOP au-dessus de HTTP, RPC DCE, RPC Sun uComposants du protocole n CDR : Common Data Representation v Format de données dencodage des données n IOR : Interoperable Object References (références dobjets)

28 Les communications avec CORBA uLes participants à un échange CORBA communiquent à l'aide d'un protocole spécifique à CORBA : IIOP (Internet Inter-ORB Protocol). uLe protocole IIOP est indépendant du langage de programmation, du système d'exploitation et de la machine utilisée. n Un client Java pourra utiliser un serveur C++ uTransparence de lappel / indépendance de la localisation de lobjet n Même espace mémoire simple appel de fonction n Même machine communication inter-processus n Machine distance communication réseau

29 GIOP/IIOP uGIOP = General Inter ORB Protocol n spécification qui permet linteropérabilité entre différents ORBs n spécifie le protocole de transmission + format des requêtes uIIOP = Internet Inter ORB Protocol n protocole dinteropérabilité standard pour Internet n construit sur IP uESIOP = Environment Specific IOP n spécification qui permet de définir des protocoles spécifiques

30 IIOP uLivré avec toute implémentation de CORBA uUtilise CDR (plus efficace que XDR) uCertains serveurs WEB peuvent dialoguer via IIOP

31 Interface Definition Language (IDL)

32 Le concept

33 Langage de description dinterface (IDL) uEst indépendant des langages uPeut être mappé dans de nombreux langages : n Cobol, ADA, C++, C, Java, Python, SmallTalk... uPermet de décrire n des interfaces contenant v des opérations v des attributs accessibles à distance uune interface IDL est similaire à v une interface Java v une classe abstraite C++

34 Décrire les services offerts uLe développement d'une application CORBA commence par l'énumération des services offerts par chaque objet corba. uUne même description IDL peut contenir plusieurs descriptions d'objets. uUne description IDL s'effectue au sein d'un fichier texte comportant par convention l'extension «.idl » uChaque objet offre une interface qui contient une liste d'opérations qui seront par la suite offertes aux applications clientes.

35 Eléments du langage IDL uModules uInterfaces n Opérations (oneway, twoway) n Attributs uDéclarations de n constantes n types n exceptions

36 Le module IDL uLa notion de module est similaire à celle de package de Java. uUn module introduit un espace de désignation supplémentaire. On notera qu'un module peut contenir un autre module, une interface, une description de type complexe. uLa description d'un module respecte la syntaxe suivante : module nom_du_module { // corps du module }; Un module est traduit en un package (sous-répertoire).

37 Premières règles sur l'IDL uUne interface est une énumération d'opérations et de définitions de types de données. interface Exemple { // contenu de l'interface }; uUne interface supporte l'héritage multiple. interface AutreExemple : Exemple1, Exemple2 { // contenu de l'interface };

38 Décrire une méthode uLes opérations décrites dans une interface respectent le format suivant : type_de_retour ma_methode ( liste_des_paramètres ) ; CORBA offre plusieurs types de données : - les types de bases - les types complexes La liste des paramètres peut être vide.

39 Les paramètres d'une opération uLa description d'un paramètre comporte trois parties : n le modificateur n le type de l'argument ( type de base ou type complexe ) n le nom de l'argument uLe modificateur spécifie le sens d'échange du paramètre : n in : du client vers l'objet CORBA n out : en retour, de l'objet CORBA le client n inout : équivalent à un passage par adresse.

40 Un exemple de description IDL uCet exemple décrit un objet qui offre une interface appelée« Premier ». Cette interface comporte une opération dénommée « affiche » qui entraîne l'affichage d'un message sur le serveur ( message passé en tant que paramètre ). interface Hello { void sayHello ( in string message ) ; };

41 Types de données Types de base Types constuits sequence enum union arraystruct BooleanCharOctetString Integer Floating Point Short UShort Long ULong FloatDouble Référence objet Any

42 Déclarations de types uRenommage ou types def. par le programmeur uénumeration, structures, tableaux, unions enum couleurs { rouge, vert, bleu}; struct ecole { Interessant tutoriels, exposes; Bon repas; Sympatique station; }; typedef Char BadDate[2]; usequences (tableaux de taille variable) typedef sequence formation;

43 Les attributs IDL uIl est possible dans une description IDL de définir des attributs d'interface. uUn attribut est une donnée accessible soit en lecture/écriture, soit en lecture seulement. uPour décrire un attribut, on respecte le format suivant : [ readonly ] attribute type_de_l'attribute nom_de_l'attribut; Optionnel, ce mot clef signale que l'attribut est accessible en lecture seule.

44 Exceptions uAssure quun client reçoit toujours une réponse lors dune invocation distante u2 sortes dexceptions n CORBA Standard Exceptions v levées par CORBA v même si elle peuvent avoir été levées par limplémentation dun objet n exceptions définies par le programmeur exception EntryNotAllowed{string reason;};

45 Exceptions uExemple interface Account { exception OverdrawnException {}; void deposit( in float amount ); void withdraw( in float amount ) raises ( OverdrawnException ); float balance(); };

46 Notion de séquence IDL uUne séquence est une donnée similaire à un tableau. uUne séquence se décrit en IDL par le mot clef « sequence ». La description d'une séquence est couplée à celle d'un alias. uOn distingue deux types de séquences : les séquences bornées : sequence les séquences non bornées : sequence uExemples : typedef sequence liste; typedef sequence liste_bornee;

47 Notion de structure IDL uUne structure IDL est une description qui permet de regrouper plusieurs données appelées membres. uLes structures IDL doivent contenir au minimum un membre. uChaque structure respecte le format suivant : struct nom_de_la_structure { liste_des_membres; }; chaque membre est décrit par : type nom;

48 Echange de référence d'objets uParmi les types de bases de l'IDL il existe celui de référence d'objet symbolisé par « Object ». uAinsi, à l'aide de ce paramètre un client pourra échanger des références avec un objet CORBA. uOn peut également échanger des références d'objets typées en utilisant comme paramètre le nom d'une interface IDL.

49 Exemples interface Exemple { // … }; interface AutreExemple { void f ( in Object obj ); void g ( in Exemple obj ); }; On pourra grâce à « f » échanger des références d'objets dont celle de « Exemple ». Avec « g » on ne pourra échanger que des références d'objets vers « Exemple » où des références d'objets héritants de « Exemple ».

50 Exemple # pragma prefix «ensai.fr» module annuaire typedef string Nom; struct Personne { Nom nom ; String tel ; } interface Repertoire { readonly attribute string libelle ; exception Inconnu (Nom nom ) ; Personne obtenirPersonne (in Nom nom) raises (Inconnu) ; }

51 Concept de « mapping » uUne description IDL est traduite vers un langage de programmation. uLes règles de traduction sont appelées « mapping » et font partie de la spécification CORBA. uGrâce au mapping, deux fournisseurs d'ORBs offriront le même modèle de programmation. portabilité des applications

52 Compilation d'une description IDL uLa description doit être compilée afin de générer les amorces ( souche et squelette ) requises pour l'établissement de la communication inter-processus. uExemple de compilation IDL (projection en Java): idlj –fall –v Hello.idl uA l'issu de la compilation, plusieurs fichier sont créés : n HelloPOA.java : il s'agit du squelette, n _HelloStub.java : il s'agit de la souche, n Hello.java : il s'agit de l'interface n HelloOperations.java : il s'agit des opérations de l'interface

53 Conclusion

54 Exemple u# pragma prefix «ensai.fr» umodule annuaire utypedef string Nom; ustruct Personne { uNom nom ; uString tel ; u } uinterface Repertoire { ureadonly attribute string libelle ; uexception Inconnu (Nom nom ) ; uPersonne obtenirPersonne (in Nom nom) raises (Inconnu) ; u }

55 Anatomie de CORBA

56 Comparaison RMIRPCDCOMCORBASOAP Plate-formesMulti Win32Multi Langages de Programmation JavaC, C++, … C++, VB, VJ, OPascal, … Multi Langages de Définition de Service JavaRPCGENODLIDLXML Réseau TCP, HTTP, IIOP customisable TCP, UDPIP/IPX GIOP, IIOP, Pluggable Transport Layer RPC,HTTP SNMP TransactionNon MTSOTS, XA Extension applicative dans le header Extra Chargement dynamique des classes Services Communs Services Sectoriels Firewall Tunneling HTTP HTTP Tunneling CORBA Firewall HTTP QuiSUNSUN/OSFMicroSoftOMGW3C Nommage RMI, JNDI,JINI IP+PortIP+Nom COS Naming COS Trader IP+Port, URL

57 Merci pour votre attention


Télécharger ppt "Common Object Request Broker Architecture (CORBA) GL4 G1 05/01/2007 El Amouri Annowar Hammami Wael Ben Salem Aicha Farhat Mohamed Kharrat Houceme Eddine."

Présentations similaires


Annonces Google