2010-11-04 5 views
0

1 question rapide, récemment je suis tombé sur un nouveau concept en Java appelé JMS. Je voudrais savoir où cela s'applique exactement et j'ai un doute que JMS est une abstraction ou une implémentation. Si oui, comment pourrais-je utiliser cela? Quelqu'un peut-il m'aider à comprendre cela? Merci d'avance. :)Java JMS clarification nécessaire

Répondre

0

JMS dans spécifique ou la messagerie en général est le moyen de découpler les systèmes. Disons que j'ai un service A qui gère la création de nouveaux comptes et un service B qui doit être notifié lorsque de nouveaux comptes sont créés.

Une façon de connecter ces systèmes est d'utiliser JMS; Lorsque le service A crée un compte, il place un message approprié sur le bus JMS. Le service B écoute sur le bus et peut prendre des mesures lorsqu'il voit le message. Si un nouveau service "C" doit également prendre des mesures, il peut également simplement écouter sur le bus pour ce message. Le service "A" n'a pas besoin de connaître les services B ou C.

Tout ce qui doit être accepté par toutes les parties est le format du message JMS.

Il s'agit d'une forme de couplage plus lâche que, par exemple, le service A ayant à contacter explicitement les services B & C d'une certaine manière.

+0

Parfait! Merci pour vos contributions. Pouvez-vous me dire que JMS est une abstraction ou une implémentation que je peux utiliser tel quel? – user496789

+0

ActiveMQ fournit une implémentation JMS (gratuite): http://activemq.apache.org/ –

+0

JMS n'est qu'une spécification d'API; pour l'utiliser dans une application, vous avez besoin d'une implémentation concrète comme Tibco ou ActiveMQ –

0

En résumé, l'API JMS est l'abstraction et les fournisseurs [par ex. Sun, Apache, RedHat] est livré avec leur implémentation. Si vous avez besoin d'en savoir plus ou pour toute question, n'hésitez pas à demander.

+0

Eh bien, pour clarifier la réponse d'Adam, JMS Topic Architecture peut être comparé à une architecture de bus de service mais les files d'attente JMS sont FIFO Pipes, où la livraison est réalisée en spécifiant chaque paire de Message Producer et Message Consumer. –