文/羅恒鈺 段榮
信息系統(Information System,IS)是指由計算機硬件和軟件、網絡和通信設備、數據資源、用戶等組成的以處理信息流為目的的一體化系統;系統集成(System Integration,SI)指的是通過技術手段,將邏輯/物理上分離的設備、軟件和數據等要素集成到相互關聯、協同工作的系統中,使系統整體的功能、性能符合使用需求。隨著計算機技術、網絡與通訊技術的快速發(fā)展,信息系統的規(guī)模急劇膨脹,如何才能在既定成本的約束下,輸出質量和技術狀態(tài)受控的產品,成為擺在每個產品經理面前的首要任務。
信息系統的功能是由各計算節(jié)點通過網絡不斷地進行數據交互實現的,所以系統集成的關鍵就在于解決各信息節(jié)點之間的互連和互操作性問題。在實際工作中,通過實時采集和解析網絡數據流,進而得出系統的輸入-輸出響應是否滿足設計要求,是進行系統集成和測試驗證的基本手段。借助于Wireshark 的靈活性和開放性,本文設計了一種任務數據解析和統計分析工具,不僅提供了實時解析任務數據流、快速驗證系統工作狀態(tài)的能力,還支持根據協議特征提供多種數據統計分析結果,能夠極大地提高系統集成的工作效率。
本文設計的任務數據分析流程如圖1所示,包括抓取數據、數據預處理、數據解析、分類結果分析四個步驟。其中,數據解析是獲取任務參數和進行統計分析的基礎,利用Wireshark 支持跨平臺部署和開放式協議擴展能力,本文設計的任務數據解析器以Wireshark 插件的形式實現,具體的實現方法參見文獻[1, 2, 4, 5]中的相關描述,本文重點介紹算法的設計和應用效果。
表1:任務數據抓取的實現方式
表2:創(chuàng)建私有協議支持
表3:創(chuàng)建任務數據解析支持
圖2
為了便于開展工程應用,本文采用的數據獲取方式以觀察者的身份進行,不破壞系統的網絡拓撲、不影響系統的正常通信,并且支持在線和離線兩種使用場景,如表1所示。在線方式以實時解析任務數據流的方式工作,能夠快速獲取系統運行過程中的各種參數信息,提供實時確認系統工作狀態(tài)、快速定位集成聯試問題的能力;離線方式為抓取一段時間內系統運行過程中產生的任務數據,在事后通過對任務數據進行解析分析,驗證系統的工作流程是否滿足設計要求,還支持根據系統的動態(tài)響應輔助定位故障發(fā)生的原因。
該過程實現了從全網數據慮出所需數據的功能,類似于將原油加工成汽油的過程。為了提供足夠的可操作空間,該過程除了提供基于主機IP 和公共協議的過濾能力外,還實現了多種基于內部協議屬性的過濾手段。如表2所示,本文的設計將私有協議標識“myProto”,內部通信的關鍵屬性消息標識“code”、消息長度“l(fā)ength”、發(fā)送時間“txTime”、消息的優(yōu)先級“priority”、通信信道“channel”實現為任務數據的過濾關鍵字。
該過程實現了將二進制數據流,解析為系統工作參數的功能。該部分實現了解析器的核心功能,一般的設計思路為先將系統ICD(Interface Control Document, 接口控制文件)定義的消息格式錄入解析器,然后再按照約定的格式解析任務數據。如表3所示,為了增強解析器的可擴展性,本文設計了一種ICD 動態(tài)注冊機制,將數據解析的計算與ICD 的定義分開,解析器維護一個動態(tài)的協議列表,消息格式通過注冊的形式掛接到該協議列表中;對于抓取的數據流,解析器能自動匹配協議列表中的消息定義,匹配成功之后,按照注冊的接口定義解析數據。
該過程實現了將解析后的任務數據以易于理解方式呈現出來,以便工程設計人員能夠快速獲取系統的響應。對于解析后的任務參數信息,本文將它們按照ICD 定義的層次添加到Wireshar 的協議樹上,具體實現參見表3中的相關描述。
將集成了任務數據解析器的Wireshark 部署到系統的信息處理節(jié)點上,抓取數據,進行任務數據識別與解析。以系統工作狀態(tài)詢問流程為例,圖2給出了解析后的結果,可以看出,本文設計的解析器已經將晦澀難懂的二進制數據解析為任務參數值,并以直觀的方式呈現出來,能夠支撐工程設計人員快速確認系統的工作狀態(tài)。在遇到系統響應異常的情況下,比如圖2所示的“系統1”工作狀態(tài)上報異常,也可以通過實時/事后解析任務數據的方式,確認“REQ”報文是否發(fā)送給“系統1”、“系統1”是否應答查詢報文或者“系統1”的應答是否正確等來輔助定位故障發(fā)生的原因。
在系統集成后期或外場實驗階段,經常需要系統運行一段時間,完成某(幾)項任務,來確認系統的功能和性能指標是否符合設計要求。在這個階段,一般會將系統的交互數據保存下來,再通過離線分析的方式確認系統的動態(tài)響應是否符合設計要求。本文設計的解析器除了能夠實時解析任務數據以外,還能根據通信協議的特征提供多種統計分析結果。圖3以某次任務數據為例給出了三類統計分析結果,圖3(a)給出了基于消息標識的統計結果,從圖中可以看出該系統的業(yè)務功能主要通過7 類消息(占比超過5%的消息)實現,基于該結果,可以有針對性地分析這7 類消息所實現的業(yè)務功能,并在系統級進行處理優(yōu)化,能夠大幅提高整個系統的運行效率;圖3(b)和圖3(c)分別給出了基于源、目的地址的統計結果,從圖中可以看出該系統內部交互的消息基本上集中在6 個主機(占比超過3%的主機),可見該系統實現的業(yè)務功能很不均衡,基于該結果,進一步分析這些主機所承擔的業(yè)務,再在系統級進行資源優(yōu)化整合,能夠極大提高整個系統的運行效能,避免瓶頸效應。
本文基于Wireshark 設計了一種網絡數據解析與分析工具,從實際的應用效果看,該工具能夠在基于網絡的信息系統中靈活部署,針對通過網絡交互信息,能夠將二級制網絡數據實時解析為任務參數信息,輔助工程設計人員快速確認系統工作狀態(tài)、定位故障發(fā)生的原因,給系統集成工作帶來極大的便利。另外,通過該工具生成的任務數據定性分析結果,還能有針對性地優(yōu)化系統的網絡拓撲,提高整個系統的運行效能。
圖3