分布式虚拟环境的管理方法、系统及节点的利记博彩app

文档序号:7654550阅读:230来源:国知局
专利名称:分布式虚拟环境的管理方法、系统及节点的利记博彩app
技术领域
本发明涉及信息处理技术领域,尤其涉及一种服务器中分布式虚拟环境的管理方法、一种节点中分布式虚拟环境的信息管理方法、一种分布式虚拟环境的系统及系统中的节点。
背景技术
在互联网得到广泛应用的今天,互联网中处理信息的技术也在不断向前发展。其中,一种叫做对等计算技术(P to P,Peer to Peer)的信息处理技术应用的尤其广泛。
对等计算技术也被人们称为点对点技术、或者P2P技术,通常可以定义为网络的参与者共享他们所拥有的一部分硬件资源,如处理能力、存储能力、网络连接能力、打印机等,这些共享资源通过网络提供服务和内容,能被其它对等节点(Peer)直接访问而无需经过中间实体,在此网络中的参与者既是资源提供者(Server),又是资源获取者(Client)。
比起传统的客户机/服务器(C/S,Client/Server)结构,在采用P2P技术的网络中,每个节点都是处于对等的地位,既充当服务器,为其他节点提供服务,同时也享用其他节点提供的服务,网络中的资源和服务分散在所有节点上,信息的传输和服务的实现都直接在节点之间进行,可以无需中间环节和服务器的介入,避免了可能的瓶颈。
而且,在P2P网络中,随着用户的加入,不仅服务的需求增加了,系统整体的资源和服务能力也在同步地扩充,理论上其可扩展性几乎可以认为是无限的。
同时,由于服务是分散在各个节点之间进行的,部分节点或网络遭到破坏对其它部分的影响很小。P2P网络一般在部分节点失效时能够自动调整整体拓扑,保持其它节点的连通性。P2P网络通常都是以自组织的方式建立起来的,并允许节点自由地加入和离开,所以其健壮性也很好。
所以,在文件传输、通讯与信息共享、网络游戏等,信息流量很大、有多用户参与信息交互的场合,P2P技术都得到了广泛的应用。
在这些应用P2P技术的场合,有很多都是在虚拟环境中进行的,例如网络游戏、虚拟社区之类,这种基于P2P技术的虚拟的环境,呈现分布式结构,这种虚拟的环境可以被称为分布式虚拟环境。
在实现本发明过程中,发明人发现现有的分布式虚拟环境管理方法至少会带来以下问题在基于P2P结构的分布式虚拟环境中,其网络结构导致每个节点都可能需要与多个节点进行信息交换,关注很多相关节点的状态变化,在这种情况下,节点之间的通信量非常的大,造成节点负载过重,特别是在数据更新快、参与用户多、网络结构复杂的情况下,此问题就会更加明显。
以大型多人在线网络游戏(MMOG,Massively Multiplayer Online Games)为例,在游戏中,通常会对节点进行区域兴趣管理,实现区域兴趣管理最理想的状态,也就是每个节点尽量只接收和处理它需要的数据,也即节点感兴趣的数据的状态,尽量减少节点处理的冗余信息,尽量将节点的负载降到最低。
一个游戏可以视为虚拟环境中多个虚拟实体共同构成,每个玩家都要通过一个节点参与到游戏中,这个节点一般都由普通家用电脑担任,当然也有可能是其他具有计算功能,可以连接到互联网的工具,例如移动电话、家用游戏机等。玩家可以通过这个节点在游戏中操作一个虚拟实体,然后通过操作指令改变虚拟实体状态,每个虚拟实体有自己的属性和参数,通过状态变量表现游戏中的所有元素。游戏元素构成整个游戏状态,用户通过节点操作游戏元素的任一行为都可以映射为游戏事件。每个时刻上游戏都由于事件的影响产生了状态的变更。
游戏中的每一个虚拟实体都必然会存在于一个对应的节点上,但并非每个节点上都会有一个对应的虚拟实体。
举例来说,一个用户通过自己的家用电脑参与到一个大型多人在线网络游戏,建立了一个虚拟实体,这个虚拟实体在游戏中体现为一个游戏人物,这个游戏人物的属性和参数表现在,它是一个女性,等级1,站立在一个虚拟的城市中,这个城市就是各种状态变量的体现。玩家操作这个女性坐在路边的凳子上,即对游戏产生了影响,首先它的状态由站立变更为坐着,影响到它周围的虚拟人物都看见它坐下,凳子的状态也由空闲变为有人坐着。在一个大型多人在线网络游戏中,每时每刻都有大量类似的事件发生。
通常的区域兴趣管理都是基于节点的可视范围进行的,也就是将节点可视范围内的虚拟对象及全部游戏元素,都设定为这个节点的兴趣数据群,该节点会保存兴趣数据群的所有信息,参与信息数据群的计算,当该节点的位置发生移动,该节点的兴趣数据群也随之发生变化,而在进行游戏时大多数时候,节点都是在不停移动中的,该节点也就需要不停对它的兴趣数据群进行更新,与新的兴趣数据群中的节点进行通信,造成了非常大的计算量及通信量,节点的负载也就很重。
现阶段一个较受欢迎的大型多人在线网络游戏,同时在线人数时常会高达十万或更多,这么多节点之间的通信就变得更加复杂,同时处于游戏中的用户使用的计算机大部分都是普通家用电脑,其计算能力有限,负载过重时,会照成局部的响应速度变慢,甚至造成网络壅塞。

发明内容
本发明一实施例要解决的技术问题是提供一种分布式虚拟环境的管理方法,能够降低分布式虚拟环境中节点的负载。
为解决上述技术问题,本发明所提供的一种服务器中分布式虚拟环境的管理方法,实施例是通过以下技术方案实现的所述方法包括服务器将所述分布式虚拟环境划分为面积比节点可视范围小的小区,以使处于所述分布式虚拟环境中的节点保存所述节点关注范围内的小区信息,并使小区的参与计算的节点在事件影响到小区时,计算事件影响小区的结果,将计算结果发送到所述事件影响到的小区的获取更新的节点。
本发明另一实施例要解决的技术问题是提供一种节点中分布式虚拟环境的管理方法,能够降低分布式虚拟环境中节点的负载。
本发明所提供的一种节点中分布式虚拟环境的管理方法实施例是通过以下技术方案实现的所述方法包括处于分布式虚拟环境中的节点保存所述节点关注范围内的小区信息,所述小区为分布式虚拟环境被服务器划分出的区域,所述小区面积比节点可视范围小;事件影响到的小区的参与计算的节点计算事件影响小区的结果,并将计算结果发送到所述事件影响到的小区的获取更新的节点。
本发明另一实施例要解决的技术问题是提供一种分布式虚拟环境的系统,能够降低分布式虚拟环境中节点的负载。
为解决上述技术问题,本发明所提供的分布式虚拟环境的系统实施例是通过以下技术方案实现的所述系统包含多个节点,所述节点位于所述系统中的小区内,所述小区为分布式虚拟环境被划分出的区域,所述节点的可视范围大于所述小区的面积;所述节点用于保存自身关注范围内的所述小区信息,在事件影响所述节点参与计算的小区时,计算事件影响小区的结果,并将计算结果发送到获取所述小区更新信息的节点。
本发明另一实施例要解决的技术问题是提供一种节点,能够降低分布式虚拟环境中节点的负载。
为解决上述技术问题,本发明所提供的节点实施例是通过以下技术方案实现的所述节点包括存储单元用于存储所述节点关注范围内的小区信息,所述小区为分布式虚拟环境被服务器划分出的区域,所述小区面积比节点可视范围小;计算单元用于在节点参与计算的小区被事件影响到时,计算事件影响小区的结果,并更新存储单元;通信单元用于将计算单元的计算结果发送到所述事件影响到的小区的获取更新的节点。
以上技术方案可以看出,在现有技术中节点需要参与其兴趣数据群的全部计算,而节点的兴趣数据群通常又是由节点的可视范围决定的,在本发明实施例中,由于本发明实施例将系统划分为多个比节点可视范围小的小区,以小区为单位进行数据保存,及计算,使得节点通常只需要参与其计算小区的计算,而小区是一个比可视范围小的区域,所以节点的计算量得到了很大的减轻,有效降低了节点的负载。


