mon rapport
Copyright Michel Buffa
24/11/2011
Message-Driven Beans
Nouveauté apparue avec EJB 2.0,
Messaging = moyen de communication léger, comparé à RMI-IIOP,
Pratique dans de nombreux cas,
Message-Driven beans = beans accessibles par messaging asynchrone.
Message-Driven Beans
Michel Buffa (buffa@unice.fr), UNSA 2011 modifié par Richard Grin (version 1.0, 21/11/11)
Message-Driven Beans : motivation
Performance
Un client RMI-IIOP attend pendant que le serveur effectue le traitement d'une requête,
C'est comme le mail ! Ou comme si on avait une troisième personne entre le client et le serveur !
Fiabilité
Messaging
Lorsqu'un client RMI-IIOP parle avec un serveur, ce dernier doit être en train de fonctionner. S'il crashe, ou si le réseau crashe, le client est coincé.
Pas de broadcasting !
RMI-IIOP limite les liaisons 1 client vers 1 serveur
Messaging
A cause de ce "troisième homme" les performances ne sont pas toujours au rendez-vous !
Message Oriented Middleware (MOM) est le nom donné aux middlewares qui supportent le messaging.
Tibco Rendezvous, IBM MQSeries, BEA Tuxedo/Q, Microsoft
MSMQ, Talarian SmartSockets, Progress SonicMQ, Fiorano
FioranoMQ, …
Ces produits fournissent : messages avec garantie de livraison, tolérance aux fautes, load-balancing des destinations, etc…
Appels asynchrones avec EJB
Depuis Java EE 6 les beans sessions peuvent avoir des méthodes que l’on peut appeler de façon asynchrones
Des cas où il fallait utiliser des MDB peuvent maintenant être codés plus simplement avec ces méthodes asynchrones
1
Cours EJB/J2EE
Copyright Michel Buffa
Exemple
@Asynchronous
public Future payer(facture facture) throws PaiementException { retourne le statut
...
du paiement sous la forme if (SessionContext.wasCancelled()) { d’une String
// la requête a été annulée
...
} else {
//