|
Cadre Fonctionnel |
Messagerie |
|
Cadre Technique |
JMS (Java Message Service) |
|
Identifiant |
SYS_JMS_01 |
|
Référent technique |
|
|
Version |
1.0 |
|
Auteur |
Alexandre Brillant |
|
Date |
04/01 |
|
Cibles |
|
JMS(Java Message Service) est une API fournie par Sun offrant des services de type MOM (Message-oriented Middleware) . Cette technologie minimise les relations entre les composants du système et transforme le modèle client/serveur en un modèle point-à-point. Dans une architecture « traditionnelle », le client émet un ordre vers un serveur et attend la réponse avant de continuer. Dans une architecture MOM, les clients communiquent entre eux grâce à un vaste repository reposant sur JNDI (Java Name Directory Interface). La communication est asynchrone et tel le protocole SMTP utilisé en messagerie, n’impose pas la présence d’un receveur lors d’une émission, les composants sont anonymes. Cependant, les messages représentent l’application, ils doivent respecter un format cohérent.
Avantages :
Grande flexibilité et faible impact sur le réseau,
Tolérance aux pannes,
Garanti la pérennité et l’accroissement d’une infrastructure,
Standard, peut s’interconnecter avec des architectures hétérogènes (systèmes et applicatifs : MQSeries/IBM…),
S’intègre dans des serveurs d’applications EJB,
Transaction JTA (Java Transaction API).
Deux types de systèmes de messagerie :
Publieur/Lecteurs : Un « publieur » émet un message avec une identification du sujet (Topic). Des « lecteurs » se connectent à des centres d’intérêts grâce à des sujets. Des événements les avertissent lors de la réception d’un message les concernant.
Point-à-point : Le composant transmet un message vers la file des messages d’un autre composant.
Un message est structuré en trois parties :
Un en-tête : Utilisé principalement en Producteur/Consommateur pour connaître le sujet
Un ensemble de propriétés : Utilisable par le fournisseur de services de messagerie
Un corps : Le message d’un composant, différents types sont supportés comme les chaînes, les objets « serializés » permettant par exemple de transmettre des documents XML.