999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于MQTT協(xié)議的天基網(wǎng)絡(luò)監(jiān)視服務(wù)設(shè)計與實現(xiàn)

2018-06-13 06:52:04劉曉鋒崔宗星米喬馬隆鄭婷
現(xiàn)代計算機 2018年14期
關(guān)鍵詞:服務(wù)設(shè)計

劉曉鋒,崔宗星,米喬,馬隆,鄭婷

(中國電子科技集團(tuán)公司第20研究所,西安 710068)

0 引言

隨著天基信息技術(shù)的迅猛發(fā)展,天基網(wǎng)絡(luò)復(fù)雜度呈快速增長趨勢,迫切需要提升天基網(wǎng)絡(luò)監(jiān)視能力,能夠?qū)Τ笠?guī)模網(wǎng)絡(luò)節(jié)點和信息要素的全狀態(tài)綜合監(jiān)視,為用戶快速做出干預(yù)決策提供信息支持。天基網(wǎng)絡(luò)監(jiān)視是集信息獲取、存儲與處理等功能為一體,在其內(nèi)部有大容量網(wǎng)絡(luò)信息實時交互,因此需設(shè)計高效、輕量化的傳輸協(xié)議。MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸)是一種輕量級基于代理的發(fā)布/訂閱的消息傳輸協(xié)議,其設(shè)計思想是開放、簡單、易于實現(xiàn)、適合在計算和處理能力受限的環(huán)境下工作[1]。本文在研究分析MQTT協(xié)議的基礎(chǔ)上,結(jié)合天基網(wǎng)絡(luò)監(jiān)視系統(tǒng)的部署需求,完成天基網(wǎng)絡(luò)監(jiān)視服務(wù)系統(tǒng)的設(shè)計與工程研制,總結(jié)并提出完整的設(shè)計方案,具有一定的學(xué)習(xí)參考意義。

1 天基網(wǎng)絡(luò)監(jiān)視系統(tǒng)結(jié)構(gòu)

天基網(wǎng)絡(luò)監(jiān)視系統(tǒng)結(jié)構(gòu)示意圖如圖1所示。系統(tǒng)采用C/S技術(shù)架構(gòu),實現(xiàn)應(yīng)用與數(shù)據(jù)服務(wù)的分類,提高系統(tǒng)的維護(hù)性和安全性,同時具備兼容多種通信協(xié)議的能力。全網(wǎng)數(shù)據(jù)服務(wù)中心服務(wù)器是搜集、匯總、分析存儲整個天基網(wǎng)絡(luò)數(shù)據(jù)的中樞,可以保證數(shù)據(jù)的安全可靠運行。天基網(wǎng)絡(luò)監(jiān)視服務(wù)設(shè)備實現(xiàn)數(shù)據(jù)的訂閱/發(fā)布、協(xié)議轉(zhuǎn)換、數(shù)據(jù)處理及服務(wù)質(zhì)量控制等功能,能夠為天基網(wǎng)絡(luò)監(jiān)視席位提供應(yīng)用支撐服務(wù)。天基網(wǎng)絡(luò)監(jiān)視席位或應(yīng)用實現(xiàn)網(wǎng)絡(luò)狀態(tài)、鏈路狀態(tài)、拓?fù)潢P(guān)系等信息可視化展示。天基網(wǎng)絡(luò)監(jiān)視服務(wù)與數(shù)據(jù)中心服務(wù)器采用發(fā)布/訂閱的MQTT(遙測遠(yuǎn)程)協(xié)議。利用UDP協(xié)議實現(xiàn)天基網(wǎng)絡(luò)監(jiān)視席位與服務(wù)之間通信。天基網(wǎng)絡(luò)服務(wù)與本地監(jiān)視應(yīng)用構(gòu)成服務(wù)監(jiān)視系統(tǒng),具備本地化監(jiān)視的能力,兩者信息交互依靠線程任務(wù)通信的方式。本文主要介紹天基網(wǎng)絡(luò)監(jiān)視服務(wù)系統(tǒng)設(shè)計與實現(xiàn)。

圖1 天基網(wǎng)絡(luò)監(jiān)視系統(tǒng)結(jié)構(gòu)框圖

2 MQTT傳輸協(xié)議機制

MQTT是基于TCP上的應(yīng)用層協(xié)議,采用發(fā)布/訂閱模式對消息進(jìn)行傳輸,本節(jié)將從MQTT消息格式、消息訂閱及具體實現(xiàn)三方面展開設(shè)計。

