测震台网业务交换平台
2016-05-11刘军黄文辉
刘军,黄文辉
(广东省地震局,广州510070)
测震台网业务交换平台
刘军,黄文辉
(广东省地震局,广州510070)
刘 军,黄文辉.测震台网业务交换平台[J].华南地震,2016,36(1):36-43.[LIU Jun,HUANG Wenhui.Seismic Network Business Exchange Platform[J].South china journal of seismology,2016,36(1):36-43.]
目前各级地震台网采用各自的交换协议及交换平台,尚未有统一的交换平台,这对业务系统及各级之间的信息交换极为不便。测震台网业务交换平台在各级台网间制定各类测震业务信息交换协议,为台站仪器参数基础数据、测震统一编目数据、地震预警、地震速报、地震烈度速报、台站仪器状态等信息提供了一个统一的信息交换、存储及监控平台。
交换协议;消息服务器;监控平台
0 引言
中国数字地震观测网络项目建设完成后,我国数字测震台网由149个国家测震台、2个小孔径台阵、685个区域测震台和33个火山测震台组成,台站总数近1 000个,实现了地震观测的数字化、网络化。其数据汇集、处理、服务等功能由国家测震台网中心、国家测震数据备份中心和32个省级测震台网中心协同完成,各级台网中心之间实现了实时波形数据流的交换共享。但由于各级、各业务系统间采用各自的交换协议及交换平台,尚未有统一的交换平台,这对业务系统及各级之间的信息交换极为不便,对后端的数据处理及数据深加工软件的研发、处理、应用带来较大的影响。
测震业务交换平台旨在为解决以上问题提供一个技术交换平台,其总体思路是在各级台网间建立测震业务交换平台,制定规划化的各类测震业务信息交换协议,为台站仪器参数基础数据、测震统一编目数据、地震预警、地震速报、地震烈度速报、台站仪器状态等信息提供一个统一的信息交换、存储及监控平台。
1 介绍
1.1 项目背景
该任务专题来源于地震行业科研专项项目“地震台网动态监控与产品在线加工技术研究”中的课题“动态组网监控管理核心软件平台”,承担单位为河北省地震局,专题负责人高景春。本文作者参与了此项目,主要负责“测震台网业务交换平台”系统的技术实现,包括实现信息监听,接收,存储,显示等。
1.2 功能需求
对各类数据信息定义统一的数据交换格式,使各类信息能够在各级台网,各种平台,各种应用中畅通无阻的交换。交换的方式统一为用消息服务器AMQ来完成。需要定义的消息有:仪器状态消息,预警消息,烈度消息,参数同步消息,地震速报消息和统一编目消息。
每种信息交换时都能有一个集成显示的界面,使用户知道自己发送了什么类型的信息,接收了什么类型的信息,以及信息的概要内容。能够实时显示,统计显示和按不同的方式分类显示,比如按信息类型显示,按台网名称分类显示。
测震台网业务交换平台主要分为:消息接收存储模块和显示模块(如图1所示)。其中消息接收存储模块的功能是:与AMQ服务器建立连接,监听各类消息,一旦监听到其中的一种消息就将其解析,校验并存储到数据库中;信息显示模块的功能是:与业务交换平台本地数据库建立连接,将各类信息显示在网页上,显示统计信息,目录信息,以饼状图和柱状图的形式分别显示。
图1 测震业务平台架构Fig 1 The architecture of seismic network business exchange platform
1.3 平台运行环境
本系统服务器要求运行在服务器上,其硬件配置为:内存8G以上,双CPU:2GHz。软件环境为:
操作系统:SLES(SUSE Linux Enterprise Server)10以上版本;
数据库:MySql 5;
其它:Sun JDK 6,Apache ActiveMQ 5.4。
2 信息交换协议
信息交换协议采用XML[1]作为数据交换格式。XML (Extensible Markup Language)可扩展的标识语言,它是一种元标注语言,即定义了用于定义其他特定领域有关语义的、结构化的标记语言,这些标记语言将文档分成许多部件并对这些部件加以标识。它提供了一种描述结构数据的格式,简化了网络中数据交换和表示,使得代码、数据和表示分离。它有以下优点:
(1)兼容现有协议。
(2)统一的管理数据存取格式。
(3)不同应用系统间数据的共享和交互。
(4)底层传输的数据更具可读性。
以仪器状态信息和统一编目信息为例:图2是仪器状态SOH信息交换格式。根节点StatusData(状态数据)下可以包含多个Status(状态节点),每个状态节点代表一个台站,其中包含有台网代码,台站代码,供电电压,台站温度,台站零极点等信息;图3是统一编目Bulletin信息交换格式。其格式稍微复杂一些,根节点catalogs下可包含多个catalog节点,每个catalog节点下包含一个mag节点和多个phase节点,由此组成了完整的编目信息。
图2 仪器状态SOH信息交换格式Fig.2 Information exchange format of instrument status SOH
图3 统一编目Bulletin信息交换格式Fig.3 Information exchange format of unified catalog Bulletin
预警消息,烈度消息,参数同步消息,地震速报消息等新息交换格式与图2和图3所示类似,在此不一一做详细介绍。通过制定以上这些数据交换格式,可以实现各个平级台网之间,上下级台网之间的统一数据交换。
3 系统设计
3.1 信息存储及关键技术
为了将测震业务交换平台接收到的各类消息统一处理,方便显示或者查询,测震业务交换平台专门定义了一个数据库叫做seisamqdata,用来保存各类消息。其中包含三张表(表1、2、3),分别为NetDic台网字典表,TypeDic类型字典表和Message消息实体表。NetDic字典用于存储台网代码,它和Message是一对多的映射关系;TypeDic字典用于存储消息类型目前包括SOH、IS、EW、SP、EQIM、Bulletin这六种类型,它和Message也是一对多的映射关系(如图4所示);Message表则存储消息主题名称及消息内容等信息。定义这个数据库的主要目的是为了方便web访问时调用。
目前使用的数据库是hsqldb,它是一个纯java写的微型数据库,用户也可以根据实际需求修改为别的数据库比如orcale或mysql。
表1 seisamqdata数据库中的NetDic表Table 1 NetDic table in seisamqdata database
表2 seisamqdata数据库中的TypeDic表Table 2 TypeDic table in seisamqdata database
表3 seisamqdata数据库中的Message表Table 3 Message table in seisamqdata database
图4 seisamqdata数据库表之间的关系Fig.4 Relationship between tables in seisamqdata database
3.2 信息流及关键技术
如图5和图6所示,测震台网业务交换平台通过连接到AMQ[2]消息服务器,监听AMQ消息服务器的各个主题,队列,实现了仪器状态SOH消息,EW预警消息,IS烈度消息,SP参数同步消息,EQIM消息,Bulletin统一编目消息接收,解析,校验与存储,他把接收到的消息分类存储到自己定义的数据库中,方便各种信息的灵活显示;并且能够按消息类型显示amq消息,也能够按台网分别显示amq消息,给出各类别amq消息的统计图表和每一条消息的概要信息。
按照上述模块划分方法,可将程序的业务流程归纳为以下几个主要步骤:
(1)定制好要监听的主题,队列;
(2)测震业务交换平台建立与amq服务器的连接;
(3)当接收到一个消息时先判断消息的类型;
(4)将消息内容保存在hsqldb数据库中;
(5)存储的同时对数据库中的消息进行统计和分析,将统计结果保存成json格式的文件。
(6)页面访问时,从数据库中读取数据显示;
当系统连接到amq服务器后,就开始监听消息了。当收到一个消息时,首先判断是不是测震行业amq消息,如果不是则不处理,继续监听,如果是所要监听的消息,然后再判断具体的类型,将其解析成相应的java对象,最后把它存数到数据库中。在解析消息时有两种类型textMessage和byteMessage。参数同步消息SP,统一编目消息Bulletin是textMessage;仪器状态消息SOH,烈度消息IS,预警消息EW,EQIM消息是byteMessage,要分别判断,才能正确的解析出来(图7)。
图5 消息接收框架结构图Fig 5 Frame structure figure of message receiving
图6 消息显示框架结构图Fig 6 Frame structure figure of message showing
整个信息流处理流程中有两个技术关键点:
第一个技术关键点是接收到的xml内容的解析,经过对比各种解析技术,我们选择了JAXB。JAXB(Java Architecture for XML Binding)是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到XML实例文档。JAXB提供了快速而简便的方法将XML模式绑定到Java表示,从而使得Java开发者在Java应用程序中能方便地结合XML数据和处理函数。
第二个技术关键点是测震台网业务交换平台与amq服务器的连接实现。我们使用Spring的JMS完成。Spring的JMS[3]抽象框架简化了JMS API的使用,并与JMS提供者(比如IBM的WebSphere MQ 5.3)平滑地集成。org.springframework.jms.core包提供了在Spring中使用JMS的核心功能。它的模板类处理资源的创建和释放,可以简化JMS的使用。在需要更复杂应用的情况下,类把处理任务的核心委托给用户实现的回调接口。JMS类提供了方便的方法,用来发送消息、同步地使用消息以及向用户公开JMS会话和消息的制作者。
图7 消息处理流程Fig.7 Flow chart of message process
3.3 信息显示及关键技术
页面显示使用spring的mvc框架[3],同时还利用了Hightchart,webamq。Highchart是一个用纯JavaScript编写的一个图表库,能够很简单便捷的在web网站或是web应用程序添加有交互性的图表。本系统使用Highchart用于统计图形显示,包括了柱状图和饼状图;ActiveMQ支持Ajax,这是应用在实时web应用中的一种异步的Javascript和Xml机制。通过这个技术来创建高度实时的web实时应用,测震台网业务交换平台可以实时显示,动态刷新主页,将最新收到的消息显示出来。不需要用户手动点击刷新。
当用户请求测震台网业务交换平台的页面时,会首先通过MessageLoadingController页面逻辑处理类判断请求哪个页面,然后通过jpa类从数据库中读取相应的信息,返回给页面,页面数据的来源由两部分。统计图(饼状图,柱状图)的数据通过载入json文件获得,目录信息通过读取数据库过得,两者结合形成一个页面。
4 信息显示页面介绍
4.1 测震台网业务交换平台主页
图8为测震台网业务交换平台的主页面,页面分统计图表和目录两部分,统计图表为接收到的各类消息数目的柱状图,目录部分为各种类型消息的相关信息,包括消息类型,发送台网,接收时间,消息内容概要。
4.2 主题信息页面
图9为主题信息页面,主要显示通过本级amq服务器发送或接收的所有相关主题。每当有新的主题,页面也能够及时显示出来。并且能够看出各个主题发送的数目。
4.3 连接状态信息页面
图10为连接状态信息页面,主要显示所有连接到本级amq服务器的ip地址,机器名等信息。通过此页面用户可以知道有哪些台网连接到本级业务交换平台。
图8 测震台网业务交换平台主页Fig 8 Home page of seismic network business exchange platform
图9 主题信息页面Fig 9 Topic information page
图10 连接状态信息页面Fig 10 Connection status information page
4.4 各类消息统计饼状图页面
图11为各类消息统计饼状图页面,主要显示接收到的所有amq消息的统计信息,统计各类消息占总消息的百分比,并以饼状图的形式显示出来,非常直观。
4.5 各类消息统计柱状图页面
图12为各类消息统计柱状图页面,主要显示接收到的所有amq消息的统计信息,统计接收到的各类消息的数目,并以柱图的形式显示出来。
图11 各类消息统计饼状图页面Fig.11 Pie chart page of various message statistics
图12 各类消息统计柱状图页面Fig 12 Histogram page of various message statistics
5 结语
通过测震台网业务交换平台,各级台网、各业务系统之间就有了一个统一的交换协议及交换平台。因其将各个主要测震台网的业务信息集成在了一起,所以对业务系统及各级之间的信息交换和管理都提供了极大的方便,统一的数据交换格式对数据深加工及新软件的研发都会产生积极的效果。
[ 1]Erik T.Ray.Learning Xml [M].California: O'Reilly Media,Inc,2003.
[ 2]Bruce Snyder,Rob Davies.ActiveMQ in action [M].Stamford:Manning Publications,2011.
[3]毕庆红.Spring in Action(第二版)中文版[M].北京:人民邮电出版社,2008.
Seismic Network Business Exchange Platform
LIU Jun,HUANG Wenhui
(Earthquake Administraion of Guangdong Province,Guangzhou 510070,China)
At present, seismic networks at different levels use respective exchange protocols and exchange platforms.They do not have a unified exchange platform.It is extremely inconvenient for business system and information exchange between all levels.Seismic Network Business Exchange Platform has developed all kinds of seismic business information exchange protocols,which includes station instrument parameter message, seismic unified catalog data message, earthquake warning message, earthquake quick report message, earthquake intensity message, station instrument status message.It provides a unified information exchange,storage and monitoring platform.
Exchange protocols;Message server;Monitoring platform
P315.780.1
A
1001-8662(2016)01-0036-08
10.13512/j.hndz.2016.01.006
2015-03-16
地震台网动态监控与产品在线加工技术研究(行业专项编号:201008002)
刘 军(1982-),男,工程师,主要从事地震监测研究.
E-mail:duanmu.lj@qq.com.