仲志平
(安徽師范大學物電學院,安徽 蕪湖 241000)
教育資源的整合與共享是縮小城市與鄉村學校之間、重點與普通學校之間教育資源差距,實現教育資源服務效益最大化,減少項目重復建設,節約國家能源的有效手段。但由于各所學校信息系統建設的時間和起點不同,原有應用系統的開發環境及其數據形式存在差異,因此,在不改變原應用系統的條件下,整合這些自治的、分布的異構數據源中的信息,屏蔽語言、平臺、協議、數據結構等差異所帶來的復雜問題,已經成為信息集成領域研究的熱點。目前,一種較為有效地集成國內校園信息系統的解決方案是,引入Web Services技術。
信息集成技術已經經歷了長期的發展過程,領域專家提出了很多信息集成方案[1]。總體上可以劃分為獨立應用系統、企業應用集成EAI(Enterprise Application Integration)和面向服務的體系結 構 SOA (Service-Oriented Architecture)等 三 個階段[2]。獨立應用系統階段:是將數據源集成到一個系統中,采用統一的數據模式,方法簡單,但是,存在系統建設周期長、成本高、集成系統之間的模塊無法共享等不足。企業應用集成階段EAI:采用基于組件的分布式集成系統和分布式對象模型,能夠集成網絡計算環境下大量復雜的信息。但是要求服務客戶端與系統提供的服務之間屬于同類基本結構,且服務供需兩端的執行機制相互制約。面向服務的體系結構SOA:通過良構的接口將應用程序的不同功能單元聯系起來,接口定義獨立于實現服務的硬件平臺、操作系統和編程語言,系統中的服務可以以一種統一的方式進行交互,具有松耦合、重構靈活、支持標準以及關注服務等特點。但是,應用程序的不同組件之間緊密相連,當需要更改時,它們就顯得非常脆弱。
Web Services是一個分布式計算模型,利用XML、SOAP、UDDI、WSDL 和 WSFL 等標準構造一個松散耦合的分布式計算環境,解決不同中間件平臺之間服務的互操作性[3]。該領域包括服務提供者、服務注冊中心和服務請求者三個部分,可以進行信息服務的發布、發現和綁定等操作。與CORBA,EJB和DCOM等技術相比,Web Services技術有利于系統的開放性、安全性和可維護性,且允許重用代碼以及代碼后面的數據。通過Web Services統一的調用接口,可以屏蔽不同服務端組件之間的差異,實現信息系統之間的對接,從而實現信息系統間的協同工作,達到數據共享的目的。

圖1.1 多所學校的信息系統集成模型
利用Web Services架構,模仿設計了多所學校的信息系統集成模型,如圖1.1所示。
應用場景:假設幾所學校之間希望實現信息整合與共享。每所學校都存在教務系統、財務系統、圖書管理系統以及后勤服務系統等等,各部門的服務器,內部連接各自的數據庫服務器。各部門提供的應用服務主要是針對具體業務部門的業務邏輯,如財務處的財務收費系統、教務處的選課系統和成績管理系統、圖書館的圖書管理系統等,實現方式可以采用web方式和普通桌面應用程序。所有部門將自己信息系統提供的服務以Web Service的形式發布到集成模型的 Private UDDI Registry上,便于其它學校的相關部門對該服務的發現和調用。例如,學校教務處將學生成績查詢以Web Service的方式發布到Private UDDI Registry上,行政管理機構如果需要對其管轄的所有學校學生成績進行統計分析,就可以通過注冊中心找到每所學校所提供的學生成績查詢服務,然后根據查找到的相應的服務描述把應用程序綁定到學校教務處的WEB服務上,不需要重新開發學校成績管理系統,就可以掌握所有學生的學習情況。
Web Services的實現包括將現有的應用封裝為Web Service和重新創建能提供特定服務功能的Web Service兩個方面。假設實現系統集成的每所學校已經搭建的信息系統采用了不同的開發環境、不同的開發平臺和編程語言,并正在發揮著作用。在進行校園信息系統集成時,關鍵性的工作是在不改變校園原始應用系統的前提下,將這些應用升級到Web Service-Ready。考慮校園原有的信息系統可能是采用傳統的分布式技術(COM+、CORBA、EJB),或結合了 DataSnap 的MultiTier數據庫技術。服務請求/調用過程中,除了傳遞簡單類型數據外,還包含了復雜類型數據,因此在實現Web Services時,需要重點解決結合傳統分布式技術、DataSnap技術的Web Services的編程實現及處理復雜類型數據Web Services的編程實現中存在的一些棘手問題。由于篇幅的問題,本文僅給出了結合傳統分布式技術的Web Services實現算法。
將Web Services與傳統分布式技術結合的目的就是以最小的代價將現有的分布式信息系統升級為Web Service信息系統。對于以不同分布式技術(CORBA/EJB/COM+)實現的應用,采用類似封裝形式包裝成Web Service,把Web Service作為客戶端和組件之間的中間層,由于Web Service可以被各種用戶調用,從而消除了異構平臺的集成問題。當Web Service接受了客戶端請求之后,便可以再通過COM+來執行邏輯程序代碼,或使用ADO存取數據庫。結合組件模型COM+的 Web Services結構如圖2.1[4]所示。系統實現中包括存取數據的COM+組件、Web Service服務器端和客戶端幾個部分的開發實現。

