就像瑞士军刀有很多刀和工具,企业服务总线(ESB)对于很多人就是很多东西。为什么呢?显而易见。在ESB兵工厂中有一大堆中间件工具。这些工具支持SOA或者EAI,ESB的责任就是带来性能。
ESB似乎需要有人来告诉要站出来,展示他们真正的身份。 Ken Johnson是红帽(JBoss企业中间件)的中间件产品经理,他认为很多人把ESB简单地看做是软件的一块,尽管更好的观点是将其看做“构架一项解决方案的方法”。此外,虽然以“服务”的名义存在,ESB并不能一直按照服务来使用。ESB可以假定为大量功能。
例如,FuseSource的CTO,同时也是Apache ServiceMix、 ActiveMQ……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
就像瑞士军刀有很多刀和工具,企业服务总线(ESB)对于很多人就是很多东西。为什么呢?显而易见。在ESB兵工厂中有一大堆中间件工具。这些工具支持SOA或者EAI,ESB的责任就是带来性能。ESB似乎需要有人来告诉要站出来,展示他们真正的身份。
Ken Johnson是红帽(JBoss企业中间件)的中间件产品经理,他认为很多人把ESB简单地看做是软件的一块,尽管更好的观点是将其看做“构架一项解决方案的方法”。此外,虽然以“服务”的名义存在,ESB并不能一直按照服务来使用。ESB可以假定为大量功能。例如,FuseSource的CTO,同时也是Apache ServiceMix、 ActiveMQ和Camel联合创始人, Rob Davies说过ESB和EAI之间的区别主要在于其用例。“表象之下,ESB可以用消息层互相通信,”他说道。
ESB部署模式
Neeraj Satija是Two Degrees Mobile的软件开发经理,也是WSO2(ESB领域另一个厂商)的客户,他将ESB使用模式描述为和IT合二为一。ESB就是一种总线,“存在于前端渠道(像Portals、IVR和SMS)和后端系统(像CRM系统、网络元素和收费和充值系统)中间。”
Satija表示他目前的企业,以前也是用来自IBM、甲骨文和Mule这样的厂商的ESB。现在WSO2成为他们构建SOA的平台。“我们开始使用WSO2中间件技术组合中的一部分。我们的IT架构的主要部分是严重依赖SOA范式,而且,由于这个架构,我相信我们正在做一些特别的、创新工作,”他说道。此外,他补充道他的公司没有使用EAI,而是使用SOAP。
“我们的平台是典型的SOA平台,服务消费者(渠道)和服务提供者(后端系统)通过基于XML的协议相互通信,”他解释道。实际上,在Two Degrees Mobile公司,不同的事务使用不同的消息模式来实现,像发布与订阅或者事件监听,根绝业务需求来确定模式选择,Satija解释道。
Satija表示他发现很多模式和实践在部署ESB时很有用,包括:
- 服务抽象(用ESB代理解耦实际终端)
- 标准化服务契约
- 数据格式转换
- 协议转换
- 用工作流引擎进行业务逻辑编排
- 数据格式转换和数据模型转换
ESB高吞吐量实现
尽管也有人担心ESB的吞吐量,Satija说Two Degrees Mobile在一些业务事务中使用WSO2中像ESB和工作流引擎这样的组件,在高峰时段,一些组件可以每秒钟处理50个事务。他给出三个“最佳实践”来实现良好的吞吐量:
- 有效负荷大小和内容优化
- 基于业务需求将ESB和工作流管理器联合
- 在包含业务逻辑的大型应用上优先开发轻量型原子中间件组件
Bloor Research的首席分析师兼联合创始人Robin Bloor博士也谈了一些性能挑战,他说说道吞吐量/性能,ESB更倾向于扩展到某一确定层级,但是并不是所有的都能很好地扩展。
“这取决于他们的分布式流程做的好不好,”他补充道。大多是SOA实现包含了ESB,因为过量消息负载以及灾难恢复需求,他解释道。此外,没有ESB的话,很难实现应用或者服务的高度重用。
点对点集成的时候,在使用EAI的地方,来使用ESB并不充分。“可以在没有ESB的情况下,用硬钢丝来进行点到点的EAI,但是当复杂到要授权枢纽架构时,ESB就要用在HUB上了,” Bloor如是说道。
“ESB就是个管道,而且庆幸是个高性能管道,所以延迟不大可能成为问题,除非ESB使用不当,”他补充道。
同时,另外一个WSO2客户就目前ESB做扮演的角色提供了些许不同的观点。“我们发现基于总线EAI架构和实际的ESB/SOA解决方案之间存在细微的不同,” Simon Bilton说道,他供职于英国一家软件公司。
他的同事Vladimir Klevko和Alex Karimov也指出,原来企业表面上看起来是用逻辑方法来连接截然不同的应用程序或服务,通过实现集中运输总线机制进行,这个机制允许这些应用或者服务不用直接的点对点连接器就能交付或者接收数据。
然而,通常,这些集中总线大部分是专有的,必须为每一个应用或者服务编写集成引擎。“尽管这样可能会针对具体企业具体问题交付解决方案,却很难连接追加的服务,比如外部客户服务,因为没有编写另一个预定的集成块,” Bilton介绍。所以,他解释道,“我们认为这样的实现不符合SOA的关键性能,也就是服务解耦。”
另一方面,ESB使用开发标准,而且集成点通过“契约(像WSDL)”定义。尽管每一个服务或者应用仍需要开发合适的适配器,这个适配器必须符合契约中的定义,还要能够直接插入任何基于类似标准的ESB。此外,这样也能更轻松地集成追加服务,不论是内部的还是外部的,而且没有重开发成本。
“在我们公司中的很多例子中,企业是为EAI架构,来部署ESB的,将其看做是传输机制。因此,消除了专有总线,在终点之间代理服务,” Bilton说到。然而,Bilton和他的同时表示这就像个“小客栈”,因此服务不需要全部重用,不需要解耦,所以也就不需要交付基于核心SOA原则的实际SOA解决方案了。
Bilton和他的同时也为ESB消息提供了一些建议:消息结构尽可能简单,工作负载减轻,因为这是实现高吞吐量最有效的途径。
复杂事件处理
“在SOA中,消息并不期望收到一个响应,但是可能期望收到反作用,可能是作为原始小时触发事件的结果,” Bilton提醒道。每一个交换的消息异步执行而且隔离开,因此不构成会话。
SOA也不需要适应基于事务的流程,他宣称,但是却能很好地适应基于事件的活动。复杂事件处理器来控制这些活动更为普遍,而且允许正常的异步、无状态消息转化,更符合事务处理特点,他补充道。
相关推荐
-
事件驱动框架和SOA在空军的应用
空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。
-
揭秘New Relic APM技术细节
New Relic应性能管理(APM)套件主要用于Web软件开发。它允许用户在面向服务的架构(SOA)上跟踪关键事务性能,并且支持代码级别的可见性来评估特定代码段和SQL语句对性能的影响
-
仅凭SOA和云无法解决业务数据管理风险问题
SOA和云可以是某些恼人问题高效的解决方案;这一点我们已经知道了。但是也要记住它们并不是所有事情的直接答案,特别是当你的问题是业务数据管理风险,而不是技术问题时。
-
架构安全模型开发方式探索
维护一个强大的安全模型,以及相关合规和管控的需求越来越重要,特别是在如今黑客和入侵几乎每天都会发生的情况下。