一种数据分发方法、装置及系统的制作方法

文档序号:7780427阅读:238来源:国知局
一种数据分发方法、装置及系统的制作方法
【专利摘要】本发明公开了一种数据分发方法、装置及系统。所述方法包括:将数据上传至源数据服务器;所述源数据服务器获取边缘服务器信息,并根据其存储的所述数据和所述边缘服务器信息生成种子文件,所述种子文件中包括源数据服务器和所有边缘服务器的地址信息;所述源数据服务器将所述种子文件发送给种子服务器;所述边缘服务器从所述种子服务器获取种子文件,并根据其中的地址信息从所述源数据服务器和/或所述边缘服务器获取所述数据。本发明提出的上述方案支持大数据和大规模集成数据的分发,无需Tracker服务器同步信息,分发速度快,克服了现有技术下载慢,扩展性差的缺点。
【专利说明】一种数据分发方法、装置及系统
【技术领域】
[0001]本发明涉及计算机网络【技术领域】,尤其涉及一种数据分发方法、装置及系统。
【背景技术】
[0002]内容分发网络(CDN)是一种分布式的网络,包含两种节点,源站和边缘机。源站提供⑶N中的源数据,通常只有一个或几个;边缘机直接面向用户提供服务,数量由⑶N网络规模决定,从几十到几千不等。内容分发网络(CDN)基于IP网络而构建,基于内容访问与应用的效率要求、质量要求和内容秩序而提供内容的分发和服务。而从广义的角度,CDN代表了一种基于网络而构建的高质量、高效率、具有鲜明网络秩序的网络应用服务模式。简单地说,内容分发网络(⑶N)是一个经策略性部署的整体系统,包括分布式存储、负载均衡、网络请求的重定向和内容管理4个要件,而内容管理和全局的网络流量管理(TrafficManagement)是⑶N的核心所在。通过用户就近性和服务器负载的判断,⑶N能够确保内容以一种极为高效的方式为用户的请求提供服务。
[0003]图1示出了现有技术中在CDN网络通过Http方式分发内容的系统结构示意图。如图1所示,在初始状态下,边缘机没有源数据,无法向用户提供服务,所以源站需要先将数据分发到边缘机。现有的CDN分发技术有Http方式和P2P方式等。目前最简单的CDN数据分发方式是通过Http下载分发,数据提供商先将源数据发布到源站,边缘机通过Http协议从源站下载源数据,这样一个发布流程就完成了。通过Http协议分发数据的方式在边缘机规模小,源数据不大的情况下,发布速度快,但是扩展性差,当边缘机数量过多或分发数据量过大时,源站的带宽和Http请求量都会激增,严重时会造成源站宕机,服务中止。
[0004]当需要分发大文件或者⑶N集群规模较大时,一般是通过P2P来分发数据。P2P(点对点网络)又称工作组,网上各台计算机有相同的功能,无主从之分,一台计算机都是既可作为服务器,设定共享资源供网络中其他计算机所使用,又可以作为工作站,没有专用的服务器,也没有专用的工作站。P2P网络中包括P2P网络中的点(peer),即该网络中的各个客户端Jracker服务器,其作为P2P网络的信息中心,负责同步各个客户端的信息;种子文件,其用于存储P2P网络中数据的信息,其包含文件列表、文件哈希值和文件分片等信息。
[0005]图2示出了现有技术中在CDN网络中通过P2P的方式分发内容的系统结构示意图。如图2所示,在P2P网络中,每一个数据下载者同时也是数据提供者,通过Tracker服务器来同步各个Peer的信息,每一个Peer都可以从其他Peer下载内容。在这里运行于源站和边缘机的P2P客户端都是Peer。具体数据分发流程如下:数据提供商先将源数据发布到源站上;通过种子生成客户端生成源数据的种子文件;上传种子文件到种子服务器;源站Peer向Tracker服务器汇报自己的信息,声明自己加入P2P网络,其他Peer可以从这里下载数据;边缘机从种子服务器下载种子文件;边缘机Peer解析种子文件,获取要下载文件的信息;边缘机Peer向Tracker服务器汇报自己的信息,声明自己加入P2P网络;Peer向Tracker服务器汇报自己信息的同时,Tracker服务器向各个Peer返回P2P网络中其他Peer的信息;各Peer从Tracker服务器取得其他Peer的信息后,相互传输数据。[0006]P2P内容分发方式支持大数据、大规模集群数据的分发,但是这种内容分发网络中需要通过Tracker服务器同步信息,相应降低了分发速度。

【发明内容】

