CN102456185A - 一种分布式工作流处理方法及分布式工作流引擎系统 - Google Patents
一种分布式工作流处理方法及分布式工作流引擎系统 Download PDFInfo
- Publication number
- CN102456185A CN102456185A CN2010105249652A CN201010524965A CN102456185A CN 102456185 A CN102456185 A CN 102456185A CN 2010105249652 A CN2010105249652 A CN 2010105249652A CN 201010524965 A CN201010524965 A CN 201010524965A CN 102456185 A CN102456185 A CN 102456185A
- Authority
- CN
- China
- Prior art keywords
- flow
- flow instance
- engine
- assembly
- instance
- 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.)
- Granted
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明适用于信息处理领域,提供了一种分布式工作流处理方法及分布式工作流引擎系统,包括:监听触发的流程事件,获取所述流程事件的事件信息;根据所述事件信息,获取预先存储的所述流程事件关联的流程模板,生成流程实例,将所述流程实例以及其关联信息封装为流程实例组件;根据执行引擎列表中保存的执行引擎及其状态信息,通过调用所述流程实例关联的执行引擎提供的接口,将所述流程实例组件发送给所述执行引擎。本发明通过主控制引擎调用执行引擎提供的接口将流程实例发送执行引擎执行,简化了主控制引擎与执行引擎之间的调用过程,使得分布式环境下工作流引擎系统的扩展更加灵活、方便。
Description
技术领域
本发明属于信息处理领域,尤其涉及一种分布式工作流处理方法及分布式工作流引擎系统。
背景技术
工作流(Workflow)是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示,并实施工作。工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或者任务。工作流属于计算机支持的协同工作(Computer Supported Cooperative Work,CSCW)的一部分。
在分布式环境下,工作流作为现在企业行政化管理的重要中间件,经常面临主管理系统与子管理系统在不同的地区,而管理流程完成又依赖于子管理系统的数据等等资源的局面,目前,在分布式环境下的工作流引擎是通过第三方组件协调部署在多个服务器上工作流引擎的工作,导致在集团级管理系统中网络数据传输量过大,造成网络I/O的瓶颈,增加了系统的复杂性,系统耦合度高,系统扩展性差,难以维护,无法最大化利用资源。
发明内容
本发明实施例的目的在于提供一种分布式工作流处理方法,旨在解决由于通过第三方组件协调部署在多个服务器上工作流引擎的工作,导致系统复杂性增加,耦合度高,系统扩展性差,难以维护的问题。
本发明实施例是这样实现的,一种分布式工作流处理方法,所述方法包括下述步骤:
监听触发的流程事件,获取所述流程事件的事件信息;
根据所述事件信息,获取预先存储的所述流程事件关联的流程模板,生成流程实例,将所述流程实例以及其关联信息封装为流程实例组件;
根据执行引擎列表中保存的执行引擎及其状态信息,通过调用所述流程实例关联的执行引擎提供的接口,将所述流程实例组件发送给所述执行引擎,接收所述执行引擎发送的执行后的流程实例组件、以及所述流程实例组件中封装的流程实例的状态信息,当流程实例组件中封装的流程实例尚未执行完成时,循环执行该步骤直至完成所述流程实例组件中封装的流程实例。
本发明实施例的另一目的在于提供一种分布式工作流引擎系统,所述系统包括主控制引擎,所述主控制引擎包括:
流程事件监听单元,用于监听触发的流程事件,获取所述流程事件的事件信息;
流程实例创建组件单元,用于根据所述事件信息,获取预先存储的所述流程事件关联的流程模板,生成流程实例,将所述流程实例以及其关联信息封装为流程实例组件;以及
执行引擎管理单元,用于根据执行引擎列表中保存的执行引擎及其状态信息,通过调用所述流程实例创建组件单元启动的流程实例关联的执行引擎提供的接口,将所述流程实例组件发送给所述执行引擎,接收所述执行引擎发送的执行后的流程实例组件、以及所述流程实例组件中封装的流程实例的状态信息,当流程实例组件中封装的流程实例尚未执行完成时,根据预置的执行引擎列表中保存的执行引擎的状态信息,通过调用所述流程实例关联的执行引擎提供的接口,将所述流程实例组件发送给所述执行引擎。
本发明实施例的另一目的在于提供一种分布式工作流处理方法,所述方法包括下述步骤:
通过执行引擎调用接口接收主控制引擎发送的流程实例组件;
根据流程实例组件中封装的流程实例的关联信息,执行所述流程实例;
当完成所述流程实例的执行时,获取执行引擎的状态信息、流程实例组件以及流程实例组件中封装的流程实例的状态信息,并发送给主控制引擎。
本发明实施例的另一目的在于提供一种分布式工作流引擎系统,所述系统包括执行引擎,所述执行引擎包括:
执行引擎调用接口,用于接收主控制引擎发送的流程实例组件;
流程实例执行单元,用于根据执行引擎调用接口接收到的流程实例组件中封装的流程实例的关联信息,执行所述流程实例;以及
状态信息发送单元,用于当完成所述流程实例的执行时,获取执行引擎的状态信息、流程实例组件以及流程实例组件中封装的流程实例的状态信息,并发送给主控制引擎。
本发明实施例的另一目的在于提供一种分布式工作流引擎系统,所述系统包括主控制引擎和执行引擎,其中:
主控制引擎,用于监听触发的流程事件,获取所述流程事件的事件信息,根据所述事件信息,获取预先存储的所述流程事件关联的流程模板,生成流程实例,将所述流程实例以及其关联信息封装为流程实例组件,将流程实例组件通过执行引擎提供的调用接口发送给执行引擎;以及
执行引擎,用于通过执行引擎调用接口接收主控制引擎发送的流程实例组件,根据流程实例组件中封装的流程实例的关联信息,执行所述流程实例,当完成所述流程实例的执行时,将执行引擎的状态信息、流程实例组件以及流程实例组件中封装的流程实例的状态信息发送给主控制引擎。
本发明实施例根据预置的执行引擎列表中保存的执行引擎的状态信息以及封装的流程实例组件关联信息,调用流程实例关联的执行引擎提供的接口,将流程实例组件发送给关联的执行引擎执行,从而无需第三方组件来协调部署分布式的工作流引擎,减少了数据的传输过程,从而减少了集团级管理系统中网络数据的传输量,简化了主控制引擎与执行引擎之间的调用过程,从而实现组件之间的低耦合,高内聚,使得分布式环境下工作流引擎系统的扩展更加灵活、方便。
附图说明
图1是本发明第一实施例提供的分布式工作流引擎系统的交互流程图;
图2是本发明第二实施例提供的分布式工作流引擎系统的应用场景图;
图3是本发明第三实施例提供的分布式工作流引擎系统的结构图;
图4是本发明第三实施例提供的主控制引擎的结构图;
图5是本发明第三实施例提供的执行引擎的结构图;
图6是本发明第四实施例提供的主控制引擎的实例图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例根据预置的执行引擎列表中保存的执行引擎的状态信息,通过调用流程实例关联的执行引擎提供的接口,将流程实例组件发送给关联的执行引擎执行,简化了主控制引擎与执行引擎之间的调用过程,实现了组件之间的低耦合,高内聚,使得分布式环境下工作流引擎系统的扩展更加灵活、方便。
本发明实施例提供了一种分布式工作流处理方法,所述方法包括下述步骤:
监听触发的流程事件,获取所述流程事件的事件信息;
根据所述事件信息,获取预先存储的所述流程事件关联的流程模板,生成流程实例,将所述流程实例以及其关联信息封装为流程实例组件;
根据执行引擎列表中保存的执行引擎及其状态信息,通过调用所述流程实例关联的执行引擎提供的接口,将所述流程实例组件发送给所述执行引擎,接收所述执行引擎发送的执行后的流程实例组件、以及所述流程实例组件中封装的流程实例的状态信息,当流程实例组件中封装的流程实例尚未执行完成时,循环执行该步骤直至完成所述流程实例组件中封装的流程实例。
本发明实施例还提供了一种分布式工作流引擎系统,所述系统包括主控制引擎,所述主控制引擎包括:
流程事件监听单元,用于监听触发的流程事件,获取所述流程事件的事件信息;
流程实例创建组件单元,用于根据所述事件信息,获取预先存储的所述流程事件关联的流程模板,生成流程实例,将所述流程实例以及其关联信息封装为流程实例组件;以及
执行引擎管理单元,用于根据执行引擎列表中保存的执行引擎及其状态信息,通过调用所述流程实例创建组件单元启动的流程实例关联的执行引擎提供的接口,将所述流程实例组件发送给所述执行引擎,接收所述执行引擎发送的执行后的流程实例组件、以及所述流程实例组件中封装的流程实例的状态信息,当流程实例组件中封装的流程实例尚未执行完成时,根据预置的执行引擎列表中保存的执行引擎的状态信息,通过调用所述流程实例关联的执行引擎提供的接口,将所述流程实例组件发送给所述执行引擎。
本发明实施例还提供了一种分布式工作流处理方法,所述方法包括下述步骤:
通过执行引擎调用接口接收主控制引擎发送的流程实例组件;
根据流程实例组件中封装的流程实例的关联信息,执行所述流程实例;
当完成所述流程实例的执行时,获取执行引擎的状态信息、流程实例组件以及流程实例组件中封装的流程实例的状态信息,并发送给主控制引擎。
本发明实施例还提供了一种分布式工作流引擎系统,所述系统包括执行引擎,所述执行引擎包括:
执行引擎调用接口,用于接收主控制引擎发送的流程实例组件;
流程实例执行单元,用于根据执行引擎调用接口接收到的流程实例组件中封装的流程实例的关联信息,执行所述流程实例;以及
状态信息发送单元,用于当完成所述流程实例的执行时,获取执行引擎的状态信息、流程实例组件以及流程实例组件中封装的流程实例的状态信息,并发送给主控制引擎。
本发明实施例还提供了一种分布式工作流引擎系统,所述系统包括主控制引擎和执行引擎,其中:
主控制引擎,用于监听触发的流程事件,获取所述流程事件的事件信息,根据所述事件信息,获取预先存储的所述流程事件关联的流程模板,生成流程实例,将所述流程实例以及其关联信息封装为流程实例组件,将流程实例组件通过执行引擎提供的调用接口发送给执行引擎;以及
执行引擎,用于通过执行引擎调用接口接收主控制引擎发送的流程实例组件,根据流程实例组件中封装的流程实例的关联信息,执行所述流程实例,当完成所述流程实例的执行时,将执行引擎的状态信息、流程实例组件以及流程实例组件中封装的流程实例的状态信息发送给主控制引擎。
本发明实施例根据预置的执行引擎列表中保存的执行引擎的状态信息以及封装的流程实例组件关联信息,调用流程实例关联的执行引擎提供的接口,将流程实例组件发送给关联的执行引擎执行,从而无需外部组件来协调部署分布式的工作流引擎,减少了数据的传输过程,从而减少了集团级管理系统中网络数据的传输量,简化了主控制引擎与执行引擎之间的调用过程,从而实现组件之间的低耦合,高内聚,使得分布式环境下工作流引擎系统的扩展更加灵活、方便。
以下结合具体实施例对本发明的具体实现进行详细描述:
实施例一:
工作流(Workflow)是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算,在本发明实施例中,将工作流程以流程实例的形式在主控制引擎和执行引擎之间进行传递和执行,通过主控制引擎直接调用执行引擎提供的调用接口,完成工作流程的处理。
图1示出了本发明第一实施例提供的分布式工作流引擎系统的交互过程,详述如下:
1.主控制引擎监听触发的流程事件,获取该流程事件的事件信息;
在本发明实施例中,流程事件可以是用户输入预定条件触发的相应流程事件。例如:用户输入单据时,将触发与该单据相关的处理流程。每个流程事件包括事件ID等信息,主控制引擎根据事件ID获取关联的流程模板。
2.主控制引擎根据步骤1获取的流程事件信息,获取预先存储的该流程事件关联的流程模板,生成流程实例,将流程实例以及其关联信息封装为流程实例组件;
在本发明实施例中,预先建立了企业中工作流程对应的流程事件信息,如事件ID信息,以及该流程事件关联的流程模板,可以以数据库、配置文件等形式进行存储。根据步骤1获取的事件ID与数据库的事件ID进行比较,获得关联的流程模板,从而生成相应的流程实例。为了后续流程实例的自动化处理,在本发明实施例中,应将创建的流程实例的关联信息与流程实例进行封装,该关联信息主要包括流程实例类型、流程参与者信息,以及扩展脚本等,其中流程实例类型可用于主控制引擎选择合适的执行引擎执行流程实例,流程参与者信息用于执行引擎选择具有相应权限的参与者,扩展脚本则用于实现流程实例的自动流转。
3.根据执行引擎列表中保存的执行引擎及其状态信息,通过调用流程实例关联的执行引擎提供的接口,将该流程实例组件发送给关联的执行引擎;
在本发明实施例中,在主控制引擎中,保存了在其注册的执行引擎,以及各个执行引擎的状态信息(空闲、忙碌),具体实施过程中,注册的执行引擎大多数为分布式的执行引擎,并以调用接口的形式在主控制引擎中进行注册,一个执行引擎可以执行不同的流程实例或流程实例的部分工作,主控制引擎根据执行引擎列表中保存的执行引擎的状态信息、流程实例、以及流程实例关联信息调用相应的执行引擎,将流程实例组件发送给该执行引擎。
4.执行引擎通过执行引擎调用接口接收主控制引擎发送的流程实例组件,根据流程实例组件中封装的流程实例的关联信息,执行该流程实例;
在本发明实施例中,执行引擎通过执行引擎的调用接口接收主控制引擎发送的流程实例组件,该调用接口可以是远程调用接口,例如EJB接口、Web服务接口以及其它远程调用接口。流程实例中有些流程只需要本地系统根据封装的扩展脚本进行自动执行,有些则需要关联的流程参与者进行手动处理,进行流程的人工流转,通过提供外部系统接口与外部系统进行交互,获取流程处理过程中所需要的数据信息,或保存相应的数据到外部系统。
5.当完成流程实例的执行时,获取执行引擎的状态信息、流程实例组件以及流程实例组件中封装的流程实例的状态信息;
在本发明实施例中,当执行引擎完成流程实例在该执行引擎所需要完成的流程时,获取执行引擎的状态信息、流程实例组件以及流程实例的状态信息,其中流程实例的状态信息包括流程实例执行完成情况等信息,以方便主控制引擎的调度。
6.执行引擎将获取的执行引擎的状态信息、流程实例组件以及流程实例组件中封装的流程实例的状态信息发送给主控制引擎;
7.主控制引擎接收执行引擎发送的执行后的流程实例组件、以及流程实例组件中封装的流程实例的状态信息,当流程实例组件中封装的流程实例尚未执行完成时,重复执行步骤3-6直至流程实例执行完成。
在本发明实施例中,主控制引擎接收到执行引擎发送的执行后的流程实例组件、以及流程实例组件中封装的流程实例的状态信息后,更新执行的状态,以方便后续的调用,检查流程实例的状态,判断流程实例是否执行完成,当流程实例尚未执行完成时,重复执行步骤3-6,直至流程实例所包含的流程全部处理完毕。
在本发明实施例中,主控制引擎通过执行引擎的调用接口,如EJB接口、Web服务接口,实现分布式环境下执行引擎的协调工作,无需第三方协调组件来协调各执行引擎的工作,从而简化了主控制引擎与执行引擎之间的调用过程,实现了组件之间的低耦合,高内聚,使得分布式环境下工作流引擎系统的扩展更加灵活、方便。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘等。
实施例二:
根据实施例一,图2示出了本发明第二实施例提供的分布式工作流引擎系统的具体应用场景,详述如下:
主控制引擎位于服务器A,三个执行引擎分别位于服务器B、服务器C和服务器D,当服务器A上的主控制引擎接收到触发的流程事件后,获取该流程事件的事件信息,例如关联的审核人员等,根据事件信息,获取预先存储的流程事件关联的流程模板,生成流程实例,将流程实例以及其关联信息封装为流程实例组件,选择处理该流程实例的执行引擎,例如服务器B上的执行引擎B、服务器C上的执行引擎C或服务器D上的执行引擎D,执行引擎完成其执行的流程实例部分后,向主控制引擎返回其状态信息、流程实例组件以及流程实例组件中封装的流程实例的状态信息,主控制引擎根据返回的信息,再次选择相应的执行引擎,直至流程实例所包含的所有流程执行完毕。在具体的实施过程中,该系统可以用于集团级企业用户,将主控制引擎设置在集团总部系统,而执行引擎B、执行引擎C以及执行引擎D可以设置在集团的分公司,从而完成分布环境下流程实例的执行。
实施例三:
图3示出了本发明第三实施例提供的分布式工作流引擎系统的结构,为了便于说明,仅示出了与本发明实施例相关的部分。
在本发明实施例中,分布式工作流引擎系统包括主控制引擎1以及执行引擎2,其中主控制引擎1包括:
流程事件监听单元11,用于监听触发的流程事件,获取该流程事件的事件信息。
在本发明实施例中,流程事件可以是用户输入的预定条件触发的相应流程事件,例如,当企业人事部门用户输入简历,或者财务部门输入报表时,触发相应的招聘事件,以及财务报销事件,每个流程事件对应一个事件ID,主控制引擎根据事件ID获取关联的流程模板。
流程实例创建组件单元12,用于根据流程事件监听单元11获取的事件信息,获取预先存储的流程事件关联的流程模板,生成流程实例,将流程实例以及其关联信息封装为流程实例组件。
在本发明实施例中,预先建立了企业中流程事件信息,如事件ID信息,以及该业务事件关联的流程模板,该流程事件信息可以以数据库、配置文件等形式进行存储。根据流程事件监听单元11获取的事件ID与数据库的事件ID进行比较,获得关联的流程模板,从而生成相应的流程实例。为了后续流程实例的自动化处理,在本发明实施例中,应将创建的流程实例的关联信息与流程实例进行封装,该关联信息主要包括流程实例类型、流程参与者,以及扩展脚本等,其中流程实例类型可用于主控制引擎选择合适的执行引擎执行流程实例,流程参与者信息用于执行引擎选择具有相应权限的参与者,扩展脚本则用于实现流程实例的自动流转。
执行引擎管理单元13,用于根据执行引擎列表中保存的执行引擎及其状态信息,通过调用流程实例创建组件单元启动的流程实例关联的执行引擎提供的接口,将流程实例组件发送给执行引擎,接收执行引擎发送的执行后的流程实例组件、以及该流程实例组件中封装的流程实例的状态信息,当流程实例组件中封装的流程实例尚未执行完成时,根据预置的执行引擎列表中保存的执行引擎的状态信息,调用流程实例关联的执行引擎,将流程实例组件发送给执行引擎。
在本发明实施例中,执行引擎管理单元13接收到执行引擎发送的执行后的流程实例组件、以及流程实例组件中封装的流程实例的状态信息后,更新执行的状态,以方便后续的调用,检查流程实例的状态,判断流程实例是否执行完成,当流程实例尚未执行完成时,将流程实例发送给关联的执行引擎,直至流程实例所包含的流程全部处理完毕。
在本发明实施例中,为了更好地实现组件的高内聚,执行引擎管理单元13在具体的实施过程中,如图4所示,执行引擎管理单元13可以由以下三个单元组成:
状态信息接收单元131,用于接收、保存执行引擎的状态信息、执行引擎发送的执行后的流程实例组件、以及流程实例组件中封装的流程实例的状态信息;
执行引擎列表132,用于存储注册的执行引擎及其调用接口、以及执行引擎的状态信息;以及
执行引擎动态调度单元133,用于根据执行引擎列表132中注册的执行引擎及其状态信息,调用接收的流程实例组件中封装的流程实例关联的执行引擎,将流程实例组件发送给执行引擎。
在本发明实施例中,该主控制引擎可以包含在分布式工作流引擎系统的软件单元、硬件单元或软硬件结合单元。
在本发明实施例中,分布式工作流引擎系统包括主控制引擎1以及执行引擎2,其中执行引擎2包括:
执行引擎调用接口21,用于接收主控制引擎发送的流程实例组件;
在本发明实施例中,执行引擎通过执行引擎的调用接口接收主控制引擎发送的流程实例组件,该调用接口可以是远程调用接口,例如EJB接口、Web服务接口等。
流程实例执行单元22,用于根据执行引擎调用接口接收到的流程实例组件中封装的流程实例的关联信息,执行该流程实例;
在本发明实施例中,流程实例中有些流程只需要本地系统根据接收到的流程实例组件中封装的扩展脚本进行自动执行,有些则需要关联的流程参与者进行手动处理,进行工作流程的人工流转,通过提供外部系统接口与外部系统进行交互,获取流程处理过程中所需要的数据信息,或保存相应的数据到外部系统。
状态信息发送单元23,用于当执行引擎完成流程实例的执行时,获取执行引擎的状态信息、流程实例组件以及流程实例组件中封装的流程实例的状态信息,并发送给主控制引擎。
在本发明实施例中,当执行引擎完成流程实例在该执行引擎所需要完成的流程时,获取执行引擎的状态信息、流程实例组件以及流程实例的状态信息,以方便主控制引擎的调度。
在本发明实施例中,为了更好地实现组件的高内聚,流程实例执行单元22可以进一步分为由图5所示的组件:
自动流转单元221,用于执行流程实例中自动执行的流程实例部分;
在本发明实施例中,对于流程实例中自动执行的流程实例部分,则可以根据封装的扩展脚本进行自动执行。
人工流转单元222,用于执行流程实例中需要人工执行的流程实例部分;
在本发明实施例中,对于流程实例中需要人工参与执行的流程实例部分,则在人工流转过程中,在接收流程参与者输入的数据或指令后,执行其输入的指令,完成流程实例中人工流转部分。
外部系统接口223,用于与外部系统交互,获取自动流转单元221以及人工流转单元222执行流程实例所需数据。
在本发明实施例中,执行引擎位于不同的子系统中,而流程实例的执行则可能依靠子系统中的数据,或需要对子系统中的数据进行相关的操作,因此外部系统接口223在具体的实施过程中,主要用于获取外部数据或操作外部数据等与外部系统的交互。
在本发明实施例中,该执行引擎可以内置于分布式工作流引擎系统的软件单元、硬件单元或软硬件结合单元。
实施例四:
为了实现主控制引擎内部组件之间的高内聚,根据实施例一和三,图6示出了本发明第四实施例提供的分布式工作流引擎系统中主控制引擎的具体实施,详述如下:
在本发明实施例中,主控制引擎61包括:
单据管理器611,用于接收用户输入的单据,触发该单据对应的流程事件;
在本发明实施例中,触发事件的单据可以是简历,或者财务报表,例如,当企业人事部分需要招聘新员工时,输入一个简历,从而触发一个招聘流程事件。
流程监听器612,用于监听单据管理器611所触发的流程事件,当监听到流程事件时,获取事件信息;
在本发明实施例中,事件信息包括事件ID等信息,以方便主控制引擎根据事件信息调用关联的执行引擎执行。
流程解释器613,用于根据流程监听器612获取的事件信息,获取数据库中预置的事件关联的流程模板,生成该事件对应的流程实例;
流程创建器614,用于将流程解释器613生成的流程实例以及其关联信息封装为流程实例组件;
在本发明实施例中,为了后续流程实例的自动化处理,应将创建的流程实例的关联信息与流程实例进行封装,该关联信息主要包括用于选择执行引擎的流程实例类型、流程参与者,以及扩展脚本等。
流程加载器615,用于将流程创建器614创建的流程实例组件加载到流程启动器中;
流程启动器616,用于启动加载的流程实例组件中封装的流程实例;
执行引擎管理器617,用于根据执行引擎列表中保存的执行引擎及其状态信息,调用该流程实例关联的执行引擎,将流程实例组件发送给关联的执行引擎,接收执行引擎发送的执行后的流程实例组件、以及流程实例组件中封装的流程实例的状态信息,当流程实例组件中封装的流程实例尚未执行完成时,根据预置的执行引擎列表中保存的执行引擎的状态信息,调用流程实例关联的执行引擎,将流程实例组件发送给执行引擎。
在本发明实施例中,为了更好地实现组件的高内聚,执行引擎管理单元617在具体的实施过程中,执行引擎管理器617可以由引擎状态器、执行引擎列表、以及执行引擎动态调度器组成,其中:
引擎状态器,用于接收、保存执行引擎的状态信息、执行引擎发送的执行后的流程实例组件、以及流程实例组件中封装的流程实例的状态信息;
执行引擎列表,用于存储注册的执行引擎及其调用接口、以及执行引擎的状态信息;以及
执行引擎动态调度单元,用于根据执行引擎列表中注册的执行引擎及其状态信息,调用接收的流程实例组件中封装的流程实例关联的执行引擎,将流程实例组件发送给执行引擎。
数据库618,用于预先存储事件信息以及其关联的流程模板。
在本发明实施例中,数据中预先存储的事件ID、流程发起人等信息以及其关联的流程模板,流程模板为企业经常需要处理到的业务流程,经模板化后形成的流程模板。
在本发明实施例中,将主控制引擎的内部组件进行了进一步的划分,使得主控制引擎的内部组件内聚度更强。
本发明实施例将流程实例以及其关联信息封装为流程实例组件,根据预置的执行引擎列表中保存的执行引擎的状态信息,通过调用流程实例关联的执行引擎提供的接口,将流程实例组件发送给关联的执行引擎执行,克服了分布式环境下的工作流引擎是通过第三方组件协调分布式工作流引擎的工作,系统复杂性增加,耦合度高,系统扩展性差,难以维护的问题,减少了集团级管理系统中网络数据的传输量,简化了主控制引擎与执行引擎之间的调用过程,从而实现组件之间的低耦合,高内聚,使得分布式环境下工作流引擎系统的扩展更加灵活、方便。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种分布式工作流处理方法,其特征在于,所述方法包括下述步骤:
监听触发的流程事件,获取所述流程事件的事件信息;
根据所述事件信息,获取预先存储的所述流程事件关联的流程模板,生成流程实例,将所述流程实例以及其关联信息封装为流程实例组件;
根据执行引擎列表中保存的执行引擎及其状态信息,通过调用所述流程实例关联的执行引擎提供的接口,将所述流程实例组件发送给所述执行引擎,接收所述执行引擎发送的执行后的流程实例组件、以及所述流程实例组件中封装的流程实例的状态信息,当流程实例组件中封装的流程实例尚未执行完成时,循环执行该步骤直至完成所述流程实例组件中封装的流程实例。
2.一种分布式工作流引擎系统,其特征在于,所述系统包括主控制引擎,所述主控制引擎包括:
流程事件监听单元,用于监听触发的流程事件,获取所述流程事件的事件信息;
流程实例创建组件单元,用于根据所述事件信息,获取预先存储的所述流程事件关联的流程模板,生成流程实例,将所述流程实例以及其关联信息封装为流程实例组件;以及
执行引擎管理单元,用于根据执行引擎列表中保存的执行引擎及其状态信息,通过调用所述流程实例创建组件单元启动的流程实例关联的执行引擎提供的接口,将所述流程实例组件发送给所述执行引擎,接收所述执行引擎发送的执行后的流程实例组件、以及所述流程实例组件中封装的流程实例的状态信息,当流程实例组件中封装的流程实例尚未执行完成时,根据预置的执行引擎列表中保存的执行引擎的状态信息,通过调用所述流程实例关联的执行引擎提供的接口,将所述流程实例组件发送给所述执行引擎。
3.如权利要求2所述的系统,其特征在于,所述执行引擎管理单元具体包括:
状态信息接收单元,用于接收并保存执行引擎的状态信息、执行引擎发送的执行后的流程实例组件、以及所述流程实例组件中封装的流程实例的状态信息;
执行引擎列表,用于保存注册的执行引擎、执行引擎提供的调用接口信息、以及所述执行引擎的状态信息;以及
执行引擎动态调度单元,用于根据所述执行引擎列表中注册的执行引擎及其状态信息,通过调用流程实例关联的执行引擎提供的接口,将所述流程实例组件发送给所述执行引擎。
4.一种分布式工作流处理方法,其特征在于,所述方法包括下述步骤:
通过执行引擎调用接口接收主控制引擎发送的流程实例组件;
根据流程实例组件中封装的流程实例的关联信息,执行所述流程实例;
当完成所述流程实例的执行时,获取执行引擎的状态信息、流程实例组件以及流程实例组件中封装的流程实例的状态信息,并发送给主控制引擎。
5.如权利要求4所述的方法,其特征在于,所述执行引擎调用接口为EJB接口以及Web服务接口。
6.一种分布式工作流引擎系统,其特征在于,所述系统包括执行引擎,所述执行引擎包括:
执行引擎调用接口,用于接收主控制引擎发送的流程实例组件;
流程实例执行单元,用于根据执行引擎调用接口接收到的流程实例组件中封装的流程实例的关联信息,执行所述流程实例;以及
状态信息发送单元,用于当完成所述流程实例的执行时,获取执行引擎的状态信息、流程实例组件以及流程实例组件中封装的流程实例的状态信息,并发送给主控制引擎。
7.如权利要求6所述的系统,其特征在于,所述流程实例执行单元具体包括:
自动流转单元,用于执行流程实例中自动执行的流程实例部分;
人工流转单元,用于执行流程实例中需要人工执行的流程实例部分;以及
外部系统接口,用于与外部系统交互,获取所述自动流转单元以及所述人工流转单元执行流程实例所需数据。
8.一种分布式工作流引擎系统,其特征在于,所述系统包括主控制引擎和执行引擎,其中:
主控制引擎,用于监听触发的流程事件,获取所述流程事件的事件信息,根据所述事件信息,获取预先存储的所述流程事件关联的流程模板,生成流程实例,将所述流程实例以及其关联信息封装为流程实例组件,将流程实例组件通过执行引擎提供的调用接口发送给执行引擎;以及
执行引擎,用于通过执行引擎调用接口接收主控制引擎发送的流程实例组件,根据流程实例组件中封装的流程实例的关联信息,执行所述流程实例,当完成所述流程实例的执行时,将执行引擎的状态信息、流程实例组件以及流程实例组件中封装的流程实例的状态信息发送给主控制引擎。
9.如权利要求8所述的系统,其特征在于,所述主控制引擎包括:
流程事件监听单元,用于监听触发的流程事件,获取所述流程事件的事件信息;
流程实例创建组件单元,用于根据所述事件信息,获取预先存储的所述流程事件关联的流程模板,生成流程实例,将所述流程实例以及其关联信息封装为流程实例组件;以及
执行引擎管理单元,用于根据执行引擎列表中保存的执行引擎及其状态信息,通过调用所述流程实例创建组件单元启动的流程实例关联的执行引擎提供的接口,将所述流程实例组件发送给所述执行引擎,接收所述执行引擎发送的执行后的流程实例组件、以及所述流程实例组件中封装的流程实例的状态信息,当流程实例组件中封装的流程实例尚未执行完成时,根据预置的执行引擎列表中保存的执行引擎的状态信息,通过调用所述流程实例关联的执行引擎提供的接口,将所述流程实例组件发送给所述执行引擎。
10.如权利要求8所述的系统,其特征在于,所述执行引擎包括:
执行引擎调用接口,用于接收主控制引擎发送的流程实例组件;
流程实例执行单元,用于根据执行引擎调用接口接收到的流程实例组件中封装的流程实例的关联信息,执行所述流程实例;以及
状态信息发送单元,用于当完成所述流程实例的执行时,获取执行引擎的状态信息、流程实例组件以及流程实例组件中封装的流程实例的状态信息,并发送给主控制引擎。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010524965.2A CN102456185B (zh) | 2010-10-29 | 2010-10-29 | 一种分布式工作流处理方法及分布式工作流引擎系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010524965.2A CN102456185B (zh) | 2010-10-29 | 2010-10-29 | 一种分布式工作流处理方法及分布式工作流引擎系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102456185A true CN102456185A (zh) | 2012-05-16 |
CN102456185B CN102456185B (zh) | 2014-06-11 |
Family
ID=46039353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010524965.2A Active CN102456185B (zh) | 2010-10-29 | 2010-10-29 | 一种分布式工作流处理方法及分布式工作流引擎系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102456185B (zh) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102467411A (zh) * | 2010-11-19 | 2012-05-23 | 金蝶软件(中国)有限公司 | 一种工作流处理及工作流代理方法、装置和系统 |
CN102932416A (zh) * | 2012-09-26 | 2013-02-13 | 东软集团股份有限公司 | 一种信息流任务的中间数据存储方法、处理方法及装置 |
CN103679401A (zh) * | 2013-12-31 | 2014-03-26 | 浙江中控研究院有限公司 | 一种流程控制方法、服务器、客户端及系统 |
CN104091222A (zh) * | 2014-05-08 | 2014-10-08 | 武大吉奥信息技术有限公司 | 一种支持多模式驱动的工作流引擎 |
CN104102949A (zh) * | 2014-06-27 | 2014-10-15 | 北京奇艺世纪科技有限公司 | 一种分布式工作流装置及其处理工作流的方法 |
CN104318354A (zh) * | 2014-10-11 | 2015-01-28 | 北京网秦天下科技有限公司 | 任务信息处理方法和系统 |
CN104376439A (zh) * | 2014-12-10 | 2015-02-25 | 用友软件股份有限公司 | 工作流状态扩展装置和方法 |
CN104463504A (zh) * | 2014-12-29 | 2015-03-25 | 北京致远协创软件有限公司 | 业务流程的执行系统及执行方法 |
CN106548327A (zh) * | 2016-11-09 | 2017-03-29 | 国云科技股份有限公司 | 一种工作流系统与其它第三方系统集成的方法 |
CN106648573A (zh) * | 2015-11-04 | 2017-05-10 | 北京广联达正源兴邦科技有限公司 | 工作流业务的控制方法、控制系统和终端 |
CN106681781A (zh) * | 2015-11-05 | 2017-05-17 | 腾讯科技(深圳)有限公司 | 实时计算业务的实现方法和系统 |
CN107844924A (zh) * | 2017-12-18 | 2018-03-27 | 马上消费金融股份有限公司 | 一种控制工作流的执行方法、装置及介质 |
CN108459875A (zh) * | 2018-03-27 | 2018-08-28 | 网易(杭州)网络有限公司 | 生成游戏流程的方法、装置和终端 |
WO2018188607A1 (zh) * | 2017-04-11 | 2018-10-18 | 华为技术有限公司 | 流处理方法及装置 |
CN109064136A (zh) * | 2018-08-01 | 2018-12-21 | 北京奇虎科技有限公司 | 产品处理流程的管理方法及装置、计算设备、存储介质 |
CN110249594A (zh) * | 2017-02-08 | 2019-09-17 | 日本电信电话株式会社 | 通信装置和通信方法 |
WO2020015215A1 (zh) * | 2018-07-19 | 2020-01-23 | 平安科技(深圳)有限公司 | 工作流引擎的管理方法及装置、存储介质、计算机设备 |
CN111178815A (zh) * | 2018-11-12 | 2020-05-19 | 北大方正集团有限公司 | 流程实例模板的生成方法、装置及计算机可读存储介质 |
CN112070452A (zh) * | 2020-07-16 | 2020-12-11 | 石化盈科信息技术有限责任公司 | 一种分布式工作流管理系统 |
CN112799684A (zh) * | 2019-11-14 | 2021-05-14 | 中盈优创资讯科技有限公司 | 业务包获取和加载方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101388089A (zh) * | 2005-08-09 | 2009-03-18 | 金蝶软件(中国)有限公司 | 一种工作流中业务逻辑处理的方法和装置 |
-
2010
- 2010-10-29 CN CN201010524965.2A patent/CN102456185B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101388089A (zh) * | 2005-08-09 | 2009-03-18 | 金蝶软件(中国)有限公司 | 一种工作流中业务逻辑处理的方法和装置 |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102467411A (zh) * | 2010-11-19 | 2012-05-23 | 金蝶软件(中国)有限公司 | 一种工作流处理及工作流代理方法、装置和系统 |
CN102467411B (zh) * | 2010-11-19 | 2013-11-27 | 金蝶软件(中国)有限公司 | 一种工作流处理方法、装置和控制引擎 |
CN102932416A (zh) * | 2012-09-26 | 2013-02-13 | 东软集团股份有限公司 | 一种信息流任务的中间数据存储方法、处理方法及装置 |
CN103679401A (zh) * | 2013-12-31 | 2014-03-26 | 浙江中控研究院有限公司 | 一种流程控制方法、服务器、客户端及系统 |
CN104091222B (zh) * | 2014-05-08 | 2017-07-04 | 武大吉奥信息技术有限公司 | 一种支持多模式驱动的工作流引擎 |
CN104091222A (zh) * | 2014-05-08 | 2014-10-08 | 武大吉奥信息技术有限公司 | 一种支持多模式驱动的工作流引擎 |
CN104102949A (zh) * | 2014-06-27 | 2014-10-15 | 北京奇艺世纪科技有限公司 | 一种分布式工作流装置及其处理工作流的方法 |
CN104102949B (zh) * | 2014-06-27 | 2018-01-26 | 北京奇艺世纪科技有限公司 | 一种分布式工作流装置及其处理工作流的方法 |
CN104318354A (zh) * | 2014-10-11 | 2015-01-28 | 北京网秦天下科技有限公司 | 任务信息处理方法和系统 |
CN104376439A (zh) * | 2014-12-10 | 2015-02-25 | 用友软件股份有限公司 | 工作流状态扩展装置和方法 |
CN104376439B (zh) * | 2014-12-10 | 2018-08-31 | 用友网络科技股份有限公司 | 工作流状态扩展装置和方法 |
CN104463504A (zh) * | 2014-12-29 | 2015-03-25 | 北京致远协创软件有限公司 | 业务流程的执行系统及执行方法 |
CN104463504B (zh) * | 2014-12-29 | 2018-07-20 | 北京致远互联软件股份有限公司 | 业务流程的执行系统及执行方法 |
CN106648573A (zh) * | 2015-11-04 | 2017-05-10 | 北京广联达正源兴邦科技有限公司 | 工作流业务的控制方法、控制系统和终端 |
CN106681781A (zh) * | 2015-11-05 | 2017-05-17 | 腾讯科技(深圳)有限公司 | 实时计算业务的实现方法和系统 |
CN106548327A (zh) * | 2016-11-09 | 2017-03-29 | 国云科技股份有限公司 | 一种工作流系统与其它第三方系统集成的方法 |
CN110249594A (zh) * | 2017-02-08 | 2019-09-17 | 日本电信电话株式会社 | 通信装置和通信方法 |
CN110249594B (zh) * | 2017-02-08 | 2022-12-06 | 日本电信电话株式会社 | 通信装置和通信方法 |
WO2018188607A1 (zh) * | 2017-04-11 | 2018-10-18 | 华为技术有限公司 | 流处理方法及装置 |
CN108696559A (zh) * | 2017-04-11 | 2018-10-23 | 华为技术有限公司 | 流处理方法及装置 |
CN108696559B (zh) * | 2017-04-11 | 2021-08-20 | 华为技术有限公司 | 流处理方法及装置 |
CN107844924A (zh) * | 2017-12-18 | 2018-03-27 | 马上消费金融股份有限公司 | 一种控制工作流的执行方法、装置及介质 |
CN108459875B (zh) * | 2018-03-27 | 2021-05-25 | 网易(杭州)网络有限公司 | 生成游戏流程的方法、装置和终端 |
CN108459875A (zh) * | 2018-03-27 | 2018-08-28 | 网易(杭州)网络有限公司 | 生成游戏流程的方法、装置和终端 |
WO2020015215A1 (zh) * | 2018-07-19 | 2020-01-23 | 平安科技(深圳)有限公司 | 工作流引擎的管理方法及装置、存储介质、计算机设备 |
CN109064136A (zh) * | 2018-08-01 | 2018-12-21 | 北京奇虎科技有限公司 | 产品处理流程的管理方法及装置、计算设备、存储介质 |
CN111178815A (zh) * | 2018-11-12 | 2020-05-19 | 北大方正集团有限公司 | 流程实例模板的生成方法、装置及计算机可读存储介质 |
CN112799684A (zh) * | 2019-11-14 | 2021-05-14 | 中盈优创资讯科技有限公司 | 业务包获取和加载方法及装置 |
CN112799684B (zh) * | 2019-11-14 | 2023-09-29 | 中盈优创资讯科技有限公司 | 业务包获取和加载方法及装置 |
CN112070452A (zh) * | 2020-07-16 | 2020-12-11 | 石化盈科信息技术有限责任公司 | 一种分布式工作流管理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102456185B (zh) | 2014-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102456185B (zh) | 一种分布式工作流处理方法及分布式工作流引擎系统 | |
CN107729139B (zh) | 一种并发获取资源的方法和装置 | |
CN102467411B (zh) | 一种工作流处理方法、装置和控制引擎 | |
CN103365713A (zh) | 一种资源的调度和管理方法及装置 | |
CN109800083B (zh) | 一种微服务协同调用的方法、装置、系统及存储介质 | |
CN112288423A (zh) | 一种分布式框架的聚合支付方法和系统 | |
CN114281263B (zh) | 容器集群管理系统的存储资源处理方法、系统和设备 | |
CN113867600A (zh) | 处理流式数据的开发方法、装置和计算机设备 | |
CN114816730A (zh) | 一种机器人流程自动化云服务系统及实现方法 | |
US9141423B2 (en) | Optimized datacenter management by centralized task execution through dependency inversion | |
CN113849196A (zh) | 一种基于多云管理平台的产品管理方法及相关组件 | |
CN115550354A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
TW201407503A (zh) | 雲端平台工作排程方法及系統 | |
CN116204307A (zh) | 兼容不同计算框架的联邦学习方法和联邦学习系统 | |
CN116680209A (zh) | 基于wasm的多智能合约实例管理方法 | |
CN106227592A (zh) | 任务调用方法及任务调用装置 | |
CN115460265A (zh) | 接口调用方法、装置、设备及介质 | |
CN113220480B (zh) | 分布式的数据任务跨云调度系统及方法 | |
CN112416980B (zh) | 数据业务处理方法、装置及设备 | |
US11886460B2 (en) | Multiple version data cluster ETL processing | |
CN115114022A (zh) | 对gpu资源进行使用的方法、系统、设备及介质 | |
CN114443050A (zh) | 一种基于ci引擎流水线的新型日志展示方法 | |
CN110427260B (zh) | 主机作业调度方法、装置及系统 | |
CN113485894A (zh) | 一种数据采集方法、装置、设备及可读存储介质 | |
CN114095487B (zh) | 一种远程任务执行方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |