在FlowMark中,一个完整的经营过程(工作流过程)由一个无自环的有向图构成。有向图中的节点元素表示可执行的步骤或任务,节点间的连接弧代表了过程中的控制流与数据流。组成模型的元素包括过程(Process)、活动(Activity)、模块(Block)、控制连接弧(Control Connector)、数据连接弧(Data Connector)和条件(Conditions)。

1)  过程:由一系列具体的步骤组成,为完成某一预定目标而定义。在这里,一个过程就是用一个有向图来表示的一个工作流,比如,向银行申请贷款就是一个过程。

2)  活动:过程中的每一个步骤是一个活动,在图中由一个节点元素来表示。它可以是程序活动(Program Activity),也可以是过程活动(Process Activity)。程序活动是指为活动绑定了一段程序代码,当活动开始时,相应的程序就执行:过程活动则是在活动的基础上嵌入了一个过程,当活动开始时,也就是开始了相应的过程,过程活动主要用于予过程的嵌套描述与模型的层次化分解。图6.1给出了活动的内部结构,主要包括输入数据箱、输出数据箱、开始与结束条件、状态以及绑定的相应程序或过程,它们的具体特点以及相应的应用场合将在下文中结合模型的其它元素进行描述。

3)  模块:有些类似于“过程”,但二者的区别在于,一个过程有一个唯一固定的标识,它可以在不同的工作流过程中使用:而模块则没有这一项,它只能被一个工作流过程所使用。模块也具有输入数据箱与输出数据箱。如果用编程语言来作比喻,模块就好比是介于"Begin"与"End"之间的内部代码,而过程则是外部的连接库代码。

4)  控制连接弧:用来定义两个活动之间的执行顺序,在有向图中以节点问的连接弧表示。当连接弧的起始节点执行完毕,工作流机将会根据控制连接弧的定义进行过程导航,使连接弧的终止节点能够被执行。控制连接弧与它们所连接的活动节点构成了整个工作流过程的控制逻辑。

5)  数据连接弧:定义两个活动问的信息流,在有向图中也是以节点间的连接弧来表示,由前一个活动的输出数据箱指向后一个活动的输入数据箱,意味着前一个活动的输出信息将被后一个活动所使用。数据箱中包含了工作流相关数据以及与该活动执行有关的具体应用数据,如图6.1所示。

6)  条件:用于定义过程执行中的约束。主要分为三种基本类型,属于活动外部的有一种,即转移条件:属于活动内部的有两种,即开始条件与结束条件。(1)  转移条件是定义在控制连接弧上的条件,根据对转移条件的判断结果"True"与"False”来决定是否执行下一个活动。 (2)  开始条件定义了活动在什么情况下才能开始执行,如对于用"AND"连接符连接几个前活动的开始条件是要求所有指向该活动的控制连接弧必须全部发生转移后,该活动才能够开始:对于用"0R"连接符连接几个前活动的开始条件是仅要求指向该活动的控制连接弧中有一条发生转移,该活动就可以开始。开始条件的设置提醒我们区分这样两个概念:活动被使能与活动被执行。当满足转移条件,控制连接弧发生转移时,我们称控制连接弧所指向的活动被使能,即该活动有可能被执行:但活动是否真的开始执行,则需要通过活动内部开始条件的判断来决定,只有开始条件得到满足,活动才真正开始执行。(3)  结束条件定义了活动在什么情况下才能够结束,当活动执行完毕后,活动的结束条件就被检验,如果为"True",活动则结束:如果为"False",则活动被重新执行,直到满足结束条件为止。通过结束条件的设置,可以定义需要多次循环执行的活动。

在运行时阶段,与活动相联系的一个重要属性是状态,因为状态是监控过程执行情况的基础。当活动可以开始执行时,状态为"就绪(Readv)",而且只有处于"就绪"状态的活动才能被执行,执行方式包括自动与人工两种类型:当活动开始执行后,状态由“就绪”转变为"运行(Running)":当活动执行完毕而且满足了活动的终止条件,状态则由"运行"转变为"终止(Terminated)"。当然,还有其他的状态与活动相联,比如异常挂起等。在正常的执行情况下,即不发生异常与例外的情况下,过程的推进主要是在以上提到的三个状态之间转换。

