【TechTarget中国原创】现今人人都在谈论面向服务架构(SOA),有些供应商和分析人士开始提倡另外一种方法事件驱动架构(EDA)。有些人甚至认为SOA和EDA二者互为竞争,是两个互补的概念,企业必须从两者之间做出选择,这就造成了IT架构委员会在决策时产生了许多恐惧、不确定和怀疑的情绪。如果你也本身也有FUD这样的情绪,不必过于紧张,ZapThink认为从实践的角度出发,EDA并不是一个单独的结构方法,但是EDA却是公司妥善实施SOA的核心,是一个SOA的附属品。
什么是事件驱动架构?
EDA的支持者认为,异步信息在独立的软件部件之间进行传递时,这些信息并不知道其它信息的存在——换句话说,是去耦、独立的目标。事件资源如同总线一样在一些中间件集成机制中传送信息,中间件将信息传给那些预定过信息的人。事件本身封装了一个活动,即对于一个特定操作的完全描述。
另一方面,SOA是一种软件在松耦合状态下的结构方法,是位置相对独立的服务。当SOA不是网络服务的必需品时,基于网络服务上的SOA就成了ZapThink关注的方法,同时ZapThink认为SOA涵盖了EDA的核心理念。特别是,ZapThink认为SOA应该是异步的,因为异步对于服务生产商和用户之间的松耦合非常重要,同时异步也是业务流程基本特征的核心。
要想理解为什么EDA是SOA的附属品,你需要更多了解潜在标准的细节。首先从理解SOAP开始。SOAP支持四个交互操作模式:请求——响应模式(客户到服务器然后返回),通知——响应(服务器到客户然后返回),单方向从客户到服务器或者从服务器到客户。在这种模式下,无论是在同步或者异步状态下,SOAP本身就可以支持远程过程调用和文档形式的互操作。作为EDA核心的事件通告从开始就成为了SOAP的一部分。
SOAP本身无法提供事件驱动发布/预定环境所有需求,事实上,许多供应商团体和标准机构正在运用许多方法来完成这些需求:一部分人在致力研究Web Services Notification (WS-Notification), Web Services Base Notification (WS-BaseNotification), Web Services Brokered Notification (WS-BrokeredNotification) 以及 Web Services Topics (WS-Topics),而另一些人正在研究Web Services Metadata Exchange (WS-MetadataExchange), 和Web Services Business Activity Framework (WS-BusinessActivity).很明显我们在把长长的规范项目单添加到单一的现代化的标准当中还有许多工作要做。但是一旦尘埃落定,基于Web服务的SOA就能提供一个完全而又坚固的事件驱动机制。
更重要的是,ZapThink正在研究将其应用逻辑和功能粗粒度化。他们看起来“更具商业魅力”而不是“更像API”。研究的最高水平就是让服务用户无法看到公司如何操作(其流程和服务)。调用这些服务就成了传送正确信息启动流程的问题,这样就会为下面的服务处理生成事件。
所有的EDS都是以服务为导向的么?
如果你之前一直在仔细阅读这篇文章,你就会注意到EDA和SOA之间的微妙差异:SOA是松耦合的,EDA是去耦合的。换句话说,除了服务合同的内容之外(例如服务的WSDL文件),Web服务过程和用户不需要了解其它工作程序,但是在EDA中,不需要这样的合同。事件生产者和消费者之间的联系就是他们发布和预定的活动。
去耦合EDA面临的最大问题是,它们不是为了某些特定的应用与应用之间的通信而量身订做的。这种去耦合是为完全无结构信息所服务的,例如,人类使用的电文信息。当一个应用发布了另一个应用所需要的数据时,在缺少服务合同的情况下,这些数据必须是细粒度的。换句话说,一个完全去耦合事件可能在警告人们一个流程完毕或者是某种肯定回答,但是如果没有服务合同,很难从如此复杂,结构化的事件中理出预定应用的头绪。
那么这里的底线就是,EDA可以不以服务为导向吗?从实用的角度考虑,EDA中的事件驱动交互操作应该是以服务为导向的。两种方法只是在技术上略有差异,这种差异对业务的影响不大。因此,我们现在所讨论的并不是一个叫做EDA的独立概念,而是将两个概念融合之后的一个“事件驱动SOA”理念
为了理解区分SOA和EDA的重要性,我们需要看看人们的观点,无论是好是坏,SOA却被过度炒作,受到了其本身应有的关注,人们很自然会产生疑问,并在寻求其它的方法。好让过于膨胀的SOA放放气。ZapThink正在驾驶这SOA这架花车,我们忠实的读者可以相信,我们一定会给这些过度的炒作降降温,,因此,在有关SOA/EDA争论的背后也有我们所支持的积极的一面。
一些业内分析人士一直都怀有FUD情绪,很自然每个分析者都需要一个自己能够捍卫的独特的市场范畴和争论点,但是已经有太多的分析人士在研究SOA,人少有人会另辟蹊径。不幸的是,对于那些向分析师寻求指引的IT用户来说,分析师这种只关注SOA愚蠢的行为毫无益处。