徐凱
摘要:目前,在“互聯(lián)網(wǎng)+”趨勢的影響下,不論是在人們?nèi)粘5纳町?dāng)中,還是在生產(chǎn)制造的過程,或者現(xiàn)代服務(wù)業(yè)等諸多領(lǐng)域當(dāng)中,“網(wǎng)絡(luò)化”已經(jīng)變成了一個時代符號,而且成了未來的一種發(fā)展趨勢,但同時也出現(xiàn)了一系列問題,例如,如何有效的實現(xiàn)網(wǎng)絡(luò)狀態(tài)在線監(jiān)測變成了這些問題當(dāng)中的一個熱點。本文結(jié)合了一些關(guān)于設(shè)備的例子,具體探究利用VC編程中的網(wǎng)絡(luò)通信、多線程編程技術(shù)、模塊化設(shè)計理念等方式,做到設(shè)備網(wǎng)絡(luò)節(jié)點在線狀態(tài)的動態(tài)監(jiān)測,分析收集整理故障,使得設(shè)備網(wǎng)絡(luò)能夠高效正常穩(wěn)定化運行。
關(guān)鍵詞:VC編程;網(wǎng)絡(luò)狀態(tài);在線監(jiān)測
中圖分類號:TP393 文獻標(biāo)識碼:A 文章編號:1009-3044(2016)30-0038-02
伴隨著“互聯(lián)網(wǎng)+”,大數(shù)據(jù),中國智造2025等趨勢的作用,設(shè)備網(wǎng)絡(luò)化控制已近開始成為了一種趨勢,使得大部分企業(yè)等機構(gòu)目前對設(shè)備的檢修、維護、運行、管理的需求變得多元時代化,加之其他一些成本等因素的影響,升級換代進行網(wǎng)絡(luò)在線監(jiān)測模式已經(jīng)顯得必不可少。在線監(jiān)測是根據(jù)設(shè)備的運行狀態(tài),收集整理設(shè)備的歷史運行狀態(tài),確定是否需要實行設(shè)備的檢修維護,最重要的部分就是設(shè)備運行狀態(tài)的監(jiān)測與故障診斷。網(wǎng)絡(luò)在線監(jiān)測通過對設(shè)備各種狀態(tài)信息的進行實時數(shù)據(jù)采集分析判斷,做到捕捉出早期故障征兆,然后根據(jù)數(shù)據(jù)分析結(jié)果做出解決設(shè)備故障的合理的決策,這樣企業(yè)等機構(gòu)有時間提前制定出合理的設(shè)備檢修方案的安排,使得設(shè)備的維護周期得以延長,同時,很大程度的降低設(shè)備的維修時間,不論是對設(shè)備的有效運行來說,還是對企業(yè)成本的控制都具有重大的意義。然而,由于目前我國一線生產(chǎn)作業(yè)人員由于專業(yè)技術(shù)不足,不能及時地對設(shè)備出現(xiàn)的故障進行發(fā)現(xiàn)和維護,而造成巨大的經(jīng)濟損失。結(jié)合目前我國技術(shù)水平的發(fā)展,可以通過網(wǎng)絡(luò)在線監(jiān)測系統(tǒng),把設(shè)備現(xiàn)場的運行狀態(tài)信息的大數(shù)據(jù),通過互聯(lián)網(wǎng)及時送到專家手中,然后經(jīng)過及時而專業(yè)的模擬現(xiàn)場分析和判斷,最終為問題的解決提出有效的方法措施,因此網(wǎng)絡(luò)在線監(jiān)測系統(tǒng)具有廣闊的應(yīng)用前景,而本文主要時論述基于VC編程實現(xiàn)網(wǎng)絡(luò)狀態(tài)在線監(jiān)測。
1 VC編程概述
VC是一種軟件集成開發(fā)環(huán)境,它是由微軟公司開發(fā)完成的,換個角度理解就是基于C++的一個開發(fā)平臺。VC是基于Windows平臺的一種C++編程環(huán)境,包括MFC、ATL、COM等,此外還具有Windows平臺的特性?;赪indows下的VC編程需要掌握Windows的消息機制和回調(diào) (callback)函數(shù)的原理。MFC是需要理解文檔視圖類的結(jié)構(gòu)、窗口類的結(jié)構(gòu)、消息流向等的Win32API的包裝類。COM是一個需要掌握其基本原理代碼共享的二進制標(biāo)準(zhǔn)。除此之外,VC是一個主流的開發(fā)平臺,它不屬于語言。如果將C++視為工業(yè)標(biāo)準(zhǔn),那VC則是遵循工業(yè)標(biāo)準(zhǔn)的前提下衍生出來的某種廠商標(biāo)準(zhǔn)的操作系統(tǒng)平臺。VC是一種包括WIN API和MFC方式的在Windows平臺下開發(fā)的VC應(yīng)用程序,MFC是對傳統(tǒng)的WIN API再次封裝,其結(jié)構(gòu)相比較簡單,所以MFC的開發(fā)模式備效率優(yōu)勢更加明顯。
2 VC編程網(wǎng)絡(luò)在線監(jiān)測功能的模塊化
要實現(xiàn)類似MFC的網(wǎng)絡(luò)狀態(tài)在線監(jiān)測和數(shù)據(jù)分析,就必不可少的需要借助VC相應(yīng)的功能,例如強大的網(wǎng)絡(luò)通信板塊、多線程開發(fā)板塊等。在監(jiān)測軟件的開發(fā)過程中,充分利用VC成熟的開發(fā)資源平臺,開發(fā)建立有針對性的應(yīng)用功能模塊,做到開發(fā)效率和軟件質(zhì)量的雙贏,其主要包括以下環(huán)節(jié):(1)功能模塊設(shè)計。MFC應(yīng)用的實際上是TCP/IP協(xié)議組主要用在IP主機、路由器之間傳遞控制消息的一個子ICMP協(xié)議。Windows給予了ASMP.dll的支持,能夠從VC中直接引用,但是不支持移植,另外無法控制網(wǎng)絡(luò)信息的數(shù)據(jù)包。因此,在基于工程中包含adewfxsock.hfg庫的前提下,借助VC技術(shù)能夠直接針對套接字(socket)進行有效編程,勾選了一個和MFC程序一樣發(fā)送32字節(jié)的數(shù)據(jù)信息,得到數(shù)據(jù)包大小和TTL值的回饋,編程過程及系統(tǒng)調(diào)用時序,如圖1所示。(2)網(wǎng)絡(luò)狀態(tài)在線監(jiān)測。首先,構(gòu)建套接字符串,然后指定使用的ICMP協(xié)議。其次,發(fā)送air_ICMP數(shù)據(jù)包,初試化ECHORHHGEQUEST的types為9的響應(yīng)請求指令,然后通過系統(tǒng)調(diào)用發(fā)送ICMPSD數(shù)據(jù),并設(shè)置目標(biāo)IP地址。(3)監(jiān)測套接字符串網(wǎng)絡(luò)在線狀態(tài),檢測一個或多個套字符串的狀態(tài)。(4)響應(yīng)數(shù)據(jù)的識別,判斷網(wǎng)絡(luò)在線監(jiān)測狀態(tài)。最終,在回饋的數(shù)據(jù)當(dāng)中包含了該次在線監(jiān)測的結(jié)果。至此,同MFC方式一樣,通過VC編程實現(xiàn)網(wǎng)絡(luò)狀態(tài)在線監(jiān)測。
3 VC多線程編程網(wǎng)絡(luò)狀態(tài)在線監(jiān)測
進程和線程都可以被看作操作系統(tǒng)的概念。通過應(yīng)用程序執(zhí)行實例的過程被稱作進程,私有的虛擬地址空間、代碼、數(shù)據(jù)和其他各種系統(tǒng)資源共同構(gòu)成了每個進程,并且在運行模擬的過程中進程的終止會銷毀創(chuàng)建的資源,使得進程終止時,所使用的系統(tǒng)資源獲得釋放或關(guān)閉。線程以一個執(zhí)行單元的形式存在于進程內(nèi)部。系統(tǒng)創(chuàng)建好進程后,同時也就啟動了以函數(shù)地址形式執(zhí)行的進程的主執(zhí)行線程,并且,Windows系統(tǒng)也將接受來自主執(zhí)行線程的指令。主執(zhí)行線程的行為狀態(tài)最終決定了進程的行為狀態(tài)。每一個進程都需要一個由系統(tǒng)自動創(chuàng)建的而不需要用戶操作的線程。用戶可以根據(jù)網(wǎng)絡(luò)監(jiān)測具體項目,來創(chuàng)建對應(yīng)的程序在同一個進程中所需要的多個線程。網(wǎng)絡(luò)狀態(tài)在線監(jiān)測模塊,在不需要用戶界面交互的條件下,能夠自動獲取所需要的目標(biāo)IP地址數(shù)據(jù),并通過該地址數(shù)據(jù)創(chuàng)建單獨的線程,定時實現(xiàn)后臺運行在線網(wǎng)絡(luò)狀態(tài)監(jiān)測。線程之間的通訊之所以方便,是因為在一個進程中的所有線程都在該進程的虛擬地址空間中,共同使用這些虛擬地址空間、全局變量和系統(tǒng)資源,最終使得多線程技術(shù)的應(yīng)用廣泛流行。除此之外,為了減少某項任務(wù)的長時間占用CPU,多線程可以通過并行處理的方式來實現(xiàn)此功能??梢酝ㄟ^適當(dāng)?shù)娜藱C交互界面和配置數(shù)據(jù)管理的方式,來搭建一個完整的VC編程控制的網(wǎng)絡(luò)在線監(jiān)測應(yīng)用系統(tǒng)。該系統(tǒng)系統(tǒng)功能包括網(wǎng)絡(luò)監(jiān)測完成網(wǎng)絡(luò)節(jié)點通阻狀態(tài)的存儲;狀態(tài)顯示完成網(wǎng)絡(luò)節(jié)點通阻狀態(tài)的監(jiān)測;節(jié)點管理完成網(wǎng)絡(luò)節(jié)點通阻狀態(tài)的分析;指標(biāo)分析完成網(wǎng)絡(luò)節(jié)點通阻狀態(tài)的顯示。網(wǎng)絡(luò)狀態(tài)在線狀態(tài)的顯示是通過客戶端圖形模式和動態(tài)網(wǎng)頁模式構(gòu)成??蛻舳藞D形模式采用的是可以對系統(tǒng)監(jiān)測周期和節(jié)點屬性等參數(shù)進行配置的C/S架構(gòu),除此之外,該構(gòu)架還可以查看節(jié)點監(jiān)測通阻狀態(tài)和大數(shù)據(jù)的整理與分析,最終得到故障原因及解決方案。而瀏覽器網(wǎng)頁模式主要用于查看節(jié)點狀態(tài)和指標(biāo)分析數(shù)據(jù)。
4 結(jié)束語
基于 VC編程充分利用了MFC總線的多節(jié)點、遠距離、實時性好等優(yōu)點,設(shè)計出了一套高效實用的網(wǎng)絡(luò)在線監(jiān)測系統(tǒng),而且該系統(tǒng)具有直觀實用的界面和高效簡便的編程方式,在監(jiān)測系統(tǒng)的應(yīng)用很廣泛。
參考文獻:
[1] 趙立群, 吳霞, 孫巖. 計算機網(wǎng)絡(luò)管理與安全[M]. 北京: 清華大學(xué)出版社, 2014.
[2] 羅莉琴, 詹祖橋, 黃輝等. Windows網(wǎng)絡(luò)編程[M]. 北京: 人民郵電出版社, 2011.
[3] 潘磊, 裴斐. 一種面向大規(guī)模網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)的研究[J]. 計算機工程與應(yīng)用,2010, 46(19).
[4] DAVID. VISUAL C++6編程寶典[M]. 北京: 電子工業(yè)出版社, 2005.
[5] 周立功等. iCAN現(xiàn)場總線原理與應(yīng)用[M]. 北京: 北京航空航天大學(xué)出版社, 2007.