文章目錄
SOA 新業務語言 新系統架構——SOA與BPM 在SOA和BPM聯合發展的浪潮下,我們首先要明確的是,BPM與SOA的本質是截然不同的:SOA是一種架構方法,BPM則是一組流程協調管理理念。沒有SOA之前,BPM產品已經出現並成功應用。BPM的主要應用場合有如下幾點: 1.商務程序自動化。這是商務程序自動化(BPA)的概念,BPA按照業務需求自動化流程,這是現在工作流程技術還在繼續做的事情。 2.整合應用系統,實現異構系統之間無縫交流。這涉及到EAI的概念,不過實現方法和老的EAI技術是完全不同的。 3.企業流程建模分析。這是BPM的核心,在詳細瞭解企業流程劃分之後,用全域的視角,對流程進行梳理,並給出企業流程全域圖。 4.監控企業活動,實現企業流程持續改進。這是商務活動監控(BAM)的功能,BAM需要用前面的企業流程全域圖,分析企業流程效果和效率,提供最佳化方向,實現企業級的流程管理。 在上面描述的BPM的四大應用場合中,每個都和SOA有千絲萬縷的聯絡。從技術層面看,SOA和BPM結合有多種方法,SCA的WS-BPEL用戶端和實現模型規範說明了WS-BPEL2.0怎麼樣和SCA結合在一起使用,具體方法有如下三種。
BPEL流程作為構件的實現 在SCA中,可以把一個有效BPEL流程作為一個構件的實現。對於一個構件的定義來說,可以使用子項目來表示本構件是用一個BPEL流程來實現的。子項目的process屬性指明了這個可執行檔BPEL流程的目標名稱。 這個方法是從BPEL開始的。先定義好一個BPEL流程,然後把它納入到SCA容器中去,1所示。
BPEL定義構件的類型 當一個構件使用了一個BPEL流程定義的構件來實現的時候,BPEL流程定義也決定了這個構件的類型。如果一個構件類型只使用WSDL介面來定義服務和引用,我們可以用BPEL來得到這樣的構件類型。這點可以通過“反射”機制來實現。 BPEL中的夥伴連結對應於SCA中的服務和引用。在SCA中,服務和引用的區別是在一次會話中,哪一方第一次發起通訊;而在BPEL中,夥伴連結是不關心誰是會話的發起者的。所以,為了在BPEL流程和構件類型中做一個映射,必須找到一個辦法鑒別出會話的發起人。在BPEL中,一個夥伴連結要想發起一個會話有如下可能:在活動中接收一個訊息,在活動的子項目中接收一個訊息,在一個事件處理器的子項目中接收一個訊息。在上述情況下,應該把夥伴連結映射為SCA中的服務,反之則映射為SCA中的引用。 如果夥伴連結映射為SCA中的服務,那麼服務的類型就對應於BPEL中的夥伴連結類型,如果夥伴連結映射為SCA中的引用,就和服務的情況相反。2所示,服務構件的服務是可以有WSDL PortType介面的。
為BPEL加入SCA擴充 我們可以在BPEL中加入SCA擴充,從而產生SCA的構件類型定義,並利用它來完成SOA的裝配。例如,一個BPEL的變數聲明可以包含一個SCA的擴充,這樣的擴充表明,這個變數代表了一個SCA構件的屬性。 從上面的討論看出,BPM和SOA結合的方法可以協助BPM實現更多的功能。在SOA環境下的BPM與非SOA環境下的舊式工作流程相比有如下的不同: 1.跨組織的商務程序描述語言和工具。在工作流程系統上馬早期,經常會發現同一個企業內部不同組織單元、部門的流程採用不同的描述方法,比如A/B/C/F四個部門的賬目管理系統採用某種工作流程系統,而A/B/D/E四個部門的訂單和銷售管理系統又採用另外一種工作流程系統。這種情況在大型企業集團內部尤為明顯,影響了各業務單元的業務協同和業務最佳實務的提煉和推廣。而BPM致力於跨組織的商務程序描述語言和工具,避免了企業各部門進行商務程序交流和溝通時各說各話的情況。 2.統一的流程架構。企業內部從單一管理主題出發進行設計的工作流程,通常在企業中缺乏對業務運營活動的總體考慮,局限於本部門或者本業務的業務需求,各部門和各管理專題之間的流程無法銜接,資訊的共用和傳遞困難,存在大量流程斷點。而BPM在流程之間進行銜接、協調,避免了流程孤島的產生。BPM的目標是形成端到端的流程體系,提高整個商務程序啟動並執行效率、成本、品質,在激烈的市場競爭環境下,滿足客戶的需求。 3.無“甲方優勢”現象。如果用一般的工作流程系統做介面,我們發現一個有趣的現象,就是服務提供者的“甲方優勢”現象。通常,一個工作流程系統要和另外一個已經存在的系統做介面,工作流程系統是有求於已經存在的系統,也就是已經存在的系統有“甲方優勢”。這樣,工作流程系統就必須按照已經存在的系統的技術規格來實現,離“跨組織的商務程序描述語言和工具”就越來越遠了,更不用談“跨企業的商務程序管理”。而BPM是在“工作流程系統”和“已經存在的系統”之間建立了一個公平的約定,不存在“甲方優勢”。 4.流程的持續改進。由於工作流程系統的存在,相關的業務人員通常已經忽略其內嵌的商務程序,業務部門對資訊系統內嵌的流程缺乏直觀認識和關注,工作流程系統的改進非常複雜,更不要談什麼持續改進了。但是BPM協助業務人員密切關注資訊系統內嵌流程與其他商務程序銜接關係,成為提高企業整體流程運行效率的最主要因素。 5.BPM的SOA本質。SOA是建立更靈活的企業基礎架構的架構方法,而BPM是一套協調的商務程序活動。SOA使使用者可以輕鬆完成將商務程序串連到基礎系統的任務,從而節省時間和IT資源。與之相比,將流程連結到傳統的應用通常要依賴大量不同的專有技術。而且,在採用BPM的同時轉向SOA,可以促進SOA組件的再利用,從而最大程度地降低商務程序本身的複雜性。 6.BPM一定是企業級的。要實施BPM,一定要樹立流程戰略、流程設計、流程實施和流程監控的迴圈管理理念:從企業的發展戰略出發制定流程的戰略,將戰略指標分解為流程的目標體系,通過流程實現戰略的落地; 根據流程戰略進行商務程序的梳理、設計和最佳化; 通過組織圖和資訊系統的調整來實施商務程序; 通過流程合規管理和流程績效監控,對流程執行情況進行監控;根據結果調整商務程序設計。 BPM和SOA已經聯合為相映生輝的狀態,一個企業商務程序的進階涉眾,應該從戰略高度針對企業流程進行梳理、分析、規劃,同時在戰術層面需要物色合適的企業系統架構師,以便正確地實施BPM和SOA的混合分步部署,在BPM流程分析基礎上,持續改進,識別出最有價值的商務程序模型去實施企業級SOA;在企業級SOA基礎上,逐步積累,更加深入廣泛地推廣BPM應用。而合理採用融合SOA和BPM的軟體產品,會帶來事半功倍的效果。查看本文來源