中国航空工业集团公司西安航空计算技术研究所,陕西西安710068
摘要:复杂事件处理系统需要有效地处理和管理来自各个节点的海量数据。分析系统要求全天候的可用性,因此在部署和管理处理逻辑方面存在诸多挑战。为了解决上述问题,本文复杂事件处理系统与发布订阅技术结合起来,提供一种动态的、支持异构平台的复杂事件处理模型,此外,DDS规范支持动态主题、类型扩展的功能,极大的提升了系统的可扩展性以及灵活性。
关键字:实时分析,动态主题、复杂事件处理
新兴物联网,大数据和实时数据流分析应用(例如智能城市,智能能源网,生物监控,环境监测,车队监控和智能制造)需要有效地处理和管理大量数据,以便进行实时分析以支持及时决策和及时响应。实时分析的其他应用领域包括:社交网络、股票市场分析、IT 基础设施监控等。数据流是由各种固定和移动传感器生成的无限数据流,或者现代普适/移动物联网应用中使用的设备。然而,在数据中心或云上以分布式方式部署和管理这些数据流的处理逻辑存在挑战,主要包括:高度动态性、异构性和节点数量多。
特别是,在不停止整个系统的情况下,建立分布式数据流处理环境或动态修改其处理逻辑会带来极大的操作成本。这种动态变化正在成为未来应用场景中的主要需求。在数据流处理技术中,复杂事件处理(CEP,Complex Event Processing)是最完整的模型之一。它将数据项看作来自不同源的事件通知。本文建立一个基于实时数据分发服的CEP复杂事件处理机制。其主要优点包括,灵活组网、支持服务质量(QoS)、动态扩展主题等。
数据分发服务 (DDS)标准定义以数据为中心的发布/订阅通信模型。它提供高性能通信,具有可扩展性和高可用性,支持服务质量 (QoS)可适用与不同的应用场景。DDS允许跨编程语言和操作系统平台完成通信节点的自动发现。DDS 主题对应传输的消息,发布方与订阅方通过主题建立联系。DDS 规范提供了大量 QoS 功能,例如通信可靠性、延迟或传输优先级、数据持久性、节点发现机制等。
3.以数据为中心的动态模型设计
在动态分布式复杂事件处理系统中,设计通信层(通信中间件、数据对象、编组等)用于分发数据,设计处理层实现数据处理机制,包括:事件处理代理(EPA)和事件处理网络(EPN)、CEP引擎、事件类型等。在一些场景中,无法事先知道要检测的所有事件类型和情况,因此负责监控活动的团队必须能够实时定义这些事件和情况,以支持不间断的监控。在动态场景中,动态分布式复杂事件处理系统处理和通信层必须能够动态处理这些逻辑实体的定义,并保持这些层彼此一致。
为了做到这一点, DDS需要负责传输的主题,以及事件类型的建模,还应保留对DCEP系统实体的描述。全局数据空间将保留由事件类型的全局字典,以及动态分布式复杂事件处理系统实体的定义,例如:作为EPA、EPN、CEP规则等,以及任何所需处理节点中这些实体的部署信息。
动态模型方案包括三个主要功能:一是定义事件类型;二是生成和管理动态DDS主题,三是使用上述服务的动态分布式复杂事件处理系统的处理层,它定义了动态分布式复杂事件处理系统实体和实体部署信息。在静态方法中,处理层和通信层中的事件类型映射需要由外部机制执行,这些外部机制为处理层中的每个现有事件类型生成并跟踪静态DDS主题,但在本文中,当定义了事件类型时,处理层与通信层对其都有相同的描述,并且自动为该类型创建动态DDS主题。该功能是利用动态DDS主题的扩展规范实现的。
动态模型在以下方面带来好处:(1)使系统解耦,增加互操作性;(2)降低了管理、更新和可维护性的复杂性。使用此方法事件处理代理,能以动态方式定义使用的数据类型,并侦听该类型的消息。这有助于动态部署发布者、订阅者。例如,可以在运行时定义实现处理逻辑,只需要将事件类型的规范写入元数据服务,然后定义事件处理代理及其引用这些类型的规则。由于CEP规则引用的事件类型位于同一个全局数据空间中,与它们相关的动态DDS主题相对应,因此动态部署是无缝的。
4. 动态分布式复杂事件处理系统
动态分布式复杂事件处理系统是一个遵循集群分布模型的系统。该集群具有高吞吐量和低延迟的特点,还需要支持检测事件生产者、消费者和事件数量的弹性伸缩。
图1 基于DDS的动态分布式复杂事件处理系统
动态分布式复杂事件处理系统使用以数据为中心的模式进行通信和处理事件。每个处理节点上部署一个DDS服务,同时建立事件对应的主题,以及发送和接收主题所需的数据写者和数据读者。系统初始化阶段,数据写者和数据读者可以通过心跳消息进行握手,建立路由关系,该过程有效的降低了系统组件的耦合程度。当动态分布式复杂事件处理系统的监控规则或处理规则发生改变时,我们不需要停止系统,只需要将新规则对应的主题注册到全局数据空间中、或增加新的数据写者、数据读者即可,通过通信节点的交互,可以实现新的消息路由方式。
动态分布式复杂事件处理系统中间件包含:处理节点守护程序,元数据共享层、处理层和通信层。如图1所示描述了整个系统的部署。图2详细说明了中间层和其主要内部组件。处理节点守护程序定期收集并在域内发布心跳事件,通知其他组件节点当前状态和EPA部署的可用性。
图2 中间层架构
元数据共享层提供元数据的动态定义机制。元数据共享服务是基于DDS的服务,允许共享数据类型描述,为DDS中所有参与者提供数据类型描述视图。它提供了一个访问元数据描述空间的接口。Metadata元素描述数据类型的逻辑结构。元数据实例具有名称和一组成员。每个成员具有名称和类型(例如字符串、整数等)。例如,元数据实例可以命名为“位置”,由名为“纬度”和“经度”的成员组成,都是“double”类型。该服务在D3CEP中用作全局事件类型目录。管理员系统可以通过元数据管理器应用来定义事件类型,使用元数据共享服务将元数据实例时,所有节点拥有该事件类型。
通信层实现数据传播,有两个主要功能:传播动态分布式复杂事件处理系统实体,如EPN、EPA、部署设置等;传播生产者、消费者和处理者的简单、复杂事件。因此,在该层中使用了两个主要服务: D3CEP实体服务和动态主题服务。D3CEP实体服务是用于定义实体管理、部署信息并将其发布到域中。一个部署状态,它是系统当前配置状态的快照。一个部署状态包含一组定义的EPN,每个EPN由一组EPA组成,当处理节点接收到部署状态时,将现有EPA映射到处理节点。动态主题服务是通过提供简单的数据描述,提供了一种创建动态DDS主题的方法。D3CEP的CEP规则是动态定义的,且动态部署在分布式处理节点上,以接收事件作为输入,生成事件作为输出。这些事件需要映射到底层DDS主题以进行通信。
D3CEP处理层实现事件处理机制,支持动态定义EPA,动态部署分布式EPN。处理层使用通信层发送系统部署信息,例如EPN、EPA、EPA在不同处理节点的部署分配信息等;部署状态管理器(DSM)管理D3CEP系统的全局部署状态。每个处理节点上的DSM接收系统部署信息。当从网络接收系统部署信息,DSM获取部署并验证是否有EPA分配到其本地处理节点。如果有EPA要在本地部署,EPA实例被传递给EPA管理者在本地部署。
D3CEP_EPA有一组规则,其中每个规则由顺序的D3CEP_Statements组成,这些语句是描述CEP规则处理逻辑的事件处理语言(EPL)语句。选择EPL是因为它与SQL非常相似,并且是当前最流行的事件处理语言之一。当EPA管理器从部署状态管理器接收到D3CEP_EPA时,它执行一些操作将D3CEP_EPA部署到本地CEP引擎中,并将EPA输入和输出加入到通信层。管理员发布了部署信息,并且处理节点中的处理层执行了所有部署步骤后,部署在每个节点上的EPA将绑定到通信层中的动态DDS主题。事件类型管理器在处理层和通信层实现事件类型的集成,专门用于管理两个级别的事件类型映射。事件类型实例包含事件类型名称、其元数据描述。D3CEP系统由管理员管理,管理员负责定义事件类型的描述由系统、CEP规则、EPA和EPN交换和处理,以及这些实体在处理核心的分布式执行节点上的部署。为了便于管理,开发了两个原型应用程序:元数据管理程序和D3CEP管理程序。元数据管理程序通过读取元数据描述文件,实例化元数据共享服务并添加元数据,将其发布到DDS域中。D3CEP管理程序通过读取XML文件来简化D3CEP实体的管理,并与这些实体建立联系。
5.结论和未来工作
本文提出了一种以数据为中心的动态分布式复杂事件处理系统,它基于DDS规范实现,提升了系统的灵活性和可扩展性。本文介绍了它的架构、主要设计考虑及系统继承方式。该项研究对于将DDS用于物联网和关键任务的场景具有重要意义。
参考文献:
[1]David, L., Vasconcelos, R., Alves, L., André, R., Baptista, G., and Endler, M. 2012. A Communication Middleware for Scalable Real-time Mobile Collaboration[J]. In Enabling Technologies: Infrastructure for Collaborative Enterprises (WETICE), 2012 IEEE 21st International Workshop on. Toulouse, 54–59.
[2] Rowstron, Antony and Druschel, Peter. Pastry: Scalable, decentralized object location, and routing for large-scale peer-to-peer systems[J]. Middlew. 2001 , November 2001 (2001), 329–350.
[3]RTI. 2011. Integrating RTI Data Distribution Service Applications with Oracle CEP[R]. Real-Time Innov. (2011), 1–9.
[4] Zhou, Q., Xiong, Z., Zhan, Z., You, T., Jiang, N, The mapping mechanism between distributed integrated modular avionics and data distribution service[J]. In: Proc. of the 12th Int. Conference on Fuzzy Systems and Knowledge Discovery (FSKD), pp. 2502–2507
作者:吕广喆 ;西安航空计算技术研究所;高级工程师;研究方向:嵌入式分布式系统。邮箱:guangzhe_lv@163.com 电话:13772025610 出生年月1987.11.9