2|jBPM4工作流应用开发指南第1章工作流基础本章将为您开宗明义地介绍工作流这门科学,使您了解这门“很有前途的”技术的概念、发展历程以及目前的状况,并给您一个选择jBPM的理由。1.1工作流概念工作流管理联盟(即WfMC,这个组织在后面会介绍)对于“工作流”这个概念的经典定义为:全部或者部分由计算机支持或自动处理的业务过程。工作流管理系统(WorkflowManagementSystem,WFMS)是这样一个软件包:它通过执行经过计算的流程定义去支持一批专门设定的业务流程。它被用来支持定义、管理和执行工作流程。因此,对于我们来说,工作流管理系统的目标是:管理工作的流程以确保工作在正确的时间被期望的人员所执行——在自动化进行的业务过程中“插入”人工的执行和干预,可以说正是工作流管理系统的价值所在,也是工作流系统开发者的主要工作内容。1.1.1工作流管理思想之于企业现代化管理提示:工作流经常与“业务过程重组(BPR,BusinessProcessRe-engineering)”联系在一起。BPR是关于企业(组织)核心业务过程的评估、分析、模拟、定义,以及其后的操作实现。尽管不是所有的BPR都是采用工作流技术实现的,但工作流技术是实现BPR的最佳方法。这主要是因为工作流技术提供了业务过程逻辑与IT操作支持的分离,从而可以通过修改过程规则来重定义业务过程。当然,工作流技术并不只在BPR中采用。第1章工作流基础|3专业分工及组织分层机制是西方国家大规模工业化改造成功的前提。在托福勒的《第三次浪潮》一书中,对“大就是好”的大规模生产时代进行了详尽的描述,并预言该时代将终结。但十多年过去了,大企业并未消失,而是采用了BPR及其他先进思想使自己获得了新生。“铁路警察,各管一段”式的专业分工、精细化的组织机构、职能部门制度是造成企业(特别是大型企业)僵化的主要原因。企业僵化主要有如下特征:每个员工取悦的是自己的“上司”,因为上司掌握员工的地位、薪酬,每个员工可以冷落顾客,但丝毫不敢怠慢“领导”。职能部门以专业划分,在企业中形成一个个的利益中心,部门之间的边界极为明显,在一项业务涉及多个部门时,若发生利益冲突,各部门可以把全公司利益放到一边,维护自己的利益。协调内部矛盾耗去了大量的企业精力。为了加强“内部管理”,企业建立大量制度及审批手续,但几乎找不到几条是为了更好、更快地向顾客提供优质服务的条款,基本上全部是监督内部职工的。层层审批、众多领导“签字”的制度,大大降低了企业的运行效率,也是推卸责任的最好方式。所有员工追求的是“当官”,一旦“升迁”,地位、名义、薪酬均将“旧貌换新颜”,否则“人微言轻”,一切名义、待遇无从谈起。在此情况下,员工要么跳槽,要么混日子,这是现代企事业单位官职重叠的原因之一。公文旅行、文牍主义存在于各个企业,对公文、报告、表格的检查、校对及控制是企业工作极其重要的基础工作,可以压倒一切。大量的人力、物力投放在此?他们都忘了企业的真正生存目的是什么!当然,以上是属于较为严重的情况,在国内企业中比较常见。而西方一些大型企业最常见的问题是各种制度均已健全,但已出现老化,甚至有的已严重阻碍企业的发展,增大了企业的运营成本,使企业失去了竞争力。事实上,一些西方企业已经意识到此类问题,尝试了各种解决办法,在BPR理论刚出现时,就立即进行实践,甚至到了“狂热”的地步,许多企业获得了新生,如IBM、HP、沃尔玛、宝洁、711、福特等。实施“BPR/工作流管理”的主要原则有三个:1)以顾客为中心——全体员工建立以顾客而不是“上司”为服务中心的原则。顾客可以是外部的,如零售商业企业,柜台营业员直接面对的是真正的顾客;可以是内部的,如商场的理货员,他的顾客是卖场的柜台小组。每个人的工4|jBPM4工作流应用开发指南作质量由他的“顾客”做出评价,而不是“领导”。2)企业的业务以“流程”为中心,而不以一个专业职能部门为中心进行——一个流程是一系列相关职能部门配合完成的,体现于为顾客创造有益的服务。对“流程”运行不利的障碍将被铲除,职能部门的意义将被减弱,多余的部门及重叠的“流程”将被合并。3)“流程”的改进必须具有显效性——改进后的流程必须提高效率,消除浪费,缩短时间,提高顾客满意度和公司竞争力,达到降低整个企业运营成本的目标。最终,“BPR/工作流管理”可能对企业的各方面产生如下积极影响:对组织机构的影响——业务流程管理对企业的“冲击”是巨大的,实施后企业的职能部门数量和级别会压缩,企业的组织机构不再是“多级管理”,而是呈现“扁平化”趋势。以专业技术组织的职能部门仍将存在,但部门之间的“边界”大大淡化。部门经理的权力有限,一般只是制定战略、培训及管理人员,员工的直接服务对象是“顾客”,而不是“上司”。流程团队(ProcessTeam)在企业中体现出重要的地位——按照一定的流程组成的团队活跃在企业经济活动中,这个“流程团队”可以是临时的,也可以是永久的。一个流程团队可以跨越许多专业部门,例如在一个计算机公司内,为了一个项目,可以由市场部、销售部、技术部、维修部、财务部等多部门共同组成一个临时的流程团队。这样,企业可以以一个整体面向用户,避免了在销售时,同一公司的不同部门络绎不绝地出现在同一个用户面前;而在维护系统时,用户则不知道去找谁。同样的,在一个商场内,对于某类商品的进货业务,可以由商品部、采购部、财务部、小组、库房等组成一个永久的流程团队,用以提高商品进货的效率和商品的适销度。对人事管理及考核、薪酬制度的冲击——由于采用“流程”为工作重点,对以官本位为基础的专业职能及人事管理体制,产生了极其猛烈甚至是残酷无情的冲击,分析并量化工作流程将是一项复杂及崭新的挑战,对各级管理人员的评定将不再是主观的判断,整个流程的执行结果将是人员考核、薪酬评定的新标准。对员工的积极要求——在运作中,员工将分为具有领导及沟通能力的“流程领导者”和各类应用专家,每个人可以根据自身特点选择自己的发展方向,这样只要认真努力,自然会拥有名誉及地位。例如在微软公司的项目组中,一个级别较低的PM(项目经理)可以领导一个技术级别等同于比尔∙盖茨的技术专家。在此情况下,每个人追求的可能将不再是各级“经理”、“处长”第1章工作流基础|5等职务,而是各种“专家”等称号。对企业管理方式的冲击——国内有些企业有个误区,提起加强管理,就是制定出数大本《××企业管理制度汇编》,然后监督执行。但我们同样可以看到,许多管理制度健全并严格执行的国营企业仍然被市场无情地抛弃了,这就是只重局部管理、不看整体流程所造成的,可以称之为“见木不见林”。我们可以在事后埋怨体制,但事实上,整体流程的僵化往往是企业自己套在脖子上的绳索。因此,真正的工作流管理思想对于企业的改造是全面彻底的,大部分僵化体制将被打破、重组。也许您要问,企业能够直面这样的现实吗?但无论如何,只有重视顾客、关心流程、高效响应的企业,才能生存在今后的市场中。1.1.2工作流技术在企业中的应用工作流技术是一项快速发展的信息化技术,各种行业企业都在逐渐采用工作流管理系统。工作流技术的主要特点是过程的自动化处理(这些过程包含人与以机器交互为基础的人工活动)。因此,目前工作流技术广泛应用于办公室环境中,例如保险、银行和行政管理等。其价值主要体现在:1)协助涉及多人(或多个部门)相关任务的工作执行。大部分工作流管理系统都有一个方便的机制,来生成和处理执行任务的电子表单,使各个部门人员能方便地通过这种机制实现交互,“参与”到业务流程中来。对于专注于ISO或者CMM认证的组织,通过这种方式使用工作流管理系统能够显著地提升“规范化流程”的运转速度,从而提高生产率。不用将业务过程用文字的形式记录在纸上——工作流管理系统能使用户方便地通过流程建模实现业务过程的定义以及自动化执行。2)作为企业应用集成(EnterpriseApplicationIntegration,EAI)的平台。对于大型企业来说,各种各样的异构应用和数据运行在企业内部。工作流管理系统并不是专门的业务系统,但工作流管理系统和专门业务系统是互补的。大部分工作流管理系统具有结合专门业务应用、构建统一EAI平台的能力。6|jBPM4工作流应用开发指南3)嵌入式工作流引擎。“专门业务应用”将指定业务领域的相关业务流程固化在信息系统中。开发专门业务应用的公司可以考虑将工作流引擎嵌入到他们的专门业务信息系统中。在这种情况下,工作流引擎作为一个应用组件,对于应用的最终用户是不可见的,应用的最终用户也完全不需要知道工作流的存在。将工作流引擎嵌入到应用中的主要目的是为了加强应用的扩展性和系统的可维护性。综上所述,引入工作流管理技术对于企业业务过程的提升主要表现在:提高运转效率——业务流程在“自动化运行”过程中会暴露出一些业务流程中不必要的步骤。较好的流程控制——使得大家执行标准的工作方法和跟踪审计成为可能。改进客户服务——因为流程的一致性控制,提高了对客户响应的可预见性。使企业变得“灵活”——方便企业业务流程重组。促进业务改进——使得专注于流程的业务趋向于流畅和简单。1.1.3如何从一个开发者的角度看工作流技术前面说了那么多思想、业务之类的东西,无非是想说明工作流技术对于企业有什么样的好处,但对于一个开发者,坦白地说就是一个写代码的人,工作流管理对于企业业务过程改进的提升也许离他们有点远了。使用工作流技术体系开发软件系统对开发者又有何好处呢?举个例子说明。现在我们来看一个简单的业务——订货流程:1)客户提交采购订单。2)业务员执行订单处理。3)如果缺货,转工厂生产。4)仓库出货。5)物流发货。整个流程如图1-1所示。不使用工作流技术,从头开始开发这个订购流程的业务系统,我们需要:每个活动节点都要开发交互界面和后台处理程序。每次活动的流转都需要硬性判断下一步活动节点及其处理人。第1章工作流基础|7每次操作都需要维护业务数据和流程的一些相关数据。订单处理库存管理$$$客户采购物流发货工厂生产图1-1订货流程示意图一旦业务流程变更,就需要大量地更改程序,甚至重新开发以适应新的需求。监视、控制、分析流程处理情况的应用还需要单独开发,且成本不低。结果这个业务系统可能是如图1-2所示的情况,请注意这还不包括监视、控制、分析流程的部分。$$$客户采购系统界面数据库存管理系统物流系统流转控制业务逻辑界面数据流转控制业务逻辑订单处理系统界面数据流转控制业务逻辑界面数据流转控制业务逻辑界面数据流转控制业务逻辑生产系统图1-2不使用工作流技术实现订货业务流程8|jBPM4工作流应用开发指南下面我们看看使用工作流技术实现上述的订货流程将会是一种什么情况,如图1-3所示。业务独立的业务数据业务交互界面订单处理库存管理$$$客户采购物流发货工厂生产流程数据工作流引擎流程监控数据分析流程设计简单的业务逻辑图1-3使用工作流技术实现订货业务流程很明显,位于右侧的工作流管理系统接管了所有订货业务在流程方面的定义和执行,这包括:使用专门的“流程数据”系统,维护所有涉及流程流转的数据。提供“流程设计”工具,帮助用户定义订货流程的模型,这一般都是基于图形界面可视化的。工作流引擎作为工作流管理系统的核心,负责解释流程定义、管理流程数据、计算和驱动流程实例的运行„„其作用如同大脑之于人体。工作流引擎提供众多API(ApplicationProgrammingInterface,应用编程接口)供客户端应用程序或外部业务系统调用,将特定的“业务(例如:订货)”纳入“流程”的管理和控制之中,从而实现工作流管理和业务操作的完美结合。第1章工作流基础|9工作流引擎还提供众多API供流程的“增值”系统使用,例如流程监控系统可以使用工作流引擎提供的API去监视流程的执行过程、挂起和恢复流程实例的运行;流程数据分析系统可以使用工作流引擎提供的API分析出工作完成的效率、业务流程的瓶颈等结果,以便重组流程、优化业务。综上所述,引入工作流技术对于技术开发来说,有如下好处:降低开发风险——通