一种轻量级的分布式工作流引擎构建系统的制作方法

文档序号:24487557发布日期:2021-03-30 21:12阅读:126来源:国知局
一种轻量级的分布式工作流引擎构建系统的制作方法

本发明涉及引擎构建技术领域,尤其涉及一种轻量级的分布式工作流引擎构建系统。



背景技术:

工作流是计算机应用程序下的整个或部分业务流程的自动化,为了实现业务目标,根据某些预定规则在多个参与者之间自动传递任务、文档或信息。工作流的概念起源于生产组织和办公室业务自动化领域,随着计算机和企业中计算机应用程序的日益普及,相关人员希望在无纸化、计算机支持的工作环境中进行日常业务工作。人们将具有固定程序的工作进行流程固化和拆分,并把流程拆分后的任务分配给不同角色的人员,然后按序执行。工作流技术的应用提高了企业管理效率和运营成本,使得企业更具竞争力。

工作流引擎主要负责流程的操作和流程数据的维护,并为上层业务系统提供服务支撑。当多个业务系统同时访问引擎时,会导致引擎数据查询和维护难度成倍增加。主要表现在当流程部署的数量达到一定规模时,任务、流程实例和附言数据会大量积累,数据处理和查询期间检索效率会降低。

在企业信息化系统中,工作流引擎处于核心地位,是系统的任务调度器和资源分配器,但是,由于企业业务复杂多变的特性,传统的工作流系统在支撑企业业务处理时仍存在一些缺陷,主要表现为架构复杂,可伸缩性、灵活性和可用性较低,且难于与业用系统进行集成。因此,业务系统基于工作流产品进行业务开发时难度很大,业务数据处理也及其复杂。

传统的工作流产品多采用单体架构进行系统开发,对业务流程数据进行集中处理。虽然这种方式在初期有利于工作流管理系统的快速构建、运行和维护,但是随着业务数量和复杂需求的激增,系统无法灵活扩展、运行效率不高、与业务系统集成难度高和数据管理困难等重大缺陷也随之出现。



技术实现要素:

鉴以此,本发明的目的在于提供一种轻量级的分布式工作流引擎构建系统,以解决现有技术出现的上述问题。

一种轻量级的分布式工作流引擎构建系统,包括工作流引擎、工作流引擎客户端和数据库,所述工作流引擎用于工作流流程处理和工作流流程数据维护,所述工作流引擎客户端用于给工作流引擎发送用户工作流实例,所述数据库用于存储工作流引擎的工作流流程数据,所述工作流引擎客户端通过数据处理接口与工作流引擎进行数据连接,所述数据库与工作流引擎数据连接。

进一步的,所述工作流引擎包括工作流执行模块、工作流模型构建模块和工作流异常处理模块,所述工作流执行模块用于执行工作流实例,所述工作流模型构建模快用于对工作流程流程处理,所述工作流异常处理模块用于对工作流流程数据的维护。

进一步的,所述工作流模型构建模块为基于状态图和活动图建模模块。

进一步的,所述工作流异常处理模块包括忽略异常模块、重试模块、修改模块、后向恢复模块和修改模型模块。

进一步的,所述数据库包括本地数据库和外部数据库,所述本地数据库与工作流引擎数据连接,所述外部数据库通过通讯模块与工作流引擎数据连接。

进一步的,所述工作流执行模块包括流程解析器、流程管理器、任务分配器、路由控制器和执行器。

进一步的,所述工作流引擎用于实现以下步骤:

s1:用户通过工作流引擎客户端启动某个工作流实例;

s2:工作流引擎从数据库或xml文件中读取对应的工作流模型;

s3:当用户对某个节点操作完成,工作流引擎决定该工作流实例的流转方向,决定下一个操作节点以及该节点可操作的角色,直到该实例流转结束。

进一步的,还包括外部建模工具,所述外部建模工具与工作流引擎数据连接。

进一步的,分布式工作流引擎保留了原来的工作流引擎进行本地处理,增加一个主控引擎来管理模型的分配、控制台服务及远程访问。

与现有技术相比,本发明的有益效果是:

本发明提供一种轻量级的分布式工作流引擎构建系统,用户通过工作流引擎客户端给工作流引擎发送工作流实例,工作引擎对工作流实例进行优化处理,采用轻量化的设计原理,即工作流引擎只需要实现必要的功能,而无需过多追求复杂的结构,重点是提高引擎的执行效率和灵活程度,工作流引擎的各模块相互协调,构建出一个高灵活性、高扩展性和高可用性的工作流引擎,简化了系统结构和数据库的复杂度,单个工作流实例允许在多个服务器和客户端之间进行并行计算和资源共享,执行效率将进一步提高,使企业的业务处理更快、更及时,提高了企业管理的效率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的优选实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例一提供的一种轻量级的分布式工作流引擎构建系统的系统流程图。

图2是本发明实施例一提供的一种轻量级的分布式工作流引擎构建系统的系统流程图。

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所列举实施例只用于解释本发明,并非用于限定本发明的范围。

实施例一

