跨组织工作流中截止日期约束的满足与一致性
在当今竞争激烈的商业环境中,跨组织工作流(IOW)的设计与管理变得至关重要。企业之间需要快速合作,以更低的成本和更短的时间创造新的价值。然而,在合作过程中,如何确保各合作伙伴的时间约束和期望相互兼容,是一个亟待解决的问题。本文将深入探讨如何在CoopFlow方法的基础上,实现对截止日期约束的有效建模、计算和验证。
1. 引言
在现代商业环境中,企业面临着日益激烈的竞争和压力。为了应对这些挑战,企业需要快速联合起来,以更低的成本和更短的时间创造新的有价值的专业知识。虚拟企业中的短期合作允许根据需求动态连接具有互补技能的合作伙伴。
在这样的背景下,CoopFlow方法应运而生,它旨在支持虚拟企业中的短期工作流合作。然而,目前CoopFlow主要关注合作伙伴流程的结构一致性,而忽略了时间约束的兼容性。因此,本文的目的是提供一个面向时间的跨组织工作流建模和管理框架,以确保各合作伙伴的时间约束和期望相互兼容。
2. 背景和预备知识
-
Petri网和时间Petri网
- Petri网定义 :一个Petri网是一个元组⟨P, T, Pre, Post⟩,其中P和T分别是不相交的库所和变迁集合,Pre和Post是反向和正向关联矩阵。
- Petri网标记 :一个标记是一个从库所到非负整数的映射。标记M使变迁a可用,记为M → a,当且仅当对于所有p ∈ •a,M(p) ≥ Pre(p, a)。
- Petri网语言 :标记Petri网⟨PN, M0⟩的语言是所有从初始标记M0可达的变迁序列的集合。
- 无环Petri网(APN) :一个APN是一个Petri网,对于任何给定的计算序列,每个活动或变迁最多出现一次。
- 时间Petri网(TPN) :一个TPN是一个元组⟨P, T, Pre, Post, M0, S⟩,其中S是一个从变迁到时间间隔的映射。每个变迁a都有一个时间间隔[tmin(a), tmax(a)],表示其最早和最晚可能的触发时间。
-
CoopFlow基本建模概念
- 工作流网(WF - Net) :一个Petri网是一个WF - Net,如果它有一个源库所和一个汇库所,并且每个节点都在从源库所到汇库所的路径上。
- 路径、基本路径和字母表 :路径是一个节点序列,基本路径是没有重复节点的路径,字母表是路径中所有节点的集合。
- 结构良好的工作流 :一个WF - Net是结构良好的,如果对于任何两个节点x和y,以及任何两条从x到y的基本路径C1和C2,如果α(C1) ∩ α(C2) = {x, y},则C1 = C2。
- 私有工作流(PWF)和私有时间工作流(PTWF) :每个合作伙伴都有一个本地的PWF和PTWF。PWF是一个结构良好的WF - Net,PTWF是在PWF的基础上添加了时间信息。
- 合作活动和本地活动 :PTWF中的变迁分为合作变迁和本地变迁。合作变迁与全局IOW中的其他变迁交互,本地变迁执行本地操作。
以下是相关概念的总结表格:
| 概念 | 定义 |
| — | — |
| Petri网 | ⟨P, T, Pre, Post⟩,P和T分别是库所和变迁集合,Pre和Post是关联矩阵 |
| 无环Petri网(APN) | 计算序列中每个活动或变迁最多出现一次的Petri网 |
| 时间Petri网(TPN) | ⟨P, T, Pre, Post, M0, S⟩,S是变迁到时间间隔的映射 |
| 工作流网(WF - Net) | 有源库所和汇库所,且每个节点在从源到汇路径上的Petri网 |
| 结构良好的工作流 | 满足特定路径条件的WF - Net |
| 私有工作流(PWF) | 结构良好的WF - Net |
| 私有时间工作流(PTWF) | 在PWF基础上添加时间信息 |
| 合作活动 | 与全局IOW中其他变迁交互的变迁 |
| 本地活动 | 执行本地操作的变迁 |
下面是一个简单的mermaid流程图,展示Petri网和时间Petri网的关系:
graph LR
A[Petri网] --> B[无环Petri网(APN)]
A --> C[时间Petri网(TPN)]
3. 截止日期约束建模和发布
- 问题提出 :在跨组织工作流中,即使合作伙伴的流程结构一致,也可能存在时间约束不兼容的问题。例如,合作伙伴可能对服务交付时间有不同的要求。
- 方法概述 :本文的方法是在抽象表示中添加关键变迁之间的时间约束。具体来说,我们关注计算和验证一对请求 - 响应变迁之间的截止日期约束。
-
截止日期约束计算
- 最大执行时间 :最大执行时间Max(ai, aj)是沿着所有从标记Mi到Mj的可能路径上的总最晚触发时间的最大值。
- 截止日期参数 :截止日期参数Daiaj = Max(ai, aj) + CCoop,其中CCoop是PWF工作流设计者指定的一个常数,用于给潜在合作伙伴额外的时间来交付所需服务。
- 截止日期约束建模 :截止日期约束通过一个非侵入式的观察者建模,将问题转化为对特定状态Error的可达性分析。
- 截止日期约束验证 :合作伙伴需要在本地验证指定的截止日期约束,以确保所有可能的序列都不超过预计算的截止日期。
- 截止日期约束发布 :在生成公共工作流(AF)后,添加计算得到的截止日期约束,生成相应的时间抽象工作流(TAF)。然后,将观察者添加到TAF中,以发布截止日期约束。
以下是截止日期约束计算和发布的步骤列表:
1. 确定请求 - 响应变迁对ai和aj。
2. 计算最大执行时间Max(ai, aj)。
3. 计算截止日期参数Daiaj = Max(ai, aj) + CCoop。
4. 使用观察者对截止日期约束进行建模。
5. 在本地验证截止日期约束。
6. 生成公共工作流(AF)。
7. 添加截止日期约束到AF,生成时间抽象工作流(TAF)。
8. 将观察者添加到TAF中,发布截止日期约束。
下面是一个mermaid流程图,展示截止日期约束计算和发布的流程:
graph LR
A[确定请求 - 响应变迁对] --> B[计算最大执行时间]
B --> C[计算截止日期参数]
C --> D[使用观察者建模]
D --> E[本地验证约束]
E --> F[生成公共工作流(AF)]
F --> G[添加约束生成TAF]
G --> H[发布截止日期约束]
通过以上方法,我们可以有效地计算、建模和发布跨组织工作流中的截止日期约束,从而确保各合作伙伴的时间约束和期望相互兼容。
4. 基于时间Petri网的约束计算与建模
在这部分,我们会详细介绍如何基于时间Petri网来进行截止日期约束的计算和建模。
-
关键假设
:设PTWF = ⟨P, T, Pre, Post, M0, S⟩为一个时间私有工作流,对应的PWF是一个可以由无环PN捕获的结构良好的Wf - Net。仅当满足以下两个条件时,才能在两个合作活动ai和aj之间添加截止日期约束:
- ai模拟一个请求事件,aj模拟一个响应事件,且它们将在全局IOW中与同一个合作伙伴交互,即ai.type = false且aj.type = true。
- ai和aj是两个连续的合作活动,即对于所有ω ∈ L(TPWF),如果ai, aj ∈ ω,则untimed(ω) = ωiaiωla jωj,其中ωl是仅由本地活动组成的序列。
-
最大执行时间计算
:考虑两个标记状态Mi和Mj,Mi在合作变迁ai触发后(绝对时间为τi)达到,Mj在合作变迁aj触发后(绝对时间为τj)达到。最大执行时间Max(ai, aj)的计算方式是,在所有可能的轨迹上,沿着连接标记Mi和Mj的所有可能路径上的总最晚触发时间(LFT)的最大值。具体公式为:设Laiaj = {w s.t. w = (ai + 1, τi + 1)(ai + 2, τi + 2)…(aj - 1, τj - 1)(aj, τj)}是所有可能的定时触发序列的集合,这些序列使工作流从Mi到达Mj。Max(ai, aj)通过最大化Tmax(w) ∀w ∈ Laiaj来确定,其中Tmax(w) = ∑j k = i + 1 tmax(ak) (因为我们考虑的是变迁ai触发后的工作流,所以不考虑tmax(ai))。
-
截止日期参数确定
:截止日期参数Daiaj = Max(ai, aj) + CCoop,其中CCoop是PWF工作流设计者指定的一个常数,用于给潜在合作伙伴额外的时间来交付所需服务。
以下是一个计算示例表格:
| 变迁序列 | tmax计算 |
| — | — |
| a2a4a6 | 2 + 4 + 6 = 12 |
| a2a5a6 | 2 + 1 + 6 = 9 |
| a3a4a6 | 3 + 4 + 6 = 13 |
| a3a5a6 | 3 + 1 + 6 = 10 |
从表格中可以看出,Max(a1, a6) = 13。
下面是一个mermaid流程图,展示最大执行时间和截止日期参数的计算流程:
graph LR
A[确定标记状态Mi和Mj] --> B[确定Laiaj集合]
B --> C[计算Tmax(w) ∀w ∈ Laiaj]
C --> D[确定Max(ai, aj)]
D --> E[确定CCoop]
E --> F[计算Daiaj = Max(ai, aj) + CCoop]
5. 本地验证与全局一致性保证
-
本地验证方法
:为了在本地验证指定的截止日期约束Daiaj,我们添加一个观察者O到对应的PTWF = ⟨P, T, Pre, Post, M0, S⟩中。得到的工作流PTWF | O = ⟨P′, T′, Pre′, Post′, M0, S′⟩定义如下:
- P′ = P ∪ {Obs, Error},其中Obs是模拟观察者计数库所的库所,Error是如果约束Daiaj未被遵守则被标记的库所。
- T′ = T ∪ {Deadline},其中Deadline是如果约束未被遵守则触发的变迁。
-
对于Pre′和Post′,根据不同情况有不同的取值:
- Pre′(p, a) = Pre(p, a),如果(p, a) ∈ P × T;Pre′(Obs, aj) = 1;Pre′(Obs, Deadline) = 1。
- Post′(p, a) = Pre(p, a),如果(p, a) ∈ P × T;Post′(Obs, ai) = 1;Post′(Error, Deadline) = 1。
- S′(a) = S(a) ∀a ∈ T,S′(Deadline) = [Daiaj, Daiaj]。
- 本地验证原理 :可以证明L(PTWF | O) = L(PTWF)。因为Deadline是PTWF | O中唯一添加的变迁,证明L(PTWF | O) = L(PTWF)等价于证明Deadline是一个死变迁。变迁Deadline由ai触发产生的一个标记在库所Obs中启用。这个标记要么被Deadline触发使用,要么被冲突变迁aj触发使用。根据定义,变迁Deadline的边界大于两个相应合作活动之间所有变迁的最大执行时间,即Daiaj ≥ Max(ai, aj)。由于冲突变迁aj总是在Deadline之前发生,Deadline成为一个死变迁。
- 全局一致性保证 :每个合作伙伴在本地验证相关截止日期的满足情况,能够保证全局IOW中所有截止日期的时间一致性。虽然本文没有讨论识别两个工作流是否可以在不违反时间约束的情况下进行合作的所有方面,例如没有处理所有可能的交互模式以及随机和概率方面的实际时间问题,但通过本地验证的方法,在一定程度上保证了全局的时间一致性。
以下是本地验证步骤的列表:
1. 确定要验证的截止日期约束Daiaj。
2. 添加观察者O到PTWF中,得到PTWF | O。
3. 检查Deadline变迁是否为死变迁,以验证L(PTWF | O) = L(PTWF)。
4. 确认所有可能的序列在本地不超过预计算的截止日期。
下面是一个mermaid流程图,展示本地验证的流程:
graph LR
A[确定Daiaj] --> B[添加观察者O得到PTWF | O]
B --> C[检查Deadline是否为死变迁]
C --> D[确认本地序列不超截止日期]
6. 总结与展望
通过本文的研究,我们提出了一种基于Time Petri Net模型的时间扩展方法,用于在CoopFlow中建模和管理跨组织工作流的时间约束。我们详细介绍了截止日期约束的计算、建模、验证和发布方法,确保了各合作伙伴的时间约束和期望相互兼容,同时保持了每个合作伙伴业务流程关键部分的隐私。
未来的研究可以进一步扩展本文的方法,处理更复杂的交互模式,考虑随机和概率方面的实际时间问题,以及探索如何在更动态的环境中实时调整和优化时间约束。通过不断完善这些方法,我们可以更好地支持企业在跨组织工作流中的合作,提高企业的效率和竞争力。
超级会员免费看
1602

被折叠的 条评论
为什么被折叠?



