鄧玉坤,王 鋒,鄧 輝,季凱帆
(1.昆明理工大學云南省計算機技術應用重點實驗室,昆明 650051;2.昆明理工大學津僑學院和云南省計算機技術應用重點實驗室,昆明 650093)
隨著技術的發展,新一代天基或地基天文觀測技術不斷涌現,如何處理觀測獲取的海量天文數據成為當前天文學領域的難題。為有效地利用這些數據資源,近年來計算機科學家在數據存儲、處理和共享等方面提出了一系列新技術,以滿足天文學家在科學研究方面的迫切需求。
網格技術就是其中的重要技術之一。網格技術是一個支持復雜科學實驗,整合分布式資源和科學設備的革命性技術。網格應用程序整合了大規模、分布式、異構的資源,為科學家在共享、管理等處理海量數據方面提供了一個全新的方向。得益于網格強大的中間件技術和數據處理能力,網格技術在數據處理上全面體現了松耦合特性的優勢。自從網格的概念被提出以后,由于它在各個方面的顯著優勢,已成為分布式數據處理方面的主流技術。
基于網格計算,近幾年出現了很多e-Science項目,例如Astrogrid[1]、NVO[2]等。這些項目的目的都是為了高效地整合分布式資源,同時調用分布在全球各地的服務,以此幫助科學家提高學術研究的能力與效率。科學工作流(Scientific Workflow)技術由于其松耦合系統的基本核心,已經成為一個研究熱點。
所謂科學工作流技術,是指將科學研究中遇到的數據管理、分析、模擬、仿真等一系列工作轉化為一個個獨立的服務,再把這些服務通過數據鏈接組合在一起,從而滿足研究人員在科學實驗或數據處理中的需要,實現相應的數據處理與科學計算。科學工作流技術針對科學研究工作的特點,立足于大規模科學處理,對科學研究提供輔助科學發現的環境。
當前對科學工作流技術的研究,主要集中于5個方面,分別是數據訪問、模型設計、工作流模型分層、工作流語義和數據起源。
事實上,科學工作流是一種通用的技術,可以應用于天文、生物信息學等各個方面。但在具體的天文數據處理領域,當前的科學工作流系統有兩個不足之處,一是系統過于龐大和繁瑣,二是系統功能擴展比較困難。本文針對當前的問題,設計實現了一套輕量級的科學工作流系統,以克服當前系統的缺點。在回顧前期研究工作后,首先分析天文學家的需求,然后提出了系統結構,并分析了系統實現的關鍵技術。
科學工作流的作用是通過整合科學實驗中的各個要素,來管理大規模的科學計算工作。同時,科學工作流系統提供了一個驗證科學假說的環境,通過監控科學計算的實驗過程,對科學實驗中的數據進行實時跟蹤。由于其眾多優勢,一些開源的或者商用的科學工作流系統已經應用于各個領域的科學研究中。
Kepler系統是一個開源的科學工作流引擎,它基于PtolemyⅡ系統開發[3]。Kepler是一個成熟的、面向數據流的工作流架構。Kepler系統中的獨立組件被稱為“角色”,面向角色的設計模型是Kepler系統的基礎。Altintas首先討論了Kepler系統在天文數據處理方面的應用[4]。
基于Kepler平臺,Aragon和Rune提出了“Sunfall”系統[5],它采用了新穎形象的交互方式和分析技術,來促進科學研究分析復雜的、高噪聲的、高度空間要求、高度容量要求和高實時性的數據。基于Sunfall系統,他們進一步提出了一個用于數據傳輸和工作流管理的新技術方案,同時討論了在部署一個觀測天體物理的大規模工作流管理系統時的相關工作。
Pegasus[6]是一個將科學工作流技術應用于分布式資源上的框架。抽象的工作流設計模型是由科學家自己決定所有需要用到的資源,這樣就允許科學家來設計工作流,而不是由設計人員決定應該使用哪些設備或資源。
除了上面提到的這些科學工作流系統,還有一些其他的科學工作流系統,例如:Taverna[7]、Triana[8]、GridBus[9]等。但是直到最近尚沒有一個完全適用于天文數據處理的科學工作流系統。
總體來說,雖然在科學工作流技術的各個方面都有相關的論文和資料,但是尚沒有對應用于天文數據處理領域的科學工作流系統進行全面、系統介紹的資料。在應用于天文數據處理方面的科學工作流系統中,還有很多尚待解決的問題,需要進一步研究。
天文學是人類歷史上最古老的學科之一。天文觀測是天文學最重要的研究手段。因此對天文觀測數據的處理就成為天文學家的主要需求。近幾年來,大規模的天文科學項目一個接一個地開展,這意味著天文數據將會有爆炸式增長,而對這些數據處理的需求也將越來越迫切。針對天文觀測數據的特征和天文學家自身的一些特點,總結得出如下需求:
(1)對海量數據的處理
天文數據天生具有海量、分布式和異構的特點。一般來說,天文數據包括文本文件、高質量圖像,甚至是視頻文件,數據的存儲容量將會超過20TB。但由于各個項目所使用的技術不盡相同,造成天文數據的存儲格式和方法也都不一樣,同時,不同項目之間的平臺、格式和操作系統也互不相同。
(2)支持松耦合服務
由于不同項目使用的技術及數據的存儲格式不一樣,因此在SWF系統架構的設計中,支持松耦合系統是至關重要的一點。SWF必須有效地整合和調用分布式的服務,考慮到天文領域數據的特殊性,應用于天文領域的科學工作流系統必須要支持松耦合應用和數據。
(3)支持重做機制
程序的終止和重做功能是天文學家的重要需求。他們需要系統有可以隨時停止和調整參數的功能,而且在參數修改之后,系統可以在他們調整過的基礎上重新運行。
(4)易于使用
考慮到天文學家的計算機水平,科學工作流系統的安裝、操作和定制都必須簡單易學。例如,天文學家都喜歡直接使用網頁界面。軟件的安裝和配置一直都是困擾他們的問題,尤其是任務定制對他們來講更加困難。他們可以理解甚至掌握如何使用C/C++或者FROTRAN語言編程,但是要讓他們掌握如何在網格環境下定制服務流程卻太過困難,畢竟并不是所有的天文學家都是計算機專家。
為了達到天文學家的上述需求,提出了一套輕量級科學工作流架構。系統將支持中國虛擬天文臺項目(China-VO)[10],同時用來調用國內的分布式天文資源。
一個設計良好的系統架構是科學工作流系統開發的基礎。文中提出了一個簡單實用但是可以指導科學工作流系統設計的架構,它包括4個主要層:(1)數據訪問層;(2)服務層;(3)業務邏輯層;(4)數據展現和接口層。圖1顯示了系統的詳細結構。

