APP下载

测震仪器数据访问中间件的设计与应用

2015-11-15孙贵成董一兵锐张环曦刘

地震地磁观测与研究 2015年6期
关键词:测震适配器中间件

孙贵成董一兵,杨 锐张环曦刘 丽

1)中国石家庄050021河北省地震局

2)中国合肥230026中国科学技术大学地球与空间科学学院

测震仪器数据访问中间件的设计与应用

孙贵成1)董一兵1),2)杨 锐1)张环曦1)刘 丽1)

1)中国石家庄050021河北省地震局

2)中国合肥230026中国科学技术大学地球与空间科学学院

分析几种地震数据采集器网络协议和数据格式,设计一种仪器数据访问中间件,为实现上位机应用程序与数采网络通信、多种数据流接收和发布,提供方法和工具。利用中间件开发测震仪器数据自动同步软件,实现地震台站参数和仪器健康状态的自动同步,在河北测震台网的成功应用证明了中间件的实用性。

测震仪器;数据流;中间件;数据同步;应用软件

0 引言

地震数据采集器是测震台网技术系统关键设备,从地震计采集三分向地震动信号,经过滤波、采样、量化、编码等一系列处理得到数字信号,通过以太网接口以数据流形式实时输出(中国地震局监测预报司,2003)。与关系型数据集不同,以太网数据流具有连续生产、实时到达、潜在无限的特点(Gehrke J,2003)。基于此,在上位机应用系统开发中,可以在系统底层设计一个数据接入单元,执行数据接收和发布操作,为系统上层提供数据访问接口。这种设计实现了数据接入和数据应用进程的解耦和异步,有利于提高实时系统的健壮性和吞吐量,在测震台网软件系统已有应用,例如,JOPENS系统专门设计流服务模块,用于地震波形数据的接收和分发(吴永权等,2013);董一兵等(2013,2015)在测震台站健康状态数据交换系统中设计健康状态的接收与发布模块。已有应用系统均面向某一种数据流,在实际工作中,由于数采最大并发连接数限制(如:港震EDAS24-GN的最大并发连接数是4),为每一种数据设计独立应用程序是对资源的浪费,理想的解决方案是,引进综合数据访问服务,为各种数据提供统一的访问接口。为此,系统分析几种数采的网络协议和数据格式,开发一套测震仪器数据访问中间件,为实现上位机与数采的网络通信、多种数据流的统一接收和发布,提供方法和工具。

1 需求分析

中间件是一种独立的系统软件或服务程序,位于客户机/服务器的操作系统,管理计算资源和网络通信,分布式应用软件通过它在不同技术之间共享资源(周园春等,2002)。测震仪器数据访问中间件位于地震数据采集器和上位机系统之间,数采可视为服务器端,上位机系统是客户端,中间件发挥的作用类似于代理服务器——为上位机系统屏蔽仪器和数据流差异,向上提供统一数据访问接口。应用环境具有以下特点:①异构性:仪器的通信协议和数据格式因厂家而异,产生数据源的异构性;②并发性:中间件通常同时面向多个服务器端(数采)和多个客户端(上位机);③实时性:数据流的实时性和易逝性特征对系统的快速响应和处理能力提出较高要求;④异步性:服务器端(数采)和客户端(上位机)通常在异步模式工作,通过中间件进行协同。

测震仪器数据访问中间件的主要功能如下:①提供主流地震数据采集器的适配器程序,能够与数采建立数据通信连接,支持的仪器类型包括港震机电技术有限公司EDAS-24GN、EDAS-24IP和Guralp的CMG-DM24;②提供各种数据流适配器程序,解析上述仪器各类型数据;③提供统一的数据访问协议,包括数据请求、数据应答的语义、语法和时序。

根据功能和应用特点,对测震仪器数据访问中间件提出以下基本性能要求:①通用性:支持多种仪器和数据流类型,并提供统一的访问接口;②并发性:应用并发设计模式,支持与多服务器端(数采)、多客户端(上位机)的并发操作;③健壮性:模块间松散耦合,提供可靠的容错机制;④兼容性:程序应与测震台网目前的软硬件系统及仪器良好兼容,并行不悖;⑤易用性:接口应方便用户调用。

2 中间件设计与实现

2.1 总体设计

为了实现并发,引进生产者/消费者模式。生产者/消费者是一种经典的并发设计模式,将生产与消费过程分离,用缓冲区实现二者数据共享,实现生产者与消费者的解耦,简化工作负载的管理(Goetz B et al,2012)。使用面向对象方法进行顶层设计,将中间件功能分解为仪器适配器、数据流缓冲区、数据流适配器、数据缓冲区、数据分发器等5个核心功能模块(图1)。

图1 中间件业务流程Fig.1 Business fow of the middleware

