基于xml數(shù)據(jù)交換畢業(yè)論文_第1頁
已閱讀1頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、<p>  畢 業(yè) 論 文(設計)</p><p>  題 目: 基于XML數(shù)據(jù)交換的中間件交換初步研究 </p><p>  學 號: </p><p>  姓 名: &

2、lt;/p><p>  年 級: 08級 </p><p>  學 院: 信息學院 </p><p>  系 別: 計算機系 </p><p>  專 業(yè):

3、 計算機科學與技術(shù) </p><p>  指導教師: </p><p>  完成日期: 2012 年 05 月 01 日 </p><p><b>  摘 要</b></p><p>

4、  本論文研究數(shù)據(jù)交換問題,其目的是為了實現(xiàn)個數(shù)據(jù)之間互通互聯(lián),信息共享。在數(shù)據(jù)交換中關鍵的兩點是各數(shù)據(jù)源之間數(shù)據(jù)異構(gòu)的問題及交換過程動態(tài)配置問題。針對上述兩個問題,本文使用XML及插件技術(shù)提供了一種解決的思路。</p><p>  本文首先針對數(shù)據(jù)的異構(gòu)性進行歸納總結(jié),然后使用XML分別表示數(shù)據(jù)的結(jié)構(gòu)信息和值信息。通過對數(shù)據(jù)結(jié)構(gòu)文件和用戶定義的規(guī)則文件進行分析生成映射文件,從而解決數(shù)據(jù)沖突。在此基礎上,設計實現(xiàn)

5、了一個基于XML的數(shù)據(jù)交換中間件(XEDM)系統(tǒng)。系統(tǒng)將數(shù)據(jù)交換的處理方法和流程相分離,用戶可以開發(fā)不同的流程處理插件,以滿足交換過程的動態(tài)配置。這些極大地增強了系統(tǒng)的適應性、擴展性。</p><p>  本文最后對(XEDM)系統(tǒng)的設計和實現(xiàn)做了總結(jié)。</p><p>  關鍵詞:數(shù)據(jù)交換; 數(shù)據(jù)沖突; XML; 中間件</p><p><b>  A

6、BSTACT</b></p><p>  This paper reserches on data exchange.Its purpose is to realize the interconnection and information sharing among every “detached islang of information”.In data enchange process,two

7、 key points are data isomerism and dynamic configuration.The adoption of XML.and piugin technology has offered a kind of new of settlement for data exchange.</p><p>  This paper has carried on the induction

8、and the summary according to the data isomerism.Then it expresses the structure information and value information separately with two XML files.It realize data exchange through the analysis of data structure files and ru

9、le files user defind. After that the paper has designed and implemented a XML-based Data Exchange Middleware(XDEM). XDEM separates treatment method from data processing procedure.User can customize different for differen

10、t occasione so as to</p><p>  In the concluding part,the paper summarize the design and realize of XDEM and suggested the future improvement on it.</p><p>  Key words: data exchange,Data Confilc

11、t,XML,Middleware</p><p><b>  目 錄</b></p><p>  摘要.................................................................................. 1</p><p>  ABSTRACT...................

12、....................................................................……1</p><p>  第一章緒論.............................................................. .......................... 2</p><p>  1.1研究背景

13、.................................................................................................................. 2</p><p>  1.1.1模式集成法.................................................................. ....

14、................. 2</p><p>  1.1.2數(shù)據(jù)復制方法................................................. .....................3</p><p>  1.2研究現(xiàn)狀.................................................................

15、................................. 3</p><p>  1.3研究目標與意義......................................................... .....................5</p><p>  1.4論文工作內(nèi)容........................................

16、......................................... 5</p><p>  第二章相關技術(shù)介紹........... ...............................................................5</p><p>  2.1中間件技術(shù)......................................

17、............................................................................ 5</p><p>  2.1.1中間件的定義.............................................................. .....................6</p><p>  

18、2.1.2中間件分類................................ ................. ................. .....................6</p><p>  2.1.3中間件的作用....................................................................... .............

19、........7</p><p>  2.2XML技術(shù).................................................................................................................. 7</p><p>  2:2.1文檔結(jié)構(gòu)................................

20、............................................... .....................7</p><p>  2.2.2技術(shù)特點................................................................................. .....................7</p>&l

21、t;p>  2.2.3數(shù)據(jù)模型................................................................................ .....................8</p><p>  2.3本章小結(jié).....................................................................

22、.............................................. 8</p><p>  第三章數(shù)據(jù)交換方案的設計...................................................... 8</p><p>  3.1異構(gòu)數(shù)據(jù)...................................................

23、.................................................................8</p><p>  3.1.1異構(gòu)數(shù)據(jù)分析..................................................................................8</p><p>  3.1.2數(shù)據(jù)沖突分類...

24、..................................................................... .....................9</p><p>  3.2數(shù)據(jù)交換方案設計................................................. ..................... .....................1

25、1</p><p>  3.2.1數(shù)據(jù)交換方案總覽.................................................. .....................12</p><p>  3.2.2公共數(shù)據(jù)表示...........................................................................

26、................... 12</p><p>  3.2.3數(shù)據(jù)分析............................................................................................... 12</p><p>  3..24數(shù)據(jù)轉(zhuǎn)換....................................

27、.................................................................... 16</p><p>  3.3數(shù)據(jù)交換實例........................................................................................... 17</p><p>  

28、3.4本章小結(jié).................................................................................................................... 19</p><p>  第四章數(shù)據(jù)交換中間件的設計實現(xiàn)........................................... 19</p>

29、<p>  4.1系統(tǒng)總體結(jié)構(gòu)設計.......................................................... .....................19</p><p>  4.2配置管理....................................................................................

30、...................... 20</p><p>  4.2.1配置信息管理結(jié)構(gòu)............................................................................................ 20</p><p>  4.2.2配置信息管理器.............................

31、...................................................... 21</p><p>  4.3任務管理............................................................................................................. 21</p><p>

32、  4.4主控制器..................................................................................................... 22</p><p>  4.5數(shù)據(jù)適配器............................................................................

