《工作流执行中的资源冲突消解方法.pdf》由会员分享,可在线阅读,更多相关《工作流执行中的资源冲突消解方法.pdf(11页完整版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102945154 A (43)申请公布日 2013.02.27 C N 1 0 2 9 4 5 1 5 4 A *CN102945154A* (21)申请号 201210398080.1 (22)申请日 2012.10.18 G06F 9/44(2006.01) (71)申请人拓维信息系统股份有限公司 地址 410205 湖南省长沙市岳麓区桐梓坡西 路289号 (72)发明人李新宇 宋鹰 沈清 周泽峰 郑年斌 龙炽 王平 王忠强 (74)专利代理机构长沙市融智专利事务所 43114 代理人黄美成 (54) 发明名称 工作流执行中的资源冲突消解方法 (57) 摘要 本。
2、发明公开了一种工作流执行中的资源 冲突消解方法,用一个六元组表示对象P,即有 P=(i,j,D,A,t,L);资源冲突消解进程如下:步骤 1:工作流对象进入堆栈;步骤2:工作流对象从堆 栈弹出,并进行冲突检测:当下述公式满足时,判 断对象的实施为有冲突实施:(A g,i A h,j A k,l )(L g,i L h,j )=0)(L i, k L k,l )=1);步骤3:消解冲突步骤:当两对 象的实施为有冲突实施时,优先级高的对象获得 即时实施,并锁定相应空域;而优先级低的对象 被压入堆栈,返回步骤2;随着时间片推进,当堆 栈为空时,结束工作流执行中的资源冲突消解进 程。该工作流执行中的资。
3、源冲突消解方法适用范 围广,能有效减轻工作量中的资源冲突。 (51)Int.Cl. 权利要求书1页 说明书6页 附图3页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 1 页 说明书 6 页 附图 3 页 1/1页 2 1.一种工作流执行中的资源冲突消解方法,其特征在于,用一个六元组表示对象P,即 有P=(i,j,D,A,t,L); 其中,i,j为不相关的正整数,记i为用户号,j为属于用户i的有序对象号,D为对象 描述,A为P的有界作用域,t为P的到达时间,即对象P投入应用的时间点,L表示对象P 的修改属性,L1为允许被其他对象修改,L0则不允许被其他对象修改; 多个。
4、用户共同参与对于对象P的工作流; 用户数为N,对象序列为1,2,3,则标记某一特定的对象为P i,j ,与之相对应的有 D i,j ,A i,j ,t i,j ,L i,j ; 记无冲突抢占为C 1 ,有冲突抢占为C 2 ;称C 1 或C 2 为1时为成功抢占,C 2 0为失败抢 占; 资源冲突消解进程如下: 步骤1:工作流对象进入堆栈; 步骤2:工作流对象从堆栈弹出,并进行如下冲突检测: 当下述两公式之一得到满足时,判断对象的实施为无冲突实施: (a)(A g,i A k,l ); (b)(A g,i A h,j A k,l )(L g,i 0)(L i,k L k,l )=1) 而当下述公。
5、式满足时,判断对象的实施为有冲突实施: (A g,i A h,j A k,l )(L g,i L h,j )=0)(L i,k L k,l )=1) 步骤3:消解冲突步骤: 当两对象的实施为有冲突实施时,优先级高的对象获得即时实施,并锁定相应空域;而 优先级低的对象被压入堆栈,返回步骤2; 随着时间片推进,当堆栈为空时,结束工作流执行中的资源冲突消解进程。 2.根据权利要求1所述的工作流执行中的资源冲突消解方法,其特征在于,所述的对 象为数据对象、文字对象、图像对象、语音对象、过程对象、通信对象和输入输出对象中的至 少一种。 3.根据权利要求1所述的工作流执行中的资源冲突消解方法,其特征在于,。
6、所述的空 域为:有界数据空间、数据库字段、有界文字空间、有界图像空间、有界语音空间、命名程序 段、通信设备或输入输出设备。 权 利 要 求 书CN 102945154 A 1/6页 3 工作流执行中的资源冲突消解方法 技术领域 0001 本发明涉及一种工作流执行中的资源冲突消解方法,以“冲突检测模型” (Conflict Detecting,简称CD模型)作为消解工作流执行中资源冲突的主要策略,尤其适 用于办公自动化领域。 背景技术 0002 工作流(Workflow)是办公自动化中不可或缺的内容,它涉及业务过程的部分或整 体在计算机应用环境下的自动化,它主要解决的是在多个参与者之间按照某种预。
7、定义的规 则,将传递文档、信息或任务的过程自动推进,从而使某种预期的业务目标得以实现。 0003 为此于1993年成立了国际工作流管理联盟(Workflow ManagementCoalition, WfMC,http:/www.wfmc.org/),联盟的成立标志着工作流技术业已进入相对成熟的阶段。 为了实现不同工作流产品之间的互操作,WfMC在工作流管理系统的相关术语、体系结构、参 考模型及应用编程接口等方面制定了一系列标准。 0004 虽然,一个具体的工作流管理系统可以只实现了这个模型的一部分,但这个模型 提出的结构和模块间的职能分工仍是业内层级最高的样板(参见图1)。在该模型中设置了 。
8、工作流引擎功能模块以及流程定义、客户端应用、应用程序调用、(与其他工作流管理系统 的)互操作和管理监控等接口。简述如下: 0005 工作流引擎功能模块:工作流引擎是工作流参考模型的核心,它为工作流提供 一个切实有效的运行环境。工作流引擎对工作流程进行初始化、调度和执行,包括执行中 的退回、转交(任务转派)、催办,以及任务的合并和跳过等具体内容。特别地,流程引擎应 能支持同一业务活动的多人指派原则(简称“双人原则”或“四眼原则”Four Eyes Principle),即流程引擎能将某些关键业务指派给两个或两个以上的工作人员共同完成或 决策,以期获得预期的效果。这种多人指派机制应该体现在业务流程。
9、的设计和建模过程中, 并通过并行分支结构和同步结构来完成。 0006 流程定义接口:工作流中需要通过流程定义工具制定一个完整的流程。本接口实 现流程定义工具与工作流引擎间数据模型和API的交换,生成可被计算机执行的形式化描 述。 0007 客户端应用接口:定义所有客户应用和工作流服务间的功能操作方式,其主要表 现形式是工作表处理器(Worklist Handler)。工作流参与者通过表处理器实现在工作表中 选取、分配工作项,通报工作项完成情况。 0008 应用程序调用接口:是工作流引擎和直接调用的应用程序间的接口,工作流引擎 通过本接口调用外部提供的应用服务。比如,在流程执行过程中调用业务系统。
10、提供的业务 数据等。 0009 互操作接口:本接口实现与不同工作流管理系统间的信息交互。 0010 系统管理与监控接口:本接口提供对运行实例的管理与监控,包括用户管理、角色 管理、资源控制、运行状态监控等。 说 明 书CN 102945154 A 2/6页 4 0011 工作流(Workflow)是办公自动化中不可或缺的内容,它涉及部分或整体业务过程 在计算机应用环境下的自动化,而“双人原则”或“四眼原则”是工作流实施中必须贯彻的 普遍性原则。 0012 为保证此种原则的实施,就必须发现并消解工作流实施中的资源冲突,即必须在 保持资源完整性和一致性的前提下,最大限度地“同时”满足工作人员甲、乙。
11、、丙、对资源 的共同需求。在异地跨局域网的情况下,由于网间传输所附加的时延更大、消息到达的时间 和工作人员发出消息的顺序可能改变、甚至消息会丢失等原因,所以在此种背景下发现并 消解工作流实施中的资源冲突就更为必要。 0013 传统做法是当资源访问冲突严重时放弃资源的共享,或采用分时间片的锁机制, 锁的锁定及释放完全由时间标志确定,几名工作人员同时访问同一资源时由时间标志确定 仅接受哪一位工作人员的访问以避免冲突。 0014 这种方式的不便之处在于:虽然理论上可以将“作用域”设置得“无限小”,从而可 以使资源冲突局限在相对非常小的空域中;但在实践中,太小的空域又会影响执行效率。这 种平衡只有在工。
12、程实施中针对不同的延时响应要求折衷地解决,也即,只能根据延时响应 的允许值确定相应的空域设置,因而其应用受到诸多限制。 0015 因此,有必要设计一种新的工作流执行中的资源冲突消解方法。 发明内容 0016 本发明所要解决的技术问题是提供一种工作流执行中的资源冲突消解方法,该工 作流执行中的资源冲突消解方法适用范围广,能有效减轻工作量中的资源冲突。 0017 发明的技术解决方案如下: 0018 一种工作流执行中的资源冲突消解方法,用一个六元组表示对象P,即有 P=(i,j,D,A,t,L); 0019 其中,i,j为不相关的正整数,记i为用户号,j为属于用户i的有序对象号,D为 对象描述,A为。
13、P的有界作用域,t为P的到达时间,即对象P投入应用的时间点,L表示对 象P的修改属性,L1为允许被其他对象修改,L0则不允许被其他对象修改; 0020 多个用户共同参与对于对象P的工作流; 0021 用户数为N,对象序列为1,2,3,则标记某一特定的对象为P i,j ,与之相对应的 有D i,j ,A i,j ,t i,j ,L i,j ; 0022 记无冲突抢占为C 1 ,有冲突抢占为C 2 ;称C 1 或C 2 为1时为成功抢占,C 2 0为失 败抢占; 0023 资源冲突消解进程如下: 0024 步骤1:工作流对象进入堆栈; 0025 步骤2:工作流对象从堆栈弹出,并进行如下冲突检测: 。
14、0026 当下述两公式之一得到满足时,判断对象的实施为无冲突实施: 0027 (a)(A g,i A k,l ); 0028 (b)(A g,i A h,j A k,l )(L g,i 0)(L i,k L k,l )=1) 0029 而当下述公式满足时,判断对象的实施为有冲突实施: 0030 (A g,i A h,j A k,l )(L g,i L h,j )=0)(L i,k L k,l )=1) 说 明 书CN 102945154 A 3/6页 5 0031 【公式中g,k,l均为序号(相当于身份证号),其取值由工作流实施程序指定,例如 张三指定为g,A g,i 表示张三的第i个对象;李。
15、四指定为k,A k,l 就是李四的第l个对象;A的 第一个下标为用户号,A的第二个下标为对象号】; 0032 步骤3:消解冲突步骤: 0033 当两对象的实施为有冲突实施时,优先级高【优先级由工作流实施程序指定】的对 象获得即时实施,并锁定相应空域;而优先级低的对象被压入堆栈,返回步骤2; 0034 随着时间片推进,当堆栈为空时,结束工作流执行中的资源冲突消解进程。 0035 所述的对象为数据对象、文字对象、图像对象、语音对象、过程对象、通信对象和输 入输出对象中的至少一种。 0036 所述的空域为:有界数据空间、数据库字段、有界文字空间、有界图像空间、有界语 音空间、命名程序段、通信设备或输。
16、入输出设备【通信设备或输入输出设备,这些都是资源, 都可能出现资源竞争冲突,如多人共用一台通讯设备】 0037 有益效果: 0038 为检测资源冲突并将这种冲突的影响锁定在尽可能狭小的范围内,即尽最大可能 地推进工作流的进程,本专利提出一种“冲突检测模型”(Conflict Detecting),简称CD 模型。在本模型中,将所有资源都视作不同类型、不同大小的对象,而且引入作用域、重叠方 式等概念。因此具有如下特点: 0039 (1)适用性强:不仅适合有界数据空间,而且适合图像对象、语音对象、文字对象、 过程对象、输入输出对象等;不仅适合双人协同工作时发生的资源冲突消解,而且适合多人 协同工作。
17、时发生的资源冲突消解。 0040 (2)引入作用域的概念。由于理论上可以将“作用域”设置得“无限小”,故工程实 践中在保证效率的考量下,可以使资源冲突局限在相对非常小的空域中。 0041 (3)引入重叠方式的概念【体现在“L1为允许被其他对象修改,L0则不允 许被其他对象修改;”】,进一步减轻冲突。 0042 (4)控制对象的占时度,以限制空域冲突的持续期。 0043 本专利提出的CD模型不仅适合有界数据空间,而且适合图像对象、语音对象、文 字对象、过程对象、输入输出对象等;不仅适合双人协同工作时发生的资源冲突消解,而且 适合多人协同工作时发生的资源冲突消解。本模型引入作用域的概念,使竞争局限。
18、在相对 小得多的空域中;引入重叠方式的概念,进一步减轻冲突。本模型通过控制对象的粒度以控 制冲突的持续期。基于上述模型,使本专利能通过计算机编程实现最大限度的资源冲突消 解。 附图说明 0044 图1.WfMC的工作流管理系统模型; 0045 图2.CD模型的二维示意图三角形、圆形图案只是区分不同内涵的对象,着色与 未着色在图例中已说明是可覆盖和不可覆盖。; 0046 图3.冲突检测及其消解的软件机制; 0047 图4为工作流执行中的资源冲突消解方法的流程图; 0048 图1中的接口说明如下: 说 明 书CN 102945154 A 4/6页 6 0049 接口1:流程定义接口,实现流程定义工。
19、具与工作流引擎间数据模型和API的交 换; 0050 接口2:客户端应用接口,定义所有客户应用和工作流服务间的功能操作方式; 0051 接口3:应用程序调用接口,工作流引擎和直接调用的应用程序间的接口; 0052 接口4:系统管理与监控接口,实现对工作流的管理与监控; 0053 接口5:互操作接口,实现不同工作流管理系统间的信息交互。 具体实施方式 0054 以下将结合附图和具体实施例对本发明做进一步详细说明: 0055 实施例1: 0056 CD模型由模型定义与冲突检测、消解两部分组成,分别在如下段落叙述。 0057 一、模型定义 0058 定义1.对象、空域与抢占 0059 对象数据对象文。
20、字对象图像对象语音对象过程对象通信对象输 入输出对象; 0060 空域有界数据空间数据库字段有界文字空间有界图像空间有界语音 空间命名程序段通信设备输入输出设备; 0061 抢占:某空域已被某一对象锁定,在解锁前其他对象无法使用该空域。 0062 定义2.对象 0063 对象P为一六元组 0064 P=(i,j,D,A,t,L)(1) 0065 其中,i,j为不相关的正整数,记i为用户号,j为属于用户i的有序对象号,D为 对象描述(含对象实施指南),A为P的有界作用域,t为P的到达时间,(即对象P投入应用 的时间点),L1为允许被其他对象修改,L0则不允许被其他对象修改。 0066 设用户数为。
21、N,对象序列为1,2,3,则可标记某一特定的对象P为P i,j ,与之相 对应的有D i,j ,A i,j ,t i,j ,L i,j 【这里的i,j是就是P=(i,j,D,A,t,L)中的i,j。i为用户号, j为属于用户i的有序对象号,对于这个处理文档的实例,j具体一个操作的次序】 0067 定义3.时间段 0068 时间段为一具有起止点的时间闭区间。 0069 用时间段控制对象的粒度,可以将连续的操作分割为离散的对象,仅对处于同一 时间段内的对象才判断它们是否存在冲突,并考虑予以消解,记为T 1 ,T 2 ,。 0070 定义4.无冲突抢占与有冲突抢占,以及成功抢占与失败抢占 0071 。
22、记无冲突抢占为C 1 ,有冲突抢占为C 2 ;称C 1 或C 2 为1时为成功抢占,C 2 0为失 败抢占。其中无冲突抢占总是成功抢占。 0072 设有效空间为S,A i-1,j ,A i,k ,称P i-1,j ,P i,k ,与P k,l 在同一时间段中, 即t i-1,j ,t i,k ,t k,l 均在时间段T i 中。 0073 从而有 0074 C 1 1,iff(A g,i A k,l )(2) 0075 C 2 =1,iff(A g,i A h,j A k,l )(L g,i 0)(L i,k L k,l )=1) 说 明 书CN 102945154 A 5/6页 7 0076。
23、 (3) 0077 C 2 =0,iff(A g,i A h,j A k,l ) 0078 (L g,i L h,j )=0)(L i,k L k,l )=1)(4) 0079 Iff表示“当且仅当”; 0080 显见在C 2 =1的情况下P g,i 有冲突抢占获得成功;仅C 2 =0的情况下才需对P g,i , p h,j 引起的冲突予以消解。 0081 由于本模型中引入对象作用域和重叠方式这两概念,从而得以区分无冲突抢占和 有冲突抢占,并将有冲突抢占失败的可能性减至最小。 0082 二、冲突检测及其消解 0083 (1)冲突检测 0084 对象实施冲突检测的依据是定义4给出的公式(2)(4。
24、),即当下述两公式之一得 到满足时,判断对象的实施为无冲突实施: 0085 (a)iff(A g,i A k,l ) 0086 (b)iff(A g,i A h,j A k,l )(L g,i 0)(L i,k L k,l )=1) 0087 而当下述公式满足时,判断对象的实施为有冲突实施: 0088 (c)iff(A g,i A h,j A k,l )(L g,i L h,j )=0)(L i,k L k,l )=1) 0089 公式(a)的含义:A g,i ,A k,l 这几个有界作用域并无交集()所以是无冲突实 施; 0090 公式(b)的含义:虽然A g,i ,A k,l 这几个有界作。
25、用域有交集(),但是仅一个 空域L g,i 不允许被其他对象修改(L g,i 0),其它的L i,k ,L k,l 是可以被其他对象修改的 (L i,k L k,l )=1,所以资源可以被L g,i 独占而不存在冲突, 0091 与公式(b)相反,公式(c)中存在实实在在的冲突,因为逻辑运算中(10)1, (00)0,因此在(c)中(L g,i L h,j )=0)是说L g,i ,L h,j 均不为1,即均不能被改 写,因此有冲突。 0092 (2)冲突消解 0093 当两对象的实施为有冲突实施时,优先级高的对象获得即时实施,并锁定相应空 域;而优先级低的对象被压入堆栈,等待在下一时间段中再。
26、次检测冲突。 0094 为完成冲突消解,在工作流引擎中设计了专属于每一工作人员的缓存栈,以及一 个称为“虚拟空域”(A g,i A h,j A k,l )的冲突侦测区域,如图3所示。 0095 为简化表述,作出如下三项约定: 0096 1.假设工作人员g以较高的优先级和工作人员i共同参与此项任务; 0097 2.将时间划分成T 0 T 1 ,T 1 T 2 ,T 2 T 3 ,T 3 T 4 这样4个时间段; 0098 3.工作人员g和i仅需要某些图像对象,据此,工作人员g和i所需要的对象以及 能否抢占的情况将如图2所表示。 0099 从前面关于CD模型的定义可以判定,上述三项约定仅为用图2【。
27、定义2中i,j仅 是一个序号,可以是1,2,3,4,.,中任一数字,并不特指某一值,P 12 和P 22 是分属用户1 和用户2的对象,它们之间没有内在联系】配合文字的表述而已,它丝毫不影响冲突检测和 消解的实质。 说 明 书CN 102945154 A 6/6页 8 0100 工作流实施过程: 0101 一、实施准备:对象流压入堆栈。 0102 工作流引擎在工作流程初始化时,将工作人员g和i所需要的对象流压入各自的 缓存栈中;各自的栈计数器记录所压入的对象数。【前文的i并非唯一的i,而仅表示用户 中的一人,一个序号而已,所以这里i与前文的i不存在冲突】 0103 二、工作流实施 0104 步。
28、骤1.如果栈计数器均不为0,则从工作人员g和i各自的缓存栈中弹出最下部 的对象进入冲突检测模块,转步骤2;如仅一栈计数器不为0,从相应缓存栈中弹出最下部 的对象转步骤4;反之【即当两个栈计数器均为0就结束】转步骤5。 0105 步骤2.冲突检测: 0106 冲突检测的依据是在模型定义中由定义4给出的公式(2)(4),即当下述两公式 之一得到满足时为无冲突: 0107 (a)iff(A g,i A k,l ) 0108 (b)iff(A g,i A h,j A k,l )(L g,i 0)(L i,k L k,l )=1) 0109 而当下述公式满足时判断为有冲突: 0110 iff(A g,i。
29、 A h,j .A k,l )(L g,i L h,j )=0)(L i,k L k,l )=1) 0111 根据工作人员g和i所需要的对象以及能否被覆盖的情况,得到如下检测结果和 后继步骤: 0112 步骤2a.如C 2 1(图2的T 0 T 1 时间段即Case1时),转步骤4。因为这时P g,i 与 P i,k 无冲突,工作人员g和i各自推进工作。 0113 步骤2b.如C 2 0(图2的T 1 T 2 时间段即Case2时),转步骤4。因为这时P g,i 重 叠在P i,k 上,而此时P i,k 是允许重叠的(因为L1),所以无冲突,工作人员g和i也可各自 推进工作。 0114 步骤2。
30、c.如C 2 0(图2的T 2 T 3 时间段即Case3出现C 2 0的情况),转步骤3。 0115 步骤3.冲突消解 0116 在T 2 T 3 时间段(Case3时),出现C 2 0的情况。这时P g,i 与P i,k 均不允许重叠, 比较D g,i 和D i,k 中设定的工作人员优先级后继步骤: 0117 步骤3a.优先级高的P g,i 在虚拟空域中抢占成功,从而锁定相关实际空域,转步骤 4。工作人员g的工作推进一步。 0118 步骤3b.优先级低的P i,k 在虚拟空域中抢占失败,将它压入缓冲栈i底部,缓存栈 i的栈计数器1,转步骤1。这是因为P i,k 在与P g,i 抢占资源中抢占失败,所以P i,k 要压入 缓冲栈i底部,以使工作人员i的工作今后有机会推进。 0119 步骤4.根据D g,i 和/或D i,k 中的实施指南寻址在(图3的)“资源指派”中获得已 锁定的实际空域,从而可以实施工作流规定的操作(包括数据改写);时间段推进1;栈计数 器1;转步骤1。 0120 步骤5.工作流实施完成。 说 明 书CN 102945154 A 1/3页 9 图1 图2 说 明 书 附 图CN 102945154 A 2/3页 10 图3 说 明 书 附 图CN 102945154 A 10 3/3页 11 图4 说 明 书 附 图CN 102945154 A 11 。