账号:
密码:
最新动态
产业快讯
CTIMES / 文章 /
智能化复杂事件处理
资策会网络多媒体研究所专栏(2)

【作者: 李瑞凱】2009年05月05日 星期二

浏览人次:【4922】

自从50年代开始,古老的操作系统使用事件在一个单处理器的系统上来控制线程。过去的50年以来,离散事件仿真、计算器网络、主动式数据库、中间件,分别用不同的事件处理形式来发展。事件处理的机制已经风行了IT世界超过55年之久。也许你会问在接下来的日子里,为什么需要复杂事件处理(CEP)?复杂事件处理又有什么新的改变?和过去二三十年间用的事件驱动架构又有什么不同?



《图一 事件驱动架构演进》
《图一 事件驱动架构演进》数据源:A Short History of Complex Event Processing

过去的二十年间,在IT系统中例如网站、中间件、公司内部网络等,所产生的事件大量爆炸性成长创造了新的需求。70年代开始网络大量发展,接着80年代企业软件大量的讯息传递呈现指数性的成长。人们想要从这些大量产生的事件里面再找出新的讯息出来。于是,IT系统在事件处理上大量成长就成为了推动复杂事件处理的动力。


今日的信息科技不断地产生新的讯息,这些快速且大量的事件增进了各种需求,包括自动化的需求、电子商务的需求及网络分析的需求。我们从需要产生什么样的事件,转而关心如何能从这广大的事件数据里面,找出更多有意义的事情。如同汤马斯‧佛里曼(Thomas L. Friedman)所写的世界是平的一书中所揭示,整个世界的交流从企业乃至于个人,早已透过因特网抚平了整个IT世界。事实上,IT系统中还有许多的信息从未被发掘。许多的讯息、事件静静地流窜在程序里面,就像千万年以来古代有机物通过漫长的压缩和加热后,逐渐形成而藏在地底下面的石油,它就是在那里而我们从未去探勘它或是认知到它。但是这些潜藏的能量或者说是事件,的的确确具有相当大的威力。只要能够找出这些事件如何聚在一起?何时聚在一起?彼此之间又有么样的关系,那么这些事件就能够给我们带来极大的产出。今日,一种革命性的技巧—复杂事件处理就可以帮我们利用这强大的事件威力。


复杂事件原理

最近一段时间以来,我们经历了许多新名词的冲击,从SOA到Web2.0一直到现在最热门的云端运算。正当市场正在为这些新的概念而争战的如火如荼之时,另一个可以改变未来的IT新技术蓝图正在悄悄崛起。这一块商业智能的百年战争或许才正要开始攻城略地。


也许过去传统的数据库或是数据仓储能够为一些商业决策带来有价值的分析,但是今日这些工具并不能在当下甚至几毫秒内,带来立即的决策及反应。尤其是今日当生活和计算机有着密不可分的关系,从政府、企业、乃至于个人,IT世界有着庞大的事件云,而其中又带有可以称作商业智能的大量信息。


量身订做的程序代码

过去企业在IT系统上处理事件的部分常使用量身订做的程序代码,打造一个具有完整机能的系统。为了聚焦在某些需求上面,量身打造的程序常需要花费大量的建置时间和人力以及系统拥有较长的生命周期循环,应用性也相对受到限制。不但花费大量的维护成本,而且这样的系统也缺乏弹性。复杂事件处理包含了一些新的技术以及旧的技术,其中有些技术就像过去所熟知的基于规则的系统,根据规则来过滤及处理事件。另外有些新的技术则是在大型分布式系统中,追踪过去历史中具有因果关系的事件,或者是在IT系统当中,几千几万笔事件里面,使用事件之间的关系和事件的模式,来发现新的复杂事件的存在。


复杂事件最早是由史丹佛大学的David Luckham与Brian Frasca教授于1998年发表的一篇论文叫做Complex Event Processing in Distributed Systems当中所提出。主要的概念即是在事件驱动架构下,根据简单事件、事件串流处理及复杂事件以上这些概念融合而成。以下就来介绍复杂事件处理的一些特点


复杂事件阶层化架构

