事件驱动架构及应用

 
   | |

导读:本文介绍了事件驱动架构以及它的优势、与SOA的关系以及ESB如何连接器EDA和SOA,并给出了EDA的应用方向。

关键词:EDA 事件驱动架构 ESB SOA

 
正在加载数据...

    Gartner在2003年引入了一个新术语事件驱动架构(Event Driven Architecture,EDA), 主要用于描述一种基于事件的范例。EDA是一种用于进行设计和实现应用和系统的方法—在这些应用和系统里,事件所触发的消息可以在独立的、非耦合的组件和服务之间传递,这些模块彼此并不知晓对方。这些应用程序中的EDA极大地改进了企业或政府响应不同的、表面上毫无关联事件的能力。通过提供瞬时过滤、聚合和关联事件的能力,EDA可以快速地检测出事件并判断它的类型,从而帮助组织机构快速、恰当地响应和处理这些事件。通常事件可以采用发布/订阅机制。

图1 SOA的请求应答模式

  图1 SOA的请求应答模式

 图2 EDA的事件驱动模式

  图2 EDA的事件驱动模式

  事件驱动架构概述

  一个事件驱动框架(EDA)定义了一个设计和实现一个应用系统的方法学,在这个系统里事件可传输于松散耦合的组件和服务之间。一个事件驱动系统典型地由事件消费者和事件产生者组成。事件消费者向事件管理器订阅事件,事件产生者向事件管理器发布事件。当事件管理器从事件产生者那接收到一个事件时,事件管理把这个事件转送给相应的事件消费者。如果这个事件消费者是不可用的,事件管理者将保留这个事件,一段间隔之后再次转送该事件消费者。这种事件传送方法在基于消息的系统里就是:储存(store)和转送(forward)。

  构建一个包含事件驱动构架的应用程序和系统,会使这些应用程序和系统响应更灵敏,因为事件驱动的系统更适合应用在不可预知的和异步的环境里。

  事件驱动架构在具体实现中是指由一系列相关组件构成的应用,而组件之间通过事件机制完成一定的业务功能。由于在一个EDA系统中各个组件都只专注于处理输入的消息与发布输出的消息,因而EDA系统能够更有加效地对管道化(pipelined)的、由多软件模块链接而成的并发事件流(concurrent processing of events)进行处理。

  EDA系统中各组件以异步方式响应事件,在本质上是可以并行的,因而在政府部门的电子政务应用中具有极大的优势。其具备以下特点:

  ◆ 并发执行

  ◆ 事件触发/数据触发/时间规则触发

  ◆ 实时/增量响应

  ◆ 分布式事件系统处理

  上述特点能很好地满足政府部门应用需求,如跨部门的应急联动系统或联合监管协同服务等应用。

  从目前情况来看,EDA系统还只是处理简单事件的系统,对于复杂事件的处理还有待进一步的研究。但是,EDA仍然能作为SOA系统的一个有效补充,弥补SOA系统的一些不足,如实时响应度不够。

  事件驱动架构优势

  事件驱动设计和开发所提供的优势如下所示:

  ◆ EDA提高了对不断变化的业务需求的响应,最大限度地减少了对现有业务应用的影响,也常消除了对新打包应用的需要。如果采用特有的粗颗粒服务模型可以基于业务目标快速确定可控的业务变更,并直接、迅速、有效地实施变更以达到业务敏捷性和完整性。

  ◆ 可以更容易开发和维护大规模分布式应用程序和不可预知的服务或异步服务;

  ◆ 可以很容易,低成本地集成、再集成、再配置新的和已存在的应用程序和服务。

  ◆ 促进远程组件和服务的再使用,拥有一个更灵敏、没有Bug的开发环境。

  从时间维度来看EDA的优势:

  ◆ 短期利益:更容易定制,因为设计对动态处理有更好的响应;

  ◆ 长期利益:系统和组织的状态变得更精准,对实时变化的响应接近于同步。

  EDA与SOA的关系

  SOA(service-oriented architecture)是面向服务的一种体系架构,1996年,Garnter就预见到了服务构架的重要性,并提出了SOA概念。有些观点认为EDA的出现会逐渐取代SOA,其实这并不正确,EDA并不会完全取代SOA,而会对SOA形成补充,有人称之为 "Event driven SOA"。虽然 SOA通常更适合请求/响应交换环境,但EDA 引入了一些长时间运行的异步进程功能。而且,EDA 节点可发布事件,且并不依赖于所发布的服务的可用性。它真正地实现了同其他节点的分离。

