WO2016149462A2 - Déploiement de contenu, mise à l'échelle et télémétrie - Google Patents

Déploiement de contenu, mise à l'échelle et télémétrie Download PDF

Info

Publication number
WO2016149462A2
WO2016149462A2 PCT/US2016/022791 US2016022791W WO2016149462A2 WO 2016149462 A2 WO2016149462 A2 WO 2016149462A2 US 2016022791 W US2016022791 W US 2016022791W WO 2016149462 A2 WO2016149462 A2 WO 2016149462A2
Authority
WO
WIPO (PCT)
Prior art keywords
content item
information
instance
instances
user
Prior art date
Application number
PCT/US2016/022791
Other languages
English (en)
Other versions
WO2016149462A3 (fr
Inventor
Christopher David BYSKAL
Preston Alan TAMKIN
Alexis LEVASSEUR
Jonathan Paul Thompson
Original Assignee
Amazon Technologies, 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
Priority claimed from US14/660,821 external-priority patent/US10463957B2/en
Priority claimed from US14/660,850 external-priority patent/US20160277484A1/en
Priority claimed from US14/660,865 external-priority patent/US20160277508A1/en
Application filed by Amazon Technologies, Inc. filed Critical Amazon Technologies, Inc.
Priority to KR1020177029729A priority Critical patent/KR102073461B1/ko
Priority to CA2979691A priority patent/CA2979691C/fr
Priority to EP16726989.3A priority patent/EP3271817A2/fr
Priority to JP2017548900A priority patent/JP2018514023A/ja
Priority to CN201680016104.9A priority patent/CN107430519B/zh
Priority to KR1020197019080A priority patent/KR102168740B1/ko
Publication of WO2016149462A2 publication Critical patent/WO2016149462A2/fr
Publication of WO2016149462A3 publication Critical patent/WO2016149462A3/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • G07F17/3225Data transfer within a gaming system, e.g. data sent between gaming machines and users
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • G07F17/326Game play aspects of gaming systems
    • G07F17/3272Games involving multiple players
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming

Definitions

  • FIG. 1 is a diagram illustrating an example content deployment, scaling and telemetry system that may be used in accordance with the present disclosure.
  • FIG. 2 is a diagram showing an example content scaling and execution system that may be used in accordance with the present disclosure.
  • FIG. 3 is a diagram illustrating an example telemetry information routing and processing system that may be used in accordance with the present disclosure.
  • FIG. 4 is a diagram illustrating an example content deployment and scaling process that may be used in accordance with the present disclosure.
  • FIG. 5 is a diagram illustrating an example process content execution in accordance with the present disclosure.
  • FIG. 6 is a diagram illustrating an example telemetry information routing process that may be used in accordance with the present disclosure.
  • FIG. 7 is a diagram illustrating an example computing system that may be used in accordance with the present disclosure.
  • a content developer or other party may provide various types of electronically presented content items, such as video games and other applications, for deployment to various users.
  • different versions of content such as content that is being tested and/or content that is fully developed, may be provided and made available at the same or different times.
  • the content may be created using a software development kit (SDK) or other elements that are associated and/or integrated with various backend or other services or components that may host or otherwise interact with deployed instances of the content item, such as a content item instance information service, an instance interface, and/or content execution components, which are each described in detail below.
  • SDK software development kit
  • the SDK or other elements may provide code and other functionality built-in to the content created by the developer that may, for example, allow ingestion, configuration, provisioning and deployment of the content to be more easily and rapidly accomplished, such as by allowing the content to interact more efficiently with a multi-player video gaming or other multi-user environment.
  • an SDK used to create the content may assist in configuration of new user sessions for one or more users and collection of information about executing content item instances, such as a number of occupied user sessions, a number of unoccupied user sessions, content item instance duration, memory usage, and the like.
  • developers and other parties may also provide information associated with identities of various users that are authorized to use the content and, in some cases, respective content entitlements for various users. For example, if different builds and/or versions of content are available, different authorized users may be indicated for the different builds and/or versions.
  • a content item Once a content item is made accessible for deployment, one or more instances of the content item may be installed as an image on a virtual machine instance. Additional instances of the content item may then be launched on the same virtual machine instance and/or by copying the image onto any number of additional virtual machine instances.
  • the content item may be made to available to large numbers of users in a rapid, efficient, reliable and secure manner.
  • the deployed content may be designed to allow multiple different users to control and interact with the content, such as may occur in a multiplayer video game or other multi-user applications.
  • the disclosed techniques may employ concepts such as user sessions and content item instances.
  • one or more instances of a content item may be configurable to execute with multiple simultaneously assigned users sessions. This may, for example, allow multiple users to play with or against one another, or to otherwise collaborate to provide input and receive output from an executing content item instance.
  • Each content item instance may, in some cases, have an associated quantity of available user sessions.
  • information associated with content item instances may be collected, such as a number of occupied user sessions, a number of unoccupied user sessions, content item instance duration, memory usage, and the like. This information may, in some cases, be used to match and assign authorized users to appropriate content item instances. For example, in some cases, when an authorized user connects to the system, the user may indicate certain user content preferences, such as preferred plot lines, story arcs, virtual locations, levels, modes, characters, weapons, and the like. This preference information may be used to match a user to a particular content item instance having at least one unoccupied user session. In some examples, if no such content item instance is available, then an additional content item instance may be initiated that may better accommodate the user's preferences.
  • information associated with content item instances may be collected, such as a number of occupied user sessions, a number of unoccupied user sessions, content item instance duration, memory usage, and the like. In some cases, this information may be provided periodically to a routing function that routes the information to one or more available recipients. In some examples, the available recipients may be associated with a content item instance information service, a content item fleet information service, and a historical information service, and others.
  • the content item instance information service may, for example, provide information for matching and assignment of user sessions to content item instances, launching of new content item instances, and content item instance-level feedback and metrics to content developers and other parties.
  • the content item fleet information service may, for example, provide content item fleet-level feedback and metrics to developers and other parties.
  • a content item fleet is a grouping of instances of the same or related content items, such as a grouping of content item instances that are all executing the same version of a content item.
  • the historical information service may, for example, provide historical feedback and metrics to developers and other parties.
  • the routing function and/or processing functions for the content item instance information service, the content item fleet information service, and historical information service may be distributed computing-based (e.g., cloud-based) functions that execute code based, at least in part, on events, such as the receiving of telemetry information for routing and/or processing.
  • cloud-based functions can run code in response to events and automatically manage the compute resources.
  • cloud-based functions and services may start running the code or trigger computing resources in a small amount of time, and those computing resources can be eliminated once the code has been run.
  • FIG. 1 A diagram of an example content deployment, scaling and telemetry system 150 that may be used in accordance with the present disclosure is shown in FIG. 1.
  • content developer compute node 100 may include, for example, various interfaces, consoles, and/or dashboards operated by content developers or other parties.
  • User compute node 1 10 may communicate with identity and entitlement services 105, content item instance information service 1 15, and/or telemetry components 125 using, for example, one or more networks, including one or more wide area networks (WANs) such as the Internet and/or one or more local area networks (LANs).
  • WANs wide area networks
  • LANs local area networks
  • content developer compute nodes 100 may execute one or more integrated development environment (IDE) applications, or portions thereof, to assist in development of content.
  • IDE integrated development environment
  • content developer compute node 100 may allow, for example, developers to design and develop content items, to provide access to content items for deployment, to provide user identity and/or entitlement information, to monitor and obtain feedback and metrics associated with content item instances, content item fleets, and historical information, and other operations.
  • information for accessing the content may, for example, be provided to content execution components 120, which may perform various operations for executing instances of the content item, which are made accessible to various users.
  • developers and other parties may also provide identity and/or entitlement information for various users to access the provided content.
  • developer compute node 100 may sometimes interact with identity and entitlement services 105 to provide this identity and/or entitlement information.
  • information may be provided to identity and entitlement services 105 by other parties.
  • developers or other parties may configure an identity pool by providing indications of authorized users that may access one or more content items.
  • identity and entitlement services 105 may generate or receive identity authentication information, such as user names, passwords, and the like, for authenticating the identities of various users. User identities and their associated authentication information may be stored, for example, in identity information 107.
  • developers or other parties may provide entitlement information 106, which may indicate the content items with which each authorized user is entitled to interact.
  • entitlement information 106 may indicate the content items with which each authorized user is entitled to interact.
  • certain users may only be permitted to access test versions, or fully developed versions, certain versions for which the user has paid or subscribed, or any other types of content.
  • User compute node 1 10 may be employed by a user to request access to content, such as a user session for interaction with a particular content item instance.
  • User compute node 110 may communicate with identity and entitlement services 105, content item instance information service 115, and/or content execution components 120 using, for example, one or more networks, including one or more wide area networks (WANs) such as the Internet and/or one or more local area networks (LANs).
  • WANs wide area networks
  • LANs local area networks
  • system 150 may include any number of different users accessing the same or different content. In some cases, in order for a user to requests access to content, a determination may be made of whether the user is authorized to access content that is deployed by system 150.
  • system interface 11 1 may provide identity authentication information for the user to identity and entitlement services 105, which may attempt to match the provided user identity authentication information to identity authentication information for the user that is stored in identity information 107. If no match is determined, then the user may, for example, be denied access to any content and/or may be prompted to register, pay, and/or subscribe for access to content and/or may be redirected to various services for performing those operations. If, on the other hand, the user's provided identity authentication is matched to stored identity authentication information, then the user's identity may be
  • Content client 1 12 of user compute node 110 may then communicate with content item instance information service 1 15 to provide information about the user to content item instance information service 1 15.
  • content item instance information service 115 may communicate with identity and entitlement services 105 to determine, based at least in part on entitlement information 106, content that the user is authorized for and entitled to access.
  • the user may then request access to a selected content item that the user is entitled access, and content item instance information service 115 may match and assign a user session for the user to a particular instance of the selected content item that executes within content execution components 120. This assignment information may be forwarded to content execution components 120, which may establish communications between content client 112 and its assigned matched content item instance.
  • content execution components 120 may also collect various telemetry information about executing content item instances, such as a number of occupied user sessions, a number of unoccupied user sessions, content item instance duration, memory usage, and the like. Content execution components 120 may provide this collected telemetry information to telemetry components 125, which, as will be described in greater detail below, may route and process the telemetry data.
  • telemetry components may provide content item instance information to content item instance information service 1 15. This content item instance information may, for example, enable matching and assignment of user sessions to content item instances, launching of new content item instances, and content item instance-level feedback and metrics to content developers and other parties.
  • telemetry information may also be provided to other services, such a content item fleet information service and a historical information service. These and other telemetry data services are described in greater detail below with reference to FIG. 3.
  • FIG. 2 is a diagram showing an example content scaling and execution system that may be used in accordance with the present disclosure.
  • content execution components 120 also shown in FIG. 1 include scaling components 230, which may perform various operations for scaling deployed content.
  • a message may be sent via developer compute node 100 indicating that the content item is ready for deployment and providing information for accessing the content, such as location and/or address information.
  • the developer may also provide additional information such as a name for the content item fleet, a development stage, and a description of the content item.
  • the access information and, in some cases, additional information may be provided to content scaling component 230, which may issue instructions to install one or more instances of the content item as an image on a virtual machine instance.
  • additional instances of the content item may then be launched on the same virtual machine instance and/or by copying the image onto any number of additional virtual machines instances.
  • a grouping of content item instances for the deployed content item is referred to as the content item fleet.
  • content execution components 120 execute an example content item fleet 210.
  • content execution components 120 may execute any number of different content item fleets at the same or different times.
  • content item fleet 210 includes two virtual machine instances 220A and 220N, each executing three content item instances.
  • virtual machine instance 220A executes content item instances 201 A-N
  • virtual machine instance 220N executes content item instances 221 A-N.
  • a content item fleet in accordance with the disclosed techniques may include any number of virtual machine instances each executing any number of different content item instances.
  • one or more of content item instances 201 A-N and 221A-N, and in some cases all of content item instances 201 A-N and 221A-N may be configurable to execute with multiple simultaneously assigned users sessions. This may, for example, allow multiple users to play with or against one another, or to otherwise collaborate within a single content item instance, such as may occur in a multiplayer video game or other multi-user applications.
  • each content item instance 201A-N and 221 A-N may receive input, such as control input (e.g., character movement, weapons firing, menu selections, etc.), from its assigned user sessions. Also, in some examples, each content item instance 201A-N and 221 A-N may then transmit content information, such as state data updates, event data updates and other information to user compute nodes for the assigned user sessions. The user compute nodes may use this data to render and present content at their respective content compute nodes. In some examples, each user node may include one or more graphics processing units (GPUs) for rendering of graphics data associated with the content item.
  • GPUs graphics processing units
  • content may be rendered by content execution components 120 based on content information that is generated and/or maintained by the content item instances 201A-N and 221A-N.
  • content item instances 201A-N and 221 A-N may, in some cases, each have access to one or more GPUs.
  • the rendered content may then be transmitted by the content item instances 201 A-N and 221 A-N to user compute nodes for the assigned user sessions.
  • each content item instance 201A-N and 221 A-N includes a respective instance interface 202A-N and 222A-N.
  • each instance interface 202A-N and 222A-N may be associated with and/or implemented using a software development kit (SDK) and may assist in enabling configuration of a content item instance, initiation of user sessions in the content item instance, and collection of information from the content item instance, such as telemetry information.
  • SDK software development kit
  • various instructions associated with instance interfaces 202A-N and 222A-N such as one or more SDKs, may be exposed and/or provided to developers. These instructions may assist in enabling the content item instances 201 A-N and 221 A-N to perform the tasks described above and possibly other tasks.
  • the developers may, in turn, include, embed or otherwise associate these instructions with the content item that is made accessible for deployment.
  • Telemetry information provided by instance interfaces 202A-N and 222A-N may include, for example, information about executing content item instances, such as a number of occupied user sessions, a number of unoccupied user sessions, content item instance duration, memory usage, and the like.
  • instance interfaces 202A-N may communicate with proxy component 203 for virtual machine instance 220 A, while instance interfaces 222A-N may communicate with a proxy component 223 for virtual machine instance 220N.
  • Proxy components 203 and 223 may generally allow exchange of information and commands between content items 202A-N and 222A-N and components external to virtual machine instances 220 A-N, such as scaling components 230 and telemetry landing 301.
  • proxy components 203 and 223 may receive commands from scaling components 230, such as commands to launch content item instances and commands to add a user sessions to a particular content item instance.
  • proxy components 203 and 223 may also provide information to scaling components 230 and/or telemetry landing 301 about executing content item instances.
  • the information provided by proxy components 203 and 223 may include, for example, any of the information collected by instance interfaces 202A-N and 222A-N, such as any of the telemetry information described above or other relevant information.
  • Proxy components 203 and 223 may provide content item instance information at any desired interval, such as at regular repeating intervals (e.g., every minute or every five minutes), in response to particular events or conditions, in continuous or intermittent streams, or using any combination of these or other techniques.
  • scaling components 230 may monitor content item fleet 210 based on, for example, information provided by proxy components 203 and 223 such as described above. In some cases, scaling components 230 may use this information to automatically scale content item fleet 210 by allocating additional virtual machine instances and/or content item instances to the content item fleet 210 and/or by de-allocating existing virtual machine instances and/or content item instances from the content item fleet 210. In some examples, certain configurable conditions may cause scaling components 230 to allocate additional virtual machine instances and/or content item instances to a content item fleet.
  • scaling components 230 may allocate additional virtual machine instances and/or content item instances to a content item fleet based on a determination that a particular sub-set of a content item fleet, such as a sub-set of content item instances having particular content attributes (e.g., modes, virtual locations, characters, weapons, plot lines, story arcs, etc.) meets any of the example allocation conditions described above or other conditions.
  • content attributes e.g., modes, virtual locations, characters, weapons, plot lines, story arcs, etc.
  • certain configurable conditions may cause scaling components 230 to de-allocate virtual machine instances and/or content item instances from a content item fleet. These conditions may include for example, determining that the total and/or average number of unoccupied user sessions for all content item instances in the fleet have met or exceeded a particular quantity, determining that the total number of unoccupied user sessions for one or more individual content item instances in the fleet have met or exceeded a particular quantity, and/or other conditions.
  • scaling components 230 may deallocate virtual machine instances and/or content item instances from a content item fleet based on a determination that a particular sub-set of a content item fleet, such as a sub-set of content item instances having particular content attributes (e.g., modes, virtual locations, characters, weapons, plot lines, story arcs, etc.) satisfies any of the example de-allocation conditions described above or other conditions.
  • the de-allocated virtual machine may then eventually be terminated and/or re- purposed. It is noted that, in some cases, it may not be advantageous to terminate and/or re- purpose a particular virtual machine instance immediately upon determining that a de-allocation condition has occurred.
  • FIG. 3 is a diagram illustrating an example telemetry information routing and processing system that may be used in accordance with the present disclosure. As shown in FIG.
  • information provided by content execution components 120 may be delivered to telemetry landing 301 of telemetry components 125 (also shown in FIG. 1).
  • telemetry information may be accessed by telemetry routing function 302, which may generally examine the provided information and, based on various factors, route the provided information to one or more recipients, such as processing functions 303 A-D.
  • instance-level processing function 303A receives and processes information for content item instance information service 115 (also shown in FIGS. 1 and 2).
  • Fleet-level information processing function 303B receives and processes information for content item fleet information service 304.
  • Historical information processing function 303C receives and processes information for historical information service 305.
  • telemetry routing function 302 may route information to any number of additional processing functions 303D that may receive and process information for any number of additional services 306.
  • proxy components 203 and 223 may tag or otherwise identify the information with certain keys or other identification information according to a set of conventions. These conventions may assist the telemetry routing function 302 to quickly and efficiently route the telemetry information to appropriate recipients.
  • the telemetry information may be identified using the following format: fleet identifier / instance identifier / route identifier / timestamp / globally unique identifier (GUID).
  • the fleet identifier may be an identifier for the particular content item fleet with which the information is associated.
  • the instance identifier may be an identifier for the particular content item instance with which the information is associated.
  • the route identifier may be an identifier that indicates one or more recipients (e.g., any or all of processing functions 303 A-D) to which the information should be sent.
  • the timestamp may be a timestamp associated with the information, such as a time at which the information is collected. In some cases, this identification information may be all that is required for the telemetry routing function 302 to route respective telemetry information to the appropriate recipients.
  • any of telemetry routing function 302 and/or processing functions 303 A-D may be distributed computing-based (e.g., cloud-based) functions that execute code based, at least in part, on events, such as the receiving of telemetry information for routing and/or processing.
  • telemetry routing function 302 may detect and/or may be informed of the receiving of telemetry information at telemetry landing 301. In response to this, telemetry routing function 302 may automatically initiate execution of code for routing the telemetry information, based on, for example, the identification information such as described above.
  • processing functions 303 A-D may then detect and/or may be informed of telemetry information that has been routed thereto, and may then automatically initiate execution of code for processing the received information, such as by organizing and storing the received information and generating any appropriate alarms or notifications.
  • implementation of telemetry routing function 302 and/or processing functions 303 A-D using distributed computing-based (e.g., cloud-based) functions that execute code based, at least in part, on events may be advantageous by, for example, reducing the amount of computing resources and cost that may be required for routing and/or processing services that maintained a constant execution even during times when no new telemetry information was available for routing and/or processing.
  • Content item instance information service 115 may generally receive and provide information regarding individual content item instances executed by content execution components 120, including, for example, content item instances 201 A-N and 221 A-N of FIG. 2. This information may include, for example, a number of occupied user sessions for each executing content item instance, a number of unoccupied user sessions for each executing content item instance, content item instance duration information, memory usage by in each executing content item instance, and the like. Content item instance information service 115 may use this information, for example, to assist in matching and assigning of user sessions to particular content item instances. In particular, referring back to FIG. 1, it is seen that content client 112 of user compute node 110 may communicate with content item instance information service 115 to request information about available content and to request access to available content.
  • content item instance information service 115 may communicate with identity and entitlement services 105 to determine, based at least in part on entitlement information 106, which content items the user is entitled to access.
  • entitlement information 106 may indicate user entitlements at various different levels of granularity. For example, in some cases, entitlement information 106 may indicate whether the user is generally allowed access to the content executed by system 150. In other cases, entitlement information 106 may be provided at finer granularity levels and may indicate particular content to which the user is entitled to access, such as particular titles, particular versions, particular story arcs or plotlines, particular virtual locations, particular modes, particular characters, particular weapons, and the like.
  • content client 112 may request that content item instance information service 115 provide information about available content items that the user is entitled to access, such as a listing of all available content items or content items having certain content attributes, such as certain plot lines, story arcs, virtual locations, levels, modes, characters, weapons, and the like.
  • content client 1 12 may also provide to content item instance information service 1 15 information about certain content preferences desired by the user, such as certain plot lines, story arcs, virtual locations, levels, modes, characters, weapons, and the like.
  • Content item instance information service 115 may then, based at least in part on the user's request, the user's preferences, and the telemetry information received from telemetry components 125, match the user's request to a particular instance of the user's selected content item.
  • content item instance information service 1 15 may attempt to identify one or more instances of the selected content item having content attributes that match, or at least partially match, content attributes of the user's requested preferences.
  • Content item instance information service 1 15 may obtain content attribute information for executing content item instances through a variety of different techniques.
  • content attribute information may be collected and provided as part of telemetry information made available from telemetry components 125, may be retrieved from scaling component 230 of FIG. 2, or may be otherwise made available to content item instance information service 115.
  • content item information service may then determine, based at least in part on telemetry information from telemetry components 125, whether there are any unoccupied user sessions for any of the identified content item instances.
  • content item instance information service 115 may then assign the user to one of the identified content item instances with at least one unoccupied user session.
  • the user may be assigned to the identified content item instance with at least one unoccupied user session that has content attributes that most closely matches the user's preferences.
  • the user may be assigned to a content item instance based on a combination of factors including, for example, the user's preferences, a number of unoccupied user sessions, and the like.
  • a user specifies five different content attribute preferences for a content item instance to join.
  • a first content item instance matches all five of the user's preferences but only has one unoccupied user session
  • a second content item instance matches four out of five of the user's preferences but has ten unoccupied user sessions.
  • content item instance information service 115 may provide information about identified content item instances with at least one unoccupied user session that at least partially match a user's preferences to content client 112 in order to allow the user to select one of the identified content item instances for assignment or to otherwise provide input for making such a selection.
  • content item instance information service 1 15 may, instead of matching and assigning the user to an existing already launched and executing content item instance, request that scaling components 230 launch an additional content item instance to which to assign the user. This may occur, for example, when none of the existing content item instances within the fleet have any remaining unoccupied user sessions and/or when none of the existing content item instances within the fleet have content attributes that are determined to sufficiently match the user's requested content attribute preferences.
  • content item instance information service 115 may provide an indication of the assigned content item instance (or instructions to launch a new content item instance) to scaling components 230.
  • Scaling components 230 may, in turn, establish communications between a user session for the user and the assigned content item instance by, for example, instructing the assigned content item instance to communicate with content client 112 at user compute node 1 10.
  • these communications may include transmitting, by the assigned content item instance, state information, event information, rendered graphics and audio, and/or other information associated with the content item instance to the content client 1 12 corresponding to the user session.
  • these communications may include transmitting, by the content client 1 12, input, such as control input (e.g., character movement, weapons firing, menu selections, etc.) to the assigned content item instance.
  • content item instance information service 1 15 may use content item instance-level telemetry information provided by telemetry components 125 to assist in the process of matching and assigning users sessions to content item instances.
  • content item instance-level telemetry information provided to content item instance information service 1 15 may also be used, for example, to provide content item instance-level feedback and metrics to developers and possibly other parties.
  • developer compute node 100 may access content item instance information service 115 to request content item instance-level information, such as a number of occupied user sessions for each executing content item instance, a number of unoccupied user sessions for each executing content item instance, content item instance duration information, memory usage by in each executing content item instance, and the like.
  • content item instance-level information such as a number of occupied user sessions for each executing content item instance, a number of unoccupied user sessions for each executing content item instance, content item instance duration information, memory usage by in each executing content item instance, and the like.
  • telemetry routing function 302 may route telemetry information, though respective processing functions 303B-D, to content item fleet information service 304, historical information service 305, and other additional services 306.
  • Content item fleet information service 304 may generally receive and provide content item fleet-level telemetry information to developers and/or other parties.
  • Content item fleet-level information may include information regarding occupied user sessions within the fleet, unoccupied user sessions within the fleet, instance duration information for the fleet, memory usage by the fleet, a number of executing instances within the fleet, instance termination information, and the like.
  • the fleet-level information may include, for example, the total number of occupied user sessions for all fleet instances, an average number of occupied user sessions for all fleet instances, a number of occupied sessions in the fleet instance with the least occupied sessions, a number of occupied sessions in the fleet instance with the most occupied sessions and the like.
  • the fleet-level information may include, for example, the total number of unoccupied user sessions for all fleet instances, an average number of unoccupied user sessions for all fleet instances, a number of unoccupied sessions in the fleet instance with the least unoccupied sessions, a number of unoccupied sessions in the fleet instance with the most unoccupied sessions and the like.
  • the fleet-level information may include, for example, total, average, maximum, and minimum duration for fleet instances that terminated within a particular period as well as a number of instances that terminated within a particular period.
  • the fleet-level information may include, for example, total, average, maximum, and minimum memory usage for fleet instances.
  • content item fleet information service 304 and/or content item instance information service 115 may allow developers or other parties to set alarms and/or other notifications such that they may be notified of certain events or conditions associated with content item fleets and/or instances.
  • Some example conditions that may trigger alarms are a total number of occupied fleet sessions meeting, exceeding or falling below specified levels, one or more fleet instances having less than a specified number of occupied sessions, a total number of unoccupied fleet sessions meeting, exceeding or falling below specified levels, fleet instances having less than a specified average time duration, fleet instances having more than a specified average or maximum memory usage, and other conditions.
  • Historical information service 305 may generally receive, maintain, and provide historical information regarding content item fleets and/or content item instances.
  • historical information service may include historical information about content item fleets and/or content item instances that have been previously terminated and/or information about content item fleets and/or content item instances that may wholly are partially continue to be executed.
  • Historical information service 305 may, for example, provide any, or all, of the instance-level information and or fleet-level information set forth in detail above and/or any other relevant historical information.
  • historical information may allow developers and/or other parties to request information for certain specifiable historical periods, such as for the past sixty or ninety days, or any other relevant period.
  • FIG. 4 is a diagram illustrating an example content deployment and scaling process that may be used in accordance with the present disclosure.
  • content may be deployed using a plurality of instances of the content item, referred to herein as a content item fleet.
  • one or more of the content item instances in the fleet may be configurable to have multiple simultaneously assigned user sessions.
  • all of the content item instances in the fleet may be configurable to have multiple simultaneously assigned user sessions.
  • at least two content item instances in the fleet may execute on a single virtual machine instance.
  • an indication may be received that a content item is ready for deployment.
  • the content item may include content, such as a video game, that is being developed and/or tested or content that is fully developed and tested and being sold or otherwise deployed to customers or other users.
  • the content may be created using an SDK or other elements that are associated and/or integrated with various backend or other services or components that may host or otherwise interact with deployed instances of the content item, such as content item instance information service 115, instance interfaces 220 A-N and 222A-N, and/or content execution components 120 of FIG. 2.
  • the SDK or other elements may provide code and other functionality built-in to the content created by the developer that may allow, for example, ingestion, configuration, provisioning and deployment of the content to be more easily and rapidly accomplished, such as by allowing the content to interact more efficiently with a multi-player video gaming or other multi-user environment.
  • an SDK used to create the content may assist in configuration of new user sessions for one or more users and collection of information about executing content item instances, such as a number of occupied user sessions, a number of unoccupied user sessions, content item instance duration, memory usage, and the like.
  • the indication may, for example, be received by content execution components, such as content execution components 120 of FIG .1 from a developer compute node, such as developer compute node 100 of FIG. 1.
  • content item information is received.
  • Such content items may include files, binaries, or code, such as binary files associated with a video game that has been created with the SDK associated with the content item instance information service 115 and/or content execution components 120.
  • the information received at operation 412 may include, for example, information for accessing the content, such as a location at which the code of other data associated with the content item is stored or other information for accessing the content item.
  • the information received at operation 412 may also include, for example, a name for a fleet of instances of the content item, a stage of development for the content item, a description of the content item, and other information.
  • at least one instance of the content item is installed as an image on a virtual machine instance.
  • Operation 414 may be performed based on, for example, the indication that the content item is ready for deployment and any associated content item information.
  • scaling component 230 of FIG. 2 may receive location information for the content item code and issue instructions for the content item code to be installed from the location identified in the received location information as an image on a particular virtual machine.
  • identity information for users is received.
  • User identity information such as identity information 107 of FIG. 1
  • identity information for users may include, for example, identity authentication information for authenticating the identity of the authorized users, such as a user name and password.
  • user identity information may be received at any time and need not necessarily be received either before or after a particular content item is actually deployed.
  • entitlement information is received. Entitlement information, such as entitlement information 106 of FIG. 1, may be received from developers or from other parties.
  • entitlement information may include, for example, for various authorized users and indications of which content items are entitled to be access by the authorized users.
  • entitlement information may indicate entitlements at various levels of granularity, such as particular titles, particular versions, particular story arcs or plotlines, particular virtual locations, particular modes, particular characters, particular weapons, and the like. As should be appreciated, entitlement information may be received at any time and need not necessarily be received either before or after a particular content item is actually deployed.
  • the content item fleet for the content item is scaled based on, for example, the user requests received at operation 420.
  • Scaling of the content item fleet may be performed by, for example, scaling component 230 of FIG. 2.
  • the scaling performed at operation 422 may include copying the image installed at operation 414 onto additional virtual machine instances based, at least in part, on the user requests received at operation 420.
  • scaling of the content item fleet may include detecting of allocation and/or deallocation conditions and performing various operations in response thereto.
  • an allocation condition may include, for example, determining that the total and/or average number of unoccupied user sessions for all content item instances in the fleet have met or dropped below a particular quantity, determining that the total number of unoccupied user sessions for one or more individual content item instances in the fleet have met or dropped below a particular quantity, and/or other conditions. If, at sub-operation 424, an allocation condition is detected, then at sub-operation 426, an additional virtual machine instance may be allocated to the content item fleet. This allocation may occur based on, for example, the detection of the allocation condition. At operation 428, the image installed at operation 414 is copied onto the additional virtual machine instance, thereby enabling the launching of additional content item instances. The additional virtual machine may handle one or many additional users or sessions.
  • a deallocation condition may include, for example, determining that the total and/or average number of unoccupied user sessions for all content item instances in the fleet have met or exceeded a particular quantity, determining that the total number of unoccupied user sessions for one or more individual content item instances in the fleet have met or exceeded a particular quantity, and/or other conditions. If no de-allocation condition is detected at sub-operation 430, then the process may return to sub-operation 424.
  • a virtual machine instance may be de-allocated from the content item fleet. This de-allocation may occur based on, for example, the detection of the de-allocation condition.
  • the de-allocated virtual machine instance may be terminated and/or repurposed. As set forth above, in some cases, it may not be advantageous to terminate and/or repurpose a de-allocated virtual machine instance immediately upon determining that a deallocation condition has occurred. Rather, a determination may be made to stop assigning additional user sessions to content item instances on the de-allocated virtual machine instance and to terminate and/or repurpose the de-allocated virtual machine instance after its existing user sessions have expired.
  • sub-operations 424 and 430 are merely an example of how a content item fleet may be scaled.
  • sub-operations 424 and 430 must be performed in the order shown in FIG. 4 and may be performed in different orders and/or may be performed wholly or partially dependently or independently relative to one other.
  • the determination of whether a de-allocation condition exists may be performed based, at least in part, on a clean-up process that may run at particular intervals and/or in response to certain
  • configurable events such as termination of user sessions. Additionally, in some examples, the determination of whether an allocation condition exists may be performed at particular intervals and/or in response to certain configurable events, such as generation of user sessions.
  • allocation and/or de-allocation determination may also be performed based on historical data, such as a number of user sessions that have been generated or terminated over a particular time period.
  • FIG. 5 is a diagram illustrating an example process for content execution in accordance with the present disclosure.
  • identity information may be received from a user that is attempting to gain access to content.
  • identity and entitlement services 105 of FIG. 1 may receive identity information from system interface 111 of user compute node 110 of FIG. 1.
  • the identity information received at operation 510 may include, for example, a username and password for the user.
  • identity and entitlement services 105 of FIG. 1 may attempt to match the identity information received at operation 510 to stored identity information, such as identity information 107 of FIG. 1.
  • a usemame and password received at operation 510 may be matched to a usemame and password within stored identity information. If a match is detected at operation 51 1, then, at operation 512, the user may be authenticated. If no match is detected at operation 51 1, then at operation 513, the user is not authenticated. As set forth above, if the user cannot be authenticated (e.g., if no match is determined), then the user may, for example, be denied access to any content and/or may be prompted to register, pay, and/or subscribe for access to content and/or may be redirected to various services for performing those operations.
  • content entitlements may be determined for the user.
  • content item instance information service 1 15 may request content entitlement information for the user from identity and entitlement services 105.
  • stored entitlement information such as entitlement information 106 of FIG. 1
  • information is provided to the user regarding content items to which the user is entitled.
  • content item instance information service 1 15 may provide, to content client 112, information about available content items that the user is entitled to access, such as a listing of all available content items or content items having certain content attributes, such as certain plot lines, story arcs, virtual locations, levels, modes, characters, weapons, and the like.
  • a request is received for the user to access a content item.
  • the user may employ the information provided at operation 516 to select a particular content item that the user wishes to access.
  • Content client 1 12 may then submit a request to access a selected content item, which may be received, at operation 518, by content item instance information service 1 15.
  • user preferences for the selected content item are received.
  • the user preferences may include, for example, certain plot lines, story arcs, virtual locations, levels, modes, characters, weapons, and the like desired by the user.
  • telemetry information is received. For example, telemetry information regarding content item instances in a content item fleet may be received by content item instance information service 1 15 via telemetry components 125.
  • the received telemetry information may include an indication of user session availability on the content item fleet, such as an indication of whether there are any unoccupied user sessions for one or more content item instances in the fleet, a number of unoccupied user sessions for one or more content item instances in the fleet, or other availability information. Examples of some other telemetry information that may be received by content item instance information service 1 15 are described in detail above and are not repeated here. It is noted, that telemetry information may be received and updated repeatedly by content item instance information service 1 15, such as at one minute or five minute intervals or at any other desired times or intervals.
  • a user session associated with the user is assigned to a content item instance based on, for example, the telemetry information and/or the user preferences.
  • content item instance information service 1 15 may, based on telemetry information, identify one or more executing content item instances with at least one unoccupied user session that have content attributes that match or partially match the user's preferences. In some examples, content item instance information service 1 15 may then assign the user to one of the identified content item instances. Also, in some examples, content item instance information service 1 15 may assign the user to a content item instance that at least partially matches one or more of the user preferences.
  • content item instance information service 1 15 may, instead of matching and assigning the user to an existing already launched and executing content item instance, request that scaling components 230 launch an additional content item instance to which to assign the user. This may occur, for example, when none of the existing content item instances within the fleet have any remaining unoccupied user sessions and/or when none of the existing content item instances within the fleet have content attributes that are determined to sufficiently match the user's requested content attribute preferences.
  • an indication of the assigned content item instance may be provided to scaling components, such as scaling components 230 of FIG. 2. If the user is being assigned to a content item instance that has not yet been launched, then this may also be indicated as part of the indication provided at operation 526.
  • instructions are provided to establish communications between the user session and the assigned content item. For example, scaling components 230 may instruct the assigned content item instance to communicate with the user session associated with content client 1 12 at the user compute node 1 10 operated by the user.
  • FIG. 6 is a diagram illustrating an example telemetry information routing process that may be used in accordance with the present disclosure.
  • telemetry information is collected from a content item instance.
  • telemetry information may be collected at operation 610 by proxy components 203 and 223 of FIG. 2, which may receive the information from content item instances 201 A-N and 221 A-N through instance interfaces 202A-N and 222A-N, respectively.
  • proxy components 203 and 223 of FIG. 223 of FIG. 2 may receive the information from content item instances 201 A-N and 221 A-N through instance interfaces 202A-N and 222A-N, respectively.
  • various instructions associated with instance interfaces 202A-N and 222A-N such as one or more software development kits (SDKs) may be exposed and/or provided to developers.
  • SDKs software development kits
  • These instructions may assist in enabling the content item instances 201 A-N and 221 A-N to report the telemetry information to the proxy components 203 and 223 through instance interfaces 202A-N and 222A-N.
  • the developers may, in turn, include, embed or otherwise associate these instructions within the content item that is made accessible for deployment.
  • telemetry information collected from each content item instance may include, for example, information regarding a number of occupied user sessions, a number of unoccupied user sessions, content item instance duration, memory usage, and the like.
  • identification information may be assigned to the telemetry information received at operation 610.
  • proxy components 203 and 223 may tag telemetry information with certain keys or other identification information according to a set of conventions.
  • the telemetry information may be identified using the following format: fleet identifier / instance identifier / route identifier / timestamp / globally unique identifier (GUID).
  • the fleet identifier may be an identifier for the particular content item fleet with which the telemetry information is associated.
  • the instance identifier may be an identifier for the particular content item instance with which the telemetry information is associated.
  • the route identifier may be an identifier that indicates one or more recipients (e.g., any or all of processing functions 303A-D of FIG. 3) to which the information should be sent.
  • the telemetry information and the identification information are provided to a location accessible to a routing function, such as telemetry landing 301 of FIG. 3 (which is accessible to telemetry routing function 302).
  • a routing function such as telemetry landing 301 of FIG. 3 (which is accessible to telemetry routing function 302).
  • the telemetry information may be provided to telemetry landing 301 at regular repeating intervals, such as every minute or every five minutes.
  • telemetry information may be provided as a continuous stream of information or at any other time or interval.
  • the telemetry information and the identification information are routed to one or more recipients based on, for example, the identification information and/or the telemetry information itself.
  • telemetry information may be routed to recipients such as any one or more of processing functions 303A-D of FIG. 3, which may be associated with and may process information for content item instance information service 115, content item fleet information service 304, historical information service 305, and additional services 306.
  • processing functions 303 A-D may be associated with various services for content item instance information analysis, such as services 115 and 304-306.
  • instance-level information processing function 303A may be for information associated with each instance in a fleet of content item instances
  • fleet-level information processing function 303B may be for information associated with the fleet of content item instances
  • historical information processing function 303C may be for historical information.
  • the telemetry information may be routed to one or more of processing functions 303 A-D or other recipients based on, for example, the route identifier within the identification information assigned at operation 612.
  • the telemetry information and the identification information are sent to the one or more recipients determined at operation 616.
  • any of telemetry routing function 302 and/or processing functions 303 A-D may include compute services that execute based, at least in part, on events, such as the receiving of telemetry information for routing and/or processing.
  • events such as the receiving of telemetry information for routing and/or processing.
  • telemetry routing function 302 and/or processing functions 303 A-D using distributed computing-based (e.g., cloud-based) functions that execute code based, at least in part, on events may be advantageous by, for example, reducing the amount of computing resources and cost that may be required for routing and/or processing of telemetry information.
  • distributed computing-based e.g., cloud-based
  • the telemetry information and the identification information are received by the one or more recipients, such as one or more of processing functions 303A-D.
  • the telemetry information may be processed, which may include updating previously received telemetry information, organizing the telemetry information such that it may be efficiently accessed by developers, users or other parties, and generating any alarms or other notification based on the telemetry information, such as those described above.
  • one or more of processing functions 303A-D may provide the telemetry information to the appropriate services (e.g., one or more of services 1 15 and/or 304-306).
  • the route identifier within the identification information assigned at operation 612 may be accessed by telemetry routing function 302 and any of processing functions 303 A-D to indicate one or more recipients to which to route the telemetry information.
  • instance-level processing function 303A may provide information to content item instance information service 115
  • fleet-level information processing function 303B may provide information to content item fleet information service 304
  • historical information processing function 303C may provide information to historical information service 305
  • any number of additional processing functions 303D may provide information to any number of additional services 306.
  • any or all of services 115 and 304-306 may be at least partially accessible to a content item developer item for providing information to the content item developer.
  • one or more compute nodes that implement a portion or all of one or more of the technologies described herein may include or may be associated with a computer system that includes or is configured to access one or more computer- accessible media.
  • a compute node which may be referred to also as a computing node, may be implemented on a wide variety of computing environments, such as commodity -hardware computers, virtual machines, web services, computing clusters and computing appliances. Any of these computing devices or environments may, for convenience, be described as compute nodes.
  • FIG. 7 depicts a computer system that includes or is configured to access one or more computer- accessible media.
  • computing device 15 includes one or more processors 10a, 10b and/or 10 ⁇ (which may be referred herein singularly as “a processor 10" or in the plural as “the processors 10") coupled to a system memory 20 via an input/output (I/O) interface 30.
  • processors 10a, 10b and/or 10 ⁇ which may be referred herein singularly as “a processor 10" or in the plural as “the processors 10" coupled to a system memory 20 via an input/output (I/O) interface 30.
  • I/O input/output
  • Computing device 15 further includes a network interface 40 coupled to I/O interface 30.
  • computing device 15 may be a uniprocessor system including one processor 10 or a multiprocessor system including several processors 10 (e.g., two, four, eight or another suitable number).
  • Processors 10 may be any suitable processors capable of executing instructions.
  • processors 10 may be embedded processors implementing any of a variety of instruction set architectures (ISAs), such as the x86, PowerPC, SPARC or MIPS ISAs or any other suitable ISA.
  • ISAs instruction set architectures
  • each of processors 10 may commonly, but not necessarily, implement the same ISA.
  • System memory 20 may be configured to store instructions and data accessible by processor(s) 10.
  • system memory 20 may be implemented using any suitable memory technology, such as static random access memory (SRAM), synchronous dynamic RAM (SDRAM), nonvolatile/Flash ® -type memory or any other type of memory.
  • SRAM static random access memory
  • SDRAM synchronous dynamic RAM
  • nonvolatile/Flash ® -type memory any other type of memory.
  • program instructions and data implementing one or more desired functions are shown stored within system memory 20 as code 25 and data 26.
  • I/O interface 30 may be configured to coordinate I/O traffic between processor 10, system memory 20 and any peripherals in the device, including network interface 40 or other peripheral interfaces.
  • I/O interface 30 may perform any necessary protocol, timing or other data transformations to convert data signals from one component (e.g., system memory 20) into a format suitable for use by another component (e.g., processor 10).
  • I/O interface 30 may include support for devices attached through various types of peripheral buses, such as a variant of the Peripheral Component Interconnect (PCI) bus standard or the Universal Serial Bus (USB) standard, for example.
  • PCI Peripheral Component Interconnect
  • USB Universal Serial Bus
  • Network interface 40 may be configured to allow data to be exchanged between computing device 15 and other device or devices 60 attached to a network or networks 50, such as other computer systems or devices, for example.
  • network interface 40 may support communication via any suitable wired or wireless general data networks, such as types of Ethernet networks, for example.
  • network interface 40 may support communication via telecommunications/telephony networks, such as analog voice networks or digital fiber communications networks, via storage area networks such as Fibre Channel SANs (storage area networks) or via any other suitable type of network and/or protocol.
  • system memory 20 may be one embodiment of a computer-accessible medium configured to store program instructions and data as described above for implementing embodiments of the corresponding methods and apparatus.
  • program instructions and/or data may be received, sent or stored upon different types of computer-accessible media.
  • a computer-accessible medium may include non-transitory storage media or memory media, such as magnetic or optical media— e.g., disk or DVD/CD coupled to computing device 15 via I/O interface 30.
  • a non-transitory computer-accessible storage medium may also include any volatile or non-volatile media, such as RAM (e.g., SDRAM, DDR SDRAM, RDRAM, SRAM, etc.), ROM (read only memory) etc., that may be included in some embodiments of computing device 15 as system memory 20 or another type of memory.
  • a computer-accessible medium may include transmission media or signals such as electrical, electromagnetic or digital signals conveyed via a communication medium, such as a network and/or a wireless link, such as those that may be implemented via network interface 40. Portions or all of multiple computing devices, such as those illustrated in FIG.
  • computing device refers to at least all these types of devices and is not limited to these types of devices.
  • Each of the processes, methods and algorithms described in the preceding sections may be embodied in, and fully or partially automated by, code modules executed by one or more computers or computer processors.
  • the code modules may be stored on any type of non- transitory computer-readable medium or computer storage device, such as hard drives, solid state memory, optical disc and/or the like.
  • the processes and algorithms may be implemented partially or wholly in application-specific circuitry.
  • the results of the disclosed processes and process steps may be stored, persistently or otherwise, in any type of non-transitory computer storage such as, e.g., volatile or non-volatile storage.
  • a system for execution of an electronically presented content item comprising:
  • the information comprises an indication of user session availability on the plurality of instances
  • the operations further comprise receiving information indicating one or more user preferences associated with the content item, and wherein the user session is assigned to the instance of the content item further based, at least in part, on the one or more user preferences.
  • indication of user session availability comprises an indication of a number of unoccupied user sessions for each of the plurality of instances.
  • a method for execution of an electronically presented content item comprising: receiving a request for a user to access the content item; receiving information associated with a plurality of instances of the content item, wherein one or more of the plurality of instances is configurable to have multiple simultaneously assigned user sessions, and wherein the information comprises an indication of user session availability on the plurality of instances;
  • the method of claim 5, further comprising receiving information indicating one or more user preferences associated with the content item, and wherein the user session is assigned to the instance of the content item further based, at least in part, on the one or more user preferences.
  • the indication of user session availability comprises an indication of a number of unoccupied user sessions for each of the plurality of instances.
  • One or more non-transitory computer-readable storage media having stored thereon instructions that, upon execution on at least one compute node, cause the at least one compute node to perform operations comprising:
  • the information comprises an indication of user session availability on the plurality of instances; assigning, based at least in part on the information associated with the plurality of instances and the one or more user preferences, a user session associated with the user to an instance of the content item;
  • a system for deployment of an electronically presented content item comprising:
  • condition associated with allocating comprises at least one of determining that a total number of unoccupied user sessions for the plurality of content item instances has met or dropped below a particular quantity or determining that an average number of unoccupied user sessions for the plurality of content item instances has met or dropped below a particular quantity.
  • condition associated with de-allocating comprises at least one of determining that a total number of unoccupied user sessions for the plurality of content item instances meets or exceeds a particular quantity or determining that an average number of unoccupied user sessions for the plurality of content item instances meets or exceeds a particular quantity.
  • a method for deployment of an electronically presented content item comprising: receiving an indication that the content item is ready for deployment, wherein the content item is deployed using a plurality of content item instances, and wherein one or more of the plurality of content item instances is configurable to have multiple simultaneously assigned user sessions;
  • condition comprises at least one of determining that a total number of unoccupied user sessions for the plurality of content item instances has met or dropped below a particular quantity or determining that an average number of unoccupied user sessions for the plurality of content item instances has met or dropped below a particular quantity.
  • condition comprises at least one of determining that a total number of unoccupied user sessions for the plurality of content item instances meets or exceeds a particular quantity or determining that an average number of unoccupied user sessions for the plurality of content item instances meets or exceeds a particular quantity.
  • One or more non-transitory computer-readable storage media having stored thereon instructions that, upon execution on at least one compute node, cause the at least one compute node to perform operations comprising:
  • condition comprises at least one of determining that a total number of unoccupied user sessions for the plurality of content item instances has met or dropped below a particular quantity or determining that an average number of unoccupied user sessions for the plurality of content item instances has met or dropped below a particular quantity.
  • condition comprises at least one of determining that a total number of unoccupied user sessions for the plurality of content item instances meets or exceeds a particular quantity or determining that an average number of unoccupied user sessions for the plurality of content item instances meets or exceeds a particular quantity.
  • a system for providing information from an instance of a plurality of content item instances comprising:
  • each instance of the plurality of instances is configurable to have multiple simultaneously assigned user sessions, wherein the information comprises an indication of at least one of a number of occupied user sessions for the instance, a number of open user sessions for the instance, a duration of the instance, or memory usage by the instance;
  • determining and the routing are performed by a routing function, and wherein at least one of the routing function or at least one of the plurality of recipients is a cloud-based function that executes code based, at least in part, on events.
  • the operations further comprise assigning identification information to the information from the instance of the plurality of content item instances, wherein the determining is based, at least in part, on the identification information.
  • identification information comprises at least one of a content item fleet identifier, a content item instance identifier, a route identifier, a timestamp, and a globally unique identifier (GUID).
  • GUID globally unique identifier
  • a method for providing information from an instance of a plurality of content item instances comprising
  • the information comprises an indication of at least one of a number of occupied user sessions for the instance, a number of open user sessions for the instance, a duration of the instance, or memory usage by the instance.
  • identification information comprises at least one of a content item fleet identifier, a content item instance identifier, a route identifier, a timestamp, and a globally unique identifier (GUID).
  • GUID globally unique identifier
  • each of the plurality of instances is configurable to have multiple simultaneously assigned user sessions.
  • One or more non-transitory computer-readable storage media having stored thereon instructions that, upon execution on at least one compute node, cause the at least one compute node to perform operations comprising:
  • determining at least one of a plurality of recipients to which to route the information wherein a first recipient of the plurality of recipients is for information associated with each instance of the plurality of content item instances, and wherein a second recipient of the plurality of recipients is for information associated with the plurality of content item instances;
  • the operations further comprise assigning identification information to the information from the instance of the plurality of content item instances, wherein the determining is based, at least in part, on the identification information.
  • identification information comprises at least one of a content item fleet identifier, a content item instance identifier, a route identifier, a timestamp, and a globally unique identifier (GUID).
  • GUID globally unique identifier
  • some or all of the systems and/or modules may be implemented or provided in other ways, such as at least partially in firmware and/or hardware, including, but not limited to, one or more application- specific integrated circuits (ASICs), standard integrated circuits, controllers (e.g., by executing appropriate instructions, and including microcontrollers and/or embedded controllers), field- programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), etc.
  • ASICs application- specific integrated circuits
  • controllers e.g., by executing appropriate instructions, and including microcontrollers and/or embedded controllers
  • FPGAs field- programmable gate arrays
  • CPLDs complex programmable logic devices
  • Some or all of the modules, systems and data structures may also be stored (e.g., as software instructions or structured data) on a computer-readable medium, such as a hard disk, a memory, a network or a portable media article to be read by an appropriate drive or via an appropriate connection.
  • the systems, modules and data structures may also be transmitted as generated data signals (e.g., as part of a carrier wave or other analog or digital propagated signal) on a variety of computer- readable transmission media, including wireless-based and wired/cable-based media, and may take a variety of forms (e.g., as part of a single or multiplexed analog signal, or as multiple discrete digital packets or frames).
  • generated data signals e.g., as part of a carrier wave or other analog or digital propagated signal
  • Such computer program products may also take other forms in other embodiments. Accordingly, the present invention may be practiced with other computer system configurations.
  • Conditional language used herein such as, among others, “can,” “could,” “might,” “may,” “e.g.” and the like, unless specifically stated otherwise, or otherwise understood within the context as used, is generally intended to convey that certain embodiments include, while other embodiments do not include, certain features, elements, and/or steps. Thus, such conditional language is not generally intended to imply that features, elements and/or steps are in any way required for one or more embodiments or that one or more embodiments necessarily include logic for deciding, with or without author input or prompting, whether these features, elements and/or steps are included or are to be performed in any particular embodiment.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

