动态带宽控制的制作方法

文档序号:1587489阅读:245来源:国知局
专利名称:动态带宽控制的制作方法
技术领域
本发明总体上涉及计算机网络并且,更具体地,涉及由多用户在一个计算机网络上执行的应用。
背景技术
计算机网络,如局域网和因特网,正在越来越多地被用作团体之间各种交易和交互的中枢。从其中银行客户可以在一个计算机网络上启动金融交易的在线银行到其中游戏者可以在因特网上参与实时游戏的在线游戏,业务提供者正越来越多地在计算机网络上支持多种业务。目前有多种不同的计算机网络配置可以促进交易和交互的发生。
许多在线应用包括多用户应用,该应用是在一个计算机系统上执行的计算机程序并且允许多个地理上分开的参与者与计算机程序以及在一个应用环境中的其他参与用户进行交互。例如,在线游戏是一个流行的多用户应用,该程序正在日益流行。一个在线飞行器模拟游戏可以使多个参与者能够在一个虚拟的空间中驾驶他们各自的虚拟飞行器,并且可以使这些参与者能够与在同一个空间中的在他们的飞行器中的其他参与者进行交互。每个参与者拥有对他们各自的虚拟飞行器的飞行动作的控制。即每个参与者拥有包含一个飞行器的应用对象的所有权。这样,该在线飞行器游戏应用提供一个单个的应用环境或世界,其中多个参与者操作他们各自的对象。
在一个多用户应用环境中,如在线游戏,具有明显的地理上分散的应用用户,如游戏参与者,每个参与者一般地负责一个或多个将被应用的本地用户修改或操作的数据对象。这些数据对象为“自有的”数据对象并且每个用户与一个或多个这样的相应的应用对象有关。
例如,在一个在线游戏环境中,每个参与者将一般地负责保持关于参与者的竞争者或登陆该游戏应用环境的状态数据。该参与者的游戏登陆典型地由一个数据对象来表示。在一个交易的多用户环境中,一个用户可能负责与一个账目有关的数据,该帐目由一个数据对象来表示。在两个应用环境中,各个用户如上所述“拥有”所述数据对象,或者所述游戏参与对象或者所述交易帐目对象,因为该用户负责更新在该应用环境中的该用户的数据对象。在一个游戏的关中,该用户典型地拥有对游戏应用的共享对象空间中的相应的数据对象的运动的控制,并且典型地也负责保持关于该数据对象状态的数据(并因此拥有该数据对象)。
为了支持多用户应用环境中的用户间的实时交互,需要共享关于该应用环境中的每个参与者的相应的数据对象的信息。一个用户的数据对象的状态可以由数据域的一个集合来定义,该数据域的值在该用户的交互过程中可以改变。例如,在一个游戏应用中,一个用户的所述数据对象在一个游戏环境中将改变位置,并且在一个交易应用中,一个用户的所述数据对象将具有改变的交易历史和账目结算。
为了共享网络用户中的用户的数据对象的状态信息,需要共享定义该数据对象的不同数据域的值。例如,在一个飞行器模拟多用户应用中,其中每个用户由一个飞行器数据对象来表示,与飞行器的状态信息有关的所述数据域可以包括飞行器大小、飞行器速度、三维空间中的高度、外形详情(如战斗损伤或控制外表位置)、虚拟环境详情(如建筑、天气、以及地形),等等。这样的状态信息允许在各参与者处的计算机适当地明了游戏的发展并且确定由每个其他参与者正在执行的动作。这允许每个参与者在参与者的观看显示器上出示适当地呈递的虚拟形象,并且允许其他的参与者也照样做。在一个交易应用环境中,所述数据域可能包括用户名、账目信息、账目结算、等等。这样的信息将允许多用户确定有关一个特定交易的账目的详情。
一些在线多用户应用依照一个应用更新时间间隔通过发送网络更新消息给所有的用户来传达有关各个用户应用对象的状态的详情。对于一个在线游戏,一个作为游戏的参与者的用户将负责为该网络用户所拥有的应用对象保持一组最新的数据域。如果在该网络用户所拥有的所述应用对象如一个模拟游戏中的一个飞行器的状态中发生了变化,然后该自有用户必须通过更新的消息传达这些变化给其他的网络参与者。这样,每个拥有一个数据对象的网络用户将准备和发送更新的消息给其他的网络客户机告知在他们的数据对象中的变化。以这种方式,来自每个自有用户的更新的消息将传达所述数据域中的变化给其他的网络客户机。这样,所有的网络用户参与者将被告知精确的数据对象状况信息。
不幸地是,通过所述更新的消息传达的以及在所有参与者中共享的数据的数量可能是繁重的。如上所述,在一个飞行器模拟应用中需要更新一个游戏参与者的应用对象的虚拟形象的数据域可以包括信息如飞行器大小、速度、以及高度、外形详情(如外部损伤或控制外表位置)、虚拟环境详情(如建筑、天气、以及地形),等等。必须在所有的应用参与者中共享的信息的数量可以很大使得它可以导致带宽饱和。即,一些用户可能具有有限的网络带宽,并且可能难以通过由网络应用所生成的应用环境足够快地实时接收更新的消息而保持“在比赛中”。
一个允许具有有限的带宽的用户来参与多用户应用如在线游戏的方式为减少数据对象的数量,其中这些数据对象的详情在所有的用户中共享。这可以例如通过将应用环境分割成兴趣区域来取得,这样在一个应用环境兴趣区域中的用户不被提供关于其他应用环境区域中的应用对象的信息。一个拥有所述应用环境的一个区域中的一个数据对象的用户不必发送更新的数据域给所述应用环境的其他区域中的用户。这减少了各自有用户在网络上必须被发送的信息的数量。每个用户不必下载各自的及每一个由网络客户机为该应用传送的更新的消息。这样的一个系统例如被描述在由R.Waters与J.Allred申请的美国专利No.5,841,980分布式处理系统中。在适当的位置具有这样的分布式处理,一个用户可以省去为一个应用对象下载和处理所有的更新消息。这意味着参与者的实时交互将不被更新消息的处理所减慢。
然而,即使具有一个有限的共享环境,与一个数据对象有关的数据域的数量可以充分地多或详细,这样一个用户的带宽仍然可以根据与所有的在用户的虚拟环境兴趣区域中的应用对象有关的处理的需要而被占用。事实上,所述用于同一个应用环境区域中的应用对象的更新消息可以包括许多数据,所述数据从网络客户机的观点看并不重要。这可以是这样的情况,例如如果所述应用对象更新消息包括用于详细地呈递所需的所有的绘图信息,虽然该应用对象并未与用户看到详情的观察视野充分地近。并且,即使一个用户具有保留的可用带宽,如果网络数据通信量确实不包括用于所有数据对象的所有数据域而不管每个参与的用户处的需要,对于网络运行更为有效。
这样,当前的多用户应用不是关于应用对象更新的最高效率而配置的。即使在分割一个应用环境为独特的更新区域基础上上的减少的数据传送仍旧可以占用参与者的带宽资源并且生成不需要的网络数据通信量。这样,需要一个改进的更有效的在线多用户应用环境。本发明满足了这一需要。

发明内容
在一个计算机网络上的与一个多用户网络应用的一个数据对象有关的从一个拥有所述数据对象的网络用户到一个正在更新的用户的数据传送,通过定义该数据对象的数据域的一个子集的传送来获得,这样该数据域的所述子集由所述正在更新的用户来指定且小于或等于包含用于定义该数据对象的所有数据域的更新值的完全的更新传送。因为每个数据对象由多个数据域来定义,该数据对象数据域的一个子集的传送保证了为数据更新而被利用的网络带宽将从其中为一个正在被更新的对象的所有定义数据域在该网络上被传送的情形中减少。
根据本发明,一个数据更新请求消息从该正在更新的用户发送到自有用户,这样该请求消息指定正在更新的用户想要的更新数据的一个子集。该正在更新的用户确定将被正在更新用户处的网络应用的处理所需要的所述数据域子集。当该指定的更新数据的子集由该正在更新用户所接收,用于该应用对象的由所述正在更新用户保持的相应的数据域用接收的子集数据来更新。这样,不需要该正在更新用户总是为定义该数据对象的所有数据域请求与接收更新数据。更确切地,该正在更新用户可以请求用于该应用对象的一个减少的更新数据的子集。这可以减少由正在更新用户执行多用户网络应用以及更新该应用对象的状态所需的带宽。
本发明的其他的特征和优势将在下面的优选实施例的描述中显而易见,所述优选实施例通过示例的方式示出了本发明的原理。


本发明的目的、优势以及特征通过下面的结合附图的详细描述中更易于理解,其中图1为根据本发明构造的一个计算机网络的一个图;图2示出了在图1的系统中的一个正在更新用户处的用来提供选择性的应用对象更新操作的处理的流程图;图3示出了一个请求一个应用用户指定连接速度从而显示一个数据更新子集的显示器屏幕选择菜单;图4示出了在图1的系统中的一个对象自有用户处的处理的流程图;图5示出了图1所示的网络中的一个计算机的硬件组成的一个框图;图6示出了图1所示的所述网络的一个网络节点处的一个计算机娱乐系统的硬件组成的一个框图。
具体实施例方式
图1为根据本发明构造的一个计算机网络100的一个图。多客户机计算机102、104、106在一个网络108上相互通信。一个或多个服务器计算机110也可以在网络上与所述客户机通信。所述计算机在网络上相互通信并在一个多用户应用环境的处理中相互协作。所述计算机102、104、106可以包括例如计算机如传统的桌上型个人计算机;娱乐控制台装置如日本东京的索尼计算机公司提供的“游戏站2”游戏控制台系统;或者其他的可以提供或参与到一个多用户应用程序设计环境中的计算机平台。如图1所示的三个客户机只是用于说明的目的,但是系统100可以包括更大或更小数量的客户机。应该理解计算机在其上进行通信的网络108可以包括实现计算机102、104、106之间的数据通信的多种网络配置。适合的网络包括例如客户机-服务器和对等的计算机网络配置。
网络客户机102、104、106参与其中的所述应用程序设计环境是一个其中每个客户机负责至少一个应用数据对象的环境。在一个在线游戏应用的环境中,例如,每个客户机可以对应为一个游戏竞争者或在所述客户机机器处作为用户登陆。因此,每个客户机将保持一个定义一个竞争者的数据对象。即,每个数据对象由一组数据域来定义,如熟悉这样的对象导向程序设计概念的本领域的技术人员所理解的。该客户机如上所述拥有所述数据对象的所有权。在一个商业应用中,例如,每个数据对象可能对应为一个交易或者一个用户或客户的商业账目。
由用户102、104、106为一个相应的数据对象保持的数据将指定允许数据对象充分运行在所述多用户应用环境中所需的所有的参数。例如,在一个多游戏者飞行器模拟应用中,每个用户保持对应于一个由用户在各自的客户机处操作的虚拟飞行器的一个(所述自有的)数据对象。完全地定义一个对应每个用户的飞行器的数据对象的数据域将包括数据域例如飞行器大小、速度、三维空间中的高度、外形详情(如外部损伤或控制外表位置)、虚拟环境详情(如建筑、天气、以及地形),等等。可能用于定义一个飞行模拟网络应用中的一个飞行器的所述数据域的一个例子如下面的表1中所提供的表1用于飞行器数据对象的数据域

其它数据域以及那些表1中所列出的数据域可能也被用于完整地定义一个飞行器,用于呈递所述网络应用的一个适当的视频形象,如光开或关、补燃器开/关、飞行员的身份,等等。
每个自有的用户周期地更新定义其各自的应用对象的所述数据域,并且各个自有用户具有发送一个更新消息给正在执行该网络应用的所有的其他网络用户的能力,这样所述更新的消息包含由自有用户所保持的数据。如下面进一步描述的,系统100的处理可以是这样的,每个正在更新网络用户(即,远离一个自有用户的一个用户)可以从各自的自有用户请求减少数量的数据域用于一个对象的更新,从而减少用于保持关于所述应用对象的本地数据的带宽要求以及减少用于传送更新数据的网络通信量。
图2示出了在图1的系统中的一个更新用户处的用来提供选择性的应用对象更新操作的处理的流程图,其中在所述更新操作中一个正在更新的用户可以为由另一个用户所拥有的一个应用对象请求所述数据域的一个更新子集。图2所示的操作用一个网络用户的现点描述为根据一个由一个远端网络用户所拥有的应用对象来请求一个来自所述远端网络用户的更新。然而,应该理解到系统中的每个正在更新的用户正在执行类似的操作,并且对于系统中的任何特定的正在更新的用户,所有的其他用户对于所述正在更新的用户来说是远端客户机,并且所述特定的正在更新的网络用户被视为本地网络客户机。
在图2的如流程图逻辑框202所示的第一个操作中,一个多用户网络应用在一个网络用户处开始,并且一个或多个应用对象由该用户所检测。检测到的数据对象由该网络应用的其他用户所拥有。在所述计算机处理系统的一个示范性实施例中,一个应用对象为根据所述网络应用保持在一个共享的目标空间中的一个数据对象,这样每个正在运行所述应用的网络用户将被告知所述对象存在于所述共享的对象空间中。即,应用数据对象将存在于一个共享的数据空间中,这样所有的应用用户将被告知所述数据对象并且这样这些数据对象可以通过数据更新消息和各用户处的本地处理彼此交互。每个数据对象由一组包括参数和对象方法的数据域来定义,如本领域的技术人员所能理解的。定义一个飞行器对象的所述数据域的一个例子被提供在上面的表1中。
在一个多游戏者游戏应用中,例如,一个如图1所示的服务器可以为所述共享的数据空间保持所有应用数据对象的一个集合,为每个用户竞争者对应一个对象,连同所述虚拟游戏世界中的相关条目的数据对象一起,其中所述虚拟游戏世界中的一个网络客户机处的每个用户负责对应于所述用户的一个数据对象。应用用户可以从任一网络服务器获得对象更新,其中所述网络服务器接收来自每个自有用户(网络客户机)的更新。在另一个实施例中,每个网络客户机将为他们的相应的用户保持各自的数据对象,并且该网络客户机将交换直接来自于每个自有用户的与他们的各自的应用对象相关的数据,将数据副本保持在他们各自的用户机器中。
接下来,在流程图的逻辑框204中,所述正在更新的用户执行操作来更新对应所述正在更新用户的所述应用对象的当前状态。一个类似的更新操作在系统的每个网络客户机处局部地发生。这样,每个各自的应用数据对象的当前状态由拥有所述数据对象的网络客户机周期地更新。在逻辑框206中,所述正在更新的客户机确定所述对于关于应用数据对象的本地信息的更新要求而不是由所述正在更新的用户所拥有的对象(即,远端自有用户的数据对象)。根据本发明,一个正在更新的用户不需要请求一个包含用于定义所述远端数据对象的所有数据域的数据的更新。
在一个传统的网络应用系统中,一个更新消息典型地包括用于定义一个数据对象的所有数据域的数据。在图1所示的系统中,所述正在更新的用户可以确定定义一个网络应用数据对象的数据域的一个子集,这样所述指定的从一个远端自有用户接收的更新数据子集小于或等于包含所述应用对象的完全更新数据消息的数据域的数目。这样以来,一个正在更新的用户具有对将从一个远端自有用户发送的所述更新数据的控制,并且因此一个正在更新的用户具有对高效地接收来自一个自有用户的一个更新数据传送所需的带宽的控制。
要求的所述更新数据子集的确定可以是一个手工的用户选择的活动,或者该确定可以是所述网络应用的一个自动处理特征。例如,所述网络应用可以提供一个可选择的菜单给一个正在更新的用户,其中所述可选择的菜单请求所述用户手工地指定被请求的更新信息的范围,如在一个完全更新和一个简化的更新子集之间的选择。所述用户对于所述更新数据子集的选择可以根据用户的网络连接带宽给出。
来自可用的数据域组中的更新数据子集的选择可以手工地选择或可以由所述用户计算机自动地确定与选择,并且又可以被一次性地设置并且其后被保持用于所述网络应用的执行,或者可以在所述应用第一次被启动时被初始地设置并且在其后的网络运行操作期间被周期地调整。例如,所述网络应用可以获得所述用户网络连接所述用户操作系统的带宽速度并且可以在该应用启动时自动地确定合适的数据子集选择。其后,该网络应用可以根据本地(正在更新的用户)应用对正在更新的数据对象的需要或兴趣程度在每次请求更新的时候或根据一个不同的应用更新时间表动态地确定所述更新数据子集。所述兴趣程度可以是所述正在更新的用户与所述数据对象交互的一种活动。
所述动态确定在例如下面的情况中尤为有用,其中所述正在更新的用户的交互很强烈,如当飞行器在一组要求更完整的数据域的兴趣增加的区域(封闭形式)中,或者飞行器在一个对于所述网络应用来说更为有限的数据子集是足够的兴趣减少的区域(在一个遥远的空间中飞行)中时。在这两个示范性飞行器模拟情形中,正在更新的用户的兴趣程度依赖于数据对象对虚拟应用空间中的正在更新的用户的接近。在数据对象中的用户兴趣程度可以由下面的来指示,例如应用空间中的正在更新的用户相对于所述数据对象(如在视觉上清楚的或模糊的)的位置、在所述应用中的分组或联系(如同盟或敌人),或所述网络应用的目的或目标(从而基于应用目标确定相对于自有用户的兴趣程度)。其它的标准可以根据正在执行的网络应用被用于确定正在更新的用户的兴趣程度。
一个根据连接带宽在一个更新子集中选择数据域的数目的例子如图3所描述的,其中示出了所述网络应用的一个显示器屏幕选择菜单302,要求用户指定连接速度,或者一个模拟的调制解调器连接速度,或者几种宽带连接速度中的一个。当该用户选择一种连接速度时,在本地客户机处的网络应用将用一个相应的更新数据子集来生成更新请求消息。例如,对于一个T1连接,所述应用将自动地选择来自自有用户的完全的更新数据消息,但对于一个模拟调制解调器连接,所述应用将自动地选择来自自有用户的减少数量的数据。作为一个例子,所述自动确定可以根据通过所述客户机操作系统获知的系统信息被执行。其它的选择被请求的信息的范围的方案将会由本领域的技术人员所想到。不管使用的确定技术是什么,根据本发明的处理提供了一个具有指定数据域的数目的能力的本地客户机,它将从一个远端客户机请求与一个应用数据对象有关的数据更新。这样以来,本地客户机不被要求为所有的正在定义的数据域请求与接受更新数据,所述所有的正在定义的数据域否则为一个应用数据对象被提供在一个更新数据消息中。
所述数据子集选择的间隔尺寸可以包括一个逐数据域的选择以包含所述更新数据子集,或可以来自一组预定的数据域子集集合中。例如,图3的用户菜单可以提供数据域子集的菜单。在其中数据域子集的选择由所述网络应用自动地确定的情况中,该子集可以包括几个数据域子集中的一个。例如,在一个飞行器飞行模拟的网络应用中,完整地定义一个飞行器对象的所述数据域可能对应上面表1所列的域。对于一个具有56K的模拟调制解调器连接的用户(图3的窗口显示中的第一个按钮),所述网络应用可以自动地选择如下表2所列的参数的一个简化的数据域子集(称作子集1)。
表2用于飞行器数据对象的数据域的子集1

