摘要:基于網絡數據庫技術的實驗教學管理系統,實現了實驗課程和實驗項目的信息化管理,密切了教研室和教學保障部門的聯系,為實驗教學計劃的順利開展創造了有利的條件。該系統使用數據庫技術和網絡編程技術,綜合考慮網絡安全,充分利用現有的網絡資源,結合實驗教學的特點,為學校教學后勤保障的決策提供了支持。
關鍵詞:網絡數據庫;實驗教學;后勤保障
中圖分類號:G434文獻標識碼:A文章編號:1009-3044(2008)35-2421-03
The Design and Realization of the Management System of the Experiment Teaching Based on the Web
YU sheng, WANG Du-xiang, ZHANG Han-wei
(Bengbu Naval Petty Officer Academy, Bengbu 233012, China)
Abstract: The Management System of the experiment teaching based on the network database, carried out the information-based management of experiment course and experiment item, close contacted the staff room and the teaching guarantee section, created a beneficial condition for the carrying on the teaching plan. The System adopted database technique and network program design technique, comprehensive considered network safety, made use of the existing network resources, combined the characteristics of experiment teaching, provided support for the policy of the logistic guarantee of the school teaching.
Key words: the network database; the experiment teaching;the logistic guarantee
1 引言
當前,部分院校正在進行教學改革。由于實驗課程數目較多,而且每門實驗課程包含大量的實驗項目,因此,教學后勤保障部門難以及時、準確、完整的了解實驗教學信息,從而為學校的教學保障帶來困難,甚至有可能造成正常的教學無法進行。實驗教學管理系統就是在這種情況下研制的,它將教研室、后勤部門和學校管理部門緊密的聯系在一起。
2 系統分析與設計
2.1 系統開發環境
本系統開發工具采用Microsoft Visual Studio 2005和DreamWeaver,后臺數據庫Microsoft SQL Server2000,開發語言采用ASP.NET。與ASP相比,ASP.NET在技術上具有較大的優勢,由于ASP頁面每次打開都必須經過先編譯后解釋的過程,所以頁面在反復打開時速度沒有任何提升,而ASP.NET頁面只需要一次編譯后不需要重新編譯,直到該頁面被修改或Web應用程序重新啟動,這使得在多次訪問時速度有了極大的提升。而且,ASP.NET采取代碼與HTML語言分離的方式,使得代碼更易于編寫,結構更清晰,降低了系統的開發與維護的復雜度和費用。
2.2 系統功能
實驗教學管理系統可以在Windows 2000/2003Server操作系統平臺上運行,Web服務器為IIS。系統的功能結構圖如圖1所示,管理員能夠對部系、教研室、實驗室、課程、專業實現添加、刪除、更新操作。這些信息相互之間并非孤立的,而是環環相扣,緊密的聯系在一起,例如教研室隸屬哪個部系,實驗室由哪個教研室管理,課程由哪個教研室開設等等。教研室登錄后,根據后臺錄入的信息(課程、實驗室、專業等),實現實驗課程、實驗項目信息的添加、刪除、更新操作。管理員能夠分類(如按專業、單位等)顯示教研室錄入的實驗課程、實驗項目信息,并對這些信息進行分類匯總、統計,將結果輸出到Excel、word中。
本系統界面友好、操作簡單、功能完善、通用性強,無須作任何修改,即可適用于大部分大中專院校。
2.3 數據庫設計
1) 學校有多個部系,各個部系由唯一的名字標識;每個部系下轄多個教研室,各個教研室由唯一的名字標識;教研室管理若干個實驗室,每個實驗室由唯一的名字標識。
2) 教學課程由教研室組織實施,課程包括教學時數,課程性質(專業課、專業基礎課、基礎課)。
3) 如果教學課程存在實驗環節,則該課程定義為實驗課程,實驗課程包括實驗時數、考核方式、占課程分數百分比、應開實驗項數、實開實驗項數、選開實驗項數、實開項目分類數以及開選專業。
4) 每門實驗課程含有多個實驗項目,各個實驗項目包括實驗項目名稱、實驗時數、實驗性質(演示、驗證、模擬、綜合、設計、操作)、目的要求、主要內容、實驗場地、主要設備,如果實驗項目未開,則必須輸入未開原因。
5) 每個部系管理若干專業,每個專業開選了若干門實驗課程。
根據以上分析,本系統設計的數據庫E-R圖如圖2所示。
3 相關技術
3.1 ASP.NET SESSION
當一臺WWW服務器運行時,可能有多個同時瀏覽正在運行的網站。當每個用戶首次與這臺WWW服務器建立連接時,它就與這臺服務器建立了一個Session(會話),同時服務器會自動為其分配一個SessionID,用以標識用戶的唯一身份。
除了SessionID,在每個Session中還包含很多其他信息。對于ASP.NET的程序而言,可以通過訪問ASP/ASP.NET的內置Session對象,為每個用戶存儲各自的信息。在建立系統時,系統會自動生成“Global.aspx”文件。“Global.aspx”包含兩個函數:“Session_Start”和“Session_End”。會話建立后,系統執行“Session_Start”函數,因此,在此函數中,可以對Session對象初始化。例如,本系統需要記錄已登錄教研室的ID,可以在該函數中加入初始化代碼:Session[\"StaffRoomID\"] = 0。教研室登錄成功后,需使用Session對象記錄教研室ID:Session[\"StaffRoomID\"] = strStaffRoomID,該Session對象在整個會話期間一直有效。會話結束后,系統執行“Session_End”函數,在此函數中,必須注銷已聲明的Session對象,注銷代碼如下:
Session[\"StaffRoomID\"] = 1;
Session.Clear();
Session.Abandon();
3.2 ASP.NET與office集成
實驗信息相關統計結果需要打印輸出,而直接在Web上打印比較困難,效果差。如果利用水晶報表或第三方工具來打打印,相對而言,效果較好,但是,編程復雜,難以控制。此外,可以將數據庫中的數據輸出到office組件(Excel、Word等)中,然后,在office組件中打印。采用這種方式,打印效果好,方便保存,而且使用靈活。
ASP.NET通過主interop程序集(PIA)來使用由Microsoft office 2003應用程序公開的COM對象。下面,本文以Excel為例,闡釋如何使用這些COM對象。
在Microsoft Visual Studio 2005的解決方案管理器中,點擊鼠標右鍵,在彈出的快捷菜單中,單擊“添加引用…”,打開添加引用對話框,如圖3所示。選中COM選項卡下的“Microsoft Office 11.0 Object Library”,單擊確定按鈕,添加Microsoft.Office.Core的引用。
在程序中引入命名空間:“Microsoft.Office.Core”和“Microsoft.Office.Interop.Excel”,分別定義Excel、工作薄、工作表三個對象,代碼如下:
excel = new ApplicationClass();//定義Excel對象
xBk = excel.Workbooks.Add(true);//定義工作薄
xSt = (Microsoft.Office.Interop.Excel.Worksheet)xBk.ActiveSheet;//定義工作表
使用下面的語句,可以將數據輸出到Excel中任一單元格,其中RowIndex為行標,ColIndex為列標,temp為任意變量。
excel.Cells[RowIndex, ColIndex] = \"'\" + temp;//將數據輸入到Excel單元格中
由于結果文件是在服務器中生成,所以最終結果必須發送到客戶端,發送完成后,刪除服務器端生成的文件。這種輸出結果方法最大的優點是能夠控制輸出格式,如單元格跨行居中,文字的大小、顏色等等,用戶不需要作任何格式的調整,就可以直接打印。
3.3 網絡數據庫安全
Web數據庫是數據庫技術與Web技術的結合,其應用越來越廣泛,然而,由于網絡的共享性和復雜性,其所面臨的安全問題也日漸突出。通過分析和歸納常見的網絡入侵技術,本系統主要從以下三個方面來提升系統的安全級別。
3.3.1 改進SQL Server數據庫系統安全
采用默認方式安裝的SQL Server數據庫,存在許多安全漏洞,這些漏洞極有可能遭受到網絡攻擊,因此,必須對SQL Server數據庫進行安全配置。
1) 修改管理員密碼
在默認情況下,SQLServer數據庫會創建一個sa的管理員帳戶,并且密碼為空,可通過下述方式來修改密碼:依次點擊“服務器→安全性→登錄”,選中“sa”用戶,單擊鼠標右鍵,選中快捷菜單中的“屬性”,在彈出的“登錄屬性”對話框中修改密碼。
2) 監控連接
網絡入侵者必須通過SQL Server數據庫建立連接,才能盜取數據信息,所以監控連接是保證數據庫安全的一個好方法。對于一個大型的運行中的SQL Server,建立的連接可能很多,但是監控那些失敗了的連接確有必要,因為它們可能代表企圖進入的一些嘗試。通過下述方式,可將失敗的連接登錄上企業管理器:右擊服務器,選擇屬性;點擊安全標簽,在“審核級別”之下選擇“失敗”;停止和重新啟動服務器。
3.3.2 防SQL注入
由于程序員沒有對用戶輸入數據的合法性進行判斷,使得用戶通過提交一段數據庫查詢代碼(一般是在瀏覽器地址欄進行,通過正常的www端口訪問),根據服務器返回的結果,收集程序及服務器的信息,獲取資料,這就是SQL注入。
本系統對客戶端提交的各種變量參數進行仔細的檢測,一旦發現客戶端提交的參數中有單引號、連字符等用于SQL注入的常用字符時,立即停止執行代碼并轉向出錯頁面。
在登錄頁面中,插入正則表達式驗證控件,屬性(驗證表達式)設置為:ValidationExpression=\"^[a-zA-Z0-9]{1,10}$\",正則表達式被用于限定輸入的名字為字母(允許大寫字母和小寫字母)和數字,此外,輸入的字符長度被限定在10個字符,脫字符(^)表示匹配字符串開始符,美元符號($)表示匹配字符串的結束符。
同時,系統在服務器端檢測用戶輸入的合法性,來彌補客戶端驗證機制脆弱的安全性。在客戶端,攻擊者完全有可能獲得網頁的源代碼,修改驗證合法性的腳本(或者直接刪除腳本),然后將非法內容通過修改后的表單提交給服務器。因此,要保證驗證操作確實已經執行,必須在服務器端也執行驗證。
3.3.3 數據加密
保護數據安全最關鍵的技術就是數據加密,即使數據不幸泄露或丟失,也難以被破譯。數據庫系統的加密方式主要有三種:庫外加密、庫內加密和硬件加密。本系統采用庫外加密,即先將數據在內存中使用DES、MD5等加密算法進行加密,然后文件系統把每次加密后的內存數據寫入到數據庫文件中去,讀入時再逆方向進行解密。使用這種方式加密,系統管理員必須妥善的保護密鑰。
同時,本系統采用了其它的一些技術,如ajax、java腳本等等,極大的提高了系統的性能。
4 結束語
該系統已能滿足教研室和教學管理部門的一般使用需求,今后,也可以繼續擴展系統的功能,例如動態統計實驗室的使用情況、學員自選實驗課的日常安排等,進一步完本系統。
參考文獻:
[1] 李玉林,王巖.ASP.NET 2.0 網絡編程[M].北京:清華大學出版社,2006.
[2] 林邦杰.深入淺出C#程序設計[M].北京:中國鐵道出版社,2006.
[3] Silberschatz A.數據庫系統概念[M].揚冬青,譯.北京:機械工業出版社,2002.
[4] Stallings W.密碼編碼學與網絡安全[M].胥光輝,譯.北京:電子工業出版社,2002.
[5] 陳彥峰,張長春.電腦黑客攻防[M].北京:航空工業出版社,2003.