Je suis confus dans ces terminologies de service Web SOA, ESB.
Veuillez expliquer à qui que ce soit.
SOA est une approche architecturale dans laquelle vous exposez et encapsulez des "services" de manière grossière. Il ne prescrit aucun mécanisme technique ni mise en œuvre. SOA est plus lié à l'interaction frontière/intégration entre les systèmes. Donc, si le système A expose des services en utilisant un SOA je peux interagir avec ces services du système B.
Un ESB, d'autre part, est une implémentation technique qui aide à fournir une architecture SOA.
SOA
est service oriented architecture
. Dans SOA services are decoupled
et peuvent interagir indépendamment du type de service. Cela signifie qu'un service particulier peut être spécifique à une plate-forme ou à un protocole, mais SOA permet à ces services d'interagir et d'échanger des données. Ces données sont essentiellement échangées via ESB
(Enterprise service bus
) qui constitue l'épine dorsale de toute architecture SOA.
Permettez-moi d'aller de l'avant et de donner un exemple précis pour mieux comprendre cela. L'ESB pourrait être implémenté en utilisant JMS servers
et en utilisant XML/XSD
comme moyen de transfert de données entre différents services. Ainsi, divers services s'enregistreront ou se connecteront à ces serveurs JMS et échangeront des données au format XML. Généralement SOA est livrée avec des ensembles appelés adapters
qui aident à transformer les messages vers et depuis le format compris par le service et XML.
Par exemple, considérons le système d'échange d'actions. Les messages de la bourse viennent dans le protocole FIX
. Vous avez peut-être créé une application qui attend JSON
. Pour faire fonctionner ces deux systèmes, vous utiliserez SOA - L'adaptateur FIX convertira le message FIX en XML, puis ce xml sera transféré vers l'adaptateur JSON sur ESB qui sera ensuite converti en JSON comme requis par votre point final du système.
Enfin, en espérant que l'image suivante le rend très clair.
SOA: - Fondamentalement en SOA, d'un côté nous avons le producteur/fournisseur et de l'autre côté nous avons le consommateur, séparé par un pont (qui est un réseau) où les deux parties communiquent. Donc, l'accent est mis sur la façon dont deux parties interagissent (produisent/consomment) les services
ESB: - ESB est un modèle architectural qui permet à plusieurs applications/composants/systèmes de communiquer/interagir entre eux en suivant les principes SOA, bien qu'ici il n'y ait pas de producteur direct/HSo ici, nous nous concentrons sur la façon dont plusieurs applications hétérogènes vont interagir entre elles et atteindre l'objectif commercial.
En outre, ESB fournit une API qui peut être utilisée pour développer des services et permet aux services d'interagir de manière fiable. Techniquement, ESB est un courtier de messagerie qui effectue la conversion de protocole, la transformation du format des messages, le routage, l'acceptation et la remise des messages de divers services et applications liés à ESB.
Les définitions et les différences sont expliquées dans les questions suivantes: