張敏輝
(四川教育學院計算機科學系,四川 成都 611130)
基于SOA架構的Web Services工作流管理系統的研究*
張敏輝
(四川教育學院計算機科學系,四川 成都 611130)
為了更好地滿足企業在網絡環境下的管理和企業間業務流程的合作,在分析目前工作流技術所存在的不足的基礎上,提出了基于SOA架構的工作流管理系統,并指出了傳統工作流管理系統的局限性.提出了基于SOA的工作流管理系統模型,就系統實現的關鍵技術進行了闡述并給出了具體的實現方法.采取Web Services技術,屏蔽了軟件平臺之間的差異,使系統具備異構系統之間的集成并適用于企業分布式的異構環境.
工作流技術;Web服務;SOA架構
工作流管理技術作為一種快速發展的技術,在企業中得到了越來越廣泛的應用.企業通過工作流相關過程建模體系的建立,可以與其它系統進行有效的結合,使企業的業務流程更好的實現[1].
隨著網絡技術與計算機水平的發展,現代企業的業務流程已呈現出一種分布、異構和松散耦合的特點,這就對工作流管理系統提出了更高的要求,工作流管理系統必須能夠支持異構環境下的互操作性及對異構環境下的軟件系統提供支持[2].基于SOA架構的工作流管理技術可以彌補傳統工作流的不足,其采用Web Services的分布式工作流技術,可以滿足跨平臺、跨組織、跨部門的分布式的企業應用需求,使工作流管理系統具有強大的開放性、互操作性和平臺無關性.
傳統的工作流技術起源于生產組織和辦公自動化領域.它是針對企業日常工作中固定的程序活動而提出.通過將工作分解成定義良好的任務、角色,按照一定的規則和過程來執行這些任務并對其進行監控,達到提高效率,降低生產成本[2],提高企業競爭力.傳統的工作流技術的確可以促進企業各部門間的信息集成,但面向當今跨區域、跨企業的運作形式,傳統的工作流技術無法滿足企業的需求,存在著一定的局限性.
(1)互操作性差.工作流管理聯盟定義的工作流間的互操作模型無法支持異構企業間工作流引擎的復雜操作.
(2)分布異構環境的支持性差.傳統工作流管理系統主要面向局域網進行操作,隨著信息技術和網絡的發展,現在的企業運作范圍是面向互聯網的,原來的工作流軟件只能支持單平臺操作,而每個企業都有自己的工作流管理系統,各企業系統間的傳輸協議和數據結構都存在差異,各企業無法在業務流程上進行合作[3].
(3)無法進行動態建模.工作流的過程建模技術讓過程定義和過程執行的分離得到了實現.可以在過程定義時靜態指定過程信息,對過程進行實例化后按照定義依次執行.但在流程的執行過程中經常會發現業務流程發生了變化,這就需要工作流管理能夠對這些變化做出響應,動態選擇對應用程序的調用.
工作流的概念起源于生產組織和辦公自動化領域.它是針對企業日常工作中固定的程序活動而提出.將企業的業務進行自動化處理的過程叫工作流,在業務處理的過程中,根據預見所定義的一些規則將信息和文檔在過程的參與者中進行傳遞,從而完成整個業務的處理[3].
工作流管理系統即WFMS(Work Flow Management System),它是一個軟件系統,通過計算機軟件來對工作流的執行進行管理和定義.不同的工作流管理系統其在底層通信機制、實現方法和應用范圍方面都存在較大差距.在用戶的應用層上提供了以下三種功能的支持.
(1)運行控制.運行控制功能是工作流管理系統的核心,對工作流實例的創建、執行和控制進行總體的控制,并負責活動之間的控制轉移.
(2)運行交互.運行交互功能主要用于工作流管理系統與外部應用程序之間的交互
(3)設計.設計功能主要對工作流中的業務流程進行定義和建模.
工作流管理系統通用的系統實現模型如圖1所示:

圖1 工作流管理系統結構
SOA(Service-Oriented Architecture)即面向服務體系結構,它是一種軟件架構.SOA利用企業現有的各種軟件體系,重新整合并構建起一套新的軟件架構.這套架構可以隨著業務的變化,隨時靈活地結合現有服務而組成新的軟件,共同為整個企業的業務流程服務[4,5].
將SOA架構技術引入到工作流系統中,可以大大提高工作流的應用范圍,彌補現有工作流管理系統柔性差、無法快速響應變化和互操作性差等缺點.SOA要求軟件開發者在設計應用軟件時充分考慮到服務集成以及服務的重用性,SOA是面向服務模型的傳統緊耦合的替代者,同傳統的軟件架構相比較,SOA具有更多的優點:基于標準、松散耦合、共享服務等.SOA使用獨立的接口,并以軟件組件的松散耦合性為設計的重點.因此,研究并實現基于SOA的工作流管理系統具有廣闊的應用前景.
針對在工作流管理系統中引入SOA架構的優勢以及對傳統工作流管理系統的改進,我們提出了基于SOA架構的工作流管理系統的模型,見圖2.

