APP下载

用于决策的电网知识融合工具包

2020-01-16杨波魏军钱晓东杨彬

电子技术与软件工程 2019年22期
关键词:解析器工具包体系结构

文/杨波 魏军 钱晓东 杨彬

在有关基于传感器和知识的决策支持系统(DSS)的最新研究中,重点放在事件驱动的方法上。这种方法的体系结构与传统的以DSS 为中心的数据库和以过程为中心的体系结构显着不同。在许多不同的应用领域(例如预警系统,环境监控,交通管理或命令与控制)中,需要对传感器数据进行近实时处理以提供决策支持。本文介绍了该电网知识融合工具包的设计和结构,以及其初始实现和我们在使用该工具包方面的经验。

1 介绍

在有关基于传感器和知识的决策支持系统(DSS)的最新研究中,重点放在事件驱动的方法上。这种方法的体系结构与传统的以DSS 为中心的数据库和以过程为中心的体系结构显着不同。在许多不同的应用领域(例如预警系统,环境监控,交通管理或命令与控制)中,需要对传感器数据进行近实时处理以提供决策支持。此类DSS 的事件驱动的体系结构和设计概念例如由J.Dunkel,A.Fernandez,R.Ortiz,and S.Ossowski[1],O.Arslan and G.Inalhan[2]

和 T.Everding and T.Foerster[3]提出。这些方法为(通常是原始的)传感器数据集成了(复杂的)事件处理,但是没有向时空和语义事件处理提供灵活的扩展,而在更高的抽象级别上,更复杂的知识融合任务需要这些扩展。[4]在我们的方法中,我们提出了一个灵活的基于组件的工具包,用于基于事件的知识融合以进行决策。本文介绍了该电网知识融合工具包的设计和结构,以及其初始实现和我们在使用该工具包方面的首次经验。

2 电网知识融合工具包

电网知识融合工具包的主要目的是提供一个用于复杂事件处理(CEP)的平台,即一个平台,用于关联从不同传感器和系统发出的传入事件流,以提供更高级别的信息。事件驱动架构是CEP 解决方案的架构范例。事件流进入系统,并根据复杂的事件模式进行分析和匹配。用于指定事件模式并与之匹配的一种广泛采用的技术是使用基于规则的系统。

另一个强大的范例是基于组件的体系结构。基于组件的体系结构提供关注点的分离,使用可互换模块维护服务的不同变体的能力,并通过服务容器提供生命周期控制和其他通常需要的功能来促进轻量级模块的使用。

电网知识融合工具包(Power Grid Knowledge Fusion Toolkit)背后的想法是将基于规则的系统与组件和服务范例结合起来。这具有以下优点:

(1)快速部署,弥补了不断变化的需求;

(2)模块化可插拔服务,在集成不同的传感器系统或监视或决策支持系统方面提供了灵活性;

(3)外部组件的集成。

图1a 展示了该工具包的一般结构。基本事件处理功能由规则引擎提供,该规则引擎连接到输入和输出队列。分析传入的事件,如果检测到复杂事件,则通过输出队列将其发送到连接的侦听器。这种基本结构构成了轻量级可插拔事件处理模块(程序包)的容器,这些模块定义了要使用的实际处理规则。

软件包或插件包含:

(1)规则和连续查询,用于定义复杂的事件模式。

(2)事件类型,用于定义事件结构。

(3)其他组件,如软件包初始化程序,解组器和编组器,用于将事件对象从外部表示形式转换为外部表示形式(例如,XML,JSON)以及特定于程序包的组件(例如,用于连接外部数据库)。

像部署在应用程序服务器上的组件一样,程序包也可以加载和卸载,激活和停用。有不同类型的程序包提供不同级别的功能。

服务器软件包提供了基于常规规则的事件和情况处理环境,例如处理控制和测试事件;此外,还集成了通用语义解析器和时空解析器,以提供系统范围的功能。

域包为域或应用程序库提供标准事件和规则,以及将域本体馈送到语义解析器中。

应用程序包提供实现特定服务的应用程序级事件类型和规则。

由于所有通信都是通过发送和接收事件来完成的,因此该工具包允许功能的分布式部署,这为该方法增加了另一个面向组件的维度(图1b)。

3 实施

