首页 > 范文大全 > 正文

测震仪器健康状态数据交换平台的设计与实现

开篇:润墨网以专业的文秘视角,为您筛选了一篇测震仪器健康状态数据交换平台的设计与实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:介绍了测震仪器健康状态数据交换软件平台设计实现。在软件开发过程中,主要使用了TCP/IP Socket编程、并发程序设计和JMS消息机制等关键技术,实现了与多种地震数据采集器的并发式网络通信以及健康状态数据的接收和交换。开源的消息中间件ActiveMQ作为统一交换平台,为仪器健康状态的交换共享提供了统一的数据接口,便于实现系统与新业务的无缝集成,提高了系统的弹性和可扩展性。利用本系统的框架模式开发的测震台站远程监视系统在河北测震台网得到了成功的应用,其功能和性能均达到了设计预期效果。

关键词:测震仪器;健康状态;消息中间件;数据交换

中图分类号:P315622文献标识码:A文章编号:1000-0666(2013)03-0379-05

0引言

地震计和地震数据采集器是测震台网技术系统的关键设备,它们的运行状态直接决定着台网的监测质量。在运行过程中,受到外部环境(供电、GPS等)和仪器自身(元器件的物理性质、系统软件等)等多种因素的影响,地震计和地震数据采集器可能出现一些异常情况,例如,地震计发生零位偏移,数据采集器出现时间错误等。这些异常如果得不到及时处置,轻则影响观测数据的质量,重则导致数据丧失使用价值。目前主流的数据采集器均提供了健康状态信息查询服务,用户可以通过专用客户端软件查询数采的电压、温度、钟差、地震计机械零位等状态参数。现有的研究成果并未充分利用数采的健康状态服务(陈吉锋等,2012)。针对这种现实需求,我们为测震台网设计、开发了一套测震仪器健康状态数据交换软件平台。针对不同类型数据采集器输出健康状态信息方式的差异,分门别类地设计开发了客户端程序,实现了与多种数采的网络数据通信功能。在开发过程中,引入开源的消息中间件ActiveMQ作为统一交换平台(Snyder,2011),为仪器健康状态的交换共享提供了统一的数据接口,便于实现系统与新业务的无缝集成,增强了系统的弹性和可扩展性。整套方案具有性能优异、易于管理和扩展的特点,具有良好的推广应用前景。

1需求分析111健康状态的定义测震仪器的健康状态(State Of Health,简称SOH),是关于仪器运行状态的信息,由数据采集器输出的一系列物理量及其取值来描述。目前,在各区域测震台网应用比较普遍的仪器包括:港震机电的EDAS24系列数据采集器和BBVS系列地震计,Guralp的CMG-DM24数据采集器和CMG-3ESPC地震计,Kinemtrics的Q330系列数据采集器和STS系列地震计等。这些仪器厂商对SOH信息的定义、编码方式和传输协议均有所不同。本着求同存异的原则,我们初步拟定了11个比较有共性的SOH参数,分别是:数据采集器的供电电压、输出电压、电瓶电压、机箱温度、时间误差、频率误差、内存总空间、内存可用空间,地震计A的垂直向零位、北南向零位、东西向零位。

12功能和性能需求

系统由3个松散耦合的功能模块构成:① SOH接收与模块,② ActiveMQ消息服务器,③ SOH订阅与应用模块。其中,模块 ① 的功能是:与多部数据采集器建立并发连接,定时接收SOH数据,并通过ActiveMQ的消息队列进行。模块 ② 的功能是:作为统一交换平台,管理SOH消息队列,是系统实现分布式应用的关键环节。模块 ③ 的功能是:订阅SOH消息,实现自定义的业务应用。

系统应满足测震台网对应用软件的可靠性、可扩展性、可移植性和安全性等方面的要求。

1地震研究136卷第3期董一兵等:测震仪器健康状态数据交换平台的设计与实现13应用环境

系统运行的网络环境如图1所示。模块 ① 部署在SOH应用服务器上,模块 ② 部署在ActiveMQ服务器上,模块 ③ 部署在SOH订阅客户端上。系统运行约束见表1。图1系统网络环境图

Fig1System network environment表1系统运行约束表

Tab1Restriction table of system running environment

模块序号1软件环境1硬件环境11Windows/Linux

JRE 161双核或多核CPU,4GB以上

内存,千兆网卡21Windows/Linux

ActiveMQ 5601双核或多核CPU,4GB以上

内存,千兆网卡31Windows1双核或多核CPU,4GB以上内存2系统设计与实现121关键技术介绍在程序设计过程中,主要用到了以下技术:

(1)Java TCP/IP Socket编程技术(Fall,Stevens,2012;Calvert,Donahoo,2008)。目前,不同仪器厂家对数据采集器网络通信协议的实现方式不同,例如,EDAS24系列数据采集器支持TCP通信协议;CMG-DM24可利用数据通信单元扩展实现UDP 通信协议;而Q330HRS的Baler单元则提供了用HTTP协议传输健康状态信息的服务。针对这种差异性,我们的解决方案是为每一种仪器编写相应的客户端类,实现通信连接的维护、报文分组的分类解析等功能。

