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打印中的模型分割與打包
主站蜘蛛池模板: 国产国模一区二区三区四区| 热99精品视频| 成AV人片一区二区三区久久| 色精品视频| 丝袜无码一区二区三区| 日韩精品一区二区三区大桥未久| 久久久久久久久18禁秘 | 狼友视频一区二区三区| 色国产视频| 亚洲综合国产一区二区三区| 男女精品视频| 欧美一道本| 国产网友愉拍精品视频| 国产午夜福利亚洲第一| 欧美日韩v| 久久影院一区二区h| yjizz视频最新网站在线| 国产在线第二页| 欧美一区二区三区国产精品| 99热最新网址| 久久精品免费看一| 日本亚洲成高清一区二区三区| 亚洲性色永久网址| 国产XXXX做受性欧美88| 国产手机在线小视频免费观看| 成人年鲁鲁在线观看视频| 国产成人精品免费视频大全五级| 成人伊人色一区二区三区| 喷潮白浆直流在线播放| 欧美午夜小视频| 亚洲天堂精品在线| 无码中字出轨中文人妻中文中| 欧美日韩国产精品va| 免费a级毛片18以上观看精品| 玖玖免费视频在线观看| 又爽又黄又无遮挡网站| 真人高潮娇喘嗯啊在线观看| 久久久久人妻一区精品色奶水 | 国产亚洲精品资源在线26u| 亚洲中文精品久久久久久不卡| 午夜限制老子影院888| 亚洲精品国产综合99久久夜夜嗨| 综1合AV在线播放| 福利一区在线| 国产精品福利社| 中文字幕无码av专区久久| 久久精品亚洲中文字幕乱码| 亚洲国产精品久久久久秋霞影院 | 国产一级二级在线观看| 国产精品福利导航| 婷婷伊人久久| 99精品免费欧美成人小视频| 天天婬欲婬香婬色婬视频播放| 在线观看国产精品第一区免费| 第一区免费在线观看| 午夜国产理论| 久久国产免费观看| 伊人久久婷婷五月综合97色| 亚洲成人精品久久| 狠狠色婷婷丁香综合久久韩国| 久久国产精品国产自线拍| 精品欧美一区二区三区久久久| 日本少妇又色又爽又高潮| 美女无遮挡免费视频网站| 中文字幕亚洲精品2页| 色网站在线视频| 久久天天躁狠狠躁夜夜躁| 性69交片免费看| 热re99久久精品国99热| 99热6这里只有精品| 日本草草视频在线观看| 26uuu国产精品视频| 国产h视频免费观看| 亚洲精品高清视频| 午夜福利网址| 福利在线不卡| 日本高清在线看免费观看| 狠狠v日韩v欧美v| 毛片一区二区在线看| 国产一区自拍视频| 久久国产乱子伦视频无卡顿| 欧美有码在线|