楊永海,陳 東 ,王傳軍
(1.中國科學院國家天文臺云南天文臺, 云南 昆明 650011; 2.中國科學院研究生院,北京 100049)
在我國,常見的天文觀測方式是完成觀測后,觀測者將觀測記錄刻成光盤帶走,而望遠鏡管理員也以光盤形式進行觀測數據備份。這樣經過長期觀測積累,望遠鏡管理處的觀測資料必然占用大量空間,且數據難以管理,容易出現損壞等;此外,由于觀測所得原始數據的使用關系到未來科學產出,天文學家需要查詢既往觀測數據。在大量堆砌的光盤中查找既往數據勢必非常困難,必然影響工作效率。因此,數據管理已經是望遠鏡建設的重要部分。為了方便望遠鏡觀測數據的管理和應用,有必要建立一個數據管理系統,提高天文學家的工作效率。
數據管理系統不僅是望遠鏡管理的一部分,也是未來虛擬天文臺建設的基礎[1]。數據管理系統作為2.4m遠程觀測系統的一部分,管理該望遠鏡產生的觀測數據。該望遠鏡所用CCD每天會產生約3G Byte的數據[2]。由于觀測數據量巨大,為性能計,只在MySQL中存儲FITS格式觀測文檔的頭信息,以此建立數據庫,并和位于文件系統的源文件作鏈接。在現有的Web功能支持下,可以很方便地實現遠程訪問。用戶可以通過瀏覽器查詢數據,并能通過鏈接找到源文件進行觀測數據下載。而由于數據量極大,后臺需要一個以磁盤陣列為基礎的NAS 系統來存儲海量的觀測數據[3]。現階段,選用功能滿足需要、價格低廉的產品QNAP TS-639 Pro和企業級SATA硬盤。
該數據管理系統支持用戶在友好的瀏覽器端進行高效、精確的查詢和統計等操作,還可支持天文學家觀測過程中的在線瀏覽等。
對于該數據庫管理系統,具體有以下要求:(1)數據集中管理;(2)用戶權限控制;(3)瀏覽、查詢、下載數據;(4)高可靠性,數據異地備份。
鑒于此系統的性能要求,方案如下:通過TCP/IP網絡,鏈接數據庫服務器,Web服務器,應用服務器,建立一個B/S系統。觀測數據由數據庫服務器集中管理。此系統可通過瀏覽器端界面,供不同地域客戶遠程訪問。天文學家可進行觀測過程中的實時瀏覽,并在實時瀏覽過程中擁有刪除不合格觀測文件的權限。用戶在瀏覽器上登錄該數據管理系統,并在系統環境中執行查詢、下載數據等。該系統還需支持維護人員的管理操作,具體功能有查詢、添加、修改、瀏覽、統計等。系統采用J2EE技術開發。
系統開發選用Linux作為操作系統,MySQL為后臺數據庫,用JDBC連接數據庫,由JavaBean作為邏輯控制部分。 Web服務器選用Apache,而由應用服務器Resin作為JavaBean和JSP程序的容器[4-5]。

圖1 系統開發平臺架構Fig.1 Development environment of the system
2.1 開發流程
該數據管理系統整體邏輯架構如圖2。

圖2 系統整體邏輯架構Fig.2 Overall logical structure of the system
流程介紹:
(1) CCD產生數據(FITS文件)后,用JAVA程序定時掃描FITS文件,解析FITS頭信息,分類導入MySQL數據庫中;(2)FITS文件頭信息處理后,JAVA程序以gzip格式將文件壓縮歸檔到文件系統;(3)實時瀏覽,若所得觀測圖像不符合要求,可將數據庫記錄及位于文件系統的源文件刪除;(4)用JSP開發前端界面,實現文件系統內FITS文檔與MySQL內table中row信息互聯;(5) 在JSP中實現數據查詢、下載、統計等用戶需求;(6)MySQL的部分日常維護由Linux下Shell編程實現。
2.2 系統實現
2.2.1 后臺
通過解析FITS頭信息,建立了一系列table,其中包含了FITS文件中當次觀測的各種信息[6]。依據2.4m望遠鏡產生的FITS文件所包含的頭信息而建設的后臺數據庫(database)為ljodb。由于自FITS文件提取的參數非常多(該數據庫存儲參數共233個,較國內傳統FITS文件頭內容豐富了許多,在源文件中存儲了更多信息),且參數的類別不同,所以在這個database中包括5個tables,FITS頭文件的信息分類歸入這5個tables中。這5個tables分別存儲了關于標準FITS信息(standfit),擴展后的信息包括終端參數信息(detector)、濾光片等信息(instrument)和望遠鏡信息(telescope),另外擴展的一些細節信息集中于bitsum。在該數據庫后臺建設過程中,要注意完整約束性等,并注意每個表中元組屬性的類型設置。比如采取char提高檢索速度還是varchar節省數據庫資源等。該database結構如圖3。這個database下所包含的底層表結構如圖4。