33、..................... 22</p><p>  4.6本章小結(jié)............................... ..................... ..................... .....................22</p><p>  第五章總結(jié)與展望....................................

34、.................................. 22</p><p>  5.1論文總結(jié).................................................................................................................... 23</p><p>  參考文獻.......

35、........................................................ 23</p><p>  致謝...................................................... 25</p><p><b>  緒 論</b></p><p>  本章是全文的緒論部分

36、,主要介紹了論文相關的研究背景,研究現(xiàn)狀,研究目的、意義。</p><p><b>  1.1研究背景</b></p><p>  人類已經(jīng)進入21實際了,中國也已經(jīng)加入WTO,都將面臨全球經(jīng)濟一體化的市場環(huán)境,競爭日益激烈。誰能迅速的掌握市場信息,并隨市場變化而動,誰就能在競爭中立于不敗之地。為此,很多企業(yè)建立更多的信息管理系統(tǒng)來提高企業(yè)的效率。然而不幸的是大部分企

37、業(yè)或政府部門在其信息管理系統(tǒng)建設初期并未進行統(tǒng)一的規(guī)則,采用了不同的硬件平臺,不同的操作系統(tǒng)或不同的數(shù)據(jù)庫技術(shù)構(gòu)建起來的管理系統(tǒng)就像是一個個“信息孤島”?!靶畔⒐聧u”的存在造成了整個企業(yè)信息平臺存在大量的數(shù)據(jù)冗余、垃圾數(shù)據(jù),難以保證數(shù)據(jù)的一致性,降低了信息的使用效率和利用率。針對這一問題,人們已經(jīng)開始進行數(shù)據(jù)集成方面的研究,也形成了一些成熟的框架和模型,其中最主要的是模式集成方法和數(shù)據(jù)復制方法。</p><p>

38、  1.1.1模式集成方法</p><p>  模式集成是人們最早采用數(shù)據(jù)集成方法,其基本思想是在構(gòu)建集成系統(tǒng)時將個數(shù)據(jù)源的視圖集成系統(tǒng)時將各自的數(shù)據(jù)源的數(shù)據(jù)視圖即成為全局模式,使用戶能夠按全局模式透明地訪問各數(shù)據(jù)源的數(shù)據(jù)。全局模式描述了數(shù)據(jù)源共享數(shù)據(jù)的結(jié)構(gòu)、語義及操作等,用戶直接在全局模式的基礎上提交請求。模式集成的方法的特點是直接為用戶提供透明的數(shù)據(jù)訪問方法。</p><p>  模式

39、集成主要解決的兩個基本問題是:構(gòu)建全局模式與數(shù)據(jù)源數(shù)據(jù)視圖間的映射關系;中間件集成方法是現(xiàn)有的一種典型的模式集成方法。</p><p><b>  中間件集成方法</b></p><p>  中間件集成方法通過統(tǒng)一的全局數(shù)據(jù)模式來訪問的異構(gòu)的數(shù)據(jù)庫、遺留系統(tǒng)、Web資源等,如圖1.1所示。</p><p>  中間件位于異構(gòu)數(shù)據(jù)源系統(tǒng)和應用系統(tǒng)

40、之間,向下協(xié)調(diào)各數(shù)據(jù)源系統(tǒng),向上為訪問集成數(shù)據(jù)的應用提供統(tǒng)一的數(shù)據(jù)模式和數(shù)據(jù)訪問的通用接口。個數(shù)據(jù)源的應用仍然完成它們各自的任務,中間件系統(tǒng)則主要集中為異構(gòu)數(shù)據(jù)提供一個高層次檢索服務。</p><p>  中間件注重于全局的查詢的處理和優(yōu)化。</p><p>  1.1.2 數(shù)據(jù)復制方法</p><p>  數(shù)據(jù)復制的方法將各個數(shù)據(jù)源的數(shù)據(jù)復制到與其相關的其它數(shù)據(jù)源

41、上,并維護數(shù)據(jù)源整體上數(shù)據(jù)的一致性,提高信息共享利用效率。數(shù)據(jù)的復制可以使整個數(shù)據(jù)源的復制,也可以是僅對變化的傳播和復制。數(shù)據(jù)復制的方法可以減少用戶使用的數(shù)據(jù)集成系統(tǒng)對異構(gòu)數(shù)據(jù)源的數(shù)據(jù)訪問量,從而提高數(shù)據(jù)訪問的性能。</p><p>  目前比較常見得數(shù)據(jù)倉庫使用的正是數(shù)據(jù)復制方法。數(shù)據(jù)倉庫是在企業(yè)管理和決策中面向主題的、集成的數(shù)據(jù)方法。</p><p><b>  1.2研究現(xiàn)

42、狀</b></p><p>  數(shù)據(jù)庫的異構(gòu)問題自其產(chǎn)生之日起就受到個數(shù)據(jù)庫廠家及許多數(shù)據(jù)庫專家的關注。經(jīng)過長期的研究、探索和實踐,人們已取得不少的成果,提出了許多解決了許多異構(gòu)數(shù)據(jù)的交換和方法,總的來說,可以分一下幾種。</p><p>  使用數(shù)據(jù)庫自帶工具進行轉(zhuǎn)換</p><p>  一般情況下,數(shù)據(jù)庫管理系統(tǒng)都提供將外部條件中的數(shù)據(jù)轉(zhuǎn)移到本身數(shù)據(jù)

43、庫表中的數(shù)據(jù)裝入工具。比如oracle提供的將外部文本文件中的數(shù)據(jù)轉(zhuǎn)移到oracle數(shù)據(jù)庫表中的數(shù)據(jù)裝入工具sql loader,microsoft公司開發(fā)的sql server中的數(shù)據(jù)轉(zhuǎn)換工具DTS和powpersoft公司的power Builder中提供的數(shù)據(jù)管道。</p><p>  這些數(shù)據(jù)轉(zhuǎn)移工具可以以多種靈活的方式進行數(shù)據(jù)轉(zhuǎn)換,而且由于它們是數(shù)據(jù)庫管理系統(tǒng)自身所附帶的工具,執(zhí)行速度很快,不需要OBD

