王玉涵,黃茂海,劉飛飛
(1. 中國(guó)科學(xué)院國(guó)家天文臺(tái),北京 100012; 2. 中國(guó)科學(xué)院大學(xué),北京 100049)
CN 53-1189/P ISSN 1672-7673
SVOM數(shù)據(jù)檔案庫(kù)軟件原型系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)*
王玉涵1,2,黃茂海1,劉飛飛1
(1. 中國(guó)科學(xué)院國(guó)家天文臺(tái),北京 100012; 2. 中國(guó)科學(xué)院大學(xué),北京 100049)
作為中法天文衛(wèi)星(Space multi-band Variable Object Monitor, SVOM)中方科學(xué)中心的重要組成部分,中法天文衛(wèi)星數(shù)據(jù)檔案庫(kù)承擔(dān)了中方科學(xué)數(shù)據(jù)產(chǎn)品本地存儲(chǔ)和管理的任務(wù),提供統(tǒng)一的數(shù)據(jù)產(chǎn)品管理平臺(tái),實(shí)現(xiàn)中法天文衛(wèi)星科學(xué)數(shù)據(jù)產(chǎn)品的歸檔、檢索、檢出、維護(hù)與管理等功能。作為中法天文衛(wèi)星科學(xué)中心預(yù)研的一部分,對(duì)中法天文衛(wèi)星數(shù)據(jù)檔案庫(kù)原型系統(tǒng)進(jìn)行了需求分析、系統(tǒng)設(shè)計(jì),實(shí)現(xiàn)能夠運(yùn)行的原型系統(tǒng),以演示中法天文衛(wèi)星數(shù)據(jù)檔案庫(kù)的基本功能和工作流程,驗(yàn)證設(shè)計(jì)方案的可行性。檔案庫(kù)原型系統(tǒng)具有開(kāi)放性和低耦合的特點(diǎn),能夠適應(yīng)中法天文衛(wèi)星中方數(shù)據(jù)產(chǎn)品結(jié)構(gòu)的不斷變化,在項(xiàng)目早期即可投入試用并不斷完善,滿足中法天文衛(wèi)星的任務(wù)需求。
空間天文;數(shù)據(jù)檔案庫(kù);三層C/S架構(gòu);SVOM;赫歇爾
中法天文衛(wèi)星(Space multi-band Variable Object Monitor, SVOM)項(xiàng)目將用于伽瑪暴(Gamma-ray Burst, GRB)探測(cè)及余輝觀測(cè),對(duì)伽瑪暴的研究涉及從恒星、星系到宇宙學(xué)等天體物理學(xué)中的多個(gè)領(lǐng)域,對(duì)解決相關(guān)天體物理學(xué)領(lǐng)域中的若干重大問(wèn)題具有重要意義。
地面系統(tǒng)是中法天文衛(wèi)星項(xiàng)目不可缺少的組成部分,用以完成衛(wèi)星平臺(tái)和載荷的科學(xué)運(yùn)行規(guī)劃、伽瑪暴觀測(cè)、計(jì)劃編排、平臺(tái)和載荷數(shù)據(jù)的處理以及各級(jí)科學(xué)數(shù)據(jù)產(chǎn)品的產(chǎn)生、備份和交付等任務(wù)。中法天文衛(wèi)星地面系統(tǒng)的中方科學(xué)中心負(fù)責(zé)科學(xué)觀測(cè)任務(wù)的規(guī)劃、中方載荷的科學(xué)數(shù)據(jù)處理與產(chǎn)品生成等任務(wù)。
作為中方科學(xué)中心的一部分,中法天文衛(wèi)星數(shù)據(jù)檔案庫(kù)(SVOM Science-data Archive, SSA)是中方載荷觀測(cè)數(shù)據(jù)在科學(xué)中心共享與處理的技術(shù)基礎(chǔ)與運(yùn)行基礎(chǔ),是科學(xué)數(shù)據(jù)處理和高級(jí)科學(xué)數(shù)據(jù)產(chǎn)品生成的基本保障。中法天文衛(wèi)星數(shù)據(jù)檔案庫(kù)支持對(duì)各類、各級(jí)別、各版本的中法天文衛(wèi)星科學(xué)數(shù)據(jù)、工程數(shù)據(jù)、標(biāo)定數(shù)據(jù)、輔助數(shù)據(jù)等的整編、轉(zhuǎn)存和管理,保證數(shù)據(jù)的安全性與完整性,提供統(tǒng)一的數(shù)據(jù)存取管理平臺(tái),實(shí)現(xiàn)空間科學(xué)數(shù)據(jù)的統(tǒng)一歸檔、檢索、提取、維護(hù)、分析與安全控制等功能。
中法天文衛(wèi)星中方科學(xué)中心需滿足對(duì)多個(gè)數(shù)據(jù)源(VHF數(shù)據(jù)、VT科學(xué)數(shù)據(jù)、GRM科學(xué)數(shù)據(jù)、GOS觀測(cè)數(shù)據(jù))的處理,需要地協(xié)同快速反應(yīng),為保障系統(tǒng)的可靠性,中法天文衛(wèi)星中方科學(xué)中心將采取迭代開(kāi)發(fā)的方式,與星上部分協(xié)同實(shí)現(xiàn),包括不同版本的仿真模擬數(shù)據(jù)、載荷單機(jī)測(cè)試數(shù)據(jù)、載荷定標(biāo)數(shù)據(jù)、載荷數(shù)據(jù)處理算法、高級(jí)數(shù)據(jù)產(chǎn)品等等。這都對(duì)中法天文衛(wèi)星數(shù)據(jù)檔案庫(kù)的功能實(shí)現(xiàn)提出挑戰(zhàn)。由于項(xiàng)目進(jìn)行中數(shù)據(jù)的定義、中方科學(xué)中心其它組成部分將不斷演化,檔案庫(kù)系統(tǒng)需要具有開(kāi)放性、低耦合的特點(diǎn)。
由于中法天文衛(wèi)星地面系統(tǒng)項(xiàng)目尚未正式展開(kāi),正處于預(yù)研階段,建立了中法天文衛(wèi)星數(shù)據(jù)檔案庫(kù)的原型系統(tǒng),在初步分析未來(lái)完整中法天文衛(wèi)星數(shù)據(jù)檔案庫(kù)需求的基礎(chǔ)上,選擇需要盡快攻關(guān)的技術(shù)方面,裁剪需求,以研究系統(tǒng)架構(gòu)和技術(shù)探索為目的做好前期準(zhǔn)備。本文第2節(jié)分析了中法天文衛(wèi)星數(shù)據(jù)檔案庫(kù)的功能和性能需求,第3節(jié)設(shè)計(jì)了其基本組成,并實(shí)現(xiàn)了原型系統(tǒng),第4節(jié)進(jìn)行了本地運(yùn)行驗(yàn)證,演示了設(shè)計(jì)的可行性,為未來(lái)完整的實(shí)際系統(tǒng)的實(shí)現(xiàn)確定了技術(shù)路線。
2.1 概述
雖然數(shù)據(jù)檔案庫(kù)的目標(biāo)是對(duì)中方科學(xué)數(shù)據(jù)產(chǎn)品的本地長(zhǎng)期存儲(chǔ)和管理,但為幫助用戶理解整個(gè)系統(tǒng)的工作流程,以下簡(jiǎn)要介紹中法天文衛(wèi)星數(shù)據(jù)從產(chǎn)生到存儲(chǔ)的過(guò)程,以明確中法天文衛(wèi)星數(shù)據(jù)檔案庫(kù)在整個(gè)系統(tǒng)中的位置和功能。如圖1,衛(wèi)星產(chǎn)生的數(shù)據(jù)經(jīng)過(guò)任務(wù)中心處理后成為L(zhǎng)0級(jí)數(shù)據(jù),再進(jìn)入中方科學(xué)中心,由數(shù)據(jù)處理系統(tǒng)(Data Processing System, DP)處理后生成L1到L3級(jí)數(shù)據(jù),最后放入數(shù)據(jù)檔案庫(kù)進(jìn)行歸檔存儲(chǔ)。數(shù)據(jù)處理系統(tǒng)從數(shù)據(jù)檔案庫(kù)獲取數(shù)據(jù)進(jìn)行多次數(shù)據(jù)再處理,用戶從數(shù)據(jù)檔案庫(kù)獲得各級(jí)數(shù)據(jù)產(chǎn)品。
圖1 中法天文衛(wèi)星數(shù)據(jù)流圖
Fig.1 A flowchart of the SVOM mission
由于資源和時(shí)間約束,原型系統(tǒng)的主要目的是概念驗(yàn)證,探索系統(tǒng)的基本操作流程,以及滿足靈活可擴(kuò)展等重要需求,而對(duì)于數(shù)據(jù)存儲(chǔ)量等性能要求相對(duì)較低。
2.2 數(shù)據(jù)產(chǎn)品結(jié)構(gòu)和數(shù)據(jù)量
檔案庫(kù)中所定義的 “標(biāo)準(zhǔn)觀測(cè)數(shù)據(jù)產(chǎn)品” 是以某次觀測(cè)為單元的所有數(shù)據(jù)產(chǎn)品,包含輔助數(shù)據(jù)、定標(biāo)數(shù)據(jù)、勤務(wù)數(shù)據(jù)、警報(bào)數(shù)據(jù)和各級(jí)科學(xué)數(shù)據(jù)。對(duì)同一天體源的各級(jí)科學(xué)產(chǎn)品包含 “軌數(shù)據(jù)” 和 “段數(shù)據(jù)”,段數(shù)據(jù)包含紅藍(lán)波段數(shù)據(jù),檔案庫(kù)存儲(chǔ)的標(biāo)準(zhǔn)數(shù)據(jù)產(chǎn)品結(jié)構(gòu)如圖2,以下簡(jiǎn)稱 “標(biāo)準(zhǔn)觀測(cè)數(shù)據(jù)產(chǎn)品” 為 “觀測(cè)” 或 “觀測(cè)產(chǎn)品數(shù)據(jù)”。中法天文衛(wèi)星觀測(cè)數(shù)據(jù)產(chǎn)品包含相互關(guān)聯(lián)的各級(jí)數(shù)據(jù)和定標(biāo)數(shù)據(jù),所以在數(shù)據(jù)產(chǎn)品入庫(kù)和調(diào)出時(shí)必須保留數(shù)據(jù)對(duì)象的內(nèi)部關(guān)聯(lián)信息。
檔案庫(kù)存儲(chǔ)的科學(xué)數(shù)據(jù)為0、1、2、3級(jí)數(shù)據(jù)產(chǎn)品。檔案庫(kù)需要存儲(chǔ)衛(wèi)星在設(shè)計(jì)壽命(3年)中產(chǎn)生的數(shù)據(jù),分級(jí)如下:0級(jí)數(shù)據(jù)是衛(wèi)星生成的X-Band數(shù)據(jù);1級(jí)數(shù)據(jù)是在0級(jí)數(shù)據(jù)基礎(chǔ)上,對(duì)儀器數(shù)據(jù)進(jìn)行重建、分類、注解之后而形成的數(shù)據(jù);2級(jí)數(shù)據(jù)是在對(duì)1級(jí)數(shù)據(jù)進(jìn)行定標(biāo)處理、去除儀器效應(yīng)后形成的數(shù)據(jù),并將精度由16位擴(kuò)展到32位;3級(jí)數(shù)據(jù)是對(duì)2級(jí)數(shù)據(jù)進(jìn)行分析與處理后得到的高層科學(xué)數(shù)據(jù)產(chǎn)品??紤]到今后科學(xué)需求、數(shù)據(jù)處理方法變更等不可預(yù)計(jì)因素、中間結(jié)果存儲(chǔ),存儲(chǔ)數(shù)據(jù)總量估算需保留20%余量*蔡洪波, SVOM科學(xué)應(yīng)用中心數(shù)據(jù)分級(jí)及數(shù)據(jù)存儲(chǔ)量估算V4.0。
原型系統(tǒng)只對(duì)可見(jiàn)光望遠(yuǎn)鏡(VT)15天內(nèi)生成的數(shù)據(jù)進(jìn)行模擬和驗(yàn)證。按照衛(wèi)星每軌(90 min)進(jìn)行一次觀測(cè),有一半的時(shí)間能觀測(cè)到源,每次曝光時(shí)間為100 s,以紅藍(lán)兩個(gè)波段拍攝圖像進(jìn)行估算,在15天內(nèi)可見(jiàn)光望遠(yuǎn)鏡共產(chǎn)生4.6萬(wàn)張圖。每張圖的大小為32 MB,則原型系統(tǒng)的總數(shù)據(jù)量為1 026 GB。
以下章節(jié)除特別說(shuō)明是 “正式檔案庫(kù)”,中法天文衛(wèi)星數(shù)據(jù)檔案庫(kù)專指本原型系統(tǒng)。
2.3 用戶角色和需求
數(shù)據(jù)檔案庫(kù)涉及的用戶角色包括科學(xué)家用戶、數(shù)據(jù)處理系統(tǒng)和數(shù)據(jù)庫(kù)管理員等幾類。用戶角色的需求分別為:
圖2 標(biāo)準(zhǔn)觀測(cè)數(shù)據(jù)產(chǎn)品結(jié)構(gòu)圖
Fig.2 The standard structure of an observational data product of the SVOM
(1)非注冊(cè)科學(xué)家用戶:查詢、瀏覽各級(jí)各類的數(shù)據(jù)產(chǎn)品。
(2)注冊(cè)科學(xué)家用戶:注冊(cè)登錄、查詢、瀏覽和下載數(shù)據(jù)產(chǎn)品。
(3)數(shù)據(jù)處理系統(tǒng):將處理的數(shù)據(jù)產(chǎn)品放入觀測(cè)產(chǎn)品數(shù)據(jù)歸檔存儲(chǔ);從檔案庫(kù)獲取觀測(cè)數(shù)據(jù)產(chǎn)品進(jìn)行再處理。
(4)數(shù)據(jù)庫(kù)管理員:對(duì)檔案庫(kù)進(jìn)行升級(jí)和維護(hù)。
2.4 系統(tǒng)功能需求
數(shù)據(jù)檔案庫(kù)原型系統(tǒng)需要提供的功能主要如下:
(1)數(shù)據(jù)產(chǎn)品入庫(kù):系統(tǒng)歸檔存儲(chǔ)由數(shù)據(jù)處理系統(tǒng)處理過(guò)的數(shù)據(jù)產(chǎn)品文件。
(2)觀測(cè)數(shù)據(jù)查詢:系統(tǒng)根據(jù)用戶給出的查找條件,檢查合法性后對(duì)庫(kù)內(nèi)數(shù)據(jù)進(jìn)行匹配查找。查找條件包括觀測(cè)ID、赤道坐標(biāo)、觀測(cè)儀器、觀測(cè)時(shí)間和觀測(cè)目標(biāo)名稱等。
(3)細(xì)化查詢:系統(tǒng)提供在第一次查詢結(jié)果中再次篩選的功能。
(4)查詢結(jié)果展示:系統(tǒng)將查詢結(jié)果的基本信息展示給用戶。
(5)購(gòu)物車:系統(tǒng)提供購(gòu)物車功能,使用戶暫存和批量處理查詢結(jié)果。
(6)下載和發(fā)送觀測(cè)數(shù)據(jù):系統(tǒng)提供將觀測(cè)數(shù)據(jù)產(chǎn)品下載到用戶計(jì)算機(jī)和發(fā)送到用戶計(jì)算機(jī)上安裝的數(shù)據(jù)處理系統(tǒng)的功能。
(7)用戶管理系統(tǒng):系統(tǒng)還需提供統(tǒng)一的用戶管理功能,包括用戶注冊(cè)、登錄、登出和重置密碼。
(8)系統(tǒng)管理:系統(tǒng)提供數(shù)據(jù)備份和升級(jí)的功能。
2.5 系統(tǒng)非功能需求和性能需求
未來(lái)正式數(shù)據(jù)檔案庫(kù)系統(tǒng)的各個(gè)子系統(tǒng)或模塊需要部署到中法天文衛(wèi)星中方科學(xué)中心數(shù)據(jù)檔案庫(kù)服務(wù)器上,另一部分需要部署到如前所述相關(guān)角色用戶的個(gè)人計(jì)算機(jī)上。由于各類用戶角色使用的計(jì)算機(jī)平臺(tái)和操作系統(tǒng)均不確定,系統(tǒng)需要滿足跨平臺(tái)的要求。作為在中方科學(xué)中心研發(fā)早期就要投入使用的原型系統(tǒng),本系統(tǒng)需要滿足不斷變化的數(shù)據(jù)產(chǎn)品結(jié)構(gòu),因此架構(gòu)和開(kāi)發(fā)方法都應(yīng)該考慮后續(xù)可擴(kuò)展的需求。
系統(tǒng)的性能需求有以下兩點(diǎn):一是存儲(chǔ)4.6萬(wàn)張圖(1 026 GB數(shù)據(jù));二是按照系統(tǒng)設(shè)計(jì)添加索引,在內(nèi)存4 G,中央處理器雙核2.5 GHz,安裝Windows8操作系統(tǒng)的測(cè)試計(jì)算機(jī)上對(duì)觀測(cè)ID關(guān)鍵字的查詢操作的響應(yīng)時(shí)間應(yīng)小于1秒。
3.1 體系架構(gòu)和開(kāi)發(fā)策略
本系統(tǒng)采用三層客戶端/服務(wù)器模式(3-Tier Client-Server3-Tier C/S)實(shí)現(xiàn)。
傳統(tǒng)的二層C/S體系結(jié)構(gòu)是指將系統(tǒng)分為服務(wù)器和客戶端兩層。而三層體系結(jié)構(gòu),指的是在二層C/S模式的基礎(chǔ)上添加一個(gè)“中間層”。中間層位于客戶端和服務(wù)器之間,是一個(gè)用應(yīng)用程序編程接口(Application Programming Interface, API)定義的軟件層,具有強(qiáng)大的通訊能力和良好的可擴(kuò)展性的分布式軟件管理框架。三層C/S結(jié)構(gòu)將應(yīng)用功能分為表示層、功能層和數(shù)據(jù)層三部分[1]。其中表示層使用各種控件構(gòu)造友好的用戶界面;功能層封裝所有的業(yè)務(wù)邏輯,包括事物處理和對(duì)數(shù)據(jù)庫(kù)的訪
問(wèn)操作等內(nèi)容;數(shù)據(jù)層即數(shù)據(jù)庫(kù),負(fù)責(zé)數(shù)據(jù)存儲(chǔ)。系統(tǒng)中將上述三層加載到硬件的方法如圖3。
采用客戶端/服務(wù)器模式的主要原因是它分離了服務(wù)器與客戶端功能,前端的客戶端可以呈現(xiàn)精細(xì)的用戶界面,后端的服務(wù)器專注于數(shù)據(jù)的執(zhí)行處理,系統(tǒng)高效、具有彈性。三層C/S結(jié)構(gòu)在功能上進(jìn)行了明確的分割,在邏輯上獨(dú)立清晰,使得系統(tǒng)結(jié)構(gòu)易于變更,能以比較小的代價(jià)增加客戶端終端或轉(zhuǎn)換為B/S結(jié)構(gòu);與傳統(tǒng)的二層C/S結(jié)構(gòu)相比,客戶端與服務(wù)器的鏈接僅僅是簡(jiǎn)單的通訊協(xié)議,與數(shù)據(jù)庫(kù)的交互均由服務(wù)器來(lái)完成,避免了客戶端與數(shù)據(jù)庫(kù)的直接相連,既減輕了客戶端的負(fù)擔(dān),又降低了數(shù)據(jù)庫(kù)與客戶端相連的代價(jià),提高了系統(tǒng)運(yùn)行的效率;當(dāng)數(shù)據(jù)訪問(wèn)邏輯發(fā)生變化時(shí),僅需要修改中間層的程序,客戶端的應(yīng)用不必更新,大大減小了系統(tǒng)的維護(hù)代價(jià)。雖然三層C/S結(jié)構(gòu)會(huì)造成軟件架構(gòu)縱向的復(fù)雜化和系統(tǒng)性能的降低,但對(duì)于數(shù)據(jù)檔案庫(kù),犧牲部分性能來(lái)?yè)Q取靈活性和易維護(hù)性,進(jìn)而滿足系統(tǒng)開(kāi)放性和低耦合的需求是可以接受的。
圖3 3層C/S系統(tǒng)硬件結(jié)構(gòu)圖
Fig.3 Illustration of the structure of the hardware system of the 3-Tier C/S architecture
選擇JAVA語(yǔ)言開(kāi)發(fā)整個(gè)系統(tǒng),使用Eclipse Kepler Service Release2作為開(kāi)發(fā)環(huán)境??蛻舳诵枰渴鹪谟脩粲?jì)算機(jī)上的桌面程序,采用J2SE開(kāi)發(fā),在未來(lái)正式系統(tǒng)中還需要添加在手機(jī)等移動(dòng)設(shè)備上使用的客戶端,開(kāi)發(fā)這部分客戶端將采用J2ME,為了兼容J2SE和J2ME,服務(wù)器端使用J2EE框架。
系統(tǒng)采用JAVA而不是運(yùn)行效率更高的C語(yǔ)言,和中法天文衛(wèi)星科學(xué)中心軟件系統(tǒng)采用的主要開(kāi)發(fā)語(yǔ)言保持一致,有多方面的原因??臻g天文科學(xué)應(yīng)用軟件系統(tǒng)的生命周期在10年量級(jí),JAVA的跨平臺(tái)特點(diǎn)使軟件系統(tǒng)不受硬件系統(tǒng)變遷的影響,跨平臺(tái)特性還有利于使用同樣的基礎(chǔ)代碼開(kāi)發(fā)移動(dòng)端軟件。再有,隨著硬件的速度提高,現(xiàn)在存在的多數(shù)軟件速度問(wèn)題在幾年后的部署階段都可以得到解決。最后,運(yùn)行速度的細(xì)致要求實(shí)際要在運(yùn)行演練階段才能確定,目標(biāo)系統(tǒng)在項(xiàng)目研制后期可以根據(jù)實(shí)際需要局部?jī)?yōu)化。綜上,科學(xué)中心研制是個(gè)系統(tǒng)工程,采用JAVA語(yǔ)言是考慮多種因素綜合做出的決定,歐洲空間局的Herschel、GAIA等空間天文項(xiàng)目都采用JAVA編寫(xiě)應(yīng)用系統(tǒng)也是出于這個(gè)原因*Herschel Common Science System Software Project Management Plan FIRST/FSC/DOC/0116 v1.0。
3.2 系統(tǒng)組成和功能
系統(tǒng)主要分為數(shù)據(jù)檔案庫(kù)服務(wù)器和客戶端兩部分,服務(wù)器和客戶端使用超文本傳輸協(xié)議(HyperText Transfer Protocol, HTTP)通信。
服務(wù)器分為存儲(chǔ)和功能兩層,使用數(shù)據(jù)庫(kù)和文件系統(tǒng)共同存儲(chǔ)觀測(cè)數(shù)據(jù)產(chǎn)品,并提供數(shù)據(jù)訪問(wèn)和數(shù)據(jù)產(chǎn)品入庫(kù)接口;客戶端即表示層,通過(guò)與功能層交互實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的訪問(wèn),使用簡(jiǎn)單應(yīng)用通訊協(xié)議 (Simple Application Messaging Protocol, SAMP)與數(shù)據(jù)處理系統(tǒng)交互。系統(tǒng)架構(gòu)和外部交互關(guān)系如圖4。
下面分別介紹數(shù)據(jù)存儲(chǔ)子系統(tǒng)、服務(wù)器接口子系統(tǒng)和客戶端子系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。
圖4 中法天文衛(wèi)星數(shù)據(jù)檔案庫(kù)系統(tǒng)結(jié)構(gòu)及交互示意圖
Fig.4 A block diagram illustrating the architecture and interactions between different systems/tiers in the SSA
3.3 數(shù)據(jù)存儲(chǔ)子系統(tǒng)
根據(jù)數(shù)據(jù)處理系統(tǒng)的數(shù)據(jù)產(chǎn)品結(jié)構(gòu)說(shuō)明文檔進(jìn)行數(shù)據(jù)存儲(chǔ)方案設(shè)計(jì)*齊曉峰, 空間天文有效載荷數(shù)據(jù)處理基礎(chǔ)系統(tǒng)數(shù)據(jù)產(chǎn)品結(jié)構(gòu)說(shuō)明文檔V0.3。
3.3.1 確定存儲(chǔ)方案
檢索訪問(wèn)是檔案庫(kù)運(yùn)行最頻繁的功能,保證檢索訪問(wèn)的速度是檔案庫(kù)的基本需求,因此,選取了兩種方案的查詢速度進(jìn)行測(cè)試并選擇,一是相對(duì)成熟的赫歇爾數(shù)據(jù)訪問(wèn)層(Herschel Product Access Layer, PAL)[2],另一個(gè)是關(guān)系型數(shù)據(jù)庫(kù)(PostgreSQL)附加文件系統(tǒng)。在赫歇爾項(xiàng)目中的應(yīng)用顯示,雖然面向?qū)ο髷?shù)據(jù)庫(kù)(Object-Oriented Database, OODB)能更好地適合面向?qū)ο箝_(kāi)發(fā),但是由于面向?qū)ο髷?shù)據(jù)庫(kù)的使用不如關(guān)系型數(shù)據(jù)庫(kù)(Relational Database Management System, RDBMS)廣泛,從長(zhǎng)期來(lái)看,維護(hù)的人員成本、開(kāi)發(fā)成本、技術(shù)風(fēng)險(xiǎn)方面面臨巨大的壓力,所以本原型只考慮了關(guān)系型數(shù)據(jù)庫(kù)。
測(cè)試方案和結(jié)果如下。按照正式檔案庫(kù)系統(tǒng)存儲(chǔ)數(shù)據(jù)條目上限,在測(cè)試計(jì)算機(jī)上使用兩種存儲(chǔ)方案構(gòu)建模擬存儲(chǔ),并分別使用所有數(shù)據(jù)(select all from db)和單個(gè)關(guān)鍵字(select id=1 from db)進(jìn)行檢索,消耗的時(shí)間如表1。從表中可以看出,數(shù)據(jù)庫(kù)加文件系統(tǒng)的存儲(chǔ)方案的表現(xiàn)要遠(yuǎn)遠(yuǎn)好于赫歇爾數(shù)據(jù)訪問(wèn)層方案。出于中法天文衛(wèi)星項(xiàng)目對(duì)伽瑪暴反應(yīng)速度需求的考慮,選擇關(guān)系型數(shù)據(jù)庫(kù)(PostgreSQL)加文件系統(tǒng)存儲(chǔ)方案。下面詳細(xì)介紹這種存儲(chǔ)方案。
表1 存儲(chǔ)方案查詢速度比較表
Table 1 Comparison of query speeds of the two storage schemes
查詢條件所有數(shù)據(jù)觀測(cè)IDPALPool1079s±0356902s±1130PostgreSQL0345s±01530012s±0001s
為了保證檢索訪問(wèn)的速度,使用數(shù)據(jù)庫(kù)表存儲(chǔ)數(shù)據(jù)產(chǎn)品的元數(shù)據(jù)和觀測(cè)組織信息;同時(shí)為了方便數(shù)據(jù)下載,采用文件系統(tǒng)存儲(chǔ)觀測(cè)數(shù)據(jù)產(chǎn)品。用戶對(duì)于檔案庫(kù)數(shù)據(jù)的查詢、瀏覽操作主要通過(guò)訪問(wèn)數(shù)據(jù)庫(kù)表實(shí)現(xiàn),而涉及數(shù)據(jù)產(chǎn)品本身的下載發(fā)送操作則需要通過(guò)對(duì)數(shù)據(jù)庫(kù)表和文件系統(tǒng)聯(lián)合操作完成。歐洲空間天文中心的天文衛(wèi)星數(shù)據(jù)庫(kù)也是采用這種存儲(chǔ)結(jié)構(gòu)。
文件系統(tǒng)中的數(shù)據(jù)產(chǎn)品存儲(chǔ)采取樹(shù)型結(jié)構(gòu),主要數(shù)據(jù)產(chǎn)品使用FITS(Flexible Image Transport System)格式存儲(chǔ),也還有其他的文件格式如XML(Extensible Markup Language)等。將邏輯上相對(duì)獨(dú)立的數(shù)據(jù)產(chǎn)品存入單獨(dú)的FITS文件中,比如層級(jí)數(shù)據(jù)、軌數(shù)據(jù)和段數(shù)據(jù)。這樣做的好處是主要的文件產(chǎn)品易于用天文數(shù)據(jù)處理軟件查看和處理,同時(shí)可以保留復(fù)雜觀測(cè)數(shù)據(jù)對(duì)象的內(nèi)部關(guān)聯(lián)信息。使用唯一引用標(biāo)識(shí)(Unique Reference Number, URN)區(qū)分?jǐn)?shù)據(jù)產(chǎn)品,同時(shí)保留復(fù)雜數(shù)據(jù)對(duì)象的內(nèi)部關(guān)聯(lián)信息。
3.3.2 數(shù)據(jù)表
圖5是系統(tǒng)各數(shù)據(jù)產(chǎn)品的實(shí)體-關(guān)系圖(Entity-Relationship, E-R)。由于篇幅的關(guān)系,圖中省略了各數(shù)據(jù)產(chǎn)品的屬性信息,主要展示各數(shù)據(jù)產(chǎn)品間的關(guān)系。
圖5 數(shù)據(jù)產(chǎn)品實(shí)體-關(guān)系圖
Fig.5 An E-R diagram of SVOM products
首先按照實(shí)體-關(guān)系圖將各實(shí)體和關(guān)系轉(zhuǎn)換為相應(yīng)的數(shù)據(jù)表:觀測(cè)數(shù)據(jù)產(chǎn)品表、層級(jí)數(shù)據(jù)產(chǎn)品表、軌數(shù)據(jù)產(chǎn)品表、段數(shù)據(jù)產(chǎn)品表、紅藍(lán)波段和勤務(wù)數(shù)據(jù)產(chǎn)品表。此外還建立了用戶信息管理表以及用于映射數(shù)據(jù)產(chǎn)品存儲(chǔ)路徑和數(shù)據(jù)庫(kù)中存儲(chǔ)的存儲(chǔ)映射表。由于每個(gè)數(shù)據(jù)產(chǎn)品的引用標(biāo)識(shí)都是唯一的,除用戶信息表外,使用唯一引用標(biāo)識(shí)作為所有數(shù)據(jù)表的主鍵(Primary key);用戶信息表的主鍵為用戶郵箱。數(shù)據(jù)庫(kù)中部分表的設(shè)計(jì)方案如表2。
表2 數(shù)據(jù)庫(kù)存儲(chǔ)設(shè)計(jì)表
3.3.3 文件系統(tǒng)
觀測(cè)產(chǎn)品文件按照類型分類存儲(chǔ)在文件系統(tǒng)中。文件系統(tǒng)目錄包含XML格式的觀測(cè)描述數(shù)據(jù)(Product Description)、GRB警報(bào)數(shù)據(jù)(Alert)、定標(biāo)和標(biāo)定數(shù)據(jù)(Calibration)、輔助數(shù)據(jù)(Auxiliary)和數(shù)據(jù)產(chǎn)品的負(fù)荷數(shù)據(jù)(Payload)子目錄,各自存儲(chǔ)不同類型的文件。為了提高訪問(wèn)速度也為了方便計(jì)數(shù),各個(gè)數(shù)據(jù)類型子目錄下還有一層子目錄,每個(gè)子目錄下存放100個(gè)文件。文件系統(tǒng)的物理結(jié)構(gòu)如圖6。
圖6 文件系統(tǒng)存儲(chǔ)結(jié)構(gòu)圖
Fig.6 Illustration of the structure of the file system for data storage
3.4 服務(wù)器接口子系統(tǒng)
系統(tǒng)使用Tomcat作為網(wǎng)絡(luò)應(yīng)用服務(wù)器。
3.4.1 客戶端可調(diào)用接口
服務(wù)器為客戶端提供的接口包括查詢、下載、發(fā)送、注冊(cè)、登錄和密碼重置。
圖7描述了客戶端調(diào)用服務(wù)器接口的工作流程。如圖所示,客戶端向服務(wù)器端輸入信息,根據(jù)需要進(jìn)行的操作類型(如查詢、用戶登錄、注冊(cè)等)調(diào)用相應(yīng)的服務(wù)器接口,獲得服務(wù)器輸出后將運(yùn)行結(jié)果展示給用戶。
圖7 服務(wù)器接口調(diào)用流程圖
Fig.7 A flowchart showing interface invocation of the server
每個(gè)服務(wù)器接口由一個(gè)或幾個(gè)小服務(wù)程序類實(shí)現(xiàn)。類中封裝了接口的參數(shù)、操作和輸出。系統(tǒng)通過(guò)在Tomcat上運(yùn)行小服務(wù)程序的方式響應(yīng)客戶端的一般請(qǐng)求:在客戶端通過(guò)HTTP協(xié)議發(fā)出請(qǐng)求后,服務(wù)器檢查對(duì)應(yīng)小服務(wù)程序的狀態(tài),將其加載并執(zhí)行相應(yīng)的過(guò)程作業(yè),最后將執(zhí)行結(jié)果的應(yīng)答發(fā)送給客戶端。使用在Tomcat上運(yùn)行Servlet + JSP的方法實(shí)現(xiàn)重置密碼功能:在客戶端發(fā)出重置密碼的請(qǐng)求后,服務(wù)器上的JSP引擎將JSP文件轉(zhuǎn)換為小服務(wù)程序代碼源文件,然后調(diào)用編譯器進(jìn)行編譯,最后裝載運(yùn)行。表3描述了服務(wù)器提供給客戶端的各個(gè)接口。
3.4.2 數(shù)據(jù)產(chǎn)品入庫(kù)接口
數(shù)據(jù)產(chǎn)品入庫(kù)是服務(wù)器提供給數(shù)據(jù)處理系統(tǒng)的接口。該接口的數(shù)據(jù)源是經(jīng)過(guò)數(shù)據(jù)處理系統(tǒng)流水線處理過(guò)的觀測(cè)數(shù)據(jù)產(chǎn)品,包括level0、level1、level2、level3級(jí)科學(xué)數(shù)據(jù)和輔助數(shù)據(jù)、定標(biāo)數(shù)據(jù)、警報(bào)數(shù)據(jù)、勤務(wù)數(shù)據(jù)。數(shù)據(jù)處理系統(tǒng)生成的某個(gè)觀測(cè)的數(shù)據(jù)產(chǎn)品文件位于同一文件目錄下,并包含描述數(shù)據(jù)產(chǎn)品結(jié)構(gòu)的XML文件。
表3 服務(wù)器應(yīng)用程序編程接口說(shuō)明表
數(shù)據(jù)產(chǎn)品入庫(kù)流程為:數(shù)據(jù)處理系統(tǒng)首先將觀測(cè)數(shù)據(jù)產(chǎn)品上傳到服務(wù)器,此后服務(wù)器解析數(shù)據(jù)產(chǎn)品結(jié)構(gòu)XML文件,獲得觀測(cè)數(shù)據(jù)產(chǎn)品間的內(nèi)部結(jié)構(gòu)關(guān)聯(lián)信息;同時(shí)遍歷觀測(cè)數(shù)據(jù)目錄,對(duì)于每一個(gè)數(shù)據(jù)產(chǎn)品文件,讀取元數(shù)據(jù)信息,和內(nèi)部結(jié)構(gòu)關(guān)聯(lián)信息一起寫(xiě)入數(shù)據(jù)庫(kù)表中,并根據(jù)數(shù)據(jù)產(chǎn)品類型將其歸檔到檔案庫(kù)文件系統(tǒng)中相應(yīng)的數(shù)據(jù)類型目錄下。
3.5 客戶端子系統(tǒng)
客戶端子系統(tǒng)分為用戶界面和功能邏輯兩部分。用戶界面采用JAVA SWING類庫(kù)實(shí)現(xiàn)。按照職能劃分,功能邏輯分為觀測(cè)查詢與展示、觀測(cè)下載與發(fā)送和用戶管理3個(gè)模塊。以下介紹各個(gè)模塊的設(shè)計(jì)與實(shí)現(xiàn)。
3.5.1 觀測(cè)查詢與展示
觀測(cè)查詢分為基本查詢和細(xì)致查詢?;静樵兪前凑沼脩糨斎氲牟樵儣l件進(jìn)行查詢,查詢條件包括觀測(cè)ID、觀測(cè)ID列表、赤道坐標(biāo)、儀器、觀測(cè)時(shí)長(zhǎng)和觀測(cè)目標(biāo)名稱等。客戶端獲得用戶輸入后,使用正則表達(dá)式進(jìn)行可靠性驗(yàn)證,如輸入不符合規(guī)范,客戶端給出用戶提示信息并要求用戶重新輸入;如輸入全部符合規(guī)范,客戶端將所有的輸入條件合成一條信息,向服務(wù)器發(fā)送查詢請(qǐng)求。細(xì)致查詢是用戶對(duì)基本查詢的結(jié)果進(jìn)一步篩選的過(guò)程。
觀測(cè)展示是指將查詢到的結(jié)果呈現(xiàn)給用戶,展示其基本信息如觀測(cè)ID、赤經(jīng)赤緯坐標(biāo)、儀器和觀測(cè)模式等。購(gòu)物車也是觀測(cè)展示的一部分,方便用戶批量處理查詢結(jié)果。客戶端解析服務(wù)器發(fā)回的查詢結(jié)果信息,以臨時(shí)鏈表的形式維護(hù)管理。
3.5.2 觀測(cè)下載與發(fā)送
觀測(cè)下載是指將服務(wù)器端的觀測(cè)數(shù)據(jù)產(chǎn)品下載到用戶本地。用戶進(jìn)行下載操作時(shí),客戶端整合各項(xiàng)參數(shù)信息向服務(wù)器發(fā)送下載請(qǐng)求,獲得文件傳輸協(xié)議(File Transfer Protocol, FTP)下載鏈接;隨后建立FTP鏈接,傳輸數(shù)據(jù)產(chǎn)品直至下載結(jié)束。
觀測(cè)發(fā)送指的是客戶端將服務(wù)器端的觀測(cè)數(shù)據(jù)產(chǎn)品發(fā)送到本地安裝的數(shù)據(jù)處理系統(tǒng)的過(guò)程,為了實(shí)現(xiàn)這項(xiàng)功能,客戶端需要和數(shù)據(jù)處理系統(tǒng)通訊。客戶端獲取服務(wù)器生成的包含觀測(cè)描述(VOTable格式)[3]的統(tǒng)一資源定位符(Uniform Resource Locator, URL)鏈接后,將其通過(guò)簡(jiǎn)單應(yīng)用通訊協(xié)議[4]發(fā)送到數(shù)據(jù)處理系統(tǒng);數(shù)據(jù)處理系統(tǒng)接收到簡(jiǎn)單應(yīng)用通訊協(xié)議消息后自行與服務(wù)器連接并完成觀測(cè)數(shù)據(jù)產(chǎn)品的下載。
3.5.3 用戶管理
用戶管理包括登錄登出、新用戶注冊(cè)和重置密碼??蛻舳双@得用戶輸入的各項(xiàng)信息,進(jìn)行可靠性驗(yàn)證后,與服務(wù)器通訊完成操作,給出用戶操作結(jié)果提示信息。客戶端記錄登錄狀態(tài)并顯示。重置密碼操作需要使用郵箱和瀏覽器完成,客戶端向服務(wù)器發(fā)出密碼重置請(qǐng)求后,用戶的注冊(cè)郵箱中將收到包含重置密碼鏈接的郵件,用戶需使用瀏覽器打開(kāi)鏈接繼續(xù)完成重置操作。
實(shí)現(xiàn)了一個(gè)能夠運(yùn)行的中法天文衛(wèi)星檔案庫(kù)原型系統(tǒng),并在本地搭建各項(xiàng)環(huán)境進(jìn)行應(yīng)用驗(yàn)證。測(cè)試環(huán)境包括Tomcat7.0服務(wù)器,中法天文衛(wèi)星科學(xué)數(shù)據(jù)處理系統(tǒng)1.2版,PostgreSQL數(shù)據(jù)庫(kù)9.0和通過(guò)網(wǎng)絡(luò)訪問(wèn)的中法天文衛(wèi)星中方載荷仿真器。完成了從仿真器生成數(shù)據(jù),經(jīng)過(guò)數(shù)據(jù)處理系統(tǒng)處理后存入檔案庫(kù)的過(guò)程,并測(cè)試了檔案庫(kù)的查詢、下載和用戶管理等功能,演示了中法天文衛(wèi)星數(shù)據(jù)檔案庫(kù)的基本功能和工作流程,驗(yàn)證了設(shè)計(jì)方案的可行性。設(shè)計(jì)、完成的系統(tǒng)存儲(chǔ)空間為1.5 TB,能夠滿足系統(tǒng)數(shù)據(jù)量的需求。在數(shù)據(jù)處理系統(tǒng)的基礎(chǔ)系統(tǒng)投入運(yùn)行后,將通過(guò)與中法天文衛(wèi)星中方載荷仿真器、科學(xué)數(shù)據(jù)處理系統(tǒng)的對(duì)接。圖8~10為部分測(cè)試截圖。
圖8 客戶端查詢界面
Fig.8 A screenshot of the SSA client query interface (, the main client GUI; it contains the query panel and the user management panel)
圖8注:客戶端主界面,包括查詢界面和用戶管理界面。上方是查詢區(qū),獲得各查詢條件的用戶輸入;下方是用戶管理區(qū),它出現(xiàn)在所有界面的底部以便于用戶登錄登出。主界面自上而下分別為:主查詢面板、位置查詢面板、儀器查詢面板、時(shí)間查詢面板和用戶管理面板
圖9 客戶端查詢展示界面
Fig.9 A screenshot of results of SSA client query
圖9注:圖中展示的是對(duì)檔案庫(kù) “id=002” 條件的查詢結(jié)果,如圖所示,由于檔案庫(kù)支持模糊查詢,因此所有觀測(cè)ID中包含002的觀測(cè)都被查到了。查詢界面中還包含對(duì)選擇觀測(cè)的下載、發(fā)送和加入購(gòu)物車功能
圖10 客戶端登錄界面
Fig.10 A screenshot of the SSA client login interface
完成了一套中法天文衛(wèi)星數(shù)據(jù)檔案庫(kù)原型系統(tǒng),重點(diǎn)進(jìn)行了需求分析、系統(tǒng)設(shè)計(jì)并實(shí)現(xiàn)了可運(yùn)行的原型系統(tǒng)。原型系統(tǒng)的主要目的是概念驗(yàn)證,在系統(tǒng)架構(gòu)和技術(shù)探索方面做好前期準(zhǔn)備,為將來(lái)的正式系統(tǒng)探明技術(shù)路線。
中法天文衛(wèi)星中方科學(xué)中心將采取迭代開(kāi)發(fā)的方式,與星上部分協(xié)同實(shí)現(xiàn),所以在項(xiàng)目早期就要將部分功能開(kāi)發(fā)完成,以參與星上部分的研制與測(cè)試,數(shù)據(jù)產(chǎn)品的構(gòu)成和內(nèi)部格式隨著衛(wèi)星載荷的研制變化。為滿足這個(gè)原型系統(tǒng)開(kāi)放性和低耦合的需求,采用三層C/S系統(tǒng)結(jié)構(gòu)作為系統(tǒng)架構(gòu),為將來(lái)進(jìn)一步開(kāi)發(fā)預(yù)留演進(jìn)空間。
目前系統(tǒng)的本地開(kāi)發(fā)工作已經(jīng)基本結(jié)束,也通過(guò)了本地的應(yīng)用驗(yàn)證。當(dāng)前系統(tǒng)還存在魯棒性不強(qiáng),數(shù)據(jù)處理系統(tǒng)支持不完善的問(wèn)題,將在接下來(lái)的工作中改進(jìn)。下一步工作的主要內(nèi)容是將原型系統(tǒng)服務(wù)器端部分部署到科學(xué)中心基礎(chǔ)系統(tǒng)服務(wù)器上,并提供客戶端供軟件開(kāi)發(fā)團(tuán)隊(duì)和科學(xué)家團(tuán)隊(duì)測(cè)試使用。
致謝:衷心感謝在成文過(guò)程中國(guó)家天文臺(tái)信息與計(jì)算中心諶悅老師的指導(dǎo)。
[1] 梁樹(shù)軍, 程靜, 李黃琦. 三層C/S結(jié)構(gòu)的研究與應(yīng)用[J]. 電腦開(kāi)發(fā)與應(yīng)用, 2005(2): 48-49+52. Liang Shujun, Cheng Jing, Li Huangqi. Research and application of 3-tier structure[J]. Computer Development & Applications, 2005(2): 48-49+52.
[2] Li B, Liu D, Guest S, et al. Using Product Access Layer to hide the complexity of data storage from Herschel users[DB/OL]. 2012 [2014-9-21]. http://www.spaceops2012.org/proceedings/documents/id1291321-paper-003.pdf.
[3] Ochsenbein F, Williams R, Davenhall C, et al. VOTable formate defination version 1.3 [DB/OL]. 2002[2014-09-21]. http://www.ivoa.net/documents/VOTable/.
[4] Taylor M, Boch T, Fitzpatrick M, et al. Simple application message protocol version 1.3[DB/OL]. 2012[2014-09-21]. http://www.ivoa.net/documents/SAMP/.
Design and Implementation of a Prototype of the SVOMScience-Data Archive System
Wang Yuhan1,2, Huang Maohai1, Liu Feifei1
(1. National Astronomical Observatories, Chinese Academy of Sciences, Beijing 100012, China, Email: mhuang@nao.cas.cn;2. University of Chinese Academy of Sciences, Beijing 100049, China)
The SVOM Science-data Archive (SSA) is part of the Chinese Science Center (CSC) of the SVOM Satellite Ground Segment. The SSA system is to store and manage data from the SVOM in the CSC. The SSA serves as a unified platform for SVOM data management, and it incorporates functions such as those of data storage, data query, data retrieval, and data maintenance. The SSA can thus be highly helpful to researchers in data processing. As part of a preliminary study to demonstrate and validate basic functions, workflows, and feasibility of the SSA, we have designed and implemented an operational prototype of the SSA based on system-requirement analysis and system design. The prototype is of the 3-Tier C/S architecture with 3 layers being the View, Function, and Data Layers, respectively. This structure separates functions of the server end from those of the client end so as to reduce interferences between different modules, which makes it more convenient to maintain and expand the system. The system was developed using the Java as the programming language. The choice of the Java is ideal because of its cross-platform compatibility. With its open architecture and low-level couplings between subsystems, the prototype can accommodate continuously evolving data structures of products of the CSC, and it can be used in the early phase of SVOM satellite-payload development. The prototype can be improved to meet SVOM mission requirements.
Space astronomy; Satellite ground system; 3-Tier C/S Architecture; SVOM; Herschel
國(guó)家自然科學(xué)基金 (U1231115) 資助.
2014-09-22;修定日期:2014-10-22 作者簡(jiǎn)介:王玉涵,女,碩士. 研究方向:空間天文數(shù)據(jù)管理. Email: yhwang@nao.cas.cn 通訊作者:黃茂海,男,研究員. 研究方向:空間天文. Email: mhuang@nao.cas.cn
TP309.06
A
1672-7673(2015)03-0331-11