书讯 -- Essential Business Process Modeling

定位模糊标准繁多的 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 ServiceMQ/SeriesJDBCJ2EECOM.NETMCF…等等

而该章第 25 BPM 架构图 2-2 是个不错的概观指引,勾勒出 BPM 系统的基本元素与互动关系。

第三章稍微解释了 BPM 的数学理论基础:Pi-Calculus Petri Nets,对笔者来说,这似乎遥远了些(看懂数学表示法的意义后,只高兴了几秒钟,因实在难与实务连结)。该章的后段稍以 UML Activity Diagram State Diagram 两种图形,辅之以保险理赔为背景故事,描述流程中的状态变化,藉以解释状态机器(state machine)和商业流程的关系。

在第四章中,作者表列针对流程设计常用的 20 种流程设计模式(Process Design Pattern)[1],此为 van der Aalstter HofstedeKiepuszewski 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。而本书作者再引功能近似的 BPMNUML 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.orgwww.wfmc.orgwww.omg.orgwww.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.htmlOracle 提供相关 BPEL 的资源,主要是 BPEL 引擎。



[1] 作者称这四人为 Process Four P4,刚好对应了一般程序分析设计时,常借镜学习的 23 个设计模式,一般称其作者 GammaHelmJohnson Vlissides 4 人为 Gang of Four(GoF) J

 

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1593950


你可能感兴趣的:(process)