1 引言
隨著世界經濟全球化的發展,現代企業需要不斷更新管理模式和采用新技術來增強自身競爭力。工作流是針對企業日常工作中固定的程序活動而提出,目的是為了提高辦公效率、降低生產成本、提高企業整體的生產管理水平和競爭力。企業通過工作流相關過程建模體系的建立,可以與其它系統進行有效的結合,使企業的業務流程更好的實現。由于經濟的全球性發展,產品的研制開發已不僅局限于某一單一企業,而是眾多企業的協同運作,這就促使企業的管理將建立在分布異構的環境下。
隨著計算機與網絡技術的發展,現代企業已呈現出一種分布、異構和松散耦合的特點,工作流管理系統必須能夠支持異構環境下的互操作性,對異構環境下的軟件系統提供支持。傳統的工作流技術由于缺乏互操作性而無法滿足現代企業的需求,主要包括:可重用性不高,柔性差,分布環境支持性差等。Web 服務技術的發展以及SOA 面向架構服務技術可以對這些問題提供有效地解決方法。
2 傳統工作流管理系統的局限性
傳統的工作流技術起源于生產組織和辦公自動化領域。它是針對企業日常工作中具有固定的程序活動而提出。通過將工作分解成定義良好的任務、角色,按照一定的規則和過程來執行這些任務并對其進行監控,達到提高效率,降低生產成本 ,提高企業競爭力。傳統的工作流技術的確可以促進企業各部門間的信息集成,但面向當今跨區域、跨企業間的運作形式,傳統的工作流技術無法滿足企業的需求,存在著一定的局限性:
1)分布異構環境的支持性差
傳統工作流管理系統主要面向局域網進行操作,隨著信息技術和網絡的發展,現在的企業運作范圍是面向互聯網的,原來的工作流軟件只能支持單平臺操作,而每個企業都有自己的工作流管理系統,各企業系統間的傳輸協議和數據結構都存在差異,各企業無法在業務流程上進行合作。
2)無法進行動態建模
工作流的過程建模技術讓過程定義和過程執行的分離得到了實現。可以在過程定義時靜態指定過程信息,對過程進行實例化后按照定義依次執行。但在流程的執行過程中經常會發現業務流程發生了變化,這就需要工作流管理能夠對這些變化做出響應,動態選擇對應用程序的調用。
3)互操作性差
工作流管理聯盟定義的工作流間的互操作模型無法支持異構企業間工作流引擎的復雜操作。
3 SOA 技術概述及SOA與工作流系統結合的可行性
3 .1 SOA相關技術
SOA(Service - Oriented Architecture)即面向服務體系結構,它是一種組件模型。SOA利用企業現有的各種軟件體系,重新整合并構建起一套新的軟件架構。這套架構可以隨著業務的變化,隨時靈活地結合現有服務而組成新的軟件,共同為整個企業的業務流程而服務。
SOA 要求軟件開發者在設計應用軟件時要充分考慮到服務集成以及服務的重用性,SOA是面向服務模型的傳統緊耦合的替代者,同傳統的軟件架構相比較,SOA 具有更多的優點:基于標準、松散耦合、共享服務等。SOA 使用獨立的接口,并以軟件組件的松散耦合性為設計的重點。
3 .2 SOA技術與工作流系統結合的可行性
SOA中的所有的功能都可以定義為獨立的服務,獨立的服務之間又可以重新組合為新的業務流程,因此,SOA面向服務架構和工作流的結合是可行的,可以改善傳統工作流中存在的系統局限性,具體的優勢表示為以下幾點:
1)支持異構環境業務流程,將工作流程封裝為Web服務或者利用Web服務來實現業務流程中的服務,滿足了跨地域的各大型企業之間的業務需求,加強了各企業業務流程之間的合作。
2)方便工作流程重組。SOA架構可以隨著業務的變化,隨時靈活地結合現有服務而組成新的業務,共同為整個企業的業務流程而服務,可以使工作流系統適應業務需求的變化。
3)可以加強各企業間的互操作性。工作流引擎封閉成Web服務可以使不同企業之間的不同流程通過請求而進行遠程協作流程。
4)可以提高軟件的可重用性。在SOA中,所有服務的封裝和設計是基于面向對象的,而基于面向對象的優勢在于對象的可重用性,因此面向服務的架構可以提高軟件可重用性。
4 基于SOA 的工作流管理系統模型及整體架構
4 .1 SOA架構的工作流管理系統模型
針對于在工作流管理系統中引入SOA架構的優勢以及對傳統工作流管理系統的改進,我們提出了基于SOA 架構的工作流管理系統的模型,見圖1所示:
圖1 基于SOA 架構的工作流管理系統模型
與傳統的工作流管理系統相比,基于SOA架構的工作流管理系統主要增加了面向服務特征,在企業的工作流程中,可將企業流程封裝成Web服務,并通過調用Web 服務的形式來執行工作流。
在工作流執行的過程中通過提供過程定義接口,以此來獲取過程的定義,同時工作流的執行服務由多個工作流引擎組成,通過Web服務接口的調用來執行相關的應用程序。為適應分布異構環境下的業務進程,作為一種語言規范的提出,BPEL(Business process execution language)即業務流程執行語言,為SOA 的工作流管理系統的建模提供了很好的工具,利用業務流程執行語言(BPEL) ,可以完成操縱數據、調用Web 服務等并可創建更為復雜的業務流程。
4 .2 基于SOA的工作流系統整體架構。系統采用MVC 架構的體系結構,由四個層次來實現,基于SOA的工作流系統整體架構如圖2所示:
圖2 基于SOA架構工作流管理系統的整體架構
數據層:主要用來對操作數據庫或者數據源,實現異構構數據庫的操作與配置。
業務層:主要用于訪問數據層,從數據層取數據、修改數據以及刪除數據,并將結果返回給表現層。
服務層:主要用于實現服務編排和軟件服務建模,將外部的功能進行封裝成為粒度不等的服務。
表現層:主要用于用戶接口的展示,以及用業務層的類和對象來驅動這些接口,調用功能服務層提供的服務。
5 基于SOA的業務流程集成
5 .1 面向服務的封裝機制
基于SOA架構的工作流管理系統具有的服務封裝機制包括:
1)服務:該服務封裝機制主要用于封裝相互之間有聯系的操作的集合,即操作的邏輯分組。當某些業務流程發生變化時,不需要重新開發業務流程,而是針對某些業務直接進行重組。
2)流程:該封裝機制主要將工作流程以web服務的形式來發布,可以更好的保證企業之間的業務流程集成。
3)操作:該封裝機制用于實現系統中的一些簡單組件和應用程序。
5 .2 服務的調用機制
對于服務的調用方面可以分為同步調用和異步調用兩種,其分類方法是根據工作流程的復雜和緊急程度來劃分的。
服務調用主要采取HTTP 請求——響應的模式。分為同步和異步兩種方式進行,同步調用下,服務請求者首先向服務的提供者發送請求消息,在請求消息未處理完之前,服務請求者會一直保持等待響應的狀態。與同步調用方式不同,異步調用時,服務的請求者發送請求后無需等待響應,服務提供者可利用較長時間來處理相關的請求,處理結束后再將響應的信息返回。
Web服務的發布分為兩種:UDDI注冊中心與靜態發布。UDDI 注冊中心獲取到服務描述后,服務的請求者可以通過獲取到的服務信息來對Web服務接口進行訪問并通過服務描述生成簡單對象訪問協議SOAP(Simple Object Access Protocol) ,服務請求者可以通過Web 接口直接調用所需服務。另一種獲取Web 服務的途徑是通過本地的服務描述語言WSDL 即(Web Service DescriptionLanguage)來獲得相關Web 服務。
6 結束語
面向服務架構(SOA)是近幾年被廣泛接受的軟件體系架構,利用SOA 框架將工作流技術與Web 服務技術相結合,用Web 服務來實現企業中的業務流程,使大型企業中業務流程的復雜性和地域分布性狀況得到了很好的適應。本文設計的基于SOA 架構的工作流管理系統的模型已在實際的項目中得到了應用并取得了較好的評價,本系統采取Web Services 技術,屏蔽了軟件平臺之間的差異,使系統具備異構系統之間的集成并適應用于企業分布式的異構環境。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文標題:SOA架構的工作流管理系統的研究與應用