尹 鋒 陳順平 周前偉
〔摘 要〕提出了一種基于客戶機/服務器模式的圖書館服務器遠程管理系統(tǒng)的設計方法,它采用WinSocket信息訪問技術,設計出客戶端和服務器端兩個子系統(tǒng),給出了數(shù)據(jù)流圖、實體關系圖、功能模塊圖和程序流程圖及其部分關鍵代碼。系統(tǒng)可在機房無人值守時對服務器進行遠程監(jiān)控和維護,保障網(wǎng)絡系統(tǒng)的正常運行。
〔關鍵詞〕服務器遠程管理;WinSocket;客戶端/服務器模式;系統(tǒng)設計
〔中圖分類號〕G250.71 〔文獻標識碼〕B 〔文章編號〕1008-0821(2009)01-0078-04
Design and Realization of Server Remote Management System of Library
Yin Feng Chen Shunping Zhou Qianwei
(Library,Changsha University,Changsha 410003,China)
〔Abstract〕A design method of remote management system of library server which based C/S model was introduced in this paper.Two subsystem which included client system and server system by using winsocket technology was designed.Otherwise,the data flow graph and the entity relational graph,the functional module chart and the program flow diagram and the part essential code were given in this paper.The server could be monitored and maintenanced when nobody in computer room in order to ensure normal operation of network.
〔Key words〕server remote management;WinSocket;C/S;system design
目前遠程控制技術顯得越來越重要[1]。如:遠程計算機維護、移動辦公、遠程教學等等。高校圖書館服務器儲藏了大量豐富的數(shù)字資源,維護其正常運行非常重要。利用遠程管理技術可在機房無人值守時對服務器進行監(jiān)控和維護,以滿足廣大讀者查詢文獻信息的需要[2]。本文利用基于TCP/IP網(wǎng)絡協(xié)議的Socket通信技術設計了一個遠程服務器管理系統(tǒng),能夠有效監(jiān)控服務器的運行狀態(tài),確保圖書館信息網(wǎng)絡系統(tǒng)的正常服務。
1 系統(tǒng)開發(fā)原理
本文采用Microsoft Visual C++ 6.0作為開發(fā)工具,因為VC++ 6.0中有關網(wǎng)絡通信的Socket API函數(shù)豐富,功能強大,完全能夠?qū)崿F(xiàn)設計要求[3]。
Socket(套接字)的原意是插座。在Socket下編程,應用程序一旦申請到一個Socket,就相當于獲得一個與其他應用程序通信的輸入輸出接口,而該應用程序到底與哪個應用程序通信,取決于其IP地址[4]。執(zhí)行跨機應用進程時要在網(wǎng)絡的每一端建立套接字,2個套接字之間建立連接后,就可以通過套接字的“讀”、“寫”操作實現(xiàn)網(wǎng)絡通信功能。Socket接口介于應用程序與硬件之間,它可以提供標準函數(shù)以符合不同的網(wǎng)絡硬件規(guī)格[5]。
對Socket的理解可以簡化為:它是封裝了數(shù)據(jù)流(Stream)的從機器到機器的一條軟接線。通過這條軟接線,并借助于線兩端的收發(fā)程序,網(wǎng)絡上的機器間實現(xiàn)了信息的交流與互通。分離在服務器端和客戶端的應用程序可以通過調(diào)用Socket接口來執(zhí)行預定的功能。所以,Socket接口的介入使得開發(fā)分布式應用程序變得更為簡單。
套接字(socket)在網(wǎng)絡軟件設計中有著極大的應用。如果把機器比作房間,那么創(chuàng)建了Socket(套接字)的程序就是房間的后門[6]。只要了解該Socket接收數(shù)據(jù)的協(xié)議(后門的鑰匙),就可以輕松地打開房門而進入該房間。為了網(wǎng)絡信息服務的安全,我們有必要在服務器端控制來自客戶的信息訪問行為。Socket正是迎合這種需求而被廣泛應用的一種網(wǎng)絡信息訪問技術。
2 系統(tǒng)分析
2.1 數(shù)據(jù)流分析
系統(tǒng)的數(shù)據(jù)傳遞(流動)是以建立了連接的客戶端和服務器端為前提的。服務器端程序運行后時刻處于監(jiān)聽狀態(tài),一旦有客戶端的連接請求,它就會去接收,并生成一個與來訪客戶端傳送信息的Socket通信接口。利用這一特性,我們可以在客戶端界面設計一些按鈕,設置好自己感興趣的各種服務器信息參數(shù),然后點擊按鈕要求服務器執(zhí)行一些遠程操作,就如同在本地操作服務器一樣。點擊事件發(fā)生后,客戶端捕捉這一消息并記錄下來,然后生成相應的命令消息并保存于臨時緩沖區(qū)。當協(xié)議要發(fā)送信息時,就把臨時緩沖區(qū)的內(nèi)容放到緩沖區(qū)并完成發(fā)送。服務器端通過協(xié)議把客戶端發(fā)送過來的內(nèi)容收存到接收緩沖區(qū),然后分析緩沖區(qū)內(nèi)的命令參數(shù),進行相應的處理。其執(zhí)行結果反饋給客戶端顯示。這樣,一次通信過程就順利完成了。下面是系統(tǒng)的數(shù)據(jù)流圖(圖1)。
2.2 實體關系分析
系統(tǒng)的實體可分為客戶端和服務端兩個。雙方都有接收/發(fā)送緩沖區(qū),通信用的Socket接口,通信端口等。不同的是,服務端有一個監(jiān)聽用的Socket對象、IP地址、命令解析器等;客戶端有命令請求接收器(也叫消息池),并且一個服務端可以同時連接多個與之匹配的相應客戶端。因此它們之間的關系是一對多的關系。系統(tǒng)的基本ER圖如圖2所示。
3 系統(tǒng)設計與實現(xiàn)
3.1 系統(tǒng)結構設計
系統(tǒng)分為4個模塊,即管理員登錄模塊,文件上傳、下載模塊,進程管理模塊和顯示服務器參數(shù)模塊。主要采用Winsocket編程接口來實現(xiàn)客戶端和服務器之間的通信,用到的數(shù)據(jù)結構有文件屬性結構、進程信息結構、鼠標信息結構等。系統(tǒng)要求先運行服務端程序,服務端程序主要是用SDK開發(fā),沒有具體的界面,是隱藏運行的。它有一個總(入口)開關函數(shù)負責客戶端發(fā)送的命令消息的解析分解和分發(fā)處理??蛻舳擞杏脩舻卿浗缑?,使用者輸入合法的用戶名和密碼才能登錄到客戶端,接下來才有可能實現(xiàn)對服務器的有效控制。菜單命令接口有文件上傳、下載,運行服務器上的程序或者打開文件等。
管理員登錄模塊主要是驗證用戶身份的合法性。文件上傳和下載是有效的管理服務器資源的一個最基本的途徑。進程管理模塊的主要功能是在本地客戶端上用一個窗口顯示遠程服務器端上運行者的進程,并能對進程進行實時的觀察監(jiān)控,能對進程進行一些相應的管理,如暫停、結束等操作,能向服務器的屏幕上寫一些文本信息,能控制服務器端鼠標的鎖定與解鎖,駕馭服務器上相關程序、文件的打開或者運行。顯示服務器參數(shù)模塊主要是顯示當前正在運行的系統(tǒng)服務器端的一些計算機情況和操作系統(tǒng)信息等等,基本上是一些與遠程服務器狀態(tài)息息相關的的參數(shù)信息。
系統(tǒng)實現(xiàn)的主要技術難點在于怎樣定義合理的數(shù)據(jù)結構來完成各種信息的傳遞與接收,因為文件的上傳、下載涉及到文件格式的一致性問題。系統(tǒng)功能模塊如圖3所示。
3.2 客戶端設計
客戶端設計思路如流程圖(圖4)所示。
客戶端部分關鍵代碼如下:
void CZclientDlg::OnBtnProcess()
{ ∥進程管理按鈕點擊事件消息響應函數(shù)
UpdateData(TRUE);
BeginWaitCursor();
if(!pProcessDlg)
{ pProcessDlg=new CProcessManageDlg(this);
pProcessDlg->Create(IDD_DIALOG_PROCESSMANAGER,this);
pProcessDlg->ShowWindow(SW_HIDE);
}
else
{ pProcessDlg->m_ctlProcess.ResetContent(); }
strcpy(chrMission,″ 惠东县| 高平市| 珲春市| 德惠市| 贵州省| 古田县| 堆龙德庆县| 三门峡市| 淮滨县| 尚志市| 喀喇沁旗| 台山市| 沙坪坝区| 武邑县| 贵港市| 衡南县| 南丰县| 连江县| 闽清县| 霍山县| 藁城市| 崇左市| 商都县| 洛川县| 栾川县| 乃东县| 永清县| 贞丰县| 买车| 肇源县| 崇州市| 葫芦岛市| 湄潭县| 乐都县| 密云县| 肇东市| 加查县| 绥德县| 龙山县| 门头沟区| 海原县|