工作流理论(一)-----工作流理论和Petri网

工作流理论和Petri网


工作流                 

    由一个与 特定过程相关的 案例资源发组成。

    案例

        可以把工作中处理的事称为案例,例如保险索赔、税收申报等。它是工作流管理系统控制的目标对象。 每个案例都有唯一的标识。生命周期也是有限的。例如保险索赔案例,提出索赔到索赔结束,从工作流系统中消失。案例出现和消失之间,总是处于某种特定的状态,该状态由三个元素组成:
           1.案例相关的属性,用来管理案例。比如根据各个医院的岗位设置情况,决定是发布考试还是发回重设。这些属性随着案例的进展而变化的。
            2.已经满足的条件,用来说明案例的进展。可以把条件看成任务被执行的前提。
            3.案例的内容,比如文档,文件等。不属于工作流管理系统的范畴。

    任务

        任务是一个工作的逻辑单元,它是 不可分割的,必须完整的执行。为了避免把任务本身和作为某案例的一部分的任务执行相混淆,使用术语 工作项和活动
            1.工作项:是案例和将要执行的任务的结合体。可以把它看成是要被执行的实际   工作块。
            2.活动:工作项的实际执行。当工作从某个工作项开始时,它就成为一个活动。

    过程

        案例的执行方式由过程来描述,过程描述了哪些任务需要被执行,以什么次序执行。同时它也定义了案例的生命周期。
    路由

        过程的执行称为案例的“路由”。分为顺序路由、并行路由、选择路由、循环路由。

    启动

        只有工作项在初始化之后才能开始执行,称为一个 发。触发的形式包括:资源驱动、外部事件、时间信号。


Petri网

    Petri网是一种图形化描述过程的强有力工具,它可以非常直观的描述一个工作流过程。

库所、变迁、标记

        Petri网由 库所和变迁组成,用圆圈表示库所,矩形表示变迁。库所和变迁由有向弧相连接。从变迁到库所,从库所到变迁,相同两个节点之间不允许相连接。 库所可以容纳标记,标记用黑点表示。

        变迁是Petri网中的主动元素。通过实施变迁,过程从一个状态转变到另一个状态。通常表示事件、操作、转换或传输。
        库所是Petri网中的被动元素,它们不能改变网的状态,库所通常表示媒介、地理位置、阶段、状态、条件等

        标记通常表示对象,这些对象可能是具体的事物,也可能是抽象的信息。







    变迁实施

        变迁的实施就是从 每个输入库所中获得标记( 每个输入库所中都要有标记,这也是条件),然后放到 每个输出库所中。例如上图,从输入库所claim中获取标记,然后放到输出库所under consideration中。换句话说,实施时,变迁消耗掉来自输入库所的标记,并为每个输出库所产生标记。

    可达图
        可达图是一种有向图,由节点和箭头构成,每个节点表示一种可达状态,每个箭头表示一种可能改变的状态。例如,对于上图的可达图如下。



     
        可达图非常重要,它能够表达被建模过程的行为, 验证工作流网的合理性。多进行绘制可达图的训练,可以加深对Petri网工具的理解。

    高级Petri网

        颜色扩展:传统Petri网不能区分两个标记,颜色扩展的Petri网可以用来表示一些信息,比如前置条件。
        时间扩展:为标记添加时间戳。
        层次扩展:一个复杂的结构,常常会使Petri变为一个“大”网,层次扩展确保我们能够在Petri网模型中添加结构。


工作流概念到Petri网的映射

    Petri用来定义一个过程,该网有一个“入口”(没有输入狐的库所)和一个“出口”(没有输出弧的库所)。 用库所表示条件,变迁表示任务。

    对于不同的案例对应的标记,我们可以使用两种方法将其转化到Petri网中。一是为每个案例创建一个单独的Petri副本,每个案例都有自己的过程;二是利用颜色扩展。

路由

        顺序路由:早Petri网中,通过在两个任务间添加一个库所进行链接的方式来建模。





        并行路由:使用AND-split任务,添加的这个任务使得多个任务能被同时处理。只有任务都完成,变迁才能实施,就是AND-join任务。在案例被手工执行的系统中,由于一些物理上的原因,一般只能采取顺序路由,工作流系统的出现,大大消除了这种限制。 允许并行对工作流成功意义重大




        选择路由:使用OR-split。OR-split的建模方式有一下两种









这两种方式的OR-join是没有什么差别的,但是对于OR-split来说, 前者表示c1中有一个标记就会立刻做出选择,后者的选择会退出,只有t1或者t2必须被执行的时候,才做出实际的选择

循环路由:。。。。。。。。。。


    启动

        启动,一定程度上就是“触发”这个概念,它由环境而非工作流系统负责。有三种类型的触发:(1)资源主导(雇员获取工作项);(2)外部事件(例如一个EDI消息的到来);(3)时间信号(例如在六点钟生成一个订单列表)。被资源触发的任务用一个向下的宽箭头表示。外部事件触发的任务用一个信封信号表示。时间触发的任务用一个时钟信号符号表示。







你可能感兴趣的:(工作,活动)