44、C的支持。</p><p>  但是使用這些數(shù)據(jù)轉(zhuǎn)換工具的缺點是它們不是獨立的軟件產(chǎn)品。</p><p> ?。玻├弥虚g件數(shù)據(jù)庫的轉(zhuǎn)換</p><p>  在兩個異構(gòu)數(shù)據(jù)庫之間進行數(shù)據(jù)交換時還可以使用“中間數(shù)據(jù)庫”的方法,即在實現(xiàn)兩個具體數(shù)據(jù)庫之間的轉(zhuǎn)換時,依據(jù)關系定義、字段定義,對要轉(zhuǎn)出的數(shù)據(jù)庫生成腳本,將數(shù)據(jù)源從源數(shù)據(jù)庫中讀出通過中間數(shù)據(jù)庫寫入目的數(shù)據(jù)庫中。&

45、lt;/p><p>  這利用中間數(shù)據(jù)庫的轉(zhuǎn)換辦法,所需轉(zhuǎn)換模塊少,且擴展性強,但缺點是在實現(xiàn)的過程中比較復雜,轉(zhuǎn)換質(zhì)量不高,轉(zhuǎn)換過程長。</p><p>  3)設置傳送變量轉(zhuǎn)換</p><p>  借助數(shù)據(jù)庫應用程序開發(fā)工具與數(shù)據(jù)庫連接的強大功能,通過設置源數(shù)據(jù)庫與目的數(shù)據(jù)庫兩個不同的傳送變量,同時連接兩個數(shù)據(jù)庫,實現(xiàn)異構(gòu)數(shù)據(jù)庫之間的直接轉(zhuǎn)換。</p>

46、<p>  4 ) 通過開發(fā)數(shù)據(jù)庫組件的轉(zhuǎn)換</p><p>  利用JAVA等數(shù)據(jù)庫應用程序開發(fā)技術(shù),通過源數(shù)據(jù)庫與目的數(shù)據(jù)庫組件來存取數(shù)據(jù)信息,實現(xiàn)異構(gòu)數(shù)據(jù)庫之間的直接轉(zhuǎn)換。通過組件存取數(shù)據(jù)。</p><p>  1.3研究目標與意義</p><p>  目前,各數(shù)據(jù)庫廠商雖然提供了很多工具來提取和轉(zhuǎn)換數(shù)據(jù),但是這些工具教依賴與具體的數(shù)據(jù)庫廠商提供的

47、產(chǎn)品,通用性不強。而其它較成熟的通用異構(gòu)數(shù)據(jù)轉(zhuǎn)換產(chǎn)品非常少。</p><p>  針對以上情況,本文設計了一個具有可擴展性、可制定性及與平臺無關性的數(shù)據(jù)庫交換中間件系統(tǒng),能很好的消除數(shù)據(jù)在結(jié)構(gòu)和語義上的差異。</p><p>  數(shù)據(jù)交換問題的解決,能為數(shù)據(jù)集成提供有力的支持,實現(xiàn)企業(yè)各信息系統(tǒng)的信息系統(tǒng)的信息共享;能充分利用現(xiàn)有資源,避免重復開發(fā),保護原有系統(tǒng)的投資;還能避免“信息孤島”

48、造成的重復錄入、資源浪費、數(shù)據(jù)不一致性問題,為開發(fā)新的應用系統(tǒng)提供基礎業(yè)務數(shù)據(jù)。</p><p><b>  1.4論文工作內(nèi)容</b></p><p>  本論文研究的數(shù)據(jù)交換實質(zhì)上是一個將源數(shù)據(jù)源中的數(shù)據(jù)提取出來,經(jīng)過處理和轉(zhuǎn)換,得到符合目標數(shù)據(jù)源結(jié)構(gòu)式的數(shù)據(jù)并加載到目標數(shù)據(jù)源中的過程。在順利實現(xiàn)數(shù)據(jù)交換,一個重要的問題就是如何消除個數(shù)據(jù)源的異構(gòu)性,即解決數(shù)據(jù)源在

49、結(jié)構(gòu)和語義上的不同。由于目前市場上關系數(shù)據(jù)源時的情況。此外,隨著業(yè)務需求的發(fā)展變化,可能隨時都會有新的數(shù)據(jù)源加入到數(shù)據(jù)交換的隊伍中來,或者是需要對已有的數(shù)據(jù)進行交換。修改。如何隨需而變,靈活配置就是數(shù)據(jù)交換中須解決的另一個問題。</p><p>  本文通過研究使用中間來實現(xiàn)個異構(gòu)數(shù)據(jù)間的數(shù)據(jù)轉(zhuǎn)換。</p><p><b>  相關技術(shù)介紹</b></p>

50、<p><b>  2.1 中間件技術(shù)</b></p><p>  計算機技術(shù)的飛速發(fā)展,各種各樣的應用軟件需要在各種平臺之間進行移植,或者一個平臺需要支持多種應用軟件和管理多種應用系統(tǒng),軟、硬件平臺和應用系統(tǒng)之間需要可靠和高效的數(shù)據(jù)傳遞或轉(zhuǎn)換,使系統(tǒng)的協(xié)調(diào)性得以保證。這些,都需要一種構(gòu)筑于軟、硬件平臺之上,同時對更上層得應用軟件提供支持的軟件系統(tǒng),中間件正式在這個環(huán)境下應孕而

51、生的。</p><p>  2.1.1 中間件的定義</p><p>  中間件是基礎軟件的一大類,屬于可復用軟件的范疇。它介于系統(tǒng)軟件和用戶的應用軟件之間,使用系統(tǒng)軟件所提供的基礎服務,銜接網(wǎng)絡上應用系統(tǒng)的各個部分或不同的應用,能夠達到資源共享、功能共享的目的。也就是說,中間件在操作系統(tǒng)、網(wǎng)絡和數(shù)據(jù)庫之上,應用軟件的下層,其作用是在為處于自己上層的應用的應用軟件提供運行與開發(fā)的環(huán)境,幫助

