借助自动通信端口选择的配置控制以及借助交换通信端口的交换配置的利记博彩app

文档序号:6401298阅读:170来源:国知局
专利名称:借助自动通信端口选择的配置控制以及借助交换通信端口的交换配置的利记博彩app
技术领域
本发明通常涉及计算机网络,尤其涉及一种多用户软件应用。
背景技术
诸如局域网和互联网的计算机网络正被日益用作用户之间的各种交易与相互作用的骨干。从其中银行客户可在计算机网络上启动金融交易的网上银行到其中玩家可经由互联网参与不同游戏的在线游戏,业务提供商正日益通过计算机网络提供各种业务。当前存在多种不同的便利现有交易和相互作用的计算机网络配置。
一种配置是经典的客户机-服务器配置,如图1所示。在这种配置中,专用服务器计算机110经由网络,例如通过互联网通信链接到一个或多个客户机计算机120。所述网络由连接箭头表示。客户机计算机120向服务器计算机110发出业务请求,服务器计算机110通过将数据经由网络传送到请求客户机计算机120来执行所述请求。所述服务器计算机110可连接至数据存储设备或是其它便利客户机与服务器计算机之间的事务的计算机设备。所述客户机-服务器配置的一个特征是客户机计算机无法直接相互通信,因为客户机计算机被限制为与服务器计算机通信。
例如,当在在线游戏环境中操作客户机-服务器配置时,服务器计算机110负责维持与在线游戏相关的各种状态。所述服务器计算机可连接至其它计算机,例如维持游戏的一个或多个实例的存储器引擎140,同时服务器计算机110管理诸如玩家匹配以及账户管理的管理事务。客户机计算机120上的游戏玩家可登记或登陆到服务器计算机110,并接收可用游戏和参与玩家的列表。所述玩家选择开始或加入的游戏,从而识别该玩家的计算机与其建立客户机-服务器连接的存储器引擎。这样,所述服务器计算机110和存储器引擎140共同管理一个或多个客户机计算机120的游戏环境。
另一种配置被称为集成服务器配置,如图2所示。这种配置包括专用服务器计算机110和一个或多个客户机计算机120,每个所述客户机计算机都经由计算机网络连接至所述服务器计算机110。如先前所述配置,服务器计算机110将数据提供给客户机计算机120。但是,所述客户机计算机中的一个充当集成服务器,例如客户机计算机120a,因为所述客户机计算机120a可将数据提供给其它客户机计算机120。在在线游戏环境中,服务器计算机110可执行诸如玩家匹配、账户管理以及聊天室管理的管理功能,而客户机计算机/集成服务器120a可执行上述存储器引擎的功能。这减少了否则必须由游戏提供商提供的计算资源。
在另一种通信配置中,各个计算机被设置在对等配置内,如图3所示。在对等网络配置中,每个计算机可相互通信,从而使得所有网络计算机充当“同位体”。在一种形式的对等配置中,专用服务器110经由网络通信地连接至多个客户机计算机120。在线会话最初由每个连接至诸如服务器计算机110的管理计算机的客户机计算机120建立。所述客户机计算机120然后相互通信连接,从而使得每个所述客户机计算机120都能够将数据提供给其它任何客户机计算机120以及从其它客户机计算机120接收数据。此外,每个客户机计算机120可通过与专用服务器110成客户机-服务器关系来操作。本领域技术人员应当理解的是,除了上述配置以外还存在其它通信配置。
上述不同配置使得计算机用户能够经由计算机网络相互作用,例如在其中游戏玩家可经由计算机网络进行计算机游戏的在线游戏环境内。在这种情况下,通常至少一个计算机充当管理游戏各个方面的游戏管理员,例如协调玩家数量、跟踪游戏状态、将关于游戏状态的更新发送到用户。如果管理这些方面的计算机将要离开在线会话,则游戏的其他参与者的游戏环境可能会立即消失。这将会立即停止游戏。
一般而言,在游戏管理员计算机离开在线游戏会话的情况下,必需重新配置通信环境,从而使得剩下的参与者将经由正确的媒介通信,例如通过与所述退出会话的游戏管理员不同的计算机。不幸的是,这种改变可能会对游戏环境造成阻碍和损害。
鉴于以上所述,需要一种可成功管理用户之间的通信配置内的改变的在线多用户应用。

