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

I-D-L Interface Definition Language Elaboré par Elaboré par : Mohamed Moncef SAAFI Sofien SAGHROUNI Mondher MOULAHI Marwen BALLOUMI LFSi-3.

Présentations similaires


Présentation au sujet: "I-D-L Interface Definition Language Elaboré par Elaboré par : Mohamed Moncef SAAFI Sofien SAGHROUNI Mondher MOULAHI Marwen BALLOUMI LFSi-3."— Transcription de la présentation:

1 I-D-L Interface Definition Language Elaboré par Elaboré par : Mohamed Moncef SAAFI Sofien SAGHROUNI Mondher MOULAHI Marwen BALLOUMI LFSi-3

2 Plan  Introduction  Définition de IDL  Règles  Modules  Interfaces  Déclaration  Exception

3 Introduction  Le client et le serveur ont besoin d'informations pour pouvoir travailler sur les mêmes objets. Par exemple, chaque objet doit annoncer les opérations que l'on peut effectuer sur lui.  CORBA dispose ces informations dans une interface qui définit les caractéristiques et les comportement de chaque type d'objet, y compris les opérations qu'un serveur peut exécuter sur ces objets. Pour définir une interface, on utilise l' IDL pour coder l'information dans un jeu de définitions d'interfaces. Les développeurs entreposent ces définitions d'interfaces dans des fichiers IDL. 

4 Définition de IDL  Ainsi avant d'écrire une application cliente ou serveur, on doit d'abord définir son ou ses interface(s), c'est à dire créer un fichier IDL. C'est ce fichier qui contient les définitions des interfaces que le client ou le serveur supporte.  L'IDL est un langage de définition et non un langage de programmation grâce auquel on définit des interfaces et des structures de données et non des algorithmes. On utilise des fichiers IDL pour générer un code source pour le langage de programmation désiré. On peut donc, par exemple, écrire des applications clientes en LISP et des applications serveurs en C et faire communiquer ce client et ce serveur.

5 - 5 - Le contrat IDL IDL Bus CORBA Squelette IDL Stub IDL Fournisseur d ’objets Client d ’objets Le Langage IDL Un « esperanto » pour les objets Objets Corba

6 Le Langage IDL Interface Definition Language  langage de spécification d’interfaces, supportant l’héritage multiple;  indépendant de tout langage de programmation ou compilateur (langage pivot entre applications);  langage utilisé pour générer les stubs, les squelettes et pour définir les interfaces du Référentiel d’interface;  la correspondance IDL-langage de programmation est fournie pour les langages C, C++, Java, Smalltalk, Ada, Cobol.

7 - 7 - Projection vers un langage de programmation Stubs Definitions IDL Précompilateur IDL Objet implementation Methodes Squelettes Client Serveur Adaptateur d'objet Noyau ORB C++ Java

8 Les Règles  CORBA définit les règles de correspondance de l’IDL vers les langages cibles (mapping). Mapping normalisé pour C, C++, Ada, Smalltalk, COBOL, Java.  Ce qui est défini en IDL :  Des modules. Unités de structuration (opérateur de portée ::).  Des constantes.  Des interfaces.  Des opérations.  Des types construits à partir de types simples prédéfinis.  Des exceptions utilisateurs. Les objets peuvent lever des exceptions  et retourner des informations.

9 Déclaration de module module { }

10 Déclaration d’interface interface [:inheritance] { }

11 Un exemple de définition d'interface module Animals { // Interface for a dog interface Dog : Animal { // a public attribute attribute integer age; // an exception that can be raised exception notInterested (string why);

12 Un exemple de définition d'interface // public methods void Bark (in short duration) raises (notInterested) ; void Sit (in string local) raises (notInterested) ; void Play (in Dog friend) raises (notInterested) ; boolean Alive () ; }

13 - 13 - Exemple interface account { readonly attribute float balance; attribute string description; void credit (in float f); void debit (in float f); }; interface currentAccount : account { readonly attribute float overdraftLimit; }; interface bank { exception reject {string reason;}; account newAccount (in string name) raises (reject); currentAccount newCurrentAccount (in string name, in float limit) raises (reject); void deleteAccount (in account a); }; interface attribut opérations exception opérations

14 module Escola { interface Curso; // declarado, mas não definido interface Estudante { attribute string nome; attribute unsigned long matricula; exception ClasseLotada; void registra (in Curso curso) raises (ClasseLotada); exception ReqIncompleto; void gradua ( ) raises (ReqIncompleto); typedef sequence ListaCursos; ListaCursos cursos_registrados(); } Exemples

15 Types de données IDL  Types de base  short long float boolean...  Types dérivés  using the typedef keyword  Types structurés  enum struct union array  Types variables:  dynamic arrays, string

16 Types de données IDL Types de base et constantes  Integer: [ unsigned ] short long  Reals: float double  8 bits: char octet boolean  Generic: any const double Pi = 3.1415926 ; const string Msg = “This is a message” ; const unsigned long Mask =(1<<5)|(1<<7) ;

17 Types de données IDL Types structurés enum CreditCard {Master, Visa, none}; struct PersonRecord { string name ; short age ; } union Customer switch (CreditCard) { case Master: string cardNumber ;... }

18 Types de données IDL Types Variables // arrays typedef long longVect [30]; typedef long longArray [2][10]; // sequences typedef sequence shortSeq; typedef sequence shortSeq20; // strings typedef string boundedString;

19 Déclaration de méthode ( ) [raises ] [context] ;  Les paramètres de méthode peuvent être:  in :sent to the server (envoyé au serveur)  out :received from the server (reçu du serveur)  inout :both directions (les deux directions)

20 Déclaration d'attribut attribute string name ; readonly attribute short age ;  Les Attributs:  sont déclarés comme variables  les méthodes get et set sont fournies

21 Les Exceptions  Une méthode de l'application du serveur peut fournir l'information sur l'exception s'il y a une erreur ou par exemple s'il n'y a pas assez d'arguments dans la requête. Le broker lui-même peut le faire si par exemple l'accès d'un serveur lui est interdit.  L'application client peut lire mais ne peut pas modifier une exception. Par défaut, s'il n'y a pas de retour d'exception, l'opération est considérée comme réussie. Par contre s'il y en a une, l'application cliente doit vérifier si l'opération est réussie ou non.

22 - 22 - Conclusion  CORBA : ça marche et c’est simple  Choisir son langage d’implantation  C++ : complexe et moins portable  Java : portable et plus lent  Choisir son bus  1 bus = 1 bibliothèque  mixer les bus : c’est possible


Télécharger ppt "I-D-L Interface Definition Language Elaboré par Elaboré par : Mohamed Moncef SAAFI Sofien SAGHROUNI Mondher MOULAHI Marwen BALLOUMI LFSi-3."

Présentations similaires


Annonces Google