一种分布式工作流处理方法及分布式工作流引擎系统的制作方法

文档序号:6334672阅读:307来源:国知局
专利名称:一种分布式工作流处理方法及分布式工作流引擎系统的制作方法
技术领域
本发明属于信息处理领域,尤其涉及一种分布式工作流处理方法及分布式工作流引擎系统。
背景技术
工作流(Workflow)是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示,并实施工作。工作流要解决的主要问题是为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或者任务。工作流属于计算机支持的协同工作(Computer Supported Cooperative Work, CSCff)的一部分。在分布式环境下,工作流作为现在企业行政化管理的重要中间件,经常面临主管理系统与子管理系统在不同的地区,而管理流程完成又依赖于子管理系统的数据等等资源的局面,目前,在分布式环境下的工作流引擎是通过第三方组件协调部署在多个服务器上工作流引擎的工作,导致在集团级管理系统中网络数据传输量过大,造成网络1/0的瓶颈, 增加了系统的复杂性,系统耦合度高,系统扩展性差,难以维护,无法最大化利用资源。

发明内容
本发明实施例的目的在于提供一种分布式工作流处理方法,旨在解决由于通过第三方组件协调部署在多个服务器上工作流引擎的工作,导致系统复杂性增加,耦合度高,系统扩展性差,难以维护的问题。本发明实施例是这样实现的,一种分布式工作流处理方法,所述方法包括下述步骤监听触发的流程事件,获取所述流程事件的事件信息;根据所述事件信息,获取预先存储的所述流程事件关联的流程模板,生成流程实例,将所述流程实例以及其关联信息封装为流程实例组件;根据执行引擎列表中保存的执行引擎及其状态信息,通过调用所述流程实例关联的执行引擎提供的接口,将所述流程实例组件发送给所述执行引擎,接收所述执行引擎发送的执行后的流程实例组件、以及所述流程实例组件中封装的流程实例的状态信息,当流程实例组件中封装的流程实例尚未执行完成时,循环执行该步骤直至完成所述流程实例组件中封装的流程实例。本发明实施例的另一目的在于提供一种分布式工作流引擎系统,所述系统包括主控制引擎,所述主控制引擎包括流程事件监听单元,用于监听触发的流程事件,获取所述流程事件的事件信息;流程实例创建组件单元,用于根据所述事件信息,获取预先存储的所述流程事件关联的流程模板,生成流程实例,将所述流程实例以及其关联信息封装为流程实例组件;以及
执行引擎管理单元,用于根据执行引擎列表中保存的执行引擎及其状态信息,通过调用所述流程实例创建组件单元启动的流程实例关联的执行引擎提供的接口,将所述流程实例组件发送给所述执行引擎,接收所述执行引擎发送的执行后的流程实例组件、以及所述流程实例组件中封装的流程实例的状态信息,当流程实例组件中封装的流程实例尚未执行完成时,根据预置的执行引擎列表中保存的执行引擎的状态信息,通过调用所述流程实例关联的执行引擎提供的接口,将所述流程实例组件发送给所述执行引擎。本发明实施例的另一目的在于提供一种分布式工作流处理方法,所述方法包括下述步骤通过执行引擎调用接口接收主控制引擎发送的流程实例组件;根据流程实例组件中封装的流程实例的关联信息,执行所述流程实例;当完成所述流程实例的执行时,获取执行引擎的状态信息、流程实例组件以及流程实例组件中封装的流程实例的状态信息,并发送给主控制引擎。本发明实施例的另一目的在于提供一种分布式工作流引擎系统,所述系统包括执行引擎,所述执行引擎包括执行引擎调用接口,用于接收主控制引擎发送的流程实例组件; 流程实例执行单元,用于根据执行引擎调用接口接收到的流程实例组件中封装的流程实例的关联信息,执行所述流程实例;以及状态信息发送单元,用于当完成所述流程实例的执行时,获取执行引擎的状态信息、流程实例组件以及流程实例组件中封装的流程实例的状态信息,并发送给主控制引擎。本发明实施例的另一目的在于提供一种分布式工作流引擎系统,所述系统包括主控制引擎和执行引擎,其中主控制引擎,用于监听触发的流程事件,获取所述流程事件的事件信息,根据所述事件信息,获取预先存储的所述流程事件关联的流程模板,生成流程实例,将所述流程实例以及其关联信息封装为流程实例组件,将流程实例组件通过执行引擎提供的调用接口发送给执行引擎;以及执行引擎,用于通过执行引擎调用接口接收主控制引擎发送的流程实例组件,根据流程实例组件中封装的流程实例的关联信息,执行所述流程实例,当完成所述流程实例的执行时,将执行引擎的状态信息、流程实例组件以及流程实例组件中封装的流程实例的状态信息发送给主控制引擎。本发明实施例根据预置的执行引擎列表中保存的执行引擎的状态信息以及封装的流程实例组件关联信息,调用流程实例关联的执行引擎提供的接口,将流程实例组件发送给关联的执行引擎执行,从而无需第三方组件来协调部署分布式的工作流引擎,减少了数据的传输过程,从而减少了集团级管理系统中网络数据的传输量,简化了主控制引擎与执行引擎之间的调用过程,从而实现组件之间的低耦合,高内聚,使得分布式环境下工作流引擎系统的扩展更加灵活、方便。


