您现在的位置:TT SOA > WSDL > SOA+EDA=FUD?

SOA+EDA=FUD?

2008-9-5    | |
打印本文章
RSS

导读:现今人人都在谈论面向服务架构SOA,有些供应商和分析人士开始提倡另外一种方法事件驱动架构EDA。SOA是一种软件在松耦合状态下的结构方法,是位置相对独立的服务。

关键词:面向服务架构 SOA 事件驱动架构 EDA 松耦合 服务

正在加载数据... 【TechTarget中国原创】现今人人都在谈论面向服务架构(SOA),有些供应商和分析人士开始提倡另外一种方法事件驱动架构(EDA)。有些人甚至认为SOA和EDA二者互为竞争,是两个互补的概念,企业必须从两者之间做出选择,这就造成了IT架构委员会在决策时产生了许多恐惧、不确定和怀疑的情绪。如果你也本身也有FUD这样的情绪,不必过于紧张,ZapThink认为从实践的角度出发,EDA并不是一个单独的结构方法,但是EDA却是公司妥善实施SOA的核心,是一个SOA的附属品。

EDA的支持者认为,异步信息在独立的软件部件之间进行传递时,这些信息并不知道其它信息的存在……

【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愚蠢的行为毫无益处。

查看全文
 
在本文的第四部分,我们运用了大量的实例介绍如何创建WS-BPEL流程服务。在本文,我们将进一步用实例介绍WS-BPEL流程服务如何与伙伴服务产生交互。
 
在本文的第三部分,我们用实例介绍了如何为封装WS-BPEL的服务设计WSDL定义。在这一部分,我们将运用更多的实例介绍创建WS-BPEL流程服务。
 
最近几年软件发展得到很大牵引力,成为治理WSDL的有效方式。该软件是由GNU LGPL提供的建立在Java基础之上的SOAP测试工具。
 
集成能够帮助简化商业流程、提高产品上市的时间、使企业对业务、共享的数据和服务中的变化更快地做出反应……
 
实践论认为:从实践提升到理论,再由理论指导实践,由此向前发展。目前SOA的发展的情况正是如此,通过不少实践,SOA的模型己经被公认为标准规范,目前是正需要进一步总……
本技术手册旨在探讨如何为封装WS-BPEL流程逻辑所需的Web服务设计WSDL定义。因为SOA提倡用“契约优先”的方式来设计服务,所以理解由WS-BPEL引发的这种独特服务契约设计理念,是成功构建有效流程和服务的关键因素。
本专题分六部分探讨SOA设计模式,当初设计面向服务架构的一大初衷就是降低服务间耦合度,由此提高服务的灵活性和自由度。
本专题分六部分探讨服务定向原则,主要探讨如何将服务定向原则应用于构成服务的自动化逻辑。如何越过单个服务层面,应用作为范例的服务定向并形成能够封装整个企业领域的服务层。
最新更新
专家答疑
技巧
Eric Newcomer
是否存在某些经验法则,让人们在网络互操作性和进程互操作性二者之间做出选择?换句话说,如果我遇到吞吐量问题,是不是就不该选择Web服务了?
Jason Bloomberg
评价“企业mashups”的标准是什么?尤其是在企业mashups和“主机包装”项目的关系上?我们对企业mashups的定义是:丰富网络环境下,一套建立在SOA基础之上的组合……
Rami Jaamour
你能解释一下什么是回归测试吗?怎样才能保证你的回归测试是正确的呢?回归测试旨在揭示所有由软件修改所引起的回归,在当今复杂多变的商业环境下……

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
登录Email
请输入您的登录Email
密码
下次自动登录