dev2dev 首页 > 资源中心 > 技术文章
访谈系列:构建事件驱动型SOA
时间:2007-11-07
作者:Anne-Christine Strugnell, Robin Smith
浏览次数:
本文关键字:event-driven SOA, SOA, event driven architecture, EDA, EDSOA, wlrt, Service-oriented Architecture, WebLogic Event Server and WebLogic Real Time,  WebLogic Real Time, Anne-Christine Strugnell,  事件驱动型SOA,  事件驱动架构,  面向服务架构,  WebLogic Event Server 和WebLogic Real Time |
|
Arch2Arch的Anne-Christine Strugnell采访了WebLogic Time- and Event-Driven Computing的高级工程产品经理 Robin Smith,讨论了构建事件驱动型SOA所需的产品架构和概念架构。 何为事件驱动型SOA(EDSOA)? 现在,各公司每天都面临着处理大量不断增长的流经企业的业务信息的挑战。为维持公司运转必须实时处理大量的复杂数据。这些公司希望能够提高实时预测未来事件的能力,而且它们知道,这些关于当前事件的数据即使看起来没什么关联,其中包含的信息也可能对预测接下来将要发生的事件有所帮助。 所有业务都是事件驱动的——就像生命本身一样!事件驱动型SOA为组织提供了响应这些实时业务动态所需的所有能力。事件驱动型SOA结合了面向服务的架构(SOA)的发送/响应范例和事件驱动架构(EDA)的事件感知/响应范例。这些设计原则共同提供了极大的灵活性,使企业能够以很快的速度开展业务。另外,通过支持将事件作为服务,事件驱动型SOA使架构师能够针对业务问题精确地进行应用程序设计,这些业务问题通常会涉及到发送/响应范例和事件感知/响应范例。 BEA WebLogic Real Time产品和事件驱动的BEA WebLogic Event Server之间的关系是什么? BEA WebLogic Real Time(WLRT)是BEA惟一的基本运行时基础架构,由高性能的、基于标准的Java虚拟机(JVM)JRockit提供支持。这种增强的JVM具有低延迟的确定性垃圾收集功能,使企业能够明确地定义毫秒级服务级别协议。这就解决了实时应用程序中最大的一个问题:其他解决方案可能带来的相关暂停的不可预测性和长度。如果确实能够达到毫秒级,那么WebLogic Real Time正是企业所需要的。 为帮助企业确定实时应用程序中造成延迟的其他原因,我们还介绍了一个独特的新工具Latency Analyzer,可用于显示线程和事务执行时间。 BEA WebLogic Event Server(WLEvS)是一种新型独特的Java应用服务器,专门用于基于EDA的应用程序的建模和部署。虽然使用任何基于标准的JVM都可以执行它,但是它已经针对结合WLRT使用进行了优化。这种低延迟、轻量级的基于mSA的Java容器可以帮助提供复杂的事件处理和一个完整的集成容器服务任务夹。它通过将业务逻辑与正在执行的触发事件相关联,能够提供显著的性能改善。开发人员可以直接使用Java对象和受支持的Spring框架,而不用学习任何新API或开发范例。企业还可以获得应用服务器带来的所有“优秀特性”,比如,可伸缩性、可管理性、可用性和安全性。 事件驱动的产品是否能提供类似于WebLogic Real Time的软实时保证? 构建WLEvS所使用的SLA现在首次可以通过惟一的运行时层获得。这个新的Java容器还可以在预置峰值负载的情况下提供确定的毫秒级延迟的基础架构,这是高性能实时应用程序的另一个基本要求。它通过最小化线程的上下文切换和同步、调优I/O(比如套接字连接)以及合并实时调度技术和高效率内存管理来满足这个要求。与其他解决方案不同的是,WLEvS将所有的这些集成功能透明地提供给应用程序,而不需要编写任何新的API或复杂的自存储管理实现。 选择二者的条件分别是什么? 如果Java应用程序时间要求高或是时间敏感,而且对低延迟和可预测性有非常高的要求,那么请使用WLRT。 如果Java应用程序要处理大量的事件要求高的流式数据,而且有可预测性、性能和复杂事件处理方面的要求,那么请使用WLEvS。 如果您的解决方案中的Java应用程序要处理大量的流式数据,而这些数据既对时间要求高又对事件要求高,并且解决方案对低延迟、可预测性和性能都有非常高的要求,那么建议您结合使用这两个产品。 CEP是什么,为何它如此重要? 您可以认为复杂事件处理(CEP)与结构化数据的数据库管理类似——只是处理方式相反。在事件驱动的应用程序中,不是采用信息保持静态,在数据中执行查询的方式,而是采用查询保持静态,数据不断变化的方式。CEP引擎不断地过滤、关联和管理因果关系和聚合关系,所有这些操作都被实时地评估。 事件处理语言(EPL)是类似SQL的驱动CEP引擎的事件处理语言。它通过使用WHEN子句而不是IF子句扩展了SQL的传统功能,因此可以处理所需的时态约束以定义流式数据中的窗口,在流式数据中可以识别事件模式并执行相应操作。 为何金融行业对复杂事件处理有浓厚兴趣?我了解到很多有关算法交易及其与CEP的关系的信息。 CEP与所有行业都有关。它通过使用RFID和WiFi标记数据流来监控湿度、热度、重量和其他一些变量,从而使企业能够管理生产过程。远程通信公司可以将它与VOIP或视频流事件结合使用。我们还发现在军事上可以使用它进行资产跟踪或战场战术分析。在航空业中,越来越需要匹配由若干事件源引起的事件模式,比如旅客活动、登机信息事件、行李移动事件和航班状态事件等事件源。这一技术甚至可以用于博彩行业,支持需要粒度复杂实现的多个投注类型数据流。 所有上面这些用例都要求应用程序在毫秒响应时间内处理大量来自一个或多个源的事件,通常保证应用程序在繁重运算负载下能够正常运行。 特别在金融服务业中我们发现,算法交易应用程序需要获取多个实时市场数据源,而且在某些情况下,需要利用数据库中保存的一些表面看来并不相关的流式数据,然后立即执行非常复杂的事件模式以匹配取得竞争优势和很大数量的即时经济收益。 有必要了解如何编码设置CEP查询吗? EPL都是在应用程序编程方面的外部进行定义,这样有助于提高开发人员的工作效率和灵活性。事实上,您可以动态地更改应用程序相关的查询以便对变化的条件或情况进行实时响应。 如何围绕时间驱动和事件驱动(EDSOA)的产品开发应用程序?是否经常看见使用服务总线、JMS等等,还是应该保持架构更瘦? 从我前面所给出的用例可以看出,现在可以使用以前认为不可能的方式实现应用程序。可以单独使用WebLogic EDSOA产品实现某些具有特殊事务处理要求的应用程序,也可以将它与其他BEA产品结合使用以提供真正的事件驱动型SOA解决方案。 事实上,我们马上就将在dev2dev上给出EDSOA丢失航班行李的演示程序。这个演示程序说明了如何结合使用BEA WebLogic Event Server、BEA WLRT产品和BEA AquaLogic Service Bus、BEA WebLogic Server以及BEA AquaLogic BPM Suite来确认遗失包裹的“丢失事件”情况。这个模拟的机场环境明确地显示了使用这些技术可以有效地解决严重的问题,使航空公司能够提供比如今旅客预期更好的服务质量。虽然它现在只是一个演示程序,但是我可以预见,这一天早晚会来的:在出发机场登记行李,然后再也不用孤独地守候在行包传动带旁等待行李送达,无端地为等候衣服和牙刷浪费时间(行李可能已经丢失,但自己却不知道,因为航空公司没有通知)。 因为EDA需要在OSGi包、Spring Assembly File、EPN和组合套装中的其他组件之间来回浏览,开发应用程序肯定非常困难。 实际情形曾经如此,但现在有所改变。为支持WLEvS,我们将提供附加的基于Eclipse的插件,用于简化新的事件服务器应用程序的动态创建和部署(发布)。请到dev2dev网站上查找这个插件——我预期七月中旬后就可以在该网站上找到这个插件。 架构师必须确保解决方案能够有效地执行并且在成本和基础架构参数范围内提供。采用WebLogic时间驱动和事件驱动的产品对IT管理团队有什么影响? BEA WebLogic EDSOA产品家族现在使IT能够引入新型的服务和SLA,从而带来更高的收入。它还帮助IT提供更高的客户满意度和客户维持,这一点也可以增加收入。EDSOA采取主动的措施提高了灵活性, 并且可以增强企业的竞争力和降低运营成本。而且很多集成服务和具有事件关联、模式匹配和确定性垃圾收集的功能的预置Java容器可以极大地提高市场投放优势。 哪里有关于使用BEA的事件驱动型SOA的信息? BEA公司网站有很多这些产品的相关信息,Dev2Dev和Arch2Arch网站很快就会使用对开发人员和架构师的资料(包括文章和屏幕录像)进行更新,帮助加快对EDA的设计和开发的理解。从七月中旬起,这些网站还将提供附加软件,用于Eclipse IDE和监控仪表板技术的事件服务器。
参考资料
原文出处:http://dev2dev.bea.com/pub/a/2007/07/building-event-driven-soa.html
| 作者简介 |
|
Anne-Christine Strugnell 是Arch2Arch Advisor的一名编辑,同时还是一名具有多年职业生涯的技术作家,为Object Magazine编写了有关在C++中使用DLL进行开发的文章,并为Oracle编写了具有先见之明的文章“The Internet Changes Everything”(1996年)。 |
 Robin Smith |
Robin Smith 是BEA Systems的高级工程产品经理,主要负责WebLogic Time and Event Driven(TED)产品家族。 |
作者其它文章
|