文/劉波 鄭競力 鄧洪志
隨著互聯網技術的進一步發展,新型的教學考核手段得以應用到臨床醫學教育中。為推進考試科學化和信息化,使用醫學理論與實際操作在線考試系統,能夠對醫學專業學生的平日學習效果進行真實、直接、迅速的反映。華中科技大學在WCF框架下通過應用Silverlight技術在瀏覽器客戶端來訪問服務器數據庫,設計和實現了臨床醫學網絡考核系統。從系統開發的實踐效果來看,基于Silverlight和WCF的這種輕量級服務調用使開發出來的網絡應用過程簡單高效。整個系統很好地平衡了C/S、B/S結構的優缺點,具有網絡響應迅速、訪問界面傳輸流暢、交互應答快捷高效、服務器及訪問終端系統并行運行流暢等特點。
在線考核系統開發方法有以下幾種,如面向對象的方法(Object Oriented Development),原型方法(Rapid Application Development),結構化方法(Structured System Analysis and Design)等。在線考核系統,要對并發的瀏覽器客戶端請求即時應答,動態生成不同的試卷頁面,還要記錄考生的每一步操作痕跡,因而對運行效率要求較高。

圖1 三維結構體系

圖2 原型化方法工作流程
軟件開發要從科學的角度來分析問題,也要從過程的角度來解決問題,最終的目標就是將人類的信息系統管理方式或過程在最大程度上轉變為計算機可以高效執行的軟件系統。總體說來包含三個方面的內容,即系統的思想、數學的方法和計算機的技術。美國系統工程專家霍爾(H.hall)最先提出了由時間維、邏輯維和知識維三要素所組成的系統方法“三維結構體系”(圖1),對軟件工程的理解和對軟件開發方法分析是非常有益的。
結合目前醫學科目考核的實際情況,醫學在線考核系統主要采用原型法以及面向對象的方法,并以結構化程序設計為基礎來貫穿整個軟件的開發過程。
1.原型法
隨著新的程序設計語言、關系數據庫以及高效的系統開發環境得以應用,軟件開發效率大大提高,出現了原型化軟件開發方法。原型化開發方法強調抓住核心和關鍵應用,借助于高效的開發手段,快速構造出系統原型,盡快提交給用戶一個可以試用和測試的系統模型。通過試用以后收集用戶的反饋信息,進一步明確用戶需求,在系統原型的基礎之上修改程序來完善功能。由于原型系統可以實際運行,也是最終系統的核心或組成部分,其構造簡便,完成速度快,付出代價也相對較低,解決了傳統結構化開發方法開發周期長、代價高的缺點。
原型化開發方法的基本過程如圖2所示。
值得注意的是,原型化方法也是以結構化軟件開發方法為核心的,基本過程就是反復確認用戶需求。但對于大規模的軟件開發來說,用戶的需求有時是難以明確甚至是隨著軟件的具體使用而不斷變化的,使得軟件修改變得非常困難。
2.面向對象方法
面向對象的開發方法較好地解決了這個問題,其核心就是將目標轉移到系統中的對象身上,先設計好對象的屬性與行為,再考慮對象間的操作關系。系統中的每個對象都是一個單獨模塊,以對象為基礎,加上對象之間的操作關系來構成整個系統。面向對象的系統開發過程,可分為系統需求分析、系統設計、系統實現,以及系統測試等幾個步驟。如圖3所示。

圖3 面向對象開發模型
軟件體系結構目前主要有兩大結構:C/S結構和B/S結構。與C/S“胖客戶端”結構相比較,B/S“瘦客戶端”結構的客戶端不需要安裝特殊的軟件,只要客戶端計算機能夠上網即可訪問服務器。
隨著網絡應用的迅速發展,出現了“富”客戶端技術。“富”是指客戶端的交互模型,使之具有完全訪問宿主操作系統和API的能力以及調用宿主系統的計算能力,從而出現多樣化輸入方式和符合用戶感覺的即時反饋手段。使得“富”客戶端模式的應用使用起來就像是使用現有的桌面應用軟件如Word,WPS一樣。
當前主流的富客戶端技術包括Flash、Silverlight等,兩者的特點如表1所示。
.NET框架包括三個主要組成部分:公共語言、服務框架,以及兩類應用模板(傳統的Windows應用程序模板和基于ASP.NET的面向Web的網絡應用程序模板)。
1.基于Silverlight的面向服務的富客戶端開發技術
Microsoft Silverlight翻譯為“微軟銀光”,是一種能在各種平臺上運行的Web呈現技術。Silverlight這樣一個跨瀏覽器、跨平臺的插件,為網絡帶來多種基于.NET framework的交互式應用程序。對于運行在Macintosh和Windows上的瀏覽器,Silverlight都可以提供統一而豐富的用戶體驗。

