UML软件工程组织

工作流研究

1、什么是工作流技术?

工作流(Workflow)就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或者任务。 工作流管理系统(Workflow Management System, WfMS)的主要功能是通过计算机技术的支持去定义、执行和管理工作流,协调工作流执行过程中工作之间以及群体成员之间的信息交互。工作流需要依靠工作流管理系统来实现。

工作流属于计算机支持的协同工作(Computer Supported Cooperative Work,CSCW)的一部分。后者是普遍地研究一个群体如何在计算机的帮助下实现协同工作的。

2、工作流的功能与好处

工作流的主要功能:

工作流管理系统(WorkflowManagementSystem,WFMS)是定义、创建、执行工作流的系统。在最高层上,WFMS应能提供以下三个方面的功能支持:

  • 建造功能:对工作流过程及其组成活动定义和建模;
  • 运行控制功能:在运行环境中管理工作流过程,对工作流过程中的活动进行调度;
  • 运行交互功能:指在工作流运行中,WFMS与用户(业务工作的参与者或控制者)及外部应用程序工具交互的功能。

工作流管理系统带来的好处:

由于信息技术的发展和日趋激烈的商业竞争,人们不再满足于独立、零散的办公自动化和计算机应用,而是需要综合的、集成化的解决方案。作为一种对常规性事务进行管理、集成的技术,WFMS的出现是必然的。它可以带来以下收益:

  • 改进和优化业务流程,提高业务工作效率;
  • 实现更好的业务过程控制,提高顾客服务质量;
  • 提高业务流程的柔性等。

3、工作流系统的主要组成部分

1.过程定义工具

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

2.过程定义

过程定义(数据)包含了所有使业务过程能被工作流执行子系统执行的必要信息。这些信息包括起始和终止条件、各个组成活动、活动调度规则、各业务的参与者需要做的工作、相关应用程序和数据的调用信息等。

3.工作流执行子系统(WES)和工作流引擎

工作流执行子系统也称为(业务)过程执行环境,包括一个或多个工作流引擎。工作流引擎是WFMS的核心软件组元。它的功能包括:解释过程定义;创建过程实例并控制其执行;调度各项活动;为用户工作表添加工作项;通过应用程序接口(API)调用应用程序;提供监督和管理功能等。工作流执行子系统可以包括多个工作流引擎,不同工作流引擎通过协作共同执行工作流。

4.工作流控制数据

指被WES和工作流引擎管理的系统数据,例如工作流实例的状态信息、每一活动的状态信息等。

5.工作流相关数据

指与业务过程流相关的数据。WFMS使用这些数据确定工作流实例的状态转移,例如过程调度决策数据、活动间的传输数据等。工作流相关数据既可以被工作流引擎使用,也可以被应用程序调用。

6.工作表和工作表处理程序

工作表列出了与业务过程的参与者相关的一系列工作项,工作表处理程序则对用户和工作表之间的交互进行管理。工作表处理程序完成的功能有:支持用户在工作表中选取一个工作项,重新分配工作项,通报工作项的完成,在工作项被处理的过程中调用相应的应用程序等。

7.应用程序和应用数据

应用程序可以直接被WFMS调用或通过应用程序代理被间接调用。通过应用程序调用,WFMS部分或完全自动地完成一个活动,或者对业务参与者的工作提供支持。与工作流控制数据和相关数据不同,应用数据对应用程序来讲是局部数据,对WFMS的其他部件来说是不可见的。

4、工作流管理系统的标准和产品

近年来,工作流技术得到长足的发展。1993年成立了工作流管理联盟(Workflow Management Coalition,WFMC)。此后,该组织颁布了一系列工作流产品标准,包括工作流参考模型、工作流术语表、工作流管理系统各部分间接口规格、工作流产品的互操作性标准等。这些举措加速了工作流技术的商品化。

 现在,许多公司都基于这些标准推出了自己的工作流产品。工作流产品主要分为两大类:

 一类是基础的工作流系统,提供引擎、设计器、相关接口等。应用系统的开发商可以基于此类系统开发具有工作流管理功能的应用软件。典型产品如ActionTechnologiesInc.的ActionWorkflow、IBM的FlowMark等。

 另一类是应用了工作流技术,包括内置较完整的工作流功能,但面向应用的应用级软件系统,这种系统是直接面向最终用户的流程化应用。同时,系统中还往往针对应用需要,集成了其他功能。典型产品如神州数码工作流软件EasyFlow,就是以工作流技术为核心的全面的企业办公自动化(OA)产品。

