事件驱动架构及其扩展研究

来源 :中国科技博览 | 被引量 : 0次 | 上传用户:handsomels
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【分类号】:TP316
  摘要
  事件驱动架构(Event Driven Architecture,EDA)是一种用于进行设计和实现应用和系统的方法。在这些应用和系统里, 事件所触发的消息可以在独立的、非耦合的组件和服务之间传递,这些模块彼此并不知晓对方。通过提供瞬时过滤、聚合和关联事件的能力,事件驱动架构可以快速地检测出事件并判断它的类型,从而帮助系统快速、恰当地响应和处理这些事件。
  关键词:事件驱动;组件;服务;关联事件
  引言
  传统系统架构中的交互通常是以类似调用的命令方式存在,这种交互方式使得系统运转依赖于各部分不同的结构,系统耦合性太强。如果要改变这种方式,首先不妨认为系统中的每个部分都是独立的,而不同部分间的联系和交互则可以通过间接的方式来进行:即在这些部分之间加入通道的结构来联系他们;其次交互的信息载体不再是命令,因为这样的命令信息往往是要预先知道下一步所执行的动作,并指明命令的执行者。相反的,交互方仅仅需要将交互的信息以一种事件的形式发布出来,并存放在之前的通道中,而由真正需要进行交互的另一方从通道中去获取这些事件,并进行交互行为的后续动作,而这些后续动作对于交互信息的发布方来说是透明的。这便是事件驱动架构最初的构想。
  本文通过对事件驱动架构的研究应用,分析其在软件设计过程中的优良特性,并在此基础上提出了运用本体的观念对软件组件交互过程中的事件进行分类建模。
  1.事件驱动架构的特点
  现代的大多数系统程序设计都是事件驱动,但大多数事件源仅限于设备、组件等的特定行为动作。而本文所提及的事件驱动架构是指以事件为核心的一套需求分析,设计,和实施的方法论,在这个系统里事件可以传递于松散耦合的组件和服务之间。事件驱动架构架构将传统的轮询模式转化为了事件驱动的实时推动模式,加快了业务响应的敏捷性,减少了由于跨组件或业务系统消息传递而带来的时间延长,真正实现系统间的彻底解耦。
  事件驱动架构在具体实现中是指由一系列相关组件构成的应用,而组件之间通过事件机制完成一定的业务功能。由于在一个事件驱动架构系统中各个组件都只专注于处理输入的消息与发布输出的消息,因而系统能够更有加效地对管道化(pipelined)的、由多软件模块链接而成的并发事件流(concurrent processing of events)进行处理。
  2.事件驱动架构的工作原理
  事件处理流程分为四个逻辑层:事件生产者、事件传送通道、事件处理引擎和事件驱动的下级行为。通常事件可以采用发布/订阅机制。事件处理机制的流程可以描述为:事件生产者作为事件源(Event Source)发布事件,事件容器(Event Channel)作为事件传送的通道,事件处理引擎接受事件并将其交付事件订阅者(Listener),事件订阅者接受该事件并做出明确的响应。整个流程中将事件作为信息的载体,穿过模块、组件的边界进行交互,实现各项业务处理。具体的工作模式如下图1所示,事件监听时序图如图2所示。
  图1
  关键组成部分:
  a. 事件类。运用本体的观念对事件进行分类建模,让事件作为消息,在系统各个组件对象之间传递。事件分类原则:并行处理的事件必须分属不同的聚合根,单个聚合根产生的事件必须按照顺序被持久化。
  b. 事件通道(事件管理器)。抽象化的通道,不存在单独的线程支持,寄宿于已存在的线程中,注册事件类,支持事件的发布订阅。例如,事件发布存在于UI线程,而事件的消费者可存在于Background线程中,其通信方式即是传统的线程间Event通信。
  c. 事件源和事件消费者。事件消费者对于事件源来讲是透明的,即事件发布并不关心谁订阅了该事件,事件消费者在接受到该事件时,可能需要进行一定筛选,确定符合条件才会执行相应的函数方法。
  图2 事件监听时序图
  3.事件驱动架构的扩展
  3.1工作流
  很多情况下,多个事件组合可以完成一项业务操作,即一个在不同时间、不同上下文条件下的一个复杂组合事件——工作流(Work Flow)。单一事件有其自身价值,但是仍然是解决点到点的事件发送和消费问题,而工作流能够真正完成端到端业务流程的实时异步驱动和信息传递。事件驱动架构与工作流的结合能够将业务流程以事件作为线索进行串联,从而达到系统内功能模块甚至是系统间功能模块的通信或者协同工作。两者结合的关键在于事件的组合和执行顺序,设计某些对象状态的改变可能还需要考虑事务性操作,即错误响应机制及业务逻辑回滚。
  3.2事件本体
  事件驱动架构中事件作为设计核心,地位举足轻重。但系统中如果出现海量的事件就会成为另一种灾难,因此合理划分事件类别、实现事件聚合就是事件驱动架构设计的关键。构建组件交互中的事件本体,结合事件本质明确事件这一更高层次和更复杂的语义信息,为事件驱动架构中事件模型探索标准化的渠道。
  在领域本体构建领域,本体的可重用性和面向特定领域一直是两难的问题。因为本体的根本目的就是知识的重用和共享,所以最理想的目标就是建立一个任务独立的可重用模型。但是作为面向特定领域的领域本体,其又是必须依赖领域的,只有这样才能使得领域本体具有良好的领域知识表达能力。英国伦敦大学针对各类乐器构建了乐器发声的事件本体下图所示。但缺乏事件本体普遍性,软件开发过程中组件、服务交互中的事件本体研究还属于空白。
  图4 事件本体模型图
  参考文献:
  【1】 Brenda M. Michelson. Event-Driven Architecture Overview. Sr.VP and Sr.Consultant, Patricia Seybold Group,2006.2
  【2】 Bertrand Meyer, The Power of Abstraction, Reuser, and Simplicity :An Object-Oriented Library for Event –Driven Design.
  【3】 Carl Sliwa. Event –Driven Architecture poised for wide adoption. Computerworld, 2003,5
  【4】 Opher Etzion. Towards an Event-Driven Architecture :An Infrastructure for Event Processing Position Paper.ISBN 978-3-540-29922-6
  【5】 王园,吉国力,苏秦.事件驱动体系结构在GIS中的设计实现.厦门大学学报,2005,7(4):34-36
  【6】 Boby Woolf .Event-Driven Architecture and Service-Oriented Architecture. IBM Corporation,2006
  【7】 David C.Luckham. The Power of Events, Introduction to Complex Event Processing. Addisionwesley
  【8】 Developer’s Guide to Microsoft Prism patterns &practices
  【9】 劉家红,吴泉源,一个机遇事件驱动的面向服务计算平台[J]. 计算机学报,2008,31(4):588-599
  【10】 George Hohpe. Programming Without a Call Stack Event-Driven Architectures ,http://www.eaipattrens.com
  【11】 高波涌,朱宇宁.基于SOA的事件驱动金融型金融业EAI技术研究.计算机工程与设计,2006(7):83-85
其他文献
摘要:為了使在无功补偿电容投切时,减少涌流,延长电容及投切开关的使用寿命,利用可控硅、磁保持继电器及消谐电抗器相结合的方式,设计了一种新型过零智能消谐复合开关,该开关经现场使用及与同类投切开关性能对比测试,结论是本设计开关具有寿命长、节能及可靠性高等特点。  关键词:可控硅、磁保持继电器、复合开关  【分类号】:TM464  1 引 言  国民经济的高速发展和人民生活水平的不断提高带来了电力负荷的
期刊
摘要:介绍了1303N工作面第二部皮带机头基础的技术原理和施工工艺,采用十字线、腰线、基础中心线确定预留孔位置和深度的方法,支设预留孔然后进行基础浇筑。通过施工找出其中的的优点和不足,为以后此类基础的施工提供借鉴。  关键词:皮带机头基础 预留孔 施工工艺  【分类号】:TD354  一、概况  山东新巨龙能源公司是新矿集团投资开发建设的国家“十五”重点建设项目、设计生产能力为600万吨/年的特大
期刊
摘 要:抽油机是油田生产的主要设备。抽油机井生产过程中,传动系统中经常发生皮带断的现象,抽油机使用的每条皮带,从投入使用到皮带断,其使用寿命,应该有它合理的使用时间。如果易断皮带的井增多,皮带的使用周期就会缩短,抽油机故障停机时间也就随之增加。管理水平也随之下降。这样不但影响了原油生产,而且提高了原油的生產成本,同时更增加了职工的劳动强度。  关键词:抽油机;传动系统;皮带;载荷;处理措施  中图
期刊
摘要:随着计算机和互联网的发展,人们的生活工作环境将越来越向互联网靠拢,当然三维可视化也不例外。在Web2.0的今天,Web三维可视化必然在未来的浏览器程序中占有重要的地位。本文设计实现了大洋样品馆的样品可视化系统,为样品馆的工作人员和申请样品的科学家带来了很大的方便,同时给出了笔者对于该系统今后发展的思考和思路。  关键词:Web3D;WebGL;HTML5;Extjs 4.2 MVC;Rest
期刊
摘 要  随着烧碱重要性的提高,制碱技术也在不断更新与发展。从隔膜法制碱方法到离子膜法制碱方法,技术水平也在不断的提高。其中离子膜法制碱技术是更高效、更清洁、自动化控制水平更高的一种制碱技术。随着离子膜烧碱工艺的不断完善,质量流量计也在不断的更新和改进,它输出的检测信号使整个工艺过程自动化控制水平也在不断的提高。  关键词:离子膜法烧碱工艺,质量流量计,特点与使用  中图分类号;TQ114.2  
期刊
摘要:地质矿产资源是自然资源组成部分,同时也影响着国家的发展,经济的增长。一直以来,对地质矿产资源的重视度就较高。合理和开采地质矿产可以加大国家收入,带动当地地区的经济发展,推进着国家和地区的进步。同时地质矿产开采时的安全性也是应该注意的一项重要问题,开采安全性的确保可能保证开采工程的顺利进行,才能保证矿产的挖掘和人员的安全,完成开采任务。本文就针对地质矿产开采时存在的问题和加强开采安全性的措施进
期刊
中图分类号:TE144  油田开发进入特高含水阶段后,自然递减加剧,注采矛盾突出,“三高一低”矛盾进一步加剧,稳产难度越来越大。此时注足水、注好水、注有效益是减缓自然递减、增加储量动用程度、提高原油产量的进攻性措施。然而受注水环境差、设备老化等因素影响,注水井地面及井筒状况不断恶化,欠注井、漏失井、测试问题井等日益增多,水井综合利用率、测试率、层段合格率呈不断下滑趋势,换管、扶井、作业等重复工作量
期刊
摘 要:主要针对变电设备状态检修分析与实施相关问题进行分析,根据多年的检修和实践总结,提出一套变电设备管理状态检修的流程,意在持续改进,不断提高的基础上,最终使设备管理提升到一个更高的目标。  关键词:变电设备;状态检修;问题对策  中图分类号:TM532.5  根据设备的状态进行的预防性作业称为变电设备状态检修,针对电厂的变电设备状态检修主要有以下几点:第一,应该以提高设备可靠性为基础。第二,应
期刊
摘要:船用CAN网络信息交换系统主要是用来满足现代化海军传输大容量数据并保护信息的安全可靠性,为了提高海军的作战实力就需要快速传递各个舰船之间的信息,而且要保障信息传递的安全性,这样才能够使得各舰船对于相关信息做出快速反应以达到相应的战术效果,目前主要是用CAN网络信息交换及检测装置来作为信息传输中心。  关键词:CAN;网络信息交换;监测装置  【分类号】:TP311.52  CAN网络信息交换
期刊
摘要:针对用户对数据存储的性能和冗余备份等方面的具体要求,提出了基于Samba和Fuse的云存储平台。本文首先对基于Fuse的用户态文件系统做了介绍,然后针对用户的需求,研究设计Fuse文件系统下的文件分块和存储策略,最后加入用户权限认证机制,使Samba可以在运行时定位用户目录,形成用户自己的沙箱。  关键词:Fuse;用户態文件系统;文件分块存储策略;用户权限认证  一、【分类号】:TP393
期刊