La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

JORAM Java Open Reliable Asynchronous Messaging

Présentations similaires


Présentation au sujet: "JORAM Java Open Reliable Asynchronous Messaging"— Transcription de la présentation:

1 JORAM Java Open Reliable Asynchronous Messaging http://www.scalagent.com

2 Introduction JORAM implémente la norme JMS via la plate- forme S CALAGENT è JMS normalise laccès des programmes Java aux middlewares à messages (Message Oriented Middleware) è Les MOM permettent lintégration dapplications hétérogènes et indépendantes

3 Message Oriented Middleware (MOM) è Modèle de communication entre logiciels Intégration de modules hétérogènes distribués Indépendance (asynchronisme) Fiabilité NT

4 Principe de base des MOM è Message Queueing Queues de messages persistantes Transmission des messages asynchrone (stockage des messages si nécessaire) Reprise après panne Un émetteur remet son message au système et peut continuer son exécution sans se soucier de létat du destinataire

5 Caractéristiques des MOM è Modes de communication Point-à-point (PTP): émetteur, récepteur et queue Publication/Souscription (Pub/Sub): émetteur, abonné et nœud è Modèle de programmation Réception explicite / implicite è Messages Messages dotés dattributs et de propriétés Priorités, garantie de délivrance

6 Linterface Java Message Service (JMS) è API Java daccès uniforme aux systèmes de messagerie Provider X JVM Client MQ X JMS Client Provider X JVM Client JMS

7 Le mode Point-à-Point (PTP) EmetteurDestinataire QueueConnectionFactory connectionFactory = (QueueConnectionFactory) messaging.lookup("…"); Queue queue = (Queue) messaging.lookup("…"); QueueConnection connection = connectionFactory.createQueueConnection(); QueueSession session = connection.createQueueSession(…); QueueSender sender = session.createSender(queue); String selector = new String("(name = 'Bull') or (name = 'IBM'))"); QueueReceiver receiver = session.createReceiver(queue, selector); Queue QueueConnectionFactory QueueSession QueueConnection QueueSession QueueConnection + QueueSender + QueueReceiver TextMessage msg = session.createTextMessage(); msg.setText("…"); sender.send(msg); TextMessage msg = (TextMessage) receiver.receive(); send receive

8 Mode Publication / Souscription (Pub/Sub) EmetteurDestinataire Topic TopicConnectionFactory AB x y TopicConnectionFactory connectionFactory = (TopicConnectionFactory) messaging.lookup("…"); Topic topic = (Topic) messaging.lookup("/A/x"); TopicConnection connection = connectionFactory.createTopicConnection(); TopicSession session = connection.createTopicSession(false, Session.CLIENT_ACKNOWLEDGE); TopicPublisher publisher = session.createPublisher(topic); TopicSubscriber subscriber = session.createSubscriber(topic); Subscriber.setMessageListener(listener); TopicSession TopicConnection TopicSession TopicConnection + TopicPublisher publish TopicSubscriber + Listener onMessage void onMessage(Message msg) throws JMSException { // unpack and handle the message … } publisher.publish(msg);

9 La plate-forme S CALAGENT è Bus logiciel à base dagents communicants è Agents = objets réactifs Persistants Légers : infrastructure dexécution partagée au sein dun serveur dagents è Modèle événement / réaction asynchrone Événement : changement détat significatif du système auquel un ou plusieurs agents réagissent Événement Notification Réaction fonction dans la classe Agent React SendTo Channel Agent

10 Larchitecture distribuée S CALAGENT ChannelEngine mq ChannelEngine mq Agent SendTo React Server A Server B è Infrastructure basée sur un bus à messages Acheminement des notifications Exécution de la réaction du destinataire Distribution: forte interconnexion des bus locaux

11 Les propriétés de la plate-forme è Persistance Sauvegarde des agents et notifications è Atomicité Cohérence garantie par un moniteur transactionnel è Persistance + Atomicité = Fiabilité Une notification est délivrée une et une seule fois è Ordonnancement causal Les notification sont délivrées selon un ordre causal B C A

12 JORAM JORAM est linterface JMS du MOM S CALAGENT Les queues et topics sont des agents Les messages sont encapsulés dans des notifications Délivrance asynchrone Garantie de délivrance Reprise après panne è Apports de linfrastructure à agents Architecture totalement distribuée Scalabilité

13 JMS via le MOM Scalagent Clients JMS QueueSenderQueueSessionQueueConnection queue Client 1 QueueReceiverQueueSession Client 2 QueueConnection Connexion TCP MOM Scalagent Message JMS Connexion TCP Notification Agent Proxy Agent Queue

14 Intégration dans JOnAS è JORAM implémente la partie ASF (Application Server Facilities) de la spéc. JMS Intégration de JORAM en tant que ressource dans un environnement transactionnel distribué tel quun serveur EJB Envoi et réception de messages dans des transactions gérées par le serveur EJB Réception asynchrone via les « Message-driven Beans »

15 Points forts de JORAM è Architecture distribuée Facilité de mise en oeuvre Passage à léchelle è Implémentation complète des « Application Server Facilities » Intégration au serveur EJB JOnAS Emetteur Serveur 2 Serveur 1 Serveur 0 QueueConnectionFactory Queue QueueConnectionFactory Récepteur


Télécharger ppt "JORAM Java Open Reliable Asynchronous Messaging"

Présentations similaires


Annonces Google