|
SOA的主要目的是實現(xiàn)業(yè)務的敏捷性,而軟件(業(yè)務流程管理)是SOA價值的關(guān)鍵所在。但在SOA實踐中,對于流程管理軟件仍面臨著不少困惑與選擇。有些項目把業(yè)務流產(chǎn)品用作工作流設計,而有些工作流為主的產(chǎn)品工具卻作為業(yè)務流實現(xiàn)。這里簡單地討論一下流程管理軟件中業(yè)務流與工作流的作用區(qū)別。 簡言之,業(yè)務流程管理主要包含業(yè)務建模,組裝,部署及管理。使用業(yè)務流或工作流工具似乎都能設計開發(fā)業(yè)務流程管理。但從SOA的角度,服務的劃分及交互通常是項目關(guān)注的重點。所以,SOA強調(diào)的是如何靈活組合業(yè)務服務。而業(yè)務流的核心功能是編排流程服務,并且主要針對企業(yè)級應用整合。同時利用流程管理軟件工作流的主要功能,諸如:活動(任務)節(jié)點的人工任務配置,流程運轉(zhuǎn)時的活動節(jié)點調(diào)控等。 工作流與業(yè)務流的主要區(qū)別 現(xiàn)在來簡要概述一下工作流與業(yè)務流的主要區(qū)別。 架構(gòu)模式 工作流,簡單地說,是定義,構(gòu)建及執(zhí)行流程。工作流基本上屬于面向應用的流程架構(gòu),例如,典型的人工審批流,頁面流,文檔的路由等。從項目過程來看,一般根據(jù)業(yè)務部門的用例需求,由技術(shù)人員遵循傳統(tǒng)步驟進行設計,開發(fā),測試,部署。工作流一般強調(diào)快速開發(fā),著眼于局部應用,反復多。重用性差。 業(yè)務流具有服務組合,服務編排及并發(fā)處理的能力。強調(diào)面向服務的企業(yè)級端到端業(yè)務流程管理。主要用于跨系統(tǒng),跨部門的企業(yè)系統(tǒng),例如,與ERP系統(tǒng)的整合。業(yè)務流項目關(guān)鍵在于業(yè)務梳理及優(yōu)化分析。項目重點為建模,組裝接口轉(zhuǎn)換及管理。流程導向以業(yè)務為中心,關(guān)注全局業(yè)務價值及服務重用。 開發(fā)運行 工作流的建模與開發(fā)使用統(tǒng)一流程模板。具有一定的工作流模式。流程較為可控??墒褂枚喾N不同的編程語言。編程除錯基本反映在程序?qū)用妗W習上手較快。單一流程開發(fā)周期較短。業(yè)務流程監(jiān)控一般表現(xiàn)在流程或活動節(jié)點。 業(yè)務流一般建模與開發(fā)分開進行。強調(diào)業(yè)務為導向。流程狀態(tài)及動態(tài)性可通過服務組合與其它系統(tǒng)關(guān)聯(lián)。當流程跨越多個用戶及交互時,與組織結(jié)構(gòu)的變化關(guān)聯(lián)較大。服務可動態(tài)綁定。編程模式采用核心的SDOSCABPEL規(guī)范。編程除錯反映在建模和流程界面。業(yè)務流關(guān)注的是服務的組裝,而非代碼開發(fā)。流程設計具有一定的曲線要求。業(yè)務流程監(jiān)控涉及流程任務以及業(yè)務對象層,強調(diào)實時業(yè)務調(diào)控。 接口差異 工作流比較適于圖像,文檔等傳輸。使用變量參數(shù),一般無松散持久層。也就是說,它與業(yè)務服務沒有密切的關(guān)聯(lián)。通俗地說,工作流只是將行動節(jié)點串接起來,例如,常見的人工審批流程。其人員接口內(nèi)嵌于流程,系統(tǒng)接口主要是調(diào)用應用程序,本身并不強調(diào)服務組件接口,業(yè)務應用不對業(yè)務人員透明。工作流一般用于系統(tǒng)應用內(nèi)或系統(tǒng)應用間。特點是靈活跳轉(zhuǎn),松散耦合。 業(yè)務流適應于系統(tǒng)業(yè)務重組優(yōu)化。其數(shù)據(jù)接口關(guān)聯(lián)主要通過SDO業(yè)務對象,使流程附帶結(jié)構(gòu)性數(shù)據(jù)。在業(yè)務流中,流程與業(yè)務數(shù)據(jù)關(guān)聯(lián)更加密切,智能化程度加強。在流程接口調(diào)用不同服務組件時,能夠進行系統(tǒng)間關(guān)聯(lián)及確保事務的完整性。人工任務接口可設置為內(nèi)嵌,或獨立的人員服務,生成不同形態(tài)的臨時人工任務。例如,在電子采購業(yè)務中,動態(tài)的人工任務環(huán)節(jié)可由人員服務來實現(xiàn)。業(yè)務流的系統(tǒng)接口主要針對外部異構(gòu)應用系統(tǒng),適合企業(yè)級系統(tǒng)與系統(tǒng)間標準化的交互整合。 產(chǎn)品技術(shù) 工作流一般使用私有技術(shù)或J2EE等。流程引擎將任務,人員組織等內(nèi)置。通過引擎進行隊列,優(yōu)化。 業(yè)務流以標準形式兼容不同技術(shù)。流程引擎構(gòu)成技術(shù)服務組件,屬于產(chǎn)品化中間件。 項目案例 在流程管理軟件項目中,業(yè)務流偏于應用業(yè)務整合及業(yè)務動態(tài)組合。工作流則偏于人員交互等。流程管理軟件通常同時包括工作流和業(yè)務流,集流程調(diào)控與企業(yè)應用整合于一身。在項目中,取決于業(yè)務需求,往往采用不同的流程架構(gòu)設計。例如,側(cè)重于人員交互的流程管理以工作流為主,而強調(diào)業(yè)務服務組件的靈活性以業(yè)務流為主,并可外加人員服務。當然,也可同時采用工作流與業(yè)務流形成綜合業(yè)務流程管理系統(tǒng),例如,以工作流為導向,利用業(yè)務流的組合服務,同時利用企業(yè)整合的中介服務等。 下面我們通過簡單的圖示,來看一下在四個流程項目架構(gòu)設計中,工作流與業(yè)務流的不同偏向。 以工作流為導向的面向構(gòu)件流程架構(gòu) 目前國內(nèi)很多業(yè)務流程管理項目采用以工作流為主的流程架構(gòu)。工作流流程主要關(guān)注于流程的靈活跳轉(zhuǎn),快速開發(fā)等。如圖一所示,工作流通常是以人員為中心的架構(gòu)設計。當然,也有文檔為中心等。工作流一般直接調(diào)用應用程序,或Web服務等。其功能包括:簡單規(guī)則,動態(tài)人員配置,消息對象設置,基本事件處理,表單鏈接,自由跳轉(zhuǎn)路由等。但工作流沒有服務編排功能。 當然,這種架構(gòu)如果主要調(diào)用服務來實現(xiàn)業(yè)務轉(zhuǎn)換的,亦有稱之為面向服務的。但從主體上來說,它強調(diào)的是人工節(jié)點流或頁面流的靈活性,而非業(yè)務服務的靈活性。只有當這一架構(gòu)與業(yè)務服務(特別是組合服務)關(guān)聯(lián)密切而松耦合綁定(通過服務中介總線)時,它才能取得面向服務的效應。 以業(yè)務流為導向的面向服務流程架構(gòu) 以業(yè)務流為主的流程架構(gòu)有不同的實施方法。下面是兩個項目案例。 特別是與ERP相關(guān)產(chǎn)品的整合。一般通過流程的編排功能及并行處理能力,將不同系統(tǒng)進行關(guān)聯(lián),實現(xiàn)業(yè)務的有效組合。在不改變原有系統(tǒng)的基礎(chǔ)上,設計業(yè)務流程,滿足目前業(yè)務的需求。這種流程設計一般使用中介及轉(zhuǎn)換使系統(tǒng)間松散連接。接口一般采用標準形式,例如,基于JCA標準的適配器。業(yè)務監(jiān)控反映在業(yè)務對象層面。符合SOA對KPI監(jiān)控的設計理念。在實際應用時,結(jié)合使用臨時人工任務,狀態(tài)機,版本控制,業(yè)務規(guī)則服務,動態(tài)服務綁定等。 使業(yè)務流增添了自由節(jié)點的靈活性。通過使用循環(huán)節(jié)點,根據(jù)用戶動態(tài)指定,確定節(jié)點及相應參數(shù)。這種設計考慮工作流與業(yè)務流的雙重效應。業(yè)務與流程信息通過數(shù)據(jù)層關(guān)聯(lián),并由此形成業(yè)務監(jiān)控數(shù)據(jù)源。 工作流與業(yè)務流松散耦合的流程架構(gòu) 在工作流及業(yè)務流產(chǎn)品兼有的情況下,松散耦合兩種產(chǎn)品技術(shù)也是一種整合方案。如圖四所示,前端頁面應用通過統(tǒng)一的前端接口(Facade)調(diào)用不同的工作流或業(yè)務流接口或服務組件。后端的工作流與業(yè)務流基本上獨立運轉(zhuǎn),工作流可以調(diào)用業(yè)務流服務。前端接口不局限于固定的應用或組件。例如,監(jiān)控部分可以通過松耦合的形式,與工作流或業(yè)務流監(jiān)控組件或服務接口鏈接,在界面靈活地展現(xiàn)。 結(jié)束語 從流程管理軟件(業(yè)務流程管理)的角度來說,整個過程應該包含從業(yè)務分析至監(jiān)控管理,而且分析,管理是流程管理軟件的關(guān)鍵所在。本文主要側(cè)重于流程的簡要架構(gòu)設計,對業(yè)務流與工作流作了基本的比較。 在SOA流程管理軟件初始階段,如果一個企業(yè)沒有較深的IT或ERP根基,實施業(yè)務流會有相當?shù)淖枇?。因為業(yè)務流程管理并非主要是技術(shù)問題。對于有些中小型企業(yè)或應用(特別是那些沒有規(guī)范支撐的人工流程模式),一些隨意包干,或帶有自由流功能的工作流系統(tǒng)一般更易于接受。 值得一提的是,工作流與業(yè)務流的定義范圍有相當程度的交疊與互斥,這取決于采用的流程管理產(chǎn)品(或幾個不同產(chǎn)品)及架構(gòu)設計及理念。工作流可以理解為技術(shù)層面的東西或,而SOA關(guān)注業(yè)務流的實現(xiàn),及與之相關(guān)的價值鏈,并且關(guān)注流程的生命周期管理。其實,工作流或業(yè)務流本身并無絕對優(yōu)勢,用好用對才是關(guān)鍵。
信息發(fā)布:廣州名易軟件有限公司 http://www.jetlc.com
|