IP Library Granted Patent US 10,534,651
Granted Patent B2
US 10,534,651 · App. 15/185,376 · Granted Jan 14, 2020

Rendering

Inventors: Sean Patrick Devereaux (Brookline, MA); Brian Gregory Cipriano (Cambridge, MA); Brian Frederick Drewes (Brookline, MA)
Assignee: Google LLC
G06F9/5077G06F9/455G06F9/45558G06Q30/0283G06Q50/184G06F2009/45595
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,534,651
App. No.
15/185,376
Filed
Jun 17, 2016
Granted
Jan 14, 2020
Kind
B2
Art Unit
2458
USPC
709/229
Abstract

This document describes methods, systems and computer program products related to cloud-based rendering. The subject matter of this document is embodied in a method that includes receiving, at a server, information associated with a job of rendering one or more frames at the server, and using, at the server, an application to perform at least a portion of the rendering. The use of the application to perform the rendering bears a charge according to a usage license associated with the application. The method also includes measuring, at the server, an amount of use of the application in performing the rendering for use in determining the charge.

Claims (47)

1. A method comprising

accessing through a network, processing capacity of virtual machines at a remote location;

receiving from a user-device through the network, a first job for rendering frames using one or more applications that have features suitable for rendering frames of the first job;

causing the one or more applications to run on the virtual machines;

causing the first job to be executed on one of the virtual machines;

receiving from a user-device through the network, a second job for rendering frames that can be performed by the same one or more applications running on the virtual machines;

determining, based on the processing capacity of the virtual machines, that at least a portion of the one or more applications has an associated residual usage time that may be allocated for execution of the second job and are a type of application usable for rendering the frames of the second job, the type of application being the one or more applications that executed the first job, the residual usage time being less than a time the one of the virtual machines running the one or more applications was originally allocated;

responsive to determining that at least a portion of the one or more applications have an associated residual usage time that may be allocated for execution of the second job and are a type of application usable for rendering the frames of the second job, causing the second job to be executed on the one of the virtual machines on which the first job is executed instead of allocating a new virtual machine to execute the second job, the second job being executed upon completion of the first job; and

at the expiration of the residual usage time:

selecting, from a pool of virtual machines another virtual machine having the same one or more applications running on the virtual machine and having residual usage time that may be allocated for execution of the second job; and

transitioning the second job to the another virtual machine selected from the pool of virtual machines to continue execution of the second job by the same one or more applications.

2. The method of claim 1 further comprising:

tracking the use of each of the one or more applications on the basis of an amount of time that the one or more applications are used for rendering jobs,

wherein the amount of time comprises standardized units of time that are no longer than one hour each.

3. The method of claim 2 , wherein the amount of time comprises a measure of the minutes during which instances of the one or more applications execute the first job or the second job.

4. The method of claim 1 in which the one or more applications or the one of the virtual machines is made available electronically.

5. A system comprising:

one or more computing devices; and

one or more storage devices storing instructions that are operable, when executed by the one or more computing devices, to cause the one or more computing devices to perform operations comprising:

accessing through a network, processing capacity of virtual machines at a remote location,

receiving from a user-device through the network, a first job for rendering frames using one or more applications that have features suitable for rendering frames of the first job;

causing the applications to run on the virtual machines, cause the first job to be executed on one of the virtual machines,

receiving from a user-device through the network, a second job for rendering frames that can be performed by the same one or more applications running on the virtual machines,

determining, based on the processing capacity of the virtual machines, that at least a portion of the one or more applications has an associated residual usage time that is may be allocated for execution of the second job and are a type of application usable for rendering the frames of the second job, the type of application being the one or more applications that executed the first job, the residual usage time being less than a time the one of the virtual machines running the one or more applications was originally allocated,

responsive to determining that at least a portion of the one or more applications have an associated residual usage time that may be allocated for execution of the second job and are a type of application usable for rendering the frames of the second job, causing the second job to be executed on the one of the virtual machines on which the first job is executed instead of allocating a new virtual machine to execute the second job, the second job being executed upon completion of the first job;

at the expiration of the residual usage time:

selecting, from a pool of virtual machines another virtual machine having the same one or more applications running on the virtual machine and having residual usage time that may be allocated for execution of the second job; and

transitioning the second job to the another virtual machine selected from the pool of virtual machines to continue execution of the second job by the same one or more applications.

6. The system of claim 5 in which the use of the one or more applications is tracked for on the basis of an amount of time that the one or more applications are used for rendering jobs, and wherein the amount of time comprises standardized units of time that are no longer than one hour each.

7. The system of claim 6 wherein the amount of time comprises a measure of the minutes during which instances of the one or more applications execute the first job or the second job.

8. The system of claim 5 in which the one or more applications or the one of the virtual machines is made available electronically.

9. A computer program product comprising a computer readable storage device encoded with instructions, which upon execution by one or more processors, causes operations comprising:

accessing through a network, processing capacity of virtual machines at a remote location;

receiving from a user-device through the network, a first job for rendering frames using one or more applications that have features suitable for rendering frames of the first job;

causing the one or more applications to run on the virtual machines;

causing the first job to be executed on one of the virtual machines;

receiving from a user-device through the network, a second job for rendering frames that can be performed by the same one or more applications running on the virtual machines;

determining, based on the processing capacity of the virtual machines, that at least a portion of the one or more applications has an associated residual usage time that may be allocated for execution of the second job and are a type of application usable for rendering the frames of the second job, the type of application being the one or more applications that executed the first job, the residual usage time being less than a time the one of the virtual machines running the one or more applications was originally allocated; and

responsive to determining that at least a portion of the one or more applications have an associated residual usage time that may be allocated for execution of the second job and are a type of application usable for rendering the frames of the second job, causing the second job to be executed on the one of the virtual machines on which the first job is executed instead of allocating a new virtual machine to execute the second job, the second job being executed upon completion of the first job;

at the expiration of the residual usage time:

selecting, from a pool of virtual machines another virtual machine having the same one or more applications running on the virtual machine and having residual usage time that may be allocated for execution of the second job; and

transitioning the second job to the another virtual machine selected from the pool of virtual machines to continue execution of the second job by the same one or more applications.

10. The computer program product of claim 9 further comprising instructions for:

tracking the use of each of the one or more applications on the basis of an amount of time that the one or more applications are used for rendering jobs,

wherein the amount of time comprises standardized units of time that are no longer than one hour each.

11. The computer program product of claim 10 , wherein the amount of time comprises a measure of the minutes during which instances of the one or more applications execute the first job or the second job.

12. The computer program product of claim 9 , in which the one or more applications or the one of the virtual machines is made available electronically.

Assignments (3)
CHANGE OF NAME Recorded Oct 5, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044129/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 25, 2016
From: DEVEREAUX, SEAN PATRICK; CIPRIANO, BRIAN GREGORY; DREWES, BRIAN FREDERICK
To: ROCKETHOUSE, LLC
Reel/Frame 039241/0896 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 25, 2016
From: ROCKETHOUSE LLC
To: GOOGLE INC.
Reel/Frame 039241/0964 →
Continuity (2)
Division 13826847 · Mar 14, 2013
Related Publication 20160299793A1 · Oct 13, 2016
Cited By (1)
US 12,340,256