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è)計

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

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

0 引言

隨著天基信息技術(shù)的迅猛發(fā)展,天基網(wǎng)絡(luò)復雜度呈快速增長趨勢,迫切需要提升天基網(wǎng)絡(luò)監(jiān)視能力,能夠?qū)Τ笠?guī)模網(wǎng)絡(luò)節(jié)點和信息要素的全狀態(tài)綜合監(jiān)視,為用戶快速做出干預決策提供信息支持。天基網(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è)計方案,具有一定的學習參考意義。

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)的維護性和安全性,同時具備兼容多種通信協(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)、拓撲關(guān)系等信息可視化展示。天基網(wǎng)絡(luò)監(jiān)視服務(wù)與數(shù)據(jù)中心服務(wù)器采用發(fā)布/訂閱的MQTT(遙測遠程)協(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ā)布/訂閱模式對消息進行傳輸,本節(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剩余長度指可變頭部和有效信息的總長度,最大能夠擴展到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,重新連接清除標志置為1;訂閱主題為“SATNET”;可根據(jù)不同的Topic主題,設(shè)置差異化的服務(wù)質(zhì)量[3]。

最多一次:消息可能丟失或重復;

至少一次:確保消息可達,但消息可能會重復;

僅一次:消息到達一次,消息重復或丟失導致不正確的結(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)答消息

當函數(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ù)傳輸格式,可以在多種語言之間進行數(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)秀教師,專科學歷,研究方向:小學語文教育。

說明:屬性名必須有引號(單引號,或者雙引號)引起來。屬性值如果是字符串,則必須使用引號引起來。屬性值的類型可以是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è)計

考慮本地和遠端服務(wù)一體化設(shè)計,需對監(jiān)視服務(wù)與應(yīng)用之間進行統(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)用進程,把它作為整個監(jiān)視服務(wù)的一個任務(wù)。界面設(shè)計原則是基于圖標方式顯示網(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)定性和可擴展性等特點,有利于加裝推廣應(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è)計的守護之道?
《豐收的喜悅展示設(shè)計》
流行色(2020年1期)2020-04-28 11:16:38
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
瞞天過海——仿生設(shè)計萌到家
招行30年:從“滿意服務(wù)”到“感動服務(wù)”
商周刊(2017年9期)2017-08-22 02:57:56
設(shè)計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
主站蜘蛛池模板: 四虎成人免费毛片| 日韩精品亚洲一区中文字幕| 视频一区亚洲| 亚洲国产精品国自产拍A| 久久6免费视频| 国产97视频在线观看| 久久精品一品道久久精品| 国产手机在线观看| 国产国语一级毛片| 亚洲视频四区| 中文字幕亚洲精品2页| 亚洲国产91人成在线| www精品久久| 国产欧美日本在线观看| 毛片网站观看| 国产成人亚洲毛片| 91精品免费久久久| 老司机久久99久久精品播放| 成人va亚洲va欧美天堂| 中文字幕日韩视频欧美一区| 国产精品任我爽爆在线播放6080| 久久熟女AV| 色妺妺在线视频喷水| 国产成+人+综合+亚洲欧美| 亚洲性一区| 亚洲精品无码抽插日韩| 国产精品人人做人人爽人人添| 国产99精品久久| 亚洲一区二区三区麻豆| 中文字幕人成乱码熟女免费| 欧美精品影院| 伊人91在线| 色播五月婷婷| 欧美一级大片在线观看| 精品一区二区三区无码视频无码| 九九九久久国产精品| 一区二区理伦视频| 久久久久人妻一区精品| 亚洲一区二区三区国产精华液| 天天综合网亚洲网站| 国产色婷婷视频在线观看| 国产一级在线播放| a毛片在线免费观看| 精品福利视频网| 在线五月婷婷| 久久国语对白| 亚洲一级毛片在线播放| 久久国语对白| 国产国产人成免费视频77777| 亚洲精品国产自在现线最新| 中文无码精品A∨在线观看不卡| 欧美区在线播放| 免费在线不卡视频| 久久久久夜色精品波多野结衣| 欧美精品另类| 999国内精品久久免费视频| 九色91在线视频| 久久99蜜桃精品久久久久小说| 亚洲成a人片| 亚洲 日韩 激情 无码 中出| 国产精品第一区在线观看| 成人午夜视频网站| 日韩亚洲综合在线| 国产99视频精品免费观看9e| 精品一区二区三区水蜜桃| 99久久精品国产综合婷婷| 日韩免费毛片| 国模沟沟一区二区三区| 国内熟女少妇一线天| 国产精品视频观看裸模| 国产av色站网站| 中文字幕1区2区| 无码精品福利一区二区三区| 超清人妻系列无码专区| 午夜性刺激在线观看免费| 夜夜高潮夜夜爽国产伦精品| 99热这里只有精品5| 久久 午夜福利 张柏芝| 亚洲日本www| 99久久精品免费看国产电影| 人妖无码第一页| 日本五区在线不卡精品|