一种数据驱动工作流管理系统的实现方法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一种数据驱动工作流管理系统的实现方法

摘要:提出了一种基于Petri网模型的数据驱动的工作流建模方法。在实现此方法前,我们对该工作流程理念进行严密的分析,以验证其正确性。该工作流模型已经在工作流管理系统中得到实现,其提供了一组图形界面,以方便建模和执行业务流程任务。

关键字:工作流管理系统;Perti-Net;数据驱动工作流;工作流程定义

Abstract:In this paper, we present an approach for data-driven workflow modeling based on Petri Net model. The conceived workflow process can be analysed to verify its correctness before implementation. This workflow modeling approach has been implemented into a workflow management system that provides a set of graphical interfaces to model and execute the business process tasks.

Key words:Workflow management system; Petri-Net; Data-driven workflow; Workflow process definition

一. 引言

在本世纪初,工作流程管理集中在设计和文档业务流程。其重点放在任务和他们之间的次序的依赖关系,同时,数据和资源只起到了非常轻微的作用。许多新的方法,例如,Petri网[1],业务流程建模符号(BPMN)[2],业务流程执行语言(BPEL)[3]等,但其中只有少数对业务流程中的数据流交换建模有兴趣。此外,最近几年,随着数据驱动方法的提出,数据在业务流程中的重要性也日益受到重视。

随着流程的执行和表现形式收到越来越多的关注,工作流模型的验证也必须得到重视。Petri-Net是当前最能说明工作流技术规范的模型。

本文结合数据驱动方法和Petri-Net形式化方法提出了一种用于工作流过程建模的形式化方法,通过工作流程引擎执解析和自动生成运行流程分析验证由此产生的模型。

二. 技术介绍

近几年,许多着重研究数据流和控制流相结合的新方法涌现了出来,人工业务流程(Business Artifacts,BA),一个使用人工方法和Petri-Net模型使数据与流程结合在一起的方法。BA方法侧重于解决决策问题,相关的可达性,避免死角和冗余,但它不提供过程建模的图形表示法。尽管它被正式定义,但BA并没有提供一个正式的机制过程验证。在工作流研究中过程验证已被广泛研究,用Petri网的状态机制[7],曲线图[8],数据依赖性[9]等。

另一个正式的方法基于Petri网模型是corepro框架[ 10 ]。CorePro使建模数据驱动规范,然后,基于给定模型等级的数据结构,自动创建流程结构。同时,corepro提供了一些简单的规则来验证数据驱动的过程结构的可靠性特性。然而,它不保留已经激活执行对象的状态。事实上,除了结构的变化,同时也考虑到状态的变化。

Petri网的令牌进行文献中已定义的数据的扩展,以提高工作流模型的表现力。数据网(DN)是Petri网的扩展,令牌取自线性有序和密集的领域,并转换可以执行整个地方的操作,如传输,复位或广播。尽管,数据网可以被看作是一个约束多重集重写系统(CMRS)被扩充为全开放操作。

根据[12]中的研究发展,只有在黑色难以区分的令牌情况下,全开放操作才增强Petri 网的表现力,并不适合令牌数据取自有序域的模型。弱点是指这里的事实,cmrs编码模拟一个有损耗的数据网,例如,数据网的令牌可能会丢失。

上述所有的方法都关注数据路由和数据管理的过程,但是他们认为所调用的应用程序组件,其中应用程序数据管理作为黑盒的活动。它们中的一些,像DN,可以申请转换,读取或写入一些数据元素,但只有有限权利来管理所有数据元素的处理。这就是为什么流程必须被建模在更高的抽象层次模型,以反映优选的工作实践。

三.使用Petri网令牌结构的工作流建模

我们从Petri网中提出一种新的工作流建模方法用来工作流过程建模。为了管理所有的数据处理工作程序,我们使用数据驱动的过程结构的概念。所以,我们由相应的数据结构来描述过程,我们定义了一个数据结构,pairs=(C.D),其中C是一个属性列表,D是元祖列表,每个元祖是属性值的有序集。从形式上看:∀n, m∈N:

C=(c1,)

D={(d11,d12...d1n),(d21,d22...d2n)...(dm1,dm2...dmn)}

每个属性C i是名为n i和类型为t i的有序对。

∀i, ti ∈{SmallInt, Int, BigInt, F loat, Double, Real,

Decimal, Char, V archar, T ext, Date, Y ear, Boolean}

∀i, j, d ij≡t j :属性值是一个特定的有效的属性类型值。工作流程过程被定义为一个Petri网工作,某个地点的位置对应于一个数据结构,包含结构的令牌(元组)和一个转换对应于一个任务。一套工作流由四个组件组成,WF=(S,T,Pre,Post),其中

S是一个有限集的数据结构,

T是一个有限集的任务

Pre是S×T→N是向前关联矩阵

Post:是S×T→N是向后关联矩阵

工作流过程定义为两个面向网络的节点类型。即数据结构和操作这些结构的元祖任务。一个任务消耗数据结构产生其他元组,然后可以通过其他任务消耗。如果每个输入数据结构s∈S被至少x元组标记,即任务t被启动。(涉及的Pre(S,T),它定义了从S到T边缘重量)。启用任务T需要每个输入数据结构消耗X i元组,并生成每个输出数据结构T的X j元组。(涉及的Post(S,T),它定义了从S到T边缘重量)。我们必须澄清,在我们的例子中,我们不能仅限于一个后关联的简单的矩阵。事实上,每个转换根据其处理将消耗一个未定义的元组数,并产生属于一个确定范围内产生号码,(见附录表I).例如,如果过渡是一个元组分别含有X1和X2的元组数的两个数据结构S1和s2的联合操作。它会产生一些属于间隔的元组:max(x1, x2) and x1 +x2。(因为联合操作会消除重复元组)

我们定义了两个向后关联矩阵:Post min和Post max,作为一个价值区间限制所有可能的后关联矩阵。

∀t∈T and s∈S, Post Min(t, s):边缘变迁从T到权重最小的S.

∀t∈T and s∈S, Post Max(t, s):边缘变迁从T到权重最大的s.

∀t ∈T and s ∈S, Post(t, s)∈[Post Min(t, s),Post Max(t, s)].

我们通过图1的例子中详细解释这个想法

图1:工作流模型实例

由图1所示的例子中,包含8个地方(S1,S2,...,S8)和5个转换(T A,T B...T E)。每

相关文档
最新文档