工作流参考模型
工作流参考模型由国际"工作流管理联盟WfMC"给出,它定义了工作流管理系统的一些标准规范,工作流管理工具的应用编程接口,使工作流应用间可以更好的集成和交互。
参考模型中提供了五类接口,有关过程模型的定义则构成了接口一的核心内容。接口一早期的标准为WPDL(Workflow Process
Definition Language),后来,这一接口的规范变更为XPDL。XPDL是至今工作流领域最为重要的一个标准,目前大多数工作流引擎是依据该标准设计开发的。
工作流的中的三类数据:
1.工作流控制数据(Workflow Control Data):工作流引擎通过控制数据来辨别每个过程或活动实例的状态。这些数据决定了工作流具体的流程处理逻辑,任务分派和流转逻辑。因此在工作流建模中定义的关于工作流,任务,分支和连接弧,转变规则和条件,权限,角色和参与人等信息都是工作流的控制数据。
2.工作流相关数据(Workflow Relevant Data):这块实际指工作流的实例数据,这是根据实现定义的工作流模型产生出来的实例数据,包括工作流实例,任务实例,活动实例,连接弧实例等。
3.工作流应用数据:这里指业务对象的实例数据,如订单对象,合同对象的实例数据。业务对象的实例数据部分也是工作流的控制数据,需要控制到工作流流程的转换。
工作流的建模
工作流模型描述了一个工作流应用在执行阶段所需要的所有参数信息和控制信息。这些规则包括了过程的开始和完成条件,构成过程的活动以及活动间的转变规则,用户所需要完成的任务,可能调用的应用,工作流机的引用关系,以及所有工作流相关数据的定义。
过程定义中需要引用组织/角色模型中关于组织结构,组织中的角色等信息。这样工作流过程活动中的参与者就不仅仅可以定义具体的用户,还可以和组织实体和角色对象相关联,这种定义将大大增加工作流模型执行任务的灵活性。
对于工作流建模,WfMC开展了两方面的工作
1.定义了一个元模型:用于描述工作流模型内部包含的各个对象,对象间的关系和重要属性。
2.定义了一套可以在工作流管理系统之间,管理系统与建模工具之间交互的应用编程接口API。
工作流定义:包含工作流模型名称,过程启动、中止条件,系统安全、监控和控制信息等基本属性。表明了此过程最终需要实现的目的和目标;
活动(任务):主要有名称,类型,前后条件,约束条件/参数,工作流引擎位置等属性。此实体就是过程中的任务,反映了一个工作过程中需要的功能操作;
转换条件:驱动工作流实例的依据,主要参数有:过程条件,执行条件,通知条件。转换条件对应于一个工作过程中的业务规则和操作顺序;
工作流相关数据:工作流引擎将根据工作流相关数据和转换条件进行推进。工作流相关数据的主要元属有:数据名称,数据类型,数据值,等。其为工作流引擎推进工作流程的依据,
角色:角色是参与某个过程的实体,角色可以是人,某个组织机构,或某个应用程序,其主要属性有:名称,组织实体,角色能力,等。它描述的是一个工作流程中参与操作的一切实体;
工作流相关应用:主要包含以下信息:应用类型,名称,存储位置,运行参数,等;其表明了完成一个工作过程所采用的工具和手段。
工作流授权控制模型
一般采用基于角色的的RBAC 模型,我们称为“Core RBAC”。参看下图在基本的 RBAC模型中,包含五个基本元素:使用者(Users)、角色(Roles)、许可(permissions)、资源客体(objects(OBS))、操作(operations(OPS))。当然,额外的还包含了两个概念:分配(assigment)和会话(session)。
工作流系统应该具备的基本功能
流转的基本功能
串行/并行/回退/分支/聚合/条件路由/抄送路由/自动节点
流转的扩展功能
关系路由/动态路由/子流程/异常终止/定时路由
监控功能
主流程/子流程/时间监控/成本监控/超时统计
权限控制功能
组织模型/角色/参与人/表单权限/表单数据项权限/委派或代理
通用功能
任务列表/扩展接口/脚本支持/表单功能(这个归到快速平台的界面建模中)
常用扩展功能
任务提醒/任务催办/自动处理/超时处理/非工作日设置/日志记录/统计报表
其他说明
1.业务对象根据类别的不同来关联不同的工作流模版,启动不同流程
2.工作流模版定义中的参与人可以是具体用户,也可以是角色,当选择的是角色的时候通过角色-组织-用户组-人员关联来解析出角色对应的具体人员
3.工作流必须支持自定义脚本的扩展,否则很难满足复杂的应用。
4.权限方面采用RBAC时候必须能够控制到业务对象的数据项的粒度。
参考文档
1.工作流功能列表(银狐999)
2.工作流模型分析(银狐999)
3.工作流授权控制模型(银狐999)
4.wmfc_refModel
5.工作流管理技术基础(范玉顺)
|