5、工作流管理系统的应用

和其他的软件产品一样,用户可以引进成熟的工作流和群件产品,也可以自行开发适合自己业务的工作流系统,特别是基于Intranet的工作流应用。与Intranet技术相结合,工作流系统更具开放性,有更多的工具可供选用,且Browser/Server风格的界面简单易用,这也是当前工作流产品的发展方向。

另外值得注意的是,WFMS的引入是与管理思想和管理业务的转变密切相关的。一般来说,我们应把WFMS的引进视为改进或重组业务流程的机遇。WFMS可以和企业再造或规范化管理相结合。企业再造追求的是对企业的经营管理模式和生产作业程序进行彻底的革命性变革。规范化管理则是在管理经验的基础上对业务过程进行科学化、规范化研究,以建立一套完整的管理工作规范体系为目标。这种规范化一般会促进系统组织结构和运行的改善。

目前在国外,企业再造和工作流系统的关系较为人们所关注,然而,由于国情不同,我国多数企事业单位面临的主要管理问题是随意性大、运行不规范。除了少数企业外,大部分单位不需要、也不可能进行革命性的重组。因此,相对于企业再造理论,规范化管理在我国更现实、更可行,更适于和WFMS的引进相结合。

6、工作流引擎的五大接口

工作流参考模型确定了工作流管理系统的基本架构。该架构是开发工作流软件时应当采纳的系统模型,当然,一个工作流管理系统也可以不遵循这个模型标准,或只实现这个模型的一部分,但事实证明,这个模型结构是目前最为合理的。
系统的核心部分是工作流引擎,引擎是驱动流程流动的主要部件,它负责解释工作流流程定义,创建并初始化流程实例,控制流程流动的路径,记录流程运行状态,挂起或唤醒流程,终止正在运行的流程,与其他引擎之间通讯等等工作。WfMC没有针对引擎的实现提供具体的标准,因为对引擎做过多的约束并没有多大的现实意义。