[0007]为解决现有技术中的上述问题,本发明提出了一种数据分发方法及装置。
[0008]根据本发明一方面,其提出了一种数据分发方法,包括:
[0009]将数据上传至源数据服务器;
[0010]所述源数据服务器获取边缘服务器信息,并根据其存储的所述数据和所述边缘服务器信息生成种子文件,所述种子文件中包括源数据服务器和所有边缘服务器的地址信息;
[0011 ] 所述源数据服务器将所述种子文件发送给种子服务器;
[0012]所述边缘服务器从所述种子服务器获取种子文件,并根据其中的地址信息从所述源数据服务器和/或所述边缘服务器获取所述数据。
[0013]可选地,上述方法还包括:所述源数据服务器从地址信息数据存储器中获取边缘服务器的地址信息,所述地址信息数据存储器中存储有所有边缘服务器的地址信息。
[0014]可选地,其中,所述根据其中的地址信息从所述源数据服务器和/或所述边缘服务器获取所述数据包括:从所述地址信息中优先选择从与本边缘服务器位于同一地理区域或同一互联网服务提供商ISP网络的所述源数据服务器和/或所述边缘服务器获取所述数据。
[0015]可选地,其还包括,所述边缘服务器解析所述种子文件,并获取其中的地址信息。
[0016]可选地,其中所述地址信息为所述源服务器和所有边缘服务器的IP地址列表。
[0017]可选地,其中,所述源数据服务器、种子服务器和边缘服务器构成P2P网络。
[0018]可选地,其用于内容分发网络⑶N节点的快速部署。
[0019]根据本发明的另一方面,其还提出了一种数据分发装置,包括:
[0020]数据上传模块,其将数据上传至源数据服务器;
[0021]种子生成模块,其获取边缘服务器信息,并根据源数据服务器存储的所述数据和所述边缘服务器信息生成种子文件,所述种子文件中包括源数据服务器和所有边缘服务器的地址信息;
[0022]种子分发模块,其将所述种子文件发送给种子服务器;
[0023]数据获取模块,其从所述种子服务器获取种子文件,并根据其中的地址信息从所述源数据服务器和/或所述边缘服务器获取所述数据并存储于边缘服务器。
[0024]可选地,其还包括:所述种子生成模块从地址信息数据存储器中获取边缘服务器的地址信息,所述地址信息数据存储器中存储有所有边缘服务器的地址信息。
[0025]可选地,其中,所述数据获取模块从所述地址信息中优先选择从与本边缘服务器位于同一地理区域或同一互联网服务提供商ISP网络的所述源数据服务器和/或所述边缘服务器获取所述数据。
[0026]可选地,其还包括,所述数据获取模块解析所述种子文件,并获取其中的地址信
肩、O
[0027]可选地,其中,所述地址信息为所述源服务器和所有边缘服务器的IP地址列表。[0028]可选地,其中,所述源数据服务器、种子服务器和边缘服务器构成P2P网络。
[0029]可选地,其用于内容分发网络⑶N节点的快速部署。
[0030]根据本发明另一方面,其还提出了一种数据分发系统,包括:
[0031]源数据服务器,其获取边缘服务器信息,并根据所存储的数据和所述边缘服务器信息生成种子文件,所述种子文件中包括源数据服务器和所有边缘服务器的地址信息;所述数据是预先上传至所述源数据服务器的;
[0032]种子服务器,其从所述源数据服务器获取种子文件;
[0033]边缘服务器,其从所述种子服务器获取种子文件,并根据其中的地址信息从所述源数据服务器和/或所述边缘服务器获取所述数据。
[0034]可选地,其还包括:所述源数据服务器从地址信息数据存储器中获取边缘服务器的地址信息,所述地址信息数据存储器中存储有所有边缘服务器的地址信息。
[0035]可选地,其中,所述边缘服务器从所述地址信息中优先选择从与本边缘服务器位于同一地理区域或同一互联网服务提供商ISP网络的所述源数据服务器和/或所述边缘服务器获取所述数据。
[0036]可选地,其中,所述边缘服务器解析所述种子文件,并获取其中的地址信息。
[0037]可选地,其中,所述地址信息为所述源服务器和所有边缘服务器的IP地址列表。
[0038]可选地,其中,所述源数据服务器、种子服务器和边缘服务器构成P2P网络。
[0039]可选地,其用于内容分发网络⑶N节点的快速部署。
[0040]本发明提出的上述数据分发方法及装置中,源数据服务器预先获取边缘机信息,并在生成的种子文件中加入源数据服务器和所有边缘机的信息,并将所述种子文件上传至种子服务器,边缘服务器从种子服务器获取种子文件后通过解析所述种子文件获取源数据服务器和边缘机的信息,并从所述源数据服务器和/或边缘机获取数据。本发明提出的上述方案支持大数据和大规模集成数据的分发,其虽然基于P2P网络,但无需Tracker服务器同步信息,因此分发速度快,克服了现有技术下载慢,扩展性差的缺点。
[0041]为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】详细说明。
【专利附图】

