999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于XML和WebService的異構數據庫數據交換研究

2011-01-01 00:00:00陳愛華
軟件工程 2011年5期

摘要:隨著Internet上連有越來越多的異構數據庫系統,這就導致數據共享比較困難,造成了資源的極大浪費。本文建立了兩種異構數據庫平臺,闡述了使用XML和WebService實現異構數據庫存取數據的原理,最后實現了異構數據庫中表之間數據交換,為異構數據庫之間數據共享提供了技術支持。

關鍵詞:異構數據庫;XML;WebService

1 前言

隨著Internet應用的不斷普及,Internet上連接著各種類型的數據庫系統,形成了大量的信息資源庫。由于種種原因,這些信息資源庫采用的是不同數據模型的數據庫,導致數據共享比較困難,造成了資源很大的浪費。為了共享分布在不同數據庫中的信息資源,Internet的異構分布式信息系統正在迅速發展,最終實現不同數據庫之間的數據信息資源、硬件設備資源和人力資源的合并和共享,實現數據的共享和透明訪問[1][2][6][7]。

2 異構數據庫和XML的優勢

2.1 異構數據庫

異構數據庫系統是相關的多個數據庫系統的集合,可以實現數據的共享和透明訪問,每個數據庫系統在加入異構數據庫系統之前本身就已經存在,擁有自己的DMBS。異構數據庫的各個組成部分具有自身的自治性,在實現數據共享的同時,每個數據庫系統仍保有自己的應用特性、完整性控制和安全性控制。異構數據庫系統的異構性主要體現在以下幾個方面:

(1)計算機體系結構的異構;(2)各個參與的數據庫可以分別運行在大型機、小型機、工作站、PC或嵌入式系統中;(3)基礎操作系統的異構,各個數據庫系統的基礎操作系統可以是Unix、Windows NT、Linux等;(4)DMBS本身的異構。所以異構數據庫可以是同為關系型數據庫系統的Oracle、SQL Server等,也可以是不同數據模型的數據庫,如關系、模式、層次、網絡、面向對象,函數型數據庫等共同組成一個異構數據庫系統[6][7]。

2.2 XML技術優勢

XML是世界互聯網協會(World Wide Web Consortium,WSC)于1998年2月頒布。由于XML源自標準通用標記語言SGML,XML作為一種可擴展的標記語言,目前已成為信息描述的事實標準。XML與其他語言相比,具有明顯的優勢,表現在以下四個方面:(1)XML可以從HTML中分離數據,通過XML,可以在HTML文件之外存儲數據;(2)XML用于交換數據,通過XML,我們可以在不兼容的系統之間交換數據,將大大減少交換數據時的復雜性,并且還可以使得這些數據能被不同的程序讀取;(3)XML可以用于共享數據,通過XML,純文本文件可以用來共享數據,XML也可以用于存儲數據,利用XML純文本文件可以用來存儲數據,大量的數據可以存儲到XML文件中或者數據庫中,應用程序可以讀寫和存儲數據;(4)XML可以充分利用數據,XML是與軟件、硬件和應用程序無關的,所以可以使你的數據可以被更多的用戶、更多的設備所利用[2][3][4]。

基于XML的優勢,下一代的XML數據庫目前是研究的前沿,但由于很多標準還在制定中,而且XML讀取效率較低,所以目前沒有大規模應用。

2.3 WebService優勢

Web Service主要是為了使原來各孤立的站點之間的信息能夠相互通信、共享而提出的一種接口。Web Service所使用的是Internet上統一、開放的標準,如HTTP、XML、SOAP(簡單對象訪問協議)、WSDL等,所以Web Service可以在任何支持這些標準的環境(Windows、Linux)中使用。SOAP協議(Simple Object Access Protocal簡單對象訪問協議),它是一個用于分散和分布式環境下網絡信息交換的基于XML的通訊協議。在SOAP議下,軟件組件或應用程序能夠通過標準的HTTP協議進行通訊。它的設計目標就是簡單性和擴展性,這有助于大量異構程序和平臺之間的互操作性,從而使存在的應用程序能夠被廣泛的用戶訪問[3]。所以Web Service一旦部署以后,其他Web Service應用程序可以發現并調用它部署的服務。

