Est l'intégration d'un bus ESB (ServiceMix / Mule) Valeur la courbe d'apprentissage? [fermé]

StackOverflow https://stackoverflow.com/questions/1365357

Question

Je cherche à intégrer un bus ESB dans un produit à base de Web Java / Maven existant. Plus précisément, je regarde ServiceMix et Mule. Le produit se connecte à plusieurs services différents, y compris le courriel, Quartz, webservices RESTful sur HTTP, SMS et la messagerie instantanée. Je n'ai rapidement regardé la documentation et les deux options semblent être assez lourd et assez complexe. Il semble comme un exemple de manuel de savoir quand utiliser un bus ESB, mais je ne veux pas passer beaucoup de temps à apprendre un ou l'autre système.

Comme je l'ai dit, je l'ai déjà une application web par Maven et espérais intègrent l'un des systèmes serait assez simple, même juste pour quelque chose d'aussi simple que d'envoyer un e-mail, mais il semble que l'ajout soit va tirer la moitié le monde en termes de pots et serait difficile à intégrer dans le produit existant.

Est-il la peine d'essayer de tirer dans l'une de ces options? Est-il un moyen facile de les intégrer dans une application existante sans restructuration complètement? Y at-il d'autres, plus légères options de poids? Y a-t-il des aspects que je devrais considérer cela rendrait leur utilisation utile?

Était-ce utile?

La solution

Mule est assez simple à utiliser en termes de brancher des services avec XML et ils ont beaucoup d'exemples vidéo que j'ai trouvé vraiment utile.

ESBs sont censés être l'avenir et comme vous le dites -. Le vôtre ne semble comme un exemple de manuel où l'utiliser

Je vais essayer de répondre à toutes vos questions:

Est-il la peine d'essayer de tirer dans l'une de ces options? Je pense que cela est une question que vous devez vous poser - qu'est-ce que vous essayez d'atteindre? si vous essayez de le rendre plus facile à mettre en œuvre il faudra probablement en même temps via le code pur ou avec tout ce que l'ESB l'installation inclus. Si vous envisagez de le faire comme un exercice d'apprentissage, il peut être utile.

Est-il un moyen facile de les intégrer dans une application existante sans restructuration complètement? Réponse courte non. Vous aurez besoin d'une réingénierie pour intégrer la plupart des bibliothèques / cadres tiers.

Y at-il d'autres, plus légères options de poids? Mule est vraiment très simple. Vous pourriez être en mesure d'utiliser un MQ pour faire le HTTP, SMS et la messagerie instantanée. Peut-être ActiveMQ ou RabbitMQ.

Y at-il des aspects que je devrais considérer cela rendrait leur utilisation utile? Oui, ESBs sont conçus pour les entreprises où les nouveaux services sont ajoutés souvent et la configuration est susceptible de changer. Ayant tout en XML rend ce changement un peu plus facile. Donc, si vous construisez juste un morceau de logiciel unique, il pourrait ne pas être la bonne façon de procéder. Mais si vous ajouterez plus tard et constamment connecter différents services, il peut être le meilleur itinéraire.

Autres conseils

Vous pouvez également jeter un oeil à cadre Apache Camel qui est vraiment puissant pour tous les besoins d'intégration que vous avez mentionné, sans les pénalités d'une ESB épanouie.

Ross Mason, le fondateur du projet Mule a écrit un très bon article sur ce sujet, pour ESB ou ne pas ESB. Je recommande de prendre un coup d'oeil. , Vous pouvez également consulter Mule iBeans qui offre un modèle beaucoup plus simple si vous construisent cela comme une application Web et que vous voulez juste faire une intégration légère et ne sont pas intéressés par la médiation.

conseils que je ne pas perdre votre temps précieux avec MULE. Mon expérience à ce jour est pas bon. Je ne l'utiliser pour tout système critique. Il est loin d'être un produit mature. A part que les services RESTful promettent certainement beaucoup de simplicité et a des cas d'utilisation.

Je dirais qu'il vaut l'investissement si vous avez plus de deux applications ou bases de données qui doivent communiquer entre eux et ils utilisent plus d'un protocole de communication. Ou, si vous vous attendez que cette situation est vrai dans l'avenir. On dirait que vos besoins correspond tout à ce sujet.

Une autre situation qui suggère l'utilisation d'un bus ESB ou au moins un bus de message serait où vous vous attendez ou besoin d'un ou plusieurs des applications d'évoluer indépendamment des autres. Par exemple, un est en cours de développement et les autres ne sont pas. Un ESB peut isoler les systèmes stables de changements dans les systèmes développés activement en supprimant la nécessité d'être toujours tout mettre à jour.

La vraie puissance d'un bus ESB est que les applications peuvent déléguer toutes les décisions sur la façon de communiquer et qui pour communiquer avec l'ESB et de laisser cette composante assumer l'entière responsabilité de ces aspects. Tous les autres composants deviennent isolés les uns des autres et ne doivent pas se soucier les uns des autres ce qui réduit considérablement les problèmes de combinaisons de dépendances.

En ce qui concerne la courbe d'apprentissage que j'ai trouvé Mule ESB pour être assez simple pour ramasser et serait certainement une courbe d'apprentissage beaucoup plus bas que d'essayer d'apprendre toutes les API nécessaires pour parler des multiples services que vous essayez de connecter.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top