新闻中心

EEPW首页 > 设计应用 > 动环监控系统中B接口的实现

动环监控系统中B接口的实现

作者:陈圆 粟欣时间:2017-07-27来源:电子产品世界
编者按:基站动力环境(动环)监控系统中的B接口协议,规范了监控中心与现场监控单元互联的数据传输方式。文章在研究B接口报文协议的基础上,设计了一种使用 gSOAP工具的Web Service框架。在Web Service框架下,文章给出了用于基站动环监控系统中B接口报文协议的编程实现过程和测试方法。测试结果表明,使用gSOAP工具能够简化B接口报文协议实现的方式,符合监控中心与现场监控单元通信规范。

作者 陈圆1 粟欣2 1.重庆邮电大学 通信与信息工程学院(重庆 400065)2.清华大学 无线与移动通信技术研究中心(北京 100084)

本文引用地址:http://www.eepw.com.cn/article/201707/362275.htm

陈圆(1991-),男,硕士,研究方向:无线专网;粟欣,男,研究员,研究方向:移动通信、宽带无线接入。

摘要:基站动力环境(动环)监控系统中的协议,规范了监控中心与现场监控单元互联的数据传输方式。文章在研究报文协议的基础上,设计了一种使用 工具的框架。在框架下,文章给出了用于基站报文协议的编程实现过程和测试方法。测试结果表明,使用工具能够简化B接口报文协议实现的方式,符合监控中心与现场监控单元通信规范。

引言

  目前基站的架构分为三层:接入层、传输层和业务层[1-4]。接入层包含现场监控单元(Field Supervision Unit, FSU)和监控对象(Supervision Object, SO),SO指的是被监控的电源、空调等设备及环境量等。传输层包含传输节点设备和传输网络设备等。业务层包含集中监控中心(Supervision Center, SC)。

  为规范基站的建设标准,《中国铁塔动环监控系统统一互联B接口技术规范》明确了动环监控系统互联B接口互联规范、B接口定义和报文协议[5]。FSU主要的功能是与基站监控现场的对象连接,监控设备的运行状态、控制设备的运行,采集现场的环境参数。采集到数据之后,将数据传送到SC。当出现监控异常时,FSU产生告警事件并上报到SC,SC处理告警后反馈控制命令至FSU,FSU通过控制命令控制智能设备。图1表示了SC与FSU之间的B接口报文协议定义报文类型和数据流方向。

  本文介绍了B接口报文协议的内容,包括报文原则、WSDL定义、基本报文格式的定义;然后在研究B接口报文协议的基础上,引出一种实现B接口报文协议的开源工具,描述了它的原理和使用方法;接着设计了一种基于 gSOAP开源工具的框架[6-7];最后在提出的框架下,本文给出了用于基站动环监控系统中B接口报文协议的编程实现过程和测试方法。测试结果表明,使用gSOAP工具能够简化B接口报文协议实现的方式,符合监控中心与现场监控单元通信规范。

1 B接口报文协议

  B接口报文协议定义了报文的原则,即SC与FSU之间的接口是基于Web Service技术的,消息协议采用扩展标记语言(eXtensible Markup Language, XML)格式。Web Service是为支持通过网络的可互操作的机器到机器交互的软件系统,可以使用基于HTTP的简单对象接入协议 (Simple Object Access Protocol, SOAP)进行描述[6]。另外,B接口报文协议中提供了SC和FSU的网络服务描述语言(Web Services Description Language, WSDL)文件:SCService.wsdl和FSUService.wsdl。这两个文件主要是用来描述SC和FSU的Web服务交互的消息格式、数据类型、操作、协议绑定和服务地址。

  B接口是基于Web Service技术的,所以采用XML格式,B接口基本的报文格式定义如表1所示。基本的报文格式共有两种类型,分别是请求报文和响应报文。每种类型的报文都包含1个一级节点和2个二级节点,例如请求报文,一级节点是Request,二级节点PK_Type包含请求报文的类型,二级节点Info包含请求报文的详细内容。同样,响应报文的一级节点是Response,二级节点PK_Type包含响应报文的类型,二级节点Info包含响应报文的详细内容。

2 接口报文协议实现

2.1 gSOAP

  目前Web Service主要通过基于C/C++和JAVA两种编程语言来实现,使用提供的工具包来定制和发布Web Service。利用gSOAP自动编码工具实现Web Service应用程序接口,可以简化实现客户端和服务器端的编码工作。gSOAP是以HTTP协议为基础的通信协议,以XML文件形式请求远程服务,再以XML文件的形式返回执行结果。Web Service中的任何一项服务都必须实现一系列遵守SOAP协议的远程过程调用函数,以公开Web上的服务供远程端调用,这是完全自动完成的。gSOAP服务函数接口定义是用一个标准C/C++头文件说明的,服务也可以用WSDL文档定义。WSDL文档与gSOAP中的WSDL输入被预处理以生成一个头文件,这个头文件包括服务函数的签名和其他额外的数据类型声明。头文件由gSOAP编译器编译后,生成远程调用服务的框架和数据类型序列化代码,这些代码编译后能链接到服务应用程序,在数据分组网上作为Web Service。

  gSOAP工具箱提供两个重要的工具:wsdl2h和soapcpp2。gSOAP的工作流程如图2所示,详细地说明了客户端和服务端代码生成过程的两个步骤:WSDL文件作为wsdl2h的输入,产生接口文件;将接口文件与导入的协议声明和自定义序列化程序一起输入到soapcpp2工具。soapcpp2的默认选项是输出soapClient.cpp和soapServer.cpp,基于这两个文件分别编写客户端和服务器的代码。