对于一个具有线缆调制解调器或DSL连接(图3的窗口显示中的第二个按钮)的用户,所述网络应用可以自动地选择如下面表3所列的参数的一个简化的数据域子集(称作子集2)。
表3用于飞行器数据时象的数据域的子集2

这样,可用的更新数据子集的子集2包括比子集1更多的数据域,但不如一个完全的更新消息一样多的数据域,所述完全的更新消息将包括表1中所列的对于所有的对象定义的数据域的当前数据域值。其它的按钮和数据子集可以为其它的如无线LAN连接、无线因特网蜂窝连接,等等连接带宽所包括。在一个类似的方式中,其它的数据域更新子集可以被提供来根据可用的用户带宽提供用于选择更新子集的不同的间隔尺寸。提供的间隔尺寸可以由本领域的技术人员根据提供的网络应用来确定。
返回图2,在由逻辑框208指定的下一个操作中,本地客户机发送所述更细请求消息给远端客户机。所述更细请求消息的格式取决于正在由所有的客户机102、104、106(图1)正在操作的所述网络应用。一个自有用户更新它的数据对象常规的做法是使用一个更新广播时间表(本地更新)。在所示系统中,每个正在更新的用户(远离自有用户)可以产生一个指定应用对象数据域的一个更新子集的远端对象广播时间表。这样以来,自有用户(本地客户机)知道所述正在更新客户机正在请求什么信息,以及所述更新消息的其他的详情(如更新频率、带宽设置,等等)。
根据本发明,所述更新请求消息将包含一个将被远端正在更新的客户机所识别的与一个完全的或完整的数据更新消息相比作为指定更新数据的一个子集的域或参数。如上所述,所述更新数据组可以为完全的更新组(即,一个具有一个数据对象的所有的定义域的值的更新消息),或者所述更新数据组可以为一个减少数量的数据域,该数据域为包含完全数据更新消息的数据域的一个子集。在任一情况中,从正在更新客户机接收更新数据请求消息的远端客户机(所述数据对象自有的客户机)将通过提供所述请求的数据量来响应。正在更新用户然后将从所述自有用户接收所述更新数据子集消息,如流程图中逻辑框210所示。
在由逻辑框212所示的最后一个更新处理操作中,所述更新请求用户将所述更新的数据合并到本地对象数据空间用于相应的应用对象。该操作可以包括例如更新有关自有客户机的数据对象的本地客户机的数据,以及可以包括更新一个示出了自有客户机的应用对象的虚拟显示形象。其他的网络应用的处理然后可以继续。
图4示出了根据在运行该网络应用的其他(远端)网络客户机处正在更新用户在图1的系统中的一个数据对象自有客户机处的处理的流程图。自有用户将更新由自有用户拥有的所述数据对象的数据域并且接收来自网络应用的其他用户的更新请求消息。在由流程图的逻辑框402所示的第一个操作中,包括在一个自有用户处启动多用户网络应用环境。如上所述,所述网络应用可以包括一个在线游戏关、一个交易导向关、或任何其他的支持一个多用户共享的对象数据空间的应用。
在所述共享的对象数据空间中,每个参与的用户拥有一个或多个应用对象的所有权。例如,在一个在线游戏关的环境中,每个对象自有用户具有一个表示该应用环境中的自有用户竞争者的应用对象的所有权。每个自有用户必须为拥有的应用对象周期地执行一个更新操作,其中所述应用对象的状态根据定义数据对象的数据域被更新。该更新操作如图4中的逻辑框404所示。
因为每个自有用户在所述网络应用的共享对象数据空间中操作,每个自有用户知道也在共享对象数据空间中操作的其他的用户(网络的节点,或客户机)。根据所述网络应用,每个参与的用户将周期地生成一个更新数据请求消息。该更新数据请求消息被发送到每个远端自有用户。如上所述,根据所述网络应用的配置,更新数据请求消息可以被发送到一个中心应用服务器,该服务器根据消息中指定的数据子集响应每个更新消息。在任一情况中,在逻辑框406中,更新数据请求消息在一个存储对应于一个数据对象的所有定义数据域的数据的网络客户机处被接收,这样所述更新数据请求消息请求一个更新数据子集。在逻辑框408中,更新数据子集被传送到在所述更新数据请求消息中识别的正在更新的用户。
上面的操作被描述在一个示范性的在线游戏应用的环境中,如一个飞行器飞行模拟。这样的一个应用可以包括例如包括三个用户的一个共享的对象空间,所述三个用户在一个网络游戏应用中合作操作三个相应的同盟飞行器,而三个其它的用户在他们自己中合作操作三个相应的敌方飞行器。每个用户将个别地更新定义他们各自的飞行器的所有的数据域,如上面表1所列的数据域。在三个同盟飞行器的情况中,如果该三个同盟飞行器操作在封闭的形式(根据三维虚拟空间)下,那么对于三个同盟飞行器的每个用户来说接收完全的数据更新非常重要。例如,三个封闭形式的同盟飞行器中的一个决定着陆,那么,对于各同盟飞行器用户的计算机处适当的虚拟形象而言,知道着陆飞行器的表1数据域的阻力板位置、副翼位置、着陆拦阻装置位置的状态很重要。在位于所述应用虚拟空间中的一个更远的位置的三个敌方飞行器的情况中,只有兴趣数据域将可能是根据位置X、位置Y、位置Z以及相应的速度信息的范围数据。显然这组减少的对象数据域可以由表2的子集1分组来提供。显然,表2具有比用于传送完全的数据更新域(表1)需要更少的带宽。
本领域的技术人员可以理解其它的网络应用也可以由上面所描述的数据更新子集特征来提供。例如,相对更大带宽要求的流数据应用可以利用所述数据更新子集特征,所述特征包括传送包含图像、声音、音频数据的流数据并且可以由网络用户动态的请求的应用。这样,网络应用用户、流数据、以及多边(形)数据可以构成一个虚拟世界。每个应用用户具有对预定的数据对象(即,由一组预定的数据域定义的数据对象)的网络控制。每个网络应用用户将因此为用户对其具有所有权的对象进行更新。在更新一个流对象如一个图像流对象的用户的情况中,该图像流将对于一些应用对象是可见的,为伴随语音或声音的面孔,而对于其它应用用户,该图像流将被看到只是屏幕上的噪声。即,一些正在更新的用户可以仅指定包含音频数据的数据域,而其它正在更新的用户可以指定包含图像数据而不包含音频数据的数据域,或其它的根据可用带宽或本地用户兴趣或其它参数定义所述流对象的数据域的组合。这样,根据本发明,每个应用用户将从正在接收的每个图像流(以及其它数据)指定想要的分辨率,并且将具有对所接收的远端更新消息的控制。所述控制图像流的网络用户(客户机和服务器)仅发送由每个正在更新的用户所请求的适当的更新数据子集。如上所述,每个正在更新的用户可以根据它的操作情况确定想要的更新数据子集。
应该理解到如上所述的“自有用户”可以包含在所述网络共享对象空间中负责一个或多个对象的任何的网络用户(节点)。即,该网络应用可以被配置,这样单个用户拥有该应用的所有对象。这可以是这样的情况,例如,当一个服务器拥有该应用空间中的所有对象,并且与请求数据更新的客户机机器进行通信。在那样的情况中,所有的网络应用客户机然后变成正在更新的用户,该用户从所述网络应用的自有用户(服务器)请求对象更新。这样,所述网络应用可以被配置,这样一个自有用户包含一个网络节点处的一个客户机机器,并且每个客户机在所述应用的共享对象空间中,拥有一个或多个相应的对象,或者该网络应用可以被配置,这样,对一个应用有一个自有用户,如一个应用服务器,该服务器为网络应用的所有其它用户提供对象更新。
本领域的技术人员将理解如何在对于网络应用有一个自有用户如一个应用服务器的情况中实施上面所述的动态带宽控制。如上所述,对于一个网络应用,一个自有用户是一个负责保持关于一个用户与网络应用交互的状态数据的用户。这样,如果对于所述网络应用只有一个自有用户,那么该用户(服务器)将负责保持对应于每个应用用户的对象有关的状态信息。例如,在一个网络游戏关中,一个客户机用户可以控制共享对象空间中的用户运动,但是该服务器将拥有该对象并且因此将保持与共享空间中的客户机用户的相应对象有关的状态数据。这样,每个客户机用户将从自有用户(服务器)请求更新。
这样,网络应用的每个用户可以拥有网络应用共享数据空间的一个相应的数据对象的所有权,或者,网络应用的一个单个网络节点可以拥有对对应于用户的网络应用共享数据空间的所有数据对象的所有权。在单个的对象自有节点的情况中,该节点典型地被引作一个应用服务器。根据图1,在该段的第一关中,客户机节点102、104、106拥有他们各自的数据对象。在该段第二关中,单个用户(服务器)110拥有对代表每个客户机102、104、106的数据对象的所有权。
下面提到的操作可以根据网络应用执行,作为安装在合适的网络计算设备上。图5和图6是根据一个本发明的适合于如上所述的操作的网络计算设备的框图。
如图1的框图所示的网络计算设备(客户机和服务器)包含一个计算机网络系统100的节点。图5是图1的系统100中的一个计算机的框图,示出了包括在提供所述服务器和客户机的功能体的一个计算机中的硬件组成。本领域的技术人员将能够理解到图1所示的服务器和客户机可以具有一个类似的计算机结构,或者可以具有与能力和这里所描述的各自的功能一致的可替换的结构。图5结构尤为适合图1所示的服务器计算机110。
图5示出了示范性的计算机500,该计算机例如可能包含任何一个网络计算机102、104、106、110。每个计算机500在一个中央处理单元(CPU)502的控制下运作,如可以从美国的加利福尼亚的SantaClara的Intel公司获得的一个奔腾微处理器以及相关的集成电路芯片。一个计算机用户可以从一个键盘和计算机鼠标504输入指令或数据,并且可以在显示器506处看到输入和计算机输出。该显示器典型地为一个图像监控器或平面显示器。该计算机500也包括一个直接存取存储设备(DASD)508,如一个硬盘驱动器。存储器510典型地包括易失半导体随机访问存储器(RAM)。每个计算机优选地包括一个接受一个程序产品存储设备514的程序产品阅读器512,所述程序产品阅读器可以从设备514中阅读数据(以及随意地向其写入数据)。所述程序产品阅读器可以包括例如一个磁盘驱动器,并且该程序产品存储设备可以包含可移动的存储介质如软磁盘、一个CD-R光盘、一个CD-RW光盘、或DVD光盘。
每个计算机500可以与计算机网络502(如因特网或一个企业内部互联网)上的其它的计算机通过一个网络接口518进行通信,所述网络接口518能够在网络520与所述计算机之间通过一个连接522进行通信。该网络接口518典型地包含例如一个网络接口卡(NIC)以及一个允许在多个网络上进行通信的调制解调器。
所述CPU502在暂时存储在所述计算机500的存储器510中的程序设计步骤的控制下运行。当执行所述程序设计步骤时,该计算机执行它的功能。这样,所述程序设计步骤实现所述各自的客户机或服务器的功能体。该程序设计步骤可以通过所述程序产品存储设备514或通过所述网络连接522从DASD508处接收。所述程序产品存储驱动器512可以接收一个在上面记录阅读程序设计步骤的程序产品514,并且传送所述程序设计步骤到存储器510中用于CPU502的执行。如上所述,所述程序产品存储设备可以包含已经记录计算机可读指令的任何一个多样可移动介质,该多样可移动介质包括软磁盘和CD-ROM存储光盘。其他合适的程序产品存储设备可以包括磁带和半导体存储芯片。这样以来,根据本发明的用于操作所需的所述处理步骤可以被收录在一个程序产品上。
可选地,所述程序步骤可以通过网络520接收到所述运行存储器510中。在该网络方法中,所述计算机在网络通信由熟知的方法已经在网络连接522上建立之后通过所述网络接口518接收包括程序步骤的数据到所述存储器510中,其中所述熟知的方法为本领域的技术人员所理解而不需进一步的解释。程序步骤然后由CPU502所执行因而包含一个计算机处理。
应该理解到如图1所示的网络系统100的所有网络计算机可以具有一个与图5所示的类似的结构,这样根据图5的计算机500描述的详情将被理解应用到系统100的所有的计算机上。应该理解任何一个网络计算机可以具有一个可选的结构,只要该计算机可以与图1所示的其他的计算机通信并且可以支持这里描述的功能体。
例如,图1的客户机计算机102、104、106的任何一个可以包括一个计算机娱乐系统,如图6所示的一个图像游戏控制台系统600。图6是所述图像游戏控制台系统600的示范性的硬件配置的一个框图。
所述图像游戏控制台系统600包括一个与一个主存储器605有关的中央处理单元(CPU)601。该CPU601在存储在OS-ROM660或从一个游戏程序存储介质到所述主存储器605传送的程序设计步骤的控制下运行。该CPU601被配置来处理信息并且根据所述程序设计步骤执行指令。
该CPU601通过一个专用总线625被通信地耦合到一个输入/输出处理器(IOP)620。该IOP620耦合该CPU601到所述OS-ROM660,所述OS-ROM660由存储程序指令的非易失存储器组成,如一个操作系统。所述指令在主单元600的启动时优选地通过所述IOP620传送到所述CPU。
该CPU601通过一个专用总线615被通信地耦合到一个图形处理单元(GPU)610。该GPU610是一个被配置来执行制图处理和根据从CPU610接收的指令程序设计图像的制图处理器。例如,所述GPU610可以基于由所述CPU601生成并从CPU601接收的显示列表呈递一个图形图像。所述GPU可以包括一个用于存储图像数据的缓存器。该GPU610输出图像到一个连接到所述控制台系统600的A/V输出设备690。
所述IOP620根据存储在一个IOP存储器630中的指令来控制所述CPU601和多数外围设备之间的数据交换。外围设备可以包括一个或多个输入控制器622、一个存储卡640、一个USB645,以及一个IEEE1394串行总线650。此外,总线655被通信地耦合到所述IOP620。总线655被连结到几个附加设备,包括所述OS-ROM660、一个声音处理单元(SPU)665、一个光盘控制单元670,以及一个硬盘驱动器(HDD)680。
所述SPU665根据从所述CPU601和IOP620接收的指令被配置用来生成声音,如音乐、声音效果,以及语音。该SPU665可以包括一个存储波形数据的声音缓存器。所述SPU665生成声音信号并且传送该信号给扬声器。
所述光盘控制单元670被配置来控制一个程序阅读器,该程序阅读器可以包括例如一个光盘驱动器,该光盘驱动器接受可移动存储介质如软磁盘、CD-ROM光盘、CD-R光盘、CD-RW光盘、DVD光盘,等等。
存储卡640可以包括一个所述CPU601可以写和存储数据的存储介质。优选地,所述存储卡640可以被插入IOP620或从IOP620移除。一个用户可以使用存储卡640存储或保存数据。而且,所述视频游戏系统600优选地被提供至少一个硬盘驱动器(HDD)680给要写入和存储的数据。
一个数据I/O接口,如IEEE1394串行总线650或通用串行总线(USB)645接口,被优选地通信耦合到所述IOP620上用来允许数据被传入和传出所述视频游戏系统600,如图1所示的网络。
这样,如上所述的实施例提供了在一个计算机网络上从一个远端客户机到一个本地客户机用于一个多用户网络应用的改进的数据传送。所述改进的数据传送通过为所述远端客户机的一个网络应用对象确定指定数量的更新数据来处理,这样指定的数量小于或等于用于所述应用对象的一个完全更新数据消息。一个请求消息从本地客户机发送到要求来自远端客户机的指定数量的更新数据的所述远端客户机。当所述指定数量的更新数据在本地客户机处接收时,用于所述应用对象的本地客户机数据状态由所接收的更新数据更新。具有这些操作,不需要本地客户机总是请求来自远端客户机的所有应用对象上的完全的更新数据消息,但相反本地客户机可以请求用于一个应用对象的状态的减少数量的更新数据。这可以减小本地客户机执行多用户网络应用和更新应用对象的数据状态所要求的带宽。
本发明根据当前优选实施例描述如上,这样本发明的理解可以被传达。然而,有许多用于本系统并且这里并非特定描述的但对本发明很适用的应用的配置。本发明因此不应该被视作局限于这里所描述的特定实施例,但更适合地,应该理解本发明关于多用户应用具有广泛的可用性。在附属权力要求的范围内的所有的修改、变化、或相当的配置以及执行应该因此为视为在本发明的范围内。
权利要求
1.一种计算机网络数据传送的方法,该方法包括确定一个与一个应用数据对象有关的更新数据子集,所述数据对象由一个自有网络的用户保持在一个多用户网络应用共享数据空间中,这样所述更新数据子集指定小于或等于用于所述应用对象的完全的数据更新的一组数据域;从一个保持对应于所述数据对象的本地副本的一个正在更新用户发送一个请求来自自有用户的指定的更新数据子集的一个网络数据更新请求消息;并且接收数据对象的更新数据,该更新数据包含由所述更新数据子集指定的一组数据域。
2.如权利要求1所述的方法,进一步包括在所述正在更新的用户处用接收的更新数据子集更新所述数据对象的本地副本。
3.如权利要求1所述的方法,其中确定所述更新数据子集包含确定一个可用的网络带宽和根据可用带宽选择一个指定数量。
4.如权利要求3所述的方法,其中确定可用的带宽包括接收一个用户选择的带宽值。
5.如权利要求3所述的方法,其中确定可用的带宽包括从本地客户机的一个操作系统接收系统资源信息。
6.如权利要求1所述的方法,其中确定所述更新数据子集包括根据一个正在更新的用户对数据对象的兴趣程度确定所述更新数据子集的一组数据域。
7.如权利要求6所述的方法,其中所述正在更新的用户的兴趣程度由所述正在更新用户与所述共享数据空间中的数据对象的交互确定。
8.如权利要求1所述的方法,其中所述请求的消息指定一个小于为所述网络应用完整定义数据对象的数据域的更新数据子集。
9.如权利要求1所述的方法,其中所述更新用于所述应用对象的本地客户机数据状态包括呈递一个包括所述更新的应用对象数据的形象的虚拟显示。
10.如权利要求1所述的方法,其中所述应用包括在网络上传送流数据。
11.如权利要求1所述的方法,其中所述网络应用的每个用户具有所述网络应用共享数据空间的一个相应的数据对象的所有权。
12.如权利要求1所述的方法,其中所述网络应用的一个单个网络节点具有所述网络应用共享数据空间的所有用户相应数据对象的所有权。
13.一种网络计算机设备,包括一个网络通信接口,用于支持所述计算设备与一个网络之间的数据传送;以及一个中央处理单元,用于执行程序指令来提供一个多用户网络应用,该应用用于确定与一个应用数据对象有关的一个更新数据子集,所述数据对象由一个自有的网络用户保持在一个多用户网络应用共享数据空间中,这样所述更新数据子集指定小于或等于用于所述应用对象的完全的数据更新的一组数据域;从一个被保持的对应于所述数据对象的本地数据对象副本有关的请求来自自有用户的指定的更新数据子集的一个网络数据更新请求消息;并且接收数据对象的更新数据,该更新数据包含由所述更新数据子集指定的一组数据域。
14.如权利要求13所述的设备,其中所述设备用接收的更新数据子集更新所述数据对象的本地副本。
15.如权利要求13所述的设备,其中所述设备通过确定一个可用的网络带宽和根据可用带宽选择一个指定数量来确定更新数据子集。
16.如权利要求15所述的设备,其中所述设备通过接收一个用户选择的带宽值确定可用的带宽。
17.如权利要求15所述的设备,其中所述设备通过从本地客户机的一个操作系统接收系统资源信息来确定可用的带宽。
18.如权利要求13所述的设备,其中所述设备通过根据一个正在更新的用户对数据对象的兴趣程度确定所述更新数据子集的一组数据域来确定更新数据子集。
19.如权利要求18所述的设备,其中所述正在更新的用户的兴趣程度取决于正在更新用户与共享数据空间中的数据对象的交互。
20.如权利要求13所述的设备,其中所述请求消息指定一个小于为所述网络应用完整定义数据对象的数据域的更新数据子集。
21.如权利要求13所述的设备,其中为所述应用对象更新本地客户机数据状态包含呈递一个包括所述更新的应用对象数据的形象的虚拟显示。
22.如权利要求13所述的设备,其中所述应用包括在网络上传送流数据。
23.如权利要求13所述的设备,其中所述网络应用的每个用户具有所述网络应用共享数据空间的一个相应的数据对象的所有权。
24.如权利要求13所述的设备,其中所述网络应用的一个单个网络节点具有所述网络应用共享数据空间的所有用户的相应数据对象的所有权。
25.一种在计算机网络上从一个数据对象自有用户到一个正在更新的用户传送数据的方法,该方法包括在自有用户处为定义一个多用户网络应用中的一个应用对象的一组数据域确定更新数据;在所述正在更新用户处确定一个为所述多用户网络应用指定一个与一个应用数据对象有关的一个更新数据子集的一个更新数据消息,这样所述更新数据子集指定小于或等于包含由自有用户确定的所述更新数据的数据域的数目的数据对象的数据域;并且从一个正在更新用户发送一个更新数据消息给所述自有用户。
26.一种用于计算机设备上的程序产品,用来执行记录在一个计算机可读介质上的程序指令来执行一种用于在一个计算机网络上进行数据传送的方法,该程序产品包括一个可记录介质;以及多个计算机可读指令,可由所述计算机设备执行的来执行一个方法,该方法包括确定一个与一个应用数据对象有关的更新数据子集,所述数据对象由一个自有网络用户保持在一个多用户网络应用共享数据空间中,这样所述更新数据子集指定小于或等于用于所述应用对象的完全的数据更新的一组数据域;从一个被所述计算机设备保持的对应于所述数据对象的本地数据对象副本有关的一个请求来自自有用户的指定的更新数据子集的网络数据更新请求消息;并且接收数据对象的更新数据,该更新数据包含由所述更新数据子集指定的一组数据域。
27.如权利要求26所述的程序产品,其中该计算机设备用接收的更新数据子集更新所述数据对象的本地副本。
28.如权利要求26所述的程序产品,其中该计算机设备通过确定一个可用的网络带宽和根据可用带宽选择一个指定数量来确定所述更新数据子集。
29.如权利要求28所述的程序产品,其中该计算机设备通过接收一个用户选择的带宽值确定可用的带宽。
30.如权利要求28所述的程序产品,其中该计算机设备通过从该计算机设备的一个操作系统接收系统资源信息来确定可用的带宽。
31.如权利要求26所述的程序产品,其中该计算机设备根据一个计算机设备正在更新的用户对数据对象的兴趣程度通过确定所述更新数据子集的一组数据域来确定更新数据子集。
32.如权利要求31所述的程序产品,其中正在更新的用户的兴趣程度取决于正在更新用户与共享数据空间中的数据对象的交互。
33.如权利要求26所述的程序产品,其中所述请求的消息指定一个小于为所述网络应用完整定义数据对象的数据域的更新数据子集。
34.如权利要求27所述的程序产品,其中该计算机设备通过呈递一个包括所述更新的应用对象数据的形象的虚拟显示来更新所述应用对象的本地副本。
35.如权利要求26所述的程序产品,其中所述网络应用包括在网络上传送流数据。
36.如权利要求26所述的程序产品,其中网络应用的每个用户具有所述网络应用共享数据空间的一个相应的数据对象的所有权。
37.如权利要求26所述的程序产品,其中所述网络应用的一个单个网络节点具有所述网络应用共享数据空间的所有的用户相应的数据对象的所有权。
38.一种网络计算机设备,用于在计算机网络上传送数据,该计算机设备包括一个处理器,用于执行一个多用户网络应用,这样该计算机设备包括所述网络应用的一个本地客户机;确定装置,用于确定一个与一个应用数据对象有关的更新数据子集,所述数据对象由一个自有的网络用户保持在一个多用户网络应用共享数据空间中,这样所述更新数据子集指定小于或等于用于所述应用对象的完全的数据更新的一组数据域;通信装置,用于从一个保持对应于所述数据对象的本地副本的一个正在更新用户发送一个网络数据更新请求消息,该网络数据更新请求消息请求来自自有用户的指定的更新数据子集;并且接收装置,用于接收数据对象的更新数据,该更新数据包含由所述更新数据子集指定的一组数据域。
39.如权利要求38所述的计算机设备,其中所述处理器用接收的更新数据子集更新所述数据对象的本地副本。
40.如权利要求38所述的计算机设备,其中所述确定装置确定一个可用的网络带宽并且根据可用带宽选择一个指定数量。
41.如权利要求38所述的计算机设备,其中所述确定装置通过接收一个用户选择的带宽值确定可用的网络带宽。
42.如权利要求41所述的计算机设备,其中所述确定装置通过从本地客户机的一个操作系统接收系统资源信息来确定可用的带宽。
43.如权利要求38所述的计算机设备,其中所述确定装置通过根据一个正在更新的用户对数据对象的兴趣程度确定所述更新数据子集的一组数据域来确定更新数据子集。
44.如权利要求43所述的计算机设备,其中所述确定装置根据正在更新用户与共享数据空间中的数据对象的交互来确定正在更新的用户的兴趣程度。
45.如权利要求38所述的计算机设备,其中所述请求的消息指定一个小于为所述网络应用完整定义数据对象的数据域的更新数据子集。
46.如权利要求38所述的计算机设备,其中所述处理器通过呈递一个包括所述更新的应用对象数据的形象的虚拟显示为所述应用对象更新本地客户机数据状态。
47.如权利要求38所述的计算机设备,其中所述应用包括在网络上传送流数据。
48.如权利要求38所述的计算机设备,其中所述网络应用的每个用户具有所述网络应用共享数据空间的一个相应的数据对象的所有权。
49.如权利要求38所述的计算机设备,其中所述网络应用的一个单个网络节点具有所述网络应用共享数据空间的所有用户的相应的数据对象的所有权。
全文摘要
与一个多用户网络应用有关的在一个计算机网络上从一个拥有所述数据对象的网络用户到一个正在更新的用户的数据传送,通过定义所述数据对象的数据域的一个子集的传送来得到,这样所述数据域的子集由所述正在更新的用户来指定,并且小于或等于包括为所有数据域定义所述数据对象的更新值的究全的更新传送。每个数据对象由多个数据域来定义,这样所述数据对象数据域的一个子集的传送保证了数据更新所利用的网络带宽将从其中用于一个正在被更新的对象的所有定义的数据域通过网络被传送的情况减少。
文档编号A63F13/12GK1695134SQ03805935
公开日2005年11月9日 申请日期2003年8月4日 优先权日2003年1月9日
发明者G·范达塔 申请人:美国索尼电脑娱乐公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1