基于java的數(shù)據(jù)中心引擎的研究_第1頁(yè)
基于java的數(shù)據(jù)中心引擎的研究_第2頁(yè)
基于java的數(shù)據(jù)中心引擎的研究_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于java的數(shù)據(jù)中心引擎的研究摘要:文中主要是將XML技術(shù)和JAVA技術(shù)應(yīng)用于數(shù)據(jù)集成之中,設(shè)計(jì)了基于XML和JAVA技術(shù)為基礎(chǔ)的的數(shù)據(jù)平臺(tái)集成框架。系統(tǒng)架構(gòu)主要根據(jù)數(shù)據(jù)管理和集成方面的功能給出了系統(tǒng)設(shè)計(jì)的框架,并簡(jiǎn)單勾勒了系統(tǒng)之間不同模塊的相互關(guān)系。關(guān)鍵詞:JAVA;XML;數(shù)據(jù)集成;引擎 1.基本概述“數(shù)據(jù)”是計(jì)算機(jī)應(yīng)用程序最為重要的方面,其核心也即是使某人或計(jì)算機(jī)可以訪問(wèn)其“數(shù)據(jù)”。尤其是在現(xiàn)代企業(yè)中,“數(shù)據(jù)”不但是可訪問(wèn)的,而且還必須是持久的。自上世紀(jì)七十年代以來(lái),集中式數(shù)據(jù)庫(kù)系統(tǒng)得到了廣泛的使用和迅速的發(fā)展,也是的數(shù)據(jù)管理的效率得到了大幅度提升,目前這種集中式數(shù)據(jù)庫(kù)系統(tǒng)的開發(fā)已成為

2、新興技術(shù)發(fā)展的主流。但類似的問(wèn)題同時(shí)也出現(xiàn)了。因?yàn)椴煌臄?shù)據(jù)庫(kù)有著各自不同且相互獨(dú)立的管理方式和數(shù)據(jù)庫(kù)結(jié)構(gòu),這些數(shù)據(jù)庫(kù)無(wú)論是邏輯上還是物理上都存在這異構(gòu)??蓪⑦@些異構(gòu)性歸納為以下幾點(diǎn):(1)不同的數(shù)據(jù)庫(kù)系統(tǒng)其基礎(chǔ)的操作系統(tǒng)存在著一定的異構(gòu)性,它們可以在不同的操作系統(tǒng)平臺(tái)上運(yùn)行,如Windows NT,Unix,Linux等;(2)不同的數(shù)據(jù)庫(kù)其運(yùn)行所在的計(jì)算機(jī)體系結(jié)構(gòu)存在著一定的異構(gòu)性,如工作站、大型機(jī)、小型機(jī)、PC機(jī)、嵌入式系統(tǒng)等;(3)數(shù)據(jù)庫(kù)的管理系統(tǒng)本身(DMBS)存在著異構(gòu)性,如模式、層次、關(guān)系、網(wǎng)絡(luò)、面向函數(shù)或?qū)ο笮偷臄?shù)據(jù)庫(kù);(4)數(shù)據(jù)語(yǔ)義或存儲(chǔ)結(jié)構(gòu)存在著異構(gòu),通常不同的數(shù)據(jù)庫(kù)應(yīng)用系

3、統(tǒng)會(huì)有著不同的語(yǔ)義表達(dá)方式和不同的數(shù)據(jù)結(jié)構(gòu)形式。隨著網(wǎng)絡(luò)信息化的長(zhǎng)足發(fā)展,信息化的進(jìn)程在企業(yè)、政府等部門的發(fā)展步伐也在不斷加快,越來(lái)越多的政府部門、企業(yè)建立了相關(guān)的信息系統(tǒng)。這些信息系統(tǒng)的唯一共性幾乎均是以數(shù)據(jù)形式為核心。隨著這些信息系統(tǒng)的不斷增多,不同系統(tǒng)之間的信息交換和信息資源共享顯得越來(lái)越重要。越來(lái)越多的用戶希望能有這樣一種服務(wù):即便處在不同網(wǎng)絡(luò)節(jié)點(diǎn),他們也不必知道各物理數(shù)據(jù)系統(tǒng)的分布形式,也不必知道各數(shù)據(jù)庫(kù)的基本結(jié)構(gòu)組成,更不必自己進(jìn)行數(shù)據(jù)結(jié)果匯總和轉(zhuǎn)換,也即是它能屏蔽掉各層次間的異構(gòu)特性,用戶只需有一步簡(jiǎn)單的查詢操作,便可得到自己想要的綜合結(jié)果,就如同是在操作一個(gè)數(shù)據(jù)源。我們將這種服