图1、本发明实施例分布式虚拟环境的管理方法实施例示意图;图2、本发明实施例分布式虚拟环境的管理方法实施例的加入新的小区的方法流程图;图3、本发明实施例分布式虚拟环境的管理方法实施例的计算小区改为更新小区方法流程图;图4、本发明实施例分布式虚拟环境的管理方法实施例的更新小区提升为计算小区方法流程图;图5、本发明实施例分布式虚拟环境的管理方法实施例的节点失效时的处理方法流程图;图6、本发明实施例分布式虚拟环境的管理方法实施例的发布事件的方法流程图;图7、本发明实施例分布式虚拟环境的管理方法实施例的对节点数据进行校验的方法流程图;图8、本发明实施例分布式虚拟环境的系统实施例结构图;图9、本发明实施例节点的实施例结构图。
具体实施例方式
在本发明的实施例中提供了一种服务器中分布式虚拟环境的管理方法、一种节点中分布式虚拟环境的信息管理方法、一种分布式虚拟环境的系统及系统中的节点,将分布式虚拟环境分为合理大小的小区进行管理,有效地降低了各节点的负载,具体描述见下文。
使用分布式虚拟环境的场合有很多种,如网络游戏、虚拟社区之类,本文将以网络游戏中的大型多人在线网络游戏为例进行描述。
游戏可以视为由虚拟环境中多个虚拟实体共同构成,每个玩家都要通过一个节点参与到游戏中,这个节点一般都由普通家用电脑担任,当然也有可能是其他具有计算功能,可以连接到互联网的工具,比如专用游戏机之类。玩家可以通过这个节点在游戏中设定一个虚拟实体参与到游戏中,或者直接参与游戏,通过操作指令改变游戏中虚拟实体状态,每个虚拟实体有自己的属性和参数,通过状态变量表现游戏中的所有元素。游戏元素构成整个游戏状态,用户通过节点操作游戏元素的任一行为都可以映射为游戏事件。每个时刻上游戏都由于事件的影响产生了状态的变更。
举例来说,一个用户通过自己的家用电脑参与到一个大型多人在线网络游戏,建立了一个虚拟实体,这个虚拟实体在游戏中体现为一个游戏人物,这个游戏人物的属性和参数表现在,它是一个女性,等级1,站立在一个虚拟的城市中,这个城市就是各种状态变量的体现。玩家操作这个女性坐在路边的凳子上,即对游戏产生了影响,首先它的状态由站立变更为坐着,影响到它周围的虚拟人物都看见它坐下,凳子的状态也由空闲变为有人坐着,也就是说其他虚拟对象都被此事件影响。在一个大型多人在线网络游戏中,每时每刻都有大量类似的事件发生。
现阶段一个较受欢迎的大型多人在线网络游戏,同时在线人数时常会高达十万或更多,在基于P2P结构的游戏中,每个游戏玩家或用户都位于一个对等节点上,这些节点随着游戏的进行会不断进行数据的更新,不停的进行数据的交换,这些节点间的数据通信量就非常的大,节点的负载相应也就很重。处于游戏中的用户使用的计算机大部分都是普通家用电脑,其计算能力有限,负载过重时,会照成局部的响应速度变慢,甚至造成网络壅塞。
本发明实施例提供的服务器中分布式虚拟环境的管理方法实施例,将分布式虚拟环境划分为较小的小区进行管理,具体内容如下服务器将分布式虚拟环境划分为面积比节点可视范围小的小区,处于所述分布式虚拟环境中的节点保存所述节点关注范围内的小区信息,并使小区的参与计算的节点在事件影响到小区时,计算事件影响小区的结果,将计算结果发送到所述事件影响到的小区的获取更新的节点。
在小区的参与计算的节点数目为一个时,将服务器设为所述小区的参与计算的节点。同时也可以为小区的参与计算的节点数目设置上限。
在节点失效时,与之通信的节点将保存的失效节点数据传送给所述服务器,服务器接收到该失效节点数据时,确认该失效节点已从系统退出,保存所述失效节点退出系统时的状态。
进一步为了提高失效报告的可靠性,可以预订一个上限,使服务器在收到达到上限数目个失效报告时,再确认节点失效。
此时,服务器在接收到预定数目节点发送的所述失效节点数据时,确认该失效节点已从系统退出,同时收集所有节点发送的所述失效节点数据,并对所述数据进行比较,以多数一致的结果为准,确定所述失效节点退出系统时的状态,并进行保存。
本发明实施例提供的节点中分布式虚拟环境的信息管理方法实施例,将分布式虚拟环境划分为较小的小区进行管理,具体内容如下处于分布式虚拟环境中的节点保存所述节点关注范围内的小区信息,该小区为分布式虚拟环境被服务器划分出的区域,其面积比节点可视范围小;事件影响到的小区的参与计算的节点计算事件影响小区的结果,并将计算结果发送到该事件影响到的小区的获取更新的节点。
其中获取更新的节点获取该参与计算的节点发布的计算结果包括在该小区的参与计算的节点中挑选出一个网络连接速度达到预设条件的参与计算的节点,将该获取更新的节点连接到该参与计算的节点,获取该参与计算的节点发布的计算结果。
节点根据自身的性能和网络速度决定是否作为其所在小区的参与计算的节点。当节点为小区内获取更新的节点,在小区的参与计算的节点数目为一个时,提升为该小区参与计算的节点、或者节点在小区的参与计算的节点数目为一个时,请求服务器参与该小区的计算。同时也可以为所述小区的参与计算的节点数目设置上限。
在节点关注范围需要加入新的小区时,该节点需连接到所述新的小区的参与计算的节点,获取并保存该新的小区的信息。
节点关注范围需要加入新的小区包括以下两种状况1、节点的可视范围进入到新的小区时,节点需要加入该新的小区;2、事件的影响范围涉及了不在引发事件的节点的关注范围内的新的小区,则节点需要加入该新的小区。
节点关注范围加入新的小区时,进一步需要判断该节点是否需要参加该小区的计算,若需要则该节点成为该小区的参与计算节点,若不需要则该节点成为该小区的获取更新节点。
在节点需要退出小区时,要向该小区中与该节点有通信的节点发送退出小区通知,收到通知的节点修改自身上保存的该小区的信息。
在节点需要退出系统时,节点在发送完退出小区通知后,向服务器发送退出系统请求,服务器收到退出系统请求后,保存该节点退出时的数据。
在节点失效时,与之通信的节点将保存的该失效节点数据传送给服务器,服务器接收到所述失效节点数据时,确认所述失效节点已从系统退出,保存所述失效节点退出系统时的状态。
进一步为了提高失效报告的可靠性,可以预订一个上限,使服务器在收到达到上限数目个失效报告时,再确认节点失效。
此时,服务器在接收到预定数目节点发送的所述失效节点数据时,确认该失效节点已从系统退出,同时收集所有节点发送的所述失效节点数据,并对所述数据进行比较,以多数一致的结果为准,确定所述失效节点退出系统时的状态,并进行保存。
进一步本实施例还给出了校验的方法,先从小区的节点中挑选出校验节点,到预设的时间时,该小区内的节点自动保存当前小区的状态信息,并将状态信息或需校验对象的哈希值发送到该校验节点,由校验节点对状态信息或所述哈希值进行核对,以多数相同的结果为准,并向校验结果不一致的节点反馈校验结果,校验结果不一致的节点连接到校验结果一致的节点,获取自动保存的当前小区的状态信息,覆盖该不一致的节点的状态。
从所述小区的节点中挑选出校验节点,可以是从所述小区的参与计算的节点中挑选出校验节点。挑选的方法可以是随机挑选出校验节点、或挑选出信誉评价较高的节点作为校验节点。
到预设的时间时,节点建立队列保存所述校验时刻后到收到校验结果并进行相应处理前的事件;覆盖所述不一致的节点的状态后,根据队列中保存的事件修正所述不一致的节点的状态。
上文所述预设的时间可以是预设的固定间隔的时间。
上面分别从服务器侧及节点侧对分布式虚拟环境的管理方法进行了描述,但是在实际使用中大部分时候,服务器的行为和节点的行为是互相配合的,下文将对两种分布式虚拟环境的管理方法一起使用时的状况进行详细描述。下文为描述方便将统一称为分布式虚拟环境的管理方法。
将游戏的虚拟环境分为一些通常比可视范围小的小区(cell),划分小区后,每个节点感兴趣的范围将以小区为单位进行划分,每个节点以小区为单位进行信息存储,发生事件时,以小区为单位进行计算,也即计算事件对小区发生的影响会有什么样的结果。可视范围是节点在具体游戏空间中可以观察到的范围,这个范围根据不同的游戏设定有所不同,大部分的游戏中,节点都需要知道其可视范围内所有游戏元素的相关信息,例如其他虚拟实体的状态,游戏环境的变化。本分布式虚拟环境的管理方法实施例中在划分小区范围时会参考游戏中大多数节点的可视范围大小,将小区划分为比可视范围小的区域,也就是说游戏中每个节点的可视范围都会涉及多个小区,每个节点都会保存与该节点可视范围有交集的小区信息。
节点的关注范围通常就是与该节点可视范围有交集的所有小区,但是在有些情况下,节点的关注范围有可能超出与该节点可视范围有交集的所有小区。
例如,通常,每发生一个游戏事件都会影响一个或多个虚拟对象在游戏中的状态参数,影响的虚拟对象集合可以称为事件影响范围。若一个节点引发的事件影响范围超出了该节点当前的关注范围,影响到了与该节点可视范围没有交集的小区,由于该节点上没有保存该小区的信息,无法向该小区的节点发布时间信息,此时该节点需要加入该小区,把该小区也列入到关注范围内,调出并保存该小区的信息,然后向所有受影响的小区内的计算节点发布事件信息。
那么根据节点的关注范围节点和小区会呈现三种关系节点位于的小区、被节点关注范围涉及但不包含该节点的小区、节点关注范围没有涉及的小区。为了便于描述,本文将节点位于的小区称为该节点的计算小区,被节点可视范围涉及的非计算小区称为该节点的更新小区,处于节点可视范围外的小区称为该节点的无关小区,一个小区是某节点的计算小区、更新小区、或无关小区,可以称为是该节点对该小区的关注度,一个节点的计算小区和更新小区共同构成了该节点的关注范围。
由于节点通常对该节点可视范围内的虚拟对象的集合关注程度较高,尤其对该节点身边的环境要求可靠度更高,因此节点通常会参与该节点计算小区的计算,第一时间获得计算小区内所有的数据更新。由于节点的更新小区和节点的距离较计算小区要远,通常节点不必参与更新小区的计算,可以通过接受更新小区内节点信息发布的方式进行数据更新。至于无关小区,由于节点一般不需要知道该节点关注范围外的数据,所以节点通常也不需要保存无关小区的数据。
此处需要指出的是,本发明实施例提供的分布式虚拟环境的管理方法实施例还提供了一种实施方式,在一些特殊的情况下,节点可以不参与节点所在计算小区的计算,例如网络延迟大,该节点不能同时与多个节点快速通信,或该节点计算能力差,又或该节点计算小区中参与计算的节点已经达到某种上限,不需要该节点参与计算,在这些情况下节点都可以不参与节点的计算小区的计算,而通过接受其计算小区内其他节点发布的小区更新信息来进行游戏,以提高系统整体的性能。节点是否参与节点的计算小区的计算可以由系统决定,也可以由节点自身决定。
在通常的游戏系统中,节点的行为都是连续的,例如在虚拟空间中连续地移动,或改变视角,不断地进行新资源的发现,这些新资源包括所有新进入节点可视范围的游戏元素,这时节点之间必然需要进行大量的信息交换,造成节点负载过高。而在本发明实施例中,节点只有在节点的可视范围内出现新的小区,或者节点引发的事件影响范围超出节点记录的小区范围时,才会需要加入新的小区信息,并保存该新的小区信息,不必每次在虚拟实体更改位置时进行资源发现操作,大大减少了节点间的信息交换量,相应也就有效降低了节点的负载。同时,在现有技术中节点需要参与其兴趣数据群的全部计算,而节点的兴趣数据群通常又是由节点的可视范围决定的,在本发明实施例中,节点通常只需要参与其计算小区的计算,而小区是一个比可视范围小的区域,所以节点的计算量也得到了很大的减轻,有效降低了节点的负载。
现举例说明划分小区后,系统的工作方式,小区在虚拟环境中的形状通常为规则的几何形状,例如方形,六边形之类,本实施例中将以方形为例进行描述。
如图1所示,游戏空间中的一块被划分为16个小区小区101、小区102、小区103、小区104、小区105、小区106、小区107、小区108、小区109、小区110、小区111、小区112、小区113、小区114、小区115、小区116,节点120上位于小区106,节点120的可视范围用圆圈130表示,圆圈130与小区106、小区107、小区110、及小区111相交。
由图1可知,假设节点120的关注范围就是可视范围,那么对于节点120来说,小区106为节点的计算小区,小区107、小区110、及小区111均为节点的更新小区,小区101、小区102、小区103、小区104、小区105、小区108、小区109、小区112、小区113、小区114、小区115、小区116均为节点的无关小区。
通常,每发生一个游戏事件都会影响一个或多个虚拟对象在游戏中的状态参数,影响的虚拟对象集合可以称为事件影响范围。游戏中所有的计算都由游戏事件发起,在发生游戏事件时,节点是否参与该游戏事件的计算,要看该游戏事件是否影响到这个节点的计算小区,如果影响到,该节点就可以参与该游戏事件的计算。当然上文有提到过,本发明实施例中也提供节点不需要参与计算小区计算的实施方式,所以节点是否一定要参与该事件的计算,还要看系统的设定,系统可以设定小区内所有节点在小区被事件影响时都需要参与计算,也可以设定在特殊情况下允许小区内部分节点不参与计算。
为了便于描述,本文将在游戏事件影响小区时,该小区内需要参与计算的节点称为该小区的计算节点,只需获取该小区更新信息的节点称为该小区的更新节点,需要说明的是,该小区的更新节点也包括其他小区内需要获取该小区更新信息的节点。
小区的每个更新节点都必须连接到该小区的一个计算节点,以获取小区的更新数据,在有多个计算节点可供选择时,一般以网络连接速度作为主要评判标准,选择网络连接速度最佳的计算节点接收小区的更新数据。当该计算节点不再承担小区的计算职能时,所有从它获取更新的节点需要从计算节点队列中另选择一个计算节点作为数据来源。
以图1为例,若系统设定节点120在游戏事件影响小区106时,需要参与计算,则节点120为小区106的计算节点,同时节点120需要获取其更新小区107的更新信息,所以节点120可以称为小区107的更新节点,若系统设定节点120不需要参与小区106的计算,则节点120对于小区106也是一个更新节点。
由于计算节点承担的计算量及信息通信量远远大于更新节点,所以在系统允许部分节点不参与计算时,通常会从小区的节点中挑选出性能较好、网络速度较快的担任计算节点。挑选的动作一般是由节点自身完成的,服务器设定一些基本条件,例如一个小区内可以有多少个计算节点、或担任计算节点的节点必须具备那些条件、等等,节点在判断自身符合标准后,就会加入参加及小区的计算。
在一个小区内计算节点和更新节点的身份可以进行互换,如一个计算节点退出了小区,需要从更新节点中挑选出一个升级为计算节点;或者一个计算节点由于网络的原因,网络延迟突然变大,该节点申请成为更新节点,也是允许的。
上文提到在本发明实施例提供的分布式虚拟环境的管理方法实施例中每个节点以小区为单位进行信息存储。
由于在实际运行中可能会出现一个小区内只剩下一个计算节点的情况,而任何普通用户节点的可信度都是有限的,在只有一个节点参与小区计算的情况下,如果这个计算节点计算错误,或者蓄意进行欺骗性行为时,将没有其他节点可以对它进行监督,该小区的更新节点也都会跟着发生错误,或者被欺骗,导致系统可靠程度降低。为了防止这些情况的出现,提高系统的可靠程度,本发明实施例提供了在小区内只剩下一个计算节点时引入可靠节点进行监督,此可靠节点可以由服务器担任,当然,如果小区内还存在其他更新节点,也可以将更新节点提升为计算节点,提升的数目可以是一个,也可以是多个。
另一方面,在单个小区集中过多的节点同时计算也是没有必要的,而且会由于网络延迟等问题对计算和同步带来困难,因此本发明实施例提供了限制小区计算节点数目上限的实施方式,可以根据具体游戏环境的不同,如小区内用户数目、网络延迟、网络丢包、欺骗发生的概率等因素,设定小区内计算节点数目的上限。
在本发明实施例提供的分布式虚拟环境的管理方法实施例中,每个节点除了保存有该节点的标识符之外,还保存该节点的所有计算小区的集合,以及该节点的所有更新小区的集合;在计算小区的集合中的计算小区信息中,记录了该小区的标识符,该小区的计算节点队列,及该小区的更新小区队列;在更新小区的队列中的更新小区信息中,记录了该小区的标识符,该小区的计算节点队列;计算节点队列保存该小区的所有计算节点信息,更新小区队列保存该小区的所有更新节点信息;队列中的节点信息记录了节点标识符、地址信息、及指向节点操作的虚拟对象的指针,当该虚拟对象在保存信息节点的关注范围内时,必然在保存信息的节点上建立了一个对应的虚拟对象,该对象与其操作节点信息用指针连接,当该虚拟对象不在保存信息节点的关注范围时,可以不建立对应的虚拟对象,指针指向为空。在节点上的每个虚拟对象都有唯一一个对应的操作节点信息被保存,而保存的节点信息可以没有本节点内的虚拟对象。
在上文的描述中,节点在有些时候会需要加入新的小区,这些时候可能是在节点的可视范围内出现新的小区,或者节点引发的事件影响范围超出节点记录的小区范围时,下面本文将对本发明实施例提供的分布式虚拟环境的管理方法实施例加入新的小区的方法进行描述,该实施例流程见图2步骤201、获得小区内计算节点的地址,并建立连接。
当一个节点需要加入新的小区时,首先要获得该小区内至少一个计算节点的地址,并与之并建立连接。
在基于P2P的系统中,查询信息的方式有很多种,现在通常通过分布式哈希表(DHT,Distributed Hash Table)系统进行查询。所谓DHT系统就是将需要查找的文件的索引信息--例如节点的标识符,表示成一个(K,V)对,一个(K,V)对可以称为一个索引条目,K称为关键字,可以是文件名、节点标识符或其他描述信息的哈希值,V是实际存储文件的节点的网际协议(IP)地址或节点的其他描述信息。所有的索引条目组成一张大的索引哈希表,只要输入目标节点的K值,就可以从这张表中查出所有存储该节点信息的节点地址。然后,再将上面的大文件哈希表分割成很多局部小块,按照特定的规则把这些小块的局部哈希表分布到系统中的所有参与节点上,使得每个节点负责维护其中的一块。这样,节点查询另一个节点时,把查询报文路由到相应的节点,由于该节点维护的哈希表分块中含有要查找的(K,V)对,即可查询出需要的节点信息。
在本发明实施例提供的分布式虚拟环境的管理方法实施例中,通过DHT将网络信息均匀散布在网络节点上,每个小区设定标识符后,根据该标识符的哈希值,设立小区的索引节点,一般要求节点标识符哈希值与小区标识符哈希值最接近的节点担任该职责,该索引节点只要处于网络中即可,不一定要该小区的节点担任,每个索引节点保存该小区上一个计算节点的信息,节点寻找小区信息时,可以根据DHT查找到该小区的索引节点,获得该索引节点上保存的计算节点信息,进而与该计算节点建立连接。
在索引节点原保存的计算节点不再担任该小区的计算任务时,由该小区的计算节点另选择一个计算节点与索引节点直接联系。
步骤202、发送对该小区的关注类型。
需要加入新的小区的节点向步骤201中建立了连接的计算节点发送对该小区的关注类型,例如该节点需要参与该小区的计算,或者该节点需要获取该小区的状态更新信息。
通常我们默认设定节点所在小区为参与计算的小区,只是需要加入其关注范围的小区为获取更新的小区,节点加入该小区后,系统会根据实际情况再对节点是否参与计算进行调配。
步骤203、判断该节点是否参与小区计算。
对步骤202中发送的对该小区的关注类型进行判断,判断该节点是否参与小区计算,若是则进入步骤204;若否,则进入步骤206。
步骤204、接收小区内计算节点队列、获取更新节点队列以及小区对象信息。
进入此步骤,说明该节点需要参与小区计算,则需要获取小区内所有信息,包括小区内所有对象信息,参与计算节点队列和获取更新节点队列。
步骤205、与所有计算节点建立连接,向更新节点发送参与计算通知。
该节点与小区内所有计算节点建立连接,并向在获取更新节点队列中的节点发送自己参与该小区计算的通知,要求所有获取小区更新的节点将自身加入参与小区计算的节点队列中。
至此流程结束。
步骤206、接收小区内计算节点队列以及小区对象信息。
进入此步骤,说明该节点只需获取小区的更新信息,该节点与该小区的计算节点建立连接,接收小区内计算节点队列以及小区对象信息。
步骤207、与小区的计算节点建立连接,获取该小区的更新信息。
该节点在该小区的所有计算节点中挑选出一个计算节点,固定从该计算节点获取该小区的状态更新,然后向队列中的所有参与计算节点发布登陆该小区的消息,加入该小区的获取更新节点队列,小区内的计算节点根据这种标记向该节点发送事件信息或状态更新数据。
至此流程结束。
另外,在很多时候节点对一个小区的关注度会发生变化,例如由于节点移动离开了原来的计算小区,该计算小区变成了更新小区,节点移动到的原更新小区就变成了计算小区,或者系统将一个更新节点升为了计算节点,该小区原本是节点的更新小区,就变成了计算小区。节点对一个小区的关注度变化是一个可以互逆的过程。
下面本文将对本发明实施例提供的分布式虚拟环境的管理方法实施例改变小区关注度的方法进行描述,以计算小区改变为更新小区为例,流程见图3所示步骤301、通知该小区的计算节点队列、获取更新节点队列中的节点。
节点向该小区的计算节点队列、获取更新节点队列中的节点发送通知,通知该节点将退出该小区的计算节点队列,加入获取更新节点队列。
步骤302、修改该节点对小区的关注度信息。
从节点上记录的计算小区集合中删除该小区,并将该小区加入到获取更新小区集合,删除自身保存的该小区的获取更新节点队列,修改该小区的计算节点队列,将该节点从计算节点队列删除。
此步骤和后续的步骤之间没有先后顺序关系。
步骤303、修改该小区的计算节点队列、获取更新节点队列。
收到通知的计算节点修改自身保存的该小区的计算节点队列、获取更新节点队列,将该节点从计算节点队列删除,加入到获取更新节点队列。
收到通知的更新节点修改自身保存的该小区的计算节点队列,将该节点从计算节点队列删除。
步骤304、判断节点是否从该节点获取更新,是则进入步骤305,否则流程结束。
步骤305、从该小区的计算节点队列中另选一获取更新来源并建立连接。
流程结束。
将一个更新小区提升为计算小区时,流程见图4所示步骤401、获取该小区的获取更新节点队列。
从作为该节点获取更新来源的该小区的计算节点,获取该小区的获取更新节点队列。
步骤402、修改该节点对小区的关注度信息。
将该节点加入到节点上记录的计算小区集合,并将该小区从获取更新小区集合删除,修改该节点上保存的该小区的计算节点队列、获取更新节点队列,将该节点加入计算节点队列,退出获取更新节点队列。
此步骤和后续的步骤之间没有先后顺序关系。
步骤403、向该小区的相关节点发送更改关注类型信息。
节点向该小区的计算节点队列、获取更新节点队列中的节点发送通知,通知该节点将加入该小区的计算节点队列,退出获取更新节点队列。
步骤404、接收到该信息的节点对自身保存的队列信息进行相应的修改。
收到通知的计算节点修改自身保存的该小区的计算节点队列、获取更新节点队列,将该节点从获取更新节点队列删除,加入到计算节点队列。
收到通知的更新节点修改自身保存的该小区的计算节点队列,将该节点加入到计算节点队列。
流程结束。
将无关小区提升为更新小区或计算小区,也就是上文描述的加入新的小区的方法,在此不再重复描述。
至于将计算小区或更新小区变为无关小区,也可以说是一个节点退出了这个计算小区或更新小区,无论该节点是该小区的计算节点还是更新节点,要退出小区时,都要向该小区中自身保存的节点列表中的节点发送通知。若该节点为计算节点,则必然存有该小区的计算节点列表和获取更新节点列表,则此时需向两个列表中的节点发送退出小区通知;若该节点为更新节点,则仅存有该小区的计算节点列表,此时就需要向所有计算节点发送退出小区通知。节点向这些对应小区内自身通信的节点发送退出小区的通知,以便使得这些节点修改该小区内信息,而退出节点直接删除自身保存的该小区信息即可,当然在系统及节点自身性能允许的情况下,不删也是可以的。
在节点需要退出系统时,首先要退出所有关注的小区,最后向游戏服务器发送退出系统请求,游戏服务器保存该节点退出时的数据。
在实际运行中,有时也会碰到节点突然失效的状况,例如网络突然断线、节点突然死机之类,为了预防这类事故,本发明实施例提供的分布式虚拟环境的管理方法实施例提供了在节点失效时的处理方法,具体流程如图5所示步骤501、发送失效节点数据以及失效报告至服务器。
节点意外失效时,由与之通信的节点向服务器进行报告。若失效节点为计算节点,则与之同属一个小区的计算节点以及从该节点获取小区更新的更新节点都将在该节点长时间不响应的情况下,发现该节点失效;若失效节点为更新节点,则它获取更新的小区计算节点会在其长期无响应的情况下,得知节点失效。在发现节点失效的节点中必然有部分节点保存了该失效节点的数据,这些节点将本机内保存的失效节点数据以及失效报告一起提交给游戏服务器步骤502、接收失效节点数据以及失效报告。
游戏服务器接收失效节点数据以及失效报告。
步骤503、判断是否为第一个对该节点的失效报告,是则进入步骤504;否则进入步骤505。
步骤504、建立失效节点数据统计队列。
建立一个统计队列,用于记录关于该失效节点的数据,称为失效节点数据统计队列。
步骤505、将该报告中失效节点数据插入失效节点数据统计队列。
服务器将该报告中失效节点数据插入该失效节点的失效节点数据统计队列。
步骤506、服务器判断接收到的关于该失效节点的失效节点报告,是否达到预设的失效节点报告上限,是则进入步骤507;否则返回步骤501。
在只有一个节点报告失效的情况下,很有可能是报告失效的节点与该失效节点之间网络故障造成的,为了提高系统的可靠性,本发明实施例提供的在节点失效时的处理方法中采用了,设定一个数值,限制只有收到预定数目的失效报告时,才确认该节点失效的方法。当然,直接在收到第一个失效报告时,立即进行后续处理也是允许的。
步骤507、确定并保存失效节点退出时的状态。
服务器根据队列中失效节点数据进行统计,以多数相同的数据为准,确定失效节点退出时的状态,然后进行保存。
步骤508、服务器向发送报告的节点发送反馈信息。
步骤509、发送报告的节点接收服务器发送的反馈信息。
流程结束。
由于本发明实施例提供的分布式虚拟环境的管理方法实施例中,每个节点都以小区为单位保存数据,每个节点上以小区为单位的数据都可能被多个节点备份,如计算节点数据保存在与之直接联系的计算节点和数据更新节点,数据更新节点数据保存在与之直接联系的计算节点上,所以在出现节点意外失效时,就可以利用这些备份数据,获知失效节点时效时的数据,进行保存,提升了系统的可靠性。
以图1为例,节点120保存了小区106、小区107、小区110、及小区111的信息,当节点120失效时,与节点120直接通信的小区106内的计算节点,以及小区107、小区110、小区111内为节点120提供数据更新的节点会因节点120长时间不响应而确认节点120失效,并向游戏服务器报告,小区106中得知节点120失效的节点,保存了节点120上虚拟实体的数据,并向游戏服务器发送,游戏服务器根据小区106内节点发送的数据确定节点120上的虚拟实体退出时的所有状态信息,并进行保存。这样,在节点120恢复正常后,用户再次调出之前的虚拟实体时,就不会丢失该虚拟实体的数据。
在发生事件时,需要对相关节点发布该事件,然后以小区为单位对事件进行计算和计算结果的评估,下面本文将对本发明实施例提供的分布式虚拟环境的管理方法实施例发布事件的方法进行描述,具体流程见图6步骤601、计算事件影响的小区。
一个节点引发一个事件时,计算该事件的影响范围,根据事件影响范围与小区的交叠情况,计算该事件影响的小区,有时事件影响范围会超出一个小区范围,即同时影响多个小区。
步骤602、判断是否有事件影响到的小区不在该节点的关注范围,是则进入步骤603;否则进入步骤604。
步骤603、使用上文描述的加入新的小区的方法,将该小区加入该节点的关注范围。
步骤604、向所有受影响的小区内的计算节点发布事件信息。
流程结束,接着就以小区为单位对事件进行计算和计算结果的评估。
通过上述的发布事件的方法,只要发生事件时每个小区都会被多个节点计算,就能保证每个事件有多个节点同时参与计算,通过将多个节点的计算结果进行比较就可以实现避免少数节点的欺骗的行为。
网络中的用户指令首先以事件的形式在各个计算节点进行计算,所有获取小区数据更新的节点以直接获取状态的形式从计算节点获得游戏的发展信息,这些节点的信息与其数据源的计算节点状态数据一致。只要能够保证多个计算节点的计算一致,将计算节点的欺诈行为或数据错误降到最低,就能在一定程度上确保整个系统是安全一致的。
为了确保系统的一致性,本发明分布式虚拟环境的管理方法实施例提供了对节点数据进行校验的方法,具体做法见下文所述,具体流程参见图7步骤701、保存校验时刻的数据信息并向小区校验节点发送。
为了确保系统中数据的一致性,本发明分布式虚拟环境的管理方法实施例通过周期性以小区为单位检测各个节点上的数据来实现。
本发明分布式虚拟环境的管理方法实施例在全局统一时钟上建立一系列的监测时间点,作为统一的校验时刻,这些监测时间点的间隔时间很短,长度通常是相等且固定的,当然系统也可以根据其他得需求对这些监测时间点进行设定,每个节点在运行到校验时刻时,将自动保存当前的小区的状态信息,并向该小区内的一个统一的校验节点发送。
校验节点是对该小区状态数据进行统一校验的节点,该节点由于需要承担额外的计算任务,计算量较其他节点略大,需要比较好的性能也需要较高的可信度,所以通常由小区内的计算节点担任。而校验节点的选择,可以通过随机选择或基于信誉机制选举的方式确定。
在小区内部的节点中进行校验节点的选择时,随机选择方案是指在网络中根据一定的规则轮换选择校验节点,这种方案可以有效避免网络中多个节点相互勾结欺骗,但是选择的节点,其性能不能确保是所有节点中比较好的;基于信誉机制选举的方式,通过一种有效的信誉控制机制可以在小区的计算节点中,推选出一个一段时间内可信的节点,这样系统相对稳定。
参与某一小区校验的节点通常是该小区的计算节点,获取小区状态更新的节点一般不用参与校验,只要计算节点上的信息是正确的,那么获取计算节点发布的信息的更新节点就是正确的。参与校验的节点要向校验节点发送参与校验的时间点t,参与小区计算的节点个数N,也即该小区的计算节点数目,该节点保存的该小区内的对象总数M,也即该小区内计算节点和更新节点的数目之和,以及各个校验对象的状态信息,这里校验对象的状态信息可以是该校验对象的状态信息哈希值,以减少数据通信量,及方便比对。
步骤702、建立该校验时刻的校验列表。
校验节点在收到各计算节点发送来的信息后,建立该校验时刻的校验列表,包含各计算节点发送来的校验对象信息,及校验节点本身保存的校验对象信息,用于后续的比对。
步骤703、对数据信息进行比对,以少数服从多数的方式确定正确状态信息。
现举例说明校验列表的结构,及比对的方法,假设节点P1、P2、P3......PN向校验节点发送了在校验时刻t需校验的状态信息,这些节点加上校验节点一共是N个,每个节点发送来的状态信息哈希值记为H1、H2、H3......HM,其中M为小区内的对象总数。校验节点建立的t时刻的校验列表如表1所示。
表1、校验列表

