会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 复杂事件处理 / 一种分布式复杂事件处理系统

一种分布式复杂事件处理系统

申请号 CN201410789897.0 申请日 2014-12-17 公开(公告)号 CN104572859A 公开(公告)日 2015-04-29
申请人 北京邮电大学; 发明人 程渤; 陈俊亮; 李敏;
摘要 本发明公开一种分布式复杂事件处理系统,该系统包括:资源接入子系统,用于将异构数据以预设的命名结构发送到分布式事件分发通信子系统;复杂事件处理子系统,用于将用户的数据请求发送到分布式事件分发通信子系统中并获取具有预设的命名结构的数据之后,以预设的复杂事件过滤规则对数据进行处理,得到复杂事件处理结果并将复杂事件处理结果以预设的命名结构发送到分布式事件分发通信子系统中;分布式事件分发通信子系统,用于管理具有预设的命名结构的数据。本发明的系统以事件为中心的数据处理方式,根据实际生活的复杂应用场景,灵活多变的提供各种复杂场景的业务需求服务,支撑应用层的场景需求。
权利要求

1.一种分布式复杂事件处理系统,其特征在于,所述系统包括:资源接入子系统、复杂事件处理子系统以及分布式事件分发通信子系统;

所述资源接入子系统,用于将异构数据以预设的命名结构发送到所述分布式事件分发通信子系统中,所述异构数据包括串口设备数据以及网关设备数据;

所述复杂事件处理子系统,用于将用户的数据请求发送到所述分布式事件分发通信子系统中并获取具有预设的命名结构的数据之后,以预设的复杂事件过滤规则对所述数据进行处理,得到复杂事件处理结果并将所述复杂事件处理结果以预设的命名结构发送到所述分布式事件分发通信子系统中;

所述分布式事件分发通信子系统,用于管理具有预设的命名结构的数据,所述管理包括接收、发送。

2.根据权利要求1所述的系统,其特征在于,所述分布式事件分发通信子系统为采用发布Publish/订阅Subscribe通信范型的分布式事件分发通信子系统;

相应地,所述预设的命名结构为主题模式,所述主题模式由主题标题Title以及主题内容Content组成,所述主题标题Title包括主题名称Topic;

相应地,在所述复杂事件处理子系统中,所述用户的数据请求为用户的订阅请求,所述订阅请求包括主题名称Topic;

相应地,在所述分布式事件分发通信子系统中,所述接收为发布,所述发送为订阅。

3.根据权利要求2所述的系统,其特征在于,所述复杂事件处理子系统,包括:复杂事件数据源单元、事件过滤规则单元以及复杂事件监听单元;

所述复杂事件数据源单元,用于从将用户的订阅请求发送到所述分布式事件分发通信子系统中并获取具有预设的命名结构的数据,并将所述具有预设的命名结构的数据传输到所述事件过滤规则单元;

所述事件过滤规则单元,用于根据预设的复杂事件过滤规则,对所述具有预设的命名结构的数据进行过滤,得到复杂事件处理结果并将所述复杂事件处理结果传输到所述复杂事件监听单元;

所述复杂事件监听单元,用于对所述复杂事件处理结果以预设的命名结构发布到所述分布式事件分发通信子系统中。

4.根据权利要求3所述的系统,其特征在于,所述复杂事件数据源单元,包括:订阅子单元、封装子单元、事件实例构造子单元以及注册子单元;

所述订阅子单元,用于在接收到用户的订阅请求之后,将所述订阅请求发送到所述分布式事件分发通信子系统中,并从所述分布式事件分发通信子系统中获取至少一个主题模式,所述主题模式的主题名称Topic与所述订阅请求中的主题名称相同,并将所述主题模式传输到所述封装子单元;

所述封装子单元,用于从所述主题模式中获取主题内容Content,并将所述主题内容Content与主题名称Topic封装为事件类型,并将所述事件类型发送到所述事件实例构造子单元;所述事件类型包括事件属性及事件类型名称,所述事件属性为所述主题内容Content,所述事件类型名称为所述主题名称Topic;

所述事件实例构造子单元,用于根据所述事件类型,构造至少一个事件实例,并将所述事件实例传输到所述注册子单元;

所述注册子单元,用于对所述事件实例进行注册,并将所述事件实例传输到所述事件过滤规则单元;

相应地,所述事件过滤规则单元,用于根据根据预设的复杂事件过滤规则,对所述事件实例进行过滤,将满足所述复杂事件过滤规则的事件实例作为复杂事件处理结果,并将所述复杂事件处理结果传输到所述复杂事件监听单元。

