一种基于关系数据库的工作流引擎系统的设计方法

文档序号:6508271阅读:849来源:国知局
专利名称:一种基于关系数据库的工作流引擎系统的设计方法
技术领域
本发明涉及一种工作流引擎系统的设计方法,特别是一种基于关系数据库的工作流引擎系统的设计方法。
背景技术
工作流是一种能够完全或者部分自动执行的经营过程,它根据一系列过程规则, 文档、信息或任务能够在不同的执行者之间进行传递与执行。工作流引擎的英文全称是 WorkFlow Engine,是指其作为应用系统的一部分,并为之提供对各应用系统有决定作用的根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案。工作流系统的核心部分是工作流引擎,引擎是驱动流程流动的主要部件,它负责解释工作流流程定义,创建并初始化流程实例,控制流程流动的路径,记录流程运行状态, 挂起或唤醒流程,终止正在运行的流程,与其他引擎之间通讯等等工作。开发一个系统最关键的部分不是系统的界面,也不是和数据库之间的信息交换, 而是如何根据业务逻辑开发出符合实际需要的程序逻辑并确保其稳定性、易维护性(模块化和结构化)和弹性(容易根据实际业务逻辑的变化作出程序上的变动,例如决策权的改变、组织结构的变动和由于业务方向的变化产生的全新业务逻辑等等)。工作流引擎解决的就是这个问题,如果应用程序缺乏强大的逻辑层,不仅程序变得容易出错(信息的路由错误、死循环等等),而且系统的维护升级将会十分复杂。工作流要完成的核心功能有流程设计,流程执行,流程调度,任务的分派与通知。 具体来说主要功能就是管理和控制业务流程,包括流程实例的启动、停止;环节实例的启动、结束;任务的分配等等。工作流引擎自身不能实现完整的业务应用,必须集成在信息系统中,通过信息系统完成具体的业务功能。因此工作流引擎最重要的性能指标就是与应用系统的可集成性, 否则再好的工作流引擎也无法在实际系统中体现其作用。而现实中的应用系统又是复杂多样的,有基于C/S架构的两层系统,也有B/S/S架构的多层系统,业务逻辑由主要在中间服务层实现的,也有在数据库层进行大量的业务逻辑处理,这些都对工作流引擎提出了不同的集成性需求,因此无法通过单一工作流设计就能满足所有的应用类型,特别是针对数据库层有大量业务逻辑处理的应用系统,目前流行的工作流引擎都无法提供很适合的集成性,而通过数据库层实现工作流引擎的设计,则能很好地进行相应的集成。现有的工作流引擎及工作流系统通常具有如下问题1.使用成本较高。现有工作流引擎需要一定的软硬件环境,基于J2EE技术的工作流需要中间件服务系统和硬件服务器,这对于两层C/S类的应用系统,就必须另外花钱采购,会增加额外的成本。同时整个系统增加了中间件环节,增大了系统的复杂程度,增多系统的故障点,对系统的维护保障都提出了更高的要求。2.灵活性较差不同种类的工作流引擎具有自己独立的一套工作流模型、工作流定义语言以及API函数。没有一个标准的规范,用户一旦选定一种产品之后,就很难再过渡到其它同类产品上了 ;而且不同的系统之间缺乏互操作的接口,使得系统的扩展性无法保障。3.运行性能问题目前大多数工作流产品在运行响应时间和并发处理能力上都有一定的欠缺,无法满足企业每天处理上万个,甚至每小时处理几千个业务的需求。4.缺乏柔性无论是流程模型定义还是权限角色解析,现有的工作流系统都表现出不同程度的柔性差的特点。一些项目的实际应用常常有对执行路由的动态需求以及工作项执行人的动态选派,对于这些需求现在的工作流系统都不能很好的给予支持。5.稳定性较差工作流系统在企业的实际应用中,常常会由于某些不常规的操作,造成流程执行的错误。这些不常规操作包括流程定义的不合法性、操作的时间过长等等。对于这些错误问题的妥善解决也是以后的工作流系统需要做的工作。6.实现技术不成熟目前工作流产品或原形系统采用的实现技术都无法达到关系数据库管理系统的水平。同时由于工作流采用单独的数据库会话,常常造成工作流和业务系统数据不一致的关键问题。因此,需要一种新的技术方案以解决上述问题。

