CN101252601A - 覆盖网络***和服务提供方法 - Google Patents
覆盖网络***和服务提供方法 Download PDFInfo
- Publication number
- CN101252601A CN101252601A CNA2008100740867A CN200810074086A CN101252601A CN 101252601 A CN101252601 A CN 101252601A CN A2008100740867 A CNA2008100740867 A CN A2008100740867A CN 200810074086 A CN200810074086 A CN 200810074086A CN 101252601 A CN101252601 A CN 101252601A
- Authority
- CN
- China
- Prior art keywords
- node
- service
- described service
- key
- log data
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1065—Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1048—Departure or maintenance mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
在如下覆盖网络***中,提供了关于所有节点的至少一个服务:其中通过分布式哈希表技术将至少一个节点映射在哈希空间中,每个节点具有通过对自身节点的标识信息进行哈希操作而获得的节点标识符。每个节点包括存储单元和控制器。存储单元存储服务的服务名和服务主体。控制器使用通过对服务名进行哈希操作而获得的服务密钥来搜索当前服务提供者节点,如果自身节点的节点标识符与服务密钥之间的距离小于当前服务提供者节点的节点标识符与服务密钥之间的距离、则检查是否允许自身节点来接管服务,以及如果接管被许可、则调用服务主体以提供服务。
Description
技术领域
本发明涉及通过分布式哈希表技术在哈希空间中分配至少一个节点的覆盖网络***,以及在该覆盖网络***中使用的服务提供方法。
背景技术
近来,作为客户端/服务器***的替代品,将越来越多的兴趣投向称为对等(peer to peer)(此后称为P2P)的连接形式,其中,与网络连接的所有节点可以动态地改变其角色。对照数据集中在服务器处的客户端/服务器***,在P2P***中,以分布式方式在同等节点中保存数据。即,通过同等节点之间的合作来进行保存数据的位置的搜索。
用于搜索保存数据的位置的技术的例子是分布式哈希表(此后称为DHT)。在DHT中,将指示保存数据主体的位置的信息登记在具有与从该数据生成的哈希值接近的哈希值的节点处。此时,使用相同的哈希函数来生成数据的哈希值和节点的哈希值。在登记指示保存数据的位置的信息的每个节点处,以哈希表的形式来保持数据的哈希值和指示保存该数据主体的位置的信息的对。
由于从不同的数据生成的哈希值呈现完全不同的值,因此在网络上分布登记了指示保存数据的位置的信息的节点。即,以分布式方式在同等节点中存储哈希表,以便在同等节点之间分布负载。
当进行对数据的搜索时,可以通过计算数据的哈希值和使用哈希值作为密钥(key)进行搜索来找到数据。在DHT中,构成网络的每个节点具有描述到相邻节点的路由的路由表。在该路由表中,使用节点的哈希值来表示节点间的距离。
为了查阅(refer to)在网络上的节点之一处登记的数据,首先计算该数据的哈希值,并参考自身节点中的路由表来向具有最接近于该数据的哈希值的值的节点发出搜索请求。如果已经接收到搜索请求的节点没有指示保存该数据的位置的信息,则已经接收到搜索请求的节点参考自身节点中的路由表,向具有最接近于该数据的哈希值的哈希值的节点发出搜索请求。通过重复该操作,搜索的范围变得更窄,并且最终可以找到指示保存该数据的位置的信息。当已经获得指示保存该数据的位置的信息时,能够基于该信息获得该数据主体。即,在使用DHT技术构造的覆盖网络中,可能不考虑数据主体的位置而访问该数据主体。
如上所述,在DHT中,基于使用哈希值表示的同等节点间的距离来进行路由。因此,不需要知道IP网络上提供的分段(segment)。即,能够使用进行路由的DHT在IP层之上的层中构造覆盖网络。
可以将覆盖网络上所提供的服务广泛分类为两类,即,由各个节点提供的局部服务和整体上涉及覆盖网络的全局服务。由各个节点提供的局部服务的例子包括Web服务和FTP服务。由各个节点提供的服务仅在节点存活于网络上的时间段期间可用,并且当节点已经离开网络时,服务变得不可用。
相反,即使当例如节点已经新加入覆盖网络或节点已经离开覆盖网络时,只要覆盖网络存在,则认为全局服务可用。全局服务的例子包括当新节点加入覆盖网络时所使用的验证服务、和用于管理的节点列表服务和服务列表服务。
当提供全局服务时,经常采用一些手段以便改进全局服务的可用性,例如在网络上提供用于提供全局服务的服务器,或预先指定一些节点作为类似服务器运作的超级节点。将在覆盖网络上提供服务器的方案称为混合P2P,并且将在覆盖网络上提供超级节点的方案称为超级节点混合P2P。另一方面,将纯粹仅由同等节点组成覆盖网络的方案称为纯(pure)P2P。
日本未审查专利申请公开物No.2005-196676公开了除了对等节点以外还提供了中央服务器的混合P2P***。
发明内容
在覆盖网络上提供服务器或超级节点以便可以可靠地提供全局服务的情况下,与纯P2P***相比,该***变得更不灵活。
另外,在超级节点混合P2P的情况下,通常,基于节点的能力(CPU性能、存储器容量、网络带宽等)来指定超级节点。但是,例如,在由视频会议***中使用的终端组成的网络或由网络摄像机组成的网络的情况下,所有节点的能力实质上相同,以至于难以确定要指定那个节点作为超级节点。
希望可以仅由同等节点自主提供全局服务。
根据本发明的实施例,提供了一种覆盖网络***,在该***中通过分布式哈希表技术将至少一个节点映射在哈希空间中,至少一个节点的每个都具有通过对自身节点的标识信息进行哈希操作而获得的节点标识符,并且在该***中提供了关于构成覆盖网络***的所有节点的至少一个服务。至少一个节点的每个包括:存储单元,被配置以存储表示服务的名称的服务名和表示服务的主体的服务主体;以及控制器,被配置以便使用在哈希空间中存在的服务密钥来搜索当前服务提供者节点、以便在自身节点的节点标识符和哈希空间中的服务密钥之间的距离小于当前服务提供者节点的节点标识符和在哈希空间中的服务密钥之间的距离时检查是否允许自身节点来接管服务、以及以便在接管被许可时调用自身节点中的服务主体以提供服务,其中通过对服务名进行哈希操作而获得服务密钥。
因此,自动将每个服务分配给具有在哈希空间中最接近于服务的服务密钥的节点标识符的节点。
根据本发明的实施例,自动指定提供服务的节点,使得可以仅由同等节点自主提供全局服务。
附图说明
图1是示出根据本发明的实施例的视频会议***的示例配置的图;
图2是示出本实施例中的全局服务表的示例结构的图;
图3是示出在本实施例中由服务提供者节点执行的处理的例子的流程图;
图4是示出在本实施例中由服务用户执行的处理的例子的流程图;
图5是示出在本实施例中在服务接管时执行的处理的例子的流程图;
图6是示出在本实施例中当节点加入覆盖网络时执行的处理的例子的流程图;
图7是示出在本实施例中当节点加入覆盖网络时执行的处理的例子的流程图;
图8是示出在本实施例中当节点正常离开覆盖网络时执行的处理的例子的流程图;
图9是示出当在节点出现问题时执行的处理的例子的流程图;以及
图10A到10F是示出本实施例中的动态服务分配的处理的例子的图。
具体实施方式
现在,将参考附图来描述本发明的实施例。在本实施例中,根据本发明的网络***被应用于由多个视频会议终端构成的视频会议***。图1是示出经由网络1彼此连接的多个视频会议终端100的图。图1所示的每个视频会议终端100是构成覆盖网络的节点。因此,在图1中,被连接于网络1的六个视频会议终端100被分别标示为节点N1到N6。在下面的描述中,当描述作为节点的视频会议终端100的功能时,视频会议终端100将被标示为节点Nn(其中n是整数)。将在使用DHT来构造覆盖网络并使用Chord作为其算法的例子的上下文中描述该实施例。
首先,将描述视频会议终端100的内部配置的例子。图1所示的视频会议终端100包括镜头10和成像单元11。镜头10被包括在外部所附或内部提供的照相机单元中。成像单元11光电地转换通过镜头10输入的对象(object)的光学图像,以生成视频信号。镜头10和成像单元11捕获视频会议终端100的用户的图像,通过成像而获得的视频信号经过在信号处理器(未示出)中的信号处理,并且经由通信接口(此后简称为I/F)12将所处理的视频信号分发给网络1上的其他视频会议终端100。
通信I/F12是用于与网络1连接的接口。通信I/F12用于捕获从网络1上的其他视频会议终端100发送到该视频会议终端100中的数据。该视频会议终端100还具有用于显示经由通信I/F 12获得的其他视频会议终端100的用户的图像的显示器13。例如,显示器13由例如液晶面板组成。
此外,视频会议终端100具有麦克风14和扬声器15,并且麦克风14和扬声器15与音频处理器16连接。音频处理器16对由麦克风14收集的视频会议终端100的用户的音频信号执行用于传输的音频数据处理,并将得到的音频信号发送给通信I/F 12。此外,音频处理器16对经由通信I/F 12获得的其他视频会议终端100的用户的音频信号执行音频数据处理,并从扬声器15输出得到的音频信号。
根据经由包括按钮、键盘等等在内的操作单元17的用户操作的输入来执行上述组件的操作。通过由中央处理单元(CPU)等等组成的控制器18来控制组件的操作。控制器18与存储器19连接。存储器19存储控制所需的程序等等。控制器18读取在存储器19中所存储的程序,并执行该程序。
视频会议终端100包括由存储卡、硬盘等等组成的存储单元20。存储单元20可以存储从网络1上的其他用户发送的数据等等。此外,存储单元20已经预先存储了路由表T1和全局服务表T2。
路由表T1是描述与自身节点相邻的节点的位置信息的表,并且由例如m行组成。在m行表的第i行上,描述在自身节点ID+2^(i-1)的范围内的节点的信息。当m=4时,每个节点在其路由表T1中存储从自身节点开始的1、2、4和8跳的节点的信息。节点ID是由表达式hash(X)获得的哈希值,其中节点的IP地址、标识符等等被分配给表达式中的“X”。即,节点ID(标识符)是通过对点的IP地址、标识符等等进行哈希操作而获得的哈希值。
由于每个节点具有这种路由表T1,因此即使每个节点仅具有从自身节点开始的1、2、4和8跳的节点的信息,通过基于各个节点的路由表T1的信息从节点到节点地传送搜索请求,也缩小了搜索范围,并且最终可以找到意要的数据。
全局服务表T2是描述关于在覆盖网络上提供的所有全局服务(此后也简称为服务)的信息的表。全局服务的例子包括视频会议终端100的验证服务、允许浏览视频会议终端100的列表的地址列表服务等等。稍后将详细描述全局服务表T2。
在本实施例中,限定服务作为具有以下四个元素:
·服务名(service name)
·服务主体(service body)
·服务简档(service profile)
·服务记录数据文件
服务名是覆盖网络上所提供的服务的名称,且根据预定的命名机制、例如以URI(统一资源标识符)的形式来标识。例如,将验证服务表示为urn:abcdabcd:dht:product:service:global:authentication,并且将地址列表服务表示为urn:abcdabcd:dht:product:service:global:nodelist。服务主体是可执行的程序,并且该程序被配置以便可以动态地开始或停止服务。
服务简档是以文件格式的内容,其中,描述了用于访问服务的端点信息(例如IP地址或URL)或API(应用编程接口)。服务简档是可以根据每个节点的本身环境而动态配置的文件,并且其内容在各个节点之间变化。例如,如果服务简档的格式是服务端点=http:host:port:/path/service,则相同服务的服务简档在各个节点之间变化,例如在节点N1中的http://192.168.0.1/cgi-bin/servicel.cgi和在节点N2中的http:192.168.1.1:8080/service/servicel.cgi。服务简档和服务主体被存储在每个节点的存储单元20(参考图1)中。
服务记录数据文件是描述当执行服务时出现的、并且将要被记录和保存的数据的文件。由服务主体动态地输出或输入服务记录数据文件。
此外,在本实施例中,给各个定义的元素分配用于标识的名称,并且使用所分配的名称的哈希值在覆盖网络的相同哈希空间中映射这些元素。因此,可以在覆盖网络上的任何地方搜索并获得由这些元素定义的服务。
全局服务表T2是用于标识的名称和哈希值的列表。覆盖网络中的每个节点具有全局服务表T2。全局服务表T2包括对应于服务数量的多个元素定义组,以便为覆盖网络上所提供的所有服务定义元素。如果在覆盖网络上提供验证服务和地址列表服务,则为验证服务和地址列表服务的每个定义上述元素。
图2示出全局服务表T2的结构的例子。全局服务表T2包括用于索引(index)、服务名、服务密钥、服务简档名、服务简档密钥、服务简档、服务主体、服务记录数据文件名、服务记录数据文件密钥和服务记录数据文件的字段。
根据在全局服务表T2的行方向上计数的项目的数量来分配索引,并且由1到n来表示索引。在全局服务表T2的行方向上计数的项目的数量根据全局服务的数量而增加或减少。先前已经描述了服务名,因此将省略其描述。服务密钥是通过对服务名进行哈希操作而获得的哈希值、即通过hash(servicename)获得的哈希值。在图2中,服务名是“urn:abcd:dht:service:global:servicenamel”,因此通过“hash(urn:abcd:dht:service:global:servicenamel)”获得服务密钥。
将服务简档名定义为与服务名相同。服务简档密钥是通过对服务简档名进行哈希操作而获得的哈希值。由于服务简档名与服务名相同,因此服务简档密钥具有与服务密钥相同的值。
服务简档描述了到上述服务简档的主体的路径。由于服务简档被存储在存储单元20(参考图1)中,因此描述存储单元20中的路径。在图2所示的例子中,该路径被描述为“/dht/service_profile/service_profilel.xml”。还在服务主体中描述去往上述服务主体的路径。在图2所示的例子中,该路径被描述为“www/cgi-bin/servicel.cgi”。
服务记录数据文件名是服务记录数据文件的名称。类似于服务名,由中日韩URI的字符串表示服务记录数据文件名。在图2所示的例子中,服务记录数据文件名被描述为“urn:abcd:dht:service:global:servicedatal”。服务记录数据文件名是通过对服务记录数据文件名进行哈希操作而获得的哈希值,因此服务记录数据文件名是hash(urn:abcd:dht:service:global:servicedatal)。在服务记录数据文件中,描述了到服务记录数据文件的主体的路径。
由于可以从服务名、服务简档名和服务记录数据文件名来计算服务密钥、服务简档密钥和服务记录数据文件密钥,因此可以每次计算服务密钥、服务简档密钥和服务记录数据文件密钥,而不需要预先在全局服务表T2中包括这些项目。
虽然每个节点具有相同的全局服务表T2,但是仅由一个特定节点来提供每个服务。该特定节点指的是具有与服务密钥距离最短的节点ID的节点。在本实施例中,特定节点用作服务提供者。服务提供者满足下列条件:
·服务提供者具有服务主体,并且正执行该服务主体。
·服务提供者提供服务简档。
·服务提供者准备并更新服务记录数据文件的数据,并将最近的数据上传到覆盖网络
即,虽然覆盖网络上的每个节点具有服务主体,但仅用作服务提供者的节点执行服务主体。因此,仅由服务提供者拥有的服务简档有效地作为描述访问正被执行的服务的方法的服务简档。
图3是示出由被指定作为服务提供者的节点执行的服务提供处理的例子的流程图。稍后将描述服务提供者的指定。被指定为服务提供者的节点在自身节点内准备服务简档(步骤S1),并且调用被存储在存储单元20中的服务主体(程序)来开始提供服务(步骤S2)。然后,节点在自身节点内生成服务记录数据文件(步骤S3)。在生成服务记录数据文件后,该节点确定用于上传服务记录数据文件的目标节点和与目标节点相邻的节点,并将服务记录数据文件保存在这些节点中(步骤S4)。
使用表达式put(key,content)来执行步骤S4中的上传的目标节点的确定和在目标节点中文件的保存。即,通过执行表达式put(service record data file key,service record data file),确定被映射到服务记录数据文件密钥(和其相邻节点),并且保存服务记录数据文件(允许恢复文件的副本或片段)。
在保存了服务记录数据文件后,节点检查是否已经更新了自身节点中的服务记录数据文件(步骤S5)。如果还没有更新服务记录数据文件,则不执行处理。如果已经更新了服务记录数据文件,则处理返回到步骤S4,其中将所更新的文件保存在更新目标节点中。每次当更新自身节点中的服务记录数据文件时,执行用于将自身节点中的服务记录数据文件保存到更新目标节点的处理。
服务名和服务记录数据文件名被定义为不同的名称。由于从不同的名称(数据)生成的哈希值具有不同的值,因此,通过执行上述处理,服务提供者的节点和保存了服务记录数据文件的节点被分发在覆盖网络上。在下面的描述中,图3所示的处理将被描述为“服务提供流程”。
接下来,将参考图4所示的流程图来描述由使用服务的节点执行的处理的例子。希望使用服务的节点首先使用自身节点的全局服务表T2中的服务简档密钥来搜索服务提供者节点(步骤S11)。使用表达式Node=lookup(key)来执行对服务提供者节点的搜索。可以通过分配服务简档密钥作为表达式中的“key”来找到被映射到服务简档密钥的节点。
在确定服务提供者节点后,该节点基于自身节点的路由表T1来访问服务提供者节点,并获得由服务提供者节点拥有的服务简档(步骤S12)。然后,该节点分析该服务简档(步骤S13),并通过服务简档中描述的方法来访问服务以使用该服务(步骤S14)。在下面的描述中,将图4所示的处理称为“服务使用流程”。
下面,将参考图5所示的流程图来描述由从另一节点接管(take over)服务的节点执行的处理的例子。新成为服务提供者的节点首先准备服务简档(步骤S21)。然后,该节点使用在全局服务表T2中的服务记录数据文件密钥来从覆盖网络获得服务记录数据文件(步骤S22),并重建该服务(步骤S23)。使用表达式content=get(key)来获得服务记录数据文件。通过将服务记录数据文件密钥分配在表达式中的“key”中,可以从被映射到服务记录数据文件密钥的节点获得服务记录数据文件。
在获得服务记录数据文件后,节点开始服务主体(程序)(步骤S24)。在正提供服务的同时,节点检查是否已经更新了自身节点中的服务记录数据文件(步骤S25)。如果还没有更新服务记录数据文件,则不执行处理。如果已经更新了服务记录数据文件,则在更新目标节点中保存所更新的文件(步骤S26)。每次更新自身节点中的服务记录数据文件时,执行用于将自身节点中的服务记录数据文件保存到更新的目标节点的处理。在下面的描述中,将图5所示的处理称为“服务接管流程”。
接下来,将参考图6和7所示的流程图来描述当新节点加入覆盖网络时所执行的处理的例子。图6示出在新加入的节点是构成覆盖网络的第一个节点的例子。该加入覆盖网络的第一个节点对自身节点的全局服务表T2中描述的每个服务执行服务提供流程(步骤S31)。即,该节点用作用于全局服务表T2中描述的所有服务的服务提供者。
图7示出当新节点加入已经提供了一些服务的覆盖网络时所执行的处理的例子。新加入的节点计算自身节点ID与全局服务表T2中描述的每个服务的服务密钥之间的距离D1(步骤S31)。然后,该节点使用对应的服务密钥来搜索每个服务的服务提供者节点(步骤S32)。在搜索每个服务的服务提供者节点后,该节点计算服务提供者节点的节点ID与全局服务表中的相关服务密钥之间的距离D2(步骤S33)。
然后,距离D1与距离D2相比较(步骤S34)。如果距离D1大于或等于距离D2(D1≥D2),则自身节点与服务密钥的距离比当前服务提供者的大或与其相同,因此,新加入的节点不接管服务,并且立即退出处理。如果距离D1小于距离D2(D1<D2),则自身节点到服务密钥的距离比现有服务提供者节点小。因此,为了成为服务提供者,节点向当前服务提供者节点发送服务接管许可请求(步骤S35)。
当接收到服务接管许可请求时(步骤S36),当前服务提供者节点确定是否接受该请求(步骤S37)。如果要拒绝该请求,则当前服务提供者节点向位于请求的源的新加入的节点发送响应以及拒绝的理由(步骤S38)。如果要接受该请求,则当前服务提供者节点向位于请求的源的新加入的节点发送响应(步骤S39)。
当从当前服务提供者节点接收到响应时(步骤S40),基于响应的内容,新加入的节点确定是否已经许可了服务的接管(步骤S41)。如果已经拒绝了服务的接管,则新加入的节点立即退出处理。如果已经许可了服务的接管,则新加入的节点执行服务接管流程(步骤S42),并在执行服务接管流程完成后向前任服务提供者节点发送完成通知(步骤S4)。当接收到完成通知时(步骤S44),前任服务提供者节点停止正提供的服务(步骤S45)。
通过上述处理,与服务密钥距离最小的节点总是用作服务的服务提供者。
接下来,将参考图8和9所示的流程图来描述当节点离开覆盖网络时所执行的处理的例子。图8示出节点正常离开覆盖网络的处理的例子。图9示出节点由于问题等等突然离开覆盖网络的处理的例子。参考图8,将要离开覆盖网络的节点首先确定自身节点是否是服务提供者(步骤S51)。如果自身节点不是服务提供者,则节点立即离开覆盖网络(步骤S60)。
如果离开的节点是服务提供者,则离开的节点参考自身节点中的路由表T1来选择与服务密钥的距离在自身节点之后第二小的节点作为服务传送目标节点(步骤S52)。然后,离开的节点向服务传送目标节点发送服务移交请求(步骤S53)。
当从离开的节点接收到服务移交请求时(步骤S54),服务传送目标节点无条件地接受服务移交请求(步骤S55),并执行服务接管流程(步骤S56)。当完成服务接管流程时,服务传送目标节点向离开的节点发送服务接管完成通知(步骤S57)。当从服务传送目标节点接收到服务接管通知时(步骤S58),离开的节点停止正执行的服务(步骤S59),并离开覆盖网络(步骤S60)。
接下来,将参考图9所示的流程图来描述当节点由于问题等等突然离开覆盖网络时所执行的处理的例子。构成覆盖网络的每个节点定期向相邻节点发送ping或保持存活信号,以便如果某节点突然离开覆盖网络时,相邻节点能够检测到该状况。因此,如果在某节点出现问题,则首先采取行动的节点是已经检测到问题的相邻节点。
已经检测到在相邻节点的问题的节点使用自身节点的全局服务表T2中的所有服务密钥来搜索被映射到服务密钥的节点(步骤S71)。然后,节点向被映射到服务密钥的所有节点发送关于服务的可用性(服务是否正被执行)的询问(步骤S72)。
当接收到询问时(步骤S73),已经接收到询问的每个节点确定在自身节点是否正执行服务(步骤S74)。如果正执行服务,则该节点向已经检测到问题的节点发送指示正执行服务的响应(步骤S75),并然后退出处理。如果没在服务,则该节点向已经检测到问题的节点发送指示没在执行服务的响应(步骤S76),并执行服务接管流程(步骤S77)。当从已经接收到询问的节点接收到响应时(步骤S78),已经检测到问题的节点立即退出处理。
接下来,将参考图10A到10F来描述如上所述的当节点加入或离开覆盖网络时执行的动态服务分配的具体例子。图10A到10F示出在哈希空间中排列节点的状态。由于在使用Chord算法的例子的上下文中描述本实施例,因此将哈希空间表示为圆圈,并且节点被排列以便节点ID在顺时针方向上变大。
在Chord算法中,使用函数next(k)来在哈希空间中映射节点。关于密钥k,该函数定义以顺时针方向首先遇到的节点与密钥k的距离最小。在图10A到10F中,假设在覆盖网络上正提供服务S1,并且服务S1具有服务密钥4。
图10A示出第一个节点已经加入覆盖网络的状态。参考图10A,已经首先加入覆盖网络的节点是节点N1,且节点N1用作服务S1的服务提供者。此时,实际上,执行参考图6描述的流程。在图10A中,由虚线指示节点N4。这指示了如果节点N4存在于该位置,则next(4)=节点N4,指示了节点N4的ID最接近于服务S 1的服务密钥4。即,如果节点N4存在,则由节点N4提供服务S1。
图10B示出除了节点N1以外、节点N2和N3已经新加入覆盖网络的状态。即使当节点N2和N3已经新加入覆盖网络时,next(4)仍然是节点N1,并且节点N1仍然最接近于服务密钥,因此不发生服务S1的接管。
如10C示出节点N6新加入覆盖网络的状态。当节点N6已经加入覆盖网络时,节点N6最接近于服务密钥4。因此,发生从节点N1到节点N6的服务S1的接管。在这种情况下,执行图7所示的处理。
图10D示出节点N5新加入覆盖网络的状态,使得next(4)=节点N5。在这种情况下,发生从节点N6到节点N5的服务S1的接管。图10E示出节点N5已经正常离开覆盖网络的状态。即,执行图8所示的处理。因此,已经由节点N5提供的服务S1被排在节点N5之后第二最接近于服务密钥4的节点N6接管。
如图10F所示,如果节点N6由于问题等等突然离开覆盖网络,则节点N1和节点N3检测到状况,并成为问题检测节点,并执行参考图9描述的处理。在图9所示的步骤S72中被映射到服务密钥的节点是图10F所示的情况下的节点N1,因此,节点N1执行服务接管流程(图9所示的步骤S77),从而将服务S1移交给节点N1。
如上所述,给在覆盖网络上提供的每个服务分配用于标识的名称(服务名),并且将被映射到通过对服务名进行哈希操作而获得的哈希值的节点用作服务提供者,以便将服务动态分配给节点。
此外,分配不同的名称作为服务名和服务记录数据文件名,并且使用通过对服务名进行哈希操作而获得的服务密钥和通过对服务记录数据文件名进行哈希操作而获得的服务记录数据文件名,在覆盖网络上分配服务名和服务记录数据文件名。因此,在网络上分发被映射到服务密钥的服务提供者和被映射到服务记录数据文件密钥的节点。
即,在不同于服务提供者节点的节点处记录服务记录数据文件。因此,即使例如由于服务提供者节点离开覆盖网络而改变了服务提供者,已经接管了服务的节点也可以使用被存储在覆盖网络上的服务记录数据文件来立即继续服务。即,可以在覆盖网络中稳定而不中断地提供全局服务。
此外,由于构成覆盖网络的每个节点具有服务主体,因此即使当节点已经从前任服务提供者节点接管了服务时,节点也可以立即开始服务而不需要传送服务主体。
此外,即使当在服务提供者节点处发生问题等等以至于服务提供者节点变得不能提供服务时,已经检测到问题的相邻节点使用服务密钥搜索被映射到服务密钥的节点,并使得该节点执行服务接管处理。因此,防止了在覆盖网络上提供的全局服务的中断。
如上所述,由于如此配置覆盖网络以至于可以仅由同等节点无中断地提供全局服务,因此不需要提供服务器或超级节点。这有助于构造灵活的***。
此外,由于基于通过对服务的服务名进行哈希操作而获得的服务密钥来将服务分配给节点,因此公平且相等地将服务分配给构成覆盖网络的所有节点。因此,防止了特定节点的负载的集中。
已经在使用Chord作为DHT算法的例子的上下文中描述了实施例,不局限于例子,本发明可以被应用于使用诸如CAN或Pastry的其他算法的***。
此外,虽然已经在应用于视频会议***的例子的上下文中描述了实施例,但本发明还可以被应用于构成网络的终端具有实质上相同的容量的***,例如由网络摄像机构成的监视***。当将本发明应用于监视***时,可以提供例如终端验证服务、终端列表获取服务或事件信息获取服务。
本领域技术人员应该理解,在所附权利要求或其等同物的范围内,可以依赖于设计需求和其他因素进行各种修改、合并、子合并和替换。
相关申请的交叉引用
本发明包含涉及2007年2月21日在日本专利局提交的日本专利申请JP2007-041499的主题,其全部内容被引用合并于此。
Claims (16)
1.一种覆盖网络***,其中通过分布式哈希表技术将至少一个节点映射在哈希空间中,所述至少一个节点的每个都具有通过对自身节点的标识信息进行哈希操作而获得的节点标识符,并且其中提供了关于构成所述覆盖网络***的所有节点的至少一个服务,所述至少一个节点的每个包括:
存储单元,被配置以存储表示所述服务的名称的服务名和表示所述服务的主体的服务主体;以及
控制器,被配置以便使用存在于所述哈希空间中的服务密钥来搜索当前服务提供者节点、以便在所述自身节点的节点标识符和所述哈希空间中的所述服务密钥之间的距离小于所述当前服务提供者节点的节点标识符和所述哈希空间中的所述服务密钥之间的距离时检查是否允许所述自身节点来接管所述服务、以及以便在所述接管时被许可时调用在所述自身节点中的所述服务主体以提供所述服务,其中通过对所述服务名进行哈希操作而获得所述服务密钥。
2.根据权利要求1所述的覆盖网络***,
其中,所述节点的存储单元存储服务记录数据文件和服务记录数据文件名,所述服务记录数据文件是用于执行所述服务的数据,并且所述服务记录数据文件名是所述服务记录数据文件的名称,以及
其中,当所述自身节点开始提供所述服务时,所述节点的控制器使用服务记录数据文件密钥来搜索被映射到该服务记录数据文件密钥的节点,并将所述服务记录数据文件的副本传送到通过所述搜索而找到的节点,所述服务记录数据文件密钥是通过对所述服务记录数据文件名进行哈希操作而获得的。
3.根据权利要求1所述的覆盖网络***,
其中,所述节点的存储单元存储服务简档和服务简档名,所述服务简档描述了访问所述服务主体的方法,并且所述服务简档名是所述服务简档的名称,以及
其中,当所述控制器开始所述服务时,所述节点的控制器提供所述服务简档。
4.根据权利要求3所述的覆盖网络***,
其中,当所述节点的控制器使用所述服务时,所述控制器使用所述服务密钥来搜索被映射到所述服务密钥的节点,并从通过所述搜索找到的节点获得所述服务简档,并访问所述服务主体。
5.根据权利要求1所述的覆盖网络***,
其中当所述自身节点正提供服务并且所述自身节点离开所述覆盖网络时,所述节点的控制器搜索在所述节点标识符与在所述哈希空间中的所述服务密钥之间的距离在与所述自身节点相邻的节点中排在所述自身节点之后第二小的节点,并向通过所述搜索找到的节点发送服务移交请求。
6.根据权利要求5所述的覆盖网络,
其中当接收到从另一节点发送的所述服务移交请求时,所述节点的控制器使用所述服务记录数据文件密钥来搜索在其中存储了所述服务记录数据文件的节点,从通过所述搜索找到的节点获得所述服务记录数据文件,并调用所述服务主体以开始提供所述服务。
7.根据权利要求2所述的覆盖网络***,
其中,当检测到在相邻节点的问题时,所述节点的控制器使用通过对所有服务的服务名进行哈希操作而获得的所有服务密钥来搜索被映射到这些服务密钥的节点,并向通过所述搜索找到的节点发送关于所述节点是否正在提供所述服务的确认请求。
8.根据权利要求7所述的覆盖网络***,
其中当接收到从另一节点发送的关于所述节点是否正在提供所述服务的确认请求时,所述节点的控制器检查是否已经在所述自身节点处调用了所述服务主体,并且如果还没有调用所述服务主体,则所述控制器使用所述服务记录数据文件密钥来搜索存储了所述服务记录数据文件的节点,从通过所述搜索找到的节点获得所述服务记录数据文件,并调用所述服务主体以开始提供所述服务。
9.一种在覆盖网络***中使用的服务提供程序,在所述覆盖网络***中,通过分布式哈希表技术将至少一个节点映射在哈希空间中,所述至少一个节点的每个都具有通过对所述自身节点的标识信息进行哈希操作而获得的节点标识符,并且在所述覆盖网络***中提供了关于构成所述覆盖网络***的所有节点的至少一个服务,所述服务提供程序包括步骤:
使得所述节点存储表示所述服务的名称的服务名和表示所述服务的主体的服务主体;以及
使得所述节点使用存在于所述哈希空间中的服务密钥来搜索当前服务提供者节点,以便在所述自身节点的节点标识符和在哈希空间中的所述服务密钥之间的距离小于所述当前服务提供者节点的节点标识符和在所述哈希空间中的所述服务密钥之间的距离时检查是否允许所述自身节点来接管所述服务,以及以便在所述接管被许可时调用在所述自身节点中的所述服务主体以提供所述服务,其中通过对所述服务名进行哈希操作而获得所述服务密钥。
10.根据权利要求9所述的服务提供程序,
其中所述节点存储服务记录数据文件和服务记录数据文件名,所述服务记录数据文件是用于执行所述服务的数据,并且所述服务记录数据文件名是所述服务记录数据文件的名称,以及
其中当所述自身节点开始提供所述服务时,所述节点使用服务记录数据文件密钥来搜索被映射到所述服务记录数据文件密钥的节点,并将所述服务记录数据文件的副本传送到通过所述搜索找到的节点,所述服务记录数据文件密钥是通过对所述服务记录数据文件名进行哈希操作而获得的。
11.根据权利要求9所述的服务提供程序,
其中所述节点存储服务简档和服务简档名,所述服务简档描述了访问所述服务主体的方法,并且所述服务简档名是所述服务简档的名称,以及
其中当所述节点开始所述服务时,所述节点提供所述服务简档。
12.根据权利要求11所述的服务提供程序,
其中当所述节点使用所述服务时,所述节点使用所述服务密钥来搜索被映射到所述服务密钥的节点,并从通过所述搜索找到的节点获得所述服务简档,并访问所述服务主体。
13.根据权利要求9所述的服务提供程序,
其中当所述自身节点正在提供所述服务并且所述自身节点离开所述覆盖网络时,所述节点搜索在所述节点标识符与在所述哈希空间中的所述服务密钥之间的距离在与所述自身节点相邻的节点中排在所述自身节点之后第二小的节点,并向通过所述搜索找到的节点发送服务移交请求。
14.根据权利要求13所述的服务提供程序,
其中当接收到从另一节点发送的所述服务移交请求时,所述节点使用所述服务记录数据文件密钥来搜索存储了所述服务记录数据文件的节点,从通过所述搜索找到的节点获得所述服务记录数据文件,并调用所述服务主体以开始提供所述服务。
15.根据权利要求10所述的服务提供程序,
其中,当检测到在相邻节点的问题时,所述节点使用通过对所有服务的服务名进行哈希操作而获得的所有服务密钥来搜索被映射到服务密钥的节点,并向通过所述搜索找到的节点发送关于所述节点是否正在提供所述服务的确认请求。
16.根据权利要求15所述的服务提供程序,
其中当接收到从另一节点发送的关于所述节点是否正在提供所述服务的确认请求时,所述节点检查是否已经在所述自身节点处调用了所述服务主体,并且如果还没有调用所述服务主体,则所述节点使用所述服务记录数据文件密钥来搜索存储了所述服务记录数据文件的节点,从通过所述搜索找到的节点获得所述服务记录数据文件,并调用所述服务主体以开始提供所述服务。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007041499A JP4306740B2 (ja) | 2007-02-21 | 2007-02-21 | オーバレイネットワークシステム及びサービス提供プログラム |
JP041499/07 | 2007-02-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101252601A true CN101252601A (zh) | 2008-08-27 |
CN101252601B CN101252601B (zh) | 2011-12-21 |
Family
ID=39781722
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100740867A Expired - Fee Related CN101252601B (zh) | 2007-02-21 | 2008-02-21 | 覆盖网络***和服务提供方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7792900B2 (zh) |
JP (1) | JP4306740B2 (zh) |
CN (1) | CN101252601B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103747073A (zh) * | 2013-12-30 | 2014-04-23 | 乐视网信息技术(北京)股份有限公司 | 一种分布式缓存的方法和*** |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3973986B2 (ja) * | 2002-07-12 | 2007-09-12 | 株式会社エヌ・ティ・ティ・ドコモ | ノード探索方法、ノード、通信システム及びノード探索プログラム |
US8306013B2 (en) | 2009-01-23 | 2012-11-06 | Empire Technology Development Llc | Interactions among mobile devices in a wireless network |
JP5287500B2 (ja) * | 2009-05-25 | 2013-09-11 | 日本電気株式会社 | ノード装置およびノード装置用プログラム |
US20110153737A1 (en) * | 2009-12-17 | 2011-06-23 | Chu Thomas P | Method and apparatus for decomposing a peer-to-peer network and using a decomposed peer-to-peer network |
US10084856B2 (en) | 2009-12-17 | 2018-09-25 | Wsou Investments, Llc | Method and apparatus for locating services within peer-to-peer networks |
JP5336403B2 (ja) * | 2010-02-24 | 2013-11-06 | 富士通株式会社 | ノード装置およびコンピュータプログラム |
US8676914B2 (en) * | 2010-03-04 | 2014-03-18 | Canon Kabushiki Kaisha | Synchronizing services across network nodes |
US20110246628A1 (en) * | 2010-03-31 | 2011-10-06 | Brother Kogyo Kabushiki Kaisha | Information communication system, information processing apparatus, information communication method and computer readable storage medium |
KR101210613B1 (ko) * | 2010-11-30 | 2012-12-11 | 주식회사 케이티 | 모바일 p2p 서비스를 제공하는 시스템 및 그 방법 |
WO2013098933A1 (ja) * | 2011-12-27 | 2013-07-04 | 株式会社日立製作所 | 情報管理システム、計算機及び情報管理方法 |
KR20140011527A (ko) * | 2012-06-29 | 2014-01-29 | 한국전자통신연구원 | Dht 기반의 오버레이 네트워크 간 연동하기 위한 시스템 및 그 방법 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7421471B2 (en) | 2002-05-17 | 2008-09-02 | Sony Computer Entertainment America Inc. | Configuration switching: dynamically changing between network communication architectures |
JP2004072603A (ja) | 2002-08-08 | 2004-03-04 | Nippon Telegr & Teleph Corp <Ntt> | 障害回復システム、障害回復方法、障害回復プログラムおよび記録媒体 |
JP2005196676A (ja) | 2004-01-09 | 2005-07-21 | Nippon Telegr & Teleph Corp <Ntt> | サービス生成方法、サービス生成システムおよびプログラム |
US9160571B2 (en) * | 2004-03-11 | 2015-10-13 | Hewlett-Packard Development Company, L.P. | Requesting a service from a multicast network |
CN1331331C (zh) * | 2004-04-27 | 2007-08-08 | 国家数字交换***工程技术研究中心 | 自组织网络的实现方法 |
US20080130516A1 (en) * | 2004-12-21 | 2008-06-05 | Electronics And Telecommunications Research Institute | P2p Overplay Network Construction Method and Apparatus |
US8880489B2 (en) * | 2005-08-04 | 2014-11-04 | Hewlett-Packard Development Company, L.P. | Discovery across multiple registries |
CN100365997C (zh) * | 2005-08-26 | 2008-01-30 | 南京邮电大学 | 用于在对等网络中采用分布式哈希表的资源定位方法 |
US20070209042A1 (en) * | 2006-03-01 | 2007-09-06 | France Telecom | Grid computing architecture & associated method of invoking/registering network services for subscription |
US7643459B2 (en) * | 2006-06-16 | 2010-01-05 | Alcatel-Lucent Usa Inc. | Methods, devices and architectures for establishing peer-to-peer sessions |
US20080091807A1 (en) * | 2006-10-13 | 2008-04-17 | Lyle Strub | Network service usage management systems and methods |
-
2007
- 2007-02-21 JP JP2007041499A patent/JP4306740B2/ja not_active Expired - Fee Related
-
2008
- 2008-02-20 US US12/034,108 patent/US7792900B2/en not_active Expired - Fee Related
- 2008-02-21 CN CN2008100740867A patent/CN101252601B/zh not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103747073A (zh) * | 2013-12-30 | 2014-04-23 | 乐视网信息技术(北京)股份有限公司 | 一种分布式缓存的方法和*** |
Also Published As
Publication number | Publication date |
---|---|
JP2008204299A (ja) | 2008-09-04 |
US7792900B2 (en) | 2010-09-07 |
JP4306740B2 (ja) | 2009-08-05 |
US20080275952A1 (en) | 2008-11-06 |
CN101252601B (zh) | 2011-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101252601B (zh) | 覆盖网络***和服务提供方法 | |
US10547693B2 (en) | Security device capability discovery and device selection | |
CN1620027B (zh) | 基于测量结构的基于目标覆盖网络 | |
JP5889914B2 (ja) | ロードバランサーコンポーネント間の状態の同期 | |
US8346808B2 (en) | System and method of accessing resources in a computer network | |
JP5986356B2 (ja) | ユーザ中心の仮想個人化グループ(vpc)生成方法、vpc内で通信する通信機器の動作方法、コンピュータで記録可能な記録媒体、vpcネットワーク、vpc内で通信する通信機器、及び仮想個人化ネットワークのための装置 | |
JP5970541B2 (ja) | 情報処理システム、管理サーバ群、および、サーバ管理プログラム | |
US8103617B2 (en) | Distributed directory server, distributed directory system, distributed directory managing method, and program of same | |
EP3238096B1 (en) | System and method for discovering a lan synchronization candidate for a synchronized content management system | |
KR100799006B1 (ko) | 피어 투 피어 통신 네트워크에 있어서 디지털 문서를액세스하거나 공유하기 위한 시스템, 방법, 및 장치 | |
CN114285755B (zh) | 一种跨子网交互方法、装置、电子设备和存储介质 | |
US7529196B2 (en) | Routing a service query in an overlay network | |
JP5151511B2 (ja) | 検索サービス提供システム及び検索サービス提供方法 | |
CN114301828A (zh) | 一种跨子网交互方法、装置、电子设备和存储介质 | |
US9178952B2 (en) | Systems and methods for service assurance using virtualized federated presence infrastructure | |
US9544371B1 (en) | Method to discover multiple paths to disk devices cluster wide | |
AU2020470244B2 (en) | Application context relocation method and apparatus | |
CN115004665B (zh) | 文件分享方法、装置及*** | |
US7636325B2 (en) | Determining highest workloads for nodes in an overlay network | |
CN113691608B (zh) | 流量分发的方法、装置、电子设备及介质 | |
CN113347212B (zh) | 基于区块链的可信服务调度方法、装置、设备和存储介质 | |
CN114157606A (zh) | 虚拟网元设备切换方法、设备和存储介质 | |
JP2009230686A (ja) | コンテンツ管理サーバ及びコンテンツ管理プログラム | |
CN115004657A (zh) | 寻址方法、寻址***以及寻址装置 | |
CN115858100A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111221 Termination date: 20160221 |
|
CF01 | Termination of patent right due to non-payment of annual fee |