图1是本发明第一实施例提供的分布式工作流引擎系统的交互流程图;图2是本发明第二实施例提供的分布式工作流引擎系统的应用场景5
图3是本发明第三实施例提供的分布式工作流引擎系统的结构图;图4是本发明第三实施例提供的主控制引擎的结构图;图5是本发明第三实施例提供的执行引擎的结构图;图6是本发明第四实施例提供的主控制引擎的实例图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。本发明实施例根据预置的执行引擎列表中保存的执行引擎的状态信息,通过调用流程实例关联的执行引擎提供的接口,将流程实例组件发送给关联的执行引擎执行,简化了主控制引擎与执行引擎之间的调用过程,实现了组件之间的低耦合,高内聚,使得分布式环境下工作流引擎系统的扩展更加灵活、方便。本发明实施例提供了一种分布式工作流处理方法,所述方法包括下述步骤监听触发的流程事件,获取所述流程事件的事件信息;根据所述事件信息,获取预先存储的所述流程事件关联的流程模板,生成流程实例,将所述流程实例以及其关联信息封装为流程实例组件;根据执行引擎列表中保存的执行引擎及其状态信息,通过调用所述流程实例关联的执行引擎提供的接口,将所述流程实例组件发送给所述执行引擎,接收所述执行引擎发送的执行后的流程实例组件、以及所述流程实例组件中封装的流程实例的状态信息,当流程实例组件中封装的流程实例尚未执行完成时,循环执行该步骤直至完成所述流程实例组件中封装的流程实例。本发明实施例还提供了一种分布式工作流引擎系统,所述系统包括主控制引擎, 所述主控制引擎包括流程事件监听单元,用于监听触发的流程事件,获取所述流程事件的事件信息;流程实例创建组件单元,用于根据所述事件信息,获取预先存储的所述流程事件关联的流程模板,生成流程实例,将所述流程实例以及其关联信息封装为流程实例组件;以及执行引擎管理单元,用于根据执行引擎列表中保存的执行引擎及其状态信息,通过调用所述流程实例创建组件单元启动的流程实例关联的执行引擎提供的接口,将所述流程实例组件发送给所述执行引擎,接收所述执行引擎发送的执行后的流程实例组件、以及所述流程实例组件中封装的流程实例的状态信息,当流程实例组件中封装的流程实例尚未执行完成时,根据预置的执行引擎列表中保存的执行引擎的状态信息,通过调用所述流程实例关联的执行引擎提供的接口,将所述流程实例组件发送给所述执行引擎。 本发明实施例还提供了一种分布式工作流处理方法,所述方法包括下述步骤通过执行引擎调用接口接收主控制引擎发送的流程实例组件;根据流程实例组件中封装的流程实例的关联信息,执行所述流程实例;当完成所述流程实例的执行时,获取执行引擎的状态信息、流程实例组件以及流程实例组件中封装的流程实例的状态信息,并发送给主控制引擎。
本发明实施例还提供了一种分布式工作流引擎系统,所述系统包括执行引擎,所述执行引擎包括执行引擎调用接口,用于接收主控制引擎发送的流程实例组件;流程实例执行单元,用于根据执行引擎调用接口接收到的流程实例组件中封装的流程实例的关联信息,执行所述流程实例;以及状态信息发送单元,用于当完成所述流程实例的执行时,获取执行引擎的状态信息、流程实例组件以及流程实例组件中封装的流程实例的状态信息,并发送给主控制引擎。本发明实施例还提供了一种分布式工作流引擎系统,所述系统包括主控制引擎和执行引擎,其中主控制引擎,用于监听触发的流程事件,获取所述流程事件的事件信息,根据所述事件信息,获取预先存储的所述流程事件关联的流程模板,生成流程实例,将所述流程实例以及其关联信息封装为流程实例组件,将流程实例组件通过执行引擎提供的调用接口发送给执行引擎;以及执行引擎,用于通过执行引擎调用接口接收主控制引擎发送的流程实例组件,根据流程实例组件中封装的流程实例的关联信息,执行所述流程实例,当完成所述流程实例的执行时,将执行引擎的状态信息、流程实例组件以及流程实例组件中封装的流程实例的状态信息发送给主控制引擎。本发明实施例根据预置的执行引擎列表中保存的执行引擎的状态信息以及封装的流程实例组件关联信息,调用流程实例关联的执行引擎提供的接口,将流程实例组件发送给关联的执行引擎执行,从而无需外部组件来协调部署分布式的工作流引擎,减少了数据的传输过程,从而减少了集团级管理系统中网络数据的传输量,简化了主控制引擎与执行引擎之间的调用过程,从而实现组件之间的低耦合,高内聚,使得分布式环境下工作流引擎系统的扩展更加灵活、方便。以下结合具体实施例对本发明的具体实现进行详细描述实施例一工作流(Workflow)是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算,在本发明实施例中,将工作流程以流程实例的形式在主控制引擎和执行引擎之间进行传递和执行,通过主控制引擎直接调用执行引擎提供的调用接口,完成工作流程的处理。图1示出了本发明第一实施例提供的分布式工作流引擎系统的交互过程,详述如下1.主控制引擎监听触发的流程事件,获取该流程事件的事件信息;在本发明实施例中,流程事件可以是用户输入预定条件触发的相应流程事件。例如用户输入单据时,将触发与该单据相关的处理流程。每个流程事件包括事件ID等信息, 主控制引擎根据事件ID获取关联的流程模板。2.主控制引擎根据步骤1获取的流程事件信息,获取预先存储的该流程事件关联的流程模板,生成流程实例,将流程实例以及其关联信息封装为流程实例组件;在本发明实施例中,预先建立了企业中工作流程对应的流程事件信息,如事件ID 信息,以及该流程事件关联的流程模板,可以以数据库、配置文件等形式进行存储。根据步骤1获取的事件ID与数据库的事件ID进行比较,获得关联的流程模板,从而生成相应的流程实例。为了后续流程实例的自动化处理,在本发明实施例中,应将创建的流程实例的关联信息与流程实例进行封装,该关联信息主要包括流程实例类型、流程参与者信息,以及扩展脚本等,其中流程实例类型可用于主控制引擎选择合适的执行引擎执行流程实例,流程参与者信息用于执行引擎选择具有相应权限的参与者,扩展脚本则用于实现流程实例的自动流转。3.根据执行引擎列表中保存的执行引擎及其状态信息,通过调用流程实例关联的执行弓I擎提供的接口,将该流程实例组件发送给关联的执行引擎;在本发明实施例中,在主控制引擎中,保存了在其注册的执行引擎,以及各个执行引擎的状态信息(空闲、忙碌),具体实施过程中,注册的执行引擎大多数为分布式的执行引擎,并以调用接口的形式在主控制引擎中进行注册,一个执行引擎可以执行不同的流程实例或流程实例的部分工作,主控制引擎根据执行引擎列表中保存的执行引擎的状态信息、流程实例、以及流程实例关联信息调用相应的执行引擎,将流程实例组件发送给该执行引擎。4.执行引擎通过执行引擎调用接口接收主控制引擎发送的流程实例组件,根据流程实例组件中封装的流程实例的关联信息,执行该流程实例;在本发明实施例中,执行引擎通过执行引擎的调用接口接收主控制引擎发送的流程实例组件,该调用接口可以是远程调用接口,例如EJB接口、Web服务接口以及其它远程调用接口。流程实例中有些流程只需要本地系统根据封装的扩展脚本进行自动执行,有些则需要关联的流程参与者进行手动处理,进行流程的人工流转,通过提供外部系统接口与外部系统进行交互,获取流程处理过程中所需要的数据信息,或保存相应的数据到外部系统。5.当完成流程实例的执行时,获取执行引擎的状态信息、流程实例组件以及流程实例组件中封装的流程实例的状态信息;在本发明实施例中,当执行引擎完成流程实例在该执行引擎所需要完成的流程时,获取执行引擎的状态信息、流程实例组件以及流程实例的状态信息,其中流程实例的状态信息包括流程实例执行完成情况等信息,以方便主控制引擎的调度。6.执行引擎将获取的执行引擎的状态信息、流程实例组件以及流程实例组件中封装的流程实例的状态信息发送给主控制引擎;7.主控制引擎接收执行引擎发送的执行后的流程实例组件、以及流程实例组件中封装的流程实例的状态信息,当流程实例组件中封装的流程实例尚未执行完成时,重复执行步骤3-6直至流程实例执行完成。在本发明实施例中,主控制引擎接收到执行引擎发送的执行后的流程实例组件、 以及流程实例组件中封装的流程实例的状态信息后,更新执行的状态,以方便后续的调用, 检查流程实例的状态,判断流程实例是否执行完成,当流程实例尚未执行完成时,重复执行步骤3-6,直至流程实例所包含的流程全部处理完毕。在本发明实施例中,主控制引擎通过执行引擎的调用接口,如EJB接口、Web服务接口,实现分布式环境下执行引擎的协调工作,无需第三方协调组件来协调各执行引擎的工作,从而简化了主控制引擎与执行引擎之间的调用过程,实现了组件之间的低耦合,高内
8聚,使得分布式环境下工作流引擎系统的扩展更加灵活、方便。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中, 所述的存储介质,如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、流程发起人等信息以及其关联的流程模板,流程模板为企业经常需要处理到的业务流程,经模板化后形成的流程模板。在本发明实施例中,将主控制引擎的内部组件进行了进一步的划分,使得主控制引擎的内部组件内聚度更强。本发明实施例将流程实例以及其关联信息封装为流程实例组件,根据预置的执行引擎列表中保存的执行引擎的状态信息,通过调用流程实例关联的执行引擎提供的接口, 将流程实例组件发送给关联的执行引擎执行,克服了分布式环境下的工作流引擎是通过第三方组件协调分布式工作流引擎的工作,系统复杂性增加,耦合度高,系统扩展性差,难以维护的问题,减少了集团级管理系统中网络数据的传输量,简化了主控制引擎与执行引擎之间的调用过程,从而实现组件之间的低耦合,高内聚,使得分布式环境下工作流引擎系统的扩展更加灵活、方便。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种分布式工作流处理方法,其特征在于,所述方法包括下述步骤 监听触发的流程事件,获取所述流程事件的事件信息;根据所述事件信息,获取预先存储的所述流程事件关联的流程模板,生成流程实例,将所述流程实例以及其关联信息封装为流程实例组件;根据执行引擎列表中保存的执行引擎及其状态信息,通过调用所述流程实例关联的执行引擎提供的接口,将所述流程实例组件发送给所述执行引擎,接收所述执行引擎发送的执行后的流程实例组件、以及所述流程实例组件中封装的流程实例的状态信息,当流程实例组件中封装的流程实例尚未执行完成时,循环执行该步骤直至完成所述流程实例组件中封装的流程实例。
2.一种分布式工作流引擎系统,其特征在于,所述系统包括主控制引擎,所述主控制引擎包括流程事件监听单元,用于监听触发的流程事件,获取所述流程事件的事件信息; 流程实例创建组件单元,用于根据所述事件信息,获取预先存储的所述流程事件关联的流程模板,生成流程实例,将所述流程实例以及其关联信息封装为流程实例组件;以及执行引擎管理单元,用于根据执行引擎列表中保存的执行引擎及其状态信息,通过调用所述流程实例创建组件单元启动的流程实例关联的执行引擎提供的接口,将所述流程实例组件发送给所述执行引擎,接收所述执行引擎发送的执行后的流程实例组件、以及所述流程实例组件中封装的流程实例的状态信息,当流程实例组件中封装的流程实例尚未执行完成时,根据预置的执行引擎列表中保存的执行引擎的状态信息,通过调用所述流程实例关联的执行引擎提供的接口,将所述流程实例组件发送给所述执行引擎。
3.如权利要求2所述的系统,其特征在于,所述执行引擎管理单元具体包括状态信息接收单元,用于接收并保存执行引擎的状态信息、执行引擎发送的执行后的流程实例组件、以及所述流程实例组件中封装的流程实例的状态信息;执行引擎列表,用于保存注册的执行引擎、执行引擎提供的调用接口信息、以及所述执行引擎的状态信息;以及执行引擎动态调度单元,用于根据所述执行引擎列表中注册的执行引擎及其状态信息,通过调用流程实例关联的执行引擎提供的接口,将所述流程实例组件发送给所述执行引擎。
4.一种分布式工作流处理方法,其特征在于,所述方法包括下述步骤 通过执行引擎调用接口接收主控制引擎发送的流程实例组件; 根据流程实例组件中封装的流程实例的关联信息,执行所述流程实例;当完成所述流程实例的执行时,获取执行引擎的状态信息、流程实例组件以及流程实例组件中封装的流程实例的状态信息,并发送给主控制引擎。
5.如权利要求4所述的方法,其特征在于,所述执行引擎调用接口为EJB接口以及Web 服务接口。
6.一种分布式工作流引擎系统,其特征在于,所述系统包括执行引擎,所述执行引擎包括执行引擎调用接口,用于接收主控制引擎发送的流程实例组件; 流程实例执行单元,用于根据执行引擎调用接口接收到的流程实例组件中封装的流程实例的关联信息,执行所述流程实例;以及状态信息发送单元,用于当完成所述流程实例的执行时,获取执行引擎的状态信息、流程实例组件以及流程实例组件中封装的流程实例的状态信息,并发送给主控制引擎。
7.如权利要求6所述的系统,其特征在于,所述流程实例执行单元具体包括 自动流转单元,用于执行流程实例中自动执行的流程实例部分;人工流转单元,用于执行流程实例中需要人工执行的流程实例部分;以及外部系统接口,用于与外部系统交互,获取所述自动流转单元以及所述人工流转单元执行流程实例所需数据。
8.一种分布式工作流引擎系统,其特征在于,所述系统包括主控制引擎和执行引擎,其中主控制引擎,用于监听触发的流程事件,获取所述流程事件的事件信息,根据所述事件信息,获取预先存储的所述流程事件关联的流程模板,生成流程实例,将所述流程实例以及其关联信息封装为流程实例组件,将流程实例组件通过执行引擎提供的调用接口发送给执行引擎;以及执行引擎,用于通过执行引擎调用接口接收主控制引擎发送的流程实例组件,根据流程实例组件中封装的流程实例的关联信息,执行所述流程实例,当完成所述流程实例的执行时,将执行引擎的状态信息、流程实例组件以及流程实例组件中封装的流程实例的状态信息发送给主控制引擎。
9.如权利要求8所述的系统,其特征在于,所述主控制引擎包括流程事件监听单元,用于监听触发的流程事件,获取所述流程事件的事件信息; 流程实例创建组件单元,用于根据所述事件信息,获取预先存储的所述流程事件关联的流程模板,生成流程实例,将所述流程实例以及其关联信息封装为流程实例组件;以及执行引擎管理单元,用于根据执行引擎列表中保存的执行引擎及其状态信息,通过调用所述流程实例创建组件单元启动的流程实例关联的执行引擎提供的接口,将所述流程实例组件发送给所述执行引擎,接收所述执行引擎发送的执行后的流程实例组件、以及所述流程实例组件中封装的流程实例的状态信息,当流程实例组件中封装的流程实例尚未执行完成时,根据预置的执行引擎列表中保存的执行引擎的状态信息,通过调用所述流程实例关联的执行弓I擎提供的接口,将所述流程实例组件发送给所述执行引擎。
10.如权利要求8所述的系统,其特征在于,所述执行引擎包括 执行引擎调用接口,用于接收主控制引擎发送的流程实例组件;流程实例执行单元,用于根据执行引擎调用接口接收到的流程实例组件中封装的流程实例的关联信息,执行所述流程实例;以及状态信息发送单元,用于当完成所述流程实例的执行时,获取执行引擎的状态信息、流程实例组件以及流程实例组件中封装的流程实例的状态信息,并发送给主控制引擎。
全文摘要
本发明适用于信息处理领域,提供了一种分布式工作流处理方法及分布式工作流引擎系统,包括监听触发的流程事件,获取所述流程事件的事件信息;根据所述事件信息,获取预先存储的所述流程事件关联的流程模板,生成流程实例,将所述流程实例以及其关联信息封装为流程实例组件;根据执行引擎列表中保存的执行引擎及其状态信息,通过调用所述流程实例关联的执行引擎提供的接口,将所述流程实例组件发送给所述执行引擎。本发明通过主控制引擎调用执行引擎提供的接口将流程实例发送执行引擎执行,简化了主控制引擎与执行引擎之间的调用过程,使得分布式环境下工作流引擎系统的扩展更加灵活、方便。
文档编号G06Q10/06GK102456185SQ20101052496
公开日2012年5月16日 申请日期2010年10月29日 优先权日2010年10月29日
发明者殷切 申请人:金蝶软件(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1