一种资源共享方法及其设备与流程

文档序号:17062981发布日期:2019-03-08 18:29阅读:240来源:国知局
一种资源共享方法及其设备与流程

本发明涉及网络技术领域,特别是涉及一种资源共享方法及其设备。



背景技术:

P2P技术(peer-to-peer,点对点)又称对等互联网络技术,依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。通过P2P技术,一个用户可以直接连接到其他用户的计算机,实现文件交换,而无需连接到服务器进行文件的浏览与下载,在用户下载文件的同时,用户自己的电脑还要继续做主机上传,这种下载方式,参与者越多下载速度越快。P2P使得网络上的沟通变得容易、更直接共享和交互,真正地消除中间商。现有的文件共享方案包括:基于ed2k(eDonkey2000 network,电驴网络)的发布和BT下载。

Ed2k连接的格式为:ed2k://|file|<文件名称>|<文件大小>|<文件哈希值>|/,格式较为简单,用户使用emule下载工具(如veryCD)将任一本地文件生成生成ed2k连接,并将其发布到网上,其他用户使用ed2k下载工具便可下载到该链接对应的文件。对每一个本地文件,会生成一个不同的ed2k连接,每个ed2k连接唯一对应一个文件。然而,基于ed2k技术的发布的最大问题是,一个ed2k链接只能分享一个文件,如果用户需要分享本地计算机上的多个文件,就需要生成多条ed2k链接,这对于分享过程和接受分享的过程的复杂度都有较大的提高。

对于传统的BT下载,首先需要下载对应的torrent文件,然后使用一款BT下载软件下载该torrent文件对应的原始文件内容,通常的BT下载软件会根据torrent文件中的网址,自动连接Tracker服务器,并从Tracker服务器中接收到其他正在下载该文件的其他节点,并从这些节点获得文件片断,直到下载完成。BT下载软件发布torrent种子的过程是:BT下载软件一般会默认打包一些默认Tracker的地址,用户选择发布一个文件或者一个文件目录,BT下载软件计算一个或者多个文件的校验信息,并和Tracker地址一起拼接成一个torrent文件并保存在本地后,用户需主动将该torrent文件发布到网上,发布者通常是初始阶段的唯一的源。

基于BT技术发布方式有两个问题:1、由于torrent文件中包含了文件分片的校验信息,导致文件较大,通常一个torrent的文件为几K到几百K,较大的文件提高了其传输成本和发布成本;2、由于torrent文件的大小问题,它的通常表现形式是一个后缀为torrent的文本文件,而非一个字符串,torrent文件中包含非标准编码字符,导致可识别性、可编辑性和可传播性较差。

因此,亟需一种资源共享方案用以解决上述问题。



技术实现要素:

本发明的目的在于提供一种资源共享方法,用以解决多个文件无法通过一条分享链进行分享的问题。

为此,本发明实施例采用如下技术方案:

本发明实施例提供一种资源共享方法,该方法包括:

客户端作为资源发布者发布共享资源时,根据资源发布者信息以及至少一个共享文件信息生成分享元数据,并将所述分享元数据发送给分享服务器,以使所述分享服务器根据所述分享元数据生成分享链进行发布;

客户端作为资源请求者时,根据所请求资源对应的分享链从所述分享服务器获取对应的分享元数据,并根据获取到的分享元数据下载其中所指示的共享文件。

本发明实施例还提供一种资源共享方法,该方法包括:

分享服务器接收到资源发布者客户端发送的分享元数据后,根据所述分享元数据生成分享链,存储所述分享元数据与分享链的对应关系,并发布所述分享链;

所述分享服务器接收到资源请求者客户端请求查询分享元数据的请求后,根据分享元数据与分享链的对应关系,查询与所请求查询的分享链对应的分享元数据,并返回给所述资源请求者客户端。

本发明实施例还提供一种客户端设备,包括:资源共享模块和资源请求模块;

所述资源共享模块,用于在客户端设备作为资源发布者发布共享资源时,根据资源发布者信息以及至少一个共享文件信息生成分享元数据,并将所述分享元数据发送给分享服务器,以使所述分享服务器根据所述分享元数据生成分享链进行发布;

资源请求模块,用于在客户端作为资源请求者时,根据所请求资源对应的从所述分享服务器获取对应的分享元数据,并根据获取到的分享元数据下载其中所指示的共享文件。

本发明实施例还提供一种资源分享服务器,包括:

分享链发布模块,用于接收资源发布者客户端发送的分享元数据,根据所述分享元数据生成分享链,存储所述分享元数据与分享链的对应关系,并发布所述分享链;其中,所述分享元数据包括资源发布者信息以及至少一个共享文件信息;

