摘? 要: 在對.NET關(guān)鍵技術(shù)分析的基礎(chǔ)上,針對高校的儀器設(shè)備管理的現(xiàn)狀,分析和設(shè)計了一套實用的基于N層架構(gòu)的高校儀器設(shè)備管理系統(tǒng),并給出了系統(tǒng)的具體設(shè)計和實施方案。
??? 關(guān)鍵詞: N層架構(gòu);.NET平臺;設(shè)備管理系統(tǒng)
?
?? 隨著高校信息化建設(shè)速度的加快,學(xué)校規(guī)模的擴大和實驗室建設(shè)的快速發(fā)展,大量教學(xué)設(shè)備不斷購進(jìn),原有的單機設(shè)備管理系統(tǒng)無法適應(yīng)現(xiàn)代化管理的需要,出現(xiàn)了許多不足,設(shè)備主管部門與財務(wù)、科技、人事、基層等部門管理脫節(jié),不能實現(xiàn)管理職能的個性化管理。尤其大多數(shù)高校設(shè)備管理辦法是高校設(shè)備采購進(jìn)來以后,將設(shè)備的基本情況和相關(guān)信息登記存檔,然后將檔案存檔。以后檔案基本沒有人維護(hù),如設(shè)備位置變遷、檢修情況、設(shè)備當(dāng)前運行狀態(tài)等信息根本不會體現(xiàn)在設(shè)備臺帳上,即設(shè)備跟蹤信息不能及時體現(xiàn)在設(shè)備檔案上。這影響老師辦公效率、科研工作以及學(xué)生技能、綜合能力的培養(yǎng),無法適應(yīng)信息時代信息充分共享和協(xié)同辦公的需求。所以,如何提高設(shè)備的管理水平和效率,合理利用,使其更加規(guī)范化、科學(xué)化和信息化,滿足教學(xué)和科研需求,一直是高校設(shè)備管理的重要研究問題。
1?系統(tǒng)設(shè)計
??? 本系統(tǒng)采用B/S模式。它具有易維護(hù)、成本低、易升級、使用方便、容易被用戶接受等特點。用戶不用安裝特殊軟件,只需利用Windows自帶的IE瀏覽器就能方便地進(jìn)行管理,如圖1所示。
?

1.1?系統(tǒng)設(shè)計原則
??? (1)易用性。作為一個管理信息系統(tǒng) ,首先需要考慮它的用戶群。由于本系統(tǒng)是面向全校教職員工使用的一個業(yè)務(wù)系統(tǒng), 用戶的計算機水平參差不齊,因此,使系統(tǒng)簡單易用,是保證系統(tǒng)正常使用的首要條件。
??? (2)安全性。細(xì)分權(quán)限,確保登錄系統(tǒng)的合法用戶根據(jù)其權(quán)限的不同查看其權(quán)限內(nèi)的相關(guān)信息。
(3)開放性。由于高校的信息化建設(shè)通常是分步進(jìn)行的,而設(shè)備管理信息化工作一般安排較為靠后,因此,本系統(tǒng)需要能夠既有作為一套完整系統(tǒng)獨立運行的能力,又要能夠方便地掛接整合于其它系統(tǒng)之上 。這主要體現(xiàn)在系統(tǒng)的人員,部門信息等基礎(chǔ)數(shù)據(jù)來源的靈活性和系統(tǒng)內(nèi)信息的開放性上。
1.2?軟件體系結(jié)構(gòu)
綜合考慮系統(tǒng)設(shè)計原則,本系統(tǒng)采用五層架構(gòu):Web表現(xiàn)層、業(yè)務(wù)外觀層、業(yè)務(wù)規(guī)則層、數(shù)據(jù)訪問層、業(yè)務(wù)實體層。如圖2所示。

(1)Web表現(xiàn)層。應(yīng)用程序的訪問入口,主要實現(xiàn)頁面的顯示、用戶數(shù)據(jù)的接收和用戶輸入信息的基本驗證(如判斷日期格式是否合法)等功能。具體由ASP.NET Web窗體和代碼隱藏文件實現(xiàn),Web窗體提供用戶操作,而代碼隱藏文件實現(xiàn)各種控件的事件處理。該層對應(yīng)于本系統(tǒng)中的Web項目。
(2)業(yè)務(wù)外觀層。它隔離了用戶界面與各種業(yè)務(wù)功能的具體實現(xiàn),對后臺所有業(yè)務(wù)邏輯包括對數(shù)據(jù)庫的訪問都要通過該層調(diào)用。系統(tǒng)中直接面向用戶的應(yīng)用程序。該層對應(yīng)于本系統(tǒng)中的BusinessFacade項目。
(3)業(yè)務(wù)規(guī)則層。也稱商業(yè)邏輯層,實現(xiàn)系統(tǒng)的各種具體業(yè)務(wù)邏輯規(guī)則,如各種流程控制、權(quán)限控制等。它是業(yè)務(wù)規(guī)則或商業(yè)邏輯實現(xiàn)。該層對應(yīng)于本系統(tǒng)中的BusinessRules項目。
(4)數(shù)據(jù)訪問層。直接調(diào)用數(shù)據(jù)庫中的存儲過程,達(dá)到操作數(shù)據(jù)庫的目的。該層對應(yīng)與本系統(tǒng)中的DataAccess項目。
數(shù)據(jù)訪問層對數(shù)據(jù)庫的訪問均采用了存儲過程的方式進(jìn)行。依此可保持應(yīng)用程序的執(zhí)行效率并簡化數(shù)據(jù)訪問層。利用using 或try catch finally 塊對存儲過程進(jìn)行調(diào)用, 盡可能快地釋放庫資源。
采用存儲過程具有以下優(yōu)點:①執(zhí)行速度快,存儲過程已經(jīng)經(jīng)過編譯,無須經(jīng)過SQL語句的再次分析,可以直接執(zhí)行;②能夠減少網(wǎng)絡(luò)流量,由于ADO.NET執(zhí)行存儲過程時,傳遞的只是存儲過程的一個名稱,而不是整個SQL語句;③可以設(shè)定權(quán)限以提高安全性;④對數(shù)據(jù)庫進(jìn)行復(fù)雜操作時(如對多個表進(jìn)行Update, Insert, Query, Delete時),可將此復(fù)雜操作用存儲過程封裝起來與數(shù)據(jù)庫提供的事務(wù)處理結(jié)合一起使用,當(dāng)運行發(fā)生錯誤時會回滾(Rollback)該事務(wù)。
(5)業(yè)務(wù)實體層。實體層解決了業(yè)務(wù)數(shù)據(jù)表現(xiàn)形式的問題。它將顯示數(shù)據(jù)和實際的存儲區(qū)域隔離,保證了業(yè)務(wù)的獨立性,提高可重用性。業(yè)務(wù)實體組件就是數(shù)據(jù)庫中表的映射,一個實體類相當(dāng)于一個表,一個實體對象相當(dāng)于一個表中的一條記錄。業(yè)務(wù)實體組件是系統(tǒng)中各層數(shù)據(jù)傳遞的媒介。該層對應(yīng)于本系統(tǒng)中的Common項目。
軟件分層有以下優(yōu)點:(1)良好的透明和封裝;(2)高內(nèi)聚、低耦合;(3)易于擴展、維護(hù)和重用;(4)開發(fā)人員易于分工,提高開發(fā)效率。
1.3? 開發(fā)平臺
本系統(tǒng)采用的是Microsoft Visual Studio.NET2005為開發(fā)平臺,結(jié)合C#語言開發(fā),并采用SQL Server2000為后臺數(shù)據(jù)庫。SQL Server2000是新型的關(guān)系數(shù)據(jù)庫,它能夠滿足大型Web站點的數(shù)據(jù)存儲和分析需求。
1.4? 功能設(shè)計
根據(jù)高校的組織機構(gòu)和設(shè)備管理工作的特點,可以將系統(tǒng)分為5個子系統(tǒng):設(shè)備管理、系統(tǒng)管理、設(shè)備統(tǒng)計查詢、用戶管理和生成報表。功能模塊如圖3所示。

