我正在考虑将ESB集成到现有的基于Java/Maven Web的产品中.具体来说,我正在寻找ServiceMix和Mule.该产品将连接到多种不同的服务,包括电子邮件,Quartz,基于HTTP的RESTful Web服务,SMS和IM.我只是快速浏览了一下文档,这两个选项似乎相当重要且相当复杂.这似乎是何时使用ESB的教科书示例,但我不想花费大量时间来学习一个或另一个系统.
就像我说的,我已经有了一个由Maven构建的Web应用程序,并希望集成其中一个系统相当简单,即使只是为了发送电子邮件这么简单的事情,但看起来添加任何一个都将拉入世界的一半罐子的条款,很难嵌入现有的产品.
是否值得尝试引入其中一个选项?是否有一种简单的方法可以将它们集成到现有应用程序中而无需完全重组?还有其他更轻的重量选择吗?是否有一些方面我应该考虑使它们的使用值得?
Mule与XML一起插入服务非常简单,他们有大量的视频示例,我发现这些示例非常有用.
ESB应该是未来的,正如你所说的那样 - 你的确看起来像是一个教科书的例子,说明了在哪里使用它.
我会尽力回答你的所有问题:
是否值得尝试引入其中一个选项? 我认为这是一个你需要问自己的问题 - 你想要实现什么?如果你想让它更容易实现,那么通过纯代码或ESB可能会花费同样的时间来包含所有的设置.如果您正在考虑将其作为学习练习,那么这可能是值得的.
是否有一种简单的方法可以将它们集成到现有应用程序中而无需完全重组? 简短的回答没有.您需要进行一些重新设计才能与大多数第三方库/框架集成.
还有其他更轻的重量选择吗? 骡子真的很简单.您可以使用MQ来执行HTTP,SMS和IM.可能是ActiveMQ或RabbitMQ.
是否有一些方面我应该考虑使它们的使用值得? 是的,ESB专为经常添加新服务且配置可能发生变化的企业而设计.在XML中使用它可以使这一变化更容易一些.因此,如果你只是建立一个一次性的软件,它可能不是正确的方法.但是如果您稍后会添加更多并且不断连接不同的服务,那么它可能是最佳途径.
您可能还想看看Apache Camel框架,它非常强大,可以满足您提到的所有集成需求,而不会受到完整ESB的惩罚.