CN116802604A - 会话重新连接和动态资源分配 - Google Patents

会话重新连接和动态资源分配 Download PDF

Info

Publication number
CN116802604A
CN116802604A CN202180073074.6A CN202180073074A CN116802604A CN 116802604 A CN116802604 A CN 116802604A CN 202180073074 A CN202180073074 A CN 202180073074A CN 116802604 A CN116802604 A CN 116802604A
Authority
CN
China
Prior art keywords
session
user
application
user session
state
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
Application number
CN202180073074.6A
Other languages
English (en)
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.)
Meta Platforms Inc
Original Assignee
Meta Platforms Inc
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 Meta Platforms Inc filed Critical Meta Platforms Inc
Publication of CN116802604A publication Critical patent/CN116802604A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/355Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/352Details of game servers involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • A63F13/48Starting a game, e.g. activating a game device or waiting for other players to join a multiplayer session
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • A63F13/49Saving the game status; Pausing or ending the game
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating 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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/461Saving or restoring of program or task context
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • 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
    • 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
    • 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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/131Protocols for games, networked simulations or virtual reality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • H04L67/145Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/538Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for performing operations on behalf of the game client, e.g. rendering
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/5546Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/63Methods for processing data by generating or executing the game program for controlling the execution of the game in time
    • A63F2300/636Methods for processing data by generating or executing the game program for controlling the execution of the game in time involving process of starting or resuming a game
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45566Nested virtual machines
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/668Internet protocol [IP] address subnets

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Stored Programmes (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

所公开的计算机实现的方法可以包括:通过基于云的软件分发主机检测应用程序的用户会话的暂停,该基于云的软件分发主机向客户端设备提供对该应用程序的基于云的访问;以及响应于该检测,保存该用户会话的用户会话状态。该方法还可以包括基于与该用户会话有关的一个或多个会话特性,确定用于保存该用户会话状态的会话保存时间。该会话保存时间可以与用于保持该用户会话有效的预测时间相对应。该方法还包括将所保存的用户会话状态存储在会话状态缓冲器中至少达所确定的会话保存时间;以及在经过该会话保存时间后,从该会话状态缓冲器中删除用户会话状态。还公开了各种其它方法、系统和计算机可读介质。

Description

会话重新连接和动态资源分配
相关申请的交叉引用
本申请要求于2020年10月25日提交的、第63/105,320号美国临时申请的权益、以及于2021年5月28日提交的、第63/194,821号美国临时申请的权益,这两个申请中的每一个的公开内容通过引用全部被结合。于2021年10月20日提交的、第17/506,640号共同未决的美国申请通过引用全部被结合。
附图说明
附图示出了多个示例性实施例,且附图是本说明书的一部分。这些附图与以下描述一起说明和解释本公开的各种原理。
图1是用于管理云托管平台的会话重新连接和动态资源分配的示例性方法的流程图。
图2是用于管理云托管平台的会话重新连接和动态资源分配的示例性系统的框图。
图3是用于管理云托管平台的会话重新连接和动态资源分配的示例性网络的框图。
图4是云托管平台的示例性架构的框图。
图5是会话重新连接的示意图。
图6是用于管理云托管平台的会话重新连接和动态资源分配的示例性缓冲器的示意图。
在所有附图中,相同的附图标记和描述指示相似但不一定相同的元件。虽然本文所描述的示例性实施例易于进行各种修改和形式替代,但是仍通过示例的方式在附图中显示了多个具体实施例,并且即将在本文中对这些具体实施例进行详细描述。然而,本文所描述的示例性实施例不旨在被限制为所公开的特定形式。而是,本公开涵盖了落入所附权利要求的范围内的所有修改、等同物和替代物。
具体实施方式
云平台可以向远程设备提供对云平台上可用的计算资源(例如,数据、应用程序、处理等)的基于云的访问,云平台上可用的计算资源例如为应用程序。客户端设备可以连接到云平台并运行由云平台托管的应用程序,就好像该应用程序在客户端设备上本地运行一样。云平台的服务器托管环境可以维护客户端设备的应用程序会话的用户会话数据,以提供本地应用程序体验。当客户端设备结束会话时,主机服务器可不再需要维护用户会话数据,并因此可以删除用户会话数据。
当用户在其自己的客户端设备上本地运行应用程序时,用户可以暂停应用程序会话并随后返回。例如,用户可以关闭他或她的设备,从而暂停在该设备上运行的活动应用程序的应用程序会话。当用户再次打开设备时,可以恢复该活动应用程序的应用程序会话。云平台可以通过将用户会话数据保存为客户端设备暂停应用程序会话时的用户会话状态,来提供维护用户会话的类似功能。当客户端设备重新连接到应用程序会话时,云平台可以通过检索相应的用户会话状态来恢复用户的会话。
然而,无限期地存储用户会话状态可能是资源禁止的。随着应用程序会话增加,无论这些应用程序会话是来自使用其他应用程序的用户还是来自使用应用程序的其他用户,用户会话状态的数量都可能会增加,使得存储所有用户会话状态可能会快速耗尽可用的存储器。尽管可以通过删除过期数据来管理用户会话状态,但是这种方案可能导致用户的会话数据在用户重新连接之前被删除。用户的会话可能无法恢复,从而不利于用户的体验。
本公开总体上针对管理会话重新连接和动态资源分配。如下面将更详细地解释的,本公开的实施例可以检测用户会话的暂停,确定用户会话的会话保存时间,并且将用户会话的用户会话状态存储至少达会话保存时间。通过基于对用于保持用户会话有效的时间进行预测来确定会话保存时间,本文所描述的系统和方法可以在重新连接到会话时,提供更好的用户体验。本文所描述的系统和方法可以通过更有效地存储和维护会话状态数据来改进计算机本身的功能。此外,本文所描述的系统和方法可以通过更好地预测保持有效的时间来改进状态存储管理领域。
来自本文所描述的任何实施例的特征可以根据本文所描述的一般原理彼此组合使用。通过结合附图和权利要求书阅读以下具体实施方式,将更全面地理解这些和其他实施例、这些和其他特征、以及这些和优点。
下面将参考图1至图6提供用于管理会话重新连接和动态资源分配的系统和方法的具体实施方式。图1提供了用于管理会话重新连接和动态资源分配的示例性方法的具体实施方式。图2提供了示例性计算系统的具体实施方式。图3提供了示例性网络系统的具体实施方式。图4提供了示例性基于云的软件分发主机的具体实施方式。图5提供了示例性会话重新连接的具体实施方式。图6提供了用于维护用户会话状态的示例性缓冲器的具体实施方式。
图1是用于管理会话重新连接和动态资源分配的示例性计算机实现的方法100的流程图。图1所示的步骤可以由任何合适的计算机可执行代码和/或计算系统来执行,该计算系统包括图2和/或图3所示的一个或多个系统。在一个示例中,图1所示的多个步骤中的每个步骤可以表示如下算法:该算法的结构包括多个子步骤和/或由多个子步骤表示,下面将更详细地提供该算法的示例。
如图1所示,在步骤110处,本文所描述的系统中的一个或多个系统可以通过基于云的软件分发主机来检测应用程序的用户会话的暂停,该基于云的软件分发主机向客户端设备提供对应用程序的基于云的访问。例如,图2所描绘的会话模块204可以检测用户会话222的暂停。
在一些实施例中,术语“用户会话”或“会话”可以指多个通信设备之间的临时交互式信息交换,例如引用资源的客户端的活动和/或交互的会话,该活动和/或交互可以由该资源的主机跟踪。例如,网站主机可以在用户与网站主机所提供的网站的会话期间,跟踪用户的活动。用户会话可以由主机用来维护用户特定状态、持久对象、经认证的用户身份等,并且该用户会话还可以通过记住先前的交互/通信,来促进客户端和主机之间的通信。在会话期间,用户会话的状态可以保持在存储器中,并由此该用户会话的状态可以被存储到存储设备并在以后被检索。因此,用户会话可以被暂停,会话状态可以被存储,并且该用户会话可以是通过检索所存储的会话状态来恢复的。例如,如下面将进一步论述的,本文所描述的系统和方法可以管理用户会话状态。
本文所描述的各种系统可以执行步骤110。图2是用于管理会话重新连接和动态资源分配的示例系统200的框图。如该图所示,示例系统200可以包括用于执行一个或多个任务的一个或多个模块202。如本文将更详细地解释的,多个模块202可以包括会话模块204、状态模块206、保存模块208和缓冲器模块210。尽管图2中的多个模块202中的一个或多个模块被示出为单独的元件,但该一个或多个模块可以表示单个模块或应用程序中的部分。
在某些实施例中,图2中的多个模块202中的一个或多个模块可以表示一个或多个软件应用程序或程序,该一个或多个软件应用程序或程序在被计算设备执行时,可以使计算设备执行一个或多个任务。例如,且如下面将更详细地描述的,多个模块202中的一个或多个模块可以表示如下的模块:该模块被存储在一个或多个计算设备上并且被配置为在该一个或多个计算设备上运行,该一个或多个计算设备例如为图3中所示的设备(例如,计算设备302和/或服务器306)。图2中的多个模块202中的一个或多个模块还可以表示被配置为执行一个或多个任务的一个或多个专用计算机的全部或部分。
如图2所示,示例系统200还可以包括一个或多个存储设备,例如存储器240。存储器240概括地表示能够存储数据和/或计算机可读指令的任何类型或形式的易失性或非易失性存储设备或存储介质。在一个示例中,存储器240可以存储、加载和/或维护多个模块202中的一个或多个模块。存储器240的示例包括但不限于,随机存取存储器(RandomAccess Memory,RAM)、只读存储器(Read Only Memory,ROM)、闪存、硬盘驱动器(Hard DiskDrive,HDD)、固态驱动器(Solid-State Drive,SSD)、光盘驱动器、高速缓冲存储器、以上中的一个或多个的变型或组合、和/或任何其他合适的存储器。
如图2所示,示例系统200还可以包括一个或多个物理处理器,例如物理处理器230。物理处理器230概括地表示能够解释和/或执行计算机可读指令的任何类型或形式的硬件实现的处理单元。在一个示例中,物理处理器230可以访问和/或修改存储在存储器240中的多个模块202中的一个或多个模块。附加地或替代地,物理处理器230可以执行多个模块202中的一个或多个模块,以方便维护图构建(mapping system)系统。物理处理器230的示例包括但不限于,微处理器、微控制器、中央处理单元(Central Processing Unit,CPU)、实现软核处理器的现场可编程门阵列(Field-Programmable Gate Array,FPGA)、专用集成电路(Application-Specific Integrated Circuit,ASIC)、以上中的一个或多个中的部分、以上中的一个或多个的变型或组合、和/或任何其他合适的物理处理器。
如图2所示,示例系统200还可以包括一个或多个附加要素220,例如用户会话222、用户会话状态224、会话保存时间226和会话状态缓冲器228。用户会话222、用户会话状态224、会话保存时间226和/或会话状态缓冲器228可以存储在本地存储设备(例如,存储器240)上,或者可以被远程访问。如下面将进一步解释的,用户会话222可以表示与用户的当前应用程序会话相对应的存储状态。用户会话状态224可以表示与用户会话222相对应的数据。会话保存时间226可以表示用于保持用户会话状态224的时间。如下面将进一步解释的,会话状态缓冲器228可以表示用于存储会话状态(例如,用户会话状态224)的缓冲器。
图2中的示例系统200可以以各种方式实现。例如,示例性系统200中的全部或部分可以表示图3中的示例网络环境300中的部分。
图3示出了实现本公开各方面的示例性网络环境300。网络环境300包括计算设备302、网络304、和服务器306。计算设备302可以是客户端设备或用户设备,例如智能手机、台式计算机、膝上型计算机、平板设备、智能手机或其它计算设备。计算设备302可以包括物理处理器230和存储器240,该物理处理器可以是一个或多个处理器,该存储器可以存储诸如多个附加要素220中的一个或多个附加要素等数据。
服务器306可以表示或包括一个或多个服务器,该一个或多个服务器能够托管基于云的软件分发平台。服务器306可以向计算设备302提供对应用程序的基于云的访问。服务器306可以包括物理处理器230、存储器240、以及多个附加要素220中的一个或多个附加要素,该物理处理器可以包括一个或多个处理器,该存储器可以存储多个模块202。
计算设备302可以通过网络304通信耦接到服务器306。网络304可以表示任何类型或形式的通信网络(例如,互连网),并且可以包括一个或多个物理连接(例如,局域网(LAN))、和/或无线连接(例如,广域网(WAN))。
如本文所述,服务器306可以与基于云的软件分发主机相对应。在一些实施例中,基于云的软件分发主机可以托管针对基于云的访问的软件应用程序。软件应用程序(尤其是游戏)通常是针对特定的操作系统(OS)而开发的,且需要移植才能在其他OS上运行。然而,本文所描述的基于云的软件分发主机(本文也称为基于云的软件分发平台)可以在一设备上提供对针对特定OS而设计的游戏的基于云的访问,该设备运行对于该游戏不兼容的其他OS。例如,平台可以托管桌面游戏,并允许移动设备(或运行不被该游戏支持的OS的其他设备)与桌面游戏的实例交互,就好像该桌面游戏在移动设备上运行一样。类似地,平台可以托管移动游戏,并允许桌面计算机(或运行不被该游戏支持的OS的其他设备)与移动游戏的实例交互,就像该移动游戏在桌面计算机上运行一样。尽管本文的示例涉及游戏以及OS不兼容性,但在其他示例中,软件应用程序可以与如下的任何软件应用程序相对应:该软件应用程序可能不被支持、或在其它方面与另一计算设备不兼容,该另一计算设备包括但不限于OS、硬件等。
图4示出了示例性基于云的软件分发平台400。平台400可以包括主机406、网络404(其可以对应于网络304)、以及计算设备402和403。主机406(其可以对应于服务器306)可以包括容器440和442,这两个容器可以分别包括虚拟机430和虚拟机432。
在一些实施例中,术语“虚拟化环境”可以指如下的隔离的应用程序环境:该隔离的应用程序环境可以对应用程序环境的至少一些方面进行虚拟化,使得应用程序可以与这些虚拟化的方面配合,就好像该应用程序在该应用程序的本地环境上运行一样。虚拟化环境的示例包括但不限于容器和虚拟机(Virtual Machine,“VM”)。在一些实施例中,术语“容器”可以指如下的隔离的应用程序环境:该隔离的应用程序环境通过与主机共享系统或OS内核,来至少对基本主机的操作系统(“OS”)进行虚拟化。例如,如果基本主机运行Windows(或其他桌面OS),则容器也可以通过共享OS内核来运行Windows(或其他桌面OS),使得该容器可以不需要一套完整的OS二进制文件和库。在一些实施例中,术语“虚拟机”可以指对硬件以及OS进行虚拟化的隔离的应用程序环境。因为VM可以虚拟化硬件,所以VM的OS可以不受基本主机OS的限制。例如,即使基本主机正在运行Windows(或另一桌面OS),基本主机上的VM也可以被配置为通过模拟移动设备硬件来运行Android(或其他移动OS)。在其他示例中,可以使用OS的其他组合。
VM 430可以运行应用程序420,并且VM 432可以运行应用程序422。主机406可以利用嵌套虚拟化环境(例如,在容器440中运行的VM 430,在容器442中运行的VM432)来更有效地管理虚拟化环境。例如,由于许多VM被启动和/或关闭,因此嵌套虚拟化可以促进对各种类型VM的虚拟化环境的管理,以及更有效地扩展并发运行的VM的数量。通过容器可以更好地管理在某些VM上可能是全局的某些方面。
计算设备402(其可以对应于计算设备302的实例)可以通过网络404访问应用程序420。计算设备403(其可以对应于计算设备302的另一实例)可以通过网络404访问应用程序422。如图4所示,因为应用程序420和应用程序422实际在主机406上运行,所以主机406可以维护应用程序420与计算设备402、以及应用程序422与计算设备403中的每一个的单独的会话(例如,用户会话222)。
虽然图4示出了具有一个嵌套级别(例如,在容器440中运行的VM 430,或在容器442中运行的VM 432)的虚拟化环境,但是在其他实施例中,虚拟化环境可以包括嵌套的附加级别。例如,应用程序420可以在另一个VM或容器中运行,该另一VM或容器在VM 430中运行。此外,虽然图4示出了每个容器单个VM,但是在其他实施例中,每个基本虚拟化环境可以存在一个以上的嵌套虚拟化环境。
返回图1,本文所描述的系统可以以各种方式执行步骤110。在一个示例中,会话模块204可以建立和管理用于运行应用程序(例如,分别是应用程序420和/或应用程序422)的用户会话222,该用户会话可以在客户端设备(例如,计算设备302、计算设备402和/或计算设备403)和主机(例如,服务器306和/或主机406)之间。图5示出了另一示例性会话。
图5示出了会话500的示例时间线。图5可以包括主机506(其可以对应于服务器306和/或主机406)、应用程序520(其可对应于应用程序420和/或应用程序422)、用户会话522(其可对应于用户会话222),会话状态缓冲器528(其可对应于会话状态缓冲器228)、以及用户会话状态524(其可对应于用户会话状态224)。
例如,在时间t0处,作为主机506的一部分的会话模块204可以为客户端设备(未描绘)的应用程序520建立用户会话522。客户端设备可以连接到主机506以发起用于使用应用程序520的用户会话522。用户会话522可以包括用户使用应用程序520的活动的状态数据。例如,如果应用程序520对应于视频游戏,则用户会话522可以对应于用户在视频游戏中的进度的当前状态。
在时间t1处,主机506可以检测用户会话522的暂停。用户可能已经将应用程序520最小化。例如,用户可能已经主动将应用程序520最小化或被动将应用程序520最小化(例如,用户可能已经关闭他或她的设备,用户可能已经超时,另一应用程序或程序可能已经将应用程序520最小化,和/或用户可能已经以其他方式执行了使应用程序520最小化的动作等)。因此,主机506可以接收来自客户端设备的、指示应暂停用户会话522的消息。在其它示例中,主机506可检测客户端设备与主机506断开连接。例如,客户端设备可能已经超时,或者其网络连接可能被有意或无意地断开。主机506可以确定客户端设备已经没有响应通信达空闲时间阈值。因此,在如图5所示的时间t1处,用户会话522对于应用程序520可能不再是活动的。
返回到图1,在步骤120处,本文所描述的系统中的一个或多个系统可以响应于该检测,保存用户会话的用户会话状态。用户会话状态可以包括与用户会话期间的用户的活动相对应的应用程序的存储状态。例如,状态模块206可以保存用户会话状态224,该用户会话状态可以包括在检测到暂停时用于用户会话222的应用程序的存储状态。
在一些实施例中,术语“会话状态”可以指用户会话的数据表示,该数据表示可以有助于维护用户会话。会话状态可以允许通过保存用户会话的存储状态(例如,存储在当前执行应用程序期间所使用的易失性和/或非易失性存储器中的相关数据和/或代码),来恢复用户会话。会话状态的示例包括但不限于,存储为备份图像、虚拟图像或存储状态的其他副本的存储状态;当前存储状态的缓冲器转储;以特定格式存储的存储状态等。
会话状态可以包括应用程序的当前配置,使得使用会话状态来恢复用户会话可以包括:恢复匹配到或近似匹配到用户会话暂停时用户对应用程序的体验。一些应用程序(例如视频游戏、文件编辑软件等)可以允许用户保存文件(例如,保存用户在视频游戏中的进度,保存用户对文件的编辑等)。保存文件可以允许用户开始与应用程序的新会话,并加载所保存的进度。用户可以体验新会话(例如,使应用程序重新初始化),使用户的一些进度恢复(例如,通过加载用户所保存的文件)。然而,使用所保存的会话状态来恢复会话可以允许用户更接近地恢复会话暂停时的体验。例如,会话状态可以保存临时应用程序状态(例如,光标位置、所做出的选择或其他配置等)、以及其他未保存的进度。例如,如果用户正在玩视频游戏,则对于新会话,用户可以体验重新初始化游戏并加载用户所保存的游戏进度。然而,如果用户重新连接并恢复用户的先前会话,则用户可以体验重拾会话暂停时刻的游戏,就好像该会话没有被中断一样。
本文所描述的系统可以以各种方式执行步骤120。在一个示例中,如图5所示,在时间t1处,用户会话522可以存储为用户会话状态524。在检测到用户会话522的暂停之后,主机506可以例如通过执行对用户会话522的存储器转储、设置恢复用户会话522所需的数据的格式等,来将用户会话522存储为用户会话状态524。
在步骤130处,本文所描述的系统中的一个或多个系统可以基于与用户会话有关的一个或多个会话特性,确定用于保存用户会话状态的会话保存时间。会话保存时间可以与用于保持用户会话有效的预测时间相对应。例如,保存模块208可以确定用于保存用户会话状态224的会话保存时间226。
在一些实施例中,术语“会话保存时间”可以指保留会话状态的时间,该会话保存时间还可以与保持相应的用户会话有效的时间相对应。会话保存时间可以与保持用户会话有效的最小时间或下限相对应。换句话说,在经过会话保存时间后,可能不能保证相应的会话是可恢复的。在经过会话保存时间后,可以删除对应的会话状态以释放资源(例如,释放用于维持其它会话状态的存储器(storage)和/或存储器(memory))。
本文所描述的系统可以以各种方式执行步骤130。在一个示例中,保存模块208可以分析各种信号以预测将用户会话222保存多长时间。会话保存时间226可以与存储用户会话状态224的预测的最小时间相对应,使得用户会话状态224可以用于在用户重新连接时恢复用户会话222,而不需要无限存储用户会话状态224。
例如,如图5所示,在时间t1处暂停用户会话522之后,用户(例如,用户的客户端设备)可以在时间t1处重新连接到主机506,以恢复用户会话522。如果用户会话状态524被无限期地存储,则用户可以在t1之后的任何t2处恢复用户会话522。然而,由于无限期地存储用户会话状态524可能是不可行的,因此用户会话状态524仅可以在删除之前的时间t2处恢复。对应的会话保存时间(例如,会话保存时间226)可以确保,对于时间t2(其中会话保存时间大于t2-t1),用户会话状态524可以被保存并且用户会话522可以被恢复。因此,保存模块208可以分析各种信号以预测用户重新连接到会话的预期t2,并相应地确定对应的会话保存时间226。
在一些示例中,保存模块208可以分析会话特性,该会话特性包括应用程序的应用程序特性、应用程序的普及度、或应用程序的用户返回率。某些类型的应用程序可以表现出某些会话行为。例如,娱乐应用程序(例如,视频游戏、社交媒体应用程序等)可以表现出在会话中频繁暂停的短会话、以及用于恢复会话的短时间段。娱乐应用程序可以与较短的会话保存时间相关联,该较短的会话保存时间还可以与较快的用户返回率相对应。生产力应用程序(例如,办公应用程序、工作的专用软件等)可以表现出在会话中不频繁暂停的较长会话、以及用于恢复会话的较长时间段。生产力应用程序可以与较长的会话保存时间相关联,该较长的会话保存时间也可以与较慢的用户返回率相对应。可以将应用程序的其他特性考虑到会话保存时间中。例如,一种流行的应用程序可以表现出会话的高周转率,该高周转率可以与较短的会话保存时间相关联,以考虑高周转率。应用程序的资源需求也可能影响会话保存时间。例如,与具有较小会话状态的应用程序相比,需要较大会话状态的应用程序可以与更短的会话保存时间相关联,以便更有效地利用有限的资源。
在其它示例中,保存模块208可以分析会话特性,该会话特性包括用户的应用程序使用模式或用户的返回率。用户自己可以表现出如从用户的历史中确定的特定的会话行为。例如,给定用户可能倾向于在一天中的特定时间使用给定应用程序,使得会话保存时间226可以考虑用户的使用模式。会话保存时间226在与预期使用时间重叠时可以更长(例如,由于用户重新连接到会话具有更高的概率)和/或在其他情况下可以更短。在另一示例中,给定用户的应用程序使用模式可以指示用户倾向于快速地返回到会话(其可以对应于会话保存时间226的更短时间)或者可能倾向于慢慢地返回到会话(其可以对应于会话保存时间226的更长时间)。在一些示例中,用户可以通过设置或在暂停用户会话222的时候,指示用户是否期望和/或打算在不同于正常相对时间(例如,比用户和/或用户类别的平均更快,比平均更慢)和/或绝对时间(例如,指示特定的预期返回时间(例如,在1小时内或在诸如下午7:00等时刻)之后返回到用户会话222。在一些示例中,保存模块208可以使用平均重新连接时间(例如,用户重新连接到给定会话的平均时间)来确定会话保存时间226。例如,平均重新连接时间可以用作会话保存时间226的基础,该会话保存时间可以基于本文所描述的因素进行进一步修改。
保存模块208还可以考虑附加因素并使用各种分析方案(例如,统计分析、机器学习等),以平衡对会话状态的可用存储器的最佳使用与使所丢弃的用户会话最小化。在一些示例中,保存模块208可以基于先前会话保存时间的成功率(例如,会话在删除相应的会话状态之前重新连接),来动态地更新会话保存时间226。
在步骤140处,本文所描述的系统中的一个或多个系统可以将所保存的用户会话状态存储在会话状态缓冲器中至少达所确定的会话保存时间。例如,缓冲器模块210(和/或保存模块208)可以将用户会话状态224存储在会话状态缓冲器228中至少达会话保存时间226所指示的时间。
会话状态缓冲器228可以与使用如本文所描述的任何存储器和/或存储设备实现的任何数据结构相对应。例如,会话状态缓冲器228可以是寄存器的队列、寄存器的堆栈、寄存器堆、寄存器向量、寄存器阵列、系列寄存器等。图6示出了会话状态缓冲器628,该会话状态缓冲器可以对应于会话状态缓冲器228和/或会话状态缓冲器528。会话状态缓冲器628在图6中被示出为阵列,但是在其他示例中,会话状态缓冲器628可以对应于任何其它合适的数据结构。
如图6所示,会话状态缓冲器628可以与多个用户会话状态(例如,用户会话状态624A、用户会话状态624B、用户会话状态624C、用户会话状态624D、用户会话状态624E和用户会话状态624N)相关联,这些用户会话状态中的每个用户会话状态可以与用户会话状态224和/或用户会话状态524的不同迭代相对应。会话状态缓冲器628可以以会话状态缓冲器628可存储的用户会话状态的数量来限制会话状态缓冲器628。
缓冲器模块210可以存储用户会话状态(例如,至少用户会话状态624A、624B、624D和624E)以及每个状态的对应的会话保存时间。缓冲器模块210可以随每个状态(例如,作为标志、位、元数据、或其他状态指示符)存储对应的会话保存时间。替代地或附加地,缓冲器模块210可以维护用于将会话保存时间与会话状态进行关联的查找表或类似的数据结构。
如下面将进一步描述的,缓冲器模块210可以周期性地和/或自动地从会话状态缓冲器628刷新过期条目(例如,具有过去的或到期的会话保存时间的用户会话状态)。然而,当在会话状态缓冲器628满时而将新的用户会话状态(例如,用户会话状态624N)添加到会话状态缓冲器628时,缓冲器模块210可以选择所存储的用户会话状态中的一者来用于刷新。缓冲器模块210可以例如基于到期时间(例如,具有接近或已经失效的会话保存时间的用户会话状态可能更有可能被选择)、缓冲器中的时间(例如,与其他用户会话状态相比的、已在会话状态缓冲器628中存储更长时间的用户会话状态可能更有可能被选择)、和/或用于确定哪个用户会话状态可以被刷新而对整体用户体验的影响最小(例如,不太可能或最不可能被重新连接的用户会话)的其它因素,来选择用于刷新的候选用户会话状态。如图6所示,缓冲器模块210已经选择并刷新用户会话状态624C,以提供用于存储用户会话状态624N的空间。在其它示例中,如下面将进一步论述的,用户会话状态624C可以在其他情况下进行刷新。
返回方法100,本文所描述的系统可以以各种方式执行步骤140。在一个示例中,如图5所示,在时间t1处,缓冲器模块210可以将用户会话状态524存储在会话状态缓冲器528中。在时间t1处,应用程序520对于用户会话522可以不再是活动的,而是可以将用户会话作为用户会话状态524保存在会话状态缓冲器528中。
在一些示例中,会话模块204可以在会话保存时间226过去之前,检测用户会话222的重新连接。例如,在图5中,时间t2可以与用户会话状态524的会话保存时间到期之前的时间相对应,使得用户会话状态524可以用于在时间t2处恢复用户会话522。然后,会话模块204可以从会话状态缓冲器528中加载用户会话状态524,以恢复用户会话522并从会话状态缓冲器528删除用户会话状态524(例如,删除图6中的用户会话状态624C)。恢复用户会话522可以包括恢复应用程序520的与时间t1处的应用程序状态类似的应用程序状态,这可以包括使用存储在用户会话状态524中的数据,来恢复易失性和/或非易失性存储器中的数据。用户可以体验用户会话522,就好像用户会话522几乎没有中断或没有中断一样。
在一些示例中,会话模块204可以跟踪用户会话522的重新连接时间。用户的平均重新连接时间可以基于该重新连接时间来更新,使得保存模块208可以使用所更新的平均重新连接时间来确定会话保存时间。
如本文所描述的,成功地预测会话保存时间可以降低用户将不能重新连接到经暂停的会话的可能性。因此,在图5中的时间t2处,可以将用户会话522恢复。然而,如果对应的会话保存时间太短,则在时间t2处,用户会话状态524可能已经被刷新,使得用户会话522可能是不可恢复的。在一些示例中,保存模块208可以对成功和/或不成功的会话保存时间、以及会话保存时间和实际重新连接时间之间的差量进行跟踪,以改进对会话保存时间的预测。
返回图1,在步骤150处,本文所描述的系统中的一个或多个系统可以在经过会话保存时间后,从会话状态缓冲器中删除用户会话状态。例如,缓冲器模块210可以在经过会话保存时间226后,从会话状态缓冲器228中删除用户会话状态224。
本文所描述的系统可以以各种方式执行步骤150。在一个示例中,缓冲器模块210可以自动地和/或周期性地检查会话状态缓冲器228中的每个用户会话状态是否有效或已经过去。在一些示例中,保存模块208可以动态更新会话保存时间226,使得缓冲器模块210可能需要主动管理和刷新过期条目。在其它示例中,可以给予缓冲器模块210指令以刷新特定条目。例如,用户可以指示该用户不打算重新连接到会话,使得可以指示缓冲器模块210刷新相应的用户会话状态。在另一示例中,用户的账户可能被终止或以其他方式被暂停,使得可以对用户的所有会话状态进行刷新。在又一示例中,对应的应用程序可能已经改变(例如,更新、修改、删除等),使得相关的用户会话状态可能不再是符合应用程序的数据,并因此可能被刷新。
通过识别和刷新过期条目,缓冲器模块210可以维护会话状态缓冲器228从而可以添加新条目。例如,在图6中,刷新来自会话状态缓冲器628的用户会话状态624C可以允许存储用户会话状态624N。
如上所提及的,本文所描述的系统和方法针对用于管理用户会话状态的动态资源分配。云应用程序平台可以向用户提供对应用程序的虚拟化访问。在客户端设备上,用户通常期望能够暂停当前应用程序会话,且随后无缝地返回到该会话。然而,通过托管虚拟化应用程序的服务器来提供这种体验可能会非常耗费资源(例如,储存器)。例如,保持用户会话有效可能需要保存用户的会话状态,如果用户不打算重新连接到同一会话,保存用户的会话状态可能是对资源的浪费。本文所描述的系统和方法可以确定哪些用户会话保持有效以及哪些用户会话关闭,以便释放资源。本文所描述的系统和方法可以使用各种信号(例如,与应用程序相关的多个方面、以及与用户相关的多个方面),来确定将每个会话保存多长时间。
示例性实施例
示例1:一种计算机实现的方法包括:(i)通过基于云的软件分发主机检测应用程序的用户会话的暂停,该基于云的软件分发主机向客户端设备提供对应用程序的基于云的访问;(ii)响应于检测,保存用户会话的用户会话状态,其中,用户会话状态包括与用户会话期间的用户的活动相对应的、应用程序的存储状态;(iii)基于与用户会话有关的一个或多个会话特性,确定用于保存用户会话状态的会话保存时间,其中,会话保存时间与用于保持用户会话有效的预测时间相对应;(iv)将所保存的用户会话状态存储在会话状态缓冲器中至少达所确定的会话保存时间;以及(v)在经过会话保存时间后,从会话状态缓冲器中删除用户会话状态。
示例2:根据示例1所述的方法,还包括:在经过该会话保存时间之前,检测到对该用户会话的重新连接;以及从该会话状态缓冲器中加载该用户会话状态,以恢复该用户会话。
示例3:根据示例2所述的方法,还包括跟踪该用户会话的重新连接时间,其中,该一个或多个会话特性包括该用户的平均重新连接时间,并且该会话保存时间还基于该平均重新连接时间。
示例4:根据示例1、2或3所述的方法,其中,该一个或多个会话特性包括该应用程序的应用程序特性、该应用程序的普及度、或该应用程序的用户的返回率中的至少一者。
示例5:根据示例1至4中任一示例所述的方法,其中,该一个或多个会话特性包括用户的应用程序使用模式、或该用户的返回率中的至少一者。
示例6:根据示例1至5中任一示例所述的方法,其中,该暂停与以下中的至少一者相对应:该客户端设备从该基于云的软件分发主机断开连接、或该用户将该应用程序最小化。
示例7:根据示例1至6中任一示例所述的方法,其中,该应用程序包括视频游戏,并且该用户会话状态与该用户在该视频游戏中的进度相对应。
示例8:一种系统包括:至少一个物理处理器;物理存储器,该物理存储器包括计算机可执行指令,该计算机可执行指令在被该物理处理器执行时,使该物理处理器:(i)通过基于云的软件分发主机检测应用程序的用户会话的暂停,该基于云的软件分发主机向客户端设备提供对应用程序的基于云的访问;(ii)响应于该检测,保存用户会话的用户会话状态,其中,用户会话状态包括与用户会话期间的用户的活动相对应的应用程序的存储状态;(iii)基于与用户会话有关的一个或多个会话特性,确定用于保存用户会话状态的会话保存时间,其中,会话保存时间与用于保持用户会话有效的预测时间相对应;(iv)将所保存的用户会话状态存储在会话状态缓冲器中至少达所确定的会话保存时间;以及(v)在经过会话保存时间后,从会话状态缓冲器中删除用户会话状态。
示例9:根据示例8所述的系统,其中,该指令还包括用于以下操作的指令:在经过该会话保存时间之前,检测到对该用户会话的重新连接;以及从该会话状态缓冲器中加载该用户会话状态,以恢复该用户会话。
示例10:根据示例9所述的系统,其中,该指令还包括用于以下操作的指令:跟踪该用户会话的重新连接时间,其中,该一个或多个会话特性包括该用户的平均重新连接时间,并且该会话保存时间还基于该平均重新连接时间。
示例11:根据示例8、9或10所述的系统,其中,该一个或多个会话特性包括该应用程序的应用程序特性、该应用程序的普及度、或该应用程序的用户的返回率中的至少一者。
示例12:根据示例8至11中任一示例所述的系统,其中,该一个或多个会话特性包括用户的应用程序使用模式或该用户的返回率中的至少一者。
示例13:根据示例8至12中任一示例所述的系统,其中,该暂停与以下中的至少一者相对应:该客户端设备从该基于云的软件分发主机断开连接、或该用户将该应用程序最小化。
示例14:一种非暂态计算机可读介质包括:一个或多个计算机可执行指令,该一个或多个计算机可执行指令在被计算设备的至少一个处理器执行时,使该计算设备:(i)通过基于云的软件分发主机检测应用程序的用户会话的暂停,该基于云的软件分发主机向客户端设备提供对应用程序的基于云的访问;(ii)响应于该检测,保存用户会话的用户会话状态,其中,用户会话状态包括与用户会话期间的用户的活动相对应的应用程序的存储状态;(iii)基于与用户会话有关的一个或多个会话特性,确定用于保存用户会话状态的会话保存时间,其中,会话保存时间与用于保持用户会话有效的预测时间相对应;(iv)将所保存的用户会话状态存储在会话状态缓冲器中至少达所确定的会话保存时间;以及(v)在经过会话保存时间后,从会话状态缓冲器中删除用户会话状态。
示例15:根据示例14所述的非暂态计算机可读介质,该指令还包括用于以下操作的指令:在经过该会话保存时间之前,检测到对该用户会话的重新连接;以及从该会话状态缓冲器中加载该用户会话状态,以恢复该用户会话。
示例16:根据示例15所述的非暂态计算机可读介质,其中,该指令还包括用于以下操作的指令:跟踪该用户会话的重新连接时间,其中,该一个或多个会话特性包括该用户的平均重新连接时间,并且该会话保存时间还基于该平均重新连接时间。
示例17:根据示例14、15或16所述的非暂态计算机可读介质,其中,该一个或多个会话特性包括该应用程序的应用程序特性、该应用程序的普及度、或该应用程序的用户的返回率中的至少一者。
示例18:根据示例14至17中任一示例所述的非暂态计算机可读介质,其中,该一个或多个会话特性包括用户的应用程序使用模式、或该用户的返回率中的至少一者。
示例19:根据示例14至18中任一示例所述的非暂态计算机可读介质,其中,该暂停与以下中的至少一者相对应:该客户端设备从该基于云的软件分发主机断开连接、或该用户最小化该应用程序。
示例20:根据示例14至19中任一示例所述的非暂态计算机可读介质,其中,该应用程序包括视频游戏,并且该用户会话状态与该用户在该视频游戏中的进度相对应。
如上所详述的,本文所描述和/或所示出的计算设备和系统概括地表示能够执行计算机可读指令(例如包含在本文所描述的模块内的那些指令)的任何类型或形式的计算设备或系统。在其最基本配置中,一个或多个这些计算设备均可以包括至少一个存储设备和至少一个物理处理器。
在一些示例中,术语“存储设备”概括地指能够存储数据和/或计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。在一个示例中,存储设备可以存储、加载和/或维护本文所描述的多个模块中的一个或多个模块。存储设备的示例包括但不限于,随机存取存储器(RAM)、只读存储器(ROM)、闪存、硬盘驱动器(HDD)、固态驱动器(SSD)、光盘驱动器、高速缓冲存储器、以上中的一个或多个的变型或组合、和/或任何其他合适的存储器。
在一些示例中,术语“物理处理器”概括地指能够解释和/或执行计算机可读指令的任何类型或形式的硬件实现的处理单元。在一个示例中,物理处理器可以访问和/或修改存储在上述存储设备中的一个或多个模块。物理处理器的示例包括但不限于,微处理器、微控制器、中央处理单元(CPU)、实现软核处理器的现场可编程门阵列(FPGA)、专用集成电路(ASIC)、以上中的一个或多个中的部分、以上中的一个或多个的变型或组合、和/或任何其他合适的物理处理器。
虽然本文所描述和/或所示出的多个模块被示出为单独的元件,但是这些模块可以表示单个模块或应用程序中的部分。另外,在某些实施例中,这些模块中的一个或多个模块可以表示一个或多个软件应用程序或程序,该一个或多个软件应用程序或程序在被计算设备执行时,可以使该计算设备执行一个或多个任务。例如,本文所描述和/或所示出的模块中的一个或多个模块可以表示如下这些模块:该模块在存储在本文所描述和/或所示出的计算设备或系统中的一个或多个计算设备或系统上,且被配置为在该一个或多个计算设备或系统上运行。这些模块中的一个或多个模块还可以表示被配置为执行一个或多个任务的一个或多个专用计算机中的全部或部分。
此外,本文所描述的多个模块中的一个或多个模块可以将数据、物理设备和/或物理设备的表示从一种形式转换为另一种形式。例如,本文所描述的多个模块中的一个或多个模块可以接收待转换的会话数据,转换会话数据,输出转换的结果以管理会话数据,使用转换的结果来维护会话数据,以及存储转换的结果以存储会话数据。附加地或替代地,本文所陈述的多个模块中的一个或多个模块可以通过在计算设备上执行、在计算设备上存储数据、和/或以其他方式与计算设备交互,来将处理器、易失性存储器、非易失性存储器、和/或物理计算设备的任何其他部分从一种形式转换成另一种形式。
在一些实施例中,术语“计算机可读介质”概括地是指能够存储或承载计算机可读指令的任何形式的设备、载体或介质。计算机可读介质的示例包括但不限于,传输型介质和非暂态型介质,该传输型介质例如为载波,该非暂态型介质例如为磁存储介质(例如,硬盘驱动器、磁带驱动器和软盘)、光存储介质(例如,光盘(Compact Disk,CD)、数字视频盘(Digital Video Disk,DVD)和蓝光光盘)、电子存储介质(例如,固态驱动器和闪存介质)、以及其它分发系统。
本文所描述和/或所示出的过程参数和步骤顺序仅作为示例给出,并且可以根据需要进行改变。例如,虽然本文所示出和/或所描述的步骤可以以特定顺序显示或论述,但这些步骤不一定需要按照所示出或所论述的顺序来执行。本文所描述和/或所示出的各种示例性方法还可以省略本文所描述或所示出的多个步骤中的一个或多个步骤,或者可以包括除了所公开的那些步骤之外的附加步骤。
已经提供了前面的描述来使本领域其他技术人员能够最优地利用本文所公开的示例性实施例的各个方面。该示例性描述不旨在是详尽的或被限制为所公开的任何精确形式。在不脱离本公开的精神和范围的情况下,许多修改和变型是可能的。本文所公开的实施例在所有方面都应被认为是说明性的而非限制性的。在确定本公开的范围时,应当参考所附权利要求及其等同物。
除非另有说明,否则如说明书和权利要求书中所使用的术语“连接到”和“耦接到”(及其派生词)应被解释为允许直接连接和间接连接(即,通过其他元件或部件)这两者。此外,如说明书和权利要求书中所使用的术语“一(a)”或“一(an)”应被解释为表示“中的至少一个”。最后,为了便于使用,如说明书和权利要求书中所使用的术语“包括(including)”和“具有(having)”(及其派生词)可以与词语“包括(comprising)”互换,并且具有与词语“包括(comprising)”相同的含义。

Claims (20)

1.一种计算机实现的方法,包括:
通过基于云的软件分发主机来检测应用程序的用户会话的暂停,所述基于云的软件分发主机向客户端设备提供对所述应用程序的基于云的访问;
响应于所述检测,保存所述用户会话的用户会话状态,其中,所述用户会话状态包括与所述用户会话期间的用户的活动相对应的、所述应用程序的存储状态;
基于与所述用户会话有关的一个或多个会话特性,确定用于保存所述用户会话状态的会话保存时间,其中,所述会话保存时间与用于保持所述用户会话有效的预测时间相对应;
将所保存的所述用户会话状态存储在会话状态缓冲器中至少达所确定的所述会话保存时间;以及
在经过所述会话保存时间后,从所述会话状态缓冲器中删除所述用户会话状态。
2.根据权利要求1所述的方法,还包括:
在经过所述会话保存时间之前,检测到对所述用户会话的重新连接;以及
从所述会话状态缓冲器中加载所述用户会话状态,以恢复所述用户会话。
3.根据权利要求2所述的方法,还包括:跟踪所述用户会话的重新连接时间,其中,所述一个或多个会话特性包括所述用户的平均重新连接时间,并且所述会话保存时间还基于所述平均重新连接时间。
4.根据权利要求1所述的方法,其中,所述一个或多个会话特性包括所述应用程序的应用程序特性、所述应用程序的普及度、或所述应用程序的用户的返回率中的至少一者。
5.根据权利要求1所述的方法,其中,所述一个或多个会话特性包括用户的应用程序使用模式或所述用户的返回率中的至少一者。
6.根据权利要求1所述的方法,其中,所述暂停与以下中的至少一者相对应:所述客户端设备从所述基于云的软件分发主机断开连接、或所述用户将所述应用程序最小化。
7.根据权利要求1所述的方法,其中,所述应用程序包括视频游戏,并且所述用户会话状态与所述用户在所述视频游戏中的进度相对应。
8.一种系统,包括:
至少一个物理处理器;以及
物理存储器,所述物理存储器包括计算机可执行指令,所述计算机可执行指令在被所述物理处理器执行时,使所述物理处理器:
通过基于云的软件分发主机来检测应用程序的用户会话的暂停,所述基于云的软件分发主机向客户端设备提供对所述应用程序的基于云的访问;
响应于所述检测,保存所述用户会话的用户会话状态,其中,所述用户会话状态包括与所述用户会话期间的用户的活动相对应的、所述应用程序的存储状态;
基于与所述用户会话有关的一个或多个会话特性,确定用于保存所述用户会话状态的会话保存时间,其中,所述会话保存时间与用于保持所述用户会话有效的预测时间相对应;
将所保存的所述用户会话状态存储在会话状态缓冲器中至少达所确定的所述会话保存时间;以及
在经过所述会话保存时间后,从所述会话状态缓冲器中删除所述用户会话状态。
9.根据权利要求8所述的系统,其中,所述指令还包括用于以下操作的指令:
在经过所述会话保存时间之前,检测到对所述用户会话的重新连接;以及
从所述会话状态缓冲器中加载所述用户会话状态,以恢复所述用户会话。
10.根据权利要求9所述的系统,其中,所述指令还包括用于以下操作的指令:跟踪所述用户会话的重新连接时间,其中,所述一个或多个会话特性包括所述用户的平均重新连接时间,并且所述会话保存时间还基于所述平均重新连接时间。
11.根据权利要求8所述的系统,其中,所述一个或多个会话特性包括所述应用程序的应用程序特性、所述应用程序的普及度、或所述应用程序的用户的返回率中的至少一者。
12.根据权利要求8所述的系统,其中,所述一个或多个会话特性包括用户的应用程序使用模式、或所述用户的返回率中的至少一者。
13.根据权利要求8所述的系统,其中,所述暂停与以下中的至少一者相对应:所述客户端设备从所述基于云的软件分发主机断开连接、或所述用户将所述应用程序最小化。
14.一种非暂态计算机可读介质,包括一个或多个计算机可执行指令,所述一个或多个计算机可执行指令在被计算设备的至少一个处理器执行时,使所述计算设备:
通过基于云的软件分发主机来检测应用程序的用户会话的暂停,所述基于云的软件分发主机向客户端设备提供对所述应用程序的基于云的访问;
响应于所述检测,保存所述用户会话的用户会话状态,其中,所述用户会话状态包括与所述用户会话期间的用户的活动相对应的、所述应用程序的存储状态;
基于与所述用户会话有关的一个或多个会话特性,确定用于保存所述用户会话状态的会话保存时间,其中,所述会话保存时间与用于保持所述用户会话有效的预测时间相对应;
将所保存的所述用户会话状态存储在会话状态缓冲器中至少达所确定的所述会话保存时间;以及
在经过所述会话保存时间后,从所述会话状态缓冲器中删除所述用户会话状态。
15.根据权利要求14所述的非暂态计算机可读介质,其中,所述指令还包括用于以下操作的指令:
在经过所述会话保存时间之前,检测到对所述用户会话的重新连接;以及
从所述会话状态缓冲器中加载所述用户会话状态,以恢复所述用户会话。
16.根据权利要求15所述的非暂态计算机可读介质,其中,所述指令还包括用于以下操作的指令:跟踪所述用户会话的重新连接时间,其中,所述一个或多个会话特性包括所述用户的平均重新连接时间,并且所述会话保存时间还基于所述平均重新连接时间。
17.根据权利要求14所述的非暂态计算机可读介质,其中,所述一个或多个会话特性包括所述应用程序的应用程序特性、所述应用程序的普及度、或所述应用程序的用户的返回率中的至少一者。
18.根据权利要求14所述的非暂态计算机可读介质,其中,所述一个或多个会话特性包括用户的应用程序使用模式、或所述用户的返回率中的至少一个。
19.根据权利要求14所述的非暂态计算机可读介质,其中,所述暂停与以下中的至少一者相对应:所述客户端设备从所述基于云的软件分发主机断开连接、或所述用户将所述应用程序最小化。
20.根据权利要求14所述的非暂态计算机可读介质,其中,所述应用程序包括视频游戏,并且所述用户会话状态与所述用户在所述视频游戏中的进度相对应。
CN202180073074.6A 2020-10-25 2021-10-23 会话重新连接和动态资源分配 Pending CN116802604A (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US202063105320P 2020-10-25 2020-10-25
US63/105,320 2020-10-25
US202163194821P 2021-05-28 2021-05-28
US63/194,821 2021-05-28
US17/507,310 2021-10-21
US17/507,310 US20220131943A1 (en) 2020-10-25 2021-10-21 Session reconnects and dynamic resource allocation
PCT/US2021/056370 WO2022087500A1 (en) 2020-10-25 2021-10-23 Session reconnects and dynamic resource allocation

Publications (1)

Publication Number Publication Date
CN116802604A true CN116802604A (zh) 2023-09-22

Family

ID=81257183

Family Applications (6)

Application Number Title Priority Date Filing Date
CN202180073109.6A Pending CN116964559A (zh) 2020-10-25 2021-10-23 用于云游戏系统的服务器侧托管环境
CN202180073113.2A Pending CN116802611A (zh) 2020-10-25 2021-10-23 应用程序的安全并发流式传输的系统和方法
CN202180073085.4A Pending CN116802610A (zh) 2020-10-25 2021-10-23 用于分发经编译的着色器的系统和方法
CN202180073074.6A Pending CN116802604A (zh) 2020-10-25 2021-10-23 会话重新连接和动态资源分配
CN202180073114.7A Pending CN116348854A (zh) 2020-10-25 2021-10-23 用于对应用程序进行流式传输的低时延初始化的系统和方法
CN202180073112.8A Pending CN116830084A (zh) 2020-10-25 2021-10-23 用于动态容器网络管理的服务网络方法

Family Applications Before (3)

Application Number Title Priority Date Filing Date
CN202180073109.6A Pending CN116964559A (zh) 2020-10-25 2021-10-23 用于云游戏系统的服务器侧托管环境
CN202180073113.2A Pending CN116802611A (zh) 2020-10-25 2021-10-23 应用程序的安全并发流式传输的系统和方法
CN202180073085.4A Pending CN116802610A (zh) 2020-10-25 2021-10-23 用于分发经编译的着色器的系统和方法

Family Applications After (2)

Application Number Title Priority Date Filing Date
CN202180073114.7A Pending CN116348854A (zh) 2020-10-25 2021-10-23 用于对应用程序进行流式传输的低时延初始化的系统和方法
CN202180073112.8A Pending CN116830084A (zh) 2020-10-25 2021-10-23 用于动态容器网络管理的服务网络方法

Country Status (4)

Country Link
US (7) US20220129295A1 (zh)
EP (6) EP4232902A1 (zh)
CN (6) CN116964559A (zh)
WO (6) WO2022087514A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11921592B2 (en) * 2020-07-20 2024-03-05 Google Llc Restoration of a computing session
US11803413B2 (en) * 2020-12-03 2023-10-31 International Business Machines Corporation Migrating complex legacy applications
US20230116110A1 (en) * 2021-10-08 2023-04-13 BlueStack Systems, Inc. Methods, Systems and Computer Program Products for Selective Routing of Software Instructions Between a Client Device and a Cloud Services Server
CN114996004B (zh) * 2022-05-30 2024-06-28 杭州迪普科技股份有限公司 会话的持续删除的方法和装置
US11984999B2 (en) 2022-09-12 2024-05-14 International Business Machines Corporation Smarter collaborative conferences

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6363409B1 (en) 1995-04-24 2002-03-26 Microsoft Corporation Automatic client/server translation and execution of non-native applications
US7548238B2 (en) * 1997-07-02 2009-06-16 Nvidia Corporation Computer graphics shader systems and methods
US20070174429A1 (en) 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US20100146506A1 (en) * 2008-12-08 2010-06-10 Electronics And Telecommunications Research Institute SYSTEM AND METHOD FOR OFFERING SYSTEM ON DEMAND (SoD) VIRTUAL-MACHINE
US8410994B1 (en) 2010-08-23 2013-04-02 Matrox Graphics Inc. System and method for remote graphics display
KR20170129297A (ko) 2010-09-13 2017-11-24 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 게임 서버
JP5520190B2 (ja) * 2010-10-20 2014-06-11 株式会社ソニー・コンピュータエンタテインメント 画像処理システム、画像処理方法、動画像送信装置、動画像受信装置、プログラム及び情報記憶媒体
JP2012125451A (ja) * 2010-12-16 2012-07-05 Sony Computer Entertainment Inc ゲームシステム、ゲームシステムの制御方法、プログラム及び情報記憶媒体
US9412193B2 (en) * 2011-06-01 2016-08-09 Apple Inc. Run-time optimized shader program
US9773344B2 (en) * 2012-01-11 2017-09-26 Nvidia Corporation Graphics processor clock scaling based on idle time
JP5620433B2 (ja) * 2012-04-30 2014-11-05 泰章 岩井 情報処理システム、情報処理方法
US9152449B2 (en) 2012-07-13 2015-10-06 International Business Machines Corporation Co-location of virtual machines with nested virtualization
DE112013005689T5 (de) * 2012-11-28 2015-09-10 Nvidia Corporation Tragbare Spielekonsole
US20140274408A1 (en) * 2013-03-14 2014-09-18 Zynga Inc. Methods and systems for provisioning a game container within a cloud computing system
US9295915B2 (en) 2013-05-20 2016-03-29 Microsoft Technology Licensing, Llc Game availability in a remote gaming environment
US9451043B2 (en) * 2013-09-13 2016-09-20 Evie Labs, Inc. Remote virtualization of mobile apps
US9304877B2 (en) * 2014-01-24 2016-04-05 International Business Machines Corporation Mobile agent based memory replication
US10296391B2 (en) * 2014-06-30 2019-05-21 Microsoft Technology Licensing, Llc Assigning a player to a machine
US10007965B2 (en) * 2014-12-16 2018-06-26 Intel Corporation Dynamic kernel modification for graphics processing units
JP6526826B2 (ja) * 2015-03-06 2019-06-05 ソニー インタラクティブ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー クラウド上のアプリケーションのための予測的なインスタントプレイ技術
EP3329398A4 (en) 2015-07-30 2018-07-25 Wix.com Ltd. System integrating a mobile device application creation, editing and distribution system with a website design system
US9704270B1 (en) 2015-07-30 2017-07-11 Teradici Corporation Method and apparatus for rasterizing and encoding vector graphics
US10268493B2 (en) 2015-09-22 2019-04-23 Amazon Technologies, Inc. Connection-based resource management for virtual desktop instances
US20170170990A1 (en) * 2015-12-15 2017-06-15 Microsoft Technology Licensing, Llc Scalable Tenant Networks
US10037221B2 (en) * 2015-12-28 2018-07-31 Amazon Technologies, Inc. Management of virtual desktop instance pools
JP2017174038A (ja) 2016-03-23 2017-09-28 富士通株式会社 情報処理システム、情報処理方法およびプログラム
US10972574B2 (en) * 2016-04-27 2021-04-06 Seven Bridges Genomics Inc. Methods and systems for stream-processing of biomedical data
US10049426B2 (en) 2017-01-03 2018-08-14 Qualcomm Incorporated Draw call visibility stream
US10341198B2 (en) 2017-03-17 2019-07-02 Verizon Patent And Licensing Inc. Configuring a back-end container and a corresponding front-end proxy container on a network device
US10491666B2 (en) 2017-04-03 2019-11-26 Sony Interactive Entertainment America Llc Systems and methods for using a distributed game engine
US10838920B2 (en) * 2017-05-05 2020-11-17 Esoptra NV Plug-in function platform and methods
US10610779B2 (en) 2017-06-19 2020-04-07 Sony Interactive Entertainment LLC Methods and systems for scheduling game play of a video game
US10721214B2 (en) 2017-10-18 2020-07-21 Citrix Systems, Inc. Method to track SSL session states for SSL optimization of SaaS based applications
US10668378B2 (en) 2018-01-26 2020-06-02 Valve Corporation Distributing shaders between client machines for precaching
US10560349B2 (en) 2018-01-31 2020-02-11 Salesforce.Com, Inc. Data consistency of policy enforcement for distributed applications
JP7073494B2 (ja) 2018-04-10 2022-05-23 グーグル エルエルシー ゲームレンダリングにおけるメモリ管理
US10848571B2 (en) 2018-09-24 2020-11-24 Citrix Systems, Inc. Systems and methods for consistent enforcement policy across different SaaS applications via embedded browser
US11016793B2 (en) * 2018-11-26 2021-05-25 Red Hat, Inc. Filtering based containerized virtual machine networking
US11077362B2 (en) 2018-12-03 2021-08-03 Sony Interactive Entertainment LLC Machine learning driven resource allocation
US10908771B2 (en) * 2019-01-31 2021-02-02 Rypplzz, Inc. Systems and methods for augmented reality with precise tracking
US10918941B2 (en) 2019-03-27 2021-02-16 Electronic Arts Inc. Predictive execution of distributed game engines
US11297116B2 (en) 2019-12-04 2022-04-05 Roblox Corporation Hybrid streaming
US20210208918A1 (en) 2020-01-07 2021-07-08 Citrix Systems, Inc. Intelligent session timeouts for virtual workspace
US11418852B2 (en) 2020-05-28 2022-08-16 Nvidia Corporation Detecting latency anomalies from pipeline components in cloud-based systems

Also Published As

Publication number Publication date
EP4232901A1 (en) 2023-08-30
WO2022087500A1 (en) 2022-04-28
CN116802611A (zh) 2023-09-22
US20220129295A1 (en) 2022-04-28
WO2022087503A1 (en) 2022-04-28
WO2022087502A1 (en) 2022-04-28
US20220126202A1 (en) 2022-04-28
CN116802610A (zh) 2023-09-22
EP4232899A1 (en) 2023-08-30
WO2022087499A1 (en) 2022-04-28
US11638870B2 (en) 2023-05-02
CN116348854A8 (zh) 2023-09-22
US20220126203A1 (en) 2022-04-28
CN116964559A (zh) 2023-10-27
EP4232897A1 (en) 2023-08-30
CN116348854A (zh) 2023-06-27
US20220129296A1 (en) 2022-04-28
CN116830084A (zh) 2023-09-29
US20220126199A1 (en) 2022-04-28
WO2022087514A1 (en) 2022-04-28
US20230336624A1 (en) 2023-10-19
WO2022087501A1 (en) 2022-04-28
EP4232900A1 (en) 2023-08-30
US20220131943A1 (en) 2022-04-28
EP4232902A1 (en) 2023-08-30
EP4232896A1 (en) 2023-08-30
US11583768B2 (en) 2023-02-21

Similar Documents

Publication Publication Date Title
US20220131943A1 (en) Session reconnects and dynamic resource allocation
US11005934B2 (en) Efficient live-migration of remotely accessed data
US10347013B2 (en) Session idle optimization for streaming server
US10860363B1 (en) Managing virtual machine hibernation state incompatibility with underlying host configurations
CN102314377B (zh) 加速器及其实现支持虚拟机迁移的方法
JP7379669B2 (ja) アプリケーション整合性ポイントインタイムをマークするためのシステム及び方法
US8498966B1 (en) Systems and methods for adaptively performing backup operations
US20180039899A1 (en) Predictive instance suspension and resumption
US9032414B1 (en) Systems and methods for managing system resources allocated for backup validation
US9118520B1 (en) Systems and methods for monitoring application resource usage on mobile computing systems
US9720493B2 (en) Managing access to data on a client device during low-power state
US20110307674A1 (en) Apparatus and method for synchronizing a snapshot image
US9430265B1 (en) System and method for handling I/O timeout deadlines in virtualized systems
EP3625683B1 (en) System and method for load balancing backup data
CN113626263A (zh) Scst存储系统中保持数据一致性的方法及应用
JP5598319B2 (ja) アプリケーションプログラムの動作管理方法、動作管理装置及び動作管理プログラム
US11977785B2 (en) Non-volatile memory device-assisted live migration of virtual machine data
TW201721348A (zh) 系統暫停方法、系統回復方法及應用其之電腦系統
Tahir et al. Hibernation Mechanism in Smartphone Mobile Operating Systems
CN114791789A (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