2.4m望远镜数据管理子系统
2010-01-25杨永海王传军
杨永海,陈 东 ,王传军
(1.中国科学院国家天文台云南天文台, 云南 昆明 650011; 2.中国科学院研究生院,北京 100049)
1 系统开发背景
在我国,常见的天文观测方式是完成观测后,观测者将观测记录刻成光盘带走,而望远镜管理员也以光盘形式进行观测数据备份。这样经过长期观测积累,望远镜管理处的观测资料必然占用大量空间,且数据难以管理,容易出现损坏等;此外,由于观测所得原始数据的使用关系到未来科学产出,天文学家需要查询既往观测数据。在大量堆砌的光盘中查找既往数据势必非常困难,必然影响工作效率。因此,数据管理已经是望远镜建设的重要部分。为了方便望远镜观测数据的管理和应用,有必要建立一个数据管理系统,提高天文学家的工作效率。
数据管理系统不仅是望远镜管理的一部分,也是未来虚拟天文台建设的基础[1]。数据管理系统作为2.4m远程观测系统的一部分,管理该望远镜产生的观测数据。该望远镜所用CCD每天会产生约3G Byte的数据[2]。由于观测数据量巨大,为性能计,只在MySQL中存储FITS格式观测文档的头信息,以此建立数据库,并和位于文件系统的源文件作链接。在现有的Web功能支持下,可以很方便地实现远程访问。用户可以通过浏览器查询数据,并能通过链接找到源文件进行观测数据下载。而由于数据量极大,后台需要一个以磁盘阵列为基础的NAS 系统来存储海量的观测数据[3]。现阶段,选用功能满足需要、价格低廉的产品QNAP TS-639 Pro和企业级SATA硬盘。
该数据管理系统支持用户在友好的浏览器端进行高效、精确的查询和统计等操作,还可支持天文学家观测过程中的在线浏览等。
2 系统方案
对于该数据库管理系统,具体有以下要求:(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结构并进行修改等。另外管理员页面提供了统计功能,可对一些必要信息进行统计。
3 结 论
该数据管理系统可对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/