定位模糊标准繁多的 BPM
BPM(Business Process Modeling 另作 Business Process Management)让系统整合的层次提升到商业用户,而非仅是 IT 人员,透过流程优化提升企业竞争力是所有人的梦想与职责。但由于整个企业的商业流程浩繁,IT 技术与产品多样,整体架构要兼具弹性、效率、稳定等互斥的面向。这让架构工程师(Architect)很难规画可大可久的 BPM 架构。因为它不仅仅是买个 BPM 流程引擎或设计接口,还牵涉到商业流程的规划,应用系统的开发与整合。长期以往尚需延伸系统的功能、版本升级、安全架构、分析与监控流程的执行…等。
BPM 的想法与产品由来已久,但在国内 IT 人心中的定位大都混沌不明。在国外虽行之有年,但竞逐的标准繁多。例如 IBM 和微软、BEA 等首倡;并由 OASIS 审核的 WS-BPEL(Business Process Execution Language for Web Services)、BPMI 协会的 BPML(Business Process Modeling Language) 和 BPMN(Business Process Modeling Notation)、W3C 的 WS-CDL(Web Services Choreography Description Language)、WfMC 协会的 XPDL(XML Process Definition Language)、OMG 的 MDA(Model-Driven Architecture)…等等。有这么多的相关标准,但没有独大的厂商,怪不得关于 BPM 产品的架构优劣,如何满足企业 BPM 的需求等议题,至今众说纷纭。
内容介绍
或许 BPM 正在酝酿起飞中,而国内的著述或引进的原文书不多。且因为市面上的多项产品实做方式差异颇大,而各家企业的商业流程更是不同,因此难有逐步引导的书籍。
在此介绍一本关于 BPM 理论不错的书:Essential Business Process Modeling,出版商 O’Reilly。作者是任职于 IBM 的架构师 Michael Havey。本书的内容偏向 BPM 标准的来龙去脉,而非图解式地介绍以某项产品完成几个企业基础的流程。本书的读者应该是企业内的架构工程师,在规画系统,选择产品前可参考本书。而非学习如何写程序代码,定义数据库架构的开发人员。
本书的内容呼应了书名,讨论的是 BPM 之本质(essential)。看完后,你可以了解什么是BPM、建制该系统时需要的背景知识,但做不出一条自动化商业流程。因为它没有以单一产品为背景,从头到尾详细解释产品功能,逐步做出一个 BPM 系统。因此,这是你筑底的背景,并非应用的招式。可培养看问题的深度,但恐怕无助于当下问题的解决。
本书大分三个部分,前四章是本书第一部分,介绍 BPM 的概念。第二部分从第五章到第九章,分别介绍 BPM 各个面向的标准。第三部分为本书的最后两章,以两个例子来介绍 BPM 的实作。
在第一章中,作者介绍了何谓流程,又何谓 BPM,以及导入 BPM 的好处。不过笔者觉得有趣的是他归纳流程导向(process-oriented)的程序特征如下:
l 运行时间长(long-running):某个流程的实例从开始到结束,可能经年累月。
l 要保存状态(persisted state):流程过程中的数据需要长时间保存管理,并提供查询与更新。
l 个别动作变化迅速,但整体流程大部分时间都处于停滞(Bursty, sleeps most of the time):流程的实例大多数时间都是停滞的,等待下一个事件触发后醒过来,赶忙执行相关的动作(Activity),并切换状态。
l 协调系统以及人际之间的沟通整合(Orchestration of system or human communications):流程要能协调、管理并整合多个异质系统和人员。
除了基本特征外,书中在第二章介绍 BPM 所面对的基本问题:
l 设计:BPM 需要提供可以直观绘制商业流程的软件接口,使用接口须让商业分析师(business analyst)容易上手,而非仅是 IT 专业人员,让这两种人有共通的图形语言,且该语言需要严谨而简洁。
l 执行:需要能准确执行使用者所绘制的流程图。但其间流程图会先转化为专门用来描述流程的专属语言,如 BPEL,流程图与流程语言可以轻易地互转,期间不要参杂需编译解析的程序语言。因为程序语言会降低商业流程开发的顺畅性,让设计与执行间夹杂了 IT 技术的鸿沟。
l 监控与管理:监控各流程的执行状况,以处理个别流程例外状况的发生,并统计各个流程的执行,ad-hoc 查询各种数据。可以新增、检视流程定义、启动、暂停、回复、中断、删除各流程与其实例。而这些监控与管理的机制除了透过套装工具提供外,最好还能整合进用户自己的应用程序中。
l 与人的互动:一些流程中的步骤需与特定的人或角色互动,除了友善的接口、弹性的流程步骤、安全的角色控管外,并可以在人机接口与流程引擎间整合交换数据。
l 与系统的互动:步骤中可以呼叫外不程序,或是被程序呼叫。这些程序可能是企业内部的组件或系统,但也可能是企业外的协力系统。这部分最重要的是与各种 IT 技术整合的弹性,如 Web Service、MQ/Series、JDBC、J2EE、COM、.NET、MCF…等等
而该章第 25 页 BPM 架构图 2-2 是个不错的概观指引,勾勒出 BPM 系统的基本元素与互动关系。
第三章稍微解释了 BPM 的数学理论基础:Pi-Calculus 和 Petri Nets,对笔者来说,这似乎遥远了些(看懂数学表示法的意义后,只高兴了几秒钟,因实在难与实务连结)。该章的后段稍以 UML 的 Activity Diagram 和 State Diagram 两种图形,辅之以保险理赔为背景故事,描述流程中的状态变化,藉以解释状态机器(state machine)和商业流程的关系。
在第四章中,作者表列针对流程设计常用的 20 种流程设计模式(Process Design Pattern)[1],此为 van der Aalst、ter Hofstede、Kiepuszewski 和 Barrios 等四位学者提出。而这 20 种模式将一般的流程变化分为六大类:
l 基本型(Basic):如循序、分岔后平行执行、择一执行、合并等。
l 进阶的分岔与合并(Advanced Branch and Join):如复选、同步合并、多重合并、M 取 N 合并等。
l 结构化(Structural):如任意循环、隐含结束等。
l 多实例(Multiple Instance):如不同步、设计时期决定、执行时期决定、执行时期动态决定。
l 状态(State-Based):延迟选择、交错平行绕行、里程碑等。
l 取消(Cancellation):停止活动、停止流程等。
但就本章其后的 Yet Another Workflow Language(YAWL) 一节,可以看到不只是前述流程定义的规格,而实做的产品也处在战国时代。因为上述四位学者归纳出大部份的供货商都未完整支持这 20 种流程设计模式,且没有标准的图标和语法来描述这些设计模式,因此制定了 YAWL。而本书作者再引功能近似的 BPMN、UML 的 Activity Diagram 和 BPEL,以及 Java、
C++、Smalltalk 等程序语言与 GoF 设计模式的关系,来强调 YAWL 不重要L。
接下来五至九章都是介绍规格,就笔者个人觉得,第五章 Business Process Execution Language(BPEL)和第九章 Other BPM Models 可以花些时间去了解,因为 BPEL 的声势较大,且最后两章的范例多以 BPEL 程序代码来表现。而第九章内容是综合陈述,且较贴近产品面。其它章节所描述的规格可以稍微浏览,碰到相关问题时再回来精读。
本书的最后两章搭配 Oracle 的 BPEL Process Manager 当作 BPEL 流程引擎,以非常简单的流程提供实作范例,但太多地方仅表列 WSDL 和 BPEL 程序代码,很容易让人失去耐心L。
其中,第十章透过 BPEL 设计简易的寿险理赔流程,主要示范一般的人事流程,搭配 Eclipse开发环境和 Oracle BPEL Process Designer 0.9.10 for Eclipse 来绘制流程,并交由 BPEL 引擎执行。同时,作者指出该版本 BPEL 引擎的 BugL,并解释他本人补救的方式。
最后一章讨论 Message Broker 的概念。本章的 Message Broker 或可视为 Enterprise Service Bus(ESB)理念的基础架构,ESB 希望提供企业间系统整合时,有效交换讯息的平台。也就是若企业有 N 个系统,若彼此之间要整合并交换讯息,则需要建立 N*(N-1)/2 个接口。但若有标准而集中的讯息整合平台,各系统都只连接到该平台,而这个讯息平台根据既定的规则交换数据,则 N 个系统只需要建立 N 个接口。而单就 ESB 这个主题在众厂家极力鼓吹 SOA 概念的今天,由于服务导向隐含了讯息导向,因此 ESB 本身就是个值得探讨的议题。本章中,作者以人事医疗流程来示范,讨论同时多个流程执行时,定义标准 XML 讯息的重要。
这是本稍嫌枯燥的书,很难让人耐着性子一口气看完。不知你是否喜欢读法律条文,我是花了好多天翻来覆去地选读,烦了就丢到一边,别的事情做累了,再回来看看。外加很多的名词需要从 BPM 的角度重新认知,这也是本文大量夹带英文的原因。但读完之后,觉得对 BPM 的定位与规格有更深一层的认识。另外,每章最后都有结论,让你可以重点温习该章节的内容。毕竟理论看久也昏了J,有个提纲挈领的概要,能收画龙点睛之效。
相关阅读
除了本书外,你也可到以下的网址稍微了解与 BPM 相关信息:
l Google 和 Wikipedia:本书有非常多的专有名词,啃这本书让笔者觉得好像回到研究生时代,随便看篇论文,需要找的相关论文可能远超过起始的预期。不过现在有 Google 和 Wikipedia 真好J。
l 本书的各章大多附有参考数据,可提供你延伸阅读。
l 提供 BPM 相关标准的网站:www.bpmi.org、www.wfmc.org、www.omg.org、www.oasis-open.org。
l 一些提供 BPM 产品的供货商网站:
n http://www.ascentn.com/:以 .NET 为基础的 BPM 产品。
n http://www.pegasystems.com/:以 Java 为基础的 BPM 产品。
n http://www.microsoft.com/biztalk/default.mspx:微软提供的流程引擎,在 EAI 享有盛名,但其核心语言目前仍是 XLANG,可对 BPEL 做汇入/汇出。
n http://www.oracle.com/technology/products/ias/bpel/index.html:Oracle 提供相关 BPEL 的资源,主要是 BPEL 引擎。
[1] 作者称这四人为 Process Four 或 P4,刚好对应了一般程序分析设计时,常借镜学习的 23 个设计模式,一般称其作者 Gamma、Helm、Johnson 和 Vlissides 等 4 人为 Gang of Four(GoF) J。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1593950