CN101136775B - 基于出生地管理的虚拟对象所有权组织方法 - Google Patents
基于出生地管理的虚拟对象所有权组织方法 Download PDFInfo
- Publication number
- CN101136775B CN101136775B CN200710119897XA CN200710119897A CN101136775B CN 101136775 B CN101136775 B CN 101136775B CN 200710119897X A CN200710119897X A CN 200710119897XA CN 200710119897 A CN200710119897 A CN 200710119897A CN 101136775 B CN101136775 B CN 101136775B
- Authority
- CN
- China
- Prior art keywords
- ownership
- virtual objects
- server node
- node
- birthplace
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种虚拟对象的所有权组织方法,具体说是在分布式多个服务器节点中的虚拟对象所有权的管理和转移方法。本方法首先根据虚拟对象创建的位置,划分虚拟对象与服务器节点的逻辑关系,并以此为基础维护和管理系统中所有虚拟对象的所有权信息;然后按以下步骤转移虚拟对象所有权:1)用户请求获取虚拟对象所有权;2)查找到当前拥有虚拟对象所有权的拥有者;3)拥有者放弃所有权,实际转移虚拟对象所有权。本发明基于出生地管理的虚拟对象所有权组织方法具有数据易于维护、所有权查找准确,以及占用网络带宽低等优点,适用于虚拟对象所有权转移次数较频繁的系统中,如网络游戏、军事仿真等,能够提高整体系统扩展性。
Description
技术领域
本发明属于虚拟环境和网络游戏领域,具体地说是一种多服务器节点管理多用户架构中的虚拟对象所有权的维护和控制技术。
背景技术
所有权是指拥有利用对象行使完全的物权权能,包括占有、使用、收益或处分的权利,虚拟所有权同样有类似的特征,只是权利主体和占用的对象的定义有所区别。虚拟所有权的权利主体可以是现实世界中的人,也可以是虚拟世界中的虚拟化身,权利主体可以利用对象行使不同的权利,这里以用户节点表示虚拟所有权的权利主体,而虚拟所有权的对象是指在虚拟世界中创建的对象,比如网络游戏中的武器装备,军事战场仿真中的坦克飞机等虚拟对象,也可以是网站提供的个人邮箱,聊天工具的聊天号码等,这些均为虚拟所有权的行使对象。通常对象的权利主体可通过直接或间接的方式控制和操作虚拟对象以行使自己的权利。正由于虚拟对象的所有权表示了一种使用的权利,因此如何维护虚拟对象所有权信息是虚拟系统必须考虑的重要因素之一,以保证虚拟所有权的准确性及一致性。
在虚拟世界中,通常有虚拟对象所有权需要转移这样的情形,比如:某个虚拟对象首先由用户节点A创建,用户节点A拥有其所有权并在对象上执行不同操作,如更新、删除等,然后希望该虚拟对象由另一个用户节点B继续操作,则此时操作虚拟对象的权利,即虚拟对象的所有权应从用户A转移到用户B上。如何正确并迅速地完成虚拟对象所有权的转移,是维护虚拟对象所有权信息的热点和难点之一。近年来,为了支持大规模的虚拟应用系统,较成熟的系统多数采用了分布式多服务器节点的网络架构,每个服务器节点负责管理系统中一部分用户,而多个服务器节点之间往往采用高速网络连接,这种架构可以较好地支撑大规模的虚拟应用系统。本发明提出的方法主要应用在分布式多个服务器节点的系统应用之中,尤其是网络游戏、军事仿真等虚拟对象所有权转移发生较频繁的仿真系统。
虚拟对象所有权如何进行转移,主要由系统中所有权信息的组织方式来决定,目前虚拟对象所有权的组织方式可分为典型两种:集中式和分布式。其中集中式所有权组织方式是设置单独的所有权信息服务器节点,维护系统中所有虚拟对象的所有权信息,虚拟对象所有权在不同用户节点间进行转移时,需要向单独的所有权信息服务器节点发送查询所有权,获取所有权等请求,以及所有权转移成功通知等操作。这种方式的优点是实现简单,所有权的一致性容易控制,但随着用户节点规模的扩大,虚拟对象所有权转移的频率提高,集中的服务器节点易成为系统的瓶颈,限制了虚拟应用系统的规模。分布式所有权组织方式是在每个服务器节点上都维护了系统中所有虚拟对象所有权信息,虚拟对象的所有权定位迅速,所有权转移速率快,也避免了集中式组织方式的瓶颈问题,但在不同服务器节点之间维护所有权信息的一致性代价较高,即使可采用一些补偿技术,如使用组播通讯和应用弱一致性思想等,但由于组播的本身特点又会引起占用网络带宽大,可靠性差等问题,在多服务器节点之间维护所有权信息的代价依然较重,从而影响虚拟对象所有权转移的效率和整体系统的规模性。因此说目前这两种所有权组织方式都没有很好的解决多服务器节点架构的大规模虚拟系统中如何管理虚拟对象所有权的问题。
总的来说,在分布式多服务器节点架构的虚拟系统中,如何设计并采用有效的虚拟对象所有权组织方式,以降低网络通讯负载,提高虚拟所有权转移的正确性和速率,从而直接影响整体虚拟系统的规模性和扩展性,是计算机网络和虚拟环境领域中所面临的重要问题之一。
发明内容
本发明的目的是提供一种虚拟环境领域中虚拟对象所有权的组织方法,以便在分布式多服务器节点架构的虚拟应用系统中能够快速有效的进行虚拟对象所有权的转移,并尽量降低网络通讯负载,提高系统可扩展性。
为完成本发明的目的,本发明采用的技术方案为:
一种基于出生地管理的虚拟对象所有权组织方法,用于分布式多个服务器节点的虚拟对象所有权维护,其中,服务器节点中包括一个主控服务器节点,其余每个服务器节点各管理多个用户节点,其包含以下步骤:
1)根据虚拟对象创建的位置,划分虚拟对象与服务器节点的逻辑关系,并以此为基础维护和管理系统中所有虚拟对象所有权信息;
2)虚拟对象所有权转移流程,可进一步分为:
2.1)用户请求获取虚拟对象所有权;
2.2)查找到当前拥有虚拟对象所有权的拥有者;
2.3)拥有者放弃所有权,实际转移虚拟对象所有权。
与现有的技术方法相比,本发明的有益效果是:
1、本发明在采用分布式多服务器节点架构的虚拟应用系统中,设定虚拟对象与服务器节点的逻辑关系,并以此为基础,层次化维护系统中不同虚拟对象的所有权信息。该方法重点考虑了系统的可扩展性,虚拟对象所有权的组织通过采用虚拟对象与服务器节点之间的逻辑关系和层次关系来进行,这与其它的所有权组织方式相比,可为系统减少不必要的冗余网络和计算负载。本发明涉及的技术结构简单,易于扩展,可靠性强。
2、以层次式逻辑结构维护虚拟对象所有权信息,本发明通过引入出生地服务器节点、本地对象和外来对象等逻辑概念,可使每个虚拟对象与服务器节点之间形成一种逻辑上的关联性。以此为基础,每个服务器节点只需分别管理与其逻辑相关的虚拟对象所有权信息,其它虚拟对象的信息则无需维护,这样既避免了集中组织方式的瓶颈问题,并且由于服务器节点之间不需以组播通讯维护所有权信息一致性,充分减少了网络带宽的占用,降低了服务器的处理负载,同时提高了虚拟所有权转移的可靠性。
3、准确查找虚拟对象所有权当前状态,提高虚拟对象所有权转移速率。本发明提出的方法在虚拟对象所有权实际发生转移时,可通过虚拟对象的出生地服务器节点的维护信息,迅速准确定位到当前拥有虚拟所有权的用户节点,避免了无效的查找操作,并且以单独的主控服务器节点维护出生地节点退出的虚拟对象的所有权信息,提高了系统的灵活性和可靠性。
附图说明
图1为基于出生地管理的虚拟对象所有权的应用结构图;
图2为虚拟对象所有权转移的情形图;
图3-图6为查找虚拟对象所有权算法流程图;
图7为实际转移虚拟对象所有权流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步详细的描述。
本发明主要适用于分布式多服务器节点架构的虚拟应用系统中,目前为了支撑更多的并发用户,和平衡分配系统负载,虚拟系统多数都采用了如图1所示的多服务器节点架构。系统设置有n个服务器节点,每个服务器节点只负责管理一定范围内的用户节点,服务器节点之间的通讯量较少,每个服务器节点可记作SNi(ServerNode,i=1,2,…,n)。通常还会设置一个主控服务器节点MN(MasterNode),用来完成定期查询各个服务器节点负载状况等协调功能。系统中的用户节点一定由某个服务器节点管理,每个服务器节点可以管理多个用户节点,用户节点记作UN(UserNode),如果服务器节点SN管理用户节点UN,或用户节点UN由服务器节点SN管理,则可记作UN∈SN,且用户节点UN称之为服务器节点SN的本地用户。
根据创建虚拟对象的用户节点的位置,可以此设置虚拟对象与服务器节点之间一定的逻辑关系,从指定虚拟对象的角度出发,有:
出生地节点:管理创建指定虚拟对象的用户的服务器节点;
非出生地节点:所有服务器节点中除了出生地节点之外的其它节点;
主控服务器节点:管理出生地节点已经退出的虚拟对象的独立节点,通常系统中只设置一个主控服务器节点。
从指定服务器节点的角度出发,其管理的虚拟对象所有权信息,可分为:
本地对象:出生地是指定服务器节点的虚拟对象;
外来对象:出生地是其它服务器节点,但所有权已经转移到指定服务器节点管理的本地用户节点之上的虚拟对象。
基于上面所述的逻辑关系,系统中虚拟对象的所有权信息由其出生地节点维护,如果出生地节点已经退出,则由主控服务器节点继续维护所有权信息。每个服务器节点需要管理并记录本地虚拟对象的所有权信息,包括所有权已经转移到其它服务器节点的用户上的本地对象以及没有用户拥有所有权的本地对象,后者可称之为孤儿对象,同时还要管理外来对象的所有权信息。用户节点UN拥有虚拟对象o所有权,可记作UN<o,服务器节点SN是虚拟对象o的出生地节点,可记作SN∝o。
如图2所示,在基于出生地管理的虚拟对象所有权组织方法中,虚拟对象所有权进行转移有如图所示的四种不同情形:
情形(1):虚拟对象所有权在出生地节点的本地用户之间进行转移;
情形(2):虚拟对象所有权在非出生地节点的本地用户之间进行转移;
情形(3):虚拟对象所有权在出生地节点的本地用户和非出生地节点的本地用户之间进行转移,其中包括往返转移两种不同情形;
情形(4):虚拟对象所有权在两个非出生地节点的本地用户之间进行转移。
基于出生地管理的虚拟对象所有权组织方法依照虚拟对象与服务器节点的逻辑关系维护系统中虚拟对象所有权信息,并详细分析不同情形下的所有权转移流程,保证虚拟对象所有权可以成功查找和进行转移,以及实际进行转移时正确更新相关的所有权信息集。下面从服务器节点维护的所有权信息集和虚拟所有权查找及转移两个方面详细描述本发明方法。
服务器节点所有权关系集:在每个服务器节点中保存,记录了两种类型虚拟对象的所有权信息:(1)本地对象;(2)外来对象。
本地对象所有权关系集,可记作LOR(LocalOwnershipRelation),某个服务器节点SNi的LOR可表示如下:
虚拟对象Obj的出生地节点是SNi,UNcur项指明了当前拥有对象Obj所有权的用户,该用户可以是本地用户节点,也可以是其它服务器节点管理的用户节点。如果虚拟对象Obj是孤儿对象,则UNcur项为空,记作NULL值。
外来对象所有权关系集,可记作ROR(RemoteOwnershipRelation),某个服务器节点SNi的ROR可表示如下:
虚拟对象Obj的所有权已经转移到服务器节点SNi管理的本地用户UNloc上,对象的出生地节点是服务器节点SNb。如果对象所有权从本地用户转移到其它服务器节点的用户上,则需要从ROR集中删除对象的对应项;反之,如果有新的对象所有权转移到本地用户上,则需要在ROR集中添加新的虚拟对象。
主控服务器节点所有权关系集:在主控服务器节点保存,记录了出生地服务器节点已经退出系统的虚拟对象所有权信息。记作MOR(MasterOwnershipRelation),表示如下:
由于主控服务器节点不直接管理用户节点,因此MOR关系集中记录管理当前拥有对象Obj所有权用户UNx的服务器节点SNcur,如果虚拟对象Obj是孤儿对象,则SNcur为NULL值。
本发明基于出生地管理的虚拟对象所有权组织方法,需要解决如何正确查找对象所有权以及所有权实际转移的信息更新两个主要问题,可从对象所有权转移的流程说明本发明的相关处理方法,转移流程主要包括三个步骤:
1)用户节点请求获取指定虚拟对象所有权;
2)查找到当前拥有虚拟对象所有权的拥有者;
3)拥有者放弃所有权,实际转移虚拟对象所有权。
下面分别详细陈述:
步骤1)用户节点请求获取指定虚拟对象所有权
所有权的转移通常是在有新的用户节点希望获得所有权的情形下发生,如果没有用户节点请求获取对象所有权,且该对象的当前拥有者如果放弃所有权,则该对象成为孤儿对象。当有用户节点UNr请求获取指定虚拟对象o所有权时,获取请求通常会发送到管理用户UNr的服务器节点SNi上。
步骤2)查找到当前拥有虚拟对象所有权的拥有者,该流程可再分为三个主要子步骤,如下:
2.1)在管理用户的服务器节点SNi上处理获取虚拟对象o所有权请求;
2.2)在虚拟对象o的出生地服务器节点SNb上或主控服务器节点MN上处理获取虚拟对象o所有权请求;
2.3)在管理当前拥有虚拟对象o所有权用户的服务器节点SNj上处理获取虚拟对象o所有权请求。
如图3所示,子步骤2.1)的流程如下所述:
2.1.1)服务器节点SNi接收到本地用户UNr的获取虚拟对象o所有权请求,并在其维护的LOR集中查找对象o的对应项,如果查找成功,则证明服务器节点SNi即是对象o的出生地节点,可执行流程A.2.2.2);如果查找失败,则执行流程2.1.2);
2.1.2)在服务器节点SNi的ROR集中查找对象o的对应项,如果查找成功,则证明当前拥有所有权的用户UNloc就是本地用户节点,可直接转发所有权获取请求到对象o的UNloc项,步骤2)完成;如果查找失败,则执行流程2.1.3);
2.1.3)查找到虚拟对象o的出生地服务器节点SNb,并转发获取所有权请求到出生地节点SNb上,执行子步骤2.2)。
在子步骤2.2)中如果虚拟对象o的出生地服务器节点SNb未退出,则由节点SNb处理请求获取虚拟对象所有权请求,如果已经退出,则由主控服务器节点MN处理获取所有权请求。两种情形以(A)和(B)区分,分别详述流程如下:
(A).出生地服务器节点SNb处理获取虚拟对象o所有权请求流程,如图4所示,详细流程如下:
A.2.2.1)对象o的出生地服务器节点SNb接收到服务器节点SNi转发的获取对象o所有权请求,首先在其维护的LOR集中查找到对象o的对应项,由于服务器节点SNb是对象o的出生地,所以一定可以查找成功,执行流程A.2.2.2);
A.2.2.2)判断对象o的UNcur项是否是出生地服务器节点SNb的本地用户,如果是,则可直接转发所有权获取请求到对象o的UNcur项,步骤2)完成;如果不是,则执行流程A.2.2.3);
A.2.2.3)判断对象o的UNcur项是否为NULL值,如果是NULL值,则说明对象o是孤儿对象,则所有权获取请求可以满足,更新出生地节点SNb的LOR集,并通知服务器节点SNi及其用户UNr所有权获取成功,服务器节点SNi在其ROR集中添加对象o相应项,所有权转移完成,不需执行子步骤2.3);如果UNcur项不为NULL值,则执行流程A.2.2.4);
A.2.2.4)在对象o的UNcur项不为NULL值时,查找到管理UNcur用户节点的服务器节点SNj,并转发获取虚拟对象o所有权请求到服务器节点SNj上,执行子步骤2.3)。
(B).主控服务器节点MN处理获取虚拟对象o所有权请求流程,如图5所示,详细流程如下:
B.2.2.1)主控服务器节点MN接收到服务器节点SNi转发的获取虚拟对象o所有权请求,并在其MOR集中查找到虚拟对象o的对应项,执行流程B.2.2.2);
B.2.2.2)判断对象o的SNcur项是否为NULL值,如果是NULL值,则说明对象o是孤儿对象,则所有权获取请求可以满足,更新主控服务器节点的MOR集,并通知服务器节点SNi及其用户UNr所有权获取成功,服务器节点SNi在其ROR集中添加对象o相应项,所有权转移完成,不需进行子步骤2.3),如果SNcur项不为NULL值,则执行流程B.2.2.3);
B.2.2.3)在对象o的SNcur项不为NULL值时,转发获取虚拟对象o所有权请求到服务器节点SNcur上,执行子步骤2.3)。
子步骤2.3)是在管理当前拥有虚拟对象o所有权用户的非出生地服务器节点SNj上处理获取虚拟对象o所有权请求,如图6所示,详细流程如下:
2.3.1)服务器节点SNj接收到出生地服务器节点SNb或主控服务器节点MN转发的获取虚拟对象o所有权请求,并在其ROR集中查找到对象o的对应项,执行流程2.3.2);
2.3.2)转发所有权获取请求到对象o的UNloc项用户节点,至此步骤2)完成。
步骤3)拥有者放弃所有权,虚拟对象所有权进行实际转移
只有孤儿对象可以在请求获取对象所有权时,由出生地服务器节点SNb或主控服务器节点MN直接转移所有权,并更新各自的LOR或MOR信息集。如果对象所有权当前由某用户节点拥有,则只有该用户同意释放所有权时,对象所有权才可以成功转移,下面说明虚拟对象o所有权转移的流程,如图7所示,详细流程如下所示:
3.1)当前拥有对象o所有权的用户节点UNo释放所有权,管理用户UNo的服务器节点SNx接收到释放所有权的通知,执行流程3.2);
3.2)判断虚拟对象o所有权的新拥有者UNr是否是服务器节点SNx的本地用户,如果是,则执行流程3.3);如果不是,则转发所有权获取成功通知到管理用户UNr的服务器节点SNi上,并执行流程3.4);
3.3)在服务器节点SNx的LOR集中是否查找到对象o,如果查找成功,则证明服务器节点SNx是出生地节点,更新其LOR集中对象o的相应项,并通知用户UNr获取所有权成功;如果查找失败,则证明服务器节点SNx是非出生地节点,更新其ROR集中对象o的相应项,同样通知用户UNr获取所有权成功,步骤3)完成;
3.4)在服务器节点SNx的LOR集中是否查找到对象o,如果查找成功,则证明服务器节点SNx是出生地节点,更新其LOR集中对象o的相应项,服务器节点SNi则一定是非出生地节点,在其ROR集中添加对象o相应项,并通知用户UNr获取所有权成功,步骤3)完成;如果查找失败,执行流程3.5);
3.5)在服务器节点SNi的LOR集中是否查找到对象o,如果查找成功,则说明服务器节点S Ni是出生地节点,更新其LOR集中对象o的相应项;如果查找失败,则说明服务器节点SNi是非出生地节点,在其ROR集中添加对象o相应项,并通知出生地节点或主控服务器节点,更新各自的LOR集或MOR集。无论查找成功与否,都通知用户UNr获取所有权成功,步骤3)完成。
以上所述是基于出生地管理的虚拟对象所有权组织方法的基本实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明的原理前提下,还可以进行若干改进和润饰,这些改进和润饰也应视为本发明方法的保护范围。
Claims (6)
1.一种基于出生地管理的虚拟对象所有权组织方法,用于分布式多个服务器节点的虚拟对象所有权维护,其中,服务器节点中包括一个主控服务器节点,其余每个服务器节点各管理多个用户节点,其特征在于:
首先根据虚拟对象创建的位置,划分虚拟对象与服务器节点的逻辑关系,并以此为基础维护和管理系统中所有虚拟对象所有权信息,所述虚拟对象与服务器节点的逻辑关系划分如下:
从指定虚拟对象的角度出发,有:
出生地节点:管理创建虚拟对象的用户的服务器节点;
非出生地节点:所有服务器节点中除了出生地节点之外的其它节点;
主控服务器节点:管理出生地节点已经退出的虚拟对象所有权信息的独立节点,通常系统中只设置一个主控服务器节点;
从指定服务器节点的角度出发,其管理的虚拟对象所有权信息分为:
本地对象:出生地是指定服务器节点的虚拟对象;
外来对象:出生地是其它服务器节点,但所有权已经转移到指定服务器节点管理的用户节点之上的虚拟对象;
虚拟对象的所有权信息由其出生地服务器节点维护,如果出生地服务器节点已经退出,则由主控服务器节点继续维护;每个服务器节点需要管理并记录本地虚拟对象的所有权信息,包括所有权已经转移到其它服务器节点的用户上的本地对象,以及当前没有用户拥有所有权的本地对象,后者可称之为孤儿对象,服务器节点还需管理外来对象的所有权信息;
然后转移虚拟对象所有权,分为以下步骤:
1)用户请求获取虚拟对象所有权;
2)查找到当前拥有虚拟对象所有权的拥有者;
3)拥有者放弃所有权,实际转移虚拟对象所有权。
2.根据权利要求1所述的基于出生地管理的虚拟对象所有权组织方法,其特征在于:
在所述步骤2)中,查找到当前拥有虚拟对象所有权的拥有者的步骤可分为下述子步骤:
2.1)服务器节点接收到所有权获取或查找请求,判断当前拥有虚拟对象所有权的用户节点是否也由其管理,如果是,则直接转发获取所有权请求,并终止步骤2);如果不是,则查找虚拟对象的出生地服务器节点,并向该服务器节点转发获取所有权请求;如果出生地服务器节点已退出或不存在,则转发获取虚拟对象所有权请求到主控服务器节点上;
2.2)出生地服务器节点判断虚拟对象的当前拥有者是否由其管理,如果是,则直接转发获取所有权请求,并终止步骤2);如果不是,则查找管理该拥有者的服务器节点,并向其转发虚拟对象所有权获取请求,执行步骤2.3),如果拥有者不存在,表明虚拟对象是孤儿对象,则直接通知请求获取的用户节点所有权获取成功;如果出生地服务器节点已退出,则由主控服务器节点完成上述查找操作,主控服务器节点转发获取虚拟对象所有权请求到管理拥有者的服务器节点上,或者判断虚拟对象是孤儿对象后,直接通知请求获取的用户所有权获取成功;
2.3)在管理当前拥有虚拟对象所有权用户节点的服务器节点上,查找到当前拥有所有权的用户,并向其转发获取所有权请求。
3.根据权利要求1所述的基于出生地管理的虚拟对象所有权组织方法,其特征在于:
在所述步骤3)中,实际转移虚拟对象所有权进行的流程,可分为下述子步骤:
3.1)当前拥有虚拟对象所有权的用户放弃虚拟对象所有权,执行转移虚拟对象所有权;
3.2)服务器节点接收到所有权转移通知,判断新的虚拟对象所有权拥有者是否是其管理的用户,如果是,则直接发送获取所有权成功通知;如果不是,则查找管理新拥有者的服务器节点,并向其转发获取所有权成功通知;同时更新其维护的所有权信息集,并判断服务器节点是否是虚拟对象出生地服务器节点,如果不是出生地服务器节点,则向虚拟对象的出生地服务器节点或主控服务器节点通知虚拟对象所有权发生转移;
3.3)出生地服务器节点或主控服务器节点接收到本地对象所有权发生实际转移的通知,更新其维护的本地对象所有权信息集,以确保本地对象所有权信息的正确性。
4.根据权利要求1所述的基于出生地管理的虚拟对象所有权组织方法,其特征在于:
在所述步骤2)中,查找到当前拥有虚拟对象所有权的拥有者的步骤具体分为下述子步骤:
2.1)在管理用户的服务器节点SNi上处理获取虚拟对象o所有权请求,如果虚拟对象o的所有权不为本节点管理的用户所拥有,则进行步骤2.2),否则进行处理,步骤终止;
2.2)在虚拟对象o的出生地服务器节点SNb上或主控服务器节点MN上处理获取虚拟对象o所有权请求,如果虚拟对象o的所有权为当前服务器节点SNb的用户节点所拥有,或为孤儿节点,则终止步骤,否则执行步骤2.3;
2.3)在管理当前拥有虚拟对象o所有权用户的服务器节点SNj上处理获取虚拟对象o所有权请求。
5.根据权利要求4所述的基于出生地管理的虚拟对象所有权组织方法,其特征在于:
所述子步骤2.1)具体分为以下步骤:
2.1.1)服务器节点SNi接收到本地用户UNr的获取虚拟对象o所有权请求,并在其维护的本地对象所有权关系集LOR中查找虚拟对象o的对应项,如果查找成功,则证明服务器节点SNi即是虚拟对象o的出生地节点,可执行流程A.2.2.2);如果查找失败,则执行流程2.1.2);
2.1.2)在服务器节点SNi的外来对象所有权关系集ROR中查找虚拟对象o的对应项,如果查找成功,则证明当前拥有所有权的用户UNloc就是本地用户节点,可直接转发所有权获取请求到虚拟对象o的UNloc项,步骤2)完成;如果查找失败,则执行流程2.1.3);
2.1.3)查找到虚拟对象o的出生地服务器节点SNb,并转发获取所有权请求到出生地节点SNb上,执行子步骤2.2);
在子步骤2.2)中如果虚拟对象o的出生地服务器节点SNb未退出,则由节点SNb处理请求获取虚拟对象所有权请求,如果已经退出,则由主控服务器节点MN处理获取所有权请求,两种情形的处理流程以(A)和(B)区分如下:
(A).出生地服务器节点SNb处理获取虚拟对象o所有权请求的流程如下:
A.2.2.1)虚拟对象o的出生地服务器节点SNb接收到服务器节点SNi转发的获取对象o所有权请求,在其维护的LOR集中查找到虚拟对象o的对应项;
A.2.2.2)判断虚拟对象o的UNcur项是否是出生地服务器节点SNb的本地用户,如果是,则直接转发所有权获取请求到虚拟对象o的UNcur项,步骤2)完成;如果不是,则执行流程A.2.2.3);
A.2.2.3)判断虚拟对象o的UNcur项是否为NULL值,如果是NULL值,说明虚拟对象o是孤儿对象,则所有权获取请求可以满足,更新出生地节点SNb的LOR集,并通知服务器节点SNi及其用户UNr所有权获取成功,服务器节点SNi在其ROR集中添加虚拟对象o相应项,所有权转移完成;如果UNcur项不为NULL值,则执行流程A.2.2.4);
A.2.2.4)在虚拟对象o的UNcur项不为NULL值时,查找到管理UNcur用户节点的服务器节点SNj,并转发获取虚拟对象o所有权请求到服务器节点SNj上,执行子步骤2.3);
(B).主控服务器节点MN处理获取虚拟对象o所有权请求的流程如下:
B.2.2.1)主控服务器节点MN接收到服务器节点SNi转发的获取虚拟对象o所有权请求,并在其主控服务器节点所有权关系集MOR中查找到虚拟对象o的对应项,执行流程B.2.2.2);
B.2.2.2)判断虚拟对象o的服务器节点SNcur项是否为NULL值,如果是NULL值,说明虚拟对象o是孤儿对象,则所有权获取请求可以满足,更新主控服务器节点的MOR集,并通知服务器节点SNi及其用户UNr所有权获取成功,服务器节点SNi在其ROR集中添加虚拟对象o相应项,所有权转移完成,如果SNcur项不为NULL值,则执行流程B.2.2.3);
B.2.2.3)在虚拟对象o的SNcur项不为NULL值时,转发获取虚拟对象o所有权请求到服务器节点SNcur上,执行子步骤2.3);
子步骤2.3)具体分为以下步骤:
2.3.1)服务器节点SNj接收到出生地服务器节点SNb或主控服务器节点MN转发的获取虚拟对象o所有权请求,并在其ROR集中查找到虚拟对象o的对应项,执行流程2.3.2);
2.3.2)转发所有权获取请求到虚拟对象o的UNloc项用户节点,至此步骤2)完成;
在上述表述中:用户节点UN拥有虚拟对象o所有权,可记作UN<o,服务器节点SN是虚拟对象o的出生地节点,可记作SN∝o,
某个服务器节点SNi的本地对象所有权关系集LOR表示如下:
LOR={(Obj,UNcur)|(SNi∝Obj)∧(UNcur<Obj)}
虚拟对象Obj的出生地节点是SNi,UNcur项指明了当前拥有对象Obj所有权的用户,该用户可以是本地用户节点,也可以是其它服务器节点管理的用户节点,如果虚拟对象Obj是孤儿对象,则UNcur项为空,记作NULL值;
某个服务器节点SNi的外来对象所有权关系集ROR表示如下:
ROR={(Obj,SNb,UNloc)|(SNb∝Obj)∧(UNloc<Obj)∧(UNloc∈SNi)}
虚拟对象Obj的所有权已经转移到服务器节点SNi管理的本地用户UNloc上,对象的出生地节点是服务器节点SNb,如果对象所有权从本地用户转移到其它服务器节点的用户上,则需要从ROR集中删除对象的对应项;反之,如果有新的对象所有权转移到本地用户上,则需要在ROR集中添加新的虚拟对象;
在主控服务器节点保存的主控服务器节点所有权关系集MOR记录了出生地服务器节点已经退出系统的虚拟对象所有权信息,表示如下:
MOR={(Obj,SNcur)|(UNx<Obj)∧(UNx∈SNcur)}
由于主控服务器节点不直接管理用户节点,因此MOR关系集中记录管理当前拥有对象Obj所有权用户UNx的服务器节点SNcur,如果虚拟对象Obj是孤儿对象,则SNcur为NULL值。
6.根据权利要求1所述的基于出生地管理的虚拟对象所有权组织方法,其特征在于:
在所述步骤3)中,实际转移虚拟对象所有权的步骤具体分为下述子步骤:
3.1)当前拥有虚拟对象o所有权的用户节点UNo释放所有权,管理用户UNo的服务器节点SNx接收到释放所有权的通知,执行流程3.2);
3.2)判断虚拟对象o所有权的新拥有者UNr是否是服务器节点SNx的本地用户,如果是,则执行流程3.3);如果不是,则转发所有权获取成功通知到管理用户UNr的服务器节点SNi上,并执行流程3.4);
3.3)在服务器节点SNx的本地对象所有权关系集LOR中是否查找到虚拟对象o,如果查找成功,则证明服务器节点SNx是出生地节点,更新其LOR集中虚拟对象o的相应项,并通知用户UNr获取所有权成功,步骤3)完成;如果查找失败,则证明服务器节点SNx是非出生地节点,更新其ROR集中虚拟对象o的相应项,同样通知用户UNr获取所有权成功,步骤3)完成;
3.4)在服务器节点SNx的LOR集中是否查找到虚拟对象o,如果查找成功,则证明服务器节点SNx是出生地节点,更新其LOR集中虚拟对象o的相应项,服务器节点SNi则一定是非出生地节点,在其外来对象所有权关系集ROR中添加虚拟对象o相应项,并通知用户UNr获取所有权成功,步骤3)完成;如果查找失败,执行流程3.5);
3.5)在服务器节点SNi的LOR集中是否查找到虚拟对象o,如果查找成功,则说明服务器节点SNi是出生地节点,更新其LOR集中虚拟对象o的相应项;如果查找失败,则说明服务器节点SNi是非出生地节点,在其ROR集中添加虚拟对象o相应项,并通知出生地节点或主控服务器节点,更新各自的本地对象所有权关系集LOR或主控服务器节点所有权关系集MOR,通知用户UNr获取所有权成功,步骤3)完成;
在上述表述中:用户节点UN拥有虚拟对象o所有权,可记作UN<o,服务器节点SN是虚拟对象o的出生地节点,可记作SN∝o,
某个服务器节点SNi的本地对象所有权关系集LOR表示如下:
LOR={(Obj,UNcur)|(SNi∝Obj)∧(UNcur<Obj)}
虚拟对象Obj的出生地节点是SNi,UNcur项指明了当前拥有对象Obj所有权的用户,该用户可以是本地用户节点,也可以是其它服务器节点管理的用户节点,如果虚拟对象Obj是孤儿对象,则UNcur项为空,记作NULL值;
某个服务器节点SNi的外来对象所有权关系集ROR表示如下:
ROR={(Obj,SNb,UNloc)|(SNb∝Obj)∧(UNloc<Obj)∧(UNloc∈SNi)}
虚拟对象Obj的所有权已经转移到服务器节点SNi管理的本地用户UNloc上,对象的出生地节点是服务器节点SNb,如果对象所有权从本地用户转移到其它服务器节点的用户上,则需要从ROR集中删除对象的对应项;反之,如果有新的对象所有权转移到本地用户上,则需要在ROR集中添加新的虚拟对象;
在主控服务器节点保存的主控服务器节点所有权关系集MOR记录了出生地服务器节点已经退出系统的虚拟对象所有权信息,表示如下:
MOR={(Obj,SNcur)|(UNx<Obj)∧(UNx∈SNcur)}
由于主控服务器节点不直接管理用户节点,因此MOR关系集中记录管理当前拥有对象Obj所有权用户UNx的服务器节点SNcur,如果虚拟对象Obj是孤儿对象,则SNcur为NULL值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710119897XA CN101136775B (zh) | 2007-08-02 | 2007-08-02 | 基于出生地管理的虚拟对象所有权组织方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710119897XA CN101136775B (zh) | 2007-08-02 | 2007-08-02 | 基于出生地管理的虚拟对象所有权组织方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101136775A CN101136775A (zh) | 2008-03-05 |
CN101136775B true CN101136775B (zh) | 2010-07-07 |
Family
ID=39160633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200710119897XA Expired - Fee Related CN101136775B (zh) | 2007-08-02 | 2007-08-02 | 基于出生地管理的虚拟对象所有权组织方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101136775B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106657127B (zh) * | 2017-01-05 | 2020-09-08 | 腾讯科技(深圳)有限公司 | 一种信息处理方法、装置及服务器 |
WO2018126956A1 (zh) | 2017-01-05 | 2018-07-12 | 腾讯科技(深圳)有限公司 | 一种信息处理方法、装置及服务器 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101005514A (zh) * | 2006-12-27 | 2007-07-25 | 北京航空航天大学 | 用于网络游戏的多服务器组织方法 |
-
2007
- 2007-08-02 CN CN200710119897XA patent/CN101136775B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101005514A (zh) * | 2006-12-27 | 2007-07-25 | 北京航空航天大学 | 用于网络游戏的多服务器组织方法 |
Non-Patent Citations (4)
Title |
---|
吴言华等.分布式虚拟环境的可扩充性研究.计算机应用26 4.2006,26(4),926-931. |
吴言华等.分布式虚拟环境的可扩充性研究.计算机应用26 4.2006,26(4),926-931. * |
姜晓红等.多服务器/客户DVE系统的分区数据管理模式.计算机学报23 8.2000,23(8),872-876. |
姜晓红等.多服务器/客户DVE系统的分区数据管理模式.计算机学报23 8.2000,23(8),872-876. * |
Also Published As
Publication number | Publication date |
---|---|
CN101136775A (zh) | 2008-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Liu et al. | Adaptive asynchronous federated learning in resource-constrained edge computing | |
Mayer et al. | Fogstore: Toward a distributed data store for fog computing | |
CN100517308C (zh) | 元数据服务器、数据服务器、存储网络及数据存取方法 | |
Pitoura et al. | Data consistency in intermittently connected distributed systems | |
CN101266633B (zh) | 无缝超大规模虚拟游戏世界平台 | |
CN103365929B (zh) | 一种数据库连接的管理方法及系统 | |
CN103426072B (zh) | 一种高并发竞争库存的订单处理系统及其处理方法 | |
EP2932370B1 (en) | System and method for performing a transaction in a massively parallel processing database | |
CN106484713A (zh) | 一种基于面向服务的分布式请求处理系统 | |
US20140279917A1 (en) | Techniques To Parallelize CPU and IO Work of Log Writes | |
US20130117307A1 (en) | Snapshot isolation support for distributed query processing in a shared disk database cluster | |
CN102314506B (zh) | 基于动态索引的分布式缓冲区管理方法 | |
CN101617297B (zh) | 多处理器存储区域网络中的虚拟化支持 | |
CN103399894A (zh) | 一种基于共享存储池的分布式事务处理方法 | |
CN102508872A (zh) | 一种基于内存的联机处理系统的数据处理方法及系统 | |
Fang et al. | Parallel training of pre-trained models via chunk-based dynamic memory management | |
CN113722127A (zh) | 高效轻量易用的分布式网络消息中间件 | |
WO2010039426A2 (en) | Storage tiers for database server system | |
Yuan et al. | Efficient resource management for cloud computing | |
CN101542448B (zh) | 多处理器存储区域网中锁定管理器的轮换 | |
US20040243578A1 (en) | Techniques for achieving higher availability of resources during reconfiguration of a cluster | |
CN106446268A (zh) | 一种数据库横向扩展系统及方法 | |
CN110069431A (zh) | 基于RDMA和HTM的弹性Key-Value键值对数据存储方法 | |
CN102137167B (zh) | 不间断运行的虚拟机迁移方法及装置 | |
CN102006297A (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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100707 Termination date: 20130802 |