发明内容
本发明涉及一种在多用户环境和不同网络通信配置内操作的网络应用。所述应用控制网络计算机的通信端口以及相关通信协议的选择,所述网络计算机参与多用户应用的在线会话。在所述应用的在线会话期间内,当所述应用在网络计算机上执行时,所述应用打开所述计算机的多个通信端口,所述应用通过这些端口可将通信信号发送到其它正参与在线会话的计算机。所述网络计算内的应用然后使每个开放的通信端口与一个通信协议相关,从而使得所述应用发送和接收的通信信号将会符合所述通信端口的相关协议。网络应用然后指定通过其将发送并接收通信信号的有效通信端口。通信信号由网络计算机内的应用发送到其它正参与在线会话的计算机,以识别计算机网络的有效通信端口和相关协议。
在所述在线会话期间内,所述网络计算机可从其它参与在线会话的计算机接收配置改变消息。如果所述配置改变消息指示所述在线会话的通信配置已经改变,则所述网络计算机通过基于新接收的在线会话的通信配置指定新有效通信端口来响应所述配置改变。所述网络计算机还可确定何时这种改变是恰当的并可启动所述配置改变。
以下优选实施例借助实例示出了本发明的原理,本发明的其它特征与优点将从中显而易见。


本发明的对象、优点和特征将从以下与附图结合阅读的细节描述中轻易得到理解,在附图中图1示出了在客户机-服务器网络通信配置内设置的计算机网络。
图2示出了在集成网络通信服务器配置内设置的计算机网络。
图3示出了在对等网络通信配置内设置的计算机网络。
图4示出了在其上运行根据本发明配置的多用户应用的计算机网络系统。
图5示出了数据结构,其包括如图4所示配置的多用户应用的计算机索引以及会话主控信息。
图6示出了其中多用户应用被设置在第一种通信配置内的计算机网络系统,其中服务器计算机或客户机计算机被指定为会话主控。
图7示出了其中多用户应用被设置在另一种通信配置内的计算机网络系统,其中多个客户机计算机被指定为会话主控。
图8是说明管理多用户应用的在线会话参与者退出的过程的流程图。
图9是说明与建立在线会话的多用户应用相关的操作步骤的流程图。
图10是图4所示网络内的计算机的方框图,示出了硬件部分。
图11是图4所示网络内的计算机娱乐系统的方框图,示出了硬件部分。
具体实施例方式
图4是计算机网络系统400的方框图,其由包括一个或多个客户机计算机410、412的一个或多个网络设备以及一个或多个为计算机专用服务器计算机420、422组成,它们是计算机网络430的节点。因此,一些网络计算机被配置为服务器,一些被配置为客户机。所述计算机网络430包括诸如互联网的互连网络的集合,并包括每个节点410、412、420、422处的一个或多个局域网。术语“互联网”在本文是指标准通信协议组链接在一起以形成全球分布式网络的互连(公用和/或专用)网络的集合。
所述客户机计算机410、412可经由网络430将对数据的请求传送到所述服务器计算机420、422中的一个,所述服务器计算机以众所周知的方式被配置为将数据经由网络430提供给客户机计算机。如本领域技术人员所知,所述服务器计算机420、422可相互包括并包括其它诸如数据基本服务器和/或应用服务器的服务器,或是相互链接并链接到所述其它服务器。尽管图4仅示出了两个客户机计算机410、412和两个服务器计算机420、422,但应当理解所述网络系统400可包括任意数量的客户机计算机410、420和服务器计算机420、422。在本文中所述服务器计算机420、422和客户机计算机410、412有时被共同称为网络计算机。
所述网络系统400支持包括计算机程序的多用户应用440,多个用户可借助所述计算机程序使用链接到计算机网络430的网络设备(例如客户机计算机410、412)在在线会话中相互作用。所述应用440被安装在每个客户机计算机内,即所述应用的操作实例被存储在每个运行(执行)应用440的客户机计算机410、412的存储器内。每个将参与多用户应用的在线会话的服务器计算机同样存储所述应用440的实例。出于描述的目的,第一服务器计算机420将被假定为由客户机器410、420执行的多用户应用的服务器,尽管两个服务器420、422都被显示为带有安装的应用440。数据的交换在执行期间内发生在应用440的实例之间,并通过在每个所述网络计算机处建立网络插座445得以实现。所述插座在图4内被显示为每个对应网络计算机处的盒。本领域技术人员应当理解的是,网络插座是两个或更多在网络系统400上运行的程序之间的多路通信链路的一端。
如以下将详细描述,可根据各种通信配置在网络系统400的网络设备上运行所述应用440,且可将各种与应用相关的过程的职责指配给网络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的运行应用440的客户机计算机登陆到服务器计算机420以启动在线会话时,将所述会话主控功能指配。但所述应用自身确定何时并如何执行所述指配的细节,从而能够在并不脱离本发明教义的情况下实施各种会话主控指配方案。
启动应用的在线会话的客户机计算机410上应用的操作实例被称为主计算机。所述主计算机内的应用将会话主控功能指配给服务器计算机420或主计算机410。在新的客户机计算机登陆(登记)到服务器计算机420以参与在线会话时,所述服务器计算机420将会话主控计算机的已指配身份通知给所述新客户。
如以下将充分描述,所述会话主控功能使得其中所述应用440可操作的不同网络通信配置之间的平滑转换得以实现。所述会话主控功能还使得所述应用440能够将与应用相关任务的职责集中在特定网络计算机内,或是将所述职责在两个或更多网络计算机之间分配。可借助一个所述网络计算机上的应用440的实例来实现任务的这种分配,同时在指配会话主控功能时,可将会话主控任务指配给网络430上的一个或多个计算机,以提供所需功能。被指配会话主控的职责的一个或多个计算机在本文中被称为对应会话主控功能的“所有者”。应当理解的是,对于单独会话主控的参考适用于一组计算机,如果所述计算机共同执行所述会话主控功能的话。因此,根据应用研发商的指令以应用所指定的方式执行会话主控任务的指配。
被指配给会话主控的一类职责与特定于应用的功能相关,所述功能特定于正被执行的特定类型的应用440。例如,如果应用440是游戏型应用,则会话主控或会话主控组可跟踪诸如游戏得分、游戏剩余时间的游戏型数据,并执行诸如在游戏结束时终止在线会话的游戏功能。同样可将跟踪特定游戏数据的职责指配给会话主控计算机,所述游戏数据例如是游戏环境中诸如足球、飞机、海洋、树木等的对象的状态。这些职责中的每一个都可被集中在单个会话主控计算机内,或是被在若干会话主控计算机之中划分,这根据应用的操作。
所述主计算机执行与参与在线会话的计算机相关的管理功能。例如,无论何时网络计算机参与应用440的在线会话,主计算机都会将识别索引号指配给参与所述会话的计算机。主计算机维持识别索引号及其相关网络计算机的列表。在发送消息时使用所述索引号,其同样被用于维持与会话主控功能相关的所有权记录。
如上所述,在一个在线会话中可存在多个会话主控。如何向会话主控指配可由应用根据其操作来确定。应用440同样可将发送更新消息以更新网络计算机的职责指配给会话主控,所述更新消息关于所有参与在线会话的网络计算机的状态。如以下将充分描述,这种职责使得会话主控能够在新的网络计算机参与在线会话时,或是在当前参与者退出应用440的在线会话时通知参与网络计算机。
将上述索引号指配给每个计算机的主计算机同样维持所有正在参与在线会话的网络计算机的列表。所述应用440然后根据指配给计算机的索引号跟踪会话主控所有权。为了跟踪所述索引号与职责指配,所述应用440可将数据结构保持为包括网络计算机索引列表的表格形式,例如图5所示的表格500。所述表格500包括与每个参与在线会话的网络计算机相关的索引号,还包括所述网络计算机是否拥有会话主控功能的指示。包括表格500的索引列表数据结构优选的是还规定正用于每个网络计算机的通信协议。图5示出了不同的会话主控任务(C1、C2、C3)可归不同的网络计算机所有。
除了规定通信协议之外,所述数据结构还为每个网络计算机规定与所述通信协议相关的端口。应用440的每个实例使得参与在线会话的相关网络计算机能够开放多个通信端口,每个所述端口都与特定通信协议相关。所述网络计算机使用在包括图5所示表格500的数据结构内规定的特定端口和特定协议与其它网络计算机通信。所述端口可能包括通过其应用440的实例经由网络通信的网络插槽。所述网络计算机优选的是通过周期性地将通信消息经由网络发送到其它网络计算机来通信端口/协议信息,以及在索引列表内包括的其它信息。
优选的是,所有参与在线会话的计算机都保持表格500索引列表的它们各自的拷贝。应当理解的是,所述表格500仅仅是示例性的,且启动主应用440可以其它方式使用更广泛的数据结构格式来跟踪客户索引号以及会话主控所有权。作为选择,会话计算机可分享所述表格的一个或多个拷贝。
启动应用440可依据应用440如何指配会话主控的所有权在各种通信配置内操作。在图6所示的第一配置中,启动应用440已将会话主控600的所有权指配给单个计算机,例如专用服务器计算机420。因此,所述计算机420承担与启动应用440所指令的会话主控功能相关的所有任务的职责。因此,所述应用440在与会话主控功能相关的客户机-服务器通信配置内操作,所述服务器计算机420将与所述会话主控职责相关的数据提供给客户机计算机410。
应当理解的是,任何参与应用440的在线会话的计算机都可能具有一个或多个所述会话主控任务的所有权,例如图6内以虚线所示,所述客户机计算机之一410被示为拥有会话主控600a。这指示所述客户机计算机已被指配,并连同或是替代名义会话主控服务器计算机420执行一个或多个会话主控任务。换言之,参与在线会话的计算机之中存在会话主控的若干实例,会话主控的每个实例都被指配特定职责,且每个会话主控任务都被指配给不同的网络计算机,或是多个任务被指配给相同的计算机。例如,图6示出了这样一种情况,其中存在两个会话主控600和600a,每个所述会话主控都被指配与应用440的在线会话相关的特定功能的职责。所述服务器计算机420具有特定的职责,而所述客户机计算机410同样具有特定职责,这由应用确定。这是一种集成服务器配置,其中拥有会话主控600a的客户机计算机410充当集成服务器。“集成服务器”是指这样一种情况,其中所有客户都将信息发送到被指定为集成服务器的客户机,以及该集成服务器将所述信息传播到其它客户机。所述充当集成服务器的客户机还可拥有一个或多个会话主控任务。
在图7所示的另一方案中,应用440已将会话主控600的所有权在若干计算机之间分配。在图示的实例中,两个客户机计算机410共享会话主控600的所有权。在这种情况下,两个计算机都可能会执行与会话主控相关的功能,从而使得图7的网络计算机成为对等配置。
每个所述网络计算机优选的是依据应用440的在线会话建立用于发送和接收通信信号的通信端口。通信端口是与所述在线会话内另一网络计算机建立的逻辑连接的一端。每个所述网络计算机都为每个通信端口指定一个通信协议。所述网络计算机可以基于所述在线会话的通信配置来交换端口和对应通信协议。
参照图8所示的流程图更为详细地描述了这个过程,图8示出了当在线会话的通信配置改变时交换通信端口的过程。在由流程图框符810表示的第一步操作中,网络计算机开始建立应用440的在线会话。这可在特定网络计算机处通过在该计算机上运行应用440得以实现,这使得所述特定网络计算机以众所周知的方式连接至服务器计算机420。如上所述,服务器计算机420因而充当用于网络计算机建立在线会话的中心网络会合点。
所述网络计算机中的一个将充当所述在线会话的会话主控,例如第一个连接至服务器计算机420的计算机。此外,当所述第一计算机连接至服务器计算机并建立在线会话时,该计算机上的应用440的实例优选的是向其自身指配初始索引号,例如索引号一或是零。应当理解的是,所述初始索引号可以不同,并非必然是一或零,这取决于应用的设计。所述服务器计算机420和/或建立会话的计算机然后生成如图5所示的索引表500,以保持索引信息的记录。在建立在线会话期间内,所述表格500被存储在服务器计算机和会话主控计算机内。将登陆的后续网络计算机随后将接收如服务器计算机420所指配的下一个可用索引。与建立在线会话相关的操作继续由流程图框符820-850表示的操作。
在下一个操作中,每个运行应用440的网络计算机都开放多个通信端口,所述应用440可通过所述通信端口在所述在线会话期间内发送通信消息。这个操作由流程图框符820表示。所述应用440使用所述通信端口中的一个发送并接收通信消息。
在由流程图框符830表示的下一个操作中,所述应用440使每个所述通信端口与特定通信协议相关。这是借助每个网络计算机内的应用440的实例执行的。例如,在特定网络计算机上,所述应用440可使所述通信端口中的一个与用户数据报协议(UDP)相关,而使另一个与传输控制协议(TCP)相关等。某些协议更适用于特定的通信配置,应用440因而可被编程为使得其选择适合于特定配置的协议。例如,在某些情况下,TCP协议更适合于客户机-服务器通信配置,而UDP协议更适合于对等通信配置。应用440每次在网络计算机上的安装优选的是包括协议/端口联系的技术规范库。在所述应用的实例执行时,其依据通信配置协商适当的协议/端口联系库。
在下一个操作中,网络计算机将相关通信端口中的一个指定为通过其网络计算机将发送并接收用于在线会话的通信的有效端口。这个操作由流程图框符840表示。在指定有效端口时,网络计算机优选的是确定哪个端口将提供带宽的最为有效的使用,并提供等待时间的最佳控制。鉴于此,所述网络计算机考虑当前的通信配置以及最适合于该配置的协议。所述网络计算机然后将与最适合的协议相关的端口指定为有效端口。
下一个操作由流程图框符850表示。在这个操作中,网络计算机中的一个传送包括该计算机的端口与协议信息的通信消息。发送所述消息的会话参与者由应用设计确定。例如,发送计算机可以是会话主控,或是拥有对应会话主控任务的计算机,或可由客户机的判优方案确定,或是主应用。所述发送计算机可自动发送通信消息,作为建立在线会话的一部分。所述消息优选的是包括识别网络计算机的信息以及关于该计算机的数据,包括网络计算机索引号、正在使用的端口以及与该端口相关的协议。所述数据优选的是被顺序嵌入所述消息,例如从而使得所述计算机索引被首先列出,随后紧跟该计算机的有效端口以及与有效端口相关的协议。
优选的是将所述消息与端口和协议信息一起以避免多个发送该消息的网络计算机之间冲突的方式发送。鉴于此,带有最小索引号的计算机(可能为会话主控计算机)通过将所述消息发送到与其次最大的索引号相关的计算机来始发所述消息。所述会话主控通过接入所述索引表500得到索引号。所述下一个计算机在接收所述消息时增加其自己的数据,然后将所述消息转发到下一个计算机。换言之,每个计算机在发送消息时都将其自己的端口/协议数据附加到已包括在所述消息内的数据。这样,最后接收所述消息的计算机具有所有参与在线会话的计算机的端口/协议数据。所述消息然后可通过参与在线会话的网络计算机循环,从而使得所有所述计算机都带有更新后的消息。
每个网络计算机都在本地存储器内维持包括数据阵的数据结构,所述数据阵包括所述会话内的每个所述网络计算机的端口与协议。所述网络计算机在接收端口/协议消息时建立并更新所述数据阵。
下一个操作取决于在线会话是否经历通信配置的变化,例如在在线会话从对等通信配置交换到客户机-服务器通信配置的情况下,如判定框符855所示。如果通信配置并未发生改变,则判定框符850导致“否”,“否”,然后网络计算机继续操作,而无任何关于通信端口的改变。
但是,当在通信消息内指定在线会话的通信配置的改变时,判定框符855导致“是”,然后所述网络计算机中的一个,例如会话主控计算机向在线会话的其他参与者通知通信配置已经改变或是将要改变。所述通知采取配置改变更新消息的形式,诸如会话主控计算机的计算机将所述配置改变更新消息发送到一个或多个在线会话参与者。所述配置改变更新消息例如通过规定与特定配置相关的编码识别新的通信配置。
在一个实施例中,所述配置改变更新消息始发于会话主控计算机,所述会话主控计算机将所述配置改变更新消息发送到第一网络计算机,例如带有比会话主控计算机的索引号大一的索引号的网络计算机。接收计算机然后将所述消息指向索引编号方案中的下一个计算机,然后过程继续。这保证了将配置改变有序通知给在线会话的所有参与者。其它通知方案可用于将配置改变通知给所述参与者。
过程然后继续到由流程图框符860表示的操作。在这个操作中,网络计算机从其它网络计算机中的一个接收配置改变更新消息。第一个接收所述配置改变更新消息的网络计算机从会话主控计算机接收所述消息。如流程图框符870所示,当网络计算机接收所述配置改变更新消息时,其指定新的有效端口以及适合于所述消息所规定的新通信配置的协议。每个网络计算机都可通过其上的应用440的实例选择新的有效端口,或是会话主控可向其它计算机规定应当被指定为有效的端口。所述应用440可自动使网络计算机基于在所述配置改变更新消息内识别的特定通信配置切换到特定的传送协议,因而将会切换到对应通信端口。例如,如果新的配置是对等配置,则所述应用可使网络计算机自动切换到与诸如UDP的特定协议相关的端口。
在网络计算机指定新的有效端口之后,过程继续到由流程图框符880表示的操作。在这个操作中,所述网络计算机根据某个用于指定下一个计算机的方案将一个或多个更新消息发送到参与在线会话的“下一个”网络计算机。所述“下一个”计算机可以是带有较当前计算机的计算机索引号而言其次最大的计算机索引号的计算机,但应当理解索引号不必是指定“下一个”计算机的基础。例如,网络登陆时间可能确定下一个计算机,或是使用其它适合于网络配置的方案。无论何种定义用于“下一个”计算机,每个网络计算机都会将所述配置改变更新消息转发到下一个计算机,从而将已发生通信配置改变通知给下一个计算机。
最后接收所述配置改变更新消息的网络计算机依据框符810到850的会话建立过程了解其是网络计算机序列中的最后一个,然后向会话主控通知其已接收到所述更新消息。所述通知意味着所述配置改变更新消息已通过所有参与在线会话的网络计算机循环。所述会话主控然后以包括会话主控的端口与协议信息的消息开始新的消息循环。这个消息然后通过所述网络计算机循环,直至在线会话的所有参与者的端口/协议信息得到更新。
优选的是使用提供在应用440内使用的对象与通信消息定义库的软件开发工具包(SDK)来开发所述应用440。所述软件开发工具包包括应用接口,使用SDK开发的应用可通过所述应用接口在诸如网络系统400的网络系统上运行。SDK的应用接口可存在于诸如服务器420的中心网络服务器内,具有应用440的网络计算机可登陆到所述服务器以操作所述应用的在线会话。这允许仔细测试正在开发中的应用。通过使用由SDK提供的对象与消息类型,所述应用440可被开发为包括上述特征。所述SDK优选的是包括对象定义结构,其提供所述应用440所利用对象的基于客户的定义。所述对象定义包括多个与每个对象相关并由所述应用使用以经由计算机网络引起与客户相互作用的特征。
一旦使用SDK开发应用440即生成该应用的拷贝,并将应用440装入一个或多个网络计算机,从而根据图9的流程图框符所示的操作建立在线会话。在由流程图框符910表示的第一个操作中,应用440被装在其上的网络计算机连接至在存储器内包括该应用接口软件的网络计算机。例如,图4所示的网络系统400的一个或多个客户机计算机410具有装入存储器的应用440,而服务器计算机420包括所述应用接口。在这种情况下,所述客户机计算机410经由网络430建立与服务器计算机410的通信连接。
在由流程图框符920表示的下一个操作中,所述应用440根据应用接口库内可得到的对象定义登记对象。如流程图框符920所示,所述应用440还登记任何将在所述在线会话期间内使用的消息过滤器。
在由流程图框符950表示的下一个操作中,所述应用440定义会话主控,并将会话主控的所有权指配给网络计算机中的一个。会话主控的所有权可被指配给一个计算机或多个计算机。所述应用440还规定所述会话主控的所有权是否专用于特定计算机,或是所述所有权是否可移到其它计算机。
在此操作期间内,所述应用440将客户索引指配给每个将参与在线会话的网络计算机,并建立如上所述索引表。所述应用440可被配置为,第一个将登陆到服务器计算机上的网络计算机将成为会话主控并接收初始索引,例如索引一或是零。执行登陆的后续网络计算机然后将根据用于所述系统的“下一个”的定义来接收下一个可得到的索引。如流程图框符950所示,在建立一个或多个会话主控的所有权之后,开始应用440的在线会话。
如上所述,图4的方框图所示的网络计算机包括计算机网络系统400的节点。图10是图1系统400内的计算机的方框图,示出了包括在一个所述计算机内的硬件部分。本领域的技术人员应当理解的是,设备410和420可能都具有相似的计算机构造,或是具有与本文所述能力相一致的可选构造。
图10示出了示例性计算机1000包括所述网络计算机中的任何一个。每个计算机1000都在中心处理器单元(CPU)1002的控制下操作,例如“Pentium”微处理器以及可从Santa Clara,California,USA的Intel公司得到的相关集成电路芯片。计算机用户可从键盘和计算机鼠标1004输入指令与数据,并可在显示器1006上浏览输入和计算机输出。所述显示器通常是视频监控器或平面控制板显示器。所述计算机1000还包括直接存取存储器设备(DASD)1008,例如硬盘驱动器。存储器1010通常包括易失性半导体随机存取存储器(RAM)。每个计算机优选的是包括程序产品阅读器1012,其接受程序产品存储设备1014,所述程序产品阅读器可从所述程序产品存储设备读取数据(或是将所述数据可选地写到所述存储设备)。所述程序产品阅读器例如可包括磁盘驱动器,而所述程序产品存储设备包括可移动存储介质,例如磁软盘、CD-R盘、CD-RW盘或DVD盘。
每个计算机1000都可经由计算机网络1020(例如互联网或内联网)通过网络接口1018与其它计算机通信,所述网络接口能够经由连接1022实现网络1020与计算机之间的通信。所述网络接口1018通常包括允许经由各种网络通信的网络接口卡(NIC)或调制解调器。
CPU 1002在暂时存储在计算机1000的存储器1010内的编程步骤的控制下操作。在执行所述编程步骤时,所述计算机执行其功能。因此,所述编程步骤执行应用440的功能。可从DASD 1008通过程序产品存储设备1014或网络连接1022接收所述编程步骤。所述程序产品存储设备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,所述OSROM 1160包括存储操作系统的程序指令的非易失性存储器。优选的是在起动主单元110时将所述指令经由IOP 1120传送到CPU。
所述CPU 1100被经由专用总线1115耦合到图形处理单元(GPU)1110。所述GPU 1100是画图处理器,其被配置为执行画图过程,并根据从CPU 1100接收的指令形成图像。例如,所述GPU 1110可以基于由CPU 1100生成并从CPU 1100接收的显示列表再现图形图像。所述GPU可包括用于存储图形数据的缓存器。所述GPU 1110将图像输出到AV输出设备175。
所述IOP 1120根据存储在IOP存储器1130内的指令来控制数据在CPU 1100与多个外设元件之间的交换。所述外设元件可包括一个或多个输入控制器1122、存储卡1140、USB 1145和IEEE 1394串行总线1150。此外,总线1155被通信地耦合到IOP 1120。所述总线1155链接到若干附加元件,包括OS ROM 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。
诸如IEEE 1394串行总线1150或通用串行总线(USB)1145接口的数据I/O接口优选的是通信地耦合到IOP 1120,以允许将数据传送到视频游戏系统1100内,并将所述数据从所述视频游戏系统1100例如传送至图4的网络430。
因此,本发明提供了一种系统与方法,其用于可在使用对等通信的集成服务器(IS)配置与带有客户机-服务器(例如TCP/IP)通信的专用服务器配置之间交替的计算机网络多用户程序环境。便利的是,在从IS改变到应用服务器时,充当IS的网络用户必须改变游戏应用的操作,因此其将通过应用服务器与其他玩家通信。如果并未执行这种转换操作,则在IS机器注销时所述应用环境将会立即消失。其他所有的应用用户都将必需执行相似的通信改变。所述通信改变涉及所有用户,所述用户将其应用操作从使用用于对等操作的UDP通信端口交换到使用用于客户机-服务器操作的TCP端口。这种改变可能会对所述游戏环境带来麻烦、不便与损害。本发明提供了一种技术方案,其中配置控制特征允许多用户应用在与特定通信配置相关的一个端口(例如UDP端口)和与不同通信配置相关的第二端口(例如TCP端口)之间的自动切换。这允许应用环境的持续操作。
以上借助优选实施例描述了本发明,从而能够理解本发明。但存在多种本文并未专门描述但本发明仍然适用的系统与应用的配置。本发明因而不应当被视为对本文所述特定实施例的限制,而应当理解的是本发明通常具有相对于多用户应用的广泛适用性。所有在所附权利要求书范围内的修改、改变或同等布置与实施方式因而都应当被视为在本发明范围内。
权利要求
1.一种方法,其控制用于多用户应用的在线会话的通信端口,所述方法包括开放执行所述应用的第一网络计算机上的多个通信端口,所述应用可通过所述多个通信端口将通信信号发送到其它正在参与所述在线会话的网络计算机;使所述第一计算机的每个所述通信端口都与一个协议相关,从而使得所述应用发送并接收的通信信号将会符合所述通信端口的所述协议;指定所述第一计算机的有效通信端口,所述应用将通过所述有效通信端口发送并接收通信信号;将通信信号发送到其它参与所述在线会话的网络计算机,其中所述通信信号识别所述第一计算机的所述有效通信端口与相关协议。
2.如权利要求1的方法,还包括基于所述在线会话的通信配置改变来改变所述第一网络计算机的有效通信端口。
3.如权利要求2的方法,其中所述通信配置从对等配置改变成客户机-服务器配置。
4.如权利要求1的方法,其中所述通信配置从客户机-服务器配置改变为对等配置。
5.如权利要求1的方法,还包括从参与所述在线会话的第二网络计算机接收通信信号,其中所述通信信号识别所述第二网络计算机的有效通信端口和相关通信协议。
6.如权利要求5的方法,其中将通信信号发送到其它参与所述在线会话的网络计算机包括,将有效端口与协议数据附加到从所述第二网络计算机接收的通信信号以形成新的通信信号,以及此后将所述新的通信信号发送到其它正在参与所述在线会话的网络计算机。
7.如权利要求1的方法,还包括保持识别其它正在参与所述在线会话的网络计算机的有效通信端口与相关协议的记录。
8.如权利要求2的方法,还包括将通信配置改变信号发送到其它参与所述在线会话的网络计算机,其中所述通信配置改变信号包括所述在线会话的通信配置已改变的通知。
9.一种方法,其控制用于多用户应用的在线会话的通信端口的交换,所述方法包括开放第一网络计算机上的多个通信端口,所述应用可通过所述多个通信端口将通信信号发送到其它正在参与所述在线会话的网络计算机;使所述第一计算机的每个所述通信端口都与一个协议相关,从而使得所述应用发送并接收的通信信号将会符合所述通信端口的所述协议;指定所述第一计算机的有效通信端口,所述应用将通过所述有效通信端口发送并接收通信信号;将通信信号发送到其它参与所述在线会话的网络计算机,其中所述通信信号识别所述第一计算机的所述有效通信端口与相关协议;从其它参与所述在线会话的计算机接收配置改变消息,所述配置改变消息指示所述在线会话的通信配置已改变;基于所述在线会话的新通信配置指定新的有效通信端口。
10.如权利要求9的方法,其中所述配置改变消息包括所述通信配置从对等配置改变为客户机-服务器配置的通知。
11.如权利要求9的方法,其中所述配置改变消息包括所述通信配置从客户机-服务器配置改变为对等配置的通知。
12.如权利要求1的方法,还包括从参与所述在线会话的第二网络计算机接收通信信号,其中所述通信信号识别所述第二网络计算机的有效通信端口与相关通信协议。
13.如权利要求12的方法,其中将通信信号发送到其它参与所述在线会话的网络计算机包括,将有效端口与协议数据附加到从所述第二网络计算机接收的通信信号以形成新的通信信号,以及此后将所述新通信信号发送到其它正在参与所述在线会话的网络计算机。
14.如权利要求9的方法,还包括将所述配置改变消息转发到其它参与所述在线会话的网络计算机。
15.如权利要求9的方法,还包括保持识别其它正在参与所述在线会话的网络计算机的有效通信端口与相关协议的记录。
16.一种系统,其控制用于多用户应用的在线会话的通信端口的交换,所述系统包括一个或多个执行程序指令并接收数据集的处理器,其中所述程序指令使所述系统执行下述操作,所述操作包括开放第一网络计算机上的多个通信端口,所述应用可通过所述多个通信端口将通信信号发送到其它正在参与所述在线会话的网络计算机;使所述第一计算机的每个所述通信端口都与一个协议相关,从而使得所述应用发送并接收的通信信号将会符合所述通信端口的所述协议;指定所述第一计算机的有效通信端口,所述应用将通过所述有效通信端口发送并接收通信信号;将通信信号发送到其它参与所述在线会话的网络计算机,其中所述通信信号识别所述第一计算机的所述有效通信端口与相关协议。
17.如权利要求16的系统,其中所述程序指令使所述系统执行的操作还包括,基于所述在线会话的通信配置的改变来改变所述第一计算机的所述有效通信端口。
18.如权利要求16的系统,其中所述程序指令使所述系统执行的操作还包括,从参与所述在线会话的第二网络计算机接收通信信号,其中所述通信信号识别所述第二网络计算机的有效通信端口与相关通信协议。
19.如权利要求18的系统,其中将通信信号发送到其它参与所述在线会话的网络计算机包括,将有效端口与协议数据附加到从所述第二网络计算机接收的通信信号以形成新的通信信号,以及此后将所述新通信信号发送到其它正在参与所述在线会话的网络计算机。
20.一种用于计算机系统的程序产品,所述计算机系统执行记录在计算机可读介质内的程序步骤以执行一种方法,所述方法控制用于多用户应用的在线会话的通信端口,所述程序产品包括可存储程序指令的介质;多个计算机可读指令,其被存储在所述介质上,并可由所述计算机执行以实施一种方法,所述方法包括开放第一网络计算机上的多个通信端口,所述应用可通过所述多个通信端口将通信信号发送到其它正在参与所述在线会话的网络计算机;使所述第一计算机的每个所述通信端口都与一个协议相关,从而使得所述应用发送并接收的通信信号将会符合所述通信端口的所述协议;指定所述第一计算机的有效通信端口,所述应用将通过所述有效通信端口发送并接收通信信号;将通信信号发送到其它参与所述在线会话的网络计算机,其中所述通信信号识别所述第一计算机的所述有效通信端口与相关协议。
21.一种系统,其控制用于多用户应用的在线会话的通信端口的交换,所述系统包括一个或多个执行程序指令并接收数据集的处理器,其中所述程序指令使所述系统执行以下操作,所述操作包括开放第一网络计算机上的多个通信端口,所述应用可通过所述多个通信端口将通信信号发送到其它正在参与所述在线会话的网络计算机;使所述第一计算机的每个所述通信端口都与一个协议相关,从而使得所述应用发送并接收的通信信号将会符合所述通信端口的所述协议;指定所述第一计算机的有效通信端口,所述应用将通过所述有效通信端口发送并接收通信信号;将通信信号发送到其它参与所述在线会话的网络计算机,其中所述通信信号识别所述第一计算机的所述有效通信端口与相关协议;从其它参与所述在线会话的计算机接收配置改变消息,所述配置改变消息指示所述在线会话的通信配置已改变;基于所述在线会话的新通信配置指定新的有效通信端口。
22.一种用于计算机系统的程序产品,所述计算机系统执行记录在计算机可读介质内的程序步骤以执行一种方法,所述方法控制用于多用户应用的在线会话的通信端口,所述程序产品包括可存储程序指令的介质;多个计算机可读指令,其被存储在所述介质上,并可由所述计算机执行以实施一种方法,所述方法包括开放第一网络计算机上的多个通信端口,所述应用可通过所述多个通信端口将通信信号发送到其它正在参与所述在线会话的网络计算机;使所述第一计算机的每个所述通信端口都与一个协议相关,从而使得所述应用发送并接收的通信信号将会符合所述通信端口的所述协议;指定所述第一计算机的有效通信端口,所述应用将通过所述有效通信端口发送并接收通信信号;将通信信号发送到其它参与所述在线会话的网络计算机,其中所述通信信号识别所述第一计算机的所述有效通信端口与相关协议;从其它参与所述在线会话的计算机接收配置改变消息,所述配置改变消息指示所述在线会话的通信配置已改变;基于所述在线会话的新通信配置指定新的有效通信端口。
全文摘要
网络应用(440)在多用户(410、420)环境和各种网络通信配置内操作。所述应用(440)控制网络计算机(420)的通信端口与相关通信协议的选择,所述网络计算机(420)正参与所述多用户应用的在线会话。运行所述应用的网络计算机(420)开放所述应用可通过其将通信信号发送到其它正参与所述在线会话的网络计算机的多个通信端口。所述网络计算机(420)然后使每个所述开放通信端口与一个通信协议相关,从而使得所述应用发送并接收的通信信号将会符合所述通信端口的所述协议。所述网络计算机(420)此后指定所述第一计算机的有效通信端口,所述应用将通过所述有效通信端口发送并接收通信信号。所述网络计算机然后将通信信号发送到其它参与所述在线会话的网络计算机,所述通信信号识别所述第一计算机(420)的所述有效通信端口与相关协议。
文档编号G06F13/00GK1688984SQ03800848
公开日2005年10月26日 申请日期2003年3月18日 优先权日2002年5月17日
发明者格伦·范·达塔, 亚当·哈里斯 申请人:索尼电脑娱乐美国公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1