对等通信网络及其分发数据内容的方法、通信节点的制作方法

文档序号:7961040阅读:282来源:国知局
专利名称:对等通信网络及其分发数据内容的方法、通信节点的制作方法
技术领域
本发明涉及一种通信技术领域,尤其涉及一种对等通信网络分发数据内容的方法、装置及对等通信网络。
背景技术
现有的WEB系统中,应用的数据一般存储在服务器的数据库中。用户访问WEB系统时,有WEB应用程序向服务器查询数据路获取数据并生成页面,通过HTTP (HTTP, HyperText Transfer Protocol,超文本传输协议)传输到客户端的浏览器中进行展示。如果数据更新频繁,用这种方式展示数据,服务器要经常生成页面,并且每次响应用户的访问都要传输页面到客户端的浏览器,如此一来消耗了大量服务器的CPU资源和传输带宽资源。现有还存在一种AJAX技术,参见图1,现有的AJAX技术对页面生成方式进行了优化,它通过HTTP协议传输XML表单的方式实现服务器和浏览器客户端之间的数据交互,其主要有两个特点:
其一,服务器将数据传输到浏览器客户端,由浏览器生成页面,节省了服务器的CPU资源。具体的,用户访问数据的时候,浏览器客户端使用AJAX控件请求服务器的数据,服务器从数据库中查询数据,生成XML表单,通过HTTP协议传输到浏览器客户端,浏览器客户端解析XML表单中的数据并生成页面。其二,实现了服务器主动向浏览器推送数据。具体的,有两种推送数据的方式:长连接和轮询。长连接方式是浏览器客户端通过AJAX空间向服务器发起请求,如果服务器当前没有数据要推送,则不给浏览器发送响应,一直处于等待状态;一旦有数据需要推送时,服务器根据数据生成响应发送给浏览器。这种长连接方式,服务器需要为每一个客户端保持一个未完成响应的连接,当访问服务器的客户端很多时,服务器将消耗大量的连接。轮询方式是浏览器客户端周期性地通过AJAX空间向服务器发起请求,服务器受到请求后立即响应数据。如果服务器当时没有数据,则返回空响应;这种轮询方式下,如果使用的时间间隔较小,则服务器需要频繁地处理客户端发起的请求,其CPU和带宽资源消耗过大,如果时间间隔较大,又不能及时地推送数据给客户端。由上述可知,现有技术存在以下缺点:
浏览器客户端与浏览器客户端之间不能直接通信,只能通过服务器转发数据,对服务器的CPU和带宽资源的消耗非常大;
服务器只是应客户端的请求而响应数据,不能及时的将数据推送到浏览器客户端。