表1 Silverlight與Flash比較
2.基于WCF的數據庫訪問技術
WCF(Windows Communication Foundation)是.NET框架的一部分,是一組數據通信的應用程序開發接口。WCF集合了幾乎所有由 .NET Framework 所提供的通信方法,通信雙方的溝通方式由合約(Contact)來訂定。使得WCF可以支持傳輸層以及消息層的兩種安全層次。在 Visual Studio中,所有 WCF 服務的連接都是由客戶端的服務代理(WCF Service Proxy)來運行的,開發人員不用花費太多精力在通信上。而服務代理在Visual Studio項目中被稱為服務引用(Service Reference)。
在Visual Studio中添加 WCF 的服務引用方法非常簡單,只需要在程序代碼中引用WCF Service Proxy 對象即可。Silverlight客戶端通過添加 Web Service 引用來調用服務方法從而完成數據訪問操作。WCF是ASP.NET Web Service的發展或擴展。
WCF Data Services是WCF服務框架下的具體實現方法,也稱為ADO.NET Data Service。服務器端通過ADO.NET Entity數據模型,將OData (Open Data Protocol)數據封裝為實體模型,然后通過WCF 服務來發布數據;Silverlight 客戶端則通過添加 WCF服務引用并通過簡單編碼實現異步調用來完成數據訪問操作。Silverlightenabled WCF Service是Silverlight使用WCF服務操縱SQL Server的主要方法。在服務器端通過LINQ to SQL,將數據封裝為實體Model,通過手動編碼實現數據的具體操作,發布Silverlightenabled WCF Service服務;而客戶端通過添加WCF服務引用和簡單編碼實現異步調用方法來完成數據訪問操作。
WCF RIA Services:WCF RIA Services 簡化了針對富Internet應用程序 (RIA)的n層解決方案部署,比前面介紹的WCF服務和Web服務都要簡單。基本方法也是首先在服務器端通過ADO.NET Entity數據模型,將數據進行封裝,然后通過 Domain Service發布服務。在Silverlight 客戶端,通過添加Domain Service引用和簡單編碼實現同步調用實體類,從而完成業務數據的具體操作。
上述方法的優缺點,如表2所示。
數據庫兼容性一般:默認只能訪問SQL Server和Access,訪問Oracle、DB2等數據庫需要安裝第三方插件。
以面向對象方法、原型化方法為指導,以Silverlight富客戶端的B/S結構作為軟件體系結構,網絡數據訪問方式基于WCF Data Service方式訪問數據庫,實現醫學理論與實際操作在線考試系統的設計和開發應用。
通過需求分析,對系統的功能有了清晰的界定,確定系統的邏輯模型和物理模型,包括系統功能模塊設計、數據庫設計等。系統設計工作包括系統總體設計、代碼編寫、系統配置以及數據存儲、功能模塊設計等。設計的基本原則是系統性、可靠性、靈活性以及經濟性。
系統總體架構如圖4所示,客戶端(帶Silverlight插件的瀏覽器)通過互聯網或局域網訪問服務器,服務器上通過WCF服務訪問數據庫。
整體上系統劃分為四個功能模塊,包括用戶信息管理、醫學信息管理、在線考察,以及系統管理。系統將用戶管理與系統管理加以區分,由系統管理員對用戶實施管理,而硬件系統維護工作則由系統管理完成。
Microsoft在Silverlight中的DataGrid沒有支持數據集、數據表(DataSet, DataTable),這對于數據顯示來說是十分不便的,而客戶端與服務端的高效數據傳遞并不容易實現,因此,系統直接使用了由加拿大 LASKARZHEVSKY SOFTWARE INC開發的開源軟件來實現基于WCF的服務器端和客戶端即時信息交互。在Silverlight中通過WCF進行異步數據訪問的模式設計如圖5所示,執行順序。
建立WCF服務:考慮到返回的數據類型的差異,將WCF數據庫訪問分為2類:查詢數據,更新和刪除數據。
由于構建Oracle數據庫服務器需要較高的配置,而目前MySQL數據庫系統搭建比較容易,占用資源也不多,因此,在開發過程中,靈活地配置了2種模式:調試過程中使用MySQL數據庫系統,在后期測試和發布轉移到Oracle系統。
由于進行了較好的封裝,這種轉移很容易實現。
服務引用:設計好數據庫存取服務代碼(dataAccess_wcf_serviceRef.svc,代碼源文件為dataAccess_wcf_serviceRef.svc.cs)之后,在項目文件中添加服務引用。
得到服務:dataAccess_ServiceReference。

表2 Silverlight客戶端數據庫訪問技術比較

圖4 系統總體架構

圖5 WCF異步訪問數據庫模式
整個考試系統包含了用戶管理、權限認證,試題與試卷資源建設與維護,考試過程控制和統計分析、信息反饋等四大部分,分別由各自的數據庫支持,在線考核時每個用戶使用“富”瀏覽器客戶端遠程登錄考核系統,動態生成不重復的整套考核試卷,每個題目都以一個單獨的窗口臨時生成。
考核系統實時記錄被考核對象的每一個電子動作,并將紀錄即時發往相應數據庫紀錄保存,待考核結束或計時結束后立即產生考核結果。
隨著校園網絡的高速發展,網絡規模不斷擴大,網絡在線考核平臺已成為校園網的一個重要應用部分,替代舊的考核機制在醫學領域得以廣泛應用。傳統紙質試卷中,圖片只能單色顯示。而微生物學、病理學、診斷學、解剖學、影像學等學科中,可放大的彩色圖片能更真實直觀準確地呈現試題。在線考核系統可提供大體結構、顯微結構、免疫ELISA法進行的微生物革蘭氏染色結果等涵蓋形態學、X片判讀、心電圖等專業彩色顯像技術。為廣大學生提供“靈活、方便、科學、公平”的學習測評服務。通過在線考核系統對學生學習進行考核,了解學生學習效果,為改進教學提供了依據。實現了網絡題庫的及時更新和維護,也保證了試題更新滿足教學的要求。相對紙質化的考試而言具有省時、省力、存儲方便等優點。當然,由于此項工作實施還處在試點起步階段,還有很多細節需要補充,但在校園網絡應用和發展上指出了一個新的方向。