Claims
- 1. A method for providing distributed, on-demand application processing, comprising:
providing at least a first application provider access to a network, where the network includes distributed compute resources configured to provide application processing; allowing the first application provider to distribute or remotely deploy at least a first application onto the network to utilize the distributed compute resources for processing of the first application.
- 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 the step of:
allowing an entity to access the compute resources over the network to interact with the first application.
- 6. The method as claimed in claim 5, further comprising the step of:
metering and monitoring the amount of the compute resources utilized for providing application processing of the first application; and charging the first application provider based on the amount of compute resources utilized in processing the first application.
- 7. The method as claimed in claim 6, further comprising:
increasing the amount of compute resources utilized in providing processing for 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.
- 8. The method as claimed in claim 7, wherein:
the increasing the amount of computer resources including increasing the amount of compute resources due to an increased demand for the first application.
- 9. The method as claimed in claim 7, further comprising:
reducing the amount of compute resources utilized in providing processing for 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.
- 10. 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.
- 11. 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.
- 12. The method as claimed in claim 11, wherein:
the application provider dictating a limit on the amount of the computational resources receiving the application to be utilized in providing at least one entity with access to the application for processing of the application.
- 13. The method as claimed in claim 12, further comprising:
through the network, the application provider updating the first application.
- 14. The method as claimed in claim 12, 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.
- 15. The method as claimed in claim 14, 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.
- 16. The method as claimed in claim 15, wherein:
the adjusting the amount of computational resources utilized including not exceeding the limit of the computational resources dictated by the application provider.
- 17. The method as claimed in claim 15, wherein:
the adjusting the amount of computational resources utilized further including:
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.
- 18. The method as claimed in claim 17, wherein:
the initiating an instance of the application including restoring a snapshotted application; and the halting an instance of the application including snapshotting an active application.
- 19. The method as claimed in claim 12, 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.
- 20. The method as claimed in claim 19, wherein:
the first threshold is based on response time of the application.
- 21. A method of providing scalable computational resources, comprising:
receiving a first request for a first application; determining routing of the first request; routing the first request to access the first application; and determining an amount charged to a first application provider.
- 22. The method as claimed in claim 21, wherein:
the determining routing including:
determining if a first instance of a first application is active; and determining if the first instance is at a capacity if the first instance of the first application is active.
- 23. The method as claimed in claim 22, wherein:
the routing including routing the request to the first instance if the first instance is not at capacity.
- 24. The method as claimed in claim 23, wherein:
the routing the request to the first instance including providing a first set of compute resources to satisfy the first request; and the determining the amount charged including increasing the amount charged to the first application provider based on the first set of compute resources.
- 25. The method as claimed in claim 22, further comprising:
the determining routing including determining if compute resources are available for activating a second instance of the first application if the first instance is at capacity; activating the second instance of the first application on a second set of the available compute resources if the first instance is at capacity and the compute resources are available; and the routing including routing the request to the second instance on the second set of the available compute resources.
- 26. The method as claimed in claim 25, wherein:
the determining the amount charged including increasing the amount charged to the first application provider based on the second set of compute resources.
- 27. The method as claimed in claim 25, further comprising:
freeing up a third set of compute resources if in the step of determining if compute resources are available it is determined that compute resources are not available; activating the second instance of the first application on a fourth set of compute resources such that the fourth set of compute resources includes at least a portion of the freed up third set of compute resources; and the routing including routing the request to the second instance on the fourth set of the compute resources.
- 28. The method as claimed in claim 27, wherein:
the determining the amount charged including increasing the amount charged to the first application provider based on the fourth set of compute resources.
- 29. The method as claimed in claim 27, further comprising:
the freeing up including snapshotting a first instance of a second application, wherein the second application is provided by a second application provider; and reducing an amount charged to the second application provider based on the freed up third set of compute resources.
- 30. The method as claimed in claim 21, further comprising:
activating the first application such that the first application is active on a first set of the compute resources.
- 31. The method as claimed in claim 30, wherein:
the determining the amount charged including increasing the amount charged to the first application provider based on the first set of compute resources.
- 32. The method as claimed in claim 31, further comprising:
freeing up the first set of compute resources prior to activating the first application on the first set of compute resources.
- 33. The method as claimed in claim 32, wherein:
the determining routing including determining that a second application operating on a second set of compute resources is to be snapshotted; the freeing up including snapshotting the second application to free up the second set of the compute resources to allow the first application to be activated on the first set of compute resources, wherein the first set of compute resources includes at least a portion of the second set of compute resources.
- 34. The method as claimed in claim 33, further comprising:
reducing an amount charged to a second application provider providing the second application proportional to the second set of compute resources.
- 35. The method as claimed in claim 21, wherein:
the determining the routing including determining if the requested application is currently active on the compute resources.
- 36. The method as claimed in claim 35, further comprising:
the determining the routing including determining that a first set of the compute resources is the optimal compute resources to utilize in the step of activating the first application if the first application is not currently active; activating the first application such that the first application is active on the first set of the compute resources; and the determining the amount charged including increasing the amount charged proportional to the metered amount of first set of compute resources used.
- 37. The method as claimed in claim 36, wherein:
the determining the optimal compute resources including determining which of a plurality of compute modules is least utilized.
- 38. The method as claimed in claim 36, wherein:
the determining routing including determining which of a plurality of compute resources an optimal compute resource.
- 39. A computer readable medium containing instructions, which, when executed by at least a first processor performs the following:
receiving a request from an entity for processing of a first application; determining an amount of compute resources needed to satisfy the request; restoring the first application on a first amount of compute resources; and providing the entity with access to the restored first application.
- 40. A computer readable medium containing instructions, which, when executed by at least a first processor performs the following:
operating a first instance of a first application on a first amount of compute resources; halting the first application along with state information associated with the first application; freeing up a first amount of compute resources; and reducing an amount charged to a first application provider providing the first application based on the first amount of compute resources freed up.
- 41. The computer readable medium as claimed in claim 40, wherein:
the freeing up the first amount of compute resources including placing the halted first application and accompanying state information into a form which can be transferred.
- 42. The computer readable medium as claimed in claim 41, wherein:
the freeing up the resources including transferring the halted first application to a memory.
- 43. The computer readable medium as claimed in claim 41, wherein:
the freeing up the resources including transferring the halted first application to a second amount of compute resources.
- 44. The computer readable medium as claimed in claim 40, further comprising:
activating a second application on a third amount of compute resources where the third amount of compute resources includes at least a portion of the freed up first amount of compute resources.
- 45. The computer readable medium as claimed in claim 44, further comprising:
increasing an amount charged to a second application provider providing the second application based on the third amount of compute resources.
- 46. The computer readable medium as claimed in claim 44, further comprising:
restoring the halted first application and accompanying state information on a second amount of compute resources to allow the second amount of compute resources to process the restored first application.
- 47. The computer readable medium as claimed in claim 40, further comprising:
receiving a request from an entity for processing of a third application; determining an amount of compute resources needed to satisfy the request; restoring the third application on a fourth amount of compute resources; and providing the entity with access to the restored third application.
- 48. The computer readable medium as claimed in claim 47, further comprising:
increasing an amount charged to a third application provider providing the third application based on the fourth amount of compute resources.
- 49. The computer readable medium as claimed in claim 47, wherein:
the restoring the third application including restoring the third application from a snapshotted state.
- 50. The computer readable medium as claimed in claim 47, wherein:
the entity is a user.
- 51. The computer readable medium as claimed in claim 47, wherein:
the entity is an application.
- 52. A computer program product for providing application processing, the computer program product including a computer readable storage medium and a computer program mechanism embedded therein, the computer program mechanism comprising:
a method for providing application processing, comprising: receiving a request from an entity for processing of a first application; restoring a first instance of the first application from a halted state on a first set of compute resources; providing the entity access to the restored first instance; and charging a first application provider based on the first set of computer resources.
- 53. The computer program product as claimed in claim 52, further comprising:
making a first set of compute resources available prior to the step of restoring the first instance including:
putting an active first instance of a second application along with its associated states into a halted state; and freeing up a second set of compute resources, the first set of compute resources includes at least a portion of the freed second set of compute resources.
- 54. The computer program product as claimed in claim 53, further comprising:
reducing an amount charged to a second application provider providing the second application based on the freed second set of compute resources.
- 55. The computer program product as claimed in claim 53, wherein:
the step of putting the active first instance of the second application along with its associated states into a halted state includes snapshotting the second application.
- 56. The computer program product as claimed in claim 53, further comprising:
placing the halted first instance of the second application and its state information into a form which can be transferred to a third set of compute resources; transferring the halted first instance of the second application; activating the first instance of the second application on the third set of compute resources.
- 57. The computer program product as claimed in claim 56, wherein:
the third set of compute resources is provided at least in part on a second processor which is different than a first processor providing at least part of the first set of compute resources.
- 58. The computer program product as claimed in claim 56, further comprising:
reducing an amount charged to a second application provider providing the second application based on the freed second set of compute resources; and increasing the amount charged to the second application provider based on the third set of compute resources.
- 59. An apparatus for providing computational resources for application processing of one or more applications provided by one or more application providers, comprising:
a first resource manager; at least one snapshot module configured to snapshot an active application; a first set of compute resources configured to provide application processing; and the resource manager couples with and is configured to communicate with the snapshot module and the first set of compute resources, and further configured to provide at least some control to the snapshot module and the first set of compute resources, the resource manager further configured to monitor the amount of the first set of compute resources utilized in providing application processing.
- 60. An apparatus for providing computational resources for application processing of one or more applications provided by one or more application providers, comprising:
a first resource manager; at least one restored module configured to restore a snapshotted application; a first set of compute resources configured to provide applications processing; and the first resource manager couples with and is configured to communicate with the restored module and the first set of compute resources, and further configured to provide at least some control to the restored module and the first set of compute resources, the resource manager is further configured to monitor the amount of the first set of compute resources utilized in providing application processing.
- 61. The apparatus as claimed in claim 60, further comprising:
at least one snapshot module configured to snapshot an active application; and the first resource manager couples with and is configured to communicate with the snapshot module and to provide at least some control to the snapshot module.
- 62. The apparatus as claimed in claim 60, further comprising:
at least one performance module coupled with the first resource manager and the first set of compute resources, and configured to monitor the first set of computational resources and provide the resource manager with compute resource utilization.
- 63. The apparatus as claimed in claim 60, further comprising:
a second set of compute resources configured to provide application processing; and a second resource manager coupled with the second set of compute resources, and configured to provide at least some control to the second set of compute resources and to monitor the amount of the second set of compute resources utilized in providing the application processing.
- 64. The apparatus as claimed in claim 60, further comprising:
a global dispatcher coupled with the first and second resource managers, the global dispatcher configured to receive requests for at least one application and to route the requests to an optimal resource manager.
- 65. The apparatus as claimed in claim 64, further comprising:
a second set of compute resources configured to provide application processing; a second resource manager coupled with the second set of compute resources, and configured to provide at least some control to the second set of compute resources and to monitor the amount of the second set of compute resources utilized in providing the application processing for each application provider; and the optimal resource manager is one of the first and second resource managers.
- 66. The apparatus as claimed in claim 64, further comprising:
a deploy module coupled with the first resource manager and the first set of compute resources, and configured to receive at least one application from at least one of the application providers, and provision the first set of compute resources to be utilized in processing the at least one application.
- 67. The apparatus as claimed in claim 66, further comprising:
a conduit coupled with the deploy module configured to provide the application providers with access to the deploy module to distribute the at least one application for application processing.
- 68. The apparatus as claimed in claim 67, wherein:
the conduit further configured to provide the application providers with access to the deploy module to distribute at least one update to the at least one application previously distributed.
- 69. The apparatus as claimed in claim 66, further comprising:
a local dispatcher coupled with the first resource manager and the first set of compute resources, and configured to provide routing of requests for the at least one application to the first set of compute resources.
- 70. The apparatus as claimed in claim 69, wherein:
the local dispatcher is configured to receive directions from the first resource manager and to provide routing of requests to the first set of compute resources as directed from the resource manager.
- 71. The apparatus as claimed in claim 69, wherein:
a entity coupled with a network and requesting application processing; and the local dispatcher couples with the network such that the entity accesses the at least one application over the network.
- 72. The apparatus as claimed in claim 71, wherein:
a global dispatcher couples with the network, and configured to provide routing of requests such that the entity is routed to the local dispatcher by the global dispatcher.
- 73. The apparatus as claimed in claim 71, wherein:
the deploy module couples with the network such that the at least one application provider deploys the at least one application to the deploy module over the network.
- 74. The apparatus as claimed in claim 60, further comprising:
at least one compute module coupled with the first resource manager, wherein the at least one compute module includes one of the at least one snapshot module, and one of the at least one restored module and at least a third set of compute resources wherein the third set of compute resources is part of the first set of compute resources.
- 75. The apparatus as claimed in claim 60, further comprising:
a plurality of compute modules each coupled with the first resource manager, wherein each compute module includes one of the at least one snapshot module, one of the at least one restored module, and a subset of the first set of compute resources; and at least one performance module coupled with first resource manager and each of the subsets of the first set of compute resources, wherein the performance module is configured to monitor the utilization of the first set of compute resources in providing application processing.
- 76. An apparatus for providing on-demand compute resources, comprising:
a plurality of compute resources distributed across a network, where the plurality of compute resources are coupled to allow communication between at least a first compute resource and a second compute resource; 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.
- 77. The apparatus as claimed in claim 76, wherein:
the conduit is further configured to provide the application provider with access to the network to update the first application.
- 78. The apparatus as claimed in claim 77, 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.
- 79. The apparatus as claimed in claim 77, wherein:
the first compute resources includes at least a first and second set of compute resources, where the first and second set of compute resources are configured to be activated and deactivated based on a demand, and to provide application processing for at least the first application.
- 80. The apparatus as claimed in claim 79, further comprising:
a first resource manager coupled with the first compute resources, and 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 computer resources based on demand.
- 81. The apparatus as claimed in claim 80, wherein:
the first resource manager is further configured to monitor the amount of the first compute resources utilized in processing the first application; and a metering module coupled with the first resource manager, and 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.
- 82. The apparatus as claimed in claim 76, further comprising:
a first resource manager coupled with at least the first compute resources, and 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, where the metering module monitors the first compute resources including the first set of the first computer resource being activated for processing of the first application, and 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.
- 83. The apparatus as claimed in claim 82, 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 the metering module monitors the second set of the first computer resource being activated for processing of the first application, and 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.
- 84. The apparatus as claimed in claim 83, 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.
- 85. A network configured to provide on-demand compute resources such that at least one entity can access the compute resources to interact with at least one application, the network comprising:
a first means for application processing configured to provide application processing; a first application distributed onto the network and configured to be processed by the first means for application processing; a first means for managing application processing coupled with the first means for application processing, and configured to activate at least a first instances of the first application on a first set of the first means for application processing based on a first amount of demand for the first application; a means for monitoring coupled with the first means for application processing, and configured to monitor at least the first set of the first means for application processing utilized to provide the entity with access to the first instances of the first application; and a means for determining an amount to charge coupled with the first means for application processing, and configured to determine an amount to be charged based on the first set of the first means for application processing utilized in providing the entity with access to the first instance of the first application.
- 86. The network as claimed in claim 85, wherein:
the means for managing application processing further configured to activate a second instance of the first application on a second set of the first means for application processing based on a second amount of demand for the first application; the means for monitoring further configured to monitor the second set of the first means for application processing utilized to satisfy the second amount of demand for the first application; and the means for determining an amount to charge is configured to determine an amount to be charged based on the second set of the first means for application processing utilized in providing access to the second instance of the first application.
- 87. The network as claimed in claim 86, wherein:
the means for managing application processing further configured to deactivate the one of the first and second instances of the first application based on a third amount of demand for the first application; and the means for monitoring further configured to monitor a third set of the first means for application processing utilized to satisfy the third amount of demand; and the means for determining the amount to charge is configured to determine an amount to be charged based on the third set of the first means for application processing.
- 88. The network as claimed in claim 85, wherein:
a second means for application processing configured to provide application processing; a second means for managing application processing coupled with the second means for application processing, and configured to activate at least a third instances of the first application on a first set of the second means for application processing based on a fourth amount of demand for the first application; the second means for application processing couples with the means for monitoring, such that the means for monitoring monitors first set of the second means for application processing utilized to satisfy the fourth amount of demand for the first application; and the means for determining an amount to charge couples with the second means for application processing, and is further configured to determine an amount to be charged based on the first set of the first means for application processing and the first set of the second means for application processing utilized in satisfying the first and fourth amount of demand.
- 89. The network as claimed in claim 88, further comprising:
a means for dispatching coupled with the first and second means for application processing, and configured to route at least one entity to an optimal means for application processing allowing the at least one entity access to at least the first application, where the optimal means for application processing is one of the first and second means for application processing.
- 90. The network as claimed in claim 85, wherein:
the first means for application processing comprises an edgepoint.
- 91. The network as claimed in claim 90, wherein:
the means for dispatching comprises a global dispatcher.
- 92. The network as claimed in claim 85, wherein:
the first means for application processing comprises a compute module.
- 93. A system to provide computer application processing capacity as a pay-per-use utility on demand.
- 94. A system of the type having at least one processor and memory associated with said processor and providing computer application processing capability to users, said system 25 characterized in that said computer application processing capacity is provided as a pay-per-use utility on demand.
- 95. A system as in claim 94, wherein said system includes a plurality of processors within server computers distributed over a broad geographic area.
- 96. An operating model for distributed on-demand utility based application processing.
RELATED APPLICATIONS
[0001] The present application claims priority to and incorporates the following applications in their entirety by reference:
[0002] A Method and Apparatus for Providing Pay-Per-Use, Distributed Computing Capacity, U.S. Provisional Application Serial No. 60/232,052, filed on Sep. 12, 2000;
[0003] Snapshot Virtual Templating, U.S. patent application Ser. No. 09/684,373, filed on Oct. 5, 2000;
[0004] Dynamic Symbolic Link Resolution, U.S. patent application Ser. No. 09/680,560, filed on Oct. 5, 2000;
[0005] Snapshot Restore of Application Chains and Applications, U.S. Patent application Ser. No. 09/680,847, filed on Oct. 5, 2000;
[0006] Virtual Resource-ID Mapping, patent application Ser. No. 09/680,563, filed on Oct. 5, 2000; and
[0007] Virtual Port Multiplexing, patent application Ser. No. 09/684,457, filed on Oct. 5, 2000.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60232052 |
Sep 2000 |
US |