CN103701899B - 资源访问方法及装置 - Google Patents
资源访问方法及装置 Download PDFInfo
- Publication number
- CN103701899B CN103701899B CN201310732951.3A CN201310732951A CN103701899B CN 103701899 B CN103701899 B CN 103701899B CN 201310732951 A CN201310732951 A CN 201310732951A CN 103701899 B CN103701899 B CN 103701899B
- Authority
- CN
- China
- Prior art keywords
- client
- resource
- server
- commission
- delegation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例提供了资源访问方法及装置。该方法包括服务器接收与所述服务器连接的第一客户端发送的第一资源访问请求,所述第一资源访问请求中包含待访问的资源的信息;服务器确定资源处于未被访问的状态后,允许第一客户端访问所述资源;若第一客户端满足预设的资源委托条件,则服务器将资源委托给所述第一客户端,以供与服务器连接的第二客户端直接在第一客户端上访问该资源;服务器将资源的状态更新为委托状态,并记录第一客户端的访问地址。通过本发明实施例提供的技术方案,可以降低服务器的负荷,且资源访问变成客户端之间的通信,减少服务器和客户端之间带宽的占用,从而提高了资源访问的效率。
Description
技术领域
本发明实施例涉及无线通信技术领域,尤其涉及一种资源访问方法及装置。
背景技术
存储系统包括服务器和客户端,客户端一般可以为存储设备。客户端(存储设备)可以通过标准协议来访问服务器,服务器响应客户端的资源访问请求,用以支持客户端(存储设备)对资源的存储、备份等服务。
例如:网络附加存储(Network Attached Storage,简称为NAS)技术是一种基于标准网络协议的存储技术,它可以为网络中的Windows/Linux/Mac OS等各种不同操作系统的计算机提供文件共享和数据备份的存储。目前NAS采用的标准协议包括在Windows环境下使用的服务器信息块(Server Message Block,简称为SMB)协议,和Linux/Unix环境下使用的(Net File System,简称为NFS)协议。
通常,一个服务器下可能管辖多个客户端,可能会同时为几十、甚至几百个客户端提供访问服务。当多个客户端需要服务器上的某一个资源时,则该多个客户端都需要到该服务器上去访问该资源,且该资源可能会被多个客户端重复地到服务器上进行访问,这样,服务器的负荷比较大,且会占用服务器和客户端之间的大量带宽,导致资源访问的效率比较低。
发明内容
本发明实施例提供一种资源访问方法及装置。
本发明实施例的第一方面提供一种资源访问方法,包括:
服务器接收与所述服务器连接的第一客户端发送的第一资源访问请求,所述第一资源访问请求中包含待访问的资源的信息;
所述服务器确定所述资源处于未被访问的状态后,允许所述第一客户端访问所述资源;
若所述第一客户端满足预设的资源委托条件,则所述服务器将所述资源委托给所述第一客户端,以供与所述服务器连接的第二客户端直接在所述第一客户端上访问所述资源;所述服务器将所述资源的状态更新为委托状态,并记录所述第一客户端的访问地址。
本发明实施例的第二方面提供另一种资源访问方法,包括:
与服务器连接的第一客户端向所述服务器发送第一资源访问请求,所述第一资源访问请求中包含待访问的资源的信息;
所述第一客户端在所述服务器上访问所述资源,并接受所述服务器对所述资源的委托,以供与所述服务器连接的第二客户端直接在所述第一客户端上访问所述资源;
其中,所述资源是所述服务器在确定所述资源处于未被访问的状态,且确定所述第一客户端满足预设的资源委托条件后,委托给所述第一客户端的。
本发明实施例的第三方面提供一种服务器,包括:
接收模块,用于接收与所述服务器连接的第一客户端发送的第一资源访问请求,所述第一资源访问请求中包含待访问的资源的信息;
处理模块,用于确定所述资源处于未被访问的状态后,允许所述第一客户端访问所述资源;
所述处理模块还用于,若所述第一客户端满足预设的资源委托条件,则将所述资源委托给所述第一客户端,以供与所述服务器连接的第二客户端直接在所述第一客户端上访问所述资源;并将所述资源的状态更新为委托状态,并记录所述第一客户端的访问地址。
本发明实施例的第四方面提供一种第一客户端,包括:
发送模块,用于向所述服务器发送第一资源访问请求,所述第一资源访问请求中包含待访问的资源的信息;
处理模块,用于在所述服务器上访问所述资源,并接受所述服务器对所述资源的委托,以供与所述服务器连接的第二客户端直接在所述第一客户端上访问所述资源;
其中,所述资源是所述服务器在确定所述资源处于未被访问的状态,且确定所述第一客户端满足预设的资源委托条件后,委托给所述第一客户端的。
本发明实施例的第五方面提供一种资源访问系统,包括上述的服务器,以及客户端。
本发明实施例提供的资源访问方法及装置,通过将服务器上的资源委托给客户端,使得其他客户端可以从委托资源的客户端获取该资源,解决了相关技术中,资源必须从服务器上获取导致服务器的负荷比较大,且占用服务器和客户端之间比较大的带宽的问题,使得客户端可以从其他客户端上访问资源,从而在一定程度降低了服务器的负荷,在一定程度上提高了资源访问的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的资源访问方法流程图;
图2为本发明另一实施例提供的资源访问方法流程图;
图3为本发明再一实施例提供的资源访问方法示意图;
图4为本发明实施例资源访问方法的信令图;
图5为本发明实施例服务器结构示意图;
图6为本发明实施例第一客户端结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的资源访问方法流程图,该方法适用于存储系统中的服务器,例如:NAS存储服务器。本实施例的方法可以包括:
步骤101,服务器接收与所述服务器连接的第一客户端发送的第一资源访问请求,所述第一资源访问请求中包含待访问的资源的信息;
步骤103,所述服务器确定所述资源处于未被访问的状态后,允许所述第一客户端访问所述资源;
步骤105,若所述第一客户端满足预设的资源委托条件,则所述服务器将所述资源委托给所述第一客户端,以供与所述服务器连接的第二客户端直接在所述第一客户端上访问所述资源;所述服务器将所述资源的状态更新为委托状态,并记录所述第一客户端的访问地址。
本方法实施例中,服务器接收到与其连接的第一客户端发送的针对待访问的资源的访问请求后,服务器确定该资源没有被其他客户端访问即待访问的资源处于未被访问的状态,则服务器响应第一客户端的资源访问,允许第一客户端访问该待访问资源,所述访问包括读取和/或写入。
本方法实施例中,若服务器判断获知第一客户端满足预设的资源委托条件,则服务器不但允许该第一客户端访问该资源,而且还将该资源委托给第一客户端,以供与服务器连接的第二客户端直接在第一客户端上访问资源。资源委托给第一客户端后,当一个服务器连接的多个客户端需要访问该服务器的同一个资源时,可以从已经被委托该资源的第一客户端上访问,不需要访问服务器,解决了现有技术中多个客户端均需要到服务器上访问一个资源,导致服务器的负荷比较大,且占用服务器和客户之间大量带宽,导致资源访问的效率比较低的问题。并且,服务器将资源委托给第一客户端,可以使得第二客户端在第一客户端上访问资源,这样可以降低服务器的负荷,且资源访问变成客户端之间的通信,减少服务器和客户端之间带宽的占用,从而提高了资源访问的效率。
在上述实施例中,服务器可以根据获取到的第一客户端对应的处理能力信息和业务状态信息,判断第一客户端是否满足预设的资源委托条件。处理能力信息例如包括第一客户端的存储器的大小以及中央处理器的频率等,业务状态信息包括繁忙、空闲等。
在本发明实施例中,客户端可以不进行区域的划分。在这种情况下,服务器下的其他客户端均可以在委托资源的客户端上访问资源。例如,服务器A下连接有客户端C1、客户端C2、客户端C3,客户端C4,客户端C1向服务器A发送访问其上资源S1的请求,服务器A收到该请求之后,确定该资源S1没有被其他客户端访问,且确定客户端C1满足预设的资源委托条件,这时,服务器A将资源S1委托给客户端C1,以允许其他客户端(客户端C2、C3、C4)在客户端C1上访问资源S1。
在本发明实施例中,客户端也可以按照区域进行划分。在服务器将该资源委托给第一客户端之后,服务器接收第二客户端发送的第二资源访问请求,所述第二资源访问请求中包含的待访问的资源的信息与上述第一资源访问请求中的待访问的资源信息相同。服务器根据第二客户端和第一客户端是否处于同一个区域内,分为如下两种情况:
当位于同一个区域内时,服务器可以向该第二客户端发送携带有该第一客户端的访问地址的消息,即将访问请求重定向到第一客户端上。该第二客户端根据访问地址向第一客户端发送用于访问该资源的请求,第一客户端允许第二客户端访问被委托的资源。具体地,第一客户端和第二客户端位于同一个区域内时,服务器将携带有第一客户端的IP地址发送给第二客户端,第二客户端接收到该IP地址后,根据该IP地址,向该第一客户端发送访问该资源的请求,并在该第一客户端上访问资源。
当客户端按照区域进行划分时,客户端可以访问位于同一区域的其他客户端上被服务器委托的资源。例如:客户端C1和客户端C2位于区域R1,客户端C3和C4位于区域R2。当资源S1被服务器委托给客户端C1,客户端C2可以根据获取到的客户端C1的IP地址,向客户端C1发送访问该资源的请求,然后在客户端C1上访问资源S1。在实施中,处于同一个区域的客户端到服务器之间的网络质量可能是不相同的,例如:客户端C1和客户端C2位于区域R1,客户端C3和C4位于区域R2。客户端C1到服务器之间的网络质量优于客户端C2到服务器之间的网络质量,且客户端C1和客户端C2之间的网络质量比较好。在该场景下,当客户端C1和客户端C2都需要访问服务器的某一资源时,客户端C1向服务器发送访问请求,该服务器将该资源委托给客户端C1,客户端C2就不需要在服务器上访问资源了,而是可以在客户端C1上访问资源,这样,客户端C2就可以通过网络质量比较好的通路(C2到C1)获取到了资源,提高了资源的访问效率。
当第一客户端和第二客户端处于不同区域时,服务器可以按照不同的方式进行后续处理,例如:
方式一,可以向该第一客户端发送用于指示撤销该资源的委托的消息。
需要说明的是,方式一可以无条件执行,或者在如下条件下执行:该服务器确定出将该资源委托给该第一客户端的类型为写入;和/或,该服务器确定出该第二客户端请求访问该资源的类型为写入。
当无条件执行时,即收到位于不同区域的第二客户端的请求,可以直接向第一客户端发送用于指示撤销该资源的委托的消息,这样的话,资源委托始终在一个区域内实现,不会出现不同区域的客户端针对同一个资源的请求。当满足上述条件时,进行资源委托的撤回,可以保持数据的一致性。例如:当资源在以写入的委托方式委托给第一客户端时,第一客户端可能将数据写入该资源(该资源可能被修改),但是服务器上存储的资源是未修改的资源,如果服务器将该资源再次委托给其他客户端(例如:第二客户端)可能会导致资源的不一致。本实施例的方法为撤销在第一客户端上的资源委托,这样的话,避免了该情况导致的资源不一致。服务器接收到第一客户端反馈的已撤销委托的消息后,允许第二客户端访问所述资源。
进一步地,若第二客户端满足预设的资源委托条件,则服务器将资源委托给第二客户端,将资源的状态更新为委托状态,并记录第二客户端的访问地址。
方式二,在服务器将资源委托给第一客户端的类型为读取,且该第二客户端请求访问该资源的类型为读取时,该服务器将资源以读取的类型委托给该第二客户端,用于与第二客户端处于同一区域的第三客户端在第二客户端上以读取的类型访问该资源。
采用方式二,可以实现在多个不同区域进行资源的委托,提高了委托的效率。且由于委托类型和访问类型均为读取,读取的方式不会对资源进行修改,所以不存在数据一致性的问题。
优选地,服务器可以根据获取到的第一客户端的处理能力和业务的状态,确定该客户端满足第一预设的资源委托条件。比较优的,该业务的状态可以包括繁忙和空闲。在实施中,处理能力可以通过中央处理器(Central Processing Unit,简称为CPU)和存储器的参数来表征,例如:中央处理器的速度和存储器的大小,繁忙和空闲可以通过预设条件来判断,例如:中央处理器的负荷超过预设值和/或存储器占用的比例超过预设值为繁忙,反之为空闲,需要说明的是,上述参数仅仅用于说明,并不构成对本发明技术方案的限制。
可选地,客户端可以通过标准协议与服务器进行协商,客户端可以将该客户端所处的的区域的信息、处理能力以及业务的状态(繁忙、空闲)发送给服务器。
在上述实施例中,服务器确定出请求的资源已经被访问和/或该第一客户端不满足资源委托条件,则服务器可以允许第一客户端在服务器上访问资源。
可选地,在发生以下情况之一时,服务器可以撤销对第一客户端的资源委托:
情况一、服务器接收到第一客户端用于指示第一客户端的业务处于繁忙状态的消息。服务器和第一客户端之间可以设置周期的同步控制信号,这样,服务器可以获知第一客户端的业务处于繁忙状态。比较优的,繁忙状态可以通过预设条件来判断,例如:中央处理器的负荷超过预设值和/或存储器占用的比例超过预设值为繁忙。
情况二、服务器接收到第一客户端发送的用于将资源进行失效处理的请求。
情况三、服务器确定资源的委托时长超出预设的时长。
情况四、服务器确定第一客户端处于故障状态。在该方式中,服务器和第一客户端之间可以设置周期的同步控制信号,这样,服务器可以通过轮询的方式,确定该第一客户端是否处于故障状态。
优选地,服务器允许该第一客户端在该服务器上访问该资源可以包括:服务器允许该客户端读取该服务器上的该资源;和/或,该服务器允许该客户端将数据写入该服务器上的该资源。
图2为本发明另一实施例提供的资源访问方法流程图,本实施例的方法适用于客户端。本实施例是从客户端的角度描述资源访问方法,如图2所示,该方法包括:
步骤201,与服务器连接的第一客户端向所述服务器发送第一资源访问请求,所述第一资源访问请求中包含待访问的资源的信息;
步骤203,所述第一客户端在所述服务器上访问所述资源,并接受所述服务器对所述资源的委托,以供与所述服务器连接的第二客户端直接在所述第一客户端上访问所述资源;
其中,所述资源是服务器在确定资源处于未被访问的状态,且确定第一客户端满足预设的资源委托条件后,委托给第一客户端的。
在本发明实施例中,第一客户端向服务器发送请求,该请求用于在该服务器上访问资源,然后当服务器确定出该资源没有被其他客户端访问,且该第一客户端满足资源委托条件时,第一客户端在服务器上访问该资源,且接受该服务器对该资源的委托,以供与服务器连接的其他客户端在第一客户端上访问该资源。这样,当一个服务器下的多个客户端需要访问该服务器的同一个资源时,可以从已经被委托该资源的第一客户端上访问,不需要访问服务器,解决了现有技术中多个客户端均需要到服务器上访问一个资源,导致服务器的负荷比较大,且占用服务器和客户之间大量带宽,导致资源访问的效率比较低的问题。并且,服务器将资源委托给第一客户端,可以使得第二客户端在第一客户端上访问资源,这样可以降低服务器的负荷,且资源访问变成客户端之间的通信,减少服务器和客户端之间带宽的占用,从而提高了资源访问的效率。
在本发明实施例中,客户端可以不进行区域的划分。在这种情况下,服务器下的其他客户端均可以在委托资源的客户端上访问资源。
在本发明实施例中,客户端也可以进行区域划分。在第一客户端在服务器上访问资源,且接受服务器对该资源的委托后,根据第二客户端和该第一客户端是否处于同一个区域内,分为如下两种情况:
当第一客户端和第二客户端处于同一个区域内时,第一客户端接收第二客户端发送的用于访问该资源的请求。其中,第二客户端发送的请求是在接收到服务器发送的携带有第一客户端的访问地址的消息之后发送的,携带有第一客户端的访问地址的消息是服务器接收到第二客户端发送的用于访问该资源的请求,并确定该资源被委托给第一客户端之后发送的。第一客户端允许第二客户端在第一客户端上访问该资源。进一步地,第一客户端允许第二客户端访问该资源,若第二客户端满足预设的资源委托条件,则第一客户端可以将资源继续委托给第二客户端,以供同一个区域内的其他客户端直接在第二客户端上访问该资源;第一客户端同时要记录第二客户端的访问地址。
当第一客户端和第二客户端处于不同区域时,第一客户端接收服务器发送的用于指示撤销该资源的委托的消息。其中,该消息可以是服务器在接收到第二客户端发送的用于访问该资源的请求之后发送的。
可选地,第一客户端接收委托之后,还可以将该资源委托给其他客户端,所以在第一客户端接收该服务器发送的用于指示撤销该资源的委托的消息之后,还包括:
第一客户端判断该资源是否被委托给了与处于同一个区域内的其他客户端例如第二客户端;
如果判断结果为是,则第一客户端向第二客户端发送用于指示撤销所述资源的委托的消息;
如果判断结果为否,且该资源的委托类型为读取时,则第一客户端将存储的该资源进行失效处理;
如果判断结果为否,且该资源的委托类型为写入时,则第一客户端将脏数据写入服务器中。其中,所述脏数据是第一客户端根据使用该资源得到的数据确定的。
第一客户端向服务器发送用于指示第一客户端已撤销委托的消息,触发服务器响应第二客户端发送的用于访问该资源的请求。
在本实施例中,客户端在接受服务器对资源的委托之后,还可以将该资源委托给其他客户端,实现资源的再次委托。
优选地,服务器根据获取到的第一客户端对应的处理能力信息和业务状态信息,判断第一客户端是否满足资源委托条件。比较优的,该业务的状态可以包括繁忙和空闲。处理能力可以通过中央处理器(Central Processing Unit,简称为CPU)和存储器的参数来表征,例如:中央处理器的速度和存储器的大小,繁忙和空闲可以通过预设条件来判断,例如:中央处理器的负荷超过预设值和/或存储器占用的比例超过预设值为繁忙,反之为空闲,需要说明的是,上述参数仅仅用于说明,并不构成对本发明技术方案的限制。
下面通过具体的实施例,对图1和图2所示方法实施例的技术方案进行详细说明。图3为本发明再一实施例提供的资源访问方法示意图。
本优选实施例提供了一种资源访问方法,本优选实施例结合了上述实施例及其优选实施方式,本实施例的场景如下:一台存储设备(上述实施例中的NAS存储服务器)为两个区域的四台客户端提供NAS共享服务,假如每个区域分别有两台客户端,并且这两个区域中的客户端和NAS存储服务器之间通信的的网络质量不相同(例如:Client A1与NAS存储服务器之间通信的网络质量与Client A2与NAS存储服务器之间通信的网络质量是不相同的),在该两个区域的同一个区域内部的设备之间的网络质量比较好(例如:Client A1与ClientA2之间通信的网络质量优于Client A1和Client A2分别与NAS存储服务器通信的网络质量)。该方法包括如下:
步骤S301,当区域A下的Client A1客户端期望访问NAS存储服务器时,它首先通过标准协议和NAS存储服务器进行协商。此时,Client A1将自身的区域信息,自身的能力值、自身业务状态(繁忙或者空闲)发送给NAS存储服务器。
步骤S302,NAS存储服务器在和Client A1协商并且认证通过完成之后,记录该客户端Client A1的信息,并允许该客户端Client A1访问存储资源。
步骤S303,Client A1在获得访问资格之后,开始请求NAS存储服务器上的共享资源,例如对文件的读取或写入的请求。
步骤S304,NAS存储服务器针对Client A1的访问的资源,进行判决,决定其访问方式。
首先,判断该资源是否被其他客户端进行访问。
根据是否被其他客户端访问,分为如下两种情况进行处理:
情况一:如果没有被其他客户端访问,可以再判断Client A1的处理能力、繁忙程度是否达到能够进行资源委托的程度,如果没有达到,则仅仅允许该客户端Client A1从NAS存储服务器访问该资源(获取该资源的数据);如果能够达到委托标准,则不仅允许该客户端Client A1首次从NAS存储服务器访问资源,并将该资源存储到本地(该客户端ClientA1),还可以在NAS存储服务器上记录该资源的委托信息,即将该资源委托给该客户端Client A1,以便后续该区域(与Client A1处于同一区域)的其他客户端需要访问该资源的时候,能够在该客户端Client A1上访问资源。
情况二:如果在检查该资源是否被其他客户端进行访问时,发现该资源已经委托给其他客户端,这时,又分为两种情况处理:一种情况是,当前占有该待分配资源的客户端(该待分配资源被委托给该客户端)和请求该待分配资源的客户端在同一个区域内,那么,服务端可以返回委托客户端(待分配资源被委托给的客户端,例如,在本实施例中,如果该资源被委托给了Client A2,则该委托客户端为Client A2)的地址(例如,可以为IP地址),来重定向该请求(用于访问该资源的请求),即请求客户端(例如,在本实施例中,Client A1请求访问该资源,如果该资源被委托给了Client A2,该请求客户端为Client A1)重新发送请求给委托客户端(Client A2),由委托客户端来响应这个请求,不再占用NAS存储服务器的资源。另外一种情况是,当前占有该资源的委托的客户端和该请求的客户端不在一个区域内,这种情况下可以进行委托召回(撤销资源的委托)的处理。
步骤S305,以Client A1为例,当客户端Client A1请求访问的资源,被其他区域客户端委托占用时,可以进行召回委托的处理。
需要说明的是,为了防止破坏数据的一致性,在处理完召回委托之后,服务端响应Client A1客户端的请求。
当进行召回处理时,服务端首先向持有资源委托的客户端发送召回委托请求,当客户端接收到该召回请求之后,该客户端首先检查该资源是否被其再次委托给了其他客户端,如果委托了,则重复上述步骤,再次向下一级委托的客户端发送召回请求,如果没有委托给新的客户端,则该客户端挂起该资源,暂停对业务对该资源的请求,进行相应的处理,具体地,可以根据委托类型为读取和/或委托类型为写入,分别进行优化处理。例如委托类型为读取的情况,可以仅仅将该客户端使用的缓存资源失效,对于委托类型为写入的情况,可以将操作该资源之后缓存的脏数据刷新到授予该委托的服务器(服务端)上,然后再将该客户端的缓存资源失效,这样,在该操作之后的关于该资源的访问请求均需要重新到服务端上进行。当持有资源委托的客户端完成上述响应与召回请求的处理之后,给服务端发送确认委托被召回消息,当服务端接收到该确认委托被召回消息之后,服务端可以继续响应新的客户端对这个资源的请求,此时,服务端可能对需要同时处理区域A和区域B的客户端针对同一个资源的请求,这是的资源一致性可以通过锁机制来保证。
步骤S306,当客户端从NAS存储服务器访问资源之后,可以根据步骤S304中,服务端是否授予该客户端对该资源的委托进行处理。
如果没有授予,则客户端可以根据应用需求对访问的资源进行处理。
如果授予了委托,则客户端可以将这些缓存的资源纳入其委托管理机制中。对于这种处于委托管理机制中的缓存,可以定义其相应的缓存策略,缓存时间等,当委托及需要失效这些缓存时,还需要主动向服务器发送委托失效请求,以告诉服务端,该客户端不再持有这些资源的委托。这样,服务端又可以将这些资源委托授予到其他客户端上。
步骤S307,当该客户端获得了这些资源的委托权之后,这些客户端可以临时行使NAS存储服务器响应资源访问请求的能力,帮助NAS存储服务器处理委托机所属区域内,其他客户端对这些共享资源的请求。这样既可以减少NAS存储服务器的业务压力,也可以节省网络带宽。此外,当该区域内有能力更强的客户端来访问该资源时,可以将资源的委托再次授予这些能力更强的客户端,这样,也可以释放获取资源的委托权的客户端的压力。
步骤S308,NAS存储服务器在向客户端授予委托的时候,可以根据客户端请求数据的方式为委托类型为读和委托类型为写,分别进行处理。对于委托类型为读的情况,可以同时授予多个客户端;对于委托类型为写的情况,一个时刻只能有一个客户端独占获得。被授予委托的客户端和NAS存储服务器之间,会有周期的同步控制信号,目的是服务端通过轮询的方式,检查委托机的状态,如果委托及出现业务繁忙的情况,则可以召回委托,并重新分配给业务较为空闲的客户端,以便于整个系统业务的动态负载均衡,如果委托机出现故障,可以通过超时机制,强制回收授予该客户端的委托,在这种情况下,如果故障的委托机制是写委托类型,并且存在授予资源缓存的脏数据,则可能会造成部分数据丢失。
图4为本发明实施例资源访问方法的信令图,如图4所示,该方法包括:
步骤S401,Client A1获取到委托。
步骤S402,同一个区域的Client A2可以访问Client A1。
步骤S403,其他区域客户端Client B1请求访问资源。
步骤S404,服务器发现该资源被委托给了Client A1,撤销该资源委托。
步骤S405,Client A1刷新后的资源写入服务器,并对缓存的资源进行无效处理,给客户端返回撤销委托的信息。
步骤S406,服务器接收到撤销委托的消息之后,响应Client B1的请求。
需要说明的是,本实施例中客户端的能力和业务状态如表1所示,资源及委托及的委托方式如表2所示。
表1
客户端 | 能力 | 繁忙 |
Client A1 | CPU:H;MEM:H;NET:H | IDLE |
Client A2 | CPU:L;MEM:L;NET:H | BUSY |
Client A3 | CPU:H;MEM:L;NET:H | IDLE |
表2
资源 | 委托机 | 委托方式 |
File A | Client A1 | 写入 |
File B | NONE | |
File C | Client A1 | 读取 |
图5为本发明实施例服务器结构示意图,如图5所示,该服务器包括接收模块51和处理模块52,其中,接收模块51用于接收与所述服务器连接的第一客户端发送的第一资源访问请求,所述第一资源访问请求中包含待访问的资源的信息;处理模块52用于确定所述资源处于未被访问的状态后,允许所述第一客户端访问所述资源;处理模块52还用于,若所述第一客户端满足预设的资源委托条件,则将所述资源委托给所述第一客户端,以供与所述服务器连接的第二客户端直接在所述第一客户端上访问所述资源;并将所述资源的状态更新为委托状态,并记录所述第一客户端的访问地址。
其中,处理模块52可以根据获取到的第一客户端对应的处理能力信息和业务状态信息,来判断第一客户端是否满足资源委托条件。处理能力信息例如包括第一客户端的存储器的大小以及中央处理器的频率等,业务状态信息包括繁忙、空闲等。
在上述装置实施例中,接收模块51还用于接收第二客户端发送的第二资源访问请求,第二资源访问请求中包含的待访问的资源的信息与所述第一资源访问请求中的待访问的资源信息相同。相应地,处理模块52对于第一客户端和第二客户端是否处于同一个区域,分别作如下处理:
若第一客户端和第二客户端处于同一个区域,则向第二客户端发送携带有所述第一客户端的访问地址的消息。
若第一客户端和第二客户端处于不同区域,则向第一客户端发送指示撤销资源委托的消息;在接收到第一客户端反馈的已撤销委托的消息后,允许第二客户端访问所述资源。进一步地,若第二客户端满足预设的资源委托条件,则将资源继续委托给第二客户端,将资源的状态更新为委托状态,并记录第二客户端的访问地址。
本装置实施例中,若服务器通过接收模块51接收到访问请求后,通过处理模块52判断获知第一客户端满足预设的资源委托条件,则不但允许该第一客户端访问该资源,而且还将该资源委托给第一客户端,以供与服务器连接的第二客户端直接在第一客户端上访问资源。资源委托给第一客户端后,当一个服务器连接的多个客户端需要访问该服务器的同一个资源时,可以从已经被委托该资源的第一客户端上访问,不需要访问服务器,解决了现有技术中多个客户端均需要到服务器上访问一个资源,导致服务器的负荷比较大,且占用服务器和客户之间大量带宽,导致资源访问的效率比较低的问题。并且,服务器将资源委托给第一客户端,可以使得第二客户端在第一客户端上访问资源,这样可以降低服务器的负荷,且资源访问变成客户端之间的通信,减少服务器和客户端之间带宽的占用,从而提高了资源访问的效率。
本发明实施例提供的服务器的功能可以具体参照上述各方法实施例,此处不再赘述。
图6为本发明实施例第一客户端结构示意图,该第一客户端与服务器连接,如图6所示,该第一客户端包括发送模块61和处理模块62,其中,发送模块61用于向服务器发送第一资源访问请求,所述第一资源访问请求中包含待访问的资源的信息;处理模块62用于在服务器上访问所述资源,并接受服务器对所述资源的委托,以供与服务器连接的第二客户端直接在第一客户端上访问所述资源。其中,所述资源是服务器在确定该资源处于未被访问的状态,且确定第一客户端满足预设的资源委托条件后,委托给第一客户端的。
在接受服务器的资源委托后,处理模块62还用于接收第二客户端发送的用于访问被委托的资源的请求,并允许第二客户端访问该资源;其中,第二客户端与第一客户端处于同一个区域。第二客户端首先向服务器请求访问资源,服务器将第一客户端的访问地址发送给第二客户端,即将访问请求重定向到第一户端,然后第二户端向第一户端发送请求。
若第二户端和第一户端不处于同一区域内时,服务器不将访问请求重定向,而是向第一客户端发送用于指示撤销所述资源的委托的消息,处理模块62接收到该消息后,执行撤销委托资源的操作,并向服务器返回撤销成功的消息。
进一步地,第一户端接收第二户端的访问请求后,可以继续将该资源委托给第二客户端。具体地,第一客户端还可以包括委托模块63用于若第二客户端满足预设的资源委托条件,则将资源委托给第二客户端,以供同一个区域内的其他客户端直接在第二客户端上访问该资源;同时记录第二客户端的访问地址。
在上述装置实施例的基础上,处理模块62还用于在接收服务器发送的用于指示撤销所述资源的委托的消息之后,判断该资源是否委托给了处于同一个区域内的第二客户端;若判断结果为是,则向第二客户端发送用于指示撤销所述资源的委托的消息;若判断结果为否,且该资源的委托类型为读取时,则将存储的资源进行失效处理;若判断结果为否,且该资源的委托类型为写入时,则将资源对应的脏数据写入所述服务器中;然后,向服务器发送已撤销委托的消息。
在本发明装置实施例中,第一客户端通过发送模块61向服务器发送请求,该请求用于在该服务器上访问资源,然后当服务器确定出该资源没有被其他客户端访问,且该第一客户端满足资源委托条件时,第一客户端通过处理模块62在服务器上访问该资源,且接受该服务器对该资源的委托,以供与服务器连接的其他客户端在第一客户端上访问该资源。这样,当一个服务器下的多个客户端需要访问该服务器的同一个资源时,可以从已经被委托该资源的第一客户端上访问,不需要访问服务器,解决了现有技术中多个客户端均需要到服务器上访问一个资源,导致服务器的负荷比较大,且占用服务器和客户之间大量带宽,导致资源访问的效率比较低的问题。并且,服务器将资源委托给第一客户端,可以使得第二客户端在第一客户端上访问资源,这样可以降低服务器的负荷,且资源访问变成客户端之间的通信,减少服务器和客户端之间带宽的占用,从而提高了资源访问的效率。
本发明实施例提供的第一客户端的功能可以具体参照上述各方法实施例,此处不再赘述。
本发明实施例还提供一种资源访问系统,包括服务器和多个客户端。其中,所述服务器可以采用上述装置实施例提供的服务器,客户端可以采用上述装置实施例提供的第一客户端。有关服务器和客户端的结构和功能均可以参见上述方法和装置实施例的描述,此处不再赘述。
本发明实施例提供的资源访问系统,通过将服务器上的资源委托给客户端,使得其他客户端可以从委托资源的客户端获取该资源,解决了相关技术中,资源必须从服务器上获取导致服务器的负荷比较大,且占用服务器和客户端之间比较大的带宽的问题,使得客户端可以从其他客户端上访问资源,从而在一定程度降低了服务器的负荷,在一定程度上提高了资源访问的效率。
通过上述实施例及其优选实施方式,通过将服务器上的资源委托给客户端,使得其他客户端可以从委托资源的客户端获取该资源,解决了相关技术中,资源必须从服务器上获取导致服务器的负荷比较大,且占用服务器和客户端之间比较大的带宽的问题,使得客户端可以从其他客户端上访问资源,从而在一定程度降低了服务器的负荷,在一定程度上提高了资源访问的效率。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (18)
1.一种资源访问方法,其特征在于,包括:
服务器接收与所述服务器连接的第一客户端发送的第一资源访问请求,所述第一资源访问请求中包含待访问的资源的信息;
所述服务器确定所述资源处于未被访问的状态后,允许所述第一客户端访问所述资源;
若所述第一客户端满足预设的资源委托条件,则所述服务器将所述资源委托给所述第一客户端,以供与所述服务器连接的第二客户端直接在所述第一客户端上访问所述资源;所述服务器将所述资源的状态更新为委托状态,并记录所述第一客户端的访问地址。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述服务器接收所述第二客户端发送的第二资源访问请求,所述第二资源访问请求中包含的待访问的资源的信息与所述第一资源访问请求中的待访问的资源信息相同;
若所述第一客户端和所述第二客户端处于同一个区域,则所述服务器向所述第二客户端发送携带有所述第一客户端的访问地址的消息;
若所述第一客户端和所述第二客户端处于不同区域,则所述服务器向所述第一客户端发送指示撤销资源委托的消息;
所述服务器接收到所述第一客户端反馈的已撤销委托的消息后,允许所述第二客户端访问所述资源;
若所述第二客户端满足预设的资源委托条件,则所述服务器将所述资源委托给所述第二客户端,将所述资源的状态更新为委托状态,并记录所述第二客户端的访问地址。
3.根据权利要求1或2所述的方法,其特征在于,所述服务器根据获取到的所述第一客户端对应的处理能力信息和业务状态信息,判断所述第一客户端是否满足所述资源委托条件。
4.根据权利要求1或2所述的方法,其特征在于,在所述服务器接收所述第一资源访问请求之后,还包括:
所述服务器确定所述资源处于被访问的状态和/或所述第一客户端不满足所述资源委托条件,则允许所述第一客户端在所述服务器上访问所述资源。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在以下情况之一时,所述服务器向所述第一客户端发送指示撤销资源委托的消息:
所述服务器接收到所述第一客户端发送的用于指示所述第一客户端的业务的状态为繁忙的消息;
所述服务器接收到所述第一客户端发送的用于将所述资源进行失效处理的请求;
所述服务器确定所述资源的委托时长超出预设时长;
所述服务器确定所述第一客户端处于故障状态。
6.一种资源访问方法,其特征在于,包括:
与服务器连接的第一客户端向所述服务器发送第一资源访问请求,所述第一资源访问请求中包含待访问的资源的信息;
所述第一客户端在所述服务器上访问所述资源,并接受所述服务器对所述资源的委托,以供与所述服务器连接的第二客户端直接在所述第一客户端上访问所述资源;
其中,所述资源是所述服务器在确定所述资源处于未被访问的状态,且确定所述第一客户端满足预设的资源委托条件后,委托给所述第一客户端的。
7.根据权利要求6所述的方法,其特征在于,所述第一客户端在所述服务器上访问所述资源,并接受所述服务器对所述资源的委托之后,还包括:
接收所述第二客户端发送的用于访问所述资源的请求,并允许所述第二客户端访问所述资源,所述第二客户端与所述第一客户端处于同一个区域;
或
接收所述服务器发送的用于指示撤销所述资源的委托的消息。
8.根据权利要求7所述的方法,其特征在于,还包括:
若所述第二客户端满足预设的资源委托条件,则所述第一客户端将所述资源委托给所述第二客户端,以供同一个区域内的其他客户端直接在所述第二客户端上访问所述资源;所述第一客户端记录所述第二客户端的访问地址。
9.根据权利要求8所述的方法,其特征在于,所述接收所述服务器发送的用于指示撤销所述资源的委托的消息之后,还包括:
所述第一客户端判断所述资源是否委托给了处于同一个区域内的所述第二客户端;
若判断结果为是,则所述第一客户端向所述第二客户端发送用于指示撤销所述资源的委托的消息;
若判断结果为否,且所述资源的委托类型为读取时,则所述第一客户端将存储的所述资源进行失效处理;
若判断结果为否,且所述资源的委托类型为写入时,则所述第一客户端将所述资源对应的脏数据写入所述服务器中;
所述第一客户端向所述服务器发送已撤销委托的消息。
10.根据权利要求6至8中任一项所述的方法,其特征在于,所述服务器根据获取到的所述第一客户端对应的处理能力信息和业务状态信息,判断所述第一客户端是否满足所述资源委托条件。
11.一种服务器,其特征在于,包括:
接收模块,用于接收与所述服务器连接的第一客户端发送的第一资源访问请求,所述第一资源访问请求中包含待访问的资源的信息;
处理模块,用于确定所述资源处于未被访问的状态后,允许所述第一客户端访问所述资源;
所述处理模块还用于,若所述第一客户端满足预设的资源委托条件,则将所述资源委托给所述第一客户端,以供与所述服务器连接的第二客户端直接在所述第一客户端上访问所述资源;并将所述资源的状态更新为委托状态,并记录所述第一客户端的访问地址。
12.根据权利要求11所述的服务器,其特征在于:
所述接收模块还用于,接收所述第二客户端发送的第二资源访问请求,所述第二资源访问请求中包含的待访问的资源的信息与所述第一资源访问请求中的待访问的资源信息相同;
相应地,所述处理模块还用于,
若所述第一客户端和所述第二客户端处于同一个区域,则向所述第二客户端发送携带有所述第一客户端的访问地址的消息;
若所述第一客户端和所述第二客户端处于不同区域,则向所述第一客户端发送指示撤销资源委托的消息;
接收到所述第一客户端反馈的已撤销委托的消息后,允许所述第二客户端访问所述资源;
若所述第二客户端满足预设的资源委托条件,则将所述资源委托给所述第二客户端,将所述资源的状态更新为委托状态,并记录所述第二客户端的访问地址。
13.根据权利要求11或12所述的服务器,其特征在于,所述处理模块根据获取到的所述第一客户端对应的处理能力信息和业务状态信息,判断所述第一客户端是否满足所述资源委托条件。
14.一种第一客户端,与服务器连接,其特征在于,包括:
发送模块,用于向所述服务器发送第一资源访问请求,所述第一资源访问请求中包含待访问的资源的信息;
处理模块,用于在所述服务器上访问所述资源,并接受所述服务器对所述资源的委托,以供与所述服务器连接的第二客户端直接在所述第一客户端上访问所述资源;
其中,所述资源是所述服务器在确定所述资源处于未被访问的状态,且确定所述第一客户端满足预设的资源委托条件后,委托给所述第一客户端的。
15.根据权利要求14所述的第一客户端,其特征在于:
所述处理模块还用于,接收所述第二客户端发送的用于访问所述资源的请求,并允许所述第二客户端访问所述资源,所述第二客户端与所述第一客户端处于同一个区域;或,接收所述服务器发送的用于指示撤销所述资源的委托的消息。
16.根据权利要求15所述的第一客户端,其特征在于,还包括:
委托模块,用于若所述第二客户端满足预设的资源委托条件,则将所述资源委托给所述第二客户端,以供同一个区域内的其他客户端直接在所述第二客户端上访问所述资源;同时记录所述第二客户端的访问地址。
17.根据权利要求16所述的第一客户端,其特征在于:
所述处理模块还用于,在接收所述服务器发送的用于指示撤销所述资源的委托的消息之后,判断所述资源是否委托给了处于同一个区域内的所述第二客户端;
若判断结果为是,则向所述第二客户端发送用于指示撤销所述资源的委托的消息;
若判断结果为否,且所述资源的委托类型为读取时,则将存储的所述资源进行失效处理;
若判断结果为否,且所述资源的委托类型为写入时,则将所述资源对应的脏数据写入所述服务器中;
向所述服务器发送已撤销委托的消息。
18.一种资源访问系统,其特征包括,如权利要求11至13任一所述的服务器,以及如权利要求14至17任一所述的客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310732951.3A CN103701899B (zh) | 2013-12-26 | 2013-12-26 | 资源访问方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310732951.3A CN103701899B (zh) | 2013-12-26 | 2013-12-26 | 资源访问方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103701899A CN103701899A (zh) | 2014-04-02 |
CN103701899B true CN103701899B (zh) | 2017-04-26 |
Family
ID=50363293
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310732951.3A Active CN103701899B (zh) | 2013-12-26 | 2013-12-26 | 资源访问方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103701899B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2879343A1 (en) * | 2013-11-29 | 2015-06-03 | Nederlandse Organisatie voor toegepast- natuurwetenschappelijk onderzoek TNO | System for protection against DDos attacks |
CN103973690B (zh) * | 2014-05-09 | 2018-04-24 | 北京智谷睿拓技术服务有限公司 | 资源访问方法及资源访问装置 |
CN107395737A (zh) * | 2017-08-04 | 2017-11-24 | 深圳Tcl新技术有限公司 | 访问网络资源的方法、装置、系统及计算机可读存储介质 |
CN107734034B (zh) * | 2017-10-17 | 2021-01-26 | 泰康保险集团股份有限公司 | 服务器对接系统、方法、计算机可读存储介质及前置机 |
CN108173774B (zh) * | 2018-02-27 | 2021-05-14 | 北京明朝万达科技股份有限公司 | 一种客户端的升级方法及系统 |
CN111866194B (zh) * | 2020-09-24 | 2020-12-15 | 南京百锦信息科技有限公司 | 一种云端远程协同办公数据保护系统及方法 |
CN116233215B (zh) * | 2023-05-06 | 2023-08-08 | 杭州筋斗腾云科技有限公司 | 安全访问的处理方法及电子设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101908999A (zh) * | 2009-06-02 | 2010-12-08 | 华为技术有限公司 | 一种网络中资源委托调整的方法、装置及系统 |
CN101931635B (zh) * | 2009-06-18 | 2014-05-28 | 北京搜狗科技发展有限公司 | 网络资源访问方法及代理装置 |
CN101714196A (zh) * | 2009-11-20 | 2010-05-26 | 上海电机学院 | 基于周期时间的权限委托方法 |
CN102480554A (zh) * | 2010-11-24 | 2012-05-30 | 上海三旗通信科技股份有限公司 | 一种实现通讯终端托管的方法 |
CN102082827A (zh) * | 2010-12-21 | 2011-06-01 | 北京高森明晨信息科技有限公司 | 应用型云计算的委托方法和装置 |
-
2013
- 2013-12-26 CN CN201310732951.3A patent/CN103701899B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN103701899A (zh) | 2014-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103701899B (zh) | 资源访问方法及装置 | |
CN104168333B (zh) | Proxzone服务平台的工作方法 | |
CN104767834B (zh) | 用于加速计算环境到远程用户的传送的系统和方法 | |
CN102404229B (zh) | 负载均衡系统、装置及方法 | |
CN103559319B (zh) | 分布式集群文件系统的缓存同步方法和设备 | |
CN106789153A (zh) | 物联网系统终端设备的多渠道自适应日志记录、输出方法及系统 | |
US20120271943A1 (en) | Method, apparatus, and system for scheduling distributed buffer resources | |
WO2006100194A1 (en) | Selecting a resource manager to satisfy a service request | |
CN106815099A (zh) | 鉴权系统和方法 | |
CN101018227A (zh) | 数据管理装置、存储有数据管理程序的存储介质、协议切换装置和方法 | |
US11922059B2 (en) | Method and device for distributed data storage | |
CN110830481A (zh) | 一种车载设备上网方法、装置、服务器及存储介质 | |
CN111327668A (zh) | 网络管理方法、装置、设备和存储介质 | |
CN105991596A (zh) | 一种访问控制方法和系统 | |
JP4208506B2 (ja) | 高性能記憶装置アクセス環境 | |
US20060253658A1 (en) | Provisioning or de-provisioning shared or reusable storage volumes | |
CN109471979B (zh) | 一种抓取动态页面的方法、系统、设备及介质 | |
CN106326143B (zh) | 一种缓存分配、数据访问、数据发送方法、处理器及系统 | |
CN102437965A (zh) | 目标站点的访问方法及装置 | |
CN108629582A (zh) | 业务处理方法及装置 | |
US20080022067A1 (en) | Method, system and program product for storing downloadable content on a plurality of enterprise storage system (ess) cells | |
CN1997005B (zh) | 网络通信数据管控系统及方法 | |
CN103140833A (zh) | 用于多媒体多方对等操作(m2p2)的系统和方法 | |
CN108829340B (zh) | 存储处理方法、装置、存储介质及处理器 | |
CN102112978B (zh) | 资源部署管理 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |