具体实施方式
本发明实施例通过文件的内容数据或与内容数据有关的内容签名来查找存有文件的设备(包括客户端和服务器),使得下载文件的客户端可以从所有存有该文件的设备上下载该文件,不受类似torrent文件标识的限制,获得的数据源较多,并且当存有该文件的设备与下载文件的客户端处于同一局域网时,不需要占用局域网的出口带宽,缓解了网络拥塞的情况。
本发明实施例中的文件包括文字类、图片类、音频类和视频类等文件,还包括它们的组合形式,如包括文字和图片的网页、包括音频和视频的电影等。由于本实施例是为了提高下载速度,所以应用在比较大的文件上效果较好,如电影。本发明实施例以数据流形式下载文件。本发明实施例中的下载包括从网络获得数据的各种形式,如在线收看等。
参见图2,本实施例中下载数据的主要方法流程如下:
步骤201:下载到一文件的部分内容数据或内容签名。
步骤202:根据所述部分内容数据或内容签名确定网络中是否有存有所述文件的设备,该设备包括服务器和客户端。显然,存有所述文件的设备包括步骤201中提供文件的部分内容数据的设备。
步骤203:在确定存有所述文件的设备时,从所述设备上继续下载所述文件。
其中,内容签名(Content Identity,CID)是根据预设的算法对文件的内容数据进行处理后获得的信息数据。本实施例中的算法包括对不同的数据处理得到不同的处理结果的所有算法,处理结果(即内容签名)可唯一标识处理前的数据即可,如信息-摘要算法5(MD5)等。获得所需的CID可以有多种方式,如对文件的全部内容数据进行处理获得所需的CID;如将文件的全部内容数据分为多个数据段,分别对各数据段进行处理得到多个CID,再将该多个CID合并为所需的CID;如将前一例子中的多个CID合并后,进一步根据算法进行处理,得到所需的CID;如从文件的内容数据中选择部分内容数据,对该部分内容数据进行处理后得到所需的CID;如将前一例子中的部分内容数据分为多个数据段,分别对各数据段进行处理得到多个CID,再将该多个CID合并为所需的CID等方式。
参见图3,本实施例中用于实现下载数据方法的装置包括控制模块301和查找模块302。
控制模块301用于从下载模块303获得一文件的部分内容数据或内容签名,并指示所述下载模块303从确定存有所述文件的设备上继续下载所述文件。具体指示方式有多种,如控制模块301可以通过将确定的设备的相关信息发送给所述下载模块,来指示所述下载模块303从确定的设备上继续下载。设备的相关信息包括设备的标识、设备的互联网协议(IP)地址或统一资源定位(URL)地址等。或者,如控制模块301指示存有所述文件的设备将所述文件发送给下载模块303,指示下载模块303进行接收。
其中,下载模块303可以属于所述装置,或者下载模块303与所述装置直接或间接的连接。所述装置和下载模块303均可位于服务器或客户端。所述装置和下载模块303可以位于同一设备,也可位于不同设备。所述装置和下载模块303位于不同设备时,通过各自设备的接口进行交互。
查找模块302用于根据所述部分内容数据或内容签名确定网络中是否有存有所述文件的设备,当确定存有所述文件的设备时通知所述控制模块。具体查找过程有多种,如查找模块302根据所述部分内容数据或内容签名查找网络中的设备,并确定存有所述文件的设备;或者,如查找模块302根据所述部分内容数据或内容签名查找内容数据或内容签名与存有文件的设备的对应关系,并确定存有所述文件的设备。控制模块301可能从多个下载模块303获得所述文件的部分内容数据或内容签名,当控制模块301第一次获得所述文件的部分内容数据或内容签名时,查找模块302根据所述部分内容数据或内容签名查找网络中的设备,并建立内容数据或内容签名与存有文件的设备的对应关系,在控制模块301之后获得所述文件的部分内容数据或内容签名时,可只查找建立的对应关系,一个对应关系的实例参见表1所示。查找模块302也可以定期查找网络中的设备,来更新该对应关系。
表1
文件 |
设备 |
文件1的内容签名1 |
设备1的标识 |
设备2的标识 |
…… |
文件2的内容签名2 |
设备2的IP地址 |
设备3的标识 |
…… |
文件3的部分内容数据 |
设备3的IP地址 |
设备4的URL地址 |
…… |
…… |
…… |
…… |
|
其中,查找模块302根据部分内容数据直接查找设备的过程是:采用网络蜘蛛等技术搜索网络中的文件及存有该文件的设备的相关信息,并从文件中提取出部分内容数据,将其与控制模块301发送的部分内容数据进行比对,若比对结果一致,则将相应设备的相关信息发送给下载模块303,可同时建立文件与相应设备的相关信息的对应关系。例如,规定下载模块303发送前、中、后各50K的内容数据,则查找模块302相应的从搜索的文件中提取出前、中、后各50K的内容数据。查找模块302根据内容签名查找设备的过程是:查找网络中的设备上的文件,通过文件的内容数据获得内容签名,将内容签名与控制模块301发送的内容签名进行比对,若比对结果一致,则将相应设备的相关信息发送给下载模块303,可同时建立文件与相应设备的相关信息的对应关系。
查找模块302可主要查找下载服务运营商提供的设备,并且在查找到一个所需的设备时,该设备上存有具有该文件的其它设备的相关信息,可直接获得这些其它设备的相关信息,减少查找过程。
所述装置还可以包括处理模块304,参见图4所示,处理模块304用于根据预设的算法对所述控制模块301获得的全部或部分内容数据进行处理后获得所述内容签名。
所述装置与一存储模块305连接,存储模块305用于存储各文件的全部或部分内容数据或内容签名与存有文件的设备的对应关系、设备的相关信息,可能还存有下载的文件。本实施例中的存储模块305是一个泛指,可能是多个设备的存储模块的集合,包括缓存、硬盘、磁带和闪存等存储介质。存储模块305与所述装置可以位于同一设备,也可位于不同设备。当位于不同设备时,所述装置可能位于用于下载调度的服务器,存储模块305可能位于文件服务器。本实施例提供一个所述装置与其它模块的连接关系的实例,参见图5所示。
下面根据下载到文件的部分内容数据或内容签名、以及所述装置位于服务器或位于客户端的不同情况,分别具体描述下载数据的方法。
参见图6,所述装置位于客户端及下载到文件的部分内容数据情况时,下载数据的具体方法流程如下:
步骤601:客户端从网络中下载一文件的内容数据,如优先下载前、中、后各50K。
步骤602:客户端根据文件的部分内容数据,特别是根据前、中、后各50K的内容数据获得内容签名。
如果客户端直接从网络中下载到文件的内容签名,则可跳过步骤602,继续步骤603。文件中可能包括内容数据和内容签名,或者内容签名包含在类似torrent文件的文件中,或者下载的文件是一种文件夹的形式,其中包括包含内容数据的文件和包含内容签名的文件。
步骤603:客户端根据内容签名查找网络中的设备,确定存有该文件的设备。内容签名的长度比内容数据的长度短得多,所以使用内容签名查找设备比使用内容数据查找设备的速度更快。
步骤604:客户端在查找文件的过程中获得设备的标识、IP地址等信息,客户端根据设备的相关信息从设备上继续下载文件。
在步骤603中,查找网络中的设备需要较多的时间,采用客户端查找文件的内容签名与设备的对应关系,可较快的确定存有该文件的设备,并根据对应关系中设备的相关信息连接到确定的设备。
参见图7,所述装置位于服务器及下载到文件的部分内容数据情况时,下载数据的具体方法流程如下:
步骤701:客户端从网络中下载一文件的内容数据,如优先下载前、中、后各50K。
步骤702:客户端自动将文件的部分内容数据发送给服务器,尤其是将前、中、后各50K的内容数据发送给服务器。
也可以是服务器主动从客户端获得内容数据。或者,客户端经过该服务器从网络中下载文件,所以该服务器获得了该文件的内容数据。
如果客户端具有处理功能,则客户端可以根据预设的算法对内容数据处理后获得内容签名,将内容签名发送给服务器,继续步骤704。
步骤703:服务器根据预设的算法对获得的内容数据进行处理,获得内容签名。
步骤704:服务器根据内容签名查找内容签名与设备的对应关系,确定存有该文件的设备。
步骤705:服务器将确定的设备的相关信息发送给客户端。如果服务器确定的设备中包括自身,则服务器可直接向客户端发送文件的内容数据。
步骤706:客户端根据设备的相关信息连接到该设备,从该设备继续下载文件。
在图6和图7所示的流程中,服务器或客户端如果只查找本地局域网中的设备,查找量可大幅度降低,并且客户端从局域网中的设备下载文件,下载速度较快,并且不需要占用局域网的出口带宽。如果本地局域网中未查找到存有所述文件的设备,则可以从大范围的局域网中查找。如,一座大厦内部构成一个局域网1,几座相邻的大厦也可构成一个局域网2,局域网2包括多个局域网1,首先查找本地的局域网1中的设备,未查找到时可继续查找局域网2。通过这种广义的局域网查找,实现了近距离传输,也可提高查找及相应的下载速度。
下面针对局域网来对下载数据的方法进行详细描述。局域网的几个典型应用场景,如网吧和学校的计算机实验室等,其特点是局域网中存在一服务器对局域网中的设备进行统一管理,可完成所有局域网内客户端的定制管理功能,包括对客户端安装包的初始设定和修改、对流量的控制、对共享文件的管理、对下载资源的管理,对客户端下载安全的监控,对客户端磁盘状态的查看和已下载文件的清理。参见图8所示,具体方法流程如下:
步骤801:客户端通过局域网中的服务器连接到外网,并按照某下载路径从外网中下载文件的内容数据。
步骤802:客户端以请求消息的形式将部分内容数据发送给局域网中的服务器,或者服务器在客户端下载过程中获得内容数据。
步骤803:局域网中的服务器根据预设的算法对部分内容数据进行处理,获得内容签名。
步骤804:局域网中的服务器根据内容签名首先查找本地是否存有该文件,若没有,则继续步骤805,否则继续步骤806。
服务器查找本地文件的方式有多种,如用文件的内容签名来对该文件命名,通过查找文件名即可查找到文件;或者,服务器存有文件的内容签名与文件标识的对应关系,或存有文件的内容签名与文件存储地址(如C:\文件夹A\文件夹B\文件A)的对应关系,通过文件标识或文件存储地址也可查找到文件。
步骤805:查找内容签名与设备的对应关系,确定局域网内是否有存有该文件的设备(包括局域网内的文件服务器和客户端),若是,则继续步骤807,否则继续步骤808。
步骤806:局域网中的服务器向该客户端发送该文件中未下载的内容数据。
步骤807:局域网中的服务器将下载路径发送给客户端,继续步骤809。
步骤808:客户端继续按原下载路径从外网继续下载文件的剩余内容数据。
步骤809:客户端按获得的下载路径从局域网中的设备继续下载该文件。客户端可以同时从局域网和原下载路径(即外网)继续下载文件,为了减少局域网出口带宽的占用,客户端也可以只从局域网中的设备继续下载文件。
如果原下载路径指向客户端所在的局域网,也可应用本实施例,查找局域网中除原下载路径指向的设备以外的存有下载文件的设备,为客户端提供了较多的下载数据源,有助于提高下载速度。
其中,局域网中的服务器可以在第一次收到文件的内容数据时,查找局域网中的设备可能都未存有该文件,在客户端从外网下载文件的同时,局域网中的服务器也保存该文件,或者将该文件保存到局域网中的文件服务器,并建立内容签名与设备的对应关系,对应关系中的设备包括服务器自身和下载该文件的客户端。局域网中的服务器再次收到该文件的内容数据时,便可查找建立的对应关系,同时更新该对应关系。或者,局域网中的服务器在多次收到文件的内容数据时,保存该文件,或者将该文件保存到局域网中的文件服务器。局域网中的服务器在一段时间内未再收到该文件的内容数据时,可清除局域网中的该文件。
本发明实施例根据内容数据或内容签名查找存有相应文件的设备,从查找到的设备上下载该文件,实现了从较多的数据源下载数据,提高了下载速度。本发明实施例进一步优先从局域网中的设备下载文件,不仅提高了下载速度,还减少了对局域网出口带宽的占用。服务器和客户端均可采用本实施例描述的方法,特别是针对典型的局域网,如网吧等,采用本实施例描述的方法可对局域网中的下载进行统一管理,均衡分配下载资源和均衡存储多个文件,并且通过服务器存储文件可避免同一文件的过多重复存储。
用于实现本发明实施例的软件可存储在硬盘、磁带和闪存等存储介质。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。