SOA流程项目到底是业务流还是工作流
生活随笔
收集整理的這篇文章主要介紹了
SOA流程项目到底是业务流还是工作流
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SOA 的主要目的是實現業務的敏捷性,而 BPM(業務流程管理)是 SOA 價值的關鍵所在。但在 SOA 實踐中,對于 BPM 仍面臨著不少困惑與選擇。有些項目把業務流產品用作工作流設計,而有些工作流為主的產品工具卻作為業務流實現。這里簡單地討論一下 BPM 中業務流與工作流的作用區別。
簡言之,業務流程管理主要包含業務建模,組裝,部署及管理。使用業務流或工作流工具似乎都能設計開發業務流程管理。但從 SOA 的角度,服務的劃分及交互通常是項目關注的重點。所以, SOA 強調的是如何靈活組合業務服務。而業務流的核心功能是編排流程服務,并且主要針對企業級應用整合。同時利用 BPM 工作流的主要功能,諸如 : 活動(任務)節點的人工任務配置,流程運轉時的活動節點調控等。
工作流與業務流的主要區別
架構模式
工作流,簡單地說,是定義,構建及執行流程。工作流基本上屬于面向應用的流程架構,例如,典型的人工審批流,頁面流,文檔的路由等。從項目過程來看,一般根據業務部門的用例需求,由技術人員遵循傳統步驟進行設計,開發,測試,部署。工作流一般強調快速開發,著眼于局部應用,反復多。重用性差。
業務流具有服務組合,服務編排及并發處理的能力。強調面向服務的企業級端到端業務流程管理。主要用于跨系統,跨部門的企業系統,例如,與 ERP 系統的整合。業務流項目關鍵在于業務梳理及優化分析。項目重點為建模,組裝 / 接口轉換及管理。流程導向以業務為中心,關注全局業務價值及服務重用。
開發運行
工作流的建模與開發使用統一流程模板。具有一定的工作流模式。流程較為可控。可使用多種不同的編程語言。編程除錯基本反映在程序層面。學習上手較快。單一流程開發周期較短。業務流程監控一般表現在流程或活動節點。
業務流一般建模與開發分開進行。強調業務為導向。流程狀態及動態性可通過服務組合與其它系統關聯。當流程跨越多個用戶及交互時,與組織結構的變化關聯較大。服務可動態綁定。編程模式采用核心的 SDO/SCA/BPEL 規范。編程除錯反映在建模和流程界面。業務流關注的是服務的組裝,而非代碼開發。流程設計具有一定的曲線要求。業務流程監控涉及流程 / 任務以及業務對象層,強調實時業務調控。
接口差異
工作流 比較適于圖像,文檔等傳輸。使用變量參數,一般無松散持久層。也就是說,它與業務服務沒有密切的關聯。通俗地說,工作流只是將行動節點串接起來,例如,常見的人工審批流程。其人員接口內嵌于流程,系統接口主要是調用應用程序,本身并不強調服務組件接口, 業務應用不對業務人員透明。 工作流一般用于系統應用內或系統應用間。特點是靈活跳轉,松散耦合。
業務流 適應于系統業務重組優化。其數據接口關聯主要通過 SDO/ 業務對象,使流程附帶結構性數據。在業務流中,流程與業務數據關聯更加密切,智能化程度加強。在流程接口調用不同服務組件時,能夠進行系統間關聯及確保事務的完整性。人工任務接口可設置為內嵌,或獨立的人員服務,生成不同形態的臨時人工任務。例如,在電子采購業務中,動態的人工任務環節可由人員服務來實現。業務流的系統接口主要針對外部異構應用系統,適合企業級系統與系統間標準化的交互整合。
產品技術
工作流一般使用私有技術或 J2EE 等。流程引擎將任務,人員組織等內置。通過引擎進行隊列,優化。
業務流以標準形式兼容不同技術。流程引擎構成技術服務組件,屬于產品化中間件。
項目案例
在 BPM 項目中,業務流偏于應用業務整合及業務動態組合。工作流則偏于人員交互等。 BPM 通常同時包括工作流和業務流,集流程調控與企業應用整合于一身。在項目中,取決于業務需求,往往采用不同的流程架構設計。例如,側重于人員交互的流程管理以工作流為主,而強調業務服務組件的靈活性以業務流為主,并可外加人員服務。當然,也可同時采用工作流與業務流形成綜合業務流程管理系統,例如,以工作流為導向,利用業務流的組合服務,同時利用企業整合的中介服務等。
下面我們通過簡單的圖示,來看一下在四個流程項目架構設計中,工作流與業務流的不同偏向。
以工作流為導向的面向構件流程架構
目前國內很多業務流程管理項目采用以工作流為主的流程架構。工作流流程主要關注于流程的靈活跳轉, 快速開發等。 如圖一所示, 工作流通常是以人員為中心的架構設計。 當然, 也有文檔為中心等。 工作流一般直接調用應用程序, 或 Web 服務等。 其功能包括 : 簡單規則, 動態人員配置, 消息對象設置, 基本事件處理, 表單鏈接, 自由跳轉路由等。 但工作流沒有服務編排功能。
?
轉播到騰訊微博?
圖 1. 以工作流為導向的面向構件流程架構示意圖
當然,這種架構如果主要調用服務來實現業務轉換的,亦有稱之為面向服務的。但從主體上來說,它強調的是人工節點流或頁面流的靈活性,而非業務服務的靈活性。只有當這一架構與業務服務(特別是組合服務)關聯密切而松耦合綁定(通過服務中介總線)時,它才能取得面向服務的效應。
以業務流為導向的面向服務流程架構
以業務流為主的流程架構有不同的實施方法。下面是兩個項目案例。
圖二主要應用于現有系統的整合,特別是與 ERP 相關產品的整合。一般通過流程的編排功能及并行處理能力,將不同系統進行關聯,實現業務的有效組合。在不改變原有系統的基礎上,設計業務流程,滿足目前業務的需求。這種流程設計一般使用中介及轉換使系統間松散連接。接口一般采用標準形式,例如,基于 JCA 標準的適配器。業務監控反映在業務對象層面。符合 SOA 對 KPI 監控的設計理念。在實際應用時,結合使用臨時人工任務,狀態機,版本控制,業務規則服務,動態服務綁定等。
?
轉播到騰訊微博?
圖 2. 以業務流為導向的面向服務流程架構示意圖
圖三是以結合使用了動態節點的架構設計。使業務流增添了自由節點的靈活性。通過使用循環節點,根據用戶動態指定,確定節點及相應參數。這種設計考慮工作流與業務流的雙重效應。業務與流程信息通過數據層關聯,并由此形成業務監控數據源。
?
轉播到騰訊微博?
圖 3. 帶有動態節點的業務流架構示意圖
工作流與業務流松散耦合的流程架構
在工作流及業務流產品兼有的情況下,松散耦合兩種產品技術也是一種整合方案。如圖四所示,前端頁面應用通過統一的前端接口(Facade)調用不同的工作流或業務流接口或服務組件。后端的工作流與業務流基本上獨立運轉,工作流可以調用業務流服務。前端接口不局限于固定的應用或組件。例如,監控部分可以通過松耦合的形式,與工作流或業務流監控組件或服務接口鏈接,在界面靈活地展現。
?
轉播到騰訊微博?
圖 4. 工作流與業務流松散耦合的流程架構示意圖
從 BPM(業務流程管理)的角度來說,整個過程應該包含從業務分析至監控管理,而且分析,管理是 BPM 的關鍵所在。本文主要側重于流程的簡要架構設計,對業務流與工作流作了基本的比較。
在 SOA/BPM 初始階段,如果一個企業沒有較深的 IT 或 ERP 根基,實施業務流會有相當的阻力。因為業務流程管理并非主要是技術問題。對于有些中小型企業或應用 ( 特別是那些沒有規范支撐的人工流程模式 ),一些隨意包干,或帶有自由流功能的工作流系統一般更易于接受。
值得一提的是,工作流與業務流的定義范圍有相當程度的交疊與互斥,這取決于采用的流程管理產品(或幾個不同產品)及架構設計及理念。工作流可以理解為技術層面的東西或辦公自動化,而 SOA 關注業務流的實現,及與之相關的價值鏈,并且關注流程的生命周期管理。其實,工作流或業務流本身并無絕對優勢,用好用對才是關鍵。
總結
以上是生活随笔為你收集整理的SOA流程项目到底是业务流还是工作流的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jBPM4.4:分配任务的几种方式
- 下一篇: JAVA调用SQL存储过程详解