2?關(guān)鍵技術(shù)
2.1?通過OLE DB.NET Framework數(shù)據(jù)提供程序完成和Excel的交互
??? 本系統(tǒng)中涉及了大量設(shè)備相關(guān)信息,在使用系統(tǒng)前,必須錄入設(shè)備的相關(guān)信息,而這些信息是以Excel表的形式存在。為了減輕用戶負(fù)擔(dān),設(shè)計系統(tǒng)能從Excel表中讀取數(shù)據(jù),從而減少設(shè)備信息錄入中可能產(chǎn)生的錯誤。
??? 本系統(tǒng)通過將Excel文件作為OLE DB數(shù)據(jù)源,使用OLEDB .NET Framework 數(shù)據(jù)提供程序來建立與該Excel 文件的連接,并通過leDbDataAdapter. Fill 方法將Excel 文件中的數(shù)據(jù)填充到DataSet 中,按圖書資料表的格式保存到數(shù)據(jù)庫中,也可以將DataSet 與DataGrid 控件綁定,讓用戶自定義保存。以下為具體的ADO.NET 代碼:
(1)引入System.Data.OleDb 命名空間,將以下代碼加入到模塊的聲明部分:
Using System.Data.OleDb;
(2)使用OLEDB .NET Framework 數(shù)據(jù)提供程序建立與Excel數(shù)據(jù)源的連接:
System. Data. OleDb. OleDbConnection MyConnection;
//初始化連接,EquipInfo.XLS為存儲圖書資料的Excel文件
MyConnection=NewSystem.Data.OleDb.OleDb Connection(_'Provider=Microsoft.Jet.OLEDB.4.0;'&_'Data Source=EquipInfo.XLS; '& _'Extended Properties=Excel 8.0;')
(3)將Excel文件中的數(shù)據(jù)填充到DataSet中System. Data. OleDb. OleDbDataAdapter MyCommand;
//Sheet1為Excel 文件中保存數(shù)據(jù)的工作簿
MyCommand=New System.Data.OleDb.OleDb Data-Adapter( _'select * from[Sheet1$]', MyConnection)';
//將數(shù)據(jù)填充到DataSet1的EquipInfo表中MyCommand.Fill(DataSet1, 'EquipInfo');
MyConnection.Close();???? //將數(shù)據(jù)綁定到DataGrid1
DataGrid1.DataSource=DataSet1;
DataGrid1.DataMember='BookData';
2.2? 安全機制
2.2.1 身份驗證
??? 用戶身份驗證是從用戶處獲取標(biāo)識憑據(jù)并通過某些授權(quán)機構(gòu)驗證那些憑據(jù)的過程。當(dāng)用戶登錄系統(tǒng)時,用戶需要輸入用戶名和口令,系統(tǒng)在完成用戶填寫信息與系統(tǒng)保存信息的對比后,判斷訪問者是否為合法用戶。在身份得到驗證后,授權(quán)進(jìn)程將確定該身份是否可以訪問給定資源,包括數(shù)據(jù)和方法調(diào)用。
2.2.2? 授權(quán)驗證
??? 本系統(tǒng)采用系統(tǒng)功能樹管理技術(shù)進(jìn)行授權(quán)驗證。通過系統(tǒng)功能書管理確保不同身份級別的用戶登錄系統(tǒng)后見到不同內(nèi)容的系統(tǒng)功能樹,防止訪問非本權(quán)限內(nèi)容集,增強了系統(tǒng)的安全性。
??? (1)群組劃分。是一種授權(quán)模式,為了保證業(yè)務(wù)的獨立性,防止一個用戶進(jìn)行其不應(yīng)擁有的系統(tǒng)操作能力和服務(wù)。將全部用戶根據(jù)處理業(yè)務(wù)的不同而劃分出不同群組,每一個群組在授權(quán)范圍內(nèi)進(jìn)行相應(yīng)的業(yè)務(wù)操作。
(2)權(quán)限控制。當(dāng)用戶通過身份驗證及群組授權(quán)登錄某一個功能頁面時,如果同一群組在操作權(quán)利上存在細(xì)微差別,則通過權(quán)限控制來解決。它可以解決某一用戶對某一功能是否有操作權(quán)利。
?在儀器設(shè)備管理系統(tǒng)中,有三個群組:高級管理員、管理員和普通用戶,其中高級管理員和普通用戶均隸屬于各個部門。不同群組的用戶所具有的操作權(quán)限以及操作內(nèi)容均不一樣;相同群組的不同用戶操作同一功能時,由于部門不同,查詢信息的結(jié)果也不同。
?、俪壒芾韱T。它的權(quán)限最高,具有管理自己的用戶信息、管理管理員、普通用戶信息以及管理及查詢所有設(shè)備相關(guān)信息。
?、诠芾韱T。除了超級管理員外,管理員可以管理自己的用戶信息、管理及查詢本部門的設(shè)備相關(guān)信息。
?、燮胀ㄓ脩簟F胀ㄓ脩舻臋?quán)限最低,包括管理自己的用戶信息、查詢本部門的設(shè)備相關(guān)信息。
細(xì)分的權(quán)限管理,有效的保證了設(shè)備信息在系統(tǒng)內(nèi)部流動的安全性。
2.2.3? 加密算法
系統(tǒng)還采用MD5加密算法對用戶密碼加密,通過系統(tǒng)日志隨時記錄所有用戶的訪問操作日志,防止用戶身份偽造和操作抵賴。
2.2.4? 存儲過程
對數(shù)據(jù)的訪問由存儲過程完成,防止惡意用戶非法的數(shù)據(jù)寫入。防止SQL注入攻擊等方法。
在.NET環(huán)境下采用多層設(shè)計架構(gòu),能夠有效地提高團(tuán)隊合作開發(fā)的效率,增加代碼的可復(fù)用程度,提高對需求變更的應(yīng)對能力。與傳統(tǒng)的設(shè)備管理系統(tǒng)相比具有實時性好、運營成本低、信息資源共享以及可維護(hù)性好等優(yōu)點。
參考文獻(xiàn)
[1] 莊亮,王麗芳,蔣澤軍,等..NET 平臺下基于Facade 模式的軟件N層架構(gòu)的設(shè)計與實現(xiàn)[J].微電子學(xué)與計算機,2006,23(7):75-77.
[2] 錢怡.高??蒲泄芾硇畔⑾到y(tǒng)的開發(fā)與實現(xiàn)[J].華北水利水電學(xué)院學(xué)報(社科版),2003(3):59-60.
[3] 趙明,呂立堅.多層體系結(jié)構(gòu)的EJB組件實現(xiàn)技術(shù)[J].計算機應(yīng)用研究,2001(12):76-78.
[4] 李敏.基于B/S模式的高校設(shè)備管理系統(tǒng)設(shè)計與實現(xiàn)[J].四川理工學(xué)院學(xué)報(自然科學(xué)版),2006,19(4):70-73.
[5] 梁高永,李龍軍.高校設(shè)備管理系統(tǒng)的可靠性研究[J].四川理工學(xué)院學(xué)報(自然科學(xué)版),2006,19(4):70-73.
[6] 王佰超,黃亞宇.基于Web的設(shè)備管理系統(tǒng)的研究[J].電產(chǎn)品開發(fā)與創(chuàng)新,2006,19(5):92-94.
[7] 趙東濤.關(guān)于完善和加強高等院校儀器設(shè)備管理的探討[J].長沙大學(xué)學(xué)報,2006,20(5):123-125.
[8] 黃曉靜.信息技術(shù)對高校儀器設(shè)備管理工作的影響[J].河北工業(yè)大學(xué)成人教育學(xué)院學(xué)報,2006,21(3):49-51.
