專利名稱:數(shù)據(jù)訪問方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)計算領(lǐng)域,尤其涉及一種數(shù)據(jù)訪問方法及裝置。
背景技術(shù):
網(wǎng)絡(luò)應(yīng)用系統(tǒng)離不開數(shù)據(jù)的獲取和存儲。隨著互聯(lián)網(wǎng)應(yīng)用的不斷演化,網(wǎng)絡(luò)應(yīng)用 系統(tǒng)的數(shù)量越來越大,網(wǎng)絡(luò)應(yīng)用系統(tǒng)對數(shù)據(jù)的存儲和訪問越來越頻繁、訪問的數(shù)據(jù)量也越 來越大,訪問的數(shù)據(jù)種類也越來越多。首先,針對單一數(shù)據(jù)庫難以支持網(wǎng)絡(luò)應(yīng)用系統(tǒng)頻繁訪問數(shù)據(jù)庫的問題,在實際應(yīng) 用中,考慮到網(wǎng)絡(luò)應(yīng)用系統(tǒng)對數(shù)據(jù)所執(zhí)行的讀操作的頻率遠(yuǎn)大于寫操作的頻率,可以通過 實施“讀寫分離”的措施來解決該問題。即針對網(wǎng)絡(luò)應(yīng)用系統(tǒng)對數(shù)據(jù)所執(zhí)行的不同操作類 型,分別對應(yīng)訪問不同的數(shù)據(jù)庫,這樣可以有效減輕主數(shù)據(jù)庫的壓力。其次,針對單一主機或單一的數(shù)據(jù)庫無法完整保存網(wǎng)絡(luò)應(yīng)用系統(tǒng)所需的所有數(shù)據(jù) 的問題,在實際應(yīng)用中,其解決方案是將海量的數(shù)據(jù)平行分布到多臺主機和多個數(shù)據(jù)庫上 進行保存,并且采取分片策略對數(shù)據(jù)進行分片處理,比如,可以根據(jù)整數(shù)id值范圍對用戶 表進行分片,可以根據(jù)交易時間對交易表進行分片,或者還可以根據(jù)多個字段值的hash對 某些種類的數(shù)據(jù)表進行分片等等。對應(yīng)于不同的分片方式,網(wǎng)絡(luò)應(yīng)用系統(tǒng)需要采用不同的 訪問策略對其進行訪問。此外,由于數(shù)據(jù)存儲類型也越來越多,同一網(wǎng)絡(luò)應(yīng)用系統(tǒng)所訪問的不同類型的數(shù) 據(jù)往往存儲在不同的存儲介質(zhì)中,比如,存儲介質(zhì)可能是關(guān)系數(shù)據(jù)庫,也可能是文檔數(shù)據(jù) 庫、內(nèi)存數(shù)據(jù)庫、Key-Value緩存介質(zhì)、存儲文件格式數(shù)據(jù)的存儲介質(zhì)、數(shù)據(jù)服務(wù)存儲介質(zhì) 等等。當(dāng)需要對存儲在不同存儲介質(zhì)中的數(shù)據(jù)進行訪問時,需要使用不同的應(yīng)用編程接口 (API, Application Programming Interface)禾口不同的類庫。基于上述的數(shù)據(jù)存儲方式,當(dāng)網(wǎng)絡(luò)應(yīng)用系統(tǒng)需要對數(shù)據(jù)進行訪問時,其訪問示意 圖如圖ι所示,其中,RDB1、2為關(guān)系數(shù)據(jù)庫,Cache為用于存儲數(shù)據(jù)的一種存儲介質(zhì),稱為 高速緩沖存儲器、而File為則為另一種存儲介質(zhì)。而DAO為數(shù)據(jù)訪問對象,其需要包含的 信息至少包括網(wǎng)絡(luò)應(yīng)用系統(tǒng)對數(shù)據(jù)執(zhí)行的操作類型、訪問策略、API信息以及待訪問數(shù)據(jù)信 息。根據(jù)DAO中包含的操作類型、訪問策略以及API信息,網(wǎng)絡(luò)應(yīng)用系統(tǒng)得以實現(xiàn)通過某 API,以某種訪問策略和操作類型來實現(xiàn)對按照某種分片方式存儲在某存儲介質(zhì)中的、待訪 問數(shù)據(jù)信息所指示的數(shù)據(jù)進行訪問?,F(xiàn)有技術(shù)中提供的上述訪問方式存在的缺陷在于各個網(wǎng)絡(luò)應(yīng)用系統(tǒng)需要分別設(shè) 置其采用的DA0,由于網(wǎng)絡(luò)應(yīng)用系統(tǒng)的數(shù)量非常大,而相應(yīng)的網(wǎng)絡(luò)應(yīng)用系統(tǒng)的數(shù)量也是非常 的大,因此,采用各個網(wǎng)絡(luò)應(yīng)用系統(tǒng)分別設(shè)置DAO的方式來實現(xiàn)對數(shù)據(jù)的訪問需要耗費網(wǎng) 絡(luò)應(yīng)用系統(tǒng)較多的處理資源。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種數(shù)據(jù)訪問方法及裝置,用以解決現(xiàn)有技術(shù)提供的數(shù)據(jù)訪問方案需要各個網(wǎng)絡(luò)應(yīng)用系統(tǒng)分別設(shè)置DAO而導(dǎo)致耗費網(wǎng)絡(luò)應(yīng)用系統(tǒng)較多處理資源的問題。本發(fā)明實施例采用以下技術(shù)方案一種數(shù)據(jù)訪問方法,包括 數(shù)據(jù)訪問服務(wù)器獲取至少一個網(wǎng)絡(luò)應(yīng)用系統(tǒng)發(fā)送的待訪問數(shù)據(jù)的標(biāo)識;從預(yù)先設(shè) 置在所述服務(wù)器中的數(shù)據(jù)信息與訪問策略、存儲介質(zhì)的類型信息的對應(yīng)關(guān)系中,確定與待 訪問數(shù)據(jù)的標(biāo)識對應(yīng)的訪問策略、存儲介質(zhì)的類型信息;以及通過執(zhí)行確定的訪問策略,確 定所述待訪問數(shù)據(jù)的存儲地址,并根據(jù)確定的存儲介質(zhì)的類型信息,從預(yù)先設(shè)置在所述服 務(wù)器中的存儲介質(zhì)類型信息與針對不同類型的存儲介質(zhì)的訪問接口的對應(yīng)關(guān)系中,確定相 應(yīng)的訪問接口 ;通過確定的訪問接口,訪問存儲在確定的存儲地址中的所述待訪問數(shù)據(jù)。較佳地,所述方法還包括數(shù)據(jù)訪問服務(wù)器接收所述網(wǎng)絡(luò)應(yīng)用系統(tǒng)發(fā)送的用于指示對所述待訪問數(shù)據(jù)進行 操作的操作類型信息,所述操作類型信息是所述網(wǎng)絡(luò)應(yīng)用系統(tǒng)從預(yù)先設(shè)置的若干操作類型 信息中選取的;以及對訪問到的數(shù)據(jù)執(zhí)行接收的所述操作類型信息所指示的操作。較佳地,數(shù)據(jù)訪問服務(wù)器獲取由負(fù)載均衡服務(wù)器轉(zhuǎn)發(fā)來的所述網(wǎng)絡(luò)應(yīng)用系統(tǒng)發(fā)送 的待訪問數(shù)據(jù)的標(biāo)識;其中,負(fù)載均衡服務(wù)器在判斷出數(shù)據(jù)訪問服務(wù)器的負(fù)載信息符合預(yù) 定條件時,將所述待訪問數(shù)據(jù)的標(biāo)識轉(zhuǎn)發(fā)給數(shù)據(jù)訪問服務(wù)器。較佳地,數(shù)據(jù)訪問服務(wù)器設(shè)置有分別支持不同協(xié)議的多個接口 ;以及數(shù)據(jù)訪問服 務(wù)器獲取所述待訪問數(shù)據(jù)的標(biāo)識具體包括數(shù)據(jù)訪問服務(wù)器通過所述多個接口中的第一接 口接收所述網(wǎng)絡(luò)應(yīng)用系統(tǒng)發(fā)送的封裝有待訪問數(shù)據(jù)的標(biāo)識的協(xié)議消息,其中,所述第一接 口支持用于封裝所述待訪問數(shù)據(jù)的標(biāo)識的協(xié)議;并根據(jù)該協(xié)議消息的協(xié)議類型,選取相應(yīng) 的序列化處理方式對所述協(xié)議消息進行序列化處理,得到所述待訪問數(shù)據(jù)的標(biāo)識。較佳地,所述方法還包括數(shù)據(jù)訪問服務(wù)器獲取訪問到的數(shù)據(jù),對獲取到的數(shù)據(jù)進 行壓縮,并將壓縮后的數(shù)據(jù)進行加密后發(fā)送給所述網(wǎng)絡(luò)應(yīng)用系統(tǒng)。較佳地,所述方法還包括所述數(shù)據(jù)訪問服務(wù)器確定接收所述待訪問數(shù)據(jù)的標(biāo)識的時間信息以及所述網(wǎng)絡(luò) 應(yīng)用系統(tǒng)的標(biāo)識;并根據(jù)所述時間信息和所述網(wǎng)絡(luò)應(yīng)用系統(tǒng)的標(biāo)識,從預(yù)先設(shè)置的網(wǎng)絡(luò)應(yīng) 用系統(tǒng)的標(biāo)識、時間信息與數(shù)據(jù)訪問帶寬的對應(yīng)關(guān)系中,選取相應(yīng)的數(shù)據(jù)訪問帶寬;以及根 據(jù)確定出的訪問策略以及訪問數(shù)據(jù)所需的參數(shù)信息,利用選取的訪問帶寬,訪問存儲在確 定的存儲介質(zhì)的類型信息所指示的存儲介質(zhì)中的所述待訪問數(shù)據(jù)。較佳地,數(shù)據(jù)訪問服務(wù)器獲取所述待訪問數(shù)據(jù)的標(biāo)識具體包括數(shù)據(jù)訪問服務(wù)器 利用指定數(shù)目的線程監(jiān)聽所述網(wǎng)絡(luò)應(yīng)用系統(tǒng)發(fā)送的數(shù)據(jù)訪問請求消息,其中,所述指定數(shù) 目小于所述數(shù)據(jù)訪問服務(wù)器與所有網(wǎng)絡(luò)應(yīng)用系統(tǒng)之間的連接總數(shù)目;以及從監(jiān)聽到的數(shù)據(jù) 訪問請求消息中解析得到所述待訪問數(shù)據(jù)的標(biāo)識。一種數(shù)據(jù)訪問裝置,包括標(biāo)識獲取單元,用于獲取至少一個網(wǎng)絡(luò)應(yīng)用系統(tǒng)發(fā)送的 待訪問數(shù)據(jù)的標(biāo)識;第一確定單元,用于從預(yù)先設(shè)置在所述裝置中的數(shù)據(jù)的標(biāo)識與訪問策 略、存儲介質(zhì)的類型信息的對應(yīng)關(guān)系中,確定與標(biāo)識獲取單元獲取到的待訪問數(shù)據(jù)的標(biāo)識 對應(yīng)的訪問策略、存儲介質(zhì)的類型信息;存儲地址確定單元,用于通過執(zhí)行第一確定單元確 定的訪問策略,確定所述待訪問數(shù)據(jù)的存儲地址;訪問接口確定單元,用于根據(jù)第一確定單 元確定的存儲介質(zhì)的類型信息,從預(yù)先設(shè)置在所述裝置中的存儲介質(zhì)類型信息與針對不同類型的存儲介質(zhì)的訪問接口的對應(yīng)關(guān)系中,確定相應(yīng)的訪問接口 ;訪問單元,用于通過訪問 接口確定單元確定的訪問接口,訪問存儲在存儲地址確定單元確定的存儲地址中的所述待 訪問數(shù)據(jù)。本發(fā)明實施例的有益效果如下 本發(fā)明實施例提供的上述方案中,通過數(shù)據(jù)訪問服務(wù)器對訪問策略、存儲介質(zhì)的 類型信息的管理,網(wǎng)絡(luò)應(yīng)用系統(tǒng)只需向數(shù)據(jù)訪問服務(wù)器發(fā)送待訪問數(shù)據(jù)的標(biāo)識,由數(shù)據(jù)訪 問服務(wù)器從預(yù)先設(shè)置在數(shù)據(jù)訪問服務(wù)器中的數(shù)據(jù)的標(biāo)識與訪問策略、存儲介質(zhì)的類型信息 的對應(yīng)關(guān)系中,確定與待訪問數(shù)據(jù)的標(biāo)識對應(yīng)的訪問策略、存儲介質(zhì)的類型信息,從而實現(xiàn) 對待訪問數(shù)據(jù)的訪問。由于采用本發(fā)明實施例提供的方案,數(shù)據(jù)訪問服務(wù)器可以對數(shù)據(jù)的 標(biāo)識與訪問策略、存儲介質(zhì)的類型信息的對應(yīng)關(guān)系進行統(tǒng)一管理,網(wǎng)絡(luò)應(yīng)用系統(tǒng)無需再分 別配置DA0,而只需要提供待訪問數(shù)據(jù)的標(biāo)識即可,因此,大大節(jié)省了網(wǎng)絡(luò)應(yīng)用系統(tǒng)的處理 資源。并且,當(dāng)分片策略發(fā)生變化導(dǎo)致訪問策略發(fā)生變化,或者存儲介質(zhì)發(fā)生變化(包括存 儲介質(zhì)類型的變化以及某存儲介質(zhì)數(shù)量的增減等)而導(dǎo)致API變化時,采用本發(fā)明實施例 提供的該方案,只需要針對數(shù)據(jù)訪問服務(wù)器這一個處理對象來修改上述對應(yīng)關(guān)系,無需多 個網(wǎng)絡(luò)應(yīng)用系統(tǒng)分別對其采用的DAO進行修改,從而在該情況下,也可以實現(xiàn)對處理資源 的節(jié)約。
圖1為現(xiàn)有技術(shù)中網(wǎng)絡(luò)應(yīng)用系統(tǒng)對數(shù)據(jù)進行訪問的示意圖;圖2為本發(fā)明實施例提供的一種數(shù)據(jù)訪問方法的具體流程示意圖;圖3為本發(fā)明實施例提供的數(shù)據(jù)訪問方法在實際中的實施示意圖;圖4為設(shè)置有負(fù)載均衡服務(wù)器的數(shù)據(jù)訪問系統(tǒng)的具體示意圖;圖5為本發(fā)明實施例提供的數(shù)據(jù)訪問方法在實際中的應(yīng)用環(huán)境示意圖;圖6為本發(fā)明實施例提供的一種數(shù)據(jù)訪問裝置的具體結(jié)構(gòu)示意圖。
具體實施例方式為了解決現(xiàn)有技術(shù)提供的數(shù)據(jù)訪問方案需要各個網(wǎng)絡(luò)應(yīng)用系統(tǒng)分別設(shè)置DAO而 導(dǎo)致耗費網(wǎng)絡(luò)應(yīng)用系統(tǒng)較多處理資源的問題,發(fā)明人基于降低網(wǎng)絡(luò)應(yīng)用系統(tǒng)功能的復(fù)雜 性、以及訪問策略等發(fā)生變化時對網(wǎng)絡(luò)應(yīng)用系統(tǒng)的影響應(yīng)該最小,以便實現(xiàn)網(wǎng)絡(luò)應(yīng)用系統(tǒng) 較高可用性的原則,定義了一種靈活而一致的訪問方式,無需耗費網(wǎng)絡(luò)應(yīng)用系統(tǒng)較多的處 理資源,就能夠完成對海量數(shù)據(jù)的訪問。具體地,本發(fā)明實施例提供了一種數(shù)據(jù)訪問方案,通過在網(wǎng)絡(luò)應(yīng)用系統(tǒng)與待訪問 數(shù)據(jù)之間新增數(shù)據(jù)訪問服務(wù)器來對數(shù)據(jù)與訪問策略、存儲介質(zhì)的類型信息的對應(yīng)關(guān)系進行 管理,從而實現(xiàn)對網(wǎng)絡(luò)應(yīng)用系統(tǒng)功能的簡化,實現(xiàn)節(jié)約網(wǎng)絡(luò)應(yīng)用系統(tǒng)處理資源的目的。具體 地,本發(fā)明實施例首先提供一種數(shù)據(jù)訪問方法,該方法的具體實現(xiàn)流程示意圖如圖2所示, 包括以下步驟步驟21,數(shù)據(jù)訪問服務(wù)器獲取至少一個網(wǎng)絡(luò)應(yīng)用系統(tǒng)發(fā)送的待訪問數(shù)據(jù)的標(biāo)識, 在本發(fā)明實施例中,可以將包含多個網(wǎng)絡(luò)應(yīng)用系統(tǒng)和數(shù)據(jù)訪問服務(wù)器的系統(tǒng)稱為“數(shù)據(jù)訪 問系統(tǒng)”,在該數(shù)據(jù)訪問系統(tǒng)中,多個網(wǎng)絡(luò)應(yīng)用系統(tǒng)可以與一個數(shù)據(jù)訪問服務(wù)器相連,視實際需求不同,在一個數(shù)據(jù)訪問系統(tǒng)可以設(shè)置一個或多個數(shù)據(jù)訪問服務(wù)器,當(dāng)多個網(wǎng)絡(luò)應(yīng)用系統(tǒng)均有數(shù)據(jù)訪問需求時,就可以向該數(shù)據(jù)訪問服務(wù)器發(fā)送待訪問數(shù)據(jù)的標(biāo)識,不同網(wǎng)絡(luò) 應(yīng)用系統(tǒng)欲訪問的數(shù)據(jù)可以相同,也可以不同,待訪問數(shù)據(jù)的標(biāo)識可以但不限于是待訪問 數(shù)據(jù)的類型標(biāo)識,也可以是待訪問數(shù)據(jù)的名稱標(biāo)識等等,較佳地,本發(fā)明實施例中,網(wǎng)絡(luò)應(yīng) 用系統(tǒng)可以通過發(fā)送通用資源標(biāo)識符(URI,Uniform Resource Identifier)的方式,來將 待訪問數(shù)據(jù)的標(biāo)識承載在URI中發(fā)送給數(shù)據(jù)訪問服務(wù)器;步驟22,從預(yù)先設(shè)置在數(shù)據(jù)訪問服務(wù)器中的數(shù)據(jù)信息與訪問策略、存儲介質(zhì)的類 型信息的對應(yīng)關(guān)系中,確定與待訪問數(shù)據(jù)的標(biāo)識對應(yīng)的訪問策略、存儲介質(zhì)的類型信息,在 本發(fā)明實施例中,可以根據(jù)待訪問數(shù)據(jù)的標(biāo)識,利用API來調(diào)用與該信息對應(yīng)的訪問策略、 存儲介質(zhì)的類型信息,還可以將對應(yīng)于一個待訪問數(shù)據(jù)的標(biāo)識的訪問策略、存儲介質(zhì)的類 型信息、在不同類型的存儲介質(zhì)中訪問數(shù)據(jù)分別所需的參數(shù)信息包裝成一個“Dalet資源” 并將其存儲在數(shù)據(jù)訪問服務(wù)器中,比如,可以存儲在數(shù)據(jù)訪問服務(wù)器所包含的Dalet處理 模塊中;步驟23,通過執(zhí)行確定的訪問策略,確定待訪問數(shù)據(jù)的存儲地址,并根據(jù)確定的存 儲介質(zhì)的類型信息,從預(yù)先設(shè)置在數(shù)據(jù)訪問服務(wù)器中的存儲介質(zhì)類型信息與針對不同類型 的存儲介質(zhì)的訪問接口的對應(yīng)關(guān)系中,確定相應(yīng)的訪問接口,在本步驟23中,訪問策略可 以是基于哈希算法等的訪問策略,通過執(zhí)行與待訪問數(shù)據(jù)對應(yīng)的該訪問策略,能夠確定待 訪問數(shù)據(jù)的存儲地址,而由于不同存儲介質(zhì)類型信息會對應(yīng)不同的訪問接口,因此,還需要 確定需要通過什么樣的訪問接口來訪問該待訪問數(shù)據(jù);步驟24,通過確定的訪問接口,訪問存儲在確定的存儲地址中的待訪問數(shù)據(jù)。本發(fā)明實施例提供的上述方法的核心在于新增了一個數(shù)據(jù)訪問服務(wù)器,并在該服 務(wù)器中設(shè)置了一套通用的數(shù)據(jù)信息與Dalet資源的對應(yīng)關(guān)系,從而當(dāng)網(wǎng)絡(luò)應(yīng)用系統(tǒng)需要訪 問不同的數(shù)據(jù)時,只需網(wǎng)絡(luò)應(yīng)用系統(tǒng)對其需訪問的數(shù)據(jù)的標(biāo)識進行修改,而無需網(wǎng)絡(luò)應(yīng)用 系統(tǒng)執(zhí)行對DAO中的訪問策略、存儲介質(zhì)的類型信息等進行配置,從而大大節(jié)約了網(wǎng)絡(luò)應(yīng) 用系統(tǒng)的處理資源。特別地,當(dāng)訪問策略和API發(fā)生變化時,只需要對數(shù)據(jù)訪問服務(wù)器中的 對應(yīng)關(guān)系執(zhí)行修改即可,由于多個網(wǎng)絡(luò)應(yīng)用系統(tǒng)可能會使用同一對應(yīng)關(guān)系,并且一個數(shù)據(jù) 訪問服務(wù)器可以為多個網(wǎng)絡(luò)應(yīng)用系統(tǒng)提供服務(wù),在數(shù)據(jù)訪問系統(tǒng)中,數(shù)據(jù)訪問服務(wù)器的數(shù) 量是遠(yuǎn)遠(yuǎn)小于網(wǎng)絡(luò)應(yīng)用系統(tǒng)的數(shù)量的,因此,對數(shù)據(jù)訪問服務(wù)器中的對應(yīng)關(guān)系執(zhí)行修改所 花費的資源相對于對網(wǎng)絡(luò)應(yīng)用系統(tǒng)的修改所花費的資源是非常小的。在本發(fā)明實施例中,當(dāng)網(wǎng)絡(luò)應(yīng)用系統(tǒng)還需要對訪問到的數(shù)據(jù)進行操作時,網(wǎng)絡(luò)應(yīng) 用系統(tǒng)可以從預(yù)先設(shè)置的若干操作類型信息中選取待進行的操作類型信息發(fā)送給數(shù)據(jù)訪 問服務(wù)器,從而數(shù)據(jù)訪問服務(wù)器接收到網(wǎng)絡(luò)應(yīng)用系統(tǒng)發(fā)送的用于指示對待訪問數(shù)據(jù)進行操 作的操作類型信息后,后續(xù)在訪問到數(shù)據(jù)后,就可以對訪問到的數(shù)據(jù)執(zhí)行接收的操作類型 信息所指示的操作,從而實現(xiàn)對數(shù)據(jù)的操作。需要說明的是,當(dāng)需要將訪問到的數(shù)據(jù)發(fā)送 給網(wǎng)絡(luò)應(yīng)用系統(tǒng)時,為了增強數(shù)據(jù)傳送過程的安全性以及為了節(jié)約傳輸資源,數(shù)據(jù)訪問服 務(wù)器可以對獲取到的數(shù)據(jù)進行壓縮,然后再將壓縮后的數(shù)據(jù)進行加密后發(fā)送給網(wǎng)絡(luò)應(yīng)用系 統(tǒng)。本發(fā)明實施例提供的上述方法在實際中的實施示意圖如圖3所示,與圖1相比,在 圖3中,網(wǎng)絡(luò)應(yīng)用系統(tǒng)與數(shù)據(jù)之間新增了數(shù)據(jù)訪問服務(wù)器,該數(shù)據(jù)訪問服務(wù)器中設(shè)置有數(shù)據(jù)的標(biāo)識與Dalet的對應(yīng)關(guān)系,其中,Dalet的數(shù)量一般較多,比如針對不同類型的數(shù)據(jù)、具 有不同名稱的數(shù)據(jù)等等,都有相應(yīng)的Dalet與之對應(yīng),如圖3中的Daletl、Dalet2.......本發(fā)明實施例提供的上述方法還可以進一步進行以下改造,以獲得更好的技術(shù)效 果前文已經(jīng)提到,在一個數(shù)據(jù)訪問系統(tǒng)中可以有多個數(shù)據(jù)訪問服務(wù)器,在本發(fā)明實 施中,為了達到不同數(shù)據(jù)訪問服務(wù)器之間的負(fù)載均衡,網(wǎng)絡(luò)應(yīng)用系統(tǒng)連接到哪個數(shù)據(jù)訪問 服務(wù)器是可以調(diào)整的。具體地,可以在數(shù)據(jù)訪問服務(wù)器與網(wǎng)絡(luò)應(yīng)用系統(tǒng)之間設(shè)置多個負(fù)載 均衡服務(wù)器,設(shè)置有負(fù)載均衡服務(wù)器的數(shù)據(jù)訪問系統(tǒng)的具體示意圖如圖4所示。負(fù)載均衡 服務(wù)器的作用在于接收網(wǎng)絡(luò)應(yīng)用系統(tǒng)發(fā)送的待訪問數(shù)據(jù)的標(biāo)識,并通過收集到的數(shù)據(jù)訪問 服務(wù)器的負(fù)載信息,判斷數(shù)據(jù)訪問系統(tǒng)中的數(shù)據(jù)訪問服務(wù)器的負(fù)載信息是否符合預(yù)定條 件,以及將網(wǎng)絡(luò)應(yīng)用系統(tǒng)發(fā)送的待訪問數(shù)據(jù)的標(biāo)識轉(zhuǎn)發(fā)給數(shù)據(jù)訪問服務(wù)器,從而數(shù)據(jù)訪問 服務(wù)器就能夠獲取到由負(fù)載均衡服務(wù)器轉(zhuǎn)發(fā)來的待訪問數(shù)據(jù)的標(biāo)識。其中,上述“預(yù)定條 件”可以為數(shù)據(jù)訪問服務(wù)器的負(fù)載小于規(guī)定的負(fù)載閾值,或者為數(shù)據(jù)訪問系統(tǒng)中當(dāng)前負(fù)載 最小的數(shù)據(jù)訪問服務(wù)器等等。通過設(shè)置負(fù)載均衡服務(wù)器對網(wǎng)絡(luò)應(yīng)用系統(tǒng)發(fā)送的待訪問數(shù)據(jù) 的標(biāo)識的接收對象進行調(diào)整,可以實現(xiàn)數(shù)據(jù)訪問服務(wù)器的負(fù)載均衡,增強數(shù)據(jù)訪問系統(tǒng)的 穩(wěn)定性。在本發(fā)明實施例中,針對不同網(wǎng)絡(luò)應(yīng)用系統(tǒng)發(fā)送封裝有待訪問數(shù)據(jù)的標(biāo)識的協(xié)議 消息的情況,為了兼容不同協(xié)議消息,數(shù)據(jù)訪問服務(wù)器還可以被設(shè)計成可支持包括HTTP在 內(nèi)的多種網(wǎng)絡(luò)協(xié)議,從而實現(xiàn)數(shù)據(jù)服務(wù)器可以同時監(jiān)聽多個端口(PORT)。從具體實現(xiàn)上來講,可以在數(shù)據(jù)訪問服務(wù)器中設(shè)置分別支持不同協(xié)議的多個接 口,以實現(xiàn)能夠分別處理網(wǎng)絡(luò)應(yīng)用系統(tǒng)發(fā)送的封裝有待訪問數(shù)據(jù)的標(biāo)識的協(xié)議消息。在本 發(fā)明實施例中,通過在數(shù)據(jù)訪問器中設(shè)置多個接口,當(dāng)接收消息時,數(shù)據(jù)訪問服務(wù)器可以通 過設(shè)置的多個接口中的第一接口接收該協(xié)議消息,其中,該第一接口需滿足支持用于封裝 待訪問數(shù)據(jù)的標(biāo)識的協(xié)議,數(shù)據(jù)訪問服務(wù)器在接收到該協(xié)議消息后,為了從中獲取待訪問 數(shù)據(jù)的標(biāo)識,可以根據(jù)該協(xié)議消息的協(xié)議類型,選取相應(yīng)的序列化處理方式對該協(xié)議消息 進行序列化處理,得到待訪問數(shù)據(jù)的標(biāo)識。需要說明的是,當(dāng)網(wǎng)絡(luò)應(yīng)用系統(tǒng)通過發(fā)送URI 的方式來向數(shù)據(jù)訪問服務(wù)器提供待訪問數(shù)據(jù)的標(biāo)識時,該URI可以隱含表明協(xié)議類型,如 http //host port 1/sql id/rdb 1/query. xml 表明發(fā)送的 URI 使用 HTTP 協(xié)議,而返回的數(shù)據(jù) 應(yīng)符合 xml 格式,又如 cm20://host:port2/sqlid/rdb2/query. json,其表明發(fā)送的 URI 使 用CM20協(xié)議,而返回的數(shù)據(jù)應(yīng)符合json格式。此外,在本發(fā)明實施例中,數(shù)據(jù)訪問服務(wù)器可以分別為各個網(wǎng)絡(luò)應(yīng)用系統(tǒng)分配一 個線程用以監(jiān)聽包含有待訪問數(shù)據(jù)的標(biāo)識,但這樣的方式在網(wǎng)絡(luò)應(yīng)用系統(tǒng)的數(shù)量較多時, 需要花費較多的線程資源,因此,本發(fā)明實施例中還可以基于NIO技術(shù),利用指定數(shù)目的線 程監(jiān)聽大量網(wǎng)絡(luò)應(yīng)用系統(tǒng)發(fā)送的數(shù)據(jù)訪問請求消息,并從監(jiān)聽到的數(shù)據(jù)訪問請求消息中解 析得到所述待訪問數(shù)據(jù)的標(biāo)識,由于上文的指定數(shù)目小于數(shù)據(jù)訪問服務(wù)器與所有網(wǎng)絡(luò)應(yīng)用 系統(tǒng)之間的連接總數(shù)目,從而可以節(jié)約線程資源。進一步地,針對不同網(wǎng)絡(luò) 應(yīng)用系統(tǒng)可能會在不同的時間對數(shù)據(jù)訪問有不同的需求 的情況,本發(fā)明實施例提供的數(shù)據(jù)訪問的方法可以進一步進行改進,以針對不同的網(wǎng)絡(luò)應(yīng) 用系統(tǒng)的網(wǎng)絡(luò)應(yīng)用系統(tǒng)在不同時間段對數(shù)據(jù)的不同訪問需求,為不同訪問需求分配對應(yīng)的訪問資源。具體地,在改進后的方法中,可以采用下述步驟實現(xiàn)上述目的首先,數(shù)據(jù)訪問服 務(wù)器可以確定接收待訪問數(shù)據(jù)的標(biāo)識的時間信息以及發(fā)送該待訪問數(shù)據(jù)的標(biāo)識的網(wǎng)絡(luò)應(yīng) 用系統(tǒng)的標(biāo)識;然后,根據(jù)確定的時間信息和網(wǎng)絡(luò)應(yīng)用系統(tǒng)的標(biāo)識,數(shù)據(jù)訪問服務(wù)器從預(yù)先 設(shè)置的網(wǎng)絡(luò)應(yīng)用系統(tǒng)的標(biāo)識、時間信息與數(shù)據(jù)訪問帶寬的對應(yīng)關(guān)系中,選取相應(yīng)的數(shù)據(jù)訪 問帶寬;最后,根據(jù)確定出的訪問策略和待訪問數(shù)據(jù)的標(biāo)識,數(shù)據(jù)訪問服務(wù)器就可以利用選 取的該訪問帶寬,訪問存儲在確定的存儲介質(zhì)中的待訪問數(shù)據(jù)。以下以本發(fā)明實施例提供的數(shù)據(jù)訪問方法在實際中的應(yīng)用為例,詳細(xì)介紹該方法 在實際中的應(yīng)用流程。該應(yīng)用流程的應(yīng)用環(huán)境示意圖如圖5所示,該應(yīng)用環(huán)境可以看做 是 前文所說的數(shù)據(jù)訪問系統(tǒng),在該系統(tǒng)中,網(wǎng)絡(luò)應(yīng)用系統(tǒng)處于“應(yīng)用邏輯層”,數(shù)據(jù)訪問服務(wù)器 處于“數(shù)據(jù)訪問層”,而數(shù)據(jù)則處于“數(shù)據(jù)資源層”?;谠搼?yīng)用環(huán)境,本發(fā)明實施例提供的 方案的核心思想在于在應(yīng)用邏輯層和數(shù)據(jù)資源層之間插入一個獨立的分布式數(shù)據(jù)訪問層, 將位于應(yīng)用邏輯層的網(wǎng)絡(luò)應(yīng)用系統(tǒng)在現(xiàn)有技術(shù)中使用的DAO演化位于數(shù)據(jù)訪問層中的數(shù) 據(jù)訪問服務(wù)器中使用的Dalet。以下按照“應(yīng)用邏輯層”-“數(shù)據(jù)訪問層”-“數(shù)據(jù)資源層”的順序,依次對各個層進 行介紹首先,針對應(yīng)用邏輯層,該層的數(shù)據(jù)訪問接口可以采用HTFP或類HTTP標(biāo)準(zhǔn)協(xié)議, 從而該接口是一個相比傳統(tǒng)DAO簡單很多的實現(xiàn)方式,待訪問數(shù)據(jù)的標(biāo)識用URI進行指示, 該 URI 的格式可以為"scheme://host:port/resouce_path/resouce_id· fmt”其中,該格式 包含的各項的含義如下使用scheme標(biāo)識不同的網(wǎng)絡(luò)通信協(xié)議,在服務(wù)端可支持多種協(xié)議;使用host標(biāo)識不同主機,可方便實現(xiàn)分布式部署;使用port標(biāo)識不同端口,每個scheme缺省占用不同端口 ;使用reS0Uce_path標(biāo)識不同類型的數(shù)據(jù),在服務(wù)端可對其實現(xiàn)負(fù)載均衡;使用resoucejd標(biāo)示特定的數(shù)據(jù),即用以指示待訪問數(shù)據(jù)的標(biāo)識;使用fmt來識別數(shù)據(jù)的格式,在服務(wù)端可支持多種序列化格式。而Method則用以指示對待訪問數(shù)據(jù)進行操作的操作類型信息,這里的操作類型 可以如下表1所示表1
Method所指示的操作類型信息操作類型信息所指示的操作
GET~~/resource_path獲取資源列表
POST /resource_path創(chuàng)建資源
GET~/resource_path/id. fmt 獲取資源
PUT~/resource_path/id. fmt 修改資源狀態(tài)
權(quán)利要求
一種數(shù)據(jù)訪問方法,其特征在于,包括數(shù)據(jù)訪問服務(wù)器獲取至少一個網(wǎng)絡(luò)應(yīng)用系統(tǒng)發(fā)送的待訪問數(shù)據(jù)的標(biāo)識;從預(yù)先設(shè)置在所述服務(wù)器中的數(shù)據(jù)信息與訪問策略、存儲介質(zhì)的類型信息的對應(yīng)關(guān)系中,確定與待訪問數(shù)據(jù)的標(biāo)識對應(yīng)的訪問策略、存儲介質(zhì)的類型信息;以及通過執(zhí)行確定的訪問策略,確定所述待訪問數(shù)據(jù)的存儲地址,并根據(jù)確定的存儲介質(zhì)的類型信息,從預(yù)先設(shè)置在所述服務(wù)器中的存儲介質(zhì)類型信息與針對不同類型的存儲介質(zhì)的訪問接口的對應(yīng)關(guān)系中,確定相應(yīng)的訪問接口;通過確定的訪問接口,訪問存儲在確定的存儲地址中的所述待訪問數(shù)據(jù)。
2.如權(quán)利要求1所述的方法,其特征在于,還包括數(shù)據(jù)訪問服務(wù)器接收所述網(wǎng)絡(luò)應(yīng)用系統(tǒng)發(fā)送的用于指示對所述待訪問數(shù)據(jù)進行操作 的操作類型信息,所述操作類型信息是所述網(wǎng)絡(luò)應(yīng)用系統(tǒng)從預(yù)先設(shè)置的若干操作類型信息 中選取的;以及對訪問到的數(shù)據(jù)執(zhí)行接收的所述操作類型信息所指示的操作。
3.如權(quán)利要求1或2所述的方法,其特征在于,數(shù)據(jù)訪問服務(wù)器獲取由負(fù)載均衡服務(wù)器 轉(zhuǎn)發(fā)來的所述網(wǎng)絡(luò)應(yīng)用系統(tǒng)發(fā)送的待訪問數(shù)據(jù)的標(biāo)識;其中,負(fù)載均衡服務(wù)器在判斷出數(shù)據(jù)訪問服務(wù)器的負(fù)載信息符合預(yù)定條件時,將所述 待訪問數(shù)據(jù)的標(biāo)識轉(zhuǎn)發(fā)給數(shù)據(jù)訪問服務(wù)器。
4.如權(quán)利要求1或2所述的方法,其特征在于,數(shù)據(jù)訪問服務(wù)器設(shè)置有分別支持不同協(xié) 議的多個接口 ;以及數(shù)據(jù)訪問服務(wù)器獲取所述待訪問數(shù)據(jù)的標(biāo)識具體包括數(shù)據(jù)訪問服務(wù)器通過所述多個接口中的第一接口接收所述網(wǎng)絡(luò)應(yīng)用系統(tǒng)發(fā)送的封裝 有待訪問數(shù)據(jù)的標(biāo)識的協(xié)議消息,其中,所述第一接口支持用于封裝所述待訪問數(shù)據(jù)的標(biāo) 識的協(xié)議;并根據(jù)該協(xié)議消息的協(xié)議類型,選取相應(yīng)的序列化處理方式對所述協(xié)議消息進行序列化 處理,得到所述待訪問數(shù)據(jù)的標(biāo)識。
5.如權(quán)利要求1或2所述的方法,其特征在于,還包括數(shù)據(jù)訪問服務(wù)器獲取訪問到的數(shù)據(jù),對獲取到的數(shù)據(jù)進行壓縮,并將壓縮后的數(shù)據(jù)進 行加密后發(fā)送給所述網(wǎng)絡(luò)應(yīng)用系統(tǒng)。
6.如權(quán)利要求1或2所述的方法,其特征在于,還包括所述數(shù)據(jù)訪問服務(wù)器確定接收所述待訪問數(shù)據(jù)的標(biāo)識的時間信息以及所述網(wǎng)絡(luò)應(yīng)用 系統(tǒng)的標(biāo)識;并根據(jù)所述時間信息和所述網(wǎng)絡(luò)應(yīng)用系統(tǒng)的標(biāo)識,從預(yù)先設(shè)置的網(wǎng)絡(luò)應(yīng)用系統(tǒng)的標(biāo)識、 時間信息與數(shù)據(jù)訪問帶寬的對應(yīng)關(guān)系中,選取相應(yīng)的數(shù)據(jù)訪問帶寬;以及根據(jù)確定出的訪問策略以及訪問數(shù)據(jù)所需的參數(shù)信息,利用選取的訪問帶寬,訪問存 儲在確定的存儲介質(zhì)的類型信息所指示的存儲介質(zhì)中的所述待訪問數(shù)據(jù)。
7.如權(quán)利要求1或2所述的方法,其特征在于,數(shù)據(jù)訪問服務(wù)器獲取所述待訪問數(shù)據(jù)的 標(biāo)識具體包括數(shù)據(jù)訪問服務(wù)器利用指定數(shù)目的線程監(jiān)聽所述網(wǎng)絡(luò)應(yīng)用系統(tǒng)發(fā)送的數(shù)據(jù)訪問請求消 息,其中,所述指定數(shù)目小于所述數(shù)據(jù)訪問服務(wù)器與所有網(wǎng)絡(luò)應(yīng)用系統(tǒng)之間的連接總數(shù)目; 以及從監(jiān)聽到的數(shù)據(jù)訪問請求消息中解析得到所述待訪問數(shù)據(jù)的標(biāo)識。
8.一種數(shù)據(jù)訪問裝置,其特征在于,包括標(biāo)識獲取單元,用于獲取至少一個網(wǎng)絡(luò)應(yīng)用系統(tǒng)發(fā)送的待訪問數(shù)據(jù)的標(biāo)識;第一確定單元,用于從預(yù)先設(shè)置在所述裝置中的數(shù)據(jù)的標(biāo)識與訪問策略、存儲介質(zhì)的 類型信息的對應(yīng)關(guān)系中,確定與標(biāo)識獲取單元獲取到的待訪問數(shù)據(jù)的標(biāo)識對應(yīng)的訪問策 略、存儲介質(zhì)的類型信息;存儲地址確定單元,用于通過執(zhí)行第一確定單元確定的訪問策略,確定所述待訪問數(shù) 據(jù)的存儲地址;訪問接口確定單元,用于根據(jù)第一確定單元確定的存儲介質(zhì)的類型信息,從預(yù)先設(shè)置 在所述裝置中的存儲介質(zhì)類型信息與針對不同類型的存儲介質(zhì)的訪問接口的對應(yīng)關(guān)系中, 確定相應(yīng)的訪問接口;訪問單元,用于通過訪問接口確定單元確定的訪問接口,訪問存儲在存儲地址確定單 元確定的存儲地址中的所述待訪問數(shù)據(jù)。
9.如權(quán)利要求8所述的裝置,其特征在于,還包括信息接收單元,用于接收所述網(wǎng)絡(luò)應(yīng)用系統(tǒng)發(fā)送的用于指示對所述待訪問數(shù)據(jù)進行操 作的操作類型信息,所述操作類型信息是所述網(wǎng)絡(luò)應(yīng)用系統(tǒng)從預(yù)先設(shè)置的若干操作類型信 息中選取的;操作單元,用于對訪問單元訪問到的數(shù)據(jù)執(zhí)行信息接收單元接收的操作類型信息所指 示的操作。
10.如權(quán)利要求8或9所述的裝置,其特征在于,標(biāo)識獲取單元具體用于獲取由負(fù)載均 衡服務(wù)器轉(zhuǎn)發(fā)來的所述網(wǎng)絡(luò)應(yīng)用系統(tǒng)發(fā)送的待訪問數(shù)據(jù)的標(biāo)識;其中,負(fù)載均衡服務(wù)器在判斷出數(shù)據(jù)訪問服務(wù)器的負(fù)載信息符合預(yù)定條件時,將所述 待訪問數(shù)據(jù)的標(biāo)識轉(zhuǎn)發(fā)給數(shù)據(jù)訪問服務(wù)器。
11.如權(quán)利要求8或9所述的裝置,其特征在于,所述裝置包含分別支持不同協(xié)議的多 個接口 ;以及所述標(biāo)識獲取單元具體包括消息接收模塊,用于通過所述多個接口中的第一接口接收所述網(wǎng)絡(luò)應(yīng)用系統(tǒng)發(fā)送的封 裝有待訪問數(shù)據(jù)的標(biāo)識的協(xié)議消息,其中,所述第一接口支持用于封裝所述待訪問數(shù)據(jù)的 標(biāo)識的協(xié)議;協(xié)議轉(zhuǎn)化模塊,用于根據(jù)消息接收模塊接收的該協(xié)議消息的協(xié)議類型,選取相應(yīng)的序 列化處理方式對所述協(xié)議消息進行序列化處理,得到所述待訪問數(shù)據(jù)的標(biāo)識。
12.如權(quán)利要求8或9所述的裝置,其特征在于,還包括數(shù)據(jù)獲取單元,用于獲取訪問單元訪問到的數(shù)據(jù);發(fā)送單元,用于對數(shù)據(jù)獲取單元獲取到的數(shù)據(jù)進行壓縮,并將壓縮后的數(shù)據(jù)進行加密 后發(fā)送給所述網(wǎng)絡(luò)應(yīng)用系統(tǒng)。
13.如權(quán)利要求8或9所述的裝置,其特征在于,還包括第二確定單元,用于確定標(biāo)識獲取單元獲取所述待訪問數(shù)據(jù)的標(biāo)識的時間信息以及所 述網(wǎng)絡(luò)應(yīng)用系統(tǒng)的標(biāo)識;選取單元,用于根據(jù)第二確定單元確定的時間信息和網(wǎng)絡(luò)應(yīng)用系統(tǒng)的標(biāo)識,從預(yù)先設(shè) 置的網(wǎng)絡(luò)應(yīng)用系統(tǒng)的標(biāo)識、時間信息與數(shù)據(jù)訪問帶寬的對應(yīng)關(guān)系中,選取相應(yīng)的數(shù)據(jù)訪問帶寬;以及所述訪問單元具體用于根據(jù)第一確定單元確定出的訪問策略以及訪問數(shù)據(jù)所需的參 數(shù)信息,利用選取單元選取的訪問帶寬,訪問存儲在確定的存儲介質(zhì)的類型信息所指示的 存儲介質(zhì)中的所述待訪問數(shù)據(jù)。
14.如權(quán)利要求8或9所述的裝置,其特征在于,所述標(biāo)識獲取單元具體包括 監(jiān)聽模塊,用于利用指定數(shù)目的線程監(jiān)聽所述網(wǎng)絡(luò)應(yīng)用系統(tǒng)發(fā)送的數(shù)據(jù)訪問請求消息,其中,所述指定數(shù)目小于所述數(shù)據(jù)訪問服務(wù)器與所有網(wǎng)絡(luò)應(yīng)用系統(tǒng)之間的連接總數(shù) 目;解析模塊,用于從監(jiān)聽模塊監(jiān)聽到的數(shù)據(jù)訪問請求消息中解析得到所述待訪問數(shù)據(jù)的 標(biāo)識。
全文摘要
本發(fā)明公開了一種數(shù)據(jù)訪問方法及裝置,用以解決現(xiàn)有技術(shù)提供的數(shù)據(jù)訪問方案需要各個網(wǎng)絡(luò)應(yīng)用系統(tǒng)分別設(shè)置DAO而導(dǎo)致耗費網(wǎng)絡(luò)應(yīng)用系統(tǒng)較多處理資源的問題。方法包括數(shù)據(jù)訪問服務(wù)器獲取至少一個網(wǎng)絡(luò)應(yīng)用系統(tǒng)發(fā)送的待訪問數(shù)據(jù)的標(biāo)識;從預(yù)先設(shè)置在所述服務(wù)器中的數(shù)據(jù)信息與訪問策略、存儲介質(zhì)的類型信息的對應(yīng)關(guān)系中,確定與待訪問數(shù)據(jù)的標(biāo)識對應(yīng)的訪問策略、存儲介質(zhì)的類型信息;以及通過執(zhí)行確定的訪問策略,確定所述待訪問數(shù)據(jù)的存儲地址,并根據(jù)確定的存儲介質(zhì)的類型信息,從預(yù)先設(shè)置在所述服務(wù)器中的存儲介質(zhì)類型信息與訪問接口的對應(yīng)關(guān)系中,確定相應(yīng)的訪問接口;通過確定的訪問接口,訪問存儲在確定的存儲地址中的所述待訪問數(shù)據(jù)。
文檔編號H04L29/06GK101958838SQ20101050654
公開日2011年1月26日 申請日期2010年10月14日 優(yōu)先權(quán)日2010年10月14日
發(fā)明者劉勝, 吳鋒海 申請人:聯(lián)動優(yōu)勢科技有限公司