Le composant :
Intêret  d. un Composant
Notions liées au composant
contenu  du CCM 
Modèle abstrait du composant
La facette
Le réceptacle
La source et le puit d événements
la fabrique : home
Modèles d'implantation
Modèle des conteneurs
Modèle de déploiement
Bilan de la démarche
Conclusion sur CCM


Le  CCM :Corba Component Model

Introduction:

Dans le cadre des "exposés systéme"de la formation ingénieurs2000, j'ai trouvé intéressant de présenter le modèle de composants CCM (Corba Component Model ). En effet nous allons voir que la définition intrinsèque d'un composant et sa définition au sein de l'architecture Corba soulèvent de nombreux enjeux autant au niveau architecture système qu'au niveau génie logiciel ou encore réseau.

Cette nouvelle approche du développement d'applications améliore la qualité de conception, la modularité, la portabilité, l'adéquation au métiers ou aux architectures applicatives réseau.Elle permet en outre de conceptualiser les différents éléments d'un composant et de son intégration dans une application.

Tout d'abord voyons ce qu'est un composant.

Qu'est ce qu'un Composant

Lors de l'édition de 19996 de la conférence europpéenne sur les programmes orientés objets (ECOOP) la définition suivante a été définie:

"Un composant logiciel est une unité de composition dotée d'interfaces spécifiées. Un composernt logiciel peut être déployé indépendemment et sujet à une composition par une tierce entité ."

D'autres définitions sont aussi employées, par exemple :

Un composant est un ensemble de composants atomiques déployés.Un composant atomique est un module et un ensemble de ressources.Un module est un ensemble de classes. Une resource est une collection d'éléments typés.

"Les objets forment les comosants et les composants forment les applications"

Finalement retenons qu'un composant est un élément de base dans la construction d'applications.C'est une unité logicielle autonome offrant des interfaces spécifiées permettant entre autre de configurer le composant lui-même.Le composant dispose aussi de fonctionnalités additionnelles comme la gestion du déploiement, de la composition et sa gestion dynamique.

Parmi les technologies distribuée modélisant les composants on peut citer : les EJB (Enterprise Java Beans ), COM/DCOM,le CCM (Corba Component Model) et l'architecture .Net .


Intêret  d'un Composant