4、務(wù)稱為數(shù)據(jù)集成服務(wù),并將提供這種服務(wù)的平臺(tái)稱為數(shù)據(jù)集成平臺(tái)(可參見(jiàn)圖-1)。 圖-1 數(shù)據(jù)集成平臺(tái)基本框架結(jié)構(gòu)其目的就是為了給用戶提供一個(gè)方面訪問(wèn)異構(gòu)數(shù)據(jù)源的統(tǒng)一接口,用戶只需直接指定其想要的數(shù)據(jù)即可,不必描述怎樣才能得到它。這樣一來(lái)所有的數(shù)據(jù)源就如同操作一個(gè)一樣,徹底減輕了用戶尋找數(shù)據(jù)源,然后和每個(gè)數(shù)據(jù)源實(shí)現(xiàn)交互,合并以后返回結(jié)果的負(fù)擔(dān),在應(yīng)用構(gòu)件中充當(dāng)了數(shù)據(jù)總線的作用。2基于JAVA的數(shù)據(jù)中心引擎的設(shè)計(jì)2.1Java環(huán)境下的數(shù)據(jù)訪問(wèn)Java環(huán)境下的數(shù)據(jù)中心訪問(wèn)技術(shù)可謂“五花八門”,它們同時(shí)有著各自的優(yōu)缺點(diǎn)。目前常見(jiàn)的數(shù)據(jù)訪問(wèn)技術(shù)有JDBC直接訪問(wèn)數(shù)據(jù)庫(kù)、JDO(Java Data Obje

5、cts Java 數(shù)據(jù)對(duì)象)、實(shí)體bean等,以JDBC技術(shù)為例,JDBC可以說(shuō)是訪問(wèn)持久數(shù)據(jù)最直接最原始的方法。由SUN公式提供,主要用來(lái)執(zhí)行SQL語(yǔ)句的Java應(yīng)用程序接口。運(yùn)用JDBC 的開放性和Java語(yǔ)言的中性結(jié)構(gòu)可以使程序員只需寫出單獨(dú)一個(gè)程序就可以實(shí)現(xiàn)發(fā)送JDBC API給相應(yīng)的數(shù)據(jù)庫(kù)。在實(shí)現(xiàn)對(duì)象/關(guān)系(Object/Relation Mapping)和數(shù)據(jù)持久性時(shí),它具有以下優(yōu)點(diǎn):(1)標(biāo)準(zhǔn)化它通過(guò)將特定關(guān)系數(shù)據(jù)庫(kù)廠商專用的細(xì)節(jié)抽象出來(lái),實(shí)現(xiàn)常用數(shù)據(jù)庫(kù)訪問(wèn)功能的標(biāo)準(zhǔn)化。(2)技術(shù)成熟JDBC已經(jīng)有10余年的歷程,屬于Java的核心API,它的最佳實(shí)踐及可靠性對(duì)于Java的持久機(jī)

6、制來(lái)說(shuō)是一筆極其寶貴的資產(chǎn)。(3)成本低JDBC是由Sun公司免費(fèi)提供的,也即是無(wú)需成本的一種的技術(shù)支持。(4)可移植性高JDBC是大家公認(rèn)的只需程序員寫一次程序就能將它到處運(yùn)行的技術(shù)。(5)數(shù)據(jù)訪問(wèn)速度高它是Java環(huán)境中最直接、快速的數(shù)據(jù)訪方法。但任何一種技術(shù)都不是十全十美的,尤其優(yōu)點(diǎn),必然也存在一些不足,使用JDBC操作數(shù)據(jù)庫(kù)時(shí),采用的常規(guī)不步驟如下:(1) 首先建立數(shù)據(jù)庫(kù)連接,獲取Connection對(duì)象。(2) 組裝查詢SQL語(yǔ)句,并以此建立PreparedStatement對(duì)象或Statement對(duì)象。(3) 用獲取的Connection對(duì)象執(zhí)行SQL查詢語(yǔ)句,并獲得ResultS

