Скачать презентацию ICAR 03 École d été sur les Intergiciels et Скачать презентацию ICAR 03 École d été sur les Intergiciels et

0f3c9752467201ba2344a279c50e05a7.ppt

  • Количество слайдов: 124

ICAR’ 03 École d’été sur les Intergiciels et sur la Construction d’Applications Réparties Le ICAR’ 03 École d’été sur les Intergiciels et sur la Construction d’Applications Réparties Le modèle de composants CORBA Philippe Merle Project Jacquard (INRIA et LIFL) http: //www. lifl. fr/~merle

Plan n Quelques rappels sur CORBA u Objectifs, historique, principes de fonctionnement, principaux défauts Plan n Quelques rappels sur CORBA u Objectifs, historique, principes de fonctionnement, principaux défauts n Introduction au modèle de composants CORBA u Points clés, comparaisons avec EJB, COM et. NET u Le cadre global de construction d’applications CCM n Le modèle abstrait de composants CORBA u Concepts et nouvelles constructions du langage OMG IDL 3. 0 n Le conditionnement, l’assemblage et le déploiement CORBA u Les archives de composant et d’assemblage u Le processus de déploiement et ses interfaces n Les conteneurs CORBA u Politiques de gestion des services n Conclusions u Implantations CCM et activités OMG en cours autour du CCM © 2003, P. Merle ICAR’ 03 2

Quelques rappels sur CORBA © 2003, P. Merle ICAR’ 03 3 Quelques rappels sur CORBA © 2003, P. Merle ICAR’ 03 3

CORBA n Spécification d’un modèle de composants logiciels répartis et des interfaces de l’intergiciel CORBA n Spécification d’un modèle de composants logiciels répartis et des interfaces de l’intergiciel associé u CORBA pour Common Object Request Broker Architecture n Fait parti d’un large ensemble de spécifications définies par le consortium international Object Management Group (OMG) u Object Management Architecture (OMA) v Des services communs s Nommage, courtage, notification, transactions, persistance, sécurité, … v Des interfaces orientées métiers / domaines s Air Traffic Control, Gene Expression, Software Radio, Workflow Management, … u Model Driven Architecture (MDA) v Des technologies d’ingénierie dirigée par les modèles s s © 2003, P. Merle Unifed Modeling Language (UML) Meta Object Facilities (MOF) XML Metadata Interchange (XMI) … ICAR’ 03 4

Objectifs de CORBA n Ouvert u Spécification indépendant des fournisseurs et des implantations n Objectifs de CORBA n Ouvert u Spécification indépendant des fournisseurs et des implantations n Hétérogénéité u Multi-langages, multi-OSs, multi-réseaux, multi-fournisseurs u Via OMG Interface Definition Language (OMG IDL) n Portabilité u Code applicatif indépendant des implantations CORBA u Projections standardisées OMG IDL vers langages de programmation n Interopérabilité u Protocole réseau commun entre implantations CORBA v General Inter-ORB Protocol (GIOP) v Internet Inter-ORB Protocol (IIOP) u Vers d’autres modèles comme OLE, COM et EJB © 2003, P. Merle ICAR’ 03 5

Historique de CORBA n CORBA 1. 0 (1991) u Modèle orienté objet, OMG IDL Historique de CORBA n CORBA 1. 0 (1991) u Modèle orienté objet, OMG IDL et interfaces de l’intergiciel n CORBA 2. 0 (1995) u C++, interopérabilité GIOP/IIOP et COM u v 2. 1 (1997) : COBOL et ADA u v 2. 2 (1998) : Java et Portable Object Adaptor (POA) u v 2. 3 (1999) : révisions techniques u v 2. 4 (2000) : Asynch. Messaging, Minimum CORBA, RT CORBA u v 2. 5 (2001) : Intercepteurs portables, FT CORBA u v 2. 6 (2001) : Sécurité interopérable n CORBA 3. 0 (2002) u Composants, langages de script (e. g. OMG IDLscript) © 2003, P. Merle ICAR’ 03 6

Intergiciel CORBA Transparence vis-à-vis de la distribution et de l’hétérogénéité Client Appels de méthodes Intergiciel CORBA Transparence vis-à-vis de la distribution et de l’hétérogénéité Client Appels de méthodes à distance Objet Interface OMG IDL Compilateur OMG IDL ORB Squelette Optimisation si co-localisation i. e. pas IIOP ni réseau Souche POA PI PI PI ORB IIOP sur réseau Internet © 2003, P. Merle ICAR’ 03 7

Intergiciel CORBA n Divers modèles d’invocations de méthodes u Static Invocation Interface (SII) v Intergiciel CORBA n Divers modèles d’invocations de méthodes u Static Invocation Interface (SII) v Contrôle du typage des invocations à la compilation v Projection OMG IDL vers souches / squelettes u Dynamic Invocation Interface (DII) + Dynamic Skeleton Interface (DSI) v Contrôle du typage des invocations à l’exécution v Souche et squelette génériques v Découverte OMG IDL via Interface Repository u Asynchronous Method Invocation (AMI) v Appel de méthodes asynchrones v Résultats obtenues par scrutation périodique ou appel retour u Les trois approches sont compatibles et composables n Profils spécialisés u Minimum u Real-Time u Fault-Tolerance © 2003, P. Merle ICAR’ 03 8

Langage OMG IDL n Types de données u Elémentaires : octet, booléen, entiers, flottants, Langage OMG IDL n Types de données u Elémentaires : octet, booléen, entiers, flottants, caractères, chaînes u Construits : typedef, énumération, structure, union, séquence, tableau u Polymorphes : Any et Type. Code u Passage par valeur n Exceptions u Composées de champs publiques (~structures) n Interfaces u Opérations + attributs u Héritage multiple u Passage par référence n Types valeurs u ~ interface + structure u Héritage simple u Passage par valeur n Standard ISO 14750 © 2003, P. Merle ICAR’ 03 9

Projections OMG IDL n Règles de traduction des constructions OMG IDL en constructions d’un Projections OMG IDL n Règles de traduction des constructions OMG IDL en constructions d’un langage cible, standardisées pour u ADA u C++ u COBOL u CORBA Scripting Language (IDLscript) u Java OMG IDL u Lisp u PL/1 u Python u Small. Talk u XML DTD/Schema Value types n Non standardisées mais existantes pour Eiffel, TCL, … © 2003, P. Merle ICAR’ 03 10

Quelques implantations de CORBA n Commerciales u IONA ORBacus et Orbix pour C++ et Quelques implantations de CORBA n Commerciales u IONA ORBacus et Orbix pour C++ et Java u Borland Visi. Broker pour C++ et Java u SUN Java Development Kit u Plates-formes J 2 EE v BEA Web. Logic Enterprise v IBM Web. Sphere u Navigateur Netscape u … n Open source u Red Hat ORBit pour C u MICO pour C++ u AT&T omni. ORB pour C++ u TAO pour C++ u Open. ORB pour Java u Jac. ORB pour Java u Jonathan pour Java u … © 2003, P. Merle ICAR’ 03 11

