CN1610899A - 在网络通信架构之间动态切换结构 - Google Patents

在网络通信架构之间动态切换结构 Download PDF

Info

Publication number
CN1610899A
CN1610899A CNA038013169A CN03801316A CN1610899A CN 1610899 A CN1610899 A CN 1610899A CN A038013169 A CNA038013169 A CN A038013169A CN 03801316 A CN03801316 A CN 03801316A CN 1610899 A CN1610899 A CN 1610899A
Authority
CN
China
Prior art keywords
computing machine
online session
session
computer
communication structure
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
Application number
CNA038013169A
Other languages
English (en)
Other versions
CN1312607C (zh
Inventor
格伦·范·达塔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment America LLC
Original Assignee
Sony Computer Entertainment America LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sony Computer Entertainment America LLC filed Critical Sony Computer Entertainment America LLC
Publication of CN1610899A publication Critical patent/CN1610899A/zh
Application granted granted Critical
Publication of CN1312607C publication Critical patent/CN1312607C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1091Interfacing with client-server systems or between P2P systems

Abstract

本发明涉及一种配置成在多种网络通信中操作的多用户应用(440),其中所述应用可以在应用的联机会话中动态改变通信结构。所述网络通信结构中的一种是客户机-服务器结构,其中至少一台服务器计算机(420)和至少一台客户计算机(412)参与所述应用的一个联机会话。在联机会话中,服务器计算机(420)向客户计算机(412)提供与应用相关的数据。在所述应用的另一种通信结构中,网络计算机是在一种端到端的结构中操作的,其中网络计算机有能力向任何一台参与联机会话的其他网络计算机提供数据并且从所述网络计算机那里接收数据。在联机会话中,所述应用可以在通信结构之间进行切换,并且对所有计算机而言,所述应用都不局限于其中一种或另一种通信结构。

Description

在网络通信架构之间动态切换结构
技术领域
本发明一般地涉及计算机网络,尤其涉及那些用于网络通信的计算机结构。
背景技术
诸如局域网和因特网这样的计算机网络越来越多地被用作各方之间进行交易和交互的主干网。从银行客户可以在计算机网络上发起金融交易的在线银行,到玩家可以在因特网上参与不同游戏的在线游戏,服务供应商正逐渐在计算机网络上提供多种服务。当前存在多种不同的计算机网络结构,这些网络结构简化了所进行的交易和交互。
如图1所示,其中一种结构是典型的客户机-服务器结构。在这种结构中,专用服务器计算机110通过诸如因特网这样的网络而以通信方式连接到一台或多台客户计算机120。客户计算机120向服务器计算机110发出服务请求,服务器计算机110则将数据经由网络发送到发出请求的客户计算机120,从而满足所述请求。服务器计算机110可以连接到一个数据存储设备,也可以连接到用于简化客户机与服务器计算机之间事务的其他计算机设备。所述客户机-服务器结构的一个特征在于:由于客户计算机只限于与服务器计算机进行通信,因此客户计算机相互之间是不能直接进行通信的。
举例来说,如果在线上游戏环境中实行客户机-服务器结构,那么服务器计算机110可以负责维护与线上游戏相关的不同状态。所述服务器计算机可以连接到其他计算机,例如维护一个或多个游戏实例的存储器引擎140,同时服务器计算机110还对角色匹配和帐号管理这样的管理事项进行管理。客户计算机120上的游戏玩家可以登录服务器计算机110并且接收一个关于可用游戏和参与玩家的列表。然后玩家选择开始或加入一个游戏,由此确定一个存储器引擎,其中玩家计算机与所述存储器引擎建立一个客户机-服务器连接。这样一来,服务器计算机110和存储器引擎140共同为一台或多台客户计算机120管理游戏环境。
如图2所示,另一种类型称为综合服务器结构。这种结构包括一个专用服务器计算机110以及一台或多台经由计算机网络而与服务器计算机110相连的客户计算机120。与前述结构一样,服务器计算机110向客户计算机120提供数据。然而,举例来说,由于客户计算机120之一的客户计算机120a向其他客户计算机120提供数据,因此客户计算机120a将会充当综合服务器。这样一来,客户计算机120a可以分担某些与保持线上环境相关联的处理负荷。例如在线上游戏环境中,服务器计算机110可以执行玩家匹配、帐号管理和聊天室管理之类的管理功能,而客户计算机/综合服务器120a则执行先前所述的存储器引擎的功能。
如图3所示,在另一种通信结构中,不同的计算机排列在一种端到端的结构中。在这种端到端的结构中,每一台计算机都可以与其他计算机进行通信,因此所有计算机都是作为“对等体”来运行的。在某种形式的端到端的结构中,专用服务器110在网络上以通信方式连接到多台客户计算机120。一开始,联机会话是由每一台连接到管理计算机的客户计算机120建立的,其中所述管理服务器可以是服务器计算机110。然后,客户计算机120以通信方式相互连接,以使每一台客户计算机120都能向其他客户计算机120提供数据并且从其他客户计算机那里接收数据。此外,每一台客户计算机120都能与专用服务器110一起按照客户机-服务器的相互关系来进行操作。本领域技术人员可以了解,除了上述结构之外还存在其他通信结构。
每一种不同的通信结构都是各有利弊。例如,客户机-服务器结构允许将性能强大的计算机用作专用服务器,这在需要服务器计算机执行大量数据处理的情况下是非常有利的。另一方面,对服务器运营商来说,使用性能强大的专用计算机的成本很高,在不需要这种处理能力的情况下,使用这种服务器有可能是一种不必要的过度行为。端到端的结构的一个优点是更快的通信速度,因为客户计算机彼此直接共享数据,而不是经由服务器来共享数据。这样减少了相连网络上发生的数据传送的数量。然而不幸的是,在端到端的通信中,在其中一台客户计算机没有很大通信带宽的情况下,所述通信有可能会变慢。
在线上游戏的环境中可以了解到不同通信结构各种优缺点的某些具体实例。某些类型的游戏包含了许多同时出现的玩家并且需要进行大量的集中数据处理来维持游戏环境,例如,在动作游戏和角色扮演游戏中通常包含了参与单个游戏实例的数百名玩家。这种游戏可能更适合使用性能强大的专用服务器来处理数据的客户机-服务器结构。另一方面,对不需要进行这类强大数据处理的其它类型的游戏来说,由于并未充分使用服务器资源,因此客户机-服务器结构可能并不理想。这种情况通常涉及诸如体育游戏这样的游戏,其中通常在每个游戏实例中只包含了少量玩家。端到端的结构有可能更适合这种游戏环境,在所述结构中更易于在参与游戏的多台计算机之间分配数据处理,并且不需要使用集中式服务器来维护游戏环境。
然而不幸的是,提供在线的多用户应用的当前网络系统被设置为只在其中一种前述结构中操作。举例来说,诸如动作游戏或角色扮演游戏(RPG)这样的多用户应用很可能是在经典的客户机-服务器结构中操作,并且在会话未定的过程中,所述应用仅限于在所述结构中运作。即使环境许可,例如玩家数目降至一个差不多接近体育游戏的数目,所述应用也不能切换到另一种结构。
此外,由于网络限制,因此某些网络部件只在特定结构中操作。这些限制可能会要求在客户机-服务器环境中连接某些用户,同时在端到端的结构中连接其他用户。
发明内容
根据本发明来进行操作的多用户应用可以在不同的网络通信结构中操作,并且可以在应用的一个联机会话中动态改变通信结构。所述网络通信结构中的一种是客户机-服务器结构,其中网络计算机包括至少一台服务器计算机和至少一台作为客户计算机操作的计算机,这些网络计算机参与了所述应用的一个联机会话。在客户机-服务器结构中,服务器计算机在联机会话过程中会把涉及应用的数据提供到每一台客户计算机。在多用户应用的另一种通信结构中,网络计算机是在一种端到端的结构中操作的,其中所述网络计算机有能力向参与所述应用的联机会话的其他网络计算机发送数据,并且能够从其他网络计算机那里接收数据。因此,在一个联机会话中,所述应用可以在通信结构之间进行切换。
所述多用户应用可以通过操作而使执行所述应用的某些计算机能在客户机-服务器结构中进行通信,同时其他计算机则在一种端到端的结构中进行通信。所述应用可以确定何时从一种结构改变到另一种结构。举例来说,所述多用户应用可以包括一个网络通信管理器,其中用户经由所述管理器来进行注册,以便能够访问其他终端用户应用,这样一来,通信管理器可以确定最适合所述终端用户应用的恰当通信结构(客户机-服务器或是端到端结构)。作为选择,所述应用可以根据可用带宽来确定恰当的通信结构。因此,如果只有数量相对较少的用户参与一个联机会话,则所述应用选择端到端的通信结构,但在包含了很多用户的时候,所述应用可以选择客户机-服务器的通信结构。
在本发明的一个方面中,所述多用户应用将其中一台网络计算机指定为会话主站,它负责执行某些与维护应用的联机会话相关联的功能。所述应用可以使用一种将会话主站的功能固定分配到某台参与联机会话的计算机的专用方式来进行操作。所述应用还可以在一种迁移方式操作,其中可以将会话主站的功能从一台网络计算机迁移到参与所述联机会话的另一台网络计算机。因此,在初始分配为会话主站的网络计算机退出联机会话时,会话主站的功能可以从一台网络计算机迁移到另一台网络计算机。另外,在联机会话中,会话主站的功能可以散布到在一台以上的网络计算机之中。
下文中关于优选实施例的描述举例说明了本发明的原理,由此本发明的其他特征和优点将会变得非常明显。
附图说明
通过结合附图来研究下文中的详细描述,可以更容易理解本发明的目标、优点和特征,其中:
图1是一个按照客户机-服务器网络的通信结构布置的计算机网络的图例。
图2是一个按照综合网络通信服务器的结构布置的计算机网络的图例。
图3是一个按照端到端的网络通信结构布置的计算机网络的图例。
图4是一个运行了依照本发明来进行配置的多用户应用的计算机网络系统的图例。
图5是一个包含了用于如图4所示而被配置的多用户应用的计算机索引和会话主站信息的数据结构的图例。
图6是一个按照第一种类型通信结构布置多用户应用的计算机网络系统的图例,其中将一台服务器计算机或是客户计算机指定为会话主站。
图7是一个按照另一种类型通信结构布置多用户应用的计算机网络系统的图例,其中将多个客户计算机指定为会话主站。
图8是一个对与多用户应用重新分配会话主站所有权相关联的操作进行描述的流程图。
图9是一个对与多用户应用建立一个联机会话相关联的操作步骤进行描述的流程图。
图10是一个对硬件部件加以描述的图4所示网络中的计算机的框图。
图11是一个对硬件部件加以描述的图4所示网络中的计算机娱乐系统的框图。
图12是一个对改变应用通信结构的系统操作进行描述的流程图。
具体实施方式
图4是一个描述了包括一个或多个网络设备的计算机网络系统400的框图,其中所述一个或多个网络设备包括作为计算机网络430的节点的一台或多台客户计算机410、412以及一台或多台专用服务器计算机420、422。因此,其中某些网络计算机配置为服务器,而某些网络计算机则配置为客户机。计算机网络430可以包括一个像因特网这样的互连网络集合,并且可以包括处于每一个节点410、412、420、422的一个或多个局域网。这里使用的术语“因特网”指的是一个互连(公共和/或私有)网络集合,这些网络通过一组标准通信协议连接在一起,从而形成了一个全球性的分布式网络。
客户计算机410、412可以在网络430上向服务器计算机420、422之一发送关于数据的请求,其中将服务器计算机配置成以一种众所周知的方式来将数据经由网络430发送到客户计算机。如本领域技术人员所了解的那样,服务器计算机420、422可以包括或以通信方式连接到对方或是其他服务器,例如数据库服务器和/或应用服务器。尽管图4只显示了两台客户计算机410、412以及两台服务器计算机420、422,但是应该了解,网络系统400可以包括多台客户计算机410、412以及服务器计算机420,422。在这里,有时也将服务器计算机420、422与客户计算机410、412合在一起称为网络计算机。
网络系统400支持一个由计算机程序组成的多用户应用440,其中多个用户可以借助所述应用并且使用连接到计算机网络430的网络设备(例如客户计算机410,412)而在联机会话中进行交互。所述应用440安装在每一台计算机上,这意味着应用440的操作实例保存在运行(执行)该应用的每一台客户计算机410、412的存储器中。对每一台将要参与所述多用户应用的一个联机会话的服务器计算机来说,所述计算机同样保存了所述应用440的一个实例。出于说明的目的,虽然其中显示服务器420、422都安装了应用440,但是在这里假设第一服务器计算机420是一个用于客户机410、412所执行的多用户应用的服务器。在执行过程中,在应用440的实例之间进行了数据交换,并且可以通过在每一台网络计算机上建立网络套接字(networksocket)来启用所述交换。在图4中,所述套接字在每一台相应的网络计算机上都是作为方框来表示的。本领域技术人员将会理解,所述网络套接字即为网络系统400上运行的两个或更多程序之间的多向通信链路的一个末端。
如下文更详细描述的那样,应用440可以在依照多种通信结构的网络系统400的网络设备上运行,此外可以将与不同应用相关的处理职责分配到网络430中的不同计算设备。较为优选的是使用一个应用开发接口来开发应用440,以下对此进行了更详细的描述。通过操作所述应用,可以使相关的网络计算机使用一种通信结构来执行图1、图2和图3所示的任何一种通信模式。
多用户应用440可以是用户在与计算机网络430相连的网络计算机上运行的任何类型的应用。当在客户计算机410、420上运行应用440时,用户可以通过其他那些同样运行应用440的网络计算机来与其他用户进行交互。网络计算机420可以充当一个中心网络“会合点”,通过所述会合点,用户可以建立联系、维护数据并发起应用440的一个联机会话。通常,应用440会使它所操作的网络设备与设备410、412、420之类的另一个网络设备建立通信,由此发起一个联机会话。在所述联机会话中,网络计算机按照所述应用440的程序特征来进行交互并且交换数据。
当加载应用440并在那些经过适当配置的计算机之间建立一个联机会话时,所述应用能使计算机以多种通信结构来进行交互。在本描述中,有时是在一种线上游戏的情况中描述应用440的,其中应用440包括一个可以由多个用户通过使用客户机计算机410、412来进行访问和运行的计算机游戏。在这种情况下,应用440建立一个联机会话,其中包含了一个有网络计算机参与的游戏。然而应该了解的是,应用440还可以涉及游戏之外的其他那些涉及计算机网络上多台计算机之间交互的情况,例如在线银行或在线旅游计划。
多用户应用440可以通过操作而使某些执行所述应用的客户计算机410、412能依照客户机-服务器结构来进行通信,而其他计算机则是依照端到端的结构来进行通信的。所述应用可以确定何时从一种结构改变到另一种结构。此外还可以将多用户应用440配置成一个授权访问游戏或终端用户程序这类终端用户应用的网络通信管理器,例如游戏门户或程序门户。作为选择,通信管理功能和终端用户程序也可以并入多用户应用440之中。在任何一种上述情况中,多用户应用440都可以确定最适合所述终端用户应用的恰当通信结构(例如客户机-服务器或端到端结构)。举例来说,如果只有数量相对较少的用户进行联机会话,例如有一群数量固定或为六个的用户参加游戏,则所述应用可以选择端到端的通信结构,而在包含大量用户的时候,例如在包含了数百名玩家的大型联机会话或角色扮演游戏中,所述应用可以选择客户机-服务器通信结构。作为选择,所述应用也可以根据可用带宽来确定恰当的通信结构,这样一来,即使很小的用户群也可以最佳匹配于客户机-服务器结构。如果需要的话,也可以在单独等级上应用可用带宽选择标准,以便将带宽有限的用户限制成客户机-服务器结构中的客户机角色,同时其他用户则以端到端的方式来进行操作。
在应用440执行的时候,它会识别一个会话主站,对于在联机会话中所进行的计算机之间的交互而言,所述会话主站是一台为所述应用执行多种管理和行政功能的网络计算机。所述应用的一个联机会话是结合一个包含用户标识这类信息的数据存储器来使用一个注册或登录进程的。所述登录进程授权进一步参与所述应用的网络环境。优选地,会话主站功能是在客户机计算机410这类运行应用440的客户计算机登录到服务器计算机420上,以便开始一个联机会话的时候分配的。然而,所述应用本身确定了何时和如何进行这种分配的细节,由此可以在不脱离本发明教导的情况下实施多种会话主站分配方案。
处于发起应用的一个联机会话的客户计算机410上的应用操作实例称为主计算机。主计算机上的应用把会话主站功能分配给服务器计算机420或主计算机410之一。当新的客户计算机登录(注册)服务器计算机420,以便参与联机会话的时候,服务器计算机420向新客户告知已被分配的会话主站计算机的身份。
如下文更全面描述的那样,会话主站功能允许在应用440操作时所处的不同网络通信结构之间进行平滑转换。会话主站功能还使应用440在特定网络计算机中集中负责涉及应用的任务,或者在两台或更多网络计算机之间分发这种职责。任务的分配可以在分配会话主站功能的同时由其中一台网络计算机上的应用440的一个实例执行,并且可以将会话主站的任务分配给网络430上的一台或多台计算机,以便提供必要的功能。在这里,分配了会话主站职责的一台或多台计算机称为相应的会话主站功能“所有者”。如果这些计算机一起执行会话主站功能,则需要将有关唯一会话主站的引用理解为应用于一个计算机群。因此,会话主站任务的分配是根据应用开发者的规定并按照应用规定的方式来进行。
如上所述,会话主站提供了操作方面的优势,其中一个优势是在参与联机会话的计算机之间分发某些职责。例如,与应用440关联的某些任务可能具有大型数据处理需要,这有可能耗费一台网络计算机的大量处理能力。在其中一台网络计算机上,应用440的一个实例可以将某些任务分配给会话主站,并且将会话主站所有权分配给最适合所述任务的特定计算机。应用440还可以在若干计算机之间维护多个会话主站,其中为每一台计算机都分配了涉及所述联机会话的某些任务。由此可以在多台计算机之间分发任务,以使单个计算机不会因为负担所有任务而出现超负载的情况。
如下文更详细描述的那样,会话主站功能还通过使用消息过滤职责来提供有效的网络带宽利用。此外,当拥有会话主站功能的网络计算机离开联机会话时,处于剩余网络计算机之一的应用440的一个实例可以将先前会话主站计算机的会话主站职责重新分配给另一台网络计算机,由此能在不中断会话主站所执行操作的情况下在所述联机会话中执行平滑变换。所述操作还能使得应用440将会话主站职责从一台计算机重新分配到另一台计算机,从而切换运行时的通信结构,例如在联机会话中从服务器420切换到客户计算机410。这样一来,在一个联机会话中,应用440将在不同的通信结构中进行动态切换,例如从客户机-服务器的结构切换到端到端的结构,反之亦然。
其中一类会话主站职责涉及特定于应用的功能,所述功能是那些特定类型的应用440所特有的功能。举例来说,如果应用440是一个游戏类型的应用,那么会话主站或会话主站群可以记录诸如游戏计分和在游戏中的停留时间这样的游戏类型数据,并且可以执行游戏功能,例如在游戏结束时终止会话。此外还可以将会话主站分配为记录具体的游戏数据,例如游戏环境中的足球、海洋、树木等对象的状态。这些职责可以集中在单独的会话主站中,也可以在若干个会话主站之间划分。在经典的客户机-服务器结构中,可以在联机会话中将会话主站所有权或会话主站分配给一个专用服务器。然后,如下文更详细描述的那样,处于其中一台网络计算机上的应用440的一个实例可以将会话主站所有权从专用服务器重新分配给客户计算机之一,由此所述结构切换成端到端的结构。
会话主站的另一类职责是消息过滤。在联机会话过程中,应用440可以使网络计算机发出涉及联机会话不同方面的通信消息。所述消息可以发生变化,并且举例来说,所述消息可以涉及到那些描述联机会话状态的消息、用户之间的聊天消息以及更新游戏时间的定时消息。此外,所述消息还可以包括网络计算机发送的更新消息,以便向其他网络计算机告知所述发送计算机仍旧参与所述联机会话。
在某些情况中,会话主站保持那些用于确定是否应将信息发送到某些网络计算机的过滤器。通过对应用440进行配置,可以首先将某些或全部消息发送到会话主站计算机,以便进行过滤分析。优选地,会话主站维护过滤器并且防止在恰当的情况下发送信息。此外较为优选的是,会话主站维护一个过滤列表,其中会话主站通过查询所述列表来对消息的发送进行过滤。而所述过滤列表则为某些消息类型规定了哪些计算机不应该接收消息。
举例来说,在一个线上游戏的环境中,每一台客户计算机都可以结合所发送的消息来对一个在虚拟世界来回走动的人物负责,其中所述消息包含了涉及虚拟世界中的物品状态的数据。如果所述消息与某个人物认知范围之外的物品有关,则有必要更新与所述人物相关联的网络计算机。在这种环境下,对会话主站来说,较为理想的是通过过滤消息来防止将消息发送到计算机。这样做考虑到了有效的带宽使用,由此只会发送那些需要发送的消息。
主计算机执行的是与那些参与联机会话的计算机有关的管理功能。例如,每当网络计算机参与应用440的一个联机会话时,主计算机都会将一个标识索引编号分配给参与会话的计算机。所述主计算机则维护一个关于标识索引编号及其关联的网络计算机的列表。在发送消息的时候将会用到所述索引编号,此外还将所述索引编号用于维护那些关于会话主站功能的所有权记录。
如上所述,在一个联机会话中有可能存在一个以上的会话主站。分配会话主站的方式可以由所述应用依照应用的操作来加以确定。应用440还可以分配负责发送更新消息的会话主站,以便就涉及参与联机会话的所有网络计算机的状态来更新网络计算机。如下文更全面描述的那样,这种职责要求会话主站在新网络计算机参与联机会话或是当前参与者退出应用440的联机会话的时候通告那些参与其中的网络计算机。
主计算机将上述索引编号分配给每一台计算机,所述主计算机还维护了一个所有参与联机会话的网络计算机的列表。然后,应用440根据分配给计算机的索引编号来记录会话主站所有权。为了记录索引编号以及职责分配,举例来说,应用440可以维护一个采用了包含网络计算机索引列表的表格形式的数据结构,其中所述表格可以是如图5所示的表500。表500包含了一个与每一个参与联机会话的网络计算机相关联的索引编号,并且还包含了一个是否所有网络计算机都拥有会话主站功能的指示。优选地,包括表500在内的索引列表数据结构还规定了用于各个网络计算机的通信协议。图5显示了可以由不同网络计算机拥有的不同会话主站任务(C1,C2,C3)。
除了规定通信协议之外,所述数据结构还为每台网络计算机都规定了与通信协议关联的端口。应用440的每一个实例都能使参与联机会话的相关网络计算机开放多个通信端口,其中每一个端口都与一个特定的通信协议相关联。所述网络计算机使用一个特定端口和一个特定协议来与其他网络计算机进行通信,其中所述端口和协议是在包括图5所示的表500在内的数据结构中规定的。所述端口可以包括网络套接字,借助于所述套接字,应用400的实例可以经由网络来进行通信。优选地,网络计算机彼此之间可以在网络上周期性发送通信消息,由此传递端口/协议信息以及索引列表中包含的其他信息。
如下文中参考图8详细描述的那样,当网络计算机连接到服务器计算机420,以便建立一个联机会话的时候,在所述网络计算机上,应用400的实例可以将会话主站所有权分配给网络计算机之一。就这一点而言,非常优选的是,每一台网络计算机上的应用440的实例都维护一个参与了所述联机会话的所有网络计算机的列表,并且将上述索引编号关联到每一台计算机。然后,应用440根据分配给计算机的索引编号来记录会话主站所有权。
网络计算机可以保持一个以包含了网络计算机索引列表的表格为形式的数据结构,例如图5所示的表格500,其中所述表格包含了一个与每一台参与联机会话的网络计算机相关联的索引编号,此外还包括一个关于计算机是否拥有一个或多个会话主站功能的指示。优选地,这个索引列表数据结构还规定了用于各个网络计算机的通信协议。并且优选地,所有参与联机会话的网络计算机都保留了表格500的索引列表的一个拷贝。应该了解的是,表格500只是示范性的,应用440可以使用多种数据结构格式而以其他方式来记录网络计算机的索引编号、通信结构以及会话主站所有权。
在联机会话中,应用可以改变通信结构和协议。如上所述,确定使用哪一种通信结构可以取决于应用的特性(例如一对一的游戏相对于大规模的角色扮演游戏)或是联机会话参与者的数目,但也可以取决于可用带宽。举例来说,端到端的结构可能最适合数量相对较少的联机会话参与者,而客户机-服务器通信结构则有可能是用于一个在联机会话中包含了数百名用户的应用环境的唯一实用的情况。用于在一种通信结构上选择另一种通信结构的实际判定参数是根据应用的资源需要而发生变化的,并且所述参数会为应用开发者所知。
应用440可以根据不同方案或是方案组合来分配会话主站所有权。如图6所示,在第一方案中,应用440将会话主站600的所有权分配给一台单独的计算机,例如专用服务器计算机420。如应用440规定的那样,分配了会话主站600的所有权的计算机对所有关联于会话主站600的功能负责。在当前范例中,专用服务器计算机420拥有会话主站。因此,相对于会话主站功能而言,各个网络计算机上的应用440将在客户机-服务器的通信结构中操作,其中服务器计算机420将数据发送到涉及会话主站职责的客户计算机410。
应该理解的是,举例来说,倘若显示客户计算机410拥有一个在图6中用虚线显示的会话主站600a,那么任何参与到应用400的联机会话中的计算机都可以拥有会话所有权。此外,在为每个会话主站分配了具体职责并且为不同的网络计算机或同一网络计算机分配了每一个会话主站的情况下,应用440可以维护一个会话主站的若干实例。例如,图6显示了一种存在两个会话主站600和600a的情况,其中为每一个会话主站分配了某些与应用440的联机会话有关的功能。带有会话主站600的客户机410是作为一个综合服务器来操作的。
如图7所示,在另一个方案中,应用400是在若干台计算机之间分发会话主站600的所有权的。在所述实例中,两台客户计算机410都享有会话主站600的所有权。在这种情况下,这两台计算机都可以执行与会话主站相关联的功能,以使图6中的网络计算机处于端到端的结构中。因此,如果其中一台计算机退出联机会话,那么会话自身不会因为会话主站计算机的退出而终止。
会话主站还可以按照应用440所确定的不同模式来进行操作。在称为专用模式的第一种模式中,应用440将会话主站所有权固定分配给某台网络计算机。与会话主站相关联的应用功能由所述计算机维护并且只由所述计算机维护。因此,如果拥有专用会话主站的计算机发生故障或者断电,则不执行与会话主站相关联的任务。举例来说,如果会话主站负责维护联机游戏环境的某个方面,那么,倘若拥有专用会话主站所有权的计算机离开联机会话,则所述环境的这些方面将会终止。
另一种模式称为迁移模式,其中会话主站所有权可以从一台网络计算机迁移到参与联机会话的一台或多台其他网络计算机。例如,会话主站最初可以为服务器计算机420所拥有,这样一来,相对于会话主站的职责而言,应用440的联机会话处于客户机-服务器结构中。在图6中显示了这种情况,其中会话主站600是作为依附于服务器计算机420的实线方框来显示的。一旦出现某些状况,举例来说,如果服务器计算机420将要断电,则应用440可以将会话主站600的所有权迁移到例如客户计算机之一的另一台计算机。由此举例来说,可以在图6所示的经典的客户机-服务器结构中维护会话主站600,然后所述会话主站600在环境许可的时候变为另一种结构。举例来说,如果拥有会话主站600的计算机将要退出会话,那么会话主站600的所有权可以迁移到另一台计算机或在多台计算机之间得到共享。
图8所示的流程图描述了在此处理中发生的操作。所述处理是从运行了应用440的一个实例的客户计算机410的角度来进行描述的。在编号为805的流程图方框所表示的第一操作中,计算机410经由一个计算机网络连接到服务器计算机420。由此所述计算机410建立了应用440的一个联机会话。这台启动计算机则称为主计算机。优选地,主计算机的应用440为其自身分配了一个用于识别目的的索引编号。另一台同样运行应用440并随后连接到服务器计算机420的网络计算机也可以加入应用440的联机会话。
在接下来的操作中,如编号为810的流程图方框所示,会话主站所有权分配给了一个或多个网络计算机。主客户计算机410可以将其自身指定为会话主站,因为它是建立联机会话的计算机。作为选择,也可以将服务器计算机420指定为会话主站。所述应用本身将会确定用以分配会话主站功能的方式,由此可以在不脱离本发明教导的情况下实施各种会话主站分配方案。服务器计算机420和/或客户计算机410保持了一个对分配了会话主站功能的一台或多台计算机加以识别的记录。当其他网络计算机通过与服务器计算机420相连来加入联机会话时,会话主站计算机使用计算机索引编号来把会话主站的身份通告给其他计算机。
在由编号为820流程图方框所表示的下一步操作中,会话主站计算机在联机会话中执行与所述会话主站相关联的功能。所述功能可以包括如上所述的任何职责,其中包含了客户机仲裁、消息过滤以及特定于应用的功能,例如维护一个线上游戏环境的状态。
下一步操作是由编号为830的判定框来表示的,其中应用440判定会话管理器的所有权是否应该改变。换句话说,应用440确定是否应该在参与会话的网络计算机之间进行会话主站所有权方面的迁移。优选地,服务器计算机420上的应用440的实例负责做出判定,然后则通告参与联机会话的其他网络计算机。
会话主站功能所有权方面的改变还有可能在当前拥有会话主站的计算机退出联机会话的情况下出现,例如在计算机关机或是出现故障。会话主站退出联机会话的判定可以是基于任何一台网络计算机是否收到了来自会话主站计算机的通信消息。如果没有在预定数量的时间以内收到通信消息,或者如果会话主站没有在预定数量的时间以内响应通信消息,则将会话主站计算机判定为退出了联机会话。在这种情况下,服务器计算机420将一个通知发送到参与联机会话的计算机。这种情况导致从判定框830中输出“是”。
然后,根据来源于方框830的“是”,系统进程继续执行由编号为840的流程图方框所表示的操作,其中服务器计算机420使用其应用400的实例来将会话主站的所有权(以及关于相关会话主站功能的职责)重新分配给一个不同的网络计算机。这样一来,会话主站所有权及其相关职责将会迁移到另一台网络计算机,由此联机会话将会继续进行,而不会随着先前会话主站计算机的退出而终止。在这里可以将服务器计算机420上的应用440配置成以多种方式来重新分配所有权。举例来说,应用440可以只将会话主站所有权分配给计算机索引列表中的下一台网络计算机。作为选择,也可以对所述应用进行配置,以便根据一个预定的优先级方案来将会话主站所有权分配给一台专用计算机。
重新参考编号为830的判定框,如果不需要进行所有权改变,则其结果是输出“否”。在这种情况下,当前拥有会话主站的网络计算机只按照流程图方框820表示的操作来继续执行其主站所有权功能。这种处理会一直持续到联机会话终止或是所有权出现改变。
如上所述,在联机会话中可以改变通信结构。因此,会话可以始于端到端的网络结构之中,然后变为客户机-服务器结构。用于确定各种结构何时恰当的参数取决于所需要的资源并且会为应用440的开发者所知,但是举例来说,所述参数也可以包括联机会话中的用户数目、应用需求或是特定用户的可用带宽。
图12描述了改变通信结构的应用操作。所述操作是从运行了应用440的一个实例的客户计算机410的角度来进行描述的。在编号为1205的流程图方框所表示的第一操作中,计算机410经由计算机网络连接到服务器计算机420。由此计算机410建立了应用440的一个联机会话。这个启动计算机称为主计算机。如上所述,较为优选的是,主计算机的应用440为其自身分配一个用于标识目的的索引编号。同样运行应用440并随后连接到服务器计算机420的另一台网络计算机可以加入应用440的联机会话并由主计算机为其分配一个索引编号。
在编号为1210的流程图方框表示的下一步操作中将会判定通信结构。所述判定通常是联机会话中的参与者数目的一个函数,但是也可以由涉及操作的应用需求或是可用于所述应用的通信带宽来确定。然后,所述应用将会执行其操作,直到用户终止联机会话并结束所述应用。这个继续执行的操作是由编号为1220的流程图方框表示。
对通信结构改变所进行的检查是由编号为1230的判定框来表示的。这个检查可以在一个周期性的基础上执行,例如在所述应用检查可用带宽的情况下,但也可以根据需要而在联机会话启动时执行。此外,所述检查可以由一个请求或是在联机会话中接收的命令发起。而使用哪种方案以及应用哪些判定参数的选择则是由所述应用的开发人员做出的。
如果不需要对通信结构进行改变,则在判定框1230输出“否”,然后如返回方框1230的箭头所示,当前通信结构中的应用操作将会继续进行。如果要求进行结构方面的改变,则在判定框1230中输出“是”,然后在方框1240实施通信结构方面的改变,并在1220继续所述应用的操作。这个处理将会一直继续,直到联机会话终止或者下一次检查并改变通信结构。用于改变通信结构的方案取决于网络计算机使用的操作系统。即使没有进行更进一步的描述,本领域技术人员也能了解如何实现通信结构方面的改变。
优选地,应用440是使用一个提供了应用440中所用对象库和通信消息定义的软件开发工具包(SDK)来开发的。所述软件开发工具包包括一个应用接口,借助于此应用接口,可以使用SDK开发所述应用并且可以在一个诸如网络系统400这样的网络系统上运行所述应用。应用接口可以存在于诸如服务器420这样的中央网络服务器中,其中那些具有应用440的网络计算机可以登录所述服务器,以便运行所述应用的一个联机会话。通过使用SDK提供的对象和消息类型,可以开发出包含上述特征的应用440。所述SDK优选包括一个对象定义结构,其中提供了应用440所用对象的一个基于客户机的定义。所述对象定义包含了与每一个对象相关联的多个特征,并且这些特征由所述应用使用,以便对在计算机网络上与客户机所进行的交互作用产生影响。
一旦使用SDK开发出应用440,则可以将应用440加载到一台或多台网络计算机并且可以根据图9所示的操作来建立一个联机会话。在编号为910的流程图方框表示的第一操作中,加载所述应用440的网络计算机与一台在存储器中包含了应用接口软件的网络计算机相连。举例来说,图4所示网络系统400的一台或多台客户计算机410、412可以具有加载到其相应存储器中的应用440,并且服务器计算机420可以包括应用接口。在这种情况下,客户计算机410、412在网络430上与服务器计算机420建立通信连接。
在由编号为920的流程图方框表示的下一步操作中,应用440根据应用接口库中可用的对象定义来注册对象。如编号为920的流程图方框所示,应用440还注册了任何那些将要在联机会话中使用的消息过滤器。
在由编号为950的流程图方框所表示的下一步操作中,应用440定义了会话主站并且将会话主站所有权分配给网络计算机之一。在这里可以将会话主站所有权分配给一台计算机,但也可以将其分配给多台计算机。此外,应用440还规定了会话主站所有权是否专用于特定计算机或者所述所有权是否可以使用上文中参考图8所描述的方式而迁移到其他计算机。
在此操作中,应用440将客户机索引分配给每台参与联机会话的网络计算机并且建立了如上所述的索引表。此外还可以对应用440进行配置,以使第一台登录服务器计算机的网络计算机成为会话主站并取得一个值为1或0的索引。然后,后续登录的网络计算机将会取得后续的连续可用索引。如编号为950的流程图方框所示,在建立了会话主站所有权或会话主站之后,应用440的联机会话将被起动。
如上所述,由图4中的框图显示的网络计算机包括计算机网络系统400的节点。图10是图1系统400中的一台计算机的框图,它描述了其中一台计算机所包含的硬件部件。本领域技术人员将会了解,设备410和420可以具有相似的计算机结构或是具有符合这里所述能力的备选结构。
图10显示的是一个示范性的计算机1000,其中举例来说,所述计算机可以包括任何网络计算机。每台计算机1000都是在中央处理器(CPU)1002的控制下操作的,其中所述处理器可以是从位于美国加利福尼亚州圣克拉拉的Intel公司购得的“Pentium”微处理器以及相关的集成电路芯片。计算机用户可以从键盘或计算机鼠标1004输入命令和数据,并且可以在显示器1006上查看输入以及计算机输出。所述显示器通常是一个视频监视器或平板显示器。计算机1000还包括一个直接存取存储设备(DASD)1008,例如硬盘驱动器。存储器1010通常包含易失半导体随机存取存储器(RAM)。较为优选的是,每一台计算机都包含了一个接纳程序产品存储设备1004的程序产品读取器1012,其中程序产品读取器可以从所述程序产品存储设备中读出数据(并且它可以向其随意写入数据)。举例来说,程序产品读取器可以包括磁盘驱动器,程序产品存储设备可以包括可移动存储介质,例如磁软盘、CD-R盘片、CD-RW盘片或DVD盘片。
每一台计算机1000可以在计算机网络1020(例如因特网或是内部网)上经由网络接口1018而与其他计算机进行通信,其中所述网络接口能够经由网络1020与计算机之间的一个连接1022来进行通信。举例来说,网络接口1018通常包含了允许在各种网络上进行通信的网络接口卡(NIC)或调制解调器。
CPU 1002是在计算机1000的存储器1010临时保存的编程步骤的控制下进行操作的。在执行编程步骤时,所述计算机将会执行其功能。编程步骤由此实现了应用440的功能。所述编程步骤可以经由程序产品存储设备1014或是网络连接1022而从DASD 1008接收的。程序产品存储驱动器1012可以接收一个程序产品1014,读取其上记录的编程步骤,并将编程步骤传送到存储器1010中,以便由CPU 1002加以执行。如上所述,程序产品存储设备可以包含记录了计算机可读指令的多个可移动介质中的任何一个,其中包括磁软盘和CD-ROM存储盘片。其它适当的程序产品存储设备可以包括磁带和半导体存储芯片。由此可以在一个程序产品上实现依照本发明的操作所需要的处理步骤。
作为选择,程序步骤可以经由网络1020而被接收到操作存储器1010中。在这种网络方法中,在借助于无需进一步说明即可由本领域技术人员理解的公知方法而在网络连接1022上建立了网络通信之后,计算机会将那些包含程序步骤的数据经由网络接口1018接收到存储器1010中。然后则由CPU 1002来执行所述程序步骤,由此其中包含了一个计算机进程。
应该理解的是,图4描述的网络系统400的所有网络计算机的结构都可以与图10所示的结构相似,因此可以理解,相对图10中的计算机1000所描述的细节也适用于系统400的所有计算机。应该了解的是,只要计算机可以与图4所述的其它计算机进行通信并且可以支持这里描述的功能,那么任何一台网络计算机都可以具有备选结构。
举例来说,参考图11,客户计算机420可以包括一个计算机娱乐系统,例如视频游戏系统1100。图11是一个视频游戏机系统1100的示范性硬件结构的框图。
所述视频游戏系统1100包括一个与主存储器1105相关联的中央处理器(CPU)1100。CPU 1100是在由OS-ROM 1160保存或从游戏程序存储介质传送到主存储器1105的编程步骤的控制下进行操作的。在这里将CPU 1100配置成依照所述编程步骤来处理信息并执行指令。
CPU 1100经由专用总线1125而以通信方式耦合到一个输入/输出处理器(IOP)1120。IOP 1120将CPU 1100耦合到一个由保存操作系统这类程序指令的非易失存储器组成的OS ROM 1160。优选地,所述指令是在启动主机110时经由IOP 1120传送到CPU的。
CPU 1100经由专用总线1115而以通信方式耦合到一个图形处理单元(GPU)1110。GPU 1110是一个绘图处理器,所述处理器经过配置来执行绘图处理并且根据从CPU 1100接收的指令来制定图像。举例来说,GPU 1110可以基于从CPU 1100产生并从CPU 1100接收的显示列表来渲染一个图形图像。所述GPU可以包括一个用于保存图形数据的缓存器。此外GPU 1110还将图像输出到AV输出设备175。
IOP 1120根据IOP存储器1130中保存的指令来对CPU 1100与多个外部设备部件之间的数据交换进行控制。所述外部设备部件可以包括一个或多个输入控制器1122,一个存储卡1140,一个USB 1145,以及一个IEEE1394串行总线1150。另外,总线1155以通信方式耦合到IOP 1120。总线1155则连接到若干个附加部件,其中包括OSROM 1160,声音处理器单元(SPU)1165,光盘控制单元1175以及硬盘驱动器(HDD)1180。
在这里将SPU 1165配置成根据从CPU 1100和IOP 1120接收的命令来产生声音,例如音乐、音效和语音。SPU 1165可以包括一个保存波形数据的声音缓存器。此外SPU 1165还产生声音信号并将所述信号发送到扬声器。
盘控制单元1175则配置为控制一个程序读取器,其中举例来说,所述读取器可以包括一个收容磁软盘、光学CD-ROM盘片、CD-R盘片、CD-RW盘片以及DVD盘片等可移动存储介质的光盘驱动器。
存储卡1140可以包括一个存储介质,其中CPU 1100可以向所述存储介质写入并保存数据。优选地,存储卡1140可以插入IOP 1120或是从中移除。用户可以使用存储卡1140来储存或保存数据。此外,较为优选的是,视频游戏系统1100具有至少一个可以写入或保存数据的硬盘驱动器(HDD)1180。
优选地,诸如IEEE1394串行总线1150或通用串行总线(USB)1145接口这样的数据I/O接口以通信方式耦合到IOP 1120,由此允许将数据传送到视频游戏系统1100或是从中将数据传送到例如图4的网络430。
因此,以上描述了一种用于为多用户网络应用执行动态结构切换方案的系统和方法。所述方案利用了这样一个事实,那就是与客户机-服务器网络通信相比,网络计算机之间的端到端通信关系提供了速度更快的通信的优点,同时也认识到某些例如大规模游戏这样的应用在端到端的关系中需要用到一个不能使端到端的结构切实可行的带宽。例如,在每个游戏中只有不到三至六个竞争对手的体育游戏可能适合端到端模式,但是包含数百名玩家的角色扮演游戏或动作游戏则不适合端到端模式,并且所述游戏必须在客户机-服务器模式中运行。在用户登录到一台应用服务器,以便进行所述应用的一个联机会话时,本发明的结构切换特性允许在端到端架构与客户机-服务器架构之间进行动态改变。
举例来说,参与某个游戏的游戏玩家可以全都与一个用于游戏管理的游戏服务器进行通信,并且与其他游戏玩家进行通信,以便共享游戏数据和玩家数据。在游戏中,玩家可以在端到端通信与客户机-服务器通信之间进行切换,以便与其他游戏玩家传递信息。这样一来,如上所述,游戏结构可以在由其中一个游戏客户机执行游戏服务器功能的综合服务器与每一个游戏玩家都保存游戏状态信息并与其他游戏玩家进行通信的端到端结构之间进行切换。所述系统还可以在端到端、综合服务器以及游戏服务器结构之间进行切换。这就允许在网络带宽和游戏应用适合的时候使用更快的端到端通信,并且在网络状况需要的时候使用客户机-服务器通信。
以上已经依照当前优选实施例而对本发明进行了描述,由此表述了对于本发明的理解。然而还存在着多种这里并未具体描述但却适合本发明的系统和应用的结构。因此,本发明不应视为局限于这里所述的特定实施例,与此相反,应该理解的是,相对于多用户应用而言,本发明通常具有很广阔的实用性。因此,落入权利要求的所有修改、变化或等价方案及实施方式都视为是在本发明的范围以内。

Claims (29)

1.一种动态配置多用户应用的一个联机会话的方法,包括:
建立多用户应用的一个联机会话,所述联机会话至少包括两台计算机,所述计算机各自执行多用户应用的一个实例并且在一个计算机网络上以通信方式连接;
在计算机相互通信的第一通信结构中设定多用户应用的联机会话;以及
在所述联机会话中,将联机会话的通信结构从第一结构改变到一种不同于第一通信结构的第二通信结构。
2.如权利要求1所述的方法,其中第一通信结构是客户机-服务器结构。
3.如权利要求1所述的方法,其中第一通信结构是端到端的结构。
4.如权利要求1所述的方法,还包括将关于与多用户应用执行相关联的功能的职责分配给参与所述联机会话的第一计算机,然后基于联机会话状态的改变来把关于所述功能的职责重新分配给第二计算机。
5.如权利要求4所述的方法,其中联机会话中的状态改变包括联机会话中的通信结构的改变。
6.如权利要求4所述的方法,还包括将用于与多用户应用的执行相关联的其他功能的职责分配给一个参与所述联机会话的第二计算机。
7.如权利要求1所述的方法,其中联机会话是通过一个以通信方式连接到计算机网络的专用服务器计算机来建立的。
8.如权利要求1所述的方法,其中在所述联机会话中包含了多个计算机,并且至少其中一台计算机是使用端到端的通信结构来与其他计算机进行通信的,此外至少其中一台计算机是使用客户机-服务器的通信结构来与其他计算机进行通信的。
9.一种用于动态配置多用户应用的一个联机会话的方法,包括:
从第一计算机上的软件应用的第一实例中接收一个请求,以便建立所述软件应用的一个联机会话;
从第二计算机上的软件应用的第二实例接收一个请求,以便参与所述软件应用的所述联机会话;
将用于执行与所述软件应用的联机会话相关联的特定功能的职责分配给第一计算机;
将用于执行所述特定功能的职责重新分配给第一计算机之外的一台计算机,其中所述重新分配基于软件应用联机会话中的状态改变。
10.如权利要求9所述的方法,其中所述软件应用的联机会话状态中的改变包括第一计算机退出联机会话。
11.如权利要求9所述的方法,还包括所述应用维护一个记录,该记录记载的是第二计算机负责所述功能。
12.如权利要求9所述的方法,还包括将用于执行与所述软件应用的联机会话有关的其他功能的职责分配给第二计算机。
13.如权利要求9所述的方法,还包括:
在计算机相互通信的第一通信结构中设定多用户应用的联机会话;以及
将联机会话的通信结构从第一结构改变成不同于第一通信结构的第二通信结构。
14.如权利要求13所述的方法,其中第一通信结构是客户机-服务器结构。
15.如权利要求14所述的方法,其中第一通信结构是端到端的结构。
16.一种用于动态配置多用户应用的一个联机会话的方法,其中所述应用是在一个计算机网络上操作的,所述方法包括:
在所述计算机网络上的至少两台计算机之间建立通信连接,其中每一台计算机执行所述应用,由此建立了多用户应用的一个联机会话;
将其中一台计算机指定为负责管理关联于多用户应用的功能的会话主站计算机;
检测所述会话主站计算机退出所述联机会话;以及
将第二计算机指定为会话主站计算机,以使第二计算机负责管理关联于多用户应用的功能。
17.如权利要求16所述的方法,其中第一计算机和第二计算机最初都是在客户机-服务器结构中布置的,并且其中第一计算机是服务器计算机,而相对于第一计算机而言,第二计算机则是客户计算机。
18.如权利要求16所述的方法,其中所述应用还将一个第三计算机指定为会话主站计算机,所述会话主站计算机与第二计算机共享用于管理与多用户应用相关联功能的职责,以使第二和第三计算机处于端到端的通信结构中。
19.一种动态配置多用户应用的一个联机会话的系统,所述系统包括一个或多个执行程序指令并接收一个数据集的处理器,其中所述程序指令将使所述系统执行如下操作:
建立多用户应用的一个联机会话,所述联机会话至少包括两台计算机,这些计算机各自执行多用户应用的一个实例并且在计算机网络上以通信方式连接;
在计算机相互通信的第一通信结构中设定多用户应用的联机会话;以及
在所述联机会话中,将联机会话的通信结构从第一结构改变到一种不同于第一通信结构的第二通信结构。
20.如权利要求19所述的系统,其中第一通信结构是客户机-服务器结构。
21.如权利要求19所述的系统,其中第一通信结构是端到端的通信结构。
22.如权利要求19所述的系统,其中所述系统包括多台计算机,这些计算机包含在所述联机会话中,并且至少其中一台计算机是使用端到端的通信结构来与其他计算机进行通信的,此外至少其中一台计算机是使用客户机-服务器的通信结构来与其他计算机进行通信的。
23.一种用于在计算机系统中使用的程序产品,其中所述系统执行的是记录在计算机可读介质中的程序步骤,以便执行一种用于动态配置多用户应用即所述程序产品的一个联机会话的方法,其中所述程序步骤包括:
建立多用户应用的一个联机会话,所述联机会话至少包括两台计算机,这些计算机各自执行多用户应用的一个实例并且在一个计算机网络上以通信方式连接;
在计算机相互通信的第一通信结构中设定多用户应用的联机会话;以及
在所述联机会话中,将联机会话的通信结构从第一结构改变到一种不同于第一通信结构的第二通信结构。
24.如权利要求23所述的程序产品,其中第一通信结构是客户机-服务器结构。
25.如权利要求23所述的方法,其中第一通信结构是端到端的结构。
26.一种动态配置多用户应用的一个联机会话的系统,所述系统包括一个或多个执行程序指令并接收一个数据集的处理器,其中所述程序指令使所述系统执行以下操作:
从第一计算机上的软件应用的第一实例中接收一个请求,以便建立所述软件应用的一个联机会话;
从第二计算机上的软件应用的第二实例接收一个请求,以便参与所述软件应用的所述联机会话;
将用于执行与所述软件应用的联机会话相关联的特定联功能的职责分配给第一计算机;
将用于执行所述特定功能的职责重新分配给第一计算机之外的一台计算机,所述重新分配基于软件应用的联机会话中的状态改变。
27.一种用于在计算机系统中使用的程序产品,所述系统执行的是记录在计算机可读介质中的程序步骤,以便执行一种用于动态配置多用户应用即所述程序产品的联机会话的方法,其中所述程序步骤包括:
从第一计算机上的软件应用的第一实例中接收一个请求,以便建立所述软件应用的一个联机会话;
从第二计算机上的软件应用的第二实例接收一个请求,以便参与所述软件应用的所述联机会话;
将用于执行与所述软件应用的联机会话相关联的特定功能的职责分配给第一计算机;
将用于执行所述特定功能的职责重新分配给第一计算机之外的一台计算机,所述重新分配基于软件应用的联机会话中的状态改变。
28.一种用于动态配置多用户应用的一个联机会话的系统,所述系统包括一个或多个执行程序指令并接收一个数据集的处理器,其中所述程序指令使所述系统执行以下操作:
在计算机网络上的至少两台计算机之间建立通信连接,其中每一台计算机都执行所述应用,以便建立多用户应用的一个联机会话;
将其中一台计算机指定为负责管理与多用户应用相关联功能的会话主站计算机;
检测所述会话主站计算机退出所述联机会话;以及
将第二计算机指定为会话主站计算机,以使所述第二计算机负责管理与多用户应用相关联的功能。
29.一种用于在计算机系统中使用的程序产品,所述系统执行的是记录在计算机可读介质中的程序步骤,以便执行一种用于动态配置多用户应用即所述程序产品的联机会话的方法,其中所述程序步骤包括:
在计算机网络上的至少两台计算机之间建立通信连接,其中每一台计算机都执行所述应用,以便建立多用户应用的一个联机会话;
将其中一台计算机指定为负责管理与多用户应用相关联功能的会话主站计算机;
检测所述会话主站计算机退出所述联机会话;以及
将第二计算机指定为会话主站计算机,以使所述第二计算机负责管理与多用户应用相关联的功能。
CNB038013169A 2002-05-17 2003-03-18 动态配置多用户应用的联机会话的方法 Expired - Lifetime CN1312607C (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US38171502P 2002-05-17 2002-05-17
US60/381,715 2002-05-17
US10/211,075 2002-07-31
US10/211,075 US7421471B2 (en) 2002-05-17 2002-07-31 Configuration switching: dynamically changing between network communication architectures

Publications (2)

Publication Number Publication Date
CN1610899A true CN1610899A (zh) 2005-04-27
CN1312607C CN1312607C (zh) 2007-04-25

Family

ID=29423164

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB038013169A Expired - Lifetime CN1312607C (zh) 2002-05-17 2003-03-18 动态配置多用户应用的联机会话的方法

Country Status (7)

Country Link
US (2) US7421471B2 (zh)
EP (3) EP2246792B1 (zh)
JP (1) JP3990400B2 (zh)
KR (1) KR100638072B1 (zh)
CN (1) CN1312607C (zh)
TW (1) TWI222804B (zh)
WO (1) WO2003100651A1 (zh)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US7606920B2 (en) * 2002-05-17 2009-10-20 Sony Computer Entertainment America Inc. Method and apparatus for controlling communication ports for an online session of a multi-user application by associating each of the ports with a protocol and designating an active port
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
US9063633B2 (en) * 2006-03-30 2015-06-23 Arjuna Indraeswaran Rajasingham Virtual navigation system for virtual and real spaces
US7634569B2 (en) * 2003-04-23 2009-12-15 Microsoft Corporation Match making based on proximity measures between devices
JP2007535193A (ja) * 2003-07-16 2007-11-29 スカイプ・リミテッド ピアツーピア電話システムおよび方法
US8010633B2 (en) 2003-10-20 2011-08-30 Sony Computer Entertainment America Llc Multiple peer-to-peer relay networks
US20060135259A1 (en) * 2004-12-17 2006-06-22 Nokia Corporation System, game server, terminal, and method for game event notification in a multiplayer game
CN1798049A (zh) * 2004-12-29 2006-07-05 华为技术有限公司 一种移动在线游戏系统和方法
US7624290B2 (en) * 2005-03-22 2009-11-24 Sony Corporation Power-save control for network master device
US8861701B2 (en) * 2005-04-28 2014-10-14 Apple Inc. Multi-participant conference adjustments
US7949117B2 (en) * 2005-04-28 2011-05-24 Apple Inc. Heterogeneous video conferencing
US7692682B2 (en) * 2005-04-28 2010-04-06 Apple Inc. Video encoding in a video conference
US7899170B2 (en) * 2005-04-28 2011-03-01 Apple Inc. Multi-participant conference setup
US7817180B2 (en) * 2005-04-28 2010-10-19 Apple Inc. Video processing in a multi-participant video conference
US7864209B2 (en) * 2005-04-28 2011-01-04 Apple Inc. Audio processing in a multi-participant conference
US20070094325A1 (en) * 2005-10-21 2007-04-26 Nucleoid Corp. Hybrid peer-to-peer data communication and management
JP5005210B2 (ja) * 2005-11-11 2012-08-22 任天堂株式会社 ネットワークゲームシステム、ネットワークゲームプログラムおよびネットワーク構築方法
US9604146B2 (en) * 2006-01-06 2017-03-28 International Business Machines Corporation Apparatus and method to play a multiplayer, online game
US7945689B2 (en) * 2007-03-23 2011-05-17 Sony Corporation Method and apparatus for transferring files to clients using a peer-to-peer file transfer model and a client-server transfer model
KR100821722B1 (ko) * 2006-08-24 2008-04-15 엔에이치엔(주) 다중 접속 온라인 게임에서 p2p 메시지 전송 시스템 방법
US10637724B2 (en) 2006-09-25 2020-04-28 Remot3.It, Inc. Managing network connected devices
US20160112262A1 (en) * 2014-10-18 2016-04-21 Weaved, Inc. Installation and configuration of connected devices
US11184224B2 (en) 2006-09-25 2021-11-23 Remot3.It, Inc. System, method and compute program product for accessing a device on a network
US9712486B2 (en) 2006-09-25 2017-07-18 Weaved, Inc. Techniques for the deployment and management of network connected devices
JP4306740B2 (ja) * 2007-02-21 2009-08-05 ソニー株式会社 オーバレイネットワークシステム及びサービス提供プログラム
US8788076B2 (en) * 2007-03-16 2014-07-22 Savant Systems, Llc Distributed switching system for programmable multimedia controller
US8296385B2 (en) * 2007-04-23 2012-10-23 Lenovo (Singapore) Pte. Ltd. Apparatus and method for selective engagement in software distribution
GB2450473A (en) * 2007-06-04 2008-12-31 Sony Comp Entertainment Europe A Server in a Peer to Peer system selecting and notifying a device that it is to become a member of a peer group
US8180295B2 (en) * 2007-07-19 2012-05-15 Sony Computer Entertainment Inc. Bluetooth enabled computing system and associated methods
EP2189014B1 (en) * 2007-09-14 2014-06-25 Unwired Planet International Limited User data notification in a mobile communications system
US9483405B2 (en) 2007-09-20 2016-11-01 Sony Interactive Entertainment Inc. Simplified run-time program translation for emulating complex processor pipelines
US9332068B2 (en) * 2007-11-29 2016-05-03 Ooma, Inc. Mechanisms for transparently converting client-server software agents to peer-to-peer software agents
US7904537B2 (en) * 2008-01-11 2011-03-08 Microsoft Corporation Architecture for online communal and connected experiences
EP2096798B1 (en) * 2008-02-29 2012-12-12 Accenture Global Services Limited Dynamic profile system for resource access control
JP2011008709A (ja) * 2009-06-29 2011-01-13 Brother Industries Ltd 情報処理装置、コンテンツ配信システム、コンテンツ配信制御方法及びプログラム
US20110055315A1 (en) * 2009-09-03 2011-03-03 Flipside5, Inc. System and Method for Providing Connections Between Devices on a Network
US9306803B2 (en) * 2009-10-30 2016-04-05 Hewlett Packard Enterprise Development Lp Methods and devices for implementing configuration synchronization
US8126987B2 (en) 2009-11-16 2012-02-28 Sony Computer Entertainment Inc. Mediation of content-related services
CN102118263B (zh) * 2010-01-06 2015-05-20 中兴通讯股份有限公司 配置信息的发布方法及系统
US8433755B2 (en) 2010-04-07 2013-04-30 Apple Inc. Dynamic designation of a central distributor in a multi-participant conference
US8782014B2 (en) * 2010-05-14 2014-07-15 International Business Machines Corporation Data integrity mechanism for external storage devices
US8433759B2 (en) 2010-05-24 2013-04-30 Sony Computer Entertainment America Llc Direction-conscious information sharing
US8711736B2 (en) 2010-09-16 2014-04-29 Apple Inc. Audio processing in a multi-participant conference
CN103685388B (zh) * 2012-09-13 2015-01-07 腾讯科技(深圳)有限公司 信息管理的方法和装置
TWI461907B (zh) * 2012-10-11 2014-11-21 Mstar Semiconductor Inc 配合多個應用程式之整合系統和測試系統
US9894185B2 (en) * 2014-12-16 2018-02-13 Software Ag System and method for condition-based application logic shifting between a client and a server
US9992307B2 (en) * 2015-02-03 2018-06-05 Google Llc Interoperability of discovery and connection protocols between client devices and first screen devices
JP6755843B2 (ja) 2017-09-14 2020-09-16 株式会社東芝 音響処理装置、音声認識装置、音響処理方法、音声認識方法、音響処理プログラム及び音声認識プログラム
WO2019117940A1 (en) * 2017-12-15 2019-06-20 Nokia Technologies Oy Stateless network function support in the core network
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
JP7166983B2 (ja) * 2019-05-08 2022-11-08 株式会社バーチャルキャスト 端末およびプログラム
CN112494935B (zh) * 2020-12-14 2023-10-17 咪咕互动娱乐有限公司 一种云游戏平台池化方法、电子设备及存储介质

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995031061A1 (en) 1994-05-05 1995-11-16 Catapult Entertainment, Inc. Network architecture for real-time video games
US5630757A (en) 1994-11-29 1997-05-20 Net Game Limited Real-time multi-user game communication system using existing cable television infrastructure
US5682139A (en) 1995-06-07 1997-10-28 General Electric Company Railcar location using mutter networks and locomotive transmitter during transit
US6219045B1 (en) 1995-11-13 2001-04-17 Worlds, Inc. Scalable virtual world chat client-server system
US5704032A (en) 1996-04-30 1997-12-30 International Business Machines Corporation Method for group leader recovery in a distributed computing environment
US5841980A (en) 1996-05-15 1998-11-24 Rtime, Inc. Distributed system for communication networks in multi-user applications
US5838909A (en) 1996-05-23 1998-11-17 Sandcastle, Inc. Reducing latency when synchronizing access to a multi-user database over a network
US6125122A (en) * 1997-01-21 2000-09-26 At&T Wireless Svcs. Inc. Dynamic protocol negotiation system
US6152824A (en) 1997-03-06 2000-11-28 Mpath Interactive, Inc. Online gaming architecture
US6041312A (en) 1997-03-28 2000-03-21 International Business Machines Corporation Object oriented technology framework for accounts receivable and accounts payable
US5984787A (en) 1997-06-17 1999-11-16 International Business Machines Corp. Method and system for multi-user game recovery
US6003075A (en) * 1997-07-07 1999-12-14 International Business Machines Corporation Enqueuing a configuration change in a network cluster and restore a prior configuration in a back up storage in reverse sequence ordered
US5893106A (en) 1997-07-11 1999-04-06 International Business Machines Corporation Object oriented server process framework with interdependent-object creation
US5987376A (en) 1997-07-16 1999-11-16 Microsoft Corporation System and method for the distribution and synchronization of data and state information between clients in a distributed processing system
JP3831092B2 (ja) * 1997-09-19 2006-10-11 富士通株式会社 サーバ
US6070190A (en) * 1998-05-11 2000-05-30 International Business Machines Corporation Client-based application availability and response monitoring and reporting for distributed computing environments
US6463078B1 (en) 1998-07-22 2002-10-08 Microsoft Corporation Method for switching protocols transparently in multi-user applications
US6931446B1 (en) 1998-12-14 2005-08-16 International Business Machines Corporation Methods, systems and computer program products for policy based network control of characteristics of user sessions
US6519639B1 (en) 1999-07-21 2003-02-11 Microsoft Corporation System and method for activity monitoring and reporting in a computer network
US6561811B2 (en) 1999-08-09 2003-05-13 Entertainment Science, Inc. Drug abuse prevention computer game
US6487678B1 (en) 1999-08-31 2002-11-26 International Business Machines Corporation Recovery procedure for a dynamically reconfigured quorum group of processors in a distributed computing system
US6748420B1 (en) 1999-11-23 2004-06-08 Cisco Technology, Inc. Methods and apparatus for providing shared access to an application
US7337210B2 (en) 2000-01-13 2008-02-26 International Business Machines Corporation Method and apparatus for determining availability of a user of an instant messaging application
JP3512386B2 (ja) 2000-01-20 2004-03-29 株式会社スクウェア・エニックス オンライン複合サービス提供処理方法およびオンライン複合サービス提供処理システム
CA2400587A1 (en) 2000-02-17 2001-09-07 Acclaim Entertainment, Inc. Multi-player computer game system and method
KR100505281B1 (ko) 2000-02-18 2005-08-04 (주)아이콤 소프트 비디오게임 론칭 서버와 이를 이용한 네트워크를 통한비디오게임 시스템 및 방법
US7240093B1 (en) * 2000-02-29 2007-07-03 Microsoft Corporation Use of online messaging to facilitate selection of participants in game play
AU2001259402A1 (en) 2000-05-02 2001-11-12 Sun Microsystems, Inc. Cluster membership monitor
US7056217B1 (en) 2000-05-31 2006-06-06 Nintendo Co., Ltd. Messaging service for video game systems with buddy list that displays game being played
US6676521B1 (en) 2000-08-18 2004-01-13 Cariocas, Inc. Enhanced online game mechanisms
US7299403B1 (en) 2000-10-11 2007-11-20 Cisco Technology, Inc. Methods and apparatus for obtaining a state of a browser
JP3646983B2 (ja) 2000-10-19 2005-05-11 株式会社ソニー・コンピュータエンタテインメント 待ち順番表示方法、待ち順番表示方法のプログラム、待ち順番表示方法のプログラムが記録された記録媒体、及びコンテンツ配信システム
SE520129C2 (sv) 2000-10-27 2003-05-27 Terraplay Systems Ab Kommunikationsinfrastrukturanordning i och en datorläsbar programprodukt för ett databearbetningssystem för fleranvändarapplikationer
US7403980B2 (en) * 2000-11-08 2008-07-22 Sri International Methods and apparatus for scalable, distributed management of virtual private networks
JP2002157206A (ja) 2000-11-17 2002-05-31 Square Co Ltd 電子会議参加方法およびそのシステム
US7409061B2 (en) 2000-11-29 2008-08-05 Noatak Software Llc Method and system for secure distribution of subscription-based game software
US6761636B2 (en) 2001-01-16 2004-07-13 Fucom Company, Ltd. Real time data exchange system
US7107312B2 (en) 2001-02-06 2006-09-12 Lucent Technologies Inc. Apparatus and method for use in a data/conference call system for automatically collecting participant information and providing all participants with that information for use in collaboration services
JP3429286B2 (ja) 2001-05-29 2003-07-22 株式会社コナミコンピュータエンタテインメント大阪 ネットゲームシステム及びネットゲーム管理方法
US6687733B2 (en) * 2001-06-01 2004-02-03 Intergenix Method and system for automatically configuring a client-server network
US20030073494A1 (en) 2001-10-15 2003-04-17 Kalpakian Jacob H. Gaming methods, apparatus, media and signals
US20030217135A1 (en) 2002-05-17 2003-11-20 Masayuki Chatani Dynamic player management
JP4625968B2 (ja) 2004-11-10 2011-02-02 株式会社セガ ネットワークゲームシステム、及びゲーム装置

Also Published As

Publication number Publication date
US20060253595A1 (en) 2006-11-09
CN1312607C (zh) 2007-04-25
EP2246792A3 (en) 2011-03-02
EP2246792B1 (en) 2015-07-08
US7373380B2 (en) 2008-05-13
KR20040099254A (ko) 2004-11-26
EP1435045A1 (en) 2004-07-07
TWI222804B (en) 2004-10-21
AU2003218310A1 (en) 2003-12-12
US20030217158A1 (en) 2003-11-20
JP3990400B2 (ja) 2007-10-10
EP2963549A1 (en) 2016-01-06
EP1435045A4 (en) 2007-12-19
EP2963549B1 (en) 2017-05-03
EP1435045B1 (en) 2013-05-08
KR100638072B1 (ko) 2006-10-26
WO2003100651A1 (en) 2003-12-04
JP2005524920A (ja) 2005-08-18
US7421471B2 (en) 2008-09-02
EP2246792A2 (en) 2010-11-03
TW200307419A (en) 2003-12-01

Similar Documents

Publication Publication Date Title
CN1312607C (zh) 动态配置多用户应用的联机会话的方法
US10659500B2 (en) Managing participants in an online session
KR100635805B1 (ko) 자동 통신 포트 선택에 의한 구성 제어 및 스위칭 통신포트에 의한 스위칭 구성
CN1688984A (zh) 借助自动通信端口选择的配置控制以及借助交换通信端口的交换配置
AU2003218310B2 (en) Dynamically switching configuration between network communication architectures

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
ASS Succession or assignment of patent right

Owner name: SONY COMPUTER ENTERTAINMENT AMERICA, LLC

Free format text: FORMER OWNER: SONY COMPUTER ENTERTAINMENT AMERICAN INC.

Effective date: 20101214

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20101214

Address after: American California

Patentee after: SONY COMPUTER ENTERTAINMENT AMERICA LLC

Address before: California, USA

Patentee before: SONY COMPUTER ENTERTAINMENT AMERICA LLC

CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20070425