<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 設計應用 > 動(dòng)環(huán)監控系統中B接口的實(shí)現

動(dòng)環(huán)監控系統中B接口的實(shí)現

作者:陳圓 粟欣 時(shí)間:2017-07-27 來(lái)源:電子產(chǎn)品世界 收藏
編者按:基站動(dòng)力環(huán)境(動(dòng)環(huán))監控系統中的B接口協(xié)議,規范了監控中心與現場(chǎng)監控單元互聯(lián)的數據傳輸方式。文章在研究B接口報文協(xié)議的基礎上,設計了一種使用 gSOAP工具的Web Service框架。在Web Service框架下,文章給出了用于基站動(dòng)環(huán)監控系統中B接口報文協(xié)議的編程實(shí)現過(guò)程和測試方法。測試結果表明,使用gSOAP工具能夠簡(jiǎn)化B接口報文協(xié)議實(shí)現的方式,符合監控中心與現場(chǎng)監控單元通信規范。

作者 陳圓1 粟欣2 1.重慶郵電大學(xué) 通信與信息工程學(xué)院(重慶 400065)2.清華大學(xué) 無(wú)線(xiàn)與移動(dòng)通信技術(shù)研究中心(北京 100084)

本文引用地址:http://dyxdggzs.com/article/201707/362275.htm

陳圓(1991-),男,碩士,研究方向:無(wú)線(xiàn)專(zhuān)網(wǎng);粟欣,男,研究員,研究方向:移動(dòng)通信、寬帶無(wú)線(xiàn)接入。

摘要:基站動(dòng)力環(huán)境(動(dòng)環(huán))監控系統中的協(xié)議,規范了監控中心與現場(chǎng)監控單元互聯(lián)的數據傳輸方式。文章在研究報文協(xié)議的基礎上,設計了一種使用 工具的框架。在框架下,文章給出了用于基站報文協(xié)議的編程實(shí)現過(guò)程和測試方法。測試結果表明,使用工具能夠簡(jiǎn)化B接口報文協(xié)議實(shí)現的方式,符合監控中心與現場(chǎng)監控單元通信規范。

引言

  目前基站的架構分為三層:接入層、傳輸層和業(yè)務(wù)層[1-4]。接入層包含現場(chǎng)監控單元(Field Supervision Unit, FSU)和監控對象(Supervision Object, SO),SO指的是被監控的電源、空調等設備及環(huán)境量等。傳輸層包含傳輸節點(diǎn)設備和傳輸網(wǎng)絡(luò )設備等。業(yè)務(wù)層包含集中監控中心(Supervision Center, SC)。

  為規范基站的建設標準,《中國鐵塔動(dòng)環(huán)監控系統統一互聯(lián)B接口技術(shù)規范》明確了動(dòng)環(huán)監控系統互聯(lián)B接口互聯(lián)規范、B接口定義和報文協(xié)議[5]。FSU主要的功能是與基站監控現場(chǎng)的對象連接,監控設備的運行狀態(tài)、控制設備的運行,采集現場(chǎng)的環(huán)境參數。采集到數據之后,將數據傳送到SC。當出現監控異常時(shí),FSU產(chǎn)生告警事件并上報到SC,SC處理告警后反饋控制命令至FSU,FSU通過(guò)控制命令控制智能設備。圖1表示了SC與FSU之間的B接口報文協(xié)議定義報文類(lèi)型和數據流方向。

  本文介紹了B接口報文協(xié)議的內容,包括報文原則、WSDL定義、基本報文格式的定義;然后在研究B接口報文協(xié)議的基礎上,引出一種實(shí)現B接口報文協(xié)議的開(kāi)源工具,描述了它的原理和使用方法;接著(zhù)設計了一種基于 gSOAP開(kāi)源工具的框架[6-7];最后在提出的框架下,本文給出了用于基站動(dòng)環(huán)監控系統中B接口報文協(xié)議的編程實(shí)現過(guò)程和測試方法。測試結果表明,使用gSOAP工具能夠簡(jiǎn)化B接口報文協(xié)議實(shí)現的方式,符合監控中心與現場(chǎng)監控單元通信規范。

