?

一種適用于物聯網通信的報文編解碼組件設計

2017-05-30 10:48傅啟明高沈鋼
企業科技與發展 2017年5期
關鍵詞:編解碼報文物聯網

傅啟明 高沈鋼

【摘 要】隨著物聯網技術的廣泛應用,物聯網設備與服務器通信的模塊越來越多,通信報文種類也逐漸增多,導致編解碼工作量不斷增加。文章提出一種適用于物聯網通信的通用網絡報文編解碼組件設計方案,通過配置報文的識別碼和格式定義,無需針對每種報文編寫不同的編解碼代碼即可完成報文的編碼和解碼操作,提高了生產效率。

【關鍵詞】物聯網;報文;編解碼

【中圖分類號】TP391.9 【文獻標識碼】A 【文章編號】1674-0688(2017)05-0030-03

0 引言

物聯網(IoT)是物與物相連(通過定位、識別、感應和監控等技術將設備連接管理)的互聯網,物聯網通信的報文即物聯網設備與服務器通信的數據單元。在物聯網的通信模塊中,將網絡傳輸數據轉化為物聯設備的內存數據為解碼,反之則為編碼。一般的做法是針對不同的報文,編寫不同的報文編解碼。在物聯網設備報文種類不多的情況下,報文編解碼的開發工作量是可控的。但隨著物聯網技術應用的廣泛深入與拓展,報文編解碼開發的工作量會越來越大且難以維護。因此,從開發和運維中節約成本及減少工作的復雜度方面考慮,迫切需要一套通用靈活的報文編解碼設計方案。

1 總體框架

報文編解碼框架涉及2個數據對象:網絡報文數據和的內存報文對象。其中,網絡報文數據為物聯網絡中傳輸的未解析二進制數據流,內存報文數據為解析完成后的物聯設備中有明確業務意義的數據對象。編解碼框架主要有2個功能:將內存報文對象編碼為網絡報文數據、將網絡報文數據解碼為內存報文對象。

分析物聯網設備與服務器的通信報文,可以發現如下特性:報文中一般都存在不可分割的最小數據單元,這些數據單元一般都對應一個特定的業務屬性,整個報文數據都是通過這些數據單元組織起來的,同時對于每種報文都有一個區分與其他報文的特征碼。針對這些特性,可以用有序Map的數據結構來設計報文的內存對象。組件框架設計如圖1所示。

組件主要完成網絡報文數據和內存報文對象的互相轉換。組件的主體結構由報文配置和編解碼功能組成。存在的配置數據分為2類:報文特征碼和格式定義。配置數據為本組件對開發人員開放的部分,通過配置不同的數據以解析不同的報文。

在框架中,報文編解碼組件有3個主體功能模塊:報文識別、報文反序列化、報文序列化。

2 配置與模塊設計

2.1 報文配置數據設計

特征碼(MsgSignature):描述了報文區別于其他報文的特征,通過對各種報文的分析,設計如下幾種內置特征碼便于開發。例如,以固定內容結尾的特征碼(EndTokenSignature)、在固定位置存放固定內容的特征碼(FixedPosContentSignature)。

格式定義(MsgFomat):報文中的數據一般都是一塊接著一塊存放,用以描述相關的業務信息。此處的格式定義是一個一個數據單元描述的匯總。每個數據單元描述了最基本的數據定義,定義中包括了數據類型和數據的轉換邏輯。通過對大量報文的分析,我們初始化內置如下數據單元定義(見表1)。

2.2 報文識別模塊設計

報文識別(MsgIdentification)模塊通過對報文特征碼的提取來識別報文類別。接收一段報文時,首先通過調用報文識別模塊進行識別。識別模塊的流程設計如圖2所示。

2.3 反序列化模塊設計

當判斷出具體類型的報文后,即進入報文反序列化(Msg Deserialization)模塊。報文反序列化模塊將網絡二進制數據對照報文的格式定義,逐塊解析直到報文格式完全分析完,最終生成有業務意義的內存數據對象。反序列化模塊的流程設計如圖3所示。

2.4 序列化模塊設計

相較于之前的模塊,報文序列化模塊(MsgSerialization)實現更簡單。它將內存中有業務意義的數據對象轉化為二進制數據流的網絡對象。只需循環遍歷報文定義中的每個數據單元,把對應的數據轉換為二進制流即可。序列化模塊的流程如圖4所示。

3 結語

本文設計的報文編解碼組件主要面向開發人員。開發人員通過分析報文特征和格式,然后用配置數據來描述報文,以完成報文的編解碼操作。從開發的角度來看,由于代碼只有通用的編解碼部分,并未針對某種特定的報文,因此開發的工作量減少了;從運維角度來看,所有的報文特征碼和格式統一配置,使得配置數據與代碼剝離,因此更便于分析和維護了。

參 考 文 獻

[1]王保云.物聯網技術研究綜述[J].電子測量與儀器學報,2009,23(12):1-7.

[2]羅捷,潘江峰,耿修堂.某協議報文編解碼模塊的設計與實現[J].火炮發射與控制學報,2013(3):37-40.

[3]劉相,劉澤平.可變報文格式編解碼模塊設計與實現[J].電訊技術,

2016,56(11):1260-1266.

[責任編輯:鐘聲賢]

猜你喜歡
編解碼報文物聯網
基于J1939 協議多包報文的時序研究及應用
CTCS-2級報文數據管理需求分析和實現
1553B總線控制器編解碼設計
淺析反駁類報文要點
大型民機試飛遙測視頻編解碼方法研究
基于H.265編解碼的高清視頻傳輸系統研究
基于高職院校物聯網技術應用人才培養的思考分析
中國或成“物聯網”領軍者
ATS與列車通信報文分析
主流視頻編解碼軟件的硬件性能分析與設計
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合