Le composant :
Intêret d. un Composant
Notions liées au composant
contenu du CCM
Modèle abstrait du composantLa facetteModèles d'implantation
Le réceptacle
La source et le puit d événements
la fabrique : home
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 :
- le modèle abstrait de composantil explique comment décrire un composant en faisant appel à de nouvelles extensiosn du langage IDL (Interface Definition Language )
- le modèle d 'implantationil définit la façon d'implanter un composant à l'aide du CIDL ( Component Implementation Description Language )
- le modèle des conteneursil définit la structure et l'utilisation des conteneurs de composants.
- le modèle de déploiement
Il définit comment le composant sera distribué, assemblé et déployé dans une architecture CCM
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é :
- d'une référence
- de 4 types de port (la facette, le réceptacle, la source et le puit d'évènements )
- d 'attributs
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.
AssemblageIl 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:
![]()
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