2.1 MQTT消息格式

MQTT消息體主要由消息報頭和消息內(nèi)容兩部分組成,固定報頭是每個命令消息都必須包含的部分,其中長度為兩個字節(jié),固定格式如表1所述。其中Mes?sage Type為報文類型,共計14種。QoS Level服務(wù)質(zhì)量等級分為三個等級,等級越高,需要的系統(tǒng)開銷越多,通信效率受影響越大[2]。Remaining Length剩余長度指可變頭部和有效信息的總長度,最大能夠擴(kuò)展到4字節(jié),可表示長度為256MB。

表1 MQTT消息固定頭格式

2.2 MQTT消息訂閱機制

在本文所設(shè)計的天基網(wǎng)絡(luò)監(jiān)視系統(tǒng)中,天基網(wǎng)絡(luò)監(jiān)視服務(wù)從全網(wǎng)數(shù)據(jù)中心服務(wù)器訂閱消息的主要過程包括以下三個步驟:

(1)天基網(wǎng)絡(luò)監(jiān)視服務(wù)與數(shù)據(jù)中心建立TCP連接,并向數(shù)據(jù)中心發(fā)送CONNECT消息;

(2)天基網(wǎng)絡(luò)監(jiān)視服務(wù)接收到數(shù)據(jù)中心發(fā)送的CONNACK消息后,發(fā)送訂閱有關(guān)Topic主題;

(3)天基網(wǎng)絡(luò)監(jiān)視服務(wù)接收到數(shù)據(jù)中心向其發(fā)送SUBACK消息,表明訂閱成功。

結(jié)合MQTT消息訂閱主要步驟中,總結(jié)出MQTT消息訂閱處理流程,見圖2所示。

2.3 實現(xiàn)步驟

以天基網(wǎng)絡(luò)監(jiān)視服務(wù)MQTT消息訂閱機制設(shè)計實現(xiàn)為例程,介紹基于Vxworks的具體開發(fā)過程。首先,將IBM提供的MQTT-3.1.1開源代碼封裝成lib庫,從而可以提供MQTT發(fā)布/訂閱的API接口函數(shù)。其次,創(chuàng)建接收MQTT訂閱消息的應(yīng)用線程,開發(fā)應(yīng)用功能程序,具體實現(xiàn)步驟如下:

(1)訂閱主題初始化

MQTT連接參數(shù)MQTTPacket_connectData中心跳包間隔設(shè)置為500,重新連接清除標(biāo)志置為1;訂閱主題為“SATNET”;可根據(jù)不同的Topic主題,設(shè)置差異化的服務(wù)質(zhì)量[3]。

最多一次:消息可能丟失或重復(fù);

至少一次:確保消息可達(dá),但消息可能會重復(fù);

僅一次:消息到達(dá)一次,消息重復(fù)或丟失導(dǎo)致不正確的結(jié)果。

圖2 MQTT消息訂閱流程

(2)建立連接

首先初始化網(wǎng)絡(luò)配置調(diào)用transport_open()函數(shù),然后調(diào)用接口函數(shù)MQTTSerialize_Connect()及發(fā)送函數(shù)transport_sendPackBuff()。

(3)接收連接應(yīng)答消息并發(fā)送訂閱主題

執(zhí)行MQTTPacket_read()函數(shù),查看返回值是否等于2(CONACK),若返回值為2表示建立連接成功,調(diào)用函數(shù)transport_sendPackBuff()發(fā)送訂閱主題“SAT?NET”。

(4)接收訂閱主題應(yīng)答消息

當(dāng)函數(shù) MQTTPacket_read()返回值等于 9(SUB?ACK)時,表明訂閱成功;否則表示訂閱不成功。

(5)訂閱主題消息

運行MQTT消息接收線程,若消息讀取函數(shù)MQTT?Packet_read()返回值為 3(PUBLISH)時,表明為消息類型為主題消息,接著調(diào)用MQTT訂閱消息獲取函數(shù)MQTTDeserialize_publish(),完成消息內(nèi)容的讀取。

3 數(shù)據(jù)解析

天基網(wǎng)絡(luò)監(jiān)視服務(wù)與數(shù)據(jù)中心交換的數(shù)據(jù)格式采用 JSON(JavaScript Object Notation)格式。JSON作為一種輕量級的數(shù)據(jù)傳輸格式,可以在多種語言之間進(jìn)行數(shù)據(jù)交換[4]。采用這種數(shù)據(jù)格式有利于提高封裝傳輸效率,減少通信帶寬,有利于多個監(jiān)控席位接入訪問。

3.1 Json數(shù)據(jù)格式

在Json數(shù)據(jù)格式中,一個對象用JSON數(shù)據(jù)格式表示如下:

{屬性名1:屬性值,屬性名2:屬性值2...}

作者簡介:馮榮惠,男,漢族,福建省南靖縣山城鎮(zhèn)文技校,一級教師,南靖縣優(yōu)秀教師,??茖W(xué)歷,研究方向:小學(xué)語文教育。

說明:屬性名必須有引號(單引號,或者雙引號)引起來。屬性值如果是字符串,則必須使用引號引起來。屬性值的類型可以是string,number,Boolean等類型。

例如在天基網(wǎng)絡(luò)監(jiān)視某個網(wǎng)絡(luò)狀態(tài)數(shù)據(jù)用Json格式表示如下:

{"PlatformID":1000,"SubnetID",1,"NetStatues",1,"CommMode",2,"CurTime","2018-1-1 10:10:40"}。上述數(shù)據(jù)內(nèi)容表示在2018年1月1日10點10分40秒時,編識號為1000的成員為在網(wǎng)狀態(tài)(用1表示),其所在的子網(wǎng)號為1,物理通信體制為TDMA的方式。

3.2 實現(xiàn)過程

采用JSON數(shù)據(jù)解析的第三庫完成服務(wù)器推送的數(shù)據(jù)內(nèi)容解析,即將JSON格式數(shù)據(jù)內(nèi)容轉(zhuǎn)換為結(jié)構(gòu)體。數(shù)據(jù)類型主要包括整型和字符型。主要實現(xiàn)步驟如下:

(1)JSON數(shù)據(jù)格式解析

運行函數(shù) cJSON_Parse(strData),strData為字符指針,指向MQTT訂閱的主題消息存儲區(qū),返回值為cJson類型的指針pJsonData。

(2)數(shù)據(jù)格式轉(zhuǎn)換為結(jié)構(gòu)體

依據(jù)網(wǎng)絡(luò)狀態(tài)的信息內(nèi)容定義數(shù)據(jù)結(jié)構(gòu)體NetSat?usInfo,具體內(nèi)容見表2。

表2 網(wǎng)絡(luò)狀態(tài)數(shù)據(jù)結(jié)構(gòu)體格式

調(diào)用 GetObjectItem(strData,"PlatformID")函數(shù),返回cJson數(shù)據(jù)類型的指針pJsonPlatformID,接著依據(jù)結(jié)構(gòu)體中的數(shù)據(jù)類型調(diào)用轉(zhuǎn)換函數(shù)valueint可得到Net?SatusInfo中編識號數(shù)據(jù)項值,其他數(shù)據(jù)內(nèi)容轉(zhuǎn)換方式如上所述。

4 統(tǒng)一接口設(shè)計

考慮本地和遠(yuǎn)端服務(wù)一體化設(shè)計,需對監(jiān)視服務(wù)與應(yīng)用之間進(jìn)行統(tǒng)一數(shù)據(jù)格式接口設(shè)計。具體接口協(xié)議見表3。

表3 網(wǎng)絡(luò)監(jiān)視服務(wù)與應(yīng)用之間接口

在表3中,消息內(nèi)容是指網(wǎng)絡(luò)狀態(tài)信息編碼后的字節(jié),采用大端編碼方式。

5 本地監(jiān)視應(yīng)用設(shè)計

在Qt軟件開發(fā)環(huán)境下對本地天基網(wǎng)絡(luò)監(jiān)視應(yīng)用功能開發(fā),并利用WindRiver交叉編譯環(huán)境生成可執(zhí)行程序,加載在信息處理板上。系統(tǒng)運行時調(diào)用網(wǎng)絡(luò)監(jiān)視應(yīng)用進(jìn)程,把它作為整個監(jiān)視服務(wù)的一個任務(wù)。界面設(shè)計原則是基于圖標(biāo)方式顯示網(wǎng)絡(luò)監(jiān)視信息。

本地天基網(wǎng)絡(luò)監(jiān)視應(yīng)用與服務(wù)運行在同一塊信息處理板卡上,兩者之間采用基于消息隊列的任務(wù)通信的方式。通過調(diào)用msgQReceive函數(shù)實現(xiàn)任務(wù)間數(shù)據(jù)的接收;執(zhí)行msgQSend函數(shù)能夠完成任務(wù)間消息的發(fā)送。

6 結(jié)語

