BPM
迷您課程第3回:現代Business Process Management的架構及技術(下) |
BPMN 與 BPEL |
原文刊載iThome 電腦報/214期 2005/1028 |
| 我們在上一篇的文章裡,談到了一些Web Services技術及SOA架構,Web Services提供了一個以標準為基礎的介面協定,讓不同的系統甚至不同的公司都可以很容易的整合在一起,我們可以用各個系統所提供的服務組合成所需的系統或服務。這種堆積木組合方式正是SOA所要達到的目標,然而,是不是有什麼標準來定義這樣的組合方式?
|
| |
一直以來,程式設計師就很習慣於用程式語言來控制複雜的邏輯,用系統介面(API)來呼叫外界的程式,然而在SOA的架構下,服務成為了主體。複雜的邏輯被包含在服務中,或者被拆散成不同的服務。因此要建構一套系統,必須先找到或產生所需的相關服務,最後再用簡單的邏輯把這些服務串在一起,從前這樣的工作通常是用流程圖來設計,再請程式設計師把它轉換成程式語言,然而流程圖只適合用來做高階設計,不能表示平行處理、同步、事件等,因此專門表示流程示意圖的標準BPMN(Business
Process Modeling Notation)應運而生,BPMN可以直接描述流程的執行細節,並且轉換成的流程執行語言(BPEL)或直接在流程管理系統(BPMS)上執行。
|
| |
| 什麼是BPMN |
| BPMN是BPMI(Business Process Management Initiative)這個組織花了兩年多的時間制定的。正式版1.0是在2004年的5月發表的,在此之前,流程設計的圖樣並沒有標準,而是由各流程模型設計公司如IDS
Sheer(ARIS)、ProActivity、Popkin、Casewise、MEGA等或由顧問公司自行定義。此外,其他標準也常會定義一些流程相關的圖示,包括UML的Activity圖、ebXML的BPSS、Activity-Decision
Flow(ADF)圖、IDEF等。這情形有點像物件導向設計在UML還沒有出現之前,百家爭鳴的情況。 |
| |
由於沒有一定的標記及共同的語言,使用者常需要花上一段時間才能瞭解不同產品所設計出的流程,造成使用上的困擾即進入障礙。有鑑於此,BPMI便發展出了BPMN,其主要的目的就是要讓所有的使用者都有一個共通的語言,從顧問分析師、流程設計師、企管經理到維護工程師都能很容易的溝通及了解。
|
| |
BPMN統一了流程圖的格式及各種圖形線條的意義。舉例來說,圓形記號代表事件(Event),其中細邊圓形表示起始流程事件,粗邊圓形表示結束流程。此外,和傳統的流程圖一樣,菱形代表流程控制,除了決定流程進行方向之外,也可以決定平行處理(fork)與結合(merge)。真正要執行的工作或服務(Activity)則是用長方形來表示。這些工作也可以是另外一個流程,稱之為子流程。在線條上,除
|
| |
了連結流程節點的實線之外,還有連結其他物件如註解的虛線以及代表訊息流向的破折線。BPMN除了應用在系統及公司內部的流程設計外,也可以用來設計跨公司的公共流程(Public
Process)以達到B2B整合。在這種設計圖中,就可以用訊息流向的線條把雙方的流程與訊息的傳遞表達的很清楚。除了流程設計之外,BPMN的另一個目標則是要拉近流程設計與執行的距離。因此BPMN定義了各個元件對應到流程執行語言(BPEL)的細節,可將設計的流程圖直接轉換成可執行的語言
|
| |
| 什麼是BPEL(Business Process Execution
Language) |
| 了解流程設計圖示的標準後,讓我們來看看流程執行語言的標準。在這部份的標準與 BPMN
正好相反,各個標準制定組織及大型軟體公司爭相訂定流程執行的標準,結果則是標準太多而讓人眼花撩亂、無所適從。其中與流程相關的標準包括了Microsoft提出的
XLANG (XML business process LAN Guage)、IBM提出的WSFL (Web ServicesFlow
Language)、HP提出了WSCL(webservices conversation Language),前兩者(XLANG與WSFL)結合後產生了BPEL,交由OASIS組織訂定為標準;而WSCL則演化成為WS
choreography 由W3C訂定為標準,除此之外,工作流程組織WFMC也訂定了一套標準XPDL(XML process
Definition Language),而BPM組織BPMI也訂定了BPML(Business Process Modeling
Language)。執行標準增加了互通性、重複使用性,減少開發人員學習的需求以及轉換成本。有了互通性,系統間才能互相溝通、了解,進而降低系統的轉換成本。由於各大廠的支持,BPEL是目前最為業界所接受使用的流程執行標準。
|
| |
| BPEL扮演著服務之間合作的指揮者,描述了流程控制如分支、迴圈、平行處理、訊息處理及關連性、例外處理等。BPEL是一個用XML來描述企業流程的方法,把不同的web
services連結在一起而產生新的解決方案。這樣的組合方式與從前用程式把服務串在一起的方式相比較,顯的更有彈性且更容易管理。使用者可以透過不同的組合方式快速改變或產生新的解決方案。不過由於BPEL過度著重於web
services的協同作業,在人員整合及支援上明顯不足。因此有業者提出包括BPEL4People等的標準來補強。 |
| |
從技術的角度來看,SOA架構以及Web Services 是非常好的設計發明。運用了internet網路標準、並勾勒出了下一個世代的軟體架構。然而服務間協同運作的方法及標準則未提及。本文就流程設計及執行標準做了初步的探討,希望能藉由這些標準的訂定及成長,可以讓未來服務間的串接更容易,進而達到快速設計、隨插即用的地步,讓SOA的架構能普及到各系統。
|