高雙喜, 曹淑服
(河北經(jīng)貿(mào)大學(xué) 信息技術(shù)學(xué)院, 河北 石家莊 050061)
基于Web Services的實(shí)驗(yàn)室異構(gòu)數(shù)據(jù)集成的研究
高雙喜, 曹淑服
(河北經(jīng)貿(mào)大學(xué) 信息技術(shù)學(xué)院, 河北 石家莊 050061)
對(duì)傳統(tǒng)的異構(gòu)數(shù)據(jù)集成方法進(jìn)行了研究,分析了每種集成方法的優(yōu)缺點(diǎn)。針對(duì)高校實(shí)驗(yàn)室各應(yīng)用系統(tǒng)間數(shù)據(jù)共享時(shí)對(duì)數(shù)據(jù)的實(shí)時(shí)同步性要求較高的特點(diǎn),采用模式集成的方法設(shè)計(jì)了一套基于Web Services的異構(gòu)數(shù)據(jù)集成方案,并對(duì)服務(wù)描述、服務(wù)分解和模式映射等關(guān)鍵模塊進(jìn)行了設(shè)計(jì)。方案采用3層構(gòu)架,將數(shù)據(jù)集成的核心功能全部放在了中間層,有效地發(fā)揮了Web Services技術(shù)在異構(gòu)數(shù)據(jù)集成中的優(yōu)勢(shì)。
實(shí)驗(yàn)室管理; 異構(gòu)系統(tǒng); Web Services; 數(shù)據(jù)集成
隨著我國信息技術(shù)的飛速發(fā)展,高校的數(shù)字化校園建設(shè)也在不斷取得新的進(jìn)展[1]。實(shí)驗(yàn)室作為高校進(jìn)行實(shí)踐教學(xué)和師生科研的重要場(chǎng)所,在培養(yǎng)學(xué)生的實(shí)踐動(dòng)手能力、深入理解理論知識(shí)、提升創(chuàng)新能力和綜合素質(zhì)等方面起著重要的作用[2-4],實(shí)驗(yàn)室的信息化水平直接影響著整個(gè)高校的教學(xué)和管理水平。
由于在信息化建設(shè)的初期缺乏統(tǒng)一的規(guī)劃,高校所開發(fā)的信息化系統(tǒng)(如實(shí)驗(yàn)設(shè)備管理系統(tǒng)、開放實(shí)驗(yàn)室預(yù)約系統(tǒng)、實(shí)驗(yàn)室排課系統(tǒng)等)使用不同的數(shù)據(jù)模型或數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),難于進(jìn)行統(tǒng)一的管理和數(shù)據(jù)的共享[5]。另外,實(shí)驗(yàn)室各應(yīng)用系統(tǒng)的數(shù)據(jù)信息必須以本校教務(wù)系統(tǒng)的基礎(chǔ)數(shù)據(jù)信息為依托并與之保持實(shí)時(shí)同步[6],因此,對(duì)這些異構(gòu)的數(shù)據(jù)信息進(jìn)行有效的集成就成為了當(dāng)今實(shí)驗(yàn)室管理部門亟待研究的課題。本文針對(duì)目前高校實(shí)驗(yàn)室多套異構(gòu)系統(tǒng)共存的現(xiàn)狀,設(shè)計(jì)了一套基于Web Services的數(shù)據(jù)集成系統(tǒng),實(shí)現(xiàn)了對(duì)多種異構(gòu)數(shù)據(jù)源的共享和統(tǒng)一管理,提高了高校實(shí)驗(yàn)室對(duì)現(xiàn)有數(shù)據(jù)的使用效率。
異構(gòu)數(shù)據(jù)集成,即通過數(shù)據(jù)轉(zhuǎn)換和傳遞,將具有不同數(shù)據(jù)模型或數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)的數(shù)據(jù)源在邏輯上或物理上有機(jī)地統(tǒng)一[7],從而解決應(yīng)用時(shí)難于共享的問題。
1.1 異構(gòu)數(shù)據(jù)集成的常用方法
目前,異構(gòu)數(shù)據(jù)集成的常用方法主要有數(shù)據(jù)倉庫法、聯(lián)邦數(shù)據(jù)庫法和中間件法等幾種,在實(shí)際數(shù)據(jù)集成應(yīng)用中,它們的側(cè)重點(diǎn)(如執(zhí)行效率、實(shí)時(shí)一致性等)有所不同。
數(shù)據(jù)倉庫法又稱為數(shù)據(jù)復(fù)制法,就是將各個(gè)異構(gòu)數(shù)據(jù)源的數(shù)據(jù)按照全局模式的要求復(fù)制到數(shù)據(jù)倉庫[8],而用戶則通過訪問數(shù)據(jù)倉庫來直接獲取所需的數(shù)據(jù)。由于數(shù)據(jù)倉庫位于本地,因此采用該方法的數(shù)據(jù)集成系統(tǒng)具有較高的執(zhí)行效率和較弱的網(wǎng)絡(luò)依賴性,但數(shù)據(jù)倉庫中的數(shù)據(jù)和數(shù)據(jù)源中的數(shù)據(jù)不能保持實(shí)時(shí)一致。
聯(lián)邦數(shù)據(jù)庫法是一種早期的數(shù)據(jù)集成方法,聯(lián)邦數(shù)據(jù)庫系統(tǒng)在維持各異構(gòu)數(shù)據(jù)源獨(dú)立自治的前提下[9],每個(gè)數(shù)據(jù)源分享自己的部分?jǐn)?shù)據(jù)并提供訪問接口,各數(shù)據(jù)源之間通過訪問接口互相訪問。聯(lián)邦數(shù)據(jù)庫法的缺點(diǎn)是當(dāng)需要集成的異構(gòu)數(shù)據(jù)源較多時(shí),數(shù)據(jù)訪問接口比較多,執(zhí)行的效率較低。
中間件是處于應(yīng)用軟件和數(shù)據(jù)源之間的獨(dú)立的系統(tǒng)軟件或服務(wù)程序。中間件法通過向用戶提供一個(gè)統(tǒng)一的、能夠隱藏底層數(shù)據(jù)細(xì)節(jié)的數(shù)據(jù)邏輯視圖來實(shí)現(xiàn)對(duì)異構(gòu)數(shù)據(jù)源的集成。使用中間件不但能夠?qū)鹘y(tǒng)的結(jié)構(gòu)化的數(shù)據(jù)源進(jìn)行集成,還可以對(duì)諸如Web信息的半結(jié)構(gòu)化或非結(jié)構(gòu)化數(shù)據(jù)源進(jìn)行集成。但是,大多數(shù)中間件技術(shù)(如CORBA、DCOM等)在通信時(shí)需要專門的通信端口,因此可能遭到防火墻的封鎖。另外,基于不同技術(shù)開發(fā)的組件之間的互操作性較差[8]。
聯(lián)邦數(shù)據(jù)庫法和中間件法都屬于典型的模式集成方法。模式集成方法不需要把異構(gòu)數(shù)據(jù)源復(fù)制到本地?cái)?shù)據(jù)庫,數(shù)據(jù)的訪問仍然在原有的遠(yuǎn)程數(shù)據(jù)源中進(jìn)行,因此對(duì)網(wǎng)絡(luò)的依賴性較強(qiáng),但各數(shù)據(jù)源的自治性強(qiáng)、數(shù)據(jù)的實(shí)時(shí)一致性好。
1.2 Web Services數(shù)據(jù)集成技術(shù)
Web Services[10]是一種基于網(wǎng)絡(luò)、面向服務(wù)、分布式的模塊化組件。它把各個(gè)異構(gòu)數(shù)據(jù)源封裝成不同Web服務(wù)并注冊(cè)發(fā)布到Web Services的服務(wù)注冊(cè)中心,應(yīng)用軟件在服務(wù)注冊(cè)中心查找與本身任務(wù)相符的服務(wù),如果找到了,就通過服務(wù)接口調(diào)用這些服務(wù)以完成對(duì)異構(gòu)數(shù)據(jù)源的訪問。Web Services對(duì)應(yīng)用軟件提供的服務(wù)接口是通過XML的WSDL語言來描述的,它隱藏了底層服務(wù)實(shí)現(xiàn)的全部細(xì)節(jié),應(yīng)用軟件只需通過標(biāo)準(zhǔn)SOAP協(xié)議就可以訪問這種服務(wù)。SOAP位于Internet的應(yīng)用協(xié)議之上,可以使用HTTP、FTP等應(yīng)用協(xié)議在互聯(lián)網(wǎng)上傳輸數(shù)據(jù),因此可以突破防火墻的封鎖。
在Web Services數(shù)據(jù)集成系統(tǒng)中,各異構(gòu)數(shù)據(jù)源可以根據(jù)自身的需求參與集成,不需要與集成中心緊密綁定,也不需要特定的對(duì)象模型。各節(jié)點(diǎn)通過服務(wù)注冊(cè)中心的服務(wù)描述與其他節(jié)點(diǎn)進(jìn)行連接,因此各節(jié)點(diǎn)可以直接進(jìn)行數(shù)據(jù)交換和共享,形成一個(gè)松散耦合的集成模式。
2.1 數(shù)據(jù)整合需求
在實(shí)驗(yàn)室現(xiàn)有的各應(yīng)用系統(tǒng)中,一個(gè)系統(tǒng)的運(yùn)行往往需要訪問其他系統(tǒng)的數(shù)據(jù)源。例如,開放實(shí)驗(yàn)室預(yù)約系統(tǒng)要以實(shí)驗(yàn)室和實(shí)驗(yàn)指導(dǎo)教師的課程安排以及相應(yīng)實(shí)驗(yàn)設(shè)備狀態(tài)(是否可用等)數(shù)據(jù)作為開放的依據(jù),而實(shí)驗(yàn)室和教師的課程安排數(shù)據(jù)是由實(shí)驗(yàn)室排課系統(tǒng)產(chǎn)生的,實(shí)驗(yàn)設(shè)備的狀態(tài)數(shù)據(jù)位于實(shí)驗(yàn)設(shè)備管理數(shù)據(jù)庫中。但實(shí)驗(yàn)室現(xiàn)有的應(yīng)用系統(tǒng)大多是獨(dú)立開發(fā)的,它們的數(shù)據(jù)源也存在著異構(gòu)的現(xiàn)象,因此需要將這些異構(gòu)數(shù)據(jù)源進(jìn)行集成,以便于共享。
實(shí)驗(yàn)室各應(yīng)用系統(tǒng)的大部分?jǐn)?shù)據(jù)(如教師、學(xué)生、選課情況等)是以學(xué)校教務(wù)系統(tǒng)的基礎(chǔ)數(shù)據(jù)信息為依托的。為了保證這些數(shù)據(jù)與教務(wù)系統(tǒng)實(shí)時(shí)同步,在進(jìn)行數(shù)據(jù)整合時(shí)需要采用數(shù)據(jù)實(shí)時(shí)一致性較好的模式集成方法。
2.2 架構(gòu)設(shè)計(jì)
基于Web Services的異構(gòu)數(shù)據(jù)集成系統(tǒng)采用模式集成的方法,既實(shí)現(xiàn)了數(shù)據(jù)的松散耦合,又滿足了實(shí)時(shí)同步的要求。實(shí)驗(yàn)室異構(gòu)數(shù)據(jù)集成系統(tǒng)采用了三層架構(gòu)的模式(見圖1)。
圖1 實(shí)驗(yàn)室異構(gòu)數(shù)據(jù)集成系統(tǒng)架構(gòu)
應(yīng)用層為實(shí)驗(yàn)室現(xiàn)有的各種應(yīng)用系統(tǒng),在需要與其他異構(gòu)數(shù)據(jù)源提供數(shù)據(jù)交互服務(wù)時(shí),向Web服務(wù)層發(fā)出服務(wù)請(qǐng)求。
Web服務(wù)層由中心服務(wù)程序、中心數(shù)據(jù)庫和服務(wù)注冊(cè)中心組成。中心服務(wù)程序的主要功能是分解應(yīng)用層傳來的服務(wù)請(qǐng)求、調(diào)用Web Services組件提供的服務(wù)、對(duì)返回的服務(wù)結(jié)構(gòu)進(jìn)行整理集成、管理中心數(shù)據(jù)庫、管理數(shù)據(jù)模式和服務(wù)描述的注冊(cè)發(fā)布等;中心數(shù)據(jù)庫用來存儲(chǔ)公共數(shù)據(jù)與各異構(gòu)數(shù)據(jù)源間的映射規(guī)則;服務(wù)和注冊(cè)中心用來注冊(cè)和發(fā)布各組件的服務(wù)描述。
異構(gòu)數(shù)據(jù)層將每個(gè)數(shù)據(jù)源封裝在不同的Web Services組件中,然后將生成的服務(wù)描述注冊(cè)到Web服務(wù)層的服務(wù)注冊(cè)中心,服務(wù)被調(diào)用執(zhí)行后,將服務(wù)的結(jié)果通過SOAP協(xié)議傳送給上一層。
2.3 系統(tǒng)執(zhí)行流程設(shè)計(jì)
三層架構(gòu)的集成系統(tǒng)執(zhí)行流程如下[11]:
(1) 各異構(gòu)數(shù)據(jù)源將自己所提供的數(shù)據(jù)操作服務(wù)描述成WSDL文檔,并在服務(wù)注冊(cè)中心進(jìn)行注冊(cè)和發(fā)布;
(2) 應(yīng)用層的應(yīng)用系統(tǒng)向Web服務(wù)層的中心服務(wù)程序提交服務(wù)請(qǐng)求;
(3) 中心服務(wù)程序按照映射規(guī)則,將服務(wù)請(qǐng)求動(dòng)態(tài)分解成對(duì)應(yīng)各異構(gòu)數(shù)據(jù)源的子請(qǐng)求;
(4) 通過服務(wù)注冊(cè)中心找到與各子請(qǐng)求相符的服務(wù)描述并與相應(yīng)的Web Service綁定,將子請(qǐng)求封裝后傳送給異構(gòu)數(shù)據(jù)層;
(5) 異構(gòu)數(shù)據(jù)源將服務(wù)的結(jié)果封裝成SOAP消息傳回中心服務(wù)程序;
(6) 中心服務(wù)程將各數(shù)據(jù)源傳回的查詢結(jié)果進(jìn)行緩存,然后經(jīng)整理、合并后送交給請(qǐng)求的應(yīng)用程序。
實(shí)驗(yàn)室異構(gòu)數(shù)據(jù)集成系統(tǒng)的核心是Web服務(wù)層中的中心服務(wù)程序。中心服務(wù)程序分為服務(wù)描述與注冊(cè)管理、映射規(guī)則管理、服務(wù)分解管理和服務(wù)調(diào)用管理等幾個(gè)功能模塊。
3.1 服務(wù)描述與注冊(cè)管理
在集成系統(tǒng)中,各異構(gòu)數(shù)據(jù)源為其他應(yīng)用程序提供數(shù)據(jù)的操作和訪問服務(wù)。為了保證數(shù)據(jù)源的安全性和獨(dú)立性,對(duì)數(shù)據(jù)的操作要在數(shù)據(jù)源內(nèi)部完成。數(shù)據(jù)源使用WSDL語言將所提供的數(shù)據(jù)操作描述成服務(wù),將服務(wù)的各項(xiàng)信息寫入服務(wù)文檔,然后注冊(cè)到服務(wù)注冊(cè)中心。其他應(yīng)用程序可以根據(jù)服務(wù)描述文檔了解服務(wù)的詳細(xì)信息,并根據(jù)這些信息直接調(diào)用服務(wù)。
本數(shù)據(jù)集成系統(tǒng)中各數(shù)據(jù)源為其他應(yīng)用程序提供的操作比較簡(jiǎn)單,各數(shù)據(jù)源可通過在WSDL文檔模版中填寫各項(xiàng)服務(wù)信息來實(shí)現(xiàn)自己的服務(wù)描述。私有的服務(wù)注冊(cè)中心是通過Windows Server 2008的UDDI服務(wù)來建立的,它提供了用于發(fā)布服務(wù)的API,利用save_xx函數(shù)和delete_xx函數(shù)可以方便地發(fā)布和刪除服務(wù)描述文檔。
3.2 服務(wù)分解管理
為了便于異構(gòu)數(shù)據(jù)源的統(tǒng)一訪問,系統(tǒng)將各個(gè)數(shù)據(jù)源的數(shù)據(jù)模式進(jìn)行合并,形成統(tǒng)一的全局模式。應(yīng)用程序發(fā)出的服務(wù)請(qǐng)求是基于全局模式的,可能涉及到多個(gè)數(shù)據(jù)源和數(shù)據(jù)表。例如實(shí)驗(yàn)室排課時(shí)需要查詢的學(xué)生選課信息就來源于教務(wù)系統(tǒng)的多張數(shù)據(jù)表。中心服務(wù)程序要依據(jù)映射關(guān)系,將全局服務(wù)請(qǐng)求分解為針對(duì)單個(gè)數(shù)據(jù)源的一個(gè)或多個(gè)子請(qǐng)求。
該系統(tǒng)采用基于XML的數(shù)據(jù)查詢語言XQuery對(duì)服務(wù)請(qǐng)求進(jìn)行分解,因?yàn)閄Query具有精確、強(qiáng)大和易用的特點(diǎn)。
3.3 映射關(guān)系管理
服務(wù)分解后的子請(qǐng)求除了要避免重復(fù)訪問同一數(shù)據(jù)源外,還要保證分解后的查詢結(jié)果的正確性,即分解后語義與分解前應(yīng)是一致的。但在不同的數(shù)據(jù)源中往往存在著命名沖突、內(nèi)容交織等語義的異構(gòu)。為了解決這種語義異構(gòu)的問題,系統(tǒng)建立了映射關(guān)系。
映射規(guī)則的建立充分考慮到異構(gòu)數(shù)據(jù)源間的語義異構(gòu)問題。實(shí)驗(yàn)設(shè)備數(shù)據(jù)庫和實(shí)驗(yàn)室預(yù)約數(shù)據(jù)庫的XML局部模式到全局模式的映射如圖2所示。
圖2 XML局部模式到全局模式映射
(1) 如果局部模式中存在名稱沖突,在全局模式中則要進(jìn)行統(tǒng)一命名,如
(2) 如果局部模式中存在內(nèi)容包含和交織,全局模式則要進(jìn)行擴(kuò)展,包含局部視圖的全部元素;
(3) 如果局部模式中元素的排列順序不同,全局模式可以約定某個(gè)固有的排列順序。
3.4 服務(wù)調(diào)用管理
全局服務(wù)請(qǐng)求一旦分解成局部請(qǐng)求,服務(wù)調(diào)用管理模塊就會(huì)在私有UDDI中進(jìn)行查詢,以便獲得滿足條件的WSDL文檔。UDDI提供了包含find_xx函數(shù)和get_xx函數(shù)的查詢API,find_xx函數(shù)可以使用多種搜索標(biāo)準(zhǔn)在整個(gè)注冊(cè)中心進(jìn)行文檔檢索,例如用Find_TModel方法查詢所有服務(wù)類型與“TModel”相符的服務(wù)文檔。get_xx方法可以通過關(guān)鍵字直接獲取WSDL文檔的相關(guān)信息。獲取WSDL文檔相關(guān)信息后,抽取出該服務(wù)的調(diào)用地址,使用InvokeWebService函數(shù)就可以實(shí)現(xiàn)對(duì)服務(wù)的調(diào)用。
Web Services技術(shù)使用標(biāo)準(zhǔn)的XML來描述服務(wù),使用URL來標(biāo)識(shí)應(yīng)用程序和數(shù)據(jù)源,通過基于HTTP的SOAP協(xié)議傳輸信息,因此,其組件間具有良好的互操作性且不受防火墻的限制。采用Web Services技術(shù)設(shè)計(jì)的三層架構(gòu)異構(gòu)數(shù)據(jù)集成方案,在不需要改變?cè)袘?yīng)用系統(tǒng)的前提下,很好地解決了實(shí)驗(yàn)室各異構(gòu)數(shù)據(jù)源的數(shù)據(jù)共享問題,具有耦合松散、數(shù)據(jù)同步好的特點(diǎn)。
References)
[1] 曹淑服,安艷輝.基于Web Services數(shù)據(jù)整合系統(tǒng)的研究[J].河北省科學(xué)院學(xué)報(bào),2015,32(3):17-20.
[2] 盛蘇英,堵俊,吳曉.高校實(shí)驗(yàn)室信息化管理的研究與實(shí)踐[J].實(shí)驗(yàn)室研究與探索,2012,31(12):184-187.
[3] 陶灼,高鳳新,黃一帆,等.高等學(xué)校實(shí)驗(yàn)室安全及管理的數(shù)字化網(wǎng)絡(luò)平臺(tái)構(gòu)建[J].實(shí)驗(yàn)技術(shù)與管理,2016,33(2):201-204.
[4] 高鳳新,盧士香.高校實(shí)驗(yàn)室儀器設(shè)備管理和使用的信息化建設(shè)[J].實(shí)驗(yàn)室研究與探索,2014,33(5):272-274.
[5] 姜文廣.論高校信息化建設(shè)中的問題及對(duì)策[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2014(24):251-252.
[6] 陶國林,曾曉松,肖夏.實(shí)驗(yàn)教學(xué)信息化平臺(tái)建設(shè)的關(guān)鍵問題探討[J].實(shí)驗(yàn)技術(shù)與管理,2015,32(4):197-199.
[7] 高昂,劉東華.基于XML技術(shù)的農(nóng)產(chǎn)品異構(gòu)數(shù)據(jù)集成研究[J].標(biāo)準(zhǔn)科學(xué),2016(2):24-34.
[8] 黃浩,歐陽柳波.基于Web Services的語義異構(gòu)數(shù)據(jù)集成設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(19):4406-4410.
[9] 鄒衛(wèi)國,郭建勝,劉建軍,等.基于聯(lián)邦數(shù)據(jù)庫的數(shù)據(jù)集成體系研究[J].中國管理信息化,2009,12(13):86-88.
[10] 高源.基于Web Service的數(shù)據(jù)庫同步系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].中國管理信息化,2016,19(7):188-189.
[11] 張恩,劉春紅,段德全.基于XML/Web Services的異構(gòu)數(shù)據(jù)集成研究[J].廣西師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2008,26(3):169-172.
Research on heterogeneous data integration in laboratory based on Web Services
Gao Shuangxi, Cao Shufu
(School of Information Technology, Hebei University of Economics and Business, Shijiazhuang 050061, China)
The traditional heterogeneous data integration methods are studied. The advantages and disadvantages of each method are analyzed and summarized. Aiming at the characteristic of requiring temporal synchronization higher of data between different application systems data sharing of university laboratories, a set of heterogeneous data integration scheme based on Web services is designed by using the method of pattern integration, and some key modules such as service description, service decomposition and schema mapping are designed. The scheme adopts 3-tier architecture, and the core functions of data integration are all put in the middle layer, which can effectively give the best advantages with Web Services technology in the heterogeneous data integration.
laboratory management; heterogeneous system; Web Services; data integration
10.16791/j.cnki.sjg.2017.03.039
2016-10-12
河北省高等學(xué)??茖W(xué)技術(shù)研究項(xiàng)目(QN20131136)
高雙喜(1972—),男,河北撫寧,碩士,講師,主要研究方向?yàn)樾畔⑾到y(tǒng)、計(jì)算機(jī)網(wǎng)絡(luò)
E-mail:327258106@qq.com
曹淑服(1972-),女,河北肅寧,碩士,講師,主要研究方向?yàn)檐浖こ?、信息系統(tǒng)開發(fā)與應(yīng)用.
TP311.13
A
1002-4956(2017)3-0154-04