戴經國 楊雙如 藍天
[摘要]傳統的工作流技術只關注簡單的工作流轉和監控,無法滿足跨組織的業務以及應用集成等復雜需求。文章結合面向服務體系架構(Service-Oriented Architecture,SOA)的思想,將面向服務的特征與云計算的優勢進行融合,探討SOA與云計算相融合的工作流技術,提出了工作流模型和管理系統模型并分析了其的實現技術。
[關鍵詞]工作流技術; SOA;云計算;工作流管理系統
[DOI]1013939/jcnkizgsc201615120
1引言
作為企業經營過程重組與過程自動化的一種手段,工作流技術實現了任務的自動調度、資源的優化和管理,是對工作流程及其各操作步驟之間業務規則的抽象、概括描述。工作流建模,即將工作流程中的工作如何前后組織在一起的邏輯和規則,在計算機中以恰當的模型表達并對其實施計算。高度完成企業業務目標,因而越來越多的企業利用工作流技術解決信息自動化問題。但是隨著信息技術的發展,企業規模的日益擴展,一個企業要想處于不敗之地,必須與其他企業進行合作與交流,不能孤立存在,企業間的合作日益密切,跨組織、跨地域明顯。[1-4]傳統的工作流模型將業務過程與企業資源綁定,業務模型與組織和資源模型結合過于緊密,不適合企業的動態變化和發展的要求。[5]
文章在現有研究的基礎上,將工作流與SOA的思想和云計算的特征深度結合,提出了云計算和SOA相融合的工作流技術,以適應當今開放、分布、異構、贏利、動態的現實網絡環境中企業的復雜應用需求。在文章的下述部分,將闡述SOA與云計算相融合的工作流技術的原理,提出該工作流模型CSOWF以及對應的工作流管理系統CSOWFMS,并討論其的實現技術,最后給出總結,將對云計算與SOA相融合的工作流技術的發展前景給出初步的預測。
2基本原理
面向服務的體系結構(SOA)[6]是一種服務導向的組件模型。服務是指軟件中的一些處理過程或是封裝成獨立業務模塊的程序邏輯單元,可以通過標準協議通過網絡訪問和調用,而且接口公開。服務提供者開發出各種有用的服務,經過嚴格測試后把服務發布到公共的服務注冊表上,服務消費者通過查找服務注冊表找到所需要的服務,然后就可以使有那個所需要的服務了。由傳輸機制綁定服務,然后通過接口契約規定的格式來執行服務。使用工作流技術可以把簡單的服務聚集為復雜的服務,服務可以鏈接在一起實現較高級別的業務功能,利用SOA其松散耦合、接口標準化、服務獨立、粗粒度、位置透明等特點,解決異構性、互操作性等問題,高效地利用或重組企業現有的應用資源,適應業務流程和資源動態變化的需求。
將公共的服務注冊表存儲于云空間中,利用“云計算”的特點,將“云”作為資料存儲以及應用服務的中心,搭建計算機存儲、運算中心,使得企業內部或跨組織、跨地域企業可以通過一根網線借助瀏覽器方便進行訪問服務,這樣企業能夠將資源切換到需要的應用上,根據需求訪問計算機和存儲系統。利用云計算其低成本、靈活、可計量性等特點,解決企業高成本、資源浪費、服務分配不當等問題。
SOA與云計算相融合的工作流技術,SOA的服務,以最有效的架構方式進行服務整合,強調服務如何應用,而云計算解決的是提供服務的“多少”,即“量”方面的問題,通過網絡按需提供給企業。
21工作流、SOA、云計算的映射模型
工作流的整個生命周期中,從產生業務流程需求到實現流程,與SOA和云計算的映射模型可以分為圖1中所示的五層。
表示層:表示層是針對用戶的,該層由用戶接口和商業流程界面組成,不需要專門的領域知識,只需要定義用戶接口以及相關的流程界面。
服務層:完成業務流程的建模后,由專門的人員根據活動的目標與條件(時間、資源、人員、數據等),將活動(或任務)與相關的業務流程服務進行綁定。在服務的選擇上要根據一定的策略進行匹配。完成流程中所有活動(或任務)與對應的服務一一綁定后,可以將服務按照唯一標識進行編排,形成一個服務流程序列。
服務組件層:在SOA下建模,服務獨立于應用程序和開發平臺,其技術細節的實現是通過組價的組合來完成的。任何應用都可以通過高內聚、低耦合的方式進行組件包裝。組件之間通過分組或者重新組合便形成了服務組件層。
云應用層:該層包括軟件包、客戶管理、面向對象應用。“云應用”的工作原理是把傳統軟件“本地安裝、本地運算”的使用方式變為“即取即用”的服務,云應用不但可以幫助用戶降低IT成本,更能大大提高工作效率。
從表示層到云應用層,實際上是一個目標功能的分解過程,下面給出具體工作流到服務層以及云應用層的映射關系。
22工作流、服務、云計算之間的映射機制
利用SOA的思想以及相關的結構,SOA結構由服務提供者、服務注冊中心、服務消費者三部分組成,服務提供者是一個可以通過網絡尋址的實體,它接收和執行消費者的請求。把自己的服務注冊到服務注冊中心,以便服務消費者能夠發現和訪問該服務。因此每個企業將自己組織內部的應用組件化,以服務庫的形式發布到網絡上的服務注冊中心,并且建立好相關的業務流程模型。不管是企業內部或者是跨組織,跨地域的企業需要服務時,通過云計算技術在服務注冊中心按需搜索合適服務,利用云計算技術,能夠高效、便捷、低成本、隨時隨地篩選出最能滿足需求的服務。[7]
在選擇服務的過程中,除了根據活動(或任務)功能目標和相關條件(如時間、資源、人員、數據等)進行搜索合適的服務外,還可以根據服務的其他方面進行篩選,例如性能、信譽等,并結合搜素服務策略進行查找。適當的服務查找與組合機制,能夠降低服務查找和服務使用者之間的緊耦合關系,使得企業在開發新業務的同時,能夠集成企業遺留應用,減少重復開發,也降低了服務管理的難度,因此可以根據服務查找與服務組合技術進行篩選合適的服務。
23云計算與SOA相融合的工作流的優點
利用云計算能夠節約軟硬件成本,節省物理空間,高效、方便、低成本地完成服務資源的選擇和分配。[8]云計算提供給企業更多的靈活性,企業可以根據自己的業務情況來決定是否需要增加服務,企業也可以從小做起,用最小的投資來滿足你的現狀,而當企業的業務增長到需要增加服務的時候,可以根據自己的情況對服務進行選擇性增加,使企業的業務利用性最大化。
3云計算與SOA相融合的工作流
文章提出的云計算與SOA相融合的工作流技術主要探討兩個方面的內容:
(1)將工作流活動與服務進行合理映射,定義和執行工作流程。
(2)利用服務和云計算進行工作流的管理。
前者針對工作流程本身而言,是把工作流的業務模型定義與實現分開;定義時使業務人員關注于領域業務模型的構造;執行時將業務工作流部署于SOA環境中,運用云計算優勢,將服務注冊中心存儲于云存儲空間中,將服務組件層與云應用層密切聯系起來。以服務的方式為活動分配資源,合理調度,完成運行過程。后者則是針對工作流管理系統而言,改變傳統的集中式管理模式,通過服務機制對工作流的構造、執行和監控進行分布式管理。
31工作流模型
SOA下的工作流利用服務靈活性,在定義和實施上都能更適合復雜的實際環境需求;特別是在流程的執行上,SOA提供了一個自動完成活動或任務的良好環境。同時,工作流技術可以很好地植入到云計算項目中。云計算流程天然地由不同的、序列化的事務組成的工作流程。具體模型如圖2所示。
圖2的服務可以分為系統服務和非系統服務兩大類。系統服務指為進行工作流管理而提供的服務;非系統服務是為工作流程提供的服務。非系統服務存儲于云中,通過云計算按需查找服務,SOA與云計算相融合,能夠高效、方便、低成本完成跨組織、跨地域的業務服務流程。
32工作流管理系統
云計算與SOA相融合的工作流管理系統CSOWFMS是一個虛擬的工作流管理系統,由流程定義工具、監控管理工具盒引擎服務、定義存儲服務、實例存儲服務組成,并使用通用的注冊查找服務和元數據存儲服務[7],具體結構如圖3所示。其中,流程定義存儲服務提供保存流行定義文件的服務;流程實例存儲服務保存流程實例狀態數據;工作流引擎服務負責從流程定義存儲服務保存流程實例數據,通過調用其他服務完成流程活動,與其他引擎服務協作可進行流程遷移或并行執行。用戶則通過用戶界面與工作流引擎進行交互。
在CSOWFMS中,工作流的使用不再限于它的位置,任務由服務完成。只要為服務定義標準接口,它們就能被任何依據標準的應用訪問到。由于一個流程不再限制于工作流引擎的位置,流程能夠在任何地方設計、存儲和執行。而且SOA服務與云計算相融合,因此利用云計算的優勢,將能夠高效、靈活、方便、隨時隨地、低成本完成實際情況計算服務的需求。用戶能夠選擇分布在網絡環境中的任何可獲得的工作流引擎服務來開始執行一個流程。在執行過程中,可以在不同的引擎服務間遷移來達到負載平衡,降低不同應用和引擎服務間的通信費用,易于從錯誤中恢復。甚至一個流程同時在多個引擎服務上執行以獲得更高的效率。可見,CSOWFMS具有分布、高效、容錯、負載平衡等優點、非常適應復雜信息環境的需求。[8-9]
4實現技術
云計算與SOA相融合的工作流的實現依賴于SOA和云計算的實現。流程以XML描述并與Web服務相結合非常重要。Web Service是SOA的一種實現方法。Web服務是構架在XML和Internet技術上的分布式計算技術,其目的是利用已經廣泛使用的Internet協議在分布節點之間傳遞稱為消息的XML文檔。
利用XML、WSDL、SOAP等Web服務技術分別可實現流程與服務的描述、數據映射以及通信,而UDDI則提供了服務發布與發現和重用的手段。由于這些技術都是開放標準的,以這些技術為基礎實現的工作流,不關系具體的業務流程所依賴的語言、系統或對象模型,跨多個應用的業務自動化更容易。業務流程可集合成復雜的工作流,設計、開發、維護和使用工作流都變得相對容易。
利用云計算技術,利用虛擬化機制將具體的計算特性加以封裝隱藏,對外提供統一邏輯接口,從而屏蔽物理設備多樣性帶來的差異,實現了計算虛擬化、存儲虛擬化、網絡虛擬化、應用虛擬化和桌面虛擬化,虛擬化是實現云計算的最重要的技術基礎。云計算的實現機制基于計算服務資源使用量付費的效用計算機制,用一個實例可以同時處理多個企業請求的業務服務流程。云計算提高了流程發布為服務供外包調用的安全性,同時對策略管理、可靠消息傳遞、事務處理等的支持。
5結論
文章結合了面向服務體系架構對復雜的信息化環境的支持與工作流技術在業務流程自動化方面的優勢,以及根據云計算在按需計算服務資源方面的優勢,提出了云計算與SOA相融合的工作流技術。以服務為實現工作流業務流程的手段,文章探討了工作流與服務以及云計算的映射原理,提出了云計算和SOA相融合的工作流模型CSOWF和描述以及云計算服務化的工作流管理系統CSOWFMS,最后探討了其的實現技術。相信隨著SOA和云計算的日益成熟以及工作流的深入發展,三者的結合將會成為必然。
參考文獻:
[1]Fan YushunWorkflow management technology base[M].Beijing:Tsinghua University Press,2001.
[2]Rezaei,Reza; Chiew,Thiam Kian; Lee,Sai PeckA semantic interoperability framework for software as a service systems in cloud computing environments[J]Expert Systems With Applications,2014,41(13):5751-5770.
[3]Wang,Mingzhong;Zhang,Xuyun;Zhu,LiehuangTrust-based workflow refactoring for Concurrent workflow refactoring for concurrent scheduling in service-oriented environment[J].Concurrency and Computation-practice Experience,2013,25(13):SI.
[4]Salimifard,K; Wright,MPetri net-based modelling of workflow system:an overview[J].European Journal of operational Research,2001,134(3):664-676.
[5]YU Liang,Wei Jun-based services and rules extended workflow model[J].Computer Engineering and Applications,2004, 40(31):186-189.
[6]Jason Bloomberg面向服務架構(SOA)的原則[EB/OL].[2003-03-20].http://wwwwmlchinacomNewsContent/ 39htm.
[7]Lee,Minsoo,Yoon,Hyejung,Shin,HyoseopIntelligent dynamic workflow support for a ubiquitous Web service-based manufacturing environmentJournal of Intelligent Manufacturing,2009,20(3):295-302.
[8]Chaixue Zhi,Cao JianWorkflow-oriented cloud computing technology Computer Systems[J].Journal of Chinese Computer Systems,2012(1).
[9]Zhangmin HuiSOA architec ture workflow management system[J].Computing Technology and Automation,2012(1).
[10]范玉順工作流管理技術基礎[M].北京:清華大學出版社,2001.
[11]余亮,魏俊基于服務和規則擴展的工作流模型[J].計算機工程與應用,2004,40(31):186-189.
[12]柴學智,曹健面向云計算的工作流技術小型微型計算機系統,2012(1).
[13]張敏輝SOA架構的工作流管理系統的研究與應用[J].計算技術與自動化,2012(1).