摘要:該文通過介紹智能客戶端的特點,指出在當前一校多區的這種背景下,智能客戶端技術是高校教務管理系統最佳的設計模式,同時,分析實現這種技術的幾個關鍵問題。
關鍵詞:智能客戶端;高校教務管理系統;智能部署;自動更新;離線工作
中圖分類號:TP315文獻標識碼:A文章編號:1009-3044(2008)24-1221-02
Application of Smart Client Technology in University Teaching Management Information System
CAI Qun-ying
(Department of Mathematics and Information Technology,Hanshan Normal University,Chaozhou 521041,China)
Abstract:this paper introduces the characteristics of Smart Client,point outthat Smart Client is the best design mode of university teaching management information system in now,and at the same time,analysis several key problems of this technology.
Key words:smart client;university teaching management information system;smart deploy,auto renew;offline work
1 引言
在MIS系統開發中,經歷了從C/S(客戶機/服務器)模式到B/S(瀏覽器/服務器)模式的演變過程,B/S模式逐漸取代了C/S模式,具有部署和更新方便等特點,但業務處理都由服務器承擔,造成服務器負擔過重,網絡速度慢。隨著微軟的.NET平臺的推出,一種新的技術——智能客戶端(smart client)技術也隨著出現[1]。這項技術正是結合了C/S和B/S兩者的優點,使得既有windows程序的強大用戶界面,又有web應用級和更新的快捷。它是一種可以基于HTTP協議進行部署和分布式交互,并能夠利用本地計算機強大計算資源的一種新型客戶端解決方案。它具有的最大特點是:可以訪問本地資源、能夠進行基于互聯網的分布式交互、支持離線模式、支持自動更新與實時部署[1]。
2 智能客戶端技術在高校教務管理系統中的應用
現在,高校的教務管理模式都相近,都具備有如下功能[2]:基礎信息管理、 學籍管理、教學計劃管理、排課管理、選課管理、考試管理、成績管理、實習管理、教學評估、教材管理;用戶有三類:教務管理人員、教師和學生。教務管理人員一般都在局域網中對教學事務進行管理,需要各種各樣的數據錄入、事務處理、決策提供和報表統計等,由于后臺的管理和相對的獨立性,且用戶量小,采用C/S模式實現,交互性強,存取數據安全,網絡通訊量低,處理速度快。而對于教師和學生,都是以各種信息查詢和確認為主。如學生查詢成績、功課表、進行評選課等,教師進行成績錄入、查看功課表、選課情況和評課情況等。這類用戶所處的位置通常都不在局域網中,沒有固定的位置,這時采用B/S模式,適合應用范圍廣,地點靈活,應用方便。也就是說,當前的很多教務管理系統都是采用C/S模式和B/S模式相結合的體系結構。
但由于近幾年高校擴大辦學規模,出現一校多區,這對教務管理帶來不便,對于分校教學區,如果繼續使用C/S模式,那么在客戶端操作的數據是存放在服務器端的數據庫中,這就要保證在客戶端處理的時候都要在線;而對于教務管理系統,各種數據庫表都有專人管理,并且事務的處理流程都是分時進行的,發生沖突的可能性不大,也就是說客戶端是支持偶爾連接。因此,當前的高校教務管理系統適合采用智能客戶端技術。智能客戶端的體系結構[3]如圖1所示,

圖1 智能客戶端的體系結構
3 實現智能客戶端的關鍵問題
3.1 智能部署和自動更新
在c/s模式中,胖客戶端提供了高質量、響應迅速的用戶體驗,但它們非常難于部署和更新。通常具有大量復雜的安裝要求,并且可能通過注冊組件或者在公共位置安裝 DLL 來共享代碼,如果多個應用程序共享的組件不兼容,這就會導致另一個應用程序不能正常使用,這就是應用程序的脆弱性。而在更新時,新版本的應用程序通常通過重新部署整個應用程序來提供。
而在.NET框架下,.NET框架具有許多實現智能客戶端的特征,應用程序的安裝和更新變得非常容易。提供了具備自我描述能力且牢固綁定的程序集,可以將.NET框架程序集部署到應用程序目錄,以供該特定應用程序使用,并且默認情況下將其與其他應用程序單獨保存并隔離。這意味著不需要將程序集部署到Windows目錄或者將其顯式注冊到注冊表中,從而降低了在安裝其他應用程序時改寫或刪除這些程序集的可能性,從而有助于減少與胖客戶端相關聯的應用程序部署和脆弱性問題。并且支持單獨和并列安裝應用程序的多個版本,這就使得更新簡單。
客戶端更新方案通過.NET Application Updater組件實現,開發人員將應用程序的新版本拷貝到Web服務器上并且適當地修改服務器顯式文件UpdateVersion.xml。
<VersionConfig>
<AvailableVersion>1.0.0.0</AvailableVersion>
<ApplicationUrl>http://localhost/demos/selfupdate/V1/</ApplicationUrl>
</VersionConfig>
AvailableVersion指定最新的可用程序集的版本號。ApplicationURL屬性指定該版本應用程序所在的URL地址。
.NET Application Updater組件將在后臺工作,該組件通過輪詢位于服務器上的UpdateVersion.xml來完成任務。客戶端運行時先啟動appstart.exe文件,啟動appstart.config文件中所指的文件夾中的MyApp.exe程序,如果UpdateVersion.xml文件中列出的版本號大于本地MyApp.exe應用程序的版本,該組件將按UpdateVersion.xml文件中的路徑找到新版文件,創建1個新的本地目錄,將新版的文件下載到該目錄中,從而實現了更新。
更新過程如圖2所示。
Appstart.config文件內容如下:
<Config>
<AppFolderName>V1 Folder</AppFolderName>
<AppExeName>MyApp.exe</AppExeName>
<AppLaunchMode>appdomain</AppLaunchMode>
</Config>
AppFolderName指定包含當前要運行的應用程序版本的子文件夾。AppExeName包含在那個文件夾下要載入的exe文件名。當一個應用程序更新完成時,最后一步就是修改AppFolderName的值為指向應用程序的新版本。
3.2離線工作和web服務

圖2 更新過程
智能客戶端的另一個顯著特征就是支持離線模式,這就要求客戶端能夠緩存數據,并且能夠處理數據沖突或一致問題。在.net框架下,通過與web服務完美結合,實現離線工作。Web服務是基于Internet的方法,利用xml、soap、http可以實現跨平臺、跨語言的分布式系統的交互。Web服務主要實現檢索和更新功能,在聯機狀態下,利用web服務檢索服務器端的數據,保存在客戶端的數據庫中,這中間要通過xml來轉換,在脫機狀態下,對客戶端
的數據進行操作,在聯機狀態下通過web服務更新到服務器端。
4 結束語
在.net框架的支持下,智能客戶端得到廣泛的應用,當前高校教務管理系統適合采用這種技術。通過與web服務結合,使得其支持離線工作和支持偶爾連接。
參考文獻:
[1] Microsoft MSDN技術文檔.智能客戶端定義[EB/OL].http://www.microsoft.com/china/msdn/developercenter/
smartclient/SmartClientDefinition.aspx.
[2] 徐金壽,張仁貢.基于B/S和C/S混合模式的高校教務綜合管理系統設計與開發[J].中國教育信息化,2007(4):29-31.
[3] David Hill,Brenton Webster,Edward A Jezierski,et al.智能客戶端體系結構與設計指南[EB/OL].http://www.microsoft.com/china/msdn/library/architecture/architecture/
architecturetopic/SCArchDeGuide/cover.mspx?mfr=true.