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