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

复杂事件处理方法、装置及终端设备

申请号 CN202010912588.3 申请日 2020-09-02 公开(公告)号 CN112181477A 公开(公告)日 2021-01-05
申请人 广州市双照电子科技有限公司; 发明人 宣钢炜; 罗明星; 刘达明;
摘要 本申请公开了一种复杂事件处理方法、装置及终端设备,所述方法包括:获取由用户终端根据选定的数据源从服务器选取的多个事件数据;其中,数据源根据用户终端接收到的配置指令进行选取;根据多个事件数据生成多个复杂事件,以根据多个复杂事件创建多个CEP算子;在接收到决策请求时,获取由用户终端配置的规则数据包,将规则数据包中的多个规则数据与多个CEP算子进行一一匹配,以基于匹配关系形成多个决策任务后,根据决策请求执行多个决策任务,生成决策结果。
权利要求

1.一种复杂事件处理方法,其特征在于,包括:

获取由用户终端根据选定的数据源从服务器选取的多个事件数据;其中,所述数据源根据用户终端接收到的配置指令进行选取;

根据所述多个事件数据生成多个复杂事件,以根据所述多个复杂事件创建多个CEP算子;

在接收到决策请求时,获取由所述用户终端配置的规则数据包,将所述规则数据包中的多个规则数据与所述多个CEP算子进行一一匹配,以基于匹配关系形成多个决策任务后,根据所述决策请求执行所述多个决策任务,生成决策结果。

2.根据权利要求1所述的复杂事件处理方法,其特征在于,根据所述多个事件数据生成多个复杂事件,包括:根据所述事件数据,以及从所述用户终端接收到的所述事件数据的配置信息,生成复杂事件;其中,所述配置信息包括所述事件数据中各子事件数据之间的时序配置,所述子事件数据用于形成复杂事件中的单一事件。

3.根据权利要求1所述的复杂事件处理方法,其特征在于,所述执行所述多个决策任务,包括:并行执行所述多个决策任务。

4.根据权利要求1或3所述的复杂事件处理方法,其特征在于,所述根据所述决策请求执行所述多个决策任务,生成决策结果,包括:根据所述决策请求执行所述多个决策任务,获取与所述多个决策任务一一对应的多个决策信息;

根据各所述决策任务的预设权重,选取所述各预设权重中权重值最大的决策任务对应的决策信息,生成决策结果;或,根据各所述决策任务的预设权重,对各所述决策信息进行加权,生成决策结果。

5.根据权利要求1所述的复杂事件处理方法,其特征在于,所述根据所述多个复杂事件创建多个CEP算子,包括:接收通过DSL生成器根据所述多个复杂事件生成的多段DSL,通过DSL解析器解析所述多段DSL,以根据所述多段DSL创建多个CEP算子。

6.根据权利要求1所述的复杂事件处理方法,其特征在于,所述将所述规则数据包中的多个规则数据与所述多个CEP算子进行一一匹配,以基于匹配关系形成多个决策任务,包括:通过表达式引擎解析所述多个规则数据,获取与所述多个规则数据一一对应的多个规则表达式;

将所述多个规则表达式与所述多个CEP算子的预设规则表达式进行匹配,确定所述多个CEP算子与所述多个规则数据的匹配关系,以根据所述匹配关系形成多个决策任务。

7.根据权利要求1所述的复杂事件处理方法,其特征在于,所述执行所述多个决策任务,包括:根据所述多个决策任务中各所述决策任务设定的循环次数,以及所述多个决策任务中所述多个CEP算子设定的时间窗口,执行所述多个决策任务。

8.一种复杂事件处理装置,其特征在于,包括:

数据选取模块,用于获取由用户终端根据选定的数据源从服务器拉取的多个事件数据;其中,所述数据源根据用户终端接收到的配置指令进行选取;

算子创建模块,用于根据所述多个事件数据生成多个复杂事件,以根据所述多个复杂事件创建多个CEP算子;

事件处理模块,用于在接收到决策请求时,获取由所述用户终端配置的规则数据包,将所述规则数据包中的多个规则数据与所述多个CEP算子进行一一匹配,以基于匹配关系形成多个决策任务后,根据所述决策请求执行所述多个决策任务,生成决策结果。

