Transactions et Composants d`entreprise
Transcription
Transactions et Composants d`entreprise
Transactions et Composants d’entreprise Didier DONSEZ Université Joseph Fourier (Grenoble 1) IMAG/LSR/ADELE [email protected] Les modèles de composants : caractérisation d’un composant Ø Ce que fournit le composant (entrées) l composantes, interfaces, opérations, propriétés l composition et références aux autres composants Ø modes de communication des connecteurs (synchrone, asynchrone, flots) è Propriétés configurables du composant è Contraintes techniques (QoS) Ø middleware : placement, sécurité, transaction Ø internes : cycle de vie, persistance Ø implantation : OS, bibliothèques, version Fournit Ø Ce qu’utilise le composant (dépendances) s y n c s y n c a s y n c Composant a s y n c Utilise Propriétés configurables è Comment coopère un composant Contraintes techniques Didier Donsez, Transactions et Composants Les modèles de composants : conteneurs et structures d’accueil èConteneur Ø encapsulation d’un composant (et ses composantes) Ø prise en charge (masque) les services systèmes l nommage, sécurité, transaction, persistance ... Ø prise en charge partielle des connecteurs l invocations et événements Ø techniquement par interposition (ou délégation) èStructures d’accueil Ø espace d’exécution des conteneurs et des composants Ø médiateur entre les conteneurs et les services systèmes Ø des + comme le téléchargement de code (navigateur) Didier Donsez, Transactions et Composants Les modèles de composants : conteneurs et structures d’accueil Client Utilise Connecteur synchrone Composant Conteneur Composant Connecteur asynchrone Conteneur Conteneur Structure d’accueil Composant Structure d’accueil Middleware + Services Didier Donsez, Transactions et Composants Service non fonctionnel èDéfinition ØService qui n’ajoute pas de nouvelle fonctionnalité à l’application ØApporte une qualité de service supérieure lSûreté de fonctionnement –Transactions, Contrôle de concurrence, … lSécurité lNommage … ØLa mise en œuvre des SNF est généralement complexe et spécialisé ØLe développeur du composant doit en être déchargé Didier Donsez, Transactions et Composants Classification Services haut niveau nommage courtage supervision persistance Gestion Cycle de vie sûreté concurrence transaction réplication Tolérance aux pannes Équilibrage des charges sécurité versioning Services bas niveau Gestion des exceptions Garbage collecting synchronisation Didier Donsez, Transactions et Composants Comparaison des services non-fonctionnels Enterprise JavaBeans CCM COM+ / .NET transaction JTA et JTS OTS et concurrency service MTS persistance JDBC/JMS Persistent State Service ADO .NET nommage JNDI Naming/Trading service LDAP/UDDI Security service Passport sécurité versioning CVS Événements JMS DLL Event service (MOM) MSMQ Didier Donsez, Transactions et Composants EJB : Caractéristiques principales Ø L’architecture EJB identifie les éléments suivants : l composants logiciels ou beans (EB), l conteneurs, l serveurs, l clients. Ø Les conteneurs isolent les beans du client et d’une implémentation spécifique d’un serveur l Rappel : les beans sont dans la partie serveur Ø Conteneurs et serveurs implémentent les services non fonctionnels utilisés par les applications l transactions, persistance, gestion mémoire, sécurité, … Didier Donsez, Transactions et Composants Transaction : Gestion Déclarative èModèle de transaction plat Øpas de transactions imbriquées (nested) èGestion “déclarative” des transactions Øl’attribut transactionnel associé aux méthodes des EBs est affecté soit lors de la phase d’implémentation du bean, soit lors de son déploiement Didier Donsez, Transactions et Composants Attributs transactionnels EJB Beans Transaction Attribute Client’s Transaction Transaction associated bean’s method TX_NOT_SUPPORTED None T1 None None TX_NEVER None T1 None Error TX_REQUIRED None T1 T2 T1 TX_SUPPORTS None T1 None T1 TX_REQUIRES_NEW None T1 T2 T2 TX_MANDATORY None T1 Error T1 TX_BEAN_MANAGED None T1 de Gérard Vandome, BullSoft Didier Donsez, Transactions et Composants Transaction : Exemple [Monson, p231] Didier Donsez, Transactions et Composants Modèle de transactions avancées (i) èClose Nested Transactions ØOMG’ OTS èOpen Nested Transactions ØNested Transactions can commit update before the main transaction completion lbreak the Isolation rule ØCompensation are fired if main transaction aborts èBourgogne Transactions ØFlexible models ØTransaction may delegate the commit or the abort of updates to other transactions èSAGAS, Contracts, … èProjects : PEPiTA & IMPACT ØSOAP and BTP integrations in JOnAS Didier Donsez, Transactions et Composants Modèle de transactions avancées (ii) èNouveaux attributs transactionnels pour les transactions imbriquées (fermées et ouvertes) Beans Transaction Attribute Client’s Transaction TX_REQUIRES_NEWSUB TX_MANDATORY_NEWSUB TX_REQUIRES_NEWOPENSUB TX_MANDATORY_NEWOPENSUB èCompensation configurable None T1 T1.x None T1 T1.x None T1 T1.x None T1 T1.x Transaction associated bean’s method T2 T1.x (Close) T1.x.y (Close) Error T1.x (Close) T1.x.y (Close) T2 T1.x (Open) T1.x.y (Open) Error T1.x (Open) T1.x.y (Open) l Thèse de Sergiy Nemchenko (Valenciennes) ØComposants « ombres » implantant une politique particulière de compensation l Une des politiques est choisie au déploiement ØNombreux problèmes ouverts : l Cascades de compensation, Contrôle de Concurrence Didier Donsez, Transactions et Composants Composants Avancées èConteneurs Ouverts ou Extensibles ØPas de services non fonctionnels prédéfinis ØAjout de services NF custom au déploiement lMonitoring, Modèle de transaction avancées, … ØTechniques : AOP, Proxy dynamique, … ØAvantages lExtensibilité sans passer par la normalisation lPas d’overhead à payer systèmatiquement Didier Donsez, Transactions et Composants Composants Avancées èComposants récursifs ØUn composant peut être un assemblage (agrégat) de composants connectés Connections Occurrences èProblème ouvert Øpropagation des attributs NF sur la composition ! lSécurité, Transactions, Compensation ! Didier Donsez, Transactions et Composants