仪器适配器是数据流对象的生产者,负责与仪器建立通信连接,发送查询指令,获得数据流,将数据流打包成数据流对象,写入数据流缓冲区;数据流适配器既是数据流对象消费者又是数据对象生产者,负责从数据流缓冲区读取数据流对象,解析、创建数据对象,并写入数据缓冲区;数据分发器是数据对象的消费者,负责从数据缓冲区读取数据对象并向用户进行发布,提供两种发布接口供用户选择:①直接进行持久化;②通过消息代理服务器,以JMS消息的方式对外发布。由于缓冲区的解耦合作用,仪器适配器、数据流适配器和数据分发器可以并行工作,保证系统的吞吐量,同时,模块内的错误被抑制在内部而不会扩散至全局,增强系统健壮性。由于系统同时存在多个生产者和消费者,缓冲区必须选择线程安全的数据结构,如:阻塞队列,这种结构在JDK 1.6中已有实现,可以直接使用。中间件的业务流程见图1。

2.2 仪器适配器

仪器适配器的主要功能是,与数采通信、生成数据流对象。与数采通信需了解数采的网络协议与数据格式。TCP/IP是数采普遍采用的协议集合,由一系列分层组织的协议组成,自上而下依次为应用层、传输层、网络层和接口层(Fall K R et al,2012)。应用层与传输层之间有一个抽象层——套接字层(Socket),为应用层提供使用传输层服务的接口。根据传输层协议的不同,套接字可分为流套接字(适用于TCP)和数据报套接字(适用于UDP)。TCP和UDP均为传输层协议,其中TCP是一种面向连接的、可靠协议,UDP则是一种无连接的、不可靠协议。TCP适用于可靠性要求高的应用,UDP则适用于可靠性要求低、传输经济的应用。

EDAS-24系列数采(包括EDAS-24IP、EDAS-24GN)的传输层采用TCP协议,使用控制端口和数据端口进行通信,其中控制端口用于建立连接时实现用户验证和服务申请,采用字符串方式通信,数据端口用于数据服务和系统配置,采用二进制方式通信。与EDAS-24建立通信连接的过程见图2(a)。CMG-DM24的传输层采用UDP协议。尽管UDP可靠性不高,但在主流测震仪器中依然应用广泛,主要原因是:①网络环境好。测震台网普遍使用专用通信链路(如光纤),数据通信质量高,即使无流量控制、差错控制机制,正常情况下数据包不易丢失;②数据容量小。仪器单次输出的数据量小,如:1个实时地震波形数据包的容量通常是1 s的三分向数据;③通信效率高。在较好的网络环境和较少数据量前提下,由于缺少建立和维护连接的过程,UDP开销小、速度快。可见,UDP与测震台网业务系统需求比较相匹配。与DM24建立通信连接过程见图2(b)。

图2 建立通信连接流程Fig.2 Process of building sockets with digitizer

读入数据流后,仪器适配器并不进行解析,而是将其封装进一个数据流对象,同时增加一个“仪器类型”属性作为该数据流的标识,放入数据流缓冲区。“仪器类型”的取值范围是:EDAS-24IP、EDAS-24GN和CMG-DM24,是数据流适配器选择解析方法的依据。为了实现多台并发,采用一仪器一连接一线程的方式,即为每一个仪器创建一个Socket,每一个Socket在一个单独线程中执行。

2.3 数据流适配器

数据流本质是经过编码的字节序列,每个序列由一个标识符和若干数据字段组成,具体内容和含义由仪器厂家定义。北京港震机电技术有限公司定义了4种类型的帧,包括查询帧、应答帧、设置帧、广播帧,每种帧由同步码、帧标志、帧长度、数据项、检查和等字段组成,其中帧标志字段用于指示该帧类型(北京港震机电技术有限公司,2006)。CMG-DM24数采使用流标识字段区别不同类型的数据,例如:健康状态数据流00(流标识),三分向地震波形数据流Z2、N2、E2,摆锤零位数据流M8、M9、MA等(Guralp Systems,2009)。DM24的UDP数据报通常由以下字段组成:GCF块、版本号、字节序、序列号、字符串长度和数据源。GCF是Guralp定义的数据压缩格式,每个GCF块由一个固定长度的首部和一组数据记录组成,首部中的流ID字段用于标识报文类型。

数据流适配器从流缓冲区读取数据流对象,根据该对象的仪器类型属性值选择对应方法,对数据流进行解析,将解析后的数据组装成数据对象,放入数据缓冲区。每一种数据流类型对应一种数据对象。以EDAS-24IP实时波形数据帧为例,介绍数据对象的创建过程:①测试仪器类型属性值,结果是EDAS-24IP;②调用EDAS-24IP数据帧的通用解析方法,测试帧标志属性值,结果是0x55dd;③调用EDAS-24IP实时波形数据帧的专用解析方法,得到其属性值,包括:帧同步码、地震计号、帧标志、帧长度、保留、时间码、标定标志、采样率标志、压缩标志、分向、压缩数据段、检查和等;④创建数据对象,增加仪器类型。流标识属性作为该对象的标识,在本例中是EDAS-24IP.0x55dd,该属性将作为数据分发器区别不同数据类型的依据。

3 中间件应用

