杜金峰,東 韓,徐凌宇,陳 亮,蔡 茂
(1.上海大學 計算機工程與科學學院,上海200072;2.國家海洋信息中心,天津300171)
隨著云計算的發(fā)展,大量數(shù)據(jù)資源、計算資源與應用資源集中在一起協(xié)同工作。單一的web服務可能滿足不了用戶的需求??紤]到用戶這些不斷發(fā)展變化的服務要求,組合現(xiàn)有跨領域跨地域的數(shù)據(jù)和模型而成的服務流成為網(wǎng)絡服務的新思路。因此將云計算平臺對網(wǎng)絡資源的整合運用到該系統(tǒng)中,同時又通過對服務流可視化建模,使得用戶可以設計、編輯資源組成符合自身要求的流程。其中工作流、網(wǎng)絡服務和可視化建模技術對系統(tǒng)的設計奠定了重要基礎。在文獻[1]中介紹了傳統(tǒng)軟件服務和云軟件服務的區(qū)別。文獻[2]中提出了DWSF網(wǎng)根據(jù)花費為用戶選擇最優(yōu)的服務組合,是提供服務的一種方法。文獻[3]在研究了面向服務的思想和工作流技術特點之后設計了一個面向服務的工作流系統(tǒng)。服務流的可視化技術可以學習文獻[4]中工作流的可視化建模原理。文獻[5]中深入分析了SOA理論和架構技術,提出了一種SOA的描述語言等等。這些成果和研究為海洋信息服務流開發(fā)提供了多層次的理論和技術支持。
工作流技術是一個傳統(tǒng)的企業(yè)業(yè)務集成方法,是為了達到一定的生產(chǎn)目的而根據(jù)一組定義的規(guī)則將文本、信息和任務在工作過程參與者之間傳送并驅動項目執(zhí)行代理完成任務。其流結構固定、參與個體及資源相對穩(wěn)定、集中式管理等特點決定了其不能適應動態(tài)、松耦合、分布等特性。不同于工作流,Web服務有動態(tài)、并發(fā)事務處理和低廉的分布式處理能力的特點。
傳統(tǒng)SaaS(軟件即服務)是通過網(wǎng)絡提供軟件服務的方式,缺乏可擴展性,資源的動態(tài)配置不夠靈活。而云SaaS(軟件即服務)構建在云平臺的硬件設施基礎之上,后臺統(tǒng)一管理和分配資源,滿足多租戶共享資源和資源的動態(tài)循環(huán)使用[1],節(jié)省資源,提高效率。本文的研究主要是基于面向服務的軟件服務流可視化建模研究。
云服務流是由模型、數(shù)據(jù)、內(nèi)部端口和模型詳細信息組成(如圖1所示)。模型是實現(xiàn)業(yè)務邏輯的實體,數(shù)據(jù)是模型的輸入。服務流作為一個封裝的實體,內(nèi)部的邏輯和輸入輸出通過端口實現(xiàn),依賴則體現(xiàn)出了模型的數(shù)據(jù)輸入和模型間的前承后繼關系。服務流的調(diào)度執(zhí)行依賴于模型的詳細信息。
圖1 服務流組成結構
自定制服務流在促進資源的合理配置和信息資源的有效傳遞和共享,提高效率的同時,也滿足了不同用戶的個性需求。從描述框架中可以看出,服務流不是基本型模型的簡單加和。多個模型之間存在串行或者并行的關系如圖2所示。
根據(jù)對工作流的理解,借鑒其相關理論和技術,分析云平臺下海洋服務流技術的特點,可以認為服務流技術就是通過對各種海洋模型和流程屬性的定義,調(diào)度多個模型按流程定義自動、連續(xù)、協(xié)調(diào)、優(yōu)化的執(zhí)行,有效避免單個瓶頸模型拖延完成周期。服務流系統(tǒng)以基本模型為節(jié)點,結合有向圖方式,節(jié)點與節(jié)點之間用有方向的連接線連接起來表示流程運行的路徑,完成定制。其描述如下:
圖2 模型關系
有向圖F表示用戶的一個流程,定義為一個集合F={TM,TD,R}。D代表數(shù)據(jù)資源的集合,M代表模型資源的集合。TD代表數(shù)據(jù)節(jié)點的集合,TM代表模型節(jié)點的集合,R代表各個節(jié)點之間的關系。
數(shù)據(jù)節(jié)點ND,只能作為模型節(jié)點NM的輸入。二元組ND=<name,path>,名稱name和存儲路徑path,是TD的元素。
模型節(jié)點NM,它的輸入可以是數(shù)據(jù)節(jié)點或者其他模型節(jié)點的輸出,定義五元組NM=<name,id,path,status,input,output>,是TM的元素。status表示節(jié)點當前的狀態(tài),可以用友好的方式傳達給用戶流程的執(zhí)行情況。input,output是流程定制好后,根據(jù)節(jié)點關系R做出的判斷。
實現(xiàn)數(shù)據(jù)節(jié)點和模型節(jié)點的重用。在一個流程圖中,用戶可以多次調(diào)用同一個數(shù)據(jù)資源和模型資源。對于數(shù)據(jù)資源來說,只能作為模型資源的輸入,是不會隨著流程的執(zhí)行不斷改變的。但模型資源不同,流程圖中不同位置的同一個模型會有不同的輸入和輸出。運行時無論各個節(jié)點是否是同樣的資源,在流程中設置不同的標識,以實現(xiàn)模型資源的重用。圖3表示了兩種模型節(jié)點間的關系,□表示模型節(jié)點,設計流程時數(shù)字相同表示該節(jié)點對應的是同樣的模型資源,提交后數(shù)字不同表示后臺處理的結果。
圖3 流程提交之前描述處理
如果存在兩個節(jié)點之間有向邊來連接,有向邊代表有序偶R表示兩個節(jié)點之間的前承后繼(輸入輸出)關系。n1∈TM,n2∈TM,n1≠n2,n1→n2,則說明模型節(jié)點n2是n1的前承節(jié)點,n1的輸出是n2的輸入。n1∈TD,n2∈TM,n1≠n2,n1→n2,則說明數(shù)據(jù)節(jié)點n1是n2的輸入數(shù)據(jù)。
流程中所有節(jié)點的關系R,由于數(shù)據(jù)節(jié)點只能作為模型節(jié)點的輸入,而且后臺執(zhí)行時不會操作到它,所以將數(shù)據(jù)節(jié)點和模型節(jié)點兩者分開討論。首先,以模型節(jié)點為例,如果T∈TM,有n個后繼模型節(jié)點T1,T2,T3,T4,…,Tn,,節(jié)點T’∈TM也有n個后繼模型節(jié)點,…,,那么R={T1,T2,T3,T4,…,Tn;,…,}。后臺根據(jù)該表示來進行分析執(zhí)行,把T和T’的輸出作為,T1,T2,T3,T4,…,Tn,,…,各個節(jié)點的輸入,這需要流程運行時來操作。如果是數(shù)據(jù)節(jié)點,那么當形成代表R描述的時候,就可以分析出來并將它作為后繼模型節(jié)點的輸入,設置好后將其從描述中刪除。最后,傳到后臺的就只有表示模型節(jié)點及關系,統(tǒng)一分析,運行。
海洋信息包括海表面水溫信息、海流信息、海洋生物資料信息、海洋地質物理信息、海洋氣象信息等多源多類信息。提供海洋信息服務就是與用戶共享海洋信息資源的過程。服務范圍覆蓋 “數(shù)字海洋”系統(tǒng)24個節(jié)點;提供基礎地理數(shù)據(jù)、水文、氣象、化學、遙感等海洋環(huán)境信息服務;提供基于GIS的虛擬資源訪問、在線模型服務、用戶模型定制開發(fā)、海洋環(huán)境要素(溫鹽密、流場)可視化服務;具備業(yè)務化運行能力。
海洋信息模型包括海洋環(huán)境信息遠程可視化、海洋環(huán)境信息聯(lián)機分析處理(OLAP)、海洋環(huán)境數(shù)據(jù)挖掘服務(主要包括海洋水文數(shù)據(jù)的異常模式發(fā)現(xiàn)算法,關聯(lián)規(guī)則發(fā)現(xiàn)算法,面向海洋水文數(shù)據(jù)的異常模式發(fā)現(xiàn)和關聯(lián)規(guī)則發(fā)現(xiàn)的示例研究等模型)、海洋遙感圖像融合、海洋境信息時空差值應用、海洋鋒數(shù)值模式計算及數(shù)據(jù)同化等。
3.2.1 資源注冊
計算資源、模型資源和數(shù)據(jù)資源注冊時,填寫資源提供單位、資源功能、資源參數(shù)需求等作為資源屬性上傳到云平臺,云平臺采用高效率的存儲方式為其分配存儲空間。
3.2.2 資源顯示
注冊成功的資源在JSP頁面上顯示出來,用戶需知的基本資源屬性也可以展示(alt)出來,把需要的拖動到流程框內(nèi)即可。之后,只要任意關系的起始和結束確定好,就能自動形成關系連線?;镜馁Y源如圖4所示。
3.2.3 流程中的關系表示
VML相當于IE里的畫筆,基于XML標準而且結合腳本,可以支持高質量的矢量圖形顯示。HTML中聲明VML命名空間就可以使用VML,并且VML標記里面可以定義DHTML大部分屬性和事件,有利于服務流關系的設計。
圖4 資源展示
3.2.4 資源及關系的添加刪除
當右鍵單擊資源結點或者關系連線,出現(xiàn)右鍵popup menu,可以對資源和關系進行編輯(如圖5所示)。對關系結點比較簡單,刪除代表關系的連線就完成了,可以繼續(xù)添加想要的關系。對于資源結點來說,刪除一個結點,對應的關系也要刪掉,包括以該結點作為開始和結束的所有結點。
圖5 節(jié)點和關系編輯器
3.2.5 輸入輸出的限定
根據(jù)資源的注冊信息判斷哪些可以作為哪些的輸入和輸出,用戶誤操作時要有明顯的錯誤提醒。比如說,數(shù)據(jù)結點無論在何種情況下都不能成為其他結點的輸出結點。
3.2.6 流程運行監(jiān)控
組成流程的模型節(jié)點的執(zhí)行情況決定了整個流程的狀態(tài)。模型的狀態(tài)定義有4種,即等待、執(zhí)行、出錯和完成,能夠實時的向用戶反映出來。
3.2.7 流程運行結果
結果最終以文件(文本文件、圖像文件等類型)的形式存儲在云平臺上,用戶可以跳轉到結果頁面查看結果或者通過查詢文件存儲路徑獲得結果。
海洋信息的精確測量對預警海洋災害、保護海洋生態(tài)等都有積極意義。海表面水溫的測量是其中的一個重要組成部分,困難在于如何處理多源多格式海表水溫值而獲得相對精確的海表水溫值。
如果對海表面水溫信息進行融合并獲得精確的融合結果,首先需要獲得海表面水溫監(jiān)測站點提供的多種格式海表溫度元數(shù)據(jù)。接著,進行融合的種類和方法多種多樣,融合結果的不同精度要求可能需要選擇合適的誤差分析工具對融合數(shù)據(jù)進行分析,不同的融合模型可能是由不同的算法設計機構開發(fā)的,比如多遙感融合圖像處理探測SST,多尺度遙感融合,多衛(wèi)星遙感數(shù)據(jù)融合等等。最后,融合結果的表現(xiàn)方式也多種多樣,比如表格、平面圖、立體圖等。
在這個例子中,由4種開發(fā)模型參與進來提供海洋服務資源,不同的實現(xiàn)可能有不同的來源。正是由于存儲在云計算平臺下并為用戶提供了一個統(tǒng)一的訪問接口,從而屏蔽了來源的不同。在海洋信息服務流設計時,模型之間的控制流是靜態(tài)的,數(shù)據(jù)流是隨著模型的運行實時動態(tài)產(chǎn)生的。
3.4.1 設計SST數(shù)據(jù)融合服務流
SST數(shù)據(jù)融合服務流定制之后的可視化結構如圖6所示。圖中SST作為Cluster模型節(jié)點的輸入數(shù)據(jù)。SST的融合的幾個步驟在圖中清楚的表示出來。先對海洋表面溫度進行清洗,再對其進行聚類并使用P & M關聯(lián)規(guī)則挖掘衛(wèi)星間的關聯(lián)度。通過聚類獲得SST相關聚類信息使用Kring插值算法進行插值。而通過P & M獲得數(shù)據(jù)則使用WJDP算法計算SST的沖突值。最后是初步處理數(shù)據(jù)的融合。
圖6 SST數(shù)據(jù)融合服務流
3.4.2 流程描述的基本步驟
用戶形成服務流有向圖后,圖形化的節(jié)點結構實現(xiàn)了對具體信息的屏蔽,但在運行實例中的擴充和定義,保證了邏輯和運行過程的統(tǒng)一。傳給后臺處理的流程描述形成分以下幾個步驟,以圖6的流程為例對這些步驟進行說明。
首先,形成最初的描述。為了方便程序識別數(shù)據(jù)和模型,對所有的數(shù)據(jù)、模型節(jié)點名稱做簡單處理,分別添加相應的后綴名稱".data"和".exe"。而對于相同的數(shù)據(jù)和模型,添加數(shù)字標識位。上例最初的描述可以表示為:"SST.data,clean.exe;clean.exe,P & M.exe,cluster.exe;cluster.exe,Kring.exe;P & M.exe,WJPD.exe,Kring.exe;Kring.exe,F(xiàn)usion.exe;WJPD.exe,F(xiàn)usion.exe;"。例子中不存在相同的模型節(jié)點,處理起來相對簡單。若存在相同模型,數(shù)字標識也可以將其標識為不同的模型節(jié)點。
其次,分析數(shù)據(jù)節(jié)點和模型節(jié)點。如果后綴是".data",則該節(jié)點是數(shù)據(jù),設置跟隨其后的模型節(jié)點的數(shù)據(jù)輸入是該數(shù)據(jù)節(jié)點。如果后綴是".exe"的模型節(jié)點,需要存儲該節(jié)點的相關信息,并返回唯一標識id。在這一步中,會出現(xiàn)用戶誤操作導致的錯誤。比較常見的錯誤有數(shù)據(jù)節(jié)點是其他節(jié)點的后繼節(jié)點(即其他節(jié)點的輸出作為數(shù)據(jù)節(jié)點的輸入),流程中至少一個模型節(jié)點(全部是數(shù)據(jù)節(jié)點的流程是沒有意義的)。當出現(xiàn)這些問題時,要停止向后臺傳遞,而向前臺用戶給出出錯信息。
最終,模型節(jié)點的唯一標識id用類似于第一步中的名稱描述的表示方法表示出來,將id描述的流程信息傳往后臺分析并處理運行服務流流程。
3.4.3 實驗結果反饋
圖7是在緯度39.875附近的不同經(jīng)度,來自aavhrr,clim和modisasstd的數(shù)據(jù)融合之后獲得融合值及可靠度。實驗中流程運行完成后,生成數(shù)據(jù)文件,存儲在云中并將路徑放在數(shù)據(jù)庫。用戶在重定位的結果頁面上返回該文件里的內(nèi)容。
圖7 SST服務流融合結果
本文在工作流以及軟件服務的理論基礎上,結合云計算平臺下SaaS的服務形式,為滿足用戶對多服務組合的個性需求提出了云平臺下的服務流定制模型。該模型通過對服務流的定制過程可視化,提高了用戶操作的便利性和配置的靈活性。該系統(tǒng)充分利用了云計算平臺的優(yōu)勢,也擴展了傳統(tǒng)工作流系統(tǒng)和普通web服務的功能。比如系統(tǒng)運行在云端服務器上,用戶客戶端無需安裝軟件,數(shù)據(jù)模型資源和流程數(shù)據(jù)均保存在云端服務器上等。
文中描述了服務流的組成元素、基本結構和局部運行模式,形成流程的形式化結構說明。流程描述則將其形式化結構和操作方法結合起來,使服務流的實現(xiàn)更容易,這為服務流引擎開發(fā)人員提供了完整、清晰無歧異的系統(tǒng)功能。最后實現(xiàn)了海表面溫度(SST)數(shù)據(jù)融合服務流的執(zhí)行,并給出了結果。但是,該系統(tǒng)由于可視化技術受限于瀏覽器,僅能在IE下操作,以后會在瀏覽器兼容性上努力。另一方面,由于資源提供者來自多個不同組織機構,系統(tǒng)在數(shù)據(jù)和模型資源的接口規(guī)范上還缺乏完整的統(tǒng)一標準,需要進一步的擴展說明。
[1]WANG Hongliang.Technological Inspur,Cloud Strategy.Information on[EB/OL].http://www.inspur.com/server/zazhi/10-4/chp11.htm,2011(in Chinese).[王洪亮.科技浪潮,云海戰(zhàn)略[EB/OL].http://www.inspur.com/server/zazhi/10-4/,2011.]
[2]CAO Yongzhong.Research on evolution of dynamic serviceflow and its key technologies[D].Nanjing:Nanjing University of Aeronautics and Astronautics,2008(in Chinese).[曹永忠.動態(tài)服務流進化及其關鍵技術[D].南京:南京航空航天大學,2008.]
[3]CHEN Min.Research and application of service-oriented workflow technology[D].Wuhan:Wuhan University of Technology,2010(in Chinese).[陳敏.面向服務工作流技術的研究及應用[D].武漢:武漢理工大學,2010.]
[4]WANG Jun.Research and implementation of workflow graphical modeling tool[D].Shenyang:Shenyang University of Teehnology,2009(in Chinese).[王軍.工作流圖形化建模工具的研究與實現(xiàn)[D].沈陽:沈陽工業(yè)大學,2009.]
[5]QIN Hui.Service oriented dynamic architecture description language SO-DADL and its application research[D].Xi’an:Xibei University,2011(in Chinese).[秦輝.面向服務的動態(tài)體系結構描述語言SO-DADL及其應用研究[D].西安:西北大學,2011.]
[6]DENG Zili.The network topology design and hadoop platform research based on cloud computing[D].Hefei:University of Science and Technology of China,2009(in Chinese).[鄧自立.云計算中的網(wǎng)絡拓撲設計和hadoop平臺研究[D].合肥:中國科學技術大學,2009.]
[7]ZOU Jin’an,TAN Qingping.Formal specification and implementation of workflow transaction[J].Journal of Zhejiang University(Science Edition),2009,36(5):519-524(in Chinese).[鄒金安,譚慶平.工作流事務的形式描述和實現(xiàn)[J].浙江大學學報:自然科學版,2009,36(5):519-524.]
[8]Ralph Mietzner,F(xiàn)rank Leymann.Towards provisioning the cloud:On the usage of multi-granularity flows and services to realize a unified provisioning infrastructure for SaaS applications[C]//IEEE Congress on Services,2008.
[9]LIU Huigai.Research and implementation of cloud computingoriented resource management[D].Beijing:Beijing University of Posts and Telecommunications,2011(in Chinese).[劉會改.面向云計算架構的資源管理的研究與實現(xiàn)[D].北京:北京郵電大學,2011.]
[10]TAN Yongming,SU Bin.Research of service-oriented architecture[J].Computer Technology and Development,2007,17(3):132-136(in Chinese).[譚永明,蘇斌.面向服務架構體系的研究[J].計算機技術與發(fā)展,2007,17(3):132-136.]