CN112365239A - 一种基于事件的云服务管理处置方法及*** - Google Patents
一种基于事件的云服务管理处置方法及*** Download PDFInfo
- Publication number
- CN112365239A CN112365239A CN202011321496.4A CN202011321496A CN112365239A CN 112365239 A CN112365239 A CN 112365239A CN 202011321496 A CN202011321496 A CN 202011321496A CN 112365239 A CN112365239 A CN 112365239A
- Authority
- CN
- China
- Prior art keywords
- event
- complex
- events
- eca
- complex event
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Entrepreneurship & Innovation (AREA)
- General Physics & Mathematics (AREA)
- Operations Research (AREA)
- Tourism & Hospitality (AREA)
- Quality & Reliability (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开一种基于事件的云服务管理处置方法及***,方法包括:侦听业务构件或者WebService在流程实例执行过程中所产生消息,并根据消息确定是否构成复杂事件;将能够构成复杂事件的事件采用复杂事件的侦测算法进行复杂事件侦测,确定复杂事件是否已发生;在复杂事件发生时确定执行ECA执行规则中的动作;根据事件对应的动作在ECA规则库中查找规则执行函数;当复杂事件发生时,则确定流程模型;根据流程模型和执行函数来消耗事件。本发明公开的方法能够适应企业的动态处理业务流程的需求。
Description
技术领域
本发明涉及云服务管理技术领域,特别是涉及一种基于事件的云服务管理处置方法及***。
背景技术
随着经济的腾飞以及互联技术的迅猛发展,工作流技术从最初的办公自动化领域逐渐向其它领域渗透,并越来越多的被企业应用。业务流程管理的主要目标是实现企业日常业务流程管理中的自动化执行,是通过工作流服务***实现对相关数据、文档和人力等资源的调用,并将其应用于业务过程相应的活动节点,使得业务过程可以按照过程定义依次执行。传统的工作流模型大部分具有一个共同的特点,就是只能处理相对简单的业务过程,必须在执行前给出过程的完整定义,并且只能线性地执行。然而,随着现代企业环境的持续变化、目标的不断调整,企业的业务流程通常情况下是动态运行的,而且不同的业务流程之间也可能需要进行信息交互,这就导致了流程的复杂性,因此传统的工作流模型已经不能适应企业的动态处理业务流程的需求。
发明内容
基于此,本发明的目的是提供一种基于事件的云服务管理处置方法及***,以适应企业的动态处理业务流程的需求。
为实现上述目的,本发明提供了一种基于事件的云服务管理处置方法,所述方法包括:
步骤S1:侦听业务构件或者WebService在流程实例执行过程中所产生消息,并根据消息确定是否构成复杂事件;
步骤S2:将能够构成复杂事件的事件采用复杂事件的侦测算法进行复杂事件侦测,确定复杂事件是否已发生;
步骤S3:在复杂事件发生时确定执行ECA执行规则中的动作;
步骤S4:根据事件对应的动作在ECA规则库中查找规则执行函数;
步骤S5:当复杂事件发生时,则确定流程模型;
步骤S6:根据流程模型和执行函数来消耗事件。
可选地,所述步骤S1具体包括:
步骤S11:侦听业务构件或者WebService在流程实例执行过程中所产生消息;
步骤S12:根据消息生成事件;
步骤S13:判断事件是否构成复杂事件;如果事件没有构成复杂事件,则无需处理;如果事件构成复杂事件,则返回“步骤S2”。
可选地,步骤S2具体包括:
步骤S21:确定事件能够构成复杂事件的类型;
步骤S22:判断其他事件是否已经构成了该类型复杂事件;如果其他事件已经构成了该类型复杂事件,则遍历复杂事件的合成树;如果其他事件没有构成该类型复杂事件,则说明该事件是初始事件,则只需更新事件库,并记录合成信息;
步骤S23:确定事件是否满足复杂事件发生条件;如果事件满足复杂事件发生条件,则说明已经发生了复杂事件;如果事件不满足复杂事件发生条件,则说明没有发生复杂事件。
可选地,步骤S3具体包括:
步骤S31:在复杂事件发生时找到事件能够触发的ECA执行规则;
步骤S32:在条件满足ECA执行规则中的条件集时,按照预先定义的顺序执行ECA执行规则中的动作。
可选地,步骤S5具体包括:
步骤S51:根据订阅规则库匹配判断是否有订阅所述事件的流程模型;
步骤S52:如果没有订阅所述事件的流程模型,则新建事件的流程模型;
步骤S53:如果有订阅所述事件的流程模型,则判断事件是否为开始事件;
步骤S54:如果事件为开始事件,则创建流程模型;如果事件不是开始事件,则返回“步骤S6”。
可选地,步骤S6具体包括:
步骤S61:根据匹配函数匹配到相应的流程模型,并判断流程模型是否已经产生相应的流程实例;
步骤S62:如果没有产生相应的流程实例,则需要调用相应的工作流接口函数创建所述流程模型的流程实例;
步骤S63:如果有产生相应的流程实例,则判断所述流程实例当前执行的节点所需求的事件是否全部都已经发生;
步骤S64:如果没有全部发生,则将所述流程实例挂起,并加入流程实例的等待队列中;
步骤S65:如果已经全部发生,则将事件解析成工作流相关数据,传递给工作流引擎,使得所述流程实例继续向下执行;
步骤S66:当事件处理完后则将所述事件的状态更新为已消耗。
可选地,所述方法还包括:在进行复杂事件侦测之前,对复杂事件的表达式进行解析,构造成合成树结构。
可选地,所述方法还包括:发生复杂事件时,根据事件所携带的信息去匹配订阅规则库中得到流程实例的任务节点;根据流程模型的任务节点与业务构件的绑定关系确定需要调用的业务构件。
本发明还提供一种基于事件的云服务管理处置***,所述***包括:
事件监听模块,用于侦听业务构件或者WebService在流程实例执行过程中所产生消息,并根据消息确定是否构成复杂事件;
复杂事件侦测模块,用于将能够构成复杂事件的事件采用复杂事件的侦测算法进行复杂事件侦测,确定复杂事件是否已发生;
ECA执行规则匹配模块,用于在复杂事件发生时确定执行ECA执行规则中的动作;
事件处理模块,用于根据事件对应的动作在ECA规则库中查找规则执行函数;
流程模型确定模块,用于当复杂事件发生时,则确定流程模型;
事件消耗模块,用于根据流程模型和执行函数来消耗事件。
可选地,所述事件监听模块,具体包括:
消息产生单元,用于侦听业务构件或者WebService在流程实例执行过程中所产生消息;
事件产生单元,用于根据消息生成事件;
第一判断单元,用于判断事件是否构成复杂事件;如果事件没有构成复杂事件,则无需处理;如果事件构成复杂事件,则返回“复杂事件侦测模块”。
可选地,所述复杂事件侦测模块,具体包括:
复杂事件类型确定单元,用于确定事件能够构成复杂事件的类型;
第二判断单元,用于判断其他事件是否已经构成了该类型复杂事件;如果其他事件已经构成了该类型复杂事件,则遍历复杂事件的合成树;如果其他事件没有构成该类型复杂事件,则说明该事件是初始事件,则只需更新事件库,并记录合成信息;
第三判断单元,用于判断事件是否满足复杂事件发生条件;如果事件满足复杂事件发生条件,则说明已经发生了复杂事件;如果事件不满足复杂事件发生条件,则说明没有发生复杂事件。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明公开一种基于事件的云服务管理处置方法及***,方法包括:侦听业务构件或者WebService在流程实例执行过程中所产生消息,并根据消息确定是否构成复杂事件;将能够构成复杂事件的事件采用复杂事件的侦测算法进行复杂事件侦测,确定复杂事件是否已发生;在复杂事件发生时确定执行ECA执行规则中的动作;根据事件对应的动作在ECA规则库中查找规则执行函数;当复杂事件发生时,则确定流程模型;根据流程模型和执行函数来消耗事件。本发明公开的方法能够适应企业的动态处理业务流程的需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例基于事件的云服务管理处置方法流程图;
图2为本发明实施例事件产生、处理及消耗过程;
图3为本发明实施例事件驱动的工作流原理示意图;
图4为本发明实施例复杂事件的侦测算法意图;
图5为本发明实施例基于事件的云服务管理处置结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种基于事件的云服务管理处置方法及***,以适应企业的动态处理业务流程的需求。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
如图1-3所示,本发明公开一种基于事件的云服务管理处置方法,所述方法包括:
步骤S1:侦听业务构件或者WebService在流程实例执行过程中所产生消息,并根据消息确定是否构成复杂事件。
步骤S2:将能够构成复杂事件的事件采用复杂事件的侦测算法进行复杂事件侦测,确定复杂事件是否已发生。
步骤S3:在复杂事件发生时确定执行ECA执行规则中的动作。
步骤S4:根据事件对应的动作在ECA规则库中查找规则执行函数。
步骤S5:当复杂事件发生时,则确定流程模型。
步骤S6:根据流程模型和执行函数来消耗事件。
下面对各个步骤进行详细论述:
所述步骤S1具体包括:
步骤S11:侦听业务构件或者WebService在流程实例执行过程中所产生消息。
步骤S12:根据消息生成事件。
步骤S13:判断事件是否构成复杂事件;如果事件没有构成复杂事件,则无需处理;如果事件构成复杂事件,则返回“步骤S2”。
作为一种实施方式,本发明步骤S2具体包括:
步骤S21:确定事件能够构成复杂事件的类型。
步骤S22:判断其他事件是否已经构成了该类型复杂事件;如果其他事件已经构成了该类型复杂事件,则遍历复杂事件的合成树;如果其他事件没有构成该类型复杂事件,则说明该事件是初始事件,则只需更新事件库,并记录合成信息。
步骤S23:确定事件是否满足复杂事件发生条件;如果事件满足复杂事件发生条件,则说明已经发生了复杂事件;如果事件不满足复杂事件发生条件,则说明没有发生复杂事件。
作为一种实施方式,本发明步骤S3具体包括:
步骤S31:在复杂事件发生时找到事件能够触发的ECA执行规则。
步骤S32:在条件满足ECA执行规则中的条件集时,按照预先定义的顺序执行ECA执行规则中的动作。
步骤S5具体包括:
步骤S51:根据订阅规则库匹配判断是否有订阅所述事件的流程模型。
步骤S52:如果没有订阅所述事件的流程模型,则新建事件的流程模型。
步骤S53:如果有订阅所述事件的流程模型,则判断事件是否为开始事件。
步骤S54:如果事件为开始事件,则创建流程模型;如果事件不是开始事件,则返回“步骤S6”。
作为一种实施方式,本发明步骤S6具体包括:
步骤S61:根据匹配函数匹配到相应的流程模型,并判断流程模型是否已经产生相应的流程实例。
步骤S62:如果没有产生相应的流程实例,则需要调用相应的工作流接口函数创建所述流程模型的流程实例。
步骤S63:如果有产生相应的流程实例,则判断所述流程实例当前执行的节点所需求的事件是否全部都已经发生。
步骤S64:如果没有全部发生,则将所述流程实例挂起,并加入流程实例的等待队列中。
步骤S65:如果已经全部发生,则将事件解析成工作流相关数据,传递给工作流引擎,使得所述流程实例继续向下执行。
步骤S66:当事件处理完后则将所述事件的状态更新为已消耗。
作为一种实施方式,本发明所述方法还包括:步骤S7:在进行复杂事件侦测之前,对复杂事件的表达式进行解析,构造成合成树结构。
作为一种实施方式,本发明所述方法还包括:步骤S8:发生复杂事件时,根据事件所携带的信息去匹配订阅规则库中得到流程实例的任务节点;根据流程模型的任务节点与业务构件的绑定关系确定需要调用的业务构件。
如图4所示,复杂事件侦测的算法包括:
输入:待侦测复杂事件expr,刚发生事件e,事件集合E,复杂事件expr侦测过程中所产生的子表达式集合T。输出:更新后的复杂事件子表达式集合T。
复杂事件侦测的算法具体实现步骤为:
(1)、事件e发生后首先存储该事件;
(2)、匹配订阅规则,首先确定订阅该事件的流程模型,获取该事件的业务单据数据信息,找到流程模型的相应流程实例,判断该实例当前执行的节点需求的事件是否为复杂事件,如果不是,则执行步骤(7);
(3)、读取复杂事件合成表获取复杂事件expr的合成信息;
(4)、否则各子表达式i∈T;
(5)、判断事件e与i是否构成新的子表达式j;
(6)、如果是,则将子表达式i替换为j,并判断j是否为复杂事件表达式;
(7)、如果j等于expr输入子表达式集T即复杂事件expr;
(8)、否则更新子表达式集T,结束;
(9)、否则将事件e作为新的子表达式,加入到子表达式集合中,更新子表达式集合T,结束。
如图5所示,本发明还提供一种基于事件的云服务管理处置***,所述***包括:
事件监听模块1,用于侦听业务构件或者WebService在流程实例执行过程中所产生消息,并根据消息确定是否构成复杂事件。
复杂事件侦测模块2,用于将能够构成复杂事件的事件采用复杂事件的侦测算法进行复杂事件侦测,确定复杂事件是否已发生。
ECA执行规则匹配模块3,用于在复杂事件发生时确定执行ECA执行规则中的动作。
事件处理模块4,用于根据事件对应的动作在ECA规则库中查找规则执行函数。
流程模型确定模块5,用于当复杂事件发生时,则确定流程模型。
事件消耗模块6,用于根据流程模型和执行函数来消耗事件。
作为一种实施方式,本发明所述事件监听模块1,具体包括:
消息产生单元,用于侦听业务构件或者WebService在流程实例执行过程中所产生消息。
事件产生单元,用于根据消息生成事件。
第一判断单元,用于判断事件是否构成复杂事件;如果事件没有构成复杂事件,则无需处理;如果事件构成复杂事件,则返回“复杂事件侦测模块”。
作为一种实施方式,本发明所述复杂事件侦测模块2,具体包括:
复杂事件类型确定单元,用于确定事件能够构成复杂事件的类型。
第二判断单元,用于判断其他事件是否已经构成了该类型复杂事件;如果其他事件已经构成了该类型复杂事件,则遍历复杂事件的合成树;如果其他事件没有构成该类型复杂事件,则说明该事件是初始事件,则只需更新事件库,并记录合成信息。
第三判断单元,用于判断事件是否满足复杂事件发生条件;如果事件满足复杂事件发生条件,则说明已经发生了复杂事件,调用订阅规则匹配模块;如果事件不满足复杂事件发生条件,则说明没有发生复杂事件。
作为一种实施方式,本发明所述ECA执行规则匹配模块3,具体包括:
触发单元,用于在复杂事件发生时找到事件能够触发的ECA执行规则。
动作执行单元,用于在条件满足ECA执行规则中的条件集时,按照预先定义的顺序执行ECA执行规则中的动作。
作为一种实施方式,本发明所述程模型确定模块5,具体包括:
第四判断单元,用于根据订阅规则库匹配判断是否有订阅所述事件的流程模型;步如果没有订阅所述事件的流程模型,则新建事件的流程模型;如果有订阅所述事件的流程模型,则执行“第五判断单元”。
第五判断单元,用于判断事件是否为开始事件;如果事件为开始事件,则创建流程模型;如果事件不是开始事件,则返回“事件消耗模块”。
作为一种实施方式,本发明所述事件消耗模块6,具体包括:
第六判断单元,用于根据匹配函数匹配到相应的流程模型,并判断流程模型是否已经产生相应的流程实例;如果没有产生相应的流程实例,则需要调用相应的工作流接口函数创建所述流程模型的流程实例;如果有产生相应的流程实例,则执行“第七判断单元”。
第七判断单元,用于判断所述流程实例当前执行的节点所需求的事件是否全部都已经发生;如果没有全部发生,则将所述流程实例挂起,并加入流程实例的等待队列中;如果已经全部发生,则将事件解析成工作流相关数据,传递给工作流引擎,使得所述流程实例继续向下执行。
更新单元,用于当事件处理完后则将所述事件的状态更新为已消耗。
作为一种实施方式,本发明所述***还包括:在进行复杂事件侦测之前,对复杂事件的表达式进行解析,构造成合成树结构。
作为一种实施方式,本发明所述***还包括:订阅规则匹配模块,用于发生复杂事件时,根据事件所携带的信息去匹配订阅规则库中得到流程实例的任务节点;根据流程模型的任务节点与业务构件的绑定关系确定需要调用的业务构件。
具体举例:
1、基于事件的业务流程管理执行引擎的设计
基于事件的业务流程管理执行引擎的整个设计主要功能模块包括软构件管理、流程管理、事件管理以及中间功能部件事件管理模块。针对在流程模型的配置阶段对事件类型的处理所划分以下几部分。
(1)对流程模型的事件类型信息进行提取、抽象,然后根据事件模型中的事件类型的形式化描述规则进行定义和维护即为事件类型定义与管理。
(2)ECA规则定义与管理是实现特定的某个事件类型的实例,在满足某些条件下,会自动执行相应的动作,信息持久化到数据库中。
(3)事件发布就是将流程模型所定义的事件类型发布出来,以供其他的流程模型进行订阅。
(4)事件订阅是为每一个流程模型的每一个事件类型订阅所需求的事件类型,建立流程与流程之间的事件类型关联。
***包括:事件监听模块、复杂事件侦测模块、订阅规则匹配模块、ECA规则匹配模块和事件处理模块;
事件监听模块用于侦听在流程实例执行过程中所产生消息,并根据消息生成事件,并确定各类型事件是否构成复杂事件,具体包括:侦听在流程实例执行过程中所产生的事件;根据事先定义的事件类型确定事件的类型,并且将事件的类型进行存储;判断事件是否构成复杂事件;如果事件没有构成复杂事件,则无需处理;如果事件构成复杂事件,则调用复杂事件侦测模块。
复杂事件侦测模块用于将能够构成复杂事件的事件采用复杂事件的侦测算法进行复杂事件侦测,确定复杂事件是否已发生,具体包括:确定事件能够构成复杂事件的类型,并判断其他事件是否已经构成了该类型复杂事件;如果其他事件已经构成了该类型复杂事件,则遍历复杂事件的合成树,确定事件是否满足复杂事件发生条件;如果事件满足复杂事件发生条件,则说明已经发生了复杂事件;如果事件不满足复杂事件发生条件,则说明没有发生复杂事件;如果其他事件没有构成该类型复杂事件,则说明该事件是初始事件,则只需更新事件库,并记录合成信息;所述合成信息为一个事件的发生可能导致一个或多个复杂事件合成的信息。
能够合成复杂事件的事件称为构成事件;事件的产生导致一次复杂事件合成的开始,这样的事件称为初始事件;导致该复杂事件发生的构成事件或事件统称为终结事件。
复杂事件发生条件包括:(1)构成该复杂事件的所有事件均已发生;(2)事件按照实现定义的顺序及规则发生。
订阅规则匹配模块用于发生复杂事件时,根据事件所携带的信息去匹配订阅规则库中得到流程实例的任务节点;根据流程模型的任务节点与业务构件的绑定关系确定需要调用的业务构件;订阅规则匹配模块主要是实现流程之间交互产生的事件的关联,事件发布与订阅机制的应用。
ECA执行规则匹配模块是在复杂事件发生时找到事件能够触发的ECA执行规则,并在条件满足ECA执行规则中的条件集时,按照预先定义的顺序执行ECA执行规则中的动作,并进入事件处理模块。
本发明采用ECA执行规则进行事件的处理本文将工作流引擎中的流程模型的执行用ECA执行规则来实现,用ECA执行规则描述事件的发生,并且在满足的条件下执行相应的动作的处理规则。ECA执行规则定义为R=(E,C,A)。其中,E为发生的事件,此事件可以触发该规则;C为条件集,指工作流相关数据所应满足的条件,A为动作集,当事件发生并且满足条件集合中的条件,则该动作将被执行。
2、基于事件的工作流执行引擎
一个工作流被看成是由若干个服务组成,每个服务都通过若干个事件的完成来提供,而事件的触发、处理及消耗通过事件管理模块实现,事件从产生到被处理并消耗掉的过程如图2所示,事件管理模块必须具备的功能包括事件监听并将相应事件存入数据库中,然后进行复杂事件的侦测,下一步是规则匹配首先找到事件要作用的流程实例然后判断条件是否成立,如果条件成立则根据事先的定义执行后续动作,然后消耗掉该事件;当然,有时候事件发现后并不能立即被处理,所以就需要将其加入事件队列,所以事件管理模块另一个重要功能就是事件队列的维护。
对于流程模型之间的执行路径的路由是基于事件的,流程模型之间的事件关系本文采用事件的发布与订阅方式实现关联,使用事件的发布与订阅机制允许流程实例异步地执行,在流程模型配置阶段发布和订阅所产生或者需求的事件信息,如下图4执行过程中由业务构件或者WebService产生消息,事件侦听模块捕获消息产生事件,然后由事件管理模块根据订阅规则匹配到与该事件关联的流程模型所对应的事件类型,进一步根据匹配函数,检测该事件类型的实例是否已经发生,然后根据所获取的数据信息决策流程实例的执行路由。
通过流程模型管理模块获取流程模型的所有事件,获取成功后,需要定义所有事件的事件类型以及ECA执行规则,然后在流程模型配置过程中,将所有事件的事件类型以及ECA执行规则通过事件发布管理接口发布出来;然后给发布事件订阅所需求或者被需求的事件,即给流程模型与流程模型的事件定义关联关系。事件之间通过所定义的匹配函数(参数对应于业务单据号)进行匹配,而且如果给同一事件定义了多个其他流程模型的事件类型,则说明该事件是一个复杂事件,需要给出该事件的表达式,并将表达式解析成合成树的形式存入到数据库中。所有事件的类型包括输入、输出事件、开始事件、等待事件、结束事件、内部事件、外部事件、事件复杂事件。
在***运行阶段,当事件管理模块侦听到事件发生时,根据订阅规则库匹配判断是否有订阅所述事件的流程模型;如果没有订阅所述事件的流程模型,则新建事件的流程模型;如果有订阅所述事件的流程模型,则判断事件是否为开始事件;如果事件为开始事件,则创建流程模型;如果事件不是开始事件,则根据匹配函数匹配到相应的流程模型,并判断流程模型是否已经产生相应的流程实例;如果没有产生相应的流程实例,则需要调用相应的工作流接口函数创建所述流程模型的流程实例;如果有产生相应的流程实例,则判断所述流程实例当前执行的节点所需求的事件是否全部都已经发生;如果没有全部发生,则将所述流程实例挂起,并加入流程实例的等待队列中;如果已经全部发生,则将事件解析成工作流相关数据,传递给工作流引擎,使得所述流程实例继续向下执行;当事件处理完后则将所述事件的状态更新为已消耗,重复这一过程。
3、事件管理模块与工作流执行引擎
采用事件的发布与订阅机制来实现流程模型之间通过事件进行的交互,该机制是应用于流程模型的配置阶段,针对于流程模型中的事件类型,发布是将流程模型的事件类型(包括输入、输出事件、开始事件、等待事件、结束事件、内部事件、外部事件、事件复杂事件)发布出去,以供其他需求相应事件类型的流程模型进行订阅,订阅即是为每一个定义事件类型的流程模型订阅与其每一个事件类型所匹配的其他流程模型的事件类型,为流程模型的事件类型确定关联关系。
4、事件执行规则和条件
在***执行工作流的过程中会产生事件,事件侦听模块监听到该事件的发生,并将此事件进行存储及复杂事件侦测后,还是匹配ECA执行规则,判断其是否满足规则中的条件集,满足的话就执行相应的动作。ECA执行规则可以根据条件判断及约束动态地确定流程实例的执行路径。事件在流程模型的配置阶段需要定义事件类型,以及ECA执行规则,在执行阶段会不断地产生事件,事件发生后会根据执行规则去驱动相应的流程实例的活动。
5、复杂事件的侦测
一个复杂事件的发生必须满足下面的两个条件:(1)构成该复杂事件的所有事件均已发生;(2)事件按照实现定义的顺序及规则发生。
事件产生后被事件管理模块的事件侦听模块侦测到,当事件管理模块一旦侦测到某个事件的发生,并且判断出该事件可以构成复杂事件,则开始调用复杂事件的侦测模块,首先需要判断事件所要构成的是哪个复杂事件,然后判断该复杂事件是否已经有其他的构成事件发生,如果是,则遍历复杂事件的合成树,查看该事件是否导致了复杂事件的发生;如果还没有其他的构成事件发生,说明该事件是初始事件,则只需更新事件库,记录合成信息一个事件的发生可能导致一个或多个复杂事件的合成,如前所述能够合成复杂事件的事件称为构成事件,事件的产生导致一次复杂事件合成的开始,这样的事件称为初始事件;导致该复杂事件发生的构成事件或事件统称为该复杂事件的终结事件。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种基于事件的云服务管理处置方法,其特征在于,所述方法包括:
步骤S1:侦听业务构件或者WebService在流程实例执行过程中所产生消息,并根据消息确定是否构成复杂事件;
步骤S2:将能够构成复杂事件的事件采用复杂事件的侦测算法进行复杂事件侦测,确定复杂事件是否已发生;
步骤S3:在复杂事件发生时确定执行ECA执行规则中的动作;
步骤S4:根据事件对应的动作在ECA规则库中查找规则执行函数;
步骤S5:当复杂事件发生时,则确定流程模型;
步骤S6:根据流程模型和执行函数来消耗事件。
2.根据权利要求1所述的基于事件的云服务管理处置方法,其特征在于,所述步骤S1具体包括:
步骤S11:侦听业务构件或者WebService在流程实例执行过程中所产生消息;
步骤S12:根据消息生成事件;
步骤S13:判断事件是否构成复杂事件;如果事件没有构成复杂事件,则无需处理;如果事件构成复杂事件,则返回“步骤S2”。
3.根据权利要求1所述的基于事件的云服务管理处置方法,其特征在于,步骤S3具体包括:
步骤S31:在复杂事件发生时找到事件能够触发的ECA执行规则;
步骤S32:在条件满足ECA执行规则中的条件集时,按照预先定义的顺序执行ECA执行规则中的动作。
4.根据权利要求1所述的基于事件的云服务管理处置方法,其特征在于,步骤S5具体包括:
步骤S51:根据订阅规则库匹配判断是否有订阅所述事件的流程模型;
步骤S52:如果没有订阅所述事件的流程模型,则新建事件的流程模型;
步骤S53:如果有订阅所述事件的流程模型,则判断事件是否为开始事件;
步骤S54:如果事件为开始事件,则创建流程模型;如果事件不是开始事件,则返回“步骤S6”。
5.根据权利要求1所述的基于事件的云服务管理处置方法,其特征在于,步骤S6具体包括:
步骤S61:根据匹配函数匹配到相应的流程模型,并判断流程模型是否已经产生相应的流程实例;
步骤S62:如果没有产生相应的流程实例,则需要调用相应的工作流接口函数创建所述流程模型的流程实例;
步骤S63:如果有产生相应的流程实例,则判断所述流程实例当前执行的节点所需求的事件是否全部都已经发生;
步骤S64:如果没有全部发生,则将所述流程实例挂起,并加入流程实例的等待队列中;
步骤S65:如果已经全部发生,则将事件解析成工作流相关数据,传递给工作流引擎,使得所述流程实例继续向下执行;
步骤S66:当事件处理完后则将所述事件的状态更新为已消耗。
6.根据权利要求1所述的基于事件的云服务管理处置方法,其特征在于,所述方法还包括:在进行复杂事件侦测之前,对复杂事件的表达式进行解析,构造成合成树结构。
7.根据权利要求1所述的基于事件的云服务管理处置方法,其特征在于,所述方法还包括:发生复杂事件时,根据事件所携带的信息去匹配订阅规则库中得到流程实例的任务节点;根据流程模型的任务节点与业务构件的绑定关系确定需要调用的业务构件。
8.一种基于事件的云服务管理处置***,其特征在于,所述***包括:
事件监听模块,用于侦听业务构件或者WebService在流程实例执行过程中所产生消息,并根据消息确定是否构成复杂事件;
复杂事件侦测模块,用于将能够构成复杂事件的事件采用复杂事件的侦测算法进行复杂事件侦测,确定复杂事件是否已发生;
ECA执行规则匹配模块,用于在复杂事件发生时确定执行ECA执行规则中的动作;
事件处理模块,用于根据事件对应的动作在ECA规则库中查找规则执行函数;
流程模型确定模块,用于当复杂事件发生时,则确定流程模型;
事件消耗模块,用于根据流程模型和执行函数来消耗事件。
9.根据权利要求8所述的基于事件的云服务管理处置方法,其特征在于,所述事件监听模块,具体包括:
消息产生单元,用于侦听业务构件或者WebService在流程实例执行过程中所产生消息;
事件产生单元,用于根据消息生成事件;
第一判断单元,用于判断事件是否构成复杂事件;如果事件没有构成复杂事件,则无需处理;如果事件构成复杂事件,则返回“复杂事件侦测模块”。
10.根据权利要求8所述的基于事件的云服务管理处置***,其特征在于,所述ECA执行规则匹配模块,具体包括:
触发单元,用于在复杂事件发生时找到事件能够触发的ECA执行规则。
动作执行单元,用于在条件满足ECA执行规则中的条件集时,按照预先定义的顺序执行ECA执行规则中的动作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011321496.4A CN112365239A (zh) | 2020-11-23 | 2020-11-23 | 一种基于事件的云服务管理处置方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011321496.4A CN112365239A (zh) | 2020-11-23 | 2020-11-23 | 一种基于事件的云服务管理处置方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112365239A true CN112365239A (zh) | 2021-02-12 |
Family
ID=74533530
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011321496.4A Pending CN112365239A (zh) | 2020-11-23 | 2020-11-23 | 一种基于事件的云服务管理处置方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112365239A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342484A (zh) * | 2021-05-14 | 2021-09-03 | 深圳奥哲网络科技有限公司 | 流程引擎方法、***、设备及存储介质 |
CN115964197A (zh) * | 2023-03-16 | 2023-04-14 | 北京仁科互动网络技术有限公司 | 事件执行***、方法、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120084317A1 (en) * | 2010-10-05 | 2012-04-05 | Fujitsu Limited | Complex event processing apparatus and complex event processing method |
CN102567803A (zh) * | 2011-12-27 | 2012-07-11 | 中国科学院自动化研究所 | 基于赋优先级事件图的复杂事件调度***及方法 |
CN103593721A (zh) * | 2012-08-13 | 2014-02-19 | 中国商用飞机有限责任公司 | 基于复杂事件处理的业务流程监控方法 |
CN103617486A (zh) * | 2013-11-21 | 2014-03-05 | 中国电子科技集团公司第十五研究所 | 一种复杂业务流程动态图形化监控的方法与*** |
CN108596557A (zh) * | 2018-03-15 | 2018-09-28 | 兴业数字金融服务(上海)股份有限公司 | 一种基于树状结构实现事件流程的方法及*** |
CN110347663A (zh) * | 2019-06-05 | 2019-10-18 | 烽火通信科技股份有限公司 | 基于复杂事件处理引擎的动力环境监控方法及*** |
CN111885012A (zh) * | 2020-07-03 | 2020-11-03 | 安徽继远软件有限公司 | 基于多种网络设备信息采集的网络态势感知方法及*** |
-
2020
- 2020-11-23 CN CN202011321496.4A patent/CN112365239A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120084317A1 (en) * | 2010-10-05 | 2012-04-05 | Fujitsu Limited | Complex event processing apparatus and complex event processing method |
CN102567803A (zh) * | 2011-12-27 | 2012-07-11 | 中国科学院自动化研究所 | 基于赋优先级事件图的复杂事件调度***及方法 |
CN103593721A (zh) * | 2012-08-13 | 2014-02-19 | 中国商用飞机有限责任公司 | 基于复杂事件处理的业务流程监控方法 |
CN103617486A (zh) * | 2013-11-21 | 2014-03-05 | 中国电子科技集团公司第十五研究所 | 一种复杂业务流程动态图形化监控的方法与*** |
CN108596557A (zh) * | 2018-03-15 | 2018-09-28 | 兴业数字金融服务(上海)股份有限公司 | 一种基于树状结构实现事件流程的方法及*** |
CN110347663A (zh) * | 2019-06-05 | 2019-10-18 | 烽火通信科技股份有限公司 | 基于复杂事件处理引擎的动力环境监控方法及*** |
CN111885012A (zh) * | 2020-07-03 | 2020-11-03 | 安徽继远软件有限公司 | 基于多种网络设备信息采集的网络态势感知方法及*** |
Non-Patent Citations (1)
Title |
---|
栗丽霞: "基于事件的业务流程管理方法及执行引擎", 中国优秀硕士学位论文全文数据库, pages 18 - 45 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342484A (zh) * | 2021-05-14 | 2021-09-03 | 深圳奥哲网络科技有限公司 | 流程引擎方法、***、设备及存储介质 |
CN115964197A (zh) * | 2023-03-16 | 2023-04-14 | 北京仁科互动网络技术有限公司 | 事件执行***、方法、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11238112B2 (en) | Search service system monitoring | |
WO2020228063A1 (zh) | 一种开发业务功能的方法和装置 | |
CN106681820B (zh) | 基于消息组合的可扩展大数据计算方法 | |
Martin et al. | A novel approach to decentralized workflow enactment | |
CN110908641A (zh) | 基于可视化的流计算平台、方法、设备和存储介质 | |
CN112365239A (zh) | 一种基于事件的云服务管理处置方法及*** | |
CN114338746A (zh) | 一种用于物联网设备数据收集的分析预警方法及*** | |
CN110764894A (zh) | 一种定时任务管理方法、装置、设备及存储介质 | |
CN110908642B (zh) | 一种策略生成执行方法和装置 | |
CN114756224A (zh) | 一种活动执行方法及装置 | |
CN111639741B (zh) | 一种用于多目标QoS优化的服务自动组合代理*** | |
CN113722141A (zh) | 数据任务的延迟原因确定方法、装置、电子设备及介质 | |
CN111538491A (zh) | 数据事件处理方法、装置、设备和存储介质 | |
Cortellessa et al. | Three performance models at work: a software designer perspective | |
CN116109112B (zh) | 基于聚合接口的业务数据处理方法、装置、介质和设备 | |
JP7470769B1 (ja) | クラウドのapiの変更を分析する方法 | |
CN117971378A (zh) | 工作流执行方法、装置、电子设备以及存储介质 | |
CN116955378A (zh) | 一种数据处理方法及*** | |
CN117406960A (zh) | 一种敏捷分析场景的低代码社交数据计算平台和装置 | |
CN117156010A (zh) | 任务处理方法、装置、存储介质及电子设备 | |
CN117472937A (zh) | 批次变量计算方法、装置、设备及计算机可读存储介质 | |
CN115907641A (zh) | 一种工作流框架 | |
CN115757584A (zh) | 一种基于查询接口的***接入方法 | |
CN115470115A (zh) | 中心化的异步卡点校验方法、装置、设备及可读存储介质 | |
CN115617487A (zh) | 一种容器重调度方法、装置、设备、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |