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