(2)Java并发编程技术(Goetz et al,2012)。每个地震区域台网中心都下属若干个地震台站,要同时维护与多个台站的通信连接,有两种实现方式——多进程方式和多线程方式。在操作系统中,进程是一个重量级的对象,每一个进程都独占一部分系统资源,线程是轻量级对象,同一进程内的多个线程间共享该进程所保有的资源(Silberschats et al,2009)。基于易于实现和优化性能的考虑,我们采用多线程方式来实现与多台站的并发通信连接。

(3)Java消息服务(Java Messaging Service,简称 JMS)。JMS是Java平台上有关面向消息中间件(Message Oriented Middleware)的技术规范(Monson et al,2009)。ActiveMQ是一个完全支持JMS11的JMS Provider实现。在系统中,我们利用JMS与ActiveMQ通信,实现SOH消息的交换。

22总体设计

系统的框架结构如图2所示。其中,SOH接收与模块由各类数采的客户端程序和SOH程序所构成。图2系统框架结构图

Fig2Fram structure of the system系统完整的业务流程可归纳为以下几个主要步骤:

① 系统初始化;

② 数采客户端程序与数采进行通信,对接收到的报文分组进行解析,将解出的SOH数据交给SOH程序;

③ SOH程序将SOH数据格式化为SOH消息,并交给AMQ消息服务器;

④ SOH订阅与显示模块从AMQ消息服务器订阅SOH消息,并进行处理;

⑤ 继续执行步骤2。

23SOH接收与模块的设计与实现

在开发SOH接收与模块时,需先行分析仪器的通信协议和数据格式,掌握每一种数采输出SOH数据的内容和方式,以此为基础来设计业务逻辑。模块将按照配置文件的内容进行初始化,配置文件采用XML格式,详细说明见表2。表2配置文件说明表

Tab2Description of configuration file

结点名称1属性名称1含义Net1Netcode1台网代码1Stanumber1监视台站的数量1Host1数采的ipv4地址1Port1数采的端口号1Stacode1台站代码1Location1台站位置Station1Digitizer_model1数采类型1Seismograph_model1地震计类型1Username1数采的用户名1Password1用户的密码1Interval1状态数据的传输间隔1Username1ActiveMQ的用户名1Password1ActiveMQ用户的密码MessageProducer1ServerUrl1ActiveMQ的URL1Type1消息目的地的类型1Name1消息队列的名称1Persistent1消息的持久性

231数采客户端的设计与实现

数采客户端的主要功能是:与数采进行通信、接收SOH数据。下面分别介绍EDAS24系列数据采集器、CMG-DM24以及Q330HRS客户端程序的设计和实现技术。

(1)EDAS24系列数据采集器(EDAS-24GN和EDAS-24IP)利用TCP协议传输SOH数据。程序在处理与数采的通信连接时,采用的是长连接的方式,即在成功建立起通信连接之后长期保持该连接。之所以采用这种方式,主要基于以下考虑:TCP连接的建立和释放过程需要占用一定的系统资源(谢希仁,2008),频繁的连接和释放操作将给数采带来较大的负担,对数采的稳定运行造成一定影响。经过实际测试,长连接方式比短连接方式更加安全、可靠,有利于保障数采的正常稳定运行。在获取SOH数据时,采用请求/响应方式,即客户端程序向数采发送查询请求,数采输出响应。EDAS24系列数采客户端的业务流程如下:

① 程序初始化;

② 测试数采网络地址的可达性;

③ 与数采建立控制连接,获得数据端口;

④ 与数采建立数据连接;

⑤ 通过数据连接发送查询帧,获得响应帧,从中解析出SOH数据;

⑥ 将SOH数据交给SOH程序;

⑦ 继续执行步骤②。

(2)CMG-DM24数据采集器的TCP/IP通信功能需要借助DCM来实现。DCM通常利用UDP协议传输数据。与TCP不同,UDP是一种无连接的服务,与EDAS24系列数采所采用的通信方式相比,Guralp的通信方式使得数采不必花费额外的开销来维护通信连接、保证通信质量,在通信链路质量良好的情况下,这有利于数采的稳定运行,同时也简化了客户端程序的业务逻辑。它的SOH数据由状态流和地震计零位流分别传输,其中,用ID“00”来标识状态流,数据采用ASCII格式编码;用ID“M8”、“M9”和“MA”分别标识地震计的垂直向、北南向和东西向零位流,数据采用GCF格式编码。与EDAS24系列不同的是,CMG-DM24不支持通过请求/响应方式获取SOH数据的方式,故在程序设计时只能采用数采主动传输、客户端程序被动接收的方式。CMG-DM24客户端的业务流程如下:

① 程序初始化;

② 测试DCM网络地址的可达性;

③ 将DCM通信端口与本地端口相绑定;

④ 接收DCM的UDP数据报,从中解析出SOH数据;