3 實現過程

3.1 原理和開發環境

基于上述XML和WebService的技術優勢,可以把不同結構的數據庫中的數據,轉換成XML結構的數據,通過HTTP協議在網絡中傳輸,接收方可以把收到的XML數據進行轉換,轉換成其他方式的數據。這樣,在異構數據系統中實現了數據的透明訪問,用戶就可以將異構分布式數據庫系統看成普通的分布式數據庫系統,用自己熟悉的數據處理語言去訪問數據庫,如同訪問一個數據庫系統一樣。

軟件開發環境,設置了兩臺服務器,一臺安裝Linux和Oracle10g,另一臺安裝Windows2003和SQL 2005,在Oracle和SQL 2005數據庫中分別建立一張表DishMenu,兩張表具有相同的結構,其中Oracle10g上的有數據,SQL2005上的是空表。另外還設置了一臺編程工作站,使用vs 2008為編程工具。

3.2 WebService編程

3.2.1 訪問Linux和Oracle平臺

打開VS2008,建立一個WebService項目DishOrder,并在Web.config文件中配置連接字符串為“Data Source=Linux-Oracle; Initial Catalog=DishDB; Integrated Security=True”,表明Linux主機名為Linux-Oracle,建立的Oracle數據庫為DishDB。建立一個WebService服務接口,代碼如下:

[WebMethod]

public DataTable GetDataView(string sql)

