[go: up one dir, main page]

US20230336624A1 - Persistent storage overlay - Google Patents

Persistent storage overlay Download PDF

Info

Publication number
US20230336624A1
US20230336624A1 US17/507,041 US202117507041A US2023336624A1 US 20230336624 A1 US20230336624 A1 US 20230336624A1 US 202117507041 A US202117507041 A US 202117507041A US 2023336624 A1 US2023336624 A1 US 2023336624A1
Authority
US
United States
Prior art keywords
mobile device
host
cloud gaming
data
gaming application
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.)
Abandoned
Application number
US17/507,041
Inventor
Sakphong Chanbai
Xiaoxing Zhu
Qunshu Zhang
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
Facebook Inc
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 Facebook Inc, Meta Platforms Inc filed Critical Facebook Inc
Priority to US17/507,041 priority Critical patent/US20230336624A1/en
Assigned to FACEBOOK, INC. reassignment FACEBOOK, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CHANBAI, SAKPHONG, ZHANG, Qunshu, ZHU, XIAOXING
Assigned to META PLATFORMS, INC. reassignment META PLATFORMS, INC. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: FACEBOOK, INC.
Publication of US20230336624A1 publication Critical patent/US20230336624A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/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]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/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/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/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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/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 
    • H04L67/38
    • 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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

