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