JORAM Java Open Reliable Asynchronous Messaging http://www.scalagent.com Introduction JORAM implémente la norme JMS via la plateforme SCALAGENT JMS normalise l’accès des programmes Java aux middlewares à messages (Message Oriented Middleware) Les MOM permettent l’intégration d’applications hétérogènes et indépendantes 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 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 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 d’attributs et de propriétés Priorités, garantie de délivrance L’interface Java Message Service (JMS) API Java d’accès uniforme aux systèmes de messagerie Client Client Client JMS Provider X JMS Client Client JVM MQ X Provider X JVM MQ X MQ X MQ X La plate-forme SCALAGENT Bus logiciel à base d’agents communicants Agents = objets réactifs Persistants Légers : infrastructure d’exécution partagée au sein d’un serveur d’agents 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 Agent SendTo Agent React Channel L’architecture distribuée SCALAGENT Infrastructure basée sur un bus à messages Agent Agent SendTo Channel Engine mq Agent Agent React Channel Engine mq Server B Server A Acheminement des notifications Exécution de la réaction du destinataire Distribution: forte interconnexion des bus locaux 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 A C Les notification sont délivrées selon un ordre causal B JORAM JORAM est l’interface JMS du MOM SCALAGENT 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 l’infrastructure à agents Architecture totalement distribuée Scalabilité JMS via le MOM Scalagent MOM Scalagent QueueSender QueueSession QueueConnection Connexion TCP Agent Proxy Agent Queue queue QueueConnection Client 2 Clients JMS Client 1 Message JMS QueueSession QueueReceiver Message JMS Agent Proxy Connexion TCP 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 qu’un 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 » Points forts de JORAM Récepteur Architecture distribuée Facilité de mise en oeuvre Passage à l’échelle Serveur 1 Queue Serveur 0 QueueConnectionFactory QueueConnectionFactory Emetteur Serveur 2 Implémentation complète des « Application Server Facilities » Intégration au serveur EJB JOnAS