中图分类号:F270.7 文献标识码:A 文章编号:1008-309(2002)04-0089-22 1 引言 工作流的概念起源于生产组织与办公自动化领域,它是针对日常工作中具有固定程序的活动而提出来的一个概念。提出的目的是通过将工作分解成定义良好的任务、角色,按照一定的规则与过程来执行这些任务并进行监督,达到提高办事效率、降低生产成本、提高企业管理水平和竞争能力的目标。事实上,自从进入工业时代以来,有关过程的组织管理与流程的优化工作就一直在进行,它是企业管理的主要研究内容之一,只不过在没有引入计算机信息系统的支持之前,这些工作是由人工来完成的。现在随着计算机技术、网络技术和分布式数据库技术的迅速发展,特别是在Internet应用日益普及的情况下,现代企业的信息系统的分布性、异构性和自治性的特征越来越显著,相应的企业信息资源也分布在异构的计算机环境中,信息源之间的连接表现出松散耦合的特点,同时虚拟组织、分布决策、客户/服务器体系结构(Client/Server)和分布式处理技术(WWW、CORBA、OLE、JAVA)等等的广泛应用,无不预示着原来单一的集中式信息处理方式的终结,取而代之的将是大规模的异构分布式信息处理与应用执行环境。在这种大规模的分布式环境下高效的运转相互关联的任务,并且对执行任务进行密切监控已成为一种发展趋势,由此工作流技术孕育而生了。 工作流技术一出现就引起了研究人员、开发人员和用户的普遍关注,并很快成了学术界和企业界的热门话题。在国外工作流技术已成功应用到图书馆、医院、银行、保险业等,然而,它最重要的应用还是在工业领域,特别是制造业中。 2 工作流(WF)和工作流管理系统(WFMS) 1993年,国际工作流管理联盟(WFMC)的成立标志着工作流技术开始进入相对成熟的阶段。为了实现不同工作流产品之间的互操作,WFMC在工作流管理系统的相关术语、体系结构及应用编程接口等方面制定了一系列标准,以便对工作流和工作流管理系统实现标准化管理。 WFMC给出的工作流定义为:“工作流(Workflow)是一类能够完全或部分自动执行的经营过程,它根据一系列过程规则,文档、信息或任务能够在不同的执行者之间进行传递与执行”[1]。 在实际情况中可以更广泛地把凡是由计算机软件系统(工作流管理系统)控制其执行的过程都称为工作流。 一个工作流包括一组活动及它们的相互顺序关系,还包括过程及活动的启动与终止条件,以及对每个活动的描述,如活动的执行者、相关应用程序、需要的文档等。工作流的运行由工作流管理系统控制完成,它和工作流执行者(人、应用)交互,推进工作流事件的执行,并监控工作流的运行状态。 工作流是描述一个企业或组织的业务处理活动过程的模型。例如,一个产品的设计过程是由绘图、仿真、审定、发布等活动组成的工作流,它包含设计人员、CAD系统、 工程数据库系统等多个人和系统的交互操作。如果完全依靠人工干预进行管理,其效率将非常低,对于复杂的工作流来说,甚至是不可能的。因此,为了对业务活动(工作流)进行有效的管理,必须建立工作流管理系统。 WFMC给出的工作流管理系统定义为:“工作流管理系统(Workflow Management System,WFMS)是一个软件系统,它完成工作流的定义和管理,并按照在计算机中预先定义好的工作流逻辑推进工作流实例的执行”[2]。 工作流管理系统是支持企业经营过程高效执行并监督其执行过程的计算机系统软件。它可以通过一个或多个工作流引擎来解释不同的过程定义,与不同的工作流执行者交流信息并调用其它应用系统来完成预定的目标。 3 工作流的分类 根据所实现的业务过程,工作流可分为以下四种: 管理型工作流(Administrative workflow ):用于执行简单协同规则的、可重复和可预测的流程,它的执行步骤和规则是事先定义的,不要求控制复杂流程和访问多个信息系统。例如大学里的课程选修,完成论文后的学位申请、登记车辆等。 设定型工作流(Ad hoc workflow):与管理型工作流相似, 但一般用来处理异常或发生机会比较小的情况,有时甚至是只出现一次的情况,这与参与的用户有关,多用于执行办公流程或处理异常情况,能够提供合作协同功能,但不控制各工作顺序,支持它的WFMS也叫群件。 协作型工作流(Collaborative workflow):参与者和协作的次数较多。主要由参与者的交互来刻画,不像其他类型的工作流总是向前流转,它还包括循环流和反向流。由于不可能预先定义后面的流程,因而很难使用现有工具对该类动态工作流进行建模。 生产型工作流(Production workflow);工作流的高级形式,是关键业务流程的一种实现,直接关系到组织的功能。与管理型工作流相比,生产型工作流一般应用在大规模、复杂的和异构的环境下,整个过程会涉及许多人和不同的组织。信贷业务和保险业务都属此类典型的例子。 另外,按照底层实现技术的不同也可将工作流系统分为:1 )以通讯为中心:依赖于电子邮件,适用于Collaborative和Ad Hoc工作流;而不适于Production工作流。2)以文档为中心:基于文档路由和文档流转的思想,它同外界应用的交互能力有限,适用于Administrative工作流。3)以过程为中心:这种工作流系统对应于Production工作流, 它们一般建立在数据库之上,有自己专用的通信机制并且提供大量与传统和新的应用的接口。