姜 旭,佟繼周,崔辰州,鄒自明
(1.中國(guó)科學(xué)院空間科學(xué)與應(yīng)用研究中心,北京 100190;2.中國(guó)科學(xué)院大學(xué)計(jì)算機(jī)與控制學(xué)院,北京 100049;3.中國(guó)科學(xué)院國(guó)家天文臺(tái),北京 100012)
基于虛擬天文臺(tái)的HXMT衛(wèi)星數(shù)據(jù)檢索發(fā)布系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
姜 旭1,2,佟繼周1,崔辰州3,鄒自明1
(1.中國(guó)科學(xué)院空間科學(xué)與應(yīng)用研究中心,北京 100190;2.中國(guó)科學(xué)院大學(xué)計(jì)算機(jī)與控制學(xué)院,北京 100049;3.中國(guó)科學(xué)院國(guó)家天文臺(tái),北京 100012)
目前,國(guó)際上諸多天文項(xiàng)目均遵循虛擬天文臺(tái)(Virtual Observatory,VO)標(biāo)準(zhǔn)協(xié)議開(kāi)發(fā)各天文數(shù)據(jù)檢索發(fā)布系統(tǒng),對(duì)外公開(kāi)發(fā)布數(shù)據(jù),并對(duì)數(shù)據(jù)資源進(jìn)行VO注冊(cè),從而使用戶(hù)通過(guò)虛擬天文臺(tái)門(mén)戶(hù)網(wǎng)站即可訪問(wèn)獲取不同天文項(xiàng)目的數(shù)據(jù)集。硬X射線調(diào)制望遠(yuǎn)鏡(HXMT)衛(wèi)星項(xiàng)目也將虛擬天文臺(tái)技術(shù)引入HXMT衛(wèi)星數(shù)據(jù)檢索發(fā)布系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)過(guò)程中,既滿(mǎn)足HXMT衛(wèi)星數(shù)據(jù)發(fā)布需求,又將HXMT衛(wèi)星數(shù)據(jù)融入虛擬天文臺(tái)環(huán)境,實(shí)現(xiàn)國(guó)際天文數(shù)據(jù)的共享共用。系統(tǒng)提出了符合虛擬天文臺(tái)規(guī)范的體系架構(gòu),并選取SCS錐形檢索、VOTable數(shù)據(jù)格式等虛擬天文臺(tái)標(biāo)準(zhǔn)協(xié)議加以實(shí)現(xiàn),采用MVC模式、SSH框架以及各種J2EE技術(shù)進(jìn)行軟件研發(fā),提供檢索訪問(wèn)、瀏覽下載和可視化功能。實(shí)踐和應(yīng)用結(jié)果表明,系統(tǒng)在解決天文數(shù)據(jù)資源互操作、共享發(fā)布、檢索訪問(wèn)及異構(gòu)應(yīng)用集成方面均具有可操作性,對(duì)我國(guó)空間天文衛(wèi)星數(shù)據(jù)檢索發(fā)布系統(tǒng)的研制具有參考意義。
空間天文;虛擬天文臺(tái);HXMT衛(wèi)星;數(shù)據(jù)檢索發(fā)布;VO標(biāo)準(zhǔn)協(xié)議;MVC模式;J2EE技術(shù)
CN53-1189/P ISSN1672-7673
虛擬天文臺(tái)是通過(guò)一系列虛擬天文臺(tái)標(biāo)準(zhǔn)協(xié)議和集成化服務(wù),將全球范圍內(nèi)的天文研究資源無(wú)縫透明連結(jié)起來(lái)形成的數(shù)據(jù)密集型網(wǎng)絡(luò)化天文研究環(huán)境[1]。自20世紀(jì)初,國(guó)際虛擬天文臺(tái)聯(lián)盟(International Virtual Observatory Alliance,IVOA)正式成立并確定虛擬天文臺(tái)的概念之后,各國(guó)天文項(xiàng)目紛紛遵循虛擬天文臺(tái)標(biāo)準(zhǔn)協(xié)議并結(jié)合自身特點(diǎn)進(jìn)行天文數(shù)據(jù)檢索發(fā)布系統(tǒng)的研發(fā)。各天文項(xiàng)目的數(shù)據(jù)資源經(jīng)虛擬天文臺(tái)注冊(cè)后,可被虛擬天文臺(tái)體系內(nèi)的門(mén)戶(hù)網(wǎng)站VAO(Virtual Astronomical Observatory,http://www.usvao.org/)或其他門(mén)戶(hù)系統(tǒng)方便快捷地檢索訪問(wèn),從而提升國(guó)際天文數(shù)據(jù)的共享利用率。
硬X射線調(diào)制望遠(yuǎn)鏡(Hard X-ray Modulation Telescope,HXMT)衛(wèi)星是我國(guó)即將發(fā)射的第1顆空間天文衛(wèi)星,其科學(xué)目標(biāo)是實(shí)現(xiàn)高靈敏度寬波段X射線巡天,研究致密天體和黑洞強(qiáng)引力場(chǎng)中動(dòng)力學(xué)和高能輻射過(guò)程。硬X射線調(diào)制望遠(yuǎn)鏡衛(wèi)星將搭載高能X射線望遠(yuǎn)鏡(HE)、中能X射線望遠(yuǎn)鏡(ME)、低能X射線望遠(yuǎn)鏡(LE)和空間環(huán)境監(jiān)測(cè)器(SEM)4種有效載荷。預(yù)計(jì)在4到6年的壽命里,通過(guò)巡天觀測(cè)、小天區(qū)觀測(cè)和定點(diǎn)觀測(cè)3種工作模式產(chǎn)生共計(jì)約22 TB的原始觀測(cè)數(shù)據(jù)。遵循國(guó)際天文數(shù)據(jù)分級(jí)標(biāo)準(zhǔn)規(guī)范,硬X射線調(diào)制望遠(yuǎn)鏡衛(wèi)星數(shù)據(jù)劃分為一級(jí)和二級(jí)科學(xué)數(shù)據(jù)產(chǎn)品,其中,一級(jí)科學(xué)數(shù)據(jù)產(chǎn)品包含按天區(qū)組織的巡天觀測(cè)數(shù)據(jù)產(chǎn)品和按觀測(cè)提案號(hào)組織的定點(diǎn)、小天區(qū)觀測(cè)數(shù)據(jù)產(chǎn)品;二級(jí)科學(xué)數(shù)據(jù)產(chǎn)品包括光變曲線、能譜等具有初步科學(xué)意義的數(shù)據(jù)產(chǎn)品。
為滿(mǎn)足硬X射線調(diào)制望遠(yuǎn)鏡衛(wèi)星各級(jí)數(shù)據(jù)產(chǎn)品的發(fā)布需求,為我國(guó)空間天文衛(wèi)星數(shù)據(jù)檢索發(fā)布系統(tǒng)的研制奠定基礎(chǔ),又能使硬X射線調(diào)制望遠(yuǎn)鏡數(shù)據(jù)融入虛擬天文臺(tái)環(huán)境,實(shí)現(xiàn)與不同天文項(xiàng)目數(shù)據(jù)資源的互訪問(wèn)、互操作,設(shè)計(jì)并實(shí)現(xiàn)了基于虛擬天文臺(tái)技術(shù)框架的硬X射線調(diào)制望遠(yuǎn)鏡衛(wèi)星數(shù)據(jù)檢索發(fā)布系統(tǒng)。本系統(tǒng)對(duì)錐形檢索(Simple Cone Search,SCS)、圖片檢索協(xié)議(Simple Image Access Protocol,SIAP)和光譜檢索協(xié)議(Simple Spectral Access Protocol,SSAP)3類(lèi)虛擬天文臺(tái)數(shù)據(jù)訪問(wèn)協(xié)議進(jìn)行服務(wù)化的封裝,開(kāi)發(fā)了相應(yīng)的網(wǎng)絡(luò)服務(wù)接口以供客戶(hù)端軟件或網(wǎng)站調(diào)用,采用VOTable格式封裝數(shù)據(jù)以便于異構(gòu)系統(tǒng)間數(shù)據(jù)的互訪與傳輸[2],同時(shí),提供了HXMT門(mén)戶(hù)網(wǎng)站直接與用戶(hù)交互,支持對(duì)用戶(hù)指定空間區(qū)域硬X射線調(diào)制望遠(yuǎn)鏡衛(wèi)星數(shù)據(jù)的訪問(wèn)與獲取。
1.1 體系架構(gòu)
參照IVOA定義的虛擬天文臺(tái)概念體系結(jié)構(gòu)[3],并結(jié)合實(shí)際應(yīng)用需求與項(xiàng)目自身特性,對(duì)硬X射線調(diào)制望遠(yuǎn)鏡衛(wèi)星數(shù)據(jù)檢索發(fā)布系統(tǒng)進(jìn)行體系架構(gòu)的設(shè)計(jì)。系統(tǒng)的體系架構(gòu)分為資源層、服務(wù)層、用戶(hù)層3層,如圖1。
圖1 HXMT衛(wèi)星數(shù)據(jù)檢索發(fā)布系統(tǒng)的體系架構(gòu)Fig.1 The architecture of the HXMT data retrieval/publishing system
(1)資源層負(fù)責(zé)存儲(chǔ)硬X射線調(diào)制望遠(yuǎn)鏡衛(wèi)星科學(xué)數(shù)據(jù)和輔助數(shù)據(jù),為上層提供數(shù)據(jù)資源。主要包括數(shù)據(jù)實(shí)體文件和元數(shù)據(jù)兩大部分。數(shù)據(jù)實(shí)體文件多存儲(chǔ)于分布式的文件系統(tǒng)內(nèi),包括硬X射線調(diào)制望遠(yuǎn)鏡衛(wèi)星原始觀測(cè)數(shù)據(jù)、一級(jí)科學(xué)數(shù)據(jù)產(chǎn)品、二級(jí)科學(xué)數(shù)據(jù)產(chǎn)品,以及標(biāo)定數(shù)據(jù)、工程數(shù)據(jù)等輔助數(shù)據(jù)。元數(shù)據(jù)是對(duì)數(shù)據(jù)實(shí)體的特征屬性提供結(jié)構(gòu)化描述的數(shù)據(jù),包括從物理數(shù)據(jù)實(shí)體文件中提取的觀測(cè)ID、赤經(jīng)、赤緯、任務(wù)名稱(chēng)、載荷名稱(chēng)、觀測(cè)模式、觀測(cè)日期等數(shù)據(jù)信息以及文件大小、文件路徑等文件信息。元數(shù)據(jù)信息主要存儲(chǔ)于MySQL關(guān)系型數(shù)據(jù)庫(kù)中,以便于上層檢索。
(2)服務(wù)層作為整個(gè)系統(tǒng)的核心,集成了豐富的虛擬天文臺(tái)服務(wù)組件[4],主要提供以下3類(lèi)服務(wù)。面向數(shù)據(jù)資源,提供數(shù)據(jù)訪問(wèn)與獲取服務(wù)。數(shù)據(jù)訪問(wèn)與獲取服務(wù)直接與資源層進(jìn)行交互,對(duì)資源層的數(shù)據(jù)資源進(jìn)行快速訪問(wèn)與獲取,同時(shí),為上層屏蔽底層實(shí)現(xiàn)細(xì)節(jié),提高系統(tǒng)的透明性。
面向應(yīng)用需求,提供數(shù)據(jù)發(fā)布、資源發(fā)現(xiàn)、數(shù)據(jù)下載、可視化服務(wù)。數(shù)據(jù)發(fā)布是指通過(guò)調(diào)用數(shù)據(jù)訪問(wèn)與獲取服務(wù),開(kāi)發(fā)符合錐形檢索、圖片檢索協(xié)議和光譜檢索協(xié)議的網(wǎng)絡(luò)服務(wù)接口,響應(yīng)上層查詢(xún)請(qǐng)求并將檢索結(jié)果封裝為標(biāo)準(zhǔn)的VOTable格式數(shù)據(jù),從而將硬X射線調(diào)制望遠(yuǎn)鏡數(shù)據(jù)資源暴露給用戶(hù)的過(guò)程。資源發(fā)現(xiàn)服務(wù)用于接收并處理用戶(hù)層的檢索請(qǐng)求,返回符合檢索條件的數(shù)據(jù)以供用戶(hù)瀏覽。數(shù)據(jù)下載服務(wù)既可根據(jù)用戶(hù)層的下載請(qǐng)求,下載FITS格式保存的硬X射線調(diào)制望遠(yuǎn)鏡衛(wèi)星數(shù)據(jù)實(shí)體文件,也可將檢索結(jié)果導(dǎo)出為VOTable格式文件。可視化服務(wù)負(fù)責(zé)將數(shù)據(jù)處理為直觀的多維圖像呈現(xiàn)給用戶(hù),便于用戶(hù)分析研究。
面向用戶(hù),提供用戶(hù)管理服務(wù)。根據(jù)項(xiàng)目需求,用戶(hù)主要分為數(shù)據(jù)管理員、科學(xué)用戶(hù)、公眾用戶(hù)3類(lèi),不同類(lèi)別的用戶(hù)擁有不同層次的權(quán)限。依據(jù)用戶(hù)的不同,用戶(hù)管理服務(wù)為用戶(hù)設(shè)置其可訪問(wèn)的數(shù)據(jù)范圍及訪問(wèn)深度,并實(shí)現(xiàn)用戶(hù)身份認(rèn)證、用戶(hù)訪問(wèn)權(quán)限授予、服務(wù)使用權(quán)限限制、注冊(cè)用戶(hù)信息管理等功能。
(3)用戶(hù)層主要負(fù)責(zé)直接與用戶(hù)進(jìn)行交互,提供檢索訪問(wèn)硬X射線調(diào)制望遠(yuǎn)鏡衛(wèi)星數(shù)據(jù)的網(wǎng)絡(luò)門(mén)戶(hù)網(wǎng)站。用戶(hù)層通過(guò)調(diào)用服務(wù)層集成的服務(wù),實(shí)現(xiàn)檢索訪問(wèn)、瀏覽下載、數(shù)據(jù)可視化等應(yīng)用功能。
1.2 功能模塊
硬X射線調(diào)制望遠(yuǎn)鏡衛(wèi)星數(shù)據(jù)檢索發(fā)布系統(tǒng)的主要功能包括硬X射線調(diào)制望遠(yuǎn)鏡衛(wèi)星各級(jí)數(shù)據(jù)產(chǎn)品的匯交、推送、發(fā)布、檢索訪問(wèn)、瀏覽下載、數(shù)據(jù)可視化、用戶(hù)管理、狀態(tài)監(jiān)控、授權(quán)管理等。下面重點(diǎn)對(duì)檢索訪問(wèn)、瀏覽下載、數(shù)據(jù)可視化3大核心功能模塊進(jìn)行介紹。
(1)檢索訪問(wèn)
檢索訪問(wèn)模塊主要負(fù)責(zé)對(duì)硬X射線調(diào)制望遠(yuǎn)鏡衛(wèi)星各級(jí)數(shù)據(jù)產(chǎn)品的檢索訪問(wèn)。按檢索條件可分為錐形檢索、組合檢索、星空?qǐng)D交互檢索3種檢索方式。其中,錐形檢索是指基于赤經(jīng)、赤緯和檢索半徑共3項(xiàng)限定條件進(jìn)行的檢索,用戶(hù)提交包含目標(biāo)天體位置坐標(biāo)和檢索半徑信息的請(qǐng)求后,即可檢索與目標(biāo)位置的角距離小于檢索半徑的所有表格化的天體目標(biāo)[5],并返回VOTable數(shù)據(jù)格式的檢索結(jié)果;組合檢索是指多重條件組合檢索,針對(duì)硬X射線調(diào)制望遠(yuǎn)鏡衛(wèi)星數(shù)據(jù)的特性,設(shè)置更為詳盡的檢索條件,如觀測(cè)ID、序列號(hào)、提案名稱(chēng)、PI名稱(chēng)、任務(wù)名稱(chēng)、載荷名稱(chēng)、光柵類(lèi)型、觀測(cè)模式、觀測(cè)起始時(shí)間、數(shù)據(jù)發(fā)布時(shí)間、曝光時(shí)間;星空?qǐng)D交互檢索是指用戶(hù)在星空?qǐng)D中圈畫(huà)檢索范圍,系統(tǒng)提取位置坐標(biāo)(赤經(jīng)、赤緯)和檢索半徑信息后進(jìn)行錐形檢索的交互型檢索方式,有助于建立良好的用戶(hù)交互體驗(yàn)。
(2)瀏覽下載
瀏覽下載模塊主要提供數(shù)據(jù)顯示、數(shù)據(jù)導(dǎo)出、購(gòu)物車(chē)、數(shù)據(jù)下載功能。其中,數(shù)據(jù)顯示功能負(fù)責(zé)在檢索操作后,根據(jù)用戶(hù)權(quán)限顯示符合檢索條件的數(shù)據(jù)列表,并可實(shí)現(xiàn)升/降序排序;數(shù)據(jù)導(dǎo)出是指用戶(hù)可將檢索結(jié)果數(shù)據(jù)導(dǎo)出為VOTable、CSV、HTML、XSL、TXT數(shù)據(jù)格式文件;用戶(hù)可通過(guò)購(gòu)物車(chē)功能收集并記錄感興趣的數(shù)據(jù)信息,以待后續(xù)查看與下載;數(shù)據(jù)下載操作可在數(shù)據(jù)顯示界面或購(gòu)物車(chē)中進(jìn)行,用戶(hù)勾選數(shù)據(jù)確定待下載數(shù)據(jù)條目后,即可進(jìn)行單條FITS格式數(shù)據(jù)下載或批量數(shù)據(jù)下載。
(3)數(shù)據(jù)可視化
數(shù)據(jù)可視化模塊集成了VOTable可視化組件和Aladin開(kāi)源軟件,對(duì)數(shù)據(jù)顯示界面的檢索結(jié)果數(shù)據(jù)進(jìn)行多形式多角度的可視化展示,以方便用戶(hù)直觀查看數(shù)據(jù)。按可視化方式不同,分為VOTable可視化和Aladin可視化。
1)VOTable可視化是指基于檢索返回的VOTable格式數(shù)據(jù)繪制散點(diǎn)圖、曲線圖。散點(diǎn)圖便于靈活展現(xiàn)多個(gè)變量間的變化關(guān)系。用戶(hù)任選屬性(包括赤經(jīng)、赤緯、觀測(cè)ID、曝光時(shí)間等)作為X軸、Y軸(或Z軸),對(duì)數(shù)據(jù)顯示界面勾選的數(shù)據(jù)進(jìn)行二維或三維散點(diǎn)圖的繪制。折線圖則以時(shí)間為X軸,數(shù)據(jù)屬性為Y軸,充分表現(xiàn)某一數(shù)據(jù)屬性隨時(shí)間的變化情況。
2)Aladin可視化是指直接調(diào)用Aladin開(kāi)源軟件進(jìn)行數(shù)據(jù)展示的可視化方式。Aladin接收從數(shù)據(jù)顯示界面提取的空間位置參數(shù)信息,自動(dòng)檢索Simbad數(shù)據(jù)庫(kù)、SDSS巡天等天文數(shù)據(jù)項(xiàng)目對(duì)應(yīng)位置的數(shù)據(jù),并將數(shù)據(jù)以點(diǎn)源顯示、圖片加載、星表?xiàng)l目自動(dòng)添加的方式呈現(xiàn)[6]。
2.1 技術(shù)開(kāi)發(fā)策略
硬X射線調(diào)制望遠(yuǎn)鏡衛(wèi)星數(shù)據(jù)檢索發(fā)布系統(tǒng)主要采用網(wǎng)絡(luò)方式實(shí)現(xiàn)數(shù)據(jù)發(fā)布與服務(wù)共享。考慮到系統(tǒng)的跨平臺(tái)、跨區(qū)域部署能力,選用Java語(yǔ)言進(jìn)行系統(tǒng)研發(fā)。為實(shí)現(xiàn)各程序模塊間的高內(nèi)聚、松耦合,增強(qiáng)代碼可讀性、復(fù)用性,方便后續(xù)維護(hù),系統(tǒng)引入MVC(Model-View-Controller)模式,將模型、視圖、控制器分別進(jìn)行獨(dú)立開(kāi)發(fā)。相應(yīng)地,選擇Java語(yǔ)言開(kāi)發(fā)中較為成熟的SSH(Struts+Spring+Hibernate)框架具體實(shí)現(xiàn)MVC模式。系統(tǒng)運(yùn)行時(shí),服務(wù)器端需部署JDK、Tomcat、Apache和MySQL數(shù)據(jù)庫(kù),客戶(hù)端安裝有IE、Firefox等瀏覽器即可。
MVC模式通常分為表示層、控制層、業(yè)務(wù)邏輯層、DAO層(Data Access Object Layer,又稱(chēng)為數(shù)據(jù)訪問(wèn)層)和數(shù)據(jù)存儲(chǔ)層共5層[7]。與系統(tǒng)體系架構(gòu)中的各分層可相互對(duì)應(yīng),其中,表示層即系統(tǒng)的用戶(hù)層,控制層、業(yè)務(wù)邏輯層和DAO層對(duì)應(yīng)于系統(tǒng)的服務(wù)層,數(shù)據(jù)存儲(chǔ)層包含在系統(tǒng)的資源層中。
下面按系統(tǒng)的體系架構(gòu),逐一描述各層具體應(yīng)用的技術(shù)。系統(tǒng)技術(shù)架構(gòu)如圖2。用戶(hù)層主要由JSP (Java Server Pages)頁(yè)面構(gòu)成。服務(wù)層具體細(xì)分為控制層、業(yè)務(wù)邏輯層、DAO層。其中,由Struts充當(dāng)控制器的角色,根據(jù)配置文件將ActionServlet接收的Request委派給相應(yīng)的Action處理;系統(tǒng)具體的業(yè)務(wù)邏輯處理則放置于ActionForm和JavaBean中,同時(shí),Spring AOP處理程序負(fù)責(zé)權(quán)限管理、事務(wù)管理、日志管理等非純業(yè)務(wù)的邏輯處理,以提升系統(tǒng)性能并保證數(shù)據(jù)的完整性;數(shù)據(jù)訪問(wèn)層采用Hibernate的對(duì)象化映射技術(shù)與資源層的MySQL數(shù)據(jù)庫(kù)進(jìn)行交互,處理DAO組件的請(qǐng)求,并返回處理結(jié)果數(shù)據(jù)。資源層中,將FITS格式保存的硬X射線調(diào)制望遠(yuǎn)鏡衛(wèi)星各級(jí)數(shù)據(jù)產(chǎn)品以文件系統(tǒng)的形式存儲(chǔ)在磁盤(pán)等存儲(chǔ)設(shè)備上;從FITS格式數(shù)據(jù)文件中抽取FITS頭信息,附加文件大小、文件路徑等文件本身信息,導(dǎo)入硬X射線調(diào)制望遠(yuǎn)鏡MySQL數(shù)據(jù)庫(kù)中,以方便數(shù)據(jù)訪問(wèn)與獲取。
圖2 系統(tǒng)技術(shù)架構(gòu)Fig.2 The technological architecture of the system
2.2 實(shí)現(xiàn)方法
硬X射線調(diào)制望遠(yuǎn)鏡衛(wèi)星數(shù)據(jù)檢索發(fā)布系統(tǒng)主要包含檢索訪問(wèn)、瀏覽下載、數(shù)據(jù)可視化3大核心功能模塊。其中,檢索訪問(wèn)是最重要的核心功能模塊。下面主要以檢索訪問(wèn)模塊為例,具體描述系統(tǒng)的實(shí)現(xiàn)方法。
圖3 檢索訪問(wèn)功能模塊流程圖Fig.3 A flowchart of the retrieval module
檢索訪問(wèn)功能模塊流程如圖3。用戶(hù)在硬X射線調(diào)制望遠(yuǎn)鏡門(mén)戶(hù)網(wǎng)站的數(shù)據(jù)檢索界面中輸入檢索信息,系統(tǒng)驗(yàn)證檢索信息的有效性。若有效,則根據(jù)檢索信息判斷所屬的檢索方式。(1)若組合檢索條件不為空,則提取不為空的組合檢索條件參數(shù);若組合檢索條件為空,則忽略組合檢索中所有條件。(2)若錐形檢索條件不為空,則判斷目標(biāo)名稱(chēng)是否為空,若不為空,則調(diào)用名稱(chēng)解析服務(wù)將其解析為空間位置坐標(biāo)(赤經(jīng)、赤緯),若為空則直接提取赤經(jīng)、赤緯、檢索范圍3項(xiàng)錐形檢索條件參數(shù)。若錐形檢索條件為空,則忽略錐形檢索中所有條件。(3)若用戶(hù)操作星空?qǐng)D進(jìn)行交互檢索,則提取星空?qǐng)D中用戶(hù)圈畫(huà)的赤經(jīng)、赤緯、檢索范圍信息。將3種檢索方式中獲取的檢索請(qǐng)求參數(shù)拼接為SQL語(yǔ)句。檢索數(shù)據(jù)庫(kù)并返回VOTable格式的檢索結(jié)果。對(duì)VOTable數(shù)據(jù)進(jìn)行解析后,將檢索結(jié)果顯示于網(wǎng)絡(luò)界面以供用戶(hù)瀏覽。
下面針對(duì)檢索訪問(wèn)模塊中SSH框架的具體實(shí)現(xiàn)過(guò)程進(jìn)行簡(jiǎn)要介紹。
(1)配置Hibernate
根據(jù)硬X射線調(diào)制望遠(yuǎn)鏡衛(wèi)星各級(jí)數(shù)據(jù)產(chǎn)品的元數(shù)據(jù)信息,進(jìn)行數(shù)據(jù)庫(kù)概念模型、邏輯模型和物理模型設(shè)計(jì),并具體創(chuàng)建數(shù)據(jù)庫(kù)的各個(gè)表。例如,硬X射線調(diào)制望遠(yuǎn)鏡衛(wèi)星2級(jí)數(shù)據(jù)產(chǎn)品類(lèi)對(duì)應(yīng)的數(shù)據(jù)庫(kù)表設(shè)計(jì)如表1。
表1 硬X射線調(diào)制望遠(yuǎn)鏡衛(wèi)星2級(jí)數(shù)據(jù)的數(shù)據(jù)庫(kù)表Table 1 The database table of Level 2 data obtained by the HXMT satellite
然后,在MyEclipse開(kāi)發(fā)平臺(tái)中搭建DadaBase連接和Hibernate工程,配置數(shù)據(jù)庫(kù)連接參數(shù),并定義數(shù)據(jù)映射文件。依次操作后,會(huì)自動(dòng)生成DAO類(lèi)和數(shù)據(jù)庫(kù)表對(duì)象,也就是持久化類(lèi)。
持久化類(lèi)的映射定義置于XXX.hbm.xml中,例如硬X射線調(diào)制望遠(yuǎn)鏡衛(wèi)星2級(jí)數(shù)據(jù)產(chǎn)品類(lèi)對(duì)應(yīng)的HXMTL2Data.hbm.xml部分代碼如下:
同時(shí),數(shù)據(jù)庫(kù)管理配置信息保存于hibernate.cfg.xml文件中,可手動(dòng)修改其中的數(shù)據(jù)庫(kù)驅(qū)動(dòng)類(lèi)名、數(shù)據(jù)庫(kù)用戶(hù)名、密碼等信息。
(2)搭建Struts
利用MyEclipse提供的圖形化工具可以完成Struts的搭建,進(jìn)而實(shí)現(xiàn)視圖、控制器、模型間的邏輯控制。具體配置內(nèi)容在struts-config.xml文件中,相關(guān)代碼如下:
(3)整合Spring
Spring通過(guò)ApplicationContext配置管理SessionFactory,負(fù)責(zé)與數(shù)據(jù)庫(kù)的連接,應(yīng)用啟動(dòng)時(shí)可自動(dòng)加載。具體配置文件為ApplicationContext.xml,可替代hibernate.cfg.xml。Spring采用依賴(lài)注入為DAO對(duì)象注入SessionFactory的引用,從而完成Spring與Hibernate的整合。修改struts-config.xml文件,用Spring提供的控制器替換Struts原有的控制器,即可完成Spring與Struts的整合。
系統(tǒng)開(kāi)發(fā)過(guò)程中,檢索訪問(wèn)模塊主要實(shí)現(xiàn)服務(wù)層的資源發(fā)現(xiàn)、數(shù)據(jù)發(fā)布、數(shù)據(jù)訪問(wèn)與獲取3類(lèi)服務(wù),以響應(yīng)用戶(hù)層收集的檢索請(qǐng)求,完成對(duì)資源層數(shù)據(jù)的檢索訪問(wèn),并呈現(xiàn)檢索結(jié)果。下面具體介紹4類(lèi)較為重要的實(shí)現(xiàn)類(lèi)。(1)PublicStoreDataDao數(shù)據(jù)訪問(wèn)類(lèi),負(fù)責(zé)與數(shù)據(jù)庫(kù)中的數(shù)據(jù)信息進(jìn)行交互,完成數(shù)據(jù)增加、刪除、修改、查詢(xún)操作。(2)PublishDataService數(shù)據(jù)發(fā)布服務(wù)類(lèi),負(fù)責(zé)提供符合錐形檢索、圖片檢索協(xié)議和光譜檢索協(xié)議的服務(wù)接口,并將檢索結(jié)果封裝為標(biāo)準(zhǔn)的VOTable格式數(shù)據(jù)反饋給上層服務(wù),實(shí)現(xiàn)遵循虛擬天文臺(tái)標(biāo)準(zhǔn)規(guī)范的數(shù)據(jù)發(fā)布。以錐形檢索為例,硬X射線調(diào)制望遠(yuǎn)鏡衛(wèi)星任務(wù)中的星表數(shù)據(jù)大多需要遵循錐形檢索協(xié)議開(kāi)發(fā)相應(yīng)的數(shù)據(jù)訪問(wèn)服務(wù)接口進(jìn)行數(shù)據(jù)發(fā)布。錐形檢索服務(wù)必須遵循以下約束:服務(wù)必須接收并響應(yīng)以標(biāo)準(zhǔn)URL方式傳輸?shù)腍TTP GET請(qǐng)求,標(biāo)準(zhǔn)URL具體格式為http://服務(wù)部署的域名/本地路徑?赤經(jīng)RA&赤緯DEC&檢索半徑SR,必須包含RA、DEC、SR 3個(gè)參數(shù);服務(wù)必須以VOTable標(biāo)準(zhǔn)格式返回檢索結(jié)果;返回的VOTable必須包括一個(gè)單一的<TABLE>標(biāo)簽,<TABLE>標(biāo)簽中必須包含一個(gè)單一的<RESOURCE>標(biāo)簽,且必須至少含有3個(gè)獨(dú)立的<FIELDS>描述天體名稱(chēng)、赤經(jīng)、赤緯信息[8]。(3)SearchDataAction數(shù)據(jù)檢索發(fā)現(xiàn)類(lèi),負(fù)責(zé)實(shí)現(xiàn)資源發(fā)現(xiàn)服務(wù),通過(guò)分析用戶(hù)檢索條件,調(diào)用相應(yīng)的數(shù)據(jù)發(fā)布服務(wù)接口進(jìn)行數(shù)據(jù)檢索。例如,若接收的檢索條件僅包含赤經(jīng)、赤緯和檢索半徑,則調(diào)用PublishDataService類(lèi)提供的錐形檢索服務(wù)。(4)DisplayDataAction數(shù)據(jù)瀏覽顯示類(lèi),負(fù)責(zé)解析返回的VOTable格式檢索結(jié)果數(shù)據(jù),并以網(wǎng)頁(yè)形式顯示。
整個(gè)SSH框架的應(yīng)用是由用戶(hù)請(qǐng)求驅(qū)動(dòng)的。下面具體描述在檢索訪問(wèn)過(guò)程中,SSH框架是如何響應(yīng)用戶(hù)請(qǐng)求的。用戶(hù)進(jìn)入數(shù)據(jù)檢索界面Search.jsp,輸入赤經(jīng)、赤緯、檢索范圍或其他檢索信息。系統(tǒng)對(duì)檢索信息進(jìn)行驗(yàn)證,若驗(yàn)證成功則實(shí)例化ActionForm。待用戶(hù)提交檢索請(qǐng)求后,表示層將表單ActionForm封裝的檢索信息交給控制層的ActionServlet,根據(jù)struts-config.xml文件分派給相應(yīng)的Action即SearchDataAction進(jìn)行處理。SearchDataAction類(lèi)根據(jù)表單傳來(lái)的用戶(hù)請(qǐng)求和配置參數(shù)信息,調(diào)用業(yè)務(wù)邏輯層的PublishDataService類(lèi),依據(jù)業(yè)務(wù)規(guī)則具體處理用戶(hù)請(qǐng)求,并創(chuàng)建JavaBean實(shí)例。由DAO層的PublicStoreDataDao類(lèi)完成與數(shù)據(jù)存儲(chǔ)層的交互。PublicStoreDataDao類(lèi)將檢索條件參數(shù)拼接成SQL查詢(xún)語(yǔ)句,通過(guò)調(diào)用Hibernate創(chuàng)建的持久化類(lèi)中的getXXX()函數(shù)訪問(wèn)數(shù)據(jù)庫(kù)中的具體數(shù)據(jù)信息,并將查詢(xún)結(jié)果返回給PublishDataService類(lèi),由PublishDataService類(lèi)封裝為VOTable格式數(shù)據(jù)再反饋給表示層的JSP頁(yè)面,以HTML文件形式呈現(xiàn)在客戶(hù)端瀏覽器上。
硬X射線調(diào)制望遠(yuǎn)鏡衛(wèi)星數(shù)據(jù)檢索發(fā)布系統(tǒng)的檢索訪問(wèn)界面如圖4,用戶(hù)可輸入檢索條件進(jìn)行數(shù)據(jù)檢索。檢索結(jié)果顯示界面如圖5,集成購(gòu)物車(chē)、數(shù)據(jù)導(dǎo)出、數(shù)據(jù)下載和可視化功能。點(diǎn)擊數(shù)據(jù)顯示界面的可視化按鈕,選擇可視化方式,可對(duì)用戶(hù)勾選數(shù)據(jù)進(jìn)行散點(diǎn)圖、曲線圖的繪制,以及Aladin軟件的調(diào)用。二維散點(diǎn)圖可視化界面如圖6。Aladin作為開(kāi)源可視化軟件,提供Java接口、IDL接口、CGI程序、插件調(diào)用等方式,以實(shí)現(xiàn)與其他軟件工具之間的數(shù)據(jù)傳遞與信息交互。系統(tǒng)通過(guò)調(diào)用Aladin提供的Javascript命令: applet.execAsyncCommand("get Aladin,Simbad"+target),將數(shù)據(jù)顯示界面的目標(biāo)名稱(chēng)信息以參數(shù)形式傳入Aladin中,Aladin檢索Simbad數(shù)據(jù)庫(kù)并加載相應(yīng)目標(biāo)位置的圖片及星表信息,從而達(dá)到可視化效果。Aladin可視化界面如圖7。
圖4 HXMT數(shù)據(jù)檢索訪問(wèn)界面Fig.4 A screenshot of the HXMT data retrieval interface
目前,已基本完成硬X射線調(diào)制望遠(yuǎn)鏡衛(wèi)星數(shù)據(jù)檢索發(fā)布系統(tǒng)的原型開(kāi)發(fā)。因硬X射線調(diào)制望遠(yuǎn)鏡衛(wèi)星尚未發(fā)射,故采用Chandra數(shù)據(jù)作為測(cè)試數(shù)據(jù),對(duì)原型系統(tǒng)接入虛擬天文臺(tái)環(huán)境的可行性進(jìn)行應(yīng)用驗(yàn)證。VO應(yīng)用環(huán)境主要包括發(fā)現(xiàn)、注冊(cè)、發(fā)布、存儲(chǔ)4大要素。這4類(lèi)要素通過(guò)自由組合與相互作用構(gòu)成不同的功能實(shí)體。例如,系統(tǒng)只選取發(fā)現(xiàn)、發(fā)布、存儲(chǔ)3大要素進(jìn)行功能開(kāi)發(fā)與實(shí)現(xiàn);美國(guó)虛擬天文臺(tái)的VAO提供注冊(cè)、發(fā)現(xiàn)功能;Chandra Web Chaser數(shù)據(jù)檢索發(fā)布系統(tǒng)實(shí)現(xiàn)發(fā)布、存儲(chǔ)功能。
圖5 HXMT數(shù)據(jù)顯示界面Fig.5 A screenshot of the HXMT data display interface
圖6 二維散點(diǎn)圖可視化界面Fig.6 A screenshot of the 2D scatter plot interface
圖7 Aladin可視化界面Fig.7 A screenshot of the Aladin visualization interface
系統(tǒng)接入虛擬天文臺(tái)應(yīng)用環(huán)境的示意圖如圖8。首先,按照國(guó)際天文學(xué)界標(biāo)準(zhǔn)規(guī)范和一定的組織歸檔目錄格式,對(duì)硬X射線調(diào)制望遠(yuǎn)鏡各級(jí)數(shù)據(jù)產(chǎn)品進(jìn)行歸檔、存儲(chǔ),把全部數(shù)據(jù)實(shí)體文件存儲(chǔ)在文件系統(tǒng)中,并抽取元數(shù)據(jù)信息存儲(chǔ)到數(shù)據(jù)庫(kù)中。然后,針對(duì)不同類(lèi)型的數(shù)據(jù)進(jìn)行錐形檢索、圖片檢索等服務(wù)開(kāi)發(fā),提供對(duì)外訪問(wèn)接口,將硬X射線調(diào)制望遠(yuǎn)鏡數(shù)據(jù)發(fā)布為符合虛擬天文臺(tái)標(biāo)準(zhǔn)協(xié)議的硬X射線調(diào)制望遠(yuǎn)鏡節(jié)點(diǎn)。再將硬X射線調(diào)制望遠(yuǎn)鏡節(jié)點(diǎn)注冊(cè)到VAO注冊(cè)系統(tǒng)(http://vao.stsci.edu/publishing/)中。注冊(cè)時(shí)需提供的信息包括資源名稱(chēng)、簡(jiǎn)稱(chēng)、全球唯一標(biāo)識(shí)、描述、關(guān)鍵字、獲取方式、數(shù)據(jù)所有者信息等。VAO注冊(cè)系統(tǒng)收錄了遵循虛擬天文臺(tái)標(biāo)準(zhǔn)協(xié)議發(fā)布的各個(gè)天文項(xiàng)目數(shù)據(jù)節(jié)點(diǎn)信息,例如Chandra、Hershel等天文衛(wèi)星數(shù)據(jù)。硬X射線調(diào)制望遠(yuǎn)鏡數(shù)據(jù)只有進(jìn)行虛擬天文臺(tái)資源注冊(cè)并傳播到虛擬天文臺(tái)網(wǎng)絡(luò)中后,才能被其他虛擬天文臺(tái)門(mén)戶(hù)網(wǎng)站提供的資源發(fā)現(xiàn)服務(wù)檢索訪問(wèn)。HXMT門(mén)戶(hù)既可直接訪問(wèn)底層存儲(chǔ)的硬X射線調(diào)制望遠(yuǎn)鏡衛(wèi)星數(shù)據(jù)資源,也可與SkyView等其他符合虛擬天文臺(tái)標(biāo)準(zhǔn)規(guī)范的天文項(xiàng)目數(shù)據(jù)資源進(jìn)行互操作、互訪問(wèn),實(shí)現(xiàn)真正意義上的全球數(shù)據(jù)共享。因此,用戶(hù)可以通過(guò)HXMT門(mén)戶(hù)網(wǎng)站或VAO等國(guó)際門(mén)戶(hù)網(wǎng)站檢索硬X射線調(diào)制望遠(yuǎn)鏡數(shù)據(jù),同時(shí),也可通過(guò)HXMT門(mén)戶(hù)訪問(wèn)SkyView等天文項(xiàng)目的數(shù)據(jù)資源,從而成功驗(yàn)證了系統(tǒng)融入虛擬天文臺(tái)應(yīng)用環(huán)境的可行性。
圖8 HXMT衛(wèi)星數(shù)據(jù)融入虛擬天文臺(tái)應(yīng)用環(huán)境示意圖Fig.8 Illustration of the approach of integrating HXMT data into a VO application environment
硬X射線調(diào)制望遠(yuǎn)鏡衛(wèi)星數(shù)據(jù)檢索發(fā)布系統(tǒng)為中國(guó)首臺(tái)太空望遠(yuǎn)鏡——HXMT建立起一個(gè)虛擬天文臺(tái)應(yīng)用環(huán)境。系統(tǒng)主要擁有以下4方面的特點(diǎn):(1)參照虛擬天文臺(tái)概念體系結(jié)構(gòu)進(jìn)行系統(tǒng)體系架構(gòu)的設(shè)計(jì),開(kāi)發(fā)符合錐形檢索、圖片檢索協(xié)議、光譜檢索協(xié)議的網(wǎng)絡(luò)服務(wù)接口和門(mén)戶(hù)系統(tǒng),推動(dòng)虛擬天文臺(tái)技術(shù)在實(shí)際天文項(xiàng)目中的應(yīng)用;(2)將硬X射線調(diào)制望遠(yuǎn)鏡數(shù)據(jù)資源發(fā)布到國(guó)際虛擬天文臺(tái)環(huán)境中,有助于國(guó)際范圍內(nèi)的數(shù)據(jù)共享;(3)通過(guò)硬X射線調(diào)制望遠(yuǎn)鏡門(mén)戶(hù)網(wǎng)站直接與用戶(hù)交互,提供檢索訪問(wèn)、瀏覽下載和數(shù)據(jù)可視化等應(yīng)用功能;(4)采用松耦合的MVC模式和SSH框架進(jìn)行系統(tǒng)開(kāi)發(fā),降低組件間的依賴(lài)程度,增加了代碼的可讀性,具有良好的靈活性和擴(kuò)展性。
系統(tǒng)對(duì)我國(guó)空間天文衛(wèi)星數(shù)據(jù)檢索發(fā)布系統(tǒng)的研制具有良好的參考意義,但在如下幾方面仍有待進(jìn)一步探索與研究。(1)用戶(hù)訪問(wèn)量增加時(shí),數(shù)據(jù)檢索效率和資源下載速度降低,未來(lái)可以考慮采用負(fù)載均衡技術(shù)提升服務(wù)器響應(yīng)效率及系統(tǒng)運(yùn)行性能;(2)數(shù)據(jù)可視化方面形式比較單一,后續(xù)工作會(huì)集成更多可視化組件,以豐富可視化效果,提升用戶(hù)交互體驗(yàn);(3)可添加交叉證認(rèn)、ADQL (Astronomical Data Query Language)檢索等功能,完成不同天文數(shù)據(jù)項(xiàng)目的數(shù)據(jù)融合工作,從而提高數(shù)據(jù)發(fā)現(xiàn)的科學(xué)價(jià)值。
致謝:本文的數(shù)據(jù)來(lái)源于中國(guó)科學(xué)院信息化建設(shè)專(zhuān)項(xiàng)“空間科學(xué)主題數(shù)據(jù)庫(kù)”及國(guó)家科技基礎(chǔ)條件平臺(tái)地球系統(tǒng)科學(xué)數(shù)據(jù)共享平臺(tái)——“空間科學(xué)數(shù)據(jù)共享平臺(tái)”,感謝其提供的數(shù)據(jù)支持。
[1] 崔辰州,趙永恒.中國(guó)虛擬天文臺(tái)體系結(jié)構(gòu)[J].天文研究與技術(shù)——國(guó)家天文臺(tái)臺(tái)刊,2004,1(2):140-151.
Cui Chenzhou,Zhao Yongheng.Architecture of Chinese virtual observatory[J].Astronomical Research&Technology——Publications of National Astronomical Observatories of China,2004,1(2):140-151.
[2] Plante R L,Greene G,Hanisch R J,et al.Building archives in the virtual observatory era [C]//Proceedings of the SPIE:Software and Cyberinfrastructure for Astronomy.2010.
[3] 傅衍杰.空間科學(xué)虛擬觀測(cè)臺(tái)體系結(jié)構(gòu)研究[D].北京:中國(guó)科學(xué)院研究生院,2011:40-41.
[4] 傅衍杰,鄒自明,佟繼周.空間科學(xué)虛擬觀測(cè)臺(tái)體系結(jié)構(gòu)研究[J].天文研究與技術(shù)——國(guó)家天文臺(tái)臺(tái)刊,2011,8(4):395-402.
Fu Yanjie,Zou Ziming,Tong Jizhou.Research of architecture of the Chinese space science virtual observatory[J].Astronomical Research&Technology——Publications of NationalAstronomical Observatories of China,2011,8(4):395-402.
[5] 張?jiān)旅?錐形檢索Web服務(wù)的REST式設(shè)計(jì)和實(shí)現(xiàn)[D].天津:天津大學(xué),2009.
[6] Matthew J G,Michael J F,Thomas A M.虛擬天文臺(tái):天文學(xué)研究的工具與技術(shù)[M].崔辰州,譯.北京:中國(guó)科學(xué)技術(shù)出版社,2010:24-27.
[7] 張宇,王映輝,張翔南.基于Spring的MVC框架設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2010,36 (4):59-62.
Zhang Yu,Wang Yinghui,Zhang Xiangnan.Design and implementation of MVC framework based on Spring[J].Computer Engineering,2010,36(4):59-62.
[8] 李曉科,季凱帆,鄧輝,等.面向Web服務(wù)的天文數(shù)據(jù)發(fā)布技術(shù)[J].天文研究與技術(shù)——國(guó)家天文臺(tái)臺(tái)刊,2012,9(1):70-77.
Li Xiaoke,Ji Kaifan,Deng Hui,et al.Astronomical data publishing techniques oriented toward the WEB SERVICE[J].Astronomical Research&Technology——Publications of National Astronomical Observatories of China,2012,9(1):70-77.
Design and Implementation of the HXMT Data Retrieval/Publishing System Based on the Virtual Observatory
Jiang Xu1,2,Tong Jizhou1,Cui Chenzhou3,Zou Ziming1
(1.Center for Space Science and Applied Research,Chinese Academy of Sciences,Beijing 100190,China,Email:jiangxu1113@163.com;2.College of Computer and Control Engineering,University of Chinese Academy of Sciences,Beijing 100049,China;3.National Astronomical Observatories,Chinese Academy of Sciences,Beijing 100012,China)
The Virtual Observatory(VO)integrates worldwide astronomical-data resources seamlessly and transparently to meet requirements of cross-regional processing,retrieval,and publishing of astronomical data(which can be of multiple-band).Currently,many international astronomical projects have adopted VO standard protocols for developing data retrieval/publishing systems.After logging into the VO,a user can search and retrieve data of various astronomical projects by using the VO Portal.Following this trend the Hard X-ray Modulation Telescope(HXMT)Project also has adopted VO technologies in the design and implementation of the HXMT data retrieval/publishing system.This will make the system to meet the requirements of HXMT-data publishing,and to integrate HXMT data into the VO environment for international data sharing.In this paper we propose such a system,with its architecture conformed to VO specifications.It consists of a user layer,a service layer,and a resource layer.We implement the Simple Cone Search(SCS),Simple Image Access Protocol (SIAP),Simple Spectral Access Protocol(SSAP),and VOTable standard in the system.In addition,we develop the system software using the MVC mode,SSH framework,and various J2EE technologies.This makes the system easily deployable,scalable,stable,and user friendly.We have successfully constructed a prototype of the system.The prototype provides Web-service interfaces for invoking other software applications and has a user interface which is a portal website.The prototype has various functions,including those allowing retrieval,access,download,and visualization of data.Our experiments with the prototype show that the system is widely applicable in cross manipulation of astronomical data from different resources,data sharing/ publishing,data search/access,and integration of heterogeneous applications.The system can benefit the development of retrieval/publishing systems for other astronomical satellite data in China.
Space astronomy;Virtual Observatory;HXMT;Data retrieval/publishing;VO standard protocol;MVC;J2EE
P17
A
1672-7673(2014)04-0378-10
2014-01-24;
2014-02-21
姜 旭,女,碩士.研究方向:空間科學(xué)信息管理與應(yīng)用技術(shù).Email:jiangxu1113@163.com