CN110891660A - 用于在计算机装置之间同步数据的系统和方法 - Google Patents
用于在计算机装置之间同步数据的系统和方法 Download PDFInfo
- Publication number
- CN110891660A CN110891660A CN201880047505.XA CN201880047505A CN110891660A CN 110891660 A CN110891660 A CN 110891660A CN 201880047505 A CN201880047505 A CN 201880047505A CN 110891660 A CN110891660 A CN 110891660A
- Authority
- CN
- China
- Prior art keywords
- model
- copy
- modifications
- client device
- server system
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000012986 modification Methods 0.000 claims abstract description 49
- 230000004048 modification Effects 0.000 claims abstract description 49
- 238000004519 manufacturing process Methods 0.000 abstract 1
- 238000004590 computer program Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 10
- 230000008859 change Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/33—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections
- A63F13/335—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections using Internet
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
- A63F13/69—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor by enabling or updating specific game elements, e.g. unlocking hidden features, items, levels or versions
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/73—Authorising game programs or game devices, e.g. checking authenticity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
本公开的实施方案致力于用于在计算机装置之间同步数据的方法、系统以及物品。一种示例计算机实施的方法可以包括以下步骤:提供表示软件应用的一个或多个元素的多个模型;确定来自多个模型的模型过期;更新在服务器系统上存储的模型的第一副本;确定用于实现更新的一组修改;将该组修改发送到存储模型的第二副本的至少一个客户端装置;以及根据该组修改更新所存储的模型的第二副本。
Description
相关申请的交叉引用
本申请要求2017年5月17日提交的美国临时专利申请No.62/507,320的权益,此处以引用的方式将该申请的整个内容并入。
背景技术
本公开涉及数据同步,具体涉及用于在用于软件应用(例如,用于多玩家在线游戏)的计算机装置之间同步数据的系统和方法。
通常,使用客户端装置与在线游戏的虚拟环境交互的数十万甚至数百万玩家可以玩多玩家在线游戏。玩家通常设法在在线游戏中完成任务,获取资产或实现一定分数。一些游戏要求或鼓励玩家组成组或团队以能够与其他玩家或玩家组对赛。
随着玩家与游戏互动并且各种事件展开,多玩家在线游戏和/或其虚拟环境的状态可能随着时间变化。可能期望游戏状态在客户端装置和/或管理游戏的服务器计算机之间一致。
发明内容
通常,本公开的主题涉及用于管理在用于软件应用(例如,用于多玩家在线游戏)的客户端装置以及服务器系统上存储的数据的系统和方法。在典型示例中,软件应用利用多个模型(例如,数据集合),这些模型定义了软件应用的多个元素的状态。当发生导致其中一个元素变化的事件时,可以更新在服务器系统上存储的对应模型的第一副本。可以捆绑实现更新所需的一组修改并将其发送到客户端装置。然后可以使用该组修改来更新客户端装置上的模型的第二副本。这样,可以分别同步服务器系统和客户端装置上的模型的第一副本和第二副本。每当在服务器系统上更新模型的第一副本时,可以将捆绑的该组修改发送到客户端装置,使得可以生成相同的第二副本。
有利地,此处描述的方法能够在服务器系统上的模型的第一副本与一个或多个客户端装置上的模型的第二副本之间实现实时同步。这可以允许客户端装置使用模型的本地(第二)副本,而不必在使用模型时请求模型更新或验证模型状态。在多玩家在线游戏的背景下,对于所有客户端装置而言,可能重要的是使用每个模型的当前和准确版本,使得用户所采取的任意动作是可允许的和/或与如由服务器系统管理的游戏的当前状态一致。
进一步地,通过准备和发送捆绑的一组修改,此处描述的系统和方法可以避免每当在服务器系统上更新模型时都必须将整个更新的模型发送到客户端装置。考虑到该组修改通常比模型本身小得多(例如,以系数2、10、100或更多),发送一组修改而不是整个更新的模型可以显著减少网络流量,特别是在存储模型的客户端装置数以千计或百万计时。该方法还可以通过在发生变化时通知客户端装置并允许客户端装置继续使用其他未更改模型的本地副本来提高效率。通过将更改以这样的方式推送到客户端装置,服务器和客户端装置可以避免不必要的通信和数据传输。
在一个方面中,本说明书中描述的主题涉及一种计算机实施的方法。方法包括以下步骤:提供表示软件应用的一个或多个元素的多个模型;确定来自多个模型的模型过期;更新在服务器系统上存储的模型的第一副本;确定用于实现更新的一组修改;将该组修改发送到存储模型的第二副本的至少一个客户端装置;以及根据该组修改更新所存储的模型的第二副本。
在某些示例中,每个模型可以包括定义至少一个元素的状态的数据集合。软件应用可以包括或提供多玩家在线游戏。一个或多个元素可以是或包括虚拟资产、虚拟对象、虚拟角色、虚拟环境、用户、一组用户及其任意组合中的至少一个。提供多个模型可以包括将模型的第一副本存储在服务器系统上,并且将模型的第二副本存储在包括至少一个客户端装置的多个客户端装置上。
在一些实施方案中,发送该组修改可以包括确定多个客户端装置中的至少一个客户端装置被分配给模型。更新所存储的第二副本可以包括将模型的第一副本和第二副本同步为相同。由于由服务器系统和/或客户端装置发起的事件,模型可能过期。该组修改可以被配置为实施由事件促成的所有模型更新。方法可以包括以下步骤:确定客户端装置已经与服务器系统断开超过阈值时间段的时间;以及将在客户端装置上存储的所有模型更新为与在服务器系统上存储的对应模型相同。
在另一个方面中,本说明书中描述的主题涉及一种系统,该系统具有被编程为执行操作的一个或多个计算机处理器,这些操作包括:提供表示软件应用的一个或多个元素的多个模型;确定来自多个模型的模型过期;更新在服务器系统上存储的模型的第一副本;确定用于实现更新的一组修改;将该组修改发送到存储模型的第二副本的至少一个客户端装置;以及根据该组修改更新所存储的模型的第二副本。
在某些示例中,每个模型可以包括定义至少一个元素的状态的数据集合。软件应用可以包括或提供多玩家在线游戏。一个或多个元素可以是或包括虚拟资产、虚拟对象、虚拟角色、虚拟环境、用户、一组用户及其任意组合中的至少一个。提供多个模型可以包括将模型的第一副本存储在服务器系统上,并且将模型的第二副本存储在包括至少一个客户端装置的多个客户端装置上。
在一些实施方案中,发送该组修改可以包括确定多个客户端装置中的至少一个客户端装置被分配给模型。更新所存储的第二副本可以包括将模型的第一副本和第二副本同步为相同。由于由服务器系统和/或客户端装置发起的事件,模型可能过期。该组修改可以被配置为实施由事件促成的所有模型更新。操作可以包括:确定客户端装置已经与服务器系统断开超过阈值时间段的时间;以及将在客户端装置上存储的所有模型更新为与在服务器系统上存储的对应模型相同。
在另一个方面中,本说明书中描述的主题涉及一种物品。物品包括上面存储有指令的非暂时性计算机可读介质,这些指令在由一个或多个计算机处理器执行时,使得计算机处理器执行操作,这些操作包括:提供表示软件应用的一个或多个元素的多个模型;确定来自多个模型的模型过期;更新在服务器系统上存储的模型的第一副本;确定用于实现更新的一组修改;将该组修改发送到存储模型的第二副本的至少一个客户端装置;以及根据该组修改更新所存储的模型的第二副本。
关于本发明的给定方面描述的实施方式的元素可以在本发明的另一个方面的各种实施方式中使用。例如,预期的是,从属于一个独立权利要求的从属权利要求的特征可以用于任意其他独立权利要求的设备、系统和/或方法中。
附图说明
图1是用于管理软件应用的状态的示例系统的示意图。
图2是用于软件应用的多个用户和多个模型之间的映射的示意图。
图3是用于在一个或多个客户端装置与服务器系统之间同步数据的示例方法的示意数据流程图。
图4是管理软件应用的状态的示例方法的流程图。
具体实施方式
图1例示了用于管理诸如多玩家在线游戏的软件应用的状态的示例系统100。服务器系统112提供用于更新表示软件应用的一个或多个元素的模型的功能。服务器系统112包括例如可以在一个或多个地理位置中的一个或多个数据中心114处部署的软件部件和数据库。在某些情况下,服务器系统112是、包括或使用内容分发网络(CDN)。服务器系统112软件部件可以包括应用模块116和更新模块118。服务器系统112可以包括可以在相同或不同的单独数据处理设备上执行的子部件。服务器系统112数据库可以包括应用数据120数据库和模型数据122数据库。数据库可以驻留在一个或多个物理存储系统中。下面将进一步描述软件部件和数据。
诸如例如基于网络的或其他软件应用的应用可以被提供为最终用户应用,以允许用户与服务器系统112交互。客户端装置(诸如智能电话126、个人计算机128、智能电话130、平板计算机132以及膝上型计算机134)的用户可以借助网络124(例如,因特网)访问软件应用或其部件。其他客户端装置是可以的。
系统100中的每个客户端装置可以利用或包括用于软件应用的软件部件和数据库。客户端装置上的软件部件可以包括例如被配置为实施软件应用的应用模块140。客户端装置上的数据库可以包括应用数据144数据库和模型数据146数据库。应用数据144数据库可以存储用于软件应用的数据并与应用模块140交换数据。存储在应用程序数据144数据库上的数据可以包括例如由应用模块140使用或生成的用户数据、图像数据、视频数据以及任意其他数据。模型数据146数据库可以存储表示软件应用的一个或多个元素的多个模型的信息或数据。这种信息可以包括例如描述与软件应用关联的用户、一组用户、虚拟物品或虚拟环境的当前状态的数据。如此处描述的,模型数据146数据库中的信息可以(例如,使用更新模块118)由服务器系统112维护和更新。虽然将应用模块140、应用数据144数据库以及模型数据146数据库描述为与智能电话130关联,但理解,其他客户端装置(例如,智能电话126、个人计算机128、平板计算机132和/或膝上型计算机134)可以包括应用模块140、应用数据144数据库、模型数据146数据库及其任意部分。
仍然参照图1,应用模块116可以包括通过例如以下方式支持软件应用的软件部件:执行计算,实施软件更新,与更新模块118和/或应用模块140交换信息或数据,辅助软件应用的初始化,和/或监测软件应用的整体状态。更新模块118可以包括维护或更新表示软件应用的一个或多个元素的模型(例如,数据的集合)的软件部件。更新模块118可以更新在服务器系统112上(例如,在模型数据122数据库中)和客户端装置上(例如,在模型数据146数据库中)存储的模型的副本。应用数据120数据库可以存储并提供用于软件应用的数据。数据可以包括例如可以由服务器系统112和/或客户端装置用于运行软件应用的用户数据、图像数据、视频数据、动画数据和/或任意其他数据。在某些情况下,例如,应用模块116可以从应用数据120数据库检索数据(例如,视频数据或图像数据),并且将该数据发送到客户端装置。
在客户端装置126、128、130、132以及134上实施的软件应用可以涉及和/或提供各种各样的功能和信息,包括例如娱乐(例如,游戏、音乐、视频等)、商业(例如,字处理、会计、电子表格等)、新闻、天气、金融、体育等。在某些情况下,软件应用提供多玩家在线游戏,该多玩家在线游戏可以是或包括例如冒险游戏、虚拟纸牌游戏、虚拟棋盘游戏、车辆操作游戏或其他类型的多玩家游戏。游戏可以包括虚拟环境,在该环境中,用户(也称为玩家)或用户的化身可以具有各种能力。这些能力可以是或包括例如将化身或虚拟物品或对象移动到不同地理位置,与角色或其他用户互动,攻击其他用户,部署部队,防御来自其他用户的攻击,部署防御,建立或修改虚拟物品或对象(例如,虚拟建筑物或其他结构),开发新技能,操作车辆,获取虚拟物品(例如,武器),使用虚拟物品(例如,纸牌或武器)或与之交互,以及执行超自然的任务(例如施法)。其他用户能力是可以的。虽然此处的某些讨论指示软件应用与计算机游戏(例如,多玩家在线游戏)有关,但理解,此处描述的系统和方法适用于与计算机游戏无关的其他软件应用。通常,此处描述的系统和方法可以用于在用于任意类型的软件应用的服务器计算机与一个或多个客户端装置之间同步数据。
在各种示例中,软件应用可以包括或利用定义软件应用的当前状态的一个或多个模型。每个模型可以是或包括表示软件应用的元素或元素集合的当前状态的数据集合。元素可以是或涉及例如用户、一组用户、对象、特征、图形用户界面或软件应用的某一其他部件。例如,在多玩家在线游戏的背景下,模型可以定义用户的当前状态、用户的从属关系、虚拟物品(例如,虚拟建筑物或武器)、虚拟角色(例如,虚拟人或动物)、虚拟资产(例如,虚拟货币)和/或虚拟环境或其任意组成部分。当前状态可以是或包括目前状况(例如,健康状况)、价值(例如,为虚拟货币的形式)、水平、资产集合(例如,用户的财产)等。可以使用其他类型的模型和/或元素。
通常,可以将软件应用的每个用户分配给一个或多个模型,这些模型定义与用户关联或由用户使用的元素。参照图2,例如,用户与模型之间的映射200可以指示有被分配给四个模型(AA至DD)的五个用户(A至E)。在该示例中,用户A被分配给模型AA和BB,并且用户E被分配给模型CC和DD。用户到模型的其他分配是可以的。通常,当确定模型之一过期(例如,模型不再是当前模型或即将过期)时,如此处描述的,更新模块118可以确定将哪些用户分配给该模型,并且可以更新在用户的客户端装置上(例如,如存储在模型数据146数据库中)和/或在服务器系统112上(例如,在模型数据122数据库中)的模型。例如,如果确定模型BB过期,则更新模块118可以更新在服务器系统112上以及在用于被分配给模型BB的用户A、B以及D的客户端装置上的模型。在各种示例中,模型分配可以存储在可以由更新模块118访问的一个或多个数据库(例如,模型数据146数据库和/或模型数据122数据库)中。被分配给模型的用户的客户端装置可以被称为模型的客户端利益相关者。在典型的实施方案中,模型的每个客户端利益相关者可以存储模型的副本(例如,在模型数据146数据库中)。
图3包括用于在用于多玩家在线游戏或其他应用的一个或多个客户端装置与服务器系统(例如,服务器系统112)之间同步模型数据的示例方法300的数据流程图。方法300可以利用应用模块302(例如,应用模块116和/或应用模块140)、更新模块118、模型数据122数据库以及模型数据146数据库。当应用模块302确定(步骤304)游戏模型例如由于由服务器系统112和/或由客户端装置的用户发起的一个或多个事件而过期或将过期时,方法300可以开始。由服务器系统112发起的事件可以包括例如对虚拟环境的改变、新的虚拟物品、虚拟物品的新布置、用户之间的新比赛和/或新规则。在某些情况下,这种服务器发起的事件可以被称为实时事件。用户所发起的事件可以包括例如移动、使用、获取、放弃、创建或破坏物品或其他资产的请求、与另一个用户交互的请求和/或加入、离开或修改用户组或用户联盟的请求。其他类型的事件是可以的。
接着,应用模块302可以基于一个或多个事件指示(步骤306)更新模块118更新模型。更新模块118可以确定(步骤308)可以用于实现模型的完全更新的一组修改。在优选示例中,该组修改可以是或包括由一个或多个游戏事件引起或由其促成的所有模型变化。换言之,该组修改可以用于完全解决由于一个或多个游戏事件而发生的对模型的任意改变。更新模块118可以使用该组修改来更新(步骤310)存储在服务器系统112上(例如,在模型数据122数据库中)的模型的第一副本。更新模块118还可以例如基于用户与模型之间的映射(例如,映射200)来确定(步骤312)哪些客户端装置被分配给模型。更新模块118然后可以将该组修改(例如,作为捆绑包)发送到所分配的客户端装置和/或否则可以使用该组修改来更新(步骤314)存储在所分配的客户端装置上(例如,在模型数据146数据库中)的模型的第二副本。一旦更新了第二副本,则模型的第一副本和第二副本可以相同。
通常,方法300可以用于在由服务器系统112和/或客户端装置发起一个或多个事件时,更新服务器系统112上和客户端装置上的模型。这种事件可能导致一个或多个模型过期或在其他方面需要修改。在某些情况下,客户端装置可以提交改变模型的请求,并且在更新模型之前,更新模块118可以确认客户端装置具有进行改变的许可。例如,这可能涉及确认客户端装置(或关联的用户)被分配给模型或以其他方式使用,或者可以访问模型。一旦确认许可,更新模块118就可以更新服务器系统112上的模型的第一副本以及任意所分配的客户端装置(例如,客户端利益相关者)上的模型的第二副本。
通常,当服务器系统112上的模型已被改变或更新时,为实现更新而进行的所有改变(例如,一组修改)可被捆绑并推送到所分配的客户端装置。这种改变优选地在已经在服务器系统112上完全更新模型之后发送到所分配的客户端装置或在其上实施。例如,一旦更新模块118确认已经进行或完全解决对服务器系统112上的模型的所有更改(例如,由于事件),就可以发送改变。可以明确地通知更新模块118所有改变被完全解决,或者在某些情况下,一旦处理了事件的应用逻辑,更新模块118就可以自动确定所有更改被完全解决。例如,应用逻辑可以指示事件将需要模型的改变A、B以及C。一旦事件发生并且在服务器系统112上已经进行或完全解决了模型的改变A、B以及C,就也可以使用改变A、B以及C来更新客户端装置上的模型,使得服务器系统112和客户端装置可以具有相同的模型副本。对于尚未改变的其他模型,通常不需要更新模块118将任何修改发送到客户端装置。这可以允许客户端装置在这种模型的本地(第二)副本与服务器系统112(第一)副本一致的假设下继续进行。
在各种实施方案中,当客户端装置与服务器系统112之间的连接丢失或中断时,可以执行模型更新。例如,当客户端装置在断开超过阈值时间段(例如1秒、5秒、10秒或60秒)后重新建立与服务器系统112的连接时,客户端装置上的部分或全部模型可以与服务器系统112上的对应模型同步。这可以涉及将完整的模型从服务器系统112发送到各个所分配的客户端装置。这可以确保每当首次建立或重新建立连接时,客户端装置都具有最新版本的模型。在某些情况下,当用户关闭软件应用或将软件应用移至后台(例如,使用用户的客户端装置上的其他软件应用)时,可能超过阈值时间段。
图4例示了管理(例如,用于多玩家在线游戏的)软件应用的状态的示例计算机实施的方法400。提供(步骤402)表示软件应用的一个或多个元素的多个模型。确定(步骤404)来自多个模型的模型过期。更新(步骤406)在服务器系统(例如,服务器系统112)上存储的模型的第一副本。确定(步骤408)用于实现更新的一组修改。将该组修改发送(步骤410)到存储模型的第二副本的至少一个客户端装置。根据该组修改更新(步骤412)所存储的模型的第二副本。
有利地,此处描述的系统和方法可以允许用于多玩家在线游戏或其他软件应用的模型在服务器系统112和多个客户端装置上同步并且保持最新,优选实时地。这可以允许客户端装置基于模型的本地(第二)副本来行动或做出决定,而不必从服务器系统112读取模型数据和/或无需验证本地副本是正确的。
此处描述的方法具有用于计算机联网和处理的若干优点。例如,为了使模型在客户端装置上保持最新,可以将对模型的任何改变推送到客户端装置,并且通常不需要在用于当前的模型的服务器系统112与客户端装置之间发生任何通信。另外,用于更新客户端装置上的模型的该组修改通常小于整个模型本身。通过传达一组修改而不是整个模型,可以显著减少数据传输,特别是在有成千上万或数百万个所分配的客户端装置时。进一步地,当模型过期时(例如,由于在线游戏中的事件导致),可以使用单个数据包使用一组修改来一次全部更新模型。通常不需要发送多个数据包或在不同时间进行改变,以实现完全更新(例如,对于事件)。
本说明书中描述的主题和操作的实施方案可以在数字电子电路中实施、或在计算机软件、固件或硬件(包括在本说明书中公开的结构及其结构等同物)中、或在它们中的一个或多个的组合中实施。本说明书中描述的主题的实施方案可以被实施为一个或多个计算机程序,即,计算机程序指令的一个或多个模块,这些计算机程序在计算机存储介质上编码,用于由数据处理设备执行或控制数据处理设备的操作。另选地或另外,程序指令可以编码在人工生成的传播信号上,例如,被生成为编码信息的机器生成的电信号、光信号或电磁信号,该信息用于传输到合适的接收器设备,以便由数据处理设备执行。计算机存储介质可以是计算机可读存储装置、计算机可读存储基板、随机或串行存取存储阵列或装置、或它们中的一个或多个的组合,或被包括在其中。而且,虽然计算机存储介质不是传播信号,但计算机存储介质可以是在人工生成的传播信号中编码的计算机程序指令的源或目的地。计算机存储介质还可以是一个或多个单独的物理部件或介质(例如,多个CD、盘、或其他存储装置),或被包括在其中。
本说明书中描述的操作可以被实施为由数据处理设备对在一个或多个计算机可读存储装置上存储或从其他源接收的数据执行的操作。
术语“数据处理设备”包含用于处理数据的所有种类的设备、装置以及机器,用示例的方式,包括可编程处理器、计算机、片上系统、或前述中的多个或组合。设备可以包括专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,设备还可以包括创建用于讨论中的计算机程序的执行环境的代码,例如,构成以下内容的代码:处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机、或它们中的一个或多个的组合。设备和执行环境可以实现各种不同的计算模型基础设施,诸如网络服务、分布式计算以及网格计算基础设施。
计算机程序(还被称为程序、软件、软件应用、脚本或代码)可以用任意形式的编程语言来编写,该编程语言包括编译或解释语言、说明性或过程式语言,并且计算机程序可以以任意形式来部署,包括作为单独程序或作为模块、部件、子例程、对象或适于用于计算环境中的其他单元。计算机程序可以但不需要对应于文件系统中的文件。程序可以存储在保持其他程序或数据(例如,在标记语言文档中存储的一个或多个脚本)的文件的一部分中、专用于讨论中的程序的单个文件中、或多个协同文件(例如,存储一个或多个模块、子程序、或代码的部分的文件)中。计算机程序可以被部署为在一个计算机或位于一个地点或分布在多个地点上并由通信网络互连的多个计算机上执行。
本说明书中描述的处理和逻辑流程可以通过一个或多个可编程处理器执行一个或多个计算机程序来实施,该一个或多个计算机程序通过对输入数据操作且生成输出来实施动作。处理和逻辑流程也可以由专用逻辑电路执行,并且设备也可以实施为专用逻辑电路,专用逻辑电路例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
用示例的方式,适于执行计算机程序的处理器包括通用和专用微处理器、以及任意种类的数字计算机的任意一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或这两者接收指令和数据。计算机的必要元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储装置。通常,计算机还将包括用于存储数据的一个或多个大规模存储装置,例如,磁盘、磁光盘、光盘或固态驱动器,或者操作地耦合为从所述大规模存储装置接收数据或向其转移数据或这两者。然而,计算机不需要具有这种装置。而且,计算机可以嵌在另一个装置中,例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制器、全球定位系统(GPS)接收器、或便携式存储装置(例如,通用串行总线(USB)闪存驱动器),仅举几例。适于存储计算机程序指令和数据的装置包括所有形式的非易失性存储器、介质以及存储装置,用示例的方式,包括:半导体存储装置,例如,EPROM、EEPROM以及闪存装置;磁盘,例如内置硬盘或可移动盘;磁光盘;以及CD ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路来补充或并入在其中。
为了提供与用户的交互,本说明书中描述的主题的实施方案可以在计算机上实施,该计算机具有:显示装置,例如CRT(阴极射线管)或LCD(液晶显示器)监测器,该显示装置用于向用户显示信息;以及键盘和指向装置,例如鼠标、跟踪球、触摸板或触针,用户可以由该键盘和指向装置向计算机提供输入。其他种类的装置也可以用于提供与用户的交互;例如,向用户提供的反馈可以为任意形式的传感反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且来自用户的输入可以以任意形式来接收,包括声、语音或触觉输入。另外,计算机可以通过向用户使用的装置发送文档和从其接收文档(例如通过响应于从网络浏览器接收的请求将网页发送到用户客户端装置上的网络浏览器)来与用户交互。
在本说明书中描述的主题的实施方案可以在计算系统中实施,该计算系统包括后端部件,例如,作为数据服务器,或者包括中间件部件,例如,应用服务器,或者包括前端部件,例如,具有图形用户界面或网络浏览器的客户端计算机(用户可借助该图形用户界面或网络浏览器与在本说明书中描述的主题的实施方案交互),或者包括一种或多种这种后端、中间件或前端部件的任意组合。系统的部件可以由数字数据通信的任意形式或介质(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、互联网络(例如,因特网)以及对等网络(例如,自组织对等网络)。
计算系统可以包括客户端和服务器。客户端和服务器通常远离彼此,并且通常借助通信网络交互。客户端和服务器的关系借助于计算机程序出现,这些计算机程序运行在各计算机上并且具有到彼此的客户端-服务器关系。在一些实施方案中,服务器将数据(例如,HTML页面)发送到客户端装置(例如,为了向与客户端装置交互的用户显示数据和从其接收用户输入的目的)。可以从服务器处的客户端装置接收在客户端装置处生成的数据(例如,用户交互的结果)。
虽然该说明书包含许多具体实施细节,但这些细节不应被解释为是对任何发明或可以要求保护的范围的限制,相反应被解释为是特定于特定发明的特定实施方案的特征的描述。在单独实施方案的背景下在该说明书中描述的特定特征还可以在单个实施方案中组合实施。相反,在单个实施方案的背景下描述的各种特征还可以单独或以任意合适的子组合在多个实施方案中实施。而且,虽然特征在上面可以被描述为以特定组合来起作用甚至初始照此要求保护,但来自所要求保护组合的一个或多个特征在一些情况下可以从组合切除,并且所要求保护的组合可以致力于子组合或子组合的变体。
类似地,虽然以特定顺序在附图中描绘操作,但这不应被理解为为了实现期望的结果而需要这种操作以所示出的特定顺序或以相继次序来执行或者执行所有所例示的操作。在特定情况下,多重任务处理和并行处理可以是有利的。而且,上述实施方案中的各种系统部件的分离不应被解释为在所有实施方案中需要这种分离,并且应理解,所述程序部件和系统一般可以一起集成在单个软件产品中或包装到多个软件产品中。
由此,已经描述了主题的特定实施方案。其他实施方案在以下权利要求的范围内。在一些情况下,权利要求中列出的动作可以以不同的顺序来执行且仍然实现期望的结果。另外,附图中描绘的过程不是必须需要所示的特定顺序或顺序次序来实现期望的结果。在特定实施方案中,多重任务处理和并行处理可以是有利的。
Claims (20)
1.一种计算机实施的方法,所述方法包括以下步骤:
提供多个模型,所述多个模型表示软件应用的一个或多个元素;
确定来自所述多个模型的模型过期;
更新在服务器系统上存储的所述模型的第一副本;
确定用于实现更新的一组修改;
将所述一组修改发送到存储所述模型的第二副本的至少一个客户端装置;以及
根据所述一组修改更新所存储的所述模型的第二副本。
2.根据权利要求1所述的方法,其中,每个模型包括定义所述元素中的至少一个的状态的数据集合。
3.根据权利要求1所述的方法,其中,所述软件应用包括多玩家在线游戏。
4.根据权利要求1所述的方法,其中,所述一个或多个元素包括以下中的至少一个:虚拟资产、虚拟对象、虚拟角色、虚拟环境、用户、一组用户及其任意组合。
5.根据权利要求1所述的方法,其中,提供所述多个模型包括:
将所述模型的第一副本存储在所述服务器系统上,并且将所述模型的第二副本存储在包括所述至少一个客户端装置的多个客户端装置上。
6.根据权利要求5所述的方法,其中,发送所述一组修改包括:
确定所述多个客户端装置中的所述至少一个客户端装置被分配给所述模型。
7.根据权利要求1所述的方法,其中,更新所存储的第二副本包括:
将所述模型的所述第一副本和第二副本同步为相同。
8.根据权利要求1所述的方法,其中,由于由所述服务器系统和客户端装置中的至少一个发起的事件,所述模型过期。
9.根据权利要求8所述的方法,其中,所述一组修改被配置为实施由所述事件促成的所有模型更新。
10.根据权利要求1所述的方法,所述方法还包括以下步骤:
确定客户端装置已经从所述服务器系统断开超过阈值时间段的时间;以及
将在所述客户端装置上存储的所有模型更新为与在所述服务器系统上存储的对应模型相同。
11.一种系统,所述系统包括:
一个或多个计算机处理器,所述一个或多个计算机处理器被编程为执行操作,所述操作包括:
提供多个模型,所述多个模型表示软件应用的一个或多个元素;
确定来自所述多个模型的模型过期;
更新在服务器系统上存储的所述模型的第一副本;
确定用于实现更新的一组修改;
将所述一组修改发送到存储所述模型的第二副本的至少一个客户端装置;以及
根据所述一组修改更新所存储的所述模型的第二副本。
12.根据权利要求11所述的系统,其中,每个模型包括定义所述元素中的至少一个的状态的数据集合。
13.根据权利要求11所述的系统,其中,所述软件应用包括多玩家在线游戏。
14.根据权利要求11所述的系统,其中,提供所述多个模型包括:
将所述模型的第一副本存储在所述服务器系统上,并且将所述模型的第二副本存储在包括所述至少一个客户端装置的多个客户端装置上。
15.根据权利要求14所述的系统,其中,发送所述一组修改包括:
确定所述多个客户端装置中的所述至少一个客户端装置被分配给所述模型。
16.根据权利要求11所述的系统,其中,更新所存储的第二副本包括:
将所述模型的所述第一副本和第二副本同步为相同。
17.根据权利要求11所述的系统,其中,由于由所述服务器系统和客户端装置中的至少一个发起的事件,所述模型过期。
18.根据权利要求17所述的系统,其中,所述一组修改被配置为实施由所述事件促成的所有模型更新。
19.根据权利要求11所述的系统,所述操作还包括:
确定客户端装置已经从所述服务器系统断开超过阈值时间段的时间;以及
将在所述客户端装置上存储的所有模型更新为与在所述服务器系统上存储的对应模型相同。
20.一种物品,所述物品包括:
非暂时性计算机可读介质,所述非暂时性计算机可读介质上面存储有指令,所述指令在由一个或多个计算机处理器执行时,使得所述计算机处理器执行操作,所述操作包括:
提供多个模型,所述多个模型表示软件应用的一个或多个元素的;
确定来自所述多个模型的模型过期;
更新在服务器系统上存储的所述模型的第一副本;
确定用于实现更新的一组修改;
将所述一组修改发送到存储所述模型的第二副本的至少一个客户端装置;以及
根据所述一组修改更新所存储的所述模型的第二副本。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762507320P | 2017-05-17 | 2017-05-17 | |
US62/507,320 | 2017-05-17 | ||
PCT/US2018/030398 WO2018212981A1 (en) | 2017-05-17 | 2018-05-01 | System and method for synchronizing data between computer devices |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110891660A true CN110891660A (zh) | 2020-03-17 |
Family
ID=62563235
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880047505.XA Pending CN110891660A (zh) | 2017-05-17 | 2018-05-01 | 用于在计算机装置之间同步数据的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20180337989A1 (zh) |
EP (1) | EP3634592A1 (zh) |
CN (1) | CN110891660A (zh) |
WO (1) | WO2018212981A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11058946B2 (en) * | 2017-01-12 | 2021-07-13 | Mz Ip Holdings, Llc | System and method for managing event data in a multi-player online game |
KR102411260B1 (ko) * | 2020-11-06 | 2022-06-21 | 한국전자기술연구원 | 러기드 환경에서 관리 모듈간 데이터 이중화 처리 방법 |
US20230016152A1 (en) * | 2021-07-16 | 2023-01-19 | Niantic, Inc. | Reducing latency in anticheat dataflow |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101171611A (zh) * | 2005-03-10 | 2008-04-30 | Igt公司 | 游戏环境中的安全虚拟网络 |
US20090187669A1 (en) * | 2000-04-17 | 2009-07-23 | Randy Thornton | System and method for reducing traffic and congestion on distributed interactive simulation networks |
CN102215209A (zh) * | 2010-04-07 | 2011-10-12 | 上海乐格网络科技有限公司 | 一种用于大型多人在线角色扮演的网络游戏引擎 |
US8453136B1 (en) * | 2007-03-06 | 2013-05-28 | Cadence Design Systems, Inc. | Change tracking and incremental synchronization of EDA design and technology data |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8529354B1 (en) * | 2012-12-12 | 2013-09-10 | Kabam, Inc. | System and method for facilitating data model substitutions for pre-existing data objects |
-
2018
- 2018-05-01 EP EP18730150.2A patent/EP3634592A1/en not_active Withdrawn
- 2018-05-01 US US15/967,984 patent/US20180337989A1/en not_active Abandoned
- 2018-05-01 WO PCT/US2018/030398 patent/WO2018212981A1/en unknown
- 2018-05-01 CN CN201880047505.XA patent/CN110891660A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090187669A1 (en) * | 2000-04-17 | 2009-07-23 | Randy Thornton | System and method for reducing traffic and congestion on distributed interactive simulation networks |
CN101171611A (zh) * | 2005-03-10 | 2008-04-30 | Igt公司 | 游戏环境中的安全虚拟网络 |
US8453136B1 (en) * | 2007-03-06 | 2013-05-28 | Cadence Design Systems, Inc. | Change tracking and incremental synchronization of EDA design and technology data |
CN102215209A (zh) * | 2010-04-07 | 2011-10-12 | 上海乐格网络科技有限公司 | 一种用于大型多人在线角色扮演的网络游戏引擎 |
Non-Patent Citations (1)
Title |
---|
ANONYMOUS: "rsync-Wikipedia", 《HTTPS://EN.WIKIPEDIA.ORG/W/INDEX.PHP?TITLE=RSYNC&OLDID=642639739》 * |
Also Published As
Publication number | Publication date |
---|---|
WO2018212981A1 (en) | 2018-11-22 |
EP3634592A1 (en) | 2020-04-15 |
US20180337989A1 (en) | 2018-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10999317B2 (en) | Blockchain tracking of virtual universe traversal results | |
US11058946B2 (en) | System and method for managing event data in a multi-player online game | |
US10972479B2 (en) | Task completion using a blockchain network | |
US9244994B1 (en) | Idempotency of application state data | |
US10668374B2 (en) | System and method for binding global objects in a client-server architecture | |
CN104247336A (zh) | 在游戏中提供社交网络内容 | |
CN105760724B (zh) | 游戏角色的共享方法、设备及系统 | |
US20190299103A1 (en) | System and method for updating an application client | |
CN110891660A (zh) | 用于在计算机装置之间同步数据的系统和方法 | |
EP3508262A1 (en) | Method and system for sharing user activity information | |
KR20210102470A (ko) | 블록체인과는 다른 형식의 저장소에 저장되는 블록체인 데이터를 검증하는 방법 및 시스템 | |
US10717007B2 (en) | System and method for managing bonuses in a multi-player online game | |
US10828564B2 (en) | System and method for processing random events | |
CN116570928A (zh) | 一种基于nft的信息处理方法、装置和服务器 | |
Shurov et al. | Blockchain network threats: the case of PoW and ethereum | |
KR20190107535A (ko) | 게임 리플레이 방법 및 시스템 | |
CN110831677A (zh) | 用于在多玩家在线游戏中管理内容呈现的系统和方法 | |
CN110663026A (zh) | 用于减少软件应用的启动时间的系统和方法 | |
US11599534B2 (en) | Computing arrangement and method for determining relationships between identity data | |
US20190354379A1 (en) | System and method for dynamically and selectively releasing features and content in an application client | |
US20180207536A1 (en) | System and method for managing global position information in online games | |
KR20230139687A (ko) | 토큰 잠금 관리 방법 및 시스템 | |
CN116828054A (zh) | 一种内容交互平台的数据处理方法、系统、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200317 |