圖1 系統結構圖Fig.1 Block diagram of the system
系統的架構參考了相關文獻并吸取了一些科學工作流系統的優勢。在架構設計中,分層模型對于有效地簡化系統以及降低系統的設計難度是非常重要的。充分考慮到了天文數據的特點,例如設計了一個抽象的數據處理模型來支持分布式數據。
天文數據是典型的具有多種存儲格式的數據類型。FITS格式是一種天文界廣泛應用的標準格式。但是并不是所有的天文數據都以FITS格式存儲,有些數據以關系數據庫存儲,還有其他格式存儲的。為了處理這些異構的海量數據,考慮用一種統一的抽象數據訪問模型來處理這些異構數據。采用封裝技術來實現統一的數據訪問接口。封裝的接口將支持多種查詢語言,從高級查詢語言到低級數據訪問接口。為了實現與中國虛擬天文臺的數據訪問項目(VO-DAS)[11]的銜接,設計了一個組件來訪問中國VO-DAS標準接口。
與其他科學工作流系統設計不同的是將服務層和業務邏輯層分開設計,把服務層作為單獨的一層來考慮。這一層將包括3個子功能:數據起源、容錯處理和高性能計算。由于科學分析的特性要求,數據起源是必不可少的功能。采用了一種類似“快照”的功能來存儲所有的相關數據。快照數據可以有效地還原計算過程和確認計算的正確性。
另外,考慮到當前的網絡環境及其它硬件方面的局限性,必須設計一個容錯處理機制,用來處理異常情況,例如網絡突然中斷、程序發生異常錯誤、計算機異常關閉等。容錯處理功能可以發現和處理程序執行的異常情況,從而確保系統的健壯性。
基于服務層,業務邏輯層通過整合低級服務組件來構成業務邏輯流程。業務邏輯層有3部分組成:設計、管理和工作流。
工作流的設計和定制是系統的關鍵部分。雖然大多數普通用戶喜歡使用圖形用戶界面(GUI),但是很多天文學家喜歡使用命令行接口,因為他們認為圖形界面不能精確地表達他們的想法。同樣,復雜的計算流程不能夠簡單地用GUI設計出來。而相反,命令行接口雖然很難學會使用,但是當科學家掌握了如何使用它們,命令行可以快速精準地描述一個復雜的計算流程。前文曾提到,很多天文學家都有編程能力,他們對于命令行環境也非常熟悉。
當然,在對命令行接口改善的同時,也對圖形用戶界面進行了改進,畢竟圖形用戶界面具有直觀、方便和易于使用的特點,可以幫助天文學家確認工作流的可用性和正確性。
在參考了許多文獻后,決定采用Web服務的商業流程執行語言(BPEL4WS)來設計工作流。BPEL4WS提供了一套Web服務標準,可以實現可執行的和抽象的業務流程。它擴展了Web Service服務的模型,使之能夠支持業務處理流程。BPEL4WS定義了一個可操作的整體模型,可以降低在擴展自動處理業務內外時的難度。
一個優秀的展現方式可以體現出數據分析的重要性。根據調查,Web瀏覽器是天文學家最常用的信息獲取方式之一。為了滿足天文學家的需要,在設計中實現了一個組件,它可以將所有必要的信息都輸出到瀏覽器界面。同時,采用Web 2.0技術改進天文學家和系統之間的交互。
另外,系統提供一個Java插件程序來支持在線的圖像分析。圖像是天文數據展現的重要方式之一,同時天文學家也希望可以通過在瀏覽器上實時展現圖像來分析和檢驗天文數據的正確性。
系統全部使用Java語言實現,可以在主流操作系統上運行,例如:Windows和Linux。底層的任務分布和制定是基于網絡網格技術。系統展現界面是基于標準HTML語言實現,這樣讓用戶可以使用各種瀏覽器(例如:IE和Firefox)來訪問服務器。同時,如果需要用到圖像分析功能,用戶將自動下載到一個Java插件程序到本地客戶端。如果用戶希望使用傳統的命令行接口,一個命令行客戶端的程序同樣提供給用戶下載使用。為了提供Web訪問接口,采用了Tomcat,一個開源的http服務器(http://www.tomcat.org),作為C-SWF系統的應用服務器。

表1 C-SWF和Kepler、Pegasus系統分類對比
為了對比主流的科學工作流系統和C-SWF之間的區別,參考文[12],列出了相關的科學工作流系統的特點,如表1。
到目前為止,C-SWF系統已經實現了基本原型,可以滿足天文學家的基本需求。然而系統尚有許多局限性和尚待解決的問題,這些問題也是下一步的主要工作。
(1)任務重做。雖然C-SWF系統可以支持一定程度上的任務重做功能,但是距離天文學家的要求還有很大的差距。天文學家希望C-SWF可以在任何時候停止運行,并且參數可以人工修改并在修改的基礎上繼續運行。C-SWF可以支持重做,但是目前尚未實現停止執行并修改參數的功能。
(2)程序跟蹤調試。與桌面計算機的整體開發環境不同,網絡環境下的網格計算的調試和跟蹤非常困難。跟蹤調試是系統目前迫切需要,但實現起來比較困難的功能。C-SWF計劃采用Log日志的方式來跟蹤每個任務的執行狀態及記錄程序的異常情況。通過這種方法來實現對程序的執行情況進行跟蹤。
(3)數據起源。數據起源功能在科學假說的證明、科學實驗的重建過程上有非常重要的意義。數據起源需要收集所有執行過程中的數據。計劃采用“快照”的方法對系統的每個執行階段的數據進行備份存儲,雖然這些數據的存儲容量可能十分龐大,但考慮到對科學研究實驗的重要作用,在一定程度上犧牲系統的效率,也是可以容忍的。
(4)服務自動匹配。在C-SWF中采用靜態的服務聲明函數。這樣造成程序員需要記住每一個需要調用的Web服務的URL地址。這樣對天文學家來說過于困難。
論文討論了一個輕量級的科學工作流系統(C-SWF)的設計與實現。C-SWF針對天文領域數據處理而設計,所有的基礎需求,例如任務定制、數據傳輸、數據起源和任務重做機制都已經實現。對比現有的科學工作流系統,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] 崔辰州,趙永恒.中國虛擬天文臺體系結構[J].天文研究與技術—國家天文臺臺刊,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數據訪問服務客戶端系統的設計與實現[J].天文研究與技術—國家天文臺臺刊,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.