鄧玉坤,王 鋒,鄧 輝,季凱帆
(1.昆明理工大學云南省計算機技術(shù)應(yīng)用重點實驗室,昆明 650051;2.昆明理工大學津僑學院和云南省計算機技術(shù)應(yīng)用重點實驗室,昆明 650093)
隨著技術(shù)的發(fā)展,新一代天基或地基天文觀測技術(shù)不斷涌現(xiàn),如何處理觀測獲取的海量天文數(shù)據(jù)成為當前天文學領(lǐng)域的難題。為有效地利用這些數(shù)據(jù)資源,近年來計算機科學家在數(shù)據(jù)存儲、處理和共享等方面提出了一系列新技術(shù),以滿足天文學家在科學研究方面的迫切需求。
網(wǎng)格技術(shù)就是其中的重要技術(shù)之一。網(wǎng)格技術(shù)是一個支持復(fù)雜科學實驗,整合分布式資源和科學設(shè)備的革命性技術(shù)。網(wǎng)格應(yīng)用程序整合了大規(guī)模、分布式、異構(gòu)的資源,為科學家在共享、管理等處理海量數(shù)據(jù)方面提供了一個全新的方向。得益于網(wǎng)格強大的中間件技術(shù)和數(shù)據(jù)處理能力,網(wǎng)格技術(shù)在數(shù)據(jù)處理上全面體現(xiàn)了松耦合特性的優(yōu)勢。自從網(wǎng)格的概念被提出以后,由于它在各個方面的顯著優(yōu)勢,已成為分布式數(shù)據(jù)處理方面的主流技術(shù)。
基于網(wǎng)格計算,近幾年出現(xiàn)了很多e-Science項目,例如Astrogrid[1]、NVO[2]等。這些項目的目的都是為了高效地整合分布式資源,同時調(diào)用分布在全球各地的服務(wù),以此幫助科學家提高學術(shù)研究的能力與效率??茖W工作流(Scientific Workflow)技術(shù)由于其松耦合系統(tǒng)的基本核心,已經(jīng)成為一個研究熱點。
所謂科學工作流技術(shù),是指將科學研究中遇到的數(shù)據(jù)管理、分析、模擬、仿真等一系列工作轉(zhuǎn)化為一個個獨立的服務(wù),再把這些服務(wù)通過數(shù)據(jù)鏈接組合在一起,從而滿足研究人員在科學實驗或數(shù)據(jù)處理中的需要,實現(xiàn)相應(yīng)的數(shù)據(jù)處理與科學計算。科學工作流技術(shù)針對科學研究工作的特點,立足于大規(guī)模科學處理,對科學研究提供輔助科學發(fā)現(xiàn)的環(huán)境。
當前對科學工作流技術(shù)的研究,主要集中于5個方面,分別是數(shù)據(jù)訪問、模型設(shè)計、工作流模型分層、工作流語義和數(shù)據(jù)起源。
事實上,科學工作流是一種通用的技術(shù),可以應(yīng)用于天文、生物信息學等各個方面。但在具體的天文數(shù)據(jù)處理領(lǐng)域,當前的科學工作流系統(tǒng)有兩個不足之處,一是系統(tǒng)過于龐大和繁瑣,二是系統(tǒng)功能擴展比較困難。本文針對當前的問題,設(shè)計實現(xiàn)了一套輕量級的科學工作流系統(tǒng),以克服當前系統(tǒng)的缺點。在回顧前期研究工作后,首先分析天文學家的需求,然后提出了系統(tǒng)結(jié)構(gòu),并分析了系統(tǒng)實現(xiàn)的關(guān)鍵技術(shù)。
科學工作流的作用是通過整合科學實驗中的各個要素,來管理大規(guī)模的科學計算工作。同時,科學工作流系統(tǒng)提供了一個驗證科學假說的環(huán)境,通過監(jiān)控科學計算的實驗過程,對科學實驗中的數(shù)據(jù)進行實時跟蹤。由于其眾多優(yōu)勢,一些開源的或者商用的科學工作流系統(tǒng)已經(jīng)應(yīng)用于各個領(lǐng)域的科學研究中。
Kepler系統(tǒng)是一個開源的科學工作流引擎,它基于PtolemyⅡ系統(tǒng)開發(fā)[3]。Kepler是一個成熟的、面向數(shù)據(jù)流的工作流架構(gòu)。Kepler系統(tǒng)中的獨立組件被稱為“角色”,面向角色的設(shè)計模型是Kepler系統(tǒng)的基礎(chǔ)。Altintas首先討論了Kepler系統(tǒng)在天文數(shù)據(jù)處理方面的應(yīng)用[4]。
基于Kepler平臺,Aragon和Rune提出了“Sunfall”系統(tǒng)[5],它采用了新穎形象的交互方式和分析技術(shù),來促進科學研究分析復(fù)雜的、高噪聲的、高度空間要求、高度容量要求和高實時性的數(shù)據(jù)?;赟unfall系統(tǒng),他們進一步提出了一個用于數(shù)據(jù)傳輸和工作流管理的新技術(shù)方案,同時討論了在部署一個觀測天體物理的大規(guī)模工作流管理系統(tǒng)時的相關(guān)工作。
Pegasus[6]是一個將科學工作流技術(shù)應(yīng)用于分布式資源上的框架。抽象的工作流設(shè)計模型是由科學家自己決定所有需要用到的資源,這樣就允許科學家來設(shè)計工作流,而不是由設(shè)計人員決定應(yīng)該使用哪些設(shè)備或資源。
除了上面提到的這些科學工作流系統(tǒng),還有一些其他的科學工作流系統(tǒng),例如:Taverna[7]、Triana[8]、GridBus[9]等。但是直到最近尚沒有一個完全適用于天文數(shù)據(jù)處理的科學工作流系統(tǒng)。
總體來說,雖然在科學工作流技術(shù)的各個方面都有相關(guān)的論文和資料,但是尚沒有對應(yīng)用于天文數(shù)據(jù)處理領(lǐng)域的科學工作流系統(tǒng)進行全面、系統(tǒng)介紹的資料。在應(yīng)用于天文數(shù)據(jù)處理方面的科學工作流系統(tǒng)中,還有很多尚待解決的問題,需要進一步研究。
天文學是人類歷史上最古老的學科之一。天文觀測是天文學最重要的研究手段。因此對天文觀測數(shù)據(jù)的處理就成為天文學家的主要需求。近幾年來,大規(guī)模的天文科學項目一個接一個地開展,這意味著天文數(shù)據(jù)將會有爆炸式增長,而對這些數(shù)據(jù)處理的需求也將越來越迫切。針對天文觀測數(shù)據(jù)的特征和天文學家自身的一些特點,總結(jié)得出如下需求:
(1)對海量數(shù)據(jù)的處理
天文數(shù)據(jù)天生具有海量、分布式和異構(gòu)的特點。一般來說,天文數(shù)據(jù)包括文本文件、高質(zhì)量圖像,甚至是視頻文件,數(shù)據(jù)的存儲容量將會超過20TB。但由于各個項目所使用的技術(shù)不盡相同,造成天文數(shù)據(jù)的存儲格式和方法也都不一樣,同時,不同項目之間的平臺、格式和操作系統(tǒng)也互不相同。
(2)支持松耦合服務(wù)
由于不同項目使用的技術(shù)及數(shù)據(jù)的存儲格式不一樣,因此在SWF系統(tǒng)架構(gòu)的設(shè)計中,支持松耦合系統(tǒng)是至關(guān)重要的一點。SWF必須有效地整合和調(diào)用分布式的服務(wù),考慮到天文領(lǐng)域數(shù)據(jù)的特殊性,應(yīng)用于天文領(lǐng)域的科學工作流系統(tǒng)必須要支持松耦合應(yīng)用和數(shù)據(jù)。
(3)支持重做機制
程序的終止和重做功能是天文學家的重要需求。他們需要系統(tǒng)有可以隨時停止和調(diào)整參數(shù)的功能,而且在參數(shù)修改之后,系統(tǒng)可以在他們調(diào)整過的基礎(chǔ)上重新運行。
(4)易于使用
考慮到天文學家的計算機水平,科學工作流系統(tǒng)的安裝、操作和定制都必須簡單易學。例如,天文學家都喜歡直接使用網(wǎng)頁界面。軟件的安裝和配置一直都是困擾他們的問題,尤其是任務(wù)定制對他們來講更加困難。他們可以理解甚至掌握如何使用C/C++或者FROTRAN語言編程,但是要讓他們掌握如何在網(wǎng)格環(huán)境下定制服務(wù)流程卻太過困難,畢竟并不是所有的天文學家都是計算機專家。
為了達到天文學家的上述需求,提出了一套輕量級科學工作流架構(gòu)。系統(tǒng)將支持中國虛擬天文臺項目(China-VO)[10],同時用來調(diào)用國內(nèi)的分布式天文資源。
一個設(shè)計良好的系統(tǒng)架構(gòu)是科學工作流系統(tǒng)開發(fā)的基礎(chǔ)。文中提出了一個簡單實用但是可以指導(dǎo)科學工作流系統(tǒng)設(shè)計的架構(gòu),它包括4個主要層:(1)數(shù)據(jù)訪問層;(2)服務(wù)層;(3)業(yè)務(wù)邏輯層;(4)數(shù)據(jù)展現(xiàn)和接口層。圖1顯示了系統(tǒng)的詳細結(jié)構(gòu)。
圖1 系統(tǒng)結(jié)構(gòu)圖Fig.1 Block diagram of the system
系統(tǒng)的架構(gòu)參考了相關(guān)文獻并吸取了一些科學工作流系統(tǒng)的優(yōu)勢。在架構(gòu)設(shè)計中,分層模型對于有效地簡化系統(tǒng)以及降低系統(tǒng)的設(shè)計難度是非常重要的。充分考慮到了天文數(shù)據(jù)的特點,例如設(shè)計了一個抽象的數(shù)據(jù)處理模型來支持分布式數(shù)據(jù)。
天文數(shù)據(jù)是典型的具有多種存儲格式的數(shù)據(jù)類型。FITS格式是一種天文界廣泛應(yīng)用的標準格式。但是并不是所有的天文數(shù)據(jù)都以FITS格式存儲,有些數(shù)據(jù)以關(guān)系數(shù)據(jù)庫存儲,還有其他格式存儲的。為了處理這些異構(gòu)的海量數(shù)據(jù),考慮用一種統(tǒng)一的抽象數(shù)據(jù)訪問模型來處理這些異構(gòu)數(shù)據(jù)。采用封裝技術(shù)來實現(xiàn)統(tǒng)一的數(shù)據(jù)訪問接口。封裝的接口將支持多種查詢語言,從高級查詢語言到低級數(shù)據(jù)訪問接口。為了實現(xiàn)與中國虛擬天文臺的數(shù)據(jù)訪問項目(VO-DAS)[11]的銜接,設(shè)計了一個組件來訪問中國VO-DAS標準接口。
與其他科學工作流系統(tǒng)設(shè)計不同的是將服務(wù)層和業(yè)務(wù)邏輯層分開設(shè)計,把服務(wù)層作為單獨的一層來考慮。這一層將包括3個子功能:數(shù)據(jù)起源、容錯處理和高性能計算。由于科學分析的特性要求,數(shù)據(jù)起源是必不可少的功能。采用了一種類似“快照”的功能來存儲所有的相關(guān)數(shù)據(jù)??煺諗?shù)據(jù)可以有效地還原計算過程和確認計算的正確性。
另外,考慮到當前的網(wǎng)絡(luò)環(huán)境及其它硬件方面的局限性,必須設(shè)計一個容錯處理機制,用來處理異常情況,例如網(wǎng)絡(luò)突然中斷、程序發(fā)生異常錯誤、計算機異常關(guān)閉等。容錯處理功能可以發(fā)現(xiàn)和處理程序執(zhí)行的異常情況,從而確保系統(tǒng)的健壯性。
基于服務(wù)層,業(yè)務(wù)邏輯層通過整合低級服務(wù)組件來構(gòu)成業(yè)務(wù)邏輯流程。業(yè)務(wù)邏輯層有3部分組成:設(shè)計、管理和工作流。
工作流的設(shè)計和定制是系統(tǒng)的關(guān)鍵部分。雖然大多數(shù)普通用戶喜歡使用圖形用戶界面(GUI),但是很多天文學家喜歡使用命令行接口,因為他們認為圖形界面不能精確地表達他們的想法。同樣,復(fù)雜的計算流程不能夠簡單地用GUI設(shè)計出來。而相反,命令行接口雖然很難學會使用,但是當科學家掌握了如何使用它們,命令行可以快速精準地描述一個復(fù)雜的計算流程。前文曾提到,很多天文學家都有編程能力,他們對于命令行環(huán)境也非常熟悉。
當然,在對命令行接口改善的同時,也對圖形用戶界面進行了改進,畢竟圖形用戶界面具有直觀、方便和易于使用的特點,可以幫助天文學家確認工作流的可用性和正確性。
在參考了許多文獻后,決定采用Web服務(wù)的商業(yè)流程執(zhí)行語言(BPEL4WS)來設(shè)計工作流。BPEL4WS提供了一套Web服務(wù)標準,可以實現(xiàn)可執(zhí)行的和抽象的業(yè)務(wù)流程。它擴展了Web Service服務(wù)的模型,使之能夠支持業(yè)務(wù)處理流程。BPEL4WS定義了一個可操作的整體模型,可以降低在擴展自動處理業(yè)務(wù)內(nèi)外時的難度。
一個優(yōu)秀的展現(xiàn)方式可以體現(xiàn)出數(shù)據(jù)分析的重要性。根據(jù)調(diào)查,Web瀏覽器是天文學家最常用的信息獲取方式之一。為了滿足天文學家的需要,在設(shè)計中實現(xiàn)了一個組件,它可以將所有必要的信息都輸出到瀏覽器界面。同時,采用Web 2.0技術(shù)改進天文學家和系統(tǒng)之間的交互。
另外,系統(tǒng)提供一個Java插件程序來支持在線的圖像分析。圖像是天文數(shù)據(jù)展現(xiàn)的重要方式之一,同時天文學家也希望可以通過在瀏覽器上實時展現(xiàn)圖像來分析和檢驗天文數(shù)據(jù)的正確性。
系統(tǒng)全部使用Java語言實現(xiàn),可以在主流操作系統(tǒng)上運行,例如:Windows和Linux。底層的任務(wù)分布和制定是基于網(wǎng)絡(luò)網(wǎng)格技術(shù)。系統(tǒng)展現(xiàn)界面是基于標準HTML語言實現(xiàn),這樣讓用戶可以使用各種瀏覽器(例如:IE和Firefox)來訪問服務(wù)器。同時,如果需要用到圖像分析功能,用戶將自動下載到一個Java插件程序到本地客戶端。如果用戶希望使用傳統(tǒng)的命令行接口,一個命令行客戶端的程序同樣提供給用戶下載使用。為了提供Web訪問接口,采用了Tomcat,一個開源的http服務(wù)器(http://www.tomcat.org),作為C-SWF系統(tǒng)的應(yīng)用服務(wù)器。
表1 C-SWF和Kepler、Pegasus系統(tǒng)分類對比
為了對比主流的科學工作流系統(tǒng)和C-SWF之間的區(qū)別,參考文[12],列出了相關(guān)的科學工作流系統(tǒng)的特點,如表1。
到目前為止,C-SWF系統(tǒng)已經(jīng)實現(xiàn)了基本原型,可以滿足天文學家的基本需求。然而系統(tǒng)尚有許多局限性和尚待解決的問題,這些問題也是下一步的主要工作。
(1)任務(wù)重做。雖然C-SWF系統(tǒng)可以支持一定程度上的任務(wù)重做功能,但是距離天文學家的要求還有很大的差距。天文學家希望C-SWF可以在任何時候停止運行,并且參數(shù)可以人工修改并在修改的基礎(chǔ)上繼續(xù)運行。C-SWF可以支持重做,但是目前尚未實現(xiàn)停止執(zhí)行并修改參數(shù)的功能。
(2)程序跟蹤調(diào)試。與桌面計算機的整體開發(fā)環(huán)境不同,網(wǎng)絡(luò)環(huán)境下的網(wǎng)格計算的調(diào)試和跟蹤非常困難。跟蹤調(diào)試是系統(tǒng)目前迫切需要,但實現(xiàn)起來比較困難的功能。C-SWF計劃采用Log日志的方式來跟蹤每個任務(wù)的執(zhí)行狀態(tài)及記錄程序的異常情況。通過這種方法來實現(xiàn)對程序的執(zhí)行情況進行跟蹤。
(3)數(shù)據(jù)起源。數(shù)據(jù)起源功能在科學假說的證明、科學實驗的重建過程上有非常重要的意義。數(shù)據(jù)起源需要收集所有執(zhí)行過程中的數(shù)據(jù)。計劃采用“快照”的方法對系統(tǒng)的每個執(zhí)行階段的數(shù)據(jù)進行備份存儲,雖然這些數(shù)據(jù)的存儲容量可能十分龐大,但考慮到對科學研究實驗的重要作用,在一定程度上犧牲系統(tǒng)的效率,也是可以容忍的。
(4)服務(wù)自動匹配。在C-SWF中采用靜態(tài)的服務(wù)聲明函數(shù)。這樣造成程序員需要記住每一個需要調(diào)用的Web服務(wù)的URL地址。這樣對天文學家來說過于困難。
論文討論了一個輕量級的科學工作流系統(tǒng)(C-SWF)的設(shè)計與實現(xiàn)。C-SWF針對天文領(lǐng)域數(shù)據(jù)處理而設(shè)計,所有的基礎(chǔ)需求,例如任務(wù)定制、數(shù)據(jù)傳輸、數(shù)據(jù)起源和任務(wù)重做機制都已經(jīng)實現(xiàn)。對比現(xiàn)有的科學工作流系統(tǒng),C-SWF提供了更多更有用的特點,例如簡單易用、高性能和易于部署等等,可以較好地滿足天文學家的需要。
[1] Astrogrid.Virtual Observatory Software for Astronomers[Z].http://www.astrogrid.org,2009.
[2] Nvo.National Virtual Observatory[Z].http://www.us-vo.org,2009.
[3] Kepler.Kepler Scientific Workflow[Z].http://www.kepler-project.org,2009.
[4] Altintas I.Astrophysics Workflows in the Kepler System[Z].2008.
[5] Aragon C R,Bailey S J,Poon S,et al.Sunfall:A Collaborative Visual Analytics System for Astrophysics[M].Los Alamitos,CA,USA:2007:0,219-220.
[6] Deelman E,Singh G,Su M,et al.Pegasus:A framework for mapping complex scientific workflows onto distributed systems[J].Sci Program,2005,13(3):219-237.
[7] Oinn T,Addis M,Ferris J,et al.Taverna:a tool for the composition and enactment of bioinformatics workflows[J].Bioinformatics,2004,20(17):3045-3054.
[8] Taylor I,Shields M,Wang I,et al.Distributed P2P Computing within Triana:A Galaxy Visualization Test Case[C].IEEE Computer Society,2003,161.
[9] Buyya R,Venugopal S.The Gridbus Toolkit for Service Oriented Grid and Utility Computing:An Overview and Status Report[Z].http://www.gridbus.org,2004.
[10] 崔辰州,趙永恒.中國虛擬天文臺體系結(jié)構(gòu)[J].天文研究與技術(shù)—國家天文臺臺刊,2004,1(2):140-151.
Cui Chenzhou,Zhao Yongheng.Architecture of Chinese Virtual Observatory[J].Astronomical Research & Technology,2004,1(2):140-151.
[11] 楊陽,劉超,田???等.VO數(shù)據(jù)訪問服務(wù)客戶端系統(tǒng)的設(shè)計與實現(xiàn)[J].天文研究與技術(shù)—國家天文臺臺刊,2008,5(3):234-240.
Yang Yang,Liu Chao,Tian Haijun,et al.The Design and Implement of Client System of Virtual Observatory Data Access Service[J].Astronomical Research & Technology,2008,5(3):234-240.
[12] Yu J,Buyya R.A taxonomy of scientific workflow systems for grid computing[J].Sigmod Rec,2005,34(3): 44-49.