下载

5下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 jBPM4工作流应用开发指南

jBPM4工作流应用开发指南.pdf

jBPM4工作流应用开发指南

hxkdyx
2011-06-15 0人阅读 举报 0 0 暂无简介

简介:本文档为《jBPM4工作流应用开发指南pdf》,可适用于IT/计算机领域

|jBPM工作流应用开发指南第章工作流基础本章将为您开宗明义地介绍工作流这门科学使您了解这门“很有前途的”技术的概念、发展历程以及目前的状况并给您一个选择jBPM的理由。工作流概念工作流管理联盟(即WfMC这个组织在后面会介绍)对于“工作流”这个概念的经典定义为:全部或者部分由计算机支持或自动处理的业务过程。工作流管理系统(WorkflowManagementSystem,WFMS)是这样一个软件包:它通过执行经过计算的流程定义去支持一批专门设定的业务流程。它被用来支持定义、管理和执行工作流程。因此对于我们来说工作流管理系统的目标是:管理工作的流程以确保工作在正确的时间被期望的人员所执行在自动化进行的业务过程中“插入”人工的执行和干预可以说正是工作流管理系统的价值所在也是工作流系统开发者的主要工作内容。工作流管理思想之于企业现代化管理提示:工作流经常与“业务过程重组(BPRBusinessProcessReengineering)”联系在一起。BPR是关于企业(组织)核心业务过程的评估、分析、模拟、定义以及其后的操作实现。尽管不是所有的BPR都是采用工作流技术实现的但工作流技术是实现BPR的最佳方法。这主要是因为工作流技术提供了业务过程逻辑与IT操作支持的分离从而可以通过修改过程规则来重定义业务过程。当然工作流技术并不只在BPR中采用。第章工作流基础|专业分工及组织分层机制是西方国家大规模工业化改造成功的前提。在托福勒的《第三次浪潮》一书中对“大就是好”的大规模生产时代进行了详尽的描述并预言该时代将终结。但十多年过去了大企业并未消失而是采用了BPR及其他先进思想使自己获得了新生。“铁路警察各管一段”式的专业分工、精细化的组织机构、职能部门制度是造成企业(特别是大型企业)僵化的主要原因。企业僵化主要有如下特征:每个员工取悦的是自己的“上司”因为上司掌握员工的地位、薪酬每个员工可以冷落顾客但丝毫不敢怠慢“领导”。职能部门以专业划分在企业中形成一个个的利益中心部门之间的边界极为明显在一项业务涉及多个部门时若发生利益冲突各部门可以把全公司利益放到一边维护自己的利益。协调内部矛盾耗去了大量的企业精力。为了加强“内部管理”企业建立大量制度及审批手续但几乎找不到几条是为了更好、更快地向顾客提供优质服务的条款基本上全部是监督内部职工的。层层审批、众多领导“签字”的制度大大降低了企业的运行效率也是推卸责任的最好方式。所有员工追求的是“当官”一旦“升迁”地位、名义、薪酬均将“旧貌换新颜”否则“人微言轻”一切名义、待遇无从谈起。在此情况下员工要么跳槽要么混日子这是现代企事业单位官职重叠的原因之一。公文旅行、文牍主义存在于各个企业对公文、报告、表格的检查、校对及控制是企业工作极其重要的基础工作可以压倒一切。大量的人力、物力投放在此?他们都忘了企业的真正生存目的是什么!当然以上是属于较为严重的情况在国内企业中比较常见。而西方一些大型企业最常见的问题是各种制度均已健全但已出现老化甚至有的已严重阻碍企业的发展增大了企业的运营成本使企业失去了竞争力。事实上一些西方企业已经意识到此类问题尝试了各种解决办法在BPR理论刚出现时就立即进行实践甚至到了“狂热”的地步许多企业获得了新生如IBM、HP、沃尔玛、宝洁、、福特等。实施“BPR工作流管理”的主要原则有三个:)以顾客为中心全体员工建立以顾客而不是“上司”为服务中心的原则。顾客可以是外部的如零售商业企业柜台营业员直接面对的是真正的顾客可以是内部的如商场的理货员他的顾客是卖场的柜台小组。每个人的工|jBPM工作流应用开发指南作质量由他的“顾客”做出评价而不是“领导”。)企业的业务以“流程”为中心而不以一个专业职能部门为中心进行一个流程是一系列相关职能部门配合完成的体现于为顾客创造有益的服务。对“流程”运行不利的障碍将被铲除职能部门的意义将被减弱多余的部门及重叠的“流程”将被合并。)“流程”的改进必须具有显效性改进后的流程必须提高效率消除浪费缩短时间提高顾客满意度和公司竞争力达到降低整个企业运营成本的目标。最终“BPR工作流管理”可能对企业的各方面产生如下积极影响:对组织机构的影响业务流程管理对企业的“冲击”是巨大的实施后企业的职能部门数量和级别会压缩企业的组织机构不再是“多级管理”而是呈现“扁平化”趋势。以专业技术组织的职能部门仍将存在但部门之间的“边界”大大淡化。部门经理的权力有限一般只是制定战略、培训及管理人员员工的直接服务对象是“顾客”而不是“上司”。流程团队(ProcessTeam)在企业中体现出重要的地位按照一定的流程组成的团队活跃在企业经济活动中这个“流程团队”可以是临时的也可以是永久的。一个流程团队可以跨越许多专业部门例如在一个计算机公司内为了一个项目可以由市场部、销售部、技术部、维修部、财务部等多部门共同组成一个临时的流程团队。这样企业可以以一个整体面向用户避免了在销售时同一公司的不同部门络绎不绝地出现在同一个用户面前而在维护系统时用户则不知道去找谁。同样的在一个商场内对于某类商品的进货业务可以由商品部、采购部、财务部、小组、库房等组成一个永久的流程团队用以提高商品进货的效率和商品的适销度。对人事管理及考核、薪酬制度的冲击由于采用“流程”为工作重点对以官本位为基础的专业职能及人事管理体制产生了极其猛烈甚至是残酷无情的冲击分析并量化工作流程将是一项复杂及崭新的挑战对各级管理人员的评定将不再是主观的判断整个流程的执行结果将是人员考核、薪酬评定的新标准。对员工的积极要求在运作中员工将分为具有领导及沟通能力的“流程领导者”和各类应用专家每个人可以根据自身特点选择自己的发展方向这样只要认真努力自然会拥有名誉及地位。例如在微软公司的项目组中一个级别较低的PM(项目经理)可以领导一个技术级别等同于比尔∙盖茨的技术专家。在此情况下每个人追求的可能将不再是各级“经理”、“处长”第章工作流基础|等职务而是各种“专家”等称号。对企业管理方式的冲击国内有些企业有个误区提起加强管理就是制定出数大本《××企业管理制度汇编》然后监督执行。但我们同样可以看到许多管理制度健全并严格执行的国营企业仍然被市场无情地抛弃了这就是只重局部管理、不看整体流程所造成的可以称之为“见木不见林”。我们可以在事后埋怨体制但事实上整体流程的僵化往往是企业自己套在脖子上的绳索。因此真正的工作流管理思想对于企业的改造是全面彻底的大部分僵化体制将被打破、重组。也许您要问企业能够直面这样的现实吗?但无论如何只有重视顾客、关心流程、高效响应的企业才能生存在今后的市场中。工作流技术在企业中的应用工作流技术是一项快速发展的信息化技术各种行业企业都在逐渐采用工作流管理系统。工作流技术的主要特点是过程的自动化处理(这些过程包含人与以机器交互为基础的人工活动)。因此目前工作流技术广泛应用于办公室环境中例如保险、银行和行政管理等。其价值主要体现在:)协助涉及多人(或多个部门)相关任务的工作执行。大部分工作流管理系统都有一个方便的机制来生成和处理执行任务的电子表单使各个部门人员能方便地通过这种机制实现交互“参与”到业务流程中来。对于专注于ISO或者CMM认证的组织通过这种方式使用工作流管理系统能够显著地提升“规范化流程”的运转速度从而提高生产率。不用将业务过程用文字的形式记录在纸上工作流管理系统能使用户方便地通过流程建模实现业务过程的定义以及自动化执行。)作为企业应用集成(EnterpriseApplicationIntegrationEAI)的平台。对于大型企业来说各种各样的异构应用和数据运行在企业内部。工作流管理系统并不是专门的业务系统但工作流管理系统和专门业务系统是互补的。大部分工作流管理系统具有结合专门业务应用、构建统一EAI平台的能力。|jBPM工作流应用开发指南)嵌入式工作流引擎。“专门业务应用”将指定业务领域的相关业务流程固化在信息系统中。开发专门业务应用的公司可以考虑将工作流引擎嵌入到他们的专门业务信息系统中。在这种情况下工作流引擎作为一个应用组件对于应用的最终用户是不可见的应用的最终用户也完全不需要知道工作流的存在。将工作流引擎嵌入到应用中的主要目的是为了加强应用的扩展性和系统的可维护性。综上所述引入工作流管理技术对于企业业务过程的提升主要表现在:提高运转效率业务流程在“自动化运行”过程中会暴露出一些业务流程中不必要的步骤。较好的流程控制使得大家执行标准的工作方法和跟踪审计成为可能。改进客户服务因为流程的一致性控制提高了对客户响应的可预见性。使企业变得“灵活”方便企业业务流程重组。促进业务改进使得专注于流程的业务趋向于流畅和简单。如何从一个开发者的角度看工作流技术前面说了那么多思想、业务之类的东西无非是想说明工作流技术对于企业有什么样的好处但对于一个开发者坦白地说就是一个写代码的人工作流管理对于企业业务过程改进的提升也许离他们有点远了。使用工作流技术体系开发软件系统对开发者又有何好处呢?举个例子说明。现在我们来看一个简单的业务订货流程:)客户提交采购订单。)业务员执行订单处理。)如果缺货转工厂生产。)仓库出货。)物流发货。整个流程如图所示。不使用工作流技术从头开始开发这个订购流程的业务系统我们需要:每个活动节点都要开发交互界面和后台处理程序。每次活动的流转都需要硬性判断下一步活动节点及其处理人。第章工作流基础|每次操作都需要维护业务数据和流程的一些相关数据。订单处理库存管理$$$客户采购物流发货工厂生产图订货流程示意图一旦业务流程变更就需要大量地更改程序甚至重新开发以适应新的需求。监视、控制、分析流程处理情况的应用还需要单独开发且成本不低。结果这个业务系统可能是如图所示的情况请注意这还不包括监视、控制、分析流程的部分。$$$客户采购系统界面数据库存管理系统物流系统流转控制业务逻辑界面数据流转控制业务逻辑订单处理系统界面数据流转控制业务逻辑界面数据流转控制业务逻辑界面数据流转控制业务逻辑生产系统图不使用工作流技术实现订货业务流程|jBPM工作流应用开发指南下面我们看看使用工作流技术实现上述的订货流程将会是一种什么情况如图所示。业务独立的业务数据业务交互界面订单处理库存管理$$$客户采购物流发货工厂生产流程数据工作流引擎流程监控数据分析流程设计简单的业务逻辑图使用工作流技术实现订货业务流程很明显位于右侧的工作流管理系统接管了所有订货业务在流程方面的定义和执行这包括:使用专门的“流程数据”系统维护所有涉及流程流转的数据。提供“流程设计”工具帮助用户定义订货流程的模型这一般都是基于图形界面可视化的。工作流引擎作为工作流管理系统的核心负责解释流程定义、管理流程数据、计算和驱动流程实例的运行„„其作用如同大脑之于人体。工作流引擎提供众多API(ApplicationProgrammingInterface应用编程接口)供客户端应用程序或外部业务系统调用将特定的“业务(例如:订货)”纳入“流程”的管理和控制之中从而实现工作流管理和业务操作的完美结合。第章工作流基础|工作流引擎还提供众多API供流程的“增值”系统使用例如流程监控系统可以使用工作流引擎提供的API去监视流程的执行过程、挂起和恢复流程实例的运行流程数据分析系统可以使用工作流引擎提供的API分析出工作完成的效率、业务流程的瓶颈等结果以便重组流程、优化业务。综上所述引入工作流技术对于技术开发来说有如下好处:降低开发风险通过使用诸如活动、流转、状态、行为这样的术语使得业务分析师和开发人员使用同一种语言交谈成为可能。优秀的流程设计建模工具甚至能使开发人员不必将用户需求转化成详细设计文档。流程实现的集中统一应对业务流程经常变化的情况使用工作流技术的最大好处是使业务流程的实现代码不再散落在各式各样的业务系统中。加速开发开发者不用再关注流程的参与者、活动节点的衔接、流转控制„„因为这些工作很多被工作流框架接管了。因而开发者开发起来更快、代码出错更少、系统更加容易维护。提升对迭代开发的支持如果系统中业务流程部分被硬编码就不容易更改需求分析师就会花费很大的精力在开发前的业务分析中并且希望一次成功。但可悲的是在任何软件项目开发中这都很少能实现。工作流管理系统使得业务流程很容易部署和重新编排业务流程相关的应用开发可以以一种“迭代渐进”的方式推进也就是说工作流技术在某种程度上支持“需求分析不必一次完全成功”。工作流管理系统的发展历程如果说数据库系统(DatabaseSystems)的发展历程像受人尊敬的智者讲述条理清晰的故事那么工作流(Workflow)的发展历程就像一群乳臭未干的小子们在大谈各自的“哲理”。之所以这样比喻是想指出工作流管理系统相对于数据库系统还处于技术曲线上的发展阶段。这是一个激动人心的阶段但不是一个成熟的阶段。为了证明这一点我们可以拿工作流管理系统和关系型数据库系统(RDBMS)做一个对比:当在软件开发团队中谈论关系型数据库系统时例如OracleSQLServer等大部分技术人员会有一个清晰的概念在您和他们交流的时候他们会通过轻微的点头表示认可或理解您所说的。可当您使用工作流术语和他们讨论工作流时他们很可能会摇头表示其他意见因为很多人对工作流术语都有不同的理解。|jBPM工作流应用开发指南形成这种状况的原因之一是在“早期”的工作流中使用了过多的概念至今尚未完全统一。在这个领域中有大量存在差异的规范和工具当然它们相互之间有重叠并且会相互参考引证。图演绎了工作流管理系统从无到有的“进化”历程。图工作流管理系统的“进化”历程通过上面这张图我们了解到企业应用软件的发展走过了这样一个历程:)最初的企业应用直接架设在操作系统(OperationSystem,OS)之上应用的程序和数据混合在一起耦合之紧超乎想象。这大约是在年。)后来人们发现程序和数据混合在一起维护起来太困难了您能想象把所有的数据记录都硬编码在程序中吗?于是人们把数据库管理系统从应用系统中剥离出来自成一派。这大约是在年。)再后来随着企业应用复杂度的增加人们对人机交互的需求越来越高架构师们发现把应用程序的逻辑和用户界面(UserInterface,UI)也分离开是个不错的主意。这样底层的开发者可以专注于业务逻辑的实现而前端的UI工程师可以全力去追求交互体验同时一套业务逻辑的实现还可以与不同的UIMS(UserInterfaceManagementSystem用户界面管理系统)相匹配应用的灵活性得到了提升同时成本也能下降。这大约是在年。)随着时代的发展企业应用有了相对独立的DBMS和UIMS越来越能适应变更频繁、复杂化、大型化的需要了„„这时候瓶颈又出现了如同本章前几节所描述的现代企业对于业务流程的需求正在发生以下变化。变得更重要(业务流程化)。越来越需要适应频繁的变化。变得更复杂。应用应用应用应用第章工作流基础|企业内部的业务流程总数在不断增加。„„由此催生了工作流管理系统。这个发展历程的具体时间列表如下:工作流技术起源于世纪年代中期办公自动化领域的研究工作。其中的SCOOP和OfficeTalk系统不但标志着工作流技术的开始而且也是最早的OA系统。世纪年代初期工作流技术伴随着OA系统走向商用但是很少、范围很有限。世纪年代后期OA系统的研究逐渐走向非主流取而代之的是群件(Groupware)和工作流管理系统。世纪年代以后相关的技术条件逐渐成熟工作流管理系统的开发与研究进入了一个热潮。但世纪年代工作流管理系统的迅速发展也带来了很多问题例如术语的泛滥、过多的概念、体系结构上的五花八门、没有统一的可交互接口等。年月工作流技术标准化的工业组织工作流管理联盟(WorkflowManagementCoalitionWfMC)成立。年工作流管理联盟发布了用于规范和指导工作流管理系统架构的“工作流参考模型”并相继制定了一系列工业标准。年BPMI(BusinessProcessManagementInitiative)标准组织成立于同年月日发布BPML业务流程语言规范。年月日BEA公司、微软公司和IBM公司共同发布了一个新的业务流程语言规范BPELWS(BusinessProcessExecutionLanguageforWebServices)并提交到了OASIS组织。以下将重点介绍工作流技术发展历程中的两个重要的里程碑工作流管理系统参考模型和BPM。工作流管理系统参考模型许多软件开发商都有工作流产品并且不断有新的工作流产品走入市场。市场上可选择的产品范围很大因此每个开发商只关注产品的特殊功能而用户可以采用不同的产品来满足不同的需求。|jBPM工作流应用开发指南然而由于各个厂商不兼容的流程控制方式导致没有统一的规范使得不同的工作流产品协同工作。对于这个问题业界一直认为所有的工作流产品都有一些相同的特性只要其各种功能遵循公共的标准就可以实现不同工作流产品间的协同工作。由此WfMC应运而生WfMC的全称是WorkflowManagementCoalition工作流管理联盟它是由一些公司联合在一起成立的组织从事工作流问题的研究和指导。图所示就是WfMC提出的工作流管理系统参考模型(ReferenceModeloftheWorkflowManagementCoalition)。作为工作流技术标准化的工业组织WfMC的这个参考模型无疑为各家工作流管理软件提供者的系统设计规划给出了权威的参考乃至标准。图工作流管理系统参考模型首先最重要的部分就是中间的工作流引擎可以说它就是整个工作流管理系统的心脏因为所有的工作流管理系统都要使用工作流引擎:)为执行的流程实例解释流程定义这些流程定义一般都是由接口获得的。)组织调度流程的实例推进工作流程的前进这包括条件流转、分支聚合、第章工作流基础|父子流程„„)处理工作任务的分配、接受、提交等行为无论是人工干预或自动执行的任务都需要经过工作流引擎计算和持久化(如果需要的话)。)管理调用其他的个接口这可能包括执行工作流程定义中的一些外部脚本。工作流引擎做的工作就像心脏把血液不断地送到身体的各个部分一样。关于工作流引擎应该如何架构和设计在本书后面章节会涉及。那么接下来说说工作流管理系统“身体”的个组成部分吧也就是图所示的个接口。接口流程定义工具。■前面提到过我们使用它来设计业务流程定义供工作流引擎来实例化运行。所谓的“业务流程定义”一般来说就是一段XML它一般遵循XPDL(XMLProcessDefineLanguage)标准、BPEL(BusinessProcessExecutionLanguage)标准或其他厂商自定义的标准(例如jBPM的流程定义语言就是jPDL)。事实上可以把流程定义工具理解为一个产生XML的图形化设计建模软件。这种软件各个厂商的技术实现可谓五花八门仅基于Web的就有很多种技术实现例如JavaSwingFlashActiveX当然很多开源项目采用的还是基于客户端的实现例如jBPM使用的是基于Eclipse图形化插件的实现SharkWorkflow使用的则是JAWE(一种基于Java技术实现的XPDL建模工具)。当然它们的最终目的都是统一的产生XML格式的流程定义。接口工作流客户端应用。■这很有意思当业务流程设计好了、运行起来了那么我们“人类”如何与工作流引擎交互呢?这时候工作流引擎就通过接口为我们提供各种各样的工作任务列表、工作表单、流程列表以及一些查询功能。我们通过这些接口应用就可以填写表单、处理任务„„从而实现人与工作流引擎的沟通。接口执行外部应用。■工作流引擎通过这个接口去执行一些外部的或面向专门职能领域的应用程序例如财务系统、报表系统等让第三方系统参与进来从而完成定义的工作流程。这看起来就像EAI(EnterpriseApplicationIntegration企业应用集成)的特性而事实上它也可以说就是WorkflowEAI。同时|jBPM工作流应用开发指南我们也可以发现接口和接口之间的界定有些模糊难道接口提到的“工作任务列表”不能算是外部的应用程序吗?没错!这个问题确实存在这也就是为什么荷兰工作流大师Aalst在其著作《工作流管理模型、方法和系统》中写道“建议每个应用程序都由此‘应用程序执行服务’打开”的原因他是在建议统一这两个接口吗?总之接口在标准化方面众口不一。接口其他工作流应用接口服务。■用来处理若干自治工作流管理系统之间的工作交换例如实例转移、工作任务外包等。事实上WfMC组织的初衷是想通过这个接口来连接各个不同的工作流引擎和系统使它们在一个统一的标准下工作和交流。想法是非常不错的但是由于种种原因吧作者认为是商业利益的因素以及WfMC还没有强大到能“号令江湖莫敢不从”的地步所以到目前为止接口基本不被支持也就是说各大厂商的工作流产品并不能用同一种语言对话。但是随着jBPM推出的PVM流程虚拟机技术(这在本书的后面会涉及)的发展实现接口的障碍也许能被打破。您可以拭目以待。接口管理和监控工具。■虽然很多工作流管理系统特别是开源工作流管理系统实现的最简单部分就是这个接口但作者认为最能体现工作流管理系统在企业管理方面价值的就是这个部分它主要被用来搜集管理信息这包括诸如工作流系统功能管理工具、流程实时监视和控制工具以及工作效率分析和流程覆盖面分析等各种商业智能工具这为提升企业的管理能力、优化重组企业的业务流程、分析企业内部的工作效率瓶颈等提供了重要的量化数据支持。我们说“工业化解放人类的体力信息化解放人类的智力”这个接口提供的功能不正是解放了流程企业领导和决策者们的智力吗而这正是企业信息化的初衷、工作流管理的最终价值所在。传统的工作流管理系统在这个接口上的“短板”正为下一节要说的BPM(BusinessProcessManagement)这个概念的支持者提供了攻击工作流技术的口实BPM概念在这个接口上的强化成了很多人认为“Workflow系统”不等同于或弱于“BPM系统”的重要原因。事实上这都不过是些概念而已实现工作流管理系统、解决业务流程改进方面的问题才是我们所要做的。总结一下工作流管理系统参考模型的大接口各自强调了什么?第章工作流基础|接口提供流程定义。接口提供工作任务列表等客户端应用程序实现使用者与工作流引擎的沟通。接口支持外部应用程序参与工作流程。接口支持不同工作流引擎系统间的连接。接口提供监控工具搜集管理信息。还有一些问题供读者思考:接口和接口标准化工作进展较为缓慢为什么?读者可以参考上文的说明思考得出。接口和接口需要完善的地方很多例如流程和工作任务的事务、回滚(包括被动退回和主动取回的任务)问题在这两个问题上如何处理、怎么处理好、如何保持原子性如何进行“补偿”乃至如何支持“中国特色”的业务都是很有思考空间的。BPMBPM即业务流程管理(BusinessProcessManagement)。其注重点是通过建模、自动化、管理和优化流程来优化公司业务的效率和效果。BPM打破了跨部门、跨系统和跨用户强调端对端的业务流程。BPM系统运行在公司的内部和外部不仅员工客户、合作伙伴和提供商都能够进入该系统。同时在公司内部BPM的应用系统还包含了提升业务的可视水平和可预见水平的功能。BPM通常以Internet方式实现信息传递、数据同步、业务监控和企业业务流程的持续升级优化。从这方面来说BPM不但涵盖了“传统工作流”的流程传递、流程监控的范畴而且突破了“传统工作流”技术应用范围的瓶颈。BPM同样需要流程定义语言来描述流程。流程定义语言可以将企业中的各种业务流程表示成一种格式化(甚至可视化)的模型。BPM的相关技术标准可以用来定义业务流程和WebService的集成与部署以达成企业业务目标。也就是说BPM语言不仅拥有XML表示的流程定义还延伸到了SOAPWSDLUDDI等多项技术规格。|jBPM工作流应用开发指南除了WfMC的XPDL(XMLbasedProcessDefinitionLanguage)语言外当前的BPM相关标准和语言为数还不少较为著名的有:BPMI的BPML(BusinessProcessModelingLanguage)。ebXML的BPSS(BusinessProcessSpecificationSchema)。BEAMicrosoftIBM联合制定的BPELWS(BusinessProcessExecutionLanguageforWebServices,BPEL)。SunMicrosystemsSAPOracleItalio等公司共同制定的WSCI(WebServiceChoreographyInterface)。事实上这些标准都利用活动作为组成流程定义的基本元素运行过程中每一个活动伴随一组流程实例相关数据(InstantRelevantData)这个相关数据最重要的作用就是作为流程传递逻辑(RoutingLogic)的评估条件相关数据在BPML中称为Property在XPDL中称为WorkflowRelevantData在BPEL中称为Container。在着重点方面XPDL标准着重在工作任务分配的相关处理例如如何指定活动运行所需的资源与应用程序。BPML标准着重在定义WebService的相关处理例如支持事务与异常处理、定义特定消息交换与事件处置的活动模型。BPEL标准的着重点与BPML相类似。WSCI标准着重在Web服务界面的行为。BPSS以ebXML建议的模型化方法论为基础以支持在企业间以各种事务行为节点组合成所谓的企业协同应用为着重点。对于最新推出的jBPM来说由于其开放、可扩展的特性对于以上标准的着重点都有所支持或涵盖。因此对于jBPM的开发者而言在工作中尽情发挥就好了不必担心被这些概念上的东西所束缚。开源工作流选型Optaros(wwwoptaroscom)是著名的开源软件研究及解决方案咨询公司表是其年开放源码目录中对于开源工作流管理系统的点评和介绍值得参考(截止到年月)。第章工作流基础|表Optaros年开放源码目录基础设施解决方案业务流程和工作流程管理产品版本许可证支持功能社区支持成熟度ERRating趋势BonitaLGPL社区版★★★★★★★★★→描述:拥有基于“活动预测模型”的工作流引擎符合WfMC规范。只适用于Jonas应用服务器和JBoss应用服务器。网址:http:bonitaobjectweborgEnhydraSharkLGPL专业社区版★★★★★★★★★★★↑描述:拥有基于Java技术、可扩展的工作流引擎实现了WfMC规范即使用XPDL语言来定义流程。该项目提供了图形化流程设计器。网址:http:sharkobjectweborgIntalio|BPMSApacheEclipsePublicLicenseCustom专业社区版★★★★★★★★★↑描述:是一个业务流程管理平台提供了复杂的工具和底层技术用来支持流程的运行包括流程设计器(基于Eclipse)、流程引擎(ODE)和一些运行时组件。网址:http:bpmsintaliocomIXWorkflowLGPL专业社区版★★★★↑描述:基于Java体系的工作流系统负责持久化以及处理业务流程能很好地支持与DominoJBossSunGlassfish应用服务器的集成。流程设计器是基于Eclipse的插件。网址:http:wwwimixsorg|jBPM工作流应用开发指南(续表)产品版本许可证支持功能社区支持成熟度ERRating趋势JBossjBPMLGPL专业社区版★★★★★★★★★★★★★↑描述:灵活且可扩展的工作流管理系统。使用管理者和开发者都可以理解的语言(如jPDL或BPEL)来定义流程。其图形化流程设计器为Eclipse插件。网址:http:wwwjbosscomproductsjbpmODE(Apache)ApacheLicense社区版★★★★★★★★★→描述:基于Java组件的工作流引擎遵循BPELWS规范。ODE工作流引擎早于PXE工作流引擎面世。网址:http:odeapacheorg根据这份报告可以很明显地看出在众多的开源工作流管理系统中jBPM这个项目在各项评比中都居于第一位其许可证为LGPL可以在合法的范围内被作为商业应用。jBPM不仅有着开源社区的支持同时作为RedHatJBoss的子项目也具有一定的商业支持服务保证。尽管它还有一些不足例如流程设计器功能过于简化、对企业应用集成的支持有待完善等但毫无疑问它是众多项目型公司低成本工作流应用解决方案的不二之选。Shark在这份报告中应该居于第二位其严格遵循WfMC规范的XPDL流程定义语言无疑是个亮点这比jBPM主要采用自己的jPDL语言似乎更标准、更通用一些不过jBPM对BPEL的支持和PVM的设计理念让Shark的这个优势显得并不突出。其他的几个项目或多或少地存在着明显的短板有的甚至已经停滞不前了因此在国内的应用并不多见。值得注意的是在这份报告中参加评比的jBPM版本还是X而今jBPM已经逐渐成为主流而jBPM比之jBPM有着“飞跃”性的提升读者可以在后面的章节中逐渐体会到。第章工作流基础|jBPMjBPM全称是javaBusinessProcessManagement是一种基于JavaEE的轻量级工作流管理软件包由于jBPM架构的开放性它更像是一个支持面向流程编程的框架(Framework)。jBPM是开放源代码(OpenSource)项目使用jBPM要遵循LGPL开放源代码协议。以下的介绍将使您对这个著名的项目有一个概念性的认识。jBPM前世今生jBPM项目于年月由TomBaeyens发起年月发布版本。jBPM在年月日发布了版本并在同一天加入了JBoss组织成为了JBoss企业中间件平台的一个组成部分它的名称也改成JBossjBPM。随着jBPM加入JBoss组织以及JBoss被RedHat公司收购jBPM也进入一个全新的发展时代它获得了大量的社区和商业支持因此发展前景十分光明。jBPM主要采用了UMLActivityDiagram(活动图)的模型借鉴了PetriNet的token机制使用“无限状态机”模型控制流程实例的变迁。因此在理论模型基础上jBPM无疑是先进工作流产品。jBPM则引入了PVM(流程虚拟机)的设计理念为jBPM的“无限”扩展和集成提供了有力的底层功能支持。经过年多的发展JBossjBPM已经成为一流的开源工作流产品:每月超过次的下载量。极度活跃的用户论坛和开发者论坛。频繁更新Web站点和Wiki。本书以年第一季度最新发布的jBPM版本为主要参照来介绍jBPM。当然本书介绍的很多方法和思想不是与版本号“绑定”的即适用于所有jBPM版本甚至所有工作流系统的研究和开发。关于jBPM您需要知道的JBossjBPM是一个可扩展、灵活的能够实现工作流业务流程管理的企业级开发框架提供了流程定义、流程部署、流程执行、流程管理等功能。jBPM是JBoss旗下的子项目JBoss下还包括有Seam(JavaEE开发框架)、Drools|jBPM工作流应用开发指南(规则引擎)、Hibernate(ORM持久化框架)等众多领域的优秀开源项目。由于同属一个产品家族它们能与jBPM完美地结合互相都留有支持的接口方便开发者业务的扩展为jBPM提供延伸的价值。同时jBPM作为JBossSOA平台的一个重要组件与JBossDrools规则引擎和JBossESB企业服务总线配合在一起为用户提供全面、完整的SOA解决方案。JBossjBPM是一个支持“嵌入式”的业务流程管理产品理论上可以运行在任何JavaEE应用服务器之上也可以运行在桌面应用中。JBossjBPM在流程虚拟机(PVM)技术的基础上能够同时支持多种流程定义语言目前已经支持的流程语言有:jPDLBPELSeamPageFlow根据PVM的设计理念未来的JBossjBPM还会支持更多的流程定义语言。同时用户也能够根据需求定制自己个性化的流程模型和建模语言。jBPM的结构特点如下。嵌入式的工作流引擎jBPM是完全支持嵌入式应用的业务流程开发框架可以在事务处理、数据持久化等各个方面与业务应用程序进行灵活的集成。区别于传统的工作流平台它不需要依赖特定的中间件或服务器减少了硬件和软件的绑定同时降低了应用部署的网络复杂度使应用更加容易实现集群。软件开发者可以把jBPM框架作为业务流程管理的基础在此基础上开发自己独特的业务流程管理模块和功能。在部署时只需要把jBPM作为Java依赖库发布就可以了。可插拔的体系架构jBPM采用了模块化的架构设计采用了IOC(依赖注入)的设计理念各模块之间可以比较方便地解除耦合或替换不同的实现例如持久化、事务处理、身份认证、日志服务等都由可选模块实现。jBPM的可插拔体系架构为软件开发者灵活选择jBPM的功能、自定义已有功能和拓展新功能提供了“无限可能”。易扩展的流程语言jBPM框架内置的流程定义活动包括starttaskforkjoin和decision等是构建完整业务流程所必需的组成部分它们提供了可以将业务逻辑Java代码和业务流程第章工作流基础|编排无缝衔接的绑定机制。而除了这些内置的流程定义活动和流程结构之外软件开发者还可以通过定制新的活动类型或者完全重新设计一种新的流程定义语言来描述特定领域的业务流程满足独特环境下的需求。从技术角度分析jBPM的特点简单罗列几点读者必须要了解的:jBPM的模型仍然基于UMLActivityDiagram以便于需求人员和开发人员都理解业务流程。jBPM提供了可定制的Event–Listener观察者模式来处理事件触发以辅助活动扩展的处理。jBPM提供了灵活的EL条件表达式机制来辅助条件解析、简单业务逻辑脚本计算的处理。jBPM提供了可扩展的Task及任务分配机制来满足复杂人工活动的处理。借助HibernateORM的优势jBPM能够支持在几乎所有的数据库系统之上运行。jBPM作为一款开源的工作流框架其更多的是关注“如何辅助开发者更容易地让流程运行完成”而不是关注“记录流程运行的历史和轨迹”。这一点可能是东西方文化的差异性所在因为国内的流程应用比较关注“运行轨迹”。同时jBPM项目从一开始就是不直接支持自由“回退”、“跳转”等操作的这也是因为东西方文化的差异所在。西方人认为“往回流转的情况肯定也是一种业务规则所定义的那么肯定可以通过分支或条件流转来解决”而东方人则把回退作为一个“人性化管理和处理的潜在特点”来看待。当然这正是本书所要解决的问题之一在第章中国特色工作流的jBPM实现中会给出一些参考解决方案。具体到jBPM的当前发行版您需要知道的有:许可证与最终用户许可协议jBPM是依据GNULesserGeneralPublicLicense(LGPL)和JBossEndUserLicenseAgreement(EULA)中的协议发布的。如何获取jBPM可以从SourceForgenet上获取发布包:http:sourceforgenetprojectsjbpmfiles。如何获取jBPM的所有源代码|jBPM工作流应用开发指南可以从jBPM的SVN仓库里下载源代码:https:anonsvnjbossorgreposjbpmjbpm。如何从jBPM升级到jBPM很遗憾没办法实现直接从jBPM升级到jBPM。但本书提供一套建议的方法供读者实践参见第章升级jBPM到jBPM。如何报告问题在开发过程中遇到问题无法解决可以在jBPM开发者社区http:communityjbossorgenjbpm寻求帮助但发布问题需要遵循如下模板。===Environment==============================jBPMVersion:您使用的是哪个版本的jBPM?Database:使用什么数据库以及数据库的版本?JDK:使用哪个版本的JDK?如果不知道可以使用java–version命令查看版本信息Container:使用什么容器?(例如JBoss,Tomcat)Configuration:您的jbpmcfgxml中是导入了jbpmjar中的默认配置还是使用了自定义的配置?Libraries:您使用了jbpm发布包中完全相同的依赖库的版本还是您修改了其中一些依赖库?===Process==================================这里填写jPDL流程定义===API===================================这里填写您调用jBPMAPI使用的代码片段===Stacktrace==============================这里填写完整的错误堆栈===Debuglogs==============================这里填写调试日志===Problemdescription=========================请保证这部分短小精悍并且切入重点。例如:API没有如期望中那样工作或者ExecutionServiceSignalExecutionById抛出了异常。发布问题最好使用英文因为这个社区论坛是英文的。同时聪明的读者可能已经注意到了模板上的这些项已经指向了可能导致jBPM问题的几点原因特别是对依赖库和配置文件的调整是最容易导致问题的操作。所以开始在本书介绍的知识范围之外修改配置文件之前一定要谨慎同样在使用其他版本的依赖库替换默认的依赖库之前也一定要谨慎。第章工作流基础|小结通过本章的介绍相信读者已经对“工作流”和“jBPM”有了概念上的认识已经能够阅读一些充满专业术语的jBPM应用开发相关的技术文档了。那么我们言归正题进入jBPM应用开始您的面向流程之旅吧!在后面的章节中本书将不再花费大量的精力去解释工作流、jBPM相关的专业术语。如果您读到仍然感到迷惑的术语可以尝试到附录AjBPM术语中寻求解释。

用户评价(3)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/22

jBPM4工作流应用开发指南

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利