XPDL学习与分享 一

原创 2004年09月03日 10:06:00

最近从事工作流引擎的设计与开发工作,准备在学习标准入手,从而更深入的了解工作流。俗话说“教学相长”,希望一起讨论,一起成长。如果文中有错误或者版权问题,请指出,谢谢! XPDL是xml工作流定义语言,使wfmc制定的一个国际标准,期望建立一个统一的标准,并且通过此标准,能够让不同的流程引擎能够相互交户。 wfmc工作流定义的元模型如下图: 图中的方框,我们称之为实体(entity),其中Activity这里翻译为活动,Participant翻译为参与者,relevant data翻译为关联数据。

1.1. XPDL实体概述数据模型呈现了工作流定义中的最基本的组成实体,下面逐个对每个实体简单介绍一下:

1.1.1. 工作流定义工作流定义为工作流中其他实体提供了上下文描述,包含自身信息,流程制定人和管理者的信息,或者是流程运行时需要用的数据,比如说初始化参数、流程限制时间、检查点、需要通知的人等。

1.1.2. 工作流活动(Activity)工作流是由一个或多个活动组成的,每个活动都是由一个有逻辑的、自包含的工作组成。活动体现为工作,工作可以是参与者参与的,也可以是计算机的应用程序。其他的可选的信息包含活动是否由流程管理系统自动开始或者结束,活动相对于同一个流程中其他活动的对资源的优先级,活动也可以指定流程中特殊的关联数据,也可以指定为一个子流程。一个活动可以包含子流程,子流程可以是同一个流程引擎解析,也可以是远程调用其他流程引擎解析。子流程定义清楚了该子流程包含的活动、trasition、参与者等信息。子流程成中的关联数据可以作为子流程输入和输出。活动可以包含一个活动块,这个活动块执行一组活动,活动和活动之间有Transition,这些活动与transition共用相同的命名空间。

1.1.3. Transition信息活动与活动之间通过Transition连接的。一个Transition有三部分组成,起始活动(From-Activity)、终止活动(To-Activity)以及转换条件(Condition),连接活动与活动之间的Transition可以通过条件判断是否允许通过。Transition能连接串行的或者并行的活动。Transition的连接类型有split和join两种。Split是指由活动分出去的类型,Join是连接到活动的类型。

1.1.4. 工作流参与者定义参与者定义了各个关卡的执行者,参与者可以为预先定义好的人、也可以为计算机的应用程序或者是计算机设备。参与者为人时,不一定是一个人,也可以为一组人。

1.1.5. 资源库资源库使得参与者能够为人、设备或者是应用程序,经典的资源库就是组织模型。

1.1.6. 工作流应用程序定义工作流应用程序定义的是一个工作流程、或者活动能调用的应用程序或者是接口。这些应用程序可能是设备、企业中其他应用程序或者是接口。工作流应用程序定义指的是连接工作流引擎的应用程序或者接口,其中包含需要传递的参数。

1.1.7. 工作流关联数据流程执行过程中流程实例产生或者用到的数据,这些数据可能作用于运行过程中的活动,也可能是用于显示的数据,也可能是用于决定活动与活动之间Transition中条件的数据,也可能是用户获取参与人的数据。XPDL定义了基础或者复杂类型的关联数据,活动、应用程序、Transition中的条件会引用这些数据。

1.1.8. 系统与环境数据系统与环境数据是通过工作流管理系统或者本地系统维护的,这些数据可以被活动访问到,也会用户Transition中条件的判断。

1.1.9. 数据类型和表达式工作流模型定义了一组数据类型,比如字符型、引用型、整型、浮点型、日期型等,这些类型将会用于定义关联数据、环境数据以及参与者数据。通过这些类型的数据,Transition中的条件能执行表达式。数据类型能通过xml或者扩展资源扩展。

