一种工作流管理系统及工作流管理方法

文档序号:6439859阅读:206来源:国知局
专利名称:一种工作流管理系统及工作流管理方法
技术领域
本发明涉及业务支撑技术领域,特别涉及一种工作流管理系统及工作流管理方法。
背景技术
在企业信息化领域,工作流管理的概念为信息系统的开发提供了新的视角,是实现业务重用、过程集成的有效途径。目前,在企业过程重组、供应链管理、敏捷制造等领域都开始有工作流管理系统的实施。
在工作流管理系统中,任务是具体的功能,提供了某种特定的服务;流程是任务的集合,是将不同功能的任务按照一定的业务逻辑组合而成的。工作流管理系统的核心是工作流引擎,工作流引擎的核心功能是流程的驱动和任务的分派,而不负责具体任务的执行。 因此对一个单一的流程来说,其产生的主要负载是在各个任务执行者处,但当流程达到一定数量级别时,工作流引擎便成为整个工作流管理系统的性能瓶颈,容易出现单一失效点。
针对这个问题,目前已有众多对分布式工作流管理系统的研究,但其实质多是具体任务执行者的分布式,虽然可以分散整个系统的负载,但系统的整体架构始终存在单一工作流引擎的设计缺陷。
此外,目前的分布式工作流管理系统在工作流调度方面只考虑了基本的网络或硬件状态,如网络流量、CPU资源、内存资源等硬件信息,而没有从工作流引擎本身的情况进行考虑,例如工作流流程案例个数、可用的人工或计算机资源数量、工作流任务队列长度等。 在任务分派方面,现有方案由于缺少对企业中不同工作流引擎的集中管理功能,并且不同工作流引擎之间缺乏信息共享和互操作能力,使得不同的工作流流程都是在不同的工作流引擎内部各自调度运行,缺少跨工作流引擎的工作流流程调度功能,并且使得企业内部工作流引擎资源的利用不充分。发明内容
本发明所要解决的技术问题是提供一种工作流管理系统及工作流管理方法,实现对多个工作流引擎的集中管理。
为解决上述技术问题,本发明提供技术方案如下
一种工作流管理系统,包括
流程加载模块,用于加载流程描述文件;
流程解析模块,用于对所述流程描述文件进行解析,得到所述流程描述文件中各任务的工作流服务需求信息;
工作流服务检索模块,用于根据所述工作流服务需求信息获取工作流服务信息, 并检索出能够提供相应的工作流服务的服务容器的集合;
工作流引擎集群创建模块,用于按照预定策略从所述集合中选取多个服务容器, 并将选取的服务容器组合为工作流引擎集群;以及
工作流引擎集群调度模块,用于从所述工作流引擎集群中选择服务容器来执行所述任务。
一种工作流管理方法,包括如下步骤
加载流程描述文件;
对所述流程描述文件进行解析,得到所述流程描述文件中各任务的工作流服务需求信息;
根据所述工作流服务需求信息获取工作流服务信息,并检索出能够提供相应的工作流服务的服务容器的集合;
按照预定策略从所述集合中选取多个服务容器,并将选取的服务容器组合为工作流引擎集群;以及
从所述工作流引擎集群中选择服务容器来执行所述任务。
本发明通过创建工作流引擎集群结构,将分布式环境下的工作流引擎统一起来进行管理,从而共同协作以运行一个工作流流程,能够实现有效的负载均衡功能和流程优化功能。本发明还能够提供服务容器的容错机制,提高了工作流运行的可靠性。