表1中记录了各个节点发送来的校验对象的状态信息哈希值,通过对这些哈希值的比对,获得多数一致的结果为最终结果,如H1,P1、P2、P4......到PN发送来的哈希值都是h11,只有P3发送来的哈希值是h15,所以H1将以h11为最终正确的结果,那么P1、P2、P4......到PN对H1的校验结果都是一致,而P3对H1的校验结果就是不一致。
步骤704、向小区内参与校验的节点发送校验结果。
校验节点向校验结果为一致的节点发送状态一致通知,向校验结果为不一致的节点发送状态不一致通知,该不一致通知中要包含一个检验结果为一致的节点信息,也即一个可靠节点信息。
以表1为例,就需要向节点P3发送状态不一致通知,该通知中包含P1、P2、P4......到PN之中任一个节点的信息,还要向其他节点发送状态一致通知。
步骤705、各接受校验的节点接收校验结果。
步骤706、判断该校验时刻信息是否正确,是则流程结束;否则进入步骤707。
步骤707、校正节点状态。
进入此步骤说明该接受校验的节点在校验时刻t的数据出现了错误,需要校正该节点的状态信息,该节点将通过通知中携带的可靠节点信息,连接到该可靠节点,获取正确的t时刻状态信息。
此时,可以直接用在可靠节点获取的状态信息覆盖该节点上当前的记录的状态信息,但是由于进行校验需要花费一定的时间,虽然这个时间很短,也导致节点在获取到正确的t时刻状态信息时,t时刻已经成为了一个过去的时间点,在t时刻到当前的时间之间,小区可能会被其他的事件所影响,这时直接用在可靠节点获取的状态信息覆盖该节点上当前的记录的状态信息,可能会忽略掉这些新发生事件的影响。
为了准确的校正节点上的信息,在节点运行到校验时刻,保存状态信息的同时,建立一个队列保存校验时刻后到收到校验结果并进行相应处理前的所有事件,在收到不一致信息获取正确的t时刻状态信息后,根据状态不一致对象和队列中事件相关情况及因果关系,对节点进行校验。
参与校验的节点,在接收到校验节点发送来的不一致状态通知后,把与不一致对象状态事件相关的事件,以及与相关事件因果相关的事件依次检索出来,然后从最近事件起依次建立反事件处理并向相关节点发送。
需要说明的是,有些时候,由于客观原因,某些应该参与校验的节点,没能及时把校验信息发送到校验节点,此时,校验节点对那些没有及时参与校验的节点,直接发送校验结果不一致通知,防止这一部分节点由于自身网络或机器性能影响游戏向前推进,这样可以顺利进行下一步操作。
以上既是对本发明实施例提供的分布式虚拟环境的管理方法实施例工作方式的描述,另外本发明实施例提供的分布式虚拟环境的管理方法实施例也提供了设定小区范围的方法上文提到小区的范围要比可视区域要小,但是过小也是不合适的,因为小区过小就造成,节点的移动会频繁在各小区间移动,带来一些额外的通信数据,为了限制通信数据量,若小区为方形,可以要求可视范围直径小于或等于二倍的小区边长,即小区的边长不小于可视范围直径的一半,这样使得节点可视范围中的小区个数一直保持小于等于9,若小区为六边形,可以要求小区的对角线不小于可视范围直径的一半,在小区为其他形状时也基本遵循这样的规则。
同时,节点的计算范围决定哪些节点与该节点构成通信组,对同一个小区进行计算,而参与同一小区计算的节点不宜过多,这就决定了小区不宜过大。另一方面,小区过小时,一个事件覆盖多个小区,参与该事件计算的节点从多个小区注册过来,却都是为了计算同一个事件,这会引起小区之间的重复通信。小区的大小界定是一个重要的问题。在整个游戏空间大小一定的前提下,小区越小,称之为空间划分粒度越细。空间划分粒度关系到空间数据索引频繁程度。粒度过细,节点在虚拟环境中的移动,可能引起分区间的数据频繁交换;粒度过粗,节点控制的范围过大,负载过大。举例说明,设100×100的虚拟空间,可以按照每小区15×15或5×5进行划分,一个虚拟人物可以看到空间中10×10的范围,则在5×5的划分方式中,节点每直线行进5步就看到一个新的小区,进行以小区为单位的数据发现。而在15×15的划分方式中,一个小区内的节点个数提高到了5×5划分方式的9倍,每个节点产生事件都要发送给小区内所有节点,数据通信量大大增加。因此,可以要求小区的边长略大于或等于平均事件影响范围的直径。
另外,小区最好不要交叠,每个小区大小也最好是固定的,因为在交叠区会产生一定的附加计算和通信,而小区动态变化,会不便于节点进行资源的查找。
以上是以大型多人在线网络游戏为例,对本发明实施例提供的分布式虚拟环境的管理方法实施例的具体描述,至于其他的其他分布式虚拟环境,如虚拟社区,其工作方式都和上文描述的大致相同。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,和上述的分布式虚拟环境的管理方法实施例基本相同。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
下面仍然以大型多人在线网络游戏为例,对本发明实施例提供的分布式虚拟环境的系统实施例进行具体描述。
本发明实施例提供的分布式虚拟环境的系统实施例,通常包含多个节点,所述节点位于所述系统中的小区内,这些小区的面积小于节点的可视范围,现以图8为例对本发明实施例提供的分布式虚拟环境的系统实施例的结构进行说明。
系统800中包含多个小区,这些小区是小区810、小区820、小区830、小区840、小区850、小区860......等等。每个小区中又包含一些节点,小区810中包含节点811、节点812.......等等,小区820中包含节点821、节点822......等等,小区830中包含节点831、节点832......等等,小区840中包含节点841、节点842......等等,小区850中包含节点851、节点852......等等,小区860中包含节点861、节点862......等等。本图中节点的数量和小区的数量都只是举例来说,实际上系统只要有多于一个小区即可,每个小区内的节点数没有限制。
其中,每个小区的范围都要小于系统中节点的可视范围。
节点用于保存自身关注范围内的所有小区信息;在发生游戏事件时,若节点参与计算的小区被事件影响范围涉及,节点需要参与该事件的计算,计算事件影响小区的结果,并将计算结果发送到接收该小区更新信息的节点,也即更新节点,更新节点连接到对事件进行计算的节点,接收该关于小区的计算结果。
整个系统具体的工作方式和上文对本发明实施例提供的分布式虚拟环境的管理方法实施例的描述基本一致,在此不再重复描述。
本发明实施例提供的节点的具体实施方式
的内部结构如图9所示,包含操作控制单元901、本地操作指令单元902、操作指令组903、地图形态组904、玩家状态结构组905、校验码单元906、界面显示单元907、通信单元908、计算单元909、以及存储单元910。
存储单元910用于存储节点关注范围内的小区信息,其中小区为分布式虚拟环境被服务器划分出的区域,其面积比节点可视范围小;计算单元909用于在节点参与计算的小区被事件影响到时,计算事件影响小区的结果,并更新存储单元910;通信单元908用于将计算单元910的计算结果发送到所述事件影响到的小区的获取更新的节点。
操作控制单元901用于接收用户终端输入的键盘鼠标指令。
本地操作单元902用于对用户指令进行编码,加盖时间戳。
界面显示单元907用于将操作指令组903、地图形态组904、玩家状态结构组905要呈现的情节相结合,在显示终端显示。
校验码单元906用于,校验通信单元908接收到的其他节点发送来的需校验的信息;此时通信单元还用于,向发送校验信息的节点反馈校验结果。
计算单元909参与所有节点计算的事件信息的计算,将计算结果根据需要进行前端显示或通过通信单元908向网络中其它节点传送。我们的系统中,计算单元909要负责事件和状态发布时对数据的封装,为每个发送到通信单元908的数据加上目标地址和时间戳。
通信单元908负责所有网络中传输承载的数据分类和传输,事件数据发送到计算单元909,状态数据发送到界面显示单元907。
整个游戏系统中节点都处于平等的位置。用户输入指令,系统将指令转换为事件信息,通过核心计算进程处理转化为状态信息,进行界面显示。另外事件信息和状态信息通过通信单元908同步对其他节点发送。本发明实施例提供的节点的具体实施方式
具体的工作方式和上文对本发明实施例提供的分布式虚拟环境的管理方法实施例的描述基本一致,在此不再重复描述。
以上对本发明实施例所提供的一种分布式虚拟环境的管理方法,及一种分布式虚拟环境的系统进行了详细介绍,本文中应用了具体个例对本发明实施例的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明实施例的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明实施例的限制。
权利要求
1.一种服务器中分布式虚拟环境的管理方法,其特征在于,所述方法包括服务器将所述分布式虚拟环境划分为面积比节点可视范围小的小区,以使处于所述分布式虚拟环境中的节点保存所述节点关注范围内的小区信息,并使小区的参与计算的节点在事件影响到小区时,计算事件影响小区的结果,将计算结果发送到所述事件影响到的小区的获取更新的节点。
2.如权利要求1所述的服务器中分布式虚拟环境的管理方法,其特征在于,所述方法还包括所述服务器为所述小区的参与计算的节点数目设置上限。
3.如权利要求1或2所述的服务器中分布式虚拟环境的管理方法,其特征在于,所述方法还包括在所述节点失效时,所述服务器接收与所述失效节点通信的节点发送的所述失效节点数据,所述服务器接收到所述失效节点数据时,确认所述失效节点已从系统退出,保存所述失效节点退出系统时的状态。
4.如权利要求3所述的服务器中分布式虚拟环境的管理方法,其特征在于,所述服务器接收到所述失效节点数据包括所述服务器接收到预定数目节点发送的所述失效节点数据时;所述保存所述失效节点退出系统时的状态包括收集所有节点发送的所述失效节点数据,并对所述数据进行比较,以多数一致的结果为准,确定所述失效节点退出系统时的状态,并进行保存。
5.一种节点中分布式虚拟环境的管理方法,其特征在于,所述方法包括处于分布式虚拟环境中的节点保存所述节点关注范围内的小区信息,所述小区为分布式虚拟环境被服务器划分出的区域,所述小区面积比节点可视范围小;事件影响到的小区的参与计算的节点计算事件影响小区的结果,并将计算结果发送到所述事件影响到的小区的获取更新的节点。
6.如权利要求5所述的节点中分布式虚拟环境的管理方法,其特征在于,所述方法还包括所述节点根据自身的性能和网络速度决定是否作为所述小区的参与计算的节点。
7.如权利要求5所述的节点中分布式虚拟环境的管理方法,其特征在于,所述方法还包括所述节点为小区内获取更新的节点,在所述小区的参与计算的节点数目为一个时,提升为所述小区参与计算的节点;或者所述节点在所述小区的参与计算的节点数目为一个时,请求服务器参与所述小区的计算。
8.如权利要求5所述的节点中分布式虚拟环境的管理方法,其特征在于,所述方法还包括在所述节点关注范围需要加入新的小区时,所述节点连接到所述新的小区的参与计算的节点,获取并保存所述新的小区的信息。
9.如权利要求8所述的节点中分布式虚拟环境的管理方法,其特征在于,所述方法还包括判断所述节点是否需要参加所述新的小区的计算,若需要则所述节点成为所述小区的参与计算节点,若不需要则所述节点成为所述小区的获取更新节点。
10.如权利要求8或9所述的节点中分布式虚拟环境的管理方法,其特征在于,所述节点关注范围需要加入新的小区时包括所述节点的可视范围进入到新的小区时,所述节点需要加入所述新的小区;或者事件的影响范围涉及了不在引发事件的节点的关注范围内的新的小区,则所述节点需要加入所述新的小区。
11.如权利要求5所述的节点中分布式虚拟环境的管理方法,其特征在于,所述方法还包括所述节点在退出小区时,向所述小区中与所述节点有通信的节点发送退出小区通知,收到所述通知的节点修改该节点上保存的所述小区的信息。
12.如权利要求11所述的节点中分布式虚拟环境的管理方法,其特征在于,所述方法还包括在所述节点退出系统时,所述节点发送完退出小区通知后,向服务器发送退出系统请求,以使所述服务器收到所述退出系统请求时保存所述节点退出时的数据。
13.如权利要求5所述的节点中分布式虚拟环境的管理方法,其特征在于,所述方法还包括在所述节点失效时,与之通信的节点将保存的所述失效节点数据传送给服务器,以使所述服务器接收到所述失效节点数据时,确认所述失效节点已从系统退出,保存所述失效节点退出系统时的状态。
14.如权利要求5所述的节点中分布式虚拟环境的管理方法,其特征在于,所述获取更新的节点获取所述参与计算的节点发布的计算结果包括所述获取更新的节点在所述小区的参与计算的节点中挑选出一个网络连接速度达到预设条件的参与计算的节点,将所述获取更新的节点连接到所述参与计算的节点,获取所述参与计算的节点发布的计算结果。
15.如权利要求5所述的节点中分布式虚拟环境的管理方法,其特征在于,所述方法还包括从所述小区的节点中挑选出校验节点,到预设的时间时,所述小区内的节点自动保存当前小区的状态信息,并将所述状态信息或需校验对象的哈希值发送到所述校验节点,由所述校验节点对所述状态信息或所述哈希值进行核对,以多数相同的结果为准,并向校验结果不一致的节点反馈校验结果,所述校验结果不一致的节点连接到校验结果一致的节点,获取所述自动保存的当前小区的状态信息,覆盖所述不一致的节点的状态。
16.如权利要求15所述的节点中分布式虚拟环境的管理方法,其特征在于,所述方法还包括到预设的时间时,所述节点建立队列保存所述校验时刻后到收到校验结果并进行相应处理前的事件;覆盖所述不一致的节点的状态后,根据队列中保存的事件修正所述不一致的节点的状态。
17.如权利要求5所述的节点中分布式虚拟环境的管理方法,其特征在于,将所述分布式虚拟环境划分为比可视范围小的小区包括将所述分布式虚拟环境划分为比系统设定的可视范围小的小区,若小区为方形,所述小区的边长不小于所述可视范围直径的一半;若小区为六边形,所述小区的对角线不小于所述可视范围直径的一半。
18.一种分布式虚拟环境的系统,其特征在于,所述系统包含多个节点,所述节点位于所述系统中的小区内,所述小区为分布式虚拟环境被划分出的区域,所述节点的可视范围大于所述小区的面积;所述节点用于保存自身关注范围内的所述小区信息,在事件影响所述节点参与计算的小区时,计算事件影响小区的结果,并将计算结果发送到获取所述小区更新信息的节点。
19.如权利要求18所述的分布式虚拟环境的系统,其特征在于,所述节点还用于,在所述节点的关注范围需要加入新的小区时,连接到所述新的小区的参与计算的节点,获取并保存所述新的小区的信息。
20.如权利要求18所述的分布式虚拟环境的系统,其特征在于,所述节点还用于,在所述节点退出小区时,向所述小区中与所述节点有通信的节点发送退出小区通知,收到所述通知的节点修改该节点上保存的所述小区的信息。
21.如权利要求20所述的分布式虚拟环境的系统,其特征在于,所述系统还包括服务器;所述节点还用于,在所述节点退出系统时,向所述服务器发送退出系统请求;所述服务器用于,在收到所述退出系统请求后,保存所述节点退出时的数据。
22.如权利要求21所述的分布式虚拟环境的系统,其特征在于,所述节点还用于,在有与之通信的节点失效时,将保存的所述失效节点数据传送给服务器,所述服务器接收到所述失效节点数据时,确认所述失效节点已从系统退出,保存所述失效节点退出系统时的状态。
23.一种节点,其特征在于,所述节点包括存储单元用于存储所述节点关注范围内的小区信息,所述小区为分布式虚拟环境被服务器划分出的区域,所述小区面积比节点可视范围小;计算单元用于在节点参与计算的小区被事件影响到时,计算事件影响小区的结果,并更新存储单元;通信单元用于将计算单元的计算结果发送到所述事件影响到的小区的获取更新的节点。
24.如权利要求23所述的节点,其特征在于,所述计算单元还用于,根据节点的性能和网络速度从所述小区内的节点中挑选出所述参与计算的节点。
25.如权利要求23所述的节点,其特征在于,所述通信单元还用于,在所述节点需要加入新的小区时,将节点连接到所述新的小区的参与计算的节点获取所述新的小区的信息,并保存在所述存储单元。
26.如权利要求23所述的节点,其特征在于,所述通信单元还用于,在所述节点退出小区时,向所述小区中与所述节点有通信的节点发送退出小区通知。
27.如权利要求23所述的节点,其特征在于,所述通信单元还用于,在与之通信的节点失效时,将所述存储单元上保存的所述失效节点数据传送给服务器。
全文摘要
本发明公开了一种服务器中分布式虚拟环境的管理方法服务器将分布式虚拟环境划分为面积比节点可视范围小的小区,以使处于分布式虚拟环境中的节点保存节点关注范围内的小区信息。本发明还公开了一种节点中分布式虚拟环境的管理方法处于分布式虚拟环境中的节点保存节点关注范围内的小区信息;事件影响到的小区的计算节点计算事件影响小区的结果,并将计算结果发送到该小区的更新节点,更新节点获取计算节点发布的计算结果。本发明还公开了一种分布式虚拟环境的系统,该系统包含多个节点,节点位于小区内。本发明还公开了一种节点包括存储单元,计算单元,通信单元。通过应用本发明可以有效降低节点的负载。
文档编号H04L12/28GK101072160SQ20071011119
公开日2007年11月14日 申请日期2007年6月14日 优先权日2007年6月14日
发明者李金龙, 刘姗姗, 沈静波, 王煦法, 王铁英 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1