(淮陰工學院 計算機工程系,江蘇 淮安 223001)
摘要:本文討論了WEB環境下實驗管理信息系統的體系結構、系統功能、數據庫設計以及系統的實現技術。
關鍵詞:實驗管理信息系統;數據庫;COM+;數據完整性
中圖分類號:TP391文獻標識碼:A文章編號:1009-3044(2008)08-10ppp-0c
1 引言
理工科高校實驗教育是培養學生工程實踐能力的重要環節,它的顯著特征是將實踐知識與理論知識有機地聯系在一起,并借助于一定的實驗手段來培養學生的技術應用能力和工程觀念。傳統的實驗課程需要教師完成安排實驗任務、評閱文件、收集和批改實驗報告等工作。通常以口頭和書面的方式進行,已經越來越不能適應現代教學的需求。
隨著網絡技術、計算機技術的進步,建立完備的實驗管理手段成為可能。我們可以通過網絡共享遠程實驗資源和信息,方便地安排學生進行實驗,不受時間與空間的限制。這樣不僅可以大大地簡化了實驗教學的過程,還能將教師從繁重的實驗管理工作中解脫出來,從而提高實驗管理的水平。
2 系統的體系結構
目前,基于Web Computing計算模式的B/S結構的應用程序開始占有越來越重要的位置,在B/S體系結構系統中,用戶可以通過瀏覽器,向分布在網絡上的服務器發出請求,服務器對瀏覽器的請求進行處理,將用戶所需信息返回到瀏覽器。實際上,B/S體系結構是把二層C/S結構的事務處理邏輯從客戶機的任務中分離出來,由Web服務器單獨組成一層來負擔其任務。B/S結構的Web應用程序和C/S結構的相比有以下優點:
(1)無須開發客戶端軟件,維護和升級方便。
(2)可跨平臺操作,客戶端只要裝有WWW瀏覽器。
(3)具有良好的開放性和擴充性。
(4)可以減少網絡流量,大大緩解網絡帶寬問題。
建立在微軟的IIS(Internet Information Server)基礎上的ASP技術和ActiveX技術,使得Web應用程序的開發、運行效率得到了較大的改善,是一種有效的開發Web應用的方法,可以在客戶端和服務器端創建ActiveX組件,來擴展系統的應用邏輯。建立在IIS和ASP技術上的Web應用結構如圖1所示。

圖1 建立在IIS和ASP基礎上的Web應用結構圖
3 系統的功能需求
本系統應該具有以下功能:
(1)用戶的基本信息管理
用戶信息包括用戶名、所屬院系、身份、口令、權限等項目,按用戶需要而定。系統管理員有權對用戶信息表進行維護操作,包括用戶的增加、刪除,以及用戶權限的重新設定等。
(2)實驗信息的瀏覽和評閱
教師可以查看學生的圖文檔(CAD圖形或實驗報告)的結果和統計信息,并給出評價和分數等級。
(3)系統管理
系統管理工作由系統管理員來承擔。系統管理包括權限設置、實驗設置、信息發布、注冊設置等方面內容。用戶的權限包括設計、分析、瀏覽、協調等。教師和學生都會被分配若干權限。一般學生的權限和學生組長的區別在于在客戶端所觀察到的視圖不同,組長可以協調組內成員的設計工作。例如,組長可以向組內成員發送郵件通知。組長和一般學生根據各自不同的權限完成分析和設計工作。通過對以上功能需求的分析,系統可劃分為若干個功能模塊,見圖2。

圖2 系統的功能模塊
4 系統的數據庫設計
概念模型是對現實世界的抽象和概括,它真實、充分反映了現實世界中的事物和事物之間的聯系,它獨立于計算機的數據模型和特定的數據庫管理系統。描述概念模型的有力工具是E-R 圖,本系統的E-R圖見圖3。

