孔 雷,韓秀玲,陳 光
(東華大學 信息科學與技術學院,上海201620)
遠程實驗是基于互聯(lián)網(wǎng)的一個嶄新應用,通過遠程實驗的方法,學生可以不在實驗室現(xiàn)場就能夠進行相關課程的實驗,從而減輕實驗室的壓力和減少實驗室建設的投資[1-2]。作為遠程實驗的一個范例,針對計算機網(wǎng)絡實驗,我們研發(fā)了一個基于B/S 架構的組網(wǎng)實驗平臺。該平臺實現(xiàn)了遠程實驗的基本功能,預約好的學生可通過個人瀏覽器訪問實驗室的硬件資源進行計算機網(wǎng)絡實驗。在這個平臺的開發(fā)過程中,考慮到用于共享的設備資源是有限的,為了滿足更多用戶的實驗需求,必須建立一套有效的管理機制。針對遠程組網(wǎng)實驗管理平臺的實際需求,應用Web 技術、數(shù)據(jù)庫技術和C#開發(fā)語言等,設計和實現(xiàn)了遠程實驗的計時計費管理功能。與實驗室SSL/VPN 防火墻中已有的計時功能不同,設計了計時計費功能針對遠程組網(wǎng)實驗平臺的特點,統(tǒng)計不同用戶使用不同機柜設備進行組網(wǎng)實驗的準確在線時長和費用。教師通過查看學生的實驗信息及數(shù)據(jù)來掌握其實驗所需的時間,為遠程實驗管理平臺的資源調(diào)度提供依據(jù),并為遠程實驗的進一步對外開放提供必要的技術支持。
實驗室硬件拓撲組成如圖1 所示。學生可以使用瀏覽器通過互聯(lián)網(wǎng)訪問到實驗室的SSL/VPN[3-5]防火墻,通過認證后便可進入實驗室的內(nèi)部網(wǎng)絡。進入內(nèi)部網(wǎng)絡后,通過遠程實驗的管理和控制平臺(即遠程服務器)才能訪問所分配的網(wǎng)絡設備。網(wǎng)絡設備資源主要包括:路由器、交換機以及網(wǎng)絡攝像頭等。其中,路由器和交換機是實驗的對象,而網(wǎng)絡攝像頭則負責將實驗現(xiàn)場的狀態(tài)反饋給學生。所有這些設備資源提供的服務都是以服務器網(wǎng)站平臺的模式呈現(xiàn)給學生的,學生只要點擊相應設備的鏈接就能進行實驗了。
圖1 系統(tǒng)硬件組成圖
考慮到研發(fā)經(jīng)費、適用環(huán)境、用戶需求和性能要求等,本系統(tǒng)選擇了. NET 解決方案(Windows2003 +IIS6.0 +Sql2005 +VS2008/C#),. NET 技術可以使各種應用程序通過Internet 進行通訊和共享數(shù)據(jù),而不受操作系統(tǒng)、設備或編程語言的限制[6-8]。遠程實驗平臺的軟件部分包括教師部署實驗子系統(tǒng)和學生實驗子系統(tǒng)。其中,教師部署主要是管理當前的實驗列表,生成學生使用不同機柜進行實驗的清單。學生通過身份認證后便可以進行相應的網(wǎng)絡拓撲規(guī)劃,設備選擇和組網(wǎng)配置等實驗過程。
在實現(xiàn)遠程實驗平臺的基本實驗功能的基礎上,為了有效地記錄學生訪問硬件資源的情況,保證有限資源的合理使用和進一步的對外服務,還需要增加一個可靠而準確的計時計費系統(tǒng)。
計時功能是與預約機制相結合進行設計的。用戶首先登錄到預約頁面進行相應實驗、機柜及時間段的預約,如果用戶是在時間段之前和之后訪問實驗平臺,系統(tǒng)會給出相應的提示并顯示登錄失敗。而在預約時間內(nèi),用戶通過遠程訪問控制平臺調(diào)用網(wǎng)絡設備,服務器反饋給用戶實驗的頁面。當用戶登錄訪問到實驗頁面時,計時開始,系統(tǒng)利用ASP. NET AJAX 中的服務器端計時控件來動態(tài)顯示時間進程。當預約時間快結束而用戶還沒有完成實驗時,系統(tǒng)會提前(設定為2 min)提醒用戶將相應的實驗數(shù)據(jù)進行存檔,到達結束時間后將被注銷并釋放資源。在規(guī)定時間內(nèi),當用戶結束網(wǎng)絡操作而斷開連接后,計時停止并獲得用戶的開始時間和結束時間,系統(tǒng)計算在線時長和產(chǎn)生的費用并存入數(shù)據(jù)庫。當用戶以自己的用戶名和密碼登入實驗平臺時,可以查看這些信息。
圖2 為計時計費功能程序設計流程圖:
圖2 計時計費功能設計流程圖
2.3.1 AJAX 中控件的使用
在用戶登錄平臺進行實驗的過程中,實驗頁面將動態(tài)顯示當前時間,設計時需要用到AJAX Web 開發(fā)技術。AJAX 即“Asynchronous JavaScript and XML”,是一種創(chuàng)建交互式網(wǎng)頁應用的網(wǎng)頁開發(fā)技術。AJAX的Microsoft 實現(xiàn)方式是ASP. NET AJAX,它包含一個客戶端JavaScript 庫和使用該庫的服務器端ASP.NET控件[9-11]。可以用于ASP. NET 應用程序的服務器端控件及功能如下所示,頁面中局部區(qū)域的動態(tài)刷新功能將用到這幾種控件。
ScriptManager 控件:加載客戶腳本,每個ASP.NET AJAX 頁面都需要這個控件的一個實例;
UpdatePanel 控件:允許通過ASP.NET AJAX 回送功能部分更新顯示頁面;
Timer 控件:在指定的時間過后調(diào)用一個函數(shù);
UpdateProgress 控件:發(fā)出請求時顯示進度信息。
其具體實現(xiàn)方法如下:①切換到visual studio 中設計視圖,如果頁面沒有包含ScriptManager 控件,在工具箱的AJAX Extensions 標簽下雙擊ScriptManager 控件添加到頁面中;②單擊ScriptManager 控件并雙擊UpdatePanel 控件添加到頁面中;③在UpdatePanel 控件內(nèi)單擊并雙擊Timer 控件添加到UpdatePanel 中,Timer 控件可以作為UpdatePanel 的觸發(fā)器不管是否在UpdatePanel 中;④設置Interval 屬性為1000,其單位是毫秒,設置為1000 相當于1 s 刷新一次;⑤在UpdatePanel 控件中添加一個Label 控件,確保Label 控件添加在UpdatePanel 控件里;⑥雙擊Timer 控件添加Tick 事件處理,在事件處理中設置Label 的Text 屬性為當前時間,在Page_Load 事件中添加代碼啟動Timer,Label23 顯示用戶登錄的時間,Label24 用于動態(tài)顯示時間進程。如下代碼所示:
2.3.2 構建后臺數(shù)據(jù)庫
表1 數(shù)據(jù)表student
數(shù)據(jù)結構的設計是Web 應用程序設計的第一步,應該根據(jù)需求分析確定要保存的數(shù)據(jù)種類、類型,以及數(shù)據(jù)之間的關系[12-13]。為了將每個用戶的計時計費信息與用戶的實驗信息等綁定在一起,以便查詢和資源調(diào)度管理,建立了如圖1 所示的后臺數(shù)據(jù)庫。其中記錄了包括設備的選擇情況、實驗內(nèi)容、開始實驗時間、完成實驗時間、產(chǎn)生的費用以及用戶基本信息。本文采用的數(shù)據(jù)庫版本為SQL Server2005,數(shù)據(jù)庫命名為management,其教師信息存放在teacher 表中,學生信息存放在student 表中,其中student 表如表1 所示。數(shù)據(jù)列ID 為學生學號,設置為主鍵,學號唯一,code、sname、phone、ide 列分別為學生登錄密碼、姓名、聯(lián)系方式及學生身份,stime、ztime 和expense 列分別為用戶實驗開始時間、結束時間及產(chǎn)生的費用。teacher 表中存放著教師登錄名及密碼,相對較簡單。
2.3.3 用戶信息的存儲
將用戶使用設備的信息存入數(shù)據(jù)庫management中的student 表,從而更新數(shù)據(jù)庫對應用戶的信息,存儲事件由相應控件來觸發(fā)。連接數(shù)據(jù)庫并更新由自定義的db 類中的DoSql()方法來實現(xiàn),在db 類中先定義一個數(shù)據(jù)庫連接字符串connstring,字符串需要服務器、數(shù)據(jù)庫及安全性聲明等,然后聲明一個公共、靜態(tài)、不需要返回值的方法DoSql(string sql),方法實現(xiàn)數(shù)據(jù)庫寫操作。在方法體內(nèi)先定義一個數(shù)據(jù)庫連接對象,根據(jù)connstring 字符串打開數(shù)據(jù)庫連接,然后定義一個SqlCommand 對 象 實 例,調(diào) 用 該 對 象 的ExecuteNonQuery()方法執(zhí)行SQL 操作字符串,實現(xiàn)把用戶信息寫入。獲得用戶的登錄時間與結束時間后,按照時分秒的換算關系進行計算在線時長以及產(chǎn)生的費用,然后存入數(shù)據(jù)庫,主要實現(xiàn)代碼如下:
2.3.4 學生實驗的管理機制
為了讓有限的實驗室資源得到有效地利用,本系統(tǒng)采用了預約機制。每個學生只能在預約時間內(nèi)登錄到實驗平臺使用設備,提前或者延后會有相應的登錄失敗的原因提示,在預約時間內(nèi),用戶若無法正常完成實驗,系統(tǒng)會提前提示用戶存檔。若在規(guī)定預約時間內(nèi)完成實驗,當用戶注銷后,資源即刻釋放。同一用戶無法再次登錄實驗,只能另外預約時間。在ASP.NET中,Session 對象可以保存用戶自己的私有信息[14-15],故當用戶進入實驗頁面時,通過Session 變量提取出用戶的學號,連接數(shù)據(jù)庫查詢該用戶的預約時間的起始時間和結束時間,與當前時間進行匹配,并作出相應的處理,并查詢用戶是否存在實驗記錄,如果存在則禁止用戶訪問,否則利用IsPostBack 方法進行頁面首次加載,執(zhí)行experiment 頁面的代碼,主要實現(xiàn)代碼如下:
2.3.5 用戶信息查詢
在教師管理平臺中還增加了學生信息的查詢和錄入功能,當一個新用戶需要使用實驗室資源時,預約成功后,教師便將該用戶的基本信息如:用戶名,密碼,聯(lián)系方式以及身份等信息加入到management 數(shù)據(jù)庫中的student 表,然后部署實驗,用戶在預約的時間里登錄進行實驗后,教師可通過查詢功能查看學生實驗時長以及所產(chǎn)生的費用,主要代碼如下:
將新用戶學號、姓名、身份等信息加入數(shù)據(jù)庫中,同時用戶預約實驗內(nèi)容及實驗機柜,實驗頁面如圖3所示,此時給該同學部署機柜八和rip 實驗,在預約時間內(nèi),用戶可以正常登錄平臺進行實驗,否則給出相應的提示并禁止用戶使用資源。當用戶開始實驗時,計時系統(tǒng)便立即獲取用戶登錄時間,并在時間進程中動態(tài)刷新當前時間。
用戶完成實驗并注銷后,再次登錄到學生頁面,可以通過實驗信息查詢查看自己的實驗狀況。若點擊開始實驗,會彈出提示窗口,提醒用戶已完成實驗,即用戶在預約時間外不能重復使用實驗室資源,以便于管理以及調(diào)度硬件資源。
教師登錄到管理頁面,可對學生的實驗信息進行查詢,輸入學生學號,可以看到實驗的一些基本信息及實驗開始時間。同時,還給出了學生的實驗時長以及對應不同身份所產(chǎn)生的費用。
基于.NET 技術和B/S 架構的遠程網(wǎng)絡實驗系統(tǒng)可以為本校以及校外有關用戶提供一個基于互聯(lián)網(wǎng)的遠程實驗平臺,從而大大提高了實驗的靈活性。在實驗系統(tǒng)中加入計時計費等管理功能,能夠有效地限制用戶的訪問時間。用戶遠程使用實驗室資源需要進行預約,在預約時間外無法登錄到實驗頁面。而在預約時間內(nèi)用戶未完成實驗時,頁面將會給出相應的存檔提示,使實驗系統(tǒng)更加智能化與人性化。同時,系統(tǒng)還統(tǒng)計不同用戶進行實驗的相關數(shù)據(jù)如時長等,以方便管理人員了解和掌握用戶訪問硬件設備的情況,從而合理地調(diào)度資源,提高資源的共享度和使用率。此功能在實驗室設備的管理中,具有較強的應用價值。
[1] 郭 放,陳 光.現(xiàn)代通信網(wǎng)絡應用實踐[M].北京:中國水利水電出版社,2009:280-296.
[2] 謝希仁. 計算機網(wǎng)絡[M]. 北京:電子工業(yè)出版社,1999:236-253.
[3] 狄衛(wèi)華. SSL VPN 方案設計[J].科技資訊,2006(7):2-3.
[4] 王愛兵,劉吉強.虛擬網(wǎng)卡在VPN 網(wǎng)關中的應用[J]. 計算機安全,2006,11(11):28-29.
[5] 簡清明.SSL VPN 及其在安全遠程訪問中的應用[J]. 四川理工學院學報(自然科學版),2005,18(1):57-59.
[6] 李新峰. ASP.NET 網(wǎng)站開發(fā)實戰(zhàn)[M].北京:電子工業(yè)出版社,2009:2-3.
[7] 張登輝,沙家祥.ASP.NET 網(wǎng)絡應用案例教程C#.NET 版[M].北京:北京大學出版社,2009:3-4.
[8] 朱 曄.ASP.NET 第一步[M].清華大學出版社,2007:31-55.
[9] 胡 靜,韓英杰,陶永才. ASP. NET 動態(tài)網(wǎng)站開發(fā)教程[M].2版.北京:清華大學出版社,2009.
[10] 孫繼磊,劉亮亮. 精通Visual C# 2008-語言基礎、數(shù)據(jù)庫系統(tǒng)開發(fā)、Web 開發(fā)[M].北京:人民郵電出版社,2009:59-60.
[11] 微軟公司.. NET Framework 2.0 程序設計[M]. 北京:高等教育出版社,2007:410-416.
[12] 郭洪濤,劉丹妮,陳明華. ASP. NET(C#)大學實用教程[M]. 北京:電子工業(yè)出社,2007:20-46.
[13] 王曉鵬.基于B/S 結構和ASP. NET 技術的Web 應用研究及實現(xiàn)[J].貴州工業(yè)大學學報(自然科學版),2005(4):59-62.
[14] 朱印宏,蘇震巍.ASP.NET 3.5 +SQL Server 網(wǎng)站模塊化開發(fā)全程實錄[M].北京:清華大學出版社,2009:132-135.
[15] 吳 晨,張 亮,張 靜. ASP. NET +SQL Server 數(shù)據(jù)庫開發(fā)與實例[M].北京:清華大學出版社,2006:70-93.