9.根据权利要求8所述的复杂事件处理装置,其特征在于,所述复杂事件处理模块具体用于:通过表达式引擎解析所述多个规则数据,获取与所述多个规则数据一一对应的多个规则表达式;

将所述多个规则表达式与所述多个CEP算子的预设规则表达式进行匹配,确定所述多个CEP算子与所述多个规则数据的匹配关系,以根据所述匹配关系形成多个决策任务。

10.一种终端设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述复杂事件处理方法的步骤。

说明书全文

复杂事件处理方法、装置及终端设备

技术领域

[0001] 本申请涉及计算机技术领域,尤其涉及一种复杂事件处理方法、装置及终端设备。

背景技术

[0002] 目前在IT业务系统中,通常通过复杂事件处理的方式来更好的实现对业务的监测和决策控制。但由于现有的复杂事件是需要通过直接撰写相应代码来进行复杂事件描述,因此在应用过程中,如果需要修改复杂事件,如增加事件、删除事件或修改事件的时序关系,往往需要对相应的代码进行大量修改来重新生成复杂事件,带来了大量的人力成本和时间成本,影响复杂事件的处理效率。

发明内容

[0003] 本申请实施例所要解决的技术问题在于,如何提高业务复杂事件处理效率。
[0004] 为解决上述问题,本申请实施例提供一种复杂事件处理方法,至少包括如下步骤:
[0005] 获取由用户终端根据选定的数据源从服务器拉取的多个事件数据;其中,所述数据源根据用户终端接收到的配置指令进行选取;
[0006] 根据所述多个事件数据生成多个复杂事件,以根据所述多个复杂事件创建多个CEP算子;
[0007] 在接收到决策请求时,获取由所述用户终端配置的规则数据包,将所述规则数据包中的多个规则数据与所述多个CEP算子进行一一匹配,以基于匹配关系形成多个决策任务后,根据所述决策请求执行所述多个决策任务,生成决策结果。
[0008] 进一步的,根据所述多个事件数据生成多个复杂事件,包括:
[0009] 根据所述多个事件数据,以及从所述用户终端接收到的所述多个事件数据的配置信息,生成多个复杂事件;其中,所述配置信息包括各所述事件数据之间的时序配置。
[0010] 进一步的,所述执行所述多个决策任务,包括:
[0011] 并行执行所述多个决策任务。
[0012] 进一步的,所述根据所述决策请求执行所述多个决策任务,生成决策结果,包括:
[0013] 根据所述决策请求执行所述多个决策任务,获取与所述多个决策任务一一对应的多个决策信息;
[0014] 根据各所述决策任务的预设权重,选取所述各预设权重中权重值最大的决策任务对应的决策信息,生成决策结果;或,
[0015] 根据各所述决策任务的预设权重,对各所述决策信息进行加权,生成决策结果。
[0016] 进一步的,所述根据所述多个复杂事件创建多个CEP算子,包括:
[0017] 接收通过DSL生成器根据所述多个复杂事件生成的多段DSL,通过DSL解析器解析所述多段DSL,以根据所述多段DSL创建多个CEP算子。
[0018] 进一步的,所述将所述规则数据包中的多个规则数据与所述多个CEP算子进行一一匹配,以基于匹配关系形成多个决策任务,包括:
[0019] 通过表达式引擎解析所述多个规则数据,获取与所述多个规则数据一一对应的多个规则表达式;
[0020] 将所述多个规则表达式与所述多个CEP算子的预设规则表达式进行匹配,确定所述多个CEP算子与所述多个规则数据的匹配关系,以根据所述匹配关系形成多个决策任务。
[0021] 进一步的,所述执行所述多个决策任务,包括:
[0022] 根据所述多个决策任务中各所述决策任务设定的循环次数,以及所述多个决策任务中所述多个CEP算子设定的时间窗口,执行所述多个决策任务。
[0023] 进一步的,还提供一种复杂事件处理装置,包括:
[0024] 数据选取模块,用于获取由用户终端根据选定的数据源从服务器拉取的多个事件数据;其中,所述数据源根据用户终端接收到的配置指令进行选取;
[0025] 算子创建模块,用于根据所述多个事件数据生成多个复杂事件,以根据所述多个复杂事件创建多个CEP算子;
[0026] 事件处理模块,用于在接收到决策请求时,获取由所述用户终端配置的规则数据包,将所述规则数据包中的多个规则数据与所述多个CEP算子进行一一匹配,以基于匹配关系形成多个决策任务后,根据所述决策请求执行所述多个决策任务,生成决策结果。
[0027] 进一步的,所述复杂事件处理模块具体用于:
[0028] 通过表达式引擎解析所述多个规则数据,获取与所述多个规则数据一一对应的多个规则表达式;
[0029] 将所述多个规则表达式与所述多个CEP算子的预设规则表达式进行匹配,确定所述多个CEP算子与所述多个规则数据的匹配关系,以根据所述匹配关系形成多个决策任务。
[0030] 进一步的,还提供一种终端设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如上述实施例所述复杂事件处理方法的步骤。
[0031] 与现有技术相比,本实施例通过设置事件的数据源,在形成多个复杂事件时直接从服务器拉取与数据源对应的事件数据以形成复杂事件,且在复杂事件处理时通过与规则数据进行匹配的方式来形成决策任务以响应决策请求,无需对复杂事件的处理进行硬编码,可以减少在复杂事件处理过程中的编程工作,并在尽可能不修改相关代码的情况下实现复杂事件的动态更新,无需中断线上服务,减少复杂事件处理过程中存在的编码以及修改成本,有效提高复杂事件处理效率。

