90 votes

Qu'est-ce qu'un ESB et à quoi sert-il?

Dans un emploi précédent, il y avait beaucoup de discussions à propos de "Enterprise Service Bus" (ESB). J'ai lu des parties d'un modèle conceptuel de livre sur le sujet, mais jamais vraiment compris comment vous le feriez appliquer l'intégrer dans des termes concrets. Je suis familier avec SOA/file/services de répertoire/etc. mais je ne comprends pas ce qu'est exactement un ESB est.

Est-il un béton chose (service/serveur/courtier/etc.) que vous venez de modifier toutes vos applications à de différentes façons, ou est-il plus juste d'une manière conceptuelle à la conception de systèmes?

Toutes les explications ou des liens vers de bons exemples seraient grandement appréciés. Merci.

55voto

Adam Davis Points 47683

C'est un niveau assez élevé concept d'abstraction. Le concept central est celui de l'ESB fournit le middleware et les interfaces qui permettent aux entreprises de connecter leurs applications sans avoir à écrire de code.

Cela pourrait inclure la médiation pour réconcilier les protocoles incompatibles, de données, et de l'interaction.

L'idée d'une centrale d'autobus, sur qui tout passe, donne l'occasion de couches supplémentaires de l'abstraction. En utilisant les normes de l'industrie pour "bouchon" d'autres applications, les clients, et dans ce bus fait en sorte que la connexion de nouveaux services, sources de données, les clients avec des besoins disparates est relativement facile.

Implémentations réelles

Aussi loin que implémentations réelles, c'est le domaine de la très grande entreprise de soutien aux entreprises. Alors qu'il est très buzzwordy, l'objectif est un idéal que sur certains petit niveau peut être compris par comparaison avec l'internet:

La similitude de l'Internet

Un gros bus de communication très différents usages et de données, mais toutes les normaliser les protocoles.

On peut, en effet, écrire un HTTP, FTP connecteur qui permettrait aux navigateurs pour accéder à des sites FTP, sans invoquer un client FTP (généralement intégré dans le navigateur).

Les Mashups

Les Mashups de démontrer une intéressante mise en œuvre - prenez le bus de données d'itinéraire à partir de San Francisco, l'autorité, la carte de google, et un bar à sushis emplacements de yahoo avec des notes et exécuter une requête simple qui vous donne le plus proche de bar à sushis, de pondération, de sorte que vous seriez prêt à voyager un peu plus loin pour une meilleure bar.

Tous complètement différents services, incompatibles par eux-mêmes, mais à l'aide de connecteurs standard (yahoo pipes, par exemple), ils peuvent être réunis dans un groupe cohérent et utile entier.

46voto

Andrew Ferrier Points 1623

Disclaimer: je travaille pour IBM et de consulter sur WebSphere ESB, un IBM produit conçu pour construire l'ESBs. Ce qui suit sont mes opinions et ne reflètent pas nécessairement d'IBM position.

Un ESB est des choses différentes pour différentes personnes, malheureusement.

Pour moi, un ESB est une toute autre technologie que vous pouvez insérer dans une architecture SOA (Service-Oriented Architecture), vous permettant de connecter des systèmes disparates ensemble. Souvent, il exerce les fonctions de protocole de de transformation, le message de modification, de routage, de l'exploitation forestière, agissant comme une passerelle de sécurité, et ainsi de suite. Par exemple, vous pourriez utiliser un ESB pour exposer un service auparavant uniquement disponible en tant que Service Web comme un JMS à base de services.

À cet égard, GDE implémentations (ou pour être plus précis, le logiciel vendu pour construire l'ESBs - tel que que je consulte) sont souvent technologiquement similaire à ce qui a été utilisé pour être connu comme la messagerie ou la mise en attente du courtier, bien que le but est un peu différent, parce que (comme les acronymes implique), il est orienté autour des services plutôt que de déplacer les messages d'un endroit à un autre. L'importance de la distinction sur le plan technologique est une question d'opinion.

38voto

MrTelly Points 10828

Mon expérience commerciale ESB, c'est un exagérées et technologie coûteuse qui crée autant de problèmes qu'elle n'en résout. L'ESB fera le lien entre les nouveaux systèmes et de l'héritage, les messages vont survoler le bus et tout sera en mesure de parler à tout le reste de manière transparente. Jeter dans une certaine résilience, l'orchestration et vous avez un très puissant morceau de l'entreprise de logiciels d'application.

Le problème vient quand vous essayez de les utiliser pour de vrai, les frais généraux de l'écriture pour le bus, la création du message et de structures, peut dépasser les avantages. Comme un coût élevé de l'élément, l'ESB est vu comme la panacée pour tous les problèmes d'ordre technique qui n'est pas le cas, trop de temps est passé sur le bus et non sur les applications/données connectée. C'est souvent le cas que de multiples normes concurrentes vont se battre pour la suprématie dans la même organisation, conduisant à la classique tech dominé silos que ces systèmes devraient en fait être de fixation.

À mon humble avis il est de loin préférable d'utiliser un petit nombre d'interfaces spécifiques, généralement à l'aide de web services entre ceux du système qui en ont besoin.

4voto

cpatrick Points 1067

Eh bien, cela dépend de qui vous demandez... de Nombreux dirais que c'est un morceau de "Middleware" qui relie les différents éléments de la "logique d'entreprise" ensemble pour prendre le codage de messages entre ces modules. Je pense que c'est une définition assez générale, mais je suis sûr que vous avez déjà obtenu via Wikipedia et autres joyeusetés.

Ceux qui auraient la grande ESB sauver le monde de le voir comme il est plus communément présenté, un hub pour tout. La plupart des ESB implémentations effort pour encapsuler toutes les tâches répétitives que nous voyons dans les logiciels d'entreprise. Cela signifie que la plupart des bus de services d'entreprise de prendre soin de transfert de données, de la sécurité, de l'exploitation forestière, la traduction de protocole, systèmes d'événement, l'api exposition via des services web, etc.

Je pense que c'est aussi clair que je peux l'être... Espère que ça aide.

3voto

Kai Wähner Points 936

Jetez un oeil à ma présentation "L' embarras du choix - Comment choisir le bon ESB ".

J'explique quand utiliser un ESB, Integration Suite ou tout simplement un framework d'intégration (tel qu'Apache Camel). Je discute également des différences entre les ESB propriétaires et open source.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X