52、用戶靈活、高效地開發(fā)和集成復雜的應用軟件。</p><p>  由于中間件技術(shù)正處于發(fā)展過程之中,因此目前尚不能對它進行精確的定義。但是業(yè)界普遍能接受的定義是:中間件是一種獨立的系統(tǒng)軟件或服務程序。</p><p>  由中間件的定義可以看出,中間件為一類軟件而非一種軟件。,它不僅僅實現(xiàn)互連,還要實現(xiàn)應用之間的互操作,是基于分布式的處理軟件。</p><p>  2

53、.1.2 中間件分類</p><p>  隨著計算機軟件技術(shù)發(fā)展,中間件技術(shù)也已經(jīng)日近成熟,并且出現(xiàn)了不同層次、不同類型的中間件技術(shù)可以分為三大類:</p><p>  數(shù)據(jù)類:用于數(shù)據(jù)的存取、利用和增值,此類中間件用于構(gòu)建以數(shù)據(jù)為中心的應用。</p><p>  處理類:把分布在網(wǎng)絡節(jié)點上的各個應用或處理連接在一起,形成一個統(tǒng)一的、協(xié)同工作的分布式應用。</

54、p><p>  分布式構(gòu)建類:支持構(gòu)件式應用,維埃里應用的發(fā)展方向,目前競爭激烈。</p><p>  而按照IDC的分類方法,中間件則可細分為六類,分別是數(shù)據(jù)訪問中間件、基于遠程過程調(diào)用的中間件、消息中間件、交易中間價、對象中間件和終端仿真/屏幕轉(zhuǎn)換中間件等。</p><p>  需要注意的是,中間件的分類是隨著技術(shù)的進步而不斷變化和拓展的。上面的分類是比較傳統(tǒng)經(jīng)典的

55、,隨著電子商務和企業(yè)信息化建設的深入,中間件的類型會更加豐富起來。</p><p>  2.1.3 中間件的作用</p><p>  由于標準接口對于可移植性喝標準協(xié)議對于互操作性的重要性,中間件已成為許多標準化工作的主要部分。對于應用軟件開發(fā),中間件遠比操作系統(tǒng)和網(wǎng)絡服務更為重要,中間件提供的程序接口定義了一個相對穩(wěn)定的高層應用環(huán)境,不管底層的計算機硬件和系統(tǒng)軟件怎樣更新?lián)Q代,只要將中間

56、件升級更新,并保持中間件對外的借口定義不變,應用軟件幾乎不需要任何修改,從而保護了企業(yè)在應用軟件開發(fā)和維護中的重大投資。</p><p>  世界著名的咨詢機構(gòu)The Standish Group在一份研究報告中歸納了中間件的十大優(yōu)越性:節(jié)約應用開發(fā)成本、減少系統(tǒng)初期的建設成本、縮短應用開發(fā)周期、降低項目開發(fā)風險、保護已有的投資、簡化應用集成、減少系統(tǒng)維護費用、提高應用開發(fā)質(zhì)量、提高應用開發(fā)質(zhì)量、保證技術(shù)革新的連

57、續(xù)性、增強應用的生命力。</p><p>  具體來說就是,中間件能屏蔽了底層操作系統(tǒng)的復雜性</p><p><b>  。</b></p><p><b> ?。兀停碳夹g(shù)</b></p><p> ?。兀停?,可擴展標記語言(Eetensible Markup Language),起源于SGML(

58、Stangard Generalized Markup Language)。GGML是ISO(國際標準化)在80年代推出的一個用來創(chuàng)建標記語言的語言標準。SGML為出但也提供了一種將數(shù)據(jù)內(nèi)容與顯示分離開來的數(shù)據(jù)表示方法,使得數(shù)據(jù)獨立于器平臺和處理程序。</p><p>  2.2.1 文檔結(jié)構(gòu)</p><p>  由于現(xiàn)在的HTML標記實現(xiàn)上相當混亂,存在大量不規(guī)范的標記,所以從一開始,

59、XML的設計者就嚴格規(guī)定了XML的語法和結(jié)構(gòu),我們編寫的XML文件必須遵循這些規(guī)定。其主要原則有:</p><p> ?。兀停涛募牡谝恍斜仨毷锹暶髟撐募荴ML文件以及它所使用的XML規(guī)范版本。在文件的前面不能夠有其它元素或者注釋。</p><p>  在XML文件中有且只能夠有一個根元素。</p><p>  在XML文件中的標記必須正確的關閉。也就是說,在XM

60、L文件中,控制標記必須有與之對應的結(jié)束標記。</p><p>  標記之間不得交叉、重疊,標記必須以規(guī)則性的次序來出現(xiàn)。</p><p>  屬性值必須要用引號(“”)括起來。</p><p>  控制標記、指令和屬性名稱等英文要區(qū)分大小寫。</p><p>  下面是一個XML文檔的簡單實例</p><p>  〈?

61、xml version=”1.0”ending=”gb2312”〉</p><p><b>  〈books〉</b></p><p><b>  〈book〉</b></p><p>  〈name〉XML 入門精解〈/name〉</p><p>  〈author〉張三〈/author〉<

62、/p><p>  〈prince uint=”人民幣”〉20.00〈/price〉</p><p><b>  〈/book〉</b></p><p><b>  〈book〉</b></p><p>  〈name〉XML語法〈/name〉</p><p>  〈author〉

63、李四〈/author〉</p><p>  〈prince uint=”人民幣”〉18.00〈/price〉</p><p><b>  〈/book〉</b></p><p><b>  〈/books〉</b></p><p>  第一行是處理指令,申明了此文檔的版本和使用的編碼。這與論文所討論

64、的關系不大。</p><p>  上面的XML文檔也可用下圖所示的樹結(jié)構(gòu)圖來表現(xiàn):</p><p>  2.2.2 技術(shù)特點</p><p>  XML主要用于描述數(shù)據(jù)文檔中數(shù)據(jù)的組織和安排的結(jié)構(gòu),非常簡單,只是為數(shù)據(jù)的結(jié)構(gòu)化提供了一套規(guī)則。它的關注點不是數(shù)據(jù)在瀏覽器如何布局和顯示,而是數(shù)據(jù)內(nèi)容和結(jié)構(gòu)以便數(shù)據(jù)進行交流和處理,有良好的可靠性與互操作性,有以下一些特點

