DETAILED ACTION
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 .
Claims 1-7 and 15-20 are pending. Claims 8-14 are cancelled.
Response to Arguments
Regarding: Prior Art Rejections:
Applicant’s amendments and arguments regarding the rejection of claims 1-7 and 15-20 under 35 U.S.C. 103 have been fully considered and are moot due to new grounds of rejection necessitated by amendments.
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, 2, 15, and 16 are rejected as being unpatentable over Calder et al. US 20130179895 A1 in view of Van Welzen et al. US 20220331702 A1 in view of Chakraborty et al. US 20130093776 A1.
Regarding claim 1, Calder teaches the invention substantially as claimed including:
A non-transitory computer readable storage medium storing one or more programs, wherein the one or more programs include instructions that, when executed by at least one processor of a first electronic device with a communication circuit, cause the first electronic device ([0023] computer-storage media storing computer-useable instructions that, when executed by a computing device having a processor) to:
identify first information indicating a resource of a second electronic device ([0142] a user may have been required to establish a pool by identifying the resources to be included in the pool)
obtain, based on the first information, second information indicating a number of one or more virtual machines to be executed in the second electronic device ([0142] The identification of resources may include identifying a number of VM … In this example the system itself identifies that a pool is to be created and that a number of VMs are to be allocated to the pool for the pool to meet a desired performance or operating characteristic),
while the second electronic device is in a first mode in which the one or more virtual machines refrain from providing graphic data to the external electronic devices ([0050] A "standby" virtual machine reservation is a virtual machine reservation that is associated with a first account or pool and provisioned for use by that first account or pool. Further it is contemplated that a standby virtual machine reservation is not tagged to a specific pool, instead the system maintains a defined number of VMs that are kept for standby by an account or pool; Examiner notes: a virtual machine on standby is not actively providing services):
transmit, to the second electronic device, a first signal for executing the number of one or more virtual machines indicated by the second information ([0147] the system, without user intervention, automatically initiates the auto-scaling functionality. The auto-scaling rules may take into consideration resources currently being used, resource scheduled to be committed, and resources necessary for the pool; Examiner notes: when scaling is required, the auto-scaling functionality invokes dedicated and standby virtual machines to process work through the virtual communication channels), wherein the first mode is distinct from a second mode in which a virtual machine provides graphic data to one of the external electronic devices ([0046] A "dedicated" virtual machine is a machine assigned to a pool for dedicated use by work items/jobs assigned to the pool; [0050] A "standby" virtual machine reservation is a virtual machine reservation that is associated with a first account or pool and provisioned for use by that first account or pool. Further it is contemplated that a standby virtual machine reservation is not tagged to a specific pool, instead the system maintains a defined number of VMs that are kept for standby by an account or pool);
after transmitting the first signal, identify an event associated with adjusting the number of the one or more virtual machines executed in the second electronic device (([0148] it is contemplated that if additional tasks are added to the job or the time for processing the job is exceeding initial predictions);
in response to the identification of the event, obtain third information for adjusting the number of the one or more virtual machines executed in the second electronic device ([0148] the auto-scaling rules may be employed to determine how many additional resources will be required to complete the job); and
transmit, based on the third information, to the second electronic device, a second signal for adjusting the number of the one or more virtual machines executed in the second electronic device ([0149] if the auto-scaling rules determine that a dedicated VM may be released from the pool, the dedicated VM may be freed from the pool. Similarly, if the auto-scaling rules determine that the number of available VM is not sufficient to achieve desired results (e.g., timely completion of the job), one or more additional VMs may be allocated to the pool for use in completing the outstanding tasks in the queues or yet to be queued … This reallocation is contemplated as being performed, at least in part, by a pool server associated with the pool, in an exemplary aspect; [0104] An example transaction may include requests from a pool server to a task tenant to allocate, reserve, or deallocate a certain number of VMs in that task tenant for a given pool),
after the number of the one or more virtual machines is adjusted in the second electronic device, receive, from a third electronic device among the external electronic devices, an operation request ([0026] The distributed resources also provide an opportunity for a user to scale out (or scale in) the amount of resources used in order to meet goals for a computing task … In order to meet demand, the operator of a distributed network of resources will preferably have sufficient available resources to satisfy resource requests at times of peak demand; [0044]; [0049] Typically, the peak load of any network will be different from the average load. As a result, a computing environment with sufficient resources to handle a peak load situation will often have excess resources available during other times. These excess resources provide a resource cushion. When a user makes a request for additional dedicated virtual machines, the excess virtual machines can be used to fulfill the user's request; [0135-0139] Automatically Scaling a Pool and Hierarchical Structuring)
wherein the third signal is transmitted to switch an operation mode of the second electronic device from the first mode to the second mode (([0149] re-allocation of one or more VM may include converting the VMs from a first type to a second type, in an exemplary aspect. This reallocation is contemplated as being performed, at least in part, by a pool server associated with the pool, in an exemplary aspect); [0123] A standby VM reservation may be converted into a dedicated VM and the opposite is also contemplated; Examiner notes: when required to perform processing tasks, VMs are able to be converted from inactive standby mode into active dedicated mode),
wherein the first electronic device is a server ([0073] A pool server 614 handles pool management and pool transactions for pools of virtual machines in a given geographic region), and
wherein the external electronic devices comprise the third electronic device that is a client ([0069] a hypothetical customer or user may access the system 500 using a client portal 506).
Calder does not explicitly teach the second device is for providing graphic data related to a user character to external electronic devices, wherein each of the external electronic devices provides an application for controlling a user character of a corresponding external electronic device,
wherein each of the one or more virtual machines is used for providing graphic data related to a user character to a corresponding external electronic device,
operation request to control a user character of the third electronic device,
and based on the operation request:
perform data processing for controlling the user character of the third electronic device;
transmit, to the third electronic device, a result of the data processing for controlling the user character of the third electronic device; and
transmit, to the second electronic device, a third signal causing a virtual machine of the second electronic device to provide graphic data related to the user character of the third electronic device according to the result of the data processing.
However, Van Welzen teaches the second device is for providing graphic data related to a user character to external electronic devices ([0004] the system and methods of the present disclosure offload rendering of gameplay and compositing of gameplay content—both of which are memory and time-intensive tasks—to remote computing devices (e.g., executing one or more virtual machines) to reduce the burden on client devices. For example, a content streaming server—which may be implemented using one or more virtual machines (VMs), GPUs, servers, and/or other computing devices—may handle (e.g., manage, host, conduct, and/or facilitate) rendering of a gaming application; [0079] the GPU(s) to generate a rendering of the application session. For example, the input data may be representative of a movement of a character of the user in a game session of a game application, firing a weapon, reloading, passing a ball, turning a vehicle, etc), wherein each of the external electronic devices provides an application for controlling a user character of a corresponding external electronic device ([0036] The content streaming server(s) 104 may use a virtual machine(s) 127 to execute an instance of the gaming application 122 for a particular client device),
wherein each of the one or more virtual machines is used for providing graphic data related to a user character to a corresponding external electronic device ([0019] In some embodiments of the present disclosure, and to ultimately help distribute the gaming application and compositing application workloads, the computing devices may be implemented using a variety of devices, each of which is remote to a client device. For instance, the remote computing devices may include one or more virtual machines (VMs) that may use one or more graphics processing units (GPUs) to execute a game (or other content) streaming application and a compositing application; [0079] character),
the operation request to control a user character of the third electronic device ([0069] transmitting, using the client device, the user input data to cause rendering of a first stream of data corresponding to the first application and responsive to the user input data. For instance, as the user engages with the game, user input data is transmitted from the client device(s) 102 and causes rendering of gameplay that incorporates changes in accordance with the user input data),
and based on the operation request: perform data processing for controlling the user character of the third electronic device ([0069] the transmission of user input data, which may include the direction and force with which the joystick was moved, would cause updated rendering of the gameplay; Examiner notes direction and force of input is factored when rendering the updated game);
transmit, to the third electronic device, a result of the data processing for controlling the user character of the third electronic device ([0069] The updated rendering of gameplay, in turn, may be generated as a first stream of data. In some embodiments, the first stream of data corresponds to a live instance of the first application. In some embodiments, the first stream of data may be displayed on client device(s) 102 via one or more application window(s) 115); and
transmit, to the second electronic device, a third signal causing a virtual machine of the second electronic device to provide graphic data related to the user character of the third electronic device according to the result of the data processing (Figs 2A-2C, Fig 3; [0065] As shown in FIG. 3, system 300 depicts multiple users with client device(s) 102D interacting with instances of a game via one or more content streaming server(s) 104D. Each content streaming server(s) 104D may be dedicated to a particular user of client device(s) 102D. For instance, a given content streaming server(s) 104D may execute an instance of the game, render gameplay, stream it to an associated client device(s) 102D, receive input data from client device(s) 102D, and execute the instance of the game based on the input data. Each content streaming server(s) 104D may also transmit a stream of the game to compositing server(s) 106D for composition and display to a set of moderators 306).
It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to have combined van Welzen’s remote game processing servers with the existing system. A person of ordinary skill in the art would have been motivated to make this combination to provide the resulting system with the advantage of utilizing more capable remote resource pools to virtually process and stream client gaming applications resulting in greater processing bandwidths, gameplay quality, and cost savings to users (see van Welzen [0002] conventional systems often leverage a local machine to execute gaming, compositing, and/or broadcasting applications. However, this methodology is problematic for a number of reasons. For instance, personal computing devices, which are less likely to be high performing, have limited ability to execute several applications that require high bandwidth while maintaining a low level of latency and a high level of quality in gameplay. Requiring each user to either use one or more personal computing devices at once or purchase computing devices with greater bandwidth and memory capacity is both costly and can present a prohibitive barrier to entry for many users.).
While Calder teaches using standby virtual machines from pools to perform jobs for clients, Calder and van Welzen do not explicitly teach a first mode in which the one or more virtual machines refrain from providing graphic data to at least one of external electronic devices.
However, Chakraborty teaches a first mode in which the one or more virtual machines refrain from providing graphic data to at least one of external electronic devices ([0006] The graphics server can then process the data received and can send graphics output data to the client; [0090] restoring or waking-up the graphics server 1120 if the graphics server is in an inactive state; Examiner notes: the first mode would consist of an inactive/standby vm/graphics server while the second mode consists of the active/designated vms performing graphical processing tasks/jobs).
It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to have combined Chakraborty’s graphics server and remote computer clients with the system of Calder and van Welzen. A person of ordinary skill in the art would have been motivated to make this combination to provide the existing system with the advantage of utilizing available/inactive distributed virtual graphics processing as opposed to limited local resources (see Calder [0002] Instead of relying purely on local computing power, servers incorporate graphics virtualization platforms that shift graphics processing intelligence to hosted virtual desktop infrastructures (VDI) deployed in data centers; [0008] Similarly, a graphics server manager can also be used to connect the client connected compute server to a first graphics server of the plurality of graphics servers. The graphics server manager can determine availabilities of the plurality of graphics servers and allocate the connection between the client connected compute server and the first graphics server accordingly).
Regarding claim 2, Calder, Van Welzen, and Chakraborty teach the non-transitory computer readable storage medium according to claim 1.
Calder further teaches wherein the resource of the second electronic device, is set based on information on a central processing unit of the second electronic device ([0039] A virtual machine refers to a logical unit of processing capability. A virtual machine can have a one to one correspondence with a physical processor, or a virtual machine can correspond to a plurality of processors, or a virtual machine can represent a percentage of processing time/cycles on one or more processors), information on a storage device of the second electronic device, and information on a network state of the second electronic device ([0042] Still another option is to organize virtual machines on a basis other than geographic location, such as proximity to other variables (e.g., storage resource, network latencies …)).
Chakraborty further teaches wherein the resource of the second electronic device, is set based on information on a graphic processing unit of the second electronic device ([0067] The graphics server may also be configured with a plurality of GPU resources).
Regarding claim 15, it is the method of claim 1. Therefore, it is rejected for the same reasons as claim 1.
Calder further teaches a method for operating a first electronic device with at least one memory and a communication circuit ([0027] Referring to the drawings in general, and initially to FIG. 1 in particular, an exemplary operating environment suitable for implementing embodiments of the present invention is shown and designated generally as computing device 100; [0029] computing device 100 includes a bus 110 that directly or indirectly couples the following devices: memory 112, one or more processors 114, one or more presentation modules 116, input/output (I/O) ports 118, I/O modules 120, and an illustrative power supply 122).
Regarding claim 16, it is the method of claim 2. Therefore, it is rejected for the same reasons as claim 2.
Claims 3, 4, and 17 are rejected as being unpatentable over Calder et al. US 20130179895 A1 in view of Van Welzen et al. US 20220331702 A1 in view of Chakraborty et al. US 20130093776 A1 in further view of Zaitsev US 7917954 B1.
Regarding claim 3, Calder, Van Welzen, and Chakraborty teach the non-transitory computer readable storage medium according to claim 2.
Calder further teaches obtain, based on the total grade information of the second electronic device, the second information indicating the number of the one or more virtual machines to be executed in the second electronic device ([0132] the virtual machines allocated to the pool may be based, in part, on the specification and/or rules associated with the work item. For example, the information associated with the work item may specify a desired resource spend, a time in which the work item is desired to be completed, a geographical region in which to compute the tasks, and the like. Utilizing this information a pool server may allocate zero or more virtual machines to the pool. The information used for allocating may be part of a specification that designates a number of dedicated and standby VMs and the like; Examiner notes: the system has knowledge of resources that are required to meet a task’s desired resource spend and allocates sufficient virtual machines accordingly).
Chakraborty further teaches identify, based on the information on the graphic processing device, second grade information ([0071] a plurality of graphics servers 720(A-N), which may be used when resources associated with a single set of GPU hardware 730 are insufficient to perform a GPU processing task),
Calder, Van Welzen, and Chakraborty do not explicitly teach identify, based on the information on the central processing unit, first grade information, identify, based on the information on the graphic processing device, second grade information, identify, based on the information on the storage device, third grade information, identify, based on the information on the network state, fourth grade information, and identify, based on the first grade information to the fourth grade information, total grade information of the second electronic device.
However, Zaitsev teaches identify, based on the information on the central processing unit, first grade information, identify, based on the information on the graphic processing unit, second grade information, identify, based on the information on the storage device, third grade information, identify, based on the information on the network state, fourth grade information (overall system performance rating may be expressed as a string of weighted performance rating coefficients of individual system components, which can be expressed in the following format: CPU/RAM/HDD/Network. For example, for a computer having the following technical characteristics: Pentium 4 3 Ghz/512 Mb/500 GB 7200RPM/10 Mbit/s, the overall system performance rating may be expressed as follows: 3000/512/65000/10000, Col 5 32-39; linguist variable for individual component performance rating may have five associated linguistic values, such as "very low", "low", "average", "high", and "very high", Col 6 4-6), and identify, based on the first grade information, the second grade information, the third grade information, and the fourth grade information, total grade information of the second electronic device (rating engine 130 may uses fuzzy logic to determine overall system performance rating based on performance ratings of individual system components, Col 5 63-66; the fuzzy logic rules provide fuzzy logic values, such as "very low", "low", "average", "high", and "very high", for the overall system performance rating variable, Col 6 31-34).
It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to have combined Zaitsev’s rating system for computers with the existing system. A person of ordinary skill in the art would have been motivated to make this combination to provide the existing system with the advantage of evaluating virtual computing systems to provide curated resource allocations for workloads (see Zaitsev Col 1 65 – Col 2 4 The method further comprises classifying the computer system-based on the overall system performance rating. Different classes of computer systems have different performance characteristics. The method further includes selecting based on the system classification one of a plurality of predefined operational policies for a program to be executed on the computer system).
Regarding claim 4, Calder, Van Welzen, Chakraborty, and Zaitsev teaches the non-transitory computer readable storage medium according to claim 3.
Calder further teaches wherein the event for adjusting the number of the one or more virtual machines includes an event in which the total grade information of the second electronic device is changed ([0147] The auto-scaling rules may take into consideration resources currently being used, resource scheduled to be committed, and resources necessary for the pool, the amount of pending work in the queues for the jobs assigned to the pool, the tasks, the job, and the like. Taken together, the auto-scaling rules allow for the pool to expand, contract, and change VM types; [0148] it is contemplated that if additional tasks are added to the job or the time for processing the job is exceeding initial predictions, the auto-scaling rules may be employed to determine how many additional resources will be required to complete the job. Similarly, it is contemplated that the invocation of the auto-scaling rules may result in a determination that the number of VMs in the pool may be excessive and that some of those resources may be converted or dropped; [0149] if the auto-scaling rules determine that the number of available VM is not sufficient to achieve desired results (e.g., timely completion of the job), one or more additional VMs may be allocated to the pool for use in completing the outstanding tasks in the queues or yet to be queued).
Regarding claim 17, it is the method of claim 3. Therefore, it is rejected for the same reasons as claim 3.
Claims 5 and 18 are rejected as being unpatentable over Calder et al. US 20130179895 A1 in view of Van Welzen et al. US 20220331702 A1 in view of Chakraborty et al. US 20130093776 A1 in further view of Dimitrov et al. US 20130179895 A1.
Regarding claim 5, Calder, Van Welzen, and Chakraborty teach the non-transitory computer readable storage medium according to claim 1.
Calder, Van Welzen, and Chakraborty do not explicitly teach wherein the event for adjusting the number of the one or more virtual machines is determined based on the number of at least one external electronic device operating in an operation mode for displaying the graphic data provided from the second electronic device, among the external electronic devices.
However, Dimitrov teaches wherein the event for adjusting the number of the one or more virtual machines is determined based on the number of the external electronic device operating in an operation mode for displaying the graphic data provided from the second electronic device, among the external electronic devices ([0037] As additional VMs are created on a server, such as when additional client computing devices connect to the environment; [0038] To increase efficiency on the server system, video rendering processes can be divided so that on the server system VM, rendering can be performed; Examiner notes: VM are adjusted according a number of client computing devices connected).
It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to have combined Dimitrov’s adjusting a number of virtual machines with number of client devices with the system of Calder and Chakraborty. A person of ordinary skill in the art would have been motivated to make this combination to provide Calder and Chakraborty system with the advantage of increasing the rendering servers ability to serve more client devices (see Dimitrov [0038] The reduction in computational resources utilized by the VMs allow additional VMs to be actively running on the server system, thereby increasing the VM density and lowering system operational costs).
Regarding claim 18, they are the methods of claim 5 respectively. Therefore, they are rejected for the same reasons as claim 5 respectively.
Allowable Subject Matter
Claims 6, 7, 19, and 20 are objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims.
Conclusion
Any inquiry concerning this communication or earlier communications from the
examiner should be directed to HARRISON LI whose telephone number is (703) 756-1469. The
examiner can normally be reached Monday-Friday 9:00am-5:30pm ET.
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, Aimee Li can be reached on (571) 272-4169. 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.
/H.L./
Examiner, Art Unit 2195
/Aimee Li/Supervisory Patent Examiner, Art Unit 2195