工作流数据处理装置及方法转让专利

申请号 : CN200610072782.5

文献号 : CN1983313B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李凌志

申请人 : 华为技术有限公司

摘要 :

本发明涉及一种工作流数据处理装置,其包括:内存池,与内存池连接的解析模块;与内存池和数据库连接的读写模块,与解析模块和客户端连接的侦听模块。本发明还涉及一种工作流数据处理方法,其包括:读写模块将以字符串方式表达的工作流数据以及对应于工作流数据的字符解析表从数据库中读出,并保存在内存池中;解析模块读取内存池中的工作流数据和字符解析表,并根据该字符解析表对工作流数据进行分析;解析模块根据分析结果调用执行工作流数据对应的动作的执行机构。本发明采用字符串以一定的编码规则来存储工作流数据,简化存储内容,而且方便修改和查找;并且节约了存储空间,对系统硬件配置的要求低,降低了硬件投资。

权利要求 :

1.一种工作流数据处理装置,其特征在于,包括:

内存池,用于存储以字符串方式表达的工作流数据和字符解析表信息;所述工作流数据由至少两个流程节点组成,每个流程节点用一个字符串的标识符进行表示,每个流程节点均有自身的属性和动作;所述字符解析表定义字符串与所述属性及动作的对应关系;

解析模块,与所述内存池连接,用于定时更新内存池中的工作流数据,响应外部命令读取内存池中的工作流数据或者将工作流数据存储在内存池中,并且对工作流数据进行分析;

读写模块,与所述内存池和数据库连接,用于对数据库中以字符串方式表达的工作流数据进行读写;

侦听模块,与所述解析模块和客户端连接,用于侦听客户端的事件来对工作流的启动、调整和结束操作进行管理。

2.根据权利要求1所述的工作流数据处理装置,其特征在于,还包括监控模块,与所述侦听模块、解析模块、读写模块以及内存池连接,用于对所述侦听模块、解析模块、读写模块以及内存池的异常数据或异常事件进行监控和告警。

3.根据权利要求2所述的工作流数据处理装置,其特征在于,还包括日志模块,与所述监控模块连接,用于将监控模块监测到的异常数据或异常事件记录在日志文件中。

4.一种工作流数据的处理方法,其特征在于,包括以下步骤:

步骤1,读写模块将以字符串方式表达的工作流数据以及对应于所述工作流数据的字符解析表从数据库中读出,并保存在内存池中;所述工作流数据由至少两个流程节点组成,每个流程节点用一个字符串的标识符进行表示,每个流程节点均有自身的属性和动作;所述字符解析表定义字符串与所述属性及动作的对应关系;

步骤2,解析模块读取所述内存池中的工作流数据;

步骤3,所述解析模块读取所述内存池中的字符解析表,并根据该字符解析表对所述工作流数据进行分析;

步骤4,所述解析模块根据分析结果调用执行所述工作流数据对应的动作的执行机构。

5.根据权利要求4所述的工作流数据处理方法,其中所述步骤2具体为:侦听模块接收到客户端发送的执行工作流的指令,将所述指令转发给所述解析模块,再由所述解析模块在所述内存池中读取相应的工作流数据。

6.根据权利要求4所述的工作流数据处理方法,其中所述步骤2具体为:侦听模块定时读取所述内存池中的工作流数据。

7.根据权利要求4所述的工作流数据处理方法,其特征在于,所述步骤3中根据该字符解析表对所述工作流数据进行分析的操作具体为:根据对应于所述工作流数据的字符解析表分析所述工作流数据,获得状态数据、事件数据、扭转条件数据以及流程节点关系数据。

8.根据权利要求7所述的工作流数据处理方法,其特征在于,所述步骤4具体为:所述解析模块根据所述状态数据、事件数据、流程扭转条件数据以及流程节点关系数据调用事件执行程序,如果满足扭转条件数据,则执行扭转。

9.根据权利要求8所述的工作流数据处理方法,其特征在于,所述步骤4中,当监测模块监测到事件执行出错或者异常时,向所述解析模块返回修改状态的指令,再由所述解析模块将所述工作流数据设置为中断状态。

10.根据权利要求8所述的工作流数据处理方法,其特征在于,所述步骤4中,当监测模块监测到事件执行出错或者异常时,所述监控模块向解析模块返回所述事件执行出错或异常的告警级别。

11.根据权利要求9或10所述的工作流数据处理方法,其特征在于,所述步骤4中监测模块监测到事件执行出错或者异常时,所述监控模块将所述事件执行出错或异常信息通过日志模块输出到日志中。

说明书 :

工作流数据处理装置及方法

技术领域

[0001] 本发明涉及一种工作流数据处理装置及方法,尤其是一种对以字符串方式存储的工作流数据进行处理的装置,以及利用字符串对工作流流程实例数据和流程模版数据进行
简化存储并处理的方法。