La présente invention concerne des techniques de déploiement de contenu, de mise à l'échelle et de télémétrie. Une fois qu'un élément de contenu est rendu accessible pour un déploiement, une ou plusieurs instances de l'élément de contenu peuvent être installées sous la forme d'une image sur une instance de machine virtuelle. D'autres instances de l'élément de contenu peuvent ensuite être lancées sur la même instance de machine virtuelle et/ou en copiant l'image sur un certain nombre d'autres instances de machines virtuelles. Une ou plusieurs instances d'un élément de contenu peuvent être configurables en vue d'une exécution avec de multiples sessions d'utilisateurs attribuées simultanément. Des informations associées à des instances d'éléments de contenu peuvent être collectées, par exemple un nombre de sessions d'utilisateurs occupées, un nombre de sessions d'utilisateurs inoccupées, une durée d'instance d'élément de contenu, une utilisation de la mémoire et autres. Ces informations peuvent dans certains cas être utilisées pour mettre en correspondance et associer des utilisateurs autorisés à des instances d'éléments de contenu appropriées.
PCT/US2016/022791 2015-03-17 2016-03-17 Déploiement de contenu, mise à l'échelle et télémétrie WO2016149462A2 (fr)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020177029729A KR102073461B1 (ko) 2015-03-17 2016-03-17 콘텐츠 배치, 스케일링, 및 원격 측정
CA2979691A CA2979691C (fr) 2015-03-17 2016-03-17 Deploiement de contenu, mise a l'echelle et telemetrie
EP16726989.3A EP3271817A2 (fr) 2015-03-17 2016-03-17 Déploiement de contenu, mise à l'échelle et télémétrie
JP2017548900A JP2018514023A (ja) 2015-03-17 2016-03-17 コンテンツ・デプロイメント、スケーリングおよびテレメトリ
CN201680016104.9A CN107430519B (zh) 2015-03-17 2016-03-17 内容部署、扩展和遥测
KR1020197019080A KR102168740B1 (ko) 2015-03-17 2016-03-17 콘텐츠 배치, 스케일링, 및 원격 측정

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US14/660,821 US10463957B2 (en) 2015-03-17 2015-03-17 Content deployment, scaling, and telemetry
US14/660,865 2015-03-17
US14/660,821 2015-03-17
US14/660,850 US20160277484A1 (en) 2015-03-17 2015-03-17 Content Deployment, Scaling, and Telemetry
US14/660,865 US20160277508A1 (en) 2015-03-17 2015-03-17 Content Deployment, Scaling, and Telemetry
US14/660,850 2015-03-17

