【摘要】為促進(jìn)高校實(shí)驗(yàn)管理和實(shí)驗(yàn)教學(xué)的信息化建設(shè),開發(fā)了B/S與C/S模式相結(jié)合的實(shí)驗(yàn)室信息化管理系統(tǒng)。該系統(tǒng)建立分布式網(wǎng)絡(luò)化的實(shí)驗(yàn)室管理模式,實(shí)現(xiàn)了實(shí)驗(yàn)項(xiàng)目的網(wǎng)上選課與預(yù)約,并通過指紋識別機(jī)與智能讀卡器實(shí)現(xiàn)了實(shí)驗(yàn)室的自動化管理。
【關(guān)鍵詞】實(shí)驗(yàn)室管理;實(shí)驗(yàn)教學(xué);B/S;C/S;ASP.NET 2.0
【中圖分類號】G482 【文獻(xiàn)標(biāo)識碼】B 【論文編號】1009—8097 (2008)02—0101—04
一 引言
實(shí)驗(yàn)室信息化管理系統(tǒng),是針對高等院校實(shí)驗(yàn)室管理而設(shè)計(jì)開發(fā)的,基于數(shù)據(jù)庫的實(shí)驗(yàn)室網(wǎng)絡(luò)化綜合管理系統(tǒng)。開發(fā)該系統(tǒng)的初衷是改變目前單機(jī)輔助模式的實(shí)驗(yàn)室管理現(xiàn)狀,建立分布式網(wǎng)絡(luò)化的管理模式[1],在培養(yǎng)學(xué)生自主學(xué)習(xí)意識的同時(shí),實(shí)現(xiàn)院系各級實(shí)驗(yàn)室管理人員通過網(wǎng)絡(luò)協(xié)作進(jìn)行實(shí)驗(yàn)室管理。
該系統(tǒng)下設(shè)實(shí)驗(yàn)教學(xué)管理、儀器設(shè)備管理、實(shí)驗(yàn)室管理三個(gè)子系統(tǒng),實(shí)現(xiàn)了實(shí)驗(yàn)教學(xué)的網(wǎng)上管理、儀器設(shè)備狀態(tài)的實(shí)時(shí)監(jiān)控與各項(xiàng)報(bào)表的快速生成、實(shí)驗(yàn)室使用情況的自動化統(tǒng)計(jì)等功能。系統(tǒng)開發(fā)采用基于.NET平臺的三層體系架構(gòu),具有良好的可擴(kuò)展性。
二 系統(tǒng)設(shè)計(jì)
1 系統(tǒng)硬件平臺結(jié)構(gòu)
圖1為系統(tǒng)硬件平臺結(jié)構(gòu)圖,該系統(tǒng)硬件平臺由數(shù)據(jù)庫服務(wù)器、Web服務(wù)器、終端PC機(jī)、指紋識別機(jī)和智能讀卡器構(gòu)成。
于系統(tǒng)整體采用B/S結(jié)構(gòu)體系,各設(shè)備間通過局域網(wǎng)相互連接,用戶使用瀏覽器完成網(wǎng)上教學(xué)管理和辦公等操作。實(shí)驗(yàn)室管理部分結(jié)合C/S模式[2]開發(fā)了實(shí)驗(yàn)室門禁軟件,客戶端PC機(jī)通過采集讀卡器或指紋機(jī)獲取的信息,自動完成學(xué)生身份認(rèn)證,記錄上機(jī)時(shí)間和地點(diǎn),統(tǒng)計(jì)實(shí)驗(yàn)室使用情況。
2 系統(tǒng)軟件整體框架
實(shí)驗(yàn)室信息化管理系統(tǒng)下設(shè)實(shí)驗(yàn)教學(xué)管理、儀器設(shè)備管理、實(shí)驗(yàn)室管理三個(gè)子系統(tǒng)。各子系統(tǒng)結(jié)構(gòu)如圖2所示。
其中,實(shí)驗(yàn)教學(xué)管理子系統(tǒng)將完整的實(shí)驗(yàn)課程開設(shè)流程網(wǎng)絡(luò)化,自動采集學(xué)生通過網(wǎng)絡(luò)選課、實(shí)驗(yàn)預(yù)習(xí)、實(shí)驗(yàn)預(yù)約的全部數(shù)據(jù),并實(shí)現(xiàn)教師工作量自動統(tǒng)計(jì)、實(shí)驗(yàn)報(bào)告和成績管理等功能。儀器設(shè)備管理子系統(tǒng),主要實(shí)現(xiàn)儀器設(shè)備的檔案管理、設(shè)備使用記錄及各級實(shí)驗(yàn)室管理人員間各類報(bào)表的報(bào)批功能。實(shí)驗(yàn)室管理系統(tǒng)能夠自動統(tǒng)計(jì)各實(shí)驗(yàn)室、機(jī)房的使用記錄,同時(shí)可通過記載學(xué)生累計(jì)上機(jī)學(xué)習(xí)時(shí)間來考察學(xué)生自主學(xué)習(xí)的能動性。
3 用戶權(quán)限及功能劃分
系統(tǒng)用戶共分為四種身份:系統(tǒng)管理員、實(shí)驗(yàn)中心管理者、實(shí)驗(yàn)教師和學(xué)生。各級用戶根據(jù)自身管理權(quán)限,通過統(tǒng)一入口經(jīng)過身份認(rèn)證登錄不同界面。
圖3為用戶權(quán)限示意圖,在各個(gè)子系統(tǒng)內(nèi)部,不同用戶可根據(jù)自身權(quán)限執(zhí)行相應(yīng)操作。系統(tǒng)管理員主要負(fù)責(zé)數(shù)據(jù)維護(hù),保證系統(tǒng)的正常運(yùn)行;實(shí)驗(yàn)中心管理者通過監(jiān)控、查詢功能統(tǒng)籌把握整個(gè)實(shí)驗(yàn)中心教學(xué)、工作情況;實(shí)驗(yàn)教師能夠監(jiān)督、評價(jià)學(xué)生學(xué)習(xí)情況,并通過網(wǎng)絡(luò)進(jìn)行實(shí)驗(yàn)室管理;學(xué)生可以登錄選課系統(tǒng)自主制定學(xué)習(xí)計(jì)劃,獲取學(xué)習(xí)資源,完成學(xué)習(xí)任務(wù)。
三 系統(tǒng)實(shí)現(xiàn)
該系統(tǒng)開發(fā)環(huán)境為Microsoft Visual Studio 2005,編程語言選擇C# 2.0。程序設(shè)計(jì)基于.NET 三層體系架構(gòu),分別為:表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層。分層開發(fā)模式可使得模塊重用性、程序可維護(hù)性、物理分布的靈活性以及開發(fā)的并行性得到良好保證[3]。
1 實(shí)驗(yàn)教學(xué)子系統(tǒng)
實(shí)驗(yàn)教學(xué)子系統(tǒng)改變了以往傳統(tǒng)實(shí)驗(yàn)教學(xué)模式,將實(shí)驗(yàn)項(xiàng)目的開設(shè)流程網(wǎng)絡(luò)化,從實(shí)驗(yàn)時(shí)間和實(shí)驗(yàn)內(nèi)容的選擇方面賦予學(xué)生一定的自由度[4]。系統(tǒng)采用學(xué)生自主安排學(xué)習(xí)進(jìn)度,教師全程監(jiān)督指導(dǎo)的方式開展實(shí)驗(yàn)教學(xué),有助于培養(yǎng)學(xué)生的學(xué)習(xí)主動性和能動性,進(jìn)而達(dá)到因材施教的理想教學(xué)效果。
(1) 教學(xué)實(shí)時(shí)監(jiān)控功能的實(shí)現(xiàn)
實(shí)驗(yàn)教師在開課當(dāng)天,可以查看到學(xué)生的所有學(xué)習(xí)記錄,包括:學(xué)生是否在線、學(xué)生所在實(shí)驗(yàn)臺位置、學(xué)生當(dāng)前實(shí)驗(yàn)進(jìn)度、實(shí)驗(yàn)報(bào)告填寫情況、學(xué)生預(yù)習(xí)測評成績等信息。
教學(xué)實(shí)時(shí)監(jiān)控功能,通過跟蹤記錄各學(xué)生學(xué)習(xí)進(jìn)度情況,在數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)表存儲相應(yīng)信息而實(shí)現(xiàn)。數(shù)據(jù)庫中的“Student_Exp”數(shù)據(jù)表結(jié)構(gòu)如表1所示,記錄了學(xué)生與其所選實(shí)驗(yàn)的對應(yīng)關(guān)系,學(xué)生每進(jìn)入一個(gè)學(xué)習(xí)狀態(tài),系統(tǒng)均通過數(shù)據(jù)表中“Status”字段加以標(biāo)識,實(shí)時(shí)跟蹤學(xué)生學(xué)習(xí)全過程。
(2) 學(xué)生信息批量導(dǎo)入功能的實(shí)現(xiàn)
由于每個(gè)學(xué)期之初的數(shù)據(jù)庫維護(hù)工作負(fù)擔(dān)較重,因而系統(tǒng)設(shè)計(jì)并開發(fā)了信息批量導(dǎo)入功能。即在Excel文件字段與數(shù)據(jù)庫中相應(yīng)數(shù)據(jù)表字段匹配的情況下,系統(tǒng)管理員可以將預(yù)先制作好的Excel格式的數(shù)據(jù)信息直接通過瀏覽器導(dǎo)入到系統(tǒng)后臺數(shù)據(jù)庫。
此項(xiàng)功能通過使用FileUpload、GridView控件,結(jié)合服務(wù)器文件系統(tǒng)訪問操作而實(shí)現(xiàn)。
● 首先利用FileUpload控件將需要導(dǎo)入的Excel文件上傳至服務(wù)器端。
● 建立OleDbConnection,從Excel文件中讀取數(shù)據(jù)表。
● 將數(shù)據(jù)表的讀取內(nèi)容設(shè)置為GridView控件的數(shù)據(jù)源。
● 從網(wǎng)頁中顯示的GridView控件中,采用循環(huán)結(jié)構(gòu)將數(shù)據(jù)逐行寫入數(shù)據(jù)庫,同時(shí)刪除服務(wù)器端的Excel文件,即可完成數(shù)據(jù)批量導(dǎo)入操作。
2 儀器設(shè)備管理子系統(tǒng)
該子系統(tǒng)主要實(shí)現(xiàn)儀器設(shè)備狀態(tài)查詢和各項(xiàng)報(bào)表生成功能。實(shí)驗(yàn)教師可根據(jù)實(shí)驗(yàn)室情況填寫設(shè)備維修、報(bào)廢、耗材申請等報(bào)表;中心管理者將就教師提交的報(bào)表予以批閱。各項(xiàng)報(bào)表的網(wǎng)絡(luò)化管理,避免了以往傳統(tǒng)紙質(zhì)文件報(bào)表不易于保存,審批過程繁瑣等問題,在較大程度上提高了實(shí)驗(yàn)室工作效率,同時(shí)也降低了辦公成本。
(1) 報(bào)表生成功能的實(shí)現(xiàn)
該系統(tǒng)生成的電子報(bào)表均由CrystalReport水晶報(bào)表制作。水晶報(bào)表是Visual Studio 2005集成的報(bào)表開發(fā)工具,利用它能夠在 Windows 環(huán)境中建立簡報(bào)品質(zhì)的精良報(bào)告,電子報(bào)表同時(shí)具有打印和導(dǎo)出成Word、Excel等文件的功能,便于日后存檔。
在程序中引用水晶報(bào)表,需執(zhí)行以下步驟:
● 在網(wǎng)頁中添加CrystalReportViewer控件。
● 在項(xiàng)目中添加數(shù)據(jù)集PrintDataSet.xsd 和報(bào)表文件PrintReport.rpt。
● 在PrintDataSet里添加數(shù)據(jù)表DataTable1,向數(shù)據(jù)表中添加要顯示的數(shù)據(jù)列。
● 將DataTable1設(shè)置為PrintReport.rpt報(bào)表文件的數(shù)據(jù)源,把各數(shù)據(jù)列添加到報(bào)表中,并編輯報(bào)表文件頁面格式。
● 添加Page_Load事件處理程序的代碼。
ReportDocument doc = new ReportDocument();//建立報(bào)表實(shí)體
doc.Load(Server.MapPath(\"~/PrintReport.rpt\"));//加載報(bào)表
tableItem = ItemBll.ShowItemByID(Item);//讀取數(shù)據(jù)庫
doc.SetDataSource(tableItem);//將數(shù)據(jù)源與報(bào)表綁定
CrystalReportViewer1.ReportSource = doc;//將報(bào)表通過水晶報(bào)表查看器顯示
(2) 報(bào)表審批功能的實(shí)現(xiàn)
報(bào)告表審批功能借助ASP.NET 2.0新增的用戶管理功能實(shí)現(xiàn)。ASP.NET 2.0有一套完備的用戶管理策略,系統(tǒng)在實(shí)現(xiàn)報(bào)表審批功能時(shí),應(yīng)用ASP.NET的aspnet_Roles數(shù)據(jù)表判斷當(dāng)前用戶身份,對于報(bào)表報(bào)批人員與審批人員分別導(dǎo)向不同界面執(zhí)行操作。在用戶注冊時(shí),系統(tǒng)對不同級別的用戶賦予了不同的角色,因而,盡管報(bào)表的申報(bào)與審批雙方用戶訪問的是同一數(shù)據(jù)源,仍可根據(jù)其所屬角色賦予不同的操作權(quán)限。
3 實(shí)驗(yàn)室管理子系統(tǒng)
該子系統(tǒng)下設(shè)實(shí)驗(yàn)室門禁讀卡器認(rèn)證軟件、機(jī)房指紋識別認(rèn)證軟件和實(shí)驗(yàn)臺控制軟件,共同實(shí)現(xiàn)實(shí)驗(yàn)室使用記錄的自動化統(tǒng)計(jì)。
(1) 實(shí)驗(yàn)室門禁讀卡器認(rèn)證軟件
該程序是以C/S模式開發(fā)的實(shí)驗(yàn)室終端軟件,用于在學(xué)生進(jìn)入實(shí)驗(yàn)室時(shí)對其身份進(jìn)行認(rèn)證,同時(shí)自動記錄合法用戶的登錄時(shí)間,并通過PC終端顯示此用戶累計(jì)實(shí)驗(yàn)時(shí)長。所有學(xué)生的登錄時(shí)長將作為實(shí)驗(yàn)室開放時(shí)間的統(tǒng)計(jì)依據(jù),存儲至本地?cái)?shù)據(jù)庫。此外,為綜合衡量所有實(shí)驗(yàn)室整體使用情況,系統(tǒng)中心數(shù)據(jù)庫同時(shí)也保存各個(gè)實(shí)驗(yàn)室讀卡器采集的數(shù)據(jù)備份。
智能讀卡器通過串口與實(shí)驗(yàn)室教師機(jī)相連,二者之間通信通過SerialPort類實(shí)現(xiàn)。由于SerialPort是.NET Framework 2.0集成的類,因而避免了以往Windows應(yīng)用程序?qū)崿F(xiàn)串口通信需引入第三方控件,或需利用API函數(shù)編寫自定義類的問題,使用該類進(jìn)行串口編程,程序運(yùn)行的效率和穩(wěn)定性可以得到保證。系統(tǒng)實(shí)現(xiàn)串口通信的操作步驟如下:
● 在引入System.IO.Ports命名空間之后,首先建立SerialPort類實(shí)例:
SerialPort Comm = new SerialPort(\"COM1\", 9600, Parity.None, 8, StopBits.One);
● 打開串口:
if (Comm.IsOpen == 1)
{
Comm.Open();
}
● 程序采用事件驅(qū)動模式,PC機(jī)在接收到讀卡器發(fā)送的數(shù)據(jù)后引發(fā)DataReceived事件,為此,需將接收數(shù)據(jù)的委托實(shí)例與數(shù)據(jù)接收事件向關(guān)聯(lián):
Comm.DataReceived+=new SerialDataReceivedEventHandler(Comm_DataReceived);
● 定義接收數(shù)據(jù)事件的處理函數(shù):
void Comm_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
Comm.Read(arrayRec, 0, 14); //將接收的數(shù)據(jù)讀取至arrayRec數(shù)組//觸發(fā)主線程事件,處理接緩沖區(qū)數(shù)據(jù)
this.Invoke(new GetReturnValueDelegate(CommDataReceProcess), new object[] {arrayRec});
}
● 定義主線程數(shù)據(jù)處理函數(shù),完成讀卡器數(shù)據(jù)認(rèn)證功能:
void CommDataReceProcess(char[] arrayRec)
{
……
}
(2) 實(shí)驗(yàn)臺控制軟件
學(xué)生經(jīng)刷卡認(rèn)證后到實(shí)驗(yàn)室內(nèi)開始實(shí)驗(yàn),需登錄實(shí)驗(yàn)臺控制軟件,判別其所在實(shí)驗(yàn)臺號是否與其網(wǎng)上預(yù)約信息相符。信息確認(rèn)正確后,學(xué)生即可讀取實(shí)驗(yàn)資料,并在實(shí)驗(yàn)過程中填寫實(shí)驗(yàn)報(bào)告。未經(jīng)實(shí)驗(yàn)臺控制軟件認(rèn)證的學(xué)生將無法獲得報(bào)告填寫入口,因而不能完成實(shí)驗(yàn)。此項(xiàng)功能的設(shè)計(jì)避免了因?qū)W生無序使用實(shí)驗(yàn)室而造成的實(shí)驗(yàn)效果不理想和儀器維護(hù)困難等問題。
(3) 機(jī)房指紋識別認(rèn)證軟件
為便于學(xué)生上網(wǎng)選課,實(shí)驗(yàn)預(yù)習(xí)機(jī)房限時(shí)開放,機(jī)房指紋識別認(rèn)證軟件工作原理與讀卡器認(rèn)證軟件類似,用于記錄機(jī)房使用情況。為滿足學(xué)生進(jìn)行網(wǎng)上實(shí)驗(yàn)預(yù)習(xí)的需要,預(yù)習(xí)機(jī)房每學(xué)期向?qū)W生提供指定的免費(fèi)上機(jī)時(shí)間。指紋識別軟件將于學(xué)生登錄時(shí)計(jì)算其累積上機(jī)時(shí)長,同時(shí)顯示機(jī)時(shí)使用情況,以提醒學(xué)生自主安排學(xué)習(xí)計(jì)劃。對于登錄系統(tǒng)后當(dāng)天忘記注銷的用戶,系統(tǒng)后臺運(yùn)行的Windows服務(wù)將于當(dāng)天晚間對其自動注銷,避免學(xué)生機(jī)時(shí)的無用耗盡。
四 結(jié)語
高校實(shí)驗(yàn)室信息化管理系統(tǒng)以實(shí)驗(yàn)管理的信息化帶動實(shí)驗(yàn)教學(xué)改革,在培養(yǎng)學(xué)生自主學(xué)習(xí)能力的同時(shí),簡化實(shí)驗(yàn)室管理程序,提高工作效率,加大了信息的透明度和及時(shí)性,這將是未來實(shí)驗(yàn)教學(xué)管理發(fā)展的主流方向。
參考文獻(xiàn)
[1]張文增,孫振國,趙冬斌,陳強(qiáng).基于B/S結(jié)構(gòu)的實(shí)驗(yàn)室管理信息系統(tǒng)開發(fā)方案[J].計(jì)算機(jī)工程與應(yīng)用,2002,(11):232-233.
[2]張松,陳志剛,金亮.開放實(shí)驗(yàn)室管理系統(tǒng)設(shè)計(jì)方案比較及實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2004,(3):230-232.
[3]阮軍,楊春金.基于模式的多層分布式軟件系統(tǒng)架構(gòu)的設(shè)計(jì)[J].計(jì)算機(jī)工程,2006,32(14):57-59.
[4]湯自春,孫麗霞.高職開放式實(shí)驗(yàn)教學(xué)模式的探索[J].中國成人教育,2006,(1):88-89.