背景技术

[0002] 在信息技术不发达的时候,在工作中如果需要实现某项业务,通常的做法是:先填写纸的表格,然后通过该表格在各个部门中不断地传递信息,从而实现了整个业务的流
程。例如早期如果想安装一部电话,需要先到邮电局填写一张申请表,然后邮电局的工作
人员把填写好的申请单提交给相关部门审批,然后再把该申请单提交给相关部分进行审
批,然后再将该申请单依次传送给各个相关部门,最后才能够把该项业务开通。随着信息
技术的发展,逐渐出现了以IT为支撑的工作流技术,这种技术是通过计算机或者人机交互
的方式完成业务流程,现在的工作流数据主要是通过可扩展标记语言(Extensible Markup
Language,简称XML)进行承载、存储和表达,虽然XML具有非常简明的实现方式,但是其本
身的特点决定了这种XML方式作为工作流的承载、存储和表达方式具有一定的缺陷。
[0003] 现有的工作流流程是采用XML文档来存储工作流数据,然后将工作流数据进行压缩,并以二进制方式存储在数据库的大型对象类型中,当用户查询或者更新该流程对应的
XML文档时,需要先取出相应的二进制流,通过解压缩工具进行解压,然后生成XML进行显
示或者修改,然后再次压缩,并以二进制的方式存回到数据库中。
[0004] 业界在实现上通常采用两种方法,一种是将流程模版数据和流程实例数据均采用XML方式存储,由于XML标签占有的存储空间比较大,当流程实例数量达到上千万数量级
后,这种存储方式会耗费数据库中相当大的存储空间,而且每次访问该流程实例时,都需要
从数据库中解压缩,尤其是对于并发量比较大的系统,将会占去相当多的内存和CPU资源,
将会大大的增加系统符合,降低系统的性能;另一种是只采用XML方式存储流程模版,流程
实例不采用XML方式存储,这种方法虽然在流程实例数量大的时候不会造成内存和CPU资
源的大量耗费,但是在创建后的修改非常困难。这两种实现方法均以数据库大对象类型经
压缩后入库,因此无法建立索引,更无法根据某些特征进行模糊查找,因此难以进行统计分
析。

发明内容

[0005] 本发明的第一目的是针对现有的工作流数据的承载、存储和表示方式的缺陷,提出了一种工作流数据处理装置,能够对工作流数据进行分析、判断和查询等操作。
[0006] 本发明的第二目的是针对现有的工作流数据的承载、存储和表示方式的缺陷,提出了一种工作流数据的处理方法,能够在处理工作流数据的同时,节约系统资源和存储空
间,并且执行效率高、便于查找、显示速度快,方便统计分析。
[0007] 为实现上述第一目的,本发明提供了一种工作流数据处理装置,其包括:
[0008] 内存池,用于存储以字符串方式表达的工作流数据和字符解析表信息;所述工作流数据由至少两个流程节点组成,每个流程节点用一个字符串的标识符进行表示,每个流
程节点均有自身的属性和动作;所述字符解析表定义字符串与所述属性及动作的对应关
系;
[0009] 解析模块,与所述内存池连接,用于定时更新内存池中的工作流数据,以及响应外部命令读取内存池中的工作流数据或者将工作流数据存储在内存池中,并且对工作流数据
进行分析;
[0010] 读写模块,与所述内存池和数据库连接,用于对数据库中的工作流数据进行读写;
[0011] 侦听模块,与所述解析模块和客户端连接,用于侦听客户端的事件来对工作流的启动、调整和结束操作进行管理。
[0012] 在上述技术方案中,可进一步包括监控模块,与所述侦听模块、解析模块、读写模块以及内存池连接,用于对所述侦听模块、解析模块、读写模块以及内存池的异常数据或异
常事件进行监控和告警;或者进一步包括日志模块,与所述监控模块连接,用于将监控模块
监测到的异常数据或异常事件记录在日志文件中。
[0013] 为实现上述第二目的,本发明还提供了一种工作流数据的处理方法,其包括以下步骤:
[0014] 步骤1,读写模块将以字符串方式表达的工作流数据以及对应于所述工作流数据的字符解析表从数据库中读出,并保存在内存池中;所述工作流数据由至少两个流程节点
组成,每个流程节点用一个字符串的标识符进行表示,每个流程节点均有自身的属性和动
作;所述字符解析表定义字符串与所述属性及动作的对应关系;
[0015] 步骤2,解析模块读取所述内存池中的工作流数据;
[0016] 步骤3,所述解析模块读取所述内存池中的字符解析表,并根据该字符解析表对所述工作流数据进行分析;
[0017] 步骤4,所述解析模块根据分析结果调用执行所述工作流数据对应的动作的执行机构。
[0018] 在上述方法的技术方案中,步骤2可以具体为:侦听模块接收到客户端发送的执行工作流的指令,将所述指令转发给所述解析模块,再由所述解析模块在内存池中读取相
应的工作流数据;或者侦听模块定时读取所述内存池中的工作流数据。
[0019] 在步骤3中根据该字符解析表对所述工作流数据进行分析的操作具体为:根据对应于所述工作流数据的字符解析表分析所述工作流数据,获得状态数据、需要执行的事件
(ACTION)和执行事件所需要的数据、流程扭转条件数据以及流程节点关系数据。解析模块
根据所述状态数据、事件数据、扭转条件数据以及流程节点关系数据。解析模块调用事件执
行程序,如果满足扭转条件数据,则执行相应的事件,使流程扭转。
[0020] 在事件的执行过程中,当监测模块监测到事件执行出错或者异常时, 向所述解析模块返回修改状态的指令,再由解析模块将工作流数据设置为中断状态,或者所述监控模
块向解析模块返回所述事件出错或异常的告警级别。另外,还能够通过日志模块将所述事
件执行出错或异常信息输出到日志中。
[0021] 基于以上的技术方案,本发明具有以下优点:本发明采用字符串以一定的编码规则来存储工作流数据,可以简化存储内容,而且方便修改和查找;并且节约了存储空间,对
系统的硬件配置要求低,降低了硬件投资。
[0022] 下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

