工作流的概念(1)

来源:互联网 发布:淘宝怎么看付款顺序 编辑:程序博客网 时间:2024/05/16 13:01

1.   什么是工作流    

       工作流的概念起源于生产组织和办公自动化领域,主要是针对日常生活中具有固定程序的活动而提出的一个概念,目的是通过将工作分解成一系列定义良好的任务,按照一定的规则和过程来执行任务,并对其实行监控,从而提高生产效率,降低生产成本,提高企业生产经营管理水平和企业竞争力 。

       按照工作流管理联盟的定义,工作流是一类能够完全或者部分自动执行的经营过程,根据一系列过程规则,文档、信息或任务能够在不同的执行者之间传递、执行。

2.   工作流基本概念

       工作流 (Workflow)  按照 WfMC的定义,工作流是一类能够完全或者部分自动执行的业务过程,根据一系列过程规则,文档、信息或任务能够在不同的执行者之间传递、执行。

       业务流程 (Business Process)  在功能确定的组织结构中,能够实现业务目标和策略的相互连接的过程和活动集。

       过程定义 (Process Definition)  业务过程的形式化描述,用来支持系统建模和运行过程的自动化。过程可分解为一系列的子过程和活动,其中定义包括描述过程起始、终止的活动关系网络,以及一些关于个体行为的信息,具体而言,即构成过程的活动以及各活动的关系、组织成员的角色、应用中的数据结构等。

       过程定义工具 (Process Definition Tools)  过程定义工具被用来创建计算机可处理的业务过程描述。它可以是形式化的过程定义语言或对象关系模型,也可以是简单地规定用户间信息传输的一组路由命令。

       活动 (Activity)  业务过程的一个执行阶段,由执行者完成。执行者可以是人、软件系统或二者的集合。活动是过程执行中可被工作调度的最小工作单元,要求有人或机器参与。

       过程/活动实例  (Process/Activity Instances)  指的是一个工作流过程的具体执行。在过程实例的执行中,工作流引擎将负责解释对应的过程(和它包含的活动)定义,动态生成活动实例,并根据过程定义中的规则控制协调这些活动实例之间的执行顺序,同时完成活动之间的数据传递。

       工作流管理系统  (Workflow Management System, WFMS) 是定义、创建、执行工作流的软件系统。在最高层次上,WFMS应能提供以下三个方面的功能支持:建造功能,对工作流过程及其组成活动进行定义和建模;运行控制功能,在运行环境中管理工作流过程,对工作流过程中的活动进行调度;运行交互功能,指在工作流运行中,WFMS与用户(业务工作的参与者或控制者)及外部应用程序交互的功能。

       工作流引擎  (Workflow Engine)  工作流管理和应用系统的核心软件部分,为过程实例提供运行时环境和服务,可以形象地比作过程执行的发动机。工作流引擎接口向外部提供了支持、控制过程(实例)执行的功能。这些功能包括:解释过程定义;创建和管理过程实例,控制流程的运行状态,如开始、停止、挂起、重启等。

       工作项  (Work Item)  过程实例中要被参与者执行的工作,它与活动定义与活动实例相关。工作项一般需要人工的参与,它的完成将推动过程的进展。

      工作列表  (Work Items List)  与业务过程的某个参与者相关的一系列工作项的集合。工作列表的生成需要工作流引擎和工作流列表处理程序共同参与。

3.   工作流模型

      工作流过程依赖于一个形式化的工作流模型来描述工作流节点之间的控制流和数据流。工作流模型由4部分组成,它们分别是过程模型、组织模型、资源模型以及工作流相关数据。过程模型用来定义工作流的过程逻辑,它包括组成工作流的所有活动以及活动之间的依赖关系。它是整个工作流模型的基础与核心,其它模型均为其提供支持。组织模型用来定义企业人员的组织结构,它包括几种不同形式的组织元素以及每种组织元素内部的递阶层次关系。组织模型的主要任务是为企业人员执行工作流提供柔性的组织定义,为过程模型提供“人”的支持。资源模型用来定义企业资源的组织结构,它包括几种模式的资源容器元素以及容器内部的递阶层次关系,直至最终的原子级资源个体。资源模型的主要任务是为企业人员执行工作流提供“物”的支持。工作流相关数据用来定义工作流执行过程中需要用到的数据,它包括简单的数据类型与复杂的企业对象。它主要用于各种条件的判断,以实现工作流引擎对不同活动的选择性路由。工作流相关数据为工作流的执行提供了“信息”的支持。
    路由关系和原语集:WfMC已经确定了用来描述工作流路由关系的原语集。用这些原语可以描述任何可能发生的工作流。这些原语是Sequential Routing、AND-split、AND-join、Parallel Routing、OR-Split、OR-join和Iteration。


    ①顺序路由:一个任务接着另一个任务被顺序的执行。在图(a)中任务B在任务A已经完成之后和任务C开始之前执行。
    ②与分支:为了表达与分支路由,需要增加一个AND-split逻辑节点。逻辑节点并不代表真正需要执行的活动,它只是为了表示节点之间的逻辑关系而设立的。在图(b)中,当任务A完成后,AND-split为真,任务B和任务C可以并行执行(可以同一时刻执行,也可以先后执行)。
    ③与连接:在图(c)中,AND-Join使得只有在任务A和任务B都完成后,任务C才可以执行。
在一个与分支节点引出的所有分支路径要在一个对应的与连接节点汇合。参考图(d)。
    ④并行路由:图(d),任务的执行逻辑参照与分支和与连接。
    ⑤条件路由(或分支和或连接):在图(e)中,任务A完成后,任务B或者任务C只能有一个被执行;任务D在任务B或任务C完成之后就可以执行。
    ⑥循环路由(Iteration):有时需要执行一个任务多次。在图(f)中任务B被执行一次或多次。

3. 工作流参考模型


    1、过程定义工具:主要功能是为用户提供对业务过程进行分析建模的手段,并生成可被计算机识别和处理的过程定义。
    2、工作流执行服务:它借助一个或多个工作流引擎来激活并解释过程定义,并同外部应用程序进行交互,来完成工作流过程实例的创建、执行和管理,并通过控制条件的计算控制过程在各活动之间的游历(以及数据在活动之间的传递),并生成有关的工作项,通知用户进行处理等,为工作流程的进行提供了一个运行环境。
    工作流执行服务一般有一个工作流引擎来提供,在大型WFMS中,工作流的运行控制可能需要多个工作流引擎共同完成,例如某个跨区域、跨部门的过程可能会包含多个子过程,这些子过程可能是由不同的工作流引擎来提供运行和控制环境,这就需要实现多工作流引擎之间的互访互连。
    3、客户应用程序:与工作流引擎交互,以获得引擎服务和过程控制的功能。典型的客户应用程序是用户任务列表处理程序。
    4、被调应用程序:指工作流执行服务在过程实例的运行过程中调用的、用以对应用数据进行处理的应用程序。在过程定义中包含有这种应用程序的详细信息。被调应用程序可能是应用代理,也可能是本地过程调用、远程调用等。
    5、工作流管理监控工具:其功能是对过程实例的状态进行监控和管理,包括挂起、恢复、取消过程实例,以及用户、角色、资源控制等。
    WfMC为以上功能的实现分别提供了接口规范,从而为工作流产品的技术实现提供了统一的标准,方便不同产品的互访,可以有效提高工作流产品的通用性和灵活性

0 0
原创粉丝点击