参照图1和图2,本发明提供一种轻量级的分布式工作流引擎构建系统,包括工作流引擎、工作流引擎客户端和数据库,所述工作流引擎用于工作流流程处理和工作流流程数据维护,所述工作流引擎客户端用于给工作流引擎发送用户工作流实例,所述数据库用于存储工作流引擎的工作流流程数据,所述工作流引擎客户端通过数据处理接口与工作流引擎进行数据连接,所述数据库与工作流引擎数据连接;工作流引擎客户端负责管理工作流工作项列表,并完成与最终用户的交互,工作项列表管理器可以作为工作流管理系统的一部分提供给用户,也可以是用户自己编写的程序。所述工作流引擎包括工作流执行模块、工作流模型构建模块和工作流异常处理模块,所述工作流模型构建模快用于对工作流程流程处理,所述工作流异常处理模块用于对工作流流程数据的维护,工作流引擎将工作流模型作为依据,驱动工作流实例的正确流转,即从一个工作流实例开始,执行,到结束,整个过程中控制该实例中各个活动的执行。工作流实例中的每一个活动都有其对应的操作角色,实例流转到某一个活动时,该活动就由它对应的角色人员进行操作,而其他角色人员不得参与该活动的操作。某个活动操作完毕,则根据操作结果,决定实例的流转方向,不断重复上述过程直到该实例结束。

所述工作流模型构建模块为基于状态图和活动图建模模块,活动图是一种有向图,它用标有数据信息的有向弧来表示活动间的数据流,状态图则反映了系统的动态行为,因而适于描述工作流中各活动间的控制流程。状态图本质上讲是一个有限状态机,它有明确的起始和终止状态,而状态间的转移则是通过一一,来驱动的。这样从不同的角度去描述模型可以很好的使不同的人员更好的描述系统。

所述工作流异常处理模块包括忽略异常模块、重试模块、修改模块、后向恢复模块和修改模型模块,忽略异常模块可以忽略出现的异常,即对工作流流程的正确执行没有影响或者影响可以忽略。这种情况下系统可以由异常处理状态直接回到正常运行状态;重试模块可以对出错的任务重新执行,直到任务运行正确完成或者超过了设定的最大重试次数,重试过程中用户可能采取了其他一些外部操作,如恢复网络连接等;修改模块:工作流实例异常的发生是由于工作流实例的某些属性或数据与正确值或预期值不符造成,此时可以通过直接修改这些属性或数据达到解决异常的目的;后向恢复模块:后向恢复通过对已经执行任务的补偿,使工作流实例的状态恢复到一个可以重新执行的正常状态,然后通过人工导航沿原路径或其他合理路径重新启动实例的运行;修改模型模块:修改模型修改工作流实例所对应的模型。修改模型可以仅针对当前实例,即为当前实例建立一个临时模型,也可以将所作修改保存到模型定义中,从而影响到其他实例和新实例。

所述数据库包括本地数据库和外部数据库,所述本地数据库与工作流引擎数据连接,所述外部数据库通过通讯模块与工作流引擎数据连接,所述通讯模块可以采用gprs、wifi或其他通讯模块的现有型号。

所述工作流执行模块包括流程解析器、流程管理器、任务分配器、路由控制器和执行器,所述流程解析器根据不同的工作流建模规则,将外部建模工具创建的流程模型解析成数据对象并保存到数据库;所述流程管理器根据流程解析器解析的流程对象进行实例化操作,控制工作流实例的启动、挂起、恢复和中止等操作,供工作流实例运行相关的数据信息。通常流程管理器负责管理引擎所有的工作流实例;所述任务分配器在业务流程的执行过程中,工作任务会被分配给多个负责人,分配器根据实际情况将工作流实例分配给合适人员,确保工作流管理系统高速运转。假如说流程解析器负责解析具体的流程注解规范,任务分配器就是将系统资源合理的分配给最佳人选;所述路由控制器监控工作流实例运行,执行实例中的具体活动,只要收到结束命令,就会改变实例状态,结束当前流程的执行;所述执行器监控工作流实例运行,执行工作流实例中的具体活动,只要收到结束命令,就会改变工作流实例状态,结束当前流程的执行。

所述工作流引擎用于实现以下步骤:

s1:用户通过工作流引擎客户端启动某个工作流实例;

s2:工作流引擎从数据库或xml文件中读取对应的工作流模型;

s3:当用户对某个节点操作完成,工作流引擎决定该工作流实例的流转方向,即决定下一个操作节点以及该节点可操作的角色,一直持续到该实例流转结束。

还包括外部建模工具,所述外部建模工具与工作流引擎数据连接,所述外部建模工具可以是现有的计算机软件。

分布式工作流引擎保留了原来的工作流引擎进行本地处理,增加一个主控引擎来管理模型的分配、控制台服务及远程访问。

系统的底层通信机制采用标准消息通信方式,保证了系统之间互操作的可靠性。分布式工作流引擎系统重增加了节点分配器,以便于将活动模型分配到其他引擎上去执行,实现互操作。逻辑节点并不代表真正需要执行的活动,它是为了表示任务节点之间的逻辑关系而设立的。在一个工作流过程中,活动间的逻辑关系并不仅仅是串行的顺序关系,还有可能出现较为复杂的“与”、“或”关系组合。主要包括以下五种基本的逻辑关系:顺序、与分支(与汇出节点)、与合并(与汇聚节点)、或分支(或汇出节点)、或合并(或汇聚节点)。与汇出节点启动该节点后所有的后续活动。与汇聚节点等待所有的汇聚活动的接受者完成活动后才能启动以后的活动。或汇出节点根据条件选择一个符合条件的后继节点执行,在或汇出节点中包含一类特殊的表决汇出节点,该节点统计前依赖活动的投票数,根据投票数是否满足规定的票数决定要启动的后续活动。或汇聚节点当前依赖活动有任一活动结束就启动本活动。

采用轻量化设计原则,以此来提高工作流引擎的效能和独立性,使引擎稳定高效地运行。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1