[0023] 图1为本发明工作流数据处理装置的实施例一的结构示意图。
[0024] 图2为实施例一中工作流数据处理方法的流程示意图。
[0025] 图3为本发明工作流数据处理装置的实施例二的结构示意图。

具体实施方式

[0026] 本发明利用一种新型的工作流处理装置对工作流数据进行处理,这种工作流数据与以往的XML方式存储和展示的数据不同,是一种通过字符串表达的工作流数据,其具有
简单、易修改、易查找的特点,对于这种字符串表达的工作流数据,本发明提供的处理装置
能够根据这些简化的字符串对应找出工作流的各个事件节点和扭转条件,再由系统自动执
行。
[0027] 实施例一
[0028] 如图1所示,为本发明工作流数据处理装置的实施例一的结构示意图,工作流数据处理装置1由内存池11、解析模块12、读写模块13以及侦听模块14构成,其中内存池11
用来存储以字符串方式表达的工作流数据,其使用的是分配给工作流数据单独使用的一段
内存区域,其中也存储了对应于工作流数据的字符解析表,这种字符解析表提供了一种简
化的操作指令,与汇编语言相近似,每一个字符或是代表具体的执行动作,或是跳转 指令,
或是状态标识等,详细的字符解析表见下文;解析模块12与内存池11连接,可以对内存池
中的工作流数据进行解析,通常是响应外部命令读取内存池中的工作流数据或者将修改后
的工作流数据存储在内存池中,还能够定时的更新内存池中的工作流数据,并使内存池中
的工作流数据与数据库中的工作流数据同步,除此之外,还可以对工作流数据进行分析,根
据分析结果对执行机构进行驱动;读写模块13与内存池11以及数据库2连接,用于对数据
库和内存池中的工作流数据进行读写;侦听模块14与解析模块和客户端连接,用于侦听客
户端的事件来对工作流的启动、调整和结束操作进行管理。
[0029] 工作流数据处理装置1在启动时,就将数据库2中的工作流数据和字符解析表读入到内存池中。本发明中的工作流数据是采用字符串的方式存储和表示的,每个工作流数
据(即一个工作流程)由多个流程节点组成,每个流程节点用一个字符串的标识符表示,每
一个流程节点都有自己的属性和动作,属性表示节点的一些动态或静态的数值,例如节点
状态、节点名称等;动作表示流程到达该流程节点时需要执行的方法,例如执行向用户客户
端发送一个消息,或者将某事件写入日志等操作。
[0030] 还可以进行更详细的设定,比如流程节点状态可分未激活、激活、执行中、中断、完成等,用一个字符标识,见表1。
[0031]名称 编码
未激活 U
激活 A
执行中 E
挂起 H
中断 I
完成 0
[0032] 表1
[0033] 流程各个节点的关联关系、起始符、结束符采用一组标识符描述,如流程开始标识符用“@”定义,流程结束符用“#”表示,各个节点之间的关系 采用“-”表示,具体见表2。
[0034]标识名称 标 识说明
符 编

