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