[摘 要] 本文闡述了基于開源技術的高校實驗教學綜合管理平臺的開發過程。對系統的目標需求、開發模式、系統功能模塊、開發技術和關鍵難點分別做了詳細的介紹。系統運行在Web模式下,利用開源技術實現三層架構,具有優良性能及可擴展性,對于提升實驗教學的管理水平具有很好的現實意義。
[關鍵詞] 實驗教學;管理信息系統;開源技術;系統設計
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2010 . 05 . 052
[中圖分類號]G434;C931.6 [文獻標識碼]A [文章編號]1673 - 0194(2010)05 - 0127 - 03
一、引言
管理學院是我校學生人數最多的學院之一,單是本科就有7個專業、近80個班級,再加上普研、MBA、EMBA、工程碩士等,上機人數非常龐大。同時在課程體系的設置上強調管理理論與實際的結合、促進學生發展動手能力,因此很多課程都有實驗教學內容或是實踐教學環節。這些實驗教學大多是在機房完成,通過計算機驗證或是軟件模擬,因此實驗教學就對實驗室的建設提出了很高的要求。經過多年努力,結合教育部修購基金、江蘇省實驗教學示范基地等項目的資助下,實驗室的硬件條件有了飛躍發展,在網絡條件、硬件數目、硬件檔次、軟件規模、場地環境等方面達到了教學的要求。但是與硬件發展不相匹配的是,實驗教學管理水平沒有跟上。很多管理環節基本還是半手工模式,既影響了實驗教學的效率,也使實驗室管理人員不堪重負。在這種背景下,我們著手開發了實驗教學綜合管理平臺。
二、系統的需求分析
系統的目標在于建立一個開放式的實驗教學管理平臺,在校園內任何一臺聯網計算機上,實驗室老師可以對整個實驗室的教學活動進行管理,如排課,調課等;任課老師可以進行正常的實驗教學,包括確定課程的總體內容以及每一堂實驗課的具體安排,并檢查實驗進度,審批學生實驗報告,登錄學生實驗成績;學生則可以通過這個平臺進行實驗項目的相關查詢,并上傳實驗報告。另外,針對開放性實驗,允許教師或學生提前預約上機時間,由系統生成上機時間表。系統必須有相應的安全保障,避免預約信息資料的丟失或破壞,以及實驗成績不被篡改;還要具有很強的統計及報表輸出功能,同時能夠建立起有效的師生互動渠道。
對照這些目標,經過仔細分析,我們確定了以下需求:
◆ 教師能夠通過系統錄入培養計劃、教學大綱、實驗指導書等教學文件。
◆ 教師能夠網上填寫周學時分配表、教學日歷、教學任務書。
◆ 系統根據填寫的課時分配表自動計算約束條件,隨后生成合適的實驗課表。
◆ 實驗室老師能夠適當調整實驗課表。
◆ 教師和學生可以通過網上預約實驗,由系統自動找出空閑機時、排出課表。
◆ 教師和學生可以查詢相關信息并進行統計和匯總。
◆ 系統具備完善的身份管理與權限管理。
◆ 學生可以通過系統提交實驗報告,教師批閱給出成績并由系統進行匯總。
◆ 教師可以利用系統發布信息、在線答疑。
三、系統開發模式與工具選擇
1. 開發模式
Web從誕生之刻就顯示出強大的生命力。從開始只有文字內容的Web,到后來支持音頻、視頻的Web,再到后來可以動態更新內容的Web,作為一種表達信息的載體,Web當之無愧的成為日常生活中不可或缺的一部分。不僅如此,基于B/S架構的Web更是以其易于訪問、易于部署等諸多優點改變了應用程序的發展方向。近幾年,伴隨著高校的信息化建設,越來越多的應用開始放到了互聯網上,給學生和老師帶來了極大的方便。例如學生可以很容易地通過校園網查閱圖書館新書、進行續借,也可以登錄教學系統查看自己的選課和學習成績等。我們的實驗教學管理平臺自然遵循這一趨勢,不管是在宿舍、教室、辦公室還是家中,都允許用戶通過互聯網,使用瀏覽器來完成操作。特別是近兩年,伴隨著AJAX等技術的興起,Web的表現能力大大增強,效果直逼傳統桌面應用程序。因此采用Web模式具備相當大的升級空間。
2. 開源技術
開源技術的發展勢頭越來越猛,它可以降低軟件成本,提高使用安全性并降低盜版的使用率,所以很多國家都在積極推動開源軟件的使用。
在Web開發領域,隨著開源潮流的蓬勃發展,開放源代碼的LAMP已經與J2EE和.Net商業軟件形成三足鼎立之勢。LAMP無論是性能、質量還是價格都將成為企業、學校、政府信息化所必須考慮的平臺。鑒于此,我們在系統開發中采用了LAMP這一組合。
LAMP是一個縮寫,它指一組常用于來搭建動態網站或者服務器的開源軟件,包括Linux操作系統,Apache服務器,MySQL數據庫,PHP、Perl或者 Python編程語言。
Linux 操作系統以其穩定性和安全性著稱。互聯網上許多大型網站都是運行在Linux之上,作為服務器的linux操作系統可以不啟動圖形界面,這樣硬件的性能可以得到最充分的利用。
Apache應用服務器作為開源軟件的杰出代表,具有非常良好的擴展性。它大部分的功能都是通過模塊來實現的,以其高效穩定而深得大家的喜愛。
MySQL數據庫服務器是少有的能與Oracle、SQL-Server這些商業數據庫同臺較量的開源數據庫,以其輕小快速著稱,可以滿足絕大多數應用場合的需要。
PHP誕生于1994年,雖然是3P(Perl、Python、PHP)中誕生最晚的,卻是使用人員最多的一種編程語言。PHP容易上手,在Web開發中尤其具有獨特的優勢,所以在編程語言排行榜上長期居于前列。
Perl 一般被稱為“實用報表提取語言”。Perl可以把復雜工作簡單化,同時又不失去處理復雜問題的能力。這種語言很容易在任何現代操作系統上編譯和運行,具備良好的跨平臺特性。
作為開源軟件的組合,LAMP最大的優勢就是它的開放性。對開發人員來說,開放程度越高,其選擇也就越多,去描述需求的邏輯結構更自由。
四、軟件架構及功能模塊
1. 軟件架構
系統的結構采用了目前流行的三層結構,即數據訪問層、業務邏輯層、頁面表現層。
數據訪問層提供數據從數據庫到數據對象的映射。數據訪問層只做與數據庫打交道的工作。數據訪問層不對業務邏輯做過多的判斷,其任務就是為了把中間層傳過來的數據保存在數據庫中。
業務邏輯層,這部分是系統的核心。業務邏輯層處理應用程序的業務邏輯和業務校驗。
頁面表現層,這部分處理界面的展示,例如控件的布局,同時負責把界面上控件內的數據讀取下來。
2. 功能模塊分析
系統主要功能模塊如圖1所示,包括計劃內實驗和開放實驗兩部分。此外還有后臺管理模塊和學生管理模塊。