开始 @ 表示流程的开始
结束 # 流程结束
流程节点上下级关系 表示上一个节点和下一节点之间的关系
流程分支关系 | 表示节点之间“或”的关系,处于这个关系之间的任何一个节点执行完毕 后,流程即可往下流转
流程并行关系 & 节点之间处于“与”的关系,处于这个关系之间的节点均完成后,流程才能往下流转。
流程组 () 一组可以相关的节点或子流程
根据业务的需要可以自定义相关的符号 ...
[0035] 表2
[0036] 流程模板用字符串表示和存储,每个流程用一个流程模板表示,每个模板用来创建对应的流程实例,例如电信业务支撑系统中,可用字符串“@A01-A02-A03-(B01&B02&B03
)-B04-C01-C02#”表示普通电话装机业务流程如果用文字描述的话,即为:从业务受理环节
开始,业务受理环节结束后的下一个流程是选号环节,选号环节结束后,是验单环节,验单
环节结束后是测量环节、装机环节、程控环节,这个三个环节是并行执行,但是需要每个完
成执行成功后才能到达该流程的下一个环节复测,复测环节结束后是复测环节,整个流程
结束。
[0037] 每个环节意味着系统执行的动作,那上面的例子来讲,包括选号、验单、测量、装机、程控、复测、竣工等动作,而这些动作、节点的状态以及扭转条件等数据都是由工作流数
据处理装置1对字符串表示的工作流数据进行解析获得的,解析的依据是存储在数据库中
的字符解析表,由这个字符解析表 完成字符串与各种属性值、动作的对应关系。
[0038] 这种字符串以一定的编码规则来存储工作流数据,可以简化存储内容,而且方便修改和查找;并且节约了存储空间,对系统的硬件配置要求低,降低了硬件投资。
[0039] 如图2所示,为图1实施例中工作流数据处理方法的流程示意图,包括以下步骤:
[0040] 步骤101,读写模块将以字符串方式表达的工作流数据以及对应于所述工作流数据的字符解析表从数据库中读出,并保存在内存池中;
[0041] 步骤102,解析模块读取内存池中的工作流数据;
[0042] 步骤103,解析模块读取内存池中的字符解析表,并根据该字符解析表对所述工作流数据进行分析;
[0043] 步骤104,解析模块根据分析结果调用执行工作流数据对应的动作的执行机构。
[0044] 在工作流数据处理装置启动时,就将数据库中的以字符串方式表达的工作流取出,然后存储在内存池中以方便使用,另外还将对应于工作流数据的字符解析表也存在内
存池中。解析模块定期的对内存池中的工作流信息进行读取,然后根据对应于工作流数据
的字符解析表对工作流数据进行分析,即获得字符串表示的工作流数据的状态数据、事件
数据、扭转条件数据以及流程节点之间的关系数据等等,然后再由解析模块调用事件执行
程序,如果满足扭转条件数据,则执行扭转。解析模块除了定期读取之外,还可以响应侦听
模块侦听到的客户端发送的执行工作流的指令进行读取。例如侦听模块接收到用户通过客
户端发送的执行某个工作流的指令后,侦听模块会将指令转发给解析模块,再由解析模块
在内存池中读取相应的工作流数据,再进行分析,以及调用相应的执行机构执行该工作流。
[0045] 实施例二
[0046] 如图3所示,为本发明工作流数据处理装置的实施例二的结构示意图, 与实施例一相比,工作流数据处理装置1内部增加了监控模块16,监控模块16与其他模块,诸如内存
池11、侦听模块14、解析模块12、读写模块13等连接,用来监测异常数据或异常事件,当发
生异常时告警。另外还可以加入日志模块15,与监控模块16连接,用于将监控模块监测到
的异常数据或异常事件记录在日志文件中。
[0047] 在对工作流数据进行处理的时候,如果监控模块监测到事件出错或者异常的时候,向解析模块返回修改状态的指令,再由解析模块将所述工作流数据设置为中断状态,监
控模块可以向解析模块返回事件出错或者异常的告警级别,并将该次出错或异常通过日志
模块15记录在日志文件4中。
[0048] 与传统的XML方式不同,字符串方式的工作流数据易于查找,而且由于可以通过简单的字符代表复杂的工作流程,因此无需压缩存储在数据库中,大大的节约了存储资源,
提高了查询和调用的效率。用户可以通过客户端调用某个工作流数据,并对其中代表事件、
状态等信息的字符串进行修改,解析模块都能够立刻与数据库进行同步更新,而且还定时
的对数据库和内存池中的数据一致性进行检查,如果发现不一致,则将内存中的工作流数
据同步到数据库中。
[0049] 字符解析表中包含了很多的标识符,这些标识符在系统中是唯一表示的,可以采用固定长度的编码,每个编码都可以通过解析模块进行解释,通过增加新的编码和相应的
方法、事件等数据,可以使本发明的工作流数据处理装置具备一定的学习能力。
[0050] 最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然
可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发
明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。