相较于简单事件,复杂事件处理不仅处理单一的事件,也处理由多个事件所组成的复合事件。来看一个简单的例子,从图中可以看到考虑在一个金融交易系统中,当发生了账号登入、密码改变、新的自动交易三个事件之后。综合以上,可以定义为一个可能的欺骗事件,当发生三次的可能欺骗事件之后,又可以说发生了一次系统攻击事件。复杂事件处理监测分析事件流,当特定事件发生时去触发某些动作。



《图二 复合事件范例》
《图二 复合事件范例》数据源:IBM

事件处理语言(EPL)

还记得很久以前达美乐比萨所提出的口号,外送30分钟之内没到就免费。于是当拿起电话播出订购专线之后,就能在30分钟之内享用热腾腾的比萨。事实上,在复杂事件处理也有一样的订购专线─事件处理语言,保证比达美乐还快。在复杂事件处理中,为了要达到高吞吐量、高度利用性、及低度延迟,让企业能够达到实时决策,因此使用事件串流处理。使用一种SQL-LIKE的事件处理语言,此种语言透过时间或以窗口(Window:事件串流的一部分)来扩展原本的SQL语言,使得此种语言可以存取目前或是过去历史的状态信息,方便地对事件串流提供复杂的逻辑处理,使事件串流在内存中做模式比对处理以及查询。这些过程中,都在内存内进行,不须经由存取像是硬盘的储存装置的方式,减少I/O,降低传统数据库管理系统,对储存装置的依赖所造成的延迟。让复杂事件处理展现对大量从事件云里所形成的事件串流,有着高度的处理效能。


《图三 事件处理语言范例》
《图三 事件处理语言范例》数据源:Wikipedia

图三是一段事件处理语言的范例程序代码。此段程序代码主要用来判断是否有「结婚」这个状况,如果发生了以下条件时:当有人的性别相等于男人并且此人的穿著是燕尾服,然后如果接着发生以下两种事件,一、有人穿著结婚礼服;二、教堂的钟声响了或者是有米飞洒在空中,并且持续了两个小时,即产生「结婚」的动作。


事件串流处理(Event Stream Processing)

《三国志·魏书·郭嘉传》:兵贵神速。今千里袭人,辎重多,难以趣利,且彼闻之,必为备。日本战国名将武田信玄也用「疾如风、其徐如林、侵掠如火、不动如山」作为他作战用兵的原则。企业若要运筹帷幄之中、决胜千里之外,首先最重要的就是依靠「速度」。我们不禁要问,当前IT的软件技术要如何处理这些信息来达到我们所想要的实时效果?十年前也许只需要应付DOS系统所产生的简单事件,十年后的今天信息科技的事件不但在各种个人装置上,同时也在各个供货商方面大量产生。为了达到实时的需求应付这样大量的事件,以往企业使用数据探勘,数据仓储等技术来建立所谓的商业智能,现在复杂事件处理采用了事件串流处理的技巧。本来将数据处理要经由固定的储存媒体,事件串流处理将事件处理通通移到内存中做处理,来提供商业智能真正实时的决策支持。



《图四 事件串流处理示意图》
《图四 事件串流处理示意图》数据源:资策会

复杂事件处理引擎


《图五 复杂事件处理引擎示意图》
《图五 复杂事件处理引擎示意图》数据源:IBM

复杂事件处理引擎示意图一台车子是否具有良好的性能最重要的因素,就取决车子的心脏─引擎。汽车引擎百百款,根据不同的状况有不同的设计,有柴油引擎、转子引擎、V型引擎、对卧式引擎等。同样的,在复杂事件处理中的处理引擎究竟有什么不同呢?图五的复杂事件处理引擎,其实是一个基于规则的引擎,它监控着所有进入的事件串流,接着去比对这些不断进入的事件,有没有符合它所想要的状况或条件,如果有的话就产生行动。在建置时期,IT开发人员可以使用事件处理语言工具,根据情境所需的需求建立规则和模式,然后将这些规则和模式加载到执行时期的复杂事件处理引擎。


