事件驱动的架构及应用
来源:软件世界 作者:李臣亮
Gartner在2003年引入了一个新术语事件驱动架构(Event Driven Architecture,EDA), 主要用于描述一种基于事件的范例。EDA 是一种用于进行设计和实现应用和系统的方法—在这些应用和系统里, 事件所触发的消息可以在独立的、非耦合的组件和服务之间传递,这些模块彼此并不知晓对方。这些应用程序中的EDA极大地改进了企业或政府响应不同的、表面上毫无关联事件的能力。通过提供瞬时过滤、聚合和关联事件的能力,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 节点可发布事件,且并不依赖于所发布的服务的可用性。它真正地实现了同其他节点的分离。
与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分布式处理架构的优势构建共享交换平台,实现跨部门、跨平台、跨应用系统的政务信息资源的共享与交换,并对政府应急系统和跨委办局之间的业务协同办公提供支撑和保障。
分享到:
相关推荐
Gartner在2003年引入了一个新术语事件驱动架构(EventDrivenArchitecture,EDA),主要用于描述一种基于事件的范例。EDA是一种用于进行设计和实现应用和系统的方法—在这些应用和系统里,事件所触发的消息可以在独立的...
事件驱动 应用架构 应用 事件驱动 应用架构 应用
传统嵌入式单片机开发中存在着软件开发性不足、开发结构复杂、功能复用性小、开发过程繁琐等问题,针对这些问题,提出利用事件驱动型层次式状态机的 QuantumPlatform 量子框架与嵌入式单片机相结合的解决方案,首先将...
事件驱动架构(Event Driven Architecture,EDA)一个事件驱动框架(EDA)定义了一个设计和实现一个应用系统的方法学,在这个系统里事件可传输于松散耦合的组件和服务之间。一个事件驱动系统典型地由事件消费者和...
事件驱动架构Esper文档,Esper是一个开源的事件驱动框架,对于处理CEP,ESP的架构不错,比如事件监控、网络监控等等基于事件的模型。
Q-Controllers是一个事件驱动的应用代码框架,适用于低端单片机无法跑操作系统,但又要处理越来越复杂的代码构架的情况。 因为不依赖于操作系统,所以非常容易被移植到stm32之外的其他单片机上。即便不进行移植,...
嵌入式Ubuntu_Linux2_6内核下的I2C驱动架构及应用
文章论述了有限状态机理论,结合软件分层的结构思想,详细分析了事件驱动的程序设计方法。结合实际项目油田原油油量计量 和防盗系统,分析了该系统远程监测终端软件的层次结构,系统状态和事件的划分方法,给出了...
ReactJS+NodeJS全栈web应用程序,由微服务和事件驱动架构支持,具有NATS流.zip
复杂事件处理(CEP)在证券、期货等资本市场的应用研究
《IGBT驱动与保护电路设计及应用电路实例》结合国内外IGBT的发展和最新应用技术,以从事IGBT应用电路设计人员为《IGBT驱动与保护电路设计及应用电路实例》的读者对象,系统、全面地讲解了ICBT应用电路设计必备的基础...
Ubuntu-Linux系统下的设备-核心-总线三层的I2C驱动架构,是合理、高效开发I2C设备驱动程序的重要参考框架。该文以结构化的视角深入分析了嵌入式Linux系统下I2C驱动的层次结构、数据结构、驱动流程等,并着重分析了2种...
主流嵌入式操作系统linux 的驱动实现思想及经典架构
EFSM(event finite state machine,事件驱动型有限状态机),是一个基于事件驱动的有限状态机。使用EFSM可实现上百个状态、上千种事件处理,且可实现多重状态机和层次状态机。可应用在云后台微服务和嵌入式软件等各种...
本文档为英飞凌厂家编著,由英文版IGBT Modules - ...本文档还讨论了IGBT电气特性和热问题,分析了IGBT的特殊应用和并联驱动技术。这些分析还包括了IGBT的实际开关行为特性、电路布局、应用实例以及设计规则。
2016年的演讲文稿。关于模型驱动应用架构的基本概念,基本原理,思想脉络,包括理论和哲学背景的一个概括性介绍
服务器软件体系结构,使用高级Pet ri 网对混合多线程阶段化事件驱动结构进行了建模,并与传统多线程模型进行了性能 比较。与常见的一些编程模型相比,建立这种体系结构基础上的服务器应用具有较好的可伸缩性、较低的...
技术关键词: 微服务、容器化、事件驱动架构、领域驱动设计 内容关键词: 架构模式、系统设计、可伸缩性 用途: 学习设计和构建可靠、可扩展的软件系统 资源描述: Martin Fowler 的《企业应用架构模式》一书是软件架构...
H桥驱动 原理与应用 结构 等 H桥驱动原理与应用