2.2 基于Web Service的B接口程序框架

  B接口协议规范中说明了SC和FSU接入双方的要求。当SC轮询FSU获取数据:温湿度、电压、电流、电量、频率、开关状态等时,FSU为服务端,SC为客户端。当FSU主动上报设备事件数据:告警、状态切换等时,FSU为客户端,SC为服务端。因此,SC和FSU都需要提供Web Service的客户端和服务端功能。如图3所示,本文提出一种基于Web Service的B接口程序框架。SC端的fsuSvcClient与FSU端的fsuSvcServer互联,完成SC轮询及FSU获取数据的功能,定义为FSUService。FSU端的scSvcClient与SC端的scSvcServer互联,完成FSU主动上报设备事件数据的功能,定义为SCService。fsuSvcClient和 fsuSvcServer作为一个FSUService的客户端和服务端,scSvcClient与scSvcServer作为一个SCService的客户端和服务端。这两个Web Service是相互独立运行的。

2.3 B接口报文协议实现

  下面将使用gSOAP工具包来实现基站动环监控系统中的B接口报文协议。B接口报文协议中提供了SC和FSU的WSDL文件:SCService.wsdl和FSUService.wsdl。下面以实现SC端和FSU端的SCService为例,FSUService同理。首先,在Linux终端上通过使用gSOAP开发包中wsdl2h工具编译SCService.wsdl文件,其命令行为:

  wsdl2h -o SCService.h SCService.wsdl

  这样就是生成构建Web服务客户端和服务端所需的接口文件SCService.h。

  接着使用soapcpp2生成C++文件形式的SOAP框架,具体命令行为:

  soapcpp2 SCService.h

  命令运行完成后会得到soapServer.cpp和soapClient.cpp。soapServer.cpp中主要是soap_serve_ns1_invoke()函数的定义,soapClient.cpp中则是soap_call_ns1_invoke()函数的定义。这两个函数形成了一对远程调用的方法,即在客户端中调用了soap_call_ns1_invoke()函数,把数据发送至服务端。那么服务端中则会执行soap_serve_ns1_invoke()函数,接收由客户端发送过来的数据,完成数据处理后,把结果返回给soap_serve_ns1_invoke()函数返回值中。这样客户端和服务端就完成了一次请求/响应的通信过程。需要指出的是,SCService.wsdl文件中描述了客户端和服务端ns1_invoke函数。

  接下来就是在客户端中待发送XML数据生成和服务端接收到XML数据后的解析处理和返回给客户端的响应XML数据生成。XML数据的生成和解析使用的是TinyXML2库来实现的。XML数据的生成与解析不作为B接口报文协议的实现展开描述。

3 测试与分析

  以SCService中的用户注册登陆过程来说明一下B接口报文协议的测试方法。如图4所示,在Linux环境下,使用左侧的终端代表客户端,右侧的终端代表服务端。首先在服务端中运行scSvcServer服务,8080为端口参数,然后在客户端中运行scSvcClient,101为用户注册登陆类型参数。客户端把准备好的LOGIN数据以XML文件的形式发送至服务端,例如终端显示[LOGIN]FSU->SC。服务端处理LOGIN数据,显示设备注册成功后,生成LOGIN_ACK XML文件数据返回给客户端,例如终端显示的[LOGIN_ACK]SC->FSU。

  从终端显示的请求报文和响应报文的内容可以看出,客户端与服务端交互的XML数据是符合B接口基本的报文格式定义的。每种类型的报文都包含1个一级节点和2个二级节点,如果是请求报文,则一级节点是Request,二级节点PK_Type包含请求报文的类型,二级节点Info包含请求报文的详细内容。同样,响应报文的一级节点是Response,二级节点PK_Type包含响应报文的类型,二级节点Info包含响应报文的详细内容。

4 结论

  本文设计的一种基于gSOAP开源工具的Web Service框架,用于基站动环监控系统中B接口报文协议的编程实现,能够减少编程实现的编码工作量。测试结果表明,使用gSOAP工具能够简化B接口报文协议实现的方式,符合监控中心与现场监控单元通信规范。但是,B接口协议中还包含了数据库协议等规范说明,需要在目前的设计上完善B接口的功能。

  参考文献:

  [1]崔恒源,黎福海,姚雪芬.移动通信基站动力环境监控系统设计及实现[J].计算机测量与控制,2009,17(10): 1955-1957.

  [2]高翠群.动力环境监控系统的消息传输协议设计研究[J].软件工程师, 2010(7):53-54.

  [3]何世健.电信机房远程监控系统的设计与软件实现[D].西南交通大学,2013.

  [4]黄凯漩.基于B/S模式远程监控系统的研究与实现[D].南京大学,2011.

  [5]C TOWER.中国铁塔动环监控系统统一互联B接口技术规范(试行)V1.0[S].2014.

  [6]ENGELEN R A V,GALLIVAN K A.The gSOAP Toolkit for Web Services and Peer-to-Peer Computing Networks; proceedings of the Ieee/acm International Symposium on CLUSTER Computing and the Grid, F, 2002[C].

  [7]VAN ENGELEN R, GUPTA G, PANT S.Developing Web services for C and C++[J].IEEE Internet Computing,2003,7(2):53-61.

  本文来源于《电子产品世界》2017年第8期第49页,欢迎您写论文时引用,并注明出处。



评论

技术专区

关闭