Publications (2)

Publication Number Publication Date
WO2016149462A2 true WO2016149462A2 (fr) 2016-09-22
WO2016149462A3 WO2016149462A3 (fr) 2016-11-03

Family

ID=56098325

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2016/022791 WO2016149462A2 (fr) 2015-03-17 2016-03-17 Déploiement de contenu, mise à l'échelle et télémétrie

Country Status (6)

Country Link
EP (1) EP3271817A2 (fr)
JP (2) JP2018514023A (fr)
KR (2) KR102168740B1 (fr)
CN (1) CN107430519B (fr)
CA (1) CA2979691C (fr)
WO (1) WO2016149462A2 (fr)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109491715B (zh) * 2018-11-06 2021-10-22 深圳市风云实业有限公司 基于Windows NT的应用管理方法、装置及终端
WO2022245126A1 (fr) * 2021-05-18 2022-11-24 주식회사 카카오 Procédé de fourniture de service utilisant une carte d'accès, procédé de filtrage de service et dispositif pour la mise en œuvre de ce procédé

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3844404B2 (ja) * 1998-07-17 2006-11-15 株式会社バンダイナムコゲームス ゲームシステム及び情報記憶媒体
US20070093297A1 (en) * 2005-10-26 2007-04-26 Waterleaf Ltd. On-line, real-time game playing with search facility
US8458530B2 (en) * 2010-09-21 2013-06-04 Oracle International Corporation Continuous system health indicator for managing computer system alerts
JP5617712B2 (ja) * 2011-03-17 2014-11-05 沖電気工業株式会社 コンテンツ配信サーバ、コンテンツ配信システム、コンテンツ配信プログラム及びコンテンツ配信方法
WO2012140969A1 (fr) * 2011-04-14 2012-10-18 株式会社村田製作所 Circuit frontal haute fréquence
US8924930B2 (en) * 2011-06-28 2014-12-30 Microsoft Corporation Virtual machine image lineage
JP2013109548A (ja) * 2011-11-21 2013-06-06 Sony Computer Entertainment Inc 情報処理システム、情報処理方法、プログラム及び情報記憶媒体
US9189285B2 (en) * 2012-12-14 2015-11-17 Microsoft Technology Licensing, Llc Scalable services deployment
US8870661B2 (en) * 2012-12-21 2014-10-28 Sony Computer Entertainment America Llc Cloud-based game slice generation and frictionless social sharing with instant play
US9433862B2 (en) * 2013-02-12 2016-09-06 Microsoft Technology Licensing, Llc Dynamic allocation of computing resources in remote gaming environment
US20140245319A1 (en) * 2013-02-27 2014-08-28 Greenbutton Limited Method for enabling an application to run on a cloud computing system
US9295915B2 (en) * 2013-05-20 2016-03-29 Microsoft Technology Licensing, Llc Game availability in a remote gaming environment

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
None

