EDA拓展SOA应用(二)

日期: 2007-12-22 作者:Jack van Hoof 来源:TechTarget中国

  精心设计的冗余

  松耦合意味着独立性。松耦合的组件之间不会互相依赖,即使在存储的数据之间也是如此。每个松耦合的环境都维护着自己的数据和服务的备份。所以,在松耦合环境中,冗余一定不能被认为是一项低劣的设计,相反它是一个优秀的设计。通过在松耦合的边界禁止冗余将会使耦合更加紧密,而在松耦合的边界上维持冗余将会使松耦合的实现更加方便。由于EDA的特性,它非常适合在一个冗余的环境中维持松耦合时,来支持自动的数据同步机制。

  透明

  图1展示了SOA和EDA之间的关系。图片上端的圆表示了松耦合的关键点——事件,在松耦合的系统间,他们之间的联系被切断。这样可以在不改变系统的情况下,实现组件的连接或者断开。所有的数据交互也都发生在事件之间,而不会在更低的层次上。

  在重用的领域内,将会需要细粒度的EDA,EDA的粒度越细,IT系统的伸缩性越好,但是重用的领域也会变得更小。

  如果在实现松耦合的关键点上利用web service技术,同时结合一个底层的架构(ESB),异构系统的连接有可能会更加容易。同时事件后面连接的也不仅仅是SOA系统,还有SOAP封装的遗留系统,COTS,ERP和外部系统的网管。图2展示了EDA的这种形象。

  组件之间再也不是直接的连接了,它们之间通过事件进行连接。

  EDA的实施

  在web service技术上实施EDA,一个SOAP消息队列是需要的,然而这同建立在SOA应用上的web service技术是不同的。通过现有的网络基础框架(如HTTP层),SOA可以通过web service独立地实施。而这就是前文所述的SOA虚假承诺的根源,同时也是SOA在当前能够压倒EDA的原因。底层的ESB框架提供了利用web service来排列消息的方式,正是因为如此,ESB成为实施EDA和SOA的最合适的方法。

  不断发展的web service标准(如WS-Eventing、WS-Notification等)与SOAP封装的底层组件相互连接,将会在未来实现ESB的大部分功能,而当前我们要做到这些只能从ESB中获取。

  SOA和EDA的应用必须在BPM的环境中来看待。前沿的BPM工具都是建立在BPEL上的。当前的BPEL应用都集中在命令控制模式、服务的编排等SOA应用上。在一定程度上,BPEL除了用来进行服务编排,还能够支持工作流,而它也符合了EDA的发展方向。

  对于SOA来说,这些都不是问题。对EDA的良好支持不应该只停留在口头上,要在实际中体现出来,设计者需要通过一个指点式(point-and-click)机制,把事件与发布者和订阅者连接起来。事件的运行应当通过一个控制器来保持独立性,而不是建立在先前提到的web service标准上。很明显,解决方案正在朝着这个方向演进。但是在当前,利用SOAP可能是最合适的。通过一个大家都知晓、理解并能够实施的web service技术,系统将会在技术、经济和组织的不断发展过程中保持强壮。

  图1 SOA和EDA的关系

  图2 事件连接各个系统

 

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