1 B接口報文協(xié)議

  B接口報文協(xié)議定義了報文的原則,即SC與FSU之間的接口是基于Web Service技術(shù)的,消息協(xié)議采用擴展標記語(yǔ)言(eXtensible Markup Language, XML)格式。Web Service是為支持通過(guò)網(wǎng)絡(luò )的可互操作的機器到機器交互的軟件系統,可以使用基于HTTP的簡(jiǎn)單對象接入協(xié)議 (Simple Object Access Protocol, SOAP)進(jìn)行描述[6]。另外,B接口報文協(xié)議中提供了SC和FSU的網(wǎng)絡(luò )服務(wù)描述語(yǔ)言(Web Services Description Language, WSDL)文件:SCService.wsdl和FSUService.wsdl。這兩個(gè)文件主要是用來(lái)描述SC和FSU的Web服務(wù)交互的消息格式、數據類(lèi)型、操作、協(xié)議綁定和服務(wù)地址。

  B接口是基于Web Service技術(shù)的,所以采用XML格式,B接口基本的報文格式定義如表1所示?;镜膱笪母袷焦灿袃煞N類(lèi)型,分別是請求報文和響應報文。每種類(lèi)型的報文都包含1個(gè)一級節點(diǎn)和2個(gè)二級節點(diǎn),例如請求報文,一級節點(diǎn)是Request,二級節點(diǎn)PK_Type包含請求報文的類(lèi)型,二級節點(diǎn)Info包含請求報文的詳細內容。同樣,響應報文的一級節點(diǎn)是Response,二級節點(diǎn)PK_Type包含響應報文的類(lèi)型,二級節點(diǎn)Info包含響應報文的詳細內容。

2 接口報文協(xié)議實(shí)現

2.1 gSOAP

  目前Web Service主要通過(guò)基于C/C++和JAVA兩種編程語(yǔ)言來(lái)實(shí)現,使用提供的工具包來(lái)定制和發(fā)布Web Service。利用gSOAP自動(dòng)編碼工具實(shí)現Web Service應用程序接口,可以簡(jiǎn)化實(shí)現客戶(hù)端和服務(wù)器端的編碼工作。gSOAP是以HTTP協(xié)議為基礎的通信協(xié)議,以XML文件形式請求遠程服務(wù),再以XML文件的形式返回執行結果。Web Service中的任何一項服務(wù)都必須實(shí)現一系列遵守SOAP協(xié)議的遠程過(guò)程調用函數,以公開(kāi)Web上的服務(wù)供遠程端調用,這是完全自動(dòng)完成的。gSOAP服務(wù)函數接口定義是用一個(gè)標準C/C++頭文件說(shuō)明的,服務(wù)也可以用WSDL文檔定義。WSDL文檔與gSOAP中的WSDL輸入被預處理以生成一個(gè)頭文件,這個(gè)頭文件包括服務(wù)函數的簽名和其他額外的數據類(lèi)型聲明。頭文件由gSOAP編譯器編譯后,生成遠程調用服務(wù)的框架和數據類(lèi)型序列化代碼,這些代碼編譯后能鏈接到服務(wù)應用程序,在數據分組網(wǎng)上作為Web Service。

  gSOAP工具箱提供兩個(gè)重要的工具:wsdl2h和soapcpp2。gSOAP的工作流程如圖2所示,詳細地說(shuō)明了客戶(hù)端和服務(wù)端代碼生成過(guò)程的兩個(gè)步驟:WSDL文件作為wsdl2h的輸入,產(chǎn)生接口文件;將接口文件與導入的協(xié)議聲明和自定義序列化程序一起輸入到soapcpp2工具。soapcpp2的默認選項是輸出soapClient.cpp和soapServer.cpp,基于這兩個(gè)文件分別編寫(xiě)客戶(hù)端和服務(wù)器的代碼。

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

  B接口協(xié)議規范中說(shuō)明了SC和FSU接入雙方的要求。當SC輪詢(xún)FSU獲取數據:溫濕度、電壓、電流、電量、頻率、開(kāi)關(guān)狀態(tài)等時(shí),FSU為服務(wù)端,SC為客戶(hù)端。當FSU主動(dòng)上報設備事件數據:告警、狀態(tài)切換等時(shí),FSU為客戶(hù)端,SC為服務(wù)端。因此,SC和FSU都需要提供Web Service的客戶(hù)端和服務(wù)端功能。如圖3所示,本文提出一種基于Web Service的B接口程序框架。SC端的fsuSvcClient與FSU端的fsuSvcServer互聯(lián),完成SC輪詢(xún)及FSU獲取數據的功能,定義為FSUService。FSU端的scSvcClient與SC端的scSvcServer互聯(lián),完成FSU主動(dòng)上報設備事件數據的功能,定義為SCService。fsuSvcClient和 fsuSvcServer作為一個(gè)FSUService的客戶(hù)端和服務(wù)端,scSvcClient與scSvcServer作為一個(gè)SCService的客戶(hù)端和服務(wù)端。這兩個(gè)Web Service是相互獨立運行的。