附图说明

[0032] 图1一实施例提供的复杂事件处理方法的示例性系统架构的示意图;
[0033] 图2是一实施例提供的复杂事件处理方法的流程示意图;
[0034] 图3是一实施例提供的匹配方法的流程示意图;
[0035] 图4是一实施例提供的复杂事件处理装置的结构示意图;
[0036] 图5是一个实施例提供的终端设备的结构示意图。

具体实施方式

[0037] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0038] 现有的复杂事件处理方式,是将业务规则的相关代码编写完毕后,再编译成新的决策引擎Jar包,然后上传到Flink中替换旧的决策引擎Jar包,并重新启动决策引擎,由决策引擎根据对应的业务规则执行决策判断。但由于现有的业务规则是需要通过直接撰写相应代码来进行规则描述,因此在应用过程中,如果产生基于用户决策的变化请求,往往需要对业务规则的代码进行大量修改来重新生成规则,带来了大量的人力成本和时间成本,影响发布效率,且由于需要修改发布到决策引擎的业务规则的相关代码,因此需中断线上业务,导致整个业务系统的决策效率低下。
[0039] 为解决上述问题,如图1所示,是一实施例提供的复杂事件处理方法的示例性系统架构的示意图。系统架构可以包括第一终端110、第二终端120、决策引擎130和服务器140。决策引擎130与第一终端110、第二终端120以及服务器140通信连接,使得决策引擎120能够向第一终端110、第二终端120和服务器140发送信息或接收第一终端110、第二终端120以及服务器140发送的信息,第一终端110与服务器140通信连接,使得第一终端110能够向服务器140发送信息或接收服务器140发送的信息。通信连接可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。第一终端110和/或第二终端120具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等终端中的至少一种。服务器140可以用独立的服务器或者是多个服务器组成的服务器集群。其中,第一终端110通过用户的配置指令在用户界面上选取数据源后,根据数据源从服务器140上选取对应的多个事件数据后,通过服务器140以多个事件数据作为请求参数调用flink的提交工作任务接口,启动决策引擎130,从而在决策引擎130上根据多个事件数据生成多个复杂事件,以创建多个CEP算子,当接收到第二终端120发送的决策请求时,将从第一终端110上获得的规则数据包与多个复杂事件通过匹配的方式形成多个决策任务,以根据第二终端120发送的决策请求执行多个决策任务。
[0040] 与现有技术相比,本实施例通过设置事件的数据源,在形成多个复杂事件时直接从服务器拉取与数据源对应的事件数据以形成复杂事件,且在复杂事件处理时通过与规则数据进行匹配的方式来形成决策任务以响应决策请求,无需对复杂事件的处理进行硬编码,可以减少在复杂事件处理过程中的编程工作,并在尽可能不修改相关代码的情况下实现复杂事件的动态更新,且在生成复杂事件时只需调用flink的提交工作任务接口,快速更新决策引擎,在业务并发量较小时无需中断线上服务,减少复杂事件处理过程中存在的编码以及修改成本,有效提高复杂事件处理效率。
[0041] 下面结合附图对本公开示例实施方式进行详细说明。
[0042] 在一个实施例中,如图2所示,提供了一种复杂事件处理方法。本实施例主要以该方法应用于计算机设备来举例说明,该计算机设备具体可以是上述图1中的决策引擎130,具体包括如下步骤:
[0043] 步骤S11,获取由用户终端根据选定的数据源从服务器选取的多个事件数据。
[0044] 在一实施例中,数据源中的数据包括决策引擎与发出决策请求的终端即上述第二终端之间的对接方式如同步或异步,以及该第二终端自定义的报文字段等。其中,事件数据存储于服务器上。数据源的选取可以是通过响应用户终端的属性编辑指令展示属性编辑框,属性编辑框包括数据源输入栏,通过数据源输入栏增加、修改和删除数据源,被选取的数据源可以是一个或者多个。其中,可以在数据源输入栏内使用滑动、滚动、分页等形式陈列数据源,在此不做限定。
[0045] 在一实施例中,除通过响应用户终端的属性编辑指令外,还可通过响应用户的配置编辑指令,配置各复杂事件中所需的单一事件个数、每个单一事件之间的时序关系、每个单一事件的时间处理窗口以及每个单一事件的规则等配置。
[0046] 步骤S12,根据多个事件数据生成多个复杂事件,以根据多个复杂事件创建多个CEP算子。
[0047] 在一实施例中,一个数据源可对应多个不同的事件数据。用户终端根据被选取的一个数据源拉取多个不同的事件数据后,通过服务器在以多个事件数据作为请求参数调用flink的提交工作任务接口,启动决策引擎,使决策引擎接收多个事件数据,生成多个复杂事件,以根据多个复杂事件一一对应生成多个CEP算子。
[0048] 在一实施例中,每个复杂事件的具体生成方式为根据事件数据,以及从用户终端接收到的事件数据的配置信息,生成复杂事件。其中,配置信息包括事件数据中各子事件数据之间的时序配置,子事件数据用于形成复杂事件中的单一事件。各子事件数据的时序配置为用户通过用户终端即上述第一终端在可视化窗口中设定的多个子事件数据之间的时序关系,使多个子事件数据根据选定的时序关系进行排序。通过按照多个子事件数据的排序信息创建复杂事件的方式,能够避免在复杂事件处理过程中出现数据乱序问题。除此之外,配置信息还可是规则配置信息,即为每个复杂事件选择指定的规则数据。另外,配置信息还可是复杂事件的循环匹配次数以及复杂事件的时间窗口,其中时间窗口可为两个复杂事件之间发生的时间间隔。在形成上述配置信息后,根据多个复杂事件以及其对应的配置信息,即可创建多个CEP算子,其中一个复杂事件及其配置信息对应一个CEP算子。通过传入配置信息的方式,无需将配置信息硬编码到CEP算子中,从而方便对复杂事件进行配置修改。
[0049] 为实现CEP算子的快速创建,在一实施例中,服务器将各复杂事件和/或其对应的配置信息通过DSL生成器组装成DSL片段后,发布到决策引擎中的DSL解析器,使多个DSL片段分别通过DSL解析器进行解析,以根据多个DSL片段创建多个CEP算子。
[0050] 步骤S13,在接收到决策请求时,获取由用户终端配置的规则数据包,将规则数据包中的多个规则数据与多个CEP算子进行一一匹配,以基于匹配关系形成多个决策任务后,根据决策请求执行多个决策任务,生成决策结果。
[0051] 其中,规则数据包由用户终端即上述第一终端通过指定数据源从服务器拉取到的多个规则数据组成。
[0052] 在一实施例中,决策任务的执行方式为并行执行,从而快速响应决策请求。
[0053] 为避免多个复杂事件并发导致最终决策不准确,在一实施例中,根据决策请求执行多个决策任务,获取与多个决策任务一一对应的多个决策信息后,根据各决策任务的预设权重,选取各预设权重中权重值最大的决策任务对应的决策信息,生成决策结果;或,根据各决策任务的预设权重,对各决策信息进行加权,生成决策结果。其中,预设权重为预先设置的CEP算子对应的权重值,代表的是每个CEP算子的重要程度,决策任务的预设权重即为与其对应的CEP算子的预设权重。
[0054] 为使复杂事件能够实现动态编译和动态执行,在一实施例中,如图3所示,提供一种匹配方法,包括:
[0055] 步骤S21,通过表达式引擎解析多个规则数据,获取与多个规则数据一一对应的多个规则表达式。
[0056] 步骤S22,将多个规则表达式与多个CEP算子的预设规则表达式进行匹配,确定多个CEP算子与多个规则数据的匹配关系,以根据匹配关系形成多个决策任务。
[0057] 在一实施例中,提供了一种复杂事件处理装置。如图4所示,包括:
[0058] 数据选取模块101,用于获取由用户终端根据选定的数据源从服务器拉取的多个事件数据;其中,所述数据源根据用户终端接收到的配置指令进行选取。
[0059] 算子创建模块102,用于根据所述多个事件数据生成多个复杂事件,以根据所述多个复杂事件创建多个CEP算子。
[0060] 事件处理模块103,用于在接收到决策请求时,获取由所述用户终端配置的规则数据包,将所述规则数据包中的多个规则数据与所述多个CEP算子进行一一匹配,以基于匹配关系形成多个决策任务后,根据所述决策请求执行所述多个决策任务,生成决策结果。
[0061] 在一实施例中,算子创建模块102具体用于,根据事件数据,以及从用户终端接收到的事件数据的配置信息,生成复杂事件;其中,配置信息包括事件数据中各子事件数据之间的时序配置,子事件数据用于形成复杂事件中的单一事件。
[0062] 在一实施例中,算子创建模块102具体用于,接收通过DSL生成器根据多个复杂事件生成的多段DSL,通过DSL解析器解析多段DSL,以根据多段DSL创建多个CEP算子。
[0063] 在一实施例中,复杂事件处理模块103还用于,并行执行多个决策任务。
[0064] 在一实施例中,复杂事件处理模块103还用于,通过表达式引擎解析多个规则数据,获取与多个规则数据一一对应的多个规则表达式;将多个规则表达式与多个CEP算子的预设规则表达式进行匹配,确定多个CEP算子与多个规则数据的匹配关系,以根据匹配关系形成多个决策任务。
[0065] 在一实施例中,复杂事件处理模块103还用于,根据多个决策任务中各决策任务设定的循环次数,以及多个决策任务中多个CEP算子设定的时间窗口,执行多个决策任务。
[0066] 在一实施例中,复杂事件处理模块103还用于,根据所述决策请求执行所述多个决策任务,获取与所述多个决策任务一一对应的多个决策信息;根据各所述决策任务的预设权重,选取所述各预设权重中权重值最大的决策任务对应的决策信息,生成决策结果;或,根据各所述决策任务的预设权重,对各所述决策信息进行加权,生成决策结果。
[0067] 在一实施例中,提供了一种终端设备的结构示意图。如图5所示,该终端设备包括通过系统总线连接的处理器、存储器、输入/输出接口和缓存。其中,该终端设备的处理器用于提供计算和控制能力。该终端设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和缓存。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该终端设备的网络接口用于与外部的缓存连接,以接收缓存中的组件数据。该终端设备在处理器执行时以实现上述实施例所述的复杂事件处理方法。本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端设备的限定,具体的终端设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0068] 以上所述是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本申请的保护范围。
[0069] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。