圖2.1 結合組件模型COM+的Web Services結構
將存取數據的COM+組件封裝成Web服務,讓客戶端通過Web服務接口使用COM+組件的邏輯功能。Web Service服務器端的編程實現過程為:①在COM+項目群組中再建立一個Soap應用程序項目,建立WAD類型的Web Service服務器,CoClass名稱為STUDENTServiceServer。②設定Service Name為STUDENTService,激活模式選為Per Request。③在服務接口ISTUDENTService程序單元中定義查詢數據(QueryMyData)和更新數據(UpdateMyData)兩個方法讓客戶端調用。當客戶端應用程序調用服務器端的這兩個方法來存取數據和更新數據時,Web Service的這兩個方法會再調用COM+組件的方法來完成工作,這個Web Service服務器只是作為客戶端調用COM+功能的中間層。如此一來,各種客戶端就可以通過這個Web Service服務器來使用COM+組件提供的功能,或是調用早已被開發的COM+組件。實現Web Services接口中定義的的查詢數據(QueryMyData)和更新數據(UpdateMyData)的主要算法分別如清單1所示。④執行Web Service服務器向系統注冊這個Web Service服務器,便于客戶端調用。

清單1

清單2
通過Web Services客戶端應用程序可以調用Web Services服務器端提供的應用服務,不過首先需要獲得Web Services服務器端實現的Web服務描述信息。系統實現之后,對數據庫UNIVERSITY中學生信息數據表中的數據進行存取和更新測試。其編程實現如下:①在項目群組中建立一個新的應用程序項目,并在主窗口中放入THTTPRIO控件連接到Web Service服務器進行存取數據和更新數據的工作。設置THTTPRIO 的 WSDLLocation 特性值為:http://localhost:1024/Project2.exe/wsdl/ISTUDENTService。②實現客戶端主窗口中兩個按鈕 “Query By WAD”(查詢數據)和“Update By WAD”(更新數據)的OnClick事件處理函數,主要實現算法分別如清單2所示。
利用SQL Server 200、C++Builder 6開發結合DataSnap技術的學生信息數據庫系統,編程實現存儲數據的COM+組件,完成了Web Services服務器端和客戶端的編程實現后,對系統優化前后的查詢、更新兩項操作進行了測試,并記錄完成一次成功查詢和更新操作所花費的時間,測試時間記錄如表1所示。

表1 測試結果
從測試結果可以看出,采用壓縮傳遞的數據量效率最高,直接使用THTTPRIO的URL特性和把遠程Web Service的WSDL文件先儲存在客戶端直接使用效果幾乎一樣,查詢和更新時間幾乎相同,都可以避免存取不必要的WSDL內容。相比之下,使用URL特性還可以免除事先把Web Service的WSDL儲存到客戶端的工作,從而免除在客戶端擁有太多的WSDL文件,增加管理上的問題。
信息集成是實現信息互訪、資源共享,縮小學校之間的地區差異、等級差異,改善學生接受教育不平等局面的有效手段。同時可以提高教育資源的服務效率、避免項目重復建設和節約國家的能源。分布式集成技術Web Services,可以充分利用各所學校現有的信息系統資源,節約新系統開發所需要的時間和經費成本。不僅可以實現學校之間的信息互訪,而且在其它行業,如醫院、企業等領域也有廣泛的發展前景。未來在服務的動態綁定,構建科學合理的代碼結構等方面需要進一步優化設計,使集成系統性能得到更大的提高。
[1]聶志強.信息集成技術的研究背景與現狀[J].科技資訊,2009,(35):16-17.
[2]韓冬佑,王文友,譚教鋒.基于SOA架構的企業應用集成平臺研究[J].信息與電腦,2010,(1):168-169.
[3]閻煒,高冠軍,劉國等.基于信息平臺的 Web Services集成方案的研究分析[J].中小企業管理與科技,2012,(6):125-128.
[4]李維.C++Builder 6 SOAP/Web Service 開發[M].武漢:華中科技大學出版社,2002:187.