Architecture de composants La réponse de l OMG
1 Standardisation OMG Le modèle de composants CORBA (CORBA 3.0)
1 Standardisation OMG Le modèle de composants CORBA (CORBA 3.0) Le processus MDA
1 Standardisation OMG Le modèle de composants CORBA (CORBA 3.0) Le processus MDA Programmation par aspects : alternative ou complément?
2 Le modèle CCM Corba Component Model Le plus récent Le plus complet Pas forcément le plus simple Pas d implémentation complète de cette norme (oct. 2002)
3 La spécification CCM Un modèle abstrait de composants Interface Definition Language IDL3 Un framework d implantation (CIF) Component Implementation Definition Language (CIDL) Un modèle de containers Des dialectes XML de conditionnement et de déploiement Des référentiels de méta-données
4 Référence de Composant Un composant CCM Composant CCM Réceptacle Composant Références de facettes Implémentation des facettes Puit d'événement Source d'événement Attributs Composant
5 Le langage IDL3 Une extension du langage de spécification IDL2 Des règles de traduction de composants CORBA en objet CORBA Connection / assemblage des composants par les ports.
6 Exemple simple de spécification IDL3 module banque { interface IClient { double getsolde (in IdClient id) ; void crediter ( in IdClient id, in double montant) raises... void debiter (in IdClient id, in double montant) raises... } ; interface IBanque { void virementvers (in IdClient ids, in IdClient idd, double montant)... } ; component Banque { provides IClient serviceclient ; provides IBanque servicebanque ; } ; home BanqueHome manages Banque { } ;
7 CCM, the Big Picture
8 De CCM à MDA Un constat : Le modèle de composant unique, la plateforme unique n existe pas et n existera pas Comment faire en sorte d être le moins dépendant d une solution propriétaire (langage, modèle architectural, système d exploitation,... )?
8 De CCM à MDA Un constat : Le modèle de composant unique, la plateforme unique n existe pas et n existera pas Comment faire en sorte d être le moins dépendant d une solution propriétaire (langage, modèle architectural, système d exploitation,... )? La solution : le processus MDA (Model Driven Architecture)
9 Le processus MDA 1 PIM 2 3 PSM 4 PIM : Platform Independent Model (ex : UML, ODP) PSM : Platform Specific Model (ex : EJB, CORBA)
9 Le processus MDA 1 PIM 2 3 PSM 4 PIM : Platform Independent Model (ex : UML, ODP) PSM : Platform Specific Model (ex : EJB, CORBA) Prendre en compte les aspects spécifiques à une technologie le plus tard possible
10 Les technologies préconisées par MDA UML (from OMG) MOF (Meta Oject facilities) profils UML OCL (Object Constraint Language) XML, XMI
11 Les profils UML Mécanisme standard d extension d UML Ensemble cohérent de stéréotypes, valeur marquées (tagged value) et contraintes +extendedelement * ModelElement (from Core) 0..1 +constrainedelement 1..* {ordered} +taggedvalue * TaggedValue tag : Name value : String +requiredtag * GeneralizableElement (from Core) Constraint (from Core) +constraint +stereotype 0..1 Stereotype icopn : Geometry baseclass : Name 1 +stereotypeconstraint +constrainedelement * {xor} 0..1
12 Exemple profil UML Des profils standardisés existent : profil CORBA 2, profil EJB 1.1 A venir : profil EJB 2.0, profil CCM <<EJBEntityBean>> Customer ClientKey <<EJBPrimaryKey>> Client <<EJBRemoteInterface>> <<instantiate>> <<EJBRealizeRemote>> ClientBean <<EJBImplementation>> ClientHome <<EJBEntityHomeInterface>> <<EJBRealizeHome>>
13 Avantages Atelier UML Spécification plus rapide d un composant Outil intégré de vérification structure d un composant Outil de génération de code, de transformation de modèles
14 Transformation de modèles Meta-Modele M1 Meta-Modele M2 XMI, XSLT J,... Modele M1 Modele M2 modèles XMI, règles XSL Outil Objecteering, langage objet J
15 Exemple transformation de modèles Passage modèle entité-association vers modèle relationnel Meta-Modele Entite-Association Meta-Modele relationnel Entite * contient * Identifiant 1..1 participe contient * Propriete Table contient * cleprimaire 1 cleetrangere * Attribut Association Identifier les règles de traduction : ex : Entite Table identifiant cleprimaire
16 Conclusion Encore beaucoup de choses à définir : Modèle de composants abstrait? (UML 2.0?, autre?) Trouver une méthodologie à base de composants Assemblage de composants : validité, tests,......
17 Programmation par aspects Une nouvelle manière de programmer Nouveau découpage d une application : un programme + aspects Réutiliser des aspects pour d autres applications : Vers des composants d aspects
18 Exemple : serveur Tomcat et Parsing (1/3) c Olivier Caron
19 Exemple : serveur tomcat et Pattern Matching (2/3)
20 Exemple : serveur tomcat et Logging (3/3)
21 Approche AOP disposer d un langage d aspect définir les points de jonction Réaliser le tissage des aspects sur l application (weaver)
22 Aspect J www.aspectj.org (Xerox Lab) Utilisation du langage Java compilateur statique java (ajc)
23 JAC Java Aspect Component (LIFL) Langage Java Assemblage dynamique d aspects Quelques composants d aspects : RMIAspect,...
24 JBoss 4.0 Architecture interne AOP Persistance, transaction, sécurité sont des aspects Possibilité d ajouter de nouveaux aspects!