1.1.10. 流程与包上图所示,流程由各种各样的实体组成,通常情况下,参与者、关联数据经常会被多个流程引用到。数据模型呈现了关联工作流管理系统的,控制组成流程的各种类型实体的流程定义的库的用处。包就是一个容器,包含了一些公共属性,比如作者、版本、状态等。包中的每个流程定义都可以继承这些公共属性,如果他们自己定义了,则不再继承。包中会定义一些全局的实体,以便其他流程可以引用,这些实体一般为: n 工作流参与者 n 工作流应用程序定义 n 工作流关联数据定义 包允许引用包内部定义的实体,也可以引用其他包定义的东西,比如: n 其他包中的流程id作为子流程 n 工作流参与者定义

【学习资源分享】在线学习平台推荐

寒假在家,为大家推荐一些好的学习资源,无聊时可以充充电^_^ 本文主要介绍国内外主流MOOC平台,英语学习网站,出国留学站点等MOOC作为近几年热度不减的学习新方式,MOOC真的是极大的改变了我们的...
  • victordiao
  • victordiao
  • 2017年02月06日 14:12
  • 946

react学习心得(1)

ReactDOM.render()  实例化根组件,启动框架,注入标记到原始的DOM元素中 getInitialState() 在生命周期里只执行一次,并设置组件的初始状态 componentDi...
  • qq_26943485
  • qq_26943485
  • 2017年02月07日 14:25
  • 262

BAT资深算法工程师《深度学习》读书分享:概率和信息论

点击标题下「异步图书」可快速关注 《深度学习》这本书是机器学习领域的重磅书籍,三位作者分别是机器学习界名人、GAN的提出者、谷歌大脑研究科学家 Ian Goodfellow,神经网络领域创始三位创始...
  • epubit17
  • epubit17
  • 2017年11月30日 09:34
  • 1246

java学习资源分享

转载文章  原文出自:http://blog.csdn.net/zhangdaiscott/article/details/18220411  1、javascript视频教程 链接:...
  • qq1028951741
  • qq1028951741
  • 2016年07月25日 10:34
  • 1241

入职程序员,最好的资源分享给大家

自从准备打算入职程序员以后,近半年花了很多日日夜夜浏览各大博客,借阅各种专业语言书籍。 因为大学学习的是软件工程专业,刚好专业对口,却学的一点都不扎实,只能在后来一阵恶补,期望在大四的一年中找到一份满...
  • An1090239782
  • An1090239782
  • 2017年08月03日 10:04
  • 288

分享维基百科里的深度学习简介

简介[编辑] 深度学习框架,尤其是基于人工神经网络的框架可以追溯到1980年福岛邦彦提出的新认知机[2],而人工神经网络的历史更为久远。1989年,燕乐存(Yann LeCun)等人开始将1...
  • zjxiaolu
  • zjxiaolu
  • 2015年04月20日 20:16
  • 2092

百度网盘2T学习资源分享干货满满

所有的资源都是本人亲自打包,整理发送的,资源都是打包的,包括很多内容,来源包括通过网上支付获得,或者是好友分享,特在此分享给那些想奋斗或是正在奋斗中的人,希望能帮到你们http://pan.baidu...
  • chandddlleerr
  • chandddlleerr
  • 2017年06月08日 18:19
  • 1490

MPI学习笔记及心得(持续更新)

MPI
  • Liliqianbaidu
  • Liliqianbaidu
  • 2017年04月10日 21:21
  • 717

近200篇机器学习&深度学习资料分享(含各种文档,视频,源码等)

转自:http://www.tuicool.com/articles/jUz2Y3b 编者按:本文收集了百来篇关于机器学习和深度学习的资料,含各种文档,视频,源码等。而且原文也会不定期的更新...
  • WitsMakeMen
  • WitsMakeMen
  • 2015年11月11日 15:33
  • 1158

前端入门与深入学习必要了解的网站分享

先介绍我目前的情况:本来是想做java后端的,公司前端人手不够就无啦啦做了前端工程师 但是因为在一个有活力的团队工作,接触的新东西比较多,加上老王和菜哥丁哥杜哥几个大佬的背景和丰富的开发经验,很多新技...
  • u011456337
  • u011456337
  • 2016年02月03日 22:56
  • 779
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:XPDL学习与分享 一
举报原因:
原因补充:

(最多只允许输入30个字)