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

Slides:



Advertisements
Présentations similaires
A RECUPERER EN ENTRANT Le polycopié de Caml Partie 1
Advertisements

Introduction Langage très répandu Noyau Linux VLC … Des avantages indéniables mais aussi des contraintes ! Ceci nest quun rapide tour.
Rappels C.
Invocation de Méthode à des Objets distants Exemple : CORBA
Common Object Request Broker Architecture
Architecture CORBA réseau Objet Corba Application Serveur
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Types, variables et constantes.
Approfondissement du langage
la programmation en langage C
77 Utilisation des classes (suite). 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir.
Miguel Garzon CrUise Lab - SITE. Introduction Data Types and Sizes Constants Logic Operators Type conversions Example.
IFT 6800 Atelier en Technologies d’information
COURS DE PROGRAMMATION ORIENTEE OBJET :
Présentation de CORBA et de IIOP
Conception de Programmes - IUT de Paris - 1ère année Conception de Programmes Objectifs et organisation du cours Introduction à la P.O.O.
PaCO++ André Ribes Réunion Hydrogrid Rennes 15/09/03.
PRO-1027 Programmation Scientifique en C
Developpement Process « Coding party !! » Tony Carnal Altran.
UML EPITECH 2009 UML1 - Introduction UML – Définition – Historique – UML en entreprise – Couverture Concepts – Objet – Classe –
Tableaux et Pointeurs Chaînes de Caractères Programmation Impérative II.
Stéphane Frénot, Frederique Laforest, Frédéric Le-Mouël IJA 1 TD 6 IJA Structures de données JAVA.
1- Introduction 1ère partie Le langage SQL 2- Connexion 3- Structure & Contenu 4- Requêtes.
1 Programmation en C++ Fonctions ● Déclaration et définition de fonctions ● Arguments ● Surcharge ● Arguments optionnels ● Fonctions constantes ● Fonctions.
CORBA. Agenda ë L ’OMG ë Object Management Architecture (OMA) ë Le langage IDL ë Architecture CORBA ë Intéropérabilité : CORBA 2 ë Les composants de l.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Fonctions ● Namespace ● Tests ● Boucles ● Pointeurs, références.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Types et opérations fondamentales ● Tests ● Boucles ● Pointeurs, références.
Présentation python : Épisode 3 ● Comment programmer comme un gentilhomme ? ● Le style de code ou comment bien présenter ● Les test unitaires ou comment.
Fadhel jied Oussama hédhili V - conclusion IV - Les avantages et les inconvénients III - exemples II - aspect informatique I - introduction.
Windows NT/2000/XP Enjeux et contraintes techniques
JAVA.
Communication client-serveur
java : l'héritage (rappel)
Environnement de développement des BD
Introduction au Langage Pascal
Pas de variable globale
Les notions de classe et d'objet
Pointeurs et langage C.
AO (Architecture des ordinateurs)
Principes de programmation (suite)
Algorithmique Langage C
11ième Classe (Mardi, 18 novembre) CSI2572
Langages de programmation TP7
Les fonctions.
Les bases de données et le modèle relationnel
Programmation en C++ Fonctions
Session 1 31 mai 2017 Plateforme ICONICS Justine Guégan
SIF-1053 Architecture de ordinateurs
Cours Programmation Orientée Objet (POO) 2eme année Licence-LMD
Les interfaces en PHP.
La couche présentation : ASN.1 et BER Abstract Syntax Notation #1
Programmation en C++ Fonctions
Programmation en C++ C++ de base
Modélisation avec UML 2.0 Partie II Diagramme de classes.
Programmation Orientée Objet C# El Akel Bouchra ISMONTIC Tanger 2013/2014.
Cours 8 : Les Web Services et XML-RPC Février Version 1.0 -
Plus de 4000 langages....
Message Oriented Middleware MOM - Beghdad abdelkrim -abass youcef.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Cours 10 : Les Web Services et WSDL Février Version 1.0 -
Développement d’une Application CORBA
Les classes et les objets
I-D-L Interface Definition Language Elaboré par Elaboré par : Mohamed Moncef SAAFI Sofien SAGHROUNI Mondher MOULAHI Marwen BALLOUMI LFSi-3.
IDL interface définition langage. Plan Introduction Principaux éléments IDL Types de données IDL Déclaration de module Déclaration d'interface Déclaration.
Programmation par Objets et Java
Principes de programmation (suite)
Le langage C# : Partie 1.
Variables et accès en Java
Analyse et programmation langage ADA
Boulain Joris, Handouz Yassine, Regnier Fabien, Giraud Antoine
LINQ. LINQ (Language-Integrated Query) est une nouveauté du.NET Framework 3.5 C’est le nom d’un ensemble de technologies basé sur l’intégration de fonctions.
Transcription de la présentation:

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

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

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. 

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 - 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

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 - 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

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.

Déclaration de module module { }

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

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);

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 () ; }

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

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

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

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 = ; const string Msg = “This is a message” ; const unsigned long Mask =(1<<5)|(1<<7) ;

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 ;... }

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;

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)

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

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.

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