图3 EDA系统与SOA系统

  图3 EDA系统与SOA系统

  与Request/Response系统不同的是,要求请求者必须明确发送请求信息,而事件驱动架构提供一个机制去动态响应事件。在一个EDA系统里,事件产生者发布事件,事件消费者接受事件。

  业务系统可以从SOA和EDA中受益匪浅,因为事件发生时EDA系统能触发事件消费者,SOA服务可以快速地从相同的消费者中访问、查询。系统要求有最高的响应性,当事件被触发时这个系统必须能快速决定必须的动作。到事件结束,事件应该被发布和消费,而且事件要穿越SOA所有的边界,包括整个体系结构和物理层。

  系统要有最高的响应性,当事件触发时这个系统必须能快速决定必须的动作。到事件结束,事件应该被发布和消费,而且事件要穿越SOA所有的边界,包括整个体系结构和物理层。

  ESB连接EDA和SOA

  企业服务总线(Enterprise Service Bus,ESB)在异类平台和环境间建立联系,充当允许不同应用程序进程之间进行通信的中间层。部署到企业服务总线的服务可以由使用者或事件触发。它同时支持同步方式和异步方式,可促进一个或多个参与者之间的交互。因此 ESB 可提供 SOA 和 EDA 范例的所有功能。“ESB提供了消息的传输,格式的转换等关键功能,为服务的请求者和服务提供者之间架设了沟通的桥梁,是企业应用基础架构的粘合剂。” 甲骨文公司大中华区高级技术经理黄建勇说。

  企业服务总线可连接各个异类节点并作为中介传递其间的所有通信和交互,这些节点可分散在面向服务的体系结构(同步一对一方法)和事件驱动的体系结构(异步多对多方法)中。ESB 是目前处理集成挑战的最有效方法,是可提供最大业务灵活性和不同应用程序间的高效连接技术解决方案。

  EDA应用在很多ESB(企业服务总线)产品中,比如FiornaoESB中间件产品支持同步、异步和请求响应事件,事件处理和传输实用不同的技术例如JMS,HTTP,电子邮件和基于XML的RPC等。比如“政府网上监察系统”通过对被监察对象(系统)数据的实时采集,通过EDA技术的事件触发,事件过滤,实现对违规、违法、越权行政、超时限行政等问题进行通知和督办等。

  EDA应用方向

  事件驱动架构是分布式应用程序的普遍架构形式,非常典型的是:分布式应用程序都被设计成为模块化的、封装的、可共享事件服务的组件。能够通过应用程序、适配器以及无入侵性的代理操作来创建这些服务。由于EDA的特点,在金融贸易、能源贸易、电信以及欺诈检测这些行业中,一直都在采用事件驱动架构技术。近期在我国政府的电子政务建设中,利用EDA分布式处理架构的优势构建共享交换平台,实现跨部门、跨平台、跨应用系统的政务信息资源的共享与交换,并对政府应急系统和跨委办局之间的业务协同办公提供支撑和保障。


EDA
 EDA(一)
 EDA(二)
 EDA(三)
 EDA(四)
 EDA(五)
 EDA:中国企业IT架构发展的新趋势
 EDA赋予企业IT架构洞蚀业务先机之力
 事件流处理(ESP)
 事件驱动架构及应用

原文出处:http://www.uml.org.cn/soa/201001295.asp
 
来源:UML软件工程组织    作者:李臣亮    
 
 
 
 
 

EDA

 
中间件巨人TIBCO软件公司发布TIBCO Spotfire 3.1,描述为预先分析的内存分析平台更新。该程序包现在支持集中部署和为统计应用创建执行基于S+……
 
Startup StreamBase Systems通过流数据库架构攻击CEP领域,该架构允许数据记录在存储之前,可以加工。该公司为CEP开发人员设置了交换,希望共享组件等。
 
Seagull Software软件发布LegaSuite Integration V5.2,该版本为z/OS完全整合IBM CICS交易服务器。其他性能包括支持事件驱动架构……
 
什么是复杂事件处理(CEP)?也许最好是把它看做一种数据相关。在这个水平上,它是业务流程的混合物。但是事件流的大小将被检查……
 
事件流处理(ESP)是一个软件设计的能力,支持实施事件驱动的架构。在这样一种环境下,一些软件实体提出事件,其它实体管理事件,还有一些……

热门技术手册排行

 

随着开源技术越来越成熟,一个稍有开发经验的人通过学习就可以用开源的产品和技术构建一套可用的系统。对于从事软件开发的人员,尤其是对Java或动态语言相关领域的人来说,“开源”也许是他们最喜爱的单词。但是,很多时候我们需要的不仅仅是一个可用的系统,而是希望这个系统开发更简易、性能更高和扩展性更好等。这确实是一个令人头痛的问题。本指南很多地方都是点到为止,要深入了解相关信息的读者请借助参考资料、网站等自行挖掘。

 

本专题分六部分探讨SOA设计模式,当初设计面向服务架构的一大初衷就是降低服务间耦合度,由此提高服务的灵活性和自由度。

 

业务流程管理(business process management,bpm)不是一个新概念,甚至不是一个新名词。它是从相关的业务流程变革领域,如业务流程改进(bpi)、业务流程重组(bpr)、业务流程革新中发展起来的。流程管理技术也是从早期的工作流管理、eai、流程自动化、流程集成、流程建模、流程优化等技术中发展起来的。

 

TOAGF是一个架构框架,简而言之,TOGAF是一种协助发展,验收,运行,使用,和维护架构的工具。它是基于一个迭代(Iterative)的过程模型,支持最佳实践和一套可重用的现有架构资产。

 

云计算的概念越来越流行,Amazon、Google和IBM是第一批将云计算引入公众视线的公司。云计算就是新的Web2.0,一种既有技术上的市场绽放。

 

Mashup是一个非常cool的新的应用程序种类。如果你想真正的了解它们,我们需要回过头来看看你现在的计算机,其实它就是一个非常好的帮助你理解mashup的模型。现在开源的操作系统无疑是非常好的apis的集合或应用程序编程接口,帮助开发者去构建其应用程序。计算机本身也是一个很好的为用户提供接口的例子,键盘和鼠标可以被理解为你通过计算机的接口而使用的不同的应用程序。本技术手册为读者提供了一些相关信息,如果需要深入了解mashup,读者可以借助其他参考资源。

查看更多
 
 

登录TechTarget中国

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