高效的业务流程是企业一贯追寻的目标。BPR(业务流程重组)的热潮之后,又产生了新的流程管理的思想和方法— 业务流程管理(BPM, Business Process Management),并立即成为企业管理前沿和研究热点。随着全球化竟争的日趋激烈,企业成为快速响应的流程企业的要求日益迫切,这时BPM则必不可少,它旨在利用IT技术建立一种贯穿于整个企业流程生命周期的管理机制,以使业务流程可分析、可管理、快响应、易变更。
BPM的标准为数众多,但从标准之争中脱颖而出的是BPMN和BPEL,它们正在逐步成为BPM中流程设计、编排和执行的主流技术规范,从流程柔性的角度来说,这与它们本身能够支持更多的流程管理柔性是分不开的。本文从体系结构和技术标准本身分析了基于上述两种标准的RPM技术柔性实现的原理。
1.BPM系统体系结构
以下是基于BPMN,BPEL和WebS ervices的BPM系统较为理想的体系结构,如图I。当前业界许多集成J一商所提供的平台产品大多遵照该体系结构和各技术标准做出部分实现,只是实现方式有所区别或者各有侧重。
在该体系结构中,核心是运行在J2EE应用服务器之上、BPEL服务器容器之中的BPEL运行时引擎,它用于执行BPEL流程。拾人的BPEL流程的XML代码由BPEL设计器编写.更想的情形是将BPMN图形化的流程模型通过转换器映射成BPEL语言,甚至在设计跨企业流程编排时还可以利用CDL工具包以WS-CDL(Web ServicesChoreographyD efinitionL anguage,W eb服务编排定义语言)定义的企业间消息编排为翰人生成初始的BPMN模型。
BPEL流程经过流程仿真器和流程分析器分析验证后部署至BPEL服务器并储存于流程数据储存库。流程执行中所需的外部流程,系统将使用标准的Web服务方式(即HTP的SOAP)与之交互;而内部包括遗留系统在内的异构资源则可利用各种各样的集成技术(JMSJCA,CORBA ,DCOM,MOM和Web Services等),但综合考虑到性能和集成难度等问题,可以使用WSIF (Web Service InvocationFramework, Web服务调用框架)和WSDL资源适配器统一将所有资源作为WSDL描述的Web服务来对待,底层维持原生协议(二进制协议)通信,由此屏蔽底层对异构资源调用上的差异而又不牺牲性能,提供了应用集成的基础架构,这是企业服务总线(ESB)的方式,另外还支持运行时改变消息路由和转换逻辑。该层的UDDI注册表的服务发现能按特定准则动态匹配服务,并提供服务描述和端点引用,这是面向服务流程动态性实现的必要条件。
流程参与者通过工作列表应用程序参与流程,执行所需的人工型活动;系统管理员利用管理、监控和报表工具来维护和跟踪流程的状态,包括流程维护、流程测试和性能调优以及仪表板(Dashboard)式监控或者业务活动监控(BAM Business Activity Monitor)等,实现了具备反馈机制的闭环BPM。这些工具是通过特殊的语言和API与引擎交互的。BPEL引擎能够读写流程数据储存库,从而持久化流程状态或者将其恢复,以支持长时间的运行。
业务规则方面,由于业务是流程变更的驱动,因此将业务规则从流程逻辑中剥离出来置于BRS(Business Rules System,业务规则系统)中进行集中与独立的维护和管理。而通过Web服务的方式将规则引擎集成进来是大多数产品的解决方案,业务人员可以不需要在技术人员的指导下利用界面友好的规则编辑器独立的制定业务规则,储存于规则库中,并由规则引擎查询匹配。
2.柔性原理分析
2.1BPMN的柔性建模.
业务流程建模符号(BPMN)是由BPMI (BusinessP rocessManagement Initiative)提出的基于流图技术和过程代数的PI-演算(一种移动进程代数,可用于对并发和动态变化的系统进行建模)的,运用简单图形元素及其组合表示复杂流程逻辑的,跨平台、跨人员的业务模型图表规范。利用它可以对业务流程进行动态地、柔性地建模,并且利用数学理论严格验证其一致性和有效性,同时依照BPMN标准映射转化成流程执行语言(如BPEL)描述的可执行流程。作为BPM中建模设计最好的解决方案,BPMN具有如下特性:
(1)简单可读,以往工作流模型过于复杂,不便于在不同人员间交流和沟通。而BPMN图形直观形象,流程整个生命周期所涉及的不同人员都能够轻易理解,因此其成了贯穿BPM始终的依据。
(2)语义丰富,提供更完整、更适合于描述业务流程的基本元素,如流对象中的事件类,并且支持更多的流程模式,如多实例化和条件设定等,更有利于复杂逻辑的描述。
(3)灵活可扩展,提供如异常处理、事务性和补偿等高级建模概念,还可以给基本类别的元素附加上变化信息以支持复杂流程,通过对工件(Artifacts)自定义扩展允许建模人员灵活地扩展基本符号以提供附加的上下文环境,从而支持特殊情境下的建模。
(4)支持到BPEL的标准映射,规范中包含详细的BPMN图表到BPEL可执行语言的映射关系,具备了设计到实现的柔性,为支持模型驱动体系结构(MDA)和业务驱动的开发提供了基础。
相比传统工作流的建模方法,BPMN不仅标准化了业务人员之间、业务与开发人员之间交流的描述方式,还为从业务分析人员图表自动生成流程开发人员所需的代码骨架提供了支持,因此具有更大的灵活性和柔性。
2.2 抽象与实现剥离
BPEL是由结构化信息标准促进组织(OASIS)颁布的业务流程执行语言规范,是基于工作流的Web Services合成技术,具有抽象与实现剥离的特性。
BPEL依赖并扩展了原始的WSDL1.1规范,遵循该规范在抽象接口关系和具体部署描述信息之间的区分原则,增加了合作伙伴链接类型(partnerUnkType)的定义,该类型定义封装了交互的接口关系,即提供服务方需要定义交互中所扮演的角色并给出服务的抽象接口(端口类型),这是BPEL抽象与实现剥离特性的基础。
BPEI.规范强调,流程以外的所有调用者和被调用者在接口级的交互关系的结构被封装成了合作伙伴链接(partnerLink ),所依赖的Web服务接口WSDL只须定义到portType抽象元素,而具体的绑定协议和服务端点由低层BPEL容器在部署时生成。因此设计时只需在抽象层次上灵活编排Web服务,服务之间的依赖保持在抽象层面,对具体绑定所支持的交互模式无需定义任何约束,由此延迟了资源绑定从而增加了语言的通用性和跨平台性。
2.3 流程=服务
虽然Web Service。具有在分布式、异构应用集成上的优势,但它是无状态的,既服务调用之间不保留任何共享的业务状态信息,对于需要支持应用过程中的异步和长时间交互,尤其是包含多个步骤、需要多方参与的跨企业的应用集成,单一的Web Services显然是不够的,而BPEL是面向服务和基于Web Services的,除了具有Web services可移植、互操作和松散藕合的特点以及快速集成的优势外,它灵活组合所需服务成为更大粒度的服务供其他流程调用,并且定义了交互之间的状态、协调逻辑以及异常情况下的处理方式。利用这种面向服务的流程嵌套定义和服务合成特性,企业能够很容易地建立流程并使用Web Service。为流程绑定资源与应用,以及通过状态数据持久化操作和异步消息关联机制(BPEL本身关联集CorrelationSets或WS-Addressin‘的SOAP消息头寻址)支持流程过程中的异步长时间
交互,从根本上解决了传统工作流资源集成和绑定困难以及对异步和长时间交互支持较差而导致工作流缺乏柔性的问题,也为流程运行时修改和绑定资源打下坚实的基础。
2.4 合作伙伴的动态绑定
BPEL规范所倡导的抽象与实现剥离的语言特性是BPEL实现流程可重用性、可扩展性和柔性的基础,但作为技术规范,它不涉及流程部署细节。换句话说,流程部署至容器时仍需依赖于具体平台实现,即已部署的被调用服务的WSDL必须完整包含绑定、服务、端口等,导致合作伙伴服务端点的信息不能在运行时绑定和修改,从而流程缺乏柔性。
BPEL规范中提到的通过操纵端点引用(EndpointR eference)类型的变量能够延迟建模和资源绑定,实现了流程一定程度的适应性柔性。端点引用是由Web-Addressing规范定义的用来描述Web服务端点(端点Endpoint是用于访问Web服务目的地的确定术语)信息的复杂类型,它包含地址(URI)、 引用属性、引用参数、端口类型、服务名称、策略元家(由WS-Policy规范定义),其中地址是唯一必需的元素。BPEL将合作伙伴服务端点中需要动态变化的信息表示为端点引用,这样实际的合作伙伴服务能够在流程运行时动态决定或者修改,从而实现资源的动态绑定。
2.5 异常 、事务和事件处理
要达到流程适应性柔性,流程必须具备处理突发和异常事件的能力。BPEL流程提供类似Java的层级式的异常处理机制显式地捕获和处理在Web服务调用及流程执行的错误和异常。通过执行与特定作用域(全局和局部)相关的<faultHandlers》和<catch>元素中指定的异常处理子程序来达到流程适应性的柔性,这些子程序可以是任意的处理程序,包括通过接口界面由人工干预处理突发的、不可见的错误和异常。
相应的,如果涉及Web服务调用间长时间运行的事务,BPEL以<scope>为一个可补偿的工作单元,通过<compensationHandler>和<compensate>元素来定义撤销相应<scope>和恢复数据的操作以保持流程的事务性。另外,如果使用WSIF集成支持事务的Java资源,WSIF支持使用Java事务API (JTA)在资源之间自动传送事务语境。如果出现异常,则整个事务将自动回滚,而不必在BPEL流程中定义补偿处理程序。另外BPEL事件管理支持两种类型事件:通过传人消息调用端口类型而触发的消息事件,在某段持续时间之后或在特定时间被触发的警报事件,分别用<onMessage>和<onAlann>元素表示,然后用<pick>元素或<eventHandler>元素包含前两者分别表示流程应等待事件和流程执行中对事件的响应,有利于对企业内外部业务环境变化所导致的事件触发、响应和处理进行建模,增强了流程语言的柔性语义。
3.结论
综上所述 ,基于BPMN和BPEL的流程管理技术无论从主要技术本身还是从体系结构中其他技术的支持方面都体现了良好的柔性,必将成为未来企业围绕业务目标与核心竞争力实现业务流程柔性化管理、建立实时企业(Real-TimeEn terprise,RTE )的主流驱动技术。