65、:</p><p> ?。保┚哂锌蓴U展性。XML是一種元標記語言,可以定義其它語言。它的標記都是用戶自己定義的,所以從理論上講其類型的數(shù)量可以是無限的。</p><p>  2)結(jié)構(gòu)性強,易于處理,雖然XML在定義標簽時很靈活,但對格式的定義卻非常嚴格,使其具有良好層次結(jié)構(gòu)。</p><p>  3)純文本,與本臺無關。XML將數(shù)據(jù)保存在標準的文檔文件中,可以使用任

66、何文本編輯工具來創(chuàng)建和比那幾XML文檔。</p><p>  4)數(shù)據(jù)存儲與數(shù)據(jù)顯示的分離。XML文檔定義的僅僅是數(shù)據(jù)存儲的結(jié)構(gòu)和關系,對于數(shù)據(jù)的顯示沒有任何結(jié)束和限制,用戶可以根據(jù)自己的要求將文檔中的數(shù)據(jù)這樣或那樣顯示出來。</p><p> ?。担┖軓姷逆溄幽芰???梢远x雙向鏈接、多目標鏈接、擴展鏈接和兩個文檔之間的鏈接。</p><p> ?。叮┕驳暮蛷V泛接

67、受的標準。W3C是一個開放的、公共的組織,其任何事開發(fā)Internet上的技術(shù)和標準,XML就是有W3C創(chuàng)建的,公開而被廣泛支持的標準。</p><p>  2.2.3 數(shù)據(jù)模型</p><p>  為了讓XML用于更多非讓環(huán)境,如與數(shù)據(jù)有關的應用,圍繞XML核心發(fā)展了許多相關的標準和工具,下面簡單介紹一些在文本講使用到的一些技術(shù)標準。</p><p> ?。兀停淌?/p>

68、一種存儲結(jié)構(gòu)化信息的語言,它通常用文檔中的信息來堅持特定的結(jié)構(gòu)。這是通過定義一個描述文檔結(jié)構(gòu)的模式來完成。模式可以指定:</p><p>  文檔中所允許的標簽的名稱。</p><p>  可以分配給每個元素的屬性。</p><p>  元素之間的關系——哪些元素是子元素、哪些元素是父元素以及嵌套的層數(shù)。</p><p>  每個元素可以包括

69、哪些數(shù)據(jù)——文本、其它元素或者文本與元素的組合。</p><p>  文檔有效性對于處理XML數(shù)據(jù)的應用程序來說至關重要,因為這樣,應用程序可以期待文檔中的數(shù)據(jù)以期望的結(jié)構(gòu)出現(xiàn)。</p><p>  文檔類型定義DTD是為XML文檔定義模式的原始的且得到廣泛支持的方法。DTD基本XML1.0規(guī)范的一部分,起源于SGML。它使用了特殊的語法來描述文檔的結(jié)構(gòu)。</p><p

70、><b>  2.3 本章小結(jié)</b></p><p>  本章介紹了論文中相關的基礎知識,如中間件的定義、分類和作用及XML的技術(shù)特點、數(shù)據(jù)模型。</p><p>  第三章 數(shù)據(jù)交換方案的設計</p><p><b>  3.1 異構(gòu)數(shù)據(jù)</b></p><p>  數(shù)據(jù)的異構(gòu)是數(shù)據(jù)交換要

71、解決的主要問題,分析數(shù)據(jù)的異構(gòu)性,總結(jié)其特點,對數(shù)據(jù)交換的順利實現(xiàn)與有重要的意義。</p><p>  3.1.1 異構(gòu)數(shù)據(jù)分析</p><p>  異構(gòu)數(shù)據(jù)是一個內(nèi)容非常豐富的概念,不僅指不同數(shù)據(jù)庫系統(tǒng)之間的數(shù)據(jù)異構(gòu)的,如oracle和SQL Server數(shù)據(jù)庫;而且還包括不同結(jié)構(gòu)的數(shù)據(jù)之間的異構(gòu),如結(jié)構(gòu)化地數(shù)據(jù)、半結(jié)構(gòu)化地數(shù)據(jù)以及無結(jié)構(gòu)數(shù)據(jù)(一般指文本文檔)??偟膩碚f,數(shù)據(jù)的異構(gòu)性主要

72、包括下面三個方面:系統(tǒng)異構(gòu)、模式、異構(gòu)和邏輯異構(gòu)。</p><p>  系統(tǒng)異構(gòu)是指數(shù)據(jù)所處的硬件平臺、操作系統(tǒng)、網(wǎng)絡環(huán)境等的不同,具體如下:</p><p>  1)計算機體系結(jié)構(gòu)的不同:各個數(shù)據(jù)庫可分別運行在大型機、小型機、工作站、個人機或嵌入式系統(tǒng)中。</p><p>  2)操作系統(tǒng)不同:各個數(shù)據(jù)庫系統(tǒng)所以存的操作系統(tǒng)可以分別是Unix、Linux、Wind

73、ows等等。</p><p>  3)開發(fā)語言不同:比如C、C++、Java、Delphi等。</p><p>  4)網(wǎng)絡環(huán)境的不同:如TCP/IP,IPX/SPX,ATM,以太網(wǎng)等。</p><p>  模式異構(gòu)是指數(shù)據(jù)所處的DBMS本身的異構(gòu),數(shù)據(jù)庫技術(shù)發(fā)展至今,已先后出現(xiàn)了層次、網(wǎng)狀、關系和面向?qū)ο蟮炔煌瑪?shù)據(jù)模式的數(shù)據(jù)庫管理系統(tǒng)。就算是同為一種數(shù)據(jù)模式如關系

74、型,也有oracle、DB2、sybase等之分。</p><p>  邏輯異構(gòu)主要指數(shù)據(jù)間的類型、命名、語義或語法等方面的不同,如同樣的數(shù)據(jù)結(jié)構(gòu)表示不同的語義或者同樣的語義由不同形式的數(shù)據(jù)結(jié)構(gòu)來表示。</p><p>  在處理上述數(shù)據(jù)的異構(gòu)性時難點主要表現(xiàn)在語法異構(gòu)和語義異構(gòu)上。語法異構(gòu)一般指源數(shù)據(jù)和目的數(shù)據(jù)之間命名規(guī)則及數(shù)據(jù)類型存在不同。對數(shù)據(jù)庫而言,命名是規(guī)則指表明和字段名。語法結(jié)