7、et結(jié)果集對(duì)象。并一條條的讀取其中的數(shù)據(jù)。(4) 結(jié)合所讀取的數(shù)據(jù),計(jì)算結(jié)果并在此組裝成新的SQL語(yǔ)句。(5) 再次運(yùn)用Connection對(duì)象執(zhí)行更新后的SQL查詢語(yǔ)句,從而實(shí)現(xiàn)數(shù)據(jù)庫(kù)中數(shù)據(jù)的更新。由此我們可清晰的看出其邏輯關(guān)系的復(fù)雜性,其中的數(shù)據(jù)存取邏輯和業(yè)務(wù)處理邏輯完全混在一起,而一個(gè)完整的系統(tǒng)肯定需要若干這樣重復(fù)的處理過(guò)程,若其中一些關(guān)聯(lián)業(yè)務(wù)流程或業(yè)務(wù)邏輯需要修改,那要改動(dòng)的代碼將不可估量。除此之外,假如要更換數(shù)據(jù)庫(kù)運(yùn)行的環(huán)境或產(chǎn)品內(nèi)容,代碼量的更改也是不可估量的,甚至可以說(shuō)根本無(wú)法完成。而用戶的要求和運(yùn)行環(huán)境又千差萬(wàn)別,不可能為每種運(yùn)行環(huán)境每一用戶設(shè)計(jì)單獨(dú)的一套系統(tǒng)。所以我們?cè)诳吹絁

8、DBC優(yōu)點(diǎn)的同時(shí),還必須考慮它存在的缺陷和不足。多年來(lái)JDBC已知作為Java開發(fā)人員數(shù)據(jù)庫(kù)訪問(wèn)的技術(shù)標(biāo)準(zhǔn),隨著時(shí)間的流逝,它已經(jīng)可以提供完全具有資源池機(jī)制和高速緩存的完善的數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序,給開發(fā)人員帶來(lái)了不少一處,但用它來(lái)實(shí)現(xiàn)對(duì)象/關(guān)系映射,卻仍有著致命的弱點(diǎn),曾就有文獻(xiàn)報(bào)道說(shuō)用JDBC進(jìn)行手工編寫實(shí)現(xiàn)對(duì)象/關(guān)系映射持久層所占用的時(shí)間將占用整個(gè)項(xiàng)目開發(fā)的30%-40%。由此看來(lái)一些簡(jiǎn)單的設(shè)計(jì)可以選擇此種技術(shù),但對(duì)于一些復(fù)雜度高的程序設(shè)計(jì)應(yīng)盡量避免選擇此技術(shù)?;诖?,筆者選擇一種基于XML和Java 技術(shù)的異構(gòu)數(shù)據(jù)集成系統(tǒng)。這種方案采用了當(dāng)前因特網(wǎng)系統(tǒng)的最新三層體系結(jié)構(gòu),一方面它解決了異構(gòu)數(shù)據(jù)