2.3 B接口報文協(xié)議實(shí)現

  下面將使用gSOAP工具包來(lái)實(shí)現基站動(dòng)環(huán)監控系統中的B接口報文協(xié)議。B接口報文協(xié)議中提供了SC和FSU的WSDL文件:SCService.wsdl和FSUService.wsdl。下面以實(shí)現SC端和FSU端的SCService為例,FSUService同理。首先,在Linux終端上通過(guò)使用gSOAP開(kāi)發(fā)包中wsdl2h工具編譯SCService.wsdl文件,其命令行為:

  wsdl2h -o SCService.h SCService.wsdl

  這樣就是生成構建Web服務(wù)客戶(hù)端和服務(wù)端所需的接口文件SCService.h。

  接著(zhù)使用soapcpp2生成C++文件形式的SOAP框架,具體命令行為:

  soapcpp2 SCService.h

  命令運行完成后會(huì )得到soapServer.cpp和soapClient.cpp。soapServer.cpp中主要是soap_serve_ns1_invoke()函數的定義,soapClient.cpp中則是soap_call_ns1_invoke()函數的定義。這兩個(gè)函數形成了一對遠程調用的方法,即在客戶(hù)端中調用了soap_call_ns1_invoke()函數,把數據發(fā)送至服務(wù)端。那么服務(wù)端中則會(huì )執行soap_serve_ns1_invoke()函數,接收由客戶(hù)端發(fā)送過(guò)來(lái)的數據,完成數據處理后,把結果返回給soap_serve_ns1_invoke()函數返回值中。這樣客戶(hù)端和服務(wù)端就完成了一次請求/響應的通信過(guò)程。需要指出的是,SCService.wsdl文件中描述了客戶(hù)端和服務(wù)端ns1_invoke函數。

  接下來(lái)就是在客戶(hù)端中待發(fā)送XML數據生成和服務(wù)端接收到XML數據后的解析處理和返回給客戶(hù)端的響應XML數據生成。XML數據的生成和解析使用的是TinyXML2庫來(lái)實(shí)現的。XML數據的生成與解析不作為B接口報文協(xié)議的實(shí)現展開(kāi)描述。

3 測試與分析

  以SCService中的用戶(hù)注冊登陸過(guò)程來(lái)說(shuō)明一下B接口報文協(xié)議的測試方法。如圖4所示,在Linux環(huán)境下,使用左側的終端代表客戶(hù)端,右側的終端代表服務(wù)端。首先在服務(wù)端中運行scSvcServer服務(wù),8080為端口參數,然后在客戶(hù)端中運行scSvcClient,101為用戶(hù)注冊登陸類(lèi)型參數??蛻?hù)端把準備好的LOGIN數據以XML文件的形式發(fā)送至服務(wù)端,例如終端顯示[LOGIN]FSU->SC。服務(wù)端處理LOGIN數據,顯示設備注冊成功后,生成LOGIN_ACK XML文件數據返回給客戶(hù)端,例如終端顯示的[LOGIN_ACK]SC->FSU。

  從終端顯示的請求報文和響應報文的內容可以看出,客戶(hù)端與服務(wù)端交互的XML數據是符合B接口基本的報文格式定義的。每種類(lèi)型的報文都包含1個(gè)一級節點(diǎn)和2個(gè)二級節點(diǎn),如果是請求報文,則一級節點(diǎn)是Request,二級節點(diǎn)PK_Type包含請求報文的類(lèi)型,二級節點(diǎn)Info包含請求報文的詳細內容。同樣,響應報文的一級節點(diǎn)是Response,二級節點(diǎn)PK_Type包含響應報文的類(lèi)型,二級節點(diǎn)Info包含響應報文的詳細內容。

4 結論

  本文設計的一種基于gSOAP開(kāi)源工具的Web Service框架,用于基站動(dòng)環(huán)監控系統中B接口報文協(xié)議的編程實(shí)現,能夠減少編程實(shí)現的編碼工作量。測試結果表明,使用gSOAP工具能夠簡(jiǎn)化B接口報文協(xié)議實(shí)現的方式,符合監控中心與現場(chǎng)監控單元通信規范。但是,B接口協(xié)議中還包含了數據庫協(xié)議等規范說(shuō)明,需要在目前的設計上完善B接口的功能。

  參考文獻:

  [1]崔恒源,黎福海,姚雪芬.移動(dòng)通信基站動(dòng)力環(huán)境監控系統設計及實(shí)現[J].計算機測量與控制,2009,17(10): 1955-1957.

  [2]高翠群.動(dòng)力環(huán)境監控系統的消息傳輸協(xié)議設計研究[J].軟件工程師, 2010(7):53-54.

  [3]何世健.電信機房遠程監控系統的設計與軟件實(shí)現[D].西南交通大學(xué),2013.

  [4]黃凱漩.基于B/S模式遠程監控系統的研究與實(shí)現[D].南京大學(xué),2011.

  [5]C TOWER.中國鐵塔動(dòng)環(huán)監控系統統一互聯(lián)B接口技術(shù)規范(試行)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.

  本文來(lái)源于《電子產(chǎn)品世界》2017年第8期第49頁(yè),歡迎您寫(xiě)論文時(shí)引用,并注明出處。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>