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