【附图说明】
[0042]图1是现有技术中在⑶N网络通过Http方式分发内容的系统结构示意图;
[0043]图2是现有技术中在⑶N网络中通过P2P方式分发内容的系统结构示意图;
[0044]图3是本发明中数据分发系统的结构框架图;
[0045]图4是本发明中数据分发方法的流程图;
[0046]图5是本发明可选实施例中边缘机节点选择进行数据交换的源数据服务器和/或边缘机节点的具体流程图;
[0047]图6是本发明中数据分发装置的功能模块图。
【具体实施方式】
[0048]为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。
[0049]内容分发网络(⑶N)作为一种分布式网络,其包含两种节点:源站和多个边缘机。其数据分发流程是数据提供商将数据上传到源站,边缘机从所述源站下载所述数据,而用户从所述边缘机获取所述数据。所述内容分发网络CDN通常基于Http方式或P2P方式进行数据内容的分发。这两种方式各有优缺点,如Http方式在边缘机规模小、数据不大的情况下分发速度快,而在边缘机数量较多和/或分发的数据较大时分发速度慢;P2P方式支持大规模数据分发,但是其需要由Tracker服务器同步信息,分发速度较慢。
[0050]本发明提出了一种数据分发方法、装置及系统,其通过改进P2P分发方式,在无需Tracker服务器同步信息的情况下支持大规模数据分发,且分发速度较快。
[0051]图3示出了本发明提出一种数据分发系统的结构示意图。如图3所示,该系统包括:
[0052]源数据服务器301,其获取边缘机信息,并根据所存储的数据和所述边缘机信息生成种子文件,所述种子文件中包括源数据服务器和所有边缘机的地址信息;所述数据是预先上传至所述源数据服务器的;
[0053]种子服务器302,其从所述源数据服务器获取种子文件;
[0054]边缘机303,其从所述种子服务器获取种子文件,并根据其中的地址信息从所述源数据服务器和/或所述边缘机获取所述数据。
[0055]上述系统中所述源数据服务器、种子服务器和边缘机构成P2P网络,实现数据的点到点传输。且本发明提出的上述系统可以用于内容分发网络CDN节点的快速部署。
[0056]所述源数据是数据提供商或者源数据拥有者上传至所述源数据服务器301的。所述源数据服务器301从存储边缘机信息的地址存储器中获取边缘机地址信息,主要包括边缘机的IP地址信息。
[0057]上述系统中,源数据服务器301将生成的种子文件上传至种子服务器302后,由各个边缘机节点从所述种子服务器下载种子文件。由于种子文件中包括源数据服务器和所有边缘机节点的地址信息,因此边缘机节点通过解析所下载的种子文件获取源数据服务器和其它边缘机节点的地址信息,并与源数据服务器和/或其它边缘机节点进行数据交换。整个过程都无需Tracker服务器进行信息同步,提高了传输速度,且能够支持大数据传输。
[0058]图4示出了本发明提出的一种数据分发方法的流程图。如图4所示,所述方法包括:
[0059]步骤401、将数据上传至源数据服务器;
[0060]步骤402、所述源数据服务器获取边缘服务器信息,并根据其存储的所述数据和所述边缘服务器信息生成种子文件,所述种子文件中包括源数据服务器和所有边缘服务器的地址信息;
[0061]步骤403、所述源数据服务器将所述种子文件发送给种子服务器;
[0062]步骤404、所述边缘服务器从所述种子服务器获取种子文件,并根据其中的地址信息从所述源数据服务器和/或所述边缘服务器获取所述数据。
[0063]下面通过具体细节详细说明本发明提出的上述数据分发方法中的各个步骤。
[0064]本发明的步骤4301中,数据提供商或者数据拥有者通过一定的方式将数据上传至源数据服务器。顾名思义,源数据服务器就是用来存储源数据的,其接收特定数据提供商或者数据拥有者的数据,并将其存储在数据存储器中,为网络中的其它边缘机提供数据下载功能。
[0065]本发明的步骤402中,源数据服务器为了将数据分发给其它边缘机节点,首先获取其所在网络中所有边缘机节点的地址信息。由于CDN网络中节点是固定的,因此本发明中预先将CDN网络中的节点信息如源数据服务器、边缘机节点的地址信息等存储在地址信息数据存储器中。所述地址信息包括源数据服务器、所有边缘机节点的IP地址列表。
[0066]所述源数据服务器在获取了所有边缘机节点的地址信息后,根据其存储的要分发的数据和所述边缘机节点信息生成种子文件,所述种子文件中包括源数据服务器和所有边缘机节点的地址信息。
[0067]具体地,所述源数据服务器可以通过专门的种子生成客户端生成种子文件。所述种子文件采用B编码方式生成,其主要包括数据的存放地址、大小、下载服务器的地址。发布者的地址等数据。本发明生成的种子文件中的下载服务器的地址除了包括源数据服务器地址外,还包括网络中其它边缘机节点的地址信息。下面通过举例说明本发明可选实施例中生成的种子文件结构及内容,所述种子文件包括的内容如下所示:
[0068]host-list:各个Peer即源数据服务器和边缘机节点的ip信息(二进制格式);
[0069]creation date (可选):种子创建的时间,Unix标准时间格式;
[0070]comment (可选):种子信息备注;
[0071]created by (可选):创建人或创建程序的信息;
[0072]info:一个字典结构,包含文件的主要信息,具体分为两种情况:单文件结构或多文件结构;
[0073]其中单文件结构如下:
[0074]length:文件长度,单位字节;
[0075]md5sum(可选):长32个字符的文件的MD5校验值;
[0076]name:文件名;
[0077]piece length:每片的大小,单位字节;
[0078]pieces:每片的20个字节的SHAlHash的值;
[0079]所述多文件结构如下:
[0080]files:一个字典结构:
[0081]length:文件长度,单位字节;
[0082]md5sum(可选):同单文件结构中相同;
[0083]path:文件的路径和名字,是一个列表结构;
[0084]name:最上层的目录名字;
[0085]piece length:同单文件结构中相同;
[0086]pieces:同单文件结构中相同。
[0087]上述种子文件的示例中,与现有技术中常用的种子文件所不同的是,现有技术中常用的种子文件开头包括announce (Tracker服务器的URL)和announce_list (可选,备用tracker服务器列表)字段,但是不包括host-list字段,host-list字段用于存储本发明中源数据服务器和边缘机节点的IP地址,其可以采用二进制格式编码(节省空间),每个ip有四个字段,每个字段的值是0-255,刚好是一个字节的存储范围,所以一个ip占用4个字节。对于500个节点ip,编码后的大小是1.95kb。
[0088]上述种子文件结构仅用作示例性说明,本领域技术人员应当理解,其它任何形式的种子文件结构,只要其中存储了网络中各个节点的地址信息,都适用于本发明提出的上述方案。
[0089]步骤403中,本发明的源数据服务器生成种子文件后将其发送给种子服务器。所谓种子服务器就是用于存储各种种子文件,并向网络中的各个节点提供数据下载的种子文件。网络中的节点在下载数据前需要获取对应该数据的种子文件,并从种子文件中解析获得所述数据的下载地址、保存位置等信息。实际上,种子服务器就是提供数据下载链接的服务器,只不过其是以种子文件形式提供数据的下载链接,BT(BitTorrent)种子就是目前最常见的一种种子文件。
[0090]源数据服务器需要分发数据时,将生成的种子文件上传至种子服务器,需要下载数据的其它节点如边缘机节点通过种子服务器查找所需的种子文件,并利用种子文件下载相应数据。
[0091]步骤404中,边缘机节点从所述种子服务器获取种子文件,并根据其中的地址信息从所述源数据服务器和/或所述边缘服务器获取所述数据。
[0092]数据提供商发布数据时,先将数据传送至源数据服务器,而源数据服务器根据所述数据提供商发布的数据以及所有边缘机节点信息生成种子文件后将其上传至种子服务器。同时,数据提供商或源数据服务器通知边缘机节点有新的数据发布,并通知边缘机节点所述数据的种子文件位于种子服务器等信息。边缘机节点可以通过定时查看相关信息获知新发布的数据,并从种子服务器获取种子文件。
[0093]边缘机节点对所获取的种子文件进行解析,获取数据的相关信息,如数据大小、存放位置和地址信息等。本发明的种子文件中地址信息包括所述源数据服务器地址和所有边缘机节点地址。边缘机节点根据实际情况从所述源数据服务器和/或其他边缘机节点下载所述数据。
[0094]边缘机节点获取种子文件的地址信息后,询问所述地址信息中存储的边缘机节点是否下载有同样的数据,如果其他边缘机节点已经下载完成或者正在下载同样的数据,所述边缘机节点还可以选择从所述其他边缘机节点和/或源数据服务器下载所述数据。
[0095]可选地,边缘机节点根据所获取的种子文件的地址信息,优先选择与本边缘机节点位于同一地理区域或同一互联网服务提供商ISP网络的所述源数据服务器和/或所述边缘服务器获取所述数据。
[0096]目前的P2P应用中,各个节点之间的数据交换是随机和无序的,虽然依托于互联网络,但是与物理网络拓扑却没有直接关系。例如,一个地处上海的节点可以随机选择或被分配与北京的节点进行数据交换,也可以与美国纽约的节点进行数据交换,而不管后者和自己相隔了一个太平洋。这种差别对于用户而言,只是资源共享时的传输速度不同,然而对于运营商来讲,数据在本地网间交换的成本比不同运营商间交换的成本要低很多。
[0097]因此,本发明的边缘机节点从源数据服务器和/或其他边缘机节点下载数据时,优先考虑处于同一区域和/或同一互联网服务提供商ISP的所述源数据服务器和/或边缘机节点。这样不仅大大提升了数据下载速度,同时也是的互联网服务提供商的出口带宽得到合理利用。[0098]可选地,边缘机节点可以通过本地IP数据库或者远程IP数据库查询IP地址对应的地理位置和互联网服务提供商信息。所述本地IP采用本地IP数据库可以缩短解析时间,但不能保证数据的时效性,而采用远程IP数据库可以避免这个缺陷,但需要服务提供商定时更新所述远程IP数据库。因此,可以根据网络的实际情况选择使用上述两种方式之一。以远程IP数据库为例,本发明中远程IP数据库用于维护本网络中源数据服务器和所有边缘机节点的IP地址信息、具体地理位置以及互联网服务提供商等。边缘机节点解析获得源数据服务器和边缘机节点的地址信息后,根据所述远程IP数据库获取对应于所述源数据服务器和边缘机节点IP地址的地理位置信息和互联网服务提供商。根据所述地理位置信息计算本边缘机节点与源数据服务器和其它边缘机节点之间的距离。然后根据所述距离确定所述源数据服务器和其它边缘机节点是否与本边缘机节点位于同一区域。
[0099]可选地,在IP数据库中还可以设置各个互联网服务提供商的优先级,其主要是针对与本边缘机节点相同的互联网服务提供商的源数据服务器和其它边缘机节点数量不够或者距离较远的情况下,跨互联网服务提供商选择时采用的优先策略。例如,本边缘机节点解析获得的源数据服务器和其它边缘机节点均与其不在同一区域、和/或不属于同一互联网服务提供商,或者在同一区域、和/或属于同一互联网服务提供商的源数据服务器和/或其它边缘机节点的数量较少,不能满足交换数据速率要求的情况下,根据所述优先级选择属于不同互联网服务提供商的源数据服务器和/或其它边缘机节点进行数据交换。
[0100]图5示出了本发明可选实施例中边缘机节点选择与其进行数据交换的源数据服务器和/或边缘机节点的具体流程图。如图4所示,其包括:
[0101]步骤501:根据IP数据库获取源数据服务器和所有边缘机节点的地理位置信息和互联网服务提供商信息;
[0102]步骤502:根据所获取的地理位置信息计算源数据服务器和所有边缘机节点与本边缘机节点的距离信息;
[0103]步骤503:根据所述距离信息选择属于同一区域的源数据服务器和边缘机节点;
[0104]步骤504:从所选择的同一区域的源数据服务器和边缘机节点中选择与本边缘机节点属于同一互联网服务提供商的源数据服务器和边缘机节点;
[0105]步骤505:与所选择源数据服务器和边缘机节点进行数据交换。
[0106]上述流程仅是示例性说明,本发明并不限于此。例如,同一区域、同一互联网服务提供商的源数据服务器和/或边缘机节点数量较少的情况下,还可以通过选择属于同一区域、或者属于同一互联网服务提供商、或者属于优先级较高的互联网服务提供商的节点进行数据交换,具体可以根据实际情况进行设定,本发明对此并不做限定。
[0107]边缘机节点从源数据服务器和/或其它边缘机节点获得数据并存储后,为用户和/或其它边缘机节点提供数据下载服务,用户可以就近选择边缘机节点下载所需的数据,完成数据的分发任务。
[0108]本发明提出的上述方案通过改进的P2P网络实现内容分发机制,本发明通过将边缘机节点的地址信息加入到生成的种子文件中,由边缘机信息直接根据所述地址信息与其它边缘机节点和源数据服务器进行数据交换,无需传统的Tracker服务器进行信息同步,既支持大数据的传输,又克服了现有技术中数据下载速度慢、扩展性差的缺点。
[0109]需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
[0110]图6示出了本发明提出的一种数据分发装置的结构示意图。如图5所示,该装置包括:
[0111]数据上传模块601,其将数据上传至源数据服务器;
[0112]种子生成模块602,其获取边缘服务器信息,并根据源数据服务器存储的所述数据和所述边缘服务器信息生成种子文件,所述种子文件中包括源数据服务器和所有边缘服务器的地址信息;
[0113]种子分发模块603,其将所述种子文件发送给种子服务器;
[0114]数据获取模块604,其从所述种子服务器获取种子文件,并根据其中的地址信息从所述源数据服务器和/或所述边缘服务器获取所述数据并存储于边缘服务器。
[0115]数据提供商或者数据拥有者通过数据上传模块501将数据上传至源数据服务器。顾名思义,源数据服务器就是用来存储源数据的,其接收特定数据提供商或者数据拥有者的数据,并将其存储在数据存储器中,为网络中的其它边缘机提供数据下载功能。
[0116]为了将数据分发给其它边缘机节点,种子生成模块502获取其所在网络中所有边缘机节点的地址信息。由于CDN网络中节点是固定的,因此本发明中预先将CDN网络中的节点信息如源数据服务器、边缘机节点的地址信息等存储在地址信息数据存储器中。所述地址信息包括源数据服务器、所有边缘机节点的IP地址列表。
[0117]种子生成模块502在获取了所有边缘机节点的地址信息后,根据其存储的要分发的数据和所述边缘机节点信息生成种子文件,所述种子文件中包括源数据服务器和所有边缘机节点的地址信息。
[0118]种子生成模块503用于将种子生成模块502生成的种子文件发送给种子服务器。所谓种子服务器就是用于存储各种种子文件,并向网络中的各个节点提供数据下载的种子文件。网络中的节点在下载数据前需要获取对应该数据的种子文件,并从种子文件中解析获得所述数据的下载地址、保存位置等信息。实际上,种子服务器就是提供数据下载链接的服务器,只不过其是以种子文件形式提供数据的下载链接,BT(BitTorrent)种子就是目前最常见的一种种子文件。
[0119]数据获取模块504从所述种子服务器获取种子文件,并根据其中的地址信息从所述源数据服务器和/或所述边缘服务器获取所述数据,并存储于边缘机节点。
[0120]数据上传模块501将数据传送至源数据服务器后,种子生成模块502根据所述数据以及所有边缘机节点信息生成种子文件,并由种子分发模块503将所述种子文件上传至种子服务器。同时,数据上传模块501通知数据获取模块504有新的数据发布,且通知所述数据对应的种子文件位于种子服务器等信息。数据获取模块504也可以通过定时查看相关信息获知新发布的数据,并从种子服务器获取种子文件。
[0121]数据获取模块504对所获取的种子文件进行解析,获取数据的相关信息,如数据大小、存放位置和地址信息等。本发明的种子文件中地址信息包括所述源数据服务器地址和所有边缘机节点地址。数据获取模块504根据实际情况从所述源数据服务器和/或其他边缘机节点下载所述数据。[0122]数据获取模块504获取种子文件的地址信息后,询问所述地址信息中存储的边缘机节点是否下载有同样的数据,如果其他边缘机节点已经下载完成或者正在下载同样的数据,所述边缘机节点可以选择从所述其他边缘机节点和/或源数据服务器下载所述数据。
[0123]可选地,所述数据获取模块504根据所获取的种子文件的地址信息,优先选择与本边缘机节点位于同一地理区域或同一互联网服务提供商ISP网络的所述源数据服务器和/或所述边缘服务器获取所述数据。
[0124]可选地,数据获取模块504可以通过本地IP数据库或者远程IP数据库查询IP地址对应的地理位置和互联网服务提供商信息。所述本地IP采用本地IP数据库可以缩短解析时间,但不能保证数据的时效性,而采用远程IP数据库可以避免这个缺陷,但需要服务提供商定时更新所述远程IP数据库。因此,可以根据网络的实际情况选择使用上述两种方式之一。以远程IP数据库为例,本发明中远程IP数据库用于维护本网络中源数据服务器和所有边缘机节点的IP地址信息、具体地理位置以及互联网服务提供商等。数据获取模块解析获得源数据服务器和边缘机节点的地址信息后,根据所述远程IP数据库获取对应于所述源数据服务器和边缘机节点IP地址的地理位置信息和互联网服务提供商。根据所述地理位置信息计算本边缘机节点与源数据服务器和其它边缘机节点之间的距离。然后根据所述距离确定所述源数据服务器和其它边缘机节点是否与本边缘机节点位于同一区域。
[0125]可选地,在IP数据库中还可以设置各个互联网服务提供商的优先级,其主要是针对与本边缘机节点相同的互联网服务提供商的源数据服务器和其它边缘机节点数量不够或者距离较远的情况下,跨互联网服务提供商选择时采用的优先策略。例如,数据获取模块504解析获得的源数据服务器和其它边缘机节点均与其不在同一区域、和/或不属于同一互联网服务提供商,或者在同一区域、和/或属于同一互联网服务提供商的源数据服务器和/或其它边缘机节点的数量较少,不能满足交换数据速率要求的情况下,根据所述优先级选择属于不同互联网服务提供商的源数据服务器和/或其它边缘机节点进行数据交换。
[0126]数据获取模块504从源数据服务器和/或其它边缘机节点获得数据并将其存储于边缘机节点后,可以为用户或其它边缘机节点提供数据下载服务,用户可以就近选择边缘机节点下载所需的数据,完成数据的分发任务。
[0127]由于所述装置实施例基本相应于前述图4所示的方法实施例,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此就不赘述了。
[0128]Al、一种数据分发方法,包括:
[0129]将数据上传至源数据服务器;
[0130]所述源数据服务器获取边缘服务器信息,并根据其存储的所述数据和所述边缘服务器信息生成种子文件,所述种子文件中包括源数据服务器和所有边缘服务器的地址信息;
[0131 ] 所述源数据服务器将所述种子文件发送给种子服务器;
[0132]所述边缘服务器从所述种子服务器获取种子文件,并根据其中的地址信息从所述源数据服务器和/或所述边缘服务器获取所述数据。
[0133]A2、如权利要求Al所述的数据分发方法,其还包括:所述源数据服务器从地址信息数据存储器中获取边缘服务器的地址信息,所述地址信息数据存储器中存储有所有边缘服务器的地址信息。[0134]A3、如权利要求Al所述的数据分发方法,其中,所述根据其中的地址信息从所述源数据服务器和/或所述边缘服务器获取所述数据包括:从所述地址信息中优先选择与本边缘服务器位于同一地理区域或同一互联网服务提供商ISP网络的所述源数据服务器和/或所述边缘服务器获取所述数据。
[0135]A4、如权利要求Al所述的数据分发方法,其还包括,所述边缘服务器解析所述种子文件,并获取其中的地址信息。
[0136]A5、如权利要求Al所述的数据分发方法,其中所述地址信息为所述源服务器和所有边缘服务器的IP地址列表。
[0137]A6、如权利要求A1-A5任一项所述的数据分发方法,其中,所述源数据服务器、种子服务器和边缘服务器构成P2P网络。
[0138]A7、如权利要求A6所述的数据分发方法,其用于内容分发网络(CDN)节点的快速部署。
[0139]B8、一种数据分发装置,包括:
[0140]数据上传模块,其将数据上传至源数据服务器;
[0141]种子生成模块,其获取边缘服务器信息,并根据源数据服务器存储的所述数据和所述边缘服务器信息生成种子文件,所述种子文件中包括源数据服务器和所有边缘服务器的地址信息;
[0142]种子分发模块,其将所述种子文件发送给种子服务器;
[0143]数据获取模块,其从所述种子服务器获取种子文件,并根据其中的地址信息从所述源数据服务器和/或所述边缘服务器获取所述数据并存储于边缘服务器。
[0144]B9、如权利要求B8所述的数据分发装置,其还包括:所述种子生成模块从地址信息数据存储器中获取边缘服务器的地址信息,所述地址信息数据存储器中存储有所有边缘服务器的地址信息。
[0145]B10、如权利要求B8所述的数据分发装置,其中,所述数据获取模块从所述地址信息中优先选择与本边缘服务器位于同一地理区域或同一互联网服务提供商ISP网络的所述源数据服务器和/或所述边缘服务器获取所述数据。
[0146]B11、如权利要求B8所述的数据分发装置,其还包括,所述数据获取模块解析所述种子文件,并获取其中的地址信息。
[0147]B12、如权利要求B8所述的数据分发装置,其中,所述地址信息为所述源服务器和所有边缘服务器的IP地址列表。
[0148]B13、如权利要求B8-B12任一项所述的数据分发装置,其中,所述源数据服务器、种子服务器和边缘服务器构成P2P网络。
[0149]B14、如权利要求B13所述的数据分发装置,其用于内容分发网络(⑶N)节点的快
速部署。
[0150]C15、一种数据分发系统,包括:
[0151]源数据服务器,其获取边缘服务器信息,并根据所存储的数据和所述边缘服务器信息生成种子文件,所述种子文件中包括源数据服务器和所有边缘服务器的地址信息;所述数据是预先上传至所述源数据服务器的;
[0152]种子服务器,其从所述源数据服务器获取种子文件;[0153]边缘服务器,其从所述种子服务器获取种子文件,并根据其中的地址信息从所述源数据服务器和/或所述边缘服务器获取所述数据。
[0154]C16、如权利要求C15所述的数据分发系统,其还包括:所述源数据服务器从地址信息数据存储器中获取边缘服务器的地址信息,所述地址信息数据存储器中存储有所有边缘服务器的地址信息。
[0155]C17、如权利要求C15所述的数据分发系统,其中,所述边缘服务器从所述地址信息中优先选择与本边缘服务器位于同一地理区域或同一互联网服务提供商ISP网络的所述源数据服务器和/或所述边缘服务器获取所述数据。
[0156]C18、如权利要求C15所述的数据分发系统,其中,所述边缘服务器解析所述种子文件,并获取其中的地址信息。
[0157]C19、如权利要求C15所述的数据分发系统,其中,所述地址信息为所述源服务器和所有边缘服务器的IP地址列表。
[0158]C20、如权利要求C15-C19任一项所述的数据分发系统,其中,所述源数据服务器、种子服务器和边缘服务器构成P2P网络。
[0159]C21、如权利要求C15所述的数据分发系统,其用于内容分发网络(CDN)节点的快
速部署。
[0160]本发明提出的上述方案可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
[0161]本发明提出的上述方案还可以用于手机客户端等,尤其在目前使用手机客户端上网等用户越来越多,而手机客户端上的操作系统及安全卫士还不健全的情况下,尤其适合执行本发明提出的上述方法和装置。
[0162] 本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0163]最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0164]以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种数据分发方法,包括: 将数据上传至源数据服务器; 所述源数据服务器获取边缘服务器信息,并根据其存储的所述数据和所述边缘服务器信息生成种子文件,所述种子文件中包括源数据服务器和所有边缘服务器的地址信息; 所述源数据服务器将所述种子文件发送给种子服务器; 所述边缘服务器从所述种子服务器获取种子文件,并根据其中的地址信息从所述源数据服务器和/或所述边缘服务器获取所述数据。
2.如权利要求1所述的数据分发方法,其还包括:所述源数据服务器从地址信息数据存储器中获取边缘服务器的地址信息,所述地址信息数据存储器中存储有所有边缘服务器的地址信息。
3.如权利要求1所述的数据分发方法,其中,所述根据其中的地址信息从所述源数据服务器和/或所述边缘服务器获取所述数据包括:从所述地址信息中优先选择与本边缘服务器位于同一地理区域或同一互联网服务提供商ISP网络的所述源数据服务器和/或所述边缘服务器获取所述数据。
4.如权利要求1所述的数据分发方法,其还包括,所述边缘服务器解析所述种子文件,并获取其中的地址信息。
5.如权利要求1所述的数据分发方法,其中所述地址信息为所述源服务器和所有边缘服务器的IP地址列表。
6.如权利要求1-5任一项所述的数据分发方法,其中,所述源数据服务器、种子服务器和边缘服务器构成P2P网络。
7.如权利要求6所述的数据分发方法,其用于内容分发网络(CDN)节点的快速部署。
8.一种数据分发装置,包括: 数据上传模块,其将数据上传至源数据服务器; 种子生成模块,其获取边缘服务器信息,并根据源数据服务器存储的所述数据和所述边缘服务器信息生成种子文件,所述种子文件中包括源数据服务器和所有边缘服务器的地址信息; 种子分发模块,其将所述种子文件发送给种子服务器; 数据获取模块,其从所述种子服务器获取种子文件,并根据其中的地址信息从所述源数据服务器和/或所述边缘服务器获取所述数据并存储于边缘服务器。
9.如权利要求8所述的数据分发装置,其还包括:所述种子生成模块从地址信息数据存储器中获取边缘服务器的地址信息,所述地址信息数据存储器中存储有所有边缘服务器的地址信息。
10.一种数据分发系统,包括: 源数据服务器,其获取边缘服务器信息,并根据所存储的数据和所述边缘服务器信息生成种子文件,所述种子文件中包括源数据服务器和所有边缘服务器的地址信息;所述数据是预先上传至所述源数据服务器的; 种子服务器,其从所述源数据服务器获取种子文件; 边缘服务器,其从所述种子服务器获取种子文件,并根据其中的地址信息从所述源数据服务器和/或所述边缘服务器获取所述数据。
【文档编号】H04L29/06GK103685511SQ201310683654
【公开日】2014年3月26日 申请日期:2013年12月13日 优先权日:2013年12月13日
【发明者】廖子谦 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1