(1) 計劃內實驗管理模塊。此模塊是系統最重要的部分,具體又分為實驗排課和教學管理兩部分。實驗排課的主要功能為:人工錄入或者自動讀取數據源(通常是Excel表格)中的實驗教學大綱等數據,教師根據實驗教學大綱填寫詳細的周學時分配表,模塊自動計算出約束條件,再由實驗室老師根據需要做適當調整,最終生成完整的實驗課表。實驗教學管理則是教師布置實驗內容的平臺,學生按照要求完成實驗,通過這一平臺提交實驗報告,由教師在線批改或者離線下載。
(2) 開放實驗模塊。通常情況下,實驗教學大綱中的實驗課時要遠遠超出實驗課程安排的課時數,這就需要把某些實驗作為開放實驗來做;另外學生也會有自己的一些實驗需要。通過開放實驗模塊,學生和老師就能根據需要安排一些課程內沒有安排的實驗。學生或老師首先在系統里登記開放實驗申請,由系統給出初步安排,然后實驗室老師進行審核;如果通過審核,則在系統上公布,如果不能通過,則回復郵件說明不能通過的原因。申請者繼續修正申請表,直到通過審核為止。
(3) 后臺管理模塊。后臺管理模塊主要為教師提供一定的管理功能。考慮到本系統使用范圍大、涉及面廣,因此設置了教師、管理員、系統管理員3個角色,系統在安全方面做了相應處理。如系統管理員給管理員授權安排工作,管理員給教師安排工作等。而根據登錄用戶的權限的不同,系統提供了相應范圍的功能。例如以教師身份登錄后,一個教師只對本人的實驗課程具有操作權限,對其他老師的課程沒有操作權限;教師也無權更改課表而只能通過管理員進行。
(4) 學生身份管理及上機時間統計模塊。由于學生人數眾多,因此上機時都是通過刷卡登記。本模塊負責學生上機賬號的創建、修改、刪除等維護工作,并從刷卡終端讀取卡號信息和時間信息,以備教師考勤或實驗室統計上機時間。
五、系統實現的關鍵技術
1. 用戶界面技術
在用戶界面的實現上,主要使用了兩種技術。
第一種技術是通過Smarty模板實現了HTML前臺代碼和PHP邏輯代碼的分離。眾所周知,PHP的一個非常方便的特點是可以在HTML代碼中直接內嵌PHP代碼,這在很大程度上方便了初學者的使用,但這樣做的后果是邏輯代碼和頁面代碼攪在一起,給程序的可讀性和可維護性都造成了很大的影響。采取Smarty模板,本身就是分層設計的一個良好體現;頁面代碼和程序代碼的分離,不僅可以實現代碼的重用,而且有利于網站的可擴展性和可維護性。簡單講,就是要使PHP程序員同美工分離,程序員改變程序的邏輯內容不會影響到美工的頁面設計,美工重新修改頁面也不會影響到程序的程序邏輯,這在多人合作的項目中尤為重要。而之所以采取Smarty作為模板是因為Smarty具有很多的優點,例如速度快、編譯方式、緩存技術、插件技術等。
第二種主要的技術是DIV + CSS。其核心思想在于結構和表現的分離。HTML頁面只負責結構和內容,而CSS負責表現。這樣做有許多好處,首先大大減少了代碼量,分離后不僅有利于開發,而且便于維護;其次,分離后網站的改版就非常容易,只需重寫一套CSS模板就可以了。
2. 正則表達式的運用
隨著互聯網技術的迅速發展和普及,網絡的應用范圍迅速擴大,應用程序所能接收的信息也越來越多樣化。實際應用中,經常需要對大量的信息進行處理和驗證,然而,一般的驗證和處理方法需要消耗大量的資源,而正則表達式則是用來處理和驗證這些信息的高效工具。正則表達式在程序設計語言中有著廣泛的應用,特別是用來處理字符串,如匹配字符串、查找字符串、替換字符串等。正則表達式用某種模式去匹配一類字符串,比精確匹配更能應對復雜的模式匹配。
系統中主要有兩處用到了正則表達式。第一處是需要把50多門課程的實驗教學大綱等教學文件錄入系統中,如果完全采取人工的方式無疑耗時耗力,而且容易出錯;采用正則表達式以后事情就變得很輕松了,只需把需要的文本按特定的格式匹配出來,然后用Perl寫入數據庫即可。
第二處是代碼生成器的制作。依靠正則表達式的強大匹配功能,我們可以很容易地根據需要制作出各種模板,包括數據訪問層的和頁面表現層的。因為這部分代碼本身就有很大的重復性,所不同的只是每次從數據庫中讀出的數據而已,因此只要用正則表達式把所需代碼替換掉即可,這樣就在很大程度上把我們從程序開發的重復勞動中解脫出來,從而投入到更有意義的邏輯代碼編寫中。
3. 代碼生成器的實現
采用分層開發后,鑒于數據訪問層和頁面表現層有許多重復的代碼,所以首先使用Perl開發了一個PHP的代碼生成器。只要在設計數據庫的時候遵循一定的規范,便可以使用工具生成大部分的重復代碼,加快了網站開發的進度。采用Perl來開發這個工具主要是考慮到Perl強大的文本處理能力,對正則表達式的內在支持使得代碼生成器在工作時更加得心應手。
4. 數據庫訪問接口的實現
數據訪問層提供程序邏輯到數據庫的訪問接口。基本上每一個數據庫的表都有一個數據訪問實體類與之對應并提供相應的CRUD操作,這樣程序在需要的時候只需調用相應的接口即可,在最大限度上實現了代碼的復用。同時這部分的代碼具有很大的重復性,所以基本是寫好模板以后,由Perl的代碼生成器從數據庫讀取相應的信息,然后根據模板生成訪問代碼。
六、結束語
由于采用了開源技術,項目的總費用顯著降低。同時開源軟件的強大與靈活,再加上豐富的資源,使得項目開發進度超過預期。系統投入使用后,實驗教學的效率得到了很大提高,杜絕了以往一些不規范的做法,提高了整體的管理水平。下一步,我們將根據教師和學生的反饋,進一步完善功能,力爭使系統貼近用戶,成為實驗教學不可或缺的得力助手。
主要參考文獻
[1] [美]佛瑞德. 精通正則表達式[M].第3版.余晟,譯. 北京:電子工業出版社,2007.
[2] [英]巴德,等.精通CSS:高級Web標準解決方案[M].陳劍甌,譯.北京:人民郵電出版社,2006.
[3] [美]施瓦茨,等.Perl語言入門[M].第4版.南京:東南大學出版社,2007.
[4] 戴玉蓉,等.適應開放式創新性實驗教學的信息化建設與管理[J].實驗技術與管理,2008(10).
[5] 李泰峰,等.基于Web的創新性實驗教學管理系統的設計與實現[J].電子科技大學學報:社會科學版,2008(1).
[6] 沈士根.一種面向現代遠程教育的實驗室模式研究與實踐[J].中國教育信息化,2008(1).