基金项目:中国地震局行业专项课题“地震信息发布保障技术研究”(201108010)资助.
(Earthquake Administration of Yunnan Province, Kunming 650224, Yunnan, China)
seismic data; data sharing; frame design; software implementation
备注
基金项目:中国地震局行业专项课题“地震信息发布保障技术研究”(201108010)资助.
介绍了云南省市县地震数据共享与信息服务系统的构架和数据共享平台的设计与实现。该系统以面向全省市县级单位提供数据和信息服务为目标进行系统构架设计,并在数据平台上实现了数据获取方式、并发访问控制、数据分发、订阅与审批、历史数据获取与更新等功能,满足了市县地震部门对监测数据服务的需求。
Design and implementation of data sharing platform in the data sharing and information service system for the cities and counties departments in Yunnan province is introduced. his system is designed on the goal of providing data and information service for the cities and counties departments to do the fram design,which implements some functions, such as data acquirement pattern, parallel access control, data distribution, subscribe and approval, historical data acquisition and update etc. on the data platform, which has met the requirement of monitoring data service for the cities and counties departments.
引言
云南作为多震省份,在日常震情跟踪和监测预报工作中,市、县地震部门对于及时、方便获取地震观测数据的需求十分迫切。云南省共有100多个县级地震部门,其中仅有18个是地震行业网络信息节点,大多数非信息节点的县级地震部门由于行业内、外网间物理隔离不能直接访问行业网,虽然采用VPN方式,获取观测数据也较为不便。同时,市县地震部门作为当地政府的一个职能机构,对于地震速报信息以及观测系统产出数据的可视展现和信息服务也有较大需求。
项目组在前期工作成果的基础上,设计并建成了“云南省市县数据共享与信息服务系统”。该系统以面向全省市县级单位提供数据和信息服务为目标进行系统构架设计,并在数据平台上实现了数据获取方式、并发访问控制、数据分发、订阅与审批、历史数据获取与更新等功能。笔者将介绍该系统的构架设计及数据平台软件功能的实现。
1 系统构架设计
云南省市县地震数据共享和信息服务系统技术思路为:依据省级区域中心的数据平台,在区域中心建立地震数据共享服务分发系统,在市县信息节点开发和部署市县级数据共享服务子系统,市县按照各自需求定制相关数据信息,实现地震数据信息的展现和业务应用。基于行业网与互联网物理隔离的网络环境,本系统采用区域中心核心数据库和市县数据库的分布式结构,通过系统中心端控制数据分发,通过市县子系统实现数据订阅,市县就可实时和定时按需下载数据存入本地数据库,同时开发和部署市县客户端,解决结果展现和基本应用的需求。针对市县地震监测预报工作和展现的需求,目前提供市县服务的数据有测震、前兆及公文数据。
云南省市县地震数据共享与信息服务系统采用两级架构,由省级数据共享与信息服务平台和市县级数据共享与信息服务平台两部分组成。市县地震数据共享与信息服务系统总体构架图见图1。
在区域中心,基于省级核心数据平台,构建省级数据共享与信息服务平台。在平台上创建模块化的通用数据服务,提供前兆、测震及公文数据服务和用户权限管理,建立各类数据服务的数据接口和分发机制,在行业网和互联网上,实现区域中心地震前兆、测震台网观测数据的实时和定时发布。同时,作为省局管理端,在该平台上开发用户权限管理、前兆数据订阅审核及全球大震数据管理等功能模块,通过用户管理实现对数据订阅、公文收发等应用的管理。同时,保证内、外网上的数据同步和用户权限同步。
该平台采用模块化设计,可方便加载其它功能模块,扩展其它业务应用。
图1 市县地震数据共享与信息服务系统总体构架
Fig.1 Overall structure of the seismic data sharing and information service system for the cities and counties departments2 数据平台功能实现
3 结语
“市县地震数据共享与信息服务系统”紧密结合云南市县地震部门获取地震观测数据的需求,设计了一个满足需求、性能稳定、开放性良好的市县数据服务系统构架,实现了多用户并发访问、通用数据服务、数据订阅和审核、历史数据初始化等数据平台功能。该系统2012年已在云南省完成了151个市县地震部门和地震台站的部署,包括16个州(市)、114个县、15个台站、5个观测站和1个中心。基层地震工作人员使用该系统实现了测震和前兆观测资料的实时数据定阅、本地存储,客户端上可展示省内地震目录、全球大震目录、GIS震中分布图,可显示地震实时波形和事件波形,可选取台站和测项查询前兆数据和绘制曲线,可进行公文和通知的发布和接收。2012年共有151个单位的用户使用该系统,订阅前兆数据达14 700多项。该系统的使用满足了市县地震部门对监测数据服务的需求,使用简单、操作方便,易于管理维护,特别适合技术力量较弱的县级机构。下一步应结合平台的扩展性进一步拓宽市县信息服务范围,使之成为市县地震部门获取行业信息服务的通用平台。
2.1 系统技术架构通过对全省地震系统网络环境和市县服务需求的分析,本系统采用平台独立的、基于组件的J2EE标准技术架构。系统在J2EE 平台上以基于组件的方法设计、开发、装配及部署应用程序,提供了一致化的安全模型以及灵活的事务控制,适用于全省市县用户的多层的分布式的应用模型。J2EE三层技术架构见图3。
2.2 基于Web Service的数据安全与并发访问控制Web Service是基于网络的、分布式的模块化组件,是创建可互操作的、分布式应用程序的新平台(涂雨震,2012; 向宏等,2008)。对于分布在全省各地的行业网和互联网的众多市县用户,为实现客户端和服务器之间方便、安全的通信,本系统基于Web Service平台设计,市县端通过Web Service访问省局中心数据库,既利于应用程序开发、功能扩展和后续维护,又便于大范围的分布式部署,重点保障了多用户的并发访问控制。
在省级平台创建和发布通用的数据服务,供应用程序调用。使用Web 服务策略(Web Services Policy)规范描述 Web 服务的能力、需求和一般特征。使用WSDL(Web Services Description Language)描述服务使用的抽象消息操作、具体的网络协议和端点地址。使用XML 模式(XML Schema)描述服务接收和发送基于XML的消息结构和内容(林培通,2011)。这样,就将省级平台上开发的数据服务的复杂任务进行封装并分解成相对简单的小步骤,用清晰的接口屏蔽其内部的复杂性,使得各个服务接口的开发、测试和修改都相对独立。
系统基于Web Service提供数据服务,客户端通过连接省局平台的数据服务交换数据,由Web Service通过连接池连接数据库,避免了多用户直接连接核心数据库进行操作,提高了多用户的并发性和数据库的安全性。实现了大量用户对核心数据库的并发访问控制,保障了客户端与服务器的安全通信。因Web Service基于常规的标准协议以及通用技术如XML和HTTP,所以本系统较容易部署。
2.3 数据服务和接口设计目前,省级数据共享和信息服务平台主要提供监测预报业务的数据服务(表1)。由于该平台的开放性构架设计,可以方便扩充其它数据服务,提供其它如震害防御、应急救援和科技创新的业务应用。以下主要介绍前兆数据服务、测震数据服务和公文数据服务及其接口设计。
2.3.1 前兆数据服务前兆数据分为“十五”、“九五”和模拟数据三类。在省局核心数据平台上,“十五”前兆数据存储于IBM小型机上的Oracle核心数据库,“九五”和模拟前兆数据存储于Windows平台Sqlserver数据库中,系统环境和库结构和存储格式均不同,本系统提供了统一的数据服务,封装了大量的数据抽取和转换功能,统一了数据格式,最终提供了统一的服务接口供市县用户进行调用,以方便获取前兆数据。
部分接口设计代码如下:
public interface ISignDataShareService {
/**返回十五格式的九五数据
* @param userId
* @param dataType
* @param stationId
* @param methodId
* @param pointId
* @param sampleRate
* @param dataTimeStamp
* @return
* @throws HandleException
*/
public SimpleRowSet get95DataAs15Format(String userId,String dataType,String stationId,String methodId,String pointId,String sampleRate,String dataTimeStamp,String startDate,String endDate)throws HandleException;
}
2.3.2 测震数据服务测震数据主要包括云南测震台网速报目录和国家台网4级以上大震速报目录。
部分接口设计代码如下:
public interface ISeismicDataShareSevice {
/**根据时间戳获取本省速报目录
* @param timeStampes
* @return
*/
public SimpleRowSet getLocalSBCataLog(String timeStampes,String startDate,String endDate);
}
2.3.3 公文数据服务公文数据主要包括地震部门之间的通知和公告,市县用户通过用户权限服务获取用户权限数据,再通过公文数据服务获取相应的数据。
部分接口设计代码如下:
public interface IDocShareService {
/**根据用户返回收文信息
* @param userId
* @return
*/
public SimpleRowSet getDocInfo(String userId,String dataTimeStamp);
}
2.4 前兆数据订阅与审核区域中心前兆数据涵盖了云南省有前兆观测以来的模拟、“九五”、“十五”观测系统产出的全部数据,数据量已达近200 GB,为保证全省市县用户的正常使用,本系统制定了按需获取的前兆数据服务原则,在技术上以前兆数据订阅与审核的方式,实现有控制地分发数据。这样,避免了用户因随意点击下载大量的前兆数据,对本地子系统、网络和省局服务器造成的巨大压力。
前兆数据订阅与审核即用户根据需要订阅所需前兆测项,省局管理员审核通过后,系统自动定时将订阅的数据下载至用户的本地数据库。前兆数据订阅与审核流程图见图4。
2.5 前兆历史数据初始化控制市县子系统部署完成首次使用时,将下载所订阅的前兆各测项的历史数据,而前兆观测的历史数据量很大(表2),大量数据的一次性下载对市县用户端和中心端的网络及数据库都会造成较大压力,甚至造成内存溢出而导致系统出错停止运行。通过对历史前兆数据的数据量和存储结构的分析,本系统采用分时段策略进行历史数据初始化。
分时段策略就是在系统初始化时,控制每次可从省局系统获取半年的数据下载至本地数据库,同时通过设定获取本地数据最大时间阀值,实现数据获取的中断分次续传。控制前兆历史数据初始化控制示意见图5。对于多用户并发下载,如前所述,本系统采用Web Service提供数据服务,实现并发访问控制。
- 林培通.2011.基于Web Services的信息查询服务定制系统的分析与设计[J].现代计算机(专业版),(12):77-79.
- 涂雨晨.2012.基于Web Service的数据共享设计[J].科技广场,(05):36-38.
- 向宏,刘志,胡海.2008.基于Web service的系统交互设计与实现[J].重庆工程学报(自然科学),22(11):110-114.