摘 要:探討了高校對科研型創(chuàng)新實驗室運行管理中的相關(guān)資料數(shù)據(jù)的處理及管理,提出以高校實驗室管理相關(guān)規(guī)范為基礎,采用微軟.NET平臺的ASP.NET MVC技術(shù)和面向?qū)ο蟮姆治龊驮O計方法,設計了一套實驗室管理系統(tǒng),實現(xiàn)以實驗教學為核心的全方位信息化管理。行成一套完整的實驗室管理監(jiān)控體系,該系統(tǒng)的實施運作,有效滿足了高校實驗室的日常管理要求,提高了實驗室的管理水平。
關(guān)鍵詞:信息化建設;創(chuàng)新教育;實驗室管理;.NET平臺
中圖分類號:TP311.52
隨著計算機技術(shù)的進步,科研和生產(chǎn)技術(shù)的不斷提高,原來的人工管理模式已經(jīng)不太適應現(xiàn)有的管理要求。實驗室是高等院校實施創(chuàng)新教育及科學研究的重要基地,是高等院校日常運作中的一個重要環(huán)節(jié)。自動化的管理實驗室數(shù)據(jù)具體做法就是通過建設使用以實驗室管理為核心的管理信息系統(tǒng)。國內(nèi)實驗室管理系統(tǒng)在九十年代開始起步,隨著科技和生產(chǎn)技術(shù)的提高,先進的信息化網(wǎng)絡化管理模式被廣泛的應用,實驗室管理系統(tǒng)的發(fā)展帶來了大跨步的飛躍[1]。
1 系統(tǒng)設計
1.1 設計思想
為保證整個系統(tǒng)具有先進性、開放性、經(jīng)濟性、界面友好、易于擴充和維護等特點,本系統(tǒng)的總體設計必須遵循“統(tǒng)籌規(guī)劃,急用先行,分步實施”的思想。其主要設計要求如下:
界面友好性:系統(tǒng)的開發(fā)采用人性化,注重人機交互界面的友好性,便于系統(tǒng)的使用和推廣。
先進性:為確保整個系統(tǒng)在運行若干年后,仍能基本滿足用戶的需求,建議采用目前比較先進的高速網(wǎng)絡及計算機系統(tǒng)技術(shù)。
經(jīng)濟性:既要考慮系統(tǒng)的先進性,也要考慮系統(tǒng)的經(jīng)濟性,軟硬件的投入和效能在比例關(guān)系上要恰當。
開放性:采用開放式體系結(jié)構(gòu),保證異種數(shù)據(jù)庫平臺的通信。
易于擴充和維護:系統(tǒng)的設計應留有足夠的擴充空間,以便于將來軟硬件的升級,用戶進行系統(tǒng)維護應方便簡單。
1.2 概要設計
概要設計主要解決的問題是把系統(tǒng)分為幾個模塊,并且確定各個模塊之間是如何進行聯(lián)系。在系統(tǒng)需求分析的基礎上,我們將實驗室管理系統(tǒng)劃分為六大模塊,每個模塊滿足某些需求,并且互相聯(lián)系,具體如下:
實驗中心日常工作:本模塊主要是實驗室日常事務處理,包括值班表、值班日志、上下班考勤。還有個人網(wǎng)絡名片夾和個人日歷等實用工具。
資產(chǎn)管理與維護:本模塊實現(xiàn)了對實驗室內(nèi)的固定資產(chǎn)和耗材的臺帳管理以及設備的維修保養(yǎng)記錄、領(lǐng)用記錄。
實驗文檔資料管理:實驗室有眾多的實驗相關(guān)資料以及管理資料,日積月累數(shù)量龐大,管理難度高,通過本模塊能夠有效的管理這些文檔資料,方便隨時查閱。
學生實驗考勤:學生來實驗室做實驗,使用校園卡刷卡進行考勤,能夠有效的記錄學生實驗記錄,方便管理。
實驗室網(wǎng)站管理:實驗室網(wǎng)站是實驗室對外的一個窗口,通過后臺管理,使得網(wǎng)站上的信息及時更新。
系統(tǒng)管理:本模塊主要是對整個管理系統(tǒng)的用戶、權(quán)限、基本設置等管理,是整個系統(tǒng)的核心。
1.3 功能設計
在確定了系統(tǒng)設計的模塊后,接下來就要實現(xiàn)系統(tǒng)的具體實施。根據(jù)前面的需求分析和模塊設計,結(jié)合軟件工程的思想,我們將合理的實現(xiàn)系統(tǒng)的以下幾個模塊日常工作管理模塊、資產(chǎn)管理與維護模塊、實驗室文檔資料管理模塊、學生實驗考勤管理模塊。
1.4 實驗室管理系統(tǒng)原理
用戶向系統(tǒng)服務器請求或者上傳數(shù)據(jù),系統(tǒng)服務器查詢后臺服務器,返回結(jié)果給網(wǎng)站系統(tǒng)呈現(xiàn)給用戶。本系統(tǒng)還是采用B/S架構(gòu)來進行設計,在實時性,健壯性,安全性等方面都達到了一定的要求。其中WEB服務器和數(shù)據(jù)庫服務器可以在一臺服務器設備,在訪問量和數(shù)據(jù)庫大量增長是,可以分別使用兩天獨立的服務器,這樣可以分攤數(shù)據(jù)訪問壓力,提高系統(tǒng)用戶體驗。
2 關(guān)鍵技術(shù)
2.1 微軟.NET平臺技術(shù)
實驗室管理系統(tǒng)是基于B/S結(jié)構(gòu)的系統(tǒng),并以面向?qū)ο蟮乃枷霕?gòu)建。隨著Internet技術(shù)的興起,B/S結(jié)構(gòu)在管理信息系統(tǒng)開發(fā)中越來越多的被使用。基于B/S結(jié)構(gòu),把主要事務邏輯放在服務器端中實現(xiàn),客戶端界面是在網(wǎng)頁瀏覽器中展現(xiàn),減少在客戶端實現(xiàn)事務邏輯,并最終形成所謂三層B/S結(jié)構(gòu)。如此一來,就大大簡化了客戶端的設計,也減少了軟件安裝維護和日后升級時所帶來的工作量和成本,并且大大降低了項目的總體成本(TCO)[2]。
2.2 Windows Server 2008服務器
Windows Server 2008系統(tǒng)是微軟最新一個服務器操作系統(tǒng),是用于高端領(lǐng)域的系統(tǒng),能提供極高的安全性、可靠性和穩(wěn)定性,常用作大型應用的服務器操作系統(tǒng);其次,Windows Server 2008易于安裝,規(guī)劃,管理和使用,能滿足絕大部分應用系統(tǒng)的要求。
2.3 ASP.NET MVC技術(shù)
MVC(模型視圖控制器)模式將應用程序分為三塊:模型、視圖和控制器。
Model層實現(xiàn)系統(tǒng)中的業(yè)務邏輯,View層用于生成輸出,Controller層用于接收和處理輸入,它是Model與View之間溝通的橋梁,它可以分派用戶的請求并選擇恰當?shù)囊晥D以用于顯示,Controller也是MVC中最重要的一層。一個模型可能對應多個視圖,一個視圖可能對應多個模型[3]。
2.4 ADO.NET Entity Framework技術(shù)
Entity Framework 采用了抽象化數(shù)據(jù)結(jié)構(gòu)的方式,將數(shù)據(jù)庫對象映射為應用程序?qū)ο筮^程中,比如表格轉(zhuǎn)換成一個應用程序?qū)ο螅瑢臄?shù)據(jù)字段則對應為為屬性,數(shù)據(jù)庫對象關(guān)系就轉(zhuǎn)換為結(jié)合屬性。這樣一個數(shù)據(jù)庫的E/R模型就可以映射為一個對象模型了,使用Entity Framework進行數(shù)據(jù)相關(guān)編程的好處是程序員可以用面向?qū)ο蟮乃季S方式來操作關(guān)系數(shù)據(jù)庫,使得整個系統(tǒng)架構(gòu)設計更加面向?qū)ο蠡?、更加合理,在系統(tǒng)建模時也更加方便、合理。
2.5 Ajax技術(shù)以及JQuery框架
Ajax可以實現(xiàn)在服務器與瀏覽器之間數(shù)據(jù)的異步傳輸,使瀏覽器向服務器請求必要的少量數(shù)據(jù),以代替整個頁面的請求。由于是異步傳輸,Ajax能有效的利用服務器資源來響應用戶的請求,同時又能減少服務器的壓力。jQuery是一個兼容多瀏覽器的javascript庫,它是一個開放源代碼項目,任何人可以免費使用,并且還可以通過源代碼學習到相關(guān)技術(shù)。jQuery通過一系列的自定義函數(shù),設計了自己的一套語法,它的語法設計可以使開發(fā)者更加便捷高效的進行Javascript開發(fā),例如操作文檔對象、選擇DOM元素、制作動畫效果、事件處理、使用Ajax以及其他功能[4]。
3 數(shù)據(jù)庫優(yōu)化
3.1 數(shù)據(jù)規(guī)范化
在數(shù)據(jù)表的設計中,常常會因為過分的數(shù)據(jù)依賴而降低系統(tǒng)的性能。數(shù)據(jù)依賴是通過關(guān)系中屬性上的值是否相等來判斷的。數(shù)據(jù)依賴可能會對整個數(shù)據(jù)庫系統(tǒng)帶下以下的問題:數(shù)據(jù)的過分依賴可能會使數(shù)據(jù)冗余太大,造成空間的大量浪費;更新數(shù)據(jù)、更新異常或者數(shù)據(jù)冗余時,使維護數(shù)據(jù)的完整性變的困難;刪除異常,不該刪除的數(shù)據(jù)被刪除。插入異常,需要插入的數(shù)據(jù)為空時可能會導致錯誤。提高數(shù)據(jù)庫表設計的規(guī)范性,能有效地處理上面我們提到的那些問題。
3.2 事務處理
在數(shù)據(jù)庫的執(zhí)行過程中,可能因為某種原因會中斷一組數(shù)據(jù)庫語句的執(zhí)行。這就可能會對數(shù)據(jù)庫數(shù)據(jù)產(chǎn)生影響,造成數(shù)據(jù)庫中數(shù)據(jù)的不一致性。所以這里我們引入事務操作。所謂的事務,就是由用戶定義的需要連續(xù)執(zhí)行的一組SQL語句,這些語句只能一起被執(zhí)行,或者一條也不執(zhí)行,相當于P-V原語中一個不可分的整體。在關(guān)系數(shù)據(jù)庫中,事務有時候僅包含一條SQL語句,但也可以是一組SQL語句。事務有下面四個特點:一致性、隔離性、原子性和持續(xù)性[5]。
如果系統(tǒng)不采用事務,在第二步的執(zhí)行中,出現(xiàn)了一個中斷或者并發(fā)事件,數(shù)據(jù)庫系統(tǒng)有可能延遲或者不再執(zhí)行第三步。這就導致了數(shù)據(jù)庫中信息的殘存與冗余了。采用事務處理后,這些SQL語句的執(zhí)行就會一致,并且不會被打斷。如果這組語句的執(zhí)行結(jié)果沒有成功,則整個事務將會回滾,不會對數(shù)據(jù)庫產(chǎn)生任何影響。
4 系統(tǒng)實現(xiàn)
4.1 ASP.NET MVC過濾器
過濾器被用于整個應用程序而不合適放置于某個局部位置,否則會打破關(guān)注分離模式。交叉關(guān)注的典型例子是登錄、授權(quán)、以及緩存等。
本系統(tǒng)中主要使用過濾器實現(xiàn)了用戶權(quán)限驗證、頁面輸出壓縮、異??刂频葞状蠊δ?。其中最重要的權(quán)限驗證過濾器。
4.2 C#代碼擴展
通過擴展方法現(xiàn)有類型就具備了在不創(chuàng)建新的派生類型、不重新編譯或以其他方式修改原始類型的情況下新增方法的功能。本系統(tǒng)利用擴展方法這個機制,對系統(tǒng)開發(fā)中的一些通用的工具類方法進行了統(tǒng)一的封裝,使得開發(fā)者調(diào)用這些工具類時很方便,程序結(jié)構(gòu)上也很優(yōu)雅。
4.3 視圖擴展
ASP.NET MVC提供了MVC的程序開發(fā)架構(gòu),其中視圖部分提供了很多默認實現(xiàn),也提供方便的擴展接口,根據(jù)實際開發(fā)中需求,在開發(fā)實驗室管理系統(tǒng)過程中,實現(xiàn)了一些視圖擴展,如文件下載視圖、XML視圖、PDF視圖等等,其中XML視圖使用在需要將返回結(jié)果轉(zhuǎn)為XML的地方[6],比如一些ajax請求需要調(diào)用的操作返回一個XML格式的結(jié)果,這時使用這個ViewResult就相當?shù)姆奖?,只要提供需要序列化的?shù)據(jù),就能將其自動的轉(zhuǎn)為XML輸出。
5 結(jié)束語
基于ASP.NET MVC的實驗室管理系統(tǒng)是基于工作在實驗室第一線人員多年實驗室工作中的需求和背景為依托設計實現(xiàn)的信息系統(tǒng),在功能上滿足了大多數(shù)實驗室的管理需求。通過實驗室網(wǎng)站這個窗口,學生和老師能夠及時正確的了解實驗室的各方面情況。該系統(tǒng)的研究和實現(xiàn)對我國高校實驗室管理系統(tǒng)的建設具有一定的研究價值。
參考文獻:
[1]泰格斯.袁勤勇,譯.NET Framework編程思想[M].北京:清華大學出版社,2002.
[2]漆建軍.以信息化手段建設和管理實驗室[J].實驗技術(shù)與管理,2006(01):99-101.
[3]曾登高..NET系統(tǒng)架構(gòu)與開發(fā)[M].北京:電子工業(yè)出版社,2003.
[4]Dejan Sunderic.Tom Woodhead.SOL Server 2000 Stored Procedure Programming[M].北京:清華大學出版社,2002.
[5]曼尼諾.韓宏志,譯.數(shù)據(jù)庫設計?應用開發(fā)和管理[M].北京:清華大學出版社,2007.
[6]宋海虹,陳小弟.現(xiàn)代實驗室信息化管理實踐與探究[J].實驗室科學,2012(05):115-118.
作者簡介:陳小弟(1981-),男,上海金山人,實驗員,助理工程師,工程碩士,研究方向:管理信息系統(tǒng)開發(fā)、數(shù)據(jù)庫。
作者單位:華東理工大學,上海 200237