查询响应模块,用于在接收到资源请求者客户端请求查询分享元数据的请求后,根据所述存储模块存储的分享元数据与分享链的对应关系,查询与所请求查询的分享链对应的分享元数据,并返回给所述资源请求者客户端。

本发明的实施例具有以下有益效果:

本发明实施例通过发布者客户端根据发布者信息以及至少一个共享文件生成分享元数据,由分享服务器生成分享链,其他客户端依据分享链得到对应的分享元数据,并根据该分享元数据进行资源下载,实现了通过一条分享链共享文件,解决多个文件无法通过一条分享链进行分享的问题,简化了多个文件共享的复杂性,使得分享成本降低。

附图说明

图1为本发明实施例提供的本地多文件共享系统应用的网络架构示意图;

图2为本发明实施例提供的发布者客户端的资源共享流程示意图;

图3为本发明实施例提供的资源请求客户端的共享资源请求流程示意图;

图4为本发明实施例提供的资源分享服务器的结构示意图;

图5为本发明实施例提供的客户端设备的结构示意图。

具体实施方式

下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图1,为本发明实施例提供的资源共享系统应用的网络架构示意图,如图所示,该网络架构包括:分享服务器30、P2S服务器40、P2P服务器50,以及多个客户端,其中,客户端10表示发布者客户端,客户端20表示下载客户端。

其中,分享服务器为本发明实施例所新增加的服务器,用于根据发布者客户端发送的分享元数据生成分享链进行发布,以使需要请求资源的客户端能够根据分享链获取对应的分享元数据,并根据分享元数据进行资源下载。

P2S服务器40主要用于维护和管理服务器下载源,为客户端提供资源下载服务。P2P服务器50主要用于维护和管理作为下载源的客户端信息,包括客户端的IP地址及连接端口,为请求资源的客户端提供下载源信息。

本发明实施例中,分享元数据由资源发布者客户端生成,其中包括发布者信息和共享文件信息,其中共享文件的数量至少为1个,优选的,为2个或2个以上,本发明实施例在2个或2个以上共享文件时能取得更好效果,能够为多个共享文件提供单一的短小的文本字符串下载链。

以下结合图1和图2详细说明本发明实施例的发布者客户端的资源共享流程,如图所示,该流程包括以下步骤:

步骤21,发布者客户端将发布者信息以及至少两个共享文件信息进行整合,生成分享元数据,发送给分享服务器。

具体的,分享元数据可以包括发布者信息、各共享文件的文件标识,还可以包括各共享文件的文件名、文件大小,还可以包括共享文件的数目。例如,发布者客户端需要将本地N个文件(File1, File2,…, FileN)进行共享,其文件名分别为Name1, Name2,…, NameN。发布者客户端分别获得这N个文件的大小,并计算这N个文件的文件标识,文件标识可以唯一标识该文件,这N个文件的大小分别表示为Size1、Size2,…,SizeN,这N个文件的文件标识分别表示为Hash1、Hash2,…,HashN。具体的,可以对文件内容采用哈希算法计算得到文件标识。优选的,客户端通过MD5(Message Digest Algorithm,消息摘要算法第五版)或者SHA1(Secure Hash Algorithm,安全哈希)算法对共享文件的内容进行计算,得到共享文件的文件标识。发布者客户端将多个共享文件数据以以下格式进行整合,得到分享元数据(metaData):

metaData ={PublisherInfo,FileNum,memo,(FileInfo1,FileInfo2,… FileInfoN)};其中,FileInfoi= {Namei,Sizei,Hashi}。

其中,PublisherInfo表示发布者信息,可包括发布者的IP和可连接端口;FileNum表示共享文件的数目;memo表示文件摘要,即在分享的时候允许让用户填写的可读内容,也可为空;FileInfo表示共享文件信息,可包括文件名称、文件大小和文件标识。

步骤22,分享服务器根据分享元数据生成分享链并进行发布。

具体的,分享服务器对分享元数据(metaData)进行哈希运算,生成分享链(Hash_metaData),并将该Hash_metaData进行发布。分享服务器可将分享链以及相关共享文件信息发布到共享站点,以供客户端选择下载。

步骤23,分享服务器提取分享元数据中的发布者信息和共享文件信息,将所述发布者信息和共享文件信息注册到P2P服务器。

具体的,分享服务器从metaData中提取PublisherInfo和FileInfo后,将该PublisherInfo和对应的FileInfo注册到P2P服务器中。由于PublisherInfo中包括发布者客户端的IP地址和可连接端口等信息,因此当有其他客户端需要下载分享元数据中的文件时,可以从P2P服务器获知发布者客户端的IP地址及可连接端口等信息,从而从发布者客户端下载文件。

