司吉鵬
摘要:該文分析了考試數據異構現狀,通過分析Web Service體系結構,提出了基于Web Service進行異構數據的集成機制。
關鍵詞:Web Service;招生考試;數據異構;數據集成
中圖分類號:TP393 文獻標識碼:A
文章編號:1009-3044(2019)10-0005-02
開放科學(資源服務)標識碼(OSID):
隨著信息技術的高速發展,在教育教學、考試、錄取過程中,信息技術發揮的作用越來越大。不同時間、不同地區以及不同考試或錄取過程中使用的管理系統不同,其中的信息資源往往存儲于不同的數據庫管理系統(如MS SQLServer、Access、Visual FoxPro),甚至直接存儲于EXCEL或者WORD,這些不同的數據庫管理系統由于使用者的不同往往在地理上也是分布的,從而構成一個結構復雜跨越Internet的分布式異構數據源。因此,異構數據源的整合、集成是招生考試系統信息化建設過程中需要解決的一個問題。
數據源異構主要表現在兩個方面:
1)系統異構,即數據源所依賴的應用系統、數據庫管理系統以及操作系統之間的不同構成的系統異構。在招生考試工作中,常用的數據庫,比如信息技術考試使用sql server 2000,而考試報名系統常采用VFP。
2)模式異構,即數據源在存儲模式上的不同。存儲模式主要有關系模式、對象模式、對象關系模式以及文檔嵌套模式等幾種,其中目前主流的存儲模式是關系模式。即使是同一類存儲模式,由于屬于不同公司的數據庫產品,他們的模式結構也存在著差異。如Oracle與DB2在數據類型上并不完全一致。
此外,更常見的沖突來自命名,數據類型的沖突,比如考生的準考證號名稱“zkzh”,而在其他系統里則可能是“zkh”,數據類型則可能是字符型也可能是長整型。
為了實現在異構環境中的信息共享和交互,傳統的方法只要有以下三種:
1)數據的遷移和轉換:利用數據轉換工具對數據格式轉換,從而能被其他系統接收。
2)模式集成手段:模式集成是指在邏輯上使用同一的概念模式表示各個數據庫中的信息,達到數據共享的目的。傳統的模式集成手段分為全局模式和聯邦數據庫兩種。但這種集成通常是單向、主從式的,在可擴展性和性能上差強人意。
3)使用中間件技術:中間件是位于客戶端和服務器之間的中介接口軟件,現有的數據庫中間件允許客戶端在異構數據庫上調用SQL服務已解決異構問題。
Web Service是一種新型的Web應用程序,具有自包含、自描述以及模塊化的特點,可以通過Web發布、查找和調用;Web Service實現的功能可以是響應客戶一個簡單的請求,也可以是完成一個復雜的商務流程,一旦一個Web Servcie配置好后,其他應用程序和其他Web Service就可以直接發現和調用該服務。本文提出一種基于Web Service的分布異構數據庫集成方法。
1 Web Service體系結構介紹
Web服務[1][2]是當下新興的Web應用模式,也是一種嶄新的分布式計算模型。Web服務主要解決如何讓服務在網絡中共享以及用戶如何獲取網絡中的共享的服務并組合成自己所需的應用程序,實現軟件的互操作性。Web服務具有良好的封裝性、松耦合性、協議規范等特點,在很多領域得到了廣泛的應用,尤其在電子商務領域中,它大大降低了電子商務的維護成本,成為在該領域最為合理的解決方案。
Web服務框架包括服務提供者、服務請求者和服務代理以及三者之間的通信、XML消息傳遞機制等[3]。Web服務建立在一系列的標準協議之上,如HTTP/SOAP(Simple Object Access Protocol,簡單對象訪問協議)[4]、WSDL(Web Service Description Language,Web服務描述語言)[5]、UDDI(Universal Description Discovery and Integration,統一描述發現集成)[6] ,這些協議均使用XML作為語法基礎,彼此間具有兼容性。
Web Service有三個角色:服務提供者,服務請求者和服務注冊機構。如圖1所示:
服務注冊機構注冊已經發布的服務,對其進行分類,并提供搜索服務;服務提供者發布自己的服務,并且對使用自身服務的請求進行響應;服務請求者利用服務注冊機構查找所需的服務,然后使用該服務。
在這個體系結構中,對傳統應用系統體系結構的設計作了徹底的改變,實現了具體的事務處理信息、服務和具體客戶的分離.在傳統的企業應用系統中,需要確定對于該應用系統的客戶,然后以此為中心進行設計.而在面向服務的體系結構中,對于客戶的標準沒有嚴格定義,而是盡可能地把系統的服務設計得較靈活,以便在以后不斷變化的環境中能夠吸引更多的潛在客戶。
2 分布式異構數據庫集成機制
招生考試領域內的數據有考生報名數據、各科成績數據、錄取數據等,將這些數據按照使用的數據庫管理系統進行劃分,如MS SQL Server、Oracle、Visual FoxPro、Access等,所有這些數據形成了一個分布的異構數據源。但是高層應用對信息的透明訪問目標,要求應用訪問數據時不需要知道底層的數據結構、存儲位置.Net的XML Web Service技術為實現分布式異構數據庫的訪問提供了強有力的支持.基于Web Service技術訪問分布異構數據庫的體系結構充分利用.NET的Web分布式應用程序三層架構的優點,是一個基于Web應用程序松散耦合三層架構:最底層為各分布的異構數據庫,其上兩層為專用Web Service和數據集成Web Service。
(1)專用Web Service
在分布異構數據庫之上,針對不同的數據庫,建立相應的Web Service.該Web Service利用ADO.NET中的相同或不同數據提供程序,連接不同數據庫;執行對相應數據庫的檢索、插入、更新等一些數據操作,并向其客戶端提供數據庫的操作方法,使用數據集向客戶端提供數據和從客戶端獲得數據.由于位于不同地點的不同數據庫系統之上的Web Service統一以向數據集成Web Service提供數據并提供統一的公開方法,從而屏蔽了不同數據庫管理系統的異構信息.使得數據集成Web Service不必理會不同數據庫的差異,集中處理各分布的數據集集成。
(2)數據集成Web Service
數據集成Web Service通過HTTP調用底層分布的專用Web Service的公開的方法,獲得來自不同數據庫系統的數據,并將這些處于不同數據集中的數據集成到一個數據集中,通過向上公開的方法將數據提供給訪問數據庫的應用程序.該層對訪問數據庫的應用程序屏蔽了數據庫的分布異構信息,使訪問數據庫的應用程序對數據的操作就像是在使用一個數據庫。
3關鍵技術
基于Web Service的數據庫集成涉及多方面的技術規范,包括XML、SOAP、WSDL、UDDI,它們構成一個互操作的協議棧。
(1)XML是基于Web Service的數據庫集成的技術基礎.它是數據表示的基本格式,用來定義具有語義信息的、半結構化/結構化的標記語言的句法,從而有利于信息的表達和組織,提高數據的檢索和處理效率.XML正在成為Internet上數據描述和交換的標準。
(2)SOAP是一種獨立的、通用的、基于XML標準的和文本的對象訪問協議,用于在不同甚至異構的系統中發送和接收XML 數據,實現相互通信.它不與任何現有的對象模式(如COM/DCOM 和CORB等)相關,SOAP傳遞的消息都以XML文檔形式發送和接收,而且其實現完全遵守HTTP 協議。
(3)WSDL(Web Service Description Language)[7]Web服務描述語言,以XML為格式對服務的接口(如方法和方法的服務類型)、傳輸協議、服務位置以及實現細節進行詳細的描述,也就是描述服務的三種屬性:服務能做什么、如何訪問服務、服務位于何處。WSDL 將Web Service描述為一組端點,這些端點對包含面向文檔信息或面向過程信息的消息進行操作,使用戶應用程序能夠調用其所提供的服務。
(4)UDDI (Universal Description, Discovery, and Integration,通用、描述、發現和集成)是一套面向Web 服務的信息注冊中心的實現標準和規范[8]。創建UDDI 注冊中心的目的是實現Web 服務的發布和發現。我們利用UDDI 規范在Web 上建立發現服務,這些發現服務為所有請求者提供了一致的接口,使得已經發布的Web 服務能通過編程被需要的請求者發現。UDDI 規范文本定義了UDDI 操作入口站點能夠支持的API 接口和API 中用XML描述的數據結構的具體定義[28]。UDDI 提供了三個基本功能:服務的發布、查找和綁定。
借助XML和SOAP,分布異構數據庫集成和交互的問題將從層次上被簡化。XML提供了跨平臺的數據編碼和組織方法,而SOAP建立在XML之上,定義了一種跨系統平臺的信息交換的簡單包裝方法.綁定于HTTP之上的SOAP協議,可以跨語言、跨操作系統、跨防火墻進行遠程過程調用(RPC),實現了編程語言和系統平臺的無關性,大大簡化了異構數據庫之間的交互問題.為了實現這種交互,需要利用WSDL文檔定義接口并描述服務,在UDDI規范下,不同數據庫可以用相同的方法描述自己所能提供的服務,以便讓對方能夠發現和應用服務。UDDI和WSDL 技術組合用來實現Web Service的查找操作,WSDL和SOAP技術組合用來實現服務的綁定,沒有UDDI,Web Service就不能發布和查找,自然就談不上Web Service的實現,可以認為UDDI是Web Service的基石。
對于數據集成Web Service,關鍵在于數據集的集中與分散,即當外部應用程序讀取數據庫數據時,該層將從多個底層Web Service獲取多個數據集并將其集成到一個數據集中;當外部應用程序更新數據時,該層將判斷被更新的記錄屬于那個數據庫并調用相應的Web Service的公開方法更新該數據庫.為了達到此目的,在該層設有一個數據結構,該數據結構記錄各分散的數據集的相關信息.當從底層Web Service獲取的多個數據集集成到一個數據集中時,自動記錄各分散的數據集的相關信息;當外部應用程序更新記錄并通過數據集傳回時,該層從傳回的數據集中獲取被更新的記錄數據及位置,根據記錄數據結構中各分散的數據集的信息,確定被更新的記錄屬于哪一個分散數據集,從而更新該數據集并調用相應Web Service的方法完成更新。
4 總結
基于Web Service的分布異構數據庫集成機制,充分利用了ADO.NET斷開式數據結構、與XML的緊密集成、能夠組合來自多個不同數據源的考生數據表示形式以及為與數據庫交互而優化的功能的特點,相對于其他分布異構數據庫的實現,該機制有健壯性、易擴展性和簡化應用程序設計開發等優點.通過Web Service對分布于不同數據源進行整合,實現分布異構數據的透明訪問,可以大大方便對于底層不同結構的考生數據的訪問和共享。
參考文獻:
[1]Web Service Architecture Overview.The next stage of Evolution for e-business[EB/QL]http://www-106.ibm.com/developerworks/web/library/w-ovr,2001.
[2] 柴曉路,梁宇奇.Web Service技術、框架和應用[M].電子工業出版社,2003.
[3] 岳昆,王曉玲,周傲英.Web服務核心支撐技術:研究綜述.北京:軟件學報,Vol.15.No.3,2004.
[4] W3C. SOAP Version 1.2[EB/OL]. http://www.w3.org/TR/soap/.2003.
[5] Christensen E, Curbera F, Meredith G, Weerawarana S. Web Services Description Language (WSDL) 1.1[EB/OL].http://www.w3.org/TR/2001/NOTE-wsdl-20010315. 2001
[6] UDDI: The UDDI Technical White Paper[EB/OL]. http://www.uddi.org. 2000
[7] Christensen E, Curbera F, Meredith G, Weerawarana S. Web Services Description Language (WSDL) 1.1[EB/OL]. http://www.w3.org/TR/2001/NOTE-wsdl-20010315. 2001
[8] The Evolution of UDDI,UDDI org White Paper. http://www.uddi.org/pubs/the evolution.
【通聯編輯:王力】