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