⑤ 将SOH数据交给SOH程序;

⑥ 继续执行步骤②。

(3)Q330HRS由数据采集器(Q330S)和通信单元(Baler)两部分集成。其中,Baler提供了通过HTTP协议定时传输SOH数据的服务。HTTP协议定义了Web服务器和Web浏览器之间通信的规则(Gourley et al,2002),我们可以利用这个服务来设计客户端程序。Q330HRS客户端的业务流程如下:

① 程序初始化;

② 测试Baler网络地址的可达性;

③ 与Baler建立HTTP Socket连接,解析出SOH数据;

④ 将SOH数据交给SOH程序;

⑤ 继续执行步骤②。

232SOH程序的设计与实现

SOH程序的主要功能是:按照JMS规范,将接收到的SOH数据格式化为SOH消息,并将其传递给ActiveMQ消息服务器。程序在处理与ActiveMQ的通信连接时,采用的是长连接的方式。SOH消息包括消息属性和消息体。其中,消息属性的说明见表3,消息体采用XML格式,详细说明见表4。表3SOH消息属性说明表

Tab3Description of SOH message properties

属性名称1意义1数据类型NetCode1台网代码1StringStaCode1台站代码1StringBodyLen1消息体长度1Integer

表4SOH消息体说明表

Tab4Description of SOH message body

属性名称1含义1说明Net1台网代码Station1台站代码Digitizer_model1数采类型Seismograph_model1地震计类型Time1日期和时间1格式:“yyyy-MM-dd HH:mm:ss”Supply_vol1供电电压1单位:伏特Output_vol1输出电压1单位:伏特Battery_vol1电瓶电压1单位:伏特Temperature1机箱温度1单位:摄氏度Clock_err1时间误差1单位:毫秒Fre_err1频率误差1单位:ppmTotal_space1存储器总空间1单位:KBFree_space1存储器可用空间1单位:KBZeroPos_A_Z1地震计A垂直向电压1单位:伏特ZeroPos_A_N1地震计A北南向电压1单位:伏特ZeroPos_A_E1地震计A东西向电压1单位:伏特3系统测试与应用

为了对系统方案进行全面的测试,我们开发了测震台站仪器状态监视程序,将其作为系统的SOH订阅和应用模块。在河北测震台网搭建了测试环境(表5),接入了30个运行中的测震台站。经过若干个月的试运行和观察总结,我们认为系统整体表现稳定,功能和性能均达到了预期的设计要求,证明了系统方案的可行性。图3是该监视程序运行时的截图。表5系统测试环境说明表

总结与展望

介绍了测震仪器健康状态交换平台的设计与实现。本系统的创新主要表现在:第一,通过仪器适配器程序的研制和多线程技术,实现了与多种地震数据采集器的并发式网络通信以及SOH数据的统一接收;第二,通过引进ActiveMQ消息中间件,实现了SOH数据的统一交换,为消息订阅程序的开发提供了统一数据的接口,增强了系统的弹性和可扩展性;第三,经测试证明,本系统作为一套完整的解决方案,具有性能优异、易于管理和易于扩展的特点,在测震台网的应用将有利于保障台网的运行质量。

目前系统的功能和性能均达到了设计预期效果,但是我们认为系统仍有很大的上升空间。例如,可以考虑为SOH接收和模块增加人机交互界面,用来监控和调整线程的运行状态,这有利于提高程序的灵活性和健壮性;另外,本文所介绍的SOH监视程序只是系统应用的一种模式,本系统更重要的意义在于:在实践过程中,利用AMQ提供的统一数据接口,不断探索SOH数据应用的新思路、新方法,推动现有成果的应用和转化。软件工程学认为:软件生命周期的结束意味着一个新的生命周期的开始(Sommerville,2010)。因此,不断增强系统的功能、优化系统的性能,是我们下一个阶段的工作任务。

参考文献:

陈吉锋,陈军辉,应昶,等2012无人职守地震台站远程监控系统的设计与实现[J].地震研究,35(3):429-433

谢希仁2008计算机网络(第五版)[M].北京:电子工业出版社

Calvert K L,Donahoo M J2008TCP/IP Sockets in Java,Second Edition:Practical Guide for Programmers[M].California:Morgan Kaufmann

Fall K R,Stevens W R2012TCP/IP Illustrated Volume 1(Second Edition)[M].New Jersey:AddisonWesley Educational Publishers Inc

Goetz B,Peierls T,Bloch J,et al2012Java Concurrency in Practice[M].Texas:Pearson Education,Inc

Gourley D,Totty B,Sayer M,et al2002HTTP[M].California:OReilly Media,Inc

Monson H R,Richards M,Chappell D A2009Java Message Service(Second Edition)[M].California:OReilly Media,Inc

Silberschats A,Galvin P B,Gagne G2009Operation System Concepts(8th Edition)[M].New York:John Wiley & Sons Ltd

Snyder B2011ActiveMQ in Action[M].New York:Manning Publications

Sommerville I2010Software Engineering(9th Edition)[M].Texas:Pearson Education