时间:2022-12-24 12:30:01 | 来源:信息时代
时间:2022-12-24 12:30:01 来源:信息时代
工作流系统 : 由计算机软件控制执行过程的系统。工作流技术起源于20世纪70年代末和80年代初的办公自动化技术和批处理技术。综合了计算机科学和管理科学等学科的原理、方法和技术,如运筹学、数据库管理、面向对象技术、编程语言、可视化用户界面、系统集成、消息传递,文档管理等。经多年研究和发展,出现了许多原型系统和工作流产品。工作流技术在多个行业,如银行、医院、制造、流通、销售、政府机关中获得成功应用。90年代初,兴起了以业务过程重组(business process reengineering,BPR)为理念的管理革命。通过对管理制度和组织结构进行根本性的再造,实现对业务过程的彻底优化,从而显著提高企业在市场上的竞争优势。工作流技术为BPR的成功实施奠定了坚实的基础。
1993年成立了非营利国际化组织,工作流管理联盟(workflow management coalition,WfMC,http://www.wfmc.org)。它是工作流领域唯一的标准化组织。该组织制订了通用的工作流术语和标准,包括工作流参考模型、工作流过程定义元模型、互操作性和互连性接口等。工作流管理联盟包括工作流厂商、用户、系统分析师,以及大学、科研机构等。还有一个成立于1992年的国际组织,国际工作流和重组协会(workflow and reengineering international association,WARIA,http://www.waria.com)。它旨在推动BPR、过程管理、工作流和电子商务等交叉领域的发展,提供开发经验、产品评估、用户与厂商的交流和培训等信息。每年与WfMC一起评选全球工作流杰出奖。
随着Web技术的普及和电子商务的流行,在2000年初又提出了业务过程管理(business process management,BPM)概念。作为传统工作流系统和方法的扩展和演进,BPM涵盖所有支持操作型业务过程的设计、使动(enact)、管理和分析的方法、技术和工具。目前,一些传统的工作流产品,如Staffware和ActionFlow,都重新定位在BPM目标上。
2000年成立业务过程管理发起者的国际组织(Business Process Management Initiative,BPMI,http://www.bpmi.org)。其宗旨是通过建立关于过程设计、部署、执行、维护和开发的标准,推动和普及BPM技术的应用。BPMI制定了业务过程建模语言BPML和业务过程查询语言BPQL等标准,支持电子商务的过程管理。2005年该组织又合并于OMG组织。
1.工作流
按照WfMC定义,工作流指在计算机支持下对整个或部分业务过程的全自动化或半自动化处理。业务过程按照一定的程序规则进行。如果程序规则是预先定义好的,则称为生产型工作流(production workflow);如果程序规则需要在操作中通过协商才能确定,则称为即席型工作流(ad-hoc workflow),也称为协作型工作流(collaborative workflow)。管理型工作流(administrative workflow)是介于生产型工作流和即席型工作流之间的一种类型。虽然程序规则是预先定义好的,但在操作中可能根据情况发生变更。
业务过程(business process)是实现企业业务目标或策略的一组相关的活动。活动(activity)指能够独立执行的工作单元。工作流中的活动或者是一个由自动执行的软件系统完成的操作,或者是一个由人或组织参与的活动。活动是工作流的基本构成单位,也可称为任务(task)。
任务之间存在着执行次序和依赖性等约束关系。执行次序规定了任务之间启动的先后次序,分为并行方式和串行方式。依赖性规定了在发生提交和废弃时,任务之间的约束关系。在复杂应用中,并行执行的依赖类型一般分为: 与、或和异或; 串行执行的依赖类型分为级联、应急和循环。还有条件依赖,用于说明更为复杂的依赖关系。
工作流中任务间的输入/输出数据关系称为数据依赖(data dependence)。工作流中任务间的执行次序和先后依赖关系称为跃迁(transition),也称为控制依赖(control dependence)。
复杂领域的一个工作流所实现的应用一般比较复杂,涉及的任务也多种多样,并且这些任务分散在一个分布、异构、自治的环境中。这些任务有的是建立在事先存在的自治的局部DBMS之上,有的是建立在非事务型的资源管理器如文件系统之上,有的任务是一个自动执行的软件系统,有的任务由人来完成。在工作流建模时,可从不同的角度对任务进行分类。
根据任务的复杂程度将任务分成简单任务和复合任务。功能单一、不可再分的独立的任务为简单任务(simple task)。而由简单任务或其他的复合任务嵌套构成的任务为复合任务(component task)。可以分为多个简单任务或功能相对简单的复合任务,是完成某一业务目标的独立工作单位。例如,银行转账可以看成是一个复合任务,这个复合任务可由两个简单任务构成: 从一个账号取钱和存入到另一个账号。
根据任务的执行行为是否提供操作的原子性等事务特点,将工作流中的任务分成: 事务型任务(transactional task)和非事务型任务(non-transactional task)。事务型任务的执行行为至少支持原子性,甚至支持事务的ACID所有特性。在事务型任务执行失败时,要求完全取消该任务的影响,即传统事务模型中所说的abort。非事务型任务的执行行为不要求支持原子性等事务特性。在非事务型任务失败时,不能取消该任务已产生的影响。对于非事务型任务,如果任务的执行者是某个人或某个班组而不是一个自动执行的软件系统,则称为用户型任务(user task)。用户型任务中的任务执行者称为参与者(participant)。
在工作流过程定义时,针对不同类型任务需给出不同的定义,这些定义信息是工作流系统进行工作流调度的依据。
2.工作流管理系统
工作流管理系统(workflow management system,WFMS)负责完整地定义和管理工作流,并以执行软件的方式执行工作流,即按照预先定义好的工作流逻辑对活动进行调度。工作流管理系统的核心是工作流引擎(workflow engine),负责提供部分或全部工作流运行时的控制环境。一个工作流管理系统是建立在一个或多个工作流引擎上的一组软件系统,它与执行者(人、应用)交互,调度工作流的执行,并监控工作流的运行状态。
一个工作流管理系统及其在上面运行的若干个工作流,构成一个工作流系统(workflow system)。如果工作流系统是属于一个大的业务应用系统如ERP的一部分,则称为嵌入式工作流系统(embedded workflow system)。如果是一个独立的工作流系统,能够支持所有的业务需求,而不仅仅是某个应用,则称为自主式工作流系统(autonomous workflow system)。
3. 工作流模型
工作流模型(Workflow model)是一组关于业务处理流程概念的集合,用于对实际业务处理流程进行工作流抽象。用工作流模型中的概念对一个实际业务处理流程进行抽象描述的过程,称为工作流建模(modeling)。建模结果是工作流模式(workflow schema),即,用工作流模型中的概念对一个实际业务处理流程进行的抽象描述。习惯上,常常将工作流模式简称为工作流。一个工作流模式对应企业的一个业务流程,它描述该业务流程中所涉及的所有业务环节(也就是活动)、完成每一业务环节所需的输入输出数据、执行每一业务环节的执行实体及这些业务环节之间的执行依赖关系等描述。按工作流模式的一次实际运行称为一个工作流实例(workflow instance)。在实际运行环境中,按照一个工作流模式运行的工作流实例可能有多个,它们以不同的速度向前推进,形成一个复杂的运行环境。