圖3 后臺架構Fig.3 Structure of backstage batabase

圖4 后臺table結構Fig.4 Table structure of backstage database
上圖顯示的是數據庫中數據的存儲結構。數據導入由JAVA程序實現。FITS文件生成后,JAVA程序自動查找并解析該文件,后將FITS頭文件的數據導入到已有數據庫相應的元組中。這樣就可以通過前端查詢頁面檢索該數據庫的內容了。
另外,該數據管理系統的部分日常維護由Linux下腳本實現。為了實現災難恢復,在該系統實現了完全備份、增量備份,這兩種備份可由crontab在后臺定時自動執行。
2.2.2 前端頁面:供天文學家查詢、下載等
前臺工作流程如圖5。該數據管理系統的首頁如圖6。

圖5 前臺工作總流程Fig.5 Flowcharts of foreground processing

圖6 系統首頁Fig.6 Homepage of the system
首頁有3個鏈接。通過鏈接,可跳轉到3個頁面:(1)查詢頁面(data search)。用戶可在此處實時瀏覽新生成的FITS圖像,若不滿意圖像質量,可刪除,數據庫記錄和文件系統內源文件即清除。另外,提供了不同檢索類別頁面,用戶可瀏覽檢索結果并可打包下載;(2)下載頁面(data download)。用戶明確所需數據的文件,可在該頁面直接輸入日期,下載當日文件;(3)后臺管理頁面(administer)。執行管理員權限的管理頁面??稍谶@部分執行后臺修改,權限設置等。
根據FITS信息分類,此系統的下載頁面共提供6種分類查詢(每種都包括源、赤經赤緯等基本檢索信息):(1)Standfit查詢,根據標準FITS頭文件中信息進行查詢;(2)Instrument查詢,根據instrument信息檢索;(3)Detector查詢,由detector信息檢索;(4)Telescope查詢,以telescope信息查詢;(5)Weather查詢,根據weather信息查詢;另外,還有根據一些其他信息查詢的bitsum查詢頁面。
觀測者可在觀測過程中實時瀏覽觀測結果,對不合格拍攝結果有權刪除。圖7是其中的實時瀏覽頁面。

圖7 實時瀏覽Fig.7 Real-time browse
用戶可根據FITS頭文件中關于望遠鏡的字段信息進行查詢,提取符合要求的文件的信息。圖8為檢索頁面。共有6個查詢頁面,不再一一列舉。

圖8 數據檢索Fig.8 Data search
用戶提交查詢后,后臺按要求提取出信息,用戶可以對符合查找要求的觀測文件的數據進行瀏覽。如果需要下載文件,點擊download。提交后檢索結果如圖9。

圖 9 數據下載Fig.9 Data downloading
下載前,需要登錄并輸入賬戶、密碼。帳戶和密碼經后臺驗證后,合法用戶即可下載需要的觀測記錄了。未注冊用戶需要先進行注冊。
在望遠鏡數據開放后,系統將定期發布數據。如果需要直接下載某一個時間的數據,可直接從主頁的data download鏈接到另一個直接下載頁面,輸入所要下載數據的時間,然后提交就可以了。在這個過程中,也需要用戶登錄才能實現下載。
為了系統的持續運行和完善,需要對系統進行管理和維護。通常管理員可直接通過MySQL客戶端和MySQL應用程序進行后臺的修改和重新組織。為了方便管理員的操作,該系統開發了一些管理員后臺應用程序,可實現一些簡單的維護功能。對于復雜的維護操作,還需DBA等進入后臺實現。管理員可從首頁進入。經登錄后,出現圖10所示的管理員頁面。如果要修改后臺表結構,可由該頁面鏈接到amend頁面,實施修改。

圖10 管理員維護頁面Fig.10 Administrator’s maintenance interface

圖11 后臺修改頁面Fig.11 Backstage correction interface
管理員可通過該頁面跳轉到相應功能頁面進行用戶授權、刪除,檢查tables結構并進行修改等。另外管理員頁面提供了統計功能,可對一些必要信息進行統計。
該數據管理系統可對CCD產生的FITS文件進行自動歸檔,解析FITS文件頭入庫,并提供文件的分類查詢、打包下載等功能。另外,提供了一些后臺管理功能,幫助維護人員管理和維護系統,并方便改進和完善系統。該系統提供了比以往更科學的天文數據存儲和檢索方式,方便了天文研究。
[1] 趙永恒,崔辰州.中國虛擬天文臺——任務、特點、方案. 2002.
[2] http://www.mg.rg.n/cn/2m4_index_cn.tm.
[3] W Curtis Preson等, 鄧勁生等譯. 使用SAN與NAS [M].北京:中國電力出版社.
[4] George Reese著,石永鑫,宋隆譯.JDBC與Java數據庫編程[M].北京:中國電力出版社.
[5] Hans Bergstan著, 汪青青,朱劍平, 等譯.JSP設計[M].北京:清華大學出版社.
[6] http://fits.sfc.asa.ov/