我们已经取得了成功的经验,将不同的数据源集成到电网预警系统(PGTEWS)的IIP中。这是通过使用工业级JEE 应用服务器和Java Messaging(JMS)作为接收和提供数据的标准接口来实现的。为实现知识融合工具包选择了相同的技术基础。为了能够将不同的订户连接到消息传递基础结构,使用了JMS 主题而不是JMS 队列。如果一个项目使用不同的传输机制,或者非Java 平台上实现,也可用来实施开源和商业工具JMS 的,例如像其他平台-adapters 微软的.NET - platform。为了促进事件处理功能,我们并入了JBOSS Drools Fusion,这是一个开源CEP 和规则处理系统,具有以下功能:

(1)多线程异步事件流;

(2)支持时间推理;

(3)事件垃圾收集;

(4)缺乏事件的推理Drools 规则具有事件操作结构。

图1:系统概念

Drools 的固有功能可以通过提供静态Java 方法和字段的Java 类进行扩展,这些方法和字段在Drools 上下文中称为全局变量。为了实现电网数据源和CEP 之间的松散耦合,我们决定使用文本消息代替二进制编码的内容。消息格式本身取决于应用程序上下文,并且必须转换为可以为所选CEP 实现解释的格式。因此,有一个Java 接口,必须由工具箱用户实现,以将文本消息转换为适合与Drools Fusion 进行通信的Java 对象。转换函数的名称以及将用于处理的事件流的名称都是消息参数。由于JEE 应用程序服务器为其组件(例如,Enterprise Java Bean)提供与应用程序无关的运行时服务,因此知识融合工具包的目的是为知识组件(包)提供类似的服务,以下称为Drools 组件(DC)。

3.1 drools组件

drools 组件是使用JBoss Drools 对复杂事件处理系统的应用程序逻辑的定义和部署进行模块化的抽象。Drools 组件已部署在Web 服务器上并正在动态加载。为了管理DC 的部署,有一个功能接口,可以将其合并到应用程序服务器的管理控制台中。Drools 组件被实现为一个jar 文件,其中包含处理规则,事件对象类以及编组器和解组器以及其他与应用程序相关的组件。它的清单可能包含以下属性:

(1)globals-classes:逗号分隔的全局实现的完全合格的类名列表;

(2)在给定的罐子里。如果未指定此属性,则将没有可用的全局变量;

(3)initializer-classes:给定jar 中会话初始化程序实现的完全限定类名的逗号分隔列表。如果未指定此属性,那么将没有会话初始化程序可用;

(4)rule-dir:此jar 中包含Drools dlrrules 的目录的名称。该规则目录及其子目录中包含的所有规则将被加载到Drools 知识包中。

根据drools 规则中所需的事件类型,必须至少有一个DroolsEventCreator接口的实现,才能将文本消息转换为Java 对象。Drools 组件将使用专用的类加载器加载,将根据给定的初始化协议实例化全局变量和会话初始化程序,以确保规则系统的一致性。Power Grid Knowledge Fusion Toolkit 提供两个DC,分别用于时空和基于本体的语义推理。

3.2 语义解析器

语义解析器提供谓词,以测试实体之间的包含关系,而与所使用规则系统的实际知识库无关。本体解析器在开源JENA 语义Web 框架的基础上实现为Drools 组件;本体是使用开源工具Protegé 开发的。

3.3 时空解析器

时空解析器提供了计算传入事件之间的时空关系的功能。这用于在单个步骤中检测此类事件之间的空间和时间相关性。为了对传入事件的时空属性进行建模,我们使用基于快照的表示形式(即地理形状和时间戳)。PostgreSQL 数据库与PostGIS 扩展一起用于空间数据;引入了有效时间属性以添加时间维度。

4 总结

此处介绍的电网知识融合工具包(Power Grid Knowledge Fusion Toolkit)可以从传入数据中提取更高级别的信息,并为Drools Components 提供了运行时环境。引入的Drools Components 概念可以实现规则和相应Java 扩展的模块化。我们参与的一个研究项目说明了我们的方法。正在进行的工作包括性能改进和对drools 组件的监控。

猜你喜欢

解析器工具包体系结构
Epigallocatechin-3-gallate exerts antihypertensive effects and improves endothelial function in spontaneously hypertensive rats
基于多解析器的域名隐私保护机制
基于Wireshark的列控中心以太网通信协议解析器的研究与实现
如何防御DNS陷阱?常用3种DNS欺骗手法
一种基于无关DNS的通信隐私保护技术研究
基于粒计算的武器装备体系结构超网络模型
作战体系结构稳定性突变分析
基于DODAF的装备体系结构设计
基于云计算的航天器控制系统自组织体系结构
Microchip推出PIC32蓝牙入门工具包