图1为本发明实施例的工作流管理系统的结构图2为本发明实施例的工作流管理方法的流程图3为本发明实施例的工作流管理系统在具体实现时的UML图4为本发明实施例中工作流服务信息的注册示意图5为本发明实施例中工作流服务需求信息的发布示意图6为本发明实施例中工作流虚拟引擎创建集群的示意图7为本发明实施例中工作流虚拟引擎执行任务的示意图8为本发明实施例中工作流虚拟引擎替换异常服务容器的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明进行详细描述。
首先对工作流管理领域中常用的术语进行说明如下
工作流原子服务工作流流程中最基本的组成部分,是功能的实际提供者,工作流原子服务提供的服务类型有自动服务(单纯由计算机运行的计算任务)和人工服务(需要人工参与的任务)。
工作流流程服务工作流流程服务是将一个工作流流程封装为一个服务,提供给其他工作流流程使用,作为其子流程。一个工作流流程服务是由工作流原子服务(0个或多个)和其他工作流流程服务(0个或多个)组成的,是一个嵌套的结构。
工作流服务上述的工作流原子服务和工作流流程服务都属于工作流服务。
服务容器能执行工作流服务的计算机称为服务容器,包括执行工作流原子服务的服务器和执行工作流流程服务的工作流引擎
本发明的目的在于克服现有技术的不足,将处在分布式环境下的多个工作流引擎组织为引擎集群进行管理,以实现工作流程的协调工作,并可以根据预定的调度算法,在流程运行阶段实时地选择合适的任务执行者执行任务,或者选择合适的工作流引擎进行子流程的调度。
参照图1,本发明实施例的工作流管理系统可以包括流程加载模块10、流程解析模块20、工作流服务检索模块30、工作流引擎集群创建模块40和工作流引擎集群调度模块 50。其中
流程加载模块10,用于加载流程描述文件;
流程解析模块20,用于对所述流程描述文件进行解析,得到所述流程描述文件中各任务的工作流服务需求信息;
工作流服务检索模块30,用于根据所述工作流服务需求信息获取工作流服务信息,并检索出能够提供相应的工作流服务的服务容器的集合;
工作流引擎集群创建模块40,用于按照预定策略从所述集合中选取多个服务容器,并将选取的服务容器组合为工作流引擎集群;
工作流引擎集群调度模块50,用于从所述工作流引擎集群中选择服务容器来执行所述任务。
优选地,所述工作流管理系统中还可包括一工作流引擎监控模块60,用于对所述工作流引擎集群中的服务容器进行监控,来获取其状态信息。此时,所述工作流引擎集群调度模块50可以根据所述状态信息,按照预定的调度算法来从所述工作流引擎集群中选择服务容器。
实际上,上述的流程加载模块10、流程解析模块20、工作流引擎集群创建模块40、 工作流引擎集群调度模块50和工作流引擎监控模块60对外表现为一个工作流引擎,本文中将其称之为工作流虚拟引擎。
上述工作流管理系统的详细工作流程可参照如下的方法实施例。
参照图2,为本发明实施例的工作流管理方法可以包括如下步骤
步骤101 加载流程描述文件;
步骤102 对所述流程描述文件进行解析,得到所述流程描述文件中各任务的工作流服务需求信息;
步骤103 根据所述工作流服务需求信息获取工作流服务信息,并检索出能够提供相应的工作流服务的服务容器的集合;
在具体实现时,用户注册的工作流服务信息以及用户发布的工作流服务需求信息可以存储在工作流服务检索模块30。在本步骤中,可以根据这些存储的信息进行相应的检索。
其中,所述工作流服务包括工作流原子服务和工作流流程服务,所述服务容器包括与所述工作流原子服务对应的服务器和与所述工作流流程服务对应的工作流引擎。
步骤104 按照预定策略从所述集合中选取多个服务容器,并将选取的服务容器组合为工作流引擎集群;
所述预定策略可以为最近最少使用(LRU)策略。
步骤105 从所述工作流引擎集群中选择服务容器来执行所述任务。
优选地,本发明实施例的工作流流管理方法还可以包括,对所述工作流引擎集群中的服务容器进行监控,来获取其状态信息。此时,所述从所述工作流引擎集群中选择服务容器具体为根据所述状态信息,并按照预定的调度算法从所述工作流引擎集群中选择服务容器。所述调度算法可以为负载均衡算法。
以下给出上述工作流管理系统的一个具体实现。
图3为本发明实施例的工作流管理系统在具体实现时的统一建模语言(UML)图。 参照图3,所述UML图中包括工作流服务信息数据结构、工作流服务需求数据结构、工作流服务检索模块、工作流虚拟引擎模块。其中,工作流虚拟引擎模块包括工作流引擎集群结构、工作流虚拟引擎web界面、工作流虚拟引擎数据库、工作流引擎监控模块、工作流引擎集群调度模块。
所述的工作流服务信息数据结构,是一个封装了现实业务需求中一个工作流服务的信息的程序数据结构。工作流服务信息数据结构封装了任务的输入输出参数要求、资源需求、业务类型(流程服务、自动服务或人工服务)、服务简要描述和任务的调用协议,工作流服务信息数据结构封装的工作流服务可以是一个工作流原子服务,也可以是一个工作流流程服务。工作流服务信息结构还包括了提供该服务的服务容器的信息。
所述的工作流服务需求数据结构,是一个程序数据结构,描述了某个具体的工作流服务的需求信息,包括服务的输入输出参数及其格式、服务的简要描述、服务的资源需求、服务的Qos参数等。
所述的工作流服务检索模块,是一个部署在web服务器上的软件模块,提供了 web 界面。该模块提供了工作流服务注册功能、工作流服务需求发布和查询功能。
所述的工作流虚拟引擎模块,是一个部署在web服务器上的软件模块。该模块采用标准的工作流管理联盟(WfMC)工作流参考模型进行封装,提供了工作流参考模型的5个接口,对外体现为一个工作流引擎,实现工作流引擎的功能。工作流虚拟引擎模块包括工作流引擎集群结构、工作流虚拟引擎web界面、工作流虚拟引擎数据库、工作流引擎监控模块、工作流引擎集群调度模块。
所述的工作流引擎集群结构,是一个程序数据结构,该结构是多个服务容器的集合,负责管理分布式系统环境下的多个服务容器,实现与不同服务容器进行交互,提供了服务容器的加入、移除、更换功能。
所述的工作流虚拟引擎web界面向用户提供了工作流操作的接口,例如加载流程文件、启动流程、暂停流程、恢复流程等操作。用户在界面的操作命令将发送到工作流虚拟引擎模块的子模块执行。
所述的工作流虚拟引擎数据库负责保存虚拟引擎加载的工作流流程的信息、工作流引擎集群结构。
所述的工作流引擎监控模块,该模块是一个软件模块,包含在所述的工作流虚拟引擎模块中,通过WfMC定义的工作流参考模型中的接口 5,从工作流引擎的监控接口中获取实时的引擎状态信息,包括CPU使用率、内存使用率、网络带宽占用率等,如果该服务容器的类型是工作流引擎,则还有工作流流程案例个数、工作流任务队列长度等参数。工作流引擎监控模块提供了对服务容器的实时监控,提供监控信息给引擎调度策略使用。
所述的工作流引擎集群调度模块,该模块是一个软件模块,包含在所述的工作流虚拟引擎模块中,该模块提供了可配置的调度策略接口,可以由开发人员根据具体企业的实施工作流的需求,实现不同的调度算法,调度算法根据所述的工作流引擎监控模块获得服务容器状态信息,为所述的工作流虚拟引擎模块提供了运行时动态调度工作流服务容器执行任务的功能。
以下给出上述工作流管理系统的工作过程。
图4为本发明实施例中工作流服务信息的注册示意图。参照图4,用户通过工作流服务检索模块web界面登陆,填写相应的工作流服务注册信息,或者查看工作流服务需求信息页面,对某个工作流服务需求进行响应,注册对应的工作流服务,工作流服务检索模块进行验证后,就将信息储存在工作流服务检索模块所在的服务器中。
图5为本发明实施例中工作流服务需求信息的发布示意图。参照图5,用户通过工作流服务检索模块web界面,填写服务需求信息,工作流服务检索模块进行验证后,就将信息储存在服务器中。
图6为本发明实施例中工作流虚拟引擎创建集群的示意图。参照图6,用户通过工作流虚拟引擎web界面,选择工作流流程描述文件,通知工作流虚拟引擎加载。工作流虚拟引擎读取文件后对文件中的每个任务定义进行分析,读取其工作流服务需求信息,发送给工作流服务检索模块,搜索出符合该需求的工作流服务信息集合。对每一个工作流服务信息进行检索,找出能提供该服务的服务容器,在这些容器中挑选合适的作为候选服务容器, 加入到引擎集群结构中,这样就完成了工作流引擎集群结构的创建。
图7为本发明实施例中工作流虚拟引擎执行任务的示意图。参照图7,当工作流程启动一个任务之前,工作流虚拟引擎根据工作流任务需求信息,从工作流引擎集群结构中找出候选的服务容器,从工作流引擎监控模块获取这些候选服务容器的状态信息,工作流引擎集群调度模块根据状态信息进行调度,根据调度算法选择合适的服务容器执行任务。
图8为本发明实施例中工作流虚拟引擎替换异常服务容器的示意图。参照图8,当工作流执行到某个任务或子流程时,负责该任务或子流程的服务容器发生异常,工作流虚拟引擎收到异常报告信息后,再次通过调度策略,从工作流引擎集群的候选服务容器中选择可以负责该任务的服务容器继续任务或子流程的执行。
上述工作流管理系统的技术特点如下
(1)通过工作流服务信息数据结构,对企业现有的各种服务(例如web服务、程序功能模块、人工服务、工作流流程等)进行封装,达到重用的目的。通过工作流服务需求数据结构,工作流流程设计人员可以发布工作流服务需求。
(2)通过工作流服务检索模块进行工作流服务信息数据结构和工作流服务需求数据结构的管理。工作流服务检索模块部署在web服务器上,提供了工作流服务信息和工作流服务需求的发布。工作流服务检索模块提供了工作流服务信息检索功能,该功能通过输入一个工作流服务需求,检索返回符合该需求描述的工作流服务信息的集合给工作流虚拟引擎模块。
(3)通过工作流引擎集群结构,将分布式环境下的工作流引擎统一起来进行管理, 一个工作流引擎集群结构包含若干个服务容器,工作流集群能在运行时进行服务容器添加、移除、更换。
(4)通过工作流虚拟引擎模块行使工作流引擎功能。用户可以加载流程描述文件, 描述文件中每个任务都通过工作流服务需求进行描述,当流程描述文件加载到虚拟引擎模块之后,虚拟引擎模块将会通过与工作流服务检索模块的交互,对描述文件中的工作流服务需求进行检索,返回符合需求的工作流服务信息,然后根据策略进行筛选,获取合适的服务容器进行组合,形成工作流引擎集群。每个服务容器都有一个属性,称为预约数,初始值是0,当服务容器被一个虚拟引擎模块添加到其工作流引擎集群中时,预约数加1,此过程称为资源预约;当某个虚拟引擎模块解散其集群时,集群中的服务容器预约数减1。工作流引擎集群的组成策略采用最近最少使用(LRU)策略,从工作流服务检索模块返回的服务容器集合中,根据预约数从小到大选择一定数目(该数目可以由工作流管理人员自行配置) 的服务容器组成工作流引擎集群。工作流虚拟引擎维护着其负责的工作流流程运行时的数据,可供日志记录和异常处理/恢复机制使用。
工作流虚拟引擎对外体现为一个普通的工作流引擎,因此可提供工作流服务,也可作为服务容器,将服务信息注册到工作流服务检索模块,供其他虚拟引擎使用。
(5)工作流虚拟引擎在任务开始前通过工作流引擎调度模块设置的调度算法,根据工作流引擎监控模块得到的服务容器的实时信息,动态地选择在工作流引擎集群中选择适合的服务容器进行任务的执行工作,实现负载均衡、优化流程运行的目的。
(6)在工作流执行过程中,若负责某个任务的服务容器发生异常,工作流虚拟引擎模块通过重新选择集群中合适的服务容器接管任务,并将保存在工作流虚拟引擎中的流程运行数据传输给新的服务容器,确保流程的正常运行。
以下给出上述工作流管理系统的一个实施案例。
首先,工作流服务提供者登陆到工作流服务检索模块所属的服务器,进行工作流服务信息的注册,工作流服务提供者可以是单独注册一个工作流服务,也可以查看服务器上发布的工作流服务需求信息,针对某个需求发布工作流服务。
然后,工作流流程设计人员设计工作流流程,设计过程中指定每个工作流节点的任务的服务需求,服务需求可以从工作流检索模块获得,通过组合这些服务需求完成一个流程描述文件的设计,然后命令工作流虚拟引擎对流程描述文件进行加载。工作流虚拟引擎加载完流程描述文件后,创建了对应的工作流引擎集群。
最后,工作流引擎管理人员或者其他程序模块调用工作流虚拟引擎的启动流程接口,工作流虚拟引擎开始工作流的执行过程。
最后应当说明的是,以上实施例仅用以说明本发明的技术方案而非限制,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神范围,其均应涵盖在本发明的权利要求范围当中。
权利要求
1.一种工作流管理系统,其特征在于,包括 流程加载模块,用于加载流程描述文件;流程解析模块,用于对所述流程描述文件进行解析,得到所述流程描述文件中各任务的工作流服务需求信息;工作流服务检索模块,用于根据所述工作流服务需求信息获取工作流服务信息,并检索出能够提供相应的工作流服务的服务容器的集合;工作流引擎集群创建模块,用于按照预定策略从所述集合中选取多个服务容器,并将选取的服务容器组合为工作流引擎集群;以及工作流引擎集群调度模块,用于从所述工作流引擎集群中选择服务容器来执行所述任务。
2.如权利要求1所述的工作流管理系统,其特征在于所述工作流服务包括工作流原子服务和工作流流程服务,所述服务容器包括与所述工作流原子服务对应的服务器和与所述工作流流程服务对应的工作流引擎。
3.如权利要求1所述的工作流管理系统,其特征在于,还包括,工作流引擎监控模块, 用于对所述工作流引擎集群中的服务容器进行监控,来获取其状态信息;所述工作流引擎集群调度模块具体用于,根据所述状态信息,并按照预定的调度算法来从所述工作流引擎集群中选择服务容器来执行所述任务。
4.如权利要求3所述的工作流管理系统,其特征在于 所述调度算法为负载均衡算法。
5.如权利要求1所述的工作流管理系统,其特征在于 所述预定策略为最近最少使用LRU策略。
6.如权利要求1所述的工作流管理系统,其特征在于,所述工作流服务检索模块进一步用于存储用户注册的工作流服务信息以及用户发布的工作流服务需求信息。
7.一种工作流管理方法,其特征在于,包括如下步骤 加载流程描述文件;对所述流程描述文件进行解析,得到所述流程描述文件中各任务的工作流服务需求信息;根据所述工作流服务需求信息获取工作流服务信息,并检索出能够提供相应的工作流服务的服务容器的集合;按照预定策略从所述集合中选取多个服务容器,并将选取的服务容器组合为工作流引擎集群;以及从所述工作流弓I擎集群中选择服务容器来执行所述任务。
8.如权利要求7所述的工作流管理方法,其特征在于所述工作流服务包括工作流原子服务和工作流流程服务,所述服务容器包括与所述工作流原子服务对应的服务器和与所述工作流流程服务对应的工作流引擎。
9.如权利要求7所述的工作流管理方法,其特征在于,还包括,对所述工作流引擎集群中的服务容器进行监控,来获取其状态信息;所述从所述工作流引擎集群中选择服务容器具体为根据所述状态信息,并按照预定的调度算法从所述工作流引擎集群中选择服务容器。
10.如权利要求9所述的工作流管理方法,其特征在于 所述调度算法为负载均衡算法。
11.如权利要求7所述的工作流管理方法,其特征在于 所述预定策略为最近最少使用LRU策略。
12.如权利要求7所述的工作流管理方法,其特征在于,还包括获取用户注册的工作流服务信息以及用户发布的工作流服务需求信息。
全文摘要
本发明提供一种工作流管理系统及工作流管理方法,属于业务支撑技术领域。所述工作流管理方法包括如下步骤加载流程描述文件;对所述流程描述文件进行解析,得到所述流程描述文件中各任务的工作流服务需求信息;根据所述工作流服务需求信息获取工作流服务信息,并检索出能够提供相应的工作流服务的服务容器的集合;按照预定策略从所述集合中选取多个服务容器,并将选取的服务容器组合为工作流引擎集群;从所述工作流引擎集群中选择服务容器来执行所述任务。本发明实现了对多个工作流引擎的集中管理。
文档编号G06Q10/06GK102509197SQ201110393548
公开日2012年6月20日 申请日期2011年12月1日 优先权日2011年12月1日
发明者伍春萍, 方坚坚, 李震, 罗芸, 陈广宇, 陈辉 申请人:中国移动通信集团广东有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1