75、構(gòu)相對簡單,只要實現(xiàn)字段到字段記錄到記錄的映射,解決其中的名字沖突和數(shù)據(jù)類型的沖突。語義異構(gòu)要比語法異構(gòu)要復雜得多,它往往是需要破壞字段的原子性,即需要直接處理數(shù)據(jù)內(nèi)容。常見的語義異構(gòu)包括以下一些方式:</p><p>  字段拆分、字段合并、字段數(shù)據(jù)格式變換、記錄間字段轉(zhuǎn)移等等。</p><p>  3.1.2 數(shù)據(jù)沖突分類</p><p>  本文數(shù)據(jù)由于異構(gòu)性

76、而表現(xiàn)出在格式、語法和語義等方面的不同稱之為數(shù)據(jù)沖突。不固定的數(shù)據(jù)沖突給數(shù)據(jù)交換帶來了很大的困難。依據(jù)關系型數(shù)據(jù)源的特點及具體處理時的方便性,本論文將數(shù)據(jù)的異構(gòu)性即數(shù)據(jù)沖突分為兩大類:同構(gòu)沖突和異構(gòu)沖突。同構(gòu)沖突是指數(shù)據(jù)沖突雙方字段屬性能夠一一對應,只是在類型、格式、長度、精度等方面存在差異。而異構(gòu)沖突指沖突雙方在數(shù)據(jù)項的構(gòu)成存在差異,即數(shù)據(jù)的組成結(jié)構(gòu)不同。</p><p>  3.1.2.1 同構(gòu)沖突</

77、p><p>  1)命名沖突:有兩種情況,一種是同名異義,即表示同一概念的字段在不同的數(shù)據(jù)表中采用的是不同的名稱。第二種是同義異名,即同樣的字段名但表示不同的概念。本論文主要考慮第一種情況。</p><p>  2)類型沖突:表示同一概念的字段,在不同的表里采用的數(shù)據(jù)類型不一致。如年齡age字段,在一個表中采用的是數(shù)值型,而在另一個表中采用字符型。</p><p>  

78、3)長度沖突:同一語義字段屬性,交換雙方的長度定義不同。</p><p>  4)精度沖突:字段屬性精度不同,如兩邊都是數(shù)值,一表是精確到小數(shù)點后兩位,另一表卻只精確到小數(shù)點的后一位。</p><p>  5)度量沖突:使用的度量單位不同,如同樣表示重量,儀表使用公斤但另一表卻使用克。</p><p>  除了以上這些常見的同構(gòu)數(shù)據(jù)的沖突類型,還有日期格式不同、默認

79、值不同、是否允許NULL值等等許多。</p><p>  3.1.2.2 異構(gòu)沖突</p><p>  1)合并/分裂沖突:數(shù)據(jù)源表和目的數(shù)據(jù)表中的字段屬性個數(shù)不同,但是可以將源數(shù)據(jù)表中的幾個字段合成目的的表的某個字段,或者將源數(shù)據(jù)表中某個字段分拆目的表的的幾個字段,達到源與目的表的匹配。如下兩個表company1和company2:</p><p>  Compa

80、ny1(id#,name,county,city,street,number,desc);</p><p>  Company2(id#,name,address,desc);</p><p>  在company1表轉(zhuǎn)換成company2表的過程中,須將county、city、street和number四個字段合并成company2合成表中的address字段;反之,則須將address

81、字段分解為四個部分并存如company1中的相應字段。</p><p>  2)表-字段-值沖突:可以細分為表-字段、字段-表、字段-值、值-字段、表-值、值-表六種情況,以表3-1、3-2、3-3中的幾張關系表來詳細說明這幾種沖突。</p><p>  這些表是表現(xiàn)某員工自身發(fā)展情況,在表3-1的四張表是員工各季度完成的簽約項目額數(shù),表3-2是員工各個季度完成項目金額的一個匯總,表3-3

82、是全年的一個明細表。</p><p>  表3-1 各季度表</p><p>  一季度: 二季度:</p><p>  表3-2 員工季度統(tǒng)計表</p><p><b>  表3-3公司明細表</b></p><p>  表-字段與字段-表沖突

83、:相互交換的兩個表,一個表的表名在另一個表中卻以字段</p><p>  的形式來表現(xiàn)。如表3-1中每個季度有一張表,它們表明在表3-2中卻對應為一個字段的名稱。這就是表字段的沖突,反之則是字段表的沖突。</p><p>  3.2 數(shù)據(jù)交換方案設計</p><p>  3.2.1 數(shù)據(jù)交換方案總覽</p><p>  由上面的分析結(jié)構(gòu)可知,

84、異構(gòu)數(shù)據(jù)之間進行交換的核心問題是如何解決它們同構(gòu)和異構(gòu)沖突所帶來的數(shù)據(jù)轉(zhuǎn)換問題。斑紋將利用XML作為交換的公共數(shù)據(jù)表示,在表示數(shù)據(jù)的時候,將其結(jié)果信息和值信息分開來描述,分別定義為數(shù)據(jù)結(jié)構(gòu)文檔和數(shù)據(jù)值文檔。通過分析結(jié)構(gòu)信息文檔,解決數(shù)據(jù)沖突,完成數(shù)據(jù)值文檔的轉(zhuǎn)換并最終完成數(shù)據(jù)交換。</p><p>  本文所設計的數(shù)據(jù)交換方案主要有數(shù)據(jù)提取、 數(shù)據(jù)分析、數(shù)據(jù)轉(zhuǎn)換和加載等步驟,如圖3-1所示。</p>

