最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

數(shù)據(jù)訪問方法、系統(tǒng)以及存儲(chǔ)介質(zhì)與流程

文檔序號(hào):11254020閱讀:1363來源:國(guó)知局
本發(fā)明涉及數(shù)據(jù)管理技術(shù),特別是涉及一種數(shù)據(jù)訪問方法、系統(tǒng)以及存儲(chǔ)介質(zhì)。
背景技術(shù)
::隨著信息化技術(shù)的快速發(fā)展,一個(gè)企業(yè)的用戶數(shù)量、數(shù)據(jù)量均呈現(xiàn)爆炸式增長(zhǎng),在業(yè)務(wù)量提高的同時(shí),數(shù)據(jù)的訪問量和數(shù)據(jù)量快速增長(zhǎng)對(duì)計(jì)算機(jī)的處理能力和計(jì)算強(qiáng)度也相應(yīng)增大,使得單一節(jié)點(diǎn)的集中式存儲(chǔ)根本無法承擔(dān)。因此,分布式計(jì)算機(jī)集群系統(tǒng)產(chǎn)生了,在分布式計(jì)算機(jī)集群系統(tǒng)中,由于數(shù)據(jù)分散存儲(chǔ)于各個(gè)計(jì)算機(jī)的磁盤、顯存中,或位于某個(gè)進(jìn)程的內(nèi)存地址空間等,從而導(dǎo)致數(shù)據(jù)訪問效率低、數(shù)據(jù)管理的成本增加。技術(shù)實(shí)現(xiàn)要素:基于此,有必要針對(duì)計(jì)算機(jī)集群系統(tǒng)中數(shù)據(jù)訪問效率低、管理成本高的問題,提供一種數(shù)據(jù)訪問方法、系統(tǒng)以及存儲(chǔ)介質(zhì)。一種數(shù)據(jù)訪問方法,包括:接收數(shù)據(jù)訪問請(qǐng)求消息;對(duì)數(shù)據(jù)訪問請(qǐng)求消息進(jìn)行解析,以獲取請(qǐng)求的數(shù)據(jù)的統(tǒng)一資源標(biāo)識(shí)符;根據(jù)請(qǐng)求的數(shù)據(jù)的統(tǒng)一資源標(biāo)識(shí)符驗(yàn)證請(qǐng)求是否合法;若確定請(qǐng)求合法,則根據(jù)請(qǐng)求的數(shù)據(jù)的統(tǒng)一資源標(biāo)識(shí)符在計(jì)算機(jī)集群系統(tǒng)中查詢數(shù)據(jù)并返回回應(yīng)消息。在其中一個(gè)實(shí)施例中,根據(jù)請(qǐng)求的數(shù)據(jù)的統(tǒng)一資源標(biāo)識(shí)符驗(yàn)證請(qǐng)求是否合法,包括:根據(jù)請(qǐng)求的數(shù)據(jù)的統(tǒng)一資源標(biāo)識(shí)符確定請(qǐng)求的數(shù)據(jù)是否為開放數(shù)據(jù);若確定請(qǐng)求的數(shù)據(jù)為開放數(shù)據(jù),則確定所述請(qǐng)求合法。在其中一個(gè)實(shí)施例中,若確定請(qǐng)求的數(shù)據(jù)不是開放數(shù)據(jù),則根據(jù)請(qǐng)求的數(shù)據(jù)的統(tǒng)一資源標(biāo)識(shí)符驗(yàn)證請(qǐng)求是否合法,包括:對(duì)數(shù)據(jù)訪問請(qǐng)求消息進(jìn)行解析,以獲取請(qǐng)求的用戶信息;根據(jù)請(qǐng)求的用戶信息判斷請(qǐng)求的用戶是否具備訪問權(quán)限;若確定請(qǐng)求的用戶具備訪問權(quán)限,則確定所述請(qǐng)求合法。在其中一個(gè)實(shí)施例中,接收數(shù)據(jù)訪問請(qǐng)求消息之前,還包括:根據(jù)存儲(chǔ)在計(jì)算機(jī)集群系統(tǒng)中的數(shù)據(jù)為每一塊數(shù)據(jù)創(chuàng)建數(shù)據(jù)的統(tǒng)一資源標(biāo)識(shí)符。在其中一個(gè)實(shí)施例中,數(shù)據(jù)的統(tǒng)一資源標(biāo)識(shí)符包括協(xié)議名稱、數(shù)據(jù)存放的主機(jī)名或主機(jī)ip地址以及數(shù)據(jù)在主機(jī)上的存放位置。在其中一個(gè)實(shí)施例中,數(shù)據(jù)訪問請(qǐng)求消息和回應(yīng)消息分別包括:消息標(biāo)記部分、消息頭部分和消息體部分;消息標(biāo)記部分用于記錄整條消息的長(zhǎng)度、消息頭部分的長(zhǎng)度以及消息體部分的長(zhǎng)度;消息頭部分包含消息的類別標(biāo)識(shí)、請(qǐng)求數(shù)據(jù)的統(tǒng)一資源標(biāo)識(shí)符以及消息的格式,其中,類別標(biāo)識(shí)用于標(biāo)識(shí)消息為數(shù)據(jù)訪問請(qǐng)求消息或回應(yīng)消息,消息的格式用于定義消息的傳輸協(xié)議;消息體部分用于記錄消息的具體內(nèi)容。在其中一個(gè)實(shí)施例中,若消息頭部分的類別標(biāo)識(shí)為訪問請(qǐng)求消息,則消息體部分的具體內(nèi)容包括請(qǐng)求的用戶信息。在其中一個(gè)實(shí)施例中,若消息頭部分的類別標(biāo)識(shí)為回應(yīng)消息,則消息頭部分還包含對(duì)數(shù)據(jù)訪問請(qǐng)求的處理結(jié)果,消息體部分的具體內(nèi)容則包括根據(jù)處理結(jié)果返回的參數(shù)。一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,該計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上所述方法的步驟。一種數(shù)據(jù)訪問系統(tǒng),包括計(jì)算機(jī)集群,所述計(jì)算機(jī)集群包括數(shù)據(jù)訪問計(jì)算機(jī)和數(shù)據(jù)提供計(jì)算機(jī),所述數(shù)據(jù)訪問計(jì)算機(jī)和數(shù)據(jù)提供計(jì)算機(jī)上運(yùn)行有數(shù)據(jù)管理服務(wù)程序,所述數(shù)據(jù)訪問計(jì)算機(jī)和數(shù)據(jù)提供計(jì)算機(jī)執(zhí)行所述數(shù)據(jù)管理服務(wù)程序時(shí)實(shí)現(xiàn)如上所述方法的步驟。上述數(shù)據(jù)訪問方法、系統(tǒng)以及存儲(chǔ)介質(zhì),通過接收數(shù)據(jù)訪問請(qǐng)求消息并對(duì)數(shù)據(jù)訪問請(qǐng)求消息進(jìn)行解析,以獲取請(qǐng)求的數(shù)據(jù)的統(tǒng)一資源標(biāo)識(shí)符,從而根據(jù)請(qǐng)求的數(shù)據(jù)的統(tǒng)一資源標(biāo)識(shí)符驗(yàn)證請(qǐng)求是否合法,若合法,則根據(jù)請(qǐng)求的統(tǒng)一資源標(biāo)識(shí)符查詢數(shù)據(jù)并返回回應(yīng)消息。其通過采用統(tǒng)一資源標(biāo)識(shí)符對(duì)分散存儲(chǔ)于集群中各個(gè)計(jì)算機(jī)的磁盤、顯存中、或位于某個(gè)進(jìn)程的內(nèi)存地址空間以及數(shù)據(jù)庫(kù)等的數(shù)據(jù)進(jìn)行標(biāo)識(shí),使得數(shù)據(jù)的使用者僅僅給出統(tǒng)一資源標(biāo)識(shí)符即可訪問數(shù)據(jù),從而簡(jiǎn)化了集群系統(tǒng)中的數(shù)據(jù)管理和訪問流程,并通過權(quán)限管理保障了數(shù)據(jù)的安全性。附圖說明圖1為一個(gè)實(shí)施例中計(jì)算機(jī)群的數(shù)據(jù)訪問系統(tǒng)的結(jié)構(gòu)示意圖;圖2為一個(gè)實(shí)施例中數(shù)據(jù)訪問方法的流程圖;圖3為一個(gè)實(shí)施例中數(shù)據(jù)訪問方法的流程圖;圖4為一個(gè)實(shí)施例中數(shù)據(jù)訪問請(qǐng)求消息和回應(yīng)消息的結(jié)構(gòu)圖;圖5為一個(gè)實(shí)施例數(shù)據(jù)訪問請(qǐng)求消息和回應(yīng)消息的格式示意圖;圖6為一個(gè)實(shí)施例中請(qǐng)求消息的消息頭部分的格式示意圖;圖7為一個(gè)實(shí)施例中回應(yīng)消息的消息頭部分的格式示意圖。具體實(shí)施方式為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。本發(fā)明實(shí)施例提供了一種計(jì)算機(jī)集群的數(shù)據(jù)訪問系統(tǒng),包括計(jì)算機(jī)集群和運(yùn)行于計(jì)算機(jī)集群的數(shù)據(jù)管理服務(wù)程序。計(jì)算機(jī)集群中的每臺(tái)計(jì)算機(jī)中需要訪問數(shù)據(jù)的進(jìn)程或提供數(shù)據(jù)的進(jìn)程均通過數(shù)據(jù)管理服務(wù)程序來進(jìn)行管理。當(dāng)數(shù)據(jù)位于共享內(nèi)存上時(shí),也可以幾個(gè)進(jìn)程共享一個(gè)數(shù)據(jù)管理服務(wù)程序。實(shí)際上,計(jì)算機(jī)集群中的每臺(tái)計(jì)算機(jī)從邏輯上既可以是數(shù)據(jù)訪問計(jì)算機(jī),也可以是數(shù)據(jù)提供計(jì)算機(jī)。為了描述方便,如圖1所示,假設(shè)數(shù)據(jù)訪問系統(tǒng)由三臺(tái)計(jì)算機(jī)sp1、sp2以及qp組成,并相互建立網(wǎng)絡(luò)連接,通過數(shù)據(jù)管理服務(wù)程序管理相互之間的通信。在一個(gè)具體的應(yīng)用場(chǎng)景中,其中一臺(tái)計(jì)算機(jī)qp通過數(shù)據(jù)管理服務(wù)程序提出訪問請(qǐng)求,其余兩臺(tái)計(jì)算機(jī)sp1、sp2通過數(shù)據(jù)管理服務(wù)程序響應(yīng)訪問請(qǐng)求。在本實(shí)施例中,數(shù)據(jù)管理服務(wù)程序?qū)?shù)據(jù)訪問系統(tǒng)中三臺(tái)計(jì)算機(jī)sp1、sp2以及qp中存儲(chǔ)的所有數(shù)據(jù)進(jìn)行管理。具體的,針對(duì)存儲(chǔ)于sp1、sp2以及qp的磁盤、顯存中、或位于某個(gè)進(jìn)程的內(nèi)存地址空間以及數(shù)據(jù)庫(kù)等的數(shù)據(jù),均建立目錄以及位置的對(duì)應(yīng)關(guān)系,進(jìn)而生成全局唯一的統(tǒng)一資源標(biāo)識(shí)符uri(uniformresourceidentifier),其符合當(dāng)前的rfc3986規(guī)范,并在數(shù)據(jù)集中進(jìn)行保存。當(dāng)在不需要某些數(shù)據(jù)時(shí),在進(jìn)行數(shù)據(jù)的刪除操作時(shí),將其對(duì)應(yīng)的uri從數(shù)據(jù)集中刪除;或在計(jì)算機(jī)集群系統(tǒng)中加入了新的數(shù)據(jù)時(shí),對(duì)新加入的數(shù)據(jù)建立目錄以及位置的對(duì)應(yīng)關(guān)系,生成uri并添加到數(shù)據(jù)集中,從而實(shí)現(xiàn)了對(duì)數(shù)據(jù)集的更新。在具體的訪問場(chǎng)景中,當(dāng)計(jì)算機(jī)qp(以下統(tǒng)稱數(shù)據(jù)訪問計(jì)算機(jī))需要訪問集群中sp1、sp2(以下統(tǒng)稱數(shù)據(jù)提供計(jì)算機(jī))的數(shù)據(jù)時(shí),則可以通過數(shù)據(jù)管理服務(wù)程序在數(shù)據(jù)集中查詢對(duì)應(yīng)的數(shù)據(jù)。從而使得計(jì)算機(jī)集群系統(tǒng)中的數(shù)據(jù),即位于計(jì)算機(jī)集群系統(tǒng)中各計(jì)算機(jī)的磁盤上、顯存上、某個(gè)進(jìn)程的內(nèi)存地址空間內(nèi)以及數(shù)據(jù)庫(kù)中的數(shù)據(jù),得到了統(tǒng)一管理,提高了數(shù)據(jù)訪問效率。本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)訪問方法,如圖2所示,包括如下步驟:步驟s201,接收數(shù)據(jù)訪問請(qǐng)求消息。在本實(shí)施例中,當(dāng)計(jì)算機(jī)集群中的數(shù)據(jù)訪問計(jì)算機(jī)需要訪問存儲(chǔ)在集群中其他計(jì)算機(jī)上的數(shù)據(jù)時(shí),則可以通過數(shù)據(jù)管理服務(wù)程序向數(shù)據(jù)提供計(jì)算機(jī)發(fā)起訪問請(qǐng)求,其具體可以向數(shù)據(jù)管理服務(wù)程序發(fā)送數(shù)據(jù)訪問請(qǐng)求消息。其中,數(shù)據(jù)訪問請(qǐng)求消息中可以包括請(qǐng)求訪問的數(shù)據(jù)的uri,數(shù)據(jù)的uri中記錄了數(shù)據(jù)的存放位置。步驟s202,對(duì)數(shù)據(jù)訪問請(qǐng)求消息進(jìn)行解析,以獲取請(qǐng)求的數(shù)據(jù)的統(tǒng)一資源標(biāo)識(shí)符uri。數(shù)據(jù)管理服務(wù)程序?qū)?shù)據(jù)訪問計(jì)算機(jī)發(fā)起的數(shù)據(jù)訪問請(qǐng)求消息進(jìn)行解析,從而獲取數(shù)據(jù)訪問請(qǐng)求消息中數(shù)據(jù)訪問計(jì)算機(jī)請(qǐng)求的數(shù)據(jù)的uri。其中,uri包括協(xié)議名稱、數(shù)據(jù)存放的主機(jī)名或主機(jī)ip地址以及數(shù)據(jù)在主機(jī)上的存放位置,其中協(xié)議名稱定義了數(shù)據(jù)訪問所遵循的協(xié)議,以便基于機(jī)同的協(xié)議訪問對(duì)應(yīng)的數(shù)據(jù)。步驟s203,根據(jù)請(qǐng)求的數(shù)據(jù)的統(tǒng)一資源標(biāo)識(shí)符uri驗(yàn)證請(qǐng)求是否合法。在本實(shí)施例中,數(shù)據(jù)集中記錄了與uri對(duì)應(yīng)的數(shù)據(jù)的訪問權(quán)限,具體記錄了數(shù)據(jù)是否為開放數(shù)據(jù)或授權(quán)對(duì)象信息。其中,數(shù)據(jù)的訪問權(quán)限包括數(shù)據(jù)對(duì)所有訪問對(duì)象均開放的無限制級(jí)訪問權(quán)限和數(shù)據(jù)僅對(duì)某些訪問對(duì)象開放的限制級(jí)訪問權(quán)限。數(shù)據(jù)管理服務(wù)程序根據(jù)解析的數(shù)據(jù)訪問請(qǐng)求消息中的uri在數(shù)據(jù)集中查詢與uri對(duì)應(yīng)的數(shù)據(jù)的訪問權(quán)限。例如,如果數(shù)據(jù)管理服務(wù)程序根據(jù)數(shù)據(jù)訪問計(jì)算機(jī)請(qǐng)求的uri查詢到與該uri對(duì)應(yīng)的數(shù)據(jù)為開放數(shù)據(jù),則表示該數(shù)據(jù)的授權(quán)對(duì)象為所有訪問的計(jì)算機(jī),因此,可以確定數(shù)據(jù)訪問計(jì)算機(jī)的訪問請(qǐng)求合法。如果數(shù)據(jù)管理服務(wù)程序根據(jù)數(shù)據(jù)訪問計(jì)算機(jī)請(qǐng)求的uri查詢到與該uri對(duì)應(yīng)的數(shù)據(jù)不是開放數(shù)據(jù),則數(shù)據(jù)管理服務(wù)程序進(jìn)一步判定數(shù)據(jù)訪問計(jì)算機(jī)是否為授權(quán)對(duì)象。若數(shù)據(jù)訪問計(jì)算機(jī)為授權(quán)對(duì)象,則也可以確定該數(shù)據(jù)訪問計(jì)算機(jī)的訪問請(qǐng)求合法,否則確定該數(shù)據(jù)訪問計(jì)算機(jī)的訪問請(qǐng)求不合法。步驟s204,若確定請(qǐng)求合法,則根據(jù)請(qǐng)求的統(tǒng)一資源標(biāo)識(shí)符uri在計(jì)算機(jī)集群系統(tǒng)中查詢數(shù)據(jù)并返回回應(yīng)消息。當(dāng)數(shù)據(jù)管理服務(wù)程序確定數(shù)據(jù)訪問計(jì)算機(jī)的訪問請(qǐng)求合法時(shí),則數(shù)據(jù)管理服務(wù)程序根據(jù)訪問請(qǐng)求中的uri在計(jì)算機(jī)集群系統(tǒng)中查詢對(duì)應(yīng)的數(shù)據(jù),并向數(shù)據(jù)訪問計(jì)算機(jī)返回回應(yīng)消息,其中回應(yīng)消息中可以包括查詢結(jié)果以及對(duì)應(yīng)的參數(shù)。本實(shí)施例通過數(shù)據(jù)管理服務(wù)程序?qū)τ?jì)算機(jī)集群中數(shù)據(jù)訪問計(jì)算機(jī)的數(shù)據(jù)訪問請(qǐng)求進(jìn)行解析,并驗(yàn)證請(qǐng)求的合法性,當(dāng)確定請(qǐng)求合法時(shí),則根據(jù)請(qǐng)求中的uri在計(jì)算機(jī)集群系統(tǒng)中查詢對(duì)應(yīng)的數(shù)據(jù),并向數(shù)據(jù)訪問計(jì)算機(jī)返回回應(yīng)消息。使得計(jì)算機(jī)集群系統(tǒng)中的數(shù)據(jù)得到了統(tǒng)一管理,提高了數(shù)據(jù)訪問效率。在一個(gè)實(shí)施例中,如圖3所示,數(shù)據(jù)管理服務(wù)程序在接收數(shù)據(jù)訪問請(qǐng)求消息之前,還包括:步驟s301,根據(jù)存儲(chǔ)在計(jì)算機(jī)集群系統(tǒng)中的數(shù)據(jù)為每一塊數(shù)據(jù)創(chuàng)建統(tǒng)一資源標(biāo)識(shí)符uri。在本實(shí)施例中,數(shù)據(jù)管理服務(wù)程序?qū)Ψ稚⒋鎯?chǔ)于計(jì)算機(jī)集群中各個(gè)計(jì)算機(jī)中的數(shù)據(jù)建立目錄以及位置的對(duì)應(yīng)關(guān)系,進(jìn)而生成全局唯一的uri,并將其對(duì)應(yīng)關(guān)系與uri保存在數(shù)據(jù)集中,使得在一個(gè)計(jì)算機(jī)集群系統(tǒng)中的每一塊數(shù)據(jù)均有系統(tǒng)范圍內(nèi)的唯一標(biāo)識(shí),進(jìn)而使得系統(tǒng)中的任一進(jìn)程可通過uri訪問某一塊已標(biāo)識(shí)的數(shù)據(jù)。其中,uri標(biāo)識(shí)中可以包括協(xié)議名稱、數(shù)據(jù)存放的主機(jī)名或主機(jī)ip地址以及數(shù)據(jù)在主機(jī)上的存放位置等。舉例來說,本實(shí)施例中定義的uri標(biāo)識(shí)其格式如下所示:dmap://[username:password]@host[“:”port]/path["?"query]其中dmap為scheme名稱,含義是數(shù)據(jù)管理和訪問協(xié)議(datamanagingandaccessprotocol,簡(jiǎn)稱dmap);username和password是授權(quán)使用的用戶名和密碼,當(dāng)用戶已經(jīng)認(rèn)證過,或者數(shù)據(jù)為任意用戶均可訪問的情況下,可省略;host是主機(jī)名或者主機(jī)ip地址;port是網(wǎng)絡(luò)端口名,在端口預(yù)定義的情況下,可省略;path是數(shù)據(jù)在主機(jī)上的位置;query為查詢條件,可為空,也可以有具體的內(nèi)容。在本實(shí)施例中,query中包含有一operation_type的字段,該字段表示讀取數(shù)據(jù)的操作類型,其值具體可以設(shè)置如下:默認(rèn)為file,表示讀取文件;設(shè)置為database,表示讀取數(shù)據(jù)庫(kù);設(shè)置為memory,表示讀取某進(jìn)程地址空間內(nèi)的數(shù)據(jù);設(shè)置為graphics_memory;表示讀取顯卡內(nèi)存中的數(shù)據(jù);或設(shè)置為用戶自定義的值。例如,在名稱為image-server的一臺(tái)計(jì)算機(jī)的內(nèi)存里,存儲(chǔ)著一系列圖片serialxxx,此系列圖片共有100張,對(duì)應(yīng)的id為1~100。image-server有一個(gè)授權(quán)用戶image-viewer,該用戶的授權(quán)密碼是123456,那么此用戶可通過如下uri1來訪問此系列圖片,可通過如下uri2訪問此系列圖片中id為55的單張圖片,其中:uri1為:dmap://image-viewer:123456@image-server:1000/images/serialxxxuri2為:dmap://image-viewer:123456@image-server:1000/images/serialxxx?id=55又例如,如果需要讀取數(shù)據(jù)庫(kù)m中年齡為20的所有人員的名字,授權(quán)用戶名為username1,密碼為password1,數(shù)據(jù)庫(kù)m位于名稱為hostname1的計(jì)算機(jī)上,端口號(hào)為1000,表名為table1,則對(duì)應(yīng)的uri為:dmap://username1:password1@hostname1:1000?location=database&sql=select%20name%20from%20table1%20where%20age%3d20其中l(wèi)ocation=database表示本uri要從數(shù)據(jù)庫(kù)中讀取數(shù)據(jù)。在一個(gè)實(shí)施例中,當(dāng)數(shù)據(jù)管理服務(wù)程序根據(jù)計(jì)算機(jī)集群系統(tǒng)中的數(shù)據(jù)為每一塊數(shù)據(jù)都創(chuàng)建統(tǒng)一資源標(biāo)識(shí)符uri后,則可以接收數(shù)據(jù)訪問計(jì)算機(jī)的數(shù)據(jù)訪問請(qǐng)求消息,并對(duì)該數(shù)據(jù)訪問請(qǐng)求消息進(jìn)行解析、判斷或查詢后返回回應(yīng)消息。在本實(shí)施例中,如圖4所示,數(shù)據(jù)訪問請(qǐng)求消息和回應(yīng)消息分別包括:消息標(biāo)記部分、消息頭部分和消息體部分,其消息的格式如圖5所示。其中,各字段對(duì)應(yīng)的長(zhǎng)度用于規(guī)定記錄各字段內(nèi)容所占用的空間。在一個(gè)實(shí)施例中,消息標(biāo)記部分包括字段msg-size、head-size以及body-size,其中,字段msg-size對(duì)應(yīng)的長(zhǎng)度為4bytes(字節(jié)),其用于記錄整條消息的長(zhǎng)度;字段head-size對(duì)應(yīng)的長(zhǎng)度為4bytes,其用于記錄消息頭部分的長(zhǎng)度;字段body-size對(duì)應(yīng)的長(zhǎng)度為4bytes,其用于記錄消息體部分的長(zhǎng)度。消息頭部分即字段head包含消息的類別標(biāo)識(shí)、數(shù)據(jù)的uri以及消息的格式,該字段head對(duì)應(yīng)的長(zhǎng)度head-sizebytes為字段head-size中記錄的具體長(zhǎng)度,即消息頭部分的具體長(zhǎng)度。其中,類別標(biāo)識(shí)用于標(biāo)識(shí)消息為數(shù)據(jù)訪問請(qǐng)求消息還是回應(yīng)消息,消息的格式用于定義消息的傳輸協(xié)議。在一個(gè)實(shí)施例中,請(qǐng)求消息的消息頭部分的格式如圖6所示,其中,crlf表示回車換行(下同);如消息頭的前三個(gè)字符為“req”,則表示該消息為請(qǐng)求該消息;uri為請(qǐng)求的uri,此處不包含用戶名和密碼;dmap-version表示協(xié)議版本。以上各字段間通過crlf隔開,且字段內(nèi)不包含回車和換行字符。在一個(gè)實(shí)施例中,回應(yīng)消息的消息頭部分的格式如圖7所示,其中,crlf表示回車換行(下同);如消息頭的前三個(gè)字符為“res”,則表示該消息為回應(yīng)消息;uri為請(qǐng)求的uri,此處不包含用戶名和密碼;ret-code表示請(qǐng)求處理結(jié)果即查詢結(jié)果,在本實(shí)施例中,字段ret-code對(duì)應(yīng)的具體查詢結(jié)果可以通過數(shù)字代碼表示;dmap-version表示協(xié)議版本。以上各字段間使用crlf隔開,且字段內(nèi)不包含回車和換行字符。在本實(shí)施例中,協(xié)議版本dmap-version字段用于使數(shù)據(jù)請(qǐng)求計(jì)算機(jī)和數(shù)據(jù)提供計(jì)算機(jī)使用相同的解析方法,以正確的解析數(shù)據(jù)。請(qǐng)求消息中的協(xié)議版本dmap-version字段標(biāo)識(shí)了請(qǐng)求計(jì)算機(jī)請(qǐng)求特定數(shù)據(jù)的能力,回應(yīng)消息中的協(xié)議版本dmap-version字段標(biāo)識(shí)了數(shù)據(jù)提供計(jì)算機(jī)提供特定數(shù)據(jù)的能力。舉例來說,假設(shè)協(xié)議版本1表示本協(xié)議可以使計(jì)算機(jī)集群系統(tǒng)能夠處理磁盤文件,協(xié)議版本2表示本協(xié)議可以使計(jì)算機(jī)集群系統(tǒng)能夠處理磁盤文件、也能夠處理數(shù)據(jù)庫(kù)查詢數(shù)據(jù),如果請(qǐng)求計(jì)算機(jī)使用的協(xié)議版本為版本2,而數(shù)據(jù)提供計(jì)算機(jī)只能處理協(xié)議版本為1的請(qǐng)求,因此,則可忽略此請(qǐng)求,或者在回應(yīng)消息中返回版本錯(cuò)誤信息。而消息體部分即字段body則用于記錄消息的具體內(nèi)容,該字段body對(duì)應(yīng)的長(zhǎng)度body-sizebytes為字段body-size中記錄的具體長(zhǎng)度,即消息體部分記錄的具體內(nèi)容的長(zhǎng)度。在本實(shí)施例中,請(qǐng)求消息的消息體其格式如下:usernamecrlfpasswordcrlfusercustom-fieldcrlfusercustom-field-valuecrlf其中,username表示授權(quán)用戶名;password表示授權(quán)密碼;usercustom-field為用戶自定義的字段,可定義多個(gè);usercustom-field-value為用戶自定義的字段的值。以上各字段及值均通過回車換行符分割,任何字段及值內(nèi)部通常不建議出現(xiàn)回車換行字符。在一個(gè)實(shí)施例中,由于uri具有自己獨(dú)特的表達(dá)格式,因此,不能窮盡表達(dá)所有的內(nèi)容,對(duì)于某些個(gè)性化的請(qǐng)求來說,則可以通過usercustom-field以及usercustom-field-value字段來進(jìn)行自定義,以對(duì)uri進(jìn)行補(bǔ)充。舉例來說,假設(shè)請(qǐng)求計(jì)算機(jī)需要指定請(qǐng)求的數(shù)據(jù)應(yīng)該從哪里獲取,從而可以通過usercustom-field來定義字段名,假設(shè)其字段名為location,值為disk,memory,graphics_memory或者database,如果數(shù)據(jù)請(qǐng)求計(jì)算機(jī)要請(qǐng)求一個(gè)已經(jīng)創(chuàng)建好的3維模型數(shù)據(jù),則可以將usercustom-field-value對(duì)應(yīng)的字段的值設(shè)定為graphics_memory。在一個(gè)實(shí)施例中,回應(yīng)消息的消息體中請(qǐng)求處理結(jié)果即查詢結(jié)果的表示方法可以包括:如果查詢結(jié)果對(duì)應(yīng)的字段ret-code對(duì)應(yīng)的代碼為0則表示請(qǐng)求成功,ret-code對(duì)應(yīng)的代碼為1則表示授權(quán)失敗,ret-code對(duì)應(yīng)的代碼為2則表示資源不存在,ret-code對(duì)應(yīng)的代碼為3則表示錯(cuò)誤的uri,ret-code對(duì)應(yīng)的代碼為4則表示禁止訪問,ret-code對(duì)應(yīng)的代碼為5則表示未知錯(cuò)誤。在回應(yīng)消息的消息體中,如果查詢結(jié)果對(duì)應(yīng)的字段ret-code為0,即請(qǐng)求成功時(shí),則消息體為請(qǐng)求的數(shù)據(jù)。如果查詢結(jié)果對(duì)應(yīng)的字段ret-code為4,即禁止訪問時(shí),則消息體是禁止訪問的原因。如果查詢結(jié)果對(duì)應(yīng)的字段ret-code為上述代碼中的其他情況,則消息體為空。在一個(gè)實(shí)施例中,當(dāng)數(shù)據(jù)管理服務(wù)程序接收到數(shù)據(jù)訪問請(qǐng)求消息后,則對(duì)數(shù)據(jù)訪問請(qǐng)求消息進(jìn)行解析,以獲取數(shù)據(jù)訪問請(qǐng)求消息中的uri,通過uri在數(shù)據(jù)集中查詢與uri對(duì)應(yīng)的數(shù)據(jù)的訪問權(quán)限,如與uri對(duì)應(yīng)的數(shù)據(jù)是否為開放數(shù)據(jù)以及數(shù)據(jù)訪問計(jì)算機(jī)是否為授權(quán)對(duì)象。例如,如果數(shù)據(jù)管理服務(wù)程序根據(jù)數(shù)據(jù)訪問計(jì)算機(jī)請(qǐng)求的uri查詢到與該uri對(duì)應(yīng)的數(shù)據(jù)為開放數(shù)據(jù),則可以確定數(shù)據(jù)訪問計(jì)算機(jī)的訪問請(qǐng)求合法。在一個(gè)實(shí)施例中,如果數(shù)據(jù)管理服務(wù)程序通過uri在數(shù)據(jù)集中查詢與uri對(duì)應(yīng)的數(shù)據(jù)的訪問權(quán)限,如通過查詢確定與uri對(duì)應(yīng)的數(shù)據(jù)不是開放數(shù)據(jù),則數(shù)據(jù)管理服務(wù)程序進(jìn)一步對(duì)數(shù)據(jù)訪問請(qǐng)求消息進(jìn)行解析,以獲取數(shù)據(jù)訪問請(qǐng)求消息的消息體中記錄的授權(quán)信息,從而判定數(shù)據(jù)訪問計(jì)算機(jī)是否為授權(quán)對(duì)象,以通過權(quán)限管理使得只有符合權(quán)限要求的對(duì)象才能訪問數(shù)據(jù)。例如,數(shù)據(jù)管理服務(wù)程序根據(jù)解析數(shù)據(jù)訪問請(qǐng)求消息的消息體中記錄的授權(quán)信息,即具體的授權(quán)用戶名以及授權(quán)密碼,從而根據(jù)數(shù)據(jù)集中記錄的授權(quán)對(duì)象信息判斷該數(shù)據(jù)訪問計(jì)算機(jī)是否為授權(quán)對(duì)象,如果數(shù)據(jù)集中記錄的授權(quán)對(duì)象信息中包括數(shù)據(jù)訪問請(qǐng)求消息中的授權(quán)用戶名以及授權(quán)密碼,則判定數(shù)據(jù)訪問計(jì)算機(jī)是授權(quán)對(duì)象,從而可以確定數(shù)據(jù)訪問計(jì)算機(jī)的訪問請(qǐng)求合法,否則確定該訪問請(qǐng)求不合法。當(dāng)確定數(shù)據(jù)訪問計(jì)算機(jī)的訪問請(qǐng)求合法時(shí),則數(shù)據(jù)管理服務(wù)程序根據(jù)該訪問請(qǐng)求中的uri在計(jì)算機(jī)集群系統(tǒng)中查詢與uri對(duì)應(yīng)的數(shù)據(jù),如果查詢到對(duì)應(yīng)的數(shù)據(jù),則向數(shù)據(jù)訪問計(jì)算機(jī)返回回應(yīng)消息,其中,回應(yīng)消息的消息頭中查詢結(jié)果對(duì)應(yīng)的字段ret-code為0,且消息體為查詢到的與請(qǐng)求的uri對(duì)應(yīng)的數(shù)據(jù)。如經(jīng)過查詢后未查詢到數(shù)據(jù),則返回的回應(yīng)消息的消息頭中查詢結(jié)果對(duì)應(yīng)的字段ret-code為2,且消息體為空,即沒有內(nèi)容。如果在查詢數(shù)據(jù)時(shí)檢查到數(shù)據(jù)請(qǐng)求消息中的uri格式不符合uri標(biāo)準(zhǔn),則返回的回應(yīng)消息的消息頭中查詢結(jié)果對(duì)應(yīng)的字段ret-code為3,且消息體為空,即沒有內(nèi)容。如果查詢到的數(shù)據(jù)為加密數(shù)據(jù),則返回的回應(yīng)消息的消息頭中查詢結(jié)果對(duì)應(yīng)的字段ret-code為4,且消息體是禁止訪問的原因。如果在數(shù)據(jù)查詢過程中因其他原因如協(xié)議版本錯(cuò)誤、外部斷電等導(dǎo)致數(shù)據(jù)查詢未能成功,則返回的回應(yīng)消息的消息頭中查詢結(jié)果對(duì)應(yīng)的字段ret-code為5,且消息體為空。如果通過上述驗(yàn)證后判定數(shù)據(jù)訪問計(jì)算機(jī)不是授權(quán)對(duì)象,則返回的回應(yīng)消息的消息頭中查詢結(jié)果對(duì)應(yīng)的字段ret-code為1,且消息體為空,即沒有內(nèi)容。本發(fā)明實(shí)施例還提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,該計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如下步驟:接收數(shù)據(jù)訪問請(qǐng)求消息;對(duì)數(shù)據(jù)訪問請(qǐng)求消息進(jìn)行解析,以獲取請(qǐng)求的數(shù)據(jù)的統(tǒng)一資源標(biāo)識(shí)符uri;根據(jù)請(qǐng)求的數(shù)據(jù)的統(tǒng)一資源標(biāo)識(shí)符uri驗(yàn)證請(qǐng)求是否合法;若確定請(qǐng)求合法,則根據(jù)請(qǐng)求的統(tǒng)一資源標(biāo)識(shí)符uri在計(jì)算機(jī)集群系統(tǒng)中查詢數(shù)據(jù)并返回回應(yīng)消息。在一個(gè)實(shí)施例中,根據(jù)請(qǐng)求的數(shù)據(jù)的統(tǒng)一資源標(biāo)識(shí)符uri驗(yàn)證請(qǐng)求是否合法,包括:根據(jù)請(qǐng)求的數(shù)據(jù)的統(tǒng)一資源標(biāo)識(shí)符uri確定請(qǐng)求的數(shù)據(jù)是否為開放數(shù)據(jù);若確定請(qǐng)求的數(shù)據(jù)為開放數(shù)據(jù),則確定請(qǐng)求合法。在一個(gè)實(shí)施例中,確定請(qǐng)求的數(shù)據(jù)不是開放數(shù)據(jù),則根據(jù)請(qǐng)求的數(shù)據(jù)的統(tǒng)一資源標(biāo)識(shí)符uri驗(yàn)證請(qǐng)求是否合法,包括:對(duì)數(shù)據(jù)訪問請(qǐng)求消息進(jìn)行解析,以獲取請(qǐng)求的用戶信息;根據(jù)請(qǐng)求的用戶信息判斷請(qǐng)求的用戶是否具備訪問權(quán)限;若確定請(qǐng)求的用戶具備訪問權(quán)限,則確定請(qǐng)求合法。在一個(gè)實(shí)施例中,接收數(shù)據(jù)訪問請(qǐng)求消息之前,還包括:根據(jù)存儲(chǔ)在計(jì)算機(jī)集群系統(tǒng)中的數(shù)據(jù)為每一塊數(shù)據(jù)創(chuàng)建所述統(tǒng)一資源標(biāo)識(shí)符uri。在一個(gè)實(shí)施例中,統(tǒng)一資源標(biāo)識(shí)符uri包括協(xié)議名稱、數(shù)據(jù)存放的主機(jī)名或主機(jī)ip地址以及數(shù)據(jù)在主機(jī)上的存放位置。在一個(gè)實(shí)施例中,數(shù)據(jù)訪問請(qǐng)求消息和回應(yīng)消息分別包括:消息標(biāo)記部分、消息頭部分和消息體部分;所述消息標(biāo)記部分用于記錄整條消息的長(zhǎng)度、消息頭部分的長(zhǎng)度以及消息體部分的長(zhǎng)度;所述消息頭部分包含消息的類別標(biāo)識(shí)、請(qǐng)求的統(tǒng)一資源標(biāo)識(shí)符uri以及消息的格式,所述類別標(biāo)識(shí)用于標(biāo)識(shí)消息為數(shù)據(jù)訪問請(qǐng)求消息或回應(yīng)消息,所述消息的格式用于定義消息的傳輸協(xié)議;所述消息體部分用于記錄消息的具體內(nèi)容。在一個(gè)實(shí)施例中,若消息頭部分的類別標(biāo)識(shí)為訪問請(qǐng)求消息,則消息體部分的具體內(nèi)容包括請(qǐng)求的用戶信息。在一個(gè)實(shí)施例中,若消息頭部分的類別標(biāo)識(shí)為回應(yīng)消息,則消息頭部分還包含對(duì)數(shù)據(jù)訪問請(qǐng)求的處理結(jié)果,則消息體部分的具體內(nèi)容則包括根據(jù)處理結(jié)果返回的參數(shù)。以上所述實(shí)施例的各技術(shù)特征可以進(jìn)行任意的組合,為使描述簡(jiǎn)潔,未對(duì)上述實(shí)施例中的各個(gè)技術(shù)特征所有可能的組合都進(jìn)行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應(yīng)當(dāng)認(rèn)為是本說明書記載的范圍。以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。當(dāng)前第1頁12當(dāng)前第1頁12
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1