JMS et ESB - comment sont-ils liés?
Pour moi JMS et ESB semble être très lié choses et j'essaie de comprendre exactement comment ils sont liés.
J'ai vu une phrase qui JMS peut être utilisé comme transport pour ESB - alors quoi d'autre, sauf le transport doit être présent dans une ESB? Est JMS un simple ESB ou si non, alors ce qu'il manque de la vraie ESB?
- Les cyniques d'entre nous diraient que JMS est une API Java, où "ESB" est un terme marketing qui couvre une multitude de technologies connexes et les méthodes de conception, et des moyens très peu.
- même certains aux yeux brillants les optimistes pourraient d'accord avec vous 😉
Vous devez vous connecter pour publier un commentaire.
JMS propose un ensemble d'Api pour la messagerie: mettre un message dans une file d'attente, quelqu'un d'autre, quelque temps plus tard, peut-être géographiquement éloignés prend le message de la file d'attente et les processus. Nous avons découplé dans le temps et l'emplacement du message fournisseur et le consommateur. Même si le message de consommation arrive à être vers le bas pour un temps, nous pouvons continuer à produire des messages.
JMS propose également un service de publication/abonnement capacité où le réalisateur met le message d'un "sujet" et toutes les parties intéressées peuvent s'abonner à ce sujet, la réception des messages comme et quand ils sont produits, mais pour l'instant, concentrez-vous sur la file d'attente capabilty.
Nous avons découplé certains aspects de la relation entre le fournisseur et le consommateur. Cependant, certains de couplage reste. Tout d'abord, comme les choses se présentent chaque message est traité de la même manière. Supposons que nous voulons mettre en place différents types de traitement pour les différents types de messages:
Évidemment, nous pouvons écrire le code comme ça, mais une alternative serait d'avoir un système de messagerie qui permet d'envoyer des messages différents à des endroits différents, nous avons mis en place trois files:
Et puis tous nous avons besoin est un peu d'intelligence dans le système de file d'attente elle-même pour le transfert puis de message vocal à partir de la Demande de la File d'attente à la Platine de la File d'attente ou à la Norme de la File d'attente.
C'est donc un Contenu Basé sur la capacité de Routage, et c'est quelque chose qu'un ESB fournit. Notez que l'ESB utilise les fondamentaux des files d'attente des fonctionnalités offertes par JMS.
Un deuxième type de couppling est que le consommateur et le producteur doivent s'entendre sur le format de message. Dans les cas simples, c'est très bien. Mais quand vous commencez à avoir beaucoup de producteurs tous de mettre un message à la file d'attente, vous commencez à frapper le versioning des problèmes. De nouveaux formats de message sont mis en place, mais vous ne voulez pas en changer tous les fournisseurs existants.
Et l'ESB ramasse la Version 1 de la File d'attente des messages et les transforme en Version 2 messages et les met sur la Version 2 de la file d'attente.
Message transformation est une autre GDE capacité.
Regarder ESB produits, voir ce qu'ils peuvent faire. Comme je travaille pour IBM, je suis plus familier avec WebSphere ESB
Je dirais ESB est comme une façade, dans un certain nombre de protocals....JMS est l'un d'eux.
JMS n'est pas bien adapté pour l'intégration des services REST, systèmes de Fichiers, S/FTP, e-Mail, de Hesse, de SAVON, etc. qui sont mieux traitées avec un ESB qui prend en charge ces types de manière native. Par exemple, si vous avez un processus qui exporte un fichier CSV de 500 MO à minuit, et que vous voulez un autre système pour récupérer le fichier, analyser CSV et importer dans une base de données, cela peut être réalisé facilement par un ESB - alors qu'une solution juste JMS sera mauvaise. De même, l'intégration des services REST, avec équilibrage de la charge de basculement à plusieurs backend instances qui peut être mieux fait avec un ESB appui HTTP/S en mode natif.
Cette Transformation ne se fait pas automatiquement. Vous devez configurer le mappage ou écrivez service de transformation
Regarder https://access.redhat.com/knowledge/docs/en-US/JBoss_Enterprise_SOA_Platform/4.2/html/SOA_ESB_Message_Transformation_Guide/ch02s03.html
Ce qui concerne,
Raja Nagendra Kumar,
C. T. O
http://www.tejasoft.com
ESB offre une intégration avec beaucoup de protocoles différents en plus de JMS.
La plupart l'utilisation de JMS derrière les coulisses de transfert, stor et déplacer les messages. Une telle solution OpenESB, utilise le format XML des messages.
Il y a ESB open source qui vous pourriez checkout -
JMS mise en œuvre comme ActiveMQ venir avec Camel intégré en eux.
JMS est un protocole de communication avec un sous-jacent de messagerie couche. ESB opère à un niveau supérieur, offrant l'intégration à de multiples technologies et de protocoles, dont l'une serait JMS, de manière uniforme, qui fait de la gestion complexe des flux beaucoup plus simple.
Il y a JMS message courtiers , que vous pouvez configurer facilement avec de l'ESB. https://docs.wso2.com/display/ESB470/JMS+Transport
JMS et de l'ESB à la fois fournir un moyen de communication entre les différentes applications. Mais le contexte de JMS et ESB sont différents. JMS est pour la simple nécessité. JMS est mis en œuvre par le Fournisseur JMS. Il est de Java spécifique.
Des exemples de Fournisseurs JMS sont: Apache Active MQ, IBM MQ, HornetQ etc.
ESB est pour des complexes de besoin. ESB est une composante de l'EAI de fournir un dispositif de communication pour diverses applications. Il est generic & pas spécifique à Java. JMS est l'un des protocoles pris en charge.
Exemples d'ESB fournisseur de: MuleESB, Apache Camel, OpenESB
Cas d'utilisation: Il peut être une surcharge à l'utilisation d'un ESB, si l'ensemble de nos applications de communication sont en Java et utilisant le même format de message. Ici JMS peut être suffisant.