分享服务器在生成分享链后,还可以将分享链发送给对应的发布者客户端,发布者客户端可以将分享链发送给其它客户端,以供其它客户端下载相应资源。由于分享链是一个文本字符串,下载客户端可以通过E-mail、QQ、MSN等任何方式获取发布者客户端发送的分享链。

上述流程中的步骤22和步骤23的执行顺序不限,也可以先执行步骤23再执行步骤22,或者同时执行。

以下结合图1和图3详细说明本发明实施例的资源请求客户端的共享资源请求流程,如图所示,该流程包括以下步骤:

步骤31,下载客户端(即资源请求客户端)根据所请求的资源对应的分享链,向共享服务器发送查询请求,以请求查询与该分享链对应的分享元数据。

具体的,下载客户端可以从发布客户端接收其发送的分享链,也可以从共享资源站点选择分享链。

步骤32,分享服务器将该分享链对应的分享元数据反馈给下载客户端。

具体的,分享服务器根据其存储的分享元数据和分享链的对应关系,获取到客户端所请求的分享链对应的分享元数据后返回给该客户端。

步骤33,下载客户端根据分享元数据下载其中所指示的共享文件。

具体的,下载客户端接收到该分享元数据后,可以获知分享元数据中包含的首个发布者信息(IP地址及可连接端口)、各共享文件信息等信息,然后,根据分享链向P2S和/或P2P服务器查询相应文件的下载源(即查询当前网络中是否有服务器提供相应文件的下载服务,或/和是否有其它客户端正在下载相应文件),并从查询到的下载源下载相应文件。

由于分享服务器将发布者信息和对应的共享文件信息注册到P2P服务器,此时若发布者客户端在线,该发布者客户端即作为P2P网络中的第一个有数据节点,为下载客户端提供下载数据。

由于下载客户端在下载文件时,可将本客户端的信息(IP地址及可连接端口)注册到P2P服务器,因此当其他下载客户端也需要下载该文件时,通过P2P服务器即可查询到已注册的客户端,这些客户端都能够提供相应文件,从而实现多点同时下载。

通过以上描述可以看出,本实施例通过发布者客户端将发布者信息以及多个共享文件信息进行整合,生成分享元数据,由分享服务器生成分享链,其他客户端依据分享链得到对应的分享元数据,并可以向P2P服务器或P2S服务器查询下载分享元数据文件的网元,从该网元处进行下载,实现了通过一条分享链共享多个文件,解决多个文件无法通过一条可编辑性及可识别性强的分享链进行分享的问题,简化了多个文件共享的复杂性,使得分享成本大幅降低。

基于相同的构思,本发明实施例还提供一种分享服务器,如图4所示,该分享服务器包括:

分享链发布模块41,用于接收资源发布者客户端发送的分享元数据,根据分享元数据生成分享链,存储分享元数据与分享链的对应关系,并发布分享链;其中,分享元数据包括资源发布者信息以及至少一个共享文件信息。

查询响应模块42,用于在接收到资源请求者客户端请求查询分享元数据的请求后,根据存储模块存储的分享元数据与分享链的对应关系,查询与所请求查询的分享链对应的分享元数据,并返回给资源请求者客户端。

该分享服务器还包括:注册模块43,用于在接收到资源发布者客户端发送的分享元数据后,将分享元数据包含的资源发布者信息和共享文件信息注册到P2P服务器。

具体的,分享链发布模块41具体用于,通过哈希算法对对分享元数据进行运算得到分享链。

基于相同的构思,本发明实施例还提供一种客户端设备,如图5所示,该客户端设备包括:资源共享模块51和资源请求模块52,其中,

资源共享模块51,用于在客户端设备作为资源发布者发布共享资源时,根据资源发布者信息以及至少一个共享文件信息生成分享元数据,并将分享元数据发送给分享服务器,以使分享服务器根据分享元数据生成分享链进行发布。

资源请求模块52,用于在客户端作为资源请求者时,根据所请求资源对应的从分享服务器获取对应的分享元数据,并根据获取到的分享元数据下载其中所指示的共享文件。

具体的,共享服务器在接收到分享元数据后,还将分享元数据中包含的资源发布者信息和共享文件信息注册到P2P服务器。

资源请求模块52还用于,在下载共享文件之前,向P2P服务器或/和P2S服务器查询拥有该共享文件的下载源;以及,在下载共享文件时,将自己的信息注册到P2P服务器。

具体的,资源共享模块51所生成的分享元数据包括:发布者信息和各共享文件信息,其中,共享文件信息包括文件标识。

资源共享模块51具体用于,通过消息摘要算法或者哈希算法对共享文件内容进行运算得到共享文件信息。

资源共享模块51,具体用于通过哈希算法对分享元数据计算生成分享链。

本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1