CN1350677A - 通信网中的方法和设备 - Google Patents
通信网中的方法和设备 Download PDFInfo
- Publication number
- CN1350677A CN1350677A CN00807382A CN00807382A CN1350677A CN 1350677 A CN1350677 A CN 1350677A CN 00807382 A CN00807382 A CN 00807382A CN 00807382 A CN00807382 A CN 00807382A CN 1350677 A CN1350677 A CN 1350677A
- Authority
- CN
- China
- Prior art keywords
- application
- information
- server
- client computer
- access server
- 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
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Between Computers (AREA)
- Small-Scale Networks (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
借助于服务器单元可以改进在通信网中的实时性能,特别是在大量参加者之间的通信,该服务器单元包括接收装置,用于接收来自至少一个客户机单元的信息,所述信息包括至少一部分有关分布互动应用的状态信息,所述服务器单元包括:状态信息存储装置,用于存储从至少一个所述客户机单元接收的应用状态信息,发送装置,用于把从所述客户机单元接收的状态信息转发到网络中的至少一个其它的节点,以及用于把被存储在所述状态信息存储装置中的至少一部分信息发送到所述至少一个客户机单元。这样,该应用的整个状态被保持在网络中的一个或多个单元中,它去除每个客户机存储整个状态的需要,由此减小每个客户机处的存储器和带宽的需要。
Description
技术领域
本发明涉及通信网,具体地,涉及在这种网络中的应用的几个用户之间的实时通信。
相关技术描述
当前正在开发例如用于多用户的游戏的多用户通信应用。这样的游戏可以由连接到同一个LAN(局域网)或甚至更大的网络(诸如互联网)的不同的部分的多个用户参加。对于这样的应用,使用三个主要模型:客户机-服务器同步,对等体到对等体的同步,或广播同步。今天在互联网上的某些多用户游戏涉及多达100 000个参加者,其中的几千人可同时参加游戏。今天使用的所有的同步方法都会造成相当长的延时。所以,今天在互联网上进行的多用户游戏都是那些速度不是关键性问题的游戏。例如,对于快速动作的游戏(诸如赛车游戏或战斗游戏,其中用户必须对在几分之一秒内发生的事情作出反应),就不能通过使用任何标准同步方法并以可接受的质量来玩游戏。
拨号接入网络典型地使用客户机-服务器同步。在这种情形下,服务器接收来自所有的游戏者的数据。它必须找出每个游戏者需要的信息以及发送这些信息。中央服务器是系统中明显的瓶颈。中央客户机-服务器游戏可以支持2-250个游戏者。较高的数目要涉及到更新速率低到2Hz的服务器。中央服务器会附加上等待时间是因为增加的输送距离和在服务器中的处理与安排延时。例如考虑一种情形,其中客户机在美国西海岸而服务器在美国东海岸。将会由客户机-服务器的运行模式造成约80ms的输送等待时间和至少10ms的处理等待时间。
所以,客户机-服务器同步不适用于其中延时是关键性的、具有大量游戏者的实时应用。
对等体到对等体同步是指所有的客户机把应用数据直接发送到所有其它的客户机。这种模型常常被使用于在公共互联网上参加的游戏。游戏开发者提供一个免费应用接待厅服务器,在其中使得游戏者相遇建立游戏以及参加正在进行的游戏。一旦游戏开始,它以同级模式进行,而不从游戏开发者场地提取任何资源。
对等体到对等体同步具有明显的可缩放性问题,因为网络负载正比于游戏者数目的平方;客户机接入带宽和CPU功率要求正比于游戏者的数目。在每个分组中的有用负载是10-40字节,这意味着协议附加开销通常是大于50%。小的游戏分组给出大的协议附加开销。然而,通过标题压缩方法,这个附加开销可被大大地减小。在互联网上的同级游戏受到不可预测的延时,以及常常因为同步的丢失而中断。
由此看到,对等体到对等体同步也最好地适用于小的网络,在相当短的距离上以及在有限数目的用户之间进行通信。
广播同步可以被局域网(LAN)上有限数目的用户使用,但不适合于较大的网络。
因为受同步方法施加的限制,以当前的技术达到具有良好实时特性的多个参加者的通信是不可能的。
通过多点传播(multicast),必须在网络中进行发送的信息可被大大地减少,因为信息只需要发送到每个多点传播服务器一次,而不是发送给每个用户一次。每个多点传播服务器然后复制该信息以及把它发送到所连接的用户。可以选择每个用户需要接收的信息。这可以减小服务器之间的和每个服务器与它的用户之间的业务量。用于游戏的这样的解决方案在美国专利5,841,980中被揭示。
在美国专利5,841,980中所揭示的系统中,每个用户只具有与游戏部分有关的信息,这个信息是与当前情形中的用户有关的,例如,有关他所处在的地理区域的信息。如果环境改变,例如,如果用户移动到另一个房间,则在新的环境中的重要信息将不提供给用户。
发明目的
本发明的一个目的是改进在通信网中的实时性能,特别是对于在大量参加者之间共同进行的通信。
发明概要
按照本发明,这个目的是通过一种在通信网中使用的服务器单元而达到的,所述服务器单元包括接收装置,用于接收来自至少第一客户机单元的信息,所述信息包括至少一部分有关分布互动应用的状态信息,所述服务器单元的特征在于,它包括:
-状态信息存储装置,用于存储被包括在通过接收装置从所述第一和第二客户机单元之一接收的信息中的应用状态信息,
-第一发送装置,用于把从所述至少第一客户机单元接收的状态信息转发到网络中的至少另一个节点,
-第二发送装置,用于把被存储在所述状态信息存储装置中的至少一部分信息发送到所述至少一个客户机单元。
这使得能够把应用的整个状态保持在网络中的一个或多个单元中,这样就消除了每个客户机存储整个状态的需要,由此减小每个客户机处的存储器容量的需要以及对于与每个客户机进行通信所需要的带宽。如果应用状态的每个部分被存储在一个以上的网络节点或客户机中,则有利于实现备份。
按照本发明,这个目的是通过在通信网中的终端中使用的客户机单元达到的,包括用于分布互动应用的应用软件,该客户机单元的特征在于,它包括:
-至少一个输入装置,用于读出来自所述终端的输入,所述输入至少构成用于分布互动应用的应用状态信息,
-发送装置,用于把应用状态信息发送到应用接入服务器,
-接收装置,用于从所述应用接入服务器至少接收用于分布互动应用的应用状态信息,
-用于显示所述状态信息的装置。
按照本发明的方法和设备对于分布互动应用特别有用的,特别是涉及到实时通信的情况下。
优选地,所述服务器装置的接收装置适用于:
-接收来自至少所述第一客户机的预约信息,所述预约信息标识这样一些分布互动应用对象,其中所述第一客户机希望接收有关于这些对象的信息。
-根据从该客户机单元接收的预约信息,发送信息到所述至少一个客户机单元,
-所述服务器单元还包括至少一个客户机预约表,用于存储所述预约信息。
因此,所述客户机单元还包括:用于设置预约信息以便规定应当由其中接收可供使用的信息的分布互动应用的至少一个对象的装置;以及用于发送所述预约信息到所述应用接入服务器的装置。
这减小了要被发送到每个用户的信息量,由此,减小传输延时,并且也有助于每个用户分析信息,因为只有对于特定用户最重要的信息才显示给该用户。每个客户机能够为自己决定哪些是重要的信息。
在一个优选实施例中,接收装置用来从至少第二客户机接收有关所述第一客户机的紧急信息。紧急信息可被发送到第一客户机,或有关所述第二客户机的应用状态信息可以根据所述紧急信息而被转发到至少所述第一客户机。紧急信息也可被使用来指示:某个应用状态信息不应当被转发到所述第一客户机。紧急信息可被使用来改变客户机预约。
在所述优选实施例中,客户机单元还包括用于设置紧急数据以便规定应当尽可能快地接收来自该客户机的状态信息的至少一个其它客户机的装置。
有利地,用于发送应用状态信息的客户机单元的发送装置被用来在把对象信息分组发送到服务器单元之前安排该对象信息分组中的信息,其中与一个对象有关的分组构成了应用的一部分,以及所述接收装置被用来从服务器单元接收的分组中提取信息。
应用接入服务器系统与应用无关,所以,它可以支持很宽范围的不同的应用。
共同工作的应用接入服务器可以在优选地提供保留的或被管理的传输容量的网络上进行通信。应用的集合的带宽要求可以由网络管理系统来估值,以及足够的网络资源可被分配给正在连接应用接入服务器单元的保留的网络。新的应用只有在资源是可提供时才是允许的。网络管理也控制应用接入服务器单元的重新发送和复制政策。多点传播和资源保留协议可被使用于各个应用接入服务器单元之间的集合的数据流。这个系统的优点在于,在游戏者级别上的资源保留是不必要的。如果总的统计性能是良好的话,应用客户机通常可管理偶尔丢失的分组。使用按照本发明的应用接入服务器将意味着游戏客户机决不会永久地失去同步,因为应用接入服务器单元总是保持游戏状态。
附图简述
下面将参照附图更详细地描述按照本发明的设备和方法,其中:
图1显示按照本发明的网络的实施例;
图2显示按照本发明的第一实施例的应用接入服务器;
图3显示按照本发明的应用状态记录的实施例;
图4显示按照本发明的一个实施例的应用客户机;
图5显示按照本发明的一个实施例使用的通信堆栈;
图6显示按照本发明的应用接入服务器的第二实施例;
图7显示在应用接入服务器的第二实施例中使用的应用路由器;
图8是在本发明的实施例中使用的应用接入服务器的分级结构的示意性代表。
实施例详细描述
图1显示按照本发明的通信网的一个实施例。按照本发明,网络包括至少一个应用接入服务器。在图1上,显示第一1、第二3和第三5应用接入服务器,通过网络7(例如保留的电信网)而互相连接。它也可以是任何其它类型的网络,然而,那些不可能预约网络资源的网络(诸如互联网)如果负载很重,则可能会提供较低的质量。多个客户机11、12、13、14、15也被连接到网络7。客户机可以以技术上已知的任何方式连接到适当的应用接入服务器1、3或5,正如下面更详细地描述的。
客户机可以通过用于运行分布互动应用的应用接入服务器互相通信,其中大量参加者同时对应用(例如,实时多用户游戏)的状态起作用和影响该状态。在每个客户机和与其相连接的应用接入服务器之间,通常将会有低容量连接,诸如调制解调器连接。另一方面,在两个应用接入服务器之间,高的和可变的网络容量是可提供的。所以,按照本发明的应用接入服务器适用于这样地处理有关应用状态的信息,以便通过只把与该客户机最相关的信息发送到每个客户机从而减小发送到每个客户机的信息量。在应用接入服务器之间,传输容量通常将不是问题,所以,在应用接入服务器之间可以传输更多的信息。
在网络中也可以存在一个或多个其本身已知的种类的应用接待厅服务器21。这些服务器典型地包括允许客户机登录特种类型的业务的功能、处理收费功能等等。
按照本发明,对于应用所需要的软件在客户机11、12、13、14、15处找到。为了使用按照本发明的通信功能,用户必须确保他具有所需要的应用软件。应用软件可以以技术上已知的任何方式被检索,例如,从互联网下载或从CD-ROM上安装。如果应用需要,他也必须向应用接待厅服务器登录。典型地,应用接待厅服务器21将提供一个或多个应用接入服务器1、3、5的地址(通常是IP地址)和端口号码,但这个地址也可以以任何其它方式得出。
用户以技术上通用的方式,通常是通过输入应用接入服务器或应用接入服务器的库的IP地址而连接到应用接入服务器。存在几个算法,可用于选择由同一个地址所识别的、网络中多个节点中的适当的节点。应用接入服务器接收来自用户的信息,以及开始发送信息给用户,正如下面更详细地描述的。替代将客户机登录到应用接入服务器,应用接待厅服务器也可以把客户机网络地址发送到应用接入服务器。
假定应用包含一组由参加者控制的对象。一个对象是由参加人控制的或在客户机处产生的应用中的一个项目,以及不能在每个应用客户机处被局部地重新产生,例如,受随机数产生器或其它不能预测的计算处理过程的控制。应用对象可以是参加者直觉地认作为对象或游戏图形的事物,但它们也可以是背景数据结构,诸如由游戏者控制的环境变量。应用对象由一个或几个游戏者控制。每个对象典型地具有一组性质和属性,它们在应用运行的同时可以被改变。在游戏中,这些性质可以是角色的力量和其它能力,或汽车的最大速度,以及属性可以是由角色所集合成的项目。
从用户处接收的信息,除了信令附加开销以外,通常将包括三种不同类型的信息:状态信息、预约信息、控制数据和紧急信息。状态信息是关于由用户控制的对象的信息,它应当被分配给应用的其它用户。预约信息列出有关由应用接入服务器提供的不同的应用对象的客户机优先级。例如,有关某个对象组的信息在它成为可提供时应当立即或尽可能经常地被接收,而来自另一组对象的信息不是紧急的。在缺乏带宽的情形下,可以以可接受的延时或领先的方式设置几个优先级级别。由客户机产生的紧急信息可被使用来超越或改变另一个客户机的预约,以使得其它的客户机接受有关那些没有被包括在它的预约中的对象的信息,或确保客户机不接收某些信息。下面更详细地讨论所有三种类型的信息。
作为一个例子,将描述由大量用户参加的实时游戏的应用。这样的游戏今天由位于局域网(LAN)中互相很靠近的、有限数目的游戏者参加。在广域网上进行的这样的游戏在将来可以涉及典型地分布在大的游戏区或虚拟的地理区域的几千个游戏者。对于现有技术的方法,这将不可能具有可接受的质量,正如上面讨论的。
每个游戏者只是立即被在虚拟游戏区域中在他附近发生的事情影响。另一个游戏者离得越远,这个游戏者的变化影响就越小。例如,一个游戏者可能介入与第一敌方游戏者打仗,一个友方游戏者可能正在过来救助,以及第二敌方游戏者可能正在尝试制止该友方游戏者。同时,其它的游戏者正在做在以后的时间变成为有趣的事情,但是目前游戏者的主要关心的问题是在战斗中存活下来。所以,第一敌方游戏者的运动必须立即被显示。该友方游戏者和第二敌方游戏者的运动也应当给予高的优先级,而离得较远的地方发生的事情应当给予低的优先级。
在上面讨论的例子中,显然,游戏者的配置将改变,以使得在另一个时间,来自其它游戏者的信息将具有最高的优先级,这里通常是指那些在任何给定的时间位于用户附近的游戏者。
应用接入服务器可处理与应用客户机的通信。它接收有关影响应用状态的客户机的行动的信息和其它信息。它也按照参加者的预约把来自其它参加者的应用状态信息发送给参加者。每个应用客户机设置关于要接收的应用信息的预约,以及把有关这些预约的信息发送给应用接入服务器。应用接入服务器存储和更新由应用接入服务器提供服务的客户机的预约的记录。每个客户机的预约被使用来确定哪些数据要被发送给这个客户机。客户机也可以设置对于另一个客户机的预约。在一个运行模式下,主客户机可以设置所有其它的客户机的预约。
客户机被连接到的应用接入服务器是客户机的本地的应用接入服务器,以及该客户机被称为该应用接入服务器的本地客户机。
应用接入服务器也保持客户机权限表。每个客户机具有改变一个或多个游戏对象的状态的权利。客户机权限表对于每个客户机具有一个项目,在其中存储由客户机控制的对象的识别号。应用接入服务器在每次从客户机处接收对象状态信息时检验合法性。游戏状态只在信息分组中找到的识别号与在权限表中对于客户机的项目中的一个号码相匹配的情况下才被更新,否则该信息被忽略。从其它应用接入服务器单元送来的对象状态信息不被验证,因为发送的应用接入服务器已检验合法性。
每个应用接入服务器也与其它应用接入服务器单元通信、发送应用状态信息和可任选地聚集的预约给它们、以及接收来自它们的相同类型的信息。通常,要被发送到其它应用接入服务器的信息按照适当的协议被打包以及被发送,而并不以任何方式被附加优先级或被存储。当然,有可能根据它的本地客户机的用户预约来选择要被发送到每个应用接入服务器的信息。聚集的预约是来自属于给定的应用接入服务器的客户机的所有的应用对象请求的总和。例如,应用接入服务器可以使用至其它应用接入服务器单元的多点传播方式。这确保每个应用接入服务器单元接收所有的需要的更新,以及游戏状态被有效地分配在应用接入服务器单元上。
紧急数据由一个客户机设置,如果数据对于另一个客户机是重要的话,但另一个客户机不知道这一情况,所以,不能设置他自己的预约。所以,紧急情况由发送的客户机规定,以及它对于不同的接收客户机可以是不同的。如果正在等待紧急数据,则应用接入服务器提醒正在接收的客户机。紧急信息也可以被使用来禁止某些信息转发到一个或多个客户机。
每个应用接入服务器也存储和更新应用状态的全部的或部分的副本。那些被分配给通信进程的应用接入服务器单元必须在它们之间存储完整的应用状态。在最简单的情形下,每个应用接入服务器存储完整的应用状态,但也有可能在应用接入服务器之间分割信息,从而使它们带有或不带有重叠的信息。重要的解决方案协议特别的软件来处理把适当的数据分布到每个应用接入服务器。
应用接入服务器与应用接待厅服务器进行通信,以便建立该应用,从而在正在运行应用和处理错误和网络故障的同时,添加和去除参加者。
图2显示按照本发明的一个实施例的应用接入服务器以及其它的功能实体。这个应用接入服务器可以用硬件或软件来实施。在图2上,只给出一般的描述。后面将讨论适当的格式和协议。
应用接入服务器通过输入缓存器51来接收来自网络的每个客户机的数据,以及来自其它单元(诸如其它应用接入服务器)的数据。对于每个客户机,远端应用接入服务器和应用接待厅服务器各有一个输入缓存器,虽然在图2上为了简明起见只显示了一个输入缓存器。
每个本地参加者的动作作为到达与这个客户机有关的应用接入服务器的输入缓存器的应用对象分组中的有用负载而被发送。这些应用对象分组可以更新由参加者控制的应用对象。应用对象分组通过一组插入规则而被写入到应用状态记录。
从客户机处接收到的数据可以包括三种类型的数据:有关应用的状态的数据(状态数据)、有关客户机的预约的数据(优先级数据)和其它控制信息,诸如对于时间基准、其它客户机的状态和来自系统的其它信息的请求。状态数据通过应用对象分组流水线53被传送到应用状态记录55。应用状态记录55保持对于所有的相关的对象的所有的状态数据,诸如将在下面更详细地讨论的那样。应用状态记录也保持如上所述的紧急数据。
客户机组可以被加以规定,所述客户机组包括在一个工作组中的参加者,或在游戏的情形下是同一个队中的参加者。在这种情形下,预约和或紧急数据也可以是针对用户组规定的,而不仅仅对于单独的用户。
控制数据,特别是不必实时处理的数据(诸如关于添加上和去除掉应用对象的信息)从输入缓存器51被传送到应用接入服务器控制单元57。在硬件实施方案中,控制单元57可以是微处理器。由控制单元处理的控制数据可以涉及创建和取消游戏者和对象以及游戏者组和对象组。
预约通过应用优先级控制协议消息流水线59被传送到客户机优先级清单(CPL)61,后者包含由应用接入服务器支持的每个客户机的预约。预约可以由客户机和由应用接入服务器控制单元来更新。控制单元可以根据从另一个客户机处接收的紧急消息来决定更新客户机的预约。
几个不同的优先级策略可以通过应用接入服务器系统而被应用客户机采用。一种简单的方法是应用客户机把对象的已列举的清单发送到CPL 61。在这种情形下,当在清单上的所有的对象被更新时,没有在清单上的对象可以以循环方式被更新。如果在清单上的所有的对象被更新,则其余对象可以以循环方式被更新。特定的客户机的预约包括由该客户机设置预约的所有对象的清单。此外,被存储在应用接入服务器中的清单优选地包括对于每个对象的标志,表示是否接收到对于该对象的新的信息。标志被使用来确定关于某个对象的信息是否需要被发送到客户机。当信息被发送到客户机时,标志被复位。当由应用接入服务器接收到对于对象的新的更新时,标志再次被设置。
客户机预约也可以用与每个对象有关的时间间隔来规定。客户机然后发送一系列以下格式的请求:
<object number(对象号码)>,<object priority(对象优先级)>,<object update time interval(对象更新时间间隔)>,<flag(标志)>。简单的清单可以只有格式<object number>,<objectpriority>。应用接入服务器将试图发送更新给客户机,以使得每个对象在每个时间间隔期间以按照在请求中的<object ptiority>域给定的优先级至少被更新一次。无穷大符号可被使用来使得某些对象完全不被更新。可以设置一个特别的“只发送新的完整的对象状态”标志。这个任选方案在客户机想要接收对于具有长的时间间隔(几秒)的对象的更新时被使用。如果想要的时间分辨率长于状态刷新时间间隔,发送增量更新是浪费的。
输出流水线63接收来自客户机优先级清单的预约信息,以及使用这个信息来搜索应用状态记录55,从而通过使用上述的适当的算法寻找要被发送到所讨论到的客户机的信息。选择的状态信息从应用状态记录55通过输出流水线63传送到输出缓存器65,以及从输出缓存器传送到客户机。例如,控制单元57发送控制消息给客户机和远端服务器以便使时钟与客户机同步或提供等待时间估值给客户机。
虽然图2所示的应用接入服务器被显示为只有一个每种类型的单元,但优选地,应用接入服务器对于应用接入服务器与其交换信息的网络中每个客户机和每个其它服务器,都包括一个输入缓存器51、一条应用对象分组输入流水线53、一条优先级消息流水线55、以及一条输出处理流水线63和一个输出缓存器65。替换地,一组客户机或一组服务器可共享一个输入缓存器51、一条应用对象分组输入流水线53、一条优先级消息流水线55、以及一条输出处理流水线63和一个输出缓存器65。应用接入服务器也包括对于每个客户机、服务器等的一个客户机优先级清单。
从其它应用接入服务器接收的数据包括来自其它客户机的对象状态数据。它也可包括来自这些客户机的优先级信息,该信息优选地以这样的方式被聚集,以使得每个对象在优先级清单上只出现一次。在这种情形下,信息将被打包,这样,对于每个应用接入服务器有一个优先级清单,也就是,每个应用接入服务器像一个客户机那样被处理。从另一个应用接入服务器接收的信息以与从客户机接收的信息相同的方式被对待,除非输入和输出缓存器51,65也必须执行一定的协议处理,正如下面将讨论的。替换地,从其它应用接入服务器没有接收预约信息,在这种情形下,所有的状态信息将被发送到这些应用接入服务器。
应用接入服务器也可以处理任选的公正游戏(fairplay)模式,在其中所有的游戏者同时被更新(见下面)。
如上所述,一个或多个其本身已知的种类的应用接待厅服务器(图1上的21)可以存在于网络中。应用接待厅服务器负责更新在游戏期间的配置数据,从而提供以下的数据给应用接入服务器:
·进入游戏的、新的应用接入服务器单元的IP地址或其它网络地址
·标识由应用接入服务器服务的参加者的、更新的网络地址清单。这使得新的参加者能够参加正在进行的应用。
·更新的已列举的游戏对象清单。对于每个对象,规定哪个应用接入服务器负责存储状态,如果状态被分布在应用接入服务器之间的话。也可以规定谁被许可来更新状态。这使得能够创建、取消和改变游戏对象的控制。客户机也可以创建和取消游戏对象。
·新的完整的或局部的游戏状态。这使得当应用接入服务器系统抛弃游戏状态时能够在游戏中暂停或失败后恢复。
图3显示按照本发明的应用接入服务器中使用的应用状态记录的例子:
每个应用对象的状态被存储在应用状态记录中作为一组已列举的应用对象状态AOS1-AOS4。每个应用对象状态分别包含一系列应用对象分组AOP11-AOP13、AOP21-AOP24、AOP31和AOP41-AOP42。对象分组是用于对象数据的容器。从应用发送到远端应用客户机或服务器的所有的数据被打包在应用对象分组中,这样,它可以由应用接入服务器系统来处理。
由应用接入服务器从它连接到的所有的其它应用接入服务器处接收的信息被使用来更新在应用状态记录中的应用对象信息。优选地,有两种类型的应用对象分组:(1)参考应用对象分组,包括有关对象的所有的当前的数据,以及(2)增量分组,只包括有关自从由增量分组涉及到的APO的时间印记给出的时间以来已改变的内容的信息。在AOS中的第一AOP必须是参考分组,后面跟随一组增量分组或一个参考分组。某些游戏只尝试参考分组。
应用状态记录也保存那些需要被传送到其它应用接入服务器单元的应用对象分组的记录。这可以通过使用数据结构new_client_data被完成,该数据结构可被实施为矩阵new_client_data(i,k),其中每个元素是一个标志。参量i是客户机号码,以及参量k是应用接入服务器号码。如果应用对象分组应当被传送到外部应用接入服务器,则该标志被设置,
图3显示应用对象状态AOS1,作为应用对象状态可以被怎样使用来描述应用对象的例子。这个对象可以描述在赛车游戏中汽车的位置。汽车的位置(x1,y1)首先作为在参考应用对象分组AOP11中的游戏有用负载在游戏时间t1而被发送。为了节省带宽,在游戏时间t2位置的相对改变(Δx2,Δy2)被发送作为增量应用对象分组AOP12。增量应用对象分组AOP12指向参考应用对象分组AOP11以作为参考。在游戏时间t3,新的增量位置在第三应用对象分组AOP13中被发送。第三应用对象分组AOP13以第二应用对象分组AOP12作为参考。在接收所有三个应用对象分组AOP11、AOP12、AOP13后,客户机可以按照(Δx1+Δx2+Δx3,Δy1+Δy2+Δy3)计算在时间t3时汽车的位置。
当新的参考应用对象分组针对特定的对象而被接收时,应用状态记录可以删除属于对象的所有以前的分组,以及正好存储新的参考分组。注意,游戏有用负载的句法和语义学只能被运行在客户机终端的游戏应用所理解。应用应当经常发送参考分组,以便避免由丢失的数据造成的长的中断。
编码应用的另一个方式是让第三应用对象分组AOP13在时间t3使用参考应用对象分组AOP11作为参考,以及只说明相对于(x1,y1)的位置改变δx,δy。这将节省应用接入服务器存储器,因为只要第三应用对象分组AOP13一到达,第二应用对象分组AOP12就可在时间t2被删除。客户机现在可以按照(x1+δx3,y1+δy3)计算在时间t3时汽车的位置。应用接入服务器使用在应用对象分组标题中的信息,以便确定先前的应用对象分组是否满时以及可被删除。在图3上,AOS2包含三个应用对象分组AOP21、AOP22、AOP23和AOP24,其中第一个应用对象分组AOP21是参考分组,以及三个后面的应用对象分组AOP22、AOP23和AOP24是增量的。最后的增量具有时间印记t8。AOS2因此描述对象2的状态直到游戏时间t8为止。图3上的AOS 3只包含一个参考应用对象分组AOP31,这对于描述对象是足够的。
在允许新的客户机开始向该应用广播之前,按照优选实施例,应用接入服务器可以估计所需要的增量带宽,确保这个带宽在网络中是可提供的。用于做到这一点的方法在技术上是熟知的。如果没有预见容量问题,则不需要这个步骤。
图4显示按照本发明的客户机正在其上运行的计算机的实施例。计算机包括处理单元101,在其中运行程序,例如是按照本发明的应用程序103。处理单元还借助于通信软件105与应用接入服务器(未示出)通信,以及可能与网络中的其它单元通信。应用程序103通过网络应用接口107与通信软件105通信。网络应用接口具有用于发送和接收来自应用程序的应用数据的功能。
计算机还包括屏幕109以用于显示有关应用的数据(例如,对参加者立即感兴趣的游戏的一部分的总貌)。为了输入数据到应用,计算机可以具有键盘111、鼠标113和/或被连接到计算机的游戏棒115,借助于它们,游戏中的对象可被移动,或可以输入其它类型的改变。
客户机应用103接收所述输入,对其进行处理以及把它的结果显示在屏幕109上,和/或借助于扬声器和或触觉显示装置。它也根据所述输入把应用状态数据转发到网络应用接口107,再从后者把数据转发到应用接入服务器。
通过通信软件105和网络应用接口107,应用103也从游戏接入服务器接收有关其它对象的应用状态信息,对其进行处理,以及把结果显示在屏幕105上。
在本实施例中,网络应用接口107包括两个部分:应用保持接口107A和应用接入接口(AAI)107B。这个解决方案被选择来启动对标准程序模块(诸如微软的DirectPlay)的使用,以便实施网络AAI107B,正如下面讨论的。
应用接入接口(AAI)107B是在客户机终端处的软件模块。它是在网络接口与网络API 107A之间的中间模块。应用接入接口107B接收和终结应用对象分组和控制消息,以及在应用对象分组有用负载被传送到网络应用接口107之前去除应用对象分组标题。它也转译控制消息以及把它们传送到API 107A,或直接处理它们。AAI 107B处理对于与应用接入服务器通信所需要的功能,起到在客户机应用程序中不能实施的功能。所以,它对于已被开发用于按照本发明的应用接入服务器的客户机不一定必要。例如,AAI可以控制时钟,使得将时间印记安排在应用对象分组上,如果客户机没有这方面的功能的话。
在上游方向,AAI 107B接收来自API的消息和对象。来自客户机的、有关应用对象的数据被变换成应用对象分组格式。应用对象分组在通信链路上被发送到应用接入服务器。
AAI 107B也产生上游应用控制协议消息,特别是应用控制协议预约消息。对于建立预约所需要的信息和其它应用控制协议信息必须通过网络API从应用中提取,以及从应用接入服务器的紧急名单消息中提取。
实际的客户机(例如游戏控制台)可以参与几个游戏,或招待在同一个游戏中的几个游戏者。每个实际应用客户机可以运行几个逻辑应用客户机,其中逻辑应用客户机相应于被连接到一个应用接入接口事例的一个应用事例。这个文件中的应用客户机对应于逻辑应用客户机。一个指向逻辑应用客户机的网络地址可以包含与应用接入接口的端口号相组合的物理客户机的IP地址。
如果在开发应用程序时考虑应用接入服务器系统,则可以达到最好的性能。用于确定表示接收数据的优选的次序的预约的功能可被包括在应用程序中。如果从运行中的情形看到接收的游戏者不能预测消息的高的优先级,则消息可以以高的紧急度直接传送给共同游戏者。例如,考虑游戏中的一种情形,其中游戏者1正在与游戏者2对峙。突然,游戏者2受到游戏者1的攻击,而不作任何警告。游戏者2不能设置来自游戏者1的消息的正确的优先级,但游戏者1可以发送高度的紧急消息给游戏者2。
对于开发网络API,例如,可以使用微软DirectPlay API。然后,需要AAI来格式化输出,诸如ACP和AOP,以及可被写作为DirectPlay业务提供者。
通过使用微软DirectPlay API,至少有两种不同的提取预约的方式。注意,预约应当表明本地参加者接收有关列举的应用对象的更新的优先级。在本文件中的应用对象是与DirectPlay注解中的“游戏者”相同的,因为DirectPlay“游戏者”是可以发送和接收消息的应用实体。DirectPlay“游戏者”可以由游戏者控制,或它可以是自主的游戏对象。
在第一种方法中,使用从DirectPlay的接收方法中得到的信息。通过设置DPRECEIVE_FROMPLAYER标志和适当地规定lpidFrom参量,该方法可以从由lpidFrom参量所标识的“游戏者”中检索第一消息。这个信息可被应用接入接口使用来作出预约。如果在DirectPlay消息队列中没有来自标识的“游戏者”的消息可供使用,则合理地把被标识的应用对象放置在优先级清单的顶部。
在第二种方法中,使用DirectPlay的发送方法,在其中idTo参量标识应当接收消息的“游戏者”或游戏者组。可以合理地假定:接收经常消息的“游戏者”与本地游戏者当前正在与之进行交互的应用对象有关。AAI因而能预约由idTo参量标识的“游戏者”。
图5显示可以按照本发明被使用的通信堆栈的例子。一个通信堆栈被使用于在诸如图4所示的客户机与应用接入服务器之间的通信。客户机和应用接入服务器实际上包括相同类型的堆栈。在客户机处,堆栈的最高层与图4的应用接入接口层10通信,以及在应用接入服务器处,也显示了堆栈与应用接入服务器软件通信。图5也显示在应用接入服务器与网络的另一个单元之间使用的通信堆栈。这另一个单元可以是另一个应用接入服务器或是应用接待厅服务器。所使用的通信堆栈遵从OSI模型。
客户机通信堆栈与客户机处的应用编程接口107通信。堆栈的最高级别是ACP/AOP层109。这个级别由图4上的应用接入接口107处理。
包含诸如应用对象数据的信息或预约信息的ACP/AOP分组从ACP/AOP层109被传送到链路层111。链路协议可以是例如PPP。在相反方向,ACP/AOP层109从应用接入服务器接收的信息分组中去除标题信息,以及把应用状态信息转发到客户机应用。ACP分组可以终结在AAI处。如果客户机包括用于处理预约的功能,则预约本身可以由客户机本身处理。
最低层是信道层113,它包括信道编码和实际的物理连接。
应用接入服务器实际上包括用于与客户机通信的相同类型的堆栈:信道层113’相应于客户机的信道层。信道层113’通过链路层111’被连接到AOP/ACP层109’。
应用接入服务器中的AOP/ACP层109’直接与被安排来处理AOP和ACP信息的应用接入服务器软件115通信。
应用接入服务器可以被构建成带有去向许多不同的客户机链路协议的接口。理想地,应用接入服务器应当能够处理任何链路协议,包括UDP、TCP和RTP。RTP是特别为传输话音和视频数据而开发的协议。
链路协议应当被设计成使得从应用接入服务器到客户机的链路上的协议附加开销保持为低的。这可以通过例如使用适当的链路协议(其中没有使用IP/UDP/RTP)或通过有效的IP/UDP/RTP标题压缩来完成。链路层应当进一步减小等待时间,以及提供有关链路的性质的信息给应用接入服务器。这样的信息可包括预期的带宽、误码率和链路等待时间。
适当的输送协议(这里称为应用输送协议ATP)应当被使用在链路上,但应用对象分组和应用控制分组信息也可以通过链路协议被直接发送。
对于在两个或多个应用接入服务器之间的通信,IP分组流从本地应用接入服务器的输出缓存器65(见图2)被发送到参加正在进行的应用的一个或多个远端应用接入服务器单元。每个IP分组包含TCP或UDP分组,以及TCP或UDP有用负载是应用输送协议(ATP)分组。
用于在两个应用接入服务器之间的通信的通信堆栈的最高协议层是类似于在客户机通信堆栈中使用的那种的AOP/ACP层117。应用对象分组可以相当小,也就是,约40字节或更小。为了使得在两个应用接入服务器之间的通信更有效,把几个应用对象分组聚集在一个应用输送协议(ATP)层119中。下一个层是TCP或UDP层121,以及最低层是IP层123,这两个层121、123在本领域是熟知的。信息分组从IP层被发送到远端应用接入服务器单元。输出缓存器单元(图2上的65)保持一组分类缓存器,用于收集将成为ATP有用负载的应用对象分组。这些缓存器的结构取决于分布策略。对于每个远端应用接入服务器可以有一个分类缓存器。
应用对象分组可以包括一个用于列举出应当得到更新的客户机的域。这个域被变换成那些应当接收应用对象分组的应用接入服务器单元的名单。应用接入服务器保持一个表,它使得客户机数目与应用接入服务器数目相匹配。这意味着,所有的有关的应用接入服务器单元最终将得到更新。应用接入服务器单元然后把应用对象分组分配到它们的本地客户机。简单的可任选的工作模式是:所有的应用接入服务器单元接收所有的应用数据。
本地应用接入服务器识别那些需要通过远端应用接入服务器单元被发送的应用对象分组。本地应用接入服务器的应用状态接收机因而被加以扫描,从而可寻找到带有new_client_data(新客户机数据)标志的应用对象分组。应用对象分组标题包括接收者组域,它列出应用对象分组应当被发送到的一个或多个客户机地址。这个接收者组域被检验。客户机地址被转换成远端应用接入服务器地址,以及应用对象分组的副本被放置在对应于接收者应用接入服务器单元的分类缓存器中。该接收者组域针对每个应用对象分组副本而被更新,这样,只有属于接收的应用接入服务器或应用接入服务器组的接收者客户机才保留。new_client_data标志被复位。
应用对象分组包含来自游戏应用的有用负载。应用接入服务器系统不能读出游戏的内部有用负载格式。所以这样的消息被打包在应用对象分组(AOP)中。AOP的标题可以被应用接入服务器系统读出。它被使用来添加那些对于及时传递游戏有用负载所需要的信息。
在这里讨论的实施例中,除了标准互联网协议(诸如IP、TCP、UDP和RTP)以外,还使用三个非标准协议:
·应用对象分组(AOP)是用于游戏数据的容器。从游戏应用发送到远端游戏客户机或服务器的所有的数据被打包在AOP中,这样,它可以被应用接入服务器系统处理。
·应用控制协议(ACP)被使用来发送控制消息。控制消息在应用接入服务器单元、客户机和应用接待厅服务器之间进行发送。
·应用输送协议(ATP)被使用来在应用接入服务器单元之间和可任选地也在应用接入服务器与客户机之间发送聚集的游戏数据。
应用对象分组包含来自游戏应用的消息。应用接入服务器系统不能读出游戏的内部消息格式。这样的消息因而被打包在应用对象分组(AOP)中。AOP的标题可以被应用接入服务器系统读出。它被使用来添加那些对于定时传递游戏有用负载所需要的信息。
应用消息可完整地规定应用对象的状态,或它们可替换地相对于参考状态来描述应用对象。AOP因而具有两种类型:参考分组(BP)和增量分组(IP)。
应用对象分组包含标题,其后面跟随游戏特定的有用负载:可被使用于AOP的标题域包括:(1)应用对象号码。(2)时间印记,用于表示当AOP被产生时游戏中的时间。(3)可任选的分组号码。通过与对象号和时间印记相组合,它创建分组的独特的识别号。分组号码只在属于同一个游戏对象的几个AOP具有相同的时间印记时才被使用。(4)如果话音和或视频信息可被发送,则可以包括表示分组是否包含这种类型的信息的标志。(5)表示AOP是参考分组还是增量分组的标志。(6)如果AOP是递增的,则指针指向参考AOP。这个指针可包含时间印记和参考AOP的分组数目。参考AOP可以是基本AOP或是增量AOP。(7)用于描述应当接收消息的客户机的记录。这可以通过列出客户机或使用预定的客户机组而完成。缺省是所有的客户机接收数据。紧急域与每个接收的客户机或客户机组有关。这个域被使用来提醒接收机该消息是否紧急。三个紧急标题将是足够的。可被设置在紧急区域的标志是:
Forbidden:AOP不应当被分布给客户机或客户机组
Fair_Play:使用公正游戏模式(见下面)
Very_Urgent:超越客户机优先级
Urgent:客户机将被提醒
Normal:按照客户机优先级而传递
Not_Urgent:最尽力地传递
简单的格式可以是:
<number of entries><clientl><urgency for client l><client
2><urgency for client 2>…
在列表中后面的项目超越前面的项目。该域:
2,all Forbidden,client_3 Urgent
是指所有的客户机被禁止接收AOP,除了在紧急模式中将得到AOP的客户机号3以外。(8)有用负载的规模
应用控制协议(ACP)被使用来在游戏客户机、应用接入服务器单元和应用接待厅服务器(ALS)之间发送控制消息。在这里提供ACP的概况。每个ACP分组包含标题和消息体。
ACP消息可以包括以下的域:(1)ACP消息类型。(2)时间印记,表示当消息被产生时游戏中的时间。(3)消息的规模。(4)消息体。
注意,消息源由更高的协议级别来标识。在下面,将概述可以通过使用ACP发送的消息。
从客户机到应用接入服务器的ACP消息可包括以下项目:
·终结客户机。应用接入服务器管理系统去除来自所有的记录的客户机,以及通知应用接待厅服务器(ALS)。客户机负责通知ALS:它是否正在离开游戏。ALS负责通过发送最后的得分和通知其它游戏者而最终与终结的客户机接触。
·预约。
·添加游戏对象。新的游戏对象号由应用接入服务器产生,以及应用接入服务器存储器被分配用于接收来自客户机的对象状态信息。
·去除游戏对象。在所有的客户机和远端应用接入服务器单元已接收上一个更新后,该对象从所有的应用接入服务器存储器中被去除。
·发送对于对象的估计的等待时间。这个请求包括对象号码清单。应用接入服务器通过发送对于对象的估计的端到端等待时间来作出应答。客户机应用使用对于等待时间隐蔽的估值。
·定义对象组。对象组对于那些否则将必须在客户机链路上被发送的长的对象号码清单给予短的名字时是有用的。Direct-Play处理分级结构“游戏者”组,这样,游戏API将能够提供有用的组定义。应用接入服务器存储对象组信息,以及作为对于对象清单的同义名来对待对象组。消息可以具有以下格式:消息类型=定义对象组;><object group name(对象组名称)><list ofobject(对象清单)>
·定义客户机组。客户机组对于那些否则将必须在AOP域中在客户机链路上被发送的长的客户机号码清单上设置短的名字时是有用的。应用接入服务器存储客户机组信息,以及作为对于客户机清单的同义名来对待客户机组。该消息可以具有以下格式:消息类型=定义客户机组<client group name(客户机组名称)><listof client(客户机清单)>
·发送时间参考。这个消息被使用来从应用接入服务器下载参考时间。
从应用接入服务器到客户机的ACP消息可包括以下项目:
·紧急清单。如果紧急的未读出的AOP正在等待,这个消息被使用来提醒客户机。应用接入服务器扫描在AOP接收者清单上所有的具有现在的客户机的未读出的AOP。紧急清单可以具有以下格式:
<urgency class 1><list of object numbers(对象号码清单)><urgency class 2><list of object numbers>等
·等待时间估计。这包含按照以下格式的项目组:
<game object number(游戏对象号码)><upstream latency><upstream latency variance><downstream latency><downstreamlatency variance>
“不知道”符号可被使用于任何域(除了第一域以外)。
·确认对象组号码。应用接入服务器从客户机接收“定义对象组”消息。它确认全部对象组号码已被分配。消息体将包括:<global object group number><client’s object group name>
用于分配对象号的简单的方法将是:
假定N个应用接入服务器单元的总数是有效的。计数所有的有效的应用接入服务器单元。如果应用接入服务器号k请求新的对象号,它从序列{k,N+k,2N+k,3N+k,...}中分配最低的自由对象号。
·确认客户机组号码。应用接入服务器从客户机接收“定义客户机组消息”。它确认全部客户机组号码已被分配。消息体将包括:<global client group number><client’s client group name>
用于分配全部对象组名称的相同的算法可被使用来分配客户机组名称。
·时钟同步。应用接入服务器按照下式发送时间参考:<client time>=<time>+<client link latency>
客户机具有一个用于按照一系列接收时钟同步消息来调节本地时钟的算法。
从一个应用接入服务器到另一个应用接入服务器的ACP消息包括:
·集合的预约。集合的优先级清单显示那些属于发送应用接入服务器的客户机需要看到的对象,也就是,那些其信息应当被发送的发送应用接入服务器的对象。该清单具有与简单的客户机优先级清单相同的格式。它是通过添加所有的合法的本地客户机优先级清单和去除重复的内容而构建的。
·重新发送请求。这个消息具有与简单的优先级清单相同的格式,以及被解译为对于重新发送列出的对象的状态的请求。
·定义对象组。对象组定义可被分布在应用接入服务器之间。使用对于对象号码的长的清单的完全的名称有助于减小业务量。
·定义客户机组。客户机组定义可被分布在应用接入服务器之间。
从应用接入服务器到应用接待厅服务器的ACP消息包括:
·客户机已被终结。这个消息在客户机自愿从游戏断开时被发送。
·客户机超时。如果客户机在长的时间内是静默的或如果通向客户机的链路被关闭,应用接入服务器可以发送一个消息给ALS。该ALS决定另一个行动,诸如从游戏中去除该客户机。
ALS可以起到客户机的作用。ALS可以控制保持游戏的得分的游戏对象。ALS的端口然后被连接到作为使用“链路”协议(诸如TCP/IP)的客户机的AAS。ALS因而可以使用与客户机相同的消息。其它的ALS或AAS消息在这里被列出:
应用建立信息,它包括
·包括标识ALS的端口号码的网络地址。
·独特地标识游戏的URL。
·参加游戏的其它应用接入服务器单元的IP地址。
·包括用于标识客户机的应用端口号码的网络地址的清单。
·可任选地,已列举的游戏对象的清单。对于每个对象,规定哪个应用接入服务器负责存储该状态。也可以规定谁被许可去更新该状态。
·可任选地,要被存储的初始游戏状态。
·任选的规定控制策略(诸如超时)的数据。
·添加上应用接入服务器。规定新的应用接入服务器的网络地址、数目和客户机清单。
·去除应用接入服务器。规定要被去除的应用接入服务器的数目。
·添加客户机。这包括新的客户机的网络地址;可任选地,由新的客户机控制的新游戏对象的初始状态。
·去除客户机。应用接入服务器系统从游戏中去除客户机。
·已修改的客户机状态。这个消息改变客户机控制游戏对象的权限或把客户机与不同的应用接入服务器相联系。格式可以是:<client number(客户机号)><application access servernumber(应用接入服务器号)><object number(对象号)>其中对象号表示由客户机控制的游戏对象。
应用输送协议(ATP)被使用来输送应用对象分组(AOP)和应用控制协议(ACP)消息。ATP具有在有用负载中的一系列AOP和ACP消息,以及主要被使用来在应用接入服务器单元之间发送聚集的数据。应用接入服务器单元典型地通过使用协议堆栈IP/UDP/ATP通信。ATP因而处在与RTP协议相同的逻辑级别。
ATP标题包括:
·用于标识游戏的URL。
·最早的AOP或ACP时间印记。
·最迟的AOP或ACP时间印记。
·AOP和ACP消息的数目。
ATP通常只被使用于在应用接入服务器之间的通信,正如所显示的。如果在客户机与应用服务器之间的连接的带宽是足够大的,则它可被使用于这些连接。
传统的协议(诸如TCP/IP和或UDP/IP)被使用于与应用接待厅服务器和其它应用接入服务器单元的通信。由于以下的原因,TCP/IP应当被使用来建立游戏、以及UDP/IP应当被使用来发送实时游戏数据:
对于游戏应用,TCP重新发送和记录是太慢和太复杂。
TCP重新排序可能延迟对最近的更新的传递,以便传递太老的数据。对不再需要的数据的重新发送显然是很浪费。应用接入服务器单元知道精确的优先级,以及如果需要的话,可以请求从几个源重新发送。
RTP可被使用来发送时间印记,但RTP被设计用于音频和视频流,以及不太适合于游戏数据流。然而,RTP可被使用来载送与游戏有关的音频和视频流。
“公正游戏模式”也可以在系统中被实施。在这种模式下,应用接入服务器单元对关键的应用信息的传递进行同步,这样,这些更新被所有有关的客户机同时接收。这个模式可被使用于各种竞赛。
应用接待厅服务器在建立应用的同时判定:公正游戏模式是否可提供的。如果允许公正游戏模式,则发送的客户机针对每个发送的AOP来判定:是否应当使用公正游戏传递。这是通过在AOP的紧急域中设置Fair_Play标志而完成的。应用接入服务器系统现在负责把AOP“同时地”传递到所有的客户机。这个要求超越所有其它客户机优先级。
对于这一点的可能的技术解决方案是“存储桶(bucket)同步”方法。应用接入服务器单元一致地以固定的绝对延时来更新客户机。那些较早到达的更新必须等待一致的时隙。这个方法具有增加系统的总延时的缺点。公正游戏模式可替换地由游戏应用来进行处理。在这个模式下,客户机应用通过使用每个游戏对象的时间印记把一致的延时施加到接收的游戏数据上,以便计算分组应当被延时多久从而便可得到一致的绝对延时。
图6显示按照本发明的应用接入服务器150的另一个实施例。除了这里所说到的,这个实施例类似于以上讨论的实施例。在本实施例中,应用接入服务器的通信功能在一个或多个应用路由器152与应用服务器154之间进行划分。应用服务器154包括应用状态记录155和客户机优先级清单161,诸如结合图1描述的。应用路由器152通过客户机应用编程接口API 172(这将在下面更详细地讨论)与一个或多个客户机170通信。每个应用接入服务器150包括一个应用服务器154,后者服务于一个或多个应用路由器152。应用路由器152也与网络中其它节点(诸如与在其它应用接入服务器中的应用路由器(未示出))通信。优选地,应用服务器154和应用路由器152被实施为分开的硬件单元,以使得其每个相对于它们的特定的功能最佳化。替换地,它们可以具有已分配给它们的分开的处理器资源。特别是,应用路由器必须不中断地运行,因为中断会负面地影响客户机应用的实时性能。
正如前面那样,与客户机相连接的应用接入服务器是该客户机的本地应用接入服务器,以及客户机是该应用接入服务器的本地客户机。同样地,服务于客户机的应用服务器和应用路由器是客户机的本地应用服务器和应用路由器。
应用服务器通过应用路由器接收包含基本对象的ATP分组(见下面)和来自客户机的控制消息。在通过把基本对象放置在它的应用状态数据库来处理基本对象以前,应用服务器检验发送的客户机是否被允许更新对象。如果不许可该客户机更新对象,则对象被拒绝,以及发送的客户机可能接收错误的消息。在处理控制消息以前,应用服务器检验发送的客户机是否被允许请求所被指示的操作,以及如果没有,则拒绝控制消息和任选地把错误消息发送返回给正在发送的客户机。考虑当发送的客户机请求删除一个对象组时的情形。这个组可以由内容服务器创建,它是特别的客户机,负责管理游戏状态和通过标准客户机API与应用接入服务器进行通信。内容服务器把鉴权规则上载给禁止客户机删除对象组的游戏接入服务器。在这种情形下,应用服务器将拒绝那个请求删除对象组的控制消息。
这个合法性检验是通过使用鉴权规则表来执行的,鉴权规则表表明客户机被允许执行的操作的种类。鉴权规则表由客户机或控制单元通过使用初始化文件来建立。
客户机如果被许可这样做的话,就请求创建对象组。客户机也可以添加成员、去除成员和删除对象组。对象组的成员是对象或对象组。对于对象组的任何的这样的操作的请求由客户机作为控制消息而被发送,这些控制消息由应用路由器广播到参加该进程的所有的应用服务器。对象组由具有与对象识别符相同的格式的识别符标识。每个应用服务器包括对象组数据库162,它为每个应用进程存储在进程期间创建的对象组。对象组数据库162为每个对象组至少存储以下的域:(1)对象组识别符,(2)对象组的成员名单,(3)对象组的母成员名单。对象组A的母成员是具有作为其成员的对象组A的对象组。对象数据库被组织成为先前的实施例中的对象数据库,但对于每个对象,有一个对于对象是母成员的对象组名单。
从客户机和从其它应用接入服务器接收的对象应当构成应用状态的一部分,该状态被从应用路由器152转发到应用服务器154,以及被存储在应用状态记录155。从客户机和从其它应用接入服务器接收的预约信息被转发到应用服务器154,以及被存储在客户机优先级清单161中。
站址管理器174优选地通过连接到应用路由器152控制一个或多个应用接入服务器150的功能。每个应用接入服务器包括一个或多个应用路由器152和应用服务器154。站址管理器也可使用标准协议SNMP(简单网络管理协议)来控制站址。
所以,一个站址包括一个站址管理器和被一个站址管理器174控制的多个应用接入服务器150。站址管理器174的主要任务是连接管理、客户机连接、资源管理、应用服务器和路由器的配置、许可控制、客户机的鉴权、对于站址的时间同步、网络管理以及应用服务器和应用路由器的负载和状态的监管。
站址管理器可任选地接收应用输送协议(ATP)分组,其中包含来自客户机的控制消息。应当指出,在本实施例中的ATP不同于在以前的实施例中描述的ATP,以及将在下面描述。在处理控制消息之前,SM检验:正在发送的客户机是否被许可请求所指示的运行,如果不许可,则控制消息被拒绝,以及正在发送的客户机接收任选的错误消息。这个合法性检验是通过使用鉴权规则表来执行的,鉴权规则表表明客户机被允许执行的操作的种类。鉴权规则表由客户机或接待厅接入服务器178通过使用初始化文件来建立。
一个或多个接待厅接入服务器178被提供来连接到应用接待厅服务器176、一个或多个接待厅接入服务器178。应用接待厅服务器在图2中被讨论。接待厅接入服务器178被连接到站址管理器174。接待厅接入服务器处理来自接待厅服务器的游戏进程请求,以及安排和管理游戏进程。这包括接待厅服务器的登录和鉴权、以及计费。它也把有关游戏和接待厅服务器的信息保存到数据库。中央控制单元(未示出)可被使用来监管和保持应用通信系统。
应用通信系统包括一个或多个互联的站址和接待厅接入服务器。中央控制单元(未示出)可被使用来监管和保持应用通信系统。
接待厅接入服务器178可包括或被连接到数据库180,后者包括有关在网络中存在的应用接待厅服务器的信息,诸如哪些应用接待厅服务器被允许把客户机添加到特定的允许或特定的应用接入服务器。应用接待厅服务器176可包括或被连接到数据库182,后者包括客户机数据,诸如对于每个客户机的鉴权资料。
在站址管理器和它控制的应用服务器之间的通信包括添加和去除进程,以及从进程中添加和去除客户机。在站址管理器和应用路由器之间的通信包括与以上相同的部分,以及对于客户机的登录许可。另外,错误消息从应用服务器或应用路由器发送到站址管理器。
优选地,本地应用路由器152可以处理从客户机、其它应用路由器或网络中的其它单元接收的数据流对象和基本对象。客户机将基本对象的每个更新的一个副本发送到本地应用接入服务器。对象包含游戏者的化身的状态。基本对象被转发到进程中所有的相关的应用服务器。由应用路由器从客户机或其它应用接入服务器单元接收的基本对象被存储在相关的应用服务器的应用状态记录中。想要接收数据流对象的游戏者向本地应用服务器发布预约。应用服务器按照预约的参量发送来自本地应用状态的一系列对象更新。数据流对象不存储在应用服务器中。基本对象和数据流对象将在下面更详细地讨论。应用路由器从客户机、本地应用服务器、从其它应用路由器、以及可任选地从本地站址管理器接收应用输送协议(ATP)分组。ATP分组通过其它网络协议(诸如UDP/IP)而被输送。其它应用路由器是远端的(属于远端应用接入服务器)或是本地的(属于与应用路由器相同的应用接入服务器)。接收的ATP分组具有三种不同的类型:在应用对象分组(AOP)中的基本对象和数据流对象、在应用控制分组(ACP)中的控制数据、以及在客户机消息分组(CMP)中的客户机消息。ATP分组被删除掉,或者通过单一广播或多址传播而传送到正在接收的客户机、应用路由器、本地应用路由器、或传送到本地站址管理器。不同的路由情况被显示在表上。那些被寻址到正在接收的应用路由器的控制分组将被终结以及不被路由。
下面的表中显示应用路由器的路由表:
接收的ATP分组 | 被路由到以下的节点 | 强制的(M)/任选的(O) | 注解 |
来自客户机的数据流对象 | 预约数据流对象的本地客户机具有预约数据流对象的客户机的其它应用路由器所有其它应用路由器在AOP的任选的地址域中特定的客户机(如果有的话)。远端客户机通过他们的本地应用路由器而被到达。 | MMOM | 容易实施的特别的事例直接寻址需要比预约更大的带宽,以及应当被节约地使用。 |
来自客户机的基本对象 | 本地应用服务器在AOP的任选的地址域中规定的客户机(如果有的话)。远端客户机通过他们的本地应用路由器而被达到。 | MM | |
来自客户机的客户机消息 | 在CMP的地址域中规定的客户机。远端客户机通过他们的本地应用路由器而被达到。 | M |
来自客户机的控制分组 | 本地应用服务器本地应用路由器本地站址管理器 | OOO | 取决于消息的性质 |
来自本地应用服务器的基本对象 | 在AOP的地址区域规定的客户机。在AOP的地址域中规定的远端应用服务器(通过他们的一个应用路由器)。通过多址传播地址可任选的所有远端应用服务器。在AOP的地址域中规定的、已预约对象(通过他们的应用路由器)的远端客户机。 | MMOO | 容易实施的特别的事例在带宽方面很昂贵但是却能使游戏状态在任何给定时间得到很好的限定的特有的事例。 |
来自本地应用服务器的控制分组 | 在ACP的地址域中规定的客户机、本地站址管理器、远端应用服务器或远端应用路由器。 |
来自应用路由器的数据流对象 | 正在预约数据流对象的本地客户机在AOP的任选的地址域中规定的客户机和应用路由器(如果有的话)。远端客户机通过他们的本地应用路由器而被到达。 | MM | |
来自应用路由器的基本对象 | 本地应用服务器在AOP的任选的地址域中规定的客户机(如果有的话)。在AOP的任选的地址域中规定的远端应用服务器(通过他们的一个应用路由器)。 | MMM | |
来自应用路由器的控制分组 | 在ACP的地址域中规定的客户机、本地站址管理器、远端应用服务器或应用路由器。 | M | |
来自本地站址管理器的控制分组 | 在ACP的地址域中规定的客户机、本地或远端应用服务器或应用路由器。 | M |
数据流对象不存储在应用服务器中。客户机典型地将它们用于发送移动项目在虚拟世界中的位置。它们可以在网络中非常快速地输送。只有数据流对象的最近的版本被假定为对正在接收的客户机是重要的。对数据流对象进行处理典型地是不可靠的,因为它们可以由用于流程控制的应用路由器被谨慎地除去。由应用路由器接收的所有的数据流对象被转发到已预约数据流对象或预约包括数据流对象的数据流对象组的所有的本地客户机。应用路由器152还包括对于数据流对象的优先级或预约信息,因为这些对象不被应用服务器处理,正如下面将讨论的。
典型地,想要参加应用进程(例如特定的正在进行的多游戏者进程)的客户机通过互联网而连接到应用接待厅服务器176。应用接待厅服务器提供有关正在进行的应用进程的信息,以及通常也允许客户机创建新的进程以及邀请其它客户机参加。客户机可以发送一个请求给应用接待厅服务器176,以便创建、删除、参加或离开应用进程。如果应用接待厅服务器接受任何这样的进程控制请求,则它把请求转发到接待厅接入服务器178。如果请求创建一个进程,则接待厅接入服务器178通过发出应用进程识别符来进行应答。对于诸如请求删除进程或添加或去除客户机那样的请求,应用接待厅服务器176把应用进程识别符包括在一个被发送到接待厅接入服务器178的请求中。接待厅接入服务器178以调查在应用接入服务器系统中是否可提供匹配于被请求的运行的资源来作为对它的应答。如果资源是可提供的,则接待厅接入服务器178将执行请求的运行。
如果请求创建一个进程,则接待厅接入服务器178将选择一组服务于该进程的站址,以及发送包括进程识别符的控制消息给相关的站址管理器174,以便请求在适当的应用接入服务器150上发起该进程。
如果是请求删除一个进程,则接待厅接入服务器178将发送包括进程识别符的控制消息给正在运行该进程的站址的站址管理器174,请求删除该进程。
如果请求客户机参加,则应用接待厅服务器176至少把客户机170的网络地址、进程识别符和任选地站址识别符包括在控制消息中以便送到接待厅接入服务器178。网络地址可以是IP地址和客户机应用处理过程的端口号码。接待厅接入服务器178选择适当的站址以及把控制消息发送到那个请求客户机170参加游戏进程的站址的站址管理器174。这个控制消息至少包括客户机170的网络地址和进程识别符,该控制消息送到该站址的站址管理器174。站址管理器选择在负责服务于客户机的该单元内的适当的应用接入服务器和适当的应用路由器,以及发送控制消息给客户机,邀请客户机参加游戏。将要服务于客户机的应用路由器的网络地址和密码被包括在该消息中。客户机170联系相关的应用接入服务器150,把密码包括在控制消息中。应用接入服务器150把客户机170包括在本地客户机数据库中,以及客户机可以进行发送和接收游戏数据。
替换地,站址管理器174可以把将服务于客户机170的应用路由器152的网络地址发送到接待厅接入服务器178,接待厅接入服务器178将把网络地址和密码转发到应用接入服务器150。应用接待厅服务器176将把网络地址和密码转发到如上所述的、与相关的应用接入服务器相联系的请求的客户机170。
虽然图6上未显示缓存器、软件处理等等,但本领域技术人员将会看到,可能需要它们来实施本发明的应用接入服务器。
客户机170、应用接入服务器150和站址管理器174通过使用应用输送协议(ATP)进行通信。ATP分组典型地作为UDP分组中的有用负载被载送,正如先前的实施例中讨论的。本实施例中应用的ATP将在下面讨论。应用输送协议(ATP)包括两个协议级别(1)复合ATP分组,(2)常规ATP分组。
复合ATP分组包括一个源标题和几个常规的ATP分组。源标题包括以下的域:
(1)应用进程识别符。
(2)表示正在发送的客户机的客户机识别符。
(3)由协议使用的、用于被保证的传输的可任选的域,其中包括应答域和分组计数。
常规的ATP分组(在以下也称为“ATP分组”)包含ATP标题、ATP任选的标题、任选的ATP目标标题和ATP内容分组。
ATP标题可以包括以下域:
(1)类型域,它是一组标志,表示内容分组的类型和在内容分组中任选域的存在。内容分组类型是控制消息、客户机消息、基本对象或数据流对象。该消息的预期的接收者可以在类型域中被表示。
(2)表示ATP分组究竟是在可靠的还是非可靠的模式下发送的标志。
(3)表示是否存在目标标题的标志。
(4)表示ATP任选的标题的存在和内容的一组标志。
(5)表示内容分组的尺寸的域。
ATP任选的标题包含以下的任选的域:
(1)进程识别符。
(2)客户机识别符。
(3)对象识别符。
ATP任选的标题被使用来标识内容分组。与基本对象有关的应用有用负载可以在内容分组中被发送。ATP任选的标题被使用来通过利用下面描述的相对寻址系统来标识基本对象。
ATP目标标题TH被使用来直接寻址ATP分组。接收机的ATP地址被表示在ATP目标标题中。TH中的第一位置是保持TH的尺寸的字节。TH包含一系列动态地址域(它是客户机识别符清单,表示消息的预期的接收者,或是数据流对象密钥清单)。密钥是可由发送者设置的、数据流对象的属性。客户机可预约那些载送特定的密钥的数据流对象,而不必知道想要的数据流对象的对象识别符。在像Quake那样的游戏中,密钥可被使用来选择属于不同的房间的数据流对象。数据流对象被使用来发送化身在游戏中的位置。密钥被分配给游戏中的每个房间。正在发送数据流对象的游戏者添加相应于其中化身所位于的房间的密钥。正在接收数据的游戏者通过相应于他们感兴趣的房间的密钥预约数据流对象。数据流对象密钥可替换地被使用来标识一个团队或用来对对象进行分类,例如分类为危险的。在本地应用接入服务器中的数据流对象过滤器接收游戏者对于数据流对象密钥的预约以及确保游戏者通过请求的密钥而得到数据流对象。
ATP内容分组(CP)可以具有以下类型中的任一种类型:(1)基本对象,(2)数据流对象,(3)控制消息(4),客户机消息。基本对象、数据流对象和客户机消息CP包括应用有用负载。控制消息包括消息类型和消息参量。应用控制协议规定消息类型域的格式和每个消息的参量。
进程识别符、客户机识别符和对象识别符是动态地址域,正如下面描述的。客户机组和对象组分别具有与客户机和对象相同的识别符格式。
以下的名称和定义被使用于本文件中。应用对象分组是包含内容分组中的应用对象的ATP分组。应用控制协议分组是包含内容分组中的控制消息的ATP分组。发送基本对象、数据流对象或客户机消息的过程总是意味着发送带有适当的类型的内容分组的ATP分组。客户机消息分组是包含接收机地址和内容分组中的客户机消息的ATP分组。
ATP用法的例子包括以下情形:
(A)客户机正在发送基本对象到本地应用服务器。把对象识别符而不是客户机识别符或进程识别符放置在ATP任选的标题中。不需要ATP目标标题。对象有用负载被放置在内容分组中。任选的标题和动态地址域的使用意味着标题附加开销可以小到四个字节。这是重要的,因为对象常常通过低的带宽连接而被发送。
(B)客户机正在发送客户机消息给另一个客户机。对象识别符和发送到客户机的客户机识别符被放置在ATP任选的标题中。不需要进程识别符。使用了包含正在接收的客户机的客户机识别符的对象标题。消息有用负载被放置在内容分组中。在发送一侧的应用路由器的输入过滤器把进程识别符添加到对象标题中。在把分组转发到正在接收的客户机之前,在接收一侧的应用路由器的输出过滤器去除进程识别符。
ATP使用动态地址域。动态地址域是可变长度前缀码。前缀码是一种其中比特流中每个代码域可以唯一地被译码而不用参考先前的码字的代码。简单的例子是数字电码{10,110,1110,...}。Huffman码是对于符号的给定的统计分布的最佳(最短的预期长度)前缀码。
动态地址域的另一种格式是动态尺寸整数。动态尺寸整数在计算机科学中是熟知的。动态尺寸整数被使用在无论何时小的数值是最普通的、但大的数值必须是可能的时。对于2-字节动态尺寸整数,最高位说明整数的尺寸,1是指一个字节,以及0是指两个字节。对于4字节动态尺寸整数,两个最高位说明整数的尺寸,01指一个字节,10指两个字节,11指3个字节以及00指4个字节。
动态地址域可以按照以下两个方法之一被使用:
在第一个方法中,ATP具有用于三个不同的识别符的域(1)应用进程识别符,(2)客户机识别符,和(3)对象识别符。应用识别符是全局唯一的,以及由中央权力机构(诸如网络管理器或接待厅接入服务器)进行分配。每个客户机、应用路由器、应用服务器和任选地站址管理器具有客户机识别符,以及在下面被称为节点。客户机组识别符具有客户机识别符的格式。
客户机识别符只在特定的应用进程中是独特的。中央权力机构(诸如接待厅接入服务器或中央控制单元)分配客户机识别符。客户机识别符只在应用进程识别符已知时才标识该节点。ATP把客户机识别符存储在动态域。应用进程中的每个节点被分配以带有尽可能少的比特的客户机识别符。常常使用的客户机识别符可以按照Huffman编码程序过程被分配最短的代码。
对象识别符对于给定的进程中的给定的客户机是唯一的。客户机分配对象识别符。对象识别符只在进程识别符和客户机识别符是已知时才标识该对象。ATP把对象识别符存储在动态域中。每个对象被分配以带有尽可能少的比特的对象识别符。经常使用的对象识别符可以按照Huffman编码程序过程被分配最短的代码。
第二方法除了以下的不同之外,是与第一方法相同的。客户机识别符包含两个动态域。第一域是正在服务于客户机的应用路由器的识别符。第二动态域是客户机索引。这个索引被选择为尽可能短,以及在给定应用进程识别符和本地应用路由器客户机识别符是已知时,对于客户机是唯一的。本地应用服务器的客户机识别符替换地可被使用来代替本地应用路由器的客户机识别符。
使用动态地址域和如上所述地相对寻址的优点在于:带宽使用和延时被最小化。只有相关的地址域才被发送。这方面的例子是:
(1)一个客户机只参加一个应用进程。含有来自客户机的对象的ATP分组只包含对象识别符。应用进程识别符和客户机识别符不被发送,因为应用路由器隐含地知道它。
(2)含有从本地应用服务器发送到客户机的对象的ATP分组只需要包括对象识别符和拥有该对象的客户机的客户机识别符。
(3)一个创建新的对象的客户机可立即分配对象识别符。完全独特的对象识别符的集中的分配在新的对象可被创建之前需要与中央权力机构通信。
客户机组寻址按照以下方式被处理:客户机组在ATP中由客户机识别符来标识。识别符通过使用与对于其它客户机识别符相同的方法而被创建。在应用进程期间由客户机来请求创建客户机组,或者客户机组的创建是作为进程的初始化的一部分来执行。
每个ATP分组包括ATP标题中的类型域。类型域标识内容的性质。类型域中不同的代码表示内容是基本对象、数据流对象、控制分组或客户机消息。应用路由器在某些情形下可以把类型域用于缺省路由,而不必读出和分析地址域。基于类型域的缺省路由的例子是:
(1)所有的基本对象被路由到本地应用服务器。(2)带有类型域中一个特定的代码的控制分组被路由到本地应用服务器,以及带有类型域中另一个特定的代码的控制分组被路由到本地站址管理器。
图7显示在图6上讨论的实施例中使用的应用路由器152,以及ATP分组如何流过应用路由器。应用路由器152包含一组输入过滤器190和192、路由器核心194,和一组输出过滤器196,198。应用路由器对于与它通信的每个节点具有一个输入过滤器和一个输出过滤器。路由器核心194包括多个路由表199,用于执行ATP分组的路由。
分组来自于三种类型的源:来自同一个应用接入服务器的应用服务器,以及其它类似的单元(例如站址管理器)来自于其它应用路由器;以及来自被连接到这个应用路由器的应用客户机。对于所有三种类型具有不同的路由表199。对于到另一个应用路由器或应用客户机的每个连接有一个进入过滤器190、192和一个外出过滤器196、198。对于到应用服务器的连接,不需要输入或输出过滤器。过滤器实施把几个应用分组组装成输送数据包,以及对于可靠的分组还进行重新发送。应用客户机输出过滤器196、198去除在客户机线上的冗余的信息,以及对于到应用客户机170的下行链路还提供负载平衡。
与输出过滤器有关的客户机170或任何其它被鉴权的客户机,可以发送对于数据流对象或数据流对象密钥的预约给正在接收的客户机的输出过滤器。预约作为控制消息被发送,表示预约的内容和正在接收的客户机的客户机识别符。输出过滤器将对到达应用路由器的数据流对象进行扫描。与该预约相匹配的数据流对象被发送到客户机,这多半是发生在应用丢失率(drop rate)后。如果数据流对象的对象识别符等于在预约中给定的对象识别符、或如果由数据流对象载送的数据流对象密钥与在预约中给定的数据流对象密钥相匹配,则数据流对象与预约相匹配。
考虑当客户机(它与输出过滤器有关)已预约数据流对象和从发送的客户机接收到数据流对象时的情形。被鉴权的该客户机或任何其它客户机可以设置与给定的数据流对象有关的丢失率。这个丢失率在控制消息中被发送到本地应用路由器。如果丢失率被设置为数值0≤R≤1,则输出过滤器将谨慎地删除一部分(R)的数据流对象。例如如果R=0.9,只有到达的分组中的10%被允许传送到客户机。
输出过滤器将删除不需要被发送到客户机的ATP标题域。来自另一个客户机的直接寻址的消息在标题中包含应用进程识别符和正在接收的客户机的客户机识别符。这个信息对于正在接收的客户机是没有用的,因而被应用路由器输出过滤器删除。
对于特定的节点(诸如客户机)的输入过滤器接收ATP分组,这其中包含数据流对象、基本对象、控制消息和来自节点的直接寻址客户机消息。在把ATP分组发送到路由核心之前,执行以下的操作:
(1)输入过滤器检验客户机是否被许可更新数据流对象或基本对象,或检验发送客户机是否被许可把直接寻址消息发送到那个在消息中被表示的客户机。这个合法性检验是通过使用鉴权表来执行的,鉴权表表示客户机被许可执行哪种操作。鉴权表由客户机或由LAS使用初始化文件通过站址管理器来建立。
(2)输入过滤器把发送的客户机的地址加到适当的ATP域。这个地址不在正在发送的客户机与应用路由器之间的通信链路上进行发送,以便节省带宽。
(3)应用路由器存储客户机组清单。这样的清单把表示客户机组的客户机识别符与表示客户机的客户机识别符清单相联系。客户机组清单由客户机或由LAS通过站址管理器来建立。如果在接收者地址域中带有客户机组的ATP分组被输入过滤器接收,它将执行以下的三个可替换的操作之一:(A)找到属于客户机组的客户机识别符清单。找到应当接收ATP分组的至少一个副本的应用路由器的数目N。做出被放置在到每个正在接收的应用路由器的输出过滤器之中的ATP分组的N个副本。在ATP标题中可以有这样一个标志,它表示该内容不应当被分配给任何远端接收机,而是只分配给本地客户机。这个标志被设置在每个输出分组。这是优选的工作模式。
(4)找到属于客户机组的客户机识别符清单。找到那些应当接收ATP分组的至少一个副本的应用路由器的数目N。做出被放置在到每个接收的应用路由器的输出过滤器中的ATP分组的N个副本。在每个分组中用正在接收的客户机清单来代替客户机组识别符,其中该清单只包括客户机组的成员,它们对于正在接收的应用路由器是本地客户机。复制ATP分组,以使得在每个复制中客户机组识别符被一个独特的客户机识别符所代替,这个客户机识别符表示在与客户机组有关的客户机识别符清单中的一个客户机。
(5)缺省的标题被输入过滤器存储起来,以便用于与输入过滤器有关的客户机正在发送的每个数据流对象。这个缺省的标题包含与数据流对象有关的数据流对象密钥。如果客户机发送一个包含数据流对象密钥的明显的标题,这个标题将代替被输入过滤器存储的缺省的标题。如果客户机发送不带有包含数据流对象密钥的标题的数据流对象,则输入过滤器在发送它到路由器核心之前把缺省标题添加到数据流对象上。这意味着正在发送的客户机不必对于数据流对象的每个副本发送数据流对象密钥的一个副本。在每次密钥改变时和数据流对象第一次被发送时,发送包含数据流对象密钥的标题就足够了。
常规ATP分组载送这样一个内容,该内容是应用对象(数据流对象或基本对象)、控制消息、或客户机消息。复合的ATP分组包含可任选的小的复合标题以及至少一个和通常是几个常规ATP分组。复合ATP分组作为标准输送协议中的有用负载被发送。通常复合ATP分组作为UDP分组中的有用负载被发送。
用于收集复合ATP分组中常规ATP分组的方法对于达到在带宽效率与低的等待时间之间的正确的平衡是很重要的。大的复合ATP分组给出高的传输等待时间和低的标题附加开销,从而给出的是有效的带宽利用。在该系统的几个模块中把常规ATP分组聚集到复合ATP分组中。
对于在应用客户机中用于发送到本地应用路由器的聚集,可以使用两个替换的方法:在第一方法中,聚集是在应用程序的直接控制下进行的。常规的ATP分组被发送到输出缓存器。应用程序判决缓存器的内容何时被放置在复合ATP分组中以及被发送到本地应用路由器。在第二方法中,聚集是通过客户机处的自动算法执行的。常规的ATP分组由该应用程序发送到输出缓存器。算法判决缓存器的内容何时被放置在复合ATP分组中以及被发送到本地应用路由器。一种适当的算法的例子是:如果缓存器尺寸超过给定的尺寸S,则复合分组被发送。如果自从复合分组的上一次传输之后已超过了给定的时间间隔T,则复合分组被发送。参量S和T由应用程序设置。
对于在应用路由器中用于发送到客户机的聚集,可以使用与第二方法相同的算法。
对于在应用路由器中用于发送到应用路由器的聚集,发送被下一个协议级别(例如UDP)许可的最大尺寸的ATP复合分组通常是效果很好的,因为在应用路由器之间的通信链路可被假定为非常快速,因而常规分组很频繁地被发送。
如果带宽受限制或ATP分组不是频繁地被发送,则对于应用客户机中的聚集,建议使用与前一节的方法2中相同的算法。
尺寸(以比特计)应当被选择为S<V*TO,其中V是在两个应用路由器之间的链路的通信速度,以每秒的比特数计,并且T0是允许的传输等待时间,通常为1-10ms。时间间隔T应当是在1-10ms。
客户机可以把对于基本对象的预约作为控制消息发送到本地应用路由器。预约规定了正在接收的客户机、预约的对象和预约参量。预约是要求应用服务器发送一系列基本对象给接收客户机的指令。每个基本对象的一系列更新按照预约的参量以及根据基本对象的源如何更新它而进行发送。
发送预约的客户机通常是正在接收的客户机,但客户机也可以代表另一个客户机进行预约。在客户机组中所有的客户机然后就接收到预约的结果。
预约的目标是按照ATP协议由对象识别符标识的一组基本对象。该对象可以由以下识别符描述:(1)对象识别符,(2)对象识别符的集合,(3)对象组识别符,(4)对象识别符与对象组识别符的混合的集合,(5)通用的布尔表示式,其中包括对象组和作为操作数的对象以及逻辑算子AND(与)、OR(或)和NOT(非)。正确地规定的目标表示式由应用服务器通过使用对象数据库和对象组数据库中的信息来进行估值。这个估值的结果常常是一个有限的基本对象集合。
预约参量可被使用来规定预约的内容将按怎样的频度传递、传递多少次和传递多长时间。这可以被规定为应当接收对象的更新版本所采取的最大速率。如果对象的拥有者以较慢的速率更新它,则每个新的版本在它一传递就被接收。如果对象以快于所选择的最大速率被更新,则这些更新将精确地以所选择的速率被接收。某些中间的版本在这种情形下将不被接收。
内容服务器或主客户机可能最好地知道游戏的状态。所以,由主客户机代表对象客户机预约基本对象,可能是适合的。主客户机然后建立预约并将其提交给系统。本地应用接入服务器把在预约中请求的基本对象直接传递给对象客户机或对象客户机组。
预约属于客户机或客户机组,预约是指一组游戏对象。这组对象可被表示为包括对象组和对象在内的通用布尔表示式。
应用接入服务器单元(AAS)试图以预约频率传递对象。传递时间是预约频率的倒数。在发出预约时存在于数据库中的对象将在传递时间内被传递。如果在预约有效的同时数据库中的对象被修改,则AAS将尝试在传递时间内传递它。
预约类别是一个正整数。这里描述按照预约类别传递数据的两个方法。
方法1:具有最高类别的预约首先被完全满足。接着,AAS将尝试完全满足在次最高类别中的预约。这意味着,在较低的类别这的预约可能决不被满足。如果带宽不够因而不能用于以请求的频率去传递预约类别内的对象,则AAS将变换类别内的所有频率的比例,以使得变成为易于传递给客户机。
方法2:使用三种不同的类别。不同的类别被称为1=高,2=中等,3=低。对于类别1,对象总是以最大速率被发送到预约用户,直至缓存器充满和速率降低到零为止。对于类别2,对象发送到预约用户的速率正比于缓存器负载。缓存器容量越小,速率越低。对于类别3,对象只在缓存器中没有其它对象时才被发送到预约用户。
在一个特定的实施方案中,应用对象分组可以包括几个已列举的有用负载。在这种情形下,预约具有任选的权因子参量。权因子参量是整数。权因子=n意味着在对象中的前n个有用负载被传递。
某些对象不是按常规时间间隔被更新,而是按精确的次数被更新。所以,有可能请求对于特定的对象的特定的更新次数。应用服务器然后把与对象有关的计数值设置为在预约中所规定的一个整数值。每次对象被传递时,计数值被递减一个单位。如果计数值=0,预约被去除。
客户机可以请求对象按请求的频率来发送,即使以前已发送过同一个更新。这是通过设置“强制发送”FS标志而完成的。
另外,为了防止与老的预约有关的信息使网络过载,应当设置预约的存活时间或持续时间。在预约存活时间到期后,预约被去除。
数据流对象通过使用以下的一种方法在应用路由器之间被分配:
方法(1),由一个应用路由器接收的数据流对象被复制,以及被发送到那些参加应用进程的所有其它的应用路由器。这可以通过把那些参与应用进程的所有的应用路由器与IP多址传播地址相联系而有效地完成。
方法(2),每个应用路由器从本地客户机那里接收对于数据流对象和数据流对象密钥的一组预约。所有这样的预约被聚集到一个包括那些被本地客户机预定的所有数据流对象和数据流对象密钥的联合预约,而不用作任何复制。数据流对象(但不是由本地客户机产生的数据流对象密钥)将从集中的预约中被去除。聚集的预约被发送到所有其它的应用路由器。一个可接收来自另一个应用路由器的聚集的预约、和发现在聚集的预约中任何数据流对象和数据流对象密钥的来源是在本地客户机中间的应用路由器将把该部分预约发送到预约的应用路由器。
方法(3),每个应用路由器准备一个像方法2那样的聚集的预约组。聚集的预约被发送到一个已被站址管理器分配的母应用路由器。母应用路由器把可提供的聚集预约子组传递到第一母应用路由器,该子组包括被发送到已被分配的母应用路由器的、它自己的聚集的预约中的剩余部分。这假定管理系统已组构了一个用于应用进程的应用路由器的分级结构。
基本对象被分布在应用服务器之间。应用服务器总是通过它的相关的本地应用路由器之一而达到。当应用服务器发送基本对象到另一个应用服务器时,第一应用服务器总是把带有在ATP分组的接收者地址域中的第二应用服务器的识别符的基本对象发送到一个本地应用路由器。这个应用路由器将会把对象发送到第二应用服务器的本地应用路由器。第二应用服务器的本地应用路由器把对象发送到第二应用服务器。
基本对象通过使用以下的一种方法在应用服务器之间进行分配:
方法(1),由一个应用服务器接收到的基本对象将被复制以及被发送到参与应用进程的所有其它的应用服务器。这可以任选地通过把参与应用进程的每个应用服务器与IP多址传播地址相联系而有效地完成。
方法(2),每个应用服务器从本地客户机处接收对于基本对象的一组预约。所有这样的预约被聚集到一个包括本地客户机预定的所有基本对象的联合预约,而不需要任何预约参量。由本地客户机产生的基本对象从聚集的预约中被去除。聚集的预约被发送到所有其它的应用服务器。接收来自另一个应用服务器的聚集的预约、和发现在聚集的预约中任何基本对象的来源是处在本地客户机之中的应用路由器将把这样的对象立即发送到预约的应用服务器以及存储该预约的相关的部分。相关的对象的任何进一步的更新也将立即被发送到预约的应用服务器。
方法(3),每个应用服务器准备一个像方法2那样的聚集的预约组。聚集的预约被发送到一个已被站址管理器分配的母应用服务器。母应用路由器把可提供的聚集的预约子组传递到第一母应用服务器,该子组包括被发送到已被分配的母应用服务器的、它自己的聚集的预约中的其余部分。这里假定管理系统已经组构了用于应用进程的应用服务器的分级结构。
那些需要被分配在参与进程的所有的应用接入服务器之中的控制数据包括例如客户机参加和离开以及创建和破坏客户机组。这样的控制数据应当被多址传播到在进程中的所有应用路由器。应用路由器将终结控制消息,或者把它转发到本地应用服务器或站址管理器(如有需要的话)。
某些客户机可以作为监视者被登录到应用接入服务器。监视者不被许可上载应用动作,但他们可上载取决于监视者在游戏中的观点的预约。
按照本发明的应用接入服务器也可被使用于分级结构系统。图8显示这样的结构的例子,其中较高级别的应用接入服务器201服务于其它应用接入服务器单元203、205、207,后者又服务于应用客户机209。较高级别的应用接入服务器201从被认为是“客户机”的下游应用接入服务器单元处接收带有游戏数据和聚集的预约的ATP分组。较高级别的应用接入服务器单元201与其它同级应用接入服务器单元通信,以及在可能情况下与处在分级结构中更高级别的应用接入服务器单元通信。分级结构应用接入服务器系统被使用来创建游戏状态的分级结构分布的代表物,以用于涉及数目很大的客户机的应用。
远端应用接入服务器单元可被组织成一个多址传播树形结构,在这种情形中,每个多址传播组有一个分类缓存器。可以使用一种其中所有的信息被发送到所有的远端应用接入服务器单元的简单分配策略。在这种情况下,只有一个缓存器。
应用客户机组可以具有提供低的等待时间接入的宽带连接,这样,不需要任何应用接入服务器。典型的例子是所有的游戏者处在同一个LAN中。如果游戏应用和API仍旧期望一个应用接入服务器,则有可能以软件形式在客户机的机器上运行应用接入服务器功能。
应用接入服务器单元也可以位于网络中的任何中间的位置。这意味着,在客户机与应用接入服务器之间的“链路”协议可任选地是UDP/IP或TCP/IP。替换地,运行拨号游戏业务的中央游戏服务器可以把应用接入服务器单元作为部件使用。中央站址然后包含一组调制解调器库,后者被连接到应用接入服务器单元和应用接待厅服务器。这将是用于构建中央站址的有效而且可缩放的结构,但它将不具有早期聚集游戏业务量的优点。
Claims (29)
1.在通信网中使用的服务器单元,所述服务器单元包括接收装置,用于接收来自至少第一节点的信息,每个第一节点被表示为第一客户机单元,所述信息包括至少一部分有关分布互动应用的状态信息,所述服务器单元的特征在于,它包括:
-状态信息存储装置,用于存储被包括在通过接收装置从所述第一节点接收的信息中的应用状态信息,
-第一发送装置,用于把来自状态信息存储装置的至少一部分信息发送到网络中的至少一个第二节点,
-第二发送装置,用于把被存储在所述状态信息存储装置中的至少一部分信息发送到所述至少第一节点。
2.按照权利要求1的服务器单元,还包括客户机优先级清单,用于存储通过接收装置从所述至少一个第一节点接收的优先级信息,所述优先级信息标识分布互动应用的对象,有关这些对象的信息是所述第一节点处的第一客户机希望接收的,以及标识第一节点希望接收这些对象的优选的次序,第二发送装置用来根据从该第一节点接收的优先级信息发送来自所述状态信息存储装置的信息到所述至少一个客户机单元。
3.按照权利要求1的服务器单元,还包括一个预约清单,用于存储通过接收装置从所述至少一个第一节点接收的预约信息,所述预约信息标识在第一节点中要以怎样的频度来接收有关某个对象的信息。
4.按照权利要求1或3的服务器单元,还包括一个预约清单,用于存储通过接收装置从所述至少一个第一节点接收的预约信息,所述预约信息标识在第一节点中要接收有关某个对象的信息的次数。
5.按照前述的权利要求的任一项的服务器单元,其中接收装置用来至少从被表示为一个客户机节点的第三节点接收有关所述第一节点的优先级信息,以及根据所述紧急信息转发或不转发在所述第三节点发起的应用状态信息到至少所述第一节点。
6.按照前述的权利要求的任一项的服务器单元,其中接收装置用来从至少第三节点接收有关所述第一节点的优先级信息,以及把优先级信息通知所述第一节点。
7.按照前述的权利要求的任一项的服务器单元,其中状态信息存储装置用来在预定的时间间隔后丢弃存储的状态信息。
8.按照前述的权利要求的任一项的服务器单元,其中发送到所述至少第一节点的信息是从至少一个其它节点接收的状态信息。
9.按照前述的权利要求的任一项的服务器单元,其中所述状态信息存储装置用来存储有关对象的性质的应用状态信息,所述对象构成应用状态。
10.按照权利要求9的服务器单元,其中所述状态信息存储装置用来存储描述在给定的时间时的对象的状态的参考分组或数据报。
11.按照权利要求10的服务器单元,其中所述状态信息存储装置用来存储描述自从特定的先前的分组以来对象状态的改变的增量分组,以及标识所述先前的分组的信息。
12.按照前述的权利要求的任一项的服务器单元,还包括登录装置,用于登录对于所述至少一个第一节点的鉴权信息,所述鉴权信息标识所述第一节点被许可改变的应用状态对象。
13.按照前述的权利要求的任一项的服务器单元,包括
至少一个应用路由器,它包括第一和第二发送装置和接收装置,
应用服务器,包括信息存储装置。
14.按照权利要求13的服务器单元,其中应用服务器和所述至少一个应用路由器被实施为分开的硬件单元。
15.按照权利要求13的服务器单元,其中应用服务器和所述至少一个应用路由器用软件实施,所述软件分别与应用服务器和至少一个应用路由器有关的软件,具有保留计算资源。
16.按照权利要求13-15的任一项的服务器单元,其中应用路由器用来接收数据流对象和将其发送到至少一个其它应用接入服务器。
17.按照权利要求14的服务器单元,其中应用路由器被安排来数据流对象广播到通信进程中涉及的所有其它应用接入服务器。
18.按照权利要求13-17的任一项的服务器单元,其中应用路由器被安排来接收基本对象和把它转发到至少一个应用服务器,以便贮存在应用服务器的数据库中,以及从应用服务器接收有关基本对象的已寻址的数据分组和把它转发到客户机和/或至少一个其它的应用服务器。
19.按照权利要求13-18的任一项的服务器单元,其中应用路由器被安排来从应用服务器接收控制信息和把它转发到客户机和/或至少一个其它服务器单元和/或站址管理器。
20.在通信网中的终端中使用的客户机单元,包括用于分布互动应用的应用软件,所述客户机单元的特征在于,它包括:
-至少一个输入装置,用于读出来自所述终端的输入,所述输入构成用于分布互动应用的至少的应用状态信息,
-发送装置,用于把应用状态信息发送到通信网中的应用接入服务器,
-接收装置,用于从所述应用接入服务器接收对于分布互动应用的至少的应用状态信息,
-用于显示由所述接收装置接收的所述状态信息的装置。
21.按照权利要求20的客户机单元,还包括优先级设置装置,用于设置优先级信息,以便规定其可提供的信息应当尽可能快地被接收的至少一个其它应用状态对象,以及发送装置,用于把来自所述优先级设置装置的所述优先级信息发送到所述应用接入服务器。
22.按照权利要求20或21的客户机单元,还包括优先级数据装置,用于设置优先级数据,以便规定应当尽可能快地从客户机接收状态信息的至少一个其它节点。
23.按照权利要求20-22的任一项的客户机单元,其中用于发送应用状态信息的所述发送装置被用来在把分组发送到接入服务器之前安排在应用对象分组中的信息,每个分组与应用的一个对象组成部分有关,以及所述接收装置用来从接入服务器接收的分组中提取有关应用对象的信息。
24.一种通信网,其特征在于它包括按照权利要求1-19的任一项的至少一个服务器单元。
25.按照权利要求24的通信网,还包括按照权利要求20到23的任一项的至少一个客户机单元。
26.按照权利要求24-25的任一项的通信网,还包括至少第二应用接入服务器和连接所述第一与第二应用接入服务器的连接装置,其中通信资源可以被保留在所述连接装置。
27.按照权利要求24-26的任一项的通信网,还包括至少第三应用接入服务器,它与所述第一应用接入服务器通信但不与所述第二应用接入服务器通信,从而使得在网络中实现应用接入服务器的分级结构。
28.按照权利要求24-27的任一项的通信网,还包括至少一个站址管理器,它被安排来控制至少一个应用接入服务器。
29.按照权利要求28的通信网,还包括接待厅接入服务器,它被安排来构成在至少一个应用接待厅服务器与至少一个站址管理器之间的接口。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/307,712 | 1999-05-10 | ||
SE9901694A SE521442C2 (sv) | 1999-05-10 | 1999-05-10 | Server för att möjliggöra kommunikation mellan klientenheter genom att köra en distribuerad tillämpning vars tillstånd kan ändras av klientenheterna |
SE99016941 | 1999-05-10 | ||
US09/307,712 US6763371B1 (en) | 1999-05-10 | 1999-05-10 | Method and apparatus for collaborative communication in a communication network |
US09/307712 | 1999-05-10 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2005100910756A Division CN1728712A (zh) | 1999-05-10 | 2000-05-10 | 通信网中的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1350677A true CN1350677A (zh) | 2002-05-22 |
CN1222902C CN1222902C (zh) | 2005-10-12 |
Family
ID=26663568
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB008073821A Expired - Lifetime CN1222902C (zh) | 1999-05-10 | 2000-05-10 | 通信网中的方法和设备 |
Country Status (9)
Country | Link |
---|---|
EP (1) | EP1194876B1 (zh) |
JP (2) | JP4463999B2 (zh) |
KR (1) | KR100741463B1 (zh) |
CN (1) | CN1222902C (zh) |
AT (1) | ATE516539T1 (zh) |
AU (1) | AU770710C (zh) |
IL (3) | IL146348A0 (zh) |
NO (2) | NO319874B1 (zh) |
WO (1) | WO2000068864A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100444548C (zh) * | 2005-12-28 | 2008-12-17 | 腾讯科技(深圳)有限公司 | 一种加载的方法及客户端 |
CN104508714A (zh) * | 2012-05-23 | 2015-04-08 | 金.Com有限公司 | 用于交互式玩游戏的系统和方法 |
CN115943619A (zh) * | 2021-06-14 | 2023-04-07 | 株式会社软技 | 信息处理装置、数据同步程序、数据同步方法、数据同步系统以及终端装置 |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002157206A (ja) | 2000-11-17 | 2002-05-31 | Square Co Ltd | 電子会議参加方法およびそのシステム |
US8180870B1 (en) | 2000-11-28 | 2012-05-15 | Verizon Business Global Llc | Programmable access device for a distributed network access system |
US7657628B1 (en) | 2000-11-28 | 2010-02-02 | Verizon Business Global Llc | External processor for a distributed network access system |
US7046680B1 (en) | 2000-11-28 | 2006-05-16 | Mci, Inc. | Network access system including a programmable access device having distributed service control |
US8185615B1 (en) | 2000-11-28 | 2012-05-22 | Verizon Business Global Llc | Message, control and reporting interface for a distributed network access system |
US8458754B2 (en) | 2001-01-22 | 2013-06-04 | Sony Computer Entertainment Inc. | Method and system for providing instant start multimedia content |
US7711847B2 (en) | 2002-04-26 | 2010-05-04 | Sony Computer Entertainment America Inc. | Managing users in a multi-user network game environment |
US20030217135A1 (en) | 2002-05-17 | 2003-11-20 | Masayuki Chatani | Dynamic player management |
ES2298336T3 (es) * | 2002-07-22 | 2008-05-16 | Motorola, Inc. | Aplicacion de persistencia en un sistema de comunicaciones inalambricas. |
US8560707B2 (en) | 2007-10-05 | 2013-10-15 | Sony Computer Entertainment America Llc | Seamless host migration based on NAT type |
US8131802B2 (en) | 2007-10-05 | 2012-03-06 | Sony Computer Entertainment America Llc | Systems and methods for seamless host migration |
JP4040061B2 (ja) * | 2003-04-16 | 2008-01-30 | 株式会社ソニー・コンピュータエンタテインメント | データ伝送方法、ゲーム機およびゲームシステム |
US7127655B2 (en) * | 2004-01-20 | 2006-10-24 | Qualcomm, Inc. | Methods and apparatus to optimize delivery of multicast content using probabilistic feedback |
UA94064C2 (ru) | 2005-10-06 | 2011-04-11 | Вердженс Энтертейнмент Ллк, Калифорния Лимитед Лайбилити Компани | Подлинно одновременные оповещения и их использование в прерывистых конкурсах |
JP5078252B2 (ja) * | 2005-11-21 | 2012-11-21 | 株式会社バンダイナムコゲームス | 通信ゲーム装置およびシステム |
US9483405B2 (en) | 2007-09-20 | 2016-11-01 | Sony Interactive Entertainment Inc. | Simplified run-time program translation for emulating complex processor pipelines |
JP2012205131A (ja) | 2011-03-25 | 2012-10-22 | Toshiba Corp | 通信装置 |
US10765952B2 (en) | 2018-09-21 | 2020-09-08 | Sony Interactive Entertainment LLC | System-level multiplayer matchmaking |
US10695671B2 (en) | 2018-09-28 | 2020-06-30 | Sony Interactive Entertainment LLC | Establishing and managing multiplayer sessions |
KR20220123670A (ko) * | 2020-01-02 | 2022-09-08 | 가브리엘 라비 | 무선 근거리 통신망에서 복수의 클라이언트 통신 디바이스의 통신을 지원하기 위한 방법 및 시스템 |
JP7148941B1 (ja) | 2021-06-14 | 2022-10-06 | 株式会社ソフトギア | 情報処理装置、データ同期プログラム、データ同期方法、データ同期システム及び端末装置 |
GB202216515D0 (en) * | 2022-11-07 | 2022-12-21 | Krause ltd | System |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2471995A (en) * | 1994-05-05 | 1995-11-29 | Catapult Entertainment, Inc. | Network architecture for real-time video games |
US5846132A (en) * | 1996-04-10 | 1998-12-08 | William W. Junkin Trust | Interactive system allowing simulated or real time participation in a league |
US5890963A (en) * | 1996-09-30 | 1999-04-06 | Yen; Wei | System and method for maintaining continuous and progressive game play in a computer network |
US6025801A (en) * | 1996-10-01 | 2000-02-15 | Philips Electronics North America Corporation | Video game with local updates mitigates latency effects in wide area network |
US5899810A (en) * | 1997-01-24 | 1999-05-04 | Kaon Interactive Corporation | Distributed game architecture to overcome system latency |
US6006254A (en) * | 1997-08-29 | 1999-12-21 | Mitsubishi Electric Information Technology Center America, Inc. | System for the reliable, fast, low-latency communication of object state updates over a computer network by combining lossy and lossless communications |
-
2000
- 2000-05-10 IL IL14634800A patent/IL146348A0/xx active IP Right Grant
- 2000-05-10 EP EP00930049A patent/EP1194876B1/en not_active Expired - Lifetime
- 2000-05-10 CN CNB008073821A patent/CN1222902C/zh not_active Expired - Lifetime
- 2000-05-10 JP JP2000616572A patent/JP4463999B2/ja not_active Expired - Lifetime
- 2000-05-10 WO PCT/SE2000/000932 patent/WO2000068864A1/en active Application Filing
- 2000-05-10 AT AT00930049T patent/ATE516539T1/de not_active IP Right Cessation
- 2000-05-10 AU AU47940/00A patent/AU770710C/en not_active Expired
- 2000-05-10 KR KR1020017014310A patent/KR100741463B1/ko active IP Right Grant
-
2001
- 2001-11-05 IL IL146348A patent/IL146348A/en not_active IP Right Cessation
- 2001-11-09 NO NO20015499A patent/NO319874B1/no not_active IP Right Cessation
-
2005
- 2005-04-19 NO NO20051907A patent/NO20051907D0/no not_active Application Discontinuation
-
2006
- 2006-11-06 IL IL179054A patent/IL179054A/en active IP Right Grant
-
2007
- 2007-08-31 JP JP2007226573A patent/JP2008022573A/ja not_active Withdrawn
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100444548C (zh) * | 2005-12-28 | 2008-12-17 | 腾讯科技(深圳)有限公司 | 一种加载的方法及客户端 |
CN104508714A (zh) * | 2012-05-23 | 2015-04-08 | 金.Com有限公司 | 用于交互式玩游戏的系统和方法 |
CN115943619A (zh) * | 2021-06-14 | 2023-04-07 | 株式会社软技 | 信息处理装置、数据同步程序、数据同步方法、数据同步系统以及终端装置 |
CN116583328A (zh) * | 2021-06-14 | 2023-08-11 | 株式会社软技 | 信息处理装置、数据同步程序、数据同步方法、数据同步系统以及终端装置 |
CN115943619B (zh) * | 2021-06-14 | 2024-05-28 | 株式会社软技 | 信息处理装置、记录介质、数据同步方法、数据同步系统以及终端装置 |
US11992753B2 (en) | 2021-06-14 | 2024-05-28 | SoftGear Co., Ltd. | Information processing device, data synchronization program, data synchronization method, data synchronization system, and terminal device |
CN116583328B (zh) * | 2021-06-14 | 2024-09-13 | 株式会社软技 | 信息处理装置、数据同步方法、数据同步系统、记录介质以及终端装置 |
Also Published As
Publication number | Publication date |
---|---|
AU770710C (en) | 2005-03-10 |
NO319874B1 (no) | 2005-09-26 |
JP4463999B2 (ja) | 2010-05-19 |
KR100741463B1 (ko) | 2007-07-20 |
NO20051907D0 (no) | 2005-04-19 |
ATE516539T1 (de) | 2011-07-15 |
EP1194876A1 (en) | 2002-04-10 |
NO20051907L (no) | 2001-11-09 |
IL146348A (en) | 2007-03-08 |
KR20020010913A (ko) | 2002-02-06 |
CN1222902C (zh) | 2005-10-12 |
AU4794000A (en) | 2000-11-21 |
IL146348A0 (en) | 2002-07-25 |
NO20015499D0 (no) | 2001-11-09 |
EP1194876B1 (en) | 2011-07-13 |
JP2008022573A (ja) | 2008-01-31 |
WO2000068864A1 (en) | 2000-11-16 |
JP2002544689A (ja) | 2002-12-24 |
AU2004202290A1 (en) | 2004-06-17 |
AU770710B2 (en) | 2004-02-26 |
IL179054A (en) | 2007-07-24 |
NO20015499L (no) | 2001-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1222902C (zh) | 通信网中的方法和设备 | |
CN1231016C (zh) | 用于多用户的通信基础结构方案 | |
CN1299222C (zh) | 存在管理的实现 | |
CN1222896C (zh) | 用户简档数据的管理 | |
CN1823332A (zh) | 用户通知的系统和方法 | |
CN1231028C (zh) | 在不同网络的匿名用户之间智能建立会话的分布式系统 | |
CN1578947A (zh) | 一种多媒体通信的系统、方法和数据结构 | |
CN1154298C (zh) | 分布式网络计算系统及该系统用的信息交换装置和方法 | |
CN1178450C (zh) | 扩充寻址方案的方法和系统 | |
CN1450765A (zh) | 服务器负载平衡系统、装置以及内容管理装置 | |
CN1852431A (zh) | 实现实时视频信息共享的系统及方法 | |
CN1858759A (zh) | 对网络游戏用户进行时间限制的方法和系统 | |
CN1685334A (zh) | 用于提供内容的方法和系统 | |
CN1481635A (zh) | 网络中大有效负载分布的方法和装置 | |
CN1412973A (zh) | 虚拟个人网络服务管理系统及其服务管理器和服务代理器 | |
CN1450808A (zh) | 图像数据分发 | |
CN1605074A (zh) | 从单播到组播的视频会议对话转换 | |
CN1805442A (zh) | Ims网络中具有会聚应用服务器逻辑和网关逻辑的呼叫控制 | |
CN1878599A (zh) | 游戏装置、游戏方法以及游戏程序 | |
CN1435043A (zh) | 呼叫中心运用方法及装置 | |
CN1792076A (zh) | 包含分布式软件应用的数据访问、复制或通信系统 | |
CN1677979A (zh) | 通过网络在计算机之间共享对象的系统和方法 | |
CN1539221A (zh) | 传送装置和传送方法 | |
CN1681250A (zh) | 存在信息提供系统及其方法和服务器 | |
CN1801727A (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 | ||
CX01 | Expiry of patent term | ||
CX01 | Expiry of patent term |
Granted publication date: 20051012 |