

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 學(xué)號(hào): </p><p><b> 常 州 大 學(xué)</b></p><p><b> 畢業(yè)設(shè)計(jì)(論文)</b></p><p><b> ?。?012屆)</b></p><p> 題 目 基于Web服務(wù)的分布式異
2、構(gòu)數(shù)據(jù)庫(kù)集成研究 </p><p> 學(xué) 生 </p><p> 學(xué) 院 專(zhuān)業(yè)班級(jí) </p><p> 校內(nèi)指導(dǎo)教師 專(zhuān)業(yè)技術(shù)職務(wù)
3、 </p><p> 校外指導(dǎo)老師 專(zhuān)業(yè)技術(shù)職務(wù) </p><p><b> 二○一二年六月</b></p><p> 基于Web服務(wù)的分布式異構(gòu)數(shù)據(jù)庫(kù)集成研究</p><p> 摘 要:隨著企業(yè)的快速發(fā)展和不斷擴(kuò)充,對(duì)企業(yè)內(nèi)部
4、新舊系統(tǒng)之間的數(shù)據(jù)、信息進(jìn)行整合和共享,實(shí)現(xiàn)企業(yè)信息數(shù)據(jù)一體化日趨重要。但是,由于企業(yè)內(nèi)部之間采用的系統(tǒng)以及數(shù)據(jù)庫(kù)存在分布性和異構(gòu)性,這必然會(huì)促進(jìn)企業(yè)應(yīng)用集成的發(fā)展。</p><p> 本文首先介紹了分布式系統(tǒng)的概念、國(guó)內(nèi)外發(fā)展現(xiàn)狀,以及分布式系統(tǒng)的體系結(jié)構(gòu)和特點(diǎn)。接著介紹了異構(gòu)數(shù)據(jù)庫(kù)集成的現(xiàn)狀,以及異構(gòu)數(shù)據(jù)相互集成的方法。然后對(duì)各種異構(gòu)數(shù)據(jù)集成技術(shù)方案進(jìn)行了分析,闡述了各自的優(yōu)缺點(diǎn)。最后通過(guò)設(shè)計(jì)和開(kāi)發(fā)一個(gè)基于
5、WCF Data Service 的數(shù)據(jù)集成案例,在此案例中主要使用了基于XML的數(shù)據(jù)標(biāo)準(zhǔn)OData。</p><p> 實(shí)踐證明,基于EntityFramework以及DataService的分布式異構(gòu)數(shù)據(jù)集成方案,可以很好的降低系統(tǒng)集成對(duì)客戶(hù)端的限制,對(duì)于分布式異構(gòu)數(shù)據(jù)集成具有較高的參考價(jià)值,該方案同樣適用于手機(jī)等開(kāi)發(fā)平臺(tái)。</p><p> 關(guān)鍵字:異構(gòu);分布式;Web服務(wù);數(shù)據(jù)
6、集成 </p><p> Web service based on Distributed Heterogeneous Database Integration Research</p><p> Abstract:With the rapid development of enterprises and expanding,of enterprise internal data be
7、tween new and old system,information integration and sharing,realize enterprise information data integration are becoming more and more important.But,Because the enterprise interior is adopted between the system and the
8、database is distributed and heterogeneous,this will promote the development of the enterprise application integration.</p><p> This paper first introduced the concept of distributed systems,the domestic and
9、 foreign development present situation,and distributed system structure and characteristics.Then it introduces the present situation of the integration of heterogeneous database,and each other of heterogeneous data integ
10、ration method.And then to all sorts of heterogeneous data integration technology solutions are analyzed,expounds the advantages and disadvantages of each. Finally through the design and development of </p><p&g
11、t; Practice proves,based on EntityFramework and DataService distributed heterogeneous data of integrated solutions,can be very good to reduce the system integration on client limit,for distributed heterogeneous data int
12、egration is of high reference value,the plan also apply to cell phone development platform.</p><p> Keywords: heterogeneous; distributed; Web Service;data integration</p><p><b> 目 錄</
13、b></p><p><b> 摘要I</b></p><p><b> 目錄III</b></p><p><b> 1 前言1</b></p><p><b> 2 相關(guān)技術(shù)2</b></p><p>
14、2.1分布式數(shù)據(jù)庫(kù)系統(tǒng)2</p><p> 2.1.1 基本概念2</p><p> 2.1.2 分布式數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)2</p><p> 2.1.3 分布式數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)3</p><p> 2.1.5 分布式數(shù)據(jù)庫(kù)系統(tǒng)的現(xiàn)狀3</p><p> 2.2 異構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)4</p>
15、<p> 2.2.1 異構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)概述4</p><p> 2.2.2 異構(gòu)數(shù)據(jù)集成現(xiàn)狀4</p><p> 2.2.2 異構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)之間數(shù)據(jù)轉(zhuǎn)換以及集成5</p><p> 2.3 各種異構(gòu)、分布數(shù)據(jù)信息集成技術(shù)的比較7</p><p> 2.3.1 ODBC技術(shù)7</p><p&g
16、t; 2.3.2 CORBA8</p><p> 2.3.3 COM/DCOM技術(shù)10</p><p> 2.3.4 Web Service技術(shù)10</p><p> 2.3.5 XML技術(shù)12</p><p> 3 本文用到的技術(shù)17</p><p> 3.1 REST17</p>
17、<p> 3.2 WCF Data Service18</p><p> 3.2.1 WCF Data Service系統(tǒng)架構(gòu)19</p><p> 3.2.2 使用WCF Data Service的OData數(shù)據(jù)發(fā)布前后比較22</p><p> 3.3 Entity Framework23</p><p>
18、 3.3 .1 Entity Framework 系統(tǒng)架構(gòu)23</p><p> 3.3.2 Entity Framework概念模型查詢(xún)24</p><p> 3.4 LINQ24</p><p> 4 基于Web Service的分布式異構(gòu)數(shù)據(jù)庫(kù)數(shù)據(jù)集成設(shè)計(jì)26</p><p> 4.1 系統(tǒng)框架26</p>
19、<p> 4.2 框架分析26</p><p> 4.3設(shè)計(jì)要點(diǎn)26</p><p> 4.4 查詢(xún)接口27</p><p> 4.5 集成Data Service模塊設(shè)計(jì)27</p><p> 4.5.1 Server 端模塊設(shè)計(jì)27</p><p> 4.5.2 Client 模
20、塊設(shè)計(jì)31</p><p> 4.6實(shí)際運(yùn)行效果32</p><p> 4.6.1數(shù)據(jù)庫(kù)數(shù)據(jù)準(zhǔn)備32</p><p> 4.6.2 構(gòu)建相應(yīng)的Edmx模型以及WCF Data Service33</p><p> 4.6.3集成數(shù)據(jù)模型34</p><p> 4.6.3客戶(hù)端顯示35</p&
21、gt;<p> 5 總結(jié)與展望37</p><p> 5.1論文工作總結(jié)37</p><p> 5.2未來(lái)工作展望37</p><p><b> 參考文獻(xiàn)38</b></p><p><b> 致謝39</b></p><p><b&g
22、t; 1 前言</b></p><p> 隨著信息技術(shù)的高速發(fā)展,數(shù)據(jù)庫(kù)技術(shù)得到了快速的發(fā)展與應(yīng)用,在現(xiàn)在的各大企事業(yè)單位中,所運(yùn)行著的數(shù)以百萬(wàn)記的應(yīng)用程序的后臺(tái)無(wú)不存在著各種數(shù)據(jù)庫(kù),從大型的Oracle,Microsoft SQL Server、DB2到免費(fèi)的MySQL或者小型的Access數(shù)據(jù)庫(kù)。這些數(shù)據(jù)庫(kù)在企業(yè)的各種業(yè)務(wù)活動(dòng)中扮演著極其重要的地位。這些數(shù)據(jù)庫(kù)根據(jù)原先的需求進(jìn)行創(chuàng)建,以及管理,
23、各個(gè)數(shù)據(jù)庫(kù)之間無(wú)論是物理上還是在邏輯上都存在著千差萬(wàn)別的區(qū)別。每個(gè)數(shù)據(jù)庫(kù)都有著自己的模式以及數(shù)據(jù)模型,通常表現(xiàn)為以下幾個(gè)方面:1)數(shù)據(jù)庫(kù)運(yùn)行體系的差別,其主要包括大型機(jī),小型機(jī),PC以及嵌入式系統(tǒng)。2)數(shù)據(jù)庫(kù)所運(yùn)行的操作系統(tǒng)的差別。主要包含Microsoft windows,Unix,Linux等。3)數(shù)據(jù)庫(kù)DBMS系統(tǒng)的差異,由于數(shù)據(jù)庫(kù)軟件的更新?lián)Q代,企事業(yè)單位中存在大量的不同數(shù)據(jù)模型的數(shù)據(jù)庫(kù),包含關(guān)系型數(shù)據(jù)庫(kù),網(wǎng)絡(luò)型的數(shù)據(jù)庫(kù)以及面向
24、對(duì)象和基于文件的數(shù)據(jù)庫(kù)。4)數(shù)據(jù)結(jié)構(gòu)的異構(gòu),這個(gè)主要表現(xiàn)在各大數(shù)據(jù)庫(kù)提供商雖然提供了標(biāo)準(zhǔn)SQL接口,但是其SQL語(yǔ)法會(huì)有略微的差別,造成數(shù)據(jù)結(jié)構(gòu)上的異構(gòu)出現(xiàn)。</p><p> 隨著網(wǎng)絡(luò)的高速發(fā)展,企事業(yè)中各種應(yīng)用的呈現(xiàn)明顯增長(zhǎng)的態(tài)勢(shì),其后臺(tái)數(shù)據(jù)量也呈現(xiàn)指數(shù)級(jí)的增長(zhǎng),數(shù)據(jù)庫(kù)也從本來(lái)的單機(jī)數(shù)據(jù)庫(kù)向數(shù)據(jù)庫(kù)集群方向發(fā)展,數(shù)據(jù)庫(kù)也變得越來(lái)越復(fù)雜。另外企業(yè)中的各種應(yīng)用由于其相對(duì)獨(dú)立性,并沒(méi)有為后期數(shù)據(jù)集成留好接口,這些相
25、對(duì)獨(dú)立的系統(tǒng)在企業(yè)發(fā)展過(guò)程中制約了企業(yè)的信息集成,之間沒(méi)有相互連接的通道,且通常被封存在不同的主機(jī),數(shù)據(jù)庫(kù)服務(wù)器上,為了構(gòu)建企業(yè)的信息集成以及信息共享的系統(tǒng),有必要對(duì)這些異構(gòu)的數(shù)據(jù)庫(kù)進(jìn)行相互串聯(lián),因此如何實(shí)現(xiàn)這些異構(gòu)數(shù)據(jù)庫(kù)的信息共享成為當(dāng)前企事業(yè)單位的當(dāng)務(wù)之急,分布式異構(gòu)數(shù)據(jù)集成成為一個(gè)關(guān)鍵點(diǎn)。</p><p><b> 2 相關(guān)技術(shù)</b></p><p> 2
26、.1分布式數(shù)據(jù)庫(kù)系統(tǒng)</p><p> 2.1.1 基本概念</p><p> 分布式數(shù)據(jù)庫(kù)(DDBS)指的是物理上處于不同地點(diǎn)但是邏輯上相對(duì)集中的數(shù)據(jù)庫(kù)系統(tǒng),分布式數(shù)據(jù)庫(kù)使用網(wǎng)絡(luò)將不同物理地點(diǎn)的數(shù)據(jù)庫(kù)實(shí)例進(jìn)行集中管理以及控制,并將它們連接起來(lái)形成一個(gè)統(tǒng)一邏輯上集成的數(shù)據(jù)庫(kù)系統(tǒng)。因此簡(jiǎn)單的說(shuō),分布式數(shù)據(jù)庫(kù)就是數(shù)據(jù)庫(kù)系統(tǒng)和網(wǎng)絡(luò)的結(jié)合。</p><p> 分布式數(shù)
27、據(jù)庫(kù)系統(tǒng)由兩部分構(gòu)成,其一就是上述的分布式數(shù)據(jù)庫(kù),其二是分布式數(shù)據(jù)庫(kù)管理系統(tǒng)(DDBMS),后者負(fù)責(zé)對(duì)前面的位于各處的數(shù)據(jù)庫(kù)進(jìn)行集成以及管理,負(fù)責(zé)其在分布式環(huán)境下的數(shù)據(jù)存取,使得數(shù)據(jù)保持一致性、安全性以及完整性。</p><p> 分布式數(shù)據(jù)庫(kù)系統(tǒng)按照其范圍不同,可以分為全局?jǐn)?shù)據(jù)庫(kù)和局部數(shù)據(jù)庫(kù)兩種,其中全局?jǐn)?shù)據(jù)庫(kù)由全局?jǐn)?shù)據(jù)庫(kù)管理系統(tǒng)來(lái)進(jìn)行管理,而局部數(shù)據(jù)庫(kù)則由相對(duì)應(yīng)的數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)進(jìn)行管理。同樣的,如果應(yīng)用程
28、序只是訪問(wèn)一個(gè)數(shù)據(jù)庫(kù)實(shí)例的話(huà),那么該應(yīng)用稱(chēng)為本地應(yīng)用,如果應(yīng)用涉及兩個(gè)或者兩個(gè)以上數(shù)據(jù)庫(kù)的數(shù)據(jù),那么該應(yīng)用可以稱(chēng)之為全局應(yīng)用。</p><p> 因此,從分布式數(shù)據(jù)庫(kù)的定義中可以看出,對(duì)于狹義的分布式數(shù)據(jù)庫(kù)定義,可以認(rèn)為是包含兩個(gè)或者兩個(gè)以上節(jié)點(diǎn)的數(shù)據(jù)庫(kù)才可稱(chēng)為分布式數(shù)據(jù)庫(kù)系統(tǒng)。</p><p> 2.1.2 分布式數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)</p><p> 分布式數(shù)
29、據(jù)庫(kù)由于其特殊性,有以下的特點(diǎn)。</p><p> (1)物理上大多不在同一區(qū)域:顧名思義,分布式數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)分別存儲(chǔ)于網(wǎng)絡(luò)的各個(gè)角落,其存儲(chǔ)點(diǎn)的物理位置以網(wǎng)絡(luò)連接,并且可能相差幾千公里。</p><p> (2)邏輯上可以視為一個(gè)數(shù)據(jù)庫(kù):雖然分布式數(shù)據(jù)庫(kù)的數(shù)據(jù)分布于各處,但是這些分散的數(shù)據(jù)在邏輯上是一個(gè)整體,可以被分布式數(shù)據(jù)庫(kù)用戶(hù)以一個(gè)統(tǒng)一的方式訪問(wèn)。</p>&
30、lt;p> (3)本地?cái)?shù)據(jù)庫(kù)的獨(dú)立性:分布式數(shù)據(jù)庫(kù)由多個(gè)本地?cái)?shù)據(jù)庫(kù)構(gòu)成,且每個(gè)數(shù)據(jù)庫(kù)的DBMS也千差萬(wàn)別,管理數(shù)據(jù)的方式也隨著數(shù)據(jù)庫(kù)廠家的不同而不同。且本地?cái)?shù)據(jù)庫(kù)一般情況下也是局部應(yīng)用的后臺(tái)數(shù)據(jù)提供者。因此,脫離分布式數(shù)據(jù)庫(kù)的范疇,本地?cái)?shù)據(jù)庫(kù)也可以自成一體,進(jìn)行常規(guī)的數(shù)據(jù)管理以及計(jì)算。</p><p> (4)數(shù)據(jù)的獨(dú)立性:由于分布式數(shù)據(jù)庫(kù)的設(shè)計(jì)中非常關(guān)鍵的一點(diǎn)就是數(shù)據(jù)的透明性,因此,在用戶(hù)使用分布式數(shù)
31、據(jù)庫(kù)的時(shí)候,通常不必關(guān)注數(shù)據(jù)的拷貝存在于哪個(gè)服務(wù)器,以及本地?cái)?shù)據(jù)庫(kù)軟件支持哪種數(shù)據(jù)模型等問(wèn)題。</p><p> (5)數(shù)據(jù)的冗余:根據(jù)數(shù)據(jù)庫(kù)設(shè)計(jì)的三大范式,一般不建議在數(shù)據(jù)庫(kù)設(shè)計(jì)中存在大量的冗余數(shù)據(jù),其一,冗余數(shù)據(jù)增加了數(shù)據(jù)的存儲(chǔ)空間,還有一個(gè)最大的問(wèn)題就是數(shù)據(jù)各個(gè)副本之間的數(shù)據(jù)的一致性無(wú)法得到保證。但是數(shù)據(jù)冗余對(duì)于分布式數(shù)據(jù)庫(kù)來(lái)說(shuō)卻是一個(gè)優(yōu)化的工具,因?yàn)樵诜植际綌?shù)據(jù)庫(kù)中,由于各個(gè)子數(shù)據(jù)庫(kù)存在于各個(gè)不同的物理
32、位置,由于網(wǎng)絡(luò)或者數(shù)據(jù)庫(kù)系統(tǒng)問(wèn)題,通常會(huì)造成災(zāi)難性的后果,造成整個(gè)基于分布式數(shù)據(jù)庫(kù)系統(tǒng)的應(yīng)用整體癱瘓,因此在數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)中需要考慮的一個(gè)點(diǎn)就是數(shù)據(jù)庫(kù)數(shù)據(jù)的適量冗余,以此來(lái)提高數(shù)據(jù)的可靠性以及可用性。同時(shí)由于系統(tǒng)各個(gè)節(jié)點(diǎn)的冗余數(shù)據(jù)的存在,可以大大減少網(wǎng)絡(luò)的負(fù)載,使得整個(gè)基于分布式數(shù)據(jù)庫(kù)的應(yīng)用的性能得以大大提升。</p><p> (6)事務(wù)的分布性:在本地化的數(shù)據(jù)庫(kù)中一個(gè)很關(guān)鍵的技術(shù)就是事務(wù),在企業(yè)級(jí)應(yīng)用中為了
33、防止系統(tǒng)出錯(cuò),可以大量使用了該技術(shù),對(duì)于所有可能拋出異常的數(shù)據(jù)庫(kù)操作進(jìn)行commit以及rollback操作。而同樣的需求也存在于分布式數(shù)據(jù)庫(kù)中,由于數(shù)據(jù)分布于不同的地點(diǎn),事務(wù)的分布性也成為分布式數(shù)據(jù)庫(kù)的一個(gè)特點(diǎn)。</p><p> 2.1.3 分布式數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)</p><p> 圖2.1 分布式數(shù)據(jù)庫(kù)體系結(jié)構(gòu)</p><p> 上圖給出了分布式系統(tǒng)的體
34、系結(jié)構(gòu),在整個(gè)分布式數(shù)據(jù)庫(kù)中,數(shù)據(jù)的描述以及其相關(guān)的meta-data,也有全局和局部之分,其通常包含數(shù)據(jù)表,數(shù)據(jù)視圖以及存儲(chǔ)過(guò)程等的分布式訪問(wèn)。</p><p> 2.1.5 分布式數(shù)據(jù)庫(kù)系統(tǒng)的現(xiàn)狀</p><p> 分布式數(shù)據(jù)庫(kù)系統(tǒng)從出現(xiàn)到現(xiàn)在已經(jīng)有了20多年的歷史,從概念模型到現(xiàn)在相對(duì)成熟的系統(tǒng)的分布式平臺(tái),其間經(jīng)歷了一個(gè)從產(chǎn)生到發(fā)展的過(guò)程[1]。分布式數(shù)據(jù)庫(kù)實(shí)現(xiàn)所需要的很多問(wèn)題
35、得到解決。發(fā)展到現(xiàn)在,分布式數(shù)據(jù)庫(kù)技術(shù)已經(jīng)相對(duì)成熟,各大數(shù)據(jù)庫(kù)廠商都在不斷推出基于自身產(chǎn)品的分布式數(shù)據(jù)庫(kù)產(chǎn)品以占據(jù)這個(gè)市場(chǎng),其中不乏大型數(shù)據(jù)庫(kù)廠商,比如Microsoft 以及IBM,Oracle等,但是分布式數(shù)據(jù)庫(kù)技術(shù)不是簡(jiǎn)單的將數(shù)據(jù)庫(kù)技術(shù)和網(wǎng)絡(luò)技術(shù)簡(jiǎn)單結(jié)合就可以的,分布式數(shù)據(jù)庫(kù)系統(tǒng)有自己的特色,且由于數(shù)據(jù)的分布性,使得其技術(shù)發(fā)展一直存在一個(gè)很大的瓶頸,相關(guān)的基于分布式數(shù)據(jù)庫(kù)的應(yīng)用的推廣也都被推遲甚至取消,數(shù)據(jù)操作完全透明,性能堪比本
36、地?cái)?shù)據(jù)庫(kù)的商用系統(tǒng)還是很難見(jiàn)到。</p><p> 國(guó)內(nèi)對(duì)于分布式數(shù)據(jù)庫(kù)的研究大概從上世紀(jì)80年代開(kāi)始,比較有名的是由中科院和上??茖W(xué)技術(shù)大學(xué)以及華師大合作開(kāi)發(fā)的C-Porel系統(tǒng)以及東北大學(xué)的DMD/FO 系統(tǒng),以及華中科技大學(xué)研制的DM2多媒體分布式數(shù)據(jù)庫(kù),其在很大程度上解決了分布式數(shù)據(jù)庫(kù)系統(tǒng)中數(shù)據(jù)的透明共享的技術(shù)難題,對(duì)分布式數(shù)據(jù)庫(kù)技術(shù)的發(fā)展起到了積極地推動(dòng)作用。</p><p>
37、 2.2 異構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)</p><p> 2.2.1 異構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)概述</p><p> 異構(gòu)數(shù)據(jù)庫(kù)是指異構(gòu)的多數(shù)據(jù)庫(kù)系統(tǒng)之間相互作用,在保證每個(gè)獨(dú)立的數(shù)據(jù)庫(kù)系統(tǒng)自身的應(yīng)用特性、完整性控制和安全性控制的前提下,邏輯上形成一個(gè)統(tǒng)一的整體,使用戶(hù)訪問(wèn)這些異構(gòu)數(shù)據(jù)庫(kù),如同訪問(wèn)一個(gè)集中式數(shù)據(jù)庫(kù)一樣,不必關(guān)心各個(gè)局部數(shù)據(jù)庫(kù)之間的硬件不同、操作系統(tǒng)的不同、通訊方式的不同、DBMS不同和語(yǔ)義的
38、不同。建立異構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)的目的就是要屏蔽掉各局部數(shù)據(jù)庫(kù)的不同,建立統(tǒng)一的全局?jǐn)?shù)據(jù)模式或全局外視圖,使用戶(hù)對(duì)數(shù)據(jù)庫(kù)進(jìn)行透明訪問(wèn)。</p><p> 2.2.2 異構(gòu)數(shù)據(jù)集成現(xiàn)狀</p><p> 對(duì)異構(gòu)數(shù)據(jù)的訪問(wèn)、信息集成并不是一個(gè)新的課題,已經(jīng)歷時(shí)二十多年的歷史了,經(jīng)歷了專(zhuān)用網(wǎng)關(guān)、C/S(ODBC)結(jié)構(gòu)、B/S(CORBA、DCOM/COM)結(jié)構(gòu)。到目前Web Service的發(fā)展階段
39、。異構(gòu)數(shù)據(jù)庫(kù)集成系統(tǒng)的研究一直是國(guó)內(nèi)外數(shù)據(jù)庫(kù)領(lǐng)域中的一個(gè)研究熱點(diǎn),幾家大型的數(shù)據(jù)庫(kù)廠商在其主流數(shù)據(jù)庫(kù)產(chǎn)品同構(gòu)復(fù)制的基礎(chǔ)上,進(jìn)一步提出了各自的方案,其中Oracle使用透明網(wǎng)關(guān)技術(shù),IBM使用CCD(一致變化數(shù)據(jù)表),微軟公司則提出出版者/訂閱者方案。國(guó)外眾多的研究機(jī)構(gòu)已經(jīng)開(kāi)展了這些方面的研究。</p><p> 比較著名的有美國(guó)的密歇根-迪兒波恩大學(xué)、斯坦福大學(xué)TSIMMIS等項(xiàng)目,國(guó)內(nèi)研究機(jī)構(gòu)比如華南農(nóng)業(yè)大學(xué)
40、也進(jìn)行了類(lèi)似系統(tǒng)的研究,現(xiàn)有的主要系統(tǒng)列舉如下。</p><p> (1)TSIMMIS系統(tǒng):是一個(gè)研究多數(shù)據(jù)庫(kù)系統(tǒng)的產(chǎn)品。它采用對(duì)象交換模型(Object Exchange Model,OEM)。在該系統(tǒng)中,沒(méi)有模式和對(duì)象的概念,即沒(méi)有必要定義對(duì)象的結(jié)構(gòu),每個(gè)對(duì)象實(shí)例本身就已包含了它自己的模式。OEM采用一種稱(chēng)為MSL(Mediator Specification Language)的查詢(xún)語(yǔ)言。中間件和封裝器
41、用MSL描述,而且這些組件可以通過(guò)MSL規(guī)格說(shuō)明自動(dòng)生成。TSIMMIS需要較多的人工干預(yù),自動(dòng)化集成程度低。</p><p> (2)MIND系統(tǒng):MIND是由IBM公司資助的一個(gè)基于CORBA的多數(shù)據(jù)庫(kù)項(xiàng)目,主要利用面向?qū)ο蟮募夹g(shù),開(kāi)發(fā)了兩個(gè)基本的組件:全局?jǐn)?shù)據(jù)管理器,本地?cái)?shù)據(jù)管理器,各自負(fù)責(zé)對(duì)數(shù)據(jù)的管理。</p><p> (3)ADDS(Amoco Distributed Da
42、tabase System):ADDS是Amoco公司推出的異構(gòu)數(shù)據(jù)庫(kù)解決方案,它使用了一個(gè)擴(kuò)展的關(guān)系代數(shù)查詢(xún)語(yǔ)言,支持ANSI SQL的一個(gè)子集。ADDS的全局?jǐn)?shù)據(jù)庫(kù)模式是通過(guò)定義CDB(Composite Database)來(lái)建立的,即將局部數(shù)據(jù)庫(kù)(LDB)模式映射到聯(lián)邦模式上,并將該映射存儲(chǔ)到ADDS的數(shù)據(jù)字典中。用戶(hù)可以共享CDB,但是只有經(jīng)過(guò)授權(quán)的用戶(hù)才能訪問(wèn)指定的CDB。CDB支持的DBMS包括IMS,SQL/DS,DB2,
43、RIM,INGRES以及Focus。ADDS的工作環(huán)境主要是在VMS和MVS操作系統(tǒng)下的大型機(jī)以及Unix操作系統(tǒng)的Sun或Apollo工作站。ADDS保持了局部數(shù)據(jù)系統(tǒng)的獨(dú)立性,且不要求對(duì)局部數(shù)據(jù)庫(kù)上的應(yīng)用程序做任何修改。目前ADDS還僅是一個(gè)原型系統(tǒng)。</p><p> (4)XHDQ(XML-based Heterogeneous Database Query):XHDQ是華南農(nóng)業(yè)大學(xué)的一個(gè)受?chē)?guó)家部委基金
44、資助的項(xiàng)日,它是一種以基于XML的異構(gòu)數(shù)據(jù)庫(kù)查詢(xún)?yōu)楹诵牡南到y(tǒng),并在IBM WAS平臺(tái)下實(shí)現(xiàn)了其查詢(xún)核心系統(tǒng)的方法。其核心系統(tǒng)主要有以下六個(gè)部分組成:模式轉(zhuǎn)換器、XHDQ中間件、XHDQ應(yīng)用程序、XHDQ客戶(hù)端、XHDQ服務(wù)器和異構(gòu)數(shù)據(jù)庫(kù)。它通過(guò)使用XML文件作為中間形式來(lái)實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫(kù)之間的集成。</p><p> (5)UUHBD系統(tǒng):北京理工大學(xué)的UUHDB系統(tǒng)是基于Client/Server結(jié)構(gòu)的異構(gòu)數(shù)據(jù)
45、庫(kù)聯(lián)合使用系統(tǒng),采用的全局查詢(xún)語(yǔ)言GSQL是ANSI SQL 86的子集,能進(jìn)行透明地聯(lián)合查詢(xún),支持的數(shù)據(jù)庫(kù)有Oracle、Informix和dBase,由于沒(méi)有進(jìn)行查詢(xún)優(yōu)化,查詢(xún)效率較低。</p><p> 2.2.2 異構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)之間數(shù)據(jù)轉(zhuǎn)換以及集成</p><p> 每個(gè)DBMS都定義了自己系統(tǒng)的數(shù)據(jù)類(lèi)型,但這些數(shù)據(jù)庫(kù)系統(tǒng)的基本數(shù)據(jù)類(lèi)型基本上是一致的,如數(shù)值型(包括整型、實(shí)型、
46、浮點(diǎn)型、雙精度型等)、字符型、日期型等,這些基本類(lèi)型為不同數(shù)據(jù)庫(kù)之間數(shù)據(jù)轉(zhuǎn)換提供了可能。隨著數(shù)據(jù)庫(kù)系統(tǒng)的發(fā)展和版本的不斷升級(jí),不同數(shù)據(jù)庫(kù)數(shù)據(jù)類(lèi)型的種類(lèi)也在不斷的擴(kuò)充、如超文本型、BLOB型和處理聲音等各種數(shù)據(jù)類(lèi)型。這些又為數(shù)據(jù)庫(kù)系統(tǒng)之間數(shù)據(jù)轉(zhuǎn)換設(shè)置了不少的障礙。因此,分析數(shù)據(jù)類(lèi)型的差別繼而將數(shù)據(jù)轉(zhuǎn)換成一個(gè)統(tǒng)一格式是實(shí)現(xiàn)不同數(shù)據(jù)關(guān)系轉(zhuǎn)換的重中之重。</p><p> 下表列出了MySQL和Oracle相對(duì)應(yīng)的數(shù)據(jù)
47、類(lèi)型,從下表可以看出,雖然兩者大體相同,但是還是有一部分?jǐn)?shù)據(jù)類(lèi)型有著較大差異,因此在做異構(gòu)集成的時(shí)候,這也是必須要考慮的。</p><p> 表2.1 MySQL和Oracle數(shù)據(jù)類(lèi)型對(duì)比</p><p> 表2.1 MySQL和Oracle數(shù)據(jù)類(lèi)型對(duì)比(續(xù))</p><p> 現(xiàn)今常用的轉(zhuǎn)換方式主要有以下幾種。</p><p> (
48、1) 利用中間數(shù)據(jù)庫(kù)轉(zhuǎn)換</p><p> 在開(kāi)發(fā)系統(tǒng)時(shí)可使用“中間數(shù)據(jù)庫(kù)”的辦法,即在實(shí)現(xiàn)兩個(gè)具體數(shù)據(jù)庫(kù)之間的轉(zhuǎn)換時(shí),依據(jù)關(guān)系定義、字段定義,從源數(shù)據(jù)庫(kù)中讀出數(shù)據(jù)通過(guò)中間數(shù)據(jù)庫(kù)轉(zhuǎn)入到目的數(shù)據(jù)庫(kù)中。如圖2.2所示。</p><p> 圖2.2 數(shù)據(jù)轉(zhuǎn)換圖</p><p> 這種利用中間數(shù)據(jù)庫(kù)的轉(zhuǎn)換辦法,所需轉(zhuǎn)換模塊少,且擴(kuò)展性強(qiáng),但缺點(diǎn)是轉(zhuǎn)換不能實(shí)時(shí)完成,且轉(zhuǎn)
49、換時(shí)間長(zhǎng),對(duì)于需要實(shí)時(shí)訪問(wèn)數(shù)據(jù)的應(yīng)用來(lái)說(shuō)效用不大。</p><p> (2) 利用ORM轉(zhuǎn)換</p><p> 現(xiàn)有的應(yīng)用開(kāi)發(fā)通常會(huì)用到ORM(Object-relational mapping)工具,在.NET環(huán)境下通常會(huì)使用到的是NHibernate和Entity Framework,其優(yōu)點(diǎn)是可以實(shí)時(shí)的檢索各個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù),相比較第(1)種方式而言,其更具有可行性。其應(yīng)用開(kāi)發(fā)架構(gòu)如
50、圖2.3所示。</p><p> 圖2.3 開(kāi)發(fā)架構(gòu)圖</p><p> 2.3 各種異構(gòu)、分布數(shù)據(jù)信息集成技術(shù)的比較</p><p> 2.3.1 ODBC技術(shù)</p><p> 微軟于1991年11月提出了一個(gè)ODBC(Open Database Connectivity)開(kāi)放型數(shù)據(jù)庫(kù)互聯(lián)體系結(jié)構(gòu)的數(shù)據(jù)訪問(wèn)標(biāo)準(zhǔn),作為訪問(wèn)數(shù)據(jù)庫(kù)的統(tǒng)
51、一界面標(biāo)準(zhǔn),使用戶(hù)具有對(duì)其它各種異種數(shù)據(jù)庫(kù)系統(tǒng)的訪問(wèn)能力。ODBC是基于結(jié)構(gòu)化查詢(xún)語(yǔ)言(SQL),使用SQL可大大簡(jiǎn)化其應(yīng)用程序設(shè)計(jì)接口(API),由于ODBC標(biāo)準(zhǔn)思想上的先進(jìn)性,只要數(shù)據(jù)庫(kù)廠商提供的開(kāi)發(fā)包支持這個(gè)標(biāo)準(zhǔn),那么開(kāi)發(fā)人員通過(guò)ODBC開(kāi)發(fā)的程序可以在不同的數(shù)據(jù)庫(kù)之間自由轉(zhuǎn)換。因而越來(lái)越受到眾多廠家和用戶(hù)的青睞。目前,ODBC已經(jīng)成為客戶(hù)機(jī)/服務(wù)器(C/S)系統(tǒng)中的一個(gè)重要支持技術(shù)。</p><p>
52、圖2.4 ODBC的結(jié)構(gòu)圖</p><p> ODBC的結(jié)構(gòu)如圖2.4所示。ODBC是一種用來(lái)在相關(guān)或不相關(guān)的數(shù)據(jù)庫(kù)管理系統(tǒng)中存取數(shù)據(jù)的標(biāo)準(zhǔn)API。ODBC為應(yīng)用程序提供了一套高層調(diào)用接口規(guī)范和基于動(dòng)態(tài)鏈接庫(kù)的運(yùn)行支持環(huán)境。</p><p> 應(yīng)用程序本身不直接與數(shù)據(jù)庫(kù)打交道,主要負(fù)責(zé)處理并調(diào)用ODBC函數(shù),發(fā)送對(duì)數(shù)據(jù)庫(kù)的SQL請(qǐng)求及取得結(jié)果。</p><p>
53、 目前,常用的數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)的前端工具如Visual Studio,Delphi等都支持通過(guò)ODBC接口來(lái)連接各種數(shù)據(jù)庫(kù)系統(tǒng)。而多數(shù)數(shù)據(jù)庫(kù)管理系統(tǒng)(如:Oracle、Sybase、MySQL,SQL Server等)都提供了相應(yīng)的ODBC驅(qū)動(dòng)程序,使數(shù)據(jù)庫(kù)系統(tǒng)具有很好的開(kāi)放性。</p><p> 采用ODBC技術(shù)較好的解決了對(duì)異種數(shù)據(jù)庫(kù)的訪問(wèn)、信息共享問(wèn)題,但是,ODBC不能實(shí)現(xiàn)在Internet上的異種數(shù)據(jù)
54、庫(kù)的互聯(lián)。由于C/S的體系結(jié)構(gòu)使得客戶(hù)機(jī)和服務(wù)器之間形成緊耦合關(guān)系,使得在分散的客戶(hù)機(jī)上存放大量的應(yīng)用邏輯,也不便于整個(gè)系統(tǒng)的維護(hù),因此,不能有效地解決分布范圍大的異種數(shù)據(jù)庫(kù)的互聯(lián)問(wèn)題。</p><p> 2.3.2 CORBA</p><p> CORBA(Common Object Request Broker Architecture)是由OMG提出的應(yīng)用軟件體系結(jié)構(gòu)和對(duì)象技術(shù)規(guī)
55、范,其核心是一套標(biāo)準(zhǔn)的語(yǔ)言、接口和協(xié)議,以支持異構(gòu)分布應(yīng)用程序間的互操作性及獨(dú)立于平臺(tái)和編程語(yǔ)言的對(duì)象重用。一些主要的ORB供應(yīng)商的產(chǎn)品如:IBM的ComponentBroker、Iona的Orbix和Inprise的VisiBroker[2]。如圖2.5所示。</p><p> 圖2.5 CORBA ORB 架構(gòu)</p><p> 在CORBA運(yùn)行體系結(jié)構(gòu)中,包含了下面幾個(gè)主要的元素
56、:</p><p> (1)接口(Interface)與IDL語(yǔ)言</p><p> 接口(Interface)是一組相關(guān)函數(shù)的集合。它代表了對(duì)象的服務(wù)能力,是為客戶(hù)提供操作對(duì)象的唯一方法。接口中每一個(gè)函數(shù)都必須給出了詳細(xì)的說(shuō)明,包括函數(shù)名、參數(shù)個(gè)數(shù)、參數(shù)類(lèi)型、返回類(lèi)型以及可能拋出的異常。在接口中,只定義了函數(shù)的原型,具體的函數(shù)由開(kāi)發(fā)者實(shí)現(xiàn)。接口通過(guò)接口描述語(yǔ)言(IDL,Interfa
57、ce Description Language)來(lái)定義。雖然IDL語(yǔ)言只提供了被ORB操作的對(duì)象的概念框架,但是ORB在運(yùn)行時(shí)并不需要IDL的源代碼。只要樁例程或運(yùn)行狀態(tài)下接口庫(kù)中的等價(jià)信息是可用的,ORB就能通過(guò)特定的方式完成其功能。</p><p> (2)樁(Stub)和構(gòu)架(Skeleton)</p><p> 樁(Stub)可以被看成是服務(wù)端的實(shí)際對(duì)象在客戶(hù)端的映像,其中的接
58、口是預(yù)先定義好的。它為客戶(hù)進(jìn)程提供了一種靜態(tài)的遠(yuǎn)程調(diào)用服務(wù)端對(duì)象的方式。與客戶(hù)端的樁相對(duì)應(yīng)的是服務(wù)端的構(gòu)架(Skeleton),它為服務(wù)器提供了一種靜態(tài)的實(shí)現(xiàn)方式。IDL編譯器翻譯描述對(duì)象接口的IDL文件,生成對(duì)應(yīng)具體編程語(yǔ)言的IDL樁和IDL構(gòu)架。樁負(fù)責(zé)將客戶(hù)請(qǐng)求進(jìn)行編碼,發(fā)送到對(duì)象實(shí)現(xiàn)端,并對(duì)收到的結(jié)果進(jìn)行解釋?zhuān)缓蟀呀Y(jié)果或異常返回給客戶(hù)。與此相反,構(gòu)架對(duì)客戶(hù)的請(qǐng)求進(jìn)行解碼,定位目標(biāo)對(duì)象和請(qǐng)求執(zhí)行的對(duì)象方法,激活該方法,然后把結(jié)果或
59、異常信息編碼返回給客戶(hù)端。</p><p> (3)動(dòng)態(tài)調(diào)用接口和動(dòng)態(tài)構(gòu)架接口</p><p> 與樁和構(gòu)架不同,動(dòng)態(tài)調(diào)用接口(DII,Dynamic Invocation Interface)和動(dòng)態(tài)構(gòu)架接口(DSI,Dynamic Skeleton Interface)提供了動(dòng)態(tài)調(diào)用的方式和動(dòng)態(tài)實(shí)現(xiàn)的方式,它們使得用戶(hù)可以在事先不知道對(duì)象接口信息的情況下通過(guò)查詢(xún)接口庫(kù)或采取其它手段動(dòng)
60、態(tài)地獲得對(duì)象接口信息,然后使用ORB核心接口中的DII動(dòng)態(tài)調(diào)用方法構(gòu)造客戶(hù)請(qǐng)求并發(fā)送到對(duì)象實(shí)現(xiàn)。在對(duì)象實(shí)現(xiàn)方可以使用DSI的動(dòng)態(tài)分發(fā)機(jī)制處理客戶(hù)方的請(qǐng)求。與靜態(tài)方式相比,動(dòng)態(tài)方式提供了很大的靈活性,但是它的工作效率沒(méi)有靜態(tài)方式高。另外,實(shí)現(xiàn)系統(tǒng)的接口大多可以預(yù)先確定,所以大部分情況下都是采用靜態(tài)方式。</p><p> (4)ORB核心和對(duì)象適配器</p><p> ORB核心是整個(gè)C
61、ORBA體系架構(gòu)基礎(chǔ)。ORB核心通過(guò)屏蔽諸如服務(wù)器位置、實(shí)現(xiàn)方式、通信協(xié)議等具體細(xì)節(jié)為客戶(hù)端與服務(wù)器端之間的通信提供了透明的傳輸機(jī)制,從而實(shí)現(xiàn)遠(yuǎn)程調(diào)用。對(duì)象適配器(OMA)主要完成對(duì)各種不同對(duì)象的定位的功能。</p><p> 2.3.3 COM/DCOM技術(shù)</p><p> DCOM(分布式組件對(duì)象模型)基于COM(組件對(duì)象模型),是Microsoft,DEC等公司的分布式計(jì)算策略
62、。1996年Microsoft提出的DCOM是基于以下一個(gè)簡(jiǎn)單的思想:在DCOM協(xié)議的支持下,不同應(yīng)用程序可以透過(guò)網(wǎng)絡(luò)進(jìn)行互操作。它擴(kuò)展了組件對(duì)象模型技術(shù)(COM),使其能夠支持在網(wǎng)絡(luò)上不同計(jì)算機(jī)的對(duì)象之間的通訊??梢栽谝粋€(gè)應(yīng)用程序中(或DLL連接庫(kù))創(chuàng)建對(duì)象,而從駐留在另外一臺(tái)機(jī)器上的程序中通過(guò)接口調(diào)用此對(duì)象的方法。這樣應(yīng)用程序就可以在位置上實(shí)現(xiàn)分布性,從而滿(mǎn)足客戶(hù)和應(yīng)用的需求[3]。DCOM的體系結(jié)構(gòu)如圖2.6所示:</p&g
63、t;<p> 圖2.6 DCOM的體系結(jié)構(gòu)</p><p> DCOM由五個(gè)部分的組成:</p><p> (1)對(duì)象初始化組件??蛻?hù)調(diào)用諸如CoCreateInstance等創(chuàng)建實(shí)例函數(shù)在組件端創(chuàng)建一個(gè)新的實(shí)例。</p><p> (2)在客戶(hù)端和服務(wù)端之間傳遞數(shù)據(jù)的組件,即圖中的Proxy Object/Stub。</p>&
64、lt;p><b> (3)安全組件。</b></p><p> (4)DCE RPC組件。</p><p> (5)低級(jí)協(xié)議棧和DCOM網(wǎng)絡(luò)協(xié)議組件。</p><p> 2.3.4 Web Service技術(shù)</p><p> Web Service是一種開(kāi)放的分布式應(yīng)用程序的模型,它能在所有支持Inte
65、rnet通訊的操作系統(tǒng)上實(shí)現(xiàn)。使用Web Service技術(shù)可以以獨(dú)立于平臺(tái)的方式,通過(guò)標(biāo)準(zhǔn)的Web協(xié)議,建立可以由應(yīng)用程序通過(guò)網(wǎng)絡(luò)訪問(wèn)的應(yīng)用程序邏輯單元。Web Service技術(shù)的體系架構(gòu)如圖2.7所示:</p><p> 圖2.7 Web Service 體系架構(gòu)</p><p> 上圖從分層的角度描述了Web Service的整體架構(gòu),其中包括了Web Service協(xié)議棧。與
66、網(wǎng)絡(luò)的分層結(jié)構(gòu)相同,上一層需要下一層的支持。而安全性、可管理性、服務(wù)質(zhì)量則需要在各個(gè)層次都有所體現(xiàn)。Web Service協(xié)議棧的基礎(chǔ)是網(wǎng)絡(luò)層。Web Service要被服務(wù)請(qǐng)求者調(diào)用,就必須是可以通過(guò)網(wǎng)絡(luò)訪問(wèn)的。Internet上可以公用的Web Service使用普遍部署的網(wǎng)絡(luò)協(xié)議。HTTP憑借其普遍性,成為了Internet上可用Web Service真正的標(biāo)準(zhǔn)網(wǎng)絡(luò)協(xié)議。Web Service還可以支持其它因特網(wǎng)協(xié)議。</p
67、><p> XML是Web Service的數(shù)據(jù)編碼的標(biāo)準(zhǔn)。XML是一種通用的數(shù)據(jù)表示法,用插入標(biāo)記的方法把文本流轉(zhuǎn)化為一個(gè)內(nèi)部結(jié)構(gòu)可能高度復(fù)雜的數(shù)據(jù)對(duì)象。它不僅有助于為Web描述新文檔的格式,而且也適用于描述結(jié)構(gòu)化的數(shù)據(jù)[4]。</p><p> SOAP以XML標(biāo)準(zhǔn)封裝調(diào)用遠(yuǎn)程服務(wù)的格式,有別于其它分布式對(duì)象模型調(diào)用特定的調(diào)用格式,例如CORBA的GIOP以及DCOM的ORPC[5]。
68、由于SOAP以XML封裝調(diào)用格式,因此它可以使用任何的實(shí)體傳輸層來(lái)傳送,例如HTTP,TCP或是SMTP等。SDL定義了服務(wù)交互的接口和結(jié)構(gòu),是基于XML的服務(wù)描述的標(biāo)準(zhǔn)。WSDL使用XMLschema來(lái)描述Web Service的結(jié)構(gòu)。</p><p> UDDI注冊(cè)和發(fā)布Web Service。UDDI使用XML計(jì)劃定義注冊(cè)表的結(jié)構(gòu),使用SOAP指定與注冊(cè)表的通信。</p><p>
69、 2.3.5 XML技術(shù)</p><p> 1)XML技術(shù)的特點(diǎn)</p><p> XML(Extensible Markup Language,可擴(kuò)展性標(biāo)記語(yǔ)言)是由互聯(lián)網(wǎng)聯(lián)合組織(W3C)于1998年2月設(shè)計(jì)并推薦的新一代標(biāo)記語(yǔ)言,是一種類(lèi)似于HTML的被設(shè)計(jì)用來(lái)描述數(shù)據(jù)的標(biāo)記語(yǔ)言,即用于定義標(biāo)記語(yǔ)言的元約束和元語(yǔ)言的集合。XML是SGML(Standard Generalize
70、d Markup Language)的一個(gè)優(yōu)化子集。</p><p> 它將SGML的豐富功能與HTML的易用性結(jié)合到Web應(yīng)用中,以一種開(kāi)放的自我描述方式定義數(shù)據(jù)結(jié)構(gòu),在描述數(shù)據(jù)內(nèi)容的同時(shí)能突出對(duì)結(jié)構(gòu)的描述,從而體現(xiàn)數(shù)據(jù)之間的關(guān)系。</p><p> XML作為Internet上數(shù)據(jù)描述和交換的新標(biāo)準(zhǔn)[6],主要有以下幾個(gè)特點(diǎn):</p><p> (1)可擴(kuò)
71、展性強(qiáng):XML是元標(biāo)記語(yǔ)言,可以根據(jù)應(yīng)用的需要,創(chuàng)建應(yīng)用于各種各樣情況下的標(biāo)記語(yǔ)言;</p><p> (2)結(jié)構(gòu)性強(qiáng):XML的文件結(jié)構(gòu)可以嵌套到任意程度,能用來(lái)表示面向?qū)ο蟮牡燃?jí)層次;</p><p> (3)交互性好:通過(guò)使用XML,用戶(hù)可以非常方便地在本地進(jìn)行數(shù)據(jù)操作,不需與服務(wù)器交互,減輕了服務(wù)器的負(fù)擔(dān);</p><p> (4)語(yǔ)義性強(qiáng):XML可以自
72、定義標(biāo)記,以利于異構(gòu)系統(tǒng)之間的數(shù)據(jù)交換和信息檢索,實(shí)現(xiàn)機(jī)器與機(jī)器之間的信息交換;</p><p> (5)純文本:幾乎任何工具都可創(chuàng)建和編輯XML;</p><p> (6)基于內(nèi)容的數(shù)據(jù)標(biāo)識(shí):可以被不同程序用于不同目的;</p><p> (7)可格式化:可擴(kuò)展樣式語(yǔ)言XSL可以指定如何顯示數(shù)據(jù)。數(shù)據(jù)和顯示是分離的,可以為同一數(shù)據(jù)指定不同的樣式表用于不同輸出
73、;</p><p> (8)極強(qiáng)的鏈接能力:可以定義雙向鏈接、多目標(biāo)鏈接、擴(kuò)展鏈接和兩個(gè)文檔間的鏈接;</p><p> (9)易于處理:XML對(duì)格式的定義嚴(yán)格,具有層次結(jié)構(gòu),而且與廠商無(wú)關(guān);</p><p> (10)與平臺(tái)無(wú)關(guān):XML的出現(xiàn)為不同系統(tǒng)之間提供了一個(gè)溝通的平臺(tái),充當(dāng)信息傳遞的媒介。XML文檔無(wú)需做任何更改,即可移植到其它平臺(tái)上。</p&
74、gt;<p><b> 2)XML規(guī)范</b></p><p> 自從XML 1.0規(guī)范發(fā)布之后,XML的有關(guān)技術(shù)規(guī)范不斷涌現(xiàn),有的還處在草案階段[5]。與XML有關(guān)的重要技術(shù)規(guī)范還包括DTD,Schema,SAX,DOM,CSS,XSL,Xpath,Xlink,Xpoint,XQuery等眾多規(guī)范。它們與XML的關(guān)系如圖2.8所示。</p><p>
75、; 圖2.8 XML和相關(guān)技術(shù)關(guān)系圖</p><p> 下面分別介紹與本文相關(guān)的技術(shù)規(guī)范:DTD、XML Schema、XSL、CSS、SAX、DOM和Xpath。</p><p> (1)DTD(Document Type Definition):用來(lái)規(guī)定文檔的邏輯結(jié)構(gòu)[7]。它可以定義文檔的語(yǔ)法,而文檔的語(yǔ)法反過(guò)來(lái)能夠讓XML語(yǔ)法分析程序確認(rèn)某張頁(yè)面標(biāo)記使用的合法性。DTD定義頁(yè)
76、面的元素、元素的屬性以及元素和屬性之間的關(guān)系。對(duì)于簡(jiǎn)單應(yīng)用程序來(lái)說(shuō),開(kāi)發(fā)商不需要建立自己的DTD。DTD不是強(qiáng)制性的。可以使用預(yù)先定義的公共DTD,或者根本就不使用。即使某個(gè)文檔己經(jīng)有了DTD,只要文檔是組織良好的,語(yǔ)法分析程序也可以不對(duì)照DTD來(lái)檢驗(yàn)文檔的合法性。服務(wù)器可能己經(jīng)執(zhí)行了檢查,所以檢驗(yàn)的時(shí)間和帶寬將得以節(jié)省。DTD的功能很多:如定義內(nèi)容模式、限制范圍、屬性的數(shù)據(jù)類(lèi)型等。但它也有缺陷:它不支持namespace,只提供了非常
77、有限的幾種數(shù)據(jù)類(lèi)型。更重要的是它不能表達(dá)元素中字符數(shù)據(jù)的數(shù)據(jù)類(lèi)型。DTD有擴(kuò)展的機(jī)制,但這個(gè)機(jī)制太復(fù)雜而且很脆弱。DTD擴(kuò)展的機(jī)制的最大毛病在于不能清楚的表達(dá)相互之間的關(guān)系,兩個(gè)有著完全相同內(nèi)容的元素怎么做也不能互相聯(lián)系。同樣地,一組被定義為參數(shù)體(parameter entity)的屬性之間不能建立任何聯(lián)系。</p><p> (2)XML Schema:是伴隨著XML 1.0規(guī)范的制訂而推出的[8]。XML
78、 Schema是DTD之后第二代用來(lái)描述XML文件的標(biāo)準(zhǔn),是用來(lái)對(duì)XML進(jìn)行文檔類(lèi)型定義的語(yǔ)言,用來(lái)規(guī)定XML文檔的數(shù)據(jù)類(lèi)型及組織方式,同時(shí)還是豐富的元數(shù)據(jù)資源。所謂XML Schema,其實(shí)就是一種描述信息結(jié)構(gòu)的模型。它借用數(shù)據(jù)庫(kù)中一種描述相關(guān)表格內(nèi)容的機(jī)制,為XML文件樹(shù)立了一個(gè)模式。這個(gè)模式規(guī)范了文件和文本可能的組合形式。XML Schema擁有許多類(lèi)似DTD的準(zhǔn)則,但又要比DTD更強(qiáng)一些。XML Schema打破了許多限制,它能
79、更加清晰的表現(xiàn)信息之間的內(nèi)容。</p><p> (3)XML Schema主要有以下幾個(gè)特點(diǎn):</p><p> 一致性:與DTD不同,Schema使得對(duì)XML的定義不必再利用一種特定的形式化的語(yǔ)言,而是直接借助XML自身的特性,利用XML的基本語(yǔ)法規(guī)則來(lái)定義XML文檔的結(jié)構(gòu),使得XML達(dá)到了從內(nèi)到外的完美統(tǒng)一,也為XML的進(jìn)一步發(fā)展奠定了堅(jiān)實(shí)的基礎(chǔ)。</p><
80、p> 擴(kuò)展性:Schema對(duì)DTD進(jìn)行了擴(kuò)充,引入了數(shù)據(jù)類(lèi)型(包括布爾型、數(shù)字、日期時(shí)間、整數(shù)、十進(jìn)制數(shù)、實(shí)數(shù)、時(shí)間間隔、以及由這些簡(jiǎn)單的類(lèi)型生成復(fù)雜的類(lèi)型等),從而使其具有較強(qiáng)的可擴(kuò)展性。</p><p> 互換性:利用Schema能夠書(shū)寫(xiě)XML文檔以及驗(yàn)證文檔的合法性。另外,通過(guò)特定的映射機(jī)制,還可以將不同的Schema進(jìn)行轉(zhuǎn)換,以實(shí)現(xiàn)更高層次的數(shù)據(jù)交換。</p><p>
81、 規(guī)范性:同DTD一樣,Schema也提供了一套完整的機(jī)制以約束XML文檔中置標(biāo)的使用。相比之下,后者基于XML更具有規(guī)范性。Schema利用元素的內(nèi)容和屬性來(lái)定義XML文檔的整體結(jié)構(gòu),如哪些元素可以出現(xiàn)在文檔中,元素間的關(guān)系是什么,每個(gè)元素有哪些內(nèi)容和屬性,以及元素出現(xiàn)的順序和次數(shù)等,可一目了然。</p><p> XML解析器:簡(jiǎn)單來(lái)講,一個(gè)XML解析器就是一段可以讀入XML文檔并分析其結(jié)構(gòu)的代碼[9]。目
82、前,廣泛使用的解析器主要有:IBM公司的XML 4J,Microsoft公司的MS XML,Oracle公司的XML Parser for Java和SUT公司的ProjectX。針對(duì)XML標(biāo)準(zhǔn)的支持程序而言,其中當(dāng)屬SUN公司的解析器表現(xiàn)最為出色。有多種不同的方法劃分解析器種類(lèi),例如按是否支持完整性檢查分類(lèi)和按處理文檔的方式分類(lèi)。根據(jù)對(duì)文檔的不同處理方式,可分為基于SAX的解析器和基于DOM的解析器。前者由事件驅(qū)動(dòng),通過(guò)串行的方式來(lái)處
83、理文檔,即當(dāng)遇到一個(gè)開(kāi)始或者結(jié)束標(biāo)記的時(shí)候,它向應(yīng)用程序發(fā)送消息,由應(yīng)用程序決定如何進(jìn)行處理。后者則根據(jù)文檔內(nèi)容建立一個(gè)層次的數(shù)據(jù)結(jié)構(gòu),提供用戶(hù)一個(gè)操作文檔的接口。Java為解析及轉(zhuǎn)換XML文檔提供了一套標(biāo)準(zhǔn)的API。該API的設(shè)計(jì)獨(dú)立于任何特定的XML處理器實(shí)現(xiàn)。2002年夏天SUN發(fā)布了Java XML包,其中包括了Xerces2的參考版,將其作為它的默認(rèn)XML解析器,并且將Xalan作為它的默認(rèn)XSLT引擎。</p>
84、<p> (4)SAX(Simple API XML)是一個(gè)基于事件的XML文檔解析標(biāo)準(zhǔn)。與AWT中的事件驅(qū)動(dòng)機(jī)制相類(lèi)似,SAX通過(guò)事件驅(qū)動(dòng)來(lái)識(shí)別XML文檔的內(nèi)容,即當(dāng)它在XML文檔中發(fā)現(xiàn)特殊符號(hào)時(shí),它就會(huì)觸發(fā)相關(guān)的事件。由于SAX的這一特性,使應(yīng)用程序開(kāi)發(fā)人員可以在相應(yīng)的事件中寫(xiě)入特定的處理代碼。SAX以序列的形式處理文檔,不需要在內(nèi)存中建立整個(gè)文檔的樹(shù)型結(jié)構(gòu),因此與DOM相比,SAX對(duì)內(nèi)存的需求要少得多,可認(rèn)為是一個(gè)輕
85、量級(jí)的接口集合。</p><p> 圖2.9 SAX解析XML文檔的流程</p><p> (5)DOM(Document Object Model)是W3C發(fā)展的瀏覽XML文檔的一種標(biāo)準(zhǔn)API,它不僅提供了對(duì)存儲(chǔ)在內(nèi)存中的XML文檔的一個(gè)完整表示,也提供了隨機(jī)訪問(wèn)整個(gè)文檔的方法。因此,可將DOM看作一個(gè)標(biāo)準(zhǔn)的連接文檔和應(yīng)用程序或腳本語(yǔ)言的結(jié)構(gòu)體系,DOM提供給用戶(hù)一個(gè)接口以裝載、定位
86、、操作和序列化XML文檔。如圖所示,CSS是級(jí)聯(lián)樣式單,儲(chǔ)存并控制元素的顯示樣式,例如字體、顏色等;Script腳本控制元素如何動(dòng)作,例如利用條件控制語(yǔ)句對(duì)元素進(jìn)行不同的操作等;而DOM則作為腳本和對(duì)象的通信平臺(tái),并將結(jié)果提交給瀏覽器。</p><p> 圖2.10 DCOM解析XML文檔的流程</p><p> 通過(guò)DOM,用戶(hù)能夠把文檔看成是一個(gè)有結(jié)構(gòu)的信息樹(shù),而不僅僅是簡(jiǎn)單的文本
87、流。這樣應(yīng)用程序或腳本即使不知道XML的語(yǔ)義細(xì)節(jié)也能夠方便的操作結(jié)構(gòu)。DOM包含兩個(gè)關(guān)鍵的抽象:一是樹(shù)狀層次,二是表示文檔內(nèi)容和結(jié)構(gòu)的節(jié)點(diǎn)集合。樹(shù)狀層次包括了所有這些節(jié)點(diǎn),節(jié)點(diǎn)本身也可以包含其它的節(jié)點(diǎn),這就使得開(kāi)發(fā)人員能夠通過(guò)這個(gè)層次結(jié)構(gòu)找到并修改特定節(jié)點(diǎn)的信息。DOM把節(jié)點(diǎn)看成是一個(gè)通常的對(duì)象,這樣就有可能創(chuàng)建一個(gè)腳本來(lái)裝載一個(gè)文檔,然后遍歷所有的節(jié)點(diǎn),顯示感興趣的節(jié)點(diǎn)的信息。</p><p> DOM操作X
88、ML文檔時(shí),首先讀取該文檔,然后將其分割成單個(gè)的對(duì)象(例如元素、屬性、注釋等),再在內(nèi)存中創(chuàng)建一個(gè)關(guān)于該文檔的樹(shù)結(jié)構(gòu)[10]。DOM解析方式使得開(kāi)發(fā)人員能夠反復(fù)使用該文檔信息,但當(dāng)文檔很大時(shí),所需消耗的內(nèi)存空間就非??捎^。</p><p> 無(wú)論是DOM還是SAX,都各自有其優(yōu)缺點(diǎn),它們將長(zhǎng)期并存下去,在不同的應(yīng)用中發(fā)揮不同的作用。</p><p> (6)Xpath:被Xpointe
89、r,XSL和XQuery當(dāng)作基礎(chǔ)來(lái)使用。XPath提供通用標(biāo)點(diǎn)表示,它們可以定位一個(gè)XML文檔結(jié)構(gòu)內(nèi)的任何節(jié)點(diǎn)或節(jié)點(diǎn)集。</p><p> XSL和CSS:XML的一個(gè)最重要的特性是把內(nèi)容和顯示格式分開(kāi)。這樣帶來(lái)了很大的好處,可以讓不同的用戶(hù)按照各自希望的格式顯示同一XML文檔的數(shù)據(jù)內(nèi)容。這也就意味著XML文檔本身并沒(méi)有關(guān)于格式方而的信息。為XML文檔提供格式信息的是樣式表,適用于XML文檔的樣式表語(yǔ)言有XSL
90、和CSS語(yǔ)言。</p><p> CSS語(yǔ)言既可以用于HTML文檔、也可以用于XML文檔;而XSL是專(zhuān)為XML設(shè)計(jì)的樣式表語(yǔ)言,并采用XML語(yǔ)法。XSL的優(yōu)勢(shì)在于它可以用于轉(zhuǎn)換,當(dāng)然XSL也可以把XML文檔轉(zhuǎn)換為HTML格式。而且同一個(gè)樣式表可以用于多個(gè)具有相似源樹(shù)結(jié)構(gòu)的文檔。顯示的媒介不僅限于Web瀏覽器,還可以是印在紙上的書(shū)和報(bào)告等。</p><p> 3)XML與異構(gòu)數(shù)據(jù)庫(kù)集成&
91、lt;/p><p> 由于XML所具有的特性和優(yōu)越性,使得它非常適合應(yīng)用于異構(gòu)數(shù)據(jù)庫(kù)集成這一領(lǐng)域??刹捎肵ML作為數(shù)據(jù)集成的互操作語(yǔ)言,利用DTD或Schema描述標(biāo)準(zhǔn)格式。DOM和SAX提供了開(kāi)放的編程接口[11]。這些特征表明了XML技術(shù)可以作為異構(gòu)數(shù)據(jù)庫(kù)集成的可行方案,具體表現(xiàn)在以下幾個(gè)方面:</p><p> (1)由于XML的自定義性及可擴(kuò)展性,它足以表達(dá)各種類(lèi)型的數(shù)據(jù),作為獨(dú)立
92、于平臺(tái)和設(shè)備的結(jié)構(gòu)化數(shù)據(jù)表達(dá)方式,能夠有效地實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫(kù)的集成。</p><p> (2)XML不僅與平臺(tái)無(wú)關(guān),而且與廠商無(wú)關(guān)。所以將XML作為數(shù)據(jù)通道可以解決異構(gòu)數(shù)據(jù)庫(kù)之間的互操作問(wèn)題。</p><p> (3)XML為各異構(gòu)數(shù)據(jù)庫(kù)提供了一層理想的緩沖,將XML作為數(shù)據(jù)傳輸?shù)闹薪楦袷剑悩?gòu)數(shù)據(jù)庫(kù)之間可以保持透明性,不需要知道對(duì)方的內(nèi)部存儲(chǔ)格式。某個(gè)局部數(shù)據(jù)庫(kù)內(nèi)部數(shù)據(jù)的變更,也不會(huì)影
93、響其它數(shù)據(jù)庫(kù)。</p><p> (4)XML實(shí)現(xiàn)了異構(gòu)數(shù)據(jù)庫(kù)的“即插即用”。因?yàn)樾聰?shù)據(jù)庫(kù)的加入,只需要修改相應(yīng)的數(shù)據(jù)模式文件。</p><p><b> 3 本文用到的技術(shù)</b></p><p><b> 3.1 REST</b></p><p> REST(Representation
94、alStateTransfer),即表述性狀態(tài)轉(zhuǎn)移,其根本是像萬(wàn)維網(wǎng)(www)一樣是為分布式超媒體系統(tǒng)設(shè)計(jì)的一種架構(gòu)風(fēng)格,它是由RoyThomasFielding博士2000年提出的一個(gè)術(shù)語(yǔ),F(xiàn)ielding同時(shí)也是制定HTTP協(xié)議規(guī)則的作者之一。</p><p> REST架構(gòu)風(fēng)格是基于HTTP1.0協(xié)議和1.2協(xié)議發(fā)展起來(lái)的,它是Fielding博士對(duì)當(dāng)前Web體系結(jié)構(gòu)潛在設(shè)計(jì)原則的一種描述和對(duì)Web最成功
95、要素的總結(jié)。REST架構(gòu)風(fēng)格是全新的針對(duì)Web應(yīng)用的開(kāi)發(fā)風(fēng)格,是當(dāng)今世界最成功的互聯(lián)網(wǎng)超媒體分布式系統(tǒng)架構(gòu)之一,它使得人們真正深入理解和利用了HTTP協(xié)議。</p><p> REST架構(gòu)風(fēng)格由客戶(hù)端和服務(wù)器端組成,客戶(hù)端發(fā)出初始請(qǐng)求給服務(wù)器端,服務(wù)器端處理請(qǐng)求,并返回合適的響應(yīng)。請(qǐng)求與響應(yīng)圍繞著資源表示的轉(zhuǎn)移。REST規(guī)定了一系列的約束,強(qiáng)調(diào)了系統(tǒng)各組件間的可伸縮性、接口的統(tǒng)一性,從而減少交互數(shù)據(jù),使服務(wù)器端
96、和客戶(hù)端松藕合[12]。</p><p> 下圖描述了REST架構(gòu)中的約束:在請(qǐng)求方面,規(guī)定了客戶(hù)端發(fā)起請(qǐng)求的協(xié)議、使用的方法以及在請(qǐng)求中包含自描述的信息,即包含服務(wù)器處理該請(qǐng)求所需要的全部信息;在處理方面,規(guī)定了服務(wù)器針對(duì)不同的請(qǐng)求可以有多重表述以及包含應(yīng)用狀態(tài)的超鏈接,從而使客戶(hù)端不依賴(lài)任何領(lǐng)域?qū)I(yè)知識(shí),實(shí)現(xiàn)狀態(tài)的跳轉(zhuǎn)等等。</p><p> 圖3.1 REST架構(gòu)圖</p&
97、gt;<p> 所謂架構(gòu)風(fēng)格就是一組互相協(xié)作的約束,這些約束限制了架構(gòu)中元素的角色和功能,以及任何允許存在的元素之間的關(guān)系。REST架構(gòu)風(fēng)格為了反映現(xiàn)在web發(fā)展的方向,定義了如下約束[13]。</p><p> (1)客戶(hù) -- 服務(wù)器</p><p> 客戶(hù)--服務(wù)器約束背后的原則是分離關(guān)注點(diǎn),例如,客戶(hù)端不關(guān)心數(shù)據(jù)存儲(chǔ),交由服務(wù)器內(nèi)部處理,就可以改善用戶(hù)接口跨多個(gè)
98、平臺(tái)的可移植性;同時(shí)服務(wù)器不關(guān)心用戶(hù)接口和用戶(hù)狀態(tài),就可以簡(jiǎn)化服務(wù)器組件,改善了系統(tǒng)的可伸縮性。只要接口不發(fā)生改變,服務(wù)器和客戶(hù)端還可以自行升級(jí)和替換。</p><p><b> (2)無(wú)狀態(tài)</b></p><p> 通信必須在本質(zhì)上是無(wú)狀態(tài)的,因此從客戶(hù)到服務(wù)器的每個(gè)請(qǐng)求都必須包含理解該請(qǐng)求所必需的全部信息,不能利用任何存儲(chǔ)在服務(wù)器的上下文、會(huì)話(huà)狀態(tài),因此要全
99、部保存在客戶(hù)端。服務(wù)器是可以有狀態(tài)的,只是服務(wù)器端狀態(tài)必須像資源一樣通過(guò)URL來(lái)定位。這個(gè)約束不僅極大的簡(jiǎn)化了分布式、集群的開(kāi)發(fā)過(guò)程,還改善了監(jiān)視系統(tǒng)的可見(jiàn)性,提高了從局部故障中恢復(fù)、迅速釋放資源的可靠性和可伸縮性。</p><p><b> (3)可緩存</b></p><p> 為了改善網(wǎng)絡(luò)效率,客戶(hù)端能夠緩存應(yīng)答數(shù)據(jù)可緩存約束要求一個(gè)請(qǐng)求的響應(yīng)必須隱式或者顯
100、式被標(biāo)記成可緩存的或者不可緩存的,以防止在后續(xù)的請(qǐng)求中濫用陳舊或者不合適的數(shù)據(jù)。設(shè)計(jì)良好的緩存能部分或者完全消除客戶(hù)--服務(wù)器的交互,明顯提高系統(tǒng)的可擴(kuò)展性和效率。</p><p><b> (4)統(tǒng)一接口</b></p><p> 使REST架構(gòu)風(fēng)格區(qū)別于其他Web的架構(gòu)風(fēng)格的核心特征是,它強(qiáng)調(diào)組件之間要有一個(gè)統(tǒng)一的接口。例如:使用HTTP協(xié)議把對(duì)一個(gè)URL的操
101、作限制在了4個(gè)方法之內(nèi):GET、POST、PUT和DELETE。統(tǒng)一的接口極大的簡(jiǎn)化并解釋了客戶(hù)--服務(wù)器架構(gòu),使它們能獨(dú)自處理事務(wù),從而改善了系統(tǒng)的交互性與可重用性。</p><p> 3.2 WCF Data Service</p><p> WebService:嚴(yán)格來(lái)說(shuō)是行業(yè)標(biāo)準(zhǔn),不是技術(shù),使用XML擴(kuò)展標(biāo)記語(yǔ)言來(lái)表示數(shù)據(jù)(這個(gè)是夸語(yǔ)言和平臺(tái)的關(guān)鍵)。微軟的Web服務(wù)實(shí)現(xiàn)稱(chēng)為A
102、SP.NET Web Service.它使用Soap簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議來(lái)實(shí)現(xiàn)分布式環(huán)境里應(yīng)用程序之間的數(shù)據(jù)交互。WSDL來(lái)實(shí)現(xiàn)服務(wù)接口相關(guān)的描述。此外Web services 可以注冊(cè)到UDDI中心.供其客戶(hù)查找使用。后來(lái)微軟做了ASP.NET Web Service的安全,性能,數(shù)據(jù)加密、解密,托管宿主等多方面的擴(kuò)展,稱(chēng)為WSE系列,這個(gè)是過(guò)度產(chǎn)品,最高到WSE3.0.后來(lái)就是WCF時(shí)代。</p><p> W
103、CF:其實(shí)一定程度上就是ASP.NET Web Service,因?yàn)樗С諻eb Service的行業(yè)標(biāo)準(zhǔn)和核心協(xié)議[14],因此ASP.NET Web Service和WSE能做的事情,它幾乎都能勝任,跨平臺(tái)和語(yǔ)言更不是問(wèn)題(數(shù)據(jù)也支持XML格式化,而且提供了自己的格式化器)。</p><p> 但是WCF作為微軟主推一個(gè)通訊組件或者平臺(tái),它的目標(biāo)不僅僅是在支持和集成Web Service,因?yàn)樗€兼容和具備
104、了微軟早期很多技術(shù)的特性。根據(jù)微軟官方的解釋?zhuān)琖CF(之前的版本名為“Indigo”)是使用托管代碼建立和運(yùn)行面向服務(wù)(Service Oriented)應(yīng)用程序的統(tǒng)一框架。它使得開(kāi)發(fā)者能夠建立一個(gè)跨平臺(tái)的安全、可信賴(lài)、事務(wù)性的解決方案,且能與已有系統(tǒng)兼容協(xié)作。WCF是微軟分布式應(yīng)用程序開(kāi)發(fā)的集大成者,它整合了.Net平臺(tái)下所有的和分布式系統(tǒng)有關(guān)的技術(shù),如Enterprise Sevices(COM+).Net Remoting、Web
105、 Service(ASMX)、WSE3.0和MSMQ消息隊(duì)列。以通信(Communiation)范圍而論,它可以跨進(jìn)程、跨機(jī)器、跨子網(wǎng)、企業(yè)網(wǎng)乃至于Internet;以宿主程序而論,可以以ASP.NET,EXE,WPF,Windows Forms,NT Service,COM+作為宿主(Host)。WCF可以支持的協(xié)議包括TCP,HTTP,跨進(jìn)程以及自定義,安全模式則包括SAML, Kerberos,X509,用戶(hù)/密碼,自定義等多種標(biāo)
106、準(zhǔn)與模</p><p> WCF數(shù)據(jù)服務(wù)是.NET Framework的一個(gè)組件??梢允褂么私M件創(chuàng)建一些服務(wù),利用開(kāi)放式數(shù)據(jù)協(xié)議(OData)來(lái)借助具象狀態(tài)傳輸(REST)語(yǔ)義通過(guò)Web或 Intranet公開(kāi)和使用數(shù)據(jù)。OData將數(shù)據(jù)公開(kāi)為可通過(guò) URI 尋址的資源。可使用GET、PUT、POST 和 DELETE 這些標(biāo)準(zhǔn) HTTP 謂詞來(lái)訪問(wèn)和更改數(shù)據(jù)。OData使用Entity Data Model的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于WEB服務(wù)的分布式異構(gòu)數(shù)據(jù)庫(kù)集成研究與實(shí)現(xiàn).pdf
- 基于Web Service技術(shù)的分布式異構(gòu)數(shù)據(jù)庫(kù)的集成.pdf
- 基于門(mén)戶(hù)和Web Services技術(shù)的分布式異構(gòu)數(shù)據(jù)庫(kù)的集成.pdf
- 基于.netremoting的分布式數(shù)據(jù)庫(kù)異構(gòu)集成的研究
- 基于Web服務(wù)的分布式異構(gòu)數(shù)據(jù)庫(kù)增量同步更新應(yīng)用研究.pdf
- 基于.net的webservice技術(shù)的分布式異構(gòu)數(shù)據(jù)庫(kù)的集成
- 基于JMS與Web Service的分布式異構(gòu)數(shù)據(jù)庫(kù)同步的研究.pdf
- 基于Web服務(wù)封裝的異構(gòu)數(shù)據(jù)庫(kù)集成與同步設(shè)計(jì).pdf
- 分布式異構(gòu)數(shù)據(jù)庫(kù)集成統(tǒng)一查詢(xún)系統(tǒng).pdf
- 基于XML的分布式異構(gòu)數(shù)據(jù)庫(kù)同步研究與設(shè)計(jì).pdf
- 基于Web服務(wù)的分布式數(shù)據(jù)庫(kù)共享模型的研究.pdf
- 基于分布式數(shù)據(jù)庫(kù)的信息集成.pdf
- 基于WEB的分布式數(shù)據(jù)庫(kù)查詢(xún).pdf
- 分布式異構(gòu)數(shù)據(jù)庫(kù)集成與透明訪問(wèn)的研究與實(shí)現(xiàn).pdf
- 基于CSCW的分布式異構(gòu)數(shù)據(jù)庫(kù)的研究與實(shí)現(xiàn).pdf
- 基于Web Service異構(gòu)數(shù)據(jù)庫(kù)信息集成的研究.pdf
- 基于XML的分布式異構(gòu)數(shù)據(jù)庫(kù)同步系統(tǒng)研究.pdf
- 異構(gòu)分布式數(shù)據(jù)庫(kù)數(shù)據(jù)同步系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于分布式數(shù)據(jù)庫(kù)WEB應(yīng)用系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于移動(dòng)Agent的分布式異構(gòu)數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)研究.pdf
評(píng)論
0/150
提交評(píng)論