圖2 基于SOA架構的工作流管理系統模型
與傳統的工作流管理系統相比,基于SOA架構的工作流管理系統主要增加了面向服務特征,在企業的工作流程中,可將企業流程封裝成Web服務,并通過調用Web服務的形式來執行工作流.
在工作流執行的過程中通過提供過程定義接口,來獲取過程的定義,同時工作流的執行服務由多個工作流引擎組成,通過Web服務接口的調用來執行相關的應用程序.
為適應分布異構環境下的業務進程,作為一種語言規范,BPEL(Business process execution language)即業務流程執行語言,為SOA的工作流管理系統的建模提供了很好的工具.利用業務流程執行語言(BPEL),可以完成操縱數據、調用Web服務等,并可創建更為復雜的業務流程.
目前工作流技術發展中的缺點主要集中在無法支持企業間異構應用的集成,迫切需要一個標準化集成框架的支持.傳統的分布式計算模型,例如Java RMI、DCOM和CORBA由于受編程語言、操作系統和網絡環境的限制,通常使用特別端口進行通信,從而造成了跨平臺交互能力差[6].通過采用Web Service技術可解決以上問題.Web Service是在現有的異構平臺基礎上構筑一個通用的與平臺、語言無關的技術層,各種不同平臺之上的應用依靠這個技術層來實施集成和連接.通過在工作流技術中引入Web Service技術,可以滿足企業中工作流的跨平臺性、分布性及互操作性等需求.而基于SOA的思想大大方便了企業間工作流的交互,在各自完成企業內部流程的同時,對外開放接口來實現不同企業間信息的連接.Web Service工作流管理系統模型如圖3所示.

圖3 Web Service工作流管理系統模型
SOA架構的工作流管理系統的實現,分為以下三個步驟進行.
(1)業務流程的映射.業務流程映射是實現系統的第一步,在充分了解企業業務目標的基礎上,需要確定并且對全部的業務流程進行文檔化處理,從業務流程中抽取出企業中的業務流動,進行XML定義.
(2)對業務流程進行建模.對業務進程進行分析和重組,首先需要對業務流程進行建模,而建模的目的主要是不同企業的工作流可以互相訪問,企業在完成本身內部業務流程的同時會公開交互接口,不同的企業可以進行工作流連接,完成跨企業間工作流的服務.
(3)實現工作流引擎.工作流引擎的設計是:將工作流引擎首先封裝成Web服務并對外提供統一接口,這些接口包括監視工具、工作表和其它服務調用等;在系統中,由工作流引擎之間的互相協同工作來推動整個企業工作流的執行.同時,為了方便調用異構應用程序,企業的運行過程中的應用程序也需要封閉成Web服務,可以直接供活動調用,而工作流引擎之間及工作流與工作用戶界面間可以采用SOAP信息直接進行交互.將工作模塊放入SOAP服務器中供工作流引擎進行調用.在流程定義的Web服務中,以其中一個典型的Participant元素的定義為例,其定義如下:
<participant name="EquipApplyService">
<webService> EquipApplyService</webService>
<user> Administrator</user>
</participant>
在流程執行時,當執行到的活動需要請求Web服務時,工作流引擎會發送服務請求信息到Web服務的管理器,其通過解析讀取工作流描述文檔可以得到相應的服務信息,然后將該信息傳到SOAP代理并執行SOAP調用.
面向服務架構SOA是近幾年被廣泛應用的軟件體系架構,其利用企業現有的各種軟件體系,可以重新整合并構建起一套新的軟件架構.通過采用SOA框架將Web Services技術與工作流相結合,將企業中的各種流程活動通過Web Services來實現可以更好地適應大型企業中分布式的環境狀況.本文設計的基于SOA架構的工作流管理系統已在實際的項目中得到了應用,本系統采取Web Services技術,屏蔽了軟件平臺之間的差異,使系統具備異構系統之間的集成并適用于企業分布式的異構環境.
[1]范玉順.工作流管理技術基礎[M].北京:清華大學出版社,2001.
[2]張敏輝.基于工作流管理技術的研究[J].信息安全與技術,2011,(12):56 -58.
[3]管紅杰.SOA架構的工作流管理系統的研究與應用[J].計算機工程與設計,2011,(3):23-26.
[4]段會寧,陳德運.SOA的工作流管理系統的研究與設計[J].哈爾濱理工大學學報,2009,(10):72 -75.
[5]王舒暢.基于SOA的工作流管理系統設計[J].長春工業大學學報,2009,(8):406 -411.
[6]張敏輝.基于協同商務平臺的工作流技術的研究[J].智能計算機與應用,2011,(12):60 -63.
TP311
A
1008-4681(2012)02-0047-03
2012-01-10
張敏輝(1980-),女,內蒙古赤峰人,四川教育學院計算機科學系講師,碩士.研究方向:電子商務技術與應用、軟件技術與信息系統.
(責任編校:晴川)