Definitions

  • FIG. 1 is a flow diagram of an exemplary method for implementing a persistent storage overlay for a cloud hosting platform.
  • FIG. 2 is a block diagram of an exemplary system for implementing a persistent storage overlay for a cloud hosting platform.
  • FIG. 3 is a flow diagram of an exemplary method for utilizing a persistent storage overlay by a mobile device.
  • FIG. 4 is a block diagram of an exemplary system for utilizing a persistent storage overlay by a mobile device.
  • FIG. 5 is a block diagram of an exemplary network implementing persistent storage overlay for a cloud hosting platform.
  • FIG. 6 is a block diagram of an exemplary architecture for a cloud hosting platform.
  • a new session may be created that may normally not preserve files from the user's last session.
  • user devices may need to download a cloud gaming application and all of its updates and install and update the cloud gaming application locally before the application may launch. Additionally, user devices may create a local copy of game save data.
  • the present disclosure is generally directed to a cloud application platform that may incorporate a persistent storage overlay to reduce file distribution time and drastically improve flexibility for game installation, game updates, and game data.
  • a persistent storage overlay service may be provided on a host (e.g., different location or different machine) by using a file system and emulator that allows a mobile device operating system (OS) to directly access a cloud application stored and run on the host.
  • OS mobile device operating system
  • the persistent storage overlay may be implemented by utilizing file system in user mode (FUSE) (e.g., the Linux file system in user mode) to directly map games' files on the host to Android.
  • FUSE file system in user mode
  • Requests for file access may be re-directed by a background service on Android to a service running on the host.
  • the game itself or the game's data may be made available immediately on both sides without copying the data.
  • the host's folders are mapped into the Android OS in such a way that the Android OS recognizes the folders as a cloud application that is already installed.
  • This procedure eliminates the need to install cloud applications on a user's mobile device (e.g., Android or Mac) when the user connects.
  • users write changes to the host directly and the host preserves a mapped folder that includes the changes, thus avoiding the need to maintain a local copy of game save data on the mobile device.
  • delay in application launch may be greatly reduced and the need to create a copy of game data at the mobile device can be avoided.
  • FIGS. 1 - 6 detailed descriptions of systems and methods for persistent storage overlay.
  • Detailed descriptions of an exemplary method and system for implementing a persistent storage overlay for a cloud hosting platform are provided with reference to FIGS. 1 and 2 .
  • Detailed descriptions of an exemplary method and system for utilizing a persistent storage overlay by a mobile device are provided with reference to FIGS. 3 and 4 .
  • Detailed descriptions of an exemplary network implementing persistent storage overlay for a cloud hosting platform are provided with reference to FIG. 5 .
  • FIG. 6 Detailed descriptions of an exemplary architecture for a cloud hosting platform are provided with reference to FIG. 6 .
  • FIG. 1 is a flow diagram of an exemplary computer-implemented method 100 for implementing persistent storage overlay for a cloud hosting platform.
  • the steps shown in FIG. 1 may be performed by any suitable computer-executable code and/or computing system, including the system(s) illustrated in FIGS. 2 and/or 5 .
  • each of the steps shown in FIG. 1 may represent an algorithm whose structure includes and/or is represented by multiple sub-steps, examples of which will be provided in greater detail below.
  • step 110 a method 100 of implementing a persistent storage overlay for a cloud gaming application platform begins at step 110 .
  • the systems described herein may perform step 110 in a variety of ways.
  • step 110 may include providing, by a computer processor of a host of a cloud gaming server, a persistent storage overlay service.
  • the computer processor provides the persistent storage overlay service at least in part by using a file system and an emulator that allows an operating system of a mobile device to directly access the cloud gaming application stored on the host.
  • providing the persistent storage overlay service is accomplished at least in part by using a file system in user mode (FUSE) (e.g., Linux file system in user mode) to directly map the one or more files of the cloud gaming application stored on the host to an operating system (e.g., Android OS) of the mobile device.
  • FUSE file system in user mode
  • Android OS operating system
  • cloud gaming may generally refer, without limitation, to a type of online gaming that runs video games on remote servers and streams them directly to a user's device, or more colloquially, playing a game remotely from a cloud. Cloud gaming may contrast with traditional means of gaming, wherein a game runs locally on a user's video game console, personal computer, or mobile device. Cloud gaming may also be referred to as gaming on demand or gaming-as-a-service.
  • the term “cloud gaming application” may generally refer, without limitation, to a gaming application that may be stored and executed on a remote server as just described.
  • the term “cloud gaming server” may generally refer, without limitation, to a remote server as just described, and more particularly to a host machine as described in greater detail below with reference to FIG. 6 .
  • persistent may generally refer to the characteristic or state of a system that outlives (persists more than) the process that created it. Persistence may be achieved, for example, by storing the state as data in computer data storage. Programs may, thus, transfer data to and from storage devices and provide mappings from native programming-language data structures to storage device data structures.
  • storage may generally refer to one of two types of two major data holding areas in a computer, tablet, or smartphone.
  • Storage often comprises hard drives and solid-state drives (SSDs), which hold programs and data.
  • a primary attribute of storage may be that it is non-volatile, so it retains its content when the power is turned off.
  • random access memory RAM
  • RAM random access memory
  • storage and memory clearly referred to two separate objects, but today they do not because “memory” may refer to either one.
  • RAM chips exist that are non-volatile and they serve as both storage and RAM in remote sensors and similar devices but not as the memory in computers, phones, and tablets.
  • overlay may generally refer to a process of transferring a block of program code or other data into main memory, replacing what is already stored. Overlaying is a programming method that allows programs to be larger than a computer's main memory. For example, overlay virtualization is a method for creating traffic isolation within a multitenancy infrastructure. Using a form of tunneling between isolated network segments, it allows for scalability and ease of use while providing for separation between the virtual network and the underlying physical environment.
  • service may generally refer to software that performs automated tasks, responds to hardware events, or listens for data requests from other software. In a user's operating system, these services are often loaded automatically at startup, and run in the background, without user interaction.
  • host may generally refer to a network host corresponding to a computer or other device connected to a computer network.
  • a host may operate as a server offering information resources, services, and applications to users or other hosts on the network.
  • Hosts may be assigned at least one network address.
  • One type of host may be a host virtual machine (host HVM), which is a virtual machine operated and hosted from a remote cloud server.
  • host virtual machines may be created and hosted entirely on a cloud service provider infrastructure and may be available to remote users over the Internet under systematic access control, defined compute, and I/O resources.
  • file system may generally refer to a rules mechanism that controls how data is stored and retrieved. Without a file system, data placed in a storage medium would be one large body of data with no way to tell where one piece of data stops and the next begins. By separating the data into pieces and giving each piece a name, the data is easily isolated and identified. Taking its name from the way paper-based data management system is named, each group of data is called a “file.” The structure and logic rules used to manage the groups of data and their names is called a “file system.”
  • user mode may generally refer to one of two modes of operation available in many operating systems (e.g., Linux, Windows, etc.).
  • a processor may switch between kernel mode and user mode depending on what type of code is running on the processor. For example, applications may run in user mode and core operating system components may run in kernel mode. While many drivers run in kernel mode, some drivers may run in user mode.
  • User mode may be employed to build efficient virtual machines. Applications run in user mode may be assigned virtual addresses different from one another and different from operating system addresses. When operating in user mode, the processor may be prevented from accessing the operating system files, so these files cannot be altered. Also, applications run in user mode that have different virtual addresses can be prevented from accessing and altering one another.
  • file system operating in user mode may generally refer to a software interface such as Filesystem in USErspace (FUSE).
  • FUSE is a software interface for Unix and Unix-like computer operating systems that lets non-privileged users create their own file systems without editing kernel code. This is achieved by running file system code in user space while the FUSE module provides only a “bridge” to the actual kernel interfaces.
  • FUSE is available for Linux, FreeBSD, OpenBSD, NetBSD (as puffs), OpenSolaris, Minix 3, macOS, and Windows.
  • FUSE is free software originally released under the terms of the GNU General Public License and the GNU Lesser General Public License.
  • the term “emulator” may generally refer to hardware or software that enables one computer system (called the host) to behave like another computer system (called the guest).
  • An emulator typically enables the host system to run software or use peripheral devices designed for the guest system.
  • Emulation may, thus, refer to the ability of a computer program in an electronic device to emulate (or imitate) another program or device.
  • emulation may be a synonym for virtual environment, where a virtual environment can also be referred to as a partition, guest, instance, or container.
  • step 120 may include receiving, by the computer processor from a mobile device, one or more requests for access to one or more files of a cloud gaming application stored on the host.
  • requests may take any suitable form, such as a request to download and install the cloud gaming application, a request to receive game save data, a request to initiate a user session to play the cloud gaming application, a request to write game progress data to a user session stored on the server, etc.
  • the requests are redirected by a background service running on the mobile device to the persistent storage overlay service provided by the host.
  • the term “mobile device” may generally refer to a computer small enough to hold and operate in the hand.
  • any handheld computer device will have an LCD or OLED flatscreen interface, providing a touchscreen interface with digital buttons and keyboard or physical buttons along with a physical keyboard.
  • Many such devices can connect to the Internet and interconnect with other devices such as car entertainment systems or headsets via Wi-Fi, Bluetooth, cellular networks, or near field communication (NFC).
  • NFC near field communication
  • Integrated cameras the ability to place and receive voice and video telephone calls, video games, and Global Positioning System (GPS) capabilities are common. Power is typically provided by a lithium-ion battery.
  • Mobile devices may run mobile operating systems that allow third-party apps specialized for said capabilities to be installed and run.
  • file may generally refer to a collection of data stored in one unit, identified by a filename, and typically stored in a folder along with one or more other files.
  • a file can be a document, picture, audio or video stream, data library, application, or other collection of data. Files can be opened, saved, deleted, and moved to different folders. They can also be transferred across network connections or downloaded from the Internet.
  • background service may generally refer to a service, as already described herein, that runs in a background of a computer, such as a mobile device.
  • a background service may perform an operation that is not directly noticed by the user.
  • a background service may continue to run when the user is not interacting with an application for which the service is configured to perform operations.
  • step 130 may include making, by the computer processor in response to the one or more requests, data of the cloud gaming application available to the host and to the mobile device, without copying the data, in a manner that obviates installation of the cloud gaming application on the mobile device.
  • the systems described herein may make the data of the cloud gaming application available in a variety of ways.
  • making data of the cloud gaming application available to the host and to the mobile device without copying the data may include mapping one or more folders of the host into an operating system of the mobile device in a manner that causes the operating system of the mobile device to recognize the one or more folders of the host as a cloud gaming application that is already installed on the mobile device.
  • making data of the cloud gaming application available may include receiving, by the computer processor, changes written directly from the mobile device. Such changes may take any suitable form, such as user preferences, game progress data, etc.
  • making data of the cloud gaming application available may further include preserving, by the computer processor, a mapped folder that includes the changes, thus avoiding any need to copy game save data.
  • installation may generally refer to the act of making a computer program ready for execution.
  • Installation may refer to the particular configuration of a software or hardware with a view to making it usable with the computer.
  • a soft or digital copy of the piece of software (program) is needed to install it.
  • Installation typically involves code (program) being copied/generated from the installation files to new files on the local computer for easier access by the operating system, creating necessary directories, registering environment variables, providing a separate program for un-installation, etc. Because code is generally copied/generated in multiple locations, uninstallation usually involves more than just erasing the program folder. For example, registry files and other system code may need to be modified or deleted for a complete uninstallation.
  • mapping may generally refer to linking to another computer, share, or device.
  • mapping a folder may involve linking to a shared drive on a network.
  • Mapping a shared drive may, thus, add a folder that has already been shared on a network to a list of drives accessible on a computer or mobile device.
  • Folder generally refers to a virtual location for applications, documents, data, or other sub-folders. Folders help in storing and organizing files and data in the computer. Due to the way folders organize and store data within the file system of the storage media, folders may also be known as file directories or simply directories. Folders may be implemented as pointers to file locations within the file system of the computer.
  • operating system may generally refer to software that supports a computer's basic functions, such as scheduling tasks, executing applications, and controlling peripherals. For hardware functions such as input and output and memory allocation, the operating system may act as an intermediary between programs and the computer hardware.
  • Example types of operating systems include Unix and Unix-like operating systems, BSD and its descendants, macOS, and Microsoft Windows.
  • a persistent storage overlay device may be implemented in any suitable manner.
  • an exemplary system 200 includes at least one physical processor 230 , physical memory 240 comprising computer-executable instructions such as modules 202 , and additional elements 220 , such as cloud gaming application files 222 , persistent storage overlay service 224 , and/or a user session 226 as described herein.
  • persistent storage overlay service 224 may include file system 224 A and emulator 224 B as described herein.
  • the modules 202 When executed by the physical processor 230 , the modules 202 cause physical processor 230 to carry out various operations.
  • service provision module 204 may execute procedures described above with reference to step 110 of method 100 of FIG. 1 .
  • receiver module 206 may execute procedures described above with reference to step 120 of method 100 of FIG. 1 .
  • access module 208 may execute procedures described above with reference to step 130 of method 100 of FIG. 1 .
  • the term “user session” or “session” may refer, without limitation, to a temporary and interactive information interchange between communicating devices, such as a session of activity and/or interactions of a client referencing a resource that may be tracked by the resource's host.
  • a website host may track a user's activity during a session with a website provided by the website host.
  • a user session may be used by a host to maintain a user specific state, persistent objects, authenticated user identities, etc., and may further facilitate communication between the client and host by remembering previous interactions/communications.
  • the state of the user session may be maintained in a memory during the session and as such, may be stored to a storage device and later retrieved.
  • the user session may be paused, the session state stored, and the user session may be restored by retrieving the stored session state.
  • a user session may be viewed in certain contexts as game progress data and/or game save data.
  • a method 300 of utilizing a persistent storage overlay service by a mobile device begins at step 310 , which includes transmitting, by a computer processor of a mobile device to a persistent storage overlay service provided by a host of a cloud gaming server, one or more requests for access to one or more files of a cloud gaming application stored on the host.
  • the requests are redirected by a background service running on the mobile device to the persistent overlay service provided by the host.
  • the persistent storage overlay is provided by using a file system and an emulator that allows an operating system of the mobile device to directly access the cloud gaming application stored on the host.
  • the persistent storage overlay service is provided at least in part by using a file system in user mode (FUSE) to directly map the one or more files of the cloud gaming application stored on the host to an Android operating system of the mobile device.
  • FUSE file system in user mode
  • Processing may proceed from step 310 to step 320 , which may include receiving access, by the computer processor and from the host, to data of the cloud gaming application, without receiving a copy the data, in a manner that obviates installation of the cloud gaming application on the mobile device.
  • folders of the host are mapped into an operating system of the mobile device.
  • the folders may be mapped in a manner that causes the operating system of the mobile device to recognize the folders of the host as a cloud gaming application that is already installed on the mobile device.
  • Processing may proceed from step 320 to step 330 , which may include writing changes, by the computer processor of the mobile device, directly to a folder of the host in a manner that obviates creating a copy of game save data on the mobile device.
  • the host may be configured to preserve a mapped folder that includes the changes, thus avoiding any need to copy game save data at the mobile device.
  • an exemplary system 400 includes at least one physical processor 430 , physical memory 440 comprising computer-executable instructions such as modules 402 , and additional elements 420 , such as background service 422 .
  • the modules 402 When executed by the physical processor 430 , the modules 402 cause physical processor 430 to carry out various operations.
  • transmitter module 404 may execute procedures described above with reference to step 310 of method 300 of FIG. 3 .
  • receiver module 406 may execute procedures described above with reference to step 320 of method 300 of FIG. 3 .
  • write module 408 may execute procedures described above with reference to step 330 of method 300 of FIG. 3 .
  • Example system 200 in FIG. 2 and example system 400 in FIG. 4 may be implemented in a variety of ways.
  • all or a portion of example systems 200 and 400 may represent portions of example system 500 in FIG. 5 .
  • system 500 may include a computing device 502 in communication with a server 506 via a network 504 .
  • all or a portion of the functionality of modules 202 may be performed by server 506 and/or any other suitable computing system.
  • all or a portion of the functionality of modules 402 may be performed by computing device 502 and/or any other suitable computing system.
  • modules 202 and/or 402 may cause server 506 to provide computing device 502 direct read and/or write access to cloud gaming file data stored on server 506 .
  • FIG. 6 illustrates an exemplary cloud-based software distribution platform 600 .
  • the platform 600 may include a host 606 , a network 604 (which may correspond to network 504 ), and computing devices 602 and 603 .
  • Host 606 which may correspond to server 506 , may include containers 640 and 642 , which may respectively include a virtual machine 630 and a virtual machine 632 .
  • the term “virtualization environment” may refer to an isolated application environment that may virtualize at least some aspects of the application environment such that an application may interface with the virtualized aspects as if running on the application's native environment.
  • Examples of virtualization environments include, without limitation, containers and virtual machines (“VM”).
  • the term “container” may refer to an isolated application environment that virtualizes at least an operating system (“OS”) of the base host machine by sharing a system or OS kernel with the host machine. For example, if the base host machine runs Windows (or other desktop OS), the container may also run Windows (or other desktop OS) by sharing the OS kernel such that the container may not require a complete set of OS binaries and libraries.
  • OS operating system
  • the term “virtual machine” may refer to an isolated application environment that virtualizes hardware as well as an OS. Because a VM may virtualize hardware, an OS for the VM may not be restricted by the base host machine OS. For example, even if the base host machine is running Windows (or another desktop OS), a VM on the base host machine may be configured to run Android (or other mobile OS) by emulating mobile device hardware. In other examples, other combinations of OSes may be used.
  • VM 630 may run an application 620 and VM 632 may run an application 622 .
  • Host 606 may utilize nested virtualization environments (e.g., VM 630 running in container 640 and VM 632 running in container 642 ) to more efficiently manage virtualization environments. For instance, as a number of VMs are initiated and/or closed the nested virtualization may facilitate management of virtualization environments for various types of VMs as well as more efficiently scale the number of VMs running concurrently. Certain aspects which may be global across certain VMs may be better managed via containers.
  • Computing device 602 which may correspond to an instance of computing device 502 , may access data of application 620 via network 604 and background service 624 .
  • Computing device 603 which may correspond to another instance of computing device 302 , may access data of application 622 via network 604 and background service 626 .
  • host 606 may maintain individual sessions (e.g., user session 226 ) for each of application 620 with computing device 602 and application 622 with computing device 603 .
  • Computing devices 602 and 603 may write directly to user sessions maintained by their respective hosts, thus avoiding the need for the user devices 602 and 603 to create and maintain their own user sessions.
  • FIG. 6 illustrates a virtualization environment with one nested level (e.g., VM 630 running in container 640 or VM 632 running in container 642 ), in other embodiments, the virtualization environment may include additional levels of nesting.
  • application 620 may run in another VM or container running in VM 630 .
  • FIG. 6 illustrates a single VM per container, in other embodiments there may be more than one nested virtualization environment per base virtualization environment.
  • a persistent storage overlay service may be provided on a host (e.g., different location or different machine) by using a file system and emulator that allows a mobile device operating system (OS) to directly access a cloud application stored and run on the host.
  • OS mobile device operating system
  • the persistent storage overlay may be implemented by utilizing file system in user mode (FUSE) (e.g., the Linux file system in user mode) to directly map games' files on the host to Android. Requests for file access may be re-directed by a background service on Android to a service running on the host.
  • FUSE file system in user mode
  • the game itself or the game's data may be made available immediately on both sides without copying the data.
  • the host's folders are mapped into the Android OS in such a way that the Android OS recognizes the folders as a cloud application that is already installed.
  • This procedure eliminates the need to install cloud applications on a user's mobile device (e.g., Android or Mac) when the user connects.
  • users write changes to the host directly and the host preserves a mapped folder that includes the changes, thus avoiding the need to maintain a local copy of game save data on the mobile device.
  • delay in application launch may be greatly reduced and the need to create a copy of game data at the mobile device can be avoided.
  • Example 1 A computer-implemented method comprising: providing, by a computer processor of a host of a cloud gaming server, a persistent storage overlay service;
  • Example 2 the method of example 1, wherein the computer processor provides the persistent storage overlay service at least in part by using a file system and an emulator that allows an operating system of a mobile device to directly access the cloud gaming application stored on the host.
  • Example 3 The method of example 1 or 2, wherein providing the persistent storage overlay service is accomplished at least in part by using a file system in user mode (FUSE) to directly map the one or more files of the cloud gaming application stored on the host to an Android operating system of the mobile device.
  • FUSE file system in user mode
  • Example 4 The method of any of examples 1-3, wherein the requests are redirected by a background service running on the mobile device to the persistent storage overlay service provided by the host.
  • Example 5 The method of any of examples 1-4, wherein making data of the cloud gaming application available to the host and to the mobile device without copying the data includes mapping one or more folders of the host into an operating system of the mobile device in a manner that causes the operating system of the mobile device to recognize the one or more folders of the host as a cloud gaming application that is already installed on the mobile device.
  • Example 6 The method of any of examples 1-5, wherein making data of the cloud gaming application available includes receiving, by the computer processor, changes written directly from the mobile device.
  • Example 7 The method of any of examples 1-6, wherein making data of the cloud gaming application available further includes preserving, by the computer processor, a mapped folder that includes the changes, thus avoiding any need to copy game save data.
  • Example 8 A system comprising: at least one physical processor of a host of a cloud gaming server; physical memory comprising computer-executable instructions that, when executed by the physical processor, cause the physical processor to: provide a persistent storage overlay service; receive, from a mobile device, one or more requests for access to one or more files of a cloud gaming application stored on the host; and make, in response to the one or more requests, data of the cloud gaming application available to the host and to the mobile device, without copying the data, in a manner that obviates installation of the cloud gaming application on the mobile device.
  • Example 9 The system of example 8, wherein the physical processor provides the persistent storage overlay service at least in part by using a file system and an emulator that allows an operating system of a mobile device to directly access the cloud gaming application stored on the host.
  • Example 10 A non-transitory computer-readable medium comprising one or more computer-executable instructions that, when executed by at least one processor of a computing device of a host of a cloud gaming server, cause the computing device to: provide a persistent storage overlay service; receive, from a mobile device, one or more requests for access to one or more files of a cloud gaming application stored on the host; and make, in response to the one or more requests, data of the cloud gaming application available to the host and to the mobile device, without copying the data, in a manner that obviates installation of the cloud gaming application on the mobile device.
  • Example 11 A computer-implemented method comprising: transmitting, by a computer processor of a mobile device to a persistent storage overlay service provided by a host of a cloud gaming server, one or more requests for access to one or more files of a cloud gaming application stored on the host; receiving access, by the computer processor and from the host, to data of the cloud gaming application, without receiving a copy the data, in a manner that obviates installation of the cloud gaming application on the mobile device; and writing changes, by the computer processor of the mobile device, directly to a folder of the host in a manner that obviates creating a copy of game save data on the mobile device.
  • Example 12 The method of example 11, wherein the persistent storage overlay is provided by using a file system and an emulator that allows an operating system of the mobile device to directly access the cloud gaming application stored on the host.
  • Example 13 The method of any of examples 11 or 12, wherein the persistent storage overlay service is provided at least in part by using a file system in user mode (FUSE) to directly map the one or more files of the cloud gaming application stored on the host to an Android operating system of the mobile device.
  • FUSE file system in user mode
  • Example 14 The method of any of examples 11-13, wherein the requests are redirected by a background service running on the mobile device to the persistent overlay service provided by the host.
  • Example 15 The method of any of examples 11-14, wherein folders of the host are mapped into an operating system of the mobile device.
  • Example 16 The method of any of examples 11-15, wherein the folders are mapped in a manner that causes the operating system of the mobile device to recognize the folders of the host as a cloud gaming application that is already installed on the mobile device.
  • Example 17 The method of any of examples 11-16, wherein the host is configured to preserve a mapped folder that includes the changes, thus avoiding any need to copy game save data.
  • Example 18 A system comprising: at least one physical processor of a mobile device; physical memory comprising computer-executable instructions that, when executed by the physical processor, cause the physical processor to: transmit, to a persistent storage overlay service provided by a host of a cloud gaming server, one or more requests for access to one or more files of a cloud gaming application stored on the host; receive access, from the host, to data of the cloud gaming application, without receiving a copy the data, in a manner that obviates installation of the cloud gaming application on the mobile device; and write changes directly to a folder of the host in a manner that obviates creating a copy of game save data on the mobile device.
  • Example 19 The system of example 18, wherein the persistent storage overlay is provided by using a file system and an emulator that allows an operating system of the mobile device to directly access the cloud gaming application stored on the host.
  • Example 20 A non-transitory computer-readable medium comprising one or more computer-executable instructions that, when executed by at least one processor of a mobile device, cause the computing device to: transmit, to a persistent storage overlay service provided by a host of a cloud gaming server, one or more requests for access to one or more files of a cloud gaming application stored on the host; receive access, from the host, to data of the cloud gaming application, without receiving a copy the data, in a manner that obviates installation of the cloud gaming application on the mobile device; and write changes directly to a folder of the host in a manner that obviates creating a copy of game save data on the mobile device.
  • computing devices and systems described and/or illustrated herein broadly represent any type or form of computing device or system capable of executing computer-readable instructions, such as those contained within the modules described herein.
  • these computing device(s) may each include at least one memory device and at least one physical processor.
  • the term “memory device” generally refers to any type or form of volatile or non-volatile storage device or medium capable of storing data and/or computer-readable instructions.
  • a memory device may store, load, and/or maintain one or more of the modules described herein. Examples of memory devices include, without limitation, Random Access Memory (RAM), Read Only Memory (ROM), flash memory, Hard Disk Drives (HDDs), Solid-State Drives (SSDs), optical disk drives, caches, variations or combinations of one or more of the same, or any other suitable storage memory.
  • RAM Random Access Memory
  • ROM Read Only Memory
  • HDDs Hard Disk Drives
  • SSDs Solid-State Drives
  • optical disk drives caches, variations or combinations of one or more of the same, or any other suitable storage memory.
  • the term “physical processor” generally refers to any type or form of hardware-implemented processing unit capable of interpreting and/or executing computer-readable instructions.
  • a physical processor may access and/or modify one or more modules stored in the above-described memory device.
  • Examples of physical processors include, without limitation, microprocessors, microcontrollers, Central Processing Units (CPUs), Field-Programmable Gate Arrays (FPGAs) that implement softcore processors, Application-Specific Integrated Circuits (ASICs), portions of one or more of the same, variations or combinations of one or more of the same, or any other suitable physical processor.
  • modules described and/or illustrated herein may represent portions of a single module or application.
  • one or more of these modules may represent one or more software applications or programs that, when executed by a computing device, may cause the computing device to perform one or more tasks.
  • one or more of the modules described and/or illustrated herein may represent modules stored and configured to run on one or more of the computing devices or systems described and/or illustrated herein.
  • One or more of these modules may also represent all or portions of one or more special-purpose computers configured to perform one or more tasks.
  • one or more of the modules described herein may transform data, physical devices, and/or representations of physical devices from one form to another.
  • one or more of the modules recited herein may receive session data to be transformed, transform the session data, output a result of the transformation to manage session data, use the result of the transformation to maintain the session data, and store the result of the transformation to store the session data.
  • one or more of the modules recited herein may transform a processor, volatile memory, non-volatile memory, and/or any other portion of a physical computing device from one form to another by executing on the computing device, storing data on the computing device, and/or otherwise interacting with the computing device.
  • the term “computer-readable medium” generally refers to any form of device, carrier, or medium capable of storing or carrying computer-readable instructions.
  • Examples of computer-readable media include, without limitation, transmission-type media, such as carrier waves, and non-transitory-type media, such as magnetic-storage media (e.g., hard disk drives, tape drives, and floppy disks), optical-storage media (e.g., Compact Disks (CDs), Digital Video Disks (DVDs), and BLU-RAY disks), electronic-storage media (e.g., solid-state drives and flash media), and other distribution systems.
  • transmission-type media such as carrier waves
  • non-transitory-type media such as magnetic-storage media (e.g., hard disk drives, tape drives, and floppy disks), optical-storage media (e.g., Compact Disks (CDs), Digital Video Disks (DVDs), and BLU-RAY disks), electronic-storage media (e.g., solid-state drives

Landscapes

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

Abstract

The disclosed computer-implemented methods may implement a persistent storage overlay for a cloud gaming application platform. For example, a host of a cloud gaming server, may provide a persistent storage overlay service, receive, from a mobile device, requests for access to one or more files of a cloud gaming application stored on the host, and respond by making data of the cloud gaming application available to the host and to the mobile device, without copying the data, in a manner that obviates installation of the cloud gaming application on the mobile device. The mobile device may also write changes directly to a folder of the host in a manner that obviates creating a copy of game save data on the mobile device.

Description

    CROSS REFERENCE TO RELATED APPLICATIONS
  • This application claims the benefit of U.S. Provisional Application No. 63/105,320, filed 25 Oct. 2020, and U.S. Provisional Application No. 63/194,821, filed 28 May 2021, the disclosures of each of which are incorporated, in their entirety, by this reference. Co-pending U.S. application Ser. No. 17/506,640, filed 20 Oct. 2021, is incorporated, in its entirety, by this reference.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The accompanying drawings illustrate a number of exemplary embodiments and are a part of the specification. Together with the following description, these drawings demonstrate and explain various principles of the present disclosure.
  • FIG. 1 is a flow diagram of an exemplary method for implementing a persistent storage overlay for a cloud hosting platform.
  • FIG. 2 is a block diagram of an exemplary system for implementing a persistent storage overlay for a cloud hosting platform.
  • FIG. 3 is a flow diagram of an exemplary method for utilizing a persistent storage overlay by a mobile device.
  • FIG. 4 is a block diagram of an exemplary system for utilizing a persistent storage overlay by a mobile device.
  • FIG. 5 is a block diagram of an exemplary network implementing persistent storage overlay for a cloud hosting platform.
  • FIG. 6 is a block diagram of an exemplary architecture for a cloud hosting platform.
  • Throughout the drawings, identical reference characters and descriptions indicate similar, but not necessarily identical, elements. While the exemplary embodiments described herein are susceptible to various modifications and alternative forms, specific embodiments have been shown by way of example in the drawings and will be described in detail herein. However, the exemplary embodiments described herein are not intended to be limited to the particular forms disclosed. Rather, the present disclosure covers all modifications, equivalents, and alternatives falling within the scope of the appended claims.
  • DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS
  • For security reasons as well as managing session at scale, every time a user connects to a cloud application platform, a new session may be created that may normally not preserve files from the user's last session. As a result, user devices may need to download a cloud gaming application and all of its updates and install and update the cloud gaming application locally before the application may launch. Additionally, user devices may create a local copy of game save data.
  • The present disclosure is generally directed to a cloud application platform that may incorporate a persistent storage overlay to reduce file distribution time and drastically improve flexibility for game installation, game updates, and game data. A persistent storage overlay service may be provided on a host (e.g., different location or different machine) by using a file system and emulator that allows a mobile device operating system (OS) to directly access a cloud application stored and run on the host. For example, on an Android platform, the persistent storage overlay may be implemented by utilizing file system in user mode (FUSE) (e.g., the Linux file system in user mode) to directly map games' files on the host to Android. Requests for file access may be re-directed by a background service on Android to a service running on the host. Subsequently, the game itself or the game's data may be made available immediately on both sides without copying the data. Thus, the host's folders are mapped into the Android OS in such a way that the Android OS recognizes the folders as a cloud application that is already installed. This procedure eliminates the need to install cloud applications on a user's mobile device (e.g., Android or Mac) when the user connects. Additionally, users write changes to the host directly and the host preserves a mapped folder that includes the changes, thus avoiding the need to maintain a local copy of game save data on the mobile device. As a result, delay in application launch may be greatly reduced and the need to create a copy of game data at the mobile device can be avoided.
  • Features from any of the embodiments described herein may be used in combination with one another in accordance with the general principles described herein. These and other embodiments, features, and advantages will be more fully understood upon reading the following detailed description in conjunction with the accompanying drawings and claims.
  • The following will provide, with reference to FIGS. 1-6 , detailed descriptions of systems and methods for persistent storage overlay. Detailed descriptions of an exemplary method and system for implementing a persistent storage overlay for a cloud hosting platform are provided with reference to FIGS. 1 and 2 . Detailed descriptions of an exemplary method and system for utilizing a persistent storage overlay by a mobile device are provided with reference to FIGS. 3 and 4 . Detailed descriptions of an exemplary network implementing persistent storage overlay for a cloud hosting platform are provided with reference to FIG. 5 . Detailed descriptions of an exemplary architecture for a cloud hosting platform are provided with reference to FIG. 6 .
  • FIG. 1 is a flow diagram of an exemplary computer-implemented method 100 for implementing persistent storage overlay for a cloud hosting platform. The steps shown in FIG. 1 may be performed by any suitable computer-executable code and/or computing system, including the system(s) illustrated in FIGS. 2 and/or 5 . In one example, each of the steps shown in FIG. 1 may represent an algorithm whose structure includes and/or is represented by multiple sub-steps, examples of which will be provided in greater detail below.
  • As illustrated in FIG. 1 , a method 100 of implementing a persistent storage overlay for a cloud gaming application platform begins at step 110. The systems described herein may perform step 110 in a variety of ways. In one example, step 110 may include providing, by a computer processor of a host of a cloud gaming server, a persistent storage overlay service. In some implementations, the computer processor provides the persistent storage overlay service at least in part by using a file system and an emulator that allows an operating system of a mobile device to directly access the cloud gaming application stored on the host. In additional or alternative implementations, providing the persistent storage overlay service is accomplished at least in part by using a file system in user mode (FUSE) (e.g., Linux file system in user mode) to directly map the one or more files of the cloud gaming application stored on the host to an operating system (e.g., Android OS) of the mobile device.
  • As used herein, the term “cloud gaming” may generally refer, without limitation, to a type of online gaming that runs video games on remote servers and streams them directly to a user's device, or more colloquially, playing a game remotely from a cloud. Cloud gaming may contrast with traditional means of gaming, wherein a game runs locally on a user's video game console, personal computer, or mobile device. Cloud gaming may also be referred to as gaming on demand or gaming-as-a-service. Thus, the term “cloud gaming application” may generally refer, without limitation, to a gaming application that may be stored and executed on a remote server as just described. Likewise, the term “cloud gaming server” may generally refer, without limitation, to a remote server as just described, and more particularly to a host machine as described in greater detail below with reference to FIG. 6 .
  • As used herein, the term “persistent” may generally refer to the characteristic or state of a system that outlives (persists more than) the process that created it. Persistence may be achieved, for example, by storing the state as data in computer data storage. Programs may, thus, transfer data to and from storage devices and provide mappings from native programming-language data structures to storage device data structures.
  • As used herein, the term “storage” may generally refer to one of two types of two major data holding areas in a computer, tablet, or smartphone. Storage often comprises hard drives and solid-state drives (SSDs), which hold programs and data. A primary attribute of storage may be that it is non-volatile, so it retains its content when the power is turned off. In contrast, random access memory (RAM), which is the other one of the two major holding areas, is typically volatile, meaning that it loses all of its content when the power is turned off. In the past, storage and memory clearly referred to two separate objects, but today they do not because “memory” may refer to either one. RAM chips exist that are non-volatile and they serve as both storage and RAM in remote sensors and similar devices but not as the memory in computers, phones, and tablets.
  • As used herein, the term “overlay” may generally refer to a process of transferring a block of program code or other data into main memory, replacing what is already stored. Overlaying is a programming method that allows programs to be larger than a computer's main memory. For example, overlay virtualization is a method for creating traffic isolation within a multitenancy infrastructure. Using a form of tunneling between isolated network segments, it allows for scalability and ease of use while providing for separation between the virtual network and the underlying physical environment.
  • As used herein, the term “service” may generally refer to software that performs automated tasks, responds to hardware events, or listens for data requests from other software. In a user's operating system, these services are often loaded automatically at startup, and run in the background, without user interaction.
  • As used herein, the term “host” may generally refer to a network host corresponding to a computer or other device connected to a computer network. A host may operate as a server offering information resources, services, and applications to users or other hosts on the network. Hosts may be assigned at least one network address. One type of host may be a host virtual machine (host HVM), which is a virtual machine operated and hosted from a remote cloud server. Host virtual machines may be created and hosted entirely on a cloud service provider infrastructure and may be available to remote users over the Internet under systematic access control, defined compute, and I/O resources.
  • As used herein, the term “file system” may generally refer to a rules mechanism that controls how data is stored and retrieved. Without a file system, data placed in a storage medium would be one large body of data with no way to tell where one piece of data stops and the next begins. By separating the data into pieces and giving each piece a name, the data is easily isolated and identified. Taking its name from the way paper-based data management system is named, each group of data is called a “file.” The structure and logic rules used to manage the groups of data and their names is called a “file system.”
  • As used herein, the term “user mode” may generally refer to one of two modes of operation available in many operating systems (e.g., Linux, Windows, etc.). A processor may switch between kernel mode and user mode depending on what type of code is running on the processor. For example, applications may run in user mode and core operating system components may run in kernel mode. While many drivers run in kernel mode, some drivers may run in user mode. User mode may be employed to build efficient virtual machines. Applications run in user mode may be assigned virtual addresses different from one another and different from operating system addresses. When operating in user mode, the processor may be prevented from accessing the operating system files, so these files cannot be altered. Also, applications run in user mode that have different virtual addresses can be prevented from accessing and altering one another.
  • As used herein, the term “file system operating in user mode” may generally refer to a software interface such as Filesystem in USErspace (FUSE). FUSE is a software interface for Unix and Unix-like computer operating systems that lets non-privileged users create their own file systems without editing kernel code. This is achieved by running file system code in user space while the FUSE module provides only a “bridge” to the actual kernel interfaces. FUSE is available for Linux, FreeBSD, OpenBSD, NetBSD (as puffs), OpenSolaris, Minix 3, macOS, and Windows. FUSE is free software originally released under the terms of the GNU General Public License and the GNU Lesser General Public License.
  • As used herein, the term “emulator” may generally refer to hardware or software that enables one computer system (called the host) to behave like another computer system (called the guest). An emulator typically enables the host system to run software or use peripheral devices designed for the guest system. Emulation may, thus, refer to the ability of a computer program in an electronic device to emulate (or imitate) another program or device. In server virtualization, emulation may be a synonym for virtual environment, where a virtual environment can also be referred to as a partition, guest, instance, or container.
  • Processing may proceed from step 110 to step 120. The systems described herein may perform step 120 in any suitable manner. In one example, step 120 may include receiving, by the computer processor from a mobile device, one or more requests for access to one or more files of a cloud gaming application stored on the host. Such requests may take any suitable form, such as a request to download and install the cloud gaming application, a request to receive game save data, a request to initiate a user session to play the cloud gaming application, a request to write game progress data to a user session stored on the server, etc. In some implementations, the requests are redirected by a background service running on the mobile device to the persistent storage overlay service provided by the host.
  • As used herein, the term “mobile device” may generally refer to a computer small enough to hold and operate in the hand. Typically, any handheld computer device will have an LCD or OLED flatscreen interface, providing a touchscreen interface with digital buttons and keyboard or physical buttons along with a physical keyboard. Many such devices can connect to the Internet and interconnect with other devices such as car entertainment systems or headsets via Wi-Fi, Bluetooth, cellular networks, or near field communication (NFC). Integrated cameras, the ability to place and receive voice and video telephone calls, video games, and Global Positioning System (GPS) capabilities are common. Power is typically provided by a lithium-ion battery. Mobile devices may run mobile operating systems that allow third-party apps specialized for said capabilities to be installed and run.
  • As used herein, the term “file” may generally refer to a collection of data stored in one unit, identified by a filename, and typically stored in a folder along with one or more other files. A file can be a document, picture, audio or video stream, data library, application, or other collection of data. Files can be opened, saved, deleted, and moved to different folders. They can also be transferred across network connections or downloaded from the Internet.
  • As used herein, the term “background service” may generally refer to a service, as already described herein, that runs in a background of a computer, such as a mobile device. A background service may perform an operation that is not directly noticed by the user. A background service may continue to run when the user is not interacting with an application for which the service is configured to perform operations.
  • Processing may proceed from step 120 to step 130. The systems described herein may perform step 130 in any suitable manner. For example, step 130 may include making, by the computer processor in response to the one or more requests, data of the cloud gaming application available to the host and to the mobile device, without copying the data, in a manner that obviates installation of the cloud gaming application on the mobile device. The systems described herein may make the data of the cloud gaming application available in a variety of ways. For example, in some implementations, making data of the cloud gaming application available to the host and to the mobile device without copying the data may include mapping one or more folders of the host into an operating system of the mobile device in a manner that causes the operating system of the mobile device to recognize the one or more folders of the host as a cloud gaming application that is already installed on the mobile device. In additional or alternative implementations, making data of the cloud gaming application available may include receiving, by the computer processor, changes written directly from the mobile device. Such changes may take any suitable form, such as user preferences, game progress data, etc. In some of these implementations, making data of the cloud gaming application available may further include preserving, by the computer processor, a mapped folder that includes the changes, thus avoiding any need to copy game save data.
  • As used herein, the term “installation” may generally refer to the act of making a computer program ready for execution. Installation may refer to the particular configuration of a software or hardware with a view to making it usable with the computer. A soft or digital copy of the piece of software (program) is needed to install it. Installation typically involves code (program) being copied/generated from the installation files to new files on the local computer for easier access by the operating system, creating necessary directories, registering environment variables, providing a separate program for un-installation, etc. Because code is generally copied/generated in multiple locations, uninstallation usually involves more than just erasing the program folder. For example, registry files and other system code may need to be modified or deleted for a complete uninstallation.
  • As used herein, the term “mapping” may generally refer to linking to another computer, share, or device. For example, mapping a folder may involve linking to a shared drive on a network. Mapping a shared drive may, thus, add a folder that has already been shared on a network to a list of drives accessible on a computer or mobile device.
  • As used herein, the term “folder” generally refers to a virtual location for applications, documents, data, or other sub-folders. Folders help in storing and organizing files and data in the computer. Due to the way folders organize and store data within the file system of the storage media, folders may also be known as file directories or simply directories. Folders may be implemented as pointers to file locations within the file system of the computer.
  • As used herein, the term “operating system” may generally refer to software that supports a computer's basic functions, such as scheduling tasks, executing applications, and controlling peripherals. For hardware functions such as input and output and memory allocation, the operating system may act as an intermediary between programs and the computer hardware. Example types of operating systems include Unix and Unix-like operating systems, BSD and its descendants, macOS, and Microsoft Windows.
  • A persistent storage overlay device may be implemented in any suitable manner. Turning to FIG. 2 , an exemplary system 200 includes at least one physical processor 230, physical memory 240 comprising computer-executable instructions such as modules 202, and additional elements 220, such as cloud gaming application files 222, persistent storage overlay service 224, and/or a user session 226 as described herein. In some implementations, persistent storage overlay service 224 may include file system 224A and emulator 224B as described herein. When executed by the physical processor 230, the modules 202 cause physical processor 230 to carry out various operations. For example, service provision module 204 may execute procedures described above with reference to step 110 of method 100 of FIG. 1 . Additionally, receiver module 206 may execute procedures described above with reference to step 120 of method 100 of FIG. 1 . Also, access module 208 may execute procedures described above with reference to step 130 of method 100 of FIG. 1 .
  • As used herein, the term “user session” or “session” may refer, without limitation, to a temporary and interactive information interchange between communicating devices, such as a session of activity and/or interactions of a client referencing a resource that may be tracked by the resource's host. For example, a website host may track a user's activity during a session with a website provided by the website host. A user session may be used by a host to maintain a user specific state, persistent objects, authenticated user identities, etc., and may further facilitate communication between the client and host by remembering previous interactions/communications. The state of the user session may be maintained in a memory during the session and as such, may be stored to a storage device and later retrieved. Thus, the user session may be paused, the session state stored, and the user session may be restored by retrieving the stored session state. A user session may be viewed in certain contexts as game progress data and/or game save data.
  • As illustrated in FIG. 3 , a method 300 of utilizing a persistent storage overlay service by a mobile device begins at step 310, which includes transmitting, by a computer processor of a mobile device to a persistent storage overlay service provided by a host of a cloud gaming server, one or more requests for access to one or more files of a cloud gaming application stored on the host. In some implementations, the requests are redirected by a background service running on the mobile device to the persistent overlay service provided by the host. In some implementations, the persistent storage overlay is provided by using a file system and an emulator that allows an operating system of the mobile device to directly access the cloud gaming application stored on the host. In additional or alternative implementations, the persistent storage overlay service is provided at least in part by using a file system in user mode (FUSE) to directly map the one or more files of the cloud gaming application stored on the host to an Android operating system of the mobile device.
  • Processing may proceed from step 310 to step 320, which may include receiving access, by the computer processor and from the host, to data of the cloud gaming application, without receiving a copy the data, in a manner that obviates installation of the cloud gaming application on the mobile device. In some implementations, folders of the host are mapped into an operating system of the mobile device. For example, the folders may be mapped in a manner that causes the operating system of the mobile device to recognize the folders of the host as a cloud gaming application that is already installed on the mobile device.
  • Processing may proceed from step 320 to step 330, which may include writing changes, by the computer processor of the mobile device, directly to a folder of the host in a manner that obviates creating a copy of game save data on the mobile device. In some implementations, the host may be configured to preserve a mapped folder that includes the changes, thus avoiding any need to copy game save data at the mobile device.
  • A mobile device that utilizes the persistent storage overlay service may be implemented in any suitable manner. Turning to FIG. 4 , an exemplary system 400 includes at least one physical processor 430, physical memory 440 comprising computer-executable instructions such as modules 402, and additional elements 420, such as background service 422. Unlike previous mobile devices, no user session is included in the additional elements 420 because the mobile device may write directly to user session 226 of FIG. 2 . When executed by the physical processor 430, the modules 402 cause physical processor 430 to carry out various operations. For example, transmitter module 404 may execute procedures described above with reference to step 310 of method 300 of FIG. 3 . Additionally, receiver module 406 may execute procedures described above with reference to step 320 of method 300 of FIG. 3 . Also, write module 408 may execute procedures described above with reference to step 330 of method 300 of FIG. 3 .
  • Example system 200 in FIG. 2 and example system 400 in FIG. 4 may be implemented in a variety of ways. For example, all or a portion of example systems 200 and 400 may represent portions of example system 500 in FIG. 5 . As shown in FIG. 5 , system 500 may include a computing device 502 in communication with a server 506 via a network 504. In one example, all or a portion of the functionality of modules 202 may be performed by server 506 and/or any other suitable computing system. In another example, all or a portion of the functionality of modules 402 may be performed by computing device 502 and/or any other suitable computing system. As will be described in greater detail below, one or more of modules 202 from FIGS. 2 and/or 402 from FIG. 4 may, when executed by at least one processor of computing device 502 and/or server 506, enable computing device 502 and/or server 506 to implement and/or utilize persistent storage overlay. For example, and as will be described in greater detail below, one or more of modules 202 and/or 402 may cause server 506 to provide computing device 502 direct read and/or write access to cloud gaming file data stored on server 506.
  • FIG. 6 illustrates an exemplary cloud-based software distribution platform 600. The platform 600 may include a host 606, a network 604 (which may correspond to network 504), and computing devices 602 and 603. Host 606, which may correspond to server 506, may include containers 640 and 642, which may respectively include a virtual machine 630 and a virtual machine 632.
  • In some embodiments, the term “virtualization environment” may refer to an isolated application environment that may virtualize at least some aspects of the application environment such that an application may interface with the virtualized aspects as if running on the application's native environment. Examples of virtualization environments include, without limitation, containers and virtual machines (“VM”). In some embodiments, the term “container” may refer to an isolated application environment that virtualizes at least an operating system (“OS”) of the base host machine by sharing a system or OS kernel with the host machine. For example, if the base host machine runs Windows (or other desktop OS), the container may also run Windows (or other desktop OS) by sharing the OS kernel such that the container may not require a complete set of OS binaries and libraries. In some embodiments, the term “virtual machine” may refer to an isolated application environment that virtualizes hardware as well as an OS. Because a VM may virtualize hardware, an OS for the VM may not be restricted by the base host machine OS. For example, even if the base host machine is running Windows (or another desktop OS), a VM on the base host machine may be configured to run Android (or other mobile OS) by emulating mobile device hardware. In other examples, other combinations of OSes may be used.
  • VM 630 may run an application 620 and VM 632 may run an application 622. Host 606 may utilize nested virtualization environments (e.g., VM 630 running in container 640 and VM 632 running in container 642) to more efficiently manage virtualization environments. For instance, as a number of VMs are initiated and/or closed the nested virtualization may facilitate management of virtualization environments for various types of VMs as well as more efficiently scale the number of VMs running concurrently. Certain aspects which may be global across certain VMs may be better managed via containers.
  • Computing device 602, which may correspond to an instance of computing device 502, may access data of application 620 via network 604 and background service 624. Computing device 603, which may correspond to another instance of computing device 302, may access data of application 622 via network 604 and background service 626. As shown in FIG. 6 , because application 620 and application 622 are actually running on host 606, host 606 may maintain individual sessions (e.g., user session 226) for each of application 620 with computing device 602 and application 622 with computing device 603. Computing devices 602 and 603 may write directly to user sessions maintained by their respective hosts, thus avoiding the need for the user devices 602 and 603 to create and maintain their own user sessions.
  • Although FIG. 6 illustrates a virtualization environment with one nested level (e.g., VM 630 running in container 640 or VM 632 running in container 642), in other embodiments, the virtualization environment may include additional levels of nesting. For example, application 620 may run in another VM or container running in VM 630. Moreover, although FIG. 6 illustrates a single VM per container, in other embodiments there may be more than one nested virtualization environment per base virtualization environment.
  • The foregoing has disclosed a cloud application platform that may incorporate a persistent storage overlay to reduce file distribution time and drastically improve flexibility for game installation, game updates, and games' data. A persistent storage overlay service may be provided on a host (e.g., different location or different machine) by using a file system and emulator that allows a mobile device operating system (OS) to directly access a cloud application stored and run on the host. For example, on an Android platform, the persistent storage overlay may be implemented by utilizing file system in user mode (FUSE) (e.g., the Linux file system in user mode) to directly map games' files on the host to Android. Requests for file access may be re-directed by a background service on Android to a service running on the host. Subsequently, the game itself or the game's data may be made available immediately on both sides without copying the data. Thus, the host's folders are mapped into the Android OS in such a way that the Android OS recognizes the folders as a cloud application that is already installed. This procedure eliminates the need to install cloud applications on a user's mobile device (e.g., Android or Mac) when the user connects. Additionally, users write changes to the host directly and the host preserves a mapped folder that includes the changes, thus avoiding the need to maintain a local copy of game save data on the mobile device. As a result, delay in application launch may be greatly reduced and the need to create a copy of game data at the mobile device can be avoided.
  • EXAMPLE EMBODIMENTS
  • Example 1: A computer-implemented method comprising: providing, by a computer processor of a host of a cloud gaming server, a persistent storage overlay service;
  • receiving, by the computer processor from a mobile device, one or more requests for access to one or more files of a cloud gaming application stored on the host; and making, by the computer processor in response to the one or more requests, data of the cloud gaming application available to the host and to the mobile device, without copying the data, in a manner that obviates installation of the cloud gaming application on the mobile device.
  • Example 2: the method of example 1, wherein the computer processor provides the persistent storage overlay service at least in part by using a file system and an emulator that allows an operating system of a mobile device to directly access the cloud gaming application stored on the host.
  • Example 3: The method of example 1 or 2, wherein providing the persistent storage overlay service is accomplished at least in part by using a file system in user mode (FUSE) to directly map the one or more files of the cloud gaming application stored on the host to an Android operating system of the mobile device.
  • Example 4: The method of any of examples 1-3, wherein the requests are redirected by a background service running on the mobile device to the persistent storage overlay service provided by the host.
  • Example 5: The method of any of examples 1-4, wherein making data of the cloud gaming application available to the host and to the mobile device without copying the data includes mapping one or more folders of the host into an operating system of the mobile device in a manner that causes the operating system of the mobile device to recognize the one or more folders of the host as a cloud gaming application that is already installed on the mobile device.
  • Example 6: The method of any of examples 1-5, wherein making data of the cloud gaming application available includes receiving, by the computer processor, changes written directly from the mobile device.
  • Example 7: The method of any of examples 1-6, wherein making data of the cloud gaming application available further includes preserving, by the computer processor, a mapped folder that includes the changes, thus avoiding any need to copy game save data.
  • Example 8: A system comprising: at least one physical processor of a host of a cloud gaming server; physical memory comprising computer-executable instructions that, when executed by the physical processor, cause the physical processor to: provide a persistent storage overlay service; receive, from a mobile device, one or more requests for access to one or more files of a cloud gaming application stored on the host; and make, in response to the one or more requests, data of the cloud gaming application available to the host and to the mobile device, without copying the data, in a manner that obviates installation of the cloud gaming application on the mobile device.
  • Example 9: The system of example 8, wherein the physical processor provides the persistent storage overlay service at least in part by using a file system and an emulator that allows an operating system of a mobile device to directly access the cloud gaming application stored on the host.
  • Example 10: A non-transitory computer-readable medium comprising one or more computer-executable instructions that, when executed by at least one processor of a computing device of a host of a cloud gaming server, cause the computing device to: provide a persistent storage overlay service; receive, from a mobile device, one or more requests for access to one or more files of a cloud gaming application stored on the host; and make, in response to the one or more requests, data of the cloud gaming application available to the host and to the mobile device, without copying the data, in a manner that obviates installation of the cloud gaming application on the mobile device.
  • Example 11: A computer-implemented method comprising: transmitting, by a computer processor of a mobile device to a persistent storage overlay service provided by a host of a cloud gaming server, one or more requests for access to one or more files of a cloud gaming application stored on the host; receiving access, by the computer processor and from the host, to data of the cloud gaming application, without receiving a copy the data, in a manner that obviates installation of the cloud gaming application on the mobile device; and writing changes, by the computer processor of the mobile device, directly to a folder of the host in a manner that obviates creating a copy of game save data on the mobile device.
  • Example 12: The method of example 11, wherein the persistent storage overlay is provided by using a file system and an emulator that allows an operating system of the mobile device to directly access the cloud gaming application stored on the host.
  • Example 13: The method of any of examples 11 or 12, wherein the persistent storage overlay service is provided at least in part by using a file system in user mode (FUSE) to directly map the one or more files of the cloud gaming application stored on the host to an Android operating system of the mobile device.
  • Example 14: The method of any of examples 11-13, wherein the requests are redirected by a background service running on the mobile device to the persistent overlay service provided by the host.
  • Example 15: The method of any of examples 11-14, wherein folders of the host are mapped into an operating system of the mobile device.
  • Example 16: The method of any of examples 11-15, wherein the folders are mapped in a manner that causes the operating system of the mobile device to recognize the folders of the host as a cloud gaming application that is already installed on the mobile device.
  • Example 17: The method of any of examples 11-16, wherein the host is configured to preserve a mapped folder that includes the changes, thus avoiding any need to copy game save data.
  • Example 18: A system comprising: at least one physical processor of a mobile device; physical memory comprising computer-executable instructions that, when executed by the physical processor, cause the physical processor to: transmit, to a persistent storage overlay service provided by a host of a cloud gaming server, one or more requests for access to one or more files of a cloud gaming application stored on the host; receive access, from the host, to data of the cloud gaming application, without receiving a copy the data, in a manner that obviates installation of the cloud gaming application on the mobile device; and write changes directly to a folder of the host in a manner that obviates creating a copy of game save data on the mobile device.
  • Example 19: The system of example 18, wherein the persistent storage overlay is provided by using a file system and an emulator that allows an operating system of the mobile device to directly access the cloud gaming application stored on the host.
  • Example 20: A non-transitory computer-readable medium comprising one or more computer-executable instructions that, when executed by at least one processor of a mobile device, cause the computing device to: transmit, to a persistent storage overlay service provided by a host of a cloud gaming server, one or more requests for access to one or more files of a cloud gaming application stored on the host; receive access, from the host, to data of the cloud gaming application, without receiving a copy the data, in a manner that obviates installation of the cloud gaming application on the mobile device; and write changes directly to a folder of the host in a manner that obviates creating a copy of game save data on the mobile device.
  • As detailed above, the computing devices and systems described and/or illustrated herein broadly represent any type or form of computing device or system capable of executing computer-readable instructions, such as those contained within the modules described herein. In their most basic configuration, these computing device(s) may each include at least one memory device and at least one physical processor.
  • In some examples, the term “memory device” generally refers to any type or form of volatile or non-volatile storage device or medium capable of storing data and/or computer-readable instructions. In one example, a memory device may store, load, and/or maintain one or more of the modules described herein. Examples of memory devices include, without limitation, Random Access Memory (RAM), Read Only Memory (ROM), flash memory, Hard Disk Drives (HDDs), Solid-State Drives (SSDs), optical disk drives, caches, variations or combinations of one or more of the same, or any other suitable storage memory.
  • In some examples, the term “physical processor” generally refers to any type or form of hardware-implemented processing unit capable of interpreting and/or executing computer-readable instructions. In one example, a physical processor may access and/or modify one or more modules stored in the above-described memory device. Examples of physical processors include, without limitation, microprocessors, microcontrollers, Central Processing Units (CPUs), Field-Programmable Gate Arrays (FPGAs) that implement softcore processors, Application-Specific Integrated Circuits (ASICs), portions of one or more of the same, variations or combinations of one or more of the same, or any other suitable physical processor.
  • Although illustrated as separate elements, the modules described and/or illustrated herein may represent portions of a single module or application. In addition, in certain embodiments one or more of these modules may represent one or more software applications or programs that, when executed by a computing device, may cause the computing device to perform one or more tasks. For example, one or more of the modules described and/or illustrated herein may represent modules stored and configured to run on one or more of the computing devices or systems described and/or illustrated herein. One or more of these modules may also represent all or portions of one or more special-purpose computers configured to perform one or more tasks.
  • In addition, one or more of the modules described herein may transform data, physical devices, and/or representations of physical devices from one form to another. For example, one or more of the modules recited herein may receive session data to be transformed, transform the session data, output a result of the transformation to manage session data, use the result of the transformation to maintain the session data, and store the result of the transformation to store the session data. Additionally or alternatively, one or more of the modules recited herein may transform a processor, volatile memory, non-volatile memory, and/or any other portion of a physical computing device from one form to another by executing on the computing device, storing data on the computing device, and/or otherwise interacting with the computing device.
  • In some embodiments, the term “computer-readable medium” generally refers to any form of device, carrier, or medium capable of storing or carrying computer-readable instructions. Examples of computer-readable media include, without limitation, transmission-type media, such as carrier waves, and non-transitory-type media, such as magnetic-storage media (e.g., hard disk drives, tape drives, and floppy disks), optical-storage media (e.g., Compact Disks (CDs), Digital Video Disks (DVDs), and BLU-RAY disks), electronic-storage media (e.g., solid-state drives and flash media), and other distribution systems.
  • The process parameters and sequence of the steps described and/or illustrated herein are given by way of example only and can be varied as desired. For example, while the steps illustrated and/or described herein may be shown or discussed in a particular order, these steps do not necessarily need to be performed in the order illustrated or discussed. The various exemplary methods described and/or illustrated herein may also omit one or more of the steps described or illustrated herein or include additional steps in addition to those disclosed.
  • The preceding description has been provided to enable others skilled in the art to best utilize various aspects of the exemplary embodiments disclosed herein. This exemplary description is not intended to be exhaustive or to be limited to any precise form disclosed. Many modifications and variations are possible without departing from the spirit and scope of the present disclosure. The embodiments disclosed herein should be considered in all respects illustrative and not restrictive. Reference should be made to the appended claims and their equivalents in determining the scope of the present disclosure.
  • Unless otherwise noted, the terms “connected to” and “coupled to” (and their derivatives), as used in the specification and claims, are to be construed as permitting both direct and indirect (i.e., via other elements or components) connection. In addition, the terms “a” or “an,” as used in the specification and claims, are to be construed as meaning “at least one of.” Finally, for ease of use, the terms “including” and “having” (and their derivatives), as used in the specification and claims, are interchangeable with and have the same meaning as the word “comprising.”

Claims (20)

1. A computer-implemented method comprising:
providing, by a computer processor of a host of a cloud gaming server, a persistent storage overlay service;
receiving, by the computer processor from a mobile device, one or more requests for access to one or more files of a cloud gaming application stored on the host; and
making, by the computer processor in response to the one or more requests, data of the cloud gaming application available to the host and to the mobile device, without copying the data, in a manner that obviates installation of the cloud gaming application on the mobile device,
wherein making data of the cloud gaming application available includes:
receiving, by the computer processor, changes written directly from the mobile device;
preserving, by the computer processor, a mapped folder that includes the changes that include game save data for a mobile device in an individual user session for the mobile device, thus avoiding any need to copy the game save data; and
employing, by the computer processor, the individual user session preserved in the mapped folder to restore a paused user session without retrieving additional game save data for an additional mobile device.
2. The method of claim 1, wherein the computer processor provides the persistent storage overlay service at least in part by using a file system and an emulator that allows an operating system of a mobile device to directly access the cloud gaming application stored on the host.
3. The method of claim 1, wherein providing the persistent storage overlay service is accomplished at least in part by using a file system in user mode (FUSE) to directly map the one or more files of the cloud gaming application stored on the host to an Android operating system of the mobile device.
4. The method of claim 1, wherein the requests are redirected by a background service running on the mobile device to the persistent storage overlay service provided by the host.
5. The method of claim 1, wherein making data of the cloud gaming application available to the host and to the mobile device without copying the data includes mapping one or more folders of the host into an operating system of the mobile device in a manner that causes the operating system of the mobile device to recognize the one or more folders of the host as a cloud gaming application that is already installed on the mobile device.
6. The method of claim 1, wherein the changes further include user preferences.
7. The method of claim 6, further comprising restoring the paused user session without retrieving additional user preferences for the additional mobile device.
8. A system comprising:
at least one physical processor of a host of a cloud gaming server; and
physical memory comprising computer-executable instructions that, when executed by the physical processor, cause the physical processor to:
provide a persistent storage overlay service;
receive, from a mobile device, one or more requests for access to one or more files of a cloud gaming application stored on the host; and
make, in response to the one or more requests, data of the cloud gaming application available to the host and to the mobile device, without copying the data, in a manner that obviates installation of the cloud gaming application on the mobile device,
wherein making data of the cloud gaming application available includes:
receiving changes written directly from the mobile device;
preserving a mapped folder that includes the changes that include game save data for a mobile device in an individual user session for the mobile device, thus avoiding any need to copy the game save data; and
employing the individual user session preserved in the mapped folder to restore a paused user session without retrieving additional game save data for an additional mobile device.
9. The system of claim 8, wherein the physical processor provides the persistent storage overlay service at least in part by using a file system and an emulator that allows an operating system of a mobile device to directly access the cloud gaming application stored on the host.
10. A non-transitory computer-readable medium comprising one or more computer-executable instructions that, when executed by at least one processor of a computing device of a host of a cloud gaming server, cause the computing device to:
provide a persistent storage overlay service;
receive, from a mobile device, one or more requests for access to one or more files of a cloud gaming application stored on the host; and
make, in response to the one or more requests, data of the cloud gaming application available to the host and to the mobile device, without copying the data, in a manner that obviates installation of the cloud gaming application on the mobile device,
wherein making data of the cloud gaming application available includes:
receiving changes written directly from the mobile device;
preserving a mapped folder that includes the changes that include game save data for a mobile device in an individual user session for the mobile device, thus avoiding any need to copy the game save data; and
employing the individual user session preserved in the mapped folder to restore a paused user session without retrieving additional game save data for an additional mobile device.
11. A computer-implemented method comprising:
transmitting, by a computer processor of a mobile device to a persistent storage overlay service provided by a host of a cloud gaming server, one or more requests for access to one or more files of a cloud gaming application stored on the host;
receiving access, by the computer processor and from the host, to data of the cloud gaming application, without receiving a copy the data, in a manner that obviates installation of the cloud gaming application on the mobile device, wherein receiving access to data of the cloud gaming application includes receiving data of a user session restored by the host employing a folder to restore a paused user session; and
writing changes, by the computer processor of the mobile device, directly to the folder of the host in a manner that obviates creating a copy of game save data on the mobile device,
wherein the host restores the paused user session without retrieving additional game save data for an additional mobile device.
12. The method of claim 11, wherein the persistent storage overlay service is provided by using a file system and an emulator that allows an operating system of the mobile device to directly access the cloud gaming application stored on the host.
13. The method of claim 11, wherein the persistent storage overlay service is provided at least in part by using a file system in user mode (FUSE) to directly map the one or more files of the cloud gaming application stored on the host to an Android operating system of the mobile device.
14. The method of claim 11, wherein the requests are redirected by a background service running on the mobile device to the persistent overlay service provided by the host.
15. The method of claim 11, wherein folders of the host are mapped into an operating system of the mobile device.
16. The method of claim 15, wherein the folders are mapped in a manner that causes the operating system of the mobile device to recognize the folders of the host as a cloud gaming application that is already installed on the mobile device.
17. The method of claim 11, wherein the host is configured to preserve a mapped folder that includes the changes, thus avoiding any need to copy game save data.
18. A system comprising:
at least one physical processor of a mobile device; and
physical memory comprising computer-executable instructions that, when executed by the physical processor, cause the physical processor to:
transmit, to a persistent storage overlay service provided by a host of a cloud gaming server, one or more requests for access to one or more files of a cloud gaming application stored on the host;
receive access, from the host, to data of the cloud gaming application, without receiving a copy the data, in a manner that obviates installation of the cloud gaming application on the mobile device, wherein receiving access to data of the cloud gaming application includes receiving data of a user session restored by the host employing a folder to restore a paused user session; and
write changes directly to the folder of the host in a manner that obviates creating a copy of game save data on the mobile device,
wherein the host restores the paused user session without retrieving additional game save data for an additional mobile device.
19. The system of claim 18, wherein the persistent storage overlay service is provided by using a file system and an emulator that allows an operating system of the mobile device to directly access the cloud gaming application stored on the host.
20. A non-transitory computer-readable medium comprising one or more computer-executable instructions that, when executed by at least one processor of a mobile device, cause the mobile device to:
transmit, to a persistent storage overlay service provided by a host of a cloud gaming server, one or more requests for access to one or more files of a cloud gaming application stored on the host;
receive access, from the host, to data of the cloud gaming application, without receiving a copy the data, in a manner that obviates installation of the cloud gaming application on the mobile device, wherein receiving access to data of the cloud gaming application includes receiving data of a user session restored by the host employing a folder to restore a paused user session; and
write changes directly to the folder of the host in a manner that obviates creating a copy of game save data on the mobile device,
wherein the host restores the paused user session without retrieving additional game save data for an additional mobile device.
US17/507,041 2020-10-25 2021-10-21 Persistent storage overlay Abandoned US20230336624A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/507,041 US20230336624A1 (en) 2020-10-25 2021-10-21 Persistent storage overlay

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063105320P 2020-10-25 2020-10-25
US202163194821P 2021-05-28 2021-05-28
US17/507,041 US20230336624A1 (en) 2020-10-25 2021-10-21 Persistent storage overlay

Publications (1)

Publication Number Publication Date
US20230336624A1 true US20230336624A1 (en) 2023-10-19

Family

ID=81257183

Family Applications (8)

Application Number Title Priority Date Filing Date
US17/506,640 Abandoned US20220129295A1 (en) 2020-10-25 2021-10-20 Server-side hosted environment for a cloud gaming system
US17/507,359 Abandoned US20220129296A1 (en) 2020-10-25 2021-10-21 Service network approach for dynamic container network management
US17/507,310 Abandoned US20220131943A1 (en) 2020-10-25 2021-10-21 Session reconnects and dynamic resource allocation
US17/507,303 Active US11583768B2 (en) 2020-10-25 2021-10-21 Systems and methods for secure concurrent streaming of applications
US17/507,292 Active US11638870B2 (en) 2020-10-25 2021-10-21 Systems and methods for low-latency initialization of streaming applications
US17/507,299 Abandoned US20220126203A1 (en) 2020-10-25 2021-10-21 Systems and methods for distributing compiled shaders
US17/507,041 Abandoned US20230336624A1 (en) 2020-10-25 2021-10-21 Persistent storage overlay
US17/508,293 Abandoned US20240269549A1 (en) 2020-10-25 2021-10-22 Systems and methods for measuring input latency for cloud gaming applications

Family Applications Before (6)

Application Number Title Priority Date Filing Date
US17/506,640 Abandoned US20220129295A1 (en) 2020-10-25 2021-10-20 Server-side hosted environment for a cloud gaming system
US17/507,359 Abandoned US20220129296A1 (en) 2020-10-25 2021-10-21 Service network approach for dynamic container network management
US17/507,310 Abandoned US20220131943A1 (en) 2020-10-25 2021-10-21 Session reconnects and dynamic resource allocation
US17/507,303 Active US11583768B2 (en) 2020-10-25 2021-10-21 Systems and methods for secure concurrent streaming of applications
US17/507,292 Active US11638870B2 (en) 2020-10-25 2021-10-21 Systems and methods for low-latency initialization of streaming applications
US17/507,299 Abandoned US20220126203A1 (en) 2020-10-25 2021-10-21 Systems and methods for distributing compiled shaders

Family Applications After (1)

Application Number Title Priority Date Filing Date
US17/508,293 Abandoned US20240269549A1 (en) 2020-10-25 2021-10-22 Systems and methods for measuring input latency for cloud gaming applications

Country Status (4)

Country Link
US (8) US20220129295A1 (en)
EP (6) EP4232900A1 (en)
CN (6) CN116802604A (en)
WO (6) WO2022087514A1 (en)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7491676B2 (en) * 2019-09-30 2024-05-28 株式会社ソニー・インタラクティブエンタテインメント Image data transfer device and image compression method
JP7429512B2 (en) 2019-09-30 2024-02-08 株式会社ソニー・インタラクティブエンタテインメント Image processing device, image data transfer device, image processing method, and image data transfer method
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
CN113342436B (en) * 2021-06-10 2023-03-17 网易(杭州)网络有限公司 Game translation method and device
CN114367112B (en) * 2021-09-17 2026-01-20 腾讯科技(深圳)有限公司 Virtual organization creation method and device, storage medium and electronic equipment
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 (en) * 2022-05-30 2024-06-28 杭州迪普科技股份有限公司 Method and device for continuously deleting session
US11984999B2 (en) 2022-09-12 2024-05-14 International Business Machines Corporation Smarter collaborative conferences
GB2637681A (en) * 2023-10-27 2025-08-06 Bae Systems Plc Multi-function console display system
US20250294020A1 (en) * 2024-03-12 2025-09-18 Oracle International Corporation Cross-Tenancy Resource Association For Container Orchestration System
CN121217976A (en) * 2024-06-26 2025-12-26 北京字跳网络技术有限公司 Live streaming methods, devices, equipment and media
US20260003684A1 (en) * 2024-06-26 2026-01-01 Microsoft Technology Licensing, Llc Speculation management engine in a cloud access management system
CN119292792B (en) * 2024-12-12 2025-04-25 安徽海马云科技股份有限公司 Method and device for realizing multiple opening of x86 cloud application desktop

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100146506A1 (en) * 2008-12-08 2010-06-10 Electronics And Telecommunications Research Institute SYSTEM AND METHOD FOR OFFERING SYSTEM ON DEMAND (SoD) VIRTUAL-MACHINE
WO2012081302A1 (en) * 2010-12-16 2012-06-21 株式会社ソニー・コンピュータエンタテインメント Game system, method for controlling game system, program, and information storage medium
US20130182186A1 (en) * 2010-10-20 2013-07-18 Sony Computer Entertainment Inc. Image processing system, image processing method, dynamic image transmission device, dynamic image reception device, information storage medium, and program
JP2013232821A (en) * 2012-04-30 2013-11-14 Yasuaki Iwai Information processing system and information processing method
US20170318119A1 (en) * 2016-04-27 2017-11-02 Seven Bridges Genomics Inc. Methods and Systems for Stream-Processing of Biomedical Data
US20180322136A1 (en) * 2017-05-05 2018-11-08 Esoptra NV Plug-in function platform and methods

Family Cites Families (47)

* 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
US8410994B1 (en) 2010-08-23 2013-04-02 Matrox Graphics Inc. System and method for remote graphics display
KR20170129297A (en) 2010-09-13 2017-11-24 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 A game server
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
US9152449B2 (en) 2012-07-13 2015-10-06 International Business Machines Corporation Co-location of virtual machines with nested virtualization
US11181938B2 (en) * 2012-08-31 2021-11-23 Blue Goji Llc Full body movement control of dual joystick operated devices
CN104822429A (en) * 2012-11-28 2015-08-05 辉达公司 Handheld gaming console
US9566505B2 (en) * 2012-12-27 2017-02-14 Sony Interactive Entertainment America Llc Systems and methods for generating and sharing video clips of cloud-provisioned games
US20140196054A1 (en) * 2013-01-04 2014-07-10 International Business Machines Corporation Ensuring performance of a computing system
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
US10709988B2 (en) * 2015-03-06 2020-07-14 Sony Interactive Entertainment America Llc Predictive instant play for an application over the cloud
CA2993762C (en) 2015-07-30 2025-09-09 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
US10019360B2 (en) * 2015-09-26 2018-07-10 Intel Corporation Hardware predictor using a cache line demotion instruction to reduce performance inversion in core-to-core data transfers
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 (en) 2016-03-23 2017-09-28 富士通株式会社 Information processing system, information processing method, and program
US11327566B2 (en) * 2019-03-29 2022-05-10 Facebook Technologies, Llc Methods and apparatuses for low latency body state prediction based on neuromuscular data
CN108023167A (en) * 2016-11-04 2018-05-11 深圳富泰宏精密工业有限公司 The radio communication device of antenna structure and the application antenna structure
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
US20180321981A1 (en) * 2017-05-04 2018-11-08 Huawei Technologies Co., Ltd. System and method for self organizing data center
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
US11077364B2 (en) * 2018-04-02 2021-08-03 Google Llc Resolution-based scaling of real-time interactive graphics
EP3701489B1 (en) * 2018-04-10 2022-10-26 Google LLC Memory management in gaming rendering
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
KR102832673B1 (en) * 2019-01-02 2025-07-09 나우.지지, 아이엔씨. Methods, systems and computer program products for optimizing the utilization of computer system resources during in-game resource farming
CA3128038A1 (en) 2019-01-31 2020-08-06 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

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100146506A1 (en) * 2008-12-08 2010-06-10 Electronics And Telecommunications Research Institute SYSTEM AND METHOD FOR OFFERING SYSTEM ON DEMAND (SoD) VIRTUAL-MACHINE
US20130182186A1 (en) * 2010-10-20 2013-07-18 Sony Computer Entertainment Inc. Image processing system, image processing method, dynamic image transmission device, dynamic image reception device, information storage medium, and program
WO2012081302A1 (en) * 2010-12-16 2012-06-21 株式会社ソニー・コンピュータエンタテインメント Game system, method for controlling game system, program, and information storage medium
JP2013232821A (en) * 2012-04-30 2013-11-14 Yasuaki Iwai Information processing system and information processing method
US20170318119A1 (en) * 2016-04-27 2017-11-02 Seven Bridges Genomics Inc. Methods and Systems for Stream-Processing of Biomedical Data
US20180322136A1 (en) * 2017-05-05 2018-11-08 Esoptra NV Plug-in function platform and methods

Also Published As

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

Similar Documents

Publication Publication Date Title
US20230336624A1 (en) Persistent storage overlay
US11005934B2 (en) Efficient live-migration of remotely accessed data
US10445188B2 (en) Method and system for virtualizing guest-generated file system snapshots
RU2390827C2 (en) Partition bus
KR102047558B1 (en) Virtual disk storage techniques
US8490090B2 (en) Multilevel support in a nested virtualization environment
US8738884B2 (en) Efficient loading of data into memory of a computing system
US9454670B2 (en) Hybrid file systems
US8775715B2 (en) Protection of data from virtual machine clones via paravirtualization
US20160350010A1 (en) Providing block size compatibility with a storage filter
US11635970B2 (en) Integrated network boot operating system installation leveraging hyperconverged storage
US9792075B1 (en) Systems and methods for synthesizing virtual hard drives
EP4068091B1 (en) Hybrid approach to performing a lazy pull of container images
US10754699B2 (en) Remote provisioning of virtual appliances for access to virtualized storage
CN116467704B (en) Resource calling method and device
US10802865B2 (en) Fast instantiation of virtual machines in distributed computing systems
US11323331B2 (en) Cloud server and operating method of the same
US12056514B2 (en) Virtualization engine for virtualization operations in a virtualization system
CN120188180A (en) Live migration of virtual machines with direct-attached non-volatile memory fast devices
RU2835764C1 (en) Method of virtual devices migration with preservation of their dynamic state
US11425191B1 (en) Unified and efficient method to generate file system table (FSTAB) to support on-premise and multi-cloud environment
US11010146B2 (en) Unified management of heterogeneous applications
CN121143887A (en) Command execution method under invariable system and related product

Legal Events

Date Code Title Description
AS Assignment

Owner name: FACEBOOK, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CHANBAI, SAKPHONG;ZHU, XIAOXING;ZHANG, QUNSHU;REEL/FRAME:058631/0023

Effective date: 20211029

AS Assignment

Owner name: META PLATFORMS, INC., CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:FACEBOOK, INC.;REEL/FRAME:058964/0049

Effective date: 20211028

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION