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

針對異構協議的動態解析器模型①

2017-02-20 07:40:51王永娜王鴻亮王俊霖
計算機系統應用 2017年1期
關鍵詞:模型

王永娜, 趙 奎, 王鴻亮, 王俊霖

?

針對異構協議的動態解析器模型①

王永娜1,2, 趙 奎2, 王鴻亮2, 王俊霖3

1(中國科學院大學, 北京 100049)2(中國科學院沈陽計算技術研究所, 沈陽 110168)3(大連理工大學軟件學院, 大連 116024)

介紹了異構協議報文格式和特點, 通過使用 XML 語言描述可擴展協議報文的方法, 以簡單協議解析為基礎, 將解析器功能模塊化, 從而設計此異構協議動態解析器模型. 應用此模型實現不必重新編譯, 只需進行少量代碼修改, 即可完成異構協議報文自動模型匹配, 進而完成報文數據解析. 針對兩種簡單協議進行模型應用, 結果表明使用XML語言描述協議報文的方法及可重構的解析器能夠有效地描述和解析異構協議報文, 獲得可靠的解析結果.

異構協議; 動態解析; XML; 狀態機

1 引言

設備管控系統是通過數據通信進行設備采集信息及控制反饋信息的交互, 實現信息采集處理與遠程設備管控, 需要按照相關協議格式與底層設備進行數據通信. 由于設備及通信信息種類繁多, 通信協議多樣, 存在不同類型的協議幀格式[1], 導致數據預處理的復雜度增大.

基于可擴展低耦合的設計思想, 此協議解析器模型采用具有自描述性語言XML表現協議格式與內容, 采納設計模式思想, 設計出可根據解析對象格式通過XML語言自定義協議解析規則, 實現異構協議動態匹配, 使其可在不重新編譯情況下, 通過XML配置文件和解析模塊少量代碼的修改, 實現將異構協議動態解析為標準協議. 模型獨立性強, 可擴展性好, 可解決數據通信中異構協議數據的交互問題.

2 協議解析器模型架構設計

基本協議解析是識別數據報頭部和提取數據字段以供后續數據處理的過程[2]. 協議解析器模型在此基礎上進行擴展, 按照數據的流入、處理、流出, 可分為三大主要模塊: 異構數據接入層, 譯碼層, 標準數據交互層.

異構數據接入層與數據采集端進行交互, 完成UDP異構數據報接收[3]. 譯碼層進行數據報匹配及解析處理, 詳細設計分為決策組件和適配組件, 決策組件是模型的檢測機構, 鑒別報文合法性; 適配組件將已通過檢測的報文進行模式適配, 匹配XML配置文件中定義的解析模板, 完成報文解析. 標準數據交互層負責將數據發送到管控系統后續的數據處理服務器做進一步的數據存庫與推送.

動態協議解析器模型架構設計圖如圖1所示.

圖1 動態協議解析器模型架構

3 協議解析器模型組件詳細設計

協議解析的基本流程是解析器讀取數據報首部, 驗證數據報文合法性, 通過讀取識別信息, 確定是否有解析模板可以匹配解析, 適配相應解析模板進行異構協議數據的解析, 最終將標準數據傳送給數據處理服務器做進一步數據處理與數據轉存、顯示. 功能組件詳細設計如下.

3.1 異構數據接入層

協議解析器模型要接入的基本信息單元是數據包, 將數據包接收階段定義為不同的狀態, 將接收新的數據作為外部觸發條件, 從而改變狀態, 此異構數據接入層可抽象表現為一個基于有限狀態機的網絡通信數據接收端[4]. 基于有限狀態機的狀態模型圖如下:

3.2 譯碼層決策組件

譯碼層是整個模型核心部分, 解析異構協議首先要判斷協議內容是否合法, 能否被適配組件解析, 因此決策組件協議識別至關重要. 協議解析器采用數據報邊接收邊解析的方式, 基于有限狀態機進行異構數據接入的同時, 進行協議合法性決策判斷.

狀態機的兩個主要組成部分是: 事物所處狀態、引發狀態變化的外部事件[5]. 程序實現過程中定義不同數字編號表示不同狀態, 狀態變量值的改變即可描述狀態的變化. 結合狀態圖, 示例代碼實現如下:

LONG ReciveInfo::OnCommunication(WPARAM data)

{

receivedata = (BYTE)data;

if(receive_state_machine == 0)

{

if(receivedata == 0x77) // 接收到起始標志

receive_state_machine = 1;

else

receive_state_machine = 0; // 狀態機復位

}

else if(receive_state_machine == 4)

{

if(receivedata == 0xAA) // 接收到校驗位

receive_state_machine = 5;

else

receive_state_machine = 0; // 狀態機復位

}

}

將接收數據劃分為不用階段, 通過變量值表示狀態, 接收數據幀和數據監測結果作為狀態機觸發條件, 從而改變狀態, 最終完成一個數據包的接收和校驗.

圖2 異構數據接入層狀態圖

3.3 譯碼層適配組件

動態協議解析器模型中適配組件的設計是通過分析異構協議變化特點, 設計可擴展協議格式, 采用具有自描述性及可擴展性的XML 配置文檔進行封裝, 反映通信協議的格式和內容. 經決策組件校驗的協議可被適配組件按解析模板進行動態解析. 協議的改變只需要動態修改XML描述文件同時符合XML Schema驗證文檔即可. 根據XML協議配置文件適配協議解析模板, 通過動態加載XML協議數據幀得出字段的物理含義.

解析器模型框架詳細組件設計如圖3所示.

圖3 異構協議動態解析器模型

4 動態解析器模型中XML的使用設計

4.1 報文的XML文件描述

網絡通信協議需要用協議幀描述傳輸信息, 通常采用硬編碼方式嚴格定義協議格式, 針對每個協議格式編寫固定代碼實現協議解析, 此方式不具通用性, 不便于擴展, 而基于 XML 配置文檔的解析方式使得異構協議可擴展, 在軟件解析中應用較多[6].

使用XML描述協議表現協議字段在數據幀中的位置及所占的字節數等抽象化信息, 可以定義統一的數據傳輸格式, 協議內容及形式的改變, 只修改XML文檔中元素的屬性值即可, 此文件是解析器淺層解析的模板.

4.2 XML解析模板配置文件

以上配置文件代碼描述了幀標識與解析模板號的關系, 協議解析程序對數據幀進行匹配時會識別出幀標識, 與XML配置文件進行模板匹配, 最終通過temp屬性值確定數據幀解析模板號, 完成數據解析.

4.3 XML Schema協議驗證文檔

為改善硬編碼的不可擴展性, XML協議描述文件也要摒棄嚴格定義協議格式的方式, 將數據升華為Item元素抽象間接描述, 定義一個Schema文檔規范XML配置文件架構[7]. XML Schema示例代碼如下:

4.4 XML解析庫的使用

常見XML解析器有tinyxml、Xerces、pugixml、libxml等, 通過對比不同XML解析器對編程語言及開發環境等的支持[8], 選擇Xerces-C++應用于本模型.

Xerces-C++ 主要組件是掃描程序, 本解析器模型需要進行驗證因此選擇SGXMLScanner[9]. 根據線程模型, 主線程調用Initialize(), 創建其他用于解析的線程, 最后調用Terminate(). 初始化期間創建解析器池, 可以在運行時使用這些解析器, 從而避免構造和分解解析器的開銷.

5 測試及結果分析

5.1 實驗設計

以設備管控系統為背景, 項目中數據網關需要和底層儀器進行通信采集信息, 選取以下兩種異構協議報文進行測試.

XML協議描述示例代碼如下:

將具體元素抽象為Item元素, 可承載不同協議內容, 避免了固定協議格式的弊端. 測試表明: 基于XML文件的協議描述方式可以很好地描述異構協議, 且修改與擴展方便可行.

通過使用編程接口及線程池、網絡通信等實現協議數據接收及解析推送. 測試程序解析類工廠模式類圖設計如圖5.

圖5 解析類工廠模式類圖

5.2 測試結果

測試程序采用多線程編程模擬數據采集器控制數據數量, 從而測試解析不同數量數據幀所需要的時間.

圖6 協議解析器數據接入及解析界面

上圖為協議解析器模型測試程序數據接收層接收的數據及經過譯碼層后解析出的數據演示界面. 數據幀解析時間采用軟件讀取定時計數器值, 將不同時刻讀取的值進行差值計算得出時間測試值.

結果表1所示.

表1 解析時間記錄表

從測試可以看出: 數據幀解析時間為ms級別, 且從整體看協議解析所需時間未表現出隨數據幀數量的增加同比上升, 以上數據僅表現出此實驗的測試結果, 實際應用中結合調度器線程合理分配, 進一步改進解析模塊程序或將得到更好的時間性能指標.

6 結語

該解析器模型使用XML描述協議格式與內容, 層次關系清晰, 協議發生變化或新增協議時, 只需適當修改XML協議描述文件, 或增加新的解析模塊, 即可實現對數據幀的解析, 充分體現了設計考慮的可重構性與可擴展性[10]. 此模型可靠性強, 數據轉換效率高, 能夠對數據格式和映射關系實現靈活定制, 可以應用到多種類型設備及工業控制, 實現異構數據轉換.

1 俞曉華,于鳳芹,欽道理.一種能耗數據采集協議描述及生成解析方法.計算機技術與發展,2015.

2 Gibb G. Design Principles for Packet Parsers. Stanford University Microsoft Research, 2015.

3 王智莉,卜方玲.異構感知數據的動態適配接入方法.傳感器與微系統,2015.

4 潘準洋,劉彩霞,劉樹新.基于有限狀態機的網絡協議狀態機制檢測方法.計算機應用研究,2015.

5 李瑩,賈彬.一種基于狀態機的串口通信協議的設計與實現.電子設計工程,2012.

6 齊建業,余祥,劉峻宇,李強.協議一致性測試數據包的構造與解析.西南科技大學學報,2013.

7 Thaw TZ, Khin MM. Measuring qualities of XML schema documents. Journal of Software Engineering and Applications, 2013.

8 http://lars.ruoff.free.fr/xmlcpp/.

9 http://xerces.apache.org/xerces-c/.

10 梁彥杰,廉東本.基于消息中間件的數據交換平臺傳輸框架設計.計算機系統應用,2012,21(4):10-13.

Model of Dynamic Parser for Heterogeneous Protocol

WANG Yong-Na1,2, ZHAO Kui2, WANG Hong-Liang2, WANG Jun-Lin3

1(University of Chinese Academy of Sciences, Beijing 100049, China)2(Shenyang Institute of Computing Technology, Chinese Academy of Sciences, Shenyang 110168, China)3(School of Software Technology, Dalian University of Technology, Dalian 116024, China)

This paper firstly describes the format and features of heterogeneous protocol packet. Then it describes the extended protocol packets by using the XML language, and modularizes the parser function to design a model of dynamic heterogeneous protocol parser based on the method of simple protocol analysis. Realizations applying this model can be achieved without recompiling, and only a small amount of code changes is needed to complete the model automatic matching of heterogeneous protocol packets, and then complete the analysis of packet data. We apply the model into two simple protocols, and the results show that the method of using XML to describe the protocol message and the reconfigurable parser can describe and analyze the heterogeneous protocol message effectively, and obtain reliable analysis result.

heterogeneous protocol; dynamic analysis; XML; state machine

國家水體污染控制與治理科技重大專項課題(2012ZX07505003)

2016-04-26;收到修改稿時間:2016-06-21

[10.15888/j.cnki.csa.005533]

猜你喜歡
模型
一半模型
一種去中心化的域名服務本地化模型
適用于BDS-3 PPP的隨機模型
提煉模型 突破難點
函數模型及應用
p150Glued在帕金森病模型中的表達及分布
函數模型及應用
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
3D打印中的模型分割與打包
主站蜘蛛池模板: 国产欧美日韩在线一区| 欧美亚洲中文精品三区| 成人在线观看一区| 精品国产成人高清在线| 全部免费毛片免费播放| 日本欧美一二三区色视频| 五月婷婷欧美| 国产欧美另类| 午夜精品久久久久久久2023| 天天躁日日躁狠狠躁中文字幕| 久久精品国产国语对白| 国产精品视频猛进猛出| 久久久久免费精品国产| 亚洲欧美另类中文字幕| 99久久国产自偷自偷免费一区| 久久午夜夜伦鲁鲁片无码免费| 九色视频最新网址 | 91精品日韩人妻无码久久| 免费无码AV片在线观看中文| 在线观看无码av五月花| 国产欧美日韩资源在线观看| 手机在线免费不卡一区二| 国产高清不卡| 99精品伊人久久久大香线蕉| 免费啪啪网址| 黄色网页在线播放| 久久精品无码一区二区国产区| 精品久久蜜桃| 伊人无码视屏| 伊伊人成亚洲综合人网7777| 毛片在线播放a| 国产精品午夜电影| 午夜少妇精品视频小电影| 欧美h在线观看| 日韩欧美网址| 国产免费精彩视频| 日韩在线播放欧美字幕| 亚洲一区二区三区麻豆| 国产成人艳妇AA视频在线| 国产一区二区丝袜高跟鞋| 97视频精品全国免费观看| 污网站在线观看视频| 无码不卡的中文字幕视频| 精品国产一区91在线| 亚洲成人免费在线| 亚洲男人的天堂久久香蕉| 久久精品国产亚洲AV忘忧草18| 香蕉久久永久视频| 极品国产在线| 亚洲香蕉久久| 国产 在线视频无码| 亚洲VA中文字幕| 成人在线天堂| 欧类av怡春院| 亚洲国产成人精品青青草原| 亚洲第一页在线观看| 9丨情侣偷在线精品国产| 91 九色视频丝袜| 国内自拍久第一页| 最新精品国偷自产在线| 91无码人妻精品一区二区蜜桃| 国产欧美日韩综合在线第一| 国产AV无码专区亚洲A∨毛片| 亚洲成人播放| 伊人大杳蕉中文无码| 久久人人妻人人爽人人卡片av| 国产日韩精品欧美一区灰| 欧美成人亚洲综合精品欧美激情| 国产成人精品无码一区二| 国产欧美网站| 国产亚洲精品91| 一级毛片高清| 欧美特级AAAAAA视频免费观看| 无码福利视频| 全裸无码专区| 一本综合久久| 亚洲综合第一区| 亚洲黄网在线| 中国美女**毛片录像在线| 国产成人综合欧美精品久久| 91国内视频在线观看| 久久一级电影|