CN1983313B - 工作流数据处理装置及方法 - Google Patents
工作流数据处理装置及方法 Download PDFInfo
- Publication number
- CN1983313B CN1983313B CN2006100727825A CN200610072782A CN1983313B CN 1983313 B CN1983313 B CN 1983313B CN 2006100727825 A CN2006100727825 A CN 2006100727825A CN 200610072782 A CN200610072782 A CN 200610072782A CN 1983313 B CN1983313 B CN 1983313B
- Authority
- CN
- China
- Prior art keywords
- stream data
- work stream
- module
- data
- memory pool
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种工作流数据处理装置,其包括:内存池,与内存池连接的解析模块;与内存池和数据库连接的读写模块,与解析模块和客户端连接的侦听模块。本发明还涉及一种工作流数据处理方法,其包括:读写模块将以字符串方式表达的工作流数据以及对应于工作流数据的字符解析表从数据库中读出,并保存在内存池中;解析模块读取内存池中的工作流数据和字符解析表,并根据该字符解析表对工作流数据进行分析;解析模块根据分析结果调用执行工作流数据对应的动作的执行机构。本发明采用字符串以一定的编码规则来存储工作流数据,简化存储内容,而且方便修改和查找;并且节约了存储空间,对系统硬件配置的要求低,降低了硬件投资。
Description
技术领域
本发明涉及一种工作流数据处理装置及方法,尤其是一种对以字符串方式存储的工作流数据进行处理的装置,以及利用字符串对工作流流程实例数据和流程模版数据进行简化存储并处理的方法。
背景技术
在信息技术不发达的时候,在工作中如果需要实现某项业务,通常的做法是:先填写纸的表格,然后通过该表格在各个部门中不断地传递信息,从而实现了整个业务的流程。例如早期如果想安装一部电话,需要先到邮电局填写一张申请表,然后邮电局的工作人员把填写好的申请单提交给相关部门审批,然后再把该申请单提交给相关部分进行审批,然后再将该申请单依次传送给各个相关部门,最后才能够把该项业务开通。随着信息技术的发展,逐渐出现了以IT为支撑的工作流技术,这种技术是通过计算机或者人机交互的方式完成业务流程,现在的工作流数据主要是通过可扩展标记语言(Extensible Markup Language,简称XML)进行承载、存储和表达,虽然XML具有非常简明的实现方式,但是其本身的特点决定了这种XML方式作为工作流的承载、存储和表达方式具有一定的缺陷。
现有的工作流流程是采用XML文档来存储工作流数据,然后将工作流数据进行压缩,并以二进制方式存储在数据库的大型对象类型中,当用户查询或者更新该流程对应的XML文档时,需要先取出相应的二进制流,通过解压缩工具进行解压,然后生成XML进行显示或者修改,然后再次压缩,并以二进制的方式存回到数据库中。
业界在实现上通常采用两种方法,一种是将流程模版数据和流程实例数据均采用XML方式存储,由于XML标签占有的存储空间比较大,当流程实例数量达到上千万数量级后,这种存储方式会耗费数据库中相当大的存储空间,而且每次访问该流程实例时,都需要从数据库中解压缩,尤其是对于并发量比较大的系统,将会占去相当多的内存和CPU资源,将会大大的增加系统符合,降低系统的性能;另一种是只采用XML方式存储流程模版,流程实例不采用XML方式存储,这种方法虽然在流程实例数量大的时候不会造成内存和CPU资源的大量耗费,但是在创建后的修改非常困难。这两种实现方法均以数据库大对象类型经压缩后入库,因此无法建立索引,更无法根据某些特征进行模糊查找,因此难以进行统计分析。
发明内容
本发明的第一目的是针对现有的工作流数据的承载、存储和表示方式的缺陷,提出了一种工作流数据处理装置,能够对工作流数据进行分析、判断和查询等操作。
本发明的第二目的是针对现有的工作流数据的承载、存储和表示方式的缺陷,提出了一种工作流数据的处理方法,能够在处理工作流数据的同时,节约系统资源和存储空间,并且执行效率高、便于查找、显示速度快,方便统计分析。
为实现上述第一目的,本发明提供了一种工作流数据处理装置,其包括:
内存池,用于存储以字符串方式表达的工作流数据和字符解析表信息;所述工作流数据由至少两个流程节点组成,每个流程节点用一个字符串的标识符进行表示,每个流程节点均有自身的属性和动作;所述字符解析表定义字符串与所述属性及动作的对应关系;
解析模块,与所述内存池连接,用于定时更新内存池中的工作流数据,以及响应外部命令读取内存池中的工作流数据或者将工作流数据存储在内存池中,并且对工作流数据进行分析;
读写模块,与所述内存池和数据库连接,用于对数据库中的工作流数据进行读写;
侦听模块,与所述解析模块和客户端连接,用于侦听客户端的事件来对工作流的启动、调整和结束操作进行管理。
在上述技术方案中,可进一步包括监控模块,与所述侦听模块、解析模块、读写模块以及内存池连接,用于对所述侦听模块、解析模块、读写模块以及内存池的异常数据或异常事件进行监控和告警;或者进一步包括日志模块,与所述监控模块连接,用于将监控模块监测到的异常数据或异常事件记录在日志文件中。
为实现上述第二目的,本发明还提供了一种工作流数据的处理方法,其包括以下步骤:
步骤1,读写模块将以字符串方式表达的工作流数据以及对应于所述工作流数据的字符解析表从数据库中读出,并保存在内存池中;所述工作流数据由至少两个流程节点组成,每个流程节点用一个字符串的标识符进行表示,每个流程节点均有自身的属性和动作;所述字符解析表定义字符串与所述属性及动作的对应关系;
步骤2,解析模块读取所述内存池中的工作流数据;
步骤3,所述解析模块读取所述内存池中的字符解析表,并根据该字符解析表对所述工作流数据进行分析;
步骤4,所述解析模块根据分析结果调用执行所述工作流数据对应的动作的执行机构。
在上述方法的技术方案中,步骤2可以具体为:侦听模块接收到客户端发送的执行工作流的指令,将所述指令转发给所述解析模块,再由所述解析模块在内存池中读取相应的工作流数据;或者侦听模块定时读取所述内存池中的工作流数据。
在步骤3中根据该字符解析表对所述工作流数据进行分析的操作具体为:根据对应于所述工作流数据的字符解析表分析所述工作流数据,获得状态数据、需要执行的事件(ACTION)和执行事件所需要的数据、流程扭转条件数据以及流程节点关系数据。解析模块根据所述状态数据、事件数据、扭转条件数据以及流程节点关系数据。解析模块调用事件执行程序,如果满足扭转条件数据,则执行相应的事件,使流程扭转。
在事件的执行过程中,当监测模块监测到事件执行出错或者异常时, 向所述解析模块返回修改状态的指令,再由解析模块将工作流数据设置为中断状态,或者所述监控模块向解析模块返回所述事件出错或异常的告警级别。另外,还能够通过日志模块将所述事件执行出错或异常信息输出到日志中。
基于以上的技术方案,本发明具有以下优点:本发明采用字符串以一定的编码规则来存储工作流数据,可以简化存储内容,而且方便修改和查找;并且节约了存储空间,对系统的硬件配置要求低,降低了硬件投资。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为本发明工作流数据处理装置的实施例一的结构示意图。
图2为实施例一中工作流数据处理方法的流程示意图。
图3为本发明工作流数据处理装置的实施例二的结构示意图。
具体实施方式
本发明利用一种新型的工作流处理装置对工作流数据进行处理,这种工作流数据与以往的XML方式存储和展示的数据不同,是一种通过字符串表达的工作流数据,其具有简单、易修改、易查找的特点,对于这种字符串表达的工作流数据,本发明提供的处理装置能够根据这些简化的字符串对应找出工作流的各个事件节点和扭转条件,再由系统自动执行。
实施例一
如图1所示,为本发明工作流数据处理装置的实施例一的结构示意图,工作流数据处理装置1由内存池11、解析模块12、读写模块13以及侦听模块14构成,其中内存池11用来存储以字符串方式表达的工作流数据,其使用的是分配给工作流数据单独使用的一段内存区域,其中也存储了对应于工作流数据的字符解析表,这种字符解析表提供了一种简化的操作指令,与汇编语言相近似,每一个字符或是代表具体的执行动作,或是跳转 指令,或是状态标识等,详细的字符解析表见下文;解析模块12与内存池11连接,可以对内存池中的工作流数据进行解析,通常是响应外部命令读取内存池中的工作流数据或者将修改后的工作流数据存储在内存池中,还能够定时的更新内存池中的工作流数据,并使内存池中的工作流数据与数据库中的工作流数据同步,除此之外,还可以对工作流数据进行分析,根据分析结果对执行机构进行驱动;读写模块13与内存池11以及数据库2连接,用于对数据库和内存池中的工作流数据进行读写;侦听模块14与解析模块和客户端连接,用于侦听客户端的事件来对工作流的启动、调整和结束操作进行管理。
工作流数据处理装置1在启动时,就将数据库2中的工作流数据和字符解析表读入到内存池中。本发明中的工作流数据是采用字符串的方式存储和表示的,每个工作流数据(即一个工作流程)由多个流程节点组成,每个流程节点用一个字符串的标识符表示,每一个流程节点都有自己的属性和动作,属性表示节点的一些动态或静态的数值,例如节点状态、节点名称等;动作表示流程到达该流程节点时需要执行的方法,例如执行向用户客户端发送一个消息,或者将某事件写入日志等操作。
还可以进行更详细的设定,比如流程节点状态可分未激活、激活、执行中、中断、完成等,用一个字符标识,见表1。
名称 | 编码 |
未激活 | U |
激活 | A |
执行中 | E |
挂起 | H |
中断 | I |
完成 | 0 |
表1
流程各个节点的关联关系、起始符、结束符采用一组标识符描述,如流程开始标识符用“@”定义,流程结束符用“#”表示,各个节点之间的关系 采用“-”表示,具体见表2。
标识名称 | 标识符编码 | 说明 |
开始 | @ | 表示流程的开始 |
结束 | # | 流程结束 |
流程节点上下级关系 | 表示上一个节点和下一节点之间的关系 | |
流程分支关系 | | | 表示节点之间“或”的关系,处于这个关系之间的任何一个节点执行完毕 后,流程即可往下流转 |
流程并行关系 | & | 节点之间处于“与”的关系,处于这个关系之间的节点均完成后,流程才能往下流转。 |
流程组 | () | 一组可以相关的节点或子流程 |
根据业务的需要可以自定义相关的符号 | ... |
表2
流程模板用字符串表示和存储,每个流程用一个流程模板表示,每个模板用来创建对应的流程实例,例如电信业务支撑系统中,可用字符串“@A01-A02-A03-(B01&B02&B03)-B04-C01-C02#”表示普通电话装机业务流程如果用文字描述的话,即为:从业务受理环节开始,业务受理环节结束后的下一个流程是选号环节,选号环节结束后,是验单环节,验单环节结束后是测量环节、装机环节、程控环节,这个三个环节是并行执行,但是需要每个完成执行成功后才能到达该流程的下一个环节复测,复测环节结束后是复测环节,整个流程结束。
每个环节意味着系统执行的动作,那上面的例子来讲,包括选号、验单、测量、装机、程控、复测、竣工等动作,而这些动作、节点的状态以及扭转条件等数据都是由工作流数据处理装置1对字符串表示的工作流数据进行解析获得的,解析的依据是存储在数据库中的字符解析表,由这个字符解析表 完成字符串与各种属性值、动作的对应关系。
这种字符串以一定的编码规则来存储工作流数据,可以简化存储内容,而且方便修改和查找;并且节约了存储空间,对系统的硬件配置要求低,降低了硬件投资。
如图2所示,为图1实施例中工作流数据处理方法的流程示意图,包括以下步骤:
步骤101,读写模块将以字符串方式表达的工作流数据以及对应于所述工作流数据的字符解析表从数据库中读出,并保存在内存池中;
步骤102,解析模块读取内存池中的工作流数据;
步骤103,解析模块读取内存池中的字符解析表,并根据该字符解析表对所述工作流数据进行分析;
步骤104,解析模块根据分析结果调用执行工作流数据对应的动作的执行机构。
在工作流数据处理装置启动时,就将数据库中的以字符串方式表达的工作流取出,然后存储在内存池中以方便使用,另外还将对应于工作流数据的字符解析表也存在内存池中。解析模块定期的对内存池中的工作流信息进行读取,然后根据对应于工作流数据的字符解析表对工作流数据进行分析,即获得字符串表示的工作流数据的状态数据、事件数据、扭转条件数据以及流程节点之间的关系数据等等,然后再由解析模块调用事件执行程序,如果满足扭转条件数据,则执行扭转。解析模块除了定期读取之外,还可以响应侦听模块侦听到的客户端发送的执行工作流的指令进行读取。例如侦听模块接收到用户通过客户端发送的执行某个工作流的指令后,侦听模块会将指令转发给解析模块,再由解析模块在内存池中读取相应的工作流数据,再进行分析,以及调用相应的执行机构执行该工作流。
实施例二
如图3所示,为本发明工作流数据处理装置的实施例二的结构示意图, 与实施例一相比,工作流数据处理装置1内部增加了监控模块16,监控模块16与其他模块,诸如内存池11、侦听模块14、解析模块12、读写模块13等连接,用来监测异常数据或异常事件,当发生异常时告警。另外还可以加入日志模块15,与监控模块16连接,用于将监控模块监测到的异常数据或异常事件记录在日志文件中。
在对工作流数据进行处理的时候,如果监控模块监测到事件出错或者异常的时候,向解析模块返回修改状态的指令,再由解析模块将所述工作流数据设置为中断状态,监控模块可以向解析模块返回事件出错或者异常的告警级别,并将该次出错或异常通过日志模块15记录在日志文件4中。
与传统的XML方式不同,字符串方式的工作流数据易于查找,而且由于可以通过简单的字符代表复杂的工作流程,因此无需压缩存储在数据库中,大大的节约了存储资源,提高了查询和调用的效率。用户可以通过客户端调用某个工作流数据,并对其中代表事件、状态等信息的字符串进行修改,解析模块都能够立刻与数据库进行同步更新,而且还定时的对数据库和内存池中的数据一致性进行检查,如果发现不一致,则将内存中的工作流数据同步到数据库中。
字符解析表中包含了很多的标识符,这些标识符在系统中是唯一表示的,可以采用固定长度的编码,每个编码都可以通过解析模块进行解释,通过增加新的编码和相应的方法、事件等数据,可以使本发明的工作流数据处理装置具备一定的学习能力。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。
Claims (11)
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中监测模块监测到事件执行出错或者异常时,所述监控模块将所述事件执行出错或异常信息通过日志模块输出到日志中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006100727825A CN1983313B (zh) | 2006-04-07 | 2006-04-07 | 工作流数据处理装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006100727825A CN1983313B (zh) | 2006-04-07 | 2006-04-07 | 工作流数据处理装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1983313A CN1983313A (zh) | 2007-06-20 |
CN1983313B true CN1983313B (zh) | 2011-08-10 |
Family
ID=38165830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006100727825A Expired - Fee Related CN1983313B (zh) | 2006-04-07 | 2006-04-07 | 工作流数据处理装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1983313B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101610265B (zh) * | 2009-07-24 | 2012-05-09 | 深圳市永达电子股份有限公司 | 一种业务工作流的流程识别方法 |
CN102377582A (zh) * | 2010-08-09 | 2012-03-14 | 大唐移动通信设备有限公司 | 数据上传方法和设备 |
CN102932416B (zh) * | 2012-09-26 | 2016-03-30 | 东软集团股份有限公司 | 一种信息流任务的中间数据存储方法、处理方法及装置 |
CN104679884B (zh) * | 2015-03-16 | 2018-04-10 | 北京奇虎科技有限公司 | 数据库的数据分析方法、装置以及系统 |
CN107656818A (zh) * | 2016-07-25 | 2018-02-02 | 武汉票据交易中心有限公司 | 一种票据交易的流程实现方法及相关系统 |
CN106971293A (zh) * | 2017-03-23 | 2017-07-21 | 广东亿迅科技有限公司 | 一种基于activiti的业务事件与流程分离方法及系统 |
CN109697569A (zh) * | 2018-12-27 | 2019-04-30 | 金蝶软件(中国)有限公司 | 一种定义工作流的方法及系统 |
CN110413267B (zh) * | 2019-08-08 | 2023-05-26 | 四川爱创科技有限公司 | 基于业务规则的自适应业务流程建模方法 |
-
2006
- 2006-04-07 CN CN2006100727825A patent/CN1983313B/zh not_active Expired - Fee Related
Non-Patent Citations (2)
Title |
---|
JP特开2002-74253A 2002.03.15 |
JP特开2004-46895A 2004.02.12 |
Also Published As
Publication number | Publication date |
---|---|
CN1983313A (zh) | 2007-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1983313B (zh) | 工作流数据处理装置及方法 | |
US7062709B2 (en) | Method and apparatus for caching VoiceXML documents | |
CN101146127B (zh) | 一种分布式系统中客户端缓存更新的方法和装置 | |
CN112506946A (zh) | 业务数据查询方法、装置、设备及存储介质 | |
US20020083210A1 (en) | Message parsing in message processing systems | |
US9237120B2 (en) | Message broker system and method | |
CN101799808A (zh) | 一种数据处理方法及其系统 | |
CN110119292A (zh) | 系统运行参数查询方法、匹配方法、装置及节点设备 | |
CN107291938B (zh) | 订单查询系统及方法 | |
CN112365157A (zh) | 智能派工方法、装置、设备及存储介质 | |
CN110297746A (zh) | 一种数据处理方法及系统 | |
CN111984505B (zh) | 一种运维数据采集装置及采集方法 | |
CN111737742B (zh) | 敏感数据扫描方法和系统 | |
CN113254445A (zh) | 实时数据存储方法、装置、计算机设备及存储介质 | |
CN101483562A (zh) | 一种例行测试的方法、系统及相关设备 | |
CN116719622A (zh) | 业务流程的编排方法及业务流程编排系统 | |
CN114416868B (zh) | 一种数据同步方法、装置、设备及存储介质 | |
CN113608952B (zh) | 一种基于日志构建支持环境的系统故障处理方法及系统 | |
CN107104806A (zh) | 话单处理方法、装置及系统 | |
CN108984156A (zh) | 一种基于模板的免代码开发的软件自动生成方法及系统 | |
CN112328406B (zh) | 一种基于tcc的微服务分布式事务系统以及业务处理方法 | |
CN101206649B (zh) | 多任务解析系统及方法 | |
CN103678341A (zh) | 数据库交互系统及方法 | |
CN102486731B (zh) | 增强软件的软件调用栈的可视化的方法、设备和系统 | |
CN100412858C (zh) | 报表生成系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110810 Termination date: 20130407 |