Principaux défauts de CORBA 2. x n Non trivial à mettre en œuvre u Principaux défauts de CORBA 2. x n Non trivial à mettre en œuvre u Connaître règles de projections OMG IDL vers langages de programmation n Pas de vision des architectures logicielles u Liaisons entre objets CORBA cachées dans le code u Rarement configurables de l’extérieur, i. e. par architectes u Aucun moyen pour raisonner sur des compositions d’objets CORBA n Pas de séparation des aspects fonctionnels / non fonctionnels u Programmation explicite des aspects non fonctionnels dans code applicatif, e. g. v POA, cycle de vie, (dé)activation, nommage, courtage, notification, persistance, transactions, sécurité, temps réel, tolérances aux pannes, etc. u Complexité accrue pour les experts métiers n Pas de standard pour conditionnement et déploiement u Uniquement des solutions ad hoc © 2003, P. Merle ICAR’ 03 12

Solutions apportées par le modèle de composants CORBA n Vision des architectures logicielles u Solutions apportées par le modèle de composants CORBA n Vision des architectures logicielles u Description explicite des liaisons entre composants CORBA v Liaisons entre types décrites via des ports en OMG IDL v Liaisons entre instances décrites via descripteurs XML d’assemblage n Meilleur séparation des aspects fonctionnels / non fonctionnels u Dichotomie composant / conteneur v Composant contient code métier v Conteneur contient code technique u Politiques techniques décrites en XML plutôt que programmées en dur n Standard pour le conditionnement, assemblage et déploiement u Formats d’archives et de descripteurs XML u API de contrôle du déploiement en réparti n Mais toujours pas trivial à mettre en œuvre ; -( u OMG IDL composant OMG IDL objet langages de programmation © 2003, P. Merle ICAR’ 03 13

Introduction au modèle de composants CORBA © 2003, P. Merle ICAR’ 03 14 Introduction au modèle de composants CORBA © 2003, P. Merle ICAR’ 03 14

Le modèle de composants CORBA n Un modèle de composants répartis u Multi-langages, multi-OSs, Le modèle de composants CORBA n Un modèle de composants répartis u Multi-langages, multi-OSs, multi-ORBs, multi-fournisseurs, etc. v Vs le modèle EJB centré sur le langage Java v Vs le canevas. NET centré sur le fournisseur Microsoft u Un langage de définition des composants et de leurs ports d’interaction v Des composants clients (IHM) aux composants serveurs (métiers) u Une technologie XML de conditionnement et d’assemblage de composants u Une infrastructure de déploiement réparti u Un canevas de conteneurs gérant les politiques de v Cycle de vie, d’activation, de sécurité, de transactions, de persistance et de communication asynchrone u Interopérabilité avec les Enterprise Java Beans (EJB 1. 1) u Méta modèle MOF pour l’ingénierie dirigée par les modèles (MDE / MDA) © 2003, P. Merle ICAR’ 03 15

Similarités avec EJB, COM et. NET n Comme SUN Microsystems’s Enterprise Java Beans (EJB) Similarités avec EJB, COM et. NET n Comme SUN Microsystems’s Enterprise Java Beans (EJB) u Composants CORBA créés et gérés par des maisons (homes) u S’exécutant dans des conteneurs prenant en charge les services systèmes u Hébergés par des serveurs d’applications n Comme Microsoft’s Component Object Model (COM) u Composants CORBA ont plusieurs interfaces offertes et requises v Accessibles par appel de méthodes ou par notification d’événements u Navigation et introspection des interfaces n Comme Microsoft’s. NET Framework u Support de différents langages de programmation u Technologie de conditionnement pour déploiement © 2003, P. Merle ICAR’ 03 16

Différences avec EJB, COM et. NET n CCM réunit simultanément les “bonnes” fonctionnalités des Différences avec EJB, COM et. NET n CCM réunit simultanément les “bonnes” fonctionnalités des EJB, de COM et de. NET u +++ ouvert +++ hétérogénéité +++ portabilité +++ interopérabilité +++ n CCM fournit un cadre global pour la construction d’applications à base de composants distribués u Spécification, implantation, conditionnement, assemblage, déploiement et exécution des composants n Répartition des assemblages de composants CORBA u Peuvent être déployés et s’exécutés sur différentes machines n Segmentation de l’implantation des composants u Plusieurs classes au lieu d’une seule u Un état persistant par segment possible © 2003, P. Merle ICAR’ 03 17

Une application CCM C 5 C 6 C 7 C 3 Réseau Internet C Une application CCM C 5 C 6 C 7 C 3 Réseau Internet C 1 C 2 C 4 C 9 C 8 © 2003, P. Merle ICAR’ 03 18

Un composant CORBA et ses ports Interface du composant OFFERTS Réceptacles Composant Métier Puits Un composant CORBA et ses ports Interface du composant OFFERTS Réceptacles Composant Métier Puits d’ événements REQUIS Facettes Sources d’événements Attributs © 2003, P. Merle ICAR’ 03 19

Conteneur et implantation d’un composant CORBA Business Component Conteneur du Composant Business Implantation Implementation Conteneur et implantation d’un composant CORBA Business Component Conteneur du Composant Business Implantation Implementation Métier n Par interposition, le conteneur gère u Le cycle de vie, i. e. Service, Session, Process, Entity u Les ports, l’activation, la persistance, les transactions, la sécurité, les communications © 2003, P. Merle ICAR’ 03 20

Implantation segmentée d’un composant CORBA Conteneur du Composant Business Component Implantation Métier Segment principal Implantation segmentée d’un composant CORBA Conteneur du Composant Business Component Implantation Métier Segment principal Business Segment 2 Implementation Segment 3 Segment 4 n Implantation de plusieurs ports offerts ayant la même interface u Impossible si le composant est implanté par une unique classe u Equivalent aux “component parts ” dans UML 2. 0 © 2003, P. Merle ICAR’ 03 21

Segmentation de la persistance d’un composant CORBA Conteneur du Composant Business Component Implantation Métier Segmentation de la persistance d’un composant CORBA Conteneur du Composant Business Component Implantation Métier Segment principal Business Segment 2 Implementation Segment 3 Segment 4 n Contrôle fin de la persistance métier u Chaque segment peut avoir son propre état persistant stocké sur un support de données distinct © 2003, P. Merle ICAR’ 03 22

CCM : un cadre global pour la construction d’applications n Spécification des composants u CCM : un cadre global pour la construction d’applications n Spécification des composants u Via OMG Interface Definition Language (OMG IDL) v Description des composants, de leurs ports et des maisons n Implantation des composants u Via OMG Component Implementation Definition Language (OMG CIDL) v Description du cycle de vie, de la persistance et de la segmentation des composants u Via Component Implementation Framework (CIF) v Règles de programmation à respecter v Interfaces conteneur composant & composant conteneur n Conditionnement des composants u Via archives ZIP incluant descripteurs XML + code binaire n Assemblage des composants u Via le XML Component Assembly Descriptor (CAD) et des archives ZIP n Déploiement des composants u Via une infrastructure répartie d’interprétation descripteurs XML n Exécution des composants u Via des conteneurs hébergés par des serveurs d’applications © 2003, P. Merle ICAR’ 03 23

Les langages de définition du CCM n OMG IDL 2. x u Modèle orienté Les langages de définition du CCM n OMG IDL 2. x u Modèle orienté objet u i. e. types de données, exceptions, interfaces et types valeurs OMG IDL 2. x étend n OMG IDL 3. 0 u Modèle orienté composant u i. e. types de composants, maisons et événements n OMG PSDL u Définition d’états persistents u i. e. types et maisons [abstraites] de stockage n OMG CIDL u Description de l’implantation de composants u i. e. compositions et segments © 2003, P. Merle ICAR’ 03 OMG PSDL OMG IDL 3. 0 étend OMG CIDL 24

De la conception au conditionnement des composants CORBA Concepteur Composant OMG IDL, PSDL & De la conception au conditionnement des composants CORBA Concepteur Composant OMG IDL, PSDL & CIDL Local server-side OMG IDL Implante Compilateur OMG IDL PSDL & CIDL Implantation Exécuteur Composant Développeur Composant Compilateur Langage Programmation Stubs et Skeletons Client-side OMG IDL référence XML Component Descriptor Composant Binaire Conditionneur Composant Utilisateur Composant © 2003, P. Merle décrit ICAR’ 03 25

Conception, développement, conditionnement et assemblage concepteur développeur IDL/CIDL File User's Code IDL/CIDL Programming Language Conception, développement, conditionnement et assemblage concepteur développeur IDL/CIDL File User's Code IDL/CIDL Programming Language Tools Home Properties Component Properties Default Properties Compiler CORBA Component Stubs, Skeletons Implementation Package Packaging Tool Component Descriptor User written file Compiler Generated files © 2003, P. Merle CORBA Component Package conditionneur Assembly Tool Component Assembly Package assembleur Assembly Descriptor softpkg Descriptor ICAR’ 03 26

Le déploiement d’assemblages CCM Deployed Application déployée Archive ZIP Component Déployeur Archive ZIP Component Le déploiement d’assemblages CCM Deployed Application déployée Archive ZIP Component Déployeur Archive ZIP Component Archive ZIP Assembly © 2003, P. Merle Outil IHM de déploiement Infrastructure répartie de déploiement ORB ICAR’ 03 27

Le déploiement d’une application CCM Réseau Internet © 2003, P. Merle ICAR’ 03 28 Le déploiement d’une application CCM Réseau Internet © 2003, P. Merle ICAR’ 03 28

Le déploiement d’une application CCM C 5 C 6 C 7 C 3 Réseau Le déploiement d’une application CCM C 5 C 6 C 7 C 3 Réseau Internet C 1 C 2 C 4 C 9 C 8 © 2003, P. Merle ICAR’ 03 29

Conteneurs CORBA, ORB et services Conteneur EJB EJB POA 1 Conteneur CCM CC CC Conteneurs CORBA, ORB et services Conteneur EJB EJB POA 1 Conteneur CCM CC CC Conteneur CCM CC POA 2 CC CC POA 3 Object Request Broker (ORB) Notification Service © 2003, P. Merle Transaction Service Security Service ICAR’ 03 Persistence Service 30

La spécification CORBA Components n Le modèle de composants CORBA n Component Implementation Definition La spécification CORBA Components n Le modèle de composants CORBA n Component Implementation Definition Language (CIDL) n Component Implementation Framework (CIF) n Component Container Programming Model n Interopérabilité avec EJB 1. 1 n Conditionnement et déploiement n Un méta modèle MOF pour OMG IDL et CIDL => Spécification OMG disponible ~ 500 pages © 2003, P. Merle ICAR’ 03 31

Le modèle abstrait de composants CORBA © 2003, P. Merle ICAR’ 03 32 Le modèle abstrait de composants CORBA © 2003, P. Merle ICAR’ 03 32

Le modèle abstrait de composants CORBA n Permet de capturer les fonctionnalités externes des Le modèle abstrait de composants CORBA n Permet de capturer les fonctionnalités externes des composants CORBA u Facettes = interfaces offertes u Réceptacles = interfaces requises u Puits = événements consommés u Sources = événements produits u Attributs = propriétés configurables u Opérations des maisons / gestionnaires de composants n Exprimé via le langage OMG IDL 3. 0 u Nouvelles constructions syntaxiques masquant des canevas de conception u Traduites vers des interfaces OMG IDL compatibles CORBA 2. x © 2003, P. Merle ICAR’ 03 33

Un composant CORBA Interface du composant OFFERTS Réceptacles Composant CORBA Puits d’ événements REQUIS Un composant CORBA Interface du composant OFFERTS Réceptacles Composant CORBA Puits d’ événements REQUIS Facettes Sources d’événements Attributs © 2003, P. Merle ICAR’ 03 34

Construire une application CCM = Assembler des composants CORBA © 2003, P. Merle ICAR’ Construire une application CCM = Assembler des composants CORBA © 2003, P. Merle ICAR’ 03 35

Types et instances de composants CORBA n Un type de composants u Nouveau méta-type Types et instances de composants CORBA n Un type de composants u Nouveau méta-type et mot-clé OMG IDL component u Identification de la liste des ports via nouveaux mots-clés v provides pour les facettes v [multiple] uses pour les réceptacles simples ou multiples v consumes pour les puits d’événements v emits / publishes pour les sources d’événements (1: 1 | 1: N) v [readonly] attribute pour les propriétés configurables u Héritage simple entre types de composants u Héritage multiple d’interfaces (mot-clé supports) n Une instance de composant u 1 référence distincte pour l’interface de base, chaque facette et chaque puits u API générique pour la connexion, navigation et introspection des ports u Créée et gérée par une unique instance de maison © 2003, P. Merle ICAR’ 03 36

Une maison de composants CORBA Interface maison Maison de Composants c 1 … c. Une maison de composants CORBA Interface maison Maison de Composants c 1 … c. N © 2003, P. Merle ICAR’ 03 37

Types et instances de maisons de composants CORBA n Un type de maisons u Types et instances de maisons de composants CORBA n Un type de maisons u Nouveau méta-type et mot-clé OMG IDL home u Identification de l’unique type de composants gérés (mot-clé manages) v Plusieurs types de maisons pour le même type de composants possible u Identification du type de l’identité / clé persistante des composants v mot-clé primarykey ; pour composants Entity u Opérations factory et finder u N’importe quelle opération métier u Héritage simple entre types de maisons u Héritage multiple d’interfaces (mot-clé supports) n Une instance de maison u 1 référence pour l’interface de base u Instanciée lors du déploiement u Co localisation des instances de composants gérés © 2003, P. Merle ICAR’ 03 38

L’exemple du dîner des philosophes Thinking Hungry Starving Eating Dead Fork Thinking Hungry Starving L’exemple du dîner des philosophes Thinking Hungry Starving Eating Dead Fork Thinking Hungry Starving Eating Dead Descartes Kant Fork Aristotle © 2003, P. Merle ICAR’ 03 Thinking Hungry Starving Eating Dead 39

Les composants CORBA du dîner des philosophes Component Philosopher Base ref. Facet Fork Receptacle Les composants CORBA du dîner des philosophes Component Philosopher Base ref. Facet Fork Receptacle name = Kant Event Sink Fork Philosopher Event Source Fork name = Descartes Philosopher name = Aristotle © 2003, P. Merle Observer ICAR’ 03 40

Le composant Fork. Manager exception In. Use {}; interface Fork { void get() raises Le composant Fork. Manager exception In. Use {}; interface Fork { void get() raises (In. Use); void release(); }; Fork Manager // The fork component Fork. Manager { // The fork facet used by philosophers. provides Fork the_fork; }; // Home for instantiating Fork. Manager components. home Fork. Home manages Fork. Manager {}; © 2003, P. Merle ICAR’ 03 41

Le composant Fork. Manager exception In. Use {}; interface Fork { void get() raises Le composant Fork. Manager exception In. Use {}; interface Fork { void get() raises (In. Use); void release(); }; Fork Manager // The fork component Fork. Manager { // The fork facet used by philosophers. provides Fork the_fork; }; // Home for instantiating Fork. Manager components. home Fork. Home manages Fork. Manager {}; © 2003, P. Merle ICAR’ 03 42

Le composant Fork. Manager exception In. Use {}; interface Fork { void get() raises Le composant Fork. Manager exception In. Use {}; interface Fork { void get() raises (In. Use); void release(); }; Fork Manager // The fork component Fork. Manager { // The fork facet used by philosophers. provides Fork the_fork; }; // Home for instantiating Fork. Manager components. home Fork. Home manages Fork. Manager {}; © 2003, P. Merle ICAR’ 03 43

La maison pour Fork. Manager Fork. Home exception In. Use {}; interface Fork { La maison pour Fork. Manager Fork. Home exception In. Use {}; interface Fork { void get() raises (In. Use); void release(); }; Fork Manager // The fork component Fork. Manager { // The fork facet used by philosophers. provides Fork the_fork; }; // Home for instantiating Fork. Manager components. home Fork. Home manages Fork. Manager {}; © 2003, P. Merle ICAR’ 03 44

Le composant Philosopher enum Philosopher. State { EATING, THINKING, HUNGRY, STARVING, DEAD }; eventtype Le composant Philosopher enum Philosopher. State { EATING, THINKING, HUNGRY, STARVING, DEAD }; eventtype { public public }; © 2003, P. Merle Philosopher name = XXX Status. Info string name; Philosopher. State state; unsigned long ticks_since_last_meal; boolean has_left_fork; boolean has_right_fork; ICAR’ 03 45

Le composant Philosopher component Philosopher { attribute string name; Philosopher // The left fork Le composant Philosopher component Philosopher { attribute string name; Philosopher // The left fork receptacle. uses Fork left; name = XXX // The right fork receptacle. uses Fork right; // The status info event source. publishes Status. Info info; }; home Philosopher. Home manages Philosopher { factory new(in string name); }; © 2003, P. Merle ICAR’ 03 46

Le composant Philosopher component Philosopher { attribute string name; Philosopher // The left fork Le composant Philosopher component Philosopher { attribute string name; Philosopher // The left fork receptacle. uses Fork left; name = XXX // The right fork receptacle. uses Fork right; // The status info event source. publishes Status. Info info; }; home Philosopher. Home manages Philosopher { factory new(in string name); }; © 2003, P. Merle ICAR’ 03 47

Le composant Philosopher component Philosopher { attribute string name; Philosopher // The left fork Le composant Philosopher component Philosopher { attribute string name; Philosopher // The left fork receptacle. uses Fork left; name = XXX // The right fork receptacle. uses Fork right; // The status info event source. publishes Status. Info info; }; home Philosopher. Home manages Philosopher { factory new(in string name); }; © 2003, P. Merle ICAR’ 03 48

Le composant Philosopher component Philosopher { attribute string name; Philosopher // The left fork Le composant Philosopher component Philosopher { attribute string name; Philosopher // The left fork receptacle. uses Fork left; name = XXX // The right fork receptacle. uses Fork right; // The status info event source. publishes Status. Info info; }; home Philosopher. Home manages Philosopher { factory new(in string name); }; © 2003, P. Merle ICAR’ 03 49

La maison de Philosopher. Home component Philosopher { attribute string name; Philosopher // The La maison de Philosopher. Home component Philosopher { attribute string name; Philosopher // The left fork receptacle. uses Fork left; name = XXX // The right fork receptacle. uses Fork right; // The status info event source. publishes Status. Info info; }; home Philosopher. Home manages Philosopher { factory new(in string name); }; © 2003, P. Merle ICAR’ 03 50

Le composant Observer component Observer { // The status info sink port. consumes Status. Le composant Observer component Observer { // The status info sink port. consumes Status. Info info; }; // Home for instantiating observers. home Observer. Home manages Observer {}; © 2003, P. Merle ICAR’ 03 51

Le composant Observer component Observer { // The status info sink port. consumes Status. Le composant Observer component Observer { // The status info sink port. consumes Status. Info info; }; // Home for instantiating observers. home Observer. Home manages Observer {}; © 2003, P. Merle ICAR’ 03 52

Le maison d’Observer Home Observer component Observer { // The status info sink port. Le maison d’Observer Home Observer component Observer { // The status info sink port. consumes Status. Info info; }; // Home for instantiating observers. home Observer. Home manages Observer {}; © 2003, P. Merle ICAR’ 03 53

La compilation OMG IDL 3. 0 Concepteur Composant Application Cliente Développeur Composant OMG IDL La compilation OMG IDL 3. 0 Concepteur Composant Application Cliente Développeur Composant OMG IDL 3. 0 Client Composant Exécuteur Composant utilise implanté par Code utilisateur Compileur Code généré © 2003, P. Merle Local server-side OMG IDL 2. x Compilateur OMG IDL 3. 0 Client-side OMG IDL 2. x Implanté par Délègue vers Souche Cliente ORB ICAR’ 03 Squelette Composant 54

Projection cliente pour le composant Philosopher component Philosopher { attribute string name; uses Fork Projection cliente pour le composant Philosopher component Philosopher { attribute string name; uses Fork left; uses Fork right; publishes Status. Info info; }; Philosopher name = XXX Traduit en interface Philosopher : : : Components: : CCMObject { attribute string name; . . . /. . . © 2003, P. Merle ICAR’ 03 55

Projection cliente pour le composant Philosopher name = XXX void connect_left(in Fork cnx) raises(…); Projection cliente pour le composant Philosopher name = XXX void connect_left(in Fork cnx) raises(…); Fork disconnect_left() raises(…); Fork get_connection_left(); void connect_right(in Fork cnx) raises (…); Fork disconnect_right() raises (…); Fork get_connection_right(); Components: : Cookie subscribe_info( in Status. Info. Consumer consumer) raises(…); Status. Info. Consumer unsubscribe_info( in Components: : Cookie ck) raises(…); }; © 2003, P. Merle ICAR’ 03 56

Component Implementation Framework (CIF) n Définit le modèle de programmation de l’implantation des composants Component Implementation Framework (CIF) n Définit le modèle de programmation de l’implantation des composants u Concepts de composition, de segment et d’exécuteur u Projection composant OMG IDL en interfaces locales OMG IDL u Interfaces OMG IDL des conteneurs v Session. Context et Entity. Context, … u Interfaces OMG IDL des exécuteurs de composant v Session. Component et Entity. Component, … u Component Implementation Description Language (CIDL) © 2003, P. Merle ICAR’ 03 57

Component Implementation Definition Language (CIDL) n Description de la structure d’implantation des composants u Component Implementation Definition Language (CIDL) n Description de la structure d’implantation des composants u Composition d’une implantation de maison et d’une implantation de composant u Segmentation de l’implantation des composants u Association d’un état persistant à chaque segment n OMG Persistent State Definition Language (OMG PSS) u Description des états persistants n Génération de squelettes prenant en charge u Les ports des composants u Le cycle de vie des composants u La segmentation de l’implantation u La liaison avec les états persistants u L’implantation par défaut des opérations de retour v ccm_activate, ccm_load, ccm_store, ccm_passivate © 2003, P. Merle ICAR’ 03 58

Composition CIDL pour le composant Fork. Manager import Dining. Philosophers; composition session Fork. Manager. Composition CIDL pour le composant Fork. Manager import Dining. Philosophers; composition session Fork. Manager. Composition { home executor Fork. Home. Session. Impl { implements Dining. Philosophers: : Fork. Home; manages Fork. Manager. Session. Impl { segment Seg { provides facet the_fork; } }; }; }; © 2003, P. Merle ICAR’ 03 59

La compilation CIDL OMG IDL 3. 0 Exécuteur Composant OMG CIDL Local Server-Side Mapping La compilation CIDL OMG IDL 3. 0 Exécuteur Composant OMG CIDL Local Server-Side Mapping Compilés vers © 2003, P. Merle Squelettes gérant ports, cycle de vie, segmentation, persistance, GIOP/IIOP ICAR’ 03 60

Le conditionnement, l’assemblage et le déploiement CCM © 2003, P. Merle ICAR’ 03 61 Le conditionnement, l’assemblage et le déploiement CCM © 2003, P. Merle ICAR’ 03 61

Conditionnement, assemblage et déploiement via le CCM n CORBA 2. x : aucun moyen Conditionnement, assemblage et déploiement via le CCM n CORBA 2. x : aucun moyen standard pour configurer, conditionner, diffuser et déployer des applications réparties n CCM fournit une technologie de conditionnement, d’assemblage et de déploiement d’applications à base de composants hétérogènes et distribués u Composants et assemblages conditionnés dans des archives ZIP u Auto-description via divers descripteurs XML u API de l’infrastructure de déploiement répartie u Déploiement totalement automatisé © 2003, P. Merle ICAR’ 03 62

Archive de composant n Unité de conditionnement réutilisable dans des assemblages u Auto descriptive Archive de composant n Unité de conditionnement réutilisable dans des assemblages u Auto descriptive et auto suffisante n Fichier ZIP contenant u Un Software Package Descriptor (. csd) décrivant le contenu de l’archive u Le fichier OMG IDL du composant, des interfaces des ports et de la maison u Des Property File Descriptor (. cpf) v Les valeurs par défauts des attributs u Une ou plusieurs implantations binaires v E. g. pour différents OSs, ORBs, processeurs, Qo. S, . . . u Des CORBA Component Descriptor (. ccd) v Configuration des politiques techniques gérées par les conteneurs © 2003, P. Merle ICAR’ 03 63

Artefacts de conditionnement des composants © 2003, P. Merle ICAR’ 03 64 Artefacts de conditionnement des composants © 2003, P. Merle ICAR’ 03 64

Conditionnement de composants IDL User Code Compiler Generated Code IDL/CIDL Compiler Shared Library or Conditionnement de composants IDL User Code Compiler Generated Code IDL/CIDL Compiler Shared Library or Executable Component Descriptor CIDL © 2003, P. Merle Default Configuration ICAR’ 03 Packaging Tool Component Package. zip 65

Archive d’assemblage n Unité de conditionnement réutilisable pour le déploiement automatique d’applications réparties u Archive d’assemblage n Unité de conditionnement réutilisable pour le déploiement automatique d’applications réparties u Auto descriptive et auto suffisante n Fichier ZIP contenant u Un Component Assembly Descriptor (. cad) v Le placement des maisons à créer v Les instances de composants à créer v Les connexions entre les ports u Des Property File Descriptors (. cpf) v Les valeurs initiales des attributs u Une ou plusieurs archives de composants v Soit inclusion du contenu des archives v Soit inclusion des archives v Soit références URL vers des archives externes © 2003, P. Merle ICAR’ 03 66

Artefacts d’assemblage des composants © 2003, P. Merle ICAR’ 03 67 Artefacts d’assemblage des composants © 2003, P. Merle ICAR’ 03 67

Assemblage de composants Component Package Instance Creation Port Connections Assembly Tool Configuration Values Assembly Assemblage de composants Component Package Instance Creation Port Connections Assembly Tool Configuration Values Assembly Archive. aar (ZIP) Deployment. T ool . . . © 2003, P. Merle ICAR’ 03 68

L’outil d’assemblage de Mico. CCM © 2003, P. Merle ICAR’ 03 69 L’outil d’assemblage de Mico. CCM © 2003, P. Merle ICAR’ 03 69

Les descripteurs XML du CCM n Software Package Descriptor (. csd) u Description du Les descripteurs XML du CCM n Software Package Descriptor (. csd) u Description du contenu d’une archive de composant logiciel u Identification d’une ou plusieurs implantations binaires n CORBA Component Descriptor (. ccd) u Informations techniques générées depuis définitions CIDL u Paramétrage des politiques gérées par les conteneurs n Component Property File Descriptor (. cpf) u Configuration des attributs des maisons et des composants n Component Assembly Descriptor (. cad) u Identification des archives de composants utilisées u Description d’un assemblage de composants © 2003, P. Merle ICAR’ 03 70

Software Package Descriptor (. csd) n Informations générales u Titre, description, auteurs, compagnies, liens Software Package Descriptor (. csd) n Informations générales u Titre, description, auteurs, compagnies, liens Web, licences n Lien sur le descripteur XML de propriétés par défaut (. cpf) n Lien sur le fichier OMG IDL du composant n Pour chaque implantation u Informations techniques v Systèmes d’exploitation, processeurs, langages, compilateurs et ORBs supportés v Dépendances vers des bibliothèques externes v Pré requis de déploiement u Lien sur descripteurs. cpf et. ccd spécifiques u Lien sur le fichier d’implantation v Bibliothèque partagée, classe ou archive Java, exécutable, … u Point d’entrée de l’implantation de la maison, i. e. fonction statique © 2003, P. Merle ICAR’ 03 71

Exemple de Software Package Descriptor <? xml version='1. 0'? > <!DOCTYPE softpkg> <softpkg name= Exemple de Software Package Descriptor create_Dining. Philosophers_Philosopher. Home © 2003, P. Merle ICAR’ 03 72

Software Package Descriptor pour Composant Observer CORBA Component Observer Philippe Merle INRIA The CCM dining philosophers example © 2003, P. Merle ICAR’ 03 73

Software Package Descriptor pour Composant Observer . . . © 2003, P. Merle ICAR’ 03 74

Software Package Descriptor pour Composant Observer Observer. Home. Impl. create_home . . . © 2003, P. Merle ICAR’ 03 75

Open. ORB Open. ORB Software Package Descriptor pour Composant Observer Open. ORB © 2003, P. Merle ICAR’ 03 76

" src="https://present5.com/presentation/0f3c9752467201ba2344a279c50e05a7/image-77.jpg" alt="Software Package Descriptor pour Composant Observer " /> Software Package Descriptor pour Composant Observer create_Observer. Home © 2003, P. Merle ICAR’ 03 77

CORBA Component Descriptor (. ccd) n Informations techniques générées depuis CIDL u Fonctionnalités des CORBA Component Descriptor (. ccd) n Informations techniques générées depuis CIDL u Fonctionnalités des types de composants et de maisons u Ports et interfaces supportées u Catégorie du composant et segments n Politiques du conteneur à compléter u u u u Threading Cycle de vie des servants POA Transactions Sécurité Events Persistance Politiques POA étendues n Lien vers fichiers de propriétés pour la maison et ses instances de composants © 2003, P. Merle ICAR’ 03 78

Exemple de CORBA Component Descriptor <corbacomponent> <corbaversion>3. 0</corbaversion> <componentrepid>IDL: Dining. Philosophers/Philosopher: 1. 0</componentrepid> <homerepid>IDL: Exemple de CORBA Component Descriptor 3. 0 IDL: Dining. Philosophers/Philosopher: 1. 0 IDL: Dining. Philosophers/Philosopher. Home: 1. 0 © 2003, P. Merle ICAR’ 03 79

CORBA Component Descriptor pour Composant Philosopher 3. 0 © 2003, P. Merle ICAR’ 03 80

CORBA Component Descriptor pour Composant Philosopher <homefeatures name= CORBA Component Descriptor pour Composant Philosopher © 2003, P. Merle ICAR’ 03 81

CORBA Component Descriptor pour Composant Philosopher © 2003, P. Merle ICAR’ 03 82

Property File Descriptor (. cpf) n Permet de fixer les propriétés des instances de Property File Descriptor (. cpf) n Permet de fixer les propriétés des instances de maisons et de composants n Contient un couple (nom, valeur) pour chaque attribut à configurer n Descripteurs référencés depuis u Software Package Descriptors v valeurs par défaut des attributs des composants u CORBA Component Descriptors v valeurs par défaut des attributs des composants et/ou des maisons u Component Assembly Descriptors v Valeurs initiales des instances de maisons et de composants © 2003, P. Merle ICAR’ 03 83

Property File pour Philosopher Kant Philosopher name Kant Unknown © 2003, P. Merle ICAR’ 03 84

Les fichiers XML de propriétés CCM © 2003, P. Merle ICAR’ 03 85 Les fichiers XML de propriétés CCM © 2003, P. Merle ICAR’ 03 85

Component Assembly Descriptor (. cad) n Implantations de composants à utiliser u Références vers Component Assembly Descriptor (. cad) n Implantations de composants à utiliser u Références vers 1 ou plusieurs Component Software Descriptors n Instances de maisons à créer u Placement, co-localisation et cardinalité n Instances de composants à créer n Connexions entre les instances de composants u Réceptacles facettes et sources puits n Valeurs initiales des attributs des maisons et composants n Enregistrement des maisons et des composants u Services de Nommage, Courtage et Component. Home. Finder © 2003, P. Merle ICAR’ 03 86

Exemple du dîner des philosophes Component Philosopher Base ref. Facet Fork Receptacle name = Exemple du dîner des philosophes Component Philosopher Base ref. Facet Fork Receptacle name = Kant Event Sink Fork Philosopher Event Source Fork name = Descartes Philosopher name = Aristotle © 2003, P. Merle Observer ICAR’ 03 87

Component Assembly Descriptor pour Dîner des Philosophes Dinner assembly descriptor © 2003, P. Merle ICAR’ 03 88

" src="https://present5.com/presentation/0f3c9752467201ba2344a279c50e05a7/image-89.jpg" alt="Component Assembly Descriptor pour Dîner des Philosophes " /> Component Assembly Descriptor pour Dîner des Philosophes © 2003, P. Merle ICAR’ 03 89

" src="https://present5.com/presentation/0f3c9752467201ba2344a279c50e05a7/image-90.jpg" alt="Component Assembly Descriptor pour Dîner des Philosophes " /> Component Assembly Descriptor pour Dîner des Philosophes © 2003, P. Merle ICAR’ 03 90

Component Assembly Descriptor pour Dîner des Philosophes © 2003, P. Merle ICAR’ 03 91

Component Assembly Descriptor pour Dîner des Philosophes <connections> Philosopher <connectinterface> Fork name = Kant Component Assembly Descriptor pour Dîner des Philosophes Philosopher Fork name = Kant left the_fork © 2003, P. Merle ICAR’ 03 92

Component Assembly Descriptor pour Dîner des Philosopher <connectevent> name = Kant Observer <publishesport> <publishesidentifier>info</publishesidentifier> Component Assembly Descriptor pour Dîner des Philosopher name = Kant Observer info info © 2003, P. Merle ICAR’ 03 93

Référencement entre les descripteurs XML du CCM Component Assembly Descriptor * Software Package Descriptor Référencement entre les descripteurs XML du CCM Component Assembly Descriptor * Software Package Descriptor CORBA * Component Descriptor * * Component Property File Descriptor * © 2003, P. Merle ICAR’ 03 94

Le déploiement d’assemblages CCM Deployed Application déployée Archive ZIP Component Déployeur Archive ZIP Component Le déploiement d’assemblages CCM Deployed Application déployée Archive ZIP Component Déployeur Archive ZIP Component Archive ZIP Assembly © 2003, P. Merle Outil IHM de déploiement Infrastructure répartie de déploiement ORB ICAR’ 03 95

Le déploiement CCM n Déploiement automatique et réparti d’assemblages de composants CORBA u Installation Le déploiement CCM n Déploiement automatique et réparti d’assemblages de composants CORBA u Installation du code binaire des composants sur leur site d’exécution v Demande aux sites de télécharger le code accessible via Internet u Démarrage des serveurs d’applications nécessaires sur chaque site d’exécution u Création des conteneurs dans chaque serveur démarré u Installation des maisons dans les conteneurs v Chargement du code maison / composant en mémoire u Instanciation des composants à partir des maisons u Configuration des attributs des instances de composants u Interconnexion des composants via leurs ports u Démarrage effectif de tous les composants © 2003, P. Merle ICAR’ 03 96

Interfaces de l’infrastructure de déploiement n Component. Installation u Installation des implantations binaires de Interfaces de l’infrastructure de déploiement n Component. Installation u Installation des implantations binaires de composants u 1 instance par machine n Assembly. Factory u Fabrique des objets Assembly u 1 instance par domaine, e. g. un réseau, un ensemble de machines, … n Assembly u Contrôleur du déploiement d’un assemblage u Interpréteur des Component Assembly Descriptor (CAD) n Server. Activator u Fabrique d’objets Component. Server u Une instance par machine n Component. Server u Fabrique d’objets Container n Container u Installation et instanciation des maisons de composants © 2003, P. Merle ICAR’ 03 97

Le processus de déploiement du CCM Assembly. Factory «instantiates» Assembly Domaine Server. Activator «instantiates» Le processus de déploiement du CCM Assembly. Factory «instantiates» Assembly Domaine Server. Activator «instantiates» Deployment Tool Component. Server «instantiates» Container «instantiates» CCMHome «instantiates» Component. Installation Machine © 2003, P. Merle Processus ICAR’ 03 CCMObject 98

Scénario de déploiement Deployment Tool Déployeur Component Assembly Descriptor + with assignment information © Scénario de déploiement Deployment Tool Déployeur Component Assembly Descriptor + with assignment information © 2003, P. Merle ICAR’ 03 99

Scénario de déploiement : chargement des implantations Deployment Tool Component. Installation Code for Component Scénario de déploiement : chargement des implantations Deployment Tool Component. Installation Code for Component A © 2003, P. Merle Component Assembly Descriptor + ICAR’ 03 Code for Component B 100

Scénario de déploiement : création de l’objet Assembly Deployment Tool Assembly. Factory Code for Scénario de déploiement : création de l’objet Assembly Deployment Tool Assembly. Factory Code for Component A © 2003, P. Merle Assembly ICAR’ 03 Code for Component B 101

Scénario de déploiement : instanciation des serveurs de composants Component Assembly Descriptor + Component. Scénario de déploiement : instanciation des serveurs de composants Component Assembly Descriptor + Component. Server. Activator Component. Server Assembly Code for Component A © 2003, P. Merle Server. Activator Code for Component B ICAR’ 03 102

Scénario de déploiement : instanciation des conteneurs Component Assembly Descriptor + Component. Server Container Scénario de déploiement : instanciation des conteneurs Component Assembly Descriptor + Component. Server Container Component. Server Assembly Code for Component A © 2003, P. Merle Container Code for Component B ICAR’ 03 103

Scénario de déploiement : installation des maisons Component Assembly Descriptor + Home for A Scénario de déploiement : installation des maisons Component Assembly Descriptor + Home for A Container Home for B Assembly Code for Component A © 2003, P. Merle Container Code for Component B ICAR’ 03 104

Scénario de déploiement : instanciation des composants Component Assembly Descriptor + Home for A Scénario de déploiement : instanciation des composants Component Assembly Descriptor + Home for A Home for B Assembly B instance A instance © 2003, P. Merle ICAR’ 03 105

Scénario de déploiement : configuration des composants Component Assembly Descriptor + Home for A Scénario de déploiement : configuration des composants Component Assembly Descriptor + Home for A Home for B Assembly A instance © 2003, P. Merle B instance ICAR’ 03 106

Le déploiement de l’application Dîner des Philosophes n Démarrer l’outil de déploiement u Utilise Le déploiement de l’application Dîner des Philosophes n Démarrer l’outil de déploiement u Utilise le Component. Installation de chaque site d’exécution pour télécharger les implantations binaires nécessaires u Utilise l’Assembly. Factory pour créer un Assembly u Invoque l’opération build() de l’instance Assembly v Création des serveurs de composants nécessaires v Création des conteneurs v Installation des maisons v Création des instances de composants v Interconnexion des ports des composants v Invocation configuration_complete() sur chaque composant n Déploiement totalement distribué et automatisé © 2003, P. Merle ICAR’ 03 107

Les conteneurs CORBA © 2003, P. Merle ICAR’ 03 108 Les conteneurs CORBA © 2003, P. Merle ICAR’ 03 108

Les conteneurs CCM n Un conteneur gère une catégorie de composants u entity : Les conteneurs CCM n Un conteneur gère une catégorie de composants u entity : persistant, clé primaire et destruction explicite u process : persistant, pas de clé et destruction explicite u session : existe durant une session avec le client u service : existe durant une invocation u EJBsession, EJBentity : support pour EJBs u empty : autres politiques spécifiques n Encapsule un ou des Portable Object Adaptors u (Dé)activation automatique u Optimisation des ressources n Fournit des interfaces simplifiées pour les services CORBA u Sécurité, transactions et persistance n Utilise des appels retour pour la gestion des instances © 2003, P. Merle ICAR’ 03 109

L’architecture d’un serveur de conteneurs Container Manager Entity Container POA 1 Session Container EJB L’architecture d’un serveur de conteneurs Container Manager Entity Container POA 1 Session Container EJB Container POA 2 POA 3 Other Container POA 4 ORB Transactions © 2003, P. Merle Security Persistence ICAR’ 03 Events 110

L’architecture d’un conteneur C l i e n t Home Extended OMG IDL external L’architecture d’un conteneur C l i e n t Home Extended OMG IDL external API CORBA Component Container POA Internal API Callback API ORB Transaction © 2003, P. Merle Security Persistency ICAR’ 03 Notification 111

Politiques gérées par les conteneurs n Décrites via CORBA Component Descriptors (. ccd) n Politiques gérées par les conteneurs n Décrites via CORBA Component Descriptors (. ccd) n Implantées par le conteneur, pas par le composant n Politiques définies pour : u Cycle de vie des servants u Transaction u Sécurité u Evénements u Persistance © 2003, P. Merle ICAR’ 03 112

Politiques de cycle de vie des servants n method – valide pour toutes les Politiques de cycle de vie des servants n method – valide pour toutes les catégories u Activation avant chaque invocation u Passivation après chaque invocation n transaction – valide pour toutes sauf service u Activation avant la 1 ière invocation d’une nouvelle transaction u Passivation après la dernière invocation de la transaction n component – valide pour toutes sauf service u Activation avant la 1 ière invocation u Passivation explicite par le composant n container – valide pour toutes sauf service u Activation avant la 1 ière invocation u Passivation quand le conteneur requière de la mémoire © 2003, P. Merle ICAR’ 03 113

Politiques transactionnelles n Définies pour chaque opération si gérées par le conteneur u NOT_SUPPORTED Politiques transactionnelles n Définies pour chaque opération si gérées par le conteneur u NOT_SUPPORTED u REQUIRED u SUPPORTS u REQUIRES_NEW u MANDATORY u NEVER n Gérées par le composant via l’API Components: : Transaction: : User. Transaction u Simplification de l’API Cos. Transactions (OMG OTS) © 2003, P. Merle ICAR’ 03 114

Politiques de sécurité n Définies pour chaque opération si gérées par le conteneur (élément Politiques de sécurité n Définies pour chaque opération si gérées par le conteneur (élément security descripteurs de composants) u CLIENT_IDENTITY u SYSTEM_IDENTITY u SPECIFIED_IDENTITY (=userid) n Les conteneurs contrôlent à l’exécution l’identité de l’appelant et ses droits n Construit au dessus de CORBA Security V 2 © 2003, P. Merle ICAR’ 03 115

Politiques événementielles n Comportement transactionnelle de la notification des événements défini pour chaque source Politiques événementielles n Comportement transactionnelle de la notification des événements défini pour chaque source u non-transactional u default u transactional n Le conteneur peut utiliser le service de notification CORBA u Modèle push uniquement u Projection des eventtypes en Structured Events u Création des channels © 2003, P. Merle ICAR’ 03 116

Politiques de persistance n Uniquement pour composants Process et Entity n Self managed ou Politiques de persistance n Uniquement pour composants Process et Entity n Self managed ou Container managed n Utilise le service de persistance CORBA (PSS) ou un mécanisme de persistance propriétaire © 2003, P. Merle ICAR’ 03 117

Conclusions © 2003, P. Merle ICAR’ 03 118 Conclusions © 2003, P. Merle ICAR’ 03 118

Le modèle de composants CORBA n 1 ier standard industriel pour les composants distribués Le modèle de composants CORBA n 1 ier standard industriel pour les composants distribués u Ouvert, hétérogénéité, portabilité et interopérabilité u Un processus d’ingénierie de logiciel à base de composants u Un modèle abstrait de composants riche v Très proche du modèle de composants UML 2. 0 u Conditionnement, assemblage et déploiement réparti u Un canevas de conteneurs u Interopérabilité avec EJB u Méta modèles prêts pour l’approche Model Driven Architecture (MDA) n Au coeur de CORBA 3. 0 u Spécification libre ~ 500 pages n Mais peu d’intérêts de la part des fournisseurs CORBA u Ils surfent sur la vague des Web Services © 2003, P. Merle ICAR’ 03 119

Implantations CCM n Open. CCM - Object. Web / INRIA & LIFL u Open Implantations CCM n Open. CCM - Object. Web / INRIA & LIFL u Open source Java sur ORBacus 4. 1 & Open. ORB 1. x & BES 5. x u http: //openccm. objectweb. org/ n Mico. CCM - FPX & Alcatel u Open source C++ sur MICO u http: //www. fpx. de/Mico. CCM/ n Qedo - IST COACH u Fraunhofer FOKUS & Humboldt University u Open source C++ sur MICO & ORBacus 4. 1 (& TAO) u http: //qedo. berlios. de n EJCCM - CPI Inc. u Semi open source Java sur Open. ORB 1. x u http: //www. ejccm. org n K 2 - ICMP u Produit commercial C++ sur divers ORBs u http: //www. icmgworld. com n Quelques autres implantations moins connues © 2003, P. Merle ICAR’ 03 120

Activités OMG autour du CCM n Components 1. 2 Revision Task Force (RTF) u Activités OMG autour du CCM n Components 1. 2 Revision Task Force (RTF) u Révision de la spécification CORBA Components n Deployment and Configuration FTF u Modèle de conditionnement, d’assemblage et de déploiement plus sophistiqué u OMG TC Document ptc/03 -07_02 & 08 n Soumission Fraunhofer FOKUS/IK++ pour MOF 2. 0 IDL RFP u Référentiels MOF construits en composants CORBA u RFP = OMG TC Document ad/01 -11 -07 u Subm. = OMG TC Document ad/02 -12 -05 n UML Profile for CORBA Components RFP u Extension du profil UML/CORBA pour composants CORBA u RFP = OMG TC Document ab/02 -10 -01 u Subm. = OMG TC Document mars/03 -05 -09 n Lightweight CCM RFP u Simplication du CCM pour systèmes embarqués u RFP = OMG TC Document realtime/02 -11 -27 u Subm. = OMG TC Document realtime/03 -05 -05 n Streams for CORBA Components RFP u Nouveaux types de ports pour communication par flux u RFP = OMG TC Document mars/03 -06 -11 n Qo. S for CORBA Components RFP u Prise en compte de qualités de services dans le CCM u RFP = OMG TC Document mars/03 -06 -12 © 2003, P. Merle ICAR’ 03 121

Références sur le modèle de composants CORBA n CORBA 3 Fundamentals and Programming u Références sur le modèle de composants CORBA n CORBA 3 Fundamentals and Programming u Dr. John Siegel, publié chez John Wiley and Sons n CORBA/IIOP Specification version 3. 0. 2 u OMG TC Document formal/2002 -12 -06 n CORBA Components Specification u OMG TC Document formal/2002 -06 -65 & ptc/2002 -08 -03 n CORBA Component Model Tutorial u OMG TC Document ccm/2002 -06 -01 n “The CCM Page”, Diego Sevilla Ruiz u http: //www. ditec. um. es/~dsevilla/ccm/ n IST COACH Project u http: //www. ist-coach. org © 2003, P. Merle ICAR’ 03 122

Pas d’intergiciel universel pour composants ! OMG MDA ? Enjeu majeur ! CORBA © Pas d’intergiciel universel pour composants ! OMG MDA ? Enjeu majeur ! CORBA © 2003, P. Merle EJB . NET ICAR’ 03 . . . 123

Merci © 2003, P. Merle ICAR’ 03 124 Merci © 2003, P. Merle ICAR’ 03 124