下一代的殺手級應用-BPEL網路服務商業流程介紹
■ 鄭富謙
前言
根據市場研究機構Gartner公司調查,截至2005年之前至少有90% 的大型企業將在企業內部應用BPM(Business Process Management,商業流程管理)系統。美國研究機構Forrester Research的調查亦指出,BPM軟體市場規模在2006年前產值預估將多達340億美元。BPM儼然已成為未來幾年內資訊科技應用的殺手級應用(Killer Application)。
同樣地,近年來SOA(Service-Oriented Architecture,服務導向架構)也成為資訊產業的當紅炸子雞,根據Gartner公司調查,2006年之前將有超過60%的企業,考慮以SOA作為建立未來資訊系統開發的基本原則。
以上這兩個熱門的資訊科技新名詞,雖然看似各不相關,實際上卻是存在著極為相輔相成的密切關係。
BPM(商業流程管理)與SOA(服務導向架構)
一、BPM(Business Process Management,商業流程管理)介紹
BPM(Business Process Management,商業流程管理)成為最新顯學的原因來自於過去幾年來企業陸續導入經營上所需的資訊系統,例如 ERP(Enterprise Resource Planning,企業資源規劃)、CRM(Customer Relationship Management,顧客關係管理)等系統,由於不同資訊系統彼此間須能相互整合溝通,但囿於資訊技術上的不斷更新 (例如 VB 到 Vb.Net),以及不同技術標準間的不相容(例如 J2EE 技術與 .Net 技術的競爭)使得資訊系統整合不易或是整合上需花費龐大的成本。因而對今日的資訊廠商來說,如何讓這些既有的資訊系統甚至未來新增的資訊系統能夠整合溝通,就變成一個截至目前為止最重要的議題。
嚴格來說,BPM是一種在商業邏輯設計層面而非技術實作層面上的一種能力,這種能力能夠去歸納現有流程邏輯、設計新流程邏輯、佈署流程系統、自動執行流程工作任務、分析流程執行績效等涵蓋一連串完整流程生命週期的步驟。
以往最普遍實作的系統整合方式主要是透過以下兩種方式---
1.資料層次(Data Level):
例如透過共用資料庫的方式。
2.應用程式層次(Application Level):
例如藉由應用程式介面(API, Application Programming Interface)的呼叫來進行跨資訊系統之間的異質資料存取,讓資訊系統能夠透過API傳遞資料的方式來整合。
然而,對於目前最重要的企業經營以及資訊技術來說,如何把各個企業內部的異質系統,在流程層次(Process-Level)上進行整合,才是整合上最大的挑戰課題。
二、SOA(Service-Oriented Architecture,服務導向架構)介紹
SOA(Service-Oriented Architecture,服務導向架構)則是一種新興的系統架構模型,其主要概念是針對企業需求組合而成的一組軟體元件。
組合的元素通常包括:
1.流程:主要定義外部要求的處理步驟。
2.服務:包括特定步驟的所有程式元件。
3.軟體元件:主要負責執行工作的程式。
透過這三個元素,SOA能夠讓異質系統整合變得容易,提高程式可用度。廠商不必自行開發所有程式或元件,開發的技術人員可以視情況需要來撰寫新的軟體元件,或是組合網路上既有所提供的服務。不再受限於特定廠商的產品功能或是平台,達到真正的開放性。
簡而言之,SOA是一個軟體整合框架(Integrated Framework),讓處於各種平台中連結鬆散(Loosely Connected)的程式或元件,以在異質環境中交換資料與流程。
三、BPM 與 SOA 的結合
在中間搭起 BPM 與 SOA 橋樑的便是大家耳熟能詳的 Web Services 技術,Web Services 技術可以讓跨平台及跨語言的資訊系統整合變得容易且可行。資訊系統可以根據 Web Services 標準加上一層介面,包成一個共用服務元件讓其他的應用程式呼叫以傳遞資訊。
【註】
事實上,SOA 並不是嶄新的觀念,DCOM 及 CORBA 規格中的 ORBs(Object Request Brokers)就是一種 SOA 的應用
Web Services 和 SOA 的完美結合可以使得 BPM 達到讓系統在流程層次(Process-Level)上進行整合的目的。
在 SOA 的架構中,BPM 可扮演的角色為串連各種服務以形成企業流程或資訊流,也可說 BPM 提供了流程管理的解決方案,由流程模型建置、流程分析、流程模擬、流程執行、流程監控及流程管理等功能組成。然而 BPM 若要成為 SOA 架構中,串連服務的資訊神經系統,除了要支援 Web Services,及提供介接既有系統的轉接元件之外,最重要的是還必須能夠使用共通認定的標準,使用不同 BPM 產品開發的資訊系統才有互通的可能。
BPM相關標準介紹
因為 BPM 架構在 Web Services/SOA 之基礎上,不僅會改造企業建構資訊系統的方法,也同時商業流程的執行方式。對資訊廠商而言,誰能主導 BPM 流程定義與執行的相關標準誰就是市場的贏家(Winners Take All)。BPM 的相關標準主要用來定義 BPM 和 Web Services 如何整合與部署以達成企業任務。多家軟體大廠和標準組織都架構在 Web Services 相關標準的基礎上,也就是說,這些標準都延伸了 XML、UDDI、WSDL、SOAP等幾項技術規格。
【註】
UDDI(Universal Description Discovery and Integration):提供註冊與搜尋Web Services資訊的一個標準。
WSDL(Web Services Description Language):描述一個Web Services的運作方式,以及指示用戶端與Web Services可能的互動方式。
SOAP(Simple Object Access Protocol):在網路上交換結構化和型別資訊的一種簡易通訊協定。
目前冒出的BPM相關標準為數眾多,主要有以下幾種---
JSR 207(Process Definition for Java)
WfMC's XPDL(XML-based Process Definition Language):
XPDL 標準著重在工作分配的相關議題,例如如何指定活動執行所須的資源與應用程式。
ebXML's BPSS(Business Process Specification Schema):
BPSS以ebXML建議的UMM (UN/CEFACT Modeling Methodology,模型化方法論)為基礎,以便支援在企業間各種組合而成的交易行為,亦即所謂的企業協同合作(Business Collaboration)。
BPMI's BPML(Business Process Modeling Language) & WSCI(Web Service Choreography Interface):
BPML標準著重在定義Web Services的重要議題,如支援交易與例外處理,定義特定訊息交換與事件處置的活動型態。
WSCI標準著重在Web Services的Choreography,像是服務介面的行為。
BPEL(Business Process Execution Language):
BPEL標準的重點與BPML相類似,主要是協調及調配Web Services,以便進行合作及交易。
OMG's Workflow management facility
RosettaNet
UBL(Universal Business Language)
這些 BPM 標準都是利用活動(Activity)作為流程定義之基本元件,每一個活動伴隨一個實體相關資料(Instant-Relevant Data),作為流程傳遞的邏輯(Routing Logic)評估條件,例如在BPML稱為property,XPDL稱為 Workflow-relevant data,BPEL 則稱為 Container。
在這些百家爭鳴的標準中,昇陽及甲骨文合作的廠商陣營則為了推動 WSCI,將這個規格標準送往 W3C,並都參加了 W3C 的 Choreography 工作小組。同時,BPMI 組織也向正在研究企業流程標準的 OMG 提案,希望 OMG 直接採納它們制定的標準,或是與 OMG 即將訂出的標準可以相對照。但是在這些標準之中,目前大家認為比較可能成為主流的標準則是 BPEL,BPEL 規格已經呈報到 OASIS 標準機構審核。
BPEL「網路服務商業流程(Business Process Execution Language)」介紹
BPEL 又稱「網路服務商業流程(Business Process Execution Language)」,是一種以 XML 來描述企業內部流程的語言,使原本建立在不同產品上的商業流程也能像網路服務(Web services)可以跨平台互通,由微軟、IBM、以及BEA三家資訊界的大廠合作開發,這些大廠相繼在其商業流程軟體中支援,微軟推出的 Biztalk Server 2004,就已經開始支援這個標準,而 IBM 也將 BPEL 的支援納入 Websphere 未來工作重點。有趣的是,原本微軟與 IBM 都各自推出自己的流程標準語言 XLANG 與 WSFL(Web Services Flow Language),但在2002年兩家大廠合作共同推出新規格 BPEL,並且向 OASIS 標準組織提出提案報告,最後也獲得OASIS認可。在今年WfMC在義大利舉行的技術大會中,與會廠商談論的聚焦從去年的BPMN(Business Process Modeling Notation by BPMI)轉移到BPEL。今年 SAP 和 Intalio 在支援WSCI之外,也決定支援 OASIS 的 BPEL。包括 Siebel在內的20幾家廠商也計畫採納 BPEL。此外,甲骨文今年在 Java One 發表了以 BPEL為基礎的流程模型化工具 (Modeling Tool) 以及工作流程自動化軟體。
昇陽和甲骨文藉著參加 OASIS BPEL 的會議,試圖推動 W3C 工作小組和 OASIS 之間的合作,解決兩個重複的標準。甲骨文已經正式加入 OASIS BPEL 技術委員會,昇陽也有意加入技術委員會。IBM、甲骨文、BEA、昇陽同為 WfMC 及 BPMI 會員,但 IBM、BEA 與微軟卻也積極推動BPEL。
既然 BPEL 看起來就將成為大勢所趨的商業流程標準,以下就以微軟根據 BPEL 標準提供的 BPM 技術與工具進行介紹。
微軟的BPM整體解決方案,主要由下列核心與支援元件技術構成:
1.BizTalk Server 2004
微軟用於 Enterprise Integration(EI)及 BPM 的中央平台,並具體提供 XML 與 Web Services技術的整合及自動化功能。BizTalk Server 2004具備兩大功能:作為流程執行引擎,以及傳訊與文件轉換的多重傳輸中樞。
2.Visual Studio.Net
微軟旗艦級的整合式開發環境。BizTalk Server 2004先前版本內的Orchestration Designer模組,目前是Visual Studio.Net內的疊覆範本(overlay template),具備更多重要的功能。這是視覺化的開發工具,用於建立包含商業規則、事務、交易、以及例外狀況的精細工作流程,並將上述要素與應用物件及傳訊事件作結合。組合的流程為 BizTalk Server 2004內執行的流程,產生以XML為基礎的執行時間指令檔(BPEL)。
3.Visio
包含的工作流程基本設計元素,與Visual Studio.Net的BizTalk Server 2004範本內的相同。在Visio中完成流程的設計之後,可以將流程匯入Visual Studio.Net,以便連結到應用物件。
4.SQL Server
與BizTalk Server 2004緊密搭配的關連式資料庫,做為它的即時資料存放區,以便儲存文件的追蹤資訊,以及長時間執行流程的dehydrated instance。
其中最重要的核心產品是BizTalk Server 2004,它是微軟提供BPM解決方案的關鍵產品,這項產品具體實現了XML與Web Services技術的應用程式整合,以及流程自動化功能。BizTalk Server 2004具有兩項核心功能:一是做為流程執行引擎,負責管理步驟、應用企業邏輯,並調用複雜流程或交易組的支援應用程式;另一是做為多重傳輸的傳訊中樞,以便轉換資訊,並安排應用程式與流程步驟所輸出,或接受輸入的資訊路徑。流程執行引擎也能記錄所有使用中流程的狀態與變數。
BPEL 的實作則是以XML Schema撰寫,正式定義了基本與結構化的活動。Visio與Visual Studio.Net的BPM 範本都會從圖表展現的流程中,產生BPEL指令集。BizTalk Server 2004包含流程執行引擎,這個引擎能依據傳訊事件發出的呼叫,來執行BPEL流程指令檔的執行個體。流程引擎也提供額外的管理服務,例如追蹤所有使用中流程的狀態與變數,其中許多屬於長時間執行。
因為 BPEL 指令集展現 XML 流程中具有的精確語法及結構化文法,所以提供易於閱讀、瞭解及決定性紀錄流程的指令集。事實上,Visio 與 Visual Studio.Net 所使用的原始物件是基本及結構化 BPEL 元素的直接呈現;例如接收、調用、順序、流程、切換、夥伴、角色、連結與來源。因為 BPEL 活動元素經過精確定義,所以能以無數的方式來擷取與執行。某項開發合作已經把營運流程替代性的圖形標示系統,直接對應到 BPEL。正如符合標準的瀏覽器能利用 HTTP 來傳送、接收、及顯示HTML頁面,任何符合BPEL標準的流程引擎將能執行 BPEL 指令集。個別的 Web Services 可用方法呼叫,或 SOAP 傳訊事件的型式,透過BPEL指令而協調、執行、與管理。
BPEL在 Visio、Visual Studio.Net、以及 BizTalk Server 2004內的結合執行,使得 BPM 與 Web Services 技術成為微軟建立下一代商業流程的基礎。
結語
BPEL 身為標準的 Web Services 協調語言,將在 BPM 的廣泛應用之中,扮演重要樞紐的角色。以 Web Services 的技術提供應用程式之間傳訊,以及在非結合性網路中方法呼叫的方法論,它們本身無法滿足營運流程的操作需求,這些流程的反應如同偶發及有順序的活動,其執行則能適時產生可預測及可重複的結果。如果 BPEL 應用於 BPM 環境,並獲得該環境的支援,就能使 Web Services 符合這些標準。
BPEL 加上 Web Services 技術作為 BPM 底層的協定將能解決跨流程(企業內跨系統與跨部門或是跨企業間)流程控管的技術問題。透過 BPEL 一方面將企業內系統整合流程化以及商業流程電子化。也同時能將客戶或是廠商的流程結合進企業流程中,以提高協同運作的程度。
參考資料
1.Tom Baeyens, "The state of workflow", http://www.jbpm.org/state.of.workflow.html。
2.Darryl K. Taft, "OASIS Forms Committee to Promote BPEL", http://www.eweek.com/article2/0,1759,1047671,00.asp。
3.Evelyn Hobson,『整合J2EE和.NET Web服務』, http://dev2dev.bea.com.tw/techdoc/05wi/05wi_040521.htm。
4.黃瓊慧,『以Web Services為基礎之動態商業流程協調整合架構』,南華大學資訊管理學系碩士論文,九十三年六月。
5.林宣佐,『運用企業流程語言描述關鍵企業流程之研究-以BPEL4WS應用於CPFR為例』,國立中正大學資訊管理研究所碩士論文,民國九十二年七月。
6.簡西村,『服務導向架構 (Service Oriented Architecture) 應用』,http://www.微軟.com/taiwan/msdn/columns/SOA/SOA_overview_2004112901.htm。
7.梁賓先,『誰來一統BPM江湖?』 http://taiwan.cnet.com/enterprise/column/0,2000062893,20093333,00.htm[/url]。
[url=file://Win2k-196705/mag/syscom/htdocs/mag/mag_table_100.htm]<回主頁>