DETAILED ACTION
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-20 are pending.
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-8, 10-20 are rejected under 35 U.S.C. 103 as being unpatentable over Colenbrander US 20180288133 A1 in view of Zhu et al. US 20180041557 A1.
Regarding claim 1, Colenbrander teaches the invention substantially as claimed including:
A software application streaming system for executing multiple interactive applications accessible by multiple devices using geographically distributed computer hardware for execution of the interactive applications ([0008]), the system comprising:
at least one processor ([0073] functions described herein as being performed by the processor 310 are instead performed by multiple processors); and
at least one non-transitory computer-readable storage medium storing instructions that, when executed by the at least one processor, cause the at least one processor to execute a plurality of modules of the software application streaming system ([0224] computer-readable code on a computer-readable medium), the plurality of modules including:
a client interface module configured to receive, from a plurality of devices through a communication network, a plurality of requests to access a plurality of interactive applications (Fig 1 Cloud Gaming Server receives Game Requests from Client Devices 104 via Computer Network 112; [0014] cloud gaming server …);
a computing resource allocation module configured to allocate the geographically distributed computer hardware for execution of the plurality of interactive applications (Fig 1 Node Assembly Server; [0014] The node assembly server assigns a number of server nodes for the play of the game. The node assembly server sends information to the server nodes to enable the server nodes to communicate with each other using a communication protocol to facilitate the play of the game. One of the server nodes distributes a game engine for the play of the game between the server nodes), wherein the allocating comprises:
identifying, from the geographically distributed computer hardware, first computer hardware for execution of the plurality of interactive applications ([0048] The node assembly server 108 upon receiving the signal from the cloud gaming server 110 or the cloud assembly server selects, via the switch system 106, one or more of the nodes 1, 2, and 3 that will execute the distributed game engine 102), the first computer hardware comprising at least one computer hardware processor (Fig 2 Node 1 and 2 having CPU GPU; [0042] a node is executed using a virtual machine); and
configuring the first computer hardware for execution of the plurality of interactive applications ([0048] initialize the one or more of the nodes 1, 2, and 3; Examiner notes: initializing nodes indicates a virtual machine is created along with its allocated processors, storage, memory, etc.), the configuring comprising:
dividing computing capacity of the at least one computer hardware processor into multiple computing portions ([0058] The CPU 202A, the memory device 204A, the GPU 206A, the network communication device 208A, and the internal communication device 210A are coupled to each other, e.g., via a bus. Similarly, the CPU 202B, the memory device 204B, the GPU 206B, the network communication device 208B, and the internal communication device 210B are coupled to each other); and
assigning a plurality of the multiple computing portions for execution of the plurality of interactive applications (Fig 3A CPU 202A for Node 1 and CPU 202B for Node 2; [0061] The node assembly server 108 determines to select the nodes 1 and 2 for distribution of the game engine. Upon determining to select the nodes 1 and 2, the node assembly server 108 sends a control signal to the switch system 106 to couple the node assembly server 108 to the CPU 202A of the node 1 and to the CPU 202B of the node 2);
an application execution module configured to execute the plurality of interactive applications based on allocation by the computing resource allocation module, the executing comprising: executing the plurality of interactive applications using the assigned plurality of computing portions (Fig 1 Switch System 106; [0043] a switch system includes a multiplexer that selects among the nodes 1, 2, and 3 that are to execute the distributed game engine 102 and to which data is transferred from the node assembly server 108 and from which data is transferred via a computer network 112 to one or more of the client devices 104A, 104B and 104C; Examiner notes: the switch decides execution of distributed game engine on specific nodes based on its configuration as determined by node assembly server);
wherein the client interface module is further configured to transmit, to the plurality of devices through the communication network, content generated from execution of the plurality of interactive applications ([0048] The distributed game engine 102 is executed to transfer data, such as encoded frames, from one or more of the nodes 1, 2, and 3 via the computer network 112 to one or more of the client devices 104A, 104B, and 104C).
While Colenbrander teaches transmitting to clients’ frames of games, it does not explicitly teach the client interface module is further configured to transmit, to the plurality of devices through the communication network, content generated from execution of the plurality of interactive applications.
However, Zhu teaches the client interface module is further configured to transmit, to the plurality of devices through the communication network, content generated from execution of the plurality of interactive applications (Fig 1 Cloud Servers sending Mobile Client Devices Audio Video via Network).
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 Zhu’s cloud server-client forwarding with the system of Colenbrander. A person of ordinary skill in the art would have been motivated to make this combination to provide Colenbrander’s system with a dedicated cloud server to serve cloud hosted media (see Zhu [0014] The mobile client device may further include a cloud application client to interact with a cloud application server of a cloud server to receive audio and video streams from the cloud server, and to send touch, key and/or sensor events to the cloud server, to enable an application to be executed on the cloud server for the mobile client device).
Regarding claim 2, Colenbrander and Zhu teach the system of 1.
Colenbrander further teaches wherein the at least one computer hardware processor comprises a graphics processing unit (GPU) (Fig 2 GPUs 206A 206B).
Regarding claim 3, Colenbrander and Zhu teach the system of 1.
Colenbrander further teaches wherein transmitting, to the plurality of devices through the communication network, the content generated from execution of the plurality of interactive applications comprises: transmitting video and/or audio data to the plurality of devices (Fig 6A video and audio sent over network to client; [0010] a streaming node, which handles connection with the client and receives input and propagates the input to other nodes. This node also sends all the compressed audio and video data to the client).
Regarding claim 4, Colenbrander and Zhu teach the system of 1.
Colenbrander further teaches wherein: the client interface module is further configured to receive, from the plurality of devices through the communication network, user input ([0010] One of the nodes is marked as a streaming node, which handles connection with the client and receives input and propagates the input to other nodes); and
the application execution module is further configured to use the user inputs in execution of the plurality of interactive applications ([0168] The CPU 202B applies the user inputs 1 and/or 2 that are determined to be relevant to generate the video frame information 2 and/or 4. Similarly, the GPU 206B applies the user inputs 1 and/or 2 that are determined to be relevant to generate the video frames 2 and/or 4).
Regarding claim 5, Colenbrander and Zhu teach the system of 1.
Colenbrander further teaches wherein assigning the plurality computing portions for execution of the plurality of interactive applications comprises: assigning each of the plurality of interactive applications to at least one of the plurality of computing portions (Fig 3A multiple users utilizing game engine A; [0011] In conventional multiplayer games, when users play in the same world, many physics computations have to be repeated for each user's their (local) instance of the game engine; Examiner notes: each user in a multiplayer game is playing their own instance of the game which represents a plurality of interactive applications).
Regarding claim 6, Colenbrander and Zhu teach the system of claim 5.
Colenbrander further teaches wherein executing the plurality of interactive applications using the assigned plurality of computing portions comprises: executing each of the plurality of interactive applications using one or more of the plurality of computing portions assigned to the interactive application ([0048] The distributed game engine 102 is executed to transfer data, such as encoded frames, from one or more of the nodes 1, 2, and 3 via the computer network 112 to one or more of the client devices 104A, 104B, and 104C; Examiner notes: the assigned node(s) for each client process each client’s game).
Regarding claim 7, Colenbrander and Zhu teach the system of 1.
Colenbrander further teaches wherein the multiple computing portions are associated with respective hardware portions of the at least one computer hardware processor ([0042] a node is executed using a virtual machine, which is an emulation of the computer system. In the virtual machine, a hypervisor is a computer software or hardware or a combination thereof that shares and manages hardware resources, such as processors and memory devices, to run the distributed game engine 102. As an example, a virtual machine includes an operating system, one or more application computer programs that run on top of the operating system, and one or more hardware resources, e.g., central processing units, graphical processing units).
Regarding claim 8, Colenbrander and Zhu teach the system of 1.
Colenbrander further teaches wherein identifying, from the geographically distributed computer hardware, the first computer hardware for execution of the plurality of interactive applications comprises: determining indications of geographic locations of the plurality of devices; and identifying the first computer hardware for execution of the plurality of interactive applications using the indications of the geographic locations of the plurality of devices ([0214] Services delivered over a wide geographical area often use cloud computing; [0212] the client device 1320-1 is served by an INSP in near proximity to the client device 1320-1 while the client device 1320-1 is in a home town of the user 1, and client device 1320-1 is served by a different INSP when the user 1 travels to a different city. The home-town INSP will transfer requested information and data to the new INSP, such that the information “follows” the client device 1320-1 to the new city making the data closer to the client device 1320-1 and easier to access. In various embodiments, a master-server relationship is established between a master INSP, which manages the information for the client device 1320-1, and a server INSP that interfaces directly with the client device 1320-1 under control from the master INSP. In some embodiments, data is transferred from one ISP to another ISP as the client device 1320-1 moves around the world to make the INSP in better position to service client device 1320-1 be the one that delivers these services; Examiner notes: client devices are served by cloud servers according to their location).
Regarding claim 10, Colenbrander and Zhu teach the system of 1.
Colenbrander further teaches wherein: the first computer hardware comprises memory, the memory divided into multiple memory portions ([0042] In the virtual machine, a hypervisor is a computer software or hardware or a combination thereof that shares and manages hardware resources, such as processors and memory devices, to run the distributed game engine 102); and
configuring the first computer hardware for execution of the plurality of interactive applications comprises: assigning a plurality of the multiple portions for execution of respective ones of the plurality of interactive applications (Fig 3A Nodes 1 and 2 Assigned to process games for Client devices 104).
Regarding claim 11, Colenbrander and Zhu teach the system of 1.
Colenbrander further teaches wherein at least some of the plurality of interactive applications are videogame applications ([0008] The system provides a clustering technology that allows for different types of games).
Regarding claim 12, Colenbrander and Zhu teach the system of 1.
Colenbrander further teaches wherein configuring the first computer hardware for execution of the plurality of interactive applications comprises: determining sizes of the plurality of computing portions assigned for execution of the plurality of interactive applications ([0042] In the virtual machine, a hypervisor is a computer software or hardware or a combination thereof that shares and manages hardware resources, such as processors and memory devices, to run the distributed game engine 102; Examiner notes: when the virtual machine node is created it is determined what cpu/gpu resources are allocated).
Regarding claim 13, it is the method of claim 1. Therefore, it is rejected for the same reasons as claim 1.
Regarding claim 14, it is the method of claim 2. Therefore, it is rejected for the same reasons as claim 2.
Regarding claim 15, it is the method of claim 5. Therefore, it is rejected for the same reasons as claim 5.
Regarding claim 16, it is the method of claim 6. Therefore, it is rejected for the same reasons as claim 6.
Regarding claim 17, it is the method of claim 7. Therefore, it is rejected for the same reasons as claim 7
Regarding claim 18, it is the method of claim 10. Therefore, it is rejected for the same reasons as claim 10.
Regarding claim 19, it is the method of claim 12. Therefore, it is rejected for the same reasons as claim 12.
Regarding claim 20, It is the non-transitory computer-readable storage media of claim 1. Therefore, it is rejected for the same reasons as claim 1.
Claim 9 is rejected under 35 U.S.C. 103 as being unpatentable over Colenbrander US 20180288133 A1 in view of Zhu et al. US 20180041557 A1 in view of Nicholls US 20130254261 A1.
Regarding claim 9, Colenbrander and Zhu teach the system of claim 8.
While Colenbrander teaches using close servers to serve client devices, it does not explicitly teach wherein identifying the first computer hardware for execution of the plurality of interactive applications using the indications of the geographic locations of the plurality of devices comprises: determining, using the indications of the geographic locations of the plurality of devices, that the first computer hardware is closest to at least some of the geographic locations of the plurality of devices; and identifying the first computer hardware for execution of the plurality of interactive applications based on determining that the first computer hardware is the closest to the at least some geographic locations.
However, Nicholls teaches wherein identifying the first computer hardware for execution of the plurality of interactive applications using the indications of the geographic locations of the plurality of devices comprises:
determining, using the indications of the geographic locations of the plurality of devices, that the first computer hardware is closest to at least some of the geographic locations of the plurality of devices ([0059] The management server receives a client identifier, an application identifier and optionally a client geo-location tag used to determine which worker server is the closest and thus presumable has the shortest transmission delay); and
identifying the first computer hardware for execution of the plurality of interactive applications based on determining that the first computer hardware is the closest to the at least some geographic locations ([0063] Next the management server determines which worker server is the closest to the client device. Either a ping or other type of message is sent to the client device by each available worker server; [0065] the client selected application is executed on the select worker server).
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 Nicholls with the system of Colenbrander and Zhu. A person of ordinary skill in the art would have been motivated to make this combination to provide Colenbrander and Zhu’s system with the advantage of selecting a server to minimize latency (see Nicholls [0007] What is needed is a system that application persistence data is available to different servers, a server selection with minimum latency between the server and client).
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