Also Published As

Publication number Publication date
JP2018514023A (ja) 2018-05-31
CN107430519B (zh) 2021-01-12
KR20190080990A (ko) 2019-07-08
WO2016149462A3 (fr) 2016-11-03
KR20170134493A (ko) 2017-12-06
KR102073461B1 (ko) 2020-02-04
CA2979691C (fr) 2021-09-07
EP3271817A2 (fr) 2018-01-24
JP2020053079A (ja) 2020-04-02
CN107430519A (zh) 2017-12-01
CA2979691A1 (fr) 2016-09-22
KR102168740B1 (ko) 2020-10-23

Similar Documents

Publication Publication Date Title
CN111010394B (zh) 区块链多链管理方法和装置
US10092833B2 (en) Game session sharing
US9393486B2 (en) Character simulation and playback notification in game session replay
CN104598257B (zh) 远程应用程序运行的方法和装置
Yang et al. A profile-based approach to just-in-time scalability for cloud applications
WO2017083156A1 (fr) Génération d'une application à partir d'un modèle
CN103262065A (zh) 传送应用程序状态的方法和系统
CN112767135B (zh) 规则引擎的配置方法及装置、存储介质、计算机设备
CN112494934A (zh) 云游戏数据的处理方法、装置、设备及存储介质
CN107567705B (zh) 维护用户组数字权利列表的方法、目录服务器及计算设备
US20190143216A1 (en) Cognitive user experience optimization
Raj et al. Learning Docker
US20160277484A1 (en) Content Deployment, Scaling, and Telemetry
EP3311269B1 (fr) Test de contenu durant une production d'image
US11522864B1 (en) Secure identity transfer
van der Vegt et al. RAGE reusable game software components and their integration into serious game engines
CA2979691C (fr) Deploiement de contenu, mise a l'echelle et telemetrie
CN118678991A (zh) 基于人工智能的网络存储游戏分配
US20160277508A1 (en) Content Deployment, Scaling, and Telemetry
US10463957B2 (en) Content deployment, scaling, and telemetry
US11559747B1 (en) Service for securely playing video games with publicized players
US10375206B1 (en) Entity-component architecture with components having multiple configurations
Kebbani et al. The Kubernetes Bible: The definitive guide to deploying and managing Kubernetes across major cloud platforms
US10603583B1 (en) Entity-component architecture with components having multiple configurations
US20240012680A1 (en) Techniques for inter-cloud federated learning

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16726989

Country of ref document: EP

Kind code of ref document: A2

ENP Entry into the national phase

Ref document number: 2979691

Country of ref document: CA

ENP Entry into the national phase

Ref document number: 2017548900

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 20177029729

Country of ref document: KR

Kind code of ref document: A

REEP Request for entry into the european phase

Ref document number: 2016726989

Country of ref document: EP