一个工作流管理系统可以包含一个或多个引擎,并通过API向外部提供五个方面的功能服务,这些功能分别为:

    · 接口1-流程定义的导入导出
    · 接口2-同客户端应用程序和工作列表处理程序之间的交互
    · 接口3-软件工具和应用程序的调用
    · 接口4-不同工作流管理系统之间的协同工作
    · 接口5-管理和监视功能

    接口1:

    许多不同厂商提供的工具可以进行工作流流程的分析、建模、描述和归档等工作。这些工具需要识别公共的流程交换格式,以支持在这些不同的产品之间传送工作流程流程定义。接口1便定义了这样的交换格式。此外,接口1还定义了设计环境与运行环境之间交换的规范,以使不同的建模工具产生的流程定义可以输入到不同的工作流产品的运行环境中。
    为了提供一个访问和描述工作流定义的公共方法,需要引入一个工作流元数据模型(meta-data Model),这个模型确定了流程定义中用到的一般的实体,这些实体都有不同的属性,不同厂商开发的工具可以根据公共的交换形式向工作流运行环境传送这些模型,传送可以通过API实现,也可以通过批量(Batch)传送实现。
    元模型
    元模型(如上图所示)提供了流程定义交换中用到的基本的实体及其属性,这些都是工作流流程的组成部分,这些实体包括:

    · 工作流流程定义
    · 工作流流程活动
    · 过渡信息(Transition Information)
    · 工作流参与者
    · 组织模型
    · 工作流应用程序
    · 工作流相关类型
    · 工作流相关数据
    · 系统和环境数据
    · 数据类型和表达式

    流程定义的交换 在不同的系统之间传递流程定义数据可能需要不同的机制,但在所有的情况下,流程定义数据的表达必须是一致的,这些表达包括一些公共的对象、关系及其属性。

    接口2与接口3:

    工作流管理系统必须提供同用户之间交互的通道,以便用户参与到系统的运行中。接口2主要完成这方面的功能。
    WfMC在关于接口2 的规范中定义了工作流管理系统必须提供的类型、数据结构、API和错误代码,并以C语言头文件的形式提供。接口2所提供的功能大致可以分为一下五个方面:

    1、 会话的建立和与撤销;
    2、 获取工作流流程定义及状态;
    3、 工作流流程实例的操作,如创建、挂起、终止流程,获取和设置流程属性等;
    4、 工作流活动实例的操作,如获取和设置活动的属性,改变活动的状态等;
    5、 工作列表(worklist)及工作项(workitem)的操作,如获取工作列表,处理工作项等。

    通过这些功能,用户可以完成与工作流管理系统之间交互的所有任务:登录系统、打开自己的工作列表、处理自己的工作任务、将完成的任务提交给系统、将自己的任务转交给其他用户等等。
    具体的函数声明不再详述,可以到WfMC的网站(http://www.wfmc.org)去下载有关规范。
    工作流系统在运行过程中有时需要调用外部应用程序,以完成系统不能完成的工作(比如,发送Email或传真,扫描文件等),或者与其他系统集成到一起。此时可以通过接口3来完成。
    接口3的功能同接口2的功能大部分是相同的,因此,这两个接口有融合的趋势。接口3主要规定了调用外部应用程序的函数规范,以及外部应用程序返回数据的格式。

    接口4:

    在企业级的工作流系统中,流程往往需要跨越多个服务器或系统,比如应用于跨国公司或大型集团公司的工作流系统经常会有这种的需求,此时就需要服务器或系统之间进行通讯,交换流程控制信息和流程定义等数据,以实现流程跨地域运行。WfMC在规范中以C函数的形式提供了这些控制的定义,其中包括以下几个方面的功能:

    1、 创建流程实例;
    2、 获取流程实例状态;
    3、 获取和设置流程实例属性;
    4、 启动或终止流程实例;
    5、 改变流程实例的状态;
    6、 改变流程实例的属性;
    7、 更新流程实例。

    服务器或系统之间信息交换的格式有多种,例如:文件、数据库表、E-mail或直接通过网络传送的数据流等等。

    接口5:

    此接口提供给用户管理和监控系统的运行状态、查看系统运行的历史记录的功能。WfMC在此接口的规范中定义了各种审计信息的数据格式,这些格式包括:

    1. 流程实例(Process Instance)审计信息:包括创建、启动流程实例和子流程实例的审计数据;流程实例状态变化的审计数据;流程实例属性变化的审计数据;
    2. 活动实例(Activity Instance)审计信息:包括活动实例状态变化的审计数据;活动实例属性变化的审计数据;
    3. 工作项(Workitem)审计信息:包括工作项状态变化的审计数据;工作项分配合重新分配的审计数据;工作项属性变化的审计数据;
    4. 远程操作审计信息:包括开始和停止会话(Session)的审计数据;远程创建流程实例和远程改变流程实例状态的审计数据;远程获取和设置流程实例属性的审计数据;会话管理的审计数据;
    5. 流程定义审计信息;
    6. 扩展的审计信息及专用的审计信息。

    这些审计数据在系统运行时刻由系统自动记录在数据库或文件中,可通过系统提供的API进行统计和查询,或者通过系统工具导出到系统外部。

    另外,此接口还要提供系统管理与流程控制的功能,如:系统流程数据的备份和恢复,用户管理,流程管理等等。

通过这五个接口,工作流管理系统可以同外部的软件工具进行交互,这些工具可以由同一厂商提供,也可以由不同的厂商提供,但前提是这些工具都必须遵循WfMC的规范。用户也可以有充分的选择空间来决定哪一厂商的产品,或者自己开发属于哪一个接口的工具。
这五个接口一般通过API的形式提供给用户或软件开发商,这些API称为WAPI(Workflow API),也有厂商将API封装成组件形式提供,以简化开发难度、降低成本并提高效率。

   可以用下面的图来表示这五个接口的作用:

本文转载自:www.http://www.dltech.com.cn/product/jujiao.htm 原文由孙建滨编译 

 

版权所有:UML软件工程组织