85、<p>  數(shù)據(jù)提取是根據(jù)用戶的指令的將數(shù)據(jù)從關系數(shù)據(jù)庫提取數(shù)來,并將提取出來的數(shù)據(jù)轉(zhuǎn)換成XML格式的過程。數(shù)據(jù)加載是數(shù)據(jù)提取的反過程,即將轉(zhuǎn)換好的XML格式的數(shù)據(jù)按照要求加載到相應的關系表中。這兩部分與具體實現(xiàn)相關,將在下一章詳細討論。</p><p>  數(shù)據(jù)轉(zhuǎn)換是通過利用數(shù)據(jù)分析生成的映射文件協(xié)助完成數(shù)據(jù)值XML文檔轉(zhuǎn)換過程。</p><p>  3.2.2 公共數(shù)據(jù)表示

86、</p><p>  關系數(shù)據(jù)庫中的數(shù)據(jù)都是規(guī)則的二位結(jié)構(gòu)關系表,所以能使用很簡單的XML文件來表示。在本文中,源數(shù)據(jù)和目標數(shù)據(jù)的值信息和結(jié)構(gòu)信息分別用viewdata 和viewstruct文件來表示。在數(shù)據(jù)分析時只需要使用結(jié)構(gòu)文件viewstruct,而不用對可能極大的之文件viewdata進行處理。</p><p>  3.2.3 數(shù)據(jù)分析</p><p> 

87、 用戶通過比較源數(shù)據(jù)與目標之間結(jié)構(gòu)的差異,定義好源與目的數(shù)據(jù)的轉(zhuǎn)換規(guī)則文件。數(shù)據(jù)分析的功能就是通過分析數(shù)據(jù)源、目標結(jié)構(gòu)和轉(zhuǎn)換規(guī)則三個文件得到一個進行數(shù)據(jù)值文檔交換時所需的映射文件,如圖3-2顯示:</p><p>  3.2.3.1 映射文件</p><p>  映射文件是由源結(jié)構(gòu)文件、目標結(jié)構(gòu)文件和用戶定義的轉(zhuǎn)換規(guī)則文件三者經(jīng)數(shù)據(jù)分析處理而得到的。此文件是程序在進行實際的數(shù)據(jù)轉(zhuǎn)換時的控制

88、信息,是面向程序處理的,其格式應當方便程序編寫。</p><p>  依據(jù)用戶定義的轉(zhuǎn)換規(guī)則,下面分為四種情況介紹。</p><p>  1)處理normal元素包含的字段,即同構(gòu)沖突,如圖3-3所示。</p><p>  2)處理field_value元素包含的字段,即字段-值沖突,如圖3-4所示。</p><p>  處理流程與1)類似,

89、非別賦予field元素sid、did、vid和type屬性值,然后將sid和vid節(jié)點當成normal沖突來生成field元素下的execute子元素。</p><p>  3)處理assembly元素包含的字段,即合并/分拆沖突,如圖3-5所示。</p><p>  處理時需要注意合并與分拆的區(qū)分,首先取出此assembly元素中所有的sid和did的子元素,分別統(tǒng)計其個數(shù),如只有一個s

90、id元素,則進入分拆沖突處理,如只有一個did元素,則進入合并沖突處理,否則進行出錯處理。合并沖突時,生成的field元素個數(shù)與sid個數(shù)相同,type=ME;分拆沖突時,field元素個數(shù)與did元素個數(shù)相同,type=SP。</p><p>  4)處理table_value元素包含的字段,即表-值沖突。這類僅需在生成的field元素中,給did賦與相應值,type=TV。</p><p&

91、gt;  當源結(jié)構(gòu)中的字段沒有出現(xiàn)在轉(zhuǎn)換規(guī)則文檔中,那么在目標數(shù)據(jù)結(jié)構(gòu)文件dstruct中取與sid同名的字段,其余操作與normal元素情況相同。</p><p>  依據(jù)以上的情況的處理流程分析,整個映射文件的生側(cè)和功能算法如圖3-6所示。</p><p>  輸入:sstruct文檔、dstruct文檔、轉(zhuǎn)換規(guī)則文檔</p><p><b>  輸出

92、:映射匹配文檔</b></p><p>  算法描述:首先,將結(jié)構(gòu)sstruct、 dstruct和規(guī)則文件用DOM解析,在內(nèi)存中簡歷DOM樹,方便隨機訪問。然后遍歷源結(jié)構(gòu)sstruct,對其中每一字段,遍歷規(guī)則文件,根據(jù)此字段的定義,進行相應的沖突處理。在處理完所有的字段后,查看規(guī)則文件中是否定義了field_value元素,如是,則進行表_值沖突處理。最后生成映射文件。</p>&l

93、t;p>  3.2.4 數(shù)據(jù)轉(zhuǎn)換</p><p>  數(shù)據(jù)轉(zhuǎn)換是真正完成從源數(shù)據(jù)到目標數(shù)據(jù)轉(zhuǎn)換過程。圖3-7表示了數(shù)據(jù)轉(zhuǎn)換算法的主要流程。</p><p>  輸入:源數(shù)據(jù)值文件、映射匹配文件</p><p>  輸出:目的數(shù)據(jù)值文件</p><p>  算法描述:正如前面介紹的,數(shù)據(jù)轉(zhuǎn)換算法使用SAX技術(shù)來處理數(shù)據(jù)值XML文件,而映射

94、匹配文件還是用DOM技術(shù)處理。首先,將解析輸入映射的匹配文件,并建立一個輸出流用于輸出目標數(shù)據(jù)值文件。然后,解析源數(shù)據(jù)值文件。按觸發(fā)的時間執(zhí)行相應方法。其中,合并或拆分沖突涉及多個字段,而表-值沖突無相應字段對應,需要暫時存儲,在row元素結(jié)束事件時才處理。其他情況只涉及單個字段,在col元素事件發(fā)生時即可處理。按照上面方法不斷將數(shù)據(jù)輸出到目標數(shù)據(jù)值文件中。</p><p>  3.3 數(shù)據(jù)交換實例</p&

95、gt;<p>  在這里,使用一個實例來簡單說明數(shù)據(jù)交換的過程。圖要對下面兩個關系進行數(shù)據(jù)交換,其中表3-5 student_score 記錄學生各科的成績情況,表3-6 math記錄學生數(shù)學的成績情況?,F(xiàn)在需要將math表中的數(shù)據(jù)增加到student_score表中。</p><p>  表3-5 student_score 表</p><p>  表3-6 math表&l