发明内容
本发明针对现有技术的不足,提供一种对等通信网络分发数据内容的方法、一种通信节点以及一种对等通信网络,可以实现通信节点与通信节点之间的对等通信,有效降低对服务器CPU和带宽资源的消耗,可以及时地将数据内容在通信节点之间进行推送。
本本发明提供的一种对等通信网络分发数据内容的方法,包括:
在参与对等通信的每个通信节点上分别创建本地数据表;所述本地数据表用于记录该通信节点已经向服务器或其他通信节点获取的数据内容所述本地数据表用于记录该通信节点已经向服务器或其他通信节点获取的数据内容,以及在本通信节点上所作的变更操作;
不同通信节点上创建的本地数据表之间自动同步数据内容。其中,所述本地数据表中记录的数据内容包括数据和文件的属性信息。其中,所述本地数据表中记录的数据内容为数据时,所述不同通信节点上创建的本地数据表之间自动同步数据内容,包括:
当通信节点向服务器发起对数据内容的进行查询操作时,首先在该通信节点创建的本地数据表上进行查询;
当本地数据表中未存储有该通信节点请求查询的数据内容时,则该通信节点向其他参与对等通信的通信节点请求同步数据内容;
对一通信节点上创建的本地数据表进行变更操作时,将该本地数据表的数据变更结果同步到其他参与对等通信的通信节点上创建的本地数据表中;
将所述数据变更结果和/或查询结果上报给上层应用程序。其中,所述对一通信节点上创建的本地数据表进行变更操作时,将该本地数据表的数据变更结果同步到其他参与对等通信的通信节点上创建的本地数据表中,包括:
当一通信节点上创建的本地数据表中的数据变更时,生成一个数据变更标识;
通过组播公告消息,将所述数据变更标识通知给其他参与对等通信的通信节点;当其他通信节点收到所述组播公告消息后,判断该组播公告消息中携带的数据变更标识对应的变更数据内容是否比其本地数据表中记录的数据新,若是,则从其他参与对等通信的通信节点请求获取新的数据变更内容并存储;
获取到的数据变更内容的通信节点通过组播公告消息,将获取到的数据变更内容对应的数据变更标识通知给其他参与对等通信的通信节点。其中,所述本地数据表中记录的数据内容为文件的属性信息时,所述方法还包括:
在所述参与对等通信的通信节点上创建文件缓冲区;
在所述本地数据表上添加文件的属性信息的同时,在所述文件缓冲区中创建或复制该文件的副本。其中,所述不同通信节点上创建的本地数据表之间自动同步数据内容,包括:
在一个通信节点上的本地数据表中添加或修改文件的属性信息后,该通信节点检查该文件的属性信息与文件缓冲区中的文件副本的文件属性信息是否一致;
如果不一致,则从其他参与对等通信的通信节点的文件缓冲区请求获取该文件的属性信息对应的文件并存储在其文件缓冲区中;
所述通信节点在同步了文件后,将本地数据表中的文件状态字段修改为“已同步”并通知给其他参与对等通信的通信节点。本发明实施例还提供一种通信节点,包括:
创建模块,用于在本通信节点上创建本地数据表; 数据表存储模块,用于存储所述创建模块在本通信节点上创建的本地数据表;所述本地数据表用于记录该通信节点已经向服务器或其他通信节点获取的数据内容,以及在本通信节点上所作的变更操作;
同步模块,用于与其他参与对等通信的通信节点上创建的本地数据表之间自动同步数据内容。其中,所述存储模块中存储的本地数据表中记录的数据内容包括数据和文件的属性信息。其中,所述通信节点还包括:
文件存储模块,用于存储缓冲的文件。其中,所述同步模块包括:
数据同步单元,用于向其他参与对等通信的通信节点请求同步数据内容;或用于将该本地数据表的数据变更结果同步到其他参与对等通信的通信节点上创建的本地数据表中;
文件同步单元,用于向参与对等通信的通信节点的文件缓冲区请求获取该文件的属性信息对应的文件并存储在其文件缓冲区中;或用于将该本地数据表的文件同步结果同步到其他参与对等通信的通信节点上创建的本地数据表中。本发明还提供一种对等通信网络,该对等通信网络包括多个通信节点。实施本发明提供的对等通信网络分发数据内容的方法、一种通信节点和对等通信网络,可以实现通信节点与通信节点之间的对等通信,有效降低对服务器CPU和带宽资源的消耗,可以及时地将数据内容在通信节点之间进行推送。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是现有的AJAX技术实现服务器和浏览器客户端之间的数据交互的示意图; 图2是本发明提供的一种对等通信网络分发数据内容的方法实施例一的流程示意图; 图3是本发明提供的一种对等通信网络分发数据内容的方法实施例二的流程示意图; 图4是本发明提供的一种对等通信网络分发数据内容的方法实施例三的流程示意图; 图5是在通信节点上创建数据表实现同步数据的示意 图6是本发明提供的对等通信网络分发数据内容的方法实施例四的流程示意 图7是本发明提供的对等通信网络分发数据内容的方法实施例五的流程示意 图8是在通信节点上创建数据表实现同步文件的示意 图9是本发明提供的一种通信节点实施例一的结构示意 图10是本发明提供的一种通信节点实施例二的结构示意 图11是有本发明提供的对等通信网络的结构示意图。
具体实施例方式本发明提供一种对等网络分发数据的方法和通信节点、对等通信网络。该通信节点应用于WEB应用时,其具体实现方式是浏览器客户端。本发明允许浏览器客户端与浏览器客户端之间、浏览器客户端与服务器之间的对等分发数据。当大量浏览器客户端访问服务器时,服务器只需要把数据推送到少量的几个浏览器客户端,获取到数据的浏览器客户端再把数据推送到其它还没有获取到数据的浏览器客户端。以此类推,直到所有访问的浏览器客户端都获取到完整的数据。浏览器客户端之间还可以进行文件传输,获取到文件的浏览器客户端可以把文件推送到其它还没有同步文件的浏览器客户端。以此类推,直到所有浏览器客户端都同步到其需要的文件。当有数据或文件只需要在浏览器客户端之间传输时,可以直接在浏览器之间对等分发,不需要经过服务器转发。以下就将详细介绍本发明提供的对等通信网络分发数据的方法和实现该方法的通信节点的具体组成。参见图2,为本发明提供的对等通信网络分发数据内容的方法实施例一的流程示意图。本实施例提供的方法,包括:
步骤100,在参与对等通信的每个通信节点上分别创建本地数据表;所述本地数据表用于记录该通信节点已经向服务器或其他通信节点获取的数据内容,以及在本通信节点上所作的变更操作;
步骤101,不同通信节点上创建的本地数据表之间自动同步数据内容。具体地,不同的通信节点上因为都创建了本地数据表,因此通过该本地数据表,可以实现对等通信,将本地数据表中记录的数据和文件的属性信息共享同步,以在不同的通信节点之间实现数据内容的同步。实施例一提供的对等通信网络分发数据的方法,可以实现通信节点与通信节点之间的对等通信,有效降低对服务器CPU和带宽资源的消耗,可以及时地将数据内容在通信节点之间进行推送。需要说明的是,本发明所述的通信节点,在应用于WEB应用时,该通信节点具体为浏览器客户端。在该通信节点上创建的本地数据表可以用于记录数据以及文件的属性信息,以便实现浏览器客户端与浏览器客户端,或者浏览器客户端与服务器之间的数据和文件传输。在本发明实施例中,服务器也可以看成是一个通信节点,其与浏览器客户端之间实现对等通/[目。参见图3,为本发明提供的对等通信网络分发数据内容的方法实施例二的流程示意图。本实施例二中将说明,本发明提供的对等通信网络分发数据内容的方法在应用于分发数据的时候的具体实现过程。具体包括:
步骤200,在参与对等通信的每个通信节点上分别创建本地数据表;所述本地数据表用于记录该通信节点已经向服务器或其他通信节点获取的数据,以及在本通信节点上所作的变更操作;
具体地,参与对等通信的每一个通信节点都在内存(或磁盘等本地存储介质)里创建一个本地数据表。该本地数据表的结构与通常的数据库系统中的数据表类似,数据在本地数据表中按记录存储,有多个字段表示不同属性的数据,应用程序可以通过编程接口对数据表中的记录的数据进行变更操作,该变更操作包括查询、插入、修改、删除等操作,本地数据表会记录应用程序在通信节点上所作的包括查询、插入、修改、删除等在内的变更操作。步骤201,当通信节点向服务器发起对数据的进行查询操作时,首先在该通信节点创建的本地数据表上进行查询;
步骤202,当本地数据表中未存储有该通信节点请求查询的数据时,则该通信节点向其他参与对等通信的通信节点请求同步数据;
步骤203,对通信节点上创建的本地数据表进行插入、修改、删除操作时,将该本地数据表的数据变更结果同步到其他参与对等通信的通信节点上创建的本地数据表中;
步骤204,将所述数据变更结果和/或查询结果上报给上层应用程序。参见图4,为本发明实施例提供的对等通信网络分发数据内容的方法实施例三的流程示意图。本实施例三中,将描述对一通信节点上创建的本地数据表进行插入、修改、删除操作时,将该本地数据表的数据变更结果同步到其他参与对等通信的通信节点上创建的本地数据表中的具体过程,包括:
步骤300,当一通信节点上创建的本地数据表中的数据变更时,生成一个数据变更标
识;
具体地,该数据变更标识包含变更的记录号、字段和时间序列等信息,或其它表示数据变更的信息。其中时间序列可以是序列号、时戳,或其他能表示时间顺序的信息。步骤301,通过组播公告消息,将所述数据变更标识通知给其他参与对等通信的通信节点。步骤302,当其他通信节点收到所述组播公告消息后,判断该组播公告消息中携带的数据变更标识对应的变更数据内容是否为比其本地数据表中记录的数据新,若是转入步骤 303 ;
具体地,其它通信节点接收到组播公告消息后,将其中携带的数据变更标识中的时间序列与本地已经同步的数据变更标识中的时间序列比较。如果公告消息中的时间序列更新,说明已经有新的数据变更内容,则该通信节点从其他通信节点请求获取新的数据变更内容。步骤303,通信节点从其他参与对等通信的通信节点请求获取最新的数据变更内各并存储;
具体地,一个通信节点在上一次从其他通信节点获取数据变更内容后,对其获取的次数进行统计并记录。以便在又一次请求获取数据变更内容时,选择负荷最小(也就是以往访问次数最少)的通信节点进行请求。如果被请求通信节点返回所请求的数据变更内容不存在,则从余下的其他通信节点中选择负荷最小的通信节点重新发起请求。以此类推,直到成功获取数据变更内容。步骤304,获取到的数据变更内容的通信节点通过组播公告消息,将获取到的数据变更内容对应的数据变更标识通知给其他参与对等通信的通信节点。具体地,一个通信节点获取到一个新的数据变更内容后,立即向其他通信节点发送组播公告消息,其中携带数据变更标识,以便其他未获取到新的数据变更内容的通信节点,可以从该通信节点获取新的数据变更内容,实现数据变更内容的对等分发。并且,通信节点获取到新的数据变更内容后,会存储到本地数据表里,并上报变更通知给上层应用程序。下面将以实际的例子说明实施例二和实施例三提供的对等通信网络数据分发的方法的实现过程。参见图5,是在通信节点上创建数据表实现同步数据的示意图。图5中,在通信节点I和通信节点2以及通信节点3上都创建了本地数据表,当一个通过通信节点I (即浏览器客户端)发了一个贴子时,通信节点I的本地数据表会记录该帖子相关的数据,具体由多个字段表示该帖子的不同属性的数据,应用程序可以通过编程接口对数据表中的记录进行查询、插入、修改、删除等操作。当通信节点2或3访问该帖子时,也会在其本地数据表中记录该帖子的相关数据。通信节点I对该帖子的内容进行查询时,直接在该通信节点I的本地数据表中查询,而不是向服务器查询。通信节点2和通信节点3查询数据也是如此。如此一来,减少了服务器的CPU消耗和带宽资源的消耗。在其中一个通信节点,例如通信节点I上对帖子进行插入、修改和删除时,通信节点I的本地数据表中的字段会发生相应的变更,该数据变更会通过通信交互同步到通信节点2或通信节点3的本地数据表中,并上报给应用程序。数据变更的同步过程如下:
当在通信节点I上对其发布的帖子对应的本地数据表进行一次插入、修改和删除时,会生成一个数据变更标识。该数据变更标识包含变更的记录号、字段和时间序列等信息,或其它表示数据变更的信息。其中时间序列可以是序列号、时戳,或其他能表示时间顺序的信肩、O数据变更标识生成后,该通信节点I通过组播公告消息,将数据变更标识组播给通信节点2和通信节点3。通信节点2和通信节点3接收到数据变更标识,将数据变更标识中的时间序列与本地已经同步的数据变更标识中的时间序列比较。如果数据表更标识中的时间序列更新,说明已经有新的数据变更内容,则通信节点2和通信节点3节点从通信节点I请求获取新的数据变更内容,也即对通信节点I发布的帖子的修改、删除、插入等操作的内容。通信节点2或通信节点3获取到一个新的数据变更内容后,立即向其他通信节点发送组播公告消息。以便其他未获取到新的数据变更内容的通信节点,可以从通信节点2或通信节点3获取新的数据变更内容,实现数据变更的对等分发。通信节点2或通信节点3获取到新的数据变更内容后,存储到本地数据表里,则通信节点2和通信节点3的帖子内容则是最新的帖子内容,通信节点2和通信节点3还上报变更通知给上层应用程序。这样一来,通信节点2和通信节点3不需要向服务器请求,就可以自动获得在通信节点I上发布的最新帖子的内容。实施本发明提供的对等通信网络分发数据内容的方法实施例二和实施例三,当大量通信节点(也即,浏览器客户端)访问服务器时,服务器只需要把数据推送到少量的几个通信节点,获取到数据的通信节点再把数据推送到其它还没有获取到数据的通信节点。以此类推,直到所有访问的通信节点都获取到完整的数据。当有数据只需要在浏览器客户端之间传输时,可以直接在浏览器之间对等分发,不需要经过服务器转发。大大节约了服务器的CPU和带宽资源,实现了快速的数据推送。参见图6,为本发明提供的对等通信网络分发数据内容的方法实施例四的流程示意图。本实施例四中将说明,本发明提供的对等通信网络分发数据内容的方法在应用于分发文件的时候的具体实现过程。具体包括:
步骤400,在参与对等通信的每个通信节点上分别创建本地数据表;所述本地数据表用于记录该通信节点已经向服务器或其他通信节点获取的文件的属性信息,以及在本通信节点上对文件所作的变更操作;。具体地,参与对等通信的每一个通信节点都在内存(或磁盘等本地存储介质)里创建一个本地数据表。该本地数据表的结构与通常的数据库系统中的数据表类似,每条记录存储一个文件的属性信息。包括:文件名、文件的存储路径、文件长度、文件摘要、文件更新日期、文件同步状态等属性,每一个属性都分别存储在数据表记录的一个字段里。步骤401,在所述参与对等通信的通信节点上创建文件缓冲区;
步骤402,在所述本地数据表上添加文件的属性信息的同时,在所述文件缓冲区中创建或复制该文件的副本。步骤403,在一个通信节点上的本地数据表中添加或修改文件的属性信息后,该通信节点检查该文件的属性信息与文件缓冲区中的文件副本的文件属性信息是否一致;
步骤404,如果不一致,则从其他参与对等通信的通信节点的文件缓冲区请求获取该文件的属性信息对应的文件并存储在其文件缓冲区中;
步骤405,所述通信节点在同步了文件后,将本地数据表中的文件状态字段修改为“已同步”并通知给其他参与对等通信的通信节点,以方便其它通信节点向其获取文件。参见图7,为本发明提供的对等通信网络分发数据内容的方法实施例五的流程示意图。图8是在通信节点上创建数据表实现同步文件的示意图。本实施例五将结合图7和图8进一步说明本发明提供的对等通信网络分发数据内容的方法在应用于分发文件的时候的具体实现过程。具体包括:
步骤500,在通信节点上创建本地数据表;
具体的,如图8所示,在通信节点I和通信节点2以及通信节点3上创建本地数据表,该本地数据表在设置为文件传输模式,每条记录存储一个文件的属性信息。包括:文件名、文件的存储路径、文件长度、文件摘要、文件更新日期、文件同步状态等属性,每一个属性都分别存储在数据表记录的一个字段里。步骤501,在通信节点上创建一个文件缓冲区,用缓存同步的文件。具体的,如图8所示,在通信节点I和通信节点2以及通信节点3上创建文件缓冲区。当通信节点I把一个文件的属性信息添加到其本地数据表的同时,也在该通信节点I的文件缓冲区中创建或复制该文件的副本。通信节点2或通信节点3同理。
步骤502,通信节点上的某个文件属性信息在其本地数据表中添加或修改后,该本地数据表记录的文件状态字段置为“未同步”状态;
步骤503,该通信节点检查该文件属性信息与文件缓冲区中的文件副本的文件属性(文件摘要和文件长度)是否一致。如果不一致,转入步骤504,如果一致,转入步骤506 ;
举例来讲,当通信节点I上的某个文件属性信息在其本地数据表中添加或修改后,该本地数据表记录的文件状态字段置为“未同步”状态,然后该通信节点I检查该文件属性信息与文件缓冲区中的文件副本的文件属性(文件摘要和文件长度)是否一致。步骤504,通信节点其他通信节点请求获取该文件。例如,通信节点I向通信节点2或通信节点3请求获取该文件。步骤505,通信节点将从其他通信节点获取传输文件存储到文件缓冲区中。例如,通信节点I向通信节点2获取到了传输文件,并存储到其文件缓冲区中,将将缓冲区中文件的属性(文件摘要和文件长度)与其本地数据表记录中的文件属性(文件摘要和文件长度)比较。如果一致,则文件同步成功,相应的数据表记录里的文件状态字段修改为“已同步”状态。如果不一致,则重新发起获取文件请求,直至成功同步。步骤506,通信节点将其本地数据表中记录中的文件状态字段修改为“已同步”状态。例如,通信节点I将其本地数据表中记录中的文件状态字段修改为“已同步”状态;
通信节点逐个对本地数据表中文件状态为“未同步”的记录进行文件获取操作同步,直到本地数据表中所有的记录的文件状态都为“已同步”。例如,通信节点I逐个对本地数据表中文件状态为“未同步”的记录进行文件获取操作同步,直到本地数据表中所有的记录的文件状态都为“已同步”。实施本发明实施例四和实施例五,当大量通信节点(也即,浏览器客户端)向服务器请求下载文件时,服务器只需要把文件推送到少量的几个通信节点,同步到文件的通信节点可以把文件推送到其它还没有同步数据或文件的浏览器客户端。以此类推,直到所有通信节点都同步到其需要的数据或文件。当数据或文件只需要在浏览器客户端之间传输时,可以直接在浏览器之间对等分发,不需要经过服务器转发。参见图9,为本发明提供的通信节点实施例一的组成示意图。本实施例提供的通信节点,包括:
创建模块10,用于在本通信节点上创建本地数据表;
数据表存储模块11,用于存储所述创建模块10在本通信节点上创建的本地数据表;所述本地数据表用于记录该通信节点已经向服务器或其他通信节点获取的数据内容,以及在本通信节点上所作的变更操作;
同步模块12,用于与其他参与对等通信的通信节点上创建的本地数据表之间自动同步数据内容。具体地,不同的通信节点上因为都创建了本地数据表,因此通过该本地数据表,可以实现对等通信,将本地数据表中记录的数据和文件的属性信息共享同步,以在不同的通信节点之间实现数据内容的同步。实施例一提供的通信节点,可以实现通信节点与通信节点之间的对等通信,有效降低对服务器CPU和带宽资源的消耗,可以及时地将数据内容在通信节点之间进行推送。需要说明的是,本发明提供的通信节点,在应用于WEB应用时,该通信节点具体为浏览器客户端。在该通信节点上创建的本地数据表可以用于记录数据以及文件的属性信息,以便实现浏览器客户端与浏览器客户端,或者浏览器客户端与服务器之间的数据和文件传输。在本发明实施例中,服务器也可以看成是一个通信节点,其与浏览器客户端之间实现对等通/[目。参见图10,为本发明提供的通信节点实施例二的组成示意图。本实施例二提供的通信节点,其既可以实现与其他通信节点之间的数据交互,也可以实现文件同步,其包括:创建模块10,数据表存储模块11,同步模块12其中,所述存储模块11中存储的本地数据表中记录的数据内容包括数据和文件的属性信息;
此外,所述通信节点还包括:
文件存储模块13,用于存储缓冲的文件。其中,所述同步模块12具体包括:
数据同步单元120,用于向其他参与对等通信的通信节点请求同步数据内容;或用于将该本地数据表的数据变更结果同步到其他参与对等通信的通信节点上创建的本地数据表中;
文件同步单元121,用于向参与对等通信的通信节点的文件缓冲区请求获取该文件的属性信息对应的文件并存储在其文件缓冲区中;或用于将该本地数据表的文件同步结果同步到其他参与对等通信的通信节点上创建的本地数据表中。
实施本发明提供的通信节点实施例二,当通信节点(也即,浏览器客户端)向服务器请求数据或请求下载文件时,服务器只需要把数据文件推送到少量的几个通信节点,同步数据或文件的通信节点可以把数据或文件推送到其它还没有同步数据或文件的通信节点。以此类推,直到所有通信节点都同步到其需要的数据或文件。当数据或文件只需要在浏览器客户端之间传输时,可以直接在通信节点之间对等分发,不需要经过服务器转发。参见图11,图11为本发明提供的对等通信网络的结构示意图。该对等通信网络中至少包括有通信节点1、通信节点2、通信节点3,其还包括服务器4 ;此时,服务器与通信节点1、2、3之间可以对等通信。下面将结合图5,描述该对等通信网络中的各个通信节点之间同步数据的具体过程。结合图5可知,在参与对等通信的通信节点1、通信节点2、通信节点3上分别创建本地数据表;
所述本地数据表用于记录该通信节点I或2或3已经向服务器4或其他通信节点获取的数据,以及在本通信节点上所作的变更操作;
具体地,参与对等通信的每一个通信节点I或2或3都在内存(或磁盘等本地存储介质)里创建一个本地数据表。该本地数据表的结构与通常的数据库系统中的数据表类似,数据在本地数据表中按记录存储,有多个字段表示不同属性的数据,应用程序可以通过编程接口对数据表中的记录的数据进行变更操作,该变更操作包括查询、插入、修改、删除等操作,本地数据表会记录应用程序在通信节点上所作的包括查询、插入、修改、删除等在内的变更操作。当通信节点向服务器4发起对数据的进行查询操作时,首先在该通信节点创建的本地数据表上进行查询;例如,将通信节点I向服务器4查询数据时,首先在其本地的数据表上进行查询,当本地数据表中未存储有通信节点I请求查询的数据时,则该通信节点I向其他参与对等通信的通信节点2或3请求同步数据;
当一通信节点上创建的本地数据表中的数据变更时,生成一个数据变更标识;
举例来讲,当通信节点I上创建的本地数据表中的数据变更时,生成一个数据变更标识;该数据变更标识包含变更的记录号、字段和时间序列等信息,或其它表示数据变更的信息。其中时间序列可以是序列号、时戳,或其他能表示时间顺序的信息。通信节点I通过组播公告消息,将所述数据变更标识通知给其他参与对等通信的通信节点2好通信节点3。当通信节点2或3收到所述组播公告消息后,判断该组播公告消息中携带的数据变更标识对应的变更数据内容是否为最新的。具体地,通信节点2或通信节点3,将其中携带的数据变更标识中的时间序列与本地已经同步的数据变更标识中的时间序列比较。如果公告消息中的时间序列更新,说明已经有新的数据变更内容,则该通信节点2或3从其他通信节点例如通信节点I请求获取新的数据变更内容。通信节点2或3从通信节点I请求获取最新的数据变更内容并存储;
具体地,通信节点2或3在上一次通信节点I获取数据变更内容后,对其获取的次数进行统计并记录。以便在又一次请求获取数据变更内容时,选择负荷最小(也就是以往访问次数最少)的通信节点进行请求。如果被请求通信节点返回所请求的数据变更内容不存在,则从余下的其他通信节点中选择负荷最小的通信节点重新发起请求。以此类推,直到成功获取数据变更内容。获取到的数据变更内容的通信节点2或3通过组播公告消息,将获取到的数据变更内容对应的数据变更标识通知给其他参与对等通信的通信节点。通信节点2或3获取到新的数据变更内容后,会存储到本地数据表里,并上报变更通知给上层应用程序。实施本发明提供的对等通信网络,当大量通信节点(也即,浏览器客户端)访问服务器时,服务器只需要把数据推送到少量的几个通信节点,获取到数据的通信节点再把数据推送到其它还没有获取到数据的通信节点。以此类推,直到所有访问的通信节点都获取到完整的数据。当有数据只需要在浏览器客户端之间传输时,可以直接在浏览器之间对等分发,不需要经过服务器转发。大大节约了服务器的CPU和带宽资源,实现了快速的数据推送。本发明提供的对等通信网络还可以应用于分发文件,以下将结合图11和8描述其具体实现过程。具体包括:
在通信节点I或通信节点2或通信节点3上创建本地数据表;
具体的,如图8所示,在通信节点I和通信节点2以及通信节点3上创建本地数据表,该本地数据表在设置为文件传输模式,每条记录存储一个文件的属性信息。包括:文件名、文件的存储路径、文件长度、文件摘要、文件更新日期、文件同步状态等属性,每一个属性都分别存储在数据表记录的一个字段里。
在通信节点I或通信节点2或通信节点3上创建一个文件缓冲区,用缓存同步的文件。具体的,如图8所示,在通信节点I和通信节点2以及通信节点3上创建文件缓冲区。当通信节点I把一个文件的属性信息添加到其本地数据表的同时,也在该通信节点I的文件缓冲区中创建或复制该文件的副本。通信节点2或通信节点3同理。当通信节点I上的某个文件属性信息在其本地数据表中添加或修改后,该本地数据表记录的文件状态字段置为“未同步”状态,然后该通信节点I检查该文件属性信息与文件缓冲区中的文件副本的文件属性(文件摘要和文件长度)是否一致。如果不一致,通信节点I向通信节点2或通信节点3请求获取该文件。涂过一致,通信节点I将其本地数据表中记录中的文件状态字段修改为“已同步”状态。在通信节点I向通信节点2获取到了传输文件,并存储到其文件缓冲区中,将将缓冲区中文件的属性(文件摘要和文件长度)与其本地数据表记录中的文件属性(文件摘要和文件长度)比较。如果一致,则文件同步成功,相应的数据表记录里的文件状态字段修改为“已同步”状态。如果不一致,则重新发起获取文件请求,直至成功同步。通信节点I逐个对本地数据表中文件状态为“未同步”的记录进行文件获取操作同步,直到本地数据表中所有的记录的文件状态都为“已同步”。实施本发明提供的对等通信网络,当大量通信节点(也即,浏览器客户端)向服务器请求下载文件时,服务器只需要把文件推送到少量的几个通信节点,同步到文件的通信节点可以把文件推送到其它还没有同步数据或文件的浏览器客户端。以此类推,直到所有通信节点都同步到其需要的数据或文件。当数据或文件只需要在浏览器客户端之间传输时,可以直接在浏览器之间对等分发,不需要经过服务器转发。以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
权利要求
1.一种对等通信网络分发数据内容的方法,其特征在于,包括: 在参与对等通信的每个通信节点上分别创建本地数据表;所述本地数据表用于记录该通信节点已经向服务器或其他通信节点获取的数据内容,以及在本通信节点上所作的变更操作; 不同通信节点上创建的本地数据表之间自动同步数据内容。
2.按权利要求1所述的对等通信网络分发数据内容的方法,其特征在于,所述本地数据表中记录的数据内容包括数据和文件的属性信息。
3.按权利要求2所述的对等通信网络分发数据内容的方法,其特征在于,所述本地数据表中记录的数据内容为数据时,所述不同通信节点上创建的本地数据表之间自动同步数据内容,包括: 当通信节点向服务器发起对数据的进行查询操作时,首先在该通信节点创建的本地数据表上进行查询; 当本地数据表中未存储有该通信节点请求查询的数据时,则该通信节点向其他参与对等通信的通信节点请求同步数据; 对通信节点上创建的本地数据表进行变更操作时,将该本地数据表的数据变更结果同步到其他参与对等通信的通信节点上创建的本地数据表中; 将所述数据变更结果和/或查询结果上报给上层应用程序。
4.按权利要求3所述的对等 通信网络分发数据雷同的方法,其特征在于,所述对一通信节点上创建的本地数据表进 行变更操作时,将该本地数据表的数据变更结果同步到其他参与对等通信的通信节点上创建的本地数据表中,包括: 当一通信节点上创建的本地数据表中的数据变更时,生成一个数据变更标识; 通过组播公告消息,将所述数据变更标识通知给其他参与对等通信的通信节点;当其他通信节点收到所述组播公告消息后,判断该组播公告消息中携带的数据变更标识对应的变更数据内容是否比其本地数据表中记录的数据新,若是,则从其他参与对等通信的通信节点请求获取新的数据变更内容并存储; 获取到的数据变更内容的通信节点通过组播公告消息,将获取到的数据变更内容对应的数据变更标识通知给其他参与对等通信的通信节点。
5.按权利要求2所述的对等通信网络分发数据内容的方法,其特征在于,所述本地数据表中记录的数据内容为文件的属性信息时,所述方法还包括: 在所述参与对等通信的通信节点上创建文件缓冲区; 在所述本地数据表上添加文件的属性信息的同时,在所述文件缓冲区中创建或复制该文件的副本。
6.按权利要求5所述的对等通信网络分发数据内容的方法,其特征在于,所述不同通信节点上创建的本地数据表之间自动同步数据内容,包括: 在一个通信节点上的本地数据表中添加或修改文件的属性信息后,该通信节点检查该文件的属性信息与文件缓冲区中的文件副本的文件属性信息是否一致; 如果不一致,则从其他参与对等通信的通信节点的文件缓冲区请求获取该文件的属性信息对应的文件并存储在其文件缓冲区中; 所述通信节点在同步了文件后,将本地数据表中的文件状态字段修改为“已同步”并通知给其他参与对等通信的通信节点。
7.一种通信节点,其特征在于,包括: 创建模块,用于在本通信节点上创建本地数据表; 数据表存储模块,用于存储所述创建模块在本通信节点上创建的本地数据表;所述本地数据表用于记录该通信节点已经向服务器或其他通信节点获取的数据内容,以及在本通信节点上所作的变更操作; 同步模块,用于与其他参与对等通信的通信节点上创建的本地数据表之间自动同步数据内容。
8.按权利要求7所述的通信节点,其特征在于,所述存储模块中存储的本地数据表中记录的数据内容包括数据和文件的属性信息; 所述通信节点还包括: 文件存储模块,用于存储缓冲的文件。
9.按权利要求8所述的通信节点,其特征在于,所述同步模块包括: 数据同步单元,用于向其他参与对等通信的通信节点请求同步数据内容;或用于将该本地数据表的数据变更结果同步到其他参与对等通信的通信节点上创建的本地数据表中; 文件同步单元,用于向参与对等通信的通信节点的文件缓冲区请求获取该文件的属性信息对应的文件并存储在其文件缓冲区中;或用于将该本地数据表的文件同步结果同步到其他参与对等通信的通信节点上创建的本地数据表中。
10.一种对等通信网络,其特征在于, 其包括多个权利要求7至9中任一项所述的通信节点。
全文摘要
本发明提供一种对等通信网络及其分发数据内容的方法,通信节点。该对等通信网络分发数据内容的方法,包括在参与对等通信的每个通信节点上分别创建本地数据表,以及在本通信节点上所作的变更操作;不同通信节点上创建的本地数据表之间自动同步数据内容。实施本发明提供的对等通信网络分发数据内容的方法、一种通信节点和对等通信网络,可以实现通信节点与通信节点之间的对等通信,有效降低对服务器CPU和带宽资源的消耗,可以及时地将数据内容在通信节点之间进行推送。
文档编号H04L29/08GK103095765SQ201110342908
公开日2013年5月8日 申请日期2011年11月3日 优先权日2011年11月3日
发明者陈璧超 申请人:陈璧超
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1