圖3 系統的E-R圖
邏輯結構設計的任務就是把概念結構設計階段設計好的E-R圖轉換為與所選用的DBMS產品所支持的數據模型相符合的邏輯結構。E-R圖向關系模型的轉化要解決的問題是:如何將實體和實體間的聯系轉換為關系模式以及確定這些關系模式的屬性和碼。系統的全局E-R圖轉換成的關系模型為:
教師(教師名、角色名稱、密碼、系別、性別、職稱、任教班級數、通訊地址)
班級(班級名、系別、人數)
任課(實驗名稱、教師名、班級名)
實驗(實驗名、實驗序號、實驗內容、實驗人數、實驗地點)
實驗分配(實驗名、班級名、實驗項目類型、機構數量、實驗期限)
學生(學生名、班級名、學號、角色名稱、密碼、通訊地址)
實驗權限(學生名、實驗名、學號、權限類型)
角色(角色名稱、人員名稱、系別、通訊地址)
圖文檔(文檔名稱、實驗名、學生名、零部件名稱、班級名、文件類型、零部件類型、完成狀態、評價狀態、評價內容)
零件(零件名、實驗名、班級名、學生名、機構名、部件名)
部件(部件名、實驗名、班級名、學生名、機構名)
機構(機構名、實驗名、班級名、學生名)
教師注冊表(系別、教師名集合、職稱)
學生注冊表(班級名、學生名集合)
零部件說明書(實驗名稱、零部件名稱、設計者、零部件編號、設計時間、材料重量、比例、圖幅、圖序)
本系統的DBMS采用的是MS SQL Server 2000。
5 系統的實現技術
5.1 ASP技術
ASP程序可以使用多種腳本語言,只需提供相應的腳本驅動。ASP自身提供了VBScript和JavaScript的驅動,而且通過ActiveX組件可以實現復雜的Web應用。ASP程序屬于ActiveX技術中的Server端技術,其命令和Script語句都是由服務器來解釋執行的,執行結果產生動態生成的Web頁面并送至瀏覽器;而客戶端的Script命令則由瀏覽器來解釋運行。
ASP.NET是ASP的最新版本,它是建立在公共語言運行環境基礎上的, ASP.NET具有強大的語言支持(如 C# 、VB.NET)、更高的執行效率和開發效率等優點。
在ASP中,通常使用ADO(Active Data Objects)連接數據庫,ADO是對OLE DB編程接口的簡化,是以OLE DB為基礎的、面向對象的應用程序編程接口。OLE DB標準是一種開放的、訪問各種數據信息的標準,它是通過一組C++ API函數來實現的,通過它可以訪問符合OLE DB標準的任何數據源。在ASP中可以利用ADO對各種數據庫進行訪問(如Access、SQL Server、Oracle等),還可以訪問存儲在其他表格式數據結構(如電子表格)中的信息。ADO實際上是一個對象集,并組織在一個對象模型中。
在ASP.NET中,使用ADO.NET連接數據庫,ADO.NET使用XML在程序和網頁之間實現數據交換。用XML格式的數據集傳送信息,使開發者能夠輕易地把處理數據的部分和用戶界面的部分分別放在不同的服務器上。因此,它能夠極大地提高性能以及增強支持多用戶系統的可維護性。
5.2 COM+技術
COM技術是Microsoft開發的,由OLE技術基礎發展而來,經歷了OLE 2/COM、ActiveX、DCOM和COM+等幾個階段。目前,COM+把消息通訊模塊MSMQ和解決關鍵業務的交易模塊MTS都加進去了,是分布式對象計算的一個比較完整的平臺。以COM/COM+技術為基礎進行軟件開發具有編程語言和開發環境獨立、組件位置透明、組件進程透明、可擴充性、可重用性等特點。
本系統結合了ASP技術和COM+技術,采用三層結構。表示層由ASP頁面組成,用以實現Web頁面顯示和調用COM+組件,業務邏輯層由用VC++實現的COM+組件構成。為了便于維護、升級和實現分布式應用,在運行過程中,ASP頁面不直接調用數據訪問層,而是通過業務邏輯層來間接訪問數據庫。
系統的實現主要分為三個部分:數據庫、COM+組件和ASP頁面。其中數據庫與ASP頁面的實現與一般B/S結構的Web應用相似。COM+實現可分為三個步驟:COM+組件的設計、COM+應用程序的生成和組件注冊、基于屬性的編程。本系統采用VC++中的ATL開發COM+組件。組件編譯結束后可以用COM+組件服務管理工具來管理COM+組件及其所在的應用程序。COM+組件服務工具擁有圖形界面,利用它可以安裝和發布組件、配置組件及其所在應用程序的屬性,并能夠完成組件安全性、MTS支持和構造參數的設置。
COM+組件主要在系統中的ShowResults.asp頁面中被調用,用于接受、辨別用戶的查詢請求,做出不同的查詢處理。當客戶的身份為教師時,可以查詢所教授班級學生的實驗結果;當客戶的身份為學生時,只能查詢本人的實驗結果;而系統管理員則可以查看所有學生的實驗結果。
本系統定制的COM+組件以Result.dll發布。組件Result.dll定義了四個屬性:ExpNo(實驗號)、ExpType(實驗類型)、ClassNo(班級號)、StuNo(學號)、身份(identity),同時還定義了三個方法:RequeryResults、RequeryClassResults和RequeryAllResults,這些方法分別根據教師、管理員和學生的請求生成不同的查詢語句,并將查詢結果集返回給用戶。
5.3 數據完整性的維護技術
數據完整性是指數據的正確性和一致性,它有兩方面的含義:(1)數據取值的正確性,即字段列值必須符合數據的取值范圍、類型和精度的規定;(2)相關數據的一致性,即相關表的聯系字段的列值匹配。
在SQL Server數據庫應用系統中,實施數據完整性維護的方法主要有以下三種,其策略為:
(1)對于通過窗口操作輸入的數據,一般采用前端應用程序來確保數據的完整性。這樣,一方面可把非法數據在提交到數據庫之前就拒之門外,另一方面可讓用戶及時得到操作反饋信息,使系統更加友好。
(2)數據一致性的維護,適于由后端數據庫的觸發器或表定義的約束來實現。這樣可降低前端應用程序的開發量,提高應用系統的運行效率和可維護性。
(3)對于數據完整性和安全性要求較高的系統,則需要采用多層保護屏障來確保數據的完整性和安全性。如既在前端應用系統程序檢查輸入數據的有效性,同時又在后端數據庫建立表約束、規則、缺省和觸發器等措施進行數據完整性約束。這樣可提高系統數據的可靠性和安全性。
本系統主要采用了后端數據庫的保護措施。后端數據庫服務器保護又可分為:定義create table完整性約束保護;定義規則、缺省、索引和觸發器保護。
(1)定義create table完整性約束
此方法是在創建數據庫表的命令語句中,加入字段的數據完整性約束語句來實施數據的完整性保護。如在建表語句中可加入非空(not 1)約束、缺省(default)約束、唯一碼(unique)約束、主鍵碼(primary key)約束等。它的主要特點是:定義簡單、安全可靠、維護方便。在創建本系統的物理模型時,就采用了這些完整性約束。
(2)定義規則、缺省、索引和觸發器
在數據庫表的創建命令語句中定義約束的方法,雖然具有簡單、方便、安全等特點,但它只對特定的表有效,不能應用到其它表,并且只能使用alter table命令修改或刪除,缺乏一定的靈活性。在數據庫中創建與表相對獨立的規則、索引和觸發器對象,也能實現數據完整性保護,而且能實施更復雜、更完善的數據完整性約束。它的主要特點是:功能強、效率高、維護方便。
類似于表定義中的參照完整性約束,觸發器可用來保證相關數據的一致性。它還能完成一些表定義的參照完整性約束不能完成的任務:(1)對數據庫相關表中的更新進行級聯;(2)通過引用其它列或數據庫對象來實現復雜的限制;(3)執行“若...則”分析。例如,若當刪除教師表的主鍵碼行時,也要求刪除任課表(Teach)的外鍵碼相關行。
6 系統運行示例
本節給出了系統運行的界面,管理員和教師借助于頁面就可以對實驗信息進行管理。圖4~7對應的頁面分別說明了學生身份和權限設置、實驗項目設置、實驗結果的瀏覽和統計信息查詢功能。

圖4 學生身份、權限的設置

圖5 實驗項目的設置

圖6 實驗結果的瀏覽

圖7統計信息查詢
參考文獻:
[1]張紅,蔡秀云,等.ASP程序和ActiveX技術結合開發Web系統[J].工程圖學學報,2001,(3).
[2]袁鵬飛,孫軍安.中文版SQL Server2000數據庫系統管理[M].北京:人民郵電出版社,2001.
[3]精英科技.ASP核心技術[M].北京:中國電力出版社,2001.
[4]金磊,康曉寧,鄧就慶.精通Web數據庫[M].北京人民郵電出版社,2001.
[5]余英,梁剛.Visual C++實踐與提高 COM和COM+篇[M].北京:中國鐵道出版社,2001.