利用中间件,设计开发一套测震仪器数据自动同步软件。该软件采用B/S架构,分为服务器端和客户端。服务器端包括数据访问中间件、数据库和Web服务器等组件,数据访问中间件定时更新数据库数据,与台站数据保持同步,Web服务器使用Tomcat。客户端使用JSP技术开发,提供基于Web浏览器的交互式图形用户界面。系统框架结构见图3。

图3 测震仪器数据自动同步软件框架结构Fig.3 Framework of seismic-station data auto sync system

同步数据包括台站基础数据和健康状态数据,见表1。同步周期可由用户配置,缺省设置是3 600 s。这些参数可以通过仪器厂家提供的客户端软件查询得到(朱小毅等,2006)。

表1 同步数据Table 1 Synchronizing data

用户通过浏览器进行操作,以管理员身份登录打开客户端主页,见图4(原图为彩图)。页面右侧是测震台站专题地图,三角形表示台站,绿色底纹标识“状态正常”,即实时状态参数值均在正常阈值范围内。页面左侧是台站信息列表,可以浏览台站基础数据,包括台网代码、台站代码、行标代码、中文台名、英文台名、台站类型、通道数量等字段,列表下方提供操作列表的控件。页面右上角显示当前操作员为“管理员”。

图4 客户端主页Fig.4 Main page of the client

单击列表上台站记录或者地图上台站图标可进入台站状态页,见图5。页面上部是实时状态值列表,下部是模拟仪表盘。该页面采用自动刷新技术,列表和仪表数据与仪器自动同步更新,无需用户手动刷新页面,便于用户对单台监控。

图5 台站状态页Fig.5 Page of station status

4 结束语

测震仪器数据访问中间件,为实现上位机应用程序与数采的网络通信、多种数据流的接收和发布提供统一接口。利用中间件开发测震仪器数据自动同步软件,实现台站参数和仪器健康状态的自动同步。测震仪器数据自动同步软件在河北测震台网进行应用,功能和性能均达到设计预期,对提高地震台站运维效率、保障台站数据质量发挥了积极作用,具有良好的推广应用前景。

北京港震机电技术有限公司.地震数据采集器EDAS-24IP用户指南[R].2006.

董一兵,高景春,刘胜国,等.测震仪器健康状态数据交换平台的设计与实现[J].地震研究,2013,35(3):429-433.

董一兵,何永波,刘强,等.一种测震仪器数据流接入框架的设计与应用[J].地震研究,2015,38(2):326-331.

吴永权,黄文辉.数据处理系统软件JOPENS的架构设计与实现[J].地震地磁观测与研究,2013,31(6):59-63.

周园春,李淼,张建,等.中间件技术综述[J].计算机工程与应用,2002,38(15):80-82.

中国地震局监测预报司.数字地震观测技术[M].北京:地震出版社,2003.

朱小毅,张妍,娄文宇,等.地震计远程监控功能接口的实现[J].地震地磁观测与研究,2006,27(4):77-82.

Fall K R,Stevens W R.TCP/IP Illustrated Volume 1 (Second Edition) [M].New Jersey: Addison-Wesley Educational Publishers Inc,2012.

Gehrke J.Data Stream Processing[J].IEEE Computer of Technical Comm on Data Engg,2003,26(1):111-122.

Guralp Systems Inc.CMG-DM24 Operator’s Guide[R].2009.

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

Design and application of the data-access-middleware for seismometric instruments

Sun Guicheng1),Dong Yibing1),2),Yang Rui1),Zhang Huanxi1)and Liu Li1)
1) Earthquake Administration of Hebei Province,Shijiazhuang 050021,China
2) School of Earth and Space Science of USTC,Hefei 230026,China

In this paper,the TCP/IP stack embedded in digitizers is frstly analyzed,and then the design and implementation of a data-access-middleware is introduced,which provides methods and tools to build communication with the seismometric instruments,and implements tasks such as data receiving,decoding and publishing of all kinds of streams.At last,the middleware is applied in a distributed application software system which is designed to synchronize data with the instruments automatically.It was proved a successful example for the application of the system in the seismometric network of Hebei Province.

seismometric instrument,data stream,middleware,data synchronizing,application software

10.3969/j.issn.1003-3246.2015.05.022

孙贵成(1975—),男,本科,工程师,主要从事地震监测工作。E-mail:sgch0818@163.com

董一兵(1983—),男,博士生,工程师,主要从事区域测震台网工作。E-mail:yuehun06@163.com

地震科技星火计划项目(XH14006Y)、测震台网青年骨干培养专项(20140303)、河北省科技支撑计划项目(13275407D)和河北省科技支撑计划项目(15275402D)联合资助

本文收到日期:2015-05-12

猜你喜欢

测震适配器中间件
基于信号精度分析的高速铁路沿线测震井地震动力反应研究
钟祥台测震观测质量影响浅析
RFID中间件技术及其应用研究
测震波形数据存储和管理系统设计与实现
基于3D打印的轻型导弹适配器
电源适配器怎么选
辽宁省地震速报质量评比软件
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
美国麦格普公司新型M—LOK相机三脚架适配器
中间件在高速公路领域的应用