我应该考虑哪些方面才值得使用它们? 是的,ESB 是为经常添加新服务且配置可能发生变化的企业而设计的。将所有内容都放在 XML 中使此更改变得更容易一些。因此,如果您只是构建一款一次性软件,那么这可能不是正确的选择。但如果您稍后要添加更多并不断连接不同的服务,这可能是最好的路线。
Mule is quite simple to use in terms of plugging services together with XML and they have plenty of video examples which I found really helpful.
ESBs are supposed to be future and as you say - yours does seem like a textbook example of where to use it.
I'll try to answer all your questions:
Is it worth trying to pull in one of these options? I think this is a question you need to ask yourself - what are you trying to achieve? if you're trying to make it easier to implement it will probably take the same time via pure code or ESB what with all the setup included. If you're thinking of doing it as a learning exercise it may be worthwhile.
Is there an easy way of integrating them into an existing app without completely restructuring it? Short answer no. You will require some re-engineering to integrate with most third-party libraries/frameworks.
Are there other, lighter weight options? Mule is quite simple really. You might be able to use an MQ to do the HTTP, SMS and IM. Possibly ActiveMQ or RabbitMQ.
Are there some aspects that I should consider that would make their use worthwhile? Yes, ESBs are designed for enterprises where new services are added often and the configuration is likely to change. Having it all in XML makes this change a bit easier. So if you are just building a one-off piece of software it might not be the right way to go. But if you will be adding more later and constantly connecting different services it may be the best route.
You may also want to take a look at Apache Camel framework which is really powerful for all the integration needs you mentioned without the penalties of a full blown ESB.
Ross Mason,Mule 项目的创始人就这个主题写了一篇非常好的文章,转向 ESB 或不转向 ESB。我建议看一下。另外,您可能需要查看 Mule iBeans,如果您愿意的话,它提供了更简单的模型正在将其构建为网络应用程序,只想进行一些轻量级集成,并且对中介不感兴趣。
Ross Mason, the founder of the Mule project wrote a really good article on this topic, To ESB or Not to ESB. I recommended taking a look at it. Also, you may want to check out Mule iBeans which offers a much simpler model if you are building this as a web app and just want to do some lightweight integration and are not interested in mediation.
I advice not to waste your valuable time with MULE. My experience so far isn't good. I wouldn't use it for any critical system. It's far away from being a mature product. Apart from that RESTful services definitely promise a lot of simplicity and has real use cases.
就学习曲线而言,我发现 Mule ESB 相当容易上手,并且与尝试学习所有所需的 API 来与您尝试连接的多个服务进行通信相比,学习曲线肯定要低得多。
I would say that it is worth the investment if you have more than two applications or databases that need to talk to each other AND they are using more than one communication protocol. Or, if you expect this situation to be true in the future. Sounds like your requirements certainly fits this.
Another situation that would suggest the use of an ESB or at least a message bus would be where you expect or need one or more of the applications to evolve independently of the others. For example one is under active development and the others are not. An ESB can isolate the stable systems from changes in the actively developed systems removing the need to always be updating everything.
The true power of an ESB is that applications can delegate all decisions about how to communicate and whom to communicate with to the ESB and let that component take full responsibility for those aspects. All other components become isolated from each other and need not worry about each other greatly reducing problems of combinations of dependencies.
In terms of the learning curve I have found Mule ESB to be fairly straight forward to pick up and would certainly be a much lower learning curve that trying to learn all the required APIs to talk the the multiple services that you are trying to connect to.
发布评论
评论(5)
Mule 在将服务与 XML 一起插入方面非常简单,并且他们有大量的视频示例,我发现这些示例非常有帮助。
ESB 应该是未来的,正如你所说 - 你的看起来确实像是教科书上关于如何使用它的示例。
我将尽力回答您的所有问题:
是否值得尝试采用这些选项之一?
我认为这是一个你需要问自己的问题——你想要实现什么目标?如果您试图使其更容易实现,那么通过纯代码或 ESB 可能会花费相同的时间(包括所有设置)。如果您考虑将其作为学习练习,那么它可能是值得的。
是否有一种简单的方法可以将它们集成到现有应用程序中,而无需完全重组它?
简短的回答:不。您将需要一些重新设计才能与大多数第三方库/框架集成。
还有其他更轻的选择吗?
Mule 确实很简单。您也许能够使用 MQ 来执行 HTTP、SMS 和 IM。可能是 ActiveMQ 或 RabbitMQ。
我应该考虑哪些方面才值得使用它们?
是的,ESB 是为经常添加新服务且配置可能发生变化的企业而设计的。将所有内容都放在 XML 中使此更改变得更容易一些。因此,如果您只是构建一款一次性软件,那么这可能不是正确的选择。但如果您稍后要添加更多并不断连接不同的服务,这可能是最好的路线。
Mule is quite simple to use in terms of plugging services together with XML and they have plenty of video examples which I found really helpful.
ESBs are supposed to be future and as you say - yours does seem like a textbook example of where to use it.
I'll try to answer all your questions:
Is it worth trying to pull in one of these options?
I think this is a question you need to ask yourself - what are you trying to achieve? if you're trying to make it easier to implement it will probably take the same time via pure code or ESB what with all the setup included. If you're thinking of doing it as a learning exercise it may be worthwhile.
Is there an easy way of integrating them into an existing app without completely restructuring it?
Short answer no. You will require some re-engineering to integrate with most third-party libraries/frameworks.
Are there other, lighter weight options?
Mule is quite simple really. You might be able to use an MQ to do the HTTP, SMS and IM. Possibly ActiveMQ or RabbitMQ.
Are there some aspects that I should consider that would make their use worthwhile?
Yes, ESBs are designed for enterprises where new services are added often and the configuration is likely to change. Having it all in XML makes this change a bit easier. So if you are just building a one-off piece of software it might not be the right way to go. But if you will be adding more later and constantly connecting different services it may be the best route.
您可能还想看看 Apache Camel 框架,它对于您提到的所有集成需求都非常强大,而且没有成熟的 ESB 的惩罚。
You may also want to take a look at Apache Camel framework which is really powerful for all the integration needs you mentioned without the penalties of a full blown ESB.
Ross Mason,Mule 项目的创始人就这个主题写了一篇非常好的文章,转向 ESB 或不转向 ESB。我建议看一下。另外,您可能需要查看 Mule iBeans,如果您愿意的话,它提供了更简单的模型正在将其构建为网络应用程序,只想进行一些轻量级集成,并且对中介不感兴趣。
Ross Mason, the founder of the Mule project wrote a really good article on this topic, To ESB or Not to ESB. I recommended taking a look at it. Also, you may want to check out Mule iBeans which offers a much simpler model if you are building this as a web app and just want to do some lightweight integration and are not interested in mediation.
我建议不要在 MULE 上浪费宝贵的时间。到目前为止我的经历并不好。
我不会将它用于任何关键系统。距离成熟的产品还很远。
除此之外,RESTful 服务肯定会带来很多简单性,并且有实际的用例。
I advice not to waste your valuable time with MULE. My experience so far isn't good.
I wouldn't use it for any critical system. It's far away from being a mature product.
Apart from that RESTful services definitely promise a lot of simplicity and has real use cases.
我想说,如果您有两个以上的应用程序或数据库需要相互通信并且它们使用多个通信协议,那么这种投资是值得的。或者,如果您预计这种情况将来会发生。听起来你的要求肯定符合这个。
另一种建议使用 ESB 或至少使用消息总线的情况是您期望或需要一个或多个应用程序独立于其他应用程序而发展。例如,其中一个正在积极开发中,而其他则没有。 ESB 可以将稳定的系统与活跃开发的系统中的更改隔离开来,从而无需始终更新所有内容。
ESB 的真正强大之处在于,应用程序可以将有关如何通信以及与谁通信的所有决策委托给 ESB,并让该组件对这些方面承担全部责任。所有其他组件彼此隔离,无需担心彼此,大大减少了依赖组合的问题。
就学习曲线而言,我发现 Mule ESB 相当容易上手,并且与尝试学习所有所需的 API 来与您尝试连接的多个服务进行通信相比,学习曲线肯定要低得多。
I would say that it is worth the investment if you have more than two applications or databases that need to talk to each other AND they are using more than one communication protocol. Or, if you expect this situation to be true in the future. Sounds like your requirements certainly fits this.
Another situation that would suggest the use of an ESB or at least a message bus would be where you expect or need one or more of the applications to evolve independently of the others. For example one is under active development and the others are not. An ESB can isolate the stable systems from changes in the actively developed systems removing the need to always be updating everything.
The true power of an ESB is that applications can delegate all decisions about how to communicate and whom to communicate with to the ESB and let that component take full responsibility for those aspects. All other components become isolated from each other and need not worry about each other greatly reducing problems of combinations of dependencies.
In terms of the learning curve I have found Mule ESB to be fairly straight forward to pick up and would certainly be a much lower learning curve that trying to learn all the required APIs to talk the the multiple services that you are trying to connect to.