发明内容
针对上述现有技术存在的问题和不足,本发明的目的是提供一种基于关系数据库的工作流引擎系统的设计方法,该方法有低成本、高灵活性、高处理能力及柔性、较强稳定性的特点。为实现上述目的,本发明可采用如下技术方案一种基于关系数据库的工作流引擎系统的设计方法,包括以下步骤(1)在数据库系统中设计并建立工作流引擎的相关表,分为配置类表及过程数据类表,其中配置类表将每个事项进行环节分解,定义流程以及具体的数据项内容;过程数据类表,记录事项开始执行后的环节流程信息、以及各环节的数据项信息、控制信息;(2)在数据库中设计、开发工作流引擎的运行方法;(3)在具体软件应用系统使用所述工作流引擎时,实现工作流引擎与应用系统的集成;(4)在软件应用系统中根据业务功能需求,使用工作流引擎提供的相应方法,实现业务逻辑的流程处理。本发明与现有技术相比具有以下优点使用基于数据库系统的工作流引擎则可以充分共享利用已有的数据库系统,以及数据库系统的服务器硬件设备,不再需要购置另外的软硬件环境,这将大大节省系统成本;数据库接口具有稳定的规范标准,同时数据库厂商针对不同的开发工具提供了许多统一的访问接口,有力的保证了其灵活性;关系数据库是成熟、可靠的数据处理技术产品,具有强大的数据存储访问能力、大并发的处理能力、很高的数据一致性保障;基于数据库的工作流可以无缝的利用应用系统的人员资料、岗位职责、管理权限, 在权限管理上做到工作流和业务系统的集中统一,具有很大的柔性;
基于数据库的工作流配置在应用系统的数据库中,系统无需增加硬件服务器、不增加网络节点、共享数据库访问方式,整个系统架构简单,网络架构清晰,必然具有较强的稳定性。
具体实施例方式下面结合具体实施方式
,进一步阐明本发明,应理解下述具体实施方式
仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。本发明提供一种基于关系数据库的工作流引擎系统的设计方法,该方法包括以下步骤(1)在数据库系统中设计并建立工作流引擎的相关表,分为配置类表及过程数据类表,其中配置类表将每个事项进行环节分解,定义流程以及具体的数据项内容;过程数据类表,记录事项开始执行后的环节流程信息、以及各环节的数据项信息、控制信息;(2)在数据库中设计、开发工作流引擎的运行方法;(3)在具体软件应用系统使用所述工作流引擎时,实现工作流引擎与应用系统的集成;(4)在软件应用系统中根据业务功能需求,使用工作流引擎提供的相应方法,实现业务逻辑的流程处理。其中,工作流引擎的设计全部基于关系数据库Oracle,具体分为数据库表、数据库过程(函数)两大类。其中数据库表按其作用又可细分为配置类表和过程数据类表两种。 配置类表,在系统运行前对各类事项进行流程分解、定义、以及数据项的设置,是事项运行时流程和数据处理的依据。过程类数据表,在系统运行时,详细记载每个事项的流程路径、 环节数据、操作信息。数据库过程(函数)主要是提供工作流引擎运行的各种方法,以供外部应用系统调用。所述配置类表包括1、事项配置表设置工作流中所有的事项,主要包含事项标识号、事项名称、时限天数数据项。2、环节配置表设置工作流中所有事项流程的环节信息,主要包含事项标识号、环节标识号、环节名称、时限天数、环节运行类型数据项。3、环节分支配置表定义工作流中每个环节的所有后续执行分支路径,主要包含环节标识号、分支标识号、分支名称、执行权限等数据项。4、环节意见配置表定义各个环节的所有意见选项,主要包含环节标识号、意见标识号、意见内容等数据项。5、表单配置表定义工作流中所有的表单情况,主要包含表单标识号、表单名称、表单模板文件等数据项。
6、表单栏目配置表定义工作流中所有表单的栏目情况,主要包含表单标识号、栏目标识号、栏目名称、栏目数据类型、栏目数据长度等数据项。7、表单环节配置表定义工作流中表单在各环节的使用情况,主要包含表单标识号、环节标识号、表单使用方式等数据项。所述过程数据类表包括1、事项办理记录表记录所有事项的执行情况,主要包含事项标识号、流程开始时间、流程结束时间、 流程状态等数据项。2、环节办理记录表记录所有事项流程的环节执行情况,主要包含事项标识号、环节标识号、环节开始时间、环节结束时间、环节状态等数据项。3、环节人员事项办理记录表针对环节多人办理的情况,分别记录每个人在此环节的执行情况,主要包含事项标识号、环节标识号、人员编号、操作开始时间、操作结束时间、操作内容等数据项。4、表单栏目内容表记录所有流程各个环节上对相应表单栏目内容的修改情况,主要包含事项标识号、环节标识号、表单标识号、栏目标识号、栏目内容等数据项。5、挂起操作记录表记录所有工作流中所有的流程挂起及恢复的操作情况,主要包含事项标识号、环节标识号、挂起原因、挂起时间、恢复原因、恢复时间等数据项。所述步骤O)中在数据库中设计、开发工作流引擎的运行方法包括以下步骤1)传入一个事项标识号启动此事项的流程;2)根据当前的环节去配置表中可能的后续分支;3)根据传入的环节标识号,到配置表取出具有权限的办理人信息;4)传入当前环节的办理信息,结束本环节的办理;5)根据传入的环节标识号,取消已经完成的办理操作;6)根据传入的环节标识号,查询配置表取出此环节需要处理的表单信息;7)根据传入的环节标识号,查询配置表取出此环节需要处理的表单栏目信息;8)将处理中填写的表单各个栏目数据项内容,提交系统进行存储;9)根据输入的环节标识号,启动此环节的办理;10)根据输入的事项流程号,将此流程挂起,并记录挂起原因;11)根据输入的挂起事项流程号,将此流程恢复运行,并记录恢复原因。所述步骤(4)的流程处理的设计包括启动事项流程及处理代办事项流程,其中处理代办事项流程位于启动事项流程之后。所述启动事项流程包括以下步骤1)由用户启动程序;2)业务应用系统(可以是一个人机界面)取可执行的事项信息;
3)由关系数据库查询所述事项配置表,并返回可启动的实现流程列表;4)业务应用系统显示事项列表;5)由用户选择启动事项;6)调用所述发起指定事项流程,开始流程处理;7)工作流引擎发起指定事项流程;8)由关系数据库查询所述环节配置表,返回此事项的首个办理环节;9)工作流引擎根据环节号,发起制定环节的办理;10)由关系数据库新增事项办理记录表、环节办理记录表存入新流程的事项、环节办理数据,查询所述环节意见配置表及表单栏目配置表,返回此环节的表单数据项;11)由业务应用系统获取环节信息及表单信息,并在界面显示,供用户填写选择;12)由用户进行环节、表单信息填写、选择,提交本环节数据,并由业务应用系统提交环节数据,并查询后续的流程信息;13)工作流引擎根据环节号,取环节后续分支及后续环节;14)由关系数据库查询所述环节分支配置表,返回此环节的分支信息和后续环节标识号;15)工作流引擎根据后续环节标识号,取环节处理人;16)由关系数据库查询所述环节配置表,返回此环节的操作人信息;17)由业务应用系统获取后续流程信息并显示;18)用户选择环节处理完的后续分支及办理人;19)由业务应用系统调用所述完成当前环节办理,传入后续分支及办理人;20)工作流引擎完成当前环节办理,并由关系数据库中更改事项办理记录表、环节办理记录表中的信息,并新增下一环节的记录表,作为代办环节。所述处理代办事项流程包括以下步骤1)由用户启动程序;2)业务应用系统取本人的代办事项;3)关系数据库查询环节办理记录表,返回办理人是本人的代办环节事项;4)业务应用系统显示事项列表;5)用户选择代办事项,并开始处理;6)业务应用系统调用启动制定环节办理,开始环节处理;7)工作流引擎根据环节号,发起指定环节的办理;8)关系数据库修改事项办理记录表、新增环节办理记录表记录存入新环节办理数据,查询所述环节意见配置表及表单栏目配置表,并返回此环节的表单数据项;9)业务应用系统获取环节信息及表单信息,并在界面显示,供用户填写;10)由用户进行环节、表单信息填写及选择,提交本环节数据;11)业务应用系统提交环节数据,并查询后续的流程信息;12)工作流引擎根据环节号,取环节后续分支及后续环节;13)关系数据库查询所述环节分支配置表,返回此环节的分支信息和后续环节标识号;14)工作流引擎根据后续环节标识号,取环节处理人;
15)关系数据库查询所述环节配置表,返回此环节的操作人信息;16)业务应用系统获取后续流程信息并显示;17)由业务应用系统判断流程是否结束,若是则提示并结束处理,若否则进入下一步骤;18)由用户选择环节处理完的后续分支及办理人;19)业务应用系统调用所述完成当前环节办理,传入后续分支及办理人;20)工作流引擎完成当前环节办理;21)由关系数据库更改事项办理记录表及环节办理记录表中的信息,并新增下一环节的记录表,作为代办环节;22)由业务应用系统提示结束并作结束处理。如上所述的基于关系数据库的工作流引擎系统的设计方法相较于背景技术拥有以下优点1、降低工作流引擎使用成本。目前信息管理系统都配置了关系数据库系统用于存储系统数据信息,而使用基于数据库系统的工作流引擎则可以充分共享利用已有的数据库系统,以及数据库系统的服务器硬件设备,不再需要购置另外的软硬件环境,这将大大节省系统成本。2、具有较强的灵活性。采用基于关系数据库的工作流引擎,即在数据库层面保证了工作流引擎和业务应用系统之间使用标准化的关系数据库接口(数据库表、过程、函数),数据库接口具有稳定的规范标准,同时数据库厂商针对不同的开发工具提供了许多统一的访问接口,有力的保证了其灵活性。3、强大的处理能力。关系数据库是成熟、可靠的数据处理技术产品,具有强大的数据存储访问能力、大并发的处理能力、很高的数据一致性保障,这些特点都是其它工作流引擎不具备的优势。4、具有较大的柔性,业务应用系统一定在关系数据库中存储系统人员档案信息、 机构信息、以及相应的权限,而基于数据库的工作流可以无缝的利用应用系统的人员资料、 岗位职责、管理权限,在权限管理上做到工作流和业务系统的集中统一。同时工作流可以通过数据库方便的访问到应用系统的业务数据,做到一次录入充分共享,减少信息录入的工作量。通过数据库访问,还能够实现与业务应用相关的复杂流程,根据业务处理的数据情况,由工作流决定流程路径。5、较强的稳定性基于数据库的工作流配置在应用系统的数据库中,系统无需增加硬件服务器、不增加网络节点、共享数据库访问方式,整个系统架构简单,网络架构清晰, 必然具有较强的稳定性。同时与业务系统共用数据库,利用数据库的访问机制,可以保证工作流和业务系统处理的一致性,大大减少数据处理问题。6、实现技术成熟关系数据库是十分成熟的技术产品,在处理能力、响应速度、并发性、安全可靠、数据备份等各方面都具有较强的能力。
10
权利要求
1.一种基于关系数据库的工作流引擎系统的设计方法,其特征在于包括以下步骤(1)在数据库系统中设计并建立工作流引擎的相关表,分为配置类表及过程数据类表, 其中配置类表将每个事项进行环节分解,定义流程以及具体的数据项内容;过程数据类表, 记录事项开始执行后的环节流程信息、以及各环节的数据项信息、控制信息;(2)在数据库中设计、开发工作流引擎的运行方法;(3)在具体软件应用系统使用所述工作流引擎时,实现工作流引擎与应用系统的集成;(4)在软件应用系统中根据业务功能需求,使用工作流引擎提供的相应方法,实现业务逻辑的流程处理。
2.根据权利要求1所述的基于关系数据库的工作流引擎系统的设计方法,其特征在于所述配置类表包括事项配置表用以设置工作流中所有的事项;环节配置表用以设置工作流中所有事项流程的环节信息;环节分支配置表用以定义工作流中每个环节的所有后续执行分支路径;环节意见配置表用以定义各个环节的所有意见选项;表单配置表用以定义工作流中所有的表单情况;表单栏目配置表用以定义工作流中所有表单的栏目情况;表单环节配置表用以定义工作流中表单在各环节的使用情况。
3.根据权利要求1或2所述的基于关系数据库的工作流引擎系统的设计方法,其特征在于所述过程数据类表包括事项办理记录表用以记录所有事项的执行情况; 环节办理记录表用以记录所有事项流程的环节执行情况;环节人员事项办理记录表用以针对环节多人办理的情况,分别记录每个人在此环节的执行情况;表单栏目内容表用以记录所有流程各个环节上对相应表单栏目内容的修改情况; 挂起操作记录表用以记录所有工作流中所有的流程挂起及恢复的操作情况。
4.根据权利要求1所述的基于关系数据库的工作流引擎系统的设计方法,其特征在于所述步骤O)中在数据库中设计、开发工作流引擎的运行方法包括以下步骤1)传入一个事项标识号启动此事项的流程;2)根据当前的环节去配置表中可能的后续分支;3)根据传入的环节标识号,到配置表取出具有权限的办理人信息;4)传入当前环节的办理信息,结束本环节的办理;5)根据传入的环节标识号,取消已经完成的办理操作;6)根据传入的环节标识号,查询配置表取出此环节需要处理的表单信息;7)根据传入的环节标识号,查询配置表取出此环节需要处理的表单栏目信息;8)将处理中填写的表单各个栏目数据项内容,提交系统进行存储;9)根据输入的环节标识号,启动此环节的办理;10)根据输入的事项流程号,将此流程挂起,并记录挂起原因;11)根据输入的挂起事项流程号,将此流程恢复运行,并记录恢复原因。
5.根据权利要求1所述的基于关系数据库的工作流引擎系统的设计方法,其特征在于所述步骤(4)的流程处理的设计包括启动事项流程及处理代办事项流程,其中处理代办事项流程位于启动事项流程之后。
6.根据权利要求5所述的基于关系数据库的工作流引擎系统的设计方法,其特征在于所述启动事项流程包括以下步骤1)由用户启动程序;2)业务应用系统(可以是一个人机界面)取可执行的事项信息;3)由关系数据库查询所述事项配置表,并返回可启动的实现流程列表;4)业务应用系统显示事项列表;5)由用户选择启动事项;6)调用所述发起指定事项流程,开始流程处理;7)工作流引擎发起指定事项流程;8)由关系数据库查询所述环节配置表,返回此事项的首个办理环节;9)工作流引擎根据环节号,发起制定环节的办理;10)由关系数据库新增事项办理记录表、环节办理记录表存入新流程的事项、环节办理数据,查询所述环节意见配置表及表单栏目配置表,返回此环节的表单数据项;11)由业务应用系统获取环节信息及表单信息,并在界面显示,供用户填写选择;12)由用户进行环节、表单信息填写、选择,提交本环节数据,并由业务应用系统提交环节数据,并查询后续的流程信息;13)工作流引擎根据环节号,取环节后续分支及后续环节;14)由关系数据库查询所述环节分支配置表,返回此环节的分支信息和后续环节标识号;15)工作流引擎根据后续环节标识号,取环节处理人;16)由关系数据库查询所述环节配置表,返回此环节的操作人信息;17)由业务应用系统获取后续流程信息并显示;18)用户选择环节处理完的后续分支及办理人;19)由业务应用系统调用所述完成当前环节办理,传入后续分支及办理人;20)工作流引擎完成当前环节办理,并由关系数据库中更改事项办理记录表、环节办理记录表中的信息,并新增下一环节的记录表,作为代办环节。
7.根据权利要求6所述的基于关系数据库的工作流引擎系统的设计方法,其特征在于所述处理代办事项流程包括以下步骤1)由用户启动程序;2)业务应用系统取本人的代办事项;3)关系数据库查询环节办理记录表,返回办理人是本人的代办环节事项;4)业务应用系统显示事项列表;5)用户选择代办事项,并开始处理;6)业务应用系统调用启动制定环节办理,开始环节处理;7)工作流引擎根据环节号,发起指定环节的办理;8)关系数据库修改事项办理记录表、新增环节办理记录表记录存入新环节办理数据, 查询所述环节意见配置表及表单栏目配置表,并返回此环节的表单数据项;9)业务应用系统获取环节信息及表单信息,并在界面显示,供用户填写;10)由用户进行环节、表单信息填写及选择,提交本环节数据;11)业务应用系统提交环节数据,并查询后续的流程信息;12)工作流引擎根据环节号,取环节后续分支及后续环节;13)关系数据库查询所述环节分支配置表,返回此环节的分支信息和后续环节标识号;14)工作流引擎根据后续环节标识号,取环节处理人;15)关系数据库查询所述环节配置表,返回此环节的操作人信息;16)业务应用系统获取后续流程信息并显示;17)由业务应用系统判断流程是否结束,若是则提示并结束处理,若否则进入下一步骤;18)由用户选择环节处理完的后续分支及办理人;19)业务应用系统调用所述完成当前环节办理,传入后续分支及办理人;20)工作流引擎完成当前环节办理;21)由关系数据库更改事项办理记录表及环节办理记录表中的信息,并新增下一环节的记录表,作为代办环节;22)由业务应用系统提示结束并作结束处理。
全文摘要
本发明提供一种基于关系数据库的工作流引擎系统的设计方法,在数据库系统中设计并建立工作流引擎的相关表;在数据库中设计、开发工作流引擎的运行方法;在具体软件应用系统使用所述工作流引擎时,实现工作流引擎与应用系统的集成;并在软件应用系统中根据业务功能需求,使用工作流引擎提供的相应方法,实现业务逻辑的流程处理,该方法有低成本、高灵活性、高处理能力及柔性、较强稳定性的特点。
文档编号G06Q10/00GK102467504SQ20101053116
公开日2012年5月23日 申请日期2010年11月3日 优先权日2010年11月3日
发明者高旭 申请人:南京莱斯信息技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1