{SqlCommand sqlcomm = new SqlCommand(sql, conn);

conn.Open();//打開數據庫連接

SqlDataReader dr = sqlcomm.ExecuteReader();//執行SQL語句

DataTable table = new DataTable();

table.Load(dr);

return table; //返回結果類型為Table }

程序運行過程中,輸入要執行的SQL語句:SELECT * FROM DishMenu where price = 12,作為GetDataView的參數,如圖1所示:

相應的SOAP協議表現為:

SOAP 1.2

以下是 SOAP 1.2 請求和響應示例。所顯示的占位符需替換為實際值。

POST /DishSrvs/DishService.asmx HTTP/1.1

Host: localhost

Content-Type: application/soap+xml; charset=utf-8

Content-Length: length

string

HTTP/1.1 200 OK

Content-Type: application/soap+xml; charset=utf-8

Content-Length: length

xmlxml

單擊“調用”按鈕,SQL語句執行,得到的結果為:

2010

宮堡雞丁

12.0000

3

2

< Remark />

5a2ff990-7751-4586-baf6-9156d56b2844

2012

辣子雞丁

12.0000

3

3

< Remark />

b0b2e516-e30f-42b4-b439-df27c5ddbaab

可以看出,執行的結果是一個XML樹型結構,包括2條記錄,記錄的字段名分別為:ID、Name、Price、Type、Peppery、rowguid 6個關鍵字,值分別在對應的關鍵字標記里。

3.2.2 轉換成異構數據

由上面的結果可以看到,SQL語句在Linux+Oracle平臺上執行的結果,已經轉換成了XML樹型結構,下面要做的是把XML結構的數據保存到Windows2003+SQL 2005數據庫DishMenu表中。為此,添加一個GrideView控件,在數據源中選擇“XML”文件,添加3.2.1中SQL語句執行的XML結果,XML結構的數據成功的綁定到GridView控件,如圖2所示。

XML數據成功綁定到GridView控件后,可以為GridView控件添加自動更新事件,事件執行的結果是把GrideView中的數據插入到SQL2005數據庫中相應的表中,當然事先要在SQL2005中增加一張與DishMenu的結構一樣的表,否則更新數據不能成功。最后我看到SQL2005中更新的數據如圖3所示,在SQL2005中輸入:SELECT * FROM DishMenu where (price = 12),執行SQL語句,結果正好是XML結構中的數據,也與在Oracle中執行的結果相同。

4 結束語

如何讓用戶透明使用異構信息資源庫,達到資源最大共享,是目前信息資源共享的一個重大阻力。為了解決這個問題,文中SELECT * FROM DishMenu where price = 12 SQL語句,把在Linux平臺上的Oracle中的數據,通過WebService的調用,執行生存一個XML樹型結果,然后把XML中保存的結果放入GrideView控件中,通過GrideView控件的自動更新事件,把數據保存到Windows平臺上的SQL2005數據庫中,最后在SQL2005中執行相同的SQL語句,得到的結果與保存在XML中的數據相同。這說明,使用XML和WebService可以實現不同平臺下的不同數據庫之間的數據交換。

參考文獻

[1]劉淑梅.基于XML的異構數據庫集成技術研究[J].衡水學院學報,2008(2).

[2]巫丹丹,李冠宇,于水明.面向服務的Web異構數據集成體系結構研究[J].計算機與數字工程,2007(8).

[3]張潔,盧德唐.異構數據集成方案的優化設計與實現[J].計算機輔助工程,2008(3).

[4]關輝.異構數據庫間數據交換技術研究與實現[M].數據庫及信息管理,2007(5).

[5]吳迪,陳鋼.新一代的Web Services技術[J].計算機應用研究,2003,(03).

[6]俞勇,蔣烈輝.基于Web Service的醫療保險系統的設計與實現[J].計算機與現代化,2009(02).

[7]胡澤,廖聞劍,彭艷兵.WebService技術研究及應用[J].硅谷,2009(5).

主站蜘蛛池模板: 青青青亚洲精品国产| 在线观看欧美精品二区| 天堂成人在线视频| 国产真实乱了在线播放| 亚洲综合久久成人AV| 亚洲一级色| 国产精品理论片| 日本人又色又爽的视频| 国产人成乱码视频免费观看| 久久久久久高潮白浆| 亚洲激情99| 久草青青在线视频| 红杏AV在线无码| 欧美精品不卡| 欧美精品1区2区| 99久久人妻精品免费二区| 国产91特黄特色A级毛片| 国产精品综合久久久| 91口爆吞精国产对白第三集| 成人无码一区二区三区视频在线观看 | 日本欧美中文字幕精品亚洲| 亚洲视频在线网| 九色在线观看视频| 日韩高清欧美| 51国产偷自视频区视频手机观看| 国产成人精品一区二区秒拍1o| 午夜国产理论| 九色视频最新网址| 91精品啪在线观看国产91| 思思热在线视频精品| 欧美翘臀一区二区三区| 国产成人亚洲综合A∨在线播放| 97免费在线观看视频| 麻豆精品视频在线原创| av在线手机播放| 99精品伊人久久久大香线蕉| 久久人人爽人人爽人人片aV东京热| 色妞www精品视频一级下载| 天天摸夜夜操| 人妻中文久热无码丝袜| 久久网欧美| 国产成人在线无码免费视频| 88av在线| 欧美色香蕉| 日韩a在线观看免费观看| 91精品人妻互换| 日本一区二区三区精品国产| 免费观看亚洲人成网站| 久久亚洲AⅤ无码精品午夜麻豆| 亚洲午夜国产精品无卡| 国产一线在线| 91视频精品| 六月婷婷激情综合| 四虎精品国产AV二区| www欧美在线观看| 国产va在线| 另类欧美日韩| 亚洲人成网站18禁动漫无码 | 毛片网站免费在线观看| 国产精品手机在线观看你懂的 | 国产在线啪| 午夜久久影院| 国产屁屁影院| 日韩精品一区二区深田咏美| 在线日韩日本国产亚洲| 香蕉视频在线观看www| 美女扒开下面流白浆在线试听 | 91在线精品麻豆欧美在线| 99激情网| 亚洲男人的天堂网| 91成人在线免费视频| 亚洲欧美成aⅴ人在线观看| 国产成本人片免费a∨短片| 国产自在线播放| 九色国产在线| 国产毛片基地| 亚洲床戏一区| 色网站在线免费观看| 在线网站18禁| 国产麻豆精品在线观看| 色综合a怡红院怡红院首页| 国产在线精品网址你懂的|