IP Library Granted Patent US 7,596,784
Granted Patent B2
US 7,596,784 · App. 09/950,559 · Granted Sep 29, 2009

Method system and apparatus for providing pay-per-use distributed computing resources

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 7,596,784
App. No.
09/950,559
Granted
Sep 29, 2009
Kind
B2
Abstract

Method, system, apparatus, and computer program and computer program product provide on-demand, scalable computational resources to application providers over a distributed network and system. Resources are made available based on demand for applications. Application providers are charged fees based on the amount of resources utilized to satisfy the needs of the application. In providing compute resources, method and apparatus is capable of rapidly activating a plurality of instances of the applications as demand increases and to halt instances as demand drops. Application providers are charged based on metered amount of computational resources utilized in processing their applications. Application providers access the network to distribute applications onto network to utilize distributed compute resources for processing of the applications. Application providers are further capable of monitoring, updating and replacing distributed applications. Apparatus and system includes plurality of computing resources distributed across a network capable of restoring and snapshotting provisioned applications based on demand.

Claims (67)

1. A method for providing distributed, on-demand application processing, comprising:

allowing a first application provider to deploy at least a first application onto a network, wherein the network includes distributed compute resources configured to provide application execution;

receiving a request for execution of the first application from the first application provider; and utilizing the distributed compute resources for execution of the first application in response to receiving the request for execution of the first application from the first application provider;

metering and monitoring an amount of the compute resources utilized in execution of the first application; charging the first application provider based on the amount of compute resources utilized in execution of the first application;

increasing the amount of compute resources utilized in execution of the first application by a first set of compute resources; and increasing the amount charged to the first application provider based on the first set of compute resources.

2. The method as claimed in claim 1 , further comprising:

allowing the first application provider to update the first application.

3. The method as claimed in claim 2 , further comprising:

allowing the first application provider to monitor the first application.

4. The method as claimed in claim 3 , further comprising:

allowing the first application provider to replace the first application with a second application.

5. The method as claimed in claim 1 , further comprising:

allowing an entity to access the compute resources over the network to interact with the first application.

6. The method as claimed in claim 1 , wherein increasing the amount of computer resources includes increasing the amount of compute resources due to an increased demand for the first application.

7. The method as claimed in claim 1 , further comprising:

reducing the amount of compute resources utilized in execution of the first application by a second set of compute resources; and

reducing the amount charged to the first application provider based on the second set of compute resources.

8. The method as claimed in claim 1 , further comprising:

providing a second application provider with access to the network;

allowing the second application provider to distribute at least a third application onto the network;

allowing an entity to access the compute resources over the network to interact with the third application;

monitoring the amount of the compute resources utilized for providing application processing of the third application; and

charging the second application provider based on the amount of compute resources utilized in processing the third application.

9. A method of providing on-demand computational resources over a distributed network, the method comprising:

providing an application provider with access to a distributed network;

through the network the application provider dictating at least a first portion of the distributed network to receive at least one application; and

distributing the application onto computational resources within the first portion of the distributed network dictated to receive the application.

10. The method as claimed in claim 9 , further comprising:

the application provider dictating a limit on an amount of the computational resources to be utilized in providing at least one entity with access to the application for processing of the application.

11. The method as claimed in claim 10 , further comprising:

through the network, the application provider updating the first application.

12. The method as claimed in claim 10 , further comprising:

metering and monitoring the amount of computational resources utilized in providing the at least one entity with access to application; and

charging the application provider based on the amount of computational resources utilized in providing the at least one entity with access to the application.

13. The method as claimed in claim 12 , further comprising:

metering and monitoring demand for the application; and

adjusting the amount of computational resources utilized in providing the at least one entity with access to the application based on the demand.

14. The method as claimed in claim 13 , wherein adjusting the amount of computational resources utilized comprises not exceeding the limit of the computational resources dictated by the application provider.

15. The method as claimed in claim 13 , wherein adjusting the amount of computational resources utilized further comprises:

initiating an additional instance of the application if the demand for the application exceeds a first threshold; and

halting an instance of the application if the demand for the application falls below a second threshold.

16. The method as claimed in claim 15 , wherein initiating an instance of the application comprises restoring a snapshotted application; and wherein halting an instance of the application comprises snapshotting an active application.

17. The method as claimed in claim 10 , further comprising:

the application provider monitoring the amount of computational resources utilized in providing the at least one entity with access to the application; and

the application provider adjusting the limit on the amount of computational resources available to provide the at least one entity with access to the application.

18. The method as claimed in claim 17 , wherein:

the first threshold is based on response time of the application.

19. An apparatus for providing on-demand compute resources, comprising:

a plurality of compute resources including at least one memory, wherein the plurality of compute resources are distributed across a network, wherein the plurality of compute resources are coupled to allow communication between at least first compute resources and second compute resources; a conduit coupled to the network, and

configured to provide an application provider access to the network to distribute at least a first application onto the network and request execution of the first application using the plurality of compute resources;

