張敏輝
(四川教育學院計算機科學系,四川 成都 611130)
基于SOA架構(gòu)的Web Services工作流管理系統(tǒng)的研究*
張敏輝
(四川教育學院計算機科學系,四川 成都 611130)
為了更好地滿足企業(yè)在網(wǎng)絡環(huán)境下的管理和企業(yè)間業(yè)務流程的合作,在分析目前工作流技術所存在的不足的基礎上,提出了基于SOA架構(gòu)的工作流管理系統(tǒng),并指出了傳統(tǒng)工作流管理系統(tǒng)的局限性.提出了基于SOA的工作流管理系統(tǒng)模型,就系統(tǒng)實現(xiàn)的關鍵技術進行了闡述并給出了具體的實現(xiàn)方法.采取Web Services技術,屏蔽了軟件平臺之間的差異,使系統(tǒng)具備異構(gòu)系統(tǒng)之間的集成并適用于企業(yè)分布式的異構(gòu)環(huán)境.
工作流技術;Web服務;SOA架構(gòu)
工作流管理技術作為一種快速發(fā)展的技術,在企業(yè)中得到了越來越廣泛的應用.企業(yè)通過工作流相關過程建模體系的建立,可以與其它系統(tǒng)進行有效的結(jié)合,使企業(yè)的業(yè)務流程更好的實現(xiàn)[1].
隨著網(wǎng)絡技術與計算機水平的發(fā)展,現(xiàn)代企業(yè)的業(yè)務流程已呈現(xiàn)出一種分布、異構(gòu)和松散耦合的特點,這就對工作流管理系統(tǒng)提出了更高的要求,工作流管理系統(tǒng)必須能夠支持異構(gòu)環(huán)境下的互操作性及對異構(gòu)環(huán)境下的軟件系統(tǒng)提供支持[2].基于SOA架構(gòu)的工作流管理技術可以彌補傳統(tǒng)工作流的不足,其采用Web Services的分布式工作流技術,可以滿足跨平臺、跨組織、跨部門的分布式的企業(yè)應用需求,使工作流管理系統(tǒng)具有強大的開放性、互操作性和平臺無關性.
傳統(tǒng)的工作流技術起源于生產(chǎn)組織和辦公自動化領域.它是針對企業(yè)日常工作中固定的程序活動而提出.通過將工作分解成定義良好的任務、角色,按照一定的規(guī)則和過程來執(zhí)行這些任務并對其進行監(jiān)控,達到提高效率,降低生產(chǎn)成本[2],提高企業(yè)競爭力.傳統(tǒng)的工作流技術的確可以促進企業(yè)各部門間的信息集成,但面向當今跨區(qū)域、跨企業(yè)的運作形式,傳統(tǒng)的工作流技術無法滿足企業(yè)的需求,存在著一定的局限性.
(1)互操作性差.工作流管理聯(lián)盟定義的工作流間的互操作模型無法支持異構(gòu)企業(yè)間工作流引擎的復雜操作.
(2)分布異構(gòu)環(huán)境的支持性差.傳統(tǒng)工作流管理系統(tǒng)主要面向局域網(wǎng)進行操作,隨著信息技術和網(wǎng)絡的發(fā)展,現(xiàn)在的企業(yè)運作范圍是面向互聯(lián)網(wǎng)的,原來的工作流軟件只能支持單平臺操作,而每個企業(yè)都有自己的工作流管理系統(tǒng),各企業(yè)系統(tǒng)間的傳輸協(xié)議和數(shù)據(jù)結(jié)構(gòu)都存在差異,各企業(yè)無法在業(yè)務流程上進行合作[3].
(3)無法進行動態(tài)建模.工作流的過程建模技術讓過程定義和過程執(zhí)行的分離得到了實現(xiàn).可以在過程定義時靜態(tài)指定過程信息,對過程進行實例化后按照定義依次執(zhí)行.但在流程的執(zhí)行過程中經(jīng)常會發(fā)現(xiàn)業(yè)務流程發(fā)生了變化,這就需要工作流管理能夠?qū)@些變化做出響應,動態(tài)選擇對應用程序的調(diào)用.
工作流的概念起源于生產(chǎn)組織和辦公自動化領域.它是針對企業(yè)日常工作中固定的程序活動而提出.將企業(yè)的業(yè)務進行自動化處理的過程叫工作流,在業(yè)務處理的過程中,根據(jù)預見所定義的一些規(guī)則將信息和文檔在過程的參與者中進行傳遞,從而完成整個業(yè)務的處理[3].
工作流管理系統(tǒng)即WFMS(Work Flow Management System),它是一個軟件系統(tǒng),通過計算機軟件來對工作流的執(zhí)行進行管理和定義.不同的工作流管理系統(tǒng)其在底層通信機制、實現(xiàn)方法和應用范圍方面都存在較大差距.在用戶的應用層上提供了以下三種功能的支持.
(1)運行控制.運行控制功能是工作流管理系統(tǒng)的核心,對工作流實例的創(chuàng)建、執(zhí)行和控制進行總體的控制,并負責活動之間的控制轉(zhuǎn)移.
(2)運行交互.運行交互功能主要用于工作流管理系統(tǒng)與外部應用程序之間的交互
(3)設計.設計功能主要對工作流中的業(yè)務流程進行定義和建模.
工作流管理系統(tǒng)通用的系統(tǒng)實現(xiàn)模型如圖1所示:
圖1 工作流管理系統(tǒng)結(jié)構(gòu)
SOA(Service-Oriented Architecture)即面向服務體系結(jié)構(gòu),它是一種軟件架構(gòu).SOA利用企業(yè)現(xiàn)有的各種軟件體系,重新整合并構(gòu)建起一套新的軟件架構(gòu).這套架構(gòu)可以隨著業(yè)務的變化,隨時靈活地結(jié)合現(xiàn)有服務而組成新的軟件,共同為整個企業(yè)的業(yè)務流程服務[4,5].
將SOA架構(gòu)技術引入到工作流系統(tǒng)中,可以大大提高工作流的應用范圍,彌補現(xiàn)有工作流管理系統(tǒng)柔性差、無法快速響應變化和互操作性差等缺點.SOA要求軟件開發(fā)者在設計應用軟件時充分考慮到服務集成以及服務的重用性,SOA是面向服務模型的傳統(tǒng)緊耦合的替代者,同傳統(tǒng)的軟件架構(gòu)相比較,SOA具有更多的優(yōu)點:基于標準、松散耦合、共享服務等.SOA使用獨立的接口,并以軟件組件的松散耦合性為設計的重點.因此,研究并實現(xiàn)基于SOA的工作流管理系統(tǒng)具有廣闊的應用前景.
針對在工作流管理系統(tǒng)中引入SOA架構(gòu)的優(yōu)勢以及對傳統(tǒng)工作流管理系統(tǒng)的改進,我們提出了基于SOA架構(gòu)的工作流管理系統(tǒng)的模型,見圖2.
圖2 基于SOA架構(gòu)的工作流管理系統(tǒng)模型
與傳統(tǒng)的工作流管理系統(tǒng)相比,基于SOA架構(gòu)的工作流管理系統(tǒng)主要增加了面向服務特征,在企業(yè)的工作流程中,可將企業(yè)流程封裝成Web服務,并通過調(diào)用Web服務的形式來執(zhí)行工作流.
在工作流執(zhí)行的過程中通過提供過程定義接口,來獲取過程的定義,同時工作流的執(zhí)行服務由多個工作流引擎組成,通過Web服務接口的調(diào)用來執(zhí)行相關的應用程序.
為適應分布異構(gòu)環(huán)境下的業(yè)務進程,作為一種語言規(guī)范,BPEL(Business process execution language)即業(yè)務流程執(zhí)行語言,為SOA的工作流管理系統(tǒng)的建模提供了很好的工具.利用業(yè)務流程執(zhí)行語言(BPEL),可以完成操縱數(shù)據(jù)、調(diào)用Web服務等,并可創(chuàng)建更為復雜的業(yè)務流程.
目前工作流技術發(fā)展中的缺點主要集中在無法支持企業(yè)間異構(gòu)應用的集成,迫切需要一個標準化集成框架的支持.傳統(tǒng)的分布式計算模型,例如Java RMI、DCOM和CORBA由于受編程語言、操作系統(tǒng)和網(wǎng)絡環(huán)境的限制,通常使用特別端口進行通信,從而造成了跨平臺交互能力差[6].通過采用Web Service技術可解決以上問題.Web Service是在現(xiàn)有的異構(gòu)平臺基礎上構(gòu)筑一個通用的與平臺、語言無關的技術層,各種不同平臺之上的應用依靠這個技術層來實施集成和連接.通過在工作流技術中引入Web Service技術,可以滿足企業(yè)中工作流的跨平臺性、分布性及互操作性等需求.而基于SOA的思想大大方便了企業(yè)間工作流的交互,在各自完成企業(yè)內(nèi)部流程的同時,對外開放接口來實現(xiàn)不同企業(yè)間信息的連接.Web Service工作流管理系統(tǒng)模型如圖3所示.
圖3 Web Service工作流管理系統(tǒng)模型
SOA架構(gòu)的工作流管理系統(tǒng)的實現(xiàn),分為以下三個步驟進行.
(1)業(yè)務流程的映射.業(yè)務流程映射是實現(xiàn)系統(tǒng)的第一步,在充分了解企業(yè)業(yè)務目標的基礎上,需要確定并且對全部的業(yè)務流程進行文檔化處理,從業(yè)務流程中抽取出企業(yè)中的業(yè)務流動,進行XML定義.
(2)對業(yè)務流程進行建模.對業(yè)務進程進行分析和重組,首先需要對業(yè)務流程進行建模,而建模的目的主要是不同企業(yè)的工作流可以互相訪問,企業(yè)在完成本身內(nèi)部業(yè)務流程的同時會公開交互接口,不同的企業(yè)可以進行工作流連接,完成跨企業(yè)間工作流的服務.
(3)實現(xiàn)工作流引擎.工作流引擎的設計是:將工作流引擎首先封裝成Web服務并對外提供統(tǒng)一接口,這些接口包括監(jiān)視工具、工作表和其它服務調(diào)用等;在系統(tǒng)中,由工作流引擎之間的互相協(xié)同工作來推動整個企業(yè)工作流的執(zhí)行.同時,為了方便調(diào)用異構(gòu)應用程序,企業(yè)的運行過程中的應用程序也需要封閉成Web服務,可以直接供活動調(diào)用,而工作流引擎之間及工作流與工作用戶界面間可以采用SOAP信息直接進行交互.將工作模塊放入SOAP服務器中供工作流引擎進行調(diào)用.在流程定義的Web服務中,以其中一個典型的Participant元素的定義為例,其定義如下:
<participant name="EquipApplyService">
<webService> EquipApplyService</webService>
<user> Administrator</user>
</participant>
在流程執(zhí)行時,當執(zhí)行到的活動需要請求Web服務時,工作流引擎會發(fā)送服務請求信息到Web服務的管理器,其通過解析讀取工作流描述文檔可以得到相應的服務信息,然后將該信息傳到SOAP代理并執(zhí)行SOAP調(diào)用.
面向服務架構(gòu)SOA是近幾年被廣泛應用的軟件體系架構(gòu),其利用企業(yè)現(xiàn)有的各種軟件體系,可以重新整合并構(gòu)建起一套新的軟件架構(gòu).通過采用SOA框架將Web Services技術與工作流相結(jié)合,將企業(yè)中的各種流程活動通過Web Services來實現(xiàn)可以更好地適應大型企業(yè)中分布式的環(huán)境狀況.本文設計的基于SOA架構(gòu)的工作流管理系統(tǒng)已在實際的項目中得到了應用,本系統(tǒng)采取Web Services技術,屏蔽了軟件平臺之間的差異,使系統(tǒng)具備異構(gòu)系統(tǒng)之間的集成并適用于企業(yè)分布式的異構(gòu)環(huán)境.
[1]范玉順.工作流管理技術基礎[M].北京:清華大學出版社,2001.
[2]張敏輝.基于工作流管理技術的研究[J].信息安全與技術,2011,(12):56 -58.
[3]管紅杰.SOA架構(gòu)的工作流管理系統(tǒng)的研究與應用[J].計算機工程與設計,2011,(3):23-26.
[4]段會寧,陳德運.SOA的工作流管理系統(tǒng)的研究與設計[J].哈爾濱理工大學學報,2009,(10):72 -75.
[5]王舒暢.基于SOA的工作流管理系統(tǒng)設計[J].長春工業(yè)大學學報,2009,(8):406 -411.
[6]張敏輝.基于協(xié)同商務平臺的工作流技術的研究[J].智能計算機與應用,2011,(12):60 -63.
TP311
A
1008-4681(2012)02-0047-03
2012-01-10
張敏輝(1980-),女,內(nèi)蒙古赤峰人,四川教育學院計算機科學系講師,碩士.研究方向:電子商務技術與應用、軟件技術與信息系統(tǒng).
(責任編校:晴川)