專利名稱:一種海量對象的存儲系統(tǒng)及其運行方法
技術(shù)領(lǐng)域:
本發(fā)明涉及分布式存儲技術(shù)領(lǐng)域,特別是涉及一種海量對象的存儲系統(tǒng)及其運行 方法。
背景技術(shù):
在對象存儲系統(tǒng)中,對象是存儲數(shù)據(jù)的基本實體,它包含對象的數(shù)據(jù)部分和元數(shù) 據(jù)部分,對象的數(shù)據(jù)部分指對象本身所包含的數(shù)據(jù)或內(nèi)容信息,對象的元數(shù)據(jù)指的是描述 對象信息的信息,通常包含諸如對象的創(chuàng)建時間,對象的大小,對象的修改時間,對象的最 后訪問時間,對象的讀寫權(quán)限等;對象通常被放置在某個容器中,我們可以將容器看成是對 象的集合,當(dāng)然,容器也能包含子容器,一個容器可以包含多個對象和多個子容器。對象和 容器的示例及關(guān)系如圖1所示;整個對象存儲系統(tǒng)則由對象,容器以及相關(guān)的管理模塊和 安全模塊構(gòu)成。Apache Axis2是一個高效的,靈活的,具有很好的擴(kuò)展性的Web服務(wù)解析引擎,它 提供了一個完整的對象模型和模塊化體系結(jié)構(gòu)。Axis2的對象模型是基于XML的對象模型 (AXIOM),該對象模型內(nèi)存占用率低,性能高效,API接口簡單易用。模塊化的體系結(jié)構(gòu)使得 添加新的功能以及支持一個新的與Web services相關(guān)的說明和建議變的非常容易。利用 Axis2解析引擎,可以很簡潔的完成諸如發(fā)送SOAP消息,接受和處理SOAP消息,從一個服務(wù) 獲取相應(yīng)的WSDL,發(fā)送和接受帶有附件的SOAP消息,建立或使用基于REST的Web服務(wù)等功 能。當(dāng)前的對象存儲系統(tǒng)主要基于硬件架構(gòu)來實現(xiàn),如對象存儲設(shè)備(OSD),通過提供 一些列的命令接口來實現(xiàn)對對象存儲設(shè)備的操作,進(jìn)而實現(xiàn)對設(shè)備上容器和對象的操作, 這種硬件架構(gòu)下的對象存儲系統(tǒng)是由于是通過針對硬件的命令接口來實現(xiàn)對對象和容器 的操作,具有很好的性能;其次,基于硬件架構(gòu)的對象存儲系統(tǒng)會在多個級別上提供安全, 如對存儲設(shè)備的認(rèn)證,對計算節(jié)點的認(rèn)證,對計算節(jié)點命令的認(rèn)證等,從而給用戶以信心, 因此高性能和高安全是其顯著的優(yōu)點。但是,這種硬件架構(gòu)下的對象存儲系統(tǒng)是建立在新 的存儲體系上的,從傳統(tǒng)的存儲編程OSD存儲,需要在多個層面上作改變,這包括存儲設(shè) 備,存儲網(wǎng)絡(luò),文件系統(tǒng)和數(shù)據(jù)庫,這會與已有的存儲系統(tǒng)產(chǎn)生兼容性問題,從而導(dǎo)致系統(tǒng) 部署成本高,難于推廣應(yīng)用;其次,系統(tǒng)的靈活性和低成本的可擴(kuò)性有待提高,因為提供的 是針對硬件設(shè)備的命令接口,當(dāng)需要增加新的命令接口時,由于需要對硬件本身進(jìn)行修改, 而對硬件進(jìn)行修改,會導(dǎo)致成本較高,修改周期也較長,靈活性也較差;最后,雖然多級別的 安全認(rèn)證能夠給系統(tǒng)很高的安全性,但是很多應(yīng)用場景,如購物車,并不需要如此多級別的 認(rèn)證就可以保證系統(tǒng)的安全,多級別的安全認(rèn)證會影響系統(tǒng)的性能,加大系統(tǒng)的延遲,從而 影響用戶體驗??傊枰绢I(lǐng)域技術(shù)人員迫切解決的一個技術(shù)問題就是如何能夠提供一種海 量對象的存儲系統(tǒng),能夠?qū)A康膶ο蠛腿萜鬟M(jìn)行簡潔高效的管理,同時保證系統(tǒng)的簡潔 性,靈活性,低成本的可擴(kuò)展性,安全性和向后兼容性。
本發(fā)明所要解決的技術(shù)問題是提供一種海量對象的存儲系統(tǒng)及其運行方法,能夠 對海量的對象和容器進(jìn)行簡潔高效的管理,同時保證系統(tǒng)的簡潔性,靈活性,低成本的可擴(kuò) 展性,安全性和向后兼容性。為了解決上述問題,本發(fā)明公開了一種海量對象的存儲系統(tǒng),包括接口層單元、 服務(wù)層單元和存儲層單元;所述接口層單元包括接口模塊,包括REST接口和API接口,用于構(gòu)造請求信息;AXIS2請求解析引擎,用于對所述請求信息進(jìn)行解析,并將解析后的請求信息轉(zhuǎn)發(fā) 給服務(wù)層單元;所述服務(wù)層單元包括對象服務(wù)模塊,用于依據(jù)請求信息對對象進(jìn)行管理操作和控制操作;容器服務(wù)模塊,用于依據(jù)請求信息對容器進(jìn)行管理操作和控制操作;系統(tǒng)管理模塊,用于對所述存儲系統(tǒng)進(jìn)行系統(tǒng)管理;安全管理模塊,用于對所述存儲系統(tǒng)進(jìn)行安全性管理;存儲接口適配層模塊,包含一系列的訪問接口,用于通過采用統(tǒng)一的接口函數(shù)訪 問存儲層單元的存儲資源;所述存儲層單元,包括多種存儲資源,用于在存儲資源上存儲數(shù)據(jù);所述數(shù)據(jù)包 括對象的自身數(shù)據(jù)和對象的元數(shù)據(jù)。優(yōu)選的,通過HTTP協(xié)議利用所述REST接口構(gòu)造請求信息;通過調(diào)用接口函數(shù)利用 所述API接口構(gòu)造請求信息。優(yōu)選的,當(dāng)所述存儲系統(tǒng)處于預(yù)置安全應(yīng)用場景時,所述安全管理模塊開啟;當(dāng)所 述存儲系統(tǒng)不處于預(yù)置安全應(yīng)用場景時,所述安全管理模塊關(guān)閉。優(yōu)選的,所述安全管理模塊對所述存儲系統(tǒng)進(jìn)行安全性管理,包括提取請求消息中的預(yù)置關(guān)鍵信息;利用加密算法對所述預(yù)置關(guān)鍵信息進(jìn)行加密。優(yōu)選的,對象服務(wù)模塊對對象進(jìn)行管理操作,包括對象的創(chuàng)建、刪除、讀取、寫入、 追加、恢復(fù)、拷貝和移動操作;對象服務(wù)模塊對對象進(jìn)行控制操作,包括設(shè)置對象的屬性 和讀取對象的屬性。優(yōu)選的,容器服務(wù)模塊對容器進(jìn)行管理操作,包括容器的創(chuàng)建、刪除、讀取、恢復(fù)、 開、關(guān)和定位操作;容器服務(wù)模塊對容器進(jìn)行控制操作,包括設(shè)置容器的讀寫權(quán)限、設(shè)置 容器的屬性、對容器進(jìn)行統(tǒng)計和判別。優(yōu)選的,所述系統(tǒng)管理模塊對所述存儲系統(tǒng)進(jìn)行系統(tǒng)管理,包括用戶管理、日志 管理、統(tǒng)計分析、會話管理、授權(quán)管理和統(tǒng)計查看。優(yōu)選的,所述存儲資源包括文件系統(tǒng)資源、key-Value存儲系統(tǒng)資源和數(shù)據(jù)庫系 統(tǒng)資源。相應(yīng)的,本發(fā)明還公開了一種海量對象的存儲系統(tǒng)的運行方法,包括通過REST接口或API接口構(gòu)造請求消息;
通過AXIS2請求解析引擎對所述請求信息進(jìn)行解析,并將解析后的請求信息轉(zhuǎn)發(fā) 給服務(wù)層單元;服務(wù)層單元依據(jù)請求信息采用統(tǒng)一的接口函數(shù)訪問存儲層單元的存儲資源;服務(wù)層單元對存儲資源的對象或容器進(jìn)行管理操作和/或控制操作。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點本發(fā)明所提出的基于Apache AXIS2的一種海量對象的存儲系統(tǒng),是基于軟件架構(gòu) 的,通過軟件架構(gòu)來提供對象存儲管理的接口,從而可以與現(xiàn)有的存儲體系很好的兼容,并 不需要對現(xiàn)有的存儲系統(tǒng)架構(gòu)有任何變動,因此,該架構(gòu)下的系統(tǒng)部署成本低,具有很好的 向后兼容性。其次,對于針對對象存儲系統(tǒng)的高頻度操作,如對象及容器的創(chuàng)建,對象及容 器的刪除,對象及容器的移動等高頻度的操作不僅可以簡潔高效的實現(xiàn),而且,由于是在軟 件架構(gòu)下實現(xiàn)對象存儲系統(tǒng),因此添加新功能或新接口的會變得非常容易,只需將新接口 的代碼邏輯添加到指定的接口函數(shù)中,并不需要修改原有的代碼邏輯可以(保證原有功能 的安全),也不需要對硬件設(shè)備作任何改動,因此,該架構(gòu)下的對象存儲系統(tǒng),具有很好的靈 活性和低成本可擴(kuò)展性。進(jìn)一步,該存儲系統(tǒng)下的安全模塊可以根據(jù)應(yīng)用場景來進(jìn)行相應(yīng)的簡潔高效安全 處理,同時保證系統(tǒng)的安全性,例如,在多數(shù)應(yīng)用場景下,如網(wǎng)絡(luò)購物場景,我們只需要對請 求信息中的關(guān)鍵信息進(jìn)行諸如MD5,SHA-I等加密即可,關(guān)鍵信息如操作類型,對象的名稱 或ID,操作的當(dāng)前時間等,這種加密方式簡潔高效,幾乎不影響系統(tǒng)性能,由于加密算法難 于破解,因此,系統(tǒng)的安全性可以得到保證。
圖1是對象與容器相互關(guān)系的示意圖;圖2是本發(fā)明一種海量對象的存儲系統(tǒng)實施例的結(jié)構(gòu)圖;圖3是本發(fā)明一種海量對象的存儲系統(tǒng)的功能架構(gòu)示意圖;圖4是本發(fā)明一種海量對象的存儲系統(tǒng)的運行方法實施例的流程圖。
具體實施例方式為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和具體實 施方式對本發(fā)明作進(jìn)一步詳細(xì)的說明。本發(fā)明給出了一種基于Apache AXIS2的海量對象存儲系統(tǒng)架構(gòu),借助于Apache 的AXIS2請求解析引擎,在該系統(tǒng)架構(gòu)下,對象和容器的存儲,管理可以得到簡單高效的實 現(xiàn),同時,對象存儲系統(tǒng)也具備良好的靈活性,可擴(kuò)展性,安全性和兼容性。參照圖2,示出了本發(fā)明一種海量對象的存儲系統(tǒng)實施例的結(jié)構(gòu)圖,相應(yīng)的,圖3 是本發(fā)明一種海量對象的存儲系統(tǒng)的功能架構(gòu)示意圖;本發(fā)明實施例所述的海量對象存儲 系統(tǒng)共分為三層,分別為接口層單元21,服務(wù)層單元22和存儲層單元23。所述接口層單元21包括接口模塊,包括REST接口 211和API接口 212,用于構(gòu)造請求消息;AXIS2請求解析引擎212,用于對所述請求信息進(jìn)行解析,并將解析后的請求信息 轉(zhuǎn)發(fā)給服務(wù)層單元;
所述服務(wù)層單元22包括對象服務(wù)模塊221,用于依據(jù)請求信息對對象進(jìn)行管理操作和控制操作;容器服務(wù)模塊222,用于依據(jù)請求信息對容器進(jìn)行管理操作和控制操作;系統(tǒng)管理模塊223,用于對所述存儲系統(tǒng)進(jìn)行系統(tǒng)管理;安全管理模塊224,用于對所述存儲系統(tǒng)進(jìn)行安全性管理;存儲接口適配層模塊225,包含一系列的存儲接口,用于通過采用統(tǒng)一的接口函數(shù) 訪問存儲層單元的存儲資源;所述存儲層單元23,包括多種存儲資源,用于在存儲資源上存儲數(shù)據(jù);所述數(shù)據(jù) 包括對象的自身數(shù)據(jù)和對象的元數(shù)據(jù)。下面,對本發(fā)明實施例所述的海量對象存儲系統(tǒng)做進(jìn)一步說明。接口層單元21展示的是在該系統(tǒng)架構(gòu)下,對象存儲服務(wù)系統(tǒng)對外提供的服務(wù)接 口,主要包含兩種類型的接口 REST接口 211和API接口 212。REST接口是一種基于HTTP 協(xié)議的軟件架構(gòu)接口,其全稱是ItepresentationalMate Transfer,即表象狀態(tài)轉(zhuǎn)移接口。 在具體實施時,通過HTTP協(xié)議利用所述REST接口構(gòu)造請求消息。如果把WEB服務(wù)器端中 所有的數(shù)據(jù)都看作是資源(Resource),那么呈現(xiàn)在用戶面前(即客戶端)的就是資源的表 像(R印resentation)。每一個資源都有自己的唯一標(biāo)識,即統(tǒng)一資源標(biāo)識符(URI,Uniform Resource Identifier);表象狀態(tài)轉(zhuǎn)移所述的狀態(tài)(State),指的是客戶端的狀態(tài),而不 是服務(wù)器端的狀態(tài),在REST中,服務(wù)器端應(yīng)該是無狀態(tài)的。表象狀態(tài)(R印resentational State)即每一個資源(Resource)在客戶端的表像(Itepresentation)就是客戶端的一個 狀態(tài)(State)。表象狀態(tài)轉(zhuǎn)移所述的轉(zhuǎn)移(Transfer),指的是當(dāng)用戶通過不同的URI訪問 不同的資源時,客戶端的表像(Itepresentation)也會隨著變化,也就意味著客戶端的狀態(tài) 轉(zhuǎn)移(Transfer) 了。API接口則是所述存儲系統(tǒng)對外提供的針對編程語言級的函數(shù)接口, 客戶端在程序中直接調(diào)用該接口函數(shù),就能訪問對象存儲系統(tǒng)提供的服務(wù),也即,通過調(diào)用 接口函數(shù)利用所述API接口構(gòu)造請求信息??蛻舳送ㄟ^利用上述提供的接口類型來構(gòu)造相應(yīng)的服務(wù)請求信息,Apache的 AXIS2請求解析引擎213對所述請求信息進(jìn)行解析,進(jìn)而轉(zhuǎn)發(fā)給相應(yīng)的服務(wù)層單元進(jìn)行處 理,從而完成對象存儲系統(tǒng)相關(guān)功能的訪問。需要說明的是,在基于Apache AXIS2的對 象存儲系統(tǒng)架構(gòu)下,為了提高整個系統(tǒng)的并發(fā)度,可以在一個或者多個服務(wù)器上部署多個 Apache AXIS2請求解析引擎,以提高整個存儲系統(tǒng)的并發(fā)度,使所述存儲系統(tǒng)可以應(yīng)用于 大量并發(fā)用戶的場景。服務(wù)層單元22描述的是對象存儲系統(tǒng)提供的功能。其中,對象服務(wù)模塊221依據(jù) 請求信息對對象進(jìn)行管理操作和控制操作,對象的管理操作包括對象的創(chuàng)建、刪除、讀取、 寫入、追加、恢復(fù)、拷貝、移動操作等;對象的控制操作包括設(shè)置對象的屬性、讀取對象的 屬性等。容器服務(wù)模塊222依據(jù)請求信息對容器進(jìn)行管理操作和控制操作,容器的管理操 作包括容器的創(chuàng)建、刪除、讀取、恢復(fù)、定位、開、關(guān)操作等;容器的控制操作包括設(shè)置容 器的讀寫權(quán)限、設(shè)置容器的讀寫屬性、對容器進(jìn)行統(tǒng)計分析和判別,如統(tǒng)計容器中對象的數(shù) 量,容器占用的磁盤空間大小,容器是否過期等。系統(tǒng)管理模塊223對所述存儲系統(tǒng)進(jìn)行系統(tǒng)管理,針對系統(tǒng)管理員,所述系統(tǒng)管理包括用戶管理、日志管理、統(tǒng)計分析等;針對普通用戶,所述系統(tǒng)管理包括會話管理、 授權(quán)管理、統(tǒng)計查看等。安全管理模塊2 對所述存儲系統(tǒng)進(jìn)行安全性管理。在本發(fā)明的一個優(yōu)選實施例 中,可以根據(jù)系統(tǒng)的不同應(yīng)用場景,來決定系統(tǒng)是否需要安全模塊的支持。這就需要預(yù)先對 應(yīng)用場景進(jìn)行配置,將安全性需求較高的應(yīng)用場景作為預(yù)置安全應(yīng)用場景,則當(dāng)所述存儲 系統(tǒng)處于預(yù)置安全應(yīng)用場景時,所述安全管理模塊開啟;當(dāng)所述存儲系統(tǒng)不處于預(yù)置安全 應(yīng)用場景時,即存儲系統(tǒng)處于安全性需求不高的應(yīng)用場景,則所述安全管理模塊關(guān)閉,以進(jìn) 一步提高系統(tǒng)的響應(yīng)時間。其中,預(yù)置安全應(yīng)用場景可以根據(jù)用戶的需求進(jìn)行靈活設(shè)置,例 如,網(wǎng)絡(luò)購物這一應(yīng)用場景,安全性需求較高,可以不用將其設(shè)置為預(yù)置安全應(yīng)用場景。進(jìn)一步,在本發(fā)明的另一個優(yōu)選實施例中,可以在安全管理模塊224中提取請求 信息中的預(yù)置關(guān)鍵信息,并利用高強(qiáng)度的難于破解的加密算法(如MD5,SHA-I等)對所述 與預(yù)置關(guān)鍵信息進(jìn)行加密。例如,對于針對對象的操作,可以采用加密算法對請求信息中對 象操作類型(如創(chuàng)建對象,刪除對象等)、對象的名稱、產(chǎn)生該操作的當(dāng)前時間等關(guān)鍵信息 進(jìn)行加密,借助于加密算法本身的簡潔性,難于破解性,以及小尺寸的加密內(nèi)容等特性,不 僅可以保證所述存儲系統(tǒng)性能,而且也保證了存儲系統(tǒng)的安全性。為了能夠通過統(tǒng)一的接口來實現(xiàn)對底層存儲資源的訪問,在該架構(gòu)中的服務(wù)層單 元22還包含一個存儲接口適配層模塊225,所述存儲接口適配層模塊包含一系列的訪問接 口以實現(xiàn)對底層的存儲資源進(jìn)行抽象,從而屏蔽了底層存儲資源的異構(gòu)性,用統(tǒng)一的接口 函數(shù)來訪問存儲層單元的存儲資源,則當(dāng)更換不同的存儲資源時,不需要對服務(wù)層單元中 針對底層存儲資源的邏輯代碼進(jìn)行改動,從而保證了系統(tǒng)的靈活性和可擴(kuò)展性。存儲層單元23描述的是對象存儲系統(tǒng)中的數(shù)據(jù)序列化到何種類型的存儲資源 上,所述存儲資源包括文件系統(tǒng)資源、Key-Value存儲系統(tǒng)資源、數(shù)據(jù)庫系統(tǒng)資源等。由于 服務(wù)層單元22的存儲接口適配層模塊225可以對不同類型的存儲資源進(jìn)行抽象,用統(tǒng)一的 接口來實現(xiàn)對底層存儲資源的訪問,所以說,多種異構(gòu)的存儲資源均可以部署到上述架構(gòu) 下的對象存儲系統(tǒng)中。本發(fā)明實施例所提出的基于Apache AXIS2的一種海量對象的存儲系統(tǒng),是基于軟 件架構(gòu)的,通過軟件架構(gòu)來提供對象存儲管理的接口,從而可以與現(xiàn)有的存儲體系很好的 兼容,并不需要對現(xiàn)有的存儲系統(tǒng)架構(gòu)有任何變動,因此,該架構(gòu)下的系統(tǒng)部署成本低,具 有很好的向后兼容性。其次,對于針對對象存儲系統(tǒng)的高頻度操作,如對象及容器的創(chuàng)建, 對象及容器的刪除,對象及容器的移動等高頻度的操作不僅可以簡潔高效的實現(xiàn),而且,由 于是在軟件架構(gòu)下實現(xiàn)對象存儲系統(tǒng),因此添加新功能或新接口的會變得非常容易,只需 將新接口的代碼邏輯添加到指定的接口函數(shù)中,并不需要修改原有的代碼邏輯可以(保證 原有功能的安全),也不需要對硬件設(shè)備作任何改動,因此,該架構(gòu)下的對象存儲系統(tǒng),具有 很好的靈活性和低成本可擴(kuò)展性。下面,針對上述海量對象的存儲系統(tǒng),對所述存儲系統(tǒng)進(jìn)行運行情況作進(jìn)一步說 明。參照圖4,示出了本發(fā)明一種海量對象的存儲系統(tǒng)的運行方法實施例的流程圖,包括步驟401,通過REST接口或API接口構(gòu)造請求消息;步驟402,通過AXIS2請求解析引擎對所述請求信息進(jìn)行解析,并將解析后的請求 信息轉(zhuǎn)發(fā)給服務(wù)層單元;
步驟403,服務(wù)層單元依據(jù)請求信息采用統(tǒng)一的接口函數(shù)訪問存儲層單元的存儲 資源;步驟404,服務(wù)層單元對存儲資源的對象或容器進(jìn)行管理操作和/或控制操作。下面通過三個具體的實例來說明在系統(tǒng)架構(gòu)下,所述存儲系統(tǒng)的整個運行過程。 存儲系統(tǒng)并不要求三層單元(接口層單元、服務(wù)層單元、存儲層單元)都部署在同一個服務(wù) 器上,可以根據(jù)需要將相應(yīng)的層次單元部署在不同的機(jī)器上,當(dāng)然也也可部署在同一個機(jī) 器上。例如,可以將接口層單元中的AXIS2請求解析引擎部署在多臺機(jī)器上,以提高整個系 統(tǒng)的并發(fā)度;將服務(wù)層單元中的各個服務(wù)模塊也部署在多臺機(jī)器上,以提高系統(tǒng)的響應(yīng)速 度;存儲層單元也可根據(jù)需要部署在一臺機(jī)器上或者多臺機(jī)器上。如果需要在該架構(gòu)下的 對象存儲系統(tǒng)中添加新的服務(wù)功能,只需將相應(yīng)服務(wù)功能的代碼邏輯添加到服務(wù)端中指定 的接口模塊中,客戶端只需構(gòu)造該功能所需的REST請求信息即可訪問該服務(wù)。實施例1 創(chuàng)建對象的REST請求由于REST軟件架構(gòu)是建立在諸如HTTP等協(xié)議的基礎(chǔ)上的,因此可以用HTTP請求 協(xié)議中的PUT操作來實現(xiàn)對象的創(chuàng)建,具體的請求信息如下所示PUT/RootURI/MyObject HTTP/1. 1HOST =ServerIP :9090Date :xxxXJJserID :EricX_Parent /abc/def/Other param info......通過REST接口構(gòu)造上述請求消息,該請求信息表明用戶“Eric”請求在名為“abc” 的容器中的子容器“def ”中創(chuàng)建一個名字為“MyObject”的對象。上述的REST請求信息被 AXIS2請求解析引擎獲取并進(jìn)行解析,根據(jù)請求信息中的操作PUT、對象的名稱或ID、對象 所在的父目錄等信息,將相應(yīng)的請求參數(shù)轉(zhuǎn)發(fā)給服務(wù)層單元的創(chuàng)建對象的代碼邏輯;進(jìn)一 步,服務(wù)層單元通過訪問存儲層單元的存儲資源,在該代碼邏輯中實現(xiàn)對象的創(chuàng)建,之后根 據(jù)代碼邏輯的返回值來返回相應(yīng)的響應(yīng)信息給客戶端。例如,可以返回如下所示的響應(yīng)信 息HTTP/1. 1 200 OKDescription :Create Object SuccesObject ID :xy == 4bfikuytn43 == 089Y上述返回信息表明創(chuàng)建對象的請求被成功執(zhí)行,新創(chuàng)建對象的ID是xy == 4bfikuytn43 == 089Y。實施例2 刪除對象的REST請求對于刪除對象的操作,可以利用HTTP協(xié)議中的DELETE操作來實現(xiàn)對象的刪除,刪 除操作的REST請求示例如下所示DELETE/RootURI/MyObject HTTP/1. 1HOST =ServerIP :9090Date :xxxXJJserID :Dony
X_Parent /abc/def/Other param info......通過REST接口構(gòu)造上述請求消息,該請求信息的含義是用戶“Dony”請求刪除屬 于用戶“Eric”的在容器“abc”下的子容器“def”中名為“MyObject”的對象。AXIS2請求 解析引擎收到該DELETE請求信息并進(jìn)行解析,會將所述請求信息中的參數(shù)信息,如操作名 稱,對象ID等信息轉(zhuǎn)發(fā)給服務(wù)層單元的針對該刪除操作的代碼邏輯;進(jìn)一步,服務(wù)層單元 訪問存儲層單元的存儲資源并刪除對象“MyObject”,并根據(jù)代碼邏輯的返回值將相應(yīng)的響 應(yīng)信息(如是否刪除成功等)返回給客戶端,返回信息的示例下所示HTTP/1. 1 200 OKDescription :Delete Object Failed, Permission Deny.Object ID :xy == 4bfikuytn43 == 089Y上述返回信息表明刪除操作失敗了,因為用戶“Dony”不能刪除屬于Erie的對象。實施例3 修改對象的讀寫權(quán)限的REST請求所述修改對象的讀寫權(quán)限屬于設(shè)置對象的屬性這一控制操作。例如,所述修改對 象的讀寫權(quán)限可以為對于擁有者可讀可寫可執(zhí)行,其他人則為只讀。對于修改權(quán)限的操 作,可以利用HTTP協(xié)議中的POST操作來實現(xiàn),修改權(quán)限操作的REST請求示例如下5所示POST/RootURI/MyObject ? Op = ModifyPermission HTTP/1. 1HOST =ServerIP :9090Date :xxxXJJserID :EricX_Parent /abc/def/X_Permission :rwx r—r—Other param info......通過REST接口構(gòu)造上述請求消息,該請求信息的含義是用戶“Eric”希望將容器 “abc”中的子容器“def”中名為“MyObject”的對象的權(quán)限修改為“rwx r-_r-”,即對于 本用戶,擁有該對象的可讀可寫可執(zhí)行權(quán)限;而對于其他用戶,則只有讀的權(quán)限。AXIS2請求解析引擎收到所述POST請求信息后進(jìn)行解析,之后將該請求信息中的 參數(shù)信息,如操作名稱、對象ID等信息轉(zhuǎn)發(fā)給服務(wù)層單元的針對該修改操作的代碼邏輯; 進(jìn)一步,服務(wù)層單元訪問存儲層單元的存儲資源并修改對象“MyObject”的權(quán)限,然后根據(jù) 代碼邏輯的返回值將相應(yīng)的響應(yīng)信息(如是否修改成功等)返回給客戶端,返回信息的示 例如下所示HTTP/1. 1 200 OKDescription :Permission Update Success.Object ID :xy == 4bfikuytn43 == 089Y上述響應(yīng)信息表明修改權(quán)限操作成功。以上對本發(fā)明所提供的一種海量對象的存儲系統(tǒng)及其運行方法,進(jìn)行了詳細(xì)介 紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進(jìn)行了闡述,以上實施例的說明只 是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā) 明的思想,在具體實施方式
及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
權(quán)利要求
1.一種海量對象的存儲系統(tǒng),其特征在于,包括接口層單元、服務(wù)層單元和存儲層單元;所述接口層單元包括接口模塊,包括REST接口和API接口,用于構(gòu)造請求信息;AXIS2請求解析引擎,用于對所述請求信息進(jìn)行解析,并將解析后的請求信息轉(zhuǎn)發(fā)給服 務(wù)層單元;所述服務(wù)層單元包括對象服務(wù)模塊,用于依據(jù)請求信息對對象進(jìn)行管理操作和控制操作; 容器服務(wù)模塊,用于依據(jù)請求信息對容器進(jìn)行管理操作和控制操作; 系統(tǒng)管理模塊,用于對所述存儲系統(tǒng)進(jìn)行系統(tǒng)管理; 安全管理模塊,用于對所述存儲系統(tǒng)進(jìn)行安全性管理;存儲接口適配層模塊,包含一系列的訪問接口,用于通過采用統(tǒng)一的接口函數(shù)訪問存 儲層單元的存儲資源;所述存儲層單元,包括多種存儲資源,用于在存儲資源上存儲數(shù)據(jù);所述數(shù)據(jù)包括對 象的自身數(shù)據(jù)和對象的元數(shù)據(jù)。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于,通過HTTP協(xié)議利用所述REST接口構(gòu)造請求信息; 通過調(diào)用接口函數(shù)利用所述API接口構(gòu)造請求信息。
3.如權(quán)利要求1所述的系統(tǒng),其特征在于,當(dāng)所述存儲系統(tǒng)處于預(yù)置安全應(yīng)用場景時,所述安全管理模塊開啟; 當(dāng)所述存儲系統(tǒng)不處于預(yù)置安全應(yīng)用場景時,所述安全管理模塊關(guān)閉。
4.如權(quán)利要求3所述的系統(tǒng),其特征在于,所述安全管理模塊對所述存儲系統(tǒng)進(jìn)行安 全性管理,包括提取請求消息中的預(yù)置關(guān)鍵信息; 利用加密算法對所述預(yù)置關(guān)鍵信息進(jìn)行加密。
5.如權(quán)利要求1所述的系統(tǒng),其特征在于,對象服務(wù)模塊對對象進(jìn)行管理操作,包括對象的創(chuàng)建、刪除、讀取、寫入、追加、恢復(fù)、 拷貝和移動操作;對象服務(wù)模塊對對象進(jìn)行控制操作,包括設(shè)置對象的屬性和讀取對象的屬性。
6.如權(quán)利要求1所述的系統(tǒng),其特征在于,容器服務(wù)模塊對容器進(jìn)行管理操作,包括容器的創(chuàng)建、刪除、讀取、恢復(fù)、開、關(guān)和定位 操作;容器服務(wù)模塊對容器進(jìn)行控制操作,包括設(shè)置容器的讀寫權(quán)限、設(shè)置容器的讀寫屬 性、對容器進(jìn)行統(tǒng)計和判別。
7.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述系統(tǒng)管理模塊對所述存儲系統(tǒng)進(jìn)行系 統(tǒng)管理,包括用戶管理、日志管理、統(tǒng)計分析、會話管理、授權(quán)管理和統(tǒng)計查看。
8.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述存儲資源包括文件系統(tǒng)資源、key-Value存儲系統(tǒng)資源和數(shù)據(jù)庫系統(tǒng)資源。
9.一種海量對象的存儲系統(tǒng)的運行方法,其特征在于,包括 通過REST接口或API接口構(gòu)造請求消息;通過AXIS2請求解析引擎對所述請求信息進(jìn)行解析,并將解析后的請求信息轉(zhuǎn)發(fā)給服 務(wù)層單元;服務(wù)層單元依據(jù)請求信息采用統(tǒng)一的接口函數(shù)訪問存儲層單元的存儲資源; 服務(wù)層單元對存儲資源的對象或容器進(jìn)行管理操作和/或控制操作。
10.如權(quán)利要求9所述的方法,其特征在于,所述存儲系統(tǒng)為如權(quán)利要求1至8任意一 權(quán)利要求所述的存儲系統(tǒng)。
全文摘要
本發(fā)明提供了一種海量對象的存儲系統(tǒng)及其運行方法,所述系統(tǒng)包括接口層單元,包括接口模塊,用于構(gòu)造請求信息;AXIS2請求解析引擎,用于對請求信息進(jìn)行解析并將請求信息轉(zhuǎn)發(fā)給服務(wù)層單元;服務(wù)層單元包括對象服務(wù)模塊,用于對對象進(jìn)行管理、控制操作;容器服務(wù)模塊,用于對容器進(jìn)行管理、控制操作;系統(tǒng)管理模塊,用于對存儲系統(tǒng)進(jìn)行系統(tǒng)管理;安全管理模塊,用于對存儲系統(tǒng)進(jìn)行安全性管理;存儲接口適配層模塊,用于通過采用統(tǒng)一的接口函數(shù)訪問存儲層單元的存儲資源;存儲層單元,用于在存儲資源上存儲數(shù)據(jù)。本發(fā)明能夠?qū)A康膶ο蠛腿萜鬟M(jìn)行簡潔高效的管理,并保證系統(tǒng)的簡潔性、靈活性、低成本的可擴(kuò)展性、安全性和向后兼容性。
文檔編號G06F17/30GK102073742SQ20111003409
公開日2011年5月25日 申請日期2011年1月31日 優(yōu)先權(quán)日2011年1月31日
發(fā)明者楊廣文, 阮華斌, 黃小猛 申請人:清華大學(xué)