工作流定义工具需求分析

来源:百度文库 编辑:神马文学网 时间:2024/03/29 09:48:22
工作流分类:
管理型、设定型、协作型、生产型。
以通讯为中心、以文档为中心、以过程为中心、
基于文件、基于消息、基于web。
工作流模型包括了描述一个能够由工作流执行服务软件系统执行的过程所需的所有信息。这些信息包括:过程的开始、完成条件,构成过程的活动,进行活动间导航的规则,用户要完成的任务,可能被调用的应用,工作流机的引用关系,所有与工作流相关的数据定义。
过程定义可能引用组织/角色模型中关于组织结构、组织中的角色等信息。(过程定义指定完成某项活动的组织实体或角色,而不是具体的人员。将角色与具体人员连接的是工作流执行服务。)
过程建模:基于形式化的过程定义语言、对象-关系模型(对简单系统可以用一组路径选择命令的方式来描述信息或文档在参与者之间的传递)
建模工具的输出:能被工作流机解释执行的过程定义。
工作流模型的元模型:描述了工作流模型内在的联系,这个模型有利于在不同工作流产品间交换信息。
数据:工作流相关数据,监控和控制信息(工作流定义)p58
过程定义输入输出接口:
1通信建立
2工作流模型操作:过程模型名称检索;对过程模型对象的读写
3工作流模型对象操作:在建模工具中创建、检索、删除对象;创建、设置、删除对象属性
工作流模型与工作流定义语言研究(工作流建模方法、工作流模型形式化表示、工作流定义语言)
IBM Exotica
建模方法:
工作流模型与高级事务模型的目标相似,是支持异构分布应用环境的工具系统。Exotica研究了两者的结合。事务模型saga,flexible transactions有些复杂,Exotica提出一个中间件FMTM,作为将事务模型转换为工作流模型的预处理器
FDL(flowmark define language)
佐治亚大学的Meteor(Managing End-To-End Operation),LSDIS实验室  p90
图形化建模工具:流程设计器,数据设计器,任务设计器。
流程设计器:定义各个活动之间的关系。
数据设计器:定义执行活动所使用和传递的数据。采用了面向对象的技术来设计数据设计器,由设计器生成所需的所有的数据类,利用继承,提高了数据管理的清晰程度,强化了数据之间的逻辑关系。
任务设计器:描述如何激活不同类型的活动(非事务型,事务型,WEB型,人机交换型,两阶段提交型)。不同的活动有不同的设计器。对于需要从数据文件获得输入数据的活动,设计器提供了一个模板来描述这些数据文件,模板中包含了有关数据类的属性和其他的一些文本信息。
模型将以工作流中间语言WIL(Workflow Intermediate Language)形式保存,该语言与WPDL(Workflow Process Definition Language)类似。
WIDE(Workflow on Intelligent and Distributed database Environment)的工作流模型:组织模型,信息模型,过程模型。是对WFMC参考模型的扩展。不仅支持工作流的基本要素(三个模型及它们之间的相互关系????)还支持丰富的组织模型,复杂的活动分配约束,动态控制流程,复杂过程结构,工作流事务管理。
组织模型:记录企业内部组织结构,资源信息。记录了单个雇员信息,职位信息,为了某种目的建立的临时工作组信息,雇员间、职位间、工作组间的关系。与其他工作流产品的区别:严格实现组织模型与过程模型的分离(其他?),通过授权机制实现过程模型定义的角色到组织模型中代理的对应。
信息模型:定义并维护一个工作流实例运行所需全部数据,并管理其表示方式和使用范围。
过程模型:。。。
WIDE支持层次化建模,
基于状态与活动图的工作流管理系统Mentor(Middleware for Enterprise-wide Management)
采用状态和活动图建立模型,使用可视化软件工具Statemate作为建模工具。也可采用其他建模工具(flowmark),Mentor会将其转换为状态和活动图。
活动图反映系统功能的分解,每个活动代表一个功能,者与工作流模型中的活动类似,活动间的有向弧代表数据的流动。状态图反映活动之间控制信息的流动。状态的转换由ECA(Event Condition Action)规则驱动。状态图还支持嵌套的状态,正交组件(orthogonal components)。
研究方向:
工作流模型的正交分解:为了实现分布运行。包括活动图和状态图的分解。其中,后者较难。Mentor提出了一种方法分解后者,
工作流建模方法:基于活动网络的建模方法,以活动及其关系为基础。
基于形式化表示的建模,如petri,工作流网,
基于对话形的建模,Winograd ,Flores
基于状态和状态图,从使用和正确性验证上来看,介于pertri与图形化模型之间的,
基于事务模型,事务是数据库的概念。工作流中的事务比数据库中的要复杂。
图形化,
工作流描述语言:
wpdl,psl(chapter 7), wfdl,tsl,wfsl,C&Co(from c)
几种产品:
IBM MQSeries Workflow,是基于消息的(基于ibm的消息队列产品MQSeries),企业可以采用工作流工具建模其业务过程,然后使用BPR工具分析并优化其业务流程,最后可以将优化的过程交给工作流执行服务为执行
在创建阶段提供的建模工具允许管理员用图形化的方式描述一个过程和其中的活动,并且通过一个图形用户界面可以定义工作流模型中的所有其他信息。还提供函数定义MQSeries Workflow服务器的特性和它们的网络拓扑结构。
用户可以在建模界面自定义图标。
建模工具还提供一个重要功能,允许定义活动之间的控制流,且允许定义数据映射。这个映射功能可以定义在过程实例的执行过程中,活动之间数据的传递和相关的传递规则中。
工作流模型
工作流建模就是对经营过程进行计算机化的定义。工作流模型除了支持完整的工作流概念定义,即提供定义工作流所需的所有组件或元素,理想的工作流还应该具有强大的描述能力,即能够描述清楚几乎所有的业务流程类型。现在还未做到。
工作流不但要表达经营过程中的活动及相互关系,还要对活动间传递的信息、活动的执行实体、活动所需资源等定义。因此加入了描述数据(信息)、组织、资源等部分。很多工作流产品允许在一定范围内自定义数据、人员等。为了更好描述这些信息,将这些描述信息扩展为独立的模型。如WIDE中的组织模型、信息模型、过程模型共同构成工作流模型。惠普实验室提出一种层次化的树状的资源模型。
为了交互,提出了规范的描述语言,即工作流定义语言。如WFMC的WPDL,IBM FDL,METEOR2 WIL(Workflow Intermedia Language)
模型的评价标准【文献31】:
1表达能力丰富:提供丰富的建模概念,使得由大量约束集合而成的元素能够在模型中被直接表达。
2容易理解:对于专家和普通用户都能理解
3最小化:模型中的概念的集合是最小化的
4形式化:模型定义能够作为现实对象的形式化描述。
1从过程描述入手,基于有向模型:流程图、状态图、活动网络图、EPCM模型。不能处理复杂的过程逻辑。
2IDEF系列方法:功能建模IDEF0(系统功能结构,描述的是功能的输入、输出、资源使用情况),信息建模IDEF1/IDEF1x(信息实体及相互间关系),动态行为建模IDEF2,过程建模IDEF3(描述过程,过程流网,对象状态转移网。前者包括不同人员对事件与活动、参与事件的对象,以及操纵这些事件的行为之间的约束关系等),面向对象建模IDEF4。用于过程建模的:IDEF0,1x,3。
STEP Part 49
基于对话的工作流模型(产品:ActionFlow)
基于活动网络的过程建模-FlowMark工作流模型
一个经营过程由一个无自环的有向图构成。
节点:可执行的步骤或任务。
节点间的连接弧:过程中的控制流与数据流
模型组成元素:process,activity,block,control connector,data connector,conditions
1process:有一系列具体步骤组成,为完成某项定义目标而定义。一个过程就是用一个有向图来表示的一个工作流。
2activity:过程中的每个步骤就是一个活动,在图中就是用一个节点元素表示。分为:program activity:为活动绑定了一段程序代码,活动开始就是程序的执行;process activity在活动基础上嵌一个过程,活动开始时,就开始了相应的过程,process activity主要是用于子过程的嵌套描述与模型的层次化分解。活动的内部结构:输入数据箱,输出数据箱,开始与结束条件,状态,绑定的相应程序或过程。
3block:类似于“过程”,区别是,一个过程有一个唯一的标识,可以在不同的工作流过程中使用。而模块没有这一项,只能被一个工作流过程使用,也具体输入数据箱,输出数据箱。模块就像begin和end之间的内部代码,而过程则是外部的连接库代码(?)。
4control connector:定义活动间的执行顺序,在有向图中以连接弧表示。当连接弧的起始节点执行完毕,工作流机根据控制连接弧的定义进行过程导航,使连接弧的终止节点能够被执行。控制连接弧与它们所连接的活动节点构成整个工作流过程的控制逻辑。
5data connector:定义两个活动间的信息流,在有向图中也是以连接弧表示。前一个活动的输出数据箱指向后一个活动的输入数据箱,即前一个活动的输出信息被后一个活动使用。(数据箱:工作流相关数据,该活动执行有关的具体应用数据)
6condition:用于定义过程执行中的约束。转移条件:定义control connector上的条件,根据条件的判断结果是真或假,决定是否执行下一个活动。开始条件:定义活动在什么情况下才能开始执行。(区别两个概念:活动被使能,活动被执行。被使能:满足转移条件,发生转移时,活动有可能被执行,称为被使能。活动是否开始执行,决定于开始条件。)结束条件:定义活动什么情况才能结束。当活动执行完,结束条件就被检查,如果满足该条件则结束活动,否则活动被重新执行,直到满足结束条件。通过该条件可以定义多次执行。(p141)
活动状态是一个重要属性:ready,running,terminated,suspend等。过程的推进就是在这些状态间的转换。
基于活动网络的过程建模优点不少,缺点是不够灵活,对紧急事件的应变能力不够。
Event-driven Process Chain
基于语言行为理论的工作流模型
基于Petri网的工作流模型(工作流网)-WF-net
事务模型
事务的四个特性:atomicity,consistency,isolation,durability
wpdl的关键字,由空格符分割,区分大小写
约定:操作符以Op结尾
常量以C结尾
括号以大写字母结尾,如表示数组定义中的一个括号(????????)
类型字符用大写字母书写,以T结尾,如表示整数类型。
其他结束符以大写字母书写。
::=
||||
::=外部对象的指针,以字符串表示。如,”c:\test\test.ext”,”abc@gmail.com”,”http://www.agc.com”
::=YYYY-MM-DD [hh:mm[:ss]]
间隔符:
::= 空格|回车(CR)|/(?)|换行(LF)
::=字母或下划线开头,在一对单引号之间。
::=非负整型数,
::=||
::=||
::=||||
::=
::=
performer是工作流参与者类型的一个实例。
复杂数据:主要用于对数组、结构、枚举、表的定义,这些数据通常用于表达工作流相关数据与有关的扩展属性。
::=|
//结构类型
|
//数组类型
|//枚举
|//表类型
表达式:(主要用于各种条件的定义,由操作符和操作数组成的序列,是左结合的。)
::=[]
::=|
::=[::=[]
::=[]|
::=||||PARTICIPANT
::=
::=[]
::=|
::=|
::=[]
::=
::=
::=
::=
::=
操作符:
::=AND
::=OR
::NOT|!
::==|!=|<|<=|>|>=
::=+|-|*|/
::=-
其他符号:
::=(
::=)
::=[
::=]
::=...
::=.//在RECORD中选择一个成员变量
::=:
每个元模型的属性:
::=
属性有预定义的标准属性,也可以由软件供应商扩展。
参数(在过程,子过程,应用间传递数据):
::=[IN_PARAMETERS ]
[OUT_PARAMETERS ]
::=[]
::=//工作流相关数据
形参与实参的映射:
::=
::=
把实参按照顺序依次映射给形参。如果出现实参个数不够,或多了,要提供处理机制,如设为零值,或忽略多余的。参数可以是表达式。
工作流元模型
在一个工作流模型中可以定义多个过程,它们共享工具与参与者,但建议每个过程一个模型。P180
::=MODEL

[]
[]
[]
[]
[]
[]
END_MODEL
:模型说明信息,如,WPDL版本,供应商信息,创建时间,
包括一个,该部分不但出现在模型的头定义中,还可以在模型所包含的每个过程的头定义中出现,其定义未:
::=[AUTHOR ]
[VERSION <   >]
[CHARACTERSET  <>]
[CODEPAGE <>]
[RESPONSIBLE <>]
[STATUS ]
::=UNDER_REVISION|RELEASED|UNDER_TEST
XPDL
一致类声明:
用来说明模型是否与WFMC定义的标准相一致,有三种级别,FULL-BLOCK(全限制,限制很多),LOOP-BLOCK(无自环,即限制循环,循环用多次执行实现),NON-BLOCK(无限制)
扩展库,其中的函数与过程直接与工作流机绑定并在必要时候进行调用或激活,无需通过第二类接口。
::=LIBRARY

END_LIBRARY
::=[]|[]
WPDL允许引用其他的工作流模型或在另外已提供好接口的工作流管理系统中所建立的模型,这些都是通过外部模型声明来定义的。
::=
EXTERNAL_MODEL_REFERENCE

[]
END_EXTERNAL_MODEL_REFERENCE
[]
::=|

::=WM
[]
::=OM
过程定义,包含模型所有活动和转移信息。
::=
WORKFLOW

[]
[]


[[]
[]
END_WORKFLOW
[]
::=
[CREATED ]
[NAME     <>            ]
[DESCRIPTION<>]
[redefinable header]
[DURATION_UNIT]
[PRIORITY]
[LIMIT]
[VALID_FROM]
[VALID_TO]
[CLASSIFICATION]
[