基于时序逻辑的工作流建模与分析方
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于时序逻辑的工作流建模与分析方法1
王远,范玉顺
(清华大学自动化系,北京 100084)
摘要提出了一种基于活动时序逻辑(TLA)的工作流建模与模型分析的形式化方法。该方法将模型及模型的性质都表示为一个TLA公式,对工作流模型性质的分析可以等价为对TLA中两个公式之间是否存在蕴涵关系的检验,从而建立了一个工作流模型各层次分析统一框架。一个工作流建模和分析的实例验证了所提出方法的有效性,该方法在建模、模型分析以及指导模型设计等方面都有较好的应用前景。
关键词工作流,活动时序逻辑,工作流模型分析
1基金项目:国家自然科学基金项目(60274046)
0 引言
工作流管理是实现企业过程集成和提高企业运行效率、柔性的一种全面的支撑技术。该技术在办公自动化(OA)、计算机支持的协同工作(CSCW)、经营过程重组(BPR)等几个领域中的应用证明,工作流模型的合理性验证与分析是成功实施工作流管理的关键[1]。工作流模型分析可以分为逻辑、时间和性能三个层次。逻辑层次关心的是工作流模型中事件点与事件点之间的关系,时间层次的分析是在逻辑层次的基础上研究模型中时间段与时间段之间的关系,而性能层次分析一般是指(考虑资源信息) 通过仿真或严格的理论分析,获得与系统性能相关的量化指标,来评估建立的工作模型是否满足目标需求。
工作流模型的验证与分析的方法与建模方法密切相关。工作流建模方法可以分为非形式化方法与形式化方法[2]。非形式化方法主要包括活动网络图法、ECA(Event-Condition-Action)规则方法、面向系统交互的工作流建模语言等,这些非形式化的建模方法普遍缺乏对模型验证与分析的支持。工作流建模的形式化方法以基于Petri网的建模方法为主,并在此基础上形成了一些工作流模型验证与分析的方法,然而这些基于Petri网的方法存在两个问题:
一是没有统一的方法框架,无法满足工作流模型多种性质的验证需要,而是针对一种性质,提出一种特殊的高级Petri网建模方法,找到该性质在Petri网中的表达方式,并针对这种表达方式提出一种验证算法,比如,用户需要验证模型中两个活动之间的时间距离约束,现有的方法无法验证,就只能依靠研究人员的创造力,提出一种特殊的Petri网,并发展一种专门的验证方法;二是在指导工作流模型的设计和工作流模型的综合方面无法满足需要,比如要设计一个满足给定性质的工作流模型,现有的模型验证方法就无法提供有力的支持。针对上述工作流模型分析验证中存在的问题,本文用时序逻辑作为理论基础,提出了一种基于时序逻辑的工作流建模与分析方法,为工作流模型各个层次的验证与分析提供了一种新思路。
1 TLA基本概念
时序逻辑作为一种表示各种动态系统行为和性质的逻辑语言,近年来在反应系统、实时系统的表示与验证、网络协议的分析、多媒体通信同步以及自然语言理解、专家系统、人工智能等方面得到了广泛的应用[3-5]。在本文提出的基于时序逻辑的工作流建模分析方法中,一个工作流过程模型被描述为一个时序逻辑系统中的公式,同时该模型需要被验证的和分析的性质也表示为一个时序逻辑公式,该方法对所验证的性质并没有特殊的限定。要分析工作流模型是否满足该性质,只需在相应的逻辑系统中利用逻辑推理和模型检查等技术检验这两个公式之间是否存在蕴涵关系。这就使得对工作流模型各层次的验证可以统一到一个方法框架中来。同时,由于在时序逻辑中并不区分公式表示的是模型还是模型的性质,这使得本文提出的方法在指导工作流模型的设计和工作流模型的综合方面有较好的应用前景。
本文使用的时序逻辑系统是活动时序逻辑
(temporal logic of actions ,TLA ),对TLA 详细的介绍和说明可见参考文献[6],这里只做简单的介绍。TLA 是描述离散时间动态系统的一种重要的时序逻辑,它结合了标准时序逻辑和活动逻辑(logic of actions)的特点。TLA 中的公式包含经典逻辑连接符∧,∨;量词∃,∀;一元操作符□, ◇;以及“′”(撇号)。TLA 的语义解释是基于“行为(behavior)”、“状态(state)”和“活动(action)”这三个概念的。一个行为是一个无限的状态序列,用σ表示。其中一个状态是TLA 中变量到具体变量值的一个映射,所有可能状态的集合用St 表示。一个活动代表了当前状态和下一状态间的关系,比如:z ′= z – 2就是一个活动,其中带撇号的变量表示其处于下一状态之中。下面给出TLA 的语法及部分推理规则。TLA 中的公式用上下文无关文法中产生式的方式定义如下: formula →predicate|□[action]
(1) ((')')(['])f P f f P P P P P ∧=⇒⇒≡∧⇒ ; (2) ([]['])f f I N N I I ⇒≡∧∧ ;
(3) ([]')(([]))f f I N I I N I ∧⇒⇒∧⇒ 。 其中, P, I 为谓词; N 为活动;f 为状态函数。
2基于时序逻辑的工作流建模与分析
2.1 基于TLA 的工作流建模方法
文献[7]给出了一种基于工作流管理联盟(WfMC )过程定义的图形化建模语言,利用两种对象实体进行过程建模:节点和有方向的连接弧。 其中节点分为两种:任务节点和选择/ 汇合节点。 任务节点用一个方框表示,代表为了实现某种目标或功能而需要做的工作,它根据实际的需要细分为活动、子过程、块和空活动,为了方便起见,本文将任务节点统称为活动。 选择/ 汇合节点(逻辑节点) 用一个圆圈表示,用来表达
“与分支”和“与连接”的逻辑结构。连接弧表示活动的前后逻辑控制约束。下面首先利用这种建模语言描述工作流模型,然后在此基础上给出基于TLA 的工作流建模方法。
要用TLA 对工作流建模,必须用TLA 描述工作流的语义。本文中,用TLA 中的“behavior ”来描述工作流模型的一次执行,behavior 中的各个状态变化反映了工作流的执行过程。引入常量Start 、End 、T i 表示工作流的开始、结束以及工作流实际执行的各个活动。另外为了描述工作流的执行过程,还定义了TLA 中的两个变量。
定义1 定义P 为一个集合变量,P 中的元素代表工作流执行过程中已经执行完毕的活动。
定义2 定义S 为一个集合变量,S 中的元素代表工作流执行过程中正在执行的活动。
图1给出了工作流模型的6种控制结构,针对这些结构,分别定义它们在TLA 中的描述方法:在TLA 中,每个结构都用一个action 来表示。
图1 工作流模型的6种控制结构
顺序:顺序控制结构(记做SE )定义如下: 定义3 SE (T i , T j ) (T i ∈S) ∧ (P ′= P ∪
{T i })∧(S ′= S ∪{T j }-{T i }),其中,T j 是T i 的后继活动。
与分支:与分支允许多任务并行执行(记做AS )。
定义4 AS (T i , T i1, T i2, … , T in ) (T i ∈S)∧(P ′= P ∪{ T i })∧(S’ = S ∪{ T i1, T i2, … , T in }-{T i }),其中,T i 是分支点的前继活动,T i1, T i2, … , T in 是分支点后分出的并行活动。
与连接:与连接要求所有汇合的分支都执行完毕后,汇合后的活动才能执行(记做AJ )。