a first resource manager coupled with at least the first compute resources, wherein the first resource manager is configured to activate at least a first set of the first compute resources for processing of the first application when demand for the first application exceeds a first threshold;

and a metering module coupled with the first compute resources, wherein the metering module is configured to monitor the first compute resources including the first set of the first computer resource being activated for processing of the first application, and wherein the metering module is configured to determine an amount to bill the first application provider based on the first set of the first compute resources utilized;

wherein the first resource manager is configured to activate a second set of the first compute resources for processing of the first application when demand for the first application exceeds a second threshold;

and wherein the metering module is configured to monitor the second set of the first computer resource being activated for processing of the first application, and wherein the metering module is configured to determine an increased amount to bill the first application provider based on the second set of the first compute resources utilized.

20. The apparatus as claimed in claim 19 , wherein:

the conduit is further configured to provide the application provider with access to the network to update the first application.

21. The apparatus as claimed in claim 20 , wherein:

the conduit is further configured to provide the application provider with access to the network to replace the first application with a second application.

22. The apparatus as claimed in claim 20 , wherein:

the first compute resources includes at least a first and second set of compute resources, where the first and second set of the first compute resources are configured to be activated and deactivated based on a demand and to provide application processing for at least the first application.

23. The apparatus as claimed in claim 22 , further comprising wherein:

the first resource manager coupled with the first compute resources, and is configured to monitor demand for at least the first application such that the resource manager activates and deactivates at least one of the first and second sets of the first computer resources based on demand.

24. The apparatus as claimed in claim 23 , wherein the first resource manager is further configured to monitor the amount of the first compute resources utilized in processing the first application; and the apparatus further comprising:

wherein the metering module coupled with the first resource manager, and is configured to receive the amount of the first compute resources utilized and to determine an amount to bill the first application provider based on the amount of the first compute resources utilized.

25. The apparatus as claimed in claim 19 , wherein:

the first resource manager is configured to deactivate one of the first and second sets of the first compute resources processing the first application when the demand for the first application falls below a third threshold; and

the metering module registers a decreased amount of compute resources utilized for application processing of the first application based on the deactivation of one of the first and second sets of the first computer resources being deactivated, and the metering module is configured to determine a reduce amount to billed the first application provider based on the decreased amount of the first compute resources utilized.

Assignments (11)
SECURITY INTEREST Recorded Jan 11, 2017
From: MOTHEYE TECHNOLOGIES, LLC; SYNCHRONICITY IP LLC; TRAVERSE TECHNOLOGIES CORP.; 3D NANOCOLOR CORP.; BISMARCK IP INC.; MAGNUS IP GMBH; MUNITECH IP S.À.R.L.; VERMILION PARTICIPATIONS; MARATHON VENTURES S.À.R.L; NYANZA PROPERTIES; MARATHON IP GMBH; ORTHOPHOENIX, LLC; MEDTECH DEVELOPMENT DEUTSCHLAND GMBH; SYNCHRONICITY IP GMBH; TLI COMMUNICATIONS GMBH
To: DBD CREDIT FUNDING LLC, AS COLLATERAL AGENT
Reel/Frame 041333/0001 →
SECURITY INTEREST Recorded Feb 2, 2015
From: MARATHON PATENT GROUP, INC.; CLOUDING CORP.
To: DBD CREDIT FUNDING, LLC
Reel/Frame 034873/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 10, 2014
From: CLOUDING IP, LLC
To: CLOUDING CORP.
Reel/Frame 033709/0456 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 25, 2012
From: SYMANTEC
To: STEC IP, LLC
Reel/Frame 028271/0971 →
CHANGE OF NAME Recorded May 25, 2012
From: STEC IP, LLC
To: CLOUDING IP, LLC
Reel/Frame 028275/0896 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED ON REEL 019872 FRAME 979. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNEE IS SYMANTEC OPERATING CORPORATION. Recorded Feb 28, 2012
From: VERITAS OPERATING CORPORATION
To: SYMANTEC OPERATING CORPORATION
Reel/Frame 027773/0635 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2012
From: SYMANTEC OPERATING CORPORATION
To: SYMANTEC CORPORATION
Reel/Frame 027778/0229 →
CHANGE OF NAME Recorded Sep 26, 2007
From: VERITAS OPERATING CORPORATION
To: SYMANTEC CORPORATION
Reel/Frame 019872/0979 →
AGREEMENT AND PLAN OF MERGER Recorded Apr 10, 2006
From: EJASENT, INC.
To: VERITAS OPERATING CORPORATION
Reel/Frame 017779/0845 →
SECURITY INTEREST Recorded Jan 22, 2002
From: EJASENT, INC.
To: GATX VENTURES, INC.; SILICON VALLEY BANK
Reel/Frame 012493/0729 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2002
From: ABRAMS, PETER C.; BHARADHWAJ, RAJEEV; NATHAN, SWAMI; RODRIGUEZ, ROBERT; MARTYN, CRAIG W.
To: EJASENT, INC.
Reel/Frame 012489/0642 →