办公自动化中工作流管理系统模型沙海燕崔浩(沈阳东大阿尔派软件股份有限公司110006)摘要:工作流是办公自动化中经常见到的一个概念。现在在许多业务系统都用到了工作流系统。本文在此对工作流的定义、工作流系统的组成、如何设计和实施一个先进可靠的工作流系统做详细的介绍,同时还结合我们的工作流系统,提供了一个设计和实施工作流系统的一个参考模型。关键字:工作流办公自动化组件群件近几年我国推行的无纸办公和激烈的市场竞争,迫切的要求所有企、事业单位采用高效的办公自动化系统和使用更加有效的方法处理他们的业务过程。因此工作流管理(WorkflowManagement)是近年来在计算机应用领域中发展最为迅速的几项新技术之一,它的主要特征是实现人与计算机交互事件结合过程中的自动化。工作流主要涉及的内容是工作任务的整体处理过程、工作组成员间依据一组已定义的规则及已制定的共同目标所交换的文本文件、各种媒体信息或与任务相关的信息。工作流管理系统是应用于分布式环境之中的、实现工作任务进程间协调及协作式处理的软件系统。一、工作流管理系统概述1、工作流的概念关于工作流的概念并不是在近几年才出现,在七十年代后期,办公自动化的研究通常被认为是工作流研究的开始。但有关工作流的概念至今也没有一个统一的结论。StefJoosten提出的工作流系统的概念是其中较贴切的一种“工作流系统指在整个工作过程中使用信息技术来完成协调,通讯和控制。它不单单指过程中的人或机器,而是指两者的结合。工作流的概念涉及许多领域,但其中最主要的是信息系统(例如,数据库系统,数据通讯,软件过程建模,软件工程等)和组织科学(例如,后勤学,组织理论,决策理论,管理,组织科学等)。”工作流管理系统还有几个重要概念,其中:过程:又称为业务处理过程。是具有某个业务目标的事件的组合。事件:事件是构成工作流的基本元素,每个事件可被指定事件的执行者、事件完成的功能及与事件相关的各类信息。条件:是事件发生的前提。任何事件当且仅当其激活条件都满足时才可被执行。自动化:自动化一个企业服务处理过程意味着此过程中的各个事件被有效地管理,但并不意味着所有事件的实施全部由计算机来支持。自动化的目的是事件自动激活和事件间的自动连接。协调:协调主要处理事件间所产生的相互作用关系。监控:监控主要监察工作流运行期间各种工作状态,当发生意外情况是,处理意外事件,控制工作流正常运行。2、工作流管理系统应用领域工作流作为一种技术,它涉及到很多种不同的产品领域。以下列出其中几种工作流常用的领域。●文档管理●电子邮件与目录服务●群件(Groupware)●基于事务的应用(Transaction-basedApplications)●项目计划支撑软件(ProjectSupportSoftware)●BPR以及结构化系统设计工具图1从最高层次看工作流管理系统的构成二、工作流管理系统功能模型一个单独的业务流程,时间、活动的复杂程度、实现方式都大不相同。尽管存在着多样性,在最高层来看,工作流管理系统由三大功能模块构成:●工作流建立阶段功能●运行阶段的流程控制功能●运行阶段与完成不同子任务的用户或IT工具的交互三、工作流管理系统体系模型尽管在市场上有许多工作流产品,但仍可构造一个适用于大多数产品的通用的工作流管理系统参考模型,WfMC在[2]中提出如下参考模型,如图2。图2工作流管理系统的一般结构模型系统中主要部件和数据的作用如下:●过程定义工具过程定义工具被用来创建计算机可以处理的业务过程描述。它可以是形式化的过程定义语言或对象关系模型,也可以是简单地规定用户间信息传输的一组路由命令。●过程定义过程定义(数据)包含了所有使业务过程能被工作流执行服务执行的必要信息。如:起始和终止条件、各个组成活动、活动调度规则等。●工作流执行服务(WES)和工作流引擎工作流执行服务也称为(业务)执行环境,包括一个或多个工作流引擎。工作流引擎是工作流管理系统的核心软件组元。●工作流控制数据指被工作流执行服务(WES)和引擎管理的系统数据,例如工作流实例的状态信息、每一活动的状态信息等。●工作流相关数据指与业务过程流相关的数据。工作流管理系统(WFMS)使用这些数据确定工作流实例的状态转移。●工作表和工作表处理程序工作表列出了与业务过程的参与者相关的一系列工作项,工作表处理程序则对用户和工作表之间的交互进行管理。●应用程序和应用数据应用程序可以直接被工作流管理系统(WFMS)调用或通过应用程序代理被间接调用。四、我们的工作流模型及实施方案我们的工作流系统既符合工作流的国际标准又独具特色,其特色包括:●适用于包括办公自动化在内的各种业务系统●该系统突出了组件化的思想,整个系统由很多个组件构成●客户端既可以作为用户使用的客户端,又可以作为一个控件,提供给用户●系统提供群件代理,系统可以直接通过代理和群件系统连接下面主要介绍该工作流系统的构成和主要的功能。我们的工作流管理系统涉及到如下三类组件:●工作流模型基本组件:实现工作流管理系统必须的组件,包括系统管理工具、工作流服务器、工作流编程接口、工作流客户端。●工作流模型相关组件:与工作流模型接口有直接关系的组件,需要访问工作流系统,或者被工作流系统调用。包括群件连接代理、后台应用代理、自动流转应用。●工作流应用系统组件:与工作流模型没有直接的接口关系,主要用来实现工作流应用系统的具体功能。如下图3“工作流管理系统构成关系图”所示。图3工作流管理系统构成关系图1、工作流模型基本组件功能说明●系统管理工具:提供工作流系统的管理和维护,包括系统设置、组织机构定义、过程定义等。在很多情况下,该组件直接操作系统数据库,但在涉及到服务器的操作时,需要通过消息队列与服务器通讯。●工作流服务器:由多个服务组成,提供过程实例的创建、运行和管理服务。自动处理系统中的各种事件,响应客户端发来的请求。●工作流编程接口:为工作流客户端、后台应用代理、群件连接代理程序提供访问数据库和工作流服务器的接口,它主要实现了工作流标准的Interface2和Interface5。工作流编程接口在与工作流服务器通讯时需要通过消息队列与服务器进行通讯。●工作流客户端:提供对工作项列表的处理、流程监控与管理、允许用户创建新的流程、可以调用应用程序工具进行具体的任务办理。该客户端可以作为一个独立的程序使用,也可以作为一个控件插入到其他应用程序中。2、工作流模型相关组件功能说明●群件连接代理:实现工作流管理系统与群件系统的连接(如LotusNotes、Micro-softExchange)。具体的实现方法是在LotusNotes或MicrosoftExchange中实现一个代理,它通过工作流编程接口从工作流系统中读取所有的工作项,存储到自己的系统中,并通过电子邮件把工作任务通知用户,在用户办理完成之后把结果写入到工作流系统中。●后台应用代理:提供工作流管理标准的Interface3接口,实现工作流服务器对后台应用程序的调用接口。后台应用代理也可以通过工作流编程接口来进行其他的操作。后台应用代理由开发工作流应用软件的人提供。(在有些应用系统中,用户也可以把后台应用代理和后台应用程序在一个程序中一起实现)●自动流转应用:在有些工作流应用系统中,可以通过工作流编程接口编写一个自动程序,它以一个用户的身份自动登录到工作流系统中(不需要人工干预),枚举属于该用户的工作项,并进行自动处理。3、工作流应用系统组件功能说明工作流应用系统组件与工作流模型没有直接的接口关系,主要用来实现工作流应用系统的具体功能。工作流应用系统组件没有通用性,基本与开发的具体工作流应用系统的功能相关,因此需要在开发具体的工作流应用系统时开发,本文只给出相应模块的概念。●应用程序工具:用户在工作流客户端办理某个具体的任务的时候,根据应用性质的不同,可能需要启动不同的应用程序,完成不同的任务。这里的应用程序就是指应用程序工具,它可能是用户开发的一个独立的应用程序,也可能是与工作流客户端集成在一起的某个功能。●后台应用程序:在用户定义工作流流程的时候,可以指定某个节点为自动节点,即该任务由服务器自动调用指定的应用程序完成。这里所指的应用程序就是后台应用程序,它可能与工作流服务器在同一台服务器上,也可能在一台应用服务器上。(在有些系统中,用户可能会把后台应用程序和后台应用代理在一个软件中一起实现)●自动流转应用:自动流转应用的概念在工作流模型相关组件中已经介绍,但自动流转应用的概念与后台应用程序的概念更接近,两者都是通过一个程序自动完成某个特定的任务。区别在于后台应用程序可能与工作流服务器在同一个服务器上,由工作流服务器在处理一个自动节点的时候被动启动(通过Interface3),而自动流转应用程序可能在客户端,以某个用户的身份登录到工作流系统中,自动枚举属于该用户的任务,并进行自动办理。●群件系统:通常指LotusNotes或MicrosoftExchange,在很多情况下用户可能更希望在群件系统中办理工作流任务,因此工作流系统必须与群件有一个接口,便于用户通过群件系统收到并处理自己的工作项。4、与工作流管理标准的不同之处●一个工作流服务器中只有一个工作流引擎,不支持多引擎。●没有实现Interface4,不能够与其他工作流系统通讯。●增加了群件连接代理,便于与LotusNotes、MicrosoftExchange集成。5、实现技术我们的工作流系统就是根据以上工作流的统一的体系结构实施的。我们采用三层结构的方式开发工作流管理系统。其中过程定义工具、工作流客户端作为用户界面层的组件;工作流服务接口和工作流引擎服务作为中间的商业逻辑层为系统运行提供服务,其中工作流服务接口做成DCOM方式的组件在服务器上被工作流客户端、管理和监控工具调用与引擎进行通讯;工作流管理系统运行中使用数据放在数据服务层的数据库中。