Unité logicielle responsable réutilisable qui permet :

  • de diminuer la complexité des applications (notamment distribués )
  • d'augmenter la productivité
  • d'améliorer la qualité logicielle

  • Le composant est une brique de base dans la réalisation d 'une application de programmation visuelle, son utilisation est aussi déterminante dans les stratégies et les architectures des progiciels de gestion intégrée (PGI /ERP).

     

     

    En effet, la définition des interfaces permet au composant de disposer de différents ensembles de fonctionnalités qui permettent de mettre en oeuvre aisément des solutions basées sur des développements par métier(composant de gestion de commande :fournisseurs, stocks, achats), ou basée sur des achitectures (3tiers par exemple :composants achat en ligne : serveur applicatif, serveur web , client web)
    ou des développement en environnement distribué.


    Notions liées au composant

    Le composant doit etre autonome sur differents points.

    Exploration et enregistrement Un composant doit offrir des acces aux differents element de sa strucuture Il doit permettre aussi de s'enregistrer sur le bus corba tout en offrant la possibilite d'etre renseigné sur sa disponibilite (etat actif/inactif )

    gestion des événements Il est aussi capable de declencher des evenements (element de communication entre les differentes entites)

    Persistance La persitance est la capacite a gerer des situations ou differentes versions peuvent coexister. Elle permet aussi de stocker et recuperer les elements du composant.C'est aussi une facon de rendre compte du fait qu'un composant peut survivre a celui qui l'a créé. Ces comportements sont définis par la définition du rapport de composition.

    Présentation visuelle Les composants correspondent en general a des elements logiciel necessitants de communiquer avec l'utilisateur via une interface graphique, il doivent donc integrer les elements graphiques permettant sa propre utilisation. Cela doit etre adapte a l'utilisation que l'on doit faire du composant et donc de son etat. Il est donc necessaire de prevoir differentes vues (accés ) sur le composant

    Introspection L'introspection est la possibilité pour un composant de s'interroger sur lui meme et de rendre disponible ces informations a d'autres. Ceci est particulierement necessaire lorsque le composant evolue et change d'etat.

    configuration Un composant necessite une configuration pour pouvoir etre adapte a differentes situations ( par exemple si un composant est utilisé diffrement par des logiciels ). Il doit donc proposer les moyens de le configurer.


    Intêret  du CCM

    Le CORBA COMPONENT MODEL est un modèle pour definir un composant dans une architecture distribuée CORBA.Il est compatible avec les structure EJB ( Enterprise Java Beans ).

    Ce modèle propose aussi bien une architecture pour le composant qu'une API pour l'implémentation CORBA.Il integre aussi des interfaces pour la configuration ,la definition de la composition des composants et un modele pour le deploiement

    Quel est l'interet pour un composant de s'integrer dans une architecture CORBA ? D'une part cela lui permet d'etre independant de la plate forme et du langage, compatible avec le modèle EJB. D'autre part ce composant peut etre distribué sur un bus CORBA  (description du déploiement) en bénéficiant de services CORBA ;la gestion d'événements par exemple .

    Le CCM propose toute une structure pour définir un composant, son comportement, son intégration dans un conteneur (application ) et son déploiement dans l'environnement distribué CORBA.

     

    Le CCM a été intégré dans la version de CORBA 3 .


    contenu  du CCM

    La spécifications des composants CORBA est formée par :


    Modèle abstrait du composant

    Le modele abstrait de composant permet de definir la structure intrinseque du composant le modèle abstrait de composant décrit les ports et les interface de la home à l'aide du langage IDL actualisépar rapport au CCM.

    Le composant CORBA est constitué :

    Il est associé à une fabrique : home


     Les ports :

    La facette :

    c 'est une interface fournie par le composant elle donne une vue sur le composant Il peut y avoir plusieurs facettes

    Le réceptacle

    cette une interface est un point d'entrée nommé Il exprime la capacité du composant à pouvoir exploiter des références d 'objets typées qui seraient fournies par l 'extérieur lien dynamique entre composants

    La source et le puit d événements

    La source d événements elle diffuse un événement un type d événement donné vers : soit un canal d événement soit des consommateurs le puit d événements il reçoit des événements d 'un type donné, après s 'être abonné

     

    la fabrique:

    la fabrique : home est une nouvelle notion introduite dans le méta-modèle de corba.
    C'est l'entité qui gère le composant elle permet de contrôler le comportement du composant en fonction de son cycle de vie, elle permet la gestion des instances du composant (création, gestion de clé , recherche, exploration)

    Il peut y avoir plusieurs home
    La home peut implanter des methodes standard (IDL classique ), des "constructeurs de composants " (factory ) et des "méthodes de recherche / selection de composants"(finder ).


    Modèles d 'implantation

     Le modèle abstrait décrit la structure d'un composant tandis que le modèle d 'implantation décrit les comportement du composants.

    Il rend compte de la relation de composition du composants de sa persitence ainsi que des caractéristiques des exécutions (gestion des transactions par exemple ).

    Ce modèle est réalisé en langage CIDL (Component Implementation Description Language ).Une compilation particulière au CIDL permet de tisser le canevas du composant; le canevas (la structure ) de l'implantation du composant sera ainsi conforme à un modèle Corba d'implantation de composant :le Component Implementation Model ( CIF ).

    Une fois le canevas défini, le développeur n'a qu'à placer les implantations des méthodes c'est à dire programmer les caractéristiques propres aux traitements réalisés par le composant.

    Une composition met en relation une description d'interface du modèle abstrait (IDL ) avec un executeur (executor ) : entité qui implante cette interface.

    Il est à noter qu'il est aussi possible de créer des home distantes, séparées des composants (Home proxy )

    On distingue deux types d'exécuteurs :home executor (l'éxecuteur est placé sur l'entité qui implante la home ) et component executor ( entité qui implante le composant )

    Il existe quatre catégories de composition:

     

     

     


    Modèle des conteneurs

     

    Il repose sur les éléments suivants :

    • un modèle des interactions entre le conteneur et le reste de CORBA
    • une gestion de certains services disponibles sur le bus :de transactions, sécurité, persistance et notification
    • une API externe pour être utilisé par une application
    • une API de conteneur pour manipuler ses objets

    Le conteneur  dispose aussi d'un POA (Portable Object Adaptater) spécifique aux composants.

    Serveur de conteneurs :

    Ils mettent à disposition sur le bus une structure servant de conteneurs de composants. Ils respectent les API de conteneurs.


    Apres la compilation de l'IDL et du CIDL on obtient l'architecture Corba de notre composant et le canevas permettant de l'utiliser. Il reste au développeur à coder les traitements (méthodes ) définis.

     

    Modèle de déploiement

    Création de lot: packaging

     La création de lot consiste à rassembler au sein d'une archive appelée "lot" tous les constituants d'un composant afin de faciliter sa distribution. Le lot contient à la fois le code (différentes implémentations ) du composant et un ensemble de descripteurs permettant de caractériser le lot sous différentes formes :

    le descripteur logiciel ( Software Package descriptor )écrit en XML (fichier.csd - csd:Corba software descriptor )fournit diverses informations sur le logiciel :nom version bibliothèques

    le descripteur de composant (Corba Component Descriptor fichier)

    fichier écrit en en XML (fichier.ccd) qui renseigne sur la catégorie du composant, son modèle de thread, la gestion des transactions,la qualité de service sur la gestion d'évènements

    descripteur de propriétés décrit en XML des propriètés additionnelles particulières à un composant (fichier.cpf Component file property )

     

    A l'issue de la création du lot un fichier de type zip contenant ces information est généré et correspond au lot.


    Assemblage

    Il existe un lot particulier : le lot d'assemblage d 'assemblage qui décrit comment des composants simples sont assemblés pour former une application composite, les intéractions entre composants y sont détaillées..

     

    Cette description en XML (fichier.cad Component Assembly Descriptor ) .Le tout est archivé dans un fichier au format zip.

    Déploiement

    Le deploiement décrit comment installer un composant dans un conteneur et pouvoir exploiter ce dernier ainsi que la distribution de l'assemblage .


    Bilan de la démarche

    1 Modèle abstrait et modèle d'implantation du composant

    2 développement du composant

    3 création de lot

    4 assemblage

    5 déploiement

     


    Conclusion sur CCM

    L'architecture et l'API proposées par le Component CORBA Model sont sur différents points très intéressantes. En effet le CCM permet de definir une solution pour définir un comosant tout en considérant différents aspects propres à la notion de composant, aux archistectures distribuées, au differents langages, plateformes, propres aussi à la gestion des instances des composants, de leur cycle de vie et à la phase de déploiement.

    D'autre alternative pour les composants distribués sont les EJB ou DCOM. Et .Net(voir l'expose de Stephane ) La notion de composants soulève aussi de nombreux problèmes parfois difficiles à modeliser comme par exemple la notion de composition.(lien)

    Pour cela un des prochaines actions a propos du composant sera d'integrer cette notion dans la prochaine revision de l'UML.

    CCM en Projets:

    openCCM

    http://www.objectweb.org /OpenCCM

    MicoCCM (alcatel)

    http://www .fpx.de/MicoCCM

    freeCCM (Humboldt University)

    http://www.sourceforge.net/projects/CIF

    CCM et la programmation par composant sont au centre de nombreux débats

    Sources Web:

     

    http://www.omg.org

    www.corba.org

    The CCM Page : http://www.ditec.um.es/~dsevilla/ccm

    Composants et environnements distribués :

    http://my.execpc.com/~gopalan/index.html

    http://www.calidis.com/WebAtrium/services/publications.html

    présentation CCM:http://www-src.lip6.fr/homepages/Lionel.Seinturier/middleware/ccm.pdf

     OpenCCM : http://wwx.objectweb.org/OpenCCM/

    approche par composants dans la conception de logiciel:

    http://arcad.essi.fr/2002-10-composants/papiers/05-long-parigaut.pdf

    Comparaison EJB COM/DCOM .NET CCM :

    http://www.calidis.com/WebAtrium/services/download/ServeurAppli.pdf

    http://my.execpc.com/~gopalan/misc/compare.html

    Livres :

    " Au coeur de CORBA avec java " de J.Daniel Vuibert. 2eme édition

    "  Java beans guide du programmeur " de R.Englander O 'Reilly.

    Java programming with CORBA OMG Press third edition