第四章 应用模型
本人研究了多年的工作流引擎技术,颇有一些心得,愿意把这些点滴的积累奉献出来,与大家共享。
本人研究了多年的工作流引擎技术,颇有一些心得,愿意把这些点滴的积累奉献出来,与大家共享。
是什么使得我如此的狂热?
-------------一幅凝固的油画。msn: [email protected]. qq:279524300
-------------一幅凝固的油画。msn: [email protected]. qq:279524300
§ 4-1 工作流系统诠释
在设计工作流应用模型之前,我们有必要对工作流系统作一般意义上的诠释。
§<chsdate w:st="on" year="2004" month="1" day="1" islunardate="False" isrocdate="False"></chsdate>4-1-1 工作流无处不在
企业的运作过程本质上是人、财、物等资源的优化和合理配置,形式上无一不体现为信息流、资金流、物流、价值流等合理的流动。
随着社会分工的日益具体化,合作已成为主题。合作的体现形式必然是一个完整而高效的工作流程,因而工作流无处不在。
§<chsdate w:st="on" year="2004" month="1" day="2" islunardate="False" isrocdate="False"></chsdate>4-1-2 工作流与工作流管理系统
关于工作流与工作流管理系统有不同的说法,但基本上都强调工作流首先是一个动态的过程,同时它应该具备协同工作的能力:
l 工作流是针对工作中具有固定程序的常规活动而提出的一个概念,通过将工作活动分解定义良好的任务、角色、规则和过程来进行执行和监控,达到提高生产组织水平和工作效率的目的。一个工作流包括一组活动及它们的相互顺序关系,还包括过程及活动的启动和终止条件,以及对每个活动的描述。工作流管理系统指运行在一个或多个工作流引擎上用于定义、实现和管理工作流运行的一套软件系统,它与工作流执行者(人、应用)交互,推进工作流实例的执行,并监控工作流的运行状态。
l 1993年,国际工作流管理联盟(Workflow Management Coalition,WFMC)的成立标志着工作流技术开始进入相对成熟的阶段。为了实现不同工作流产品之间的互操作,WFMC在工作流管理系统的相关术语、体系结构及应用编程接口等方面制定了一系列标准,工作流管理联盟给出的工作流定义是:工作流是指整个或部分经营过程在计算机支持下的全自动或半自动化,在实际情况中可以更广泛地把凡是由计算机软件系统(工作流管理系统)控制其执行的过程都称为工作流。为了实现组织目标,有关业务活动依时序或逻辑关系相互连接构成业务流程。在业务开展过程中,文档、信息或任务,依据组织规范在参与者之间传递、处理或执行。
工业界的许多人将工作流管理奉为21世纪的软件技术。近年来,工作流技术得到长足的发展。WFMC成立之后,颁布了一系列工作流产品标准,包括工作流参考模型、工作流术语表、工作流管理系统各部分间接口规格、工作流产品的互操作性标准等。这些举措加速了工作流技术的商品化。现在,许多公司都基于这些标准推出了自己的工作流产品,如Action Technologies Inc.的ActionWorkflow、IBM的FlowMark等。Lotus Notes等群件产品也具备较强的工作流支持功能。
§<chsdate w:st="on" year="2004" month="1" day="3" islunardate="False" isrocdate="False"></chsdate>4-1-3 工作流管理系统的实施
工作流管理系统在实际系统中的应用一般分为三个阶段:即模型建立阶段、模型实例化阶段和模型执行阶段。在模型建立阶段,通过利用工作流建模工具,完成企业经营过程模型的建立,将企业的实际经营过程转化为计算机可处理的工作流模型。模型实例化阶段完成为每个过程设定运行所需的参数,并分配每个活动执行所需要的资源,模型执行阶段完成经营过程的执行,在这一过程中,重要的任务是完成人机交互和应用的执行。
§<chsdate w:st="on" year="2004" month="1" day="4" islunardate="False" isrocdate="False"></chsdate>4-1-4 工作流管理系统的优点
工作流最大的优点是实现了应用逻辑与过程逻辑的分离,因此可以在不修改具体功能的实现情况下,通过修改过程模型来改变系统功能,完成对生产经营部分过程或全部过程的集成管理,有效地把人、信息和应用工具合理地组织在一起,发挥系统的最大效能。工作流技术可以支持企业实现对经营管理和生产组织的过程控制以及决策支持,实现现代企业对“在适当的时间把适当的信息传给适当的人”的要求。此外,工作流还具备下述优点:
l 改进和优化业务流程,提高业务工作效率;
l 实现更好的业务过程控制,提高顾客服务质量;
l 提高业务流程的柔性等。
§<chsdate w:st="on" year="2004" month="1" day="5" islunardate="False" isrocdate="False"></chsdate>4-1-5 工作流管理系统的适用领域
工作流无处不在,因而工作流技术具有广阔的应用的前景。尤其是在当前敏捷制造、并行工程、企业经营过程重组得到企业广泛的认同和重视的情况下,工作流技术可以在以下的一些应用领域得到应用并发挥重要作用。
l 并行工程 工作流技术可以很好地用于产品开发过程的建模和管理,它也可以作为产品协同设计、产品设计中的冲突协调、产品数据管理与流程控制的支撑系统。在这一领域的应用中,需要增强工作流对产品数据及其相关集成文档的描述能力,并且需要在工作流技术融入CSCW的技术和方法。
l 敏捷制造 工作流技术可以作为企业间信息集成的使用工具,基于WEB和基于邮件方式的工作流管理系统可以为企业灵活地组建动态联盟和实现信息交换发挥重要作用。在这一应用领域中,要充分考虑广域网环境下系统之间信息传递的可靠性问题,以及不同工作流系统之间的互操作和重构问题。
l 供应链管理 工作流管理技术可以较好的用于实现供应链建模和管理功能,结合工作流仿真和优化技术,还可以用于进行企业分销体系的优化,需要加强工作流模型的仿真与优化能力。
l 企业经营过程重组 这是工作流技术应用的主要领域。虽然工作流管理为系统的重构提供了必要的手段,但是要真正实现企业经营过程的快速重组,企业的应用系统需要按照组件的方式进行构建或改造,而且对应用组件的粒度要求应该与过程重组所需的灵活性相匹配。即灵活性要求较高,应用组件的粒度应该越小。
l 企业建模与系统集成 以工作流模型为核心,从功能、信息、组织与资源视图为辅助手段研究集成化的企业建模方法,并开发相应的集成化企业建模工具。在进行这方面的研究工作时,要重点解决不同视图模型之间的集成问题和模型的一致问题,在此基础上,可以建立以工作流管理系统为基础的集成平台和集成框架软件,从而实现方便、快捷、灵活的应用系统集成。
工作流技术综合了计算机科学和管理科学中诸多研究领域的原理、方法和技术,如:数据库管理、面向对象技术、C/S技术、汇编语言、图形化用户界面、系统集成、消息传递、文档管理、防真等等。近些年,企业对过程建模、BPR工具、敏捷制造、并行工程的需要为工作流技术的应用提供了一个广阔的市场,使工作流产品得以迅速发展。同时,工作流产品供应不断将信息技术、WEB技术等研究中的最新研究成果应用也自己的产品开发中,促进了它的普及应用。虽然目前的工作流产品还存在很多问题有待解决,但是随着工作流技术的进一不发展,它必将在提高企业的效率和竞争力,使企业更好地适应市场变化等方面起到举足轻重的作用。
§<chsdate w:st="on" year="2004" month="1" day="6" islunardate="False" isrocdate="False"></chsdate>4-1-6 工作流管理系统的应用案例
l 福特汽车公司的采购过程
福特汽车公司通过对采购过程的重组,结果财务部门的员工下降到125人,而且工作效率大大提高。
l 波音飞机制造公司的企业经营过程重组
波音公司是世界上最大的民航喷气飞机制造商,也是应用CIM哲理和BPR理论进行企业经营重组的超大型企业。20世纪90年代末期,波音公司进行大规模企业经营过程重构,投巨资重构工作流管理系统,产生了难以估量的经济效益。
l 沈阳飞机制造公司的企业经营过程重组
沈阳飞机制造公司是我国航空飞机制造行业四大骨干企业之一。企业开展BPR之后,明显提高了企业的生产制造综合能力,年增长产值近2000万元。直接及潜在经济效益异常显著。
l 美国WHIRLPOOL公司重构产品开发过程
美国WHIRLPOOL公司是生产家用和商用仪器的大型公司。公司在实施BPR的过程中,系统地分析了整个产品开发过程,在确保产品质量和可靠性的前提下,节约了大量资金,并使产品开发周期由原来的4年零5个月缩短为2年零10个月。经济效益十分可观。
§4-2 功能模型设计的普遍性原则
§<chsdate w:st="on" year="2004" month="2" day="1" islunardate="False" isrocdate="False"></chsdate>4-2-1 目前工作流系统的弊端
同Superflow相比,目前工作流管理系统存在下述问题:
l 实施困难 国际工作流管理联盟(Workflow Management Coalition,WFMC)定义了完整意义上的工作流体系结构及操作标准。且不说根据WFMC的结构和标准研制工作流管理系统多么复杂和庞大,其浩瀚的实施过程也难以令大部分企业接受。
l 开发难度大 根据WFMC的描述和标准,工作流管理系统是一个非常浩大的系统工程。而且实际操作过程之中,研发者往往把所谓过程逻辑和应用逻辑捆绑在一起,造成面对不同需求的重复开发。
l 缺少可维护性 一旦企业实施了工作流管理系统之后,用户必须根据开发商提供的过程描述语言编写流程脚本,这本身对于用户而言就是件困难的事情。如果需求发生变化,用户不得不再次面临尴尬境地。况且目前可见的所谓工作流管理系统大都不具备这种能力。
l 系统缺乏弹性 企业会根据市场的变化不断的修改和重组业务流程,甚至完全否定以前的业务运作模式,或者新增业务流程。目前见到的工作流管理系统未能真正做到流程重组,充其量只是在某些特定环节做一些应用层面的微调而已。
§<chsdate w:st="on" year="2004" month="2" day="2" islunardate="False" isrocdate="False"></chsdate>4-2-2 功能模型的设计目的
l 完整反映工作流应用需求原貌
l 维系工作流管理系统的弹性架构
l 指导并且规范开发过程
§<chsdate w:st="on" year="2004" month="2" day="3" islunardate="False" isrocdate="False"></chsdate>4-2-3 功能模型的设计方法
§<chsdate w:st="on" year="2004" month="2" day="3" islunardate="False" isrocdate="False"></chsdate>4-2-3-1工作流管理系统的功能支持
工作流管理系统(Workflow Management System,WFMS)是定义、创建、执行工作流的系统。在最高层上,WFMS应能提供以下三个方面的功能支持:
l 建造功能 对工作流过程及其组成活动定义和建模。
l 运行控制功能 在运行环境中管理工作流过程,对工作流过程中的活动进行调度。
l 交互功能 指在工作流运行中,WFMS与用户(业务工作的参与者或控制者)及外部应用程序工具交互的功能。
§<chsdate w:st="on" year="2004" month="2" day="3" islunardate="False" isrocdate="False"></chsdate>4-2-3-2 工作流管理系统的主要构成
工作流管理系统(Workflow Management System,WFMS)主要由下列部件构成。
l 过程定义工具
过程定义工具被用来创建计算机可处理的业务过程描述。它可以是形式化的过程定义语言或对象关系模型,也可以是简单地规定用户间信息传输的一组路由命令。
l 过程定义
过程定义(数据)包含了所有使业务过程能被工作流执行子系统执行的必要信息。这些信息包括起始和终止条件、各个组成活动、活动调度规则、各业务的参与者需要做的工作、相关应用程序和数据的调用信息等。
l 工作流执行子系统(WES)和工作流引擎
工作流执行子系统也称为(业务)过程执行环境,包括一个或多个工作流引擎。工作流引擎是WFMS的核心软件组元。它的功能包括:解释过程定义;创建过程实例并控制其执行;调度各项活动;为用户工作表添加工作项;通过应用程序接口(API)调用应用程序;提供监督和管理功能等。工作流执行子系统可以包括多个工作流引擎,不同工作流引擎通过协作共同执行工作流。
l 工作流控制数据
指被WES和工作流引擎管理的系统数据,例如工作流实例的状态信息、每一活动的状态信息等。
l 工作流相关数据
指与业务过程流相关的数据。WFMS使用这些数据确定工作流实例的状态转移,例如过程调度决策数据、活动间的传输数据等。工作流相关数据既可以被工作流引擎使用,也可以被应用程序调用。
l 工作表和工作表处理程序
工作表列出了与业务过程的参与者相关的一系列工作项,工作表处理程序则对用户和工作表之间的交互进行管理。工作表处理程序完成的功能有:支持用户在工作表中选取一个工作项,重新分配工作项,通报工作项的完成,在工作项被处理的过程中调用相应的应用程序等。
l 应用程序和应用数据
应用程序可以直接被WFMS调用或通过应用程序代理被间接调用。通过应用程序调用,WFMS部分或完全自动地完成一个活动,或者对业务参与者的工作提供支持。与工作流控制数据和相关数据不同,应用数据对应用程序来讲是局部数据,对WFMS的其他部件来说是不可见的。
§<chsdate w:st="on" year="2004" month="2" day="3" islunardate="False" isrocdate="False"></chsdate>4-2-3-3 工作流管理系统的参考规范
国际工作流管理联盟(Workflow Management Coalition,WFMC)定义了一套完整的参考规范,主要由5个接口构成。
构建工作流管理系统的过程是一个遵循规范和标准的过程,也是一个不断创新的过程。
一、工作流定义交换
(1)工作流定义交换模型
模拟和定义工具与工作流管理软件之间的接口被称为过程定义输入/输出接口。接口的本质是一个交换格式和一组API调用,它通过一系列物理或电子的媒介进行处理过程定义的交换。定义交换可以完整的或部分的(如只改变某个定义中的某个活动的属性)。
<shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"></shapetype><stroke joinstyle="miter"></stroke><formulas></formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f><lock v:ext="edit" aspectratio="t"></lock><shape id="_x0000_i1027" style="WIDTH: 312pt; HEIGHT: 228.75pt" type="#_x0000_t75" o:ole=""></shape><imagedata src="file:///C:%5CDOCUME~1%5CRoger%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image001.wmz" o:title=""></imagedata>
图<chsdate w:st="on" year="2004" month="2" day="3" islunardate="False" isrocdate="False"></chsdate>4-2-3-3-1 工作流定义交换接口
使用这种标准化的形式有明显的好处
l 它在build-Time和runtime之间定义了一个分隔点,使一个工具产生的定义可以用于多个不同的工作流产品,这样,用户可以自由地选择工作流产品。
l 它可以将一个过程定义用于几个协作的工作流产品,实现分布的工作流服务(交换过程定义只是这种分布服务的一个方面)。
WFMC在这一领域作了两项工作
l 引出一个元模型,它用于在一个处理过程定义中表示对象及其关系和属性,也可以形成用于产品之间信息交换格式的基础。
l 工作流系统之间或工作流系统与定义工具之间的API调用,提供了一个访问工作流过程定义的公共途径,访问方式可以是只读、读写或只写,并且在元模型或一个特定的产品集(如注册产品)中操作标准对象的定义。
(2)一个基本的元模型
WFMC开发了一个处理过程定义的元模型,它用来确定一组(简单的处理过程定义中初始水平的交换的)基本的对象模型,其他的对象模型由供应商提供或作进一步的探讨。
<shape id="_x0000_i1028" style="WIDTH: 303pt; HEIGHT: 201pt" type="#_x0000_t75" o:ole=""></shape><imagedata src="file:///C:%5CDOCUME~1%5CRoger%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image003.wmz" o:title=""></imagedata>
图<chsdate w:st="on" year="2004" month="2" day="3" islunardate="False" isrocdate="False"></chsdate>4-2-3-3-2 工作流定义交换接口
假定下面的类型有这样一些属性:
工作流类型定义
工作流处理过程名称
版本号
处理过程的开始和结束条件
安全、审计和其他控制数据
活动
活动名称
活动类型(子流、自动流等等)
活动的开始和结束条件
其他时序的约束
转换条件
流或执行条件
工作流相关数据
数据名称和路径
数据类型
角色
角色名称和组织实体
调用的应用程序
应用程序类型和名称
参数
位置或访问路径
在分布的服务中,工作流引擎中的活动的分配要在处理过程定义中指定(作为活动的一个属性)。处理过程的定义涉及到安全和管理,如过程中受特权控制和超级用户管理的活动,同时也要考虑其他方面。
在定义交换格式中,假定可以将一个模糊的符号命名方案映射到runtime核心服务的真实名称和地址。这可能需要动态地址机制来处理(如通过目录服务),或通过其他处理过程定义之外的机制处理。有其他的工业组织正在从事这方面的工作,如处理的模拟和CASE交换工具;WFMC的方案是同其他组织共同努力下产生的。
(3)访问处理过程定义的API
WAPI中的一组API是用来访问处理过程定义数据的。期望这些规范能覆盖下面的普通类型。操作一个列表、单独的对象或属性的命令没有提供。
会话的建立
在参与的系统之间建立/断开会话
工作流定义操作
从一个仓库或其他资源列表中获取工作流处理过程定义的名称的清单
从提供给会话处理的处理过程定义清单中,选择/排除一个定义
读写最高层的工作流处理过程定义对象
<span s