1. Field of the Invention
The present invention generally relates to processing systems. More specifically, the present invention is directed to a method for correlating processor usage to customer billing in an on-demand server with real-time allocation/deallocation of processing resources.
2. Related Art
Currently, there is no effective method for allocating processor cycles in real-time under typical customer operating environments. The only known solution is to equip servers with additional processors that are disabled until increased demand requires them to be activated. However, when additional processing resources are required, a server must be rebooted in order to activate the additional processors. The additional processors (e.g., cores) are enabled during POST (power-on self test) and then recognized by the operating system, at which point the additional processors can start performing useful work. Companies that use their servers for transaction, billing, or database processing would lose large sums of money during the downtime required to enable the additional processors.
In the current on-demand business model, a customer can have inactive processing resources on their systems that they must decide when to activate. Once the customer decides to activate the processing resources, they are charged for the entire cost of the newly activated processing resources, even if they only need a percentage of the available processor cycles for a small amount of time. Furthermore, if the workload decreases, the customer does not have the flexibility to disable and stop paying for the unused processing resources, since they have already completely purchased them when they activated them for the first time.
An important factor in the current on-demand business model is software licenses, which typically offer a customer limited choices for licensing payments. Common licensing models include: 1) the customer buys a perpetual license for a system with X number of processors and Y number of users; and 2) the customer buys a (1, 2, 3, 4, or 5) year license for a system with X number of processors and Y number of users. The customer is required to forecast any future increases in system demands that might occur and allocate financial resources to purchase additional licenses when needed. This means that the customer will have to pay extra, regardless of the licensing model used, for a new license that will cover the new system configuration plus the new projected number of users, even if the additional processing capability is required only for a short period of time. If the additional processing resources are no longer needed, for example due to a decrease in server workload, the customer is still obligated to pay based on the type of licensing agreement (e.g., per year or perpetual).
Accordingly, there is a need for an on-demand infrastructure in which processing cycles are dynamically allocated in real-time without requiring server system reboot for the operating system to recognize the additional processing resources, and in which processing capability can be increased and decreased in real-time depending on fluctuating server workloads.