在执行时期,各种不同格式的事件,从各种不同的来源不停地进入复杂事件处理引擎,然后复杂事件处理引擎根据建置时期所建立的规则分析这些进入的事件,一旦侦测到符合这些模式就会触发新的通知或者是产生各种行动,新的通知事件也可以再度变成复杂事件处理引擎的事件流来源,重新进入复杂事件处理引擎。

复杂事件处理生活应用案例


2000年到2003年之间复杂事件处理厂商,开始从金融交易这一方面进入市场。事实上这一个新兴技术在业界以及学术界仍然有更多的研究价值,在金融方面只要是需要实时分析大量数据的情境都可适用。位于荷兰奈梅亨(Nijmegen)地区的竞走比赛已有悠久的历史,但是竞走比赛中常会有选手潜在性的脱水及体温过高的危险。2006年的比赛中超过40000人参加比赛,有69名选手因为脱水或体温过高送到医疗中心。荷兰奈美恩大学(Radboud University)的Bakkers教授目前正进行一项研究,和提供复杂事件处理软件的Apama公司进行合作,结合RFID感测技术,在此竞走比赛中,征求一些自愿者戴上RFID卷标,监控参赛者的体温。


《图五 DNLA 1.0/1.5版订立的装置角色及类别。》 - BigPic:938x420

数据透过蓝牙传送至具有GPS的手机发送到位于奈美恩的控制中心,控制中心将会使用Google Map监控参赛者的位置,如果复杂事件处理判断出参赛者的体温过高,则透过SMS传送到参赛者的手机内通知他们到邻近的休息站休息。Bakkers教授表示此一实验进行的非常顺利,可以实时知道参赛者目前的位置,避免人员的死亡。Apama公司和奈美恩大学未来计划将此一技术,进一步的应用在马拉松比赛中或是其他长距离的跑步比赛


  • 复杂事件处理使得IT系统也面临到了一些脱胎换骨的契机。主要如下列几点:


  • ●企业流程自动化;


  • ●计算机系统自动排程;


  • ●网络监控和效能预测;



●侦测系统潜在的威胁。


  • 企业在和客户之间的买卖、营销、供应链、产品研发、支持方案等,每天都会面临到许多实时性的问题。复杂事件处理并不像其他技巧利用透过加强决策的方式来支持企业的各项操作。复杂事件处理借着集中在了解以下几点来加强企业的决策。


  • ●实时的情境决策制定;


  • ●情境的内容了解。



复杂事件处理发展的时间并没有很长,主要做复杂事件处理的厂商们,也都是原本在做商业智能的厂商。目前众多大厂商十分看好这一块技术,积极并购在做复杂事件处理的小公司,例如甲骨文公司就并购了BEA这家公司。未来的信息科技一定是会从Web延伸到各种电子装置上,就目前很热门的感测技术就知道,IT系统只会越庞大不会越缩小。未来要应付这么大一块分析数据的市场的需求,复杂事件处理绝对可以让用户感到更简化的操作如何分析数据,并且用更快的速度来达成所要的需求。随着全球金融风暴肆虐下,台湾许多科技产业哀鸿遍野,应该要用什么样的方式去打破这个困局?也许复杂事件处理可以给我们一部分的答案也说不定。


---作者任职于资策会网络多媒体研究所---


相关文章
TSM服务促进行动应用发展
comments powered by Disqus
相关讨论
  相关新闻
» 意法半导体突破20奈米技术屏障 提升新一代微控制器成本竞争力
» Pure Storage携手NVIDIA加快企业AI导入 以满足日益成长的需求
» ROHM推SOT23封装小型节能DC-DC转换器IC 助电源小型化
» 意法半导体先进高性能无线微控制器 符合将推出的网路安全保护法规
» ST推先进超低功耗STM32微控制器 布局工业、医疗、智慧量表和消费电子市场


刊登廣告 新聞信箱 读者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 远播信息股份有限公司版权所有 Powered by O3  v3.20.1.HK83T1VNZCSSTACUKR
地址:台北数位产业园区(digiBlock Taipei) 103台北市大同区承德路三段287-2号A栋204室
电话 (02)2585-5526 #0 转接至总机 /  E-Mail: webmaster@ctimes.com.tw