網絡故障測試儀遠程監控軟件的設計
網絡故障測試儀是基于Linux操作系統的嵌入式手持設備,主要用于測試網絡故障現場、評估性能、提供專家解釋。專家親臨故障現場需要耗費一定的時間和財力,遠程監控軟件可以幫助專家通過互聯網絡訪問遠端的測試設備,了解網絡運行參數,給出解決方案,實現遠程專家系統。遠程監控軟件將為便攜式網絡故障測試儀提供有效的遠程操作、監控及遠程技術支持能力。
1、遠程監控軟件的功能和結構
1.1 軟件主要功能
網絡故障測試儀是一臺便攜式設備,通常接人需要測試的網絡中。遠程監控將為用戶提供在個人電腦上直接觀測網絡狀態的能力;同時當網絡出現故障時,也能為遠程專家了解網絡故障,給出解決方案提供便利。因此,遠程監控軟件主要實現對異地測試儀的操作功能,顯示設備返回的狀態;通過在設備間建立起的數據交換通道,實現雙向的數據通信。
遠程監控軟件實現在監控時,獲取客戶端發出的控制命令,控制服務器根據應用層協議對命令解釋后執行相應的動作,返回執行結果;同時設置服務器根據用戶界面所需顯示參數,定時執行操作返回結果數據刷新界面。
1.2 軟件體系結構
軟件功能分解到通信的兩個端點上,即客戶端和服務器端,采用Client/Server模式。這樣能提高設計的靈活性,易于系統的擴展。服務器端集成在測試儀中,與設備的其他功能模塊協調工作,為客戶端提供執行共享資源的管理應用程序人口;客戶端則提供交互界面及結果顯示;數據交換通道的建立由雙方的數據通信模塊負責。從而實現點到點的直接控制監控,滿足實時性要求。軟件體系結構如圖1所示。
圖1 系統體系結構
① 客戶端的主要功能模塊為:消息輸入/顯示模塊,通信管理模塊。消息輸入模塊負責將用戶界面的按鈕事件傳送到通信模塊,通信模塊將命令信息發送到受控端;受控端執行操作后返回的成功或失敗信息交由客戶端消息顯示模塊根據信息的格式進行顯示。
② 服務器端的主要功能模塊為:通信管理模塊,命令解釋模塊,函數調用模塊。服務器處于偵聽狀態, 一旦接收到合法的連接請求,則建立信號通路,通過通信管理模塊接收客戶端發來的命令信息,經解釋模塊解釋后,調用函數執行相應的指令,并將結果返回到客戶端。
2、遠程監控軟件設計
2.1 消息輸入/顯示模塊實現
客戶端輸入/顯示模塊的開發采用Visual C++,利用模塊化、通用性強的特點,實現遠程監控中用戶界面的編寫。用戶顯示界面保持與設備界面的一致,方便用戶操作。
2.2 通信模塊實現
(1) Socket編程
數據通信模塊中的數據通道建立采用Socket編程。Socket支持TCP/IP協議網絡通信的基本操作;它屏蔽了網絡底層的通信細節,使編程簡單;它對通信端點進行了抽象,提供發送和接收數據機制及打開、計算和關閉會話的能力。本項目中,客戶端運行在Windows操作平臺下,采用WinSock來編程實現命令和數據信息的傳輸;而服務端運行在Linux操作平臺下,通信直接使用Socket編程實現。
(2) 通信建立
服務器與客戶端開始都必須調用socket()函數產生一個Socket套接字;然后服務器調用bind()函數,將套接字與本地網絡地址捆扎在一起,在網絡上標志該套接字;只有當服務器執行完accept()進入監聽模式、阻塞狀態后,才能接收客戶端的connect()請求并決定是否接收數據;建立連接后,客戶端與服務器之間便可以雙向傳輸數據。服務器主要通信代碼:
listenfd=socket(AF—INET,SOCK—STREAM,0)
bind(1istenfd,(SOCKADDR %)sockaddr—echo,sizeof(struct sockaddr_in))
echofd=accept(1istenfd,(SOCKADDR %)(sockaddrcli),sizeof(SOCKADDR));
while((read—n=read(echofd,revbuf,BUFLEN))0)
{.一//指令解釋與函數調用}
if((write—n=write(echofd,okbuf,strlen(sendbuff)))0)
{.一//將結果返回給客戶端}
其中,客戶端與服務器間制定統一的數據通信協議,所有的數據和指令信息統一編碼,編碼格式為:命令代碼:數據部分(各數據之間用#分隔)。在傳輸用戶密碼時,采用事先約定好的數據加密密匙,以防明文形式傳輸造成的信息泄漏。
評論