5.根据权利要求4所述的系统,其特征在于,所述复杂事件监听单元,包括:复杂事件处理子单元,用于在接收到用户自定义的主题模式之后,将所述复杂事件处理结果按照用户自定义的主题模式生成相应的主题模式,并将生成的主题模式发送到复杂事件发布子单元;

复杂事件发布子单元,用于将所述生成的主题模式发布到所述分布式事件分发通信子系统中。

6.根据权利要求4所述的系统,其特征在于,所述复杂事件监听单元,包括:复杂事件处理子单元,用于将所述复杂事件处理结果按照所述订阅子单元获取的主题模式生成相应的主题模式,并将生成的主题模式发送到复杂事件发布子单元;

复杂事件发布子单元,用于将所述生成的主题模式发布到所述分布式事件分发通信子系统中。

说明书全文

一种分布式复杂事件处理系统

技术领域

[0001] 本发明涉及计算机技术领域,具体涉及一种分布式复杂事件处理系统。

背景技术

[0002] 随着信息技术的发展,数据的规模越来越大,数据种类越来越多样化,数据的来源越来越多,人类正在进入“大数据”时代。大数据必然导致移动计算、网格计算以及普适计算平台的快速发展,一方面是数据规模、种类、来源的几何级增长,另一方面是实时处理海量数据的迫切需求。另外,随着物联网技术的发展,分布式环境中消息交互越来越频繁。
[0003] 在分布式事件消息分发系统中,发布/订阅通信系统是普适环境中进行信息共享、事件分发的重要手段之一。主动推送型的发布/订阅通信系统,作为事件消息中间件的要求越来越高,应用也越来越广泛。
[0004] 现有的信息系统在处理复杂事件(Complex Event,CE)时,无法保证高吞吐量、低响应时间和复杂计算。现有的基于集中式的复杂事件处理系统,当数据增大时,这种系统需要更多的系统资源和更加强大的实时计算能力,同时由于网络拥塞、单点失效和网络状况的不稳定性因素等问题,导致基于集中式的复杂事件处理系统的性能不高且没有良好的稳定性,也没有很好的可伸缩性。

发明内容

[0005] 本发明所要解决的技术问题是现有的基于集中式的复杂事件处理系统,当数据增大时,这种系统需要更多的系统资源和更加强大的实时计算能力,同时由于网络拥塞、单点失效和网络状况的不稳定性因素等问题,导致基于集中式的复杂事件处理系统的性能不高且没有良好的稳定性,也没有很好的可伸缩性的问题。
[0006] 为此目的,本发明提出一种分布式复杂事件处理系统,所述系统包括:资源接入子系统、复杂事件处理子系统以及分布式事件分发通信子系统;
[0007] 所述资源接入子系统,用于将异构数据以预设的命名结构发送到所述分布式事件分发通信子系统中,所述异构数据包括串口设备数据以及网关设备数据;
[0008] 所述复杂事件处理子系统,用于将用户的数据请求发送到所述分布式事件分发通信子系统中并获取具有预设的命名结构的数据之后,以预设的复杂事件过滤规则对所述数据进行处理,得到复杂事件处理结果并将所述复杂事件处理结果以预设的命名结构发送到所述分布式事件分发通信子系统中;
[0009] 所述分布式事件分发通信子系统,用于管理具有预设的命名结构的数据,所述管理包括接收、发送。
[0010] 可选的,所述分布式事件分发通信子系统为采用发布Publish/订阅Subscribe通信范型的分布式事件分发通信子系统;
[0011] 相应地,所述预设的命名结构为主题模式,所述主题模式由主题标题Title以及主题内容Content组成,所述主题标题Title包括主题名称Topic;
[0012] 相应地,在所述复杂事件处理子系统中,所述用户的数据请求为用户的订阅请求,所述订阅请求包括主题名称Topic;
[0013] 相应地,在所述分布式事件分发通信子系统中,所述接收为发布,所述发送为订阅。
[0014] 可选的,所述复杂事件处理子系统,包括:复杂事件数据源单元、事件过滤规则单元以及复杂事件监听单元;
[0015] 所述复杂事件数据源单元,用于从将用户的订阅请求发送到所述分布式事件分发通信子系统中并获取具有预设的命名结构的数据,并将所述具有预设的命名结构的数据传输到所述事件过滤规则单元;
[0016] 所述事件过滤规则单元,用于根据预设的复杂事件过滤规则,对所述具有预设的命名结构的数据进行过滤,得到复杂事件处理结果并将所述复杂事件处理结果传输到所述复杂事件监听单元;
[0017] 所述复杂事件监听单元,用于对所述复杂事件处理结果以预设的命名结构发布到所述分布式事件分发通信子系统中。
[0018] 可选的,所述复杂事件数据源单元,包括:订阅子单元、封装子单元、事件实例构造子单元以及注册子单元;
[0019] 所述订阅子单元,用于在接收到用户的订阅请求之后,将所述订阅请求发送到所述分布式事件分发通信子系统中,并从所述分布式事件分发通信子系统中获取至少一个主题模式,所述主题模式的主题名称Topic与所述订阅请求中的主题名称相同,并将所述主题模式传输到所述封装子单元;
[0020] 所述封装子单元,用于从所述主题模式中获取主题内容Content,并将所述主题内容Content与主题名称Topic封装为事件类型,并将所述事件类型发送到所述事件实例构造子单元;所述事件类型包括事件属性及事件类型名称,所述事件属性为所述主题内容Content,所述事件类型名称为所述主题名称Topic;
[0021] 所述事件实例构造子单元,用于根据所述事件类型,构造至少一个事件实例,并将所述事件实例传输到所述注册子单元;
[0022] 所述注册子单元,用于对所述事件实例进行注册,并将所述事件实例传输到所述事件过滤规则单元;
[0023] 相应地,所述事件过滤规则单元,用于根据根据预设的复杂事件过滤规则,对所述事件实例进行过滤,将满足所述复杂事件过滤规则的事件实例作为复杂事件处理结果,并将所述复杂事件处理结果传输到所述复杂事件监听单元。
[0024] 可选的,所述复杂事件监听单元,包括:
[0025] 复杂事件处理子单元,用于在接收到用户自定义的主题模式之后,将所述复杂事件处理结果按照用户自定义的主题模式生成相应的主题模式,并将生成的主题模式发送到复杂事件发布子单元;
[0026] 复杂事件发布子单元,用于将所述生成的主题模式发布到所述分布式事件分发通信子系统中。
[0027] 可选的,所述复杂事件监听单元,包括:
[0028] 复杂事件处理子单元,用于将所述复杂事件处理结果按照所述订阅子单元获取的主题模式生成相应的主题模式,并将生成的主题模式发送到复杂事件发布子单元;
[0029] 复杂事件发布子单元,用于将所述生成的主题模式发布到所述分布式事件分发通信子系统中。
[0030] 相比于现有技术,本发明的分布式复杂事件处理系统以分布式事件消息分发系统为数据源,事件为中心的数据处理方式,依托于统一消息空间,根据实际生活的复杂应用场景,灵活多变的提供各种复杂场景的业务需求服务,支撑应用层的场景需求。

附图说明

[0031] 图1示出了一种分布式复杂事件处理系统示意图;
[0032] 图2示出了一种复杂事件处理子系统示意图;
[0033] 图3示出了一种复杂事件数据源单元示意图;
[0034] 图4示出了一种复杂事件监听单元示意图;
[0035] 图5示出了一种分布式复杂事件处理系统与集中式复杂事件处理系统的吞吐率比较示意图。

具体实施方式

[0036] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0037] 如图1所示,本实施例公开一种分布式复杂事件处理系统,所述系统可包括:资源接入子系统、复杂事件处理子系统以及分布式事件分发通信子系统;
[0038] 资源接入子系统,用于将异构数据以预设的命名结构发送到所述分布式事件分发通信子系统中,所述异构数据包括串口设备数据以及网关设备数据,例如RS232串口设备,TCP网关设备,UDP网关设备等;
[0039] 复杂事件处理子系统,用于将用户的数据请求发送到所述分布式事件分发通信子系统中并获取具有预设的命名结构的数据之后,以预设的复杂事件过滤规则对所述数据进行处理,得到复杂事件处理结果并将所述复杂事件处理结果以预设的命名结构发送到所述分布式事件分发通信子系统中;
[0040] 分布式事件分发通信子系统,用于管理具有预设的命名结构的数据,所述管理包括接收、发送。
[0041] 本实施例中,分布式事件分发通信子系统为采用发布Publish/订阅Subscribe通信范型的分布式事件分发通信子系统;预设的命名结构为主题模式,主题模式由主题标题Title以及主题内容Content组成,主题标题Title包括主题名称Topic;在复杂事件处理子系统中,用户的数据请求为用户的订阅请求,订阅请求包括主题名称Topic;在分布式事件分发通信子系统中,接收为发布,发送为订阅。
[0042] 如图2所示,本实施例中,复杂事件处理子系统包括:复杂事件数据源单元、事件过滤规则单元以及复杂事件监听单元;
[0043] 复杂事件数据源单元,用于从将用户的订阅请求发送到分布式事件分发通信子系统中并获取具有预设的命名结构的数据,并将具有预设的命名结构的数据传输到事件过滤规则单元;
[0044] 事件过滤规则单元,用于根据预设的复杂事件过滤规则,对具有预设的命名结构的数据进行过滤,得到复杂事件处理结果并将复杂事件处理结果传输到复杂事件监听单元;
[0045] 复杂事件监听单元,用于对复杂事件处理结果以预设的命名结构发布到分布式事件分发通信子系统中。
[0046] 如图3所示,本实施例中,复杂事件数据源单元,包括:订阅子单元、封装子单元、事件实例构造子单元以及注册子单元;
[0047] 订阅子单元,用于在接收到用户的订阅请求之后,将订阅请求发送到分布式事件分发通信子系统中,并从分布式事件分发通信子系统中获取至少一个主题模式,并将主题模式传输到所述封装子单元,主题模式的主题名称Topic与订阅请求中的主题名称相同;
[0048] 封装子单元,用于从主题模式中获取主题内容Content,并将主题内容Content与主题名称Topic封装为事件类型,并将事件类型发送到事件实例构造子单元;事件类型包括事件属性及事件类型名称,事件属性为所述主题内容Content,事件类型名称为所述主题名称Topic;
[0049] 事件实例构造子单元,用于根据事件类型,构造至少一个事件实例,并将事件实例传输到注册子单元;
[0050] 注册子单元,用于对事件实例进行注册,并将事件实例传输到事件过滤规则单元。
[0051] 本实施例中,事件过滤规则单元,用于根据根据预设的复杂事件过滤规则,对事件实例进行过滤,将满足所述复杂事件过滤规则的事件实例作为复杂事件处理结果,并将复杂事件处理结果传输到复杂事件监听单元。
[0052] 可见,在实际应用中,订阅子单元可能会从分布式事件分发通信子系统中获取多个主题模式,封装子单元相应地会封装多个事件类型,而事件实例构造子单元会对每个事件类型均生成一个或多个事件实例,则事件过滤规则单元得到的复杂事件处理结果可能包括多个事件类型,每个事件类型又包括多个事件实例。
[0053] 如图4所示,本实施例中,复杂事件监听单元,包括:
[0054] 复杂事件处理子单元,用于在接收到用户自定义的主题模式之后,将复杂事件处理结果按照用户自定义的主题模式生成相应的主题模式,并将生成的主题模式发送到复杂事件发布子单元;
[0055] 复杂事件发布子单元,用于将生成的主题模式发布到分布式事件分发通信子系统中。
[0056] 本实施例中的复杂事件监听单元中的复杂事件处理子单元也可设计为:将所述复杂事件处理结果按照所述订阅子单元获取的主题模式生成相应的主题模式,并将生成的主题模式发送到复杂事件发布子单元。
[0057] 上述实施例公开的分布式复杂事件处理系统,依托于分布式事件分发通信子系统,根据实际生活的复杂应用场景,灵活多变提供各种复杂场景的业务需求服务,使开发人员能够开发端到端的业务解决方案、场景分析案例、web应用程序等,以解决生活生产的实际需要和业务请求。
[0058] 上述实施例公开的分布式复杂事件处理系统中分布式事件分发通信子系统和复杂事件处理子系统之间形成一个可信、可控、可扩的复杂事件实时处理机制和虚拟数据服务平台。复杂事件处理子系统的事件源来于分布式事件分发通信子系统,实现事件源的灵活性以及与复杂事件处理子系统的无缝连接,保证事件数据源的可配置性,经过事件过滤规则的筛选,将结果发布到分布式事件分发通信子系统中,这样不仅能够保证复杂事件处理在更复杂的情景感知场景的合理运用,并且能够很好的使通信的参与者在空间、时间和控制流上完全解耦。
[0059] 上述实施例公开的分布式复杂事件处理系统中的资源接入子系统可连接各种业务场景所必须的设备,如传感器类,温度传感器,温度传感器;探测类设备,如声音阵列、低空侦查飞行器、红外线传感器等等。
[0060] 上述实施例公开的分布式复杂事件处理系统中的命名规则,可以如下实施:
[0061] 主题根节点统一命名为all,基本规则是:主题名称Topic=上一级名称lastLevelName+“:”+当前级名称currentLevelName,命名方式是使用帕斯卡命名方式,主题名称的首字母必须为26个大写字母中的任一个,变量名只能是字母(a-z,A-Z),数字(0-9),下划线(_)的组合,并且之间不能包含空格,数字不能放在变量名首位。主题名字要使用有意义的名称,通过变量名能大概反映出其具体的用途;如温度传感器1命名为TemperatureSensor1;并且服从命名规范,在命名时使用一致的做法。最重要的一点是所有的主题名称Topic不能重复,不忽略大小写,保持Topic在整个结。
[0062] 事件类型的命名规则是:事件类型名称eventName=主题名称Topic+“Event”。
[0063] 简单事件场景:订阅一个主题名称Topic,如温度传感器1相关的主题,all:Sensor:TemperatureSensor1,分布式复杂事件处理系统中的封装子单元根据主题模式,自动生成对应的事件类型TemperatureSensor1Event;事件实例构造子单元根据事件类型,构造至少一个事件实例;事件过滤规则单元根据预先编辑好的单一事件过滤规则,如simpleFilterRule1,过滤事件实例;复杂事件处理子单元在接收到用户自定义的主题模式(如主题模式的主题名称为AlarmTemperature)之后,将简单事件处理结果按照用户自定义的主题模式生成相应的主题模式,并将生成的主题模式发送到复杂事件发布子单元;复杂事件发布子单元,用于将生成的主题模式发布到分布式事件分发通信子系统中。
[0064] 复杂事件场景:订阅多个主题名称Topic,如订阅两种主题,温度传感器1相关的主题,all:Sensor:TemperatureSensor1和湿度传感器1相关的主题,all:Sensor:HumitiditySensor1,分布式复杂事件处理系统中的封装子单元根据主题模式,自动生成对应的事件类型TemperatureSensor1Event,自动生成对应的事件类型:
[0065] TemperatureSensor1Event和HumitiditySensor1Event;事件实例构造子单元根据上述事件类型,对事件类型TemperatureSensor1Event构造至少一个事件实例;对事件类型HumitiditySensor1Event构造至少一个事件实例;事件过滤规则单元根据预先编辑好的复杂事件过滤规则,如complexFilterRule1,过滤事件实例;复杂事件处理子单元在接收到用户自定义的主题模式(如主题模式的主题名称为AlarmInformation)之后,将复杂事件处理结果按照用户自定义的主题模式生成相应的主题模式,并将生成的主题模式发送到复杂事件发布子单元;复杂事件发布子单元,用于将生成的主题模式发布到分布式事件分发通信子系统中。
[0066] 分布式事件分发通信子系统,采用按级别分层次组织的创建策略,按照结构化命名将所有主题组织成一颗主题树,并且每种主题对应一种主题模式。结构化命名,能够保证主题命名的系统性和唯一性,并且便于管理不同层次的主题,同时基于主题树,订阅者可以实现多个主题的一次性订阅,即订阅者可以通过订阅任意一颗子树实现多个主题的一次性订阅。主题模式,实现了主题名称Topic对应数据格式的规范定义和统一封装,这种封装具有普适性,针对不同的消息,封装格式和过程相同。
[0067] 订阅者或者发布者通过各种智能终端和移动终端,发布或者订阅相关主题。不同的角色,有对应的模块封装进行信息的处理和封装。发布者和订阅者都必须依据主题模式,封装信息发布主题信息,或者对订阅的主题信息合理解析。
[0068] 每一个主题名称Topic都一一对应一定格式的主题模式。有一种特殊情况,用户创建主题名称Topic时,没有创建对应格式的主题模式,会有默认主题模式模式,这种模式与其他的主题的区别是主题内容Content部分,没有一定格式,只是简单文本的集合。主题模式,有两部分组成,一部分是主题标题Title部分,包含主题名称Topic和独一的URL;另一部分是主题内容Content部分,主题内容Content包含多个属性标签,每个标签有三部分,分别是属性类型、属性名字、属性值。其中,属性类型和属性名字不能为空,但属性值可以为空,如果属性值为空表示当前情况下,没有承载信息。
[0069] 发布者创建主题并上传主题模式时,会分别有话题验证模块进行主题命名合法化和主题模式审核,以确保主题树的健壮性和良好的组织性。
[0070] 复杂事件吞吐率是评估一个复杂事件处理系统性能的重要指标。图5示出了本实施例中分布式复杂事件处理系统与现有集中式复杂事件处理系统吞吐量的比较结果,图5中数据窗口设置为3*106,并且规定事件流中每次产生的事件为106个,可见,随着事件数模型的数量级增加,计算消耗增大,结点负载压力增大,而且事件数量增加导致分布式事件分发通信子系统的数据负载量增加,从而导致处理结果的延迟,所以两者的吞吐率总体趋势下降,性能影响较大,但是,从图中可明显看出,用集中式架构,当数据流大时,网络负载增加,单个节点的处理效率降低,那么性能下降越大。分布式复杂事件处理系统性能整体上优于集中式复杂事件处理引擎。
[0071] 虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。