96、t;/p><p>  目標數(shù)據(jù)文檔結(jié)構(gòu)student_score_viewstruct.xml 如下:</p><p>  <field name=”date”type=”date”style=”yyy/mm/dd”/></p><p>  <field name=”score”type=”number ”length=”3”/></p&g

97、t;<p>  </viewstruct></p><p>  目標數(shù)據(jù)結(jié)構(gòu)文檔student_score_viewstruct.xml如下:</p><p>  <viewstruct id=”student_score_viewstruct.xml”</p><p>  Datexml=”student_score_date.xm

98、l”/></p><p>  <field name=”sid” type=”char”length=”6”null=”na”/></p><p>  <field name=”name” type=”char”length=”30”null=”na”/></p><p>  <field name=”sex” type=”cha

99、r”length=”3” /></p><p>  <fieldname=”course”type=”char”length=”10”/></p><p>  <field name=”date” type=”date”stly=”mm/yy/yyyy”/></p><p>  <fieldname=”score”type=”nu

100、mber”length=”3” /></p><p>  </viewstruct></p><p>  用戶定義的轉(zhuǎn)換規(guī)則文件如下:</p><p>  <transrle sstruct=”math_viewstruct.xml”</p><p>  Dstruct=”student_score_viewstruc

101、t.xml”></p><p><b>  <normal></b></p><p>  <field sid=”xingbie”did=”sex”></p><p><b>  </normal></b></p><p>  <assembly>

102、;</p><p>  <sid id=”firstname”/></p><p>  <sid id=”lastname”/></p><p>  <did id=”name”/></p><p>  </assembly></p><p>  <table_va

103、lue did=”course”/></p><p>  </transule></p><p>  由上述三個文件,經(jīng)過數(shù)據(jù)分析處理可以后可以得到數(shù)據(jù)之間的映射文件math2student_map.xml:</p><p>  <map sview=”math_date.mxl”dview=”student_score_date.xml”&

104、gt;</p><p>  <field sid=”sid”did=”sid”type=”NM”></p><p>  <execute opera=”lengthTrans”></p><p>  <param>4</param></p><p>  <param>6</pa

105、ram></p><p>  </execute></p><p>  <field sid=”firstname”did=”name”type=”ME” sub=”1”/></p><p>  按照上面的映射文件,就可以將源數(shù)據(jù)值文件轉(zhuǎn)換為目標數(shù)據(jù)值文件最終寫入目標數(shù)據(jù)源。新的student_score表如下:</p>

106、<p><b>  3.4 本章小結(jié)</b></p><p>  數(shù)據(jù)間的異構(gòu)性是數(shù)據(jù)交換中要解決的主要問題。通過分析,本章將這些異構(gòu)性分為同構(gòu)沖突和異構(gòu)沖突,并設計了一個以XML作為公共數(shù)據(jù)表示的數(shù)據(jù)交換方案。其中數(shù)據(jù)的結(jié)構(gòu)信息和值信息被兩個XML文件分別表示。通過對數(shù)據(jù)交換雙方的結(jié)構(gòu)文件的分析,生成映射文件并最終完成數(shù)據(jù)交換。</p><p>  第四章

107、 數(shù)據(jù)交換中間件的設計實現(xiàn)</p><p>  4.1系統(tǒng)總體結(jié)構(gòu)設計</p><p>  第三章詳細分析并基本解決了數(shù)據(jù)交換的數(shù)據(jù)沖突的問題。但是在實際的應用中總會有一些新的,預料不到的數(shù)據(jù)處理需求出現(xiàn)。這也是本文需要解決的另一個問題。為此,在上一章設計的數(shù)據(jù)交換方案的基礎上,將數(shù)據(jù)交換處理時方法分離開來,提出一個具有良好擴展性、可配置性的數(shù)據(jù)交換中間件系統(tǒng)。其總結(jié)如圖4-1所示。&l

108、t;/p><p>  在此系統(tǒng)中主要包含任務管理器、活動插件、主控制器、配置管理、傳輸管道、數(shù)據(jù)適配器等幾個部分。</p><p>  XDEM系統(tǒng)具有以下特點:</p><p>  1)采用集中式數(shù)據(jù)處理,降低交換復雜度。</p><p>  2)系統(tǒng)運行時配置。本系統(tǒng)利用java的反射機制??梢愿鶕?jù)任務配置信息在運行期動態(tài)的加載活動插件,而不

109、需要中心編譯和部署,從而使數(shù)據(jù)交換能夠雖需而變,動態(tài)配置。</p><p>  3)用戶能按照不同的數(shù)據(jù)處理要求,定制開發(fā)自己的活動插件,并將其配置到任務定義的信息中,使XDEM完成不同場合,不同要求的數(shù)據(jù)交換。</p><p>  4)XDEM利用了XML技術(shù)強大的表示能力,不但數(shù)據(jù)、轉(zhuǎn)換規(guī)則、映射文件使用XML文檔來表示,而且任務定義、數(shù)據(jù)源信息等各種配置信息使用XML文檔表示,使系統(tǒng)

110、能在不同平臺上運行。</p><p><b>  4.2配置管理</b></p><p>  4.2.1配置信息結(jié)構(gòu)</p><p>  在XDEM中,配置信息主要包括系統(tǒng)基本信息、數(shù)據(jù)源信息、任</p><p>  務定義信息等,這些信息都是以XML格式的文檔保存的。</p><p>  )l系

111、統(tǒng)基本信息:協(xié)助完成系統(tǒng)的初始化,并指明其它資源的位</p><p>  置,為系統(tǒng)訪問提供保證。主要需定義以下信息項:</p><p>  a、數(shù)據(jù)源信息:注冊數(shù)據(jù)源目錄及文件;</p><p>  b、任務信息:任務文件目錄及其名稱;</p><p>  c、活動插件信息:系統(tǒng)插件存放目錄及插件配置文件名稱;</p><

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論