本文所提出的系統(tǒng)架構(gòu)及設(shè)計方法已應(yīng)用在某型系統(tǒng)中,解決了分布式網(wǎng)絡(luò)監(jiān)視系統(tǒng)通信機制的問題,采用發(fā)布/訂閱MQTT協(xié)議、基于消息隊列的任務(wù)通信等技術(shù)手段,按照服務(wù)接口統(tǒng)一的設(shè)計原則,完成天基網(wǎng)絡(luò)監(jiān)視服務(wù)的設(shè)計,能夠為天基網(wǎng)絡(luò)監(jiān)視席位提供應(yīng)用服務(wù),滿足多維度信息監(jiān)視的需求。此外,天基網(wǎng)絡(luò)監(jiān)視服務(wù)的系統(tǒng)架構(gòu)具有穩(wěn)定性和可擴(kuò)展性等特點,有利于加裝推廣應(yīng)用。

[1]IBM.MQTelemetryTransport[2013-06-05].http://msqq.org.

[2]關(guān)慶余,李鴻彬,于波.MQTT協(xié)議在Android平臺上的研究與應(yīng)用[J].計算機系統(tǒng)應(yīng)用,2014,23(4):197-200.

[3]任亨.基于 MQTT 協(xié)議的消息推送服務(wù)器[J].計算機系統(tǒng)應(yīng)用,2014,23(3):77-82.

[4]高靜,段會川.JSON 數(shù)據(jù)傳輸效率研究[J].計算機工程與設(shè)計,2011,32(7):2267-2270.

猜你喜歡
服務(wù)設(shè)計
何為設(shè)計的守護(hù)之道?
《豐收的喜悅展示設(shè)計》
流行色(2020年1期)2020-04-28 11:16:38
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
瞞天過?!律O(shè)計萌到家
招行30年:從“滿意服務(wù)”到“感動服務(wù)”
商周刊(2017年9期)2017-08-22 02:57:56
設(shè)計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
主站蜘蛛池模板: 精品一区二区三区自慰喷水| 福利国产在线| 国产精品一区二区不卡的视频| 国产精品福利在线观看无码卡| aa级毛片毛片免费观看久| 99精品国产电影| 成人免费一级片| 久久久久亚洲av成人网人人软件| 亚洲最大福利网站| 国产老女人精品免费视频| 欧美日韩综合网| 不卡的在线视频免费观看| 99在线观看国产| 国产一级毛片网站| 久久无码高潮喷水| 久久无码av一区二区三区| 国产又大又粗又猛又爽的视频| 国产成人三级| 国产青青草视频| 91蝌蚪视频在线观看| 97精品国产高清久久久久蜜芽| 五月天福利视频| 日韩精品一区二区深田咏美| 91探花国产综合在线精品| 丰满人妻中出白浆| 亚洲日本一本dvd高清| 青青草原国产一区二区| 制服丝袜一区| 香蕉伊思人视频| 伊在人亞洲香蕉精品區| a网站在线观看| 中文字幕乱码二三区免费| yy6080理论大片一级久久| 中文字幕无码av专区久久| 久久超级碰| 青青草91视频| 久久久国产精品无码专区| 国产女人在线| 综合久久五月天| 久久男人视频| 国产成熟女人性满足视频| 综合亚洲网| 四虎国产精品永久一区| 久久国产成人精品国产成人亚洲| 99激情网| 无码一区二区三区视频在线播放| 欧美在线天堂| a毛片在线播放| 在线视频亚洲色图| 色婷婷啪啪| 欧美三級片黃色三級片黃色1| 国产网站黄| www.狠狠| 精品中文字幕一区在线| 国产成人精品优优av| 国产精品理论片| 国内老司机精品视频在线播出| 一本视频精品中文字幕| www.日韩三级| 亚欧美国产综合| 欧美在线视频a| 麻豆国产在线不卡一区二区| 老司机午夜精品网站在线观看| 日本三区视频| 亚洲综合中文字幕国产精品欧美| 欧美精品成人一区二区视频一| 成人av手机在线观看| 久久精品无码中文字幕| 国产精品福利尤物youwu| 尤物精品视频一区二区三区| 欧美特级AAAAAA视频免费观看| 成人午夜亚洲影视在线观看| 久久香蕉欧美精品| 在线中文字幕网| 日日拍夜夜操| 免费观看男人免费桶女人视频| 国产精品对白刺激| 青青国产在线| 欧美劲爆第一页| 国产18页| 国产无码精品在线| 久久青草免费91线频观看不卡|