赵 翠,林钢华,邓元勇,汪国萍
(1.中国科学院国家天文台,北京 100012;2.中国科学院太阳活动重点实验室,北京 100012)
怀柔太阳观测基地数据流量统计系统设计与实现
赵 翠1,2,林钢华1,2,邓元勇1,2,汪国萍1,2
(1.中国科学院国家天文台,北京 100012;2.中国科学院太阳活动重点实验室,北京 100012)
基于数据流量的统计功能是评判数据产地应用服务的一项指标;统计不同类型观测数据的使用、共享情况,可为分析数据的使用需求提供参考。因此,设计观测数据流量统计系统具有较强的应用价值。基于中国科学院国家天文台怀柔太阳观测基地的数据服务,以LAMP为开发环境,设计了数据流量实时统计及定时入库、数据流量查询功能、流量可视化功能(包括直方图显示和饼状图显示)等功能模块,以流量统计层、数据层、业务层及用户层4个层次为结构框架,实现了统计及查询任意时段内多种仪器观测的多种数据传输至各用户单位的流量功能,系统具有统计精确、多个关键字进行完整查询、显示直观、扩展性强等优点,能够满足当前及未来应用需求,对其它数据产地的多类型数据的流量统计具有可用性。
怀柔;太阳数据;流量;统计
CN53-1189/P ISSN1672-7673
中国科学院国家天文台怀柔太阳观测基地装备了多台先进的太阳观测设备,主要的望远镜包括太阳磁场望远镜、三通道太阳磁场望远镜、全日面太阳光球磁场望远镜以及全日面色球Hα望远镜[1],可从不同层次和波段对太阳进行多个层面的观测及数据采集,目前累积了TB量级的多种类型的观测数据。基地每日将这些观测数据传送至多家需求单位,如美国大熊湖天文台、中国科学院国家空间科学中心、中国科学院国家天文台太阳活动预报中心、国家天文台信息与计算中心等。
准确统计任意时段内这些仪器观测的多种数据传输至各用户单位的流量,对数据的应用评估具有重要意义,同时也有助于优化仪器的观测能力。一方面,怀柔观测基地的任务之一是通过多种望远镜的高效运行,获取优质的观测数据满足不同用户的需求,数据传输及使用流量可以作为评判基地数据服务的一项指标;另一方面,统计不同类型观测数据的使用、共享情况,能够指导设备的升级改造及对新设备的研制提供参考。
目前开发的各种类型流量统计系统[2-4],大都针对具体应用进行设计和实现,个性化较强,不适合进行移植,自行设计和开发一套适合于本基地需求的流量统计系统应运而生。本文建构的怀柔太阳观测基地数据流量统计系统,以LAMP为开发环境,设计了数据流量实时统计及定时入库功能、数据流量查询功能、流量可视化功能(包括直方图显示和饼状图显示)等模块,以流量统计层、数据层、业务层及用户层4个层次为结构框架进行构建。系统能够保证数据流量实时统计及定时更新入库;可基于任意观测时段、仪器类型、数据类型、传输单位等多条件进行流量查询及统计;并提供多种仪器数据流量的可视化显示功能。
1.1 系统开发环境
系统以目前流行的LAMP架构为开发环境进行构建,LAMP是最强大的网站解决方案,从网站的流量上来说,70%以上的访问流量是LAMP提供的。
1.1.1 LAMP介绍
LAMP[5]是一种网络应用和开发环境,是Linux、Apache、MySQL、Php/Perl的缩写,每一个字母代表了一个组件。平台由4个组件组成,呈分层结构,每一层提供了整个架构的一个关键部分:
Linux:Linux处在最底层,提供操作系统。它的灵活性和可定制化的特点意味着它能够产生一种高度定制的平台,让其它组件在上面运行。
Apache:Apache位于第二层,是一个网络服务平台,提供可让用户获得网络页面的机制。
MySQL:MySQL是最流行的开源关系数据库管理系统,用于数据存储。在网络应用程序中,所有帐户信息、产品信息、客户信息、业务数据和其他类型的信息都存储于数据库中。
PHP:PHP是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入HTML中,尤其适合网络开发。可以使用PHP编写能访问MySQL数据库中的数据和Linux提供的一些特性的动态内容。
1.1.2 系统选择LAMP的原因
系统选择LAMP为开发环境,主要考虑其具有以下几方面的优势[6]:
(1)灵活性:既没有技术上的限制也没有许可证的限制。允许使用者能够以适合自身的方式灵活地构建和部署应用程序,而不是以其正在使用的技术的提供商规定的方式。
(2)个性化:LAMP组件是开源软件,已经建立了大量额外的组件和提供额外功能的模块,能够让使用者个性化设置组件和功能以便满足需求。
(3)易于开发:用LAMP组件开发极其简单,代码通常非常简洁,甚至非程序员也能够修改或者扩展这个应用程序,同时也给专业的程序员提供了各种高级的特性。
(4)容易应用:大多数主机服务把基于LAMP的环境作为标准,应用程序也不需要编译,在新的主机上部署一个应用程序就像拷贝一个应用软件那样容易。
(5)安全:由于是开源软件,大量的程序员关注这些软件的开发,问题通常能够很快修复,不需要昂贵的技术支持合同。经过大量用户和团体组织多年来的使用,LAMP技术是安全和稳定的。
(6)成本低廉:LAMP组件都是开源软件,只要遵循GPL协议,可以自由获得和免费使用,极大降低了部署成本。
1.2 系统总体结构设计
系统分为4个层次进行设计,分别为:流量统计层、数据层、业务层以及用户层,以下分别叙述:
(1)流量统计层:负责实时获取传输至多家单位的多种仪器采集的各种类型数据的流量信息,将每条信息生成记录,定时保存至数据库,实现对数据库的更新;
(2)数据层:该层即为本系统构建的数据库,负责保存每条数据记录信息,表字段包括:仪器类型、数据类型、数据格式、数据名称、传输时间、数据大小以及传输地址;
(3)业务层:负责处理实际的用户需求,根据用户输入信息,调用相应的功能模块,处理并返回结果至用户层;
(4)用户层:负责与用户打交道,将业务层的处理结果呈现给用户,在系统中提供查询及可视化显示等对外服务。
图1显示了系统的总体结构。
1.3 系统功能模块设计
通过进行需求分析,系统设计并实现了数据流量实时统计及定时入库模块、数据流量查询模块以及可视化显示模块。
1.3.1 数据流量实时统计及定时入库模块
基地按照要求每日将各种类型的太阳观测数据传输至美国大熊湖天文台、中国科学院国家空间科学中心、中国科学院国家天文台太阳活动预报中心、国家天文台信息与计算中心等多家单位,目前包括的数据类型为:局部太阳光球矢量磁场,局部太阳光球视向速度场,局部太阳色球视向磁场,局部太阳色球视向速度场,局部太阳光球矢量磁场横向分量Q5、U5数据,三通道局部太阳视向磁场数据、横向磁场Q5、U5数据,全日面光球矢量磁场数据视向分量L5、横向分量Q5、U5数据,全日面色球Halpha单色像数据。在数据传输过程中,该模块获取每个数据的仪器类型、数据类型、数据格式、文件名称、传输时间、文件大小以及传输地址等信息,生成记录,定时保存至数据库,实现数据库更新。
图1 系统总体结构图Fig.1 A block diagram of the overall structure of the system
1.3.2 数据流量查询模块
该模块以起始时间、仪器类型、数据类型、传输地址为检索条件,用户依据自身需求选择或限定查询条件,进行查询,模块统计出符合条件的数据记录后,以表格形式罗列结果返回至用户界面,该表格中包括仪器类型、数据类型、传输地址和总流量信息。
1.3.3 可视化显示模块
模块通过可视化的方式,直观地显示不同仪器数据流量图,其中包括直方图显示模块和饼状图显示模块。
直方图显示模块:通过数据流量查询及显示模块,用户可获取多种仪器的数据流量,该模块以仪器类型为横坐标、流量大小为纵坐标,画出直方图,提供不同仪器数据流量的直观对比。
饼状图显示模块:对于用户查询并返回的数据流量,计算每种仪器的数据流量与总流量的比值,画出饼状图,可提供不同仪器数据流量的另一种直观对比。
1.4 关键功能模块实现
以下详细叙述系统如何实现数据流量的精确统计以及定时更新数据库。
1.4.1 数据流量精确统计
(1)FTP协议介绍
FTP协议介绍:FTP协议的全称是文件传输协议(File Transfer Protocol),是基于TCP/IP协议的一个应用协议,主要实现在不同的计算机之间的数据共享,具有数据上传、校验及断点续传的功能,系统利用此协议进行数据上传、校验及续传,实现数据流量的精确统计。
(2)基于FTP协议的数据文件上传
为了使用FTP传输文件,首先需用远程计算机上的用户名和口令确认FTP会话,登陆成功后,利用cd命令在远程机上改变工作目录,利用put命令实现数据文件的传输。
(3)基于FTP协议校验文件传输
当利用FTP协议传输数据时,一旦数据传输成功,应返回响应代码‘226’,系统中,通过此响应代码校验文件传输成功与否,如果成功则完成此次传输,否则,需进行断点续传。
(4)基于FTP协议的数据文件断点续传
断点续传原理:由于FTP是顺序接收文件的,所以,只要计算已接收的数据大小,就可以知道断点在文件的偏移量,续传时,客户端将已接收的数据量传递给服务器,服务器使用这个做为偏移量继续读取文件,将剩余的数据发送至客户端,客户端仅需将接收的数据追加至原文件尾部即可,这个过程即可实现断点续传。
断点续传的实现:系统中使用REST指令告诉需要从文件的某个点开始传,接着用STOR或者RETR命令开始传输数据文件。
1.4.2 定时更新数据库
(1)建立流量统计日志
将每个成功传输的数据信息保存至流量统计日志,该日志遵循一定的格式规范,包括每条数据的仪器类型、数据类型、数据格式、文件名称、传输时间、文件大小以及传输地址等信息。
(2)根据日志定时更新数据库
日志信息保存了最新成功传输的数据流量信息,需将其保存至数据库,系统定时读取日志中的每条记录,将其输入数据库,实现数据库的更新。
系统基于面向对象的编程实现,具有易扩展的特点。下面以统计2013年7月1日~2013年8月10日传输至中国科学院国家空间科学中心的数据流量为例,显示其运行效果。
(1)在查询界面中输入相应参数,如图2。
图2 怀柔太阳观测数据流量查询界面Fig.2 The query form for data flows of the HSOS
(2)参数输入完毕后,点击“开始统计”按钮,系统返回如下结果(图3)。
页面左侧表格列出了怀柔太阳观测基地共13种数据的流量统计情况,右侧提供查看柱状直方图和饼状图的链接。
(3)按4种望远镜类型分别统计对应的数据流量,点击“查看柱状图”,可以直观显示4种仪器分别传输的流量,横坐标为仪器类型,纵坐标为每种仪器的数据流量,如图4。
(4)同时,系统还提供4种仪器的数据流量的饼状图显示功能,点击“查看饼状图”,如图5,可直观显示仪器数据流量所占的比例。
图3 流量统计结果图Fig.3 Statistical results of data flows
图4 太阳观测数据流量直方图Fig.4 A histogram of data flows of solar observations
图5 太阳观测数据流量饼状图Fig.5 A pie chart of data flows of solar observations
怀柔太阳观测基地数据流量统计系统实现了任意时段内对基地多种数据传输至各单位的流量统计和查询功能,目前已完成构建。系统具有统计精确、多个关键字进行完整查询、显示直观、可扩展性强等优点,能够满足当前及未来需求。
文[7]中描述了信息技术在诸多方面能够给太阳物理研究带来支撑和加速,系统为太阳物理研究带来的便利也再次证明了上述观点。另外,系统的设计可对其它数据产地的多类型数据的流量统计提供借鉴。
在今后的工作中,系统将进一步统计其它用户需求的数据流量,如提供基于网络直接下载数据的流量统计功能,基于系统扩展性强的优点,可方便将其它模块嵌入本系统中,届时将更加完整地提供怀柔太阳观测基地的数据流量统计信息。
[1] 怀柔太阳观测基地介绍[EB/OL].[2014-02-28].http://sun.bao.ac.cn/gene/site-ch.html.
[2] 罗欣,朱清新.改进的基于边缘检测技术的车流量统计系统[J].计算机工程,2006,32 (9):228-229+232.
Luo Xin,Zhu Qingxin.Improved traffic flow measuring system based on edge detection[J]. Computer Engineering,2006,32(9):228-229+232.
[3] 何小映,何红.人流量统计系统设计[J].中国科技信息,2007(14):97-98.
He Xiaoying,He Hong.A statistic system about the amount of person[J].China Science and Technology Information,2007(14):97-98.
[4] 沈会良,李志能.基于CCD的汽车牌照自动识别系统[J].光电工程,2000,27(4):60-63+71.
Shen Huiliang,Li Zhineng.An automatic recognition system for license plates based on chargedcoupled devices[J].Opto-Electronic Engineering,2000,27(4):60-63+71.
[5] 百度百科.lamp(Web应用软件).[EB/OL].[2014-02-28].http://baike.baidu.com/view/365086.htm.
[6] 曾棕根.LAMP(PHP)程序设计[M].北京:北京大学出版社,2012.
[7] 林钢华.太阳物理研究的信息化发展[J].科研信息化技术与应用,2011,2(4):74-81.
Lin Ganghua.Informatization development of Solar Physics research[J].E-Science Technology&Application,2011,2(4):74-81.
Design and Implementation of a System for Statistics of Data Flows of the Huairou Solar Observation Station
Zhao Cui1,2,Lin Ganghua1,2,Deng Yuanyong1,2,Wang Guoping1,2
(1.National Astronomical Observatories,Chinese Academy of Sciences,Beijing 100012,China,Email:zhaocui@bao.ac.cn;2.Key Laboratory of Solar Activity,National Astronomical Observatories,Chinese Academy of Sciences,Beijing 100012,China)
For application services of data providers statistical functions about data flows reflect an aspect of service quality.Statistics of using and sharing different types of data can provide references for analyzing requirement patterns of data.Therefore,it is practically highly valuable to design a system for statistics of data flows.Aiming at data-product services of the Huairou Solar Observation Station,we design a system of realtime statistics of data flows by adopting the LAMP as the development environment.The system framework consists of a database-updating module,a data-flow query module,a data-flow visualization module(showing histograms and pie charts),a statistical application layer,a data layer,a service layer,and a user layer.The system achieves needed statistical functions and query capabilities for any types of data flows from a chosen instrument at a given time.The system has advantages such as accurate statistics,queries through multiple keywords,visual displays,and good expansibility.It can meet current and future needs,and has the potential to be adapted for data generated elsewhere.
Huairou;Solar-observation data;Data flows;Statistics
TP393.06
A
1672-7673(2014)03-0311-06
2013-09-24;
2013-10-23
赵 翠,女,助理工程师.研究方向:天文信息技术.Email:zhaocui@nao.cas.cn