DETAILED ACTION
Claims 1-14 and 16-22 are pending in this application.
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1, 11-14, 17 and 20 are rejected under 35 U.S.C. 103 as being unpatentable over U.S. Pub. No. 2021/0299557 A1 to Pare et al. in view of U.S. Pub. No. 20180361235 A1 to Hunter and further in view of U.S. Pub. No. 2014/0018033 A1 to Luna.
As to claim 1, Pare teaches an electronic device (Client Devices 114), comprising:
a processor (Processors 202) to:
receive a request (game streaming request) to allocate computing resources, the request indicating a content type (the game-streaming service may determine one or more attributes of the game streaming request, such as player attributes of (or, information about) the player associated with the game streaming request, game attributes of (or, information about) a game corresponding to the game streaming request, and possibly other types of attributes of the game streaming request/ Game Attributes 306) to use with the computing resources (“…Also disclosed herein are techniques and systems for using a value-based approach to assign a VM instance to a game streaming request for use of the VM instance in streaming a game to a client device of a player associated with the game streaming request. The techniques and systems described herein may be implemented by a game-streaming service of a service provider network, where the game-streaming service is configured to place one or more incoming game streaming request in a queue, and to process an individual request in the queue for purposes of assigning a VM instance to the game streaming request so that a game can be streamed to a client device of a player associated with the game streaming request. The assigned VM instance may stream the game to the client device by rendering frames and sending the rendered frames to the client device (e.g., over a network) during a game session (e.g., a multiplayer game session). In order to select a VM instance for streaming the game to a given client device, the game-streaming service may determine one or more attributes of the game streaming request, such as player attributes of (or, information about) the player associated with the game streaming request, game attributes of (or, information about) a game corresponding to the game streaming request, and possibly other types of attributes of the game streaming request. The game-streaming service may also determine available VM instances allocated to a subscriber associated with the game streaming request, which may be located across disparate geographical regions. A value(s) may be determined (e.g., computed, calculated, etc.) based on the one or more attributes of the game streaming request, and the value(s) may be used to select a VM instance of the available VM instances for streaming the game to a given client device…” paragraphs 0026/0027);
determine available computing resources (Block 1210) (“…determine available VM instances allocated to a subscriber associated with the game streaming request…” paragraphs 0026/0143);
a scoring (value(s)/single value e.g., a score, a metric, etc.)) of the computing resources according to the content type (streaming a game) (“…A value(s) may be determined (e.g., computed, calculated, etc.) based on the one or more attributes of the game streaming request, and the value(s) may be used to select a VM instance of the available VM instances for streaming the game to a given client device...In general, the value(s) (sometimes referred to herein as a “instance assignment value(s)”) that is/are used to select a VM instance for streaming a game may be indicative of a preference for streaming the game to a client device using a particular VM instance (e.g., a particular type of VM instance). Similar to the logic described herein for game session placement, a single value e.g., a score, a metric, etc.) determined from the attributes of a game streaming request may represent a value within a range of possible values at which a variable can be set, where a maximum value of the range may be indicative of a high-value game streaming request and/or a strong preference for streaming the game to a client device using a particular VM instance,…The value(s) 238 is/are used to select a VM instances 1026 for streaming a game to a given client device 114 associated with the game streaming request. In some embodiments, a single value 238 (e.g., a score, a metric, etc.) determined from the attributes of a game streaming request may represent a value within a range of possible values at which a variable can be set, where a maximum value of the range may be indicative of a high-value game streaming request and/or a strong preference for streaming the game using a particular VM instance 1026, and a minimum value of the range may be indicative of a low-value game streaming request and/or a weak preference for streaming the game using a particular VM instances 1026…” paragraphs 0026/0027/0126/0127); and
allocate a portion of the available computing resources according to the request, and the scoring (“…The queue component 148 may also determine available fleets 138 of VM instances 126 that are allocated to the subscriber 110 associated with the game session request, and may utilize a session placement algorithm 152 to determine (e.g., calculate, compute, etc.) the value(s) 150 for game session placement…” paragraphs 0051/0126/0143).
Pare does not explicitly teaches wherein the content type has a computing characteristic,
determine, based on the computing characteristic of the content type, a scoring of the available computing resources according to the content type, the scoring to indicate suitability of the available computing resources to the content type for which allocation of computing resources is requested,
allocate a portion of the available computing resources according to the request, the content type, and the scoring and
wherein each content type of the plurality of the content types has a computing characteristic.
.
Hunter teaches the scoring wherein the content type has a computing characteristic (The DC identifier 424 receives the user attributes (such as game play intensity, player credentials, etc.,), characteristics of the game and data center metrics information),
Determine (DC Identifier 424), based on the computing characteristic of the content type, a scoring (weight) of the available computing resources according to the content type, the scoring to indicate suitability of the available computing resources to the content type for which allocation of computing resources is requested (the DC identifier 424 may assign a weight for each of the resource requirements specified for the game and use the weighted resource requirements for servicing the request for a player. For example, for a computation intensive game, the processing and storage resources may be weighed more than networking resources), and
allocate a portion of the available computing resources according to the request, the content type, and the scoring (Consequently, a data center that has the sufficient communication connection and network resources is identified for processing the request for the player) (“...The DC identifier 424 receives the user attributes (such as game play intensity, player credentials, etc.,), characteristics of the game and data center metrics information and uses this information to identify a data center in the geo location that can meet or exceed the requirements specified for game play of the game. In some implementations, it may be determined that none of the data center in the vicinity of the geo location of a player have all of the resources needed for servicing the game play session of the game, so as to provide a comparable game play experience for the player. In such implementations, the DC identifier 424 may assign a weight for each of the resource requirements specified for the game and use the weighted resource requirements for servicing the request for a player. For example, for a computation intensive game, the processing and storage resources may be weighed more than networking resources. As a result, the DC identifier 424 may identify a data center within the geo location of the player that has sufficient processing and storage resources for servicing the request. In another example, for a speed intensive game, communication connection and network resources may be weighed more than processing and storage resources. Consequently, a data center that has the sufficient communication connection and network resources is identified for processing the request for the player…” paragraphs 0068/0070).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claim invention to modify the system of Pare with the teaching of Hunter because the teaching of Hunter would improve the system of Pare by providing a data center manager within a game play scheduler to process a request by identifying a geo location for each player including a first player that initiated the request, identify a data center having resource requirements in a vicinity of the geo location of the player, and generate a signal to the identified data center with a request to instantiate the game on one or more servers within the identified data center (Hunter paragraph 0014).
Luna teaches wherein each content type of the plurality of the content types has a computing characteristic (Browsing Behavior Analyzer 407 and Streaming Behavior Analyzer 408) (“…The user behavior profiling engine 403 can also detect, identify, track and/or profile user behavior with respect to certain file types or certain types of content. For example, a user may view streaming video for no more than 3 minutes or 2 minutes, or 30 sec. of a given video file and may stream audio for no more than 15 seconds or 30 seconds, etc. for a given audio file. The behavior profiling engine 403 may notice, detect, track, and/or record that the user downloads or purchases applications from certain online marketplaces more than others, etc. Such user behavior/habit profiles are illustrated with reference to the examples of FIG. 1A-1 and FIG. 1A-2…The user behavior profiling engine 403 can also detect, identify, or distinguish browsing activities and streaming activities. Based on the detection of browsing activity, the user behavior profiling engine 403 (e.g., or the browser behavior analyzer 407) can analyzer a user's actions and behavior when using different browsers, when browsing various websites, different websites, or browsing market places, when making a purchase (e.g., depending on type of product or type of online marketplace), different types of websites (e.g., gaming site or online social networking site, or blogging site). The user behavior and actions can be analyzed with respect to websites depending on topic (e.g., inferred or explicitly specified user interest). For example, the system and determine or detect that the user tends to spend more time on skiing related sites rather than scuba diving related sites (e.g., via the user behavior profiling engine 403). The system (user behavior profiling engine 403 or the browsing behavior analyzer 407) can also determine or detect that the user spends more or less time browsing during certain times of day or days of the week. The user-based content delivery optimization engine 401, can thus use this information, and/or optionally in conjunction with additional information collected or determined by the local proxy 275, adjust the bandwidth for the user to ensure adequate bandwidth for the user's browsing and/or any other needs at the mobile device 250 based on present or anticipated conditions and/or user behavior…Similarly, user behavior profiling engine 403 or the streaming behavior analyzer 408 can detect streaming activity at the mobile device 250. Based on the detection of streaming activity, the profiling engine 403 can detect, analyze, and infer or determine a given user's behavior, habits or tendencies when streaming content (e.g., audio, video, etc.) For example, the streaming behavior analyzer 408 may determine that the user streams certain types of content for longer periods of time (e.g., audio longer than video or vice versa). The analyzer 408 may detect or determine that when streams pertain to certain topics, the user streams the content for longer or shorter periods of time. Such topics may also be inferred by the analyzer 408 or determined by the local proxy 275 via implicit or explicit mechanisms. The streaming behavior analyzer 408 can also detect or determine differences in streaming needs or behaviors from the user during different times of day. For example, a given user may view a video stream or listen to an audio stream for shorter periods of time during the day time (or business hours/business days) than after hours (e.g., after business hours or on weekends)…” paragraphs 0138-0140).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claim invention to modify the system of Pare and Hunter with the teaching of Luna because the teaching of Luna would improve the system of Pare and Hunter by providing a user behavior profiling engine to detect, identify, track and/or profile user behavior with respect to certain file types or certain types of content and allocating bandwidth resources accordingly (Luna paragraph 0138).
As to claim 11, Pare teaches a computer-readable medium storing executable code, which, when executed by a processor of an electronic device, causes the processor to:
receive diagnostic information (a subscriber may be able to create its own customized session placement algorithm/customizing a session placement algorithm 152/402) of computing resources allocated according to content type to use with the computing resources (“…In addition, the techniques and systems described herein place more control in the hands of a subscribing game developer, at least in terms of allowing the game developer to control how resources (e.g., fleets of VM instances) of the service provider network are allocated amongst their clients (e.g., players of the subscribing game developer's video games). For example, a subscriber may be able to create its own customized session placement algorithm that is utilized by the game-hosting service for game session placement and/or to create its own customized streaming instance assignment algorithm that is utilized by the game-hosting service for assignment of a VM instance for streaming a game to a given client device. Additionally, or alternatively, a subscriber may voluntarily provide its own attributes (e.g., player attributes, game attributes, etc.) that are usable by the game-hosting service to determine where to place game sessions and/or which VM instances to use for game streaming using the value-based approaches described herein, thereby optimizing game session placements for the subscriber. Additionally, or alternatively, a subscriber may specify customized weights for particular attributes (e.g., player attributes, game attributes, etc.) that may be taken into account by the game-hosting service in determining the placement values for different available fleets during game session placement and/or in determining instance assignment values for different available VM instances during the assignment of instances to game streaming requests. These and other aspects described herein provide subscribers of the service provider network with more control and more autonomy over how their players are dispersed across available resources (e.g., fleets of VM instances) within the service provider network…FIG. 4 illustrates a schematic diagram 400 showing how a subscriber(s) 110 of the service provider network 102 may provide data for customizing a session placement algorithm 152 used by the game-hosting service 106 (e.g., via the queue component 148) for game session placement. As mentioned, developers 110 may provide data to the game-hosting service 106 through the developer portal(s) 116, such as by uploading the data over one or more networks 120…FIG. 4 depicts a first subscriber 110(1) using a first subscriber device 108(1) to send attributes 306 to the game-hosting service 106, such as player attributes 306(1) of their players 112 and/or game attributes 306(2) of their games. These attributes 306 may be stored as attribute data 212 and used by the session placement algorithm 152 for the subscriber 110(1) to determine placement values 150 during game session placement. In some embodiments, the subscriber-provided attributes 306 may be used to train a machine-learning model(s) 334 used as the session placement algorithm 152. FIG. 4 also depicts a second subscriber 110(2) using a second subscriber device 108(2) to send a customized session placement algorithm 402 to the game-hosting service 106. This customized algorithm 402 might be specified as a customized set of rules 332, such as rules 332 that define criteria for valuing game session requests 302 at certain placement values 150. The customized algorithm 402 might additionally, or alternatively, define a type of machine learning model(s) 334 that is to be utilized for game session placement by training the machine learning model(s) 334 on a sample set of the subscriber's 110 own data. FIG. 4 also depicts a third subscriber 110(3) using a third subscriber device 108(3) to send weights 404 to the game-hosting service 106. These weights 404 may be assigned to particular attributes 306 used for game session placement. For example, the subscriber 110(3) may choose to weight a “number of games played 310” attribute more heavily than an amount of money spent 312″ attribute. With these weights 404, the session placement algorithm 152 may be customized to the subscriber's 110(3) preferences in order to place more control in the hands of the subscriber 110 for game session placement. Any or all of the data received by the game-hosting service 106 in FIG. 4 may be used to update subscriber parameter values 232 in the data store 134 so that a customized session placement algorithm 152 can be created for a subscriber 110…” paragraphs 0032/0079/0080/0094/0096-0098);
process the diagnostic information according to a machine learning process (machine learning model(s)) to determine, based on the diagnostic information a more appropriate computing resource for a particular content type (“…For example, a subscriber may be able to create its own customized session placement algorithm that is utilized by the game-hosting service for game session placement and/or to create its own customized streaming instance assignment algorithm that is utilized by the game-hosting service for assignment of a VM instance for streaming a game to a given client device…In some embodiments, the streaming instance assignment algorithm 215 may represent a machine learning model(s) 1134 that is configured to receive attributes 306 as input 1128 and to generate output 1130 that assigns scores to available VM instances 1026. Machine learning is described in detail elsewhere herein and will not be described in further detail here for the sake of brevity. Ultimately, one of the VM instances 1026(1)(1) is selected as a selected VM instance 1026(1)(1) for streaming the game to the client device 114(1) of the player 112(1) associated with the game streaming request 1028(1). Accordingly, as shown in FIG. 11, the selected. VM instance 1026(1)(1) can be assigned to the game streaming request 1028(1) based at least in part on the value(s) 238 determined using the streaming instance assignment algorithm 215…” paragraphs 0032/0096/0137); and
responsive to receipt of a request to allocate computing resources, the request indicating the content type game session request 302) to use with the computing resources: allocate a portion of the computing resources according to a result of the machine learning process (Block 516/ customized machine learning model(s) 334) (“…At 502, a queue component 148 of the game-hosting service 106 may queue 304 a game session request 302 in a queue 228. Said another way, the game session request 302 may be placed in a queue 228. This is depicted schematically in FIG. 3. The game session request 302 may be associated with a subscriber 110 of a service provider network 102. The subscriber 110 may represent a game developer of an online, multiplayer video game (or, game). Therefore, the game session request 302 may correspond to a game of the subscriber 110. Furthermore, the game session request 302 may be associated with a set of multiple players 112(1)-(S) who may have been matched together based on a matchmaking algorithm. Accordingly, the game session request 302 may also request player sessions for each player 112 included in the request 302…At 516, the queue component 148 may select, based at least in part on the value(s) 150 determined at block 512, a fleet 138 (e.g., the first fleet 138(1) or the second fleet 138(2)) as a selected fleet 138. The selection at block 516 may be based at least in part on a comparison between multiple values determined at block 514 (e.g., a comparison between a first value 150 for the first fleet 138(1) and the second value 150 for the second fleet 138(2)). For example, if the first value 150 is greater than the second value 150, the queue component 148 may select the fleet 138 associated with the greater, first value 150. The selection at block 516 may be based on a comparison between fleet properties (e.g., performance metrics) of the available fleets 138 (e.g., a comparison between a first average latency that the first fleet 138(1) provides to the players 112 and a second average latency that the second fleet 138(2) provides to the players 112). Accordingly, at block 516, the queue component 148 may determine average latencies and/or other fleet/instance properties such as capacity (and/or other performance metrics), cost, etc.) of multiple fleets 138, such as a first average latency that the first fleet 138(1) provides to the players 112, a second average latency that the second fleet 138(2) provides to the players 112, and possibly additional average latencies, depending on the number of fleets 138 evaluated. If a first average latency is less than a second average latency, the queue component 148 may select the fleet 138 associated with the lower average latency (or the higher average latency, depending on how the value-based session placement is configured). In some embodiments, the value(s) 150 determined at block 512 may be based at least in part on fleet data 234 that specifies the fleet/instance properties of each available fleet 138. In this way, the selection of the fleet 138 at block 516 can be based on the value(s) 150, which, in turn, is/are based on the properties of the available fleets 138 (e.g., average latencies, capacities, costs, etc.)…At 606, the game-hosting service 106 may receive a customized machine learning model(s) 334. For example, the subscriber 110 may select a type of machine learning model(s), or an ensemble of models, that the subscriber 110 would like the game-hosting service 106 to utilize during value-based game session placements, as described herein…The game-streaming service 1006 may be tasked with assigning an available VM instance 1026 allocated to a subscriber 110, and to identify a server process 132 executing on the selected VM instance 1026, which will serve a player 112 who is streaming a game to his/her client device 114…” paragraphs 0090/0096/0124/0137),
wherein the result of the machine learning process (customized machine learning model(s) 334) indicates that the portion of the computing resources is the more appropriate computing resource that is suitable for the content type (“…At 606, the game-hosting service 106 may receive a customized machine learning model(s) 334. For example, the subscriber 110 may select a type of machine learning model(s), or an ensemble of models, that the subscriber 110 would like the game-hosting service 106 to utilize during value-based game session placements, as described herein…The game-streaming service 1006 may be tasked with assigning an available VM instance 1026 allocated to a subscriber 110, and to identify a server process 132 executing on the selected VM instance 1026, which will serve a player 112 who is streaming a game to his/her client device 114…” paragraphs 0124/0137).
Pare does not explicitly teach process the diagnostic information according to a machine learning process to determine, based on the diagnostic information and a computing characteristic of the content type, a more appropriate computing resource that is suitable for the content type.
Hunter teaches process the diagnostic information according to a machine learning process to determine, based on the diagnostic information and a computing characteristic of the content type (DC Identifier 424), a more appropriate computing resource that is suitable for the content type (Consequently, a data center that has the sufficient communication connection and network resources is identified for processing the request for the player) (“...The DC identifier 424 receives the user attributes (such as game play intensity, player credentials, etc.,), characteristics of the game and data center metrics information and uses this information to identify a data center in the geo location that can meet or exceed the requirements specified for game play of the game. In some implementations, it may be determined that none of the data center in the vicinity of the geo location of a player have all of the resources needed for servicing the game play session of the game, so as to provide a comparable game play experience for the player. In such implementations, the DC identifier 424 may assign a weight for each of the resource requirements specified for the game and use the weighted resource requirements for servicing the request for a player. For example, for a computation intensive game, the processing and storage resources may be weighed more than networking resources. As a result, the DC identifier 424 may identify a data center within the geo location of the player that has sufficient processing and storage resources for servicing the request. In another example, for a speed intensive game, communication connection and network resources may be weighed more than processing and storage resources. Consequently, a data center that has the sufficient communication connection and network resources is identified for processing the request for the player…” paragraphs 0068/0070).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claim invention to modify the system of Pare with the teaching of Hunter because the teaching of Hunter would improve the system of Pare by providing a data center manager within a game play scheduler to process a request by identifying a geo location for each player including a first player that initiated the request, identify a data center having resource requirements in a vicinity of the geo location of the player, and generate a signal to the identified data center with a request to instantiate the game on one or more servers within the identified data center (Hunter paragraph 0014).
Luna teaches receive diagnostic information of computing resources allocated according to a content type of a plurality of content types to use with the computing resources (Browsing Behavior Analyzer 407 and Streaming Behavior Analyzer 408) (“…The user behavior profiling engine 403 can also detect, identify, track and/or profile user behavior with respect to certain file types or certain types of content. For example, a user may view streaming video for no more than 3 minutes or 2 minutes, or 30 sec. of a given video file and may stream audio for no more than 15 seconds or 30 seconds, etc. for a given audio file. The behavior profiling engine 403 may notice, detect, track, and/or record that the user downloads or purchases applications from certain online marketplaces more than others, etc. Such user behavior/habit profiles are illustrated with reference to the examples of FIG. 1A-1 and FIG. 1A-2…The user behavior profiling engine 403 can also detect, identify, or distinguish browsing activities and streaming activities. Based on the detection of browsing activity, the user behavior profiling engine 403 (e.g., or the browser behavior analyzer 407) can analyzer a user's actions and behavior when using different browsers, when browsing various websites, different websites, or browsing market places, when making a purchase (e.g., depending on type of product or type of online marketplace), different types of websites (e.g., gaming site or online social networking site, or blogging site). The user behavior and actions can be analyzed with respect to websites depending on topic (e.g., inferred or explicitly specified user interest). For example, the system and determine or detect that the user tends to spend more time on skiing related sites rather than scuba diving related sites (e.g., via the user behavior profiling engine 403). The system (user behavior profiling engine 403 or the browsing behavior analyzer 407) can also determine or detect that the user spends more or less time browsing during certain times of day or days of the week. The user-based content delivery optimization engine 401, can thus use this information, and/or optionally in conjunction with additional information collected or determined by the local proxy 275, adjust the bandwidth for the user to ensure adequate bandwidth for the user's browsing and/or any other needs at the mobile device 250 based on present or anticipated conditions and/or user behavior…Similarly, user behavior profiling engine 403 or the streaming behavior analyzer 408 can detect streaming activity at the mobile device 250. Based on the detection of streaming activity, the profiling engine 403 can detect, analyze, and infer or determine a given user's behavior, habits or tendencies when streaming content (e.g., audio, video, etc.) For example, the streaming behavior analyzer 408 may determine that the user streams certain types of content for longer periods of time (e.g., audio longer than video or vice versa). The analyzer 408 may detect or determine that when streams pertain to certain topics, the user streams the content for longer or shorter periods of time. Such topics may also be inferred by the analyzer 408 or determined by the local proxy 275 via implicit or explicit mechanisms. The streaming behavior analyzer 408 can also detect or determine differences in streaming needs or behaviors from the user during different times of day. For example, a given user may view a video stream or listen to an audio stream for shorter periods of time during the day time (or business hours/business days) than after hours (e.g., after business hours or on weekends)…” paragraphs 0138-0140).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claim invention to modify the system of Pare and Hunter with the teaching of Luna because the teaching of Luna would improve the system of Pare and Hunter by providing a user behavior profiling engine to detect, identify, track and/or profile user behavior with respect to certain file types or certain types of content and allocating bandwidth resources accordingly (Luna paragraph 0138).
As to claim 12, Pare teaches the computer-readable medium of claim 11, wherein the diagnostic information is historical data (For example, a subscriber may be able to create its own customized session placement algorithm) received prior to receipt of the request to allocate computing resources (“…In addition, the techniques and systems described herein place more control in the hands of a subscribing game developer, at least in terms of allowing the game developer to control how resources (e.g., fleets of VM instances) of the service provider network are allocated amongst their clients (e.g., players of the subscribing game developer's video games). For example, a subscriber may be able to create its own customized session placement algorithm that is utilized by the game-hosting service for game session placement and/or to create its own customized streaming instance assignment algorithm that is utilized by the game-hosting service for assignment of a VM instance for streaming a game to a given client device. Additionally, or alternatively, a subscriber may voluntarily provide its own attributes (e.g., player attributes, game attributes, etc.) that are usable by the game-hosting service to determine where to place game sessions and/or which VM instances to use for game streaming using the value-based approaches described herein, thereby optimizing game session placements for the subscriber. Additionally, or alternatively, a subscriber may specify customized weights for particular attributes (e.g., player attributes, game attributes, etc.) that may be taken into account by the game-hosting service in determining the placement values for different available fleets during game session placement and/or in determining instance assignment values for different available VM instances during the assignment of instances to game streaming requests. These and other aspects described herein provide subscribers of the service provider network with more control and more autonomy over how their players are dispersed across available resources (e.g., fleets of VM instances) within the service provider network…” paragraphs 0032).
As to claim 13, Pare teaches the computer-readable medium of claim 11, wherein the diagnostic information indicates performance metrics (The selection at block 516 may be based on a comparison between fleet properties (e.g., performance metrics) of the available fleets 138 (e.g., a comparison between a first average latency that the first fleet 138(1) ) of the computing resources for the content type (“…At 516, the queue component 148 may select, based at least in part on the value(s) 150 determined at block 512, a fleet 138 (e.g., the first fleet 138(1) or the second fleet 138(2)) as a selected fleet 138. The selection at block 516 may be based at least in part on a comparison between multiple values determined at block 514 (e.g., a comparison between a first value 150 for the first fleet 138(1) and the second value 150 for the second fleet 138(2)). For example, if the first value 150 is greater than the second value 150, the queue component 148 may select the fleet 138 associated with the greater, first value 150. The selection at block 516 may be based on a comparison between fleet properties (e.g., performance metrics) of the available fleets 138 (e.g., a comparison between a first average latency that the first fleet 138(1) provides to the players 112 and a second average latency that the second fleet 138(2) provides to the players 112). Accordingly, at block 516, the queue component 148 may determine average latencies and/or other fleet/instance properties such as capacity (and/or other performance metrics), cost, etc.) of multiple fleets 138, such as a first average latency that the first fleet 138(1) provides to the players 112, a second average latency that the second fleet 138(2) provides to the players 112, and possibly additional average latencies, depending on the number of fleets 138 evaluated. If a first average latency is less than a second average latency, the queue component 148 may select the fleet 138 associated with the lower average latency (or the higher average latency, depending on how the value-based session placement is configured). In some embodiments, the value(s) 150 determined at block 512 may be based at least in part on fleet data 234 that specifies the fleet/instance properties of each available fleet 138. In this way, the selection of the fleet 138 at block 516 can be based on the value(s) 150, which, in turn, is/are based on the properties of the available fleets 138 (e.g., average latencies, capacities, costs, etc.)…” paragraph 0090).
As to claim 14, Pare teaches the computer-readable medium of claim 13, wherein performance metrics of a second portion of the computing resources are improved in quality than performance metrics of a first portion of the computing resources for the content type (Auto-Scaling Component 224) (“…The computer-readable media 206 may further store an auto-scaling component 224 that, when executed by the processor(s) 202, scales up or down the number of instances 126 available to host game sessions or other processes 132. For example, the auto-scaling component 224 may provide a fast, efficient, and accurate way to match fleet capacity to player usage. In some examples, the auto-scaling component 224 may track the fleet's 138 hosting metrics and determine when to add or remove instances 126 based on a set of guidelines, called policies, that may be defined by the developer 110. The auto-scaling component 224 can adjust capacity in response to changes in player demand to help ensure that the fleet of instances 126 has availability for new players without maintaining an excessive amount of idle resources…” paragraph 0064).
As to claim 17, Hunter teaches the electronic device of claim 1, wherein the processor is to:
determine the scoring of the available computing resources based on a static information table, the static information table to indicate information related to each of the available computing resources (Geo Location Indicator 306a), the information including at least one of:
a physical location of a corresponding available computing resource (geo location(s));
an amount of memory of the corresponding available computing resource;
a network throughput of the corresponding available computing resource; or
a number of processing cores of the corresponding available computing resource (“… The cloud gaming system then performs latency and other quality related tests to identify data center(s) that is in the vicinity of the geo location(s) for each of the players and the user. The cloud gaming system sends a signal to the identified data center(s) to make the game available for game play at the scheduled time. A server at the data center(s) in the geo location(s) processes the signal by loading the game code of the video game and updates the game play to a point where game play is to begin, in advance to enable the user and the players to access the game and begin game play, at the scheduled time.…Based on the evaluation, a data center is identified at the geo location to service the game play request for each player. One or more servers in the data center are then used to execute an instance of the game…” paragraphs 0008/0050/0059/0062).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claim invention to modify the system of Pare with the teaching of Hunter because the teaching of Hunter would improve the system of Pare by providing a data center manager within a game play scheduler to process a request by identifying a geo location for each player including a first player that initiated the request, identify a data center having resource requirements in a vicinity of the geo location of the player, and generate a signal to the identified data center with a request to instantiate the game on one or more servers within the identified data center (Hunter paragraph 0014).
As to claim 20, Hunter teaches the electronic device of claim 1, wherein the scoring includes a ranking of each of the available computing resources based on a corresponding suitability with respect to the content type for which allocation of computing resources is requested for, and wherein the portion of the available computing resources is ranked first in the ranking (DC Identifier 424) (“...The DC identifier 424 receives the user attributes (such as game play intensity, player credentials, etc.,), characteristics of the game and data center metrics information and uses this information to identify a data center in the geo location that can meet or exceed the requirements specified for game play of the game. In some implementations, it may be determined that none of the data center in the vicinity of the geo location of a player have all of the resources needed for servicing the game play session of the game, so as to provide a comparable game play experience for the player. In such implementations, the DC identifier 424 may assign a weight for each of the resource requirements specified for the game and use the weighted resource requirements for servicing the request for a player. For example, for a computation intensive game, the processing and storage resources may be weighed more than networking resources. As a result, the DC identifier 424 may identify a data center within the geo location of the player that has sufficient processing and storage resources for servicing the request. In another example, for a speed intensive game, communication connection and network resources may be weighed more than processing and storage resources. Consequently, a data center that has the sufficient communication connection and network resources is identified for processing the request for the player…” paragraphs 0068/0070).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claim invention to modify the system of Pare with the teaching of Hunter because the teaching of Hunter would improve the system of Pare by providing a data center manager within a game play scheduler to process a request by identifying a geo location for each player including a first player that initiated the request, identify a data center having resource requirements in a vicinity of the geo location of the player, and generate a signal to the identified data center with a request to instantiate the game on one or more servers within the identified data center (Hunter paragraph 0014).
As to claim 22, Luna teaches the electronic device of claim 1, wherein the plurality of content types includes at least two of:
gaming use; video rendering; streaming; machine learning; artificial applications; or crypto mining (Browsing Behavior Analyzer 407 and Streaming Behavior Analyzer 408) (“…The user behavior profiling engine 403 can also detect, identify, track and/or profile user behavior with respect to certain file types or certain types of content. For example, a user may view streaming video for no more than 3 minutes or 2 minutes, or 30 sec. of a given video file and may stream audio for no more than 15 seconds or 30 seconds, etc. for a given audio file. The behavior profiling engine 403 may notice, detect, track, and/or record that the user downloads or purchases applications from certain online marketplaces more than others, etc. Such user behavior/habit profiles are illustrated with reference to the examples of FIG. 1A-1 and FIG. 1A-2…The user behavior profiling engine 403 can also detect, identify, or distinguish browsing activities and streaming activities. Based on the detection of browsing activity, the user behavior profiling engine 403 (e.g., or the browser behavior analyzer 407) can analyzer a user's actions and behavior when using different browsers, when browsing various websites, different websites, or browsing market places, when making a purchase (e.g., depending on type of product or type of online marketplace), different types of websites (e.g., gaming site or online social networking site, or blogging site). The user behavior and actions can be analyzed with respect to websites depending on topic (e.g., inferred or explicitly specified user interest). For example, the system and determine or detect that the user tends to spend more time on skiing related sites rather than scuba diving related sites (e.g., via the user behavior profiling engine 403). The system (user behavior profiling engine 403 or the browsing behavior analyzer 407) can also determine or detect that the user spends more or less time browsing during certain times of day or days of the week. The user-based content delivery optimization engine 401, can thus use this information, and/or optionally in conjunction with additional information collected or determined by the local proxy 275, adjust the bandwidth for the user to ensure adequate bandwidth for the user's browsing and/or any other needs at the mobile device 250 based on present or anticipated conditions and/or user behavior…Similarly, user behavior profiling engine 403 or the streaming behavior analyzer 408 can detect streaming activity at the mobile device 250. Based on the detection of streaming activity, the profiling engine 403 can detect, analyze, and infer or determine a given user's behavior, habits or tendencies when streaming content (e.g., audio, video, etc.) For example, the streaming behavior analyzer 408 may determine that the user streams certain types of content for longer periods of time (e.g., audio longer than video or vice versa). The analyzer 408 may detect or determine that when streams pertain to certain topics, the user streams the content for longer or shorter periods of time. Such topics may also be inferred by the analyzer 408 or determined by the local proxy 275 via implicit or explicit mechanisms. The streaming behavior analyzer 408 can also detect or determine differences in streaming needs or behaviors from the user during different times of day. For example, a given user may view a video stream or listen to an audio stream for shorter periods of time during the day time (or business hours/business days) than after hours (e.g., after business hours or on weekends)…” paragraphs 0138-0140).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claim invention to modify the system of Pare and Hunter with the teaching of Luna because the teaching of Luna would improve the system of Pare and Hunter by providing a user behavior profiling engine to detect, identify, track and/or profile user behavior with respect to certain file types or certain types of content and allocating bandwidth resources accordingly (Luna paragraph 0138).
Claims 2 and 3 are rejected under 35 U.S.C. 103 as being unpatentable over U.S. Pub. No. 2021/0299557 A1 to Pare et al. in view of U.S. Pub. No. 20180361235 A1 to Hunter and further in view of U.S. Pub. No. 2014/0018033 A1 to Luna as applied to claim 1 above, and further in view of U.S. Pub. No. 2018/0157758 A1 to Arrizabalaga et al.
As to claim 2, Pare as modified by Hunter and Luna teaches the electronic device of claim 1, however it is silent is silent with reference to wherein the processor is to determine the scoring of the computing resources according to the content type at least partially according to a machine learning process.
Arrizabalaga teaches wherein the processor is to determine the scoring of the computing resources according to the content type (Game Console) at least partially according to a machine learning process (“…The ranking engine 134 generates respective ranking scores for resources indexed in the index database 122 based on the values of search engine ranking signals for the resources and ranks the resources based on the respective ranking scores. The ranking score for a given resource reflects the relevance of the resources to the received search query 110, the quality of the given resource, or both… When a search engine ranking signal is not available for a resource, the indexing engine 132 can use a machine learning model 150 to improve the quality of the ranking score for the resoure. In particular, the indexing engine 132 uses the machine learning model 150 to augment the index database 122 with a predicted value of the search engine ranking signal for the resource….” paragraphs 0023/0025/0026).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claim invention to modify the system of Pare, Hunter and Luna with the teaching of Arrizabalaga because the teaching of Arrizabalaga would improve the system of Pare, Hunter and Luna by providing a machine learning model used to generate values of search engine ranking/scoring signals for resources.
As to claim 3, Pare teaches the electronic device of claim 2, wherein the scoring of the computing resources is unique (customized weights…values) to the request to allocate computing resources (“…Additionally, or alternatively, a subscriber may voluntarily provide its own attributes (e.g., player attributes, game attributes, etc.) that are usable by the game-hosting service to determine where to place game sessions and/or which VM instances to use for game streaming using the value-based approaches described herein, thereby optimizing game session placements for the subscriber. Additionally, or alternatively, a subscriber may specify customized weights for particular attributes (e.g., player attributes, game attributes, etc.) that may be taken into account by the game-hosting service in determining the placement values for different available fleets during game session placement and/or in determining instance assignment values for different available VM instances during the assignment of instances to game streaming requests. These and other aspects described herein provide subscribers of the service provider network with more control and more autonomy over how their players are dispersed across available resources (e.g., fleets of VM instances) within the service provider network…” paragraph 0032).
Claim 4 is rejected under 35 U.S.C. 103 as being unpatentable over U.S. Pub. No. 2021/0299557 A1 to Pare et al. in view of U.S. Pub. No. 20180361235 A1 to Hunter and further in view of U.S. Pub. No. 2014/0018033 A1 to Luna as applied to claim 1 above, and further in view of U.S. Pat. No. 9,224,290 B1 issued to Mason et al.
As to claim 4, Pare as modified by Hunter and Luna teaches the electronic device of claim 1, however it is silent is silent with reference to wherein the processor is to allocate the portion of the available computing resources based on a physical proximity of the portion of the available computing resources to a user who provides the request to allocate computing resources.
Manson teaches wherein the processor is to allocate the portion of the available computing resources based on a physical proximity of the portion of the available computing resources to a user who provides the request to allocate computing resources (“…In some implementations, the user proximity data 124 comprises information indicative of a number of people proximate to the device(s). This quantity information may be used to prioritize or allocate resources at the server 114, on the network 112, on the media devices 108, and so forth. The proximity instructions 306 may be configured to determine a delivery priority based at least in part on the number of people proximate to the device(s). For example, as shown above at 302(9), the media device 108(2) receiving a stream of the content 110 with five users 102 proximate may receive a higher priority from the server 114, the network 112, and so forth, compared to the media device 108(5) which has only a single user 102 proximate…” Col. 17 Ln. 32-44).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claim invention to modify the system of Pare, Hunter and Luna with the teaching of Mason because the teaching of Mason would improve the system of Pare, Hunter and Luna by providing a technique for allocating resources based on the proximity of the users to allow for efficient and reduced latency in the use of computing resources.
Claim 5 is rejected under 35 U.S.C. 103 as being unpatentable over U.S. Pub. No. 2021/0299557 A1 to Pare et al. in view of U.S. Pub. No. 20180361235 A1 to Hunter and further in view of U.S. Pub. No. 2014/0018033 A1 to Luna as applied to claim 1 above, and further in view of U.S. Pub. No. 2018/0024868 A1 to Mehta et al.
As to claim 5, Pare as modified by Hunter and Luna teaches the electronic device of claim 1, however it is silent with reference to wherein the processor is to: receive feedback indicating performance of the portion of the available computing resources; and allocate a second portion of the available computing resources responsive to the feedback indicating the performance of the portion of the available computing resources is less than a threshold.
Mehta teaches wherein the processor is to: receive feedback indicating performance of the portion of the available computing resources (The model may also be tuned based on feedback) and allocate a second portion of the available computing resources responsive to the feedback indicating the performance of the portion of the available computing resources is less than a threshold (service level agreements/ weights) (“…The performance prediction server 202 may build a model from the performance metrics. Examples of generating a model based on metrics are further described below and are applicable to the performance metrics selected and captured for the computer resources 210. The model may also be tuned based on feedback. As discussed above, in an example, the performance metrics may be user-facing to evaluate the experience of the user of the web hosting services fee, and the feedback may be based on user evaluations of the web hosting services. Also, performance metrics and feedback may be determined based on service level agreements that may specify levels for one or more performance metrics that must be achieved by the service provider providing the web hosting services using the computer resources 210. For example, a minimum response time may be specified. In an example, tuning the model based on feedback may include modifying weights for one or more performance metrics in the model based on the feedback…” paragraph 0037/0052).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claim invention to modify the system of Pare, Hunter and Luna with the teaching of Mehta because the teaching of Mehta would improve the system of Pare, Hunter and Luan by providing a technique for allowing for user or personalized input/feedback in allocating resources.
Claim 16 is rejected under 35 U.S.C. 103 as being unpatentable over U.S. Pub. No. 2021/0299557 A1 to Pare et al. in view of U.S. Pub. No. 20180361235 A1 to Hunter and further in view of U.S. Pub. No. 2014/0018033 A1 to Luna as applied to claim 1 above, and further in view of U.S. Pub. No. 2009/0182946 A1 to Zhou et al.
As to claim 16, Pare as modified by Hunter and Luna teaches the electronic device of claim 1, however it is silent with reference to wherein the processor is to: query a content cache for user content related to prior usage of the portion of the computing resources; and apply the user content to the portion of the available computing resources to provide a personalized instance of the portion of the available computing resources based on the user content.
Zhou teaches wherein the processor is to: query (query) a content cache (Cache 118/120) for user content related to prior usage of the portion of the computing resources ; and
apply the user content to the portion of the available computing resources to provide a personalized instance of the portion of the available computing resources based on the user content (“… Furthermore, for each user of the multiple users of IR system 111 (see FIG. 1), cache 120 stores a sub-chunk (a.k.a. a current sub-chunk) of identifiers, where the current sub-chunk is a subset of the current chunk…Cache 118 also stores a next chunk (a.k.a. subsequent chunk) of identifiers for a subset of users of the multiple users who are viewing query results associated with identifiers that are near the end of the current chunk associated with the user. Hereinafter, a next chunk of identifiers is also referred to simply as a next chunk. Determining whether or not a user is viewing query results associated with identifiers that are near the end of a current chunk is based on a predefined criterion. The members of the subset of users for whom next chunks are stored in cache 118 may change over time (see, e.g., FIG. 2B and the related discussion below)…Each chunk stored in cache 118 is separated into a plurality of sub-chunks of identifiers (a.k.a. sub-chunks). Each sub-chunk identifies a subset of data items included in the aforementioned plurality of data items…For each of the aforementioned users, cache 120 stores a set of meta information that describes a subset of data items identified by the current sub-chunk associated with the user. Such a set of meta information that describes a subset of data items identified by a current sub-chunk of identifiers is also referred to herein as a sub-chunk of meta information, a sub-chunk with meta information, and a sub-chunk for meta information…Optimizer 112 includes a cache manager (not shown) and an activity analyzer (not shown). The cache manager manages the contents of caches 118, 120 and 122, which includes determining the size of the caches and determining when the caches need to be purged. The activity analyzer receives and analyzes query statistics and usage patterns of the multiple users who send the multiple queries to IR system 111. The query statistics include the number of data items associated with the results of a query…The aforementioned usage patterns include the frequency usage distribution of three scenarios (i.e., scenarios A, B and C). In scenario A, an end user's browsing through web pages containing the results of a query finds the data item of interest to him/her or terminates the search for the data item of interest without browsing through a number of web pages that requires a pre-loading of additional meta information associated with a subsequent sub-chunk of identifiers based on a first predefined criterion or a pre-loading of a subsequent chunk of identifiers based on a second predefined criterion. Scenario A is described in detail below relative to FIG. 4…” paragraphs 0023-0026/0031/0032).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claim invention to modify the system of Pare, Hunter and Luna with the teaching of Zhou because the teaching of Zhou would improve the system of Pare, Hunter and Luna by providing by providing a technique for a hardware or software component that stores data so that future requests for that data can be served faster.
Claim 18 is rejected under 35 U.S.C. 103 as being unpatentable over U.S. Pub. No. 2021/0299557 A1 to Pare et al. in view of U.S. Pub. No. 20180361235 A1 to Hunter and further in view of U.S. Pub. No. 2014/0018033 A1 to Luna as applied to claim 1 above, and further in view of U.S. Pat. No.10,419,530 B2 issued to Halpern et al.
As to claim 18, Pare as modified by Hunter and Luna teaches the electronic device of claim 1, however it is silent with reference to wherein the processor is to: determine the scoring of the available computing resources based on a feedback table, the feedback table to include information that indicates usage metrics of the available computing resources.
Halpern teaches wherein the processor is to: determine the scoring of the available computing resources based on a feedback table, the feedback table to include information that indicates usage metrics of the available computing resources (The error feedback mechanism compares the output of the resource usage machine learning system 160 to the actual resource usage of the SFC, and feeds back the difference as an error to the resource usage machine learning system 160) (“…In one embodiment, the resource usage machine learning system 160 includes an error feedback mechanism to help the resource usage machine learning system 160 learn from any inaccurate results it outputs. The error feedback mechanism compares the output of the resource usage machine learning system 160 to the actual resource usage of the SFC, and feeds back the difference as an error to the resource usage machine learning system 160. The resource usage machine learning system 160 can use the error information to make better decisions for future requests. In one embodiment, the error feedback mechanism verifies that the error was not caused by external factors such as software/hardware failures…” Col. 11 Ln. 11-23).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claim invention to modify the system of Pare, Hunter and Luna with the teaching of Halpern because the teaching of Halpern would improve the system of Pare, Hunter and Luna by providing by providing a technique for allowing for user or personalized input/feedback in allocating resources.
Claim 19 is rejected under 35 U.S.C. 103 as being unpatentable over U.S. Pub. No. 2021/0299557 A1 to Pare et al. in view of U.S. Pub. No. 20180361235 A1 to Hunter and further in view of U.S. Pub. No. 2014/0018033 A1 to Luna as applied to claim 1 above, and further in view of U.S. Pub. No. 2007/0243934 A1 to Little et al.
As to claim 19, Pare as modified by Hunter and Luna teaches the electronic device of claim 1, however it is silent with reference to (BUT, Little teaches) wherein the scoring includes, for each of the available computing resources, at least one of:
a location score determined according to a latency of a corresponding available computing resource;
CPU score (CPU usage) determined according to CPU availability of the corresponding available computing resource;
a graphics score (GPU (graphics processing usage)) determined according to a graphics capability of the corresponding available computing resource;
a memory score (Memory usage) determined according to a memory size of the corresponding available computing resource; or a network score determined according to the latency of the corresponding available computing resources and
a bandwidth of the latency of the corresponding available computing resources (for example, if the output of the game on the gaming machine 300 is less than optimal because of the resources utilized by the ECI 380 or ECI 382, the gaming machine may suspend execution or terminate execution of one or both of the ECI 380 or ECI 382) (“…The priority assigned to each ECI process may be based on another factors. A priority to resources may be assigned to an ECI process based upon its function. For instance, an ECI for providing a bonus interface may be given a higher priority to resources than an ECI for providing advertising. In another embodiment, a priority may be assigned to an ECI process in accordance with a price paid to allow the ECI process and its content to be presented on the gaming device. In general, prioritization for utilizing resources is another way of providing virtualization on a gaming device…Resources that may be monitored and limited for each partition include but are not limited CPU usage, memory usage, such as RAM usage, NV-RAM usage, disk memory usage, etc., GPU (graphics processing usage), network bandwidth, sound card usage and access to gaming devices, such as displays, audio devices, card readers, bill validators (e.g., as described with respect to FIG. 2, for some resource partitions, for security purposes, access to certain devices, such as bill validators and cashless devices, or device features may not be available). Resources that may be monitored on the gaming machine 300 include the executable space 338, the processing devices 348, the gaming devices 358 and the secure memory 326. The local resource metering process 238 may monitor resource usage for each partition. In FIG. 3A, the local resource metering process 238 is shown monitoring, device A, device B, network bandwidth usage, processor usage of processors, 340 and 342, power usage, and memory usage…The local resource metering process 238 may report information to the resource partition manager 256. In particular embodiments, based upon limits placed on each resource partition, the resource partition manager 256 may prevent new processes from executing in a particular resource partition or may even terminate certain processes to free up resources processes executing in other partitions. For example, if the output of the game on the gaming machine 300 is less than optimal because of the resources utilized by the ECI 380 or ECI 382, the gaming machine may suspend execution or terminate execution of one or both of the ECI 380 or ECI 382…” paragraph 0141-0143).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claim invention to modify the system of Pare, Hunter and Luna with the teaching of Little because the teaching of Little would improve the system of Pare, Hunter and Luna by providing by providing a technique for providing optimal resources for players in a gamine system (Little paragraph 0143).
Claim 21 is rejected under 35 U.S.C. 103 as being unpatentable over U.S. Pub. No. 2021/0299557 A1 to Pare et al. in view of U.S. Pub. No. 20180361235 A1 to Hunter and further in view of U.S. Pub. No. 2014/0018033 A1 to Luna as applied to claim 11 above, and further in view of U.S. Pub. No. 2020/0171382 A1 to Agoston.
As to claim 21, Pare as modified by Hunter and Luna teaches the computer-readable medium of claim 11, however it is silent with reference to wherein the diagnostic information is of allocations of computing resources to users other than a user providing the request to allocate computing resources.
Agoston teaches wherein the diagnostic information is of allocations of computing resources to users (The success criteria may be driven by one or more game state metrics, such as game type, game state of the game, amount of game data generated, etc., and one or more user metrics, such as type of user (developer, player or spectator), expertise level of the user, etc.) other than a user providing the request to allocate computing resources (“…FIG. 4C illustrates the signal that may be generated by the resource allocation agent after analyzing the output of the resource allocation model 315, for the success criteria defined for the game. The success criteria may be driven by one or more game state metrics, such as game type, game state of the game, amount of game data generated, etc., and one or more user metrics, such as type of user (developer, player or spectator), expertise level of the user, etc. For example, for a high intensity game played by an expert player, the success criteria may be defined to be provisioning game data with minimal latency. For a spectator, the success criteria may be to provide a common view window that is provided to all spectators for viewing game play of the online game, or a customized view window for independently navigating through the game scene of a game play, or a separate view window that allows the spectator to independently follow game play of an expert player, or a view window that allows an expert player to act as a spectator and follow game play of a novice player and provide guidance, etc. Based on the success criteria, the outputs are identified from the allocation model 315 and the resources of the system are adjusted to provide the desired game play experience for each user of the online game. In the example illustrated in FIG. 4C, the resource allocation agent may analyze the output of the resource allocation model 315 to obtain the current configuration 370 of the online game and to provide a signal with configuration update 372 in order to meet the success criteria defined for the online game, based on a current game state of the online game and the current configuration 370. As shown, the signal communicated by the resource allocation agent 313 to the configuration agent 311 may indicate that the processing nodes used for processing physics component, scripting component, animation component and assembling need to be spawned more, while amount of processing nodes allocated for shading, sound, memory management and scene graph is to be maintained at the current level, and the number of processing nodes used for processing the texturing component needs to be scaled down. The signal transmitted by the resource allocation agent is based on the predicted demand for different resources identified from the analysis of the AI model, based on success criteria, and is used to ensure that the necessary resources are provisioned for the online game in a timely manner, in anticipation of the predicted demand, so that when the users interact with the online game, the game data is processed using the allocated resources, in accordance to the success criteria defined for the user metrics of the user and game state metrics of the online game, and returned to the client devices of the users presented…” paragraph 0061).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claim invention to modify the system of Pare and Hunter with the teaching of Agoston because the teaching of Agoston would improve the system of Pare and Hunter by providing by providing a technique for provisioning resources to varying type of users based on the user’s needs or protocol.
Claims 6-10 are rejected under 35 U.S.C. 103 as being unpatentable over U.S. Pub. No. 2021/0299557 A1 to Pare et al. in view of U.S. Pat. No.10,419,530 B2 issued to Halpern et al.
As to claim 6, Pare teaches a method, comprising:
allocating (Game-Hosting Service 106/Queue component 148) a first portion of computing resources to a user (player) as an instance of the computing resources (Fleet 138/Group Of Instances 126), wherein the first portion of the computing resources are allocated based on a suitability with respect to a content type of content to be implemented via the instance of the computing resources (Queue component 148) (“…Otherwise, the game-hosting service 106 may have already spun up VM instances 126 in fleets 138 that are allocated for various subscribers 110 of the service provider network 102, and each of the spun up VM instances 126 may have server processes 132 executing thereon in idle mode until the processes 132 are assigned to a game session request for hosting a corresponding game session 136 (associated with a match) until the game session 136 ends. Other than loading maps and other data for hosting a particular game session 136, these idle processes 132 may be ready to start hosting a game session 136 as soon as they are assigned to a game session request. The game-hosting service 106 may be tasked with placing a new game session 136 on an available fleet 138 allocated to a subscriber 110, and to identify a server process 132 executing on a VM instance 126 of the selected fleet 138, which will serve multiple players 112 in a set (e.g., 2, 10, 100, etc.) of players 112 that have been matched together for playing a multi-player game. Accordingly, for an incoming game session request, the game-hosting service 106 may resolve a fleet alias by calling a routing service, load fleet data to determine available fleets 138 of VM instances 126, select a fleet 138 for placing the game session 136, and identify available (e.g., idle) processes 132 that are usable to host the game session 136 corresponding to the incoming game session request. It is to be appreciated that, for efficiency reasons, the game-hosting service 106 may “pack” server processes 132 as tight as possible to avoid overutilization of resources. That is, the game-hosting service 106 may try to minimize the number of processes 132 that are concurrently executing in idle mode in order to have available a sufficient number of processes 132 while also avoiding unnecessary computing resource consumption that could be utilized for other purposes…The queue component 148 may also determine available fleets 138 of VM instances 126 that are allocated to the subscriber 110 associated with the game session request, and may utilize a session placement algorithm 152 to determine (e.g., calculate, compute, etc.) the value(s) 150 for game session placement. The available fleets 138 may be located across disparate geographical regions, and each may have different performance characteristics based on the region and/or based on the specific hardware and/or configurations of the VM instances 126 on those fleets 138. For example, average player latency may vary across a set of available fleets 138 for game session placement such that a first fleet 138(1) provides relatively lower latency (on average across all of the players 112 associated with the game session request) and a second fleet 138(2) provides relatively higher latency (on average across all of the players 112 associated with the game session request), or vice versa. This can be based on various factors, as mentioned. In some cases, VM instances 126 of available fleets 138 may vary in terms of available capacity and/or current resource utilization. For example, a first fleet 138(1) may include a VM instance 126 running one process, and a second fleet 138(2) may include a VM instance 126 running multiple (e.g., four) processes. This can mean that different instances 126 of the different fleets 138 can have different capacities, where the VM instance 126 running the single process may be able to provide the snappiest response with relatively less jitter during gameplay, and the VM instance 126 running the multiple processes concurrently may have less capacity to host a new game session, yet it may be able to provide a lower cost for hosting the game session (e.g., at a relatively lower frame rate)…” paragraphs 0046/0048/0049/0051/0052/0126/0143).
Pare is silent with reference to while the content is implemented via the instance of the computing resources, monitoring feedback indicating performance of the first portion of the computing resources with respect to using the instance of the computing resources to implement content of the content type,
determining, with a processor, that the performance of the first portion of the computing resources falls below minimum performance metrics for the instance of the computing resources, and
modifying, with the processor in response to determining that the performance falls below the minimum performance metrics, according to a machine learning process, the instance of the computing resources by allocating a second portion of the computing resources to the instance of the computing resources without disrupting performance of the instance of the computing resources such that the minimum performance metrics are satisfied.
Halpern teaches while the content is implemented via the instance of the computing resources, monitoring feedback (error feedback mechanism) indicating performance of the first portion of the computing resources with respect to using the instance of the computing resources to implement content of the content type (“…In one embodiment, the resource usage machine learning system 160 includes an error feedback mechanism to help the resource usage machine learning system 160 learn from any inaccurate results it outputs. The error feedback mechanism compares the output of the resource usage machine learning system 160 to the actual resource usage of the SFC, and feeds back the difference as an error to the resource usage machine learning system 160. The resource usage machine learning system 160 can use the error information to make better decisions for future requests. In one embodiment, the error feedback mechanism verifies that the error was not caused by external factors such as software/hardware failures…” Col. 11 Ln. 11-23),
determining, with a processor, that the performance of the first portion of the computing resources falls below minimum performance metrics for the instance of the computing resources (The error feedback mechanism compares the output of the resource usage machine learning system 160 to the actual resource usage of the SFC, and feeds back the difference as an error to the resource usage machine learning system 160) (“…In one embodiment, the resource usage machine learning system 160 includes an error feedback mechanism to help the resource usage machine learning system 160 learn from any inaccurate results it outputs. The error feedback mechanism compares the output of the resource usage machine learning system 160 to the actual resource usage of the SFC, and feeds back the difference as an error to the resource usage machine learning system 160. The resource usage machine learning system 160 can use the error information to make better decisions for future requests. In one embodiment, the error feedback mechanism verifies that the error was not caused by external factors such as software/hardware failures…” Col. 11 Ln. 11-23), and
modifying (Autoscale Machine Learning System 170), with the processor in response to determining that the performance falls below the minimum performance metrics, according to a machine learning process, the instance of the computing resources by allocating (resource re-allocator component) a second portion of the computing resources to the instance of the computing resources without disrupting performance of the instance of the computing resources such that the minimum performance metrics are satisfied (“…The process relies on information provided by an autoscale machine learning system 170 associated with a vNF 155. The autoscale resources provisioned system 170 for the vNF 155 can predict when the amount of resources provisioned for the vNF 155 needs to be adjusted and by how much. The autoscale machine learning system 170 for the vNF 155 is trained online using machine learning to predict when autoscale is needed for the vNF 155. The autoscale machine learning system 170 receives as input an amount of resources currently utilized by the vNF 155 and an amount of resources currently available to the vNF 155 (block 510). The autoscale machine learning system 170 uses machine learning to determine a suggested adjustment to an amount of resources provisioned for the vNF 155 based on the amount of resources currently utilized by the vNF 155 and the amount of resources currently available to the vNF 155 (block 520). In one embodiment, the autoscale machine learning system 170 also receives information regarding the SFCs that are currently utilizing the vNF as input and determines the suggested adjustment to the amount of resources provisioned for the vNF based on the information regarding the SFCs that are currently utilizing the vNF. The autoscale machine learning system 170 then outputs the suggested adjustment to the amount of resources provisioned for the vNF 155 (block 530). In one embodiment, the suggested adjustment to the amount of resources provisioned for the vNF 155 includes a suggested adjustment to an amount of CPU resources (e.g., number of cores) provisioned for the vNF 155, a suggested adjustment to an amount of memory provisioned for the vNF 155, a suggested adjustment to an amount of bandwidth provisioned for the vNF 155, a suggested adjustment to an amount of storage resources provisioned for the vNF 155, or a suggested adjustment to any other type of network/computing resource provisioned for the vNF 155. In one embodiment, the vNF 155 includes multiple vNF components. In such an embodiment, the suggested adjustment may include a suggested adjustment to an amount of resources provisioned per vNF component of the vNF 155. In one embodiment, the suggested adjustment includes an urgency flag. The urgency flag indicates whether the need for resource adjustment is urgent or not. In one embodiment, the urgency flag can be accompanied with a value indicating a maximum amount of time in which the resource adjustment needs to take place…The computing device 110 obtains, from the autoscale machine learning system 170 associated with the vNF 155, the suggested adjustment to the amount of resources provisioned for the vNF 155 (block 540) and provides the suggested adjustment to a resource re-allocator component (block 550). The resource re-allocator component may utilize any suitable algorithm or strategy to determine an optimal resource re-allocation scheme that fulfills the suggested resource adjustments. In one embodiment, the resource re-allocator component has access to information regarding the network/cloud conditions (e.g., via resource monitoring and management system 120) and uses this information to determine an optimal resource re-allocation scheme that specifies or suggests where in the network 100 resources should be allocated and/or de-allocated. The resource re-allocator component may consider the current state of the network and infrastructure, information regarding other currently up and running vNFs 155, operator policies on resource allocation, and other types of information when determining the optimal resource re-allocation scheme. The re-allocation scheme should preferably minimize the impact on existing SFCs and services, and minimize the number of VM migrations. The resource re-allocation scheme can be provided to a resource monitoring and management system 120 and the resource monitoring and management system 120 can re-allocate the resources according to the resource re-allocation scheme…” Col. Ln. ).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claim invention to modify the system of Pare with the teaching of Halpern because the teaching of Halpern would improve the system of Pare by providing by providing a technique for allowing for user or personalized input/feedback in allocating resources.
As to claim 7, Pare teaches the method of claim 6, wherein allocating the first portion of computing resources to the user as the instance of the computing resources includes allocating with the processor, the first portion of computing resources to the user at least partially according to a machine learning process (machine learning model(s) 1134) (“…The queue component 148 may also determine available fleets 138 of VM instances 126 that are allocated to the subscriber 110 associated with the game session request, and may utilize a session placement algorithm 152 to determine (e.g., calculate, compute, etc.) the value(s) 150 for game session placement…In some embodiments, the streaming instance assignment algorithm 215 may represent a machine learning model(s) 1134 that is configured to receive attributes 306 as input 1128 and to generate output 1130 that assigns scores to available VM instances 1026. Machine learning is described in detail elsewhere herein and will not be described in further detail here for the sake of brevity. Ultimately, one of the VM instances 1026(1)(1) is selected as a selected VM instance 1026(1)(1) for streaming the game to the client device 114(1) of the player 112(1) associated with the game streaming request 1028(1). Accordingly, as shown in FIG. 11, the selected. VM instance 1026(1)(1) can be assigned to the game streaming request 1028(1) based at least in part on the value(s) 238 determined using the streaming instance assignment algorithm 215…” paragraphs 0051/0126/0143).
As to claim 8, Pare teaches the method of claim 6, wherein modifying, with the processor, the instance of the computing resources by allocating the second portion of the computing resources to the instance of the computing resources includes augmenting the first portion of computing resources with the second portion of computing resources (Auto-Scaling Component 224) (“…The computer-readable media 206 may further store an auto-scaling component 224 that, when executed by the processor(s) 202, scales up or down the number of instances 126 available to host game sessions or other processes 132. For example, the auto-scaling component 224 may provide a fast, efficient, and accurate way to match fleet capacity to player usage. In some examples, the auto-scaling component 224 may track the fleet's 138 hosting metrics and determine when to add or remove instances 126 based on a set of guidelines, called policies, that may be defined by the developer 110. The auto-scaling component 224 can adjust capacity in response to changes in player demand to help ensure that the fleet of instances 126 has availability for new players without maintaining an excessive amount of idle resources…” paragraph 0064).
As to claim 9, Pare teaches the method of claim 6, wherein modifying, with the processor, the instance of the computing resources by allocating the second portion of the computing resources to the instance of the computing resources includes replacing the first portion of computing resources with the second portion of computing resources (Auto-Scaling Component 224) (“…The computer-readable media 206 may further store an auto-scaling component 224 that, when executed by the processor(s) 202, scales up or down the number of instances 126 available to host game sessions or other processes 132. For example, the auto-scaling component 224 may provide a fast, efficient, and accurate way to match fleet capacity to player usage. In some examples, the auto-scaling component 224 may track the fleet's 138 hosting metrics and determine when to add or remove instances 126 based on a set of guidelines, called policies, that may be defined by the developer 110. The auto-scaling component 224 can adjust capacity in response to changes in player demand to help ensure that the fleet of instances 126 has availability for new players without maintaining an excessive amount of idle resources…” paragraph 0064).
As to claim 10, Pare teaches the method of claim 6, wherein modifying, with the processor, the instance of the computing resources includes modifying, with the processor, the instance of the computing resources is modified responsive to the performance of the first portion of the computing resources being less than a threshold related to the minimum performance metrics (The error feedback mechanism compares the output of the resource usage machine learning system 160 to the actual resource usage of the SFC, and feeds back the difference as an error to the resource usage machine learning system 160) (“…In one embodiment, the resource usage machine learning system 160 includes an error feedback mechanism to help the resource usage machine learning system 160 learn from any inaccurate results it outputs. The error feedback mechanism compares the output of the resource usage machine learning system 160 to the actual resource usage of the SFC, and feeds back the difference as an error to the resource usage machine learning system 160. The resource usage machine learning system 160 can use the error information to make better decisions for future requests. In one embodiment, the error feedback mechanism verifies that the error was not caused by external factors such as software/hardware failures…” Col. 11 Ln. 11-23).
Response to Arguments
Applicant’s arguments with respect to claims 1-5 and 16-21 have been considered but are moot because the new ground of rejection relies on additional reference not applied in the prior rejection of record for any teaching or matter specifically challenged in the argument.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
U.S. Pub. No. 2016/0142902 A1 to Ramamurthi et al. and directed to a network and service infrastructure better suited to these video content distribution and mobility needs.
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to CHARLES E ANYA whose telephone number is (571)272-3757. The examiner can normally be reached Mon-Fir. 9-6pm.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, KEVIN YOUNG can be reached on 571-270-3180. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/CHARLES E ANYA/Primary Examiner, Art Unit 2194