当一个过程开始以后,没有输入控制连接弧的活动(它们是初始活动)的状态将被首先置为“就绪”,因为它们将最先被执行,而且它们的执行表示了一个业务过程或者一个工作流实例执行过程的开始。任何一个活动执行完毕后,需要判断其终止条件是否满足,若条件不满足,则该活动由“运行”状态被重新置为“就绪”状态,以便继续执行:人工终止条件满足,则活动被置为“终止”状态,继而工作流机对由该活动发出的所有控制连接弧上的转移条件进行判断,以决定控制连接弧是否能够发生转移。对于转移条件判定为"False"的控制连接弧,它所指向的后继活动的状态被置为“终止”(这些活动并未经历“就绪”与“运行”状态,而是直接被标定为“终止”,原因是在这样的条件下它们不可能被执行),然后由这些被置为“终止”的活动所发出的控制连接弧也被置为"False",接下去重复同样的操作,把相应的后继活动置为“终止”,把“终止”的活动所发出的控制连接弧置为"False",这样的一个递归过程被称为“无效路径削减”。对于能够发生转移的控制连接弧,则继续判断该弧所指向的活动的开始条件是否满足,若满足,活动的状态则被置为“就绪”,以等待执行:若不满足开始条件,且活动不可能被执行,则该活动的状态被置为“终止”,然后进行前面提到的“无效路径削减”过程。当一个过程结束时,它其中的所有活动都应该处于“终止”状态。不难想到,其中的一些活动是真正被执行过而终止的,而有一些则是在“无效路径削减”的过程中被置为“终止”的,实际上这一部分活动并未真正运行。比如在上图给出的示例中,如果1—6是过程的执行顺序,那么“提出修改建议”与“发出回信”就是两个被“无效路径削减”过程所削减的活动。

上述的推进过程可以表示为图6.3所示的状态转移图。

FlowMark的工作流模型是一种典型的基于活动的IPO(输入一处理一输出)模型,以活动作为构成过程的基本单元,以连接弧体现过程逻辑,活动的输入数据箱与输出数据箱成为活动输入输出的接口,再辅以条件的设置,就能够比较简便、灵活地实现企业经营过程的建模。

除了IBM的FlowrMai4k所提出的这种基于活动网络的工作流模型以外,还有其他的工作流产品(如In(:oncert)或原型系统(如METEOR2)也推出了类似的模型。这些模型在宏观含义上是一致的,都明确地反映出基于活动网络的过程模型所应该具有的特点,而仅仅在细微之处有所不同,比如模型元素的类型、模型元素的语义等等。总的来说,这一类模型所共有的特点是简单、直观、便于理解,适合于流程较为固定、异常情况较少的生产型工作流的建立,有利于企业规范自身的内部流程:但这类模型往往缺乏柔性,对紧急情况的应变能力不足,显得比较死板。

内容摘自范玉顺的《工作流管理技术极其应用》。

基于活动网络的工作流过程模型FlowMark相关推荐

  1. 基于JAVA网络学习平台计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVA网络学习平台计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA网络学习平台计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 开发语言:Ja ...

  2. 【自然语言处理(NLP)】基于FNN网络的电影评论情感分析

    [自然语言处理(NLP)]基于FNN网络的电影评论情感分析 作者简介:在校大学生一枚,华为云享专家,阿里云专家博主,腾云先锋(TDP)成员,云曦智划项目总负责人,全国高等学校计算机教学与产业实践资源建 ...

  3. 图算法入门4:活动网络-AOE网络和关键路径(critical path)

    AOE网络的基本概念 上一节介绍了活动网络AOV网络的相关内容,这一节将进一步介绍另一种活动网络AOE网络.如果对于有向无环图(DAG),用有向边表示一个工程的各项活动(activity),边上的权值 ...

  4. 与计算机互动大学英语,【2017年整理】基于与网络和计算机的大学英语教学模式.ppt...

    [2017年整理]基于与网络和计算机的大学英语教学模式 基于网络和计算机的大学英语教学模式 贾国栋 flgdjia@ 华南理工大学 主要内容 <大学英语课程教学要求>(试行)----教学模 ...

  5. 洪智勇∣基于复杂网络的公共汽车线网拓扑模型

    " 写在前面: 已有基于复杂网络的公共汽车交通模型研究缺乏对网络服务特征的考虑.基于公共汽车线网的P-Space模型,在考虑公共汽车站服务范围的影响基础上构建SP-Space模型,以实现车站 ...

  6. 基于JAVA网络城市交通应急管理系统计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVA网络城市交通应急管理系统计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA网络城市交通应急管理系统计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B ...

  7. 基于J2EE的柔性工作流引擎的设计与实现

    摘要 工作流的柔性问题日益成为研究的热点,本文在分析工作流和分布式计算技术J2EE的基础上,给出一个基于J2EE的柔性工作流引擎的设计方案及其关键部分的实现技术. 关键词 工作流引擎,柔性,J2EE ...

  8. 基于SNMP网络管理系统的实现 1

    个推作为国内最专业的第三方消息推送技术解决方案的服务商接入SDK用户数高达90亿,日活跃用户达6.5亿.日分发消息23亿.在实际的运维环境中,需要时刻对网络设备进行监控和管理,并包含了各种网络设备,包 ...

  9. 基于多路网络中的重叠影响来识别多个有影响的用户

    文章目录 摘要 1 引言 2 相关工作 2.1 多路复用网络的建模 2.2 针对多路复用网络的中心性度量 2.3 重叠影响 3 基于OI的方法 3.1 有效扩展最短路径 3.2 基于重叠影响的方法 4 ...

最新文章

  1. 10道海量数据处理的面试题
  2. BZOJ 1444 [JSOI2009]有趣的游戏 (AC自动机、概率与期望DP、矩阵乘法)
  3. nametuple用法(转)
  4. 祝我们的所有女孩子,女生节快乐~
  5. ztree 获取当前选中节点的子节点集合
  6. [原创]前端工作了一段时间经验总结,献给做前端的同学
  7. springboot-21-maven多环境打包
  8. mysql安全删除大表
  9. 如何在熊猫数据框的列中将所有NaN值替换为零
  10. Spring连接数据库的几种常用的方式
  11. C语言题目——三子棋游戏
  12. Spring、SpringMVC、Shiro面试题
  13. 2020滑铁卢大学计算机科学学费,滑铁卢大学专业
  14. Troubleshooting: WAITED TOO LONG FOR A ROW CACHE ENQUEUE LOCK!
  15. ImportError: sys.meta_path is None, Python is likely shutting down 解决方案
  16. angular.js使用路由时,子控制器监听不到父级$boardcast的事件
  17. 统一社会信用代码 php验证
  18. C语言之大端模式与小端模式
  19. 作为成员的结构体(作为结构体的成员的结构体)
  20. 十六进制转换浮点型时大小端问题

热门文章

  1. leetcode买卖股票最佳时机相关问题分析
  2. u点家庭服务器的网络信号接口,广电u点家庭服务器网关
  3. 饮冰l于 2021-02-05 15:16:54 发布 1288收藏 11分类专栏: 图 文章标签: 算法 数据挖掘 机器学习 深度学习版权图 专栏收录该内容66 篇文章 23 订阅订
  4. 《Robust High-Resolution Video Matting with Temporal Guidance》论文笔记
  5. Redis主从理论概述
  6. java 加载shellcode_通用Shellcode加载器
  7. 在td标签中文字超出显示省略号,鼠标悬停显示所有文本
  8. 谷歌账号注册流程全攻略
  9. 【报错解决】To search for alternate channels that may provide the conda package you‘relooking for, naviga
  10. 【面试被虐】说说游戏中的敏感词过滤是如何实现的?