Intergiciels orientés composants. Introduction à CCM (CORBA Component Model) Ada Diaconescu ada.diaconescu@telecom-paristech.fr
Plan Motivation Introduction aux intergiciels orientés composant Définition de composants CCM Containers et composition de composants CCM Component Implementation Framework (CIF) Implantation des composants CCM Déploiement et configuration d applications CCM 2 CCM - CORBA Component Model ada.diaconescu@telecom-paristech.fr
Motivation Limites des modèles de répartition basé objet page 3 CCM - CORBA Component Model ada.diaconescu@telecom-paristech.fr
Rappel du Cycle de Vie d une application Le cycle d une application répartie est complexe Développement initial Définition des interfaces, de la topologie de l application Implantation Tests Déploiement sur plusieurs nœuds Evolutions successives Correction de bugs Modifications dans les interfaces Déploiement sur une nouvelle architecture (topologie, OS, ) 4 CCM - CORBA Component Model ada.diaconescu@telecom-paristech.fr
Evolution de l Intergiciel Intergiciel Technologies pour faciliter le développement des applications réparties - Services réutilisables : communication, sécurité, transaction, persistance, - Infrastructure réutilisable d exécution Modèle de répartition : entités inter-agissantes, leur sémantique, Outillage: compilateurs, APIs, Evolution RPC : Sun RPC, Ada DSA,.. MOM : Java JMS, OMG DDS, AMQP, Objets répartis (DOC) : OMG CORBA, Java RMI, Ada DSA,.. Composants répartis (COS) : CCM, Java EE,.NET,.. Services répartis (SOC) : services Web, Architectures/Intergiciels orientés modèle (MDA) : Cadena, CoSMIC,.. 5 CCM - CORBA Component Model ada.diaconescu@telecom-paristech.fr
Intergiciel orienté objet - DOC Intersection de deux domaines majeurs de l IT Les systèmes informatiques répartis La programmation orientée objet (OO) Systèmes répartis plus faciles à concevoir et à développer grâce aux techniques de l OO Les entités répartis sont des objets Parfois: support pour des langages et des plates-formes hétérogènes Client Proxy service AbstractService service 1 1 Service service : Client stub operation() middleware Object : Interface X skeleton Utilisation du patron de conception Broker 6 CCM - CORBA Component Model ada.diaconescu@telecom-paristech.fr
Intergiciel DOC Apports & Limitations Apports Séparation entre la logique métier et la logique de répartition Aide au développeur pour résoudre les problèmes posés par la répartition Réutilisation de l expertise et de l effort via la réutilisation des platesformes et des services spécifiques à la répartition Limitations Difficultés de passage à l échelle (nombre d entités) Difficultés de maintien et d évolution des applications Temps de mise en marché important («time-to-market») Plus concrètement, sur l exemple de CORBA v2.x.. 7 CCM - CORBA Component Model ada.diaconescu@telecom-paristech.fr
Rappelle CORBA v2.x Intergiciel DOC Support pour l hétérogénéité: langage, SE, protocole réseau,.. Support pour: Localisation Communication Gestion des erreurs Tolérance aux fautes Activation d objet/de serveur Concurrence / synchro. Sécurité, Définition d interfaces & de protocoles; pas d implantations 8 CCM - CORBA Component Model ada.diaconescu@telecom-paristech.fr
Limitations de CORBA v2.x 1 / 2 Pas de frontière fonctionnelle bien définie Pas de mécanisme pour grouper les interfaces => extension difficile Pas de mécanisme standard pour assembler les objets Un objet doit explicitement chercher et se connecter aux objets utilisés Le code métier est mélangé avec le code de gestion des dépendances => code fragile et peu réutilisable Pas de support pour gérer le cycle de vie des objets Multiples politiques possibles pour le POA Pas de support pour les combinaisons / utilisations les plus courantes => longue période d apprentissage pour les développeurs de serveurs 9 CCM - CORBA Component Model ada.diaconescu@telecom-paristech.fr
Limitations de CORBA v2.x 2 / 2 Pas de standard pour les serveurs d application Pas de procédure standard pour configurer un serveur: instanciation du serveur et de ses politiques de QoS, support des services réutilisables (ex. nommage, notification), gestion de l environnement d exécution de chaque composant, => implantations de serveur ad-hoc et fortement couplés Pas de standard pour la configuration et le déploiement du logiciel Pas de standard pour la distribution et le démarrage d objets à distance Pas de standard pour la configuration de chaque nœud / objet => Solutions ad-hoc pour: le déploiement du code sur les machines ciblées, configuration des machines et du logiciel, instanciation des implantations, => Systèmes et logiciels difficiles à maintenir et à réutiliser 10 CCM - CORBA Component Model ada.diaconescu@telecom-paristech.fr
Intergiciels orientés composant Introduction à CORBA Component Model - CCM page 11 CCM - CORBA Component Model ada.diaconescu@telecom-paristech.fr
CORBA : rappel de l architecture générale 12 CCM - CORBA Component Model ada.diaconescu@telecom-paristech.fr
CORBA ~~> CCM Container CCM = CORBA + interfaces CCM Container CCM = CORBA + interfaces CCM CCM Infrastructure = CORBA + services CCM 13 CCM - CORBA Component Model ada.diaconescu@telecom-paristech.fr
Des objets aux composants Le modèle de programmation «composant» permet de structurer une application en définissant : Un noyau implantant une fonctionnalité métier (ex. CCM Executor) Un containeur définissant les frontières du composant et gérant l exécution du composant (ex. CCM Container - gestion des aspects non-fonctionnels) Un framework à composants permettant de connecter les containers, les configurer, les instancier, ; et facilitant le développement de composants par la génération automatique de code (ex. CCM CIF) facet / facette event sink/ puits d événement Impl. Container (Containeur) receptacle / réceptacle event source / source d événement 14 CCM - CORBA Component Model ada.diaconescu@telecom-paristech.fr
Exemples de systèmes à composant La notion de composant est commune à des nombreux systèmes, sous diverses formes Composants Java EE/EJB, DCOM/.NET pour les systèmes répartis OSGi / ipojo composants orientés service (Java) Modules Esterel, composants UML Composants.. Électroniques 18 CCM - CORBA Component Model ada.diaconescu@telecom-paristech.fr
Solution : Intergiciel Orienté Composant Création d une frontière virtuelle autour de l implantation de composants, qui interagissent seulement via des interfaces bien définies. Définition des mécanismes standard pour les containeurs, qui permettent l exécution de composants dans des serveurs génériques Spécification de l infrastructure nécessaire pour le paquetage, la configuration, l assemblage et le déploiement des composants sur une plate-forme répartie 19 CCM - CORBA Component Model ada.diaconescu@telecom-paristech.fr
Vue d ensemble de l intergiciel à composant Un composant encapsule une partie de la logique métier de l application Les composants interagissent via des ports Interfaces fournies facettes / «facets» Interfaces requises réceptacles / «receptacles» Sources et puits d événements / «event sources and sinks» Attributs / «attributes» Les containers fournissent des environnements d exécution pour les composants ayant des besoins d opération communs Les composants/containers peuvent également: Communiquer via l intergiciel («middleware bus») Réutiliser des services d intergiciel communs L intergiciel orienté composant définit des interfaces, des politiques et quelques implantations 20 CCM - CORBA Component Model ada.diaconescu@telecom-paristech.fr
Intergiciel orienté composant Une classe d intergiciel qui permet la composition, la configuration et l installation de services réutilisables => Facilite la construction rapide d applications fiables => Construction d applications par composition/assemblage des éléments réutilisables plutôt que par développement Références Clemens Szyperski, "Component Software - Beyond Object-Oriented Programming", Addison-Wesley, 1998 Nanbor Wang, Douglas C. Schmidt et Carlos O'Ryan, An Overview of the CORBA Component Model, Component-Based Software Engineering, Addison-Wesley, 2000 21 CCM - CORBA Component Model ada.diaconescu@telecom-paristech.fr
Implantation d une application CCM CCM simplifie le développement d applications réparties en fournissant un niveau d abstraction plus élevé Le modèle de construction introduit des nouveaux mécanismes, qui sont construits au dessus de CORBA Serveur de composants: surcouche à un ORB CORBA Component Implementation Framework (CIF) - API pour l implantation des composants - CIDL Component Implementation Description Language D&C (Deployment and Configuration) Fournit les outils pour automatiser les étapes de D&C Mécanismes de contrôle de l exécutif 22 CCM - CORBA Component Model ada.diaconescu@telecom-paristech.fr
Etapes de développement d une application CCM Interface Design Component Design Component Implementation Component Packaging Interface IDL Definitions Deployment Tools Running Applications CCM rende explicits des pas qui étaient implicites en CORBA 2.X 23 Component IDL Definitions IDL Compiler System Deployment Stubs & Skeletons Deployment Plan Descriptor (.cdp) Component CIDL Definitions CIDL Compiler Component & Home Properties (Source du Schéma: Object Implementations Language Tools Servants, Executors, Contexts realizes Deployment Planning Tools Component Domain Descriptor (.cdd) Deployment Planning Component DLLs Component Interface Descriptors (.ccd) Component Package Descriptors (.cpd) realizes realizes Component & Home Properties Packaging Tools Component Package Descriptors (.cpd) Assembly Tools Component Implementation Descriptor (*.cid) Tutorial on CCM, Douglas C. Schmidt) uses Implementation Artifact Descriptors (.iad) Monolithic Component Description Component Implementation Descriptors (.cid) Component Assembly Descriptors Component & Home Properties Application Assembly
Développement d une application CCM CCM définit plusieurs rôles Concepteur de composants - Définit les fonctions du composant et ses collaborations (clients, autres comps.) - Spécifications des ports fournis et requis Programmeur de composants - Développe l implantation du composant (utilise les APIs fournies et générées) - Spécifie les métadonnées du composant («component descriptors») Créateur de paquetages - Construit les paquetages, groupant la logique et les métadonnées du composant Assembleur de composants - Sélectionne les implantations, spécifie leur configuration et met en place les connexions (via des descripteurs d assemblage «assembly descriptors») Responsable de déploiement de système - Instanciation de l exécutif sur différents nœuds de la plate-forme répartie 24 CCM - CORBA Component Model ada.diaconescu@telecom-paristech.fr
Définition de composants CCM Utilisation de types IDL 3 page 25 CCM - CORBA Component Model ada.diaconescu@telecom-paristech.fr
Modèle de composant CORBA (CCM) Un composant CCM possède: Un ou plusieurs interfaces (ports) - facette, réceptacle, événement Une fabrique (home) Un composant CCM est déclaré en IDL3 (extension d IDL 2) Traduction IDL3 IDL2 Ex: component Hello{ }; Un composant CCM possède une référence de base L équivalent de IOR pour un objet CORBA 26 CCM - CORBA Component Model ada.diaconescu@telecom-paristech.fr
OMG IDL2 et IDL3 Chaque construction de IDL3 a une construction IDL2 Composants et Homes sont vues par l application au travers de la projection CCM vers IDL Permet : - de ne pas modifier la projection IDL, - de construire CCM indépendamment d une implantation CORBA précise, En construisant CCM au dessus de CORBA Une partition CCM peut interagir avec une partition non-ccm en appelant les interfaces déduites (IDL2) 27 CCM - CORBA Component Model ada.diaconescu@telecom-paristech.fr
Conception de composants Les interfaces IDL2 sont préservées Ajout de nouveaux mots-clés (IDL3) pour CCM À chaque construction correspond une construction IDL2 Un composant est une unité de composition/déploiement Encapsulation d implantation + configuration Hérite d autres composants, supporte plusieurs interfaces // IDL 3 interface foo { void bar (); }; component foo_comp supports foo {}; interface A {}; interface B {}; component D supports A, B{}; component E : D {}; // Equivalent IDL 2 interface foo_comp : Components::CCMObject, foo {}; 28 CCM - CORBA Component Model ada.diaconescu@telecom-paristech.fr
Facette CCM Facette - une interface fournie par un composant CCM Fournit un point de vue sur un composant Permet aux clients d avoir des points de vue différents sur un comp. Possède une référence et correspond à une interface IDL interface FacadeClient {... }; interface FacadeAgent {... }; interface FacadeAdmin {... }; component GestionCompte { provides FacadeClient fcli; provides FacadeAgent fagent; provides FacadeAdmin fadmin; }; Méthodes de navigation/recherche (par clé) de facettes Patron de conception «Extension Interface» 29 CCM - CORBA Component Model ada.diaconescu@telecom-paristech.fr
Réceptacle CCM Réceptacle une interface requise par un composant CCM Permet de créer des liens entre composants (point de connexion) Deux types de connexions: simples ou multiples Les connexions peuvent se faire: Statiquement déclarations dans les configurations de déploiement Dynamiquement appel des méthodes de connexion et de déconnexion interface CompteCheques {... }; interface CompteEpargne {... }; component GestionCompte{ uses multiple CompteCheques cmpchqs; uses CompteEpargne cmpeprg; }; 30 CCM - CORBA Component Model ada.diaconescu@telecom-paristech.fr
Evénement CCM Ports de réception/émission d événements asynchrones Deux types de ports : producteur/consommateur (ou source/puits ) Deux types de producteurs : 1-1 et 1-n Les clients s abonnent à des types d événements Modèle de communication de type push (seulement) Compatible avec les COSEvent et COSNotification eventtype PlusDeMonnaie{ } component CompteCheques{ emits PlusDeMonnaie pdm; // 1-1 publishes notif_out; // 1-n consumes notif_in; }; 31 CCM - CORBA Component Model ada.diaconescu@telecom-paristech.fr
Fabrique & Recherche CCM («Home») Gestionnaire du cycle de vie d un type de composant Gère les instances d un composant Offre des outils de recherche d instances basés sur des clés Représente l équivalent du COSLifeCycle au niveau d IDL3 component GestionCompte{ }; valuetype KeyGestionCompte : PrimaryKeyBase { long identifiant; }; exception ClientInconnu {}; home HomeDeGestionnaires manages GestionCompte primarykey KeyGestionCompte { }; factory creegestionnaire( in long clientid ); finder trouvegestionnaire( in long clientid ) raises ( ClientInconnu ); 32 CCM - CORBA Component Model ada.diaconescu@telecom-paristech.fr
L Architecture du containeur CCM & le CIF 33 CCM - CORBA Component Model ada.diaconescu@telecom-paristech.fr
Container CCM Canevas standard du serveur CCM Etend le POA: cycle de vie des composants (activation/désactivation) gestion/optimisation des ressources Assure un accès simplifié aux COS: Sécurité, Transactions, Persistance, Evénements Utilise des callbacks pour gérer les instances des composants Ex: état de session, activation, désactivation, page 34 J. Hugues, A. Diaconescu - INFRES INF346 Basé sur le modèle CORBA
E x t e r n a l I n t e r f a c e s APIs Externes et Internes du Container Container Component Home CORBA Component Callback Interfaces APIs Externes Interfaces offertes aux clients Internal Interfaces POA APIs du Container Interfaces internes Interfaces de Call-Back (Source du Schéma: Tutorial on CCM, Douglas C. Schmidt) 35 J. Hugues, A. Diaconescu - INFRES INF346/2010, CCM v1.1
CCM Executors & Home Executors Implantent un composant et son home Deux modes d implantation Monolithique: - attributs, interfaces, facettes, puits sont implantés par une unique classe Segmenté: - plusieurs classes, par dérivation de ExecutorLocator Container Main Component Component Executor Specific Context Executors Executors Executors EnterpriseComponent Servant CCMContext CCMContext POA Le Container intercepte les invocations vers l Exécuteur pour prendre en charge l activation, la sécurité, etc. L Exécuteur fourni une interface de Call-back qui sera ensuite appelée par le Containeur L Exécuteur peut interagir avec son Container et avec d autres composants connectées via une interface de contexte page 36 J. Hugues, A. Diaconescu - INFRES INF346
Containeur CCM vue d ensemble Container Component Home F a c e t s E v e n t S i n k s COMPONENT EXECUTORS I n t e r n a l I n t e r f a c e s E v e n t S o u r c e s Component Reference Container Component Home Callback Interfaces C o m p o n e n t C o n t e x t C o m p o n e n t C o n t e x t R e c e p t a c l e s E v e n t S o u r c e s R e c e p t a c l e s Component Reference F a c e t s E v e n t S i n k s COMPONENT EXECUTORS I n t e r n a l I n t e r f a c e s Callback Interfaces POA POA ORB Transaction Persistent Security Notification COMPONENT SERVER 1 COMPONENT SERVER 2 (Source du Schéma: Tutorial on CCM, Douglas C. Schmidt) 37 J. Hugues, A. Diaconescu - INFRES INF346/2010, CCM v1.1
Connecter Composants et Containers CIDL Component Implementation DL IDL2 définit les interfaces fonctionnelles IDL3 permet de les grouper en composants (facettes, ) CIDL définit la connexion entre composants et container syntaxe proche de IDL définit les composants pris en charge par le container associé à PSDL (Persistent State Definition Language): permet de définir les zones de stockages pour les composants persistents Séparation des préoccupations, permet de générer le code de l enveloppe du container Code pour les servants CORBA qui prennent en charge la partie «administrative» du composant Génération d un fichier IDL pour les différents Exécuteurs page 38 J. Hugues, A. Diaconescu - INFRES INF346
Fonctions de base de CIDL Description des compositions (composants) Choix du cycle de vie d un composant (service, session, entity, process) Nom de la composition Nom du home executor pour le mode monolithique Type du home implanté Nom de la classe de l Executor composition <category> <composition name> home executor <home executor name>{ implements <home type>; manages <executor name>; }; }; page 39 J. Hugues, A. Diaconescu - INFRES INF346
Types de Composant CCM Composant Service a un comportement; mais n a pas d état et d identité modélise des éléments qui offrent l exécution indépendante des opérations (ex: command) Composant Session a un comportement et un état «transient»; mais n a pas d identité persistante modélise des sessions client (ex: login, shopping card) Composant Entity a un comportement et un état persistent; accessible aux clients via une clé primaire («primary key») modélise des éléments métier (ex: client, compte) Composant Process a un comportement et un état persistent (invisible aux clients); a une identité persistante accessible aux clients via des opérations spécifiques (définies par le développeur) modélise des processus métier (ex: procédure de paiement) 40 J. Hugues, A. Diaconescu - INFRES INF346
Le Processus de Compilation OMG CIDL User written Compiler Generated files 41 J. Hugues, A. Diaconescu - INFRES INF346
OMG CIDL & PSDL Compilation Process User written Compiler Generated files 42 J. Hugues, A. Diaconescu - INFRES INF346
Implantation des composants CCM page 43 INF346/2010, CCM v1.1
Client-side mapping Dans l hypothèse où on souhaite s en tenir aux différents fichiers IDL2 générés: utilisation du modèle CORBA pour interagir avec les composants On est «client» des composants Un composant = une interface IDL comme une autre.. Mais: complexe à manipuler Patrons réguliers de code: fabrique, tables de noms (mais pénible à mettre en place) A n utiliser que dans des cas bien particuliers, quand les performances deviennent critiques Par exemple un client léger avec peu de mémoire page 44 J. Hugues, A. Diaconescu - INFRES INF346
«classic» client example HelloWorld C++ #include <CORBA.h> #include <mico/cosnaming.h> #include "hello.h" int main (int argc, char *argv[]) { CORBA::ORB_var orb = CORBA::ORB_init (argc, argv); CORBA::Object_var obj = orb->resolve_initial_references ("NameService"); CosNaming::NamingContextExt_var nc = CosNaming::NamingContextExt::_narrow (obj); obj = nc->resolve_str ("HelloHome"); HelloHome_var hh = HelloHome::_narrow (obj); HelloWorld_var hw = hh->create (); hw->message ("Hello World"); hw->configuration_complete (); hw->sayhello (); hw->remove (); return 0; } 45 J. Hugues, A. Diaconescu - INFRES INF346/2010, CCM v1.1
Server-side mapping et CIF - Component Implementation Framework On souhaite implanter un composant On tire partie de la régularité du container CORBA pour générer une grande partie du code automatiquement CIF définit un modèle de programmation pour implanter les composants Objectif: faciliter l implantation Le développeur : implante seulement la partie métier Le container : activation, gestion des ports, introspection, persistence, sécurité, À charge du développeur d implanter les fonctions pour construire les composants, la partie métier, et la manière de gérer les homes On se place dans un cadre où il «suffit» d implanter certaines classes bien identifiées dans le mapping 46 J. Hugues, A. Diaconescu - INFRES INF346
Server-side architecture de conteneurs («containers») - 1/2 Figure provenant du document «CORBA Components», OpenCCM - http://openccm.ow2.org/doc/resources/formal_2002-06-65.pdf Copyright 2002, Laboratoire d Informatique Fond de Lille ; Copyright 1991-2002 Object Management Group, Inc. 47 J. Hugues, A. Diaconescu - INFRES INF346/2010, CCM v1.1
Server-side architecture de conteneurs («containers») 2/2 L Executor et le Context d un containeur CCM Figure provenant du document «CORBA Component Model Tutorial», OMG CCM Implementers Group, 2002 www.dcl.hpi.uni-potsdam.de/lv/components03/vl6/04_ccm-tutorial.ppt 48 J. Hugues, A. Diaconescu - INFRES INF346/2010, CCM v1.1
Processus de construction d application CCM IDL IDL Compiler CIDL CIDL Compiler Stub Skel Servants Executors IDL Compiler Executor IDL Impl XML Component Descriptors GENERATED INHERITED page 49 J. Hugues, A. Diaconescu - INFRES INF346
Configuration et déploiement page 50 CCM - CORBA Component Model ada.diaconescu@telecom-paristech.fr
CCM Deployment & Configuration (D&C) D&C a été adopté par l OMG en 2003 Il supporte Les assemblages hiérarchiques La gestion des ressources Qualité de Service Déploiement automatisé Chercher à supprimer le verrou de l implantation - c-à-d être lié à une implantation 51 J. Hugues, A. Diaconescu - INFRES INF346/2010, CCM v1.1
D&C & Model-Driven Architecture (MDA) MDA fait partie de l effort de l OMG autour de l ingénierie orienté modèle D&C suit ce modèle Modèle de déploiement abstrait (PIM) Instancié en un PSM pour CCM Basé sur une projection pour définir Fichiers IDL & XML pour le déploiement Il définit aussi un processus complet pour renseigner chaque modèle PIM: Platform-Independent Model PSM: Platform-Specific Model 52 J. Hugues, A. Diaconescu - INFRES INF346
Etapes du déploiement de CCM Spécification & Implantation Définition et implantation des fonctionnalités de l application sous forme de composants Packaging Regrouper les modules binaires et méta-données formant chaque composant Installation Mise en place des composants dans un dépôt dédié (e.g. référentiel d implantation) Configuration Configuration des paquetages avec les paramètres remplissant les besoins fonctionnels et non fonctionnels du systèmes Planification Affectation des ressources d exécution (CPU, réseau) à chaque composant Préparation Téléchargement des fichiers Démarrage Démarrage ordonné de tous les composants, jusqu au point où ils peuvent interagir Application des politiques de QoS Suivi et réaction pour garantir la QoS de bout-en-bout 53 J. Hugues, A. Diaconescu - INFRES INF346
Métadonnées produites / utilisées par D&C Component Interface Descriptor (.ccd) Interface, ports, & propriétés Implementation Artifact Descriptor (.iad) DLLs, OS, etc. Component Package Descriptor (.cpd) Implantation alternatives de composants Package Configuration Descriptor (.pcd) Top-level Package Descriptor (package.tpd) Component Implementation Descriptor (.cid) Relations entre composants 54 J. Hugues, A. Diaconescu - INFRES INF346
Métadonnées produites / utilisées par D&C Component Packages (.cpk) Un paquetage, ou un assemblage Component Domain Descriptor (.cdd) Décrit les ressources (nœuds, connexion, ressources) Deployment Plan Descriptor (.cdp) Projection d une application configurée vers un domaine Toutes ces données sont définies via un méta-modèle, exporté en XML Coût non négligeable à l exécution 55 J. Hugues, A. Diaconescu - INFRES INF346
Outils D&C Exploitent les diverses méta-données Packaging > Assemblages > Déploiement Une partie est embarqué avec le serveur CCM Deployment Plan Descriptor (. cdp ) Component Interface Descriptors (. ccd ) realizes Deployment Planning Tools Component Package Descriptors (. cpd ) Component & Home Properties Component Domain Descriptor (. cdd ) 56 J. Hugues, A. Diaconescu - INFRES INF346
Déploiement et configuration Étapes canoniques, après lecture du plan de déploiement par le serveur CCM NodeApplicationManager construit une NodeApplication, qui Instancie containers et composants Qui créent et enregistrent les homes, les composants et les connectent, en appelant les fonctions de call-back implantées par l utilisateur 57 J. Hugues, A. Diaconescu - INFRES INF346
Autres modèles & Conclusion INF346/2010, CCM v1.1
De CCM à Lightweight CCM Les spécifications CORBA couvrent un large domaine, qui entre en conflit avec les besoins spécifiques en puissance de calcul de cibles spécifiques: calcul scientifique, embarqué, temps réel Un sous-ensemble de CORBA CCM permet de supprimer plusieurs phases dans le traitement d une requête, la mise en place du déploiement, etc Lw-CCM définit ce sous-ensemble, il est complété par CORBA/e qui réduit le modèle objet CORBA sous-jacent Lw-CCM conserve les éléments clés du modèle: composant, facettes, homes, containers Il supprime tous les mécanismes dynamiques tels que l introspection, la persistance qui sont couteux à l exécution page 59 J. Hugues, A. Diaconescu - INFRES INF346/2010, CCM v1.1
CCM et autres modèles basé composants Enterprise Java Beans (EJB) Solution Java pour les composants, antérieur à CCM Modèle similaire, mais fortement couplé à Java Peu de visibilité sur le cœur de l exécutif CCM définissent une passerelle vers EJB.NET, DCOM Reprend la plupart des concepts de CCM Moins de politiques de configuration, de support pour la distribution Limité à Windows page 60 J. Hugues, A. Diaconescu - INFRES INF346/2010, CCM v1.1
Conclusion Les modèles de répartition ne résolvent qu une partie des besoins des applications réparties. Les évolutions d un système doivent aussi être prise en compte dans les mécanismes supportés. L approche composant vise à fournir le niveau d abstraction suffisant pour séparer interfaces, implantation et déploiement sur une architecture physique. CCM fournit ce modèle, en étendant le modèle objet de CORBA CORBA Implementation Framework (CIF) définit les mécanismes à prendre en compte, au niveau exécutif, et non fonctionnel OMG D&C fournit les mécanismes pour configurer l exécutif et déployer les composants Les implantations montrent que le coût à l exécution est élevé Travaux pour limiter l impact du cœur CORBA, en général sous-utilisé Utilisation de DDS à la place du cœur CORBA envisagé page 61 J. Hugues, A. Diaconescu - INFRES INF346/2010, CCM v1.1
Bibliographie page 62 CCM - CORBA Component Model ada.diaconescu@telecom-paristech.fr
Références The CCM ressource page (maintenue par Diego Sevilla Ruiz) http://ditec.um.es/~dsevilla/ccm/ "Tutorial on the Lightweight CORBA Component Model (CCM) - Dr. Douglas C. Schmidt http://www.dre.vanderbilt.edu/~schmidt http://www.dre.vanderbilt.edu/~schmidt/omg-ccm-tutorial.ppt Introduction: "Middleware - CORBA Component Model (CCM)", - Prof. Lionel Seinturier http://www.lifl.fr/~seinturi/middleware/ccm.pdf 63 CCM - CORBA Component Model ada.diaconescu@telecom-paristech.fr
Références (2) Livres CORBA 3 Fundamentals and Programming, John Siegel, John Wiley & Sons Internet OMG CCM specification - http://www.omg.org/technology/documents/formal/components.htm CCM resource page - (Diego Sevilla Ruiz) - http://www.ditec.um.es/~dsevilla/ccm Tutoriaux - Douglas Schmidt Introduction au CCM : http://www.cs.wustl.edu/~schmidt/pdf/cbse.pdf - Philippe Merle Cas d Etude CCM (dîner des philosophes) : http://openccm.ow2.org/doc/resources/icar_2003/etude_de_cas_application_ccm.pdf Articles - «Writing and Using CORBA Components», Frank Pilhofer, 2002 - «The CORBA Component Model», Steve Vinoski, 2004 plusieurs parties Implantations Component Integrated ACE ORB (CIAO), basée sur TAO http://www.dre.vanderbilt.edu/ciao/ MICO CCM, http://www.mico.org OpenCCM, OW2, http://openccm.ow2.org page 64 J. Hugues, A. Diaconescu - INFRES INF346