基于J2EE數(shù)據(jù)管理思考
時(shí)間:2022-10-25 07:34:00
導(dǎo)語:基于J2EE數(shù)據(jù)管理思考一文來源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
摘要:對(duì)基于XML的多源異構(gòu)數(shù)據(jù)融合、遙感數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)持久化以及用戶訪問控制技術(shù)進(jìn)行了分析和設(shè)計(jì);討論了元數(shù)據(jù)管理系統(tǒng)的實(shí)現(xiàn)技術(shù)、設(shè)計(jì)思想和系統(tǒng)構(gòu)架,注重系統(tǒng)的可移植性、可維護(hù)性和可擴(kuò)展性;實(shí)現(xiàn)了基于j2ee技術(shù)的元數(shù)據(jù)管理系統(tǒng)。
關(guān)鍵詞:Java2平臺(tái)企業(yè)版;元數(shù)據(jù)管理;擴(kuò)展標(biāo)記語言
隨著信息技術(shù)的發(fā)展,產(chǎn)生了海量的信息。如何有效地管理和組織這些海量信息已經(jīng)成為一個(gè)突出的問題。元數(shù)據(jù)機(jī)制是解決這一問題的有效手段。一些部門已經(jīng)針對(duì)數(shù)據(jù)在行業(yè)內(nèi)部的應(yīng)用特點(diǎn)來開發(fā)自己的管理系統(tǒng)[1]。目前,在元數(shù)據(jù)管理系統(tǒng)的建設(shè)中存在的主要問題是:基于不同操作系統(tǒng)和數(shù)據(jù)庫的管理平臺(tái)不可移植、安全性差、難以維護(hù)和擴(kuò)展、缺乏統(tǒng)一的建設(shè)模式與內(nèi)容服務(wù)提供方式[2,3]。
以J2EE平臺(tái)為基礎(chǔ)的各項(xiàng)技術(shù)的成熟為這些問題提供了良好的解決方案。J2EE是一種利用Java2平臺(tái)來簡(jiǎn)化諸多與多級(jí)解決方案的開發(fā)、部署和管理相關(guān)的復(fù)雜問題的體系結(jié)構(gòu)。J2EE的核心技術(shù)是Java2平臺(tái)的標(biāo)準(zhǔn)版,具有Java語言的特性,是一個(gè)開放的、跨平臺(tái)的結(jié)構(gòu),提供了健全的意外事件處理機(jī)制,具有良好的可移植性和擴(kuò)展性。
基于J2EE的元數(shù)據(jù)管理系統(tǒng)具有高效、穩(wěn)定、可復(fù)用、易維護(hù)的特點(diǎn);獨(dú)立于平臺(tái),可以部署于MicrosoftWindows、Linux、UNIX等操作系統(tǒng)之上;可對(duì)Oracle、SQLServer2000、MySQL等多種數(shù)據(jù)庫進(jìn)行操作。但是J2EE涉及的技術(shù)種類繁多,在實(shí)際應(yīng)用中要根據(jù)需要準(zhǔn)確使用,而且基于J2EE的系統(tǒng)需要具有良好的系統(tǒng)設(shè)計(jì)結(jié)構(gòu),才能最大限度地發(fā)揮優(yōu)勢(shì)。盡管基于J2EE平臺(tái)的系統(tǒng)具有諸多優(yōu)點(diǎn),但目前J2EE還沒有被廣泛應(yīng)用在元數(shù)據(jù)管理中。本文提出的基于J2EE架構(gòu)的元數(shù)據(jù)管理系統(tǒng)建設(shè)方法和應(yīng)用實(shí)例,是將J2EE引入元數(shù)據(jù)管理的一個(gè)初步嘗試。
1關(guān)鍵技術(shù)研究
1.1基于XML的多源異構(gòu)數(shù)據(jù)融合
各個(gè)部門采用了不同的元數(shù)據(jù)存儲(chǔ)方式。由于缺乏統(tǒng)一的標(biāo)準(zhǔn),很難對(duì)這些元數(shù)據(jù)進(jìn)行有效的管理和。必須實(shí)現(xiàn)多源異構(gòu)數(shù)據(jù)的融合。
采用簡(jiǎn)單文本文件作為中間介質(zhì)的信息交換方法不能描述數(shù)據(jù)的結(jié)構(gòu),不適合用來進(jìn)行復(fù)雜的元數(shù)據(jù)交換。XML技術(shù)實(shí)現(xiàn)信息交換與共享已經(jīng)成為一種發(fā)展趨勢(shì)。孫君明等人[4]對(duì)基于XML的數(shù)據(jù)交換技術(shù)進(jìn)行了研究。XML是采用線性語法描述樹狀結(jié)構(gòu)的標(biāo)志語言。作為一種數(shù)據(jù)交換的中間件,XML具有跨平臺(tái)、結(jié)構(gòu)化和自描述性強(qiáng)的特點(diǎn)。
用XML實(shí)現(xiàn)多源異構(gòu)數(shù)據(jù)融合的過程如圖1所示。
在圖1中,首先各地的數(shù)據(jù)提供者通過瀏覽器將數(shù)據(jù)傳送給服務(wù)器,由服務(wù)器端的XML引擎將這些數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)的XML文檔;再由一些服務(wù)組件根據(jù)需要對(duì)XML文檔進(jìn)行處理,如建立索引等。這樣,多源異構(gòu)數(shù)據(jù)就被轉(zhuǎn)換成了具有統(tǒng)一標(biāo)準(zhǔn)的XML文檔;通過對(duì)這樣具有固定結(jié)構(gòu)的XML中間件的解析,實(shí)現(xiàn)從XML文檔到數(shù)據(jù)庫的轉(zhuǎn)換,完成了多源異構(gòu)數(shù)據(jù)的統(tǒng)一存儲(chǔ)[4,5]。進(jìn)行信息時(shí),根據(jù)客戶端的查詢條件在數(shù)據(jù)庫中提取相應(yīng)的結(jié)果集,形成XML文檔,將該文檔發(fā)送至客戶端;由客戶端的格式化工具解析該XML文檔,顯示在客戶端。
1.2遙感數(shù)據(jù)的分塊存儲(chǔ)
遙感數(shù)據(jù)(如DEM、TM、ASTER等)具有數(shù)據(jù)量龐大的特點(diǎn),應(yīng)用數(shù)據(jù)庫中的大數(shù)據(jù)類型存儲(chǔ),如Oracle9i中的Blob、SQLServer2000中的Image。但是如果將它們直接存入數(shù)據(jù)庫中會(huì)造成系統(tǒng)效率低下;可采用一種分塊存儲(chǔ)的策略,將原始數(shù)據(jù)分割成大小一致的若干塊,一塊一塊地進(jìn)行存儲(chǔ)。分塊大小要根據(jù)磁盤的讀寫性能和網(wǎng)絡(luò)的傳輸性能確定,過大或過小都會(huì)導(dǎo)致系統(tǒng)運(yùn)行效率低下[6]。每塊數(shù)據(jù)以一條記錄的方式進(jìn)行存儲(chǔ),包含數(shù)據(jù)的編號(hào)、經(jīng)緯度、步長(zhǎng)、時(shí)間等信息,并且建立索引。
1.3數(shù)據(jù)持久化
為了能使系統(tǒng)部署在任意數(shù)據(jù)庫系統(tǒng)上,加入了一個(gè)持久化層,作為連接Java應(yīng)用和關(guān)系數(shù)據(jù)庫的通道。為數(shù)據(jù)庫中的每張表建立一個(gè)Java對(duì)象,定義好對(duì)象與表之間的對(duì)應(yīng)關(guān)系,只需對(duì)Java對(duì)象進(jìn)行操作,不用關(guān)心SQL語句和系統(tǒng)最終使用的數(shù)據(jù)庫。持久層作為一個(gè)中間件,封裝對(duì)數(shù)據(jù)庫的操作,提供接口,隱藏?cái)?shù)據(jù)訪問的細(xì)節(jié)[7]。
1.4用戶訪問控制
元數(shù)據(jù)的使用人員級(jí)別復(fù)雜,用戶管理困難。使用RBAC(Role-BasedAccessControl,基于角色的訪問控制)模型,可以提高管理的效率和安全性。RBAC在傳統(tǒng)的用戶——權(quán)限模型中引入了角色的概念。角色是一組用戶的集合,也是一個(gè)授權(quán)的集合,它將一組用戶與權(quán)限聯(lián)系起來。一個(gè)角色可以與多個(gè)用戶對(duì)應(yīng),一個(gè)用戶可以擁有多個(gè)角色,每個(gè)角色可以執(zhí)行多種權(quán)限,每個(gè)權(quán)限可以被多個(gè)角色共享。對(duì)一個(gè)用戶授予相應(yīng)的角色,使用戶可以進(jìn)行相應(yīng)的操作[8]。引入角色可以使系統(tǒng)的安全機(jī)制具有很大的靈活性,減少了權(quán)限管理的負(fù)擔(dān)和代價(jià),同時(shí)也增強(qiáng)了系統(tǒng)的可維護(hù)性。
2元數(shù)據(jù)管理系統(tǒng)的設(shè)計(jì)
使用本系統(tǒng)的各部門實(shí)際情況不同,系統(tǒng)可能被部署到不同的平臺(tái)上,而且需要對(duì)該系統(tǒng)進(jìn)行一定的擴(kuò)展和改進(jìn)。所以在系統(tǒng)設(shè)計(jì)上,需要充分考慮到系統(tǒng)的可移植性和可擴(kuò)展性。
2.1系統(tǒng)設(shè)計(jì)
本系統(tǒng)基于J2EE平臺(tái),是一個(gè)瀏覽器/服務(wù)器(B/S)結(jié)構(gòu)的系統(tǒng),具有J2EE平臺(tái)可以跨系統(tǒng)使用的特性,采用MVC(Model-View-Controller)應(yīng)用框架。MVC設(shè)計(jì)框架的內(nèi)部原理比較復(fù)雜,將MVC運(yùn)用到應(yīng)用程序中會(huì)帶來大量的額外工作,增加應(yīng)用的復(fù)雜性。但是MVC可以輕松地實(shí)現(xiàn)程序代碼與HTML的分離,而且MVC的三個(gè)模塊相互獨(dú)立,可以構(gòu)造良好的松耦合構(gòu)件,提高應(yīng)用系統(tǒng)的可維護(hù)性、可擴(kuò)展性、可移植性和可復(fù)用性。從長(zhǎng)遠(yuǎn)的應(yīng)用考慮,應(yīng)使用MVC設(shè)計(jì)框架[9]。
本系統(tǒng)在傳統(tǒng)的B/S三層結(jié)構(gòu)上作了一定的改進(jìn)。
(1)表現(xiàn)層。在該層使用Struts框架。Struts是一個(gè)MVC模式的表現(xiàn)層應(yīng)用框架。瀏覽器向Web服務(wù)器提出請(qǐng)求后,Web服務(wù)器會(huì)把請(qǐng)求交給控制器處理。ActionServlet控制器根據(jù)請(qǐng)求的不同,將它們轉(zhuǎn)發(fā)給不同的Action實(shí)例。Action實(shí)例在這里充當(dāng)了用戶請(qǐng)求與業(yè)務(wù)處理邏輯之間的適配器,它只負(fù)責(zé)控制整個(gè)程序的流程,不關(guān)心具體業(yè)務(wù)的實(shí)現(xiàn),實(shí)現(xiàn)了請(qǐng)求與業(yè)務(wù)邏輯的分開。本系統(tǒng)使用一個(gè)高效的Action類——DispatchAction類。只要繼承該類,就可以在一個(gè)Action中集成多個(gè)業(yè)務(wù)方法,有利于系統(tǒng)的維護(hù)。在視圖顯示方面,其大量使用了Struts標(biāo)簽,用來控制顯示的邏輯和內(nèi)容。由于不同平臺(tái)采取的編碼方式不同,在進(jìn)行系統(tǒng)移植時(shí)很容易出現(xiàn)中文亂碼問題。在這里使用一個(gè)可插拔式的過濾器,實(shí)現(xiàn)對(duì)請(qǐng)求和響應(yīng)的預(yù)處理及后處理,很好地解決了字符編碼問題,使系統(tǒng)可以在不同的平臺(tái)上進(jìn)行移植。
(2)業(yè)務(wù)層。它處理用戶請(qǐng)求和應(yīng)用邏輯。在處理之前,將所有涉及到表現(xiàn)層的數(shù)據(jù)結(jié)構(gòu)替換成更加通用的數(shù)據(jù)結(jié)構(gòu)類型;使用通用的、與表現(xiàn)層無關(guān)的數(shù)據(jù)結(jié)構(gòu)在這兩層之間傳遞參數(shù)。表現(xiàn)層方法提交的參數(shù)類型主要是HttpServletRequest和HttpServletResponse;使用這樣的參數(shù)會(huì)增加系統(tǒng)的耦合性,不利于代碼的重用,所以要將它們處理成通用的數(shù)據(jù)類型,如數(shù)組。這一過程在Action適配器進(jìn)行轉(zhuǎn)發(fā)之前完成,提供給業(yè)務(wù)層的參數(shù)是通用的數(shù)據(jù)類型[10]。業(yè)務(wù)層方法之間的通信也通過通用的參數(shù)類型進(jìn)行,使得每個(gè)業(yè)務(wù)方法均獨(dú)立存在于系統(tǒng)之中,在很大程度上減少了系統(tǒng)的耦合,提高了可復(fù)用性。
(3)數(shù)據(jù)層。為了實(shí)現(xiàn)數(shù)據(jù)庫訪問細(xì)節(jié)與業(yè)務(wù)層的分離,引入持久化層。
為了使系統(tǒng)具有較好的可維護(hù)性、可移植性和可復(fù)用性,采用以上的設(shè)計(jì)思想,以搭建一個(gè)邏輯清楚、功能明確、模塊化程度高的元數(shù)據(jù)管理系統(tǒng)。
2.2工作流程
用戶通過瀏覽器(IE/Netscape)向服務(wù)器提交請(qǐng)求,請(qǐng)求經(jīng)過過濾器處理后再提交給控制器ActionServlet;控制器根據(jù)請(qǐng)求的類別將它們轉(zhuǎn)發(fā)給不同的DispatchAction類。該類中的方法對(duì)參數(shù)進(jìn)行處理后調(diào)用不同的業(yè)務(wù)邏輯對(duì)請(qǐng)求進(jìn)行分析處理,處理后得到的信息通過視圖顯示在用戶瀏覽器上。
3基于J2EE的元數(shù)據(jù)管理系統(tǒng)的實(shí)現(xiàn)
根據(jù)本文提出的設(shè)計(jì)思想,實(shí)現(xiàn)了一個(gè)元數(shù)據(jù)管理系統(tǒng)——基于J2EE的小城鎮(zhèn)元數(shù)據(jù)管理平臺(tái)。本實(shí)例以J2EE平臺(tái)為基礎(chǔ),Tomcat5.0為服務(wù)器,可以使用Oracle9i、SQLServer2000、MySQL數(shù)據(jù)庫,使用了ORM(Object-RelationMapping)模式的持久化層中間件Hibernate,以Eclipse3.0為開發(fā)平臺(tái)。在系統(tǒng)實(shí)現(xiàn)過程中,使用了以J2EE平臺(tái)為基礎(chǔ)的各項(xiàng)技術(shù),遵循Java2標(biāo)準(zhǔn)平臺(tái)的編碼標(biāo)準(zhǔn),注重系統(tǒng)的可擴(kuò)展性和可維護(hù)性。系統(tǒng)的XML引擎采用了DOM(DocumentObjectModel)和SAX(SimpleAPIforXML)。DOM負(fù)責(zé)XML文檔的生成和修改;SAX對(duì)XML進(jìn)行解析。
小城鎮(zhèn)元數(shù)據(jù)管理平臺(tái)的功能主要分為管理與檢索兩部分,可以實(shí)現(xiàn)對(duì)矢量數(shù)據(jù)、柵格數(shù)據(jù)、文檔數(shù)據(jù)、原始試驗(yàn)數(shù)據(jù)、報(bào)表數(shù)據(jù)和模型數(shù)據(jù)的管理與檢索;用戶管理可以對(duì)用戶進(jìn)行權(quán)限設(shè)置;系統(tǒng)管理功能可以提供系統(tǒng)運(yùn)行的日志和幫助文件。
4結(jié)束語
基于J2EE的元數(shù)據(jù)管理平臺(tái),具有良好的跨平臺(tái)特性;解決了多源異構(gòu)數(shù)據(jù)的融合、遙感數(shù)據(jù)的存儲(chǔ)、數(shù)據(jù)持久化和用戶控制訪問問題;在設(shè)計(jì)和實(shí)現(xiàn)過程中遵循J2EE的設(shè)計(jì)模式,具有良好的擴(kuò)展性和維護(hù)性;功能模塊具有低耦合的特點(diǎn),極大地提高了代碼的可復(fù)用性;可對(duì)元數(shù)據(jù)進(jìn)行有效管理,實(shí)現(xiàn)信息的共享,廣泛地應(yīng)用在各個(gè)領(lǐng)域。在如何提高系統(tǒng)的安全性方面還有待于對(duì)其進(jìn)行進(jìn)一步的研究。
參考文獻(xiàn):
[1]吳洪橋,何建邦,池天河,等.基于Internet的元數(shù)據(jù)管理模式研究[J].計(jì)算機(jī)科學(xué),2003,30(4):89-91.[2]李廣乾.小城鎮(zhèn)信息化建設(shè)的基本思路[J].信息化建設(shè),2005(Z1):24-26.
[3]趙春江,楊信廷.加強(qiáng)信息技術(shù)研究和開發(fā)促進(jìn)小城鎮(zhèn)健康發(fā)展[J].小城鎮(zhèn)建設(shè),2005(1):22-23.
[4]孫君明,郭紅.基于XML的異構(gòu)信息交換技術(shù)研究[J].計(jì)算機(jī)應(yīng)用研究,2003,20(1):70-72.
[5]李德冠,陳夢(mèng)東.一種基于XML的數(shù)據(jù)交換系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)[J].微機(jī)發(fā)展,2005,15(12):12-14.
[6]朱雷,潘懋,李麗勤,等.GIS中海量柵格數(shù)據(jù)的處理技術(shù)研究[J].計(jì)算機(jī)應(yīng)用研究,2006,23(1):66-68.
[7]孫衛(wèi)琴.精通Hibernate:Java對(duì)象持久化技術(shù)詳解[M].北京:電子工業(yè)出版社,2005.
[8]范會(huì)聯(lián),李獻(xiàn)禮.基于Struts框架的Web信息系統(tǒng)中RBAC的實(shí)現(xiàn)[J].計(jì)算機(jī)時(shí)代,2005(12):33-34.
[9]孫衛(wèi)琴.基于MVC的JavaWeb設(shè)計(jì)與開發(fā)[M].北京:電子工業(yè)出版社,2004.
[10]ALURD,CRUPIJ,MALKSD.J2EE核心模式[M].第2版.北京:機(jī)械工業(yè)出版社,2005.
- 上一篇:如何進(jìn)行論文答辯
- 下一篇:IDL分布式GIS應(yīng)用思考