我們在上一期,談到一些Web Services技術及SOA架構。Web Services提供了一個以標準為基礎的介面協定,讓不同的系統、甚至不同的公司,都可以很容易的整合在一起,我們可以用各個系統所提供的服務組合成所需的系統或服務。這種堆積木的組合方式,正是SOA所要達到的目標,然而,有什麼標準來定義這樣的組合方式?
一直以來,程式設計師很習慣於用程式語言來控制複雜的邏輯,用系統介面(API)來呼叫外界的程式;然而在SOA的架構下,服務成為了主體,複雜的邏輯被包含在服務中,或者被拆散成不同的服務。因此要建構一套系統,必須先找到或產生所需的相關服務,最後再用簡單的邏輯把這些服務串在一起。從前這樣的工作通常是用流程圖來設計,再請程式設計師把它轉換成程式語言,然而流程圖只適合用來做高階設計,不能表示平行處理、同步、事件等,因此專門表示流程示意圖的標準BPMN(Business Process Modeling Notation)應運而生。BPMN可以直接描述流程的執行細節,並且轉換成的流程執行語言(BPEL,Business Process Execution Language),或直接在流程管理系統(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
了解流程設計圖示的標準後,讓我們來看看流程執行語言的標準。這部分的標準與BPMN正好相反,各個標準制定組織及大型軟體公司爭相訂定流程執行的標準,結果則是標準太多而讓人眼花撩亂、無所適從。其中與流程相關的標準包括了Microsoft提出的XLANG(XML business process LANGuage)、IBM提出的WSFL(Web Services Flow Language)、HP提出了WSCL(Web Services 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的架構能普及到各系統。
《作者簡介》黃仕鎮
超義科技總經理,BPM暨B2Bi研究團隊領導人,國立中央大學助理教授,NYU紐約大學碩士/博士。曾服務於美國AT&T貝爾實驗室,為AT&T研究中心物件導向設計概念委員會(Object Oriented Technology Committee)成員,致力協助AT&T內各研究發展計劃演進至物件導向式設計概念和Web-based N-tier系統架構,以增進系統運作能力和未來發展的彈性;專精於SOA、Web Services、BPMN、POA……等當代e-business技術架構。
熱門新聞
2025-01-15
2025-01-13
2025-01-14
2025-01-14
2025-01-13