9、的集成問(wèn)題,另外它也實(shí)現(xiàn)了企業(yè)數(shù)據(jù)的動(dòng)態(tài)發(fā)布。2.2系統(tǒng)架構(gòu)的分析及設(shè)計(jì)這一設(shè)計(jì)要點(diǎn)也即是實(shí)現(xiàn)各異構(gòu)數(shù)據(jù)間的數(shù)據(jù)共享,通過(guò)技術(shù)手段實(shí)現(xiàn)各數(shù)據(jù)之間的互訪、互連。因此數(shù)據(jù)中心引擎在進(jìn)行集成設(shè)計(jì)分析時(shí)可將各個(gè)應(yīng)用系統(tǒng)作為一個(gè)一個(gè)的單獨(dú)模塊進(jìn)行考慮。文中筆者將傳統(tǒng)數(shù)據(jù)庫(kù)技術(shù)和XML相互融合,設(shè)計(jì)了如下模型,其實(shí)現(xiàn)的基本步驟為:(1)客戶端,在提交一個(gè)查詢請(qǐng)求以后,系統(tǒng)經(jīng)過(guò)打包器,并同時(shí)將所提交的查詢參數(shù)封裝成XML文件,在網(wǎng)上傳輸。(2)中間層,首先應(yīng)用服務(wù)器將接收的文件解密,并將其交給控制器。(3)然后再由控制器調(diào)用解析器對(duì)文件進(jìn)行解析,提取相關(guān)字段進(jìn)行權(quán)限認(rèn)證。驗(yàn)證通過(guò)以后進(jìn)行下一步處理工作。(若

10、驗(yàn)證未通過(guò),會(huì)由控制器向客戶端提示信息出錯(cuò))。(4)控制器從元數(shù)據(jù)庫(kù)進(jìn)行查找,如果未找到相關(guān)數(shù)據(jù)源,則向客戶端反饋相應(yīng)提示信息;否則轉(zhuǎn)入下一步工作。(5)找到所需的數(shù)據(jù)源后,再由控制器將查詢請(qǐng)求命令傳給數(shù)據(jù)庫(kù)管理器然后進(jìn)行下一步的數(shù)據(jù)查找處理工作。(6)若數(shù)據(jù)庫(kù)管理器處理失敗,則由控制器發(fā)出提示信息;查詢成功,則將其結(jié)果傳給控制器,并由控制器傳給翻譯器進(jìn)行處理,翻譯器按照預(yù)定的XML格式將查詢到的結(jié)果信息轉(zhuǎn)換成XML文件,再交至控制器,由控制器對(duì)其加密,再通過(guò)網(wǎng)絡(luò)輸出給客戶端,客戶端再將其查詢結(jié)果進(jìn)行解密并按照一定格式呈現(xiàn)給用戶。參見(jiàn)圖-2。圖-2 系統(tǒng)架構(gòu)設(shè)計(jì)草圖將其異構(gòu)數(shù)據(jù)集成系統(tǒng)細(xì)化后的

11、總體結(jié)構(gòu)如圖-3。圖-3 基于XML、Java的企業(yè)異構(gòu)數(shù)據(jù)集成系統(tǒng)總體結(jié)構(gòu)由上至下各層其基本服務(wù)的功能如下:(1) 最底層的數(shù)據(jù)源層,它是數(shù)據(jù)提供者,由不同的數(shù)據(jù)來(lái)源構(gòu)成。包括各類文件、數(shù)據(jù)庫(kù)等信息。(2) 數(shù)據(jù)中心引擎,它主要提供一些必要的數(shù)據(jù)轉(zhuǎn)換工具或相關(guān)功能。通過(guò)它實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)信息的訪問(wèn),并將此數(shù)據(jù)轉(zhuǎn)換成成XML文檔進(jìn)行輸出。(3) 應(yīng)用層,它也即是用戶的界面層,根據(jù)具體的用戶計(jì)算和應(yīng)用環(huán)境,采用合適的應(yīng)用軟件和信息訪問(wèn)技術(shù)。3.總結(jié)由于篇幅限制,本次只簡(jiǎn)略介紹了基于JAVA數(shù)據(jù)中心引擎的系統(tǒng)架構(gòu)的分析及設(shè)計(jì),以及客戶端的界面設(shè)計(jì)的相關(guān)問(wèn)題,這一系統(tǒng)中還存在很多待以改進(jìn)的地方,如:(1)客戶層的代碼明顯較為復(fù)雜,大量代碼仍需開發(fā)者手工進(jìn)行完成;(2)雖然實(shí)現(xiàn)了多方式查詢,但對(duì)于更復(fù)雜的關(guān)聯(lián)查詢還不能有效完成。這些問(wèn)題需要日后參考相關(guān)資料繼續(xù)研究完成。【參考文獻(xiàn)】【1】 張波. 基于Java的數(shù)據(jù)庫(kù)訪問(wèn)引擎的研究與實(shí)現(xiàn).北京:中國(guó)科技信息技術(shù),2007.5.【2】 邵雄凱. 移動(dòng)數(shù)據(jù)庫(kù)中若干問(wèn)題的研究.武漢:華中科技大學(xué),2004.【3】 邵雄凱,廖曄元搜索引擎搜索結(jié)果的排

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論