



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于XML和WebService的異構(gòu)數(shù)據(jù)庫數(shù)據(jù)交換研究 論文導(dǎo)讀::異構(gòu)數(shù)據(jù)庫和XML的優(yōu)勢(shì)。技術(shù)優(yōu)勢(shì)。優(yōu)勢(shì)。基于XML和WebService的異構(gòu)數(shù)據(jù)庫數(shù)據(jù)交換研究。 論文關(guān)鍵詞:異構(gòu)數(shù)據(jù)庫,XML,WebService 0前言 隨著Internet應(yīng)用的不斷普及,Internet上連接著各種類型的數(shù)據(jù)庫系統(tǒng),形成了大量的信息資源庫。由于種種原因,這些信息資源庫采用的是不同數(shù)據(jù)模型的數(shù)據(jù)庫,導(dǎo)致數(shù)據(jù)共享比較困難,造成了資源很大的浪費(fèi)。為了共享分布在不同數(shù)據(jù)庫中的信息資源,Internet的異構(gòu)分布式
2、信息系統(tǒng)正在迅速發(fā)展,最終實(shí)現(xiàn)不同數(shù)據(jù)庫之間的數(shù)據(jù)信息資源、硬件設(shè)備資源和人力資源的合并和共享,實(shí)現(xiàn)數(shù)據(jù)的共享和透明訪問1267。 1異構(gòu)數(shù)據(jù)庫和XML的優(yōu)勢(shì) 1.1異構(gòu)數(shù)據(jù)庫 異構(gòu)數(shù)據(jù)庫系統(tǒng)是相關(guān)的多個(gè)數(shù)據(jù)庫系統(tǒng)的集合,可以實(shí)現(xiàn)數(shù)據(jù)的共享和透明訪問,每個(gè)數(shù)據(jù)庫系統(tǒng)在加入異構(gòu)數(shù)據(jù)庫系統(tǒng)之前本身就已經(jīng)存在,擁有自己的DMBS。異構(gòu)數(shù)據(jù)庫的各個(gè)組成部分具有自身的自治性,在實(shí)現(xiàn)數(shù)據(jù)共享的同時(shí),每個(gè)數(shù)據(jù)庫系統(tǒng)仍保有自己的應(yīng)用特性、完整性控制和安全性控制。異構(gòu)數(shù)據(jù)庫系統(tǒng)的異構(gòu)性主要體現(xiàn)在以下幾個(gè)方面: (1)計(jì)算機(jī)體系結(jié)構(gòu)的異構(gòu),(2)各個(gè)參與的數(shù)據(jù)庫可以分別運(yùn)行在大型機(jī)、小型機(jī)、工作站、PC或嵌入式系
3、統(tǒng)中,(3)基礎(chǔ)操作系統(tǒng)的異構(gòu),各個(gè)數(shù)據(jù)庫系統(tǒng)的基礎(chǔ)操作系統(tǒng)可以是Unix、WindowsNT、 Linux等,(4)DMBS本身的異構(gòu)。所以異構(gòu)數(shù)據(jù)庫可以是同為關(guān)系型數(shù)據(jù)庫系統(tǒng)的Oracle、 SQL Server等,也可以是不同數(shù)據(jù)模型的數(shù)據(jù)庫,如關(guān)系、模式、層次、網(wǎng)絡(luò)、面向?qū)ο?,函?shù)型數(shù)據(jù)庫等共同組成一個(gè)異構(gòu)數(shù)據(jù)庫系統(tǒng)67。 1.2 XML技術(shù)優(yōu)勢(shì) XML是世界互聯(lián)網(wǎng)協(xié)會(huì)(World Wide WebConsortium,WSC)于1998年2月頒布。由于XML源自標(biāo)準(zhǔn)通用標(biāo)記語言SGML,XML作為一種可擴(kuò)展的標(biāo)記語言,目前已成為信息描述的事實(shí)標(biāo)準(zhǔn)。XML與其他語言相比,具有明顯的優(yōu)勢(shì)
4、,表現(xiàn)在以下四個(gè)方面:XML可以從HTML中分離數(shù)據(jù),通過XML,可以在HTML文件之外存儲(chǔ)數(shù)據(jù)。XML用于交換數(shù)據(jù),通過XML,我們可以在不兼容的系統(tǒng)之間交換數(shù)據(jù),將大大減少交換數(shù)據(jù)時(shí)的復(fù)雜性,并且還可以使得這些數(shù)據(jù)能被不同的程序讀取。XML可以用于共享數(shù)據(jù),通過XML,純文本文件可以用來共享數(shù)據(jù)。XML也可以用于存儲(chǔ)數(shù)據(jù),利用XML純文本文件可以用來存儲(chǔ)數(shù)據(jù)。大量的數(shù)據(jù)可以存儲(chǔ)到XML文件中或者數(shù)據(jù)庫中。應(yīng)用程序可以讀寫和存儲(chǔ)數(shù)據(jù)。XML可以充分利用數(shù)據(jù),XML是與軟件、硬件和應(yīng)用程序無關(guān)的,所以可以使你的數(shù)據(jù)可以被更多的用戶、更多的設(shè)備所利用234。 基于XML的優(yōu)勢(shì),下一代的XML數(shù)據(jù)
5、庫目前是研究的前沿,但由于很多標(biāo)準(zhǔn)還在制定中,而且XML讀取效率較低,所以目前沒有大規(guī)模應(yīng)用。 1.3WebService優(yōu)勢(shì) WebService主要是為了使原來各孤立的站點(diǎn)之間的信息能夠相互通信、共享而提出的一種接口。 Web Service所使用的是Internet上統(tǒng)一、開放的標(biāo)準(zhǔn),如HTTP、XML、SOAP(簡(jiǎn)單對(duì)象訪問協(xié)議)、WSDL等,所以Web Service可以在任何支持這些標(biāo)準(zhǔn)的環(huán)境(Windows、Linux)中使用。SOAP協(xié)議(Simple Object Access Protocal簡(jiǎn)單對(duì)象訪問協(xié)議),它是一個(gè)用于分散和分布式環(huán)境下網(wǎng)絡(luò)信息交換的基于XML的通訊協(xié)
6、議。在SOAP議下,軟件組件或應(yīng)用程序能夠通過標(biāo)準(zhǔn)的HTTP協(xié)議進(jìn)行通訊。它的設(shè)計(jì)目標(biāo)就是簡(jiǎn)單性和擴(kuò)展性,這有助于大量異構(gòu)程序和平臺(tái)之間的互操作性,從而使存在的應(yīng)用程序能夠被廣泛的用戶訪問3。所以Web Service一旦部署以后,其他Web Service應(yīng)用程序可以發(fā)現(xiàn)并調(diào)用它部署的服務(wù)。 2實(shí)現(xiàn)過程 2.1原理和開發(fā)環(huán)境 基于上述XML和WebService的技術(shù)優(yōu)勢(shì),可以把不同結(jié)構(gòu)的數(shù)據(jù)庫中的數(shù)據(jù),轉(zhuǎn)換成XML結(jié)構(gòu)的數(shù)據(jù),通過HTTP協(xié)議在網(wǎng)絡(luò)中傳輸,接收方可以把收到的XML數(shù)據(jù)進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換成其他方式的數(shù)據(jù)。這樣,在異構(gòu)數(shù)據(jù)系統(tǒng)中實(shí)現(xiàn)了數(shù)據(jù)的透明訪問,用戶就可以將異構(gòu)分布式數(shù)據(jù)庫系統(tǒng)
7、看成普通的分布式數(shù)據(jù)庫系統(tǒng),用自己熟悉的數(shù)據(jù)處理語言去訪問數(shù)據(jù)庫,如同訪問一個(gè)數(shù)據(jù)庫系統(tǒng)一樣。 軟件開發(fā)環(huán)境,設(shè)置了兩臺(tái)服務(wù)器,一臺(tái)安裝Linux和Oracle10g,另一臺(tái)安裝Windows2003和SQL 2005,在Oracle和SQL 2005數(shù)據(jù)庫中分別建立一張表DishMenu,兩張表具有相同的結(jié)構(gòu),其中Oracle10g上的有數(shù)據(jù),SQL2005上的是空表。另外還設(shè)置了一臺(tái)編程工作站,使用vs 2008為編程工具。 2.2 WebService編程 2.2.1 訪問Linux和Oracle平臺(tái) 打開VS2008,建立一個(gè)WebService項(xiàng)目DishOrder,并在Web.co
8、nfig文件中配置連接字符串為“Data Source=Linux-Oracle; Initial Catalog=DishDB; IntegratedSecurity=True”,表明Linux主機(jī)名為Linux-Oracle,建立的Oracle數(shù)據(jù)庫為DishDB。建立一個(gè)WebService服務(wù)接口,代碼如下: WebMethod publicDataTable GetDataView(string sql) SqlCommand sqlcomm = new SqlCommand(sql, conn); conn.Open();/打開數(shù)據(jù)庫連接 SqlDataReader dr = sq
9、lcomm.ExecuteReader();/執(zhí)行SQL語句 DataTable table = new DataTable(); table.Load(dr); return table; /返回結(jié)果類型為Table 程序運(yùn)行過程中,輸入要執(zhí)行的SQL語句:SELECT* FROM DishMenu where price = 12,作為GetDataView的參數(shù),如圖1所示: 相應(yīng)的SOAP協(xié)議表現(xiàn)為: SOAP 1.2 圖1 WebServic
10、e執(zhí)行 以下是 SOAP 1.2 請(qǐng)求和響應(yīng)示例。所顯示的占位符需替換為實(shí)際值。 POST /DishSrvs/DishService.asmx HTTP/1.1 Host: localhost Content-Type: application/soap+xml;charset=utf-8 Content-Length: length <?xml version="1.0"encoding="utf-8"?> <soap12:Envelop
11、e xmlns:xsi="/2001/XMLSchema-instance"xmlns:xsd="/2001/XMLSchema"xmlns:soap12="/2003/05/soap-envelope"> <soap12:Body> <GetDataViewxmlns="/"> <sql>string</sql> </GetD
12、ataView> </soap12:Body> </soap12:Envelope> HTTP/1.1 200 OK Content-Type: application/soap+xml;charset=utf-8 Content-Length: length <?xml version="1.0"encoding="utf-8"?> <soap12:Envelopexmlns:xsi="/2001/XMLSchema-instance"xmlns:xsd
13、="/2001/XMLSchema"xmlns:soap12="/2003/05/soap-envelope"> <soap12:Body> <GetDataViewResponsexmlns="/"> <GetDataViewResult>xmlxml</GetDataViewResult> </GetDataViewResponse> </soap12:Body&
14、gt; </soap12:Envelope> 單擊“調(diào)用”按鈕,SQL語句執(zhí)行,得到的結(jié)果為: <DataTablexmlns="/"> <testdiffgr:id="test1" msdata:rowOrder="0"> <ID>2010</ID> <Name>宮堡雞丁</Name> <Price>12.0000</Price> <Type>3</Type> <
15、Peppery>2</Peppery> <Remark>< Remark /> <rowguid>5a2ff990-7751-4586-baf6-9156d56b2844</rowguid> </test> <testdiffgr:id="test2" msdata:rowOrder="1"> <ID>2012</ID> <Name>辣子雞丁</Name> <Price>12.0000</Price&
16、gt; <Type>3</Type> <Peppery>3</Peppery> <Remark><Remark /> <rowguid>b0b2e516-e30f-42b4-b439-df27c5ddbaab</rowguid> </test> </DocumentElement> </diffgr:diffgram> </DataTable> 可以看得出來,執(zhí)行的結(jié)果是一個(gè)XML樹型結(jié)構(gòu),包括2條記錄,記錄的字段名分別為:ID、Name、Price、
17、Type、Peppery、rowguid 6個(gè)關(guān)鍵字,值分別在對(duì)應(yīng)的關(guān)鍵字標(biāo)記里。 2.2.2 轉(zhuǎn)換成異構(gòu)數(shù)據(jù) 由上面的結(jié)果可以看到,SQL語句在Linux+Oracle平臺(tái)上執(zhí)行的結(jié)果,已經(jīng)轉(zhuǎn)換成了XML樹型結(jié)構(gòu),下面要做的是把XML結(jié)構(gòu)的數(shù)據(jù)保存到Windows2003+SQL 2005數(shù)據(jù)庫DishMenu表中。為此,添加一個(gè)GrideView控件,在數(shù)據(jù)源中選擇“XML”文件,添加2.2.1中SQL語句執(zhí)行的XML結(jié)果,XML結(jié)構(gòu)的數(shù)據(jù)成功的綁定到GridView控件,如圖2所示。
18、0; 圖3 SQL2005中SQL執(zhí)行結(jié)果 XML數(shù)據(jù)成功綁定到GridView控件后,可以為GridView控件添加自動(dòng)更新事件,事件執(zhí)行的結(jié)果是把GrideView中的數(shù)據(jù)插入到SQL2005數(shù)據(jù)庫中相應(yīng)的表中,當(dāng)然事先要在SQL2005中增加一張與DishMenu的結(jié)構(gòu)一樣的表,否則更新數(shù)據(jù)不能成功。最后我看到SQL2005中更新的數(shù)據(jù)如圖3所示,在SQL2005中輸入:SELECT * FROM DishMenu where(price = 12),執(zhí)行SQL語句,結(jié)果正好是XML結(jié)構(gòu)中的數(shù)據(jù),也與在Oracle中執(zhí)行的結(jié)果相同。 3結(jié)束語 如何讓用戶透明使用異構(gòu)信息資源庫,達(dá)到資源最大共享,是目前信息資源共享的一個(gè)重大阻力。為了解決這個(gè)問題,文中SELECT * FROM DishMenu where price = 12 SQL語句,把在Linu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度飲用水安全科普教育與宣傳合同
- 二零二五年度事業(yè)單位解聘合同模板(法律事務(wù)人員適用)
- 二零二五年度食品區(qū)域代理品牌保護(hù)與維權(quán)合同
- 2025年度智能空調(diào)清洗安全操作規(guī)范協(xié)議
- 二零二五年度貸款購車車輛登記過戶委托協(xié)議
- 二零二五年度臨時(shí)工崗位調(diào)動(dòng)及服務(wù)期限合同
- 二零二五年度特色鄉(xiāng)村自建房贈(zèng)與與文化創(chuàng)意產(chǎn)業(yè)融合發(fā)展協(xié)議
- 二零二五年度終止租賃商鋪?zhàn)赓U合同終止協(xié)議書
- 二零二五年度文化創(chuàng)意產(chǎn)品居間合同介紹費(fèi)及傭金細(xì)則
- 二零二五農(nóng)村宅基地買賣與農(nóng)村土地整治合作合同
- 人教版二年級(jí)數(shù)學(xué)下冊(cè)全冊(cè)單元測(cè)試題
- 2025年湖南城建職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫及答案一套
- 2025年黑龍江商業(yè)職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫及答案一套
- 教科版科學(xué)三下開學(xué)第一課《科學(xué)家這樣做-童第周》
- 護(hù)理質(zhì)量與護(hù)理安全積分管理考核標(biāo)準(zhǔn)
- 2024年汶川縣欣禹林業(yè)有限責(zé)任公司工作人員招聘考試真題
- 國家安全教育大學(xué)生讀本高教社2024年8月版教材講義-第一章完全準(zhǔn)確領(lǐng)會(huì)總體國家安全觀
- 疲勞斷裂材料性能優(yōu)化-深度研究
- 2025年廣州市黃埔區(qū)文沖街招聘“村改居”社區(qū)治安聯(lián)防隊(duì)員36人歷年高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 國家電網(wǎng)新聞宣傳與企業(yè)文化管理專責(zé)考試題及答案
- 土建類專職安全生產(chǎn)管理人員練習(xí)題+參考答案
評(píng)論
0/150
提交評(píng)論