專利名稱:三維空間信息的存儲方法、裝置、系統(tǒng)及調(diào)度系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及地理信息系統(tǒng)技術領域,特別地,涉及一種三維空間信息的存儲方法、
裝置、系統(tǒng)及調(diào)度系統(tǒng)。
背景技術:
網(wǎng)絡地理信息系統(tǒng)(Geogr即hic Information System, GIS)服務,尤其是網(wǎng)絡三 維GIS服務是目前GIS開發(fā)的主流和發(fā)展方向,大眾對這種服務的需求也越來越大,越來越 多的三維GIS功能以網(wǎng)絡服務的形式向企業(yè)和公眾用戶提供。與傳統(tǒng)的網(wǎng)絡服務不同,三 維GIS網(wǎng)絡服務伴隨著海量的空間數(shù)據(jù)和相關屬性數(shù)據(jù),這些服務不僅涉及到廣大的地理 范圍,如一個城市, 一個省或地區(qū)的數(shù)據(jù),而且還深入涉及到各行各業(yè),其包含的數(shù)據(jù)類型 有地形、影像,矢量,模型,屬性,紋理,聲音,文字,多媒體等,數(shù)據(jù)量非常大。在網(wǎng)絡技術日 益成熟的情況下,數(shù)據(jù)組織及其調(diào)度效率,即采用何種方式,對這種海量的數(shù)據(jù)進行組織和 調(diào)度,以使其能夠快速高效的為大眾獲取,是目前網(wǎng)絡三維GIS服務的難題。
現(xiàn)有技術一般使用通用數(shù)據(jù)格式,以集合的形式統(tǒng)一管理上述數(shù)據(jù)。為了節(jié)約存 儲資源,一般只在服務器上保留一份代表較大地理范圍的最高分辨率的數(shù)據(jù),這里稱為地 圖區(qū)域,其代表的地理范圍一般以一個區(qū)域為一個整體。在為用戶提供數(shù)據(jù)服務時,實時的 根據(jù)用戶請求顯示區(qū)域的大小和分辨率要求進行數(shù)據(jù)抽取,上述顯示區(qū)域可能是完整的地 圖區(qū)域范圍,也有可能是上述整個地圖區(qū)域的某一局部。 由于現(xiàn)有技術中的GIS服務器提供數(shù)據(jù)服務時,用戶往往需要的顯示區(qū)域不是整 個地圖區(qū)域的數(shù)據(jù),而是一個小范圍內(nèi)的某一分辨率下的數(shù)據(jù)。因此在現(xiàn)有技術下,服務器 需要調(diào)度上述整個地圖區(qū)域的詳細數(shù)據(jù),即代表整個大區(qū)域的最高分辨率的數(shù)據(jù),再根據(jù) 顯示區(qū)域的請求參數(shù)來抽取出用戶需要的數(shù)據(jù)。這樣服務器就有一個復雜的計算過程,需 要一定的資源和計算時間。當請求比較多時,這種方式的反應速度就會很慢,甚至造成服務 器的癱瘓。 為了節(jié)約用戶所需數(shù)據(jù)的檢索時間,現(xiàn)有技術采用在服務器上保留一份最高分辨
率的數(shù)據(jù),同時為該數(shù)據(jù)建立相應的索引表。如果有數(shù)據(jù)服務的需求,則首先根據(jù)需求在索
引表中檢索相應的信息,然后再從上述最高分辨率的數(shù)據(jù)文件中抽取相應的數(shù)據(jù)。 上述利用索引表檢索數(shù)據(jù)的方式雖然有效節(jié)約了用戶所需數(shù)據(jù)的檢索時間,但是
其不足之處在于索引表本身會占用一定的存儲空間,同時索引表也是需要維護的。由于
一個地圖區(qū)域的地理范圍一般比較大,所以其對應的最高分辨率的數(shù)據(jù)文件也比較大,索
引表對應的文件就也比較大,即索引表很復雜,因而占用較大的空間。由于索引表文件比較
大,故在檢索數(shù)據(jù)對象時也會花較多的時間,同時,對索引表的維護也比較復雜。 另外,由于一個地圖區(qū)域的地理范圍對應的最高分辨率的數(shù)據(jù)是一個整體,很難
進行劃分,因此進行分布式管理比較困難,因而繁重的負載往往集中在一臺服務器上,同樣
會造成服務器反應速度慢,甚至是服務器癱瘓,無法發(fā)揮多服務器分布式服務的優(yōu)勢。
總之,需要本領域技術人員迫切解決的一個技術問題就是如何提供一種三維空間信息數(shù)據(jù)的存儲方法和系統(tǒng),以提高三維空間信息系統(tǒng)中服務器的反應速度進而提高顯 示區(qū)域數(shù)據(jù)的調(diào)度效率。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術問題是提供一種三維空間信息的存儲方法、裝置、系統(tǒng)及 調(diào)度系統(tǒng),能夠有效提高三維空間信息系統(tǒng)中服務器的反應速度,進而提高用戶所需顯示 區(qū)域數(shù)據(jù)的調(diào)度效率。 為了解決上述問題,本發(fā)明公開了一種三維空間信息的存儲方法,該方法由計算 機執(zhí)行,包括抽取數(shù)據(jù),按照預設的分辨率對通用格式的三維空間數(shù)據(jù)進行數(shù)據(jù)抽取,獲 得不同分辨率下的抽取數(shù)據(jù);劃分數(shù)據(jù)塊,將上述抽取數(shù)據(jù)劃分為數(shù)個規(guī)則的子數(shù)據(jù)塊; 散列數(shù)據(jù),采用基于空間關系的散列函數(shù)對上述子數(shù)據(jù)塊進行散列操作,得到散列值,該散 列值代表上述子數(shù)據(jù)塊的存放地址;存儲數(shù)據(jù),按照上述散列值將對應的子數(shù)據(jù)塊逐個存 儲,得到散列文件集。 優(yōu)選的,上述存儲數(shù)據(jù)步驟還包括將上述散列文件集按分布式策略進行劃分,獲 得至少兩個散列文件子集;將上述散列文件子集分散布局到至少兩個服務器節(jié)點上進行存儲。 優(yōu)選的,上述存儲方法還包括依據(jù)服務請求頻率將客戶請求服務所需的散列文 件數(shù)據(jù)進行排序;對請求頻率高的散列文件數(shù)據(jù)進行緩存處理。 優(yōu)選的,上述對請求頻率高的散列文件數(shù)據(jù)進行緩存,具體為對更新頻率高的數(shù) 據(jù),采用數(shù)據(jù)引用的緩存更新機制進行緩存處理;對更新頻率低的數(shù)據(jù),采用數(shù)據(jù)拷貝的緩 存更新機制進行緩存處理。 相應的,本發(fā)明還提供了針對上述三維空間信息存儲方法的存儲裝置,包括數(shù)據(jù) 抽取模塊,用于按照預設的分辨率對通用格式的三維空間數(shù)據(jù)進行數(shù)據(jù)抽取,獲得不同分 辨率下的抽取數(shù)據(jù);數(shù)據(jù)劃分模塊,用于將上述抽取數(shù)據(jù)劃分為數(shù)個規(guī)則的子數(shù)據(jù)塊;數(shù) 據(jù)散列模塊,采用基于空間關系的散列函數(shù)對上述子數(shù)據(jù)塊進行散列操作,得到散列值;數(shù) 據(jù)存儲模塊,用于按照上述數(shù)據(jù)散列模塊輸出的散列值將對應的子數(shù)據(jù)塊逐個存儲,得到 散列文件集。 優(yōu)選的,上述存儲裝置還包括排序模塊,用于依據(jù)服務請求頻率將客戶請求服務 所需的散列文件數(shù)據(jù)進行排序;緩存模塊,用于對請求頻率高的散列文件數(shù)據(jù)進行緩存處理。 優(yōu)選的,上述緩存模塊緩存散列文件數(shù)據(jù)時采用以下緩存更新機制對更新頻率 高的數(shù)據(jù),采用數(shù)據(jù)引用的緩存更新機制進行緩存處理;對更新頻率低的數(shù)據(jù),采用數(shù)據(jù)拷 貝的緩存更新機制進行緩存處理。 進一步,本發(fā)明實施例還提供了一種三維空間信息的存儲系統(tǒng),包括主服務器和 節(jié)點服務器,其中,上述主服務器包括數(shù)據(jù)抽取模塊,用于按照預設的分辨率對通用格式 的三維空間數(shù)據(jù)進行數(shù)據(jù)抽取,獲得不同分辨率下的抽取數(shù)據(jù);數(shù)據(jù)劃分模塊,用于將上述 抽取數(shù)據(jù)劃分為數(shù)個規(guī)則的子數(shù)據(jù)塊;數(shù)據(jù)散列模塊,采用基于空間關系的散列函數(shù)對上 述子數(shù)據(jù)塊進行散列操作,得到散列值;數(shù)據(jù)存儲模塊,用于按照上述數(shù)據(jù)散列模塊輸出的 散列值將對應的子數(shù)據(jù)塊逐個存儲,得到散列文件集;分布式運算模塊,用于將上述散列文件集按分布式策略進行劃分,得到至少兩個散列文件子集;分配模塊,用于將上述分布式運
算模塊獲得的至少兩個散列文件子集分散布局到至少兩個節(jié)點服務器上進行存儲; 每個上述節(jié)點服務器包括數(shù)據(jù)庫模塊,用于存儲上述分配模塊分配的散列文件子集。 優(yōu)選的,上述節(jié)點服務器還包括請求排序模塊,用于依據(jù)服務請求頻率將客戶請
求服務所需的散列文件數(shù)據(jù)進行排序;緩存模塊,用于緩存請求頻率高的散列文件數(shù)據(jù)。 優(yōu)選的,上述緩存模塊緩存更新頻率高的數(shù)據(jù)時,采用數(shù)據(jù)引用的緩存更新機制;
上述緩存模塊緩存更新頻率低的數(shù)據(jù)時,采用數(shù)據(jù)拷貝的緩存更新機制。 最后,本發(fā)明實施例還提供了一種包括上述任一存儲系統(tǒng)的三維空間信息的調(diào)度
系統(tǒng),包括客戶端、主服務器和節(jié)點服務器,其中上述客戶端通過網(wǎng)絡與上述主服務器和
節(jié)點服務器通信,用于請求主服務器進行地理信息查詢。上述主服務器包括數(shù)據(jù)抽取模
塊,用于按照預設的分辨率對通用格式的三維空間數(shù)據(jù)進行數(shù)據(jù)抽取,獲得不同分辨率下
的抽取數(shù)據(jù);數(shù)據(jù)劃分模塊,用于將上述抽取數(shù)據(jù)劃分為數(shù)個規(guī)則的子數(shù)據(jù)塊;數(shù)據(jù)散列
模塊,采用基于空間關系的散列函數(shù)對上述數(shù)個子數(shù)據(jù)塊進行散列操作,得到散列文件集;
分布式運算模塊,用于將上述散列文件集按分布式策略進行劃分,得到至少兩個散列文件
子集;分配模塊,用于將上述分布式運算模塊獲得的至少兩個散列文件子集分散布局到至
少兩個節(jié)點服務器上進行存儲。 每個上述節(jié)點服務器包括數(shù)據(jù)庫模塊,用于存儲上述分配模塊分配的散列文件子集。 與現(xiàn)有技術相比,本發(fā)明具有以下優(yōu)點 采用本發(fā)明實施例提供的三維空間信息的存儲方法由于在數(shù)據(jù)散列的過程中,對 抽取數(shù)據(jù)按小區(qū)域進行了切割,并根據(jù)分辨率不同,保留了多個數(shù)據(jù)備份,在進行數(shù)據(jù)服務 時,不需要實時的數(shù)據(jù)抽取,而是直接請求所需要的數(shù)據(jù)進行下載,有效減小了服務器的運 算負載,提高了系統(tǒng)的反應速度,進而提高了服務效率。
圖1是本發(fā)明三維空間信息的存儲方法實施例一的示意圖; 圖2是本發(fā)明三維空間信息的存儲方法第一優(yōu)選實施例示意圖; 圖3是本發(fā)明實施例一數(shù)據(jù)散列的結(jié)果示意圖; 圖4是本發(fā)明三維空間信息的存儲方法實施例二的示意圖; 圖5是本發(fā)明三維空間信息的存儲方法第二優(yōu)選實施例示意圖; 圖6是本發(fā)明實施例二數(shù)據(jù)散列的結(jié)果示意圖; 圖7是本發(fā)明三維空間數(shù)據(jù)的存儲裝置實施例的示意圖; 圖8是本發(fā)明三維空間數(shù)據(jù)的存儲系統(tǒng)實施例的示意圖; 圖8-A是本發(fā)明系統(tǒng)實施例中主服務器的結(jié)構(gòu)示意圖; 圖8-B是本發(fā)明系統(tǒng)實施例中節(jié)點服務器的結(jié)構(gòu)示意圖。
具體實施例方式
為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和具體實施方式
對本發(fā)明作進一步詳細的說明。 本發(fā)明實施例的核心構(gòu)思之一在于利用地理信息的三維空間特性,通過構(gòu)建散 列函數(shù)來表示地塊、地物或模型等的空間位置(即現(xiàn)實空間的三維坐標)與其存儲位置之 間的映射關系,實現(xiàn)海量地理信息的散列存儲。 在介紹本發(fā)明實施例之前,首先了解一下地圖區(qū)域、顯示區(qū)域和分辨率三者之間 關系。在以下的實施例中,地圖區(qū)域是指一個地圖要表達的某一地域范圍的信息;顯示區(qū)域 是指用戶所需要的顯示區(qū)域,這個區(qū)域可能是完整的地圖區(qū)域,也可能是上述整個地圖區(qū) 域的某一局部;分辨率是指數(shù)據(jù)的詳細程度。對于同一地圖區(qū)域的三維空間地理信息,分辨 率越小則對應的數(shù)據(jù)量就越小,即三維空間數(shù)據(jù)的詳細程度就越低;反之,分辨率越大則數(shù) 據(jù)量越大,三維空間數(shù)據(jù)的詳細程度就越高。顯示區(qū)域或地圖區(qū)域越大且分辨率越低,數(shù)據(jù) 的詳細程度就越低,數(shù)據(jù)量就越小。 參照圖l,示出了本發(fā)明三維空間信息的存儲方法實施例一的示意圖,該方法由計 算機執(zhí)行,包括 步驟11、抽取數(shù)據(jù),按照預設的分辨率對通用格式的三維空間數(shù)據(jù)進行數(shù)據(jù)抽取, 獲得不同分辨率下的抽取數(shù)據(jù); 具體為,根據(jù)不同的分辨率對整個地圖區(qū)域進行數(shù)據(jù)抽取,得到不同的抽取數(shù)據(jù)。 每個抽取數(shù)據(jù)代表上述預設分辨率下的整個地圖區(qū)域。即,該步驟中,抽取制作后得到的數(shù) 據(jù)與原來沒有進行抽取前的數(shù)據(jù)的覆蓋范圍是相同的,只是地圖的信息詳細程度有差別。
步驟12、劃分數(shù)據(jù),將上述抽取數(shù)據(jù)劃分為數(shù)個規(guī)則的子數(shù)據(jù)塊;其中,每個子數(shù) 據(jù)塊代表上述地圖區(qū)域中的局部范圍信息,包括三維坐標和分辨率信息。每個子數(shù)據(jù)塊的 數(shù)據(jù)量都比較小。 步驟13、散列數(shù)據(jù),采用基于空間關系的散列函數(shù)對上述子數(shù)據(jù)塊進行散列操作, 得到散列值。 上述散列函數(shù)用于找到子數(shù)據(jù)塊與數(shù)據(jù)存放地址之間的映射關系。經(jīng)過數(shù)據(jù)散列
操作后,每一個子數(shù)據(jù)塊對應一個散列值,該散列值代表對應子數(shù)據(jù)塊的存放地址。 具體為,以上述每個子數(shù)據(jù)塊的坐標參數(shù)和分辨率為散列函數(shù)的輸入,計算上述
子數(shù)據(jù)塊散列后的存放地址。其中,上述坐標參數(shù)為三維空間坐標,表示物體在三維空間中
的位置。 步驟15、存儲數(shù)據(jù),按上述散列值將對應的子數(shù)據(jù)塊逐個存儲,得到散列文件集。 具體為將步驟12得到的子數(shù)據(jù)塊按照步驟13得到的散列值存儲到服務器的相應位置,全 部存儲后得到散列文件集。 參照圖2,作為本發(fā)明三維空間信息的存儲方法第一優(yōu)選實施例,除包括步驟 11-15夕卜,還可以包括 步驟18、依據(jù)服務請求頻率將客戶請求服務所需的散列文件數(shù)據(jù)進行排序;
步驟19、對請求頻率高的散列文件數(shù)據(jù)進行緩存處理。 優(yōu)選地,在上述緩存步驟19中,根據(jù)數(shù)據(jù)需要更新的頻率,采用不同的緩存機制, 具體為 對更新頻率高的數(shù)據(jù),采用數(shù)據(jù)引用的緩存更新機制進行緩存處理;
對更新頻率低的數(shù)據(jù),采用數(shù)據(jù)拷貝的緩存更新機制進行緩存處理。
S卩,如果數(shù)據(jù)為經(jīng)常需要更新的數(shù)據(jù),則使用數(shù)據(jù)引用更新機制進行緩存,如果數(shù) 據(jù)為不需要經(jīng)常更新的數(shù)據(jù),可以使用數(shù)據(jù)拷貝更新機制進行緩存。 上述第一優(yōu)選實施例相較于實施例一,增加了對請求頻率比較高的散列文件數(shù)據(jù) 采用緩存機制;進一步,依據(jù)數(shù)據(jù)需要更新的情況,采用不同的緩存更新機制進行緩存的處 理方法,有效提高了系統(tǒng)的反應速度。 參照圖3,示出了本發(fā)明實施例一數(shù)據(jù)散列的結(jié)果示意圖。從圖上可以看出,通過 散列,為三維GIS服務提供一系列小的、具有不同分辨率的、可實時下載的數(shù)據(jù)塊,這些數(shù) 據(jù)塊是三維GIS高效服務的基礎。該圖顯示的是數(shù)據(jù)量比較小的情況,散列后的散列文件 存儲于服務器的相應存儲位置即可。 對于數(shù)據(jù)量比較大的情況,本發(fā)明實施例采用分布式布局對上述步驟15獲得的 散列文件進一步組織。具體參見圖4所示的本發(fā)明三維空間信息的存儲方法實施例二的示 意圖。包括 步驟11、抽取數(shù)據(jù),按照預設的分辨率對通用格式的三維空間數(shù)據(jù)進行數(shù)據(jù)抽取, 獲得不同分辨率下的抽取數(shù)據(jù); 步驟12、劃分數(shù)據(jù)塊,將上述抽取數(shù)據(jù)劃分為數(shù)個規(guī)則的子數(shù)據(jù)塊; 步驟13、散列數(shù)據(jù),采用基于空間關系的散列函數(shù)對上述子數(shù)據(jù)塊進行散列操作,
得到散列值; 上述散列值代表對應子數(shù)據(jù)塊的存放地址。 步驟15、存儲數(shù)據(jù),按照上述散列值將對應的子數(shù)據(jù)塊逐個存儲,得到散列文件 集; 步驟16、將上述散列文件集按分布式策略進行劃分,獲得至少兩個散列文件子 集; 具體為按照一定的劃分依據(jù),將步驟15獲得的散列文件集劃分為至少兩份散列 文件子集。上述劃分依據(jù)需要根據(jù)數(shù)據(jù)服務的類型和客戶可能訪問的具體情況而定,可以 是數(shù)據(jù)類型、服務請求頻率或顯示區(qū)域等其中的一種,或多種因素的組合。例如,可以僅憑 數(shù)據(jù)類型將步驟15得到的散列文件集劃分成多份散列文件子集;也可以按照數(shù)據(jù)類型+請 求頻率情況將步驟15得到的散列文件集劃分成多份散列文件子集,其它情況此處不再舉 例說明。 步驟17、將上述散列文件子集分散布局到至少兩個服務器節(jié)點上進行存儲。
參照圖5,示出了本發(fā)明三維空間信息的存儲方法第二優(yōu)選實施例,除包括上述步 驟11-17夕卜,還可以包括 步驟18、依據(jù)服務請求頻率將客戶請求服務所需的散列文件數(shù)據(jù)進行排序;
步驟19、對請求頻率高的散列文件數(shù)據(jù)進行緩存。 優(yōu)選地,在上述緩存步驟19中,根據(jù)數(shù)據(jù)需要更新的頻率,采用不同的緩存機制 進行緩存處理,具體為 對更新頻率高的數(shù)據(jù),采用數(shù)據(jù)引用的緩存更新機制;
對更新頻率低的數(shù)據(jù),采用數(shù)據(jù)拷貝的緩存更新機制。 S卩,如果數(shù)據(jù)類型為經(jīng)常需要更新的數(shù)據(jù),則使用數(shù)據(jù)引用的緩存方式;如果數(shù)據(jù) 類型為不需要經(jīng)常更新的數(shù)據(jù),可以使用數(shù)據(jù)拷貝的緩存方式。
同樣,第二優(yōu)選實施例相較于實施例二,增加了對請求頻率比較高的數(shù)據(jù),采用緩 存機制;進一步,依據(jù)數(shù)據(jù)需要更新的情況,采用不同的緩存更新機制進行緩存;有效提高 了系統(tǒng)的反應速度。 而實施例二與實施例一的區(qū)別在于,對散列操作后得到的散列文件進行了分布式 布局,將散列文件集采用分布式策略分散布局到除了主服務器以外的多個節(jié)點服務器上, 用戶可以直接通過節(jié)點服務器進行數(shù)據(jù)訪問和下載,有效減輕的主服務器的負載,平衡了 服務器集群中各個服務器的負載,使主服務器負載降到最低。本存儲方法第二實施例的結(jié) 果是散列文件存儲于一個分布式的數(shù)據(jù)服務器群,如圖6所示。該服務器群的每個服務節(jié) 點上存儲的仍然是散列文件,用戶可以通過主服務器進行請求,并由服務節(jié)點直接發(fā)送相 應的數(shù)據(jù),減小了主服務器的工作量,有效提高了數(shù)據(jù)調(diào)度效率。 對應上述三維空間數(shù)據(jù)存儲方法實施例,本發(fā)明實施例還提供了 一種三維空間數(shù) 據(jù)存儲裝置。 參照圖7,示出了本發(fā)明三維空間數(shù)據(jù)的存儲裝置實施例的示意圖,包括 數(shù)據(jù)抽取模塊71,用于按照預設的分辨率對通用格式的三維空間數(shù)據(jù)進行數(shù)據(jù)抽
取,獲得抽取數(shù)據(jù); 數(shù)據(jù)劃分模塊72,用于將數(shù)據(jù)抽取模塊71獲得的抽取數(shù)據(jù)劃分為數(shù)個子數(shù)據(jù)塊;
數(shù)據(jù)散列模塊73,采用基于空間關系的散列函數(shù)對數(shù)據(jù)劃分模塊72劃分后的每 個子數(shù)據(jù)塊進行散列操作,得到散列值; 數(shù)據(jù)存儲模塊75,用于按照數(shù)據(jù)散列模塊73輸出的散列值將對應的子數(shù)據(jù)塊逐 個存儲,得到散列文件集。 在本發(fā)明三維空間數(shù)據(jù)存儲裝置的另一優(yōu)選實施例中,除了包括上述模塊71-75, 還可以進一步包括 排序模塊77,用于依據(jù)服務請求頻率將數(shù)據(jù)存儲模塊75中的客戶請求服務所需 的散列文件數(shù)據(jù)進行排序; 緩存模塊79,用于將排序模塊77排出的請求頻率高的散列文件數(shù)據(jù)進行緩存處理。 緩存模塊79對上述請求頻率高的散列文件進行緩存時,采用以下緩存更新機制 對更新頻率高的數(shù)據(jù),采用數(shù)據(jù)引用的緩存更新機制進行緩存; 對更新頻率低的數(shù)據(jù),采用數(shù)據(jù)拷貝的緩存更新機制進行緩存。采用上述不同的
緩存更新機制,可以在不增加數(shù)據(jù)運算量的條件下,有效保障數(shù)據(jù)的準確性。 對于地圖區(qū)域數(shù)據(jù)量較大的情況,本發(fā)明實施例提供了一種三維空間數(shù)據(jù)存儲系
統(tǒng)。參照圖8,示出了本發(fā)明三維空間數(shù)據(jù)的存儲系統(tǒng)實施例的示意圖,包括一臺主服務器
81和多臺節(jié)點服務器82,共同組成服務器集群。參照圖8-A,示出了主服務器的結(jié)構(gòu)示意
圖,主服務器81包括 數(shù)據(jù)抽取模塊801,用于按照預設的分辨率對通用格式的三維空間數(shù)據(jù)進行數(shù)據(jù) 抽取,獲得不同分辨下的抽取數(shù)據(jù); 數(shù)據(jù)劃分模塊802,用于將數(shù)據(jù)抽取模塊801獲得的抽取數(shù)據(jù)劃分為數(shù)個規(guī)則的 子數(shù)據(jù)塊; 數(shù)據(jù)散列模塊803,采用基于空間關系的散列函數(shù)對數(shù)據(jù)劃分模塊802劃分后的每個子數(shù)據(jù)塊進行散列操作,得到散列值; 數(shù)據(jù)存儲模塊804,用于按照數(shù)據(jù)散列模塊803輸出的散列值將對應的子數(shù)據(jù)塊 逐個存儲,得到散列文件集; 分布式運算模塊805,用于將數(shù)據(jù)存儲模塊804得到的散列文件集按分布式策略 進行劃分,得到至少兩個散列文件子集; 分配模塊807,用于將分布式運算模塊805獲得的至少兩個散列文件子集分散布 局到至少兩個數(shù)據(jù)服務器節(jié)點上進行存儲。 參照圖8-B,示出了節(jié)點服務器的結(jié)構(gòu)示意圖,每臺節(jié)點服務器82包括數(shù)據(jù)庫模 塊802,用于存儲主服務器的分配模塊807分配的散列文件子集。
優(yōu)選的,節(jié)點服務器82還包括 排序模塊804,用于依據(jù)服務請求頻率將數(shù)據(jù)庫模塊802中客戶請求服務所需的 散列文件數(shù)據(jù)進行排序; 緩存模塊806,用于將排序模塊804排列出的請求頻率較高的散列文件數(shù)據(jù)進行 緩存。 其中,緩存模塊806對散列文件進行緩存時,采用以下緩存更新機制
對更新頻率高的數(shù)據(jù),采用數(shù)據(jù)引用的緩存更新機制;
對更新頻率低的數(shù)據(jù),采用數(shù)據(jù)拷貝的緩存更新機制。 另外,本發(fā)明實施例還提供了一種三維空間信息的調(diào)度系統(tǒng),包括客戶端和三維 空間信息的存儲系統(tǒng),其中,存儲系統(tǒng)可以但不限于是上述任一實施例描述的三維空間信 息的存儲系統(tǒng);上述客戶端通過網(wǎng)絡與存儲系統(tǒng)的主服務器和節(jié)點服務器通信,用于請求 主服務器進行地理信息查詢。用戶利用上述調(diào)度系統(tǒng)進行三維空間信息查詢時,通過客戶 端訪問主服務器,輸入需要顯示區(qū)域的坐標信息和分辨率信息,主服務器根據(jù)用戶輸入的 信息查詢顯示區(qū)域?qū)亩鄠€數(shù)據(jù)塊的存放地址,根據(jù)獲得的存放地址調(diào)度相應子數(shù)據(jù) 塊,這多個部分組合在一起在屏幕上顯示出來,就完成了用戶對一個大區(qū)域的某個小區(qū)域 在一定顯示分辨率下的數(shù)據(jù)請求和調(diào)用。對于數(shù)據(jù)量較大、散列文件存儲于多個節(jié)點服務 器情況,用戶輸入需要顯示區(qū)域的坐標信息和分辨率信息后,主服務器根據(jù)構(gòu)成顯示區(qū)域 需要的多個數(shù)據(jù)塊的存儲地址查詢到上述多個數(shù)據(jù)塊存儲于節(jié)點服務器,則可以直接從節(jié) 點服務器調(diào)度相應的各個數(shù)據(jù)塊。有效分擔了主服務器的承載,提高了三維空間數(shù)據(jù)的調(diào) 度效率,進而提高了調(diào)度系統(tǒng)的服務效率。 綜上所述,采用本發(fā)明實施例提供的三維空間信息的存儲方法、裝置、系統(tǒng)及調(diào)度 系統(tǒng),由于在數(shù)據(jù)散列的過程中,對抽取數(shù)據(jù)按小區(qū)域進行了切割,并根據(jù)分辨率不同,保 留了多個數(shù)據(jù)備份,在進行數(shù)據(jù)服務時,不需要實時的數(shù)據(jù)抽取,而是直接請求所需要的散 列文件進行下載,有效減小了服務器的運算負載,提高了系統(tǒng)的反應速度,進而提高了服務 效率。 另外,由于散列函數(shù)是與空間關系相關的,可由所需要數(shù)據(jù)的空間位置直接計算 出數(shù)據(jù)的存儲位置,避免了索引表的使用,提高了系統(tǒng)的反應速度。同時,由于避免了索引 表的建立,從而降低了開發(fā)難度。在數(shù)據(jù)更新發(fā)生時,可以只更新變化區(qū)域的小部分數(shù)據(jù), 而且不需要更新任何索引文件,有效降低了系統(tǒng)的維護難度和維護成本,提高了系統(tǒng)的可 用性。
對于數(shù)據(jù)量比較大的情況,對散列文件進行分布式管理,對服務器的負載進行均衡處理,充分利用了服務器集群的多服務器的分布優(yōu)勢,避免了現(xiàn)有技術中請求較多時造成服務器癱瘓的情況,提高了系統(tǒng)的工作效率,極大地提高了并發(fā)請求的上限。
此外,使用了緩存機制,有效提高了服務器的反應速度。 本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。對于裝置和系統(tǒng)實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。 以上對本發(fā)明所提供的一種三維空間信息存儲方法、三維空間信息存儲裝置、三維空間信息存儲系統(tǒng)及三維空間信息調(diào)度系統(tǒng),進行了詳細介紹,本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領域的一般技術人員,依據(jù)本發(fā)明的思想,在具體實施方式
及應用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應理解為對本發(fā)明的限制。
權利要求
一種三維空間信息的存儲方法,其特征在于,該方法由計算機執(zhí)行,包括抽取數(shù)據(jù),按照預設的分辨率對通用格式的三維空間數(shù)據(jù)進行數(shù)據(jù)抽取,獲得不同分辨率下的抽取數(shù)據(jù);劃分數(shù)據(jù)塊,將所述抽取數(shù)據(jù)劃分為數(shù)個規(guī)則的子數(shù)據(jù)塊;散列數(shù)據(jù),采用基于空間關系的散列函數(shù)對所述子數(shù)據(jù)塊進行散列操作,得到散列值,該散列值代表所述子數(shù)據(jù)塊的存放地址;存儲數(shù)據(jù),按照所述散列值將對應的子數(shù)據(jù)塊逐個存儲,得到散列文件集。
2. 根據(jù)權利要求1所述的三維空間信息的存儲方法,其特征在于,所述存儲數(shù)據(jù)步驟 還包括將所述散列文件集按分布式策略進行劃分,獲得至少兩個散列文件子集; 將所述散列文件子集分散布局到至少兩個服務器節(jié)點上進行存儲。
3. 根據(jù)權利要求1或2所述的三維空間信息的存儲方法,其特征在于,還包括 依據(jù)服務請求頻率將客戶請求服務所需的散列文件數(shù)據(jù)進行排序; 對請求頻率高的散列文件數(shù)據(jù)進行緩存處理。
4. 根據(jù)權利要求3所述的三維空間信息的存儲方法,其特征在于,所述對請求頻率高 的散列文件數(shù)據(jù)進行緩存,具體為對更新頻率高的數(shù)據(jù),采用數(shù)據(jù)引用的緩存更新機制進行緩存處理; 對更新頻率低的數(shù)據(jù),采用數(shù)據(jù)拷貝的緩存更新機制進行緩存處理。
5. —種三維空間信息的存儲裝置,其特征在于,包括數(shù)據(jù)抽取模塊,用于按照預設的分辨率對通用格式的三維空間數(shù)據(jù)進行數(shù)據(jù)抽取,獲得不同分辨率下的抽取數(shù)據(jù);數(shù)據(jù)劃分模塊,用于將所述抽取數(shù)據(jù)劃分為數(shù)個規(guī)則的子數(shù)據(jù)塊; 數(shù)據(jù)散列模塊,采用基于空間關系的散列函數(shù)對所述子數(shù)據(jù)塊進行散列操作,得到散列值;數(shù)據(jù)存儲模塊,用于按照所述數(shù)據(jù)散列模塊輸出的散列值將對應的子數(shù)據(jù)塊逐個存 儲,得到散列文件集。
6 根據(jù)權利要求5所述的三維空間信息的存儲裝置,其特征在于,還包括 排序模塊,用于依據(jù)服務請求頻率將客戶請求服務所需的散列文件數(shù)據(jù)進行排序; 緩存模塊,用于對請求頻率高的散列文件數(shù)據(jù)進行緩存處理。
7. 根據(jù)權利要求6所述的三維空間信息的存儲裝置,其特征在于,所述緩存模塊緩存 散列文件數(shù)據(jù)時采用以下緩存更新機制對更新頻率高的數(shù)據(jù),采用數(shù)據(jù)引用的緩存更新機制進行緩存處理; 對更新頻率低的數(shù)據(jù),采用數(shù)據(jù)拷貝的緩存更新機制進行緩存處理。
8. —種三維空間信息的存儲系統(tǒng),其特征在于,包括主服務器和節(jié)點服務器,其中, 所述主服務器包括數(shù)據(jù)抽取模塊,用于按照預設的分辨率對通用格式的三維空間數(shù)據(jù)進行數(shù)據(jù)抽取,獲 得不同分辨率下的抽取數(shù)據(jù);數(shù)據(jù)劃分模塊,用于將所述抽取數(shù)據(jù)劃分為數(shù)個規(guī)則的子數(shù)據(jù)塊; 數(shù)據(jù)散列模塊,采用基于空間關系的散列函數(shù)對所述子數(shù)據(jù)塊進行散列操作,得到散列值;數(shù)據(jù)存儲模塊,用于按照所述數(shù)據(jù)散列模塊輸出的散列值將對應的子數(shù)據(jù)塊逐個存儲,得到散列文件集;分布式運算模塊,用于將所述散列文件集按分布式策略進行劃分,得到至少兩個散列文件子集;分配模塊,用于將所述分布式運算模塊獲得的至少兩個散列文件子集分散布局到至少兩個節(jié)點服務器上進行存儲;每個所述節(jié)點服務器包括數(shù)據(jù)庫模塊,用于存儲所述分配模塊分配的散列文件子集。
9. 根據(jù)權利要求8所述的三維空間信息的存儲系統(tǒng),其特征在于,所述節(jié)點服務器還包括請求排序模塊,用于依據(jù)服務請求頻率將客戶請求服務所需的散列文件數(shù)據(jù)進行排序;緩存模塊,用于緩存請求頻率高的散列文件數(shù)據(jù)。
10. 根據(jù)權利要求9所述的存儲系統(tǒng),其特征在于,所述緩存模塊緩存更新頻率高的數(shù)據(jù)時,采用數(shù)據(jù)引用的緩存更新機制;所述緩存模塊緩存更新頻率低的數(shù)據(jù)時,采用數(shù)據(jù)拷貝的緩存更新機制。
11. 一種包括權利要求8 IO任一所述的存儲系統(tǒng)的三維空間信息的調(diào)度系統(tǒng),其特征在于,包括客戶端、主服務器和節(jié)點服務器,其中所述客戶端通過網(wǎng)絡與所述主服務器和節(jié)點服務器通信,用于請求主服務器進行地理信息查詢;所述主服務器包括數(shù)據(jù)抽取模塊,用于按照預設的分辨率對通用格式的三維空間數(shù)據(jù)進行數(shù)據(jù)抽取,獲得不同分辨率下的抽取數(shù)據(jù);數(shù)據(jù)劃分模塊,用于將所述抽取數(shù)據(jù)劃分為數(shù)個規(guī)則的子數(shù)據(jù)塊;數(shù)據(jù)散列模塊,采用基于空間關系的散列函數(shù)對所述數(shù)個子數(shù)據(jù)塊進行散列操作,得到散列文件集;分布式運算模塊,用于將所述散列文件集按分布式策略進行劃分,得到至少兩個散列文件子集;分配模塊,用于將所述分布式運算模塊獲得的至少兩個散列文件子集分散布局到至少兩個節(jié)點服務器上進行存儲;每個所述節(jié)點服務器包括數(shù)據(jù)庫模塊,用于存儲所述分配模塊分配的散列文件子集。
全文摘要
本發(fā)明提供了一種三維空間信息的存儲方法、裝置、系統(tǒng)及調(diào)度系統(tǒng),其中存儲方法包括抽取數(shù)據(jù),按照預設的分辨率對通用格式的三維空間數(shù)據(jù)進行數(shù)據(jù)抽取,將抽取數(shù)據(jù)劃分為數(shù)個規(guī)則的子數(shù)據(jù)塊;散列數(shù)據(jù),采用基于空間關系的散列函數(shù)對子數(shù)據(jù)塊進行散列操作,得到散列值;存儲數(shù)據(jù),按照散列值將對應的子數(shù)據(jù)塊逐個存儲,得到散列文件集。采用本發(fā)明提供的三維空間信息的存儲方法由于在數(shù)據(jù)散列過程中,對抽取數(shù)據(jù)按小區(qū)域進行了劃分,并根據(jù)分辨率不同,保留了多個數(shù)據(jù)備份,在進行數(shù)據(jù)服務時,不需要實時的數(shù)據(jù)抽取,而是直接請求所需要的數(shù)據(jù)進行下載,有效減小了服務器的運算負載,提高了系統(tǒng)的反應速度。
文檔編號G06F17/30GK101719148SQ20091023826
公開日2010年6月2日 申請日期2009年11月24日 優(yōu)先權日2009年11月24日
發(fā)明者丁勝昔, 英正明, 龔曉嵐 申請人:北京靈圖軟件技術有限公司