CROSS-REFERENCE TO PARENT APPLICATIONThis patent application is a continuation of U.S. Ser. No. 10/616,676 filed on Jul. 10, 2003, which is incorporated herein by reference.
BACKGROUND OF THE INVENTION1. Technical Field
This invention generally relates to data processing, and more specifically relates to utilization of resources in a computer system.
2. Background Art
Since the dawn of the computer age, computer systems have evolved into extremely sophisticated devices that may be found in many different settings. Computer systems typically include a combination of hardware (e.g., semiconductors, circuit boards, etc.) and software (e.g., computer programs). As advances in semiconductor processing and computer architecture push the performance of the computer hardware higher, more sophisticated computer software has evolved to take advantage of the higher performance of the hardware, resulting in computer systems today that are much more powerful than just a few years ago.
One problem with computer systems today is balancing the cost of the computer hardware with fluctuating demands on computer resources. In most networked computer systems, there are times when the computing demands are relatively low, and other times when the computing demands are very high. If a company purchases a computer system that is capable of meeting peak demand, much of the capacity of the computer system will go unused during non-peak times. In addition, purchasing capacity to meet peak demand is costly. If a company purchases a computer system that is capable of meeting average demand, the cost is lower, but the performance of the computer system suffers during peak times.
One way to provide a more flexible solution allows a computer user to buy a computer system that has some resources installed, but initially disabled. When the customer determines that more capacity is needed, the customer may enter into an arrangement with the provider of the computer system to enable certain resources for a fixed period of time. This works out particularly well for companies that have seasonal peaks. The companies can purchase a computer system at a reasonable cost that has the capability of providing enhanced computing power during the peak season. The concept of providing temporary capacity on demand is the subject matter of the related patent application “Method to Provide On-Demand Resource Access”, Ser. No. 10/406,652, filed on Apr. 3, 2003.
Referring toFIG. 2, a flow diagram of onesuitable method200 for providing temporary capacity on demand begins by the customer requesting an enablement code from the manufacturer (step210). The customer receives the enablement code, which includes a specification of resource-time (step220). The term “resource-time” is a general term that allows specifying any resource or combination of resources for any suitable period of time. One example of resource-time is processor-days. The customer enters the enablement code, which enables the resources on the computer system (step230). A timer is then started (step240). The user may then use the resources (step250) as long as the resource-time has not expired (step260=NO). Once the resource-time expires (step260=YES), the resources are disabled (step270).
A simple example will show the usefulness ofmethod200. Let's assume that a company that sells goods via catalog sales experiences peak demand in November and December of each year due to holiday shopping. The company could purchase a computer system that has one or more additional processors that are installed but initially disabled. The company may then contract with the provider of the computer system to enable the additional processor(s) for a set period of time. Let's assume that the computer system has two additional processors, and let's assume that the peak buying period runs for the thirty day period from November 15thto December 14th. The customer could purchase sixty processor-days of additional capacity beginning on November 15th. These two additional processors will then be enabled for the thirty day period (providing the sixty processor-days of additional capacity). Once the sixty processor-days have elapsed, the two additional processors are disabled.
One problem withmethod200 is the customer pays for the resource-time even though the resources may be used only a fraction of that time. For example, if the additional processors are used primarily during the eight hour day shift, the customer ends up paying for capacity that goes mostly unused during the other two shifts. In the example above, if the customer purchases sixty processor-days, and two processors are being enabled, these two processors are enabled for exactly thirty days regardless of workload during that time. While this is a vast improvement over prior systems that do not provide temporary capacity on demand, it still has its drawbacks.
Without a way to provide temporary capacity on demand in a way that allows customers to pay for only the actual use of temporary resources, the computer industry will not be able to meet the demands of customers who prefer to pay for temporary resources based on actual usage.
DISCLOSURE OF INVENTIONAn apparatus and method provides the capability of metering temporary capacity on demand in a computer system. A resource-time is specified, such as processor-days. The actual usage of the resource is monitored, and the customer is charged for only the actual usage of the resource. In this manner a customer may purchase a specified resource-time, and is only charged for the time that the resource is actually used. The preferred embodiments extend to metering temporary capacity on demand in a logically partitioned computer system. If a resource is shared, the actual usage of the resource is monitored, and the customer is only billed for actual usage that exceeds a predetermined non-zero threshold.
The foregoing and other features and advantages of the invention will be apparent from the following more particular description of preferred embodiments of the invention, as illustrated in the accompanying drawings.
BRIEF DESCRIPTION OF DRAWINGSThe preferred embodiments of the present invention will hereinafter be described in conjunction with the appended drawings, where like designations denote like elements, and:
FIG. 1 is a block diagram of a computer apparatus in accordance with the preferred embodiments;
FIG. 2 is a flow diagram of a method for providing temporary capacity on demand;
FIG. 3 is a flow diagram of a first method in accordance with the preferred embodiments that allows a customer to be billed for metered usage of temporary resources;
FIG. 4 is a flow diagram of a second method in accordance with the preferred embodiments that allows a customer to prepay for metered usage of temporary resources;
FIG. 5 is a block diagram showing logical components in a logically partitioned computer system;
FIG. 6 is a flow diagram of a third method in accordance with the preferred embodiments that allows a customer to be billed for metered usage of temporary resources in a logically partitioned computer system; and
FIG. 7 is a flow diagram of a fourth method in accordance with the preferred embodiments that allows a customer to prepay for metered usage of temporary resources in a logically partitioned computer system.
BEST MODE FOR CARRYING OUT THE INVENTIONReferring toFIG. 1, acomputer system100 is an enhanced IBM eServer iSeries computer system, and represents one suitable type of computer system in accordance with the preferred embodiments. Those skilled in the art will appreciate that the mechanisms and apparatus of the present invention apply equally to any computer system. As shown inFIG. 1,computer system100 comprises one ormore processors110 connected to amain memory120, amass storage interface130, adisplay interface140, anetwork interface150, and a plurality of I/O slots180. These system components are interconnected through the use of asystem bus160.Mass storage interface130 is used to connect mass storage devices (such as a direct access storage device155) tocomputer system100. One specific type of direct access storage device is a CD RW drive, which may read data from a CD R.W.195. Note thatmass storage interface130,display interface140, andnetwork interface150 may actually be implemented in adapters coupled to I/O slots180.
Main memory120 containsdata121, anoperating system122, and acapacity manager123.Data121 is any data that may be read or written by anyprocessor110 or any other device that may access themain memory120.Operating system122 is a multitasking operating system, such as OS/400, AIX, or Linux; however, those skilled in the art will appreciate that the spirit and scope of the present invention is not limited to any one operating system. Any suitable operating system may be used.Operating system122 is a sophisticated program that contains low-level code to manage the resources ofcomputer system100. Some of these resources areprocessor110,main memory120,mass storage interface130,display interface140,network interface150,system bus160, and I/O slots180.
Capacity manager123 provides metered capacity on demand. Thecapacity manager123 includes anenablement code mechanism124, which is used to determine whether anenablement code125 is valid, and to enable one or more resources when the enablement code is determined to be valid. Theresource allocator126 is the mechanism that allocates resources for use. Thus, when theenablement mechanism124 determines that anenablement code125 is valid, theresource allocator126 makes the corresponding resource(s) available for use.Capacity manager123 also includes anactual use meter127 that measures usage in resource-time units128. In a first embodiment, the actual use meter tracks actual usage in resource-time units, and the customer is then billed for the actual usage. In a second embodiment, the actual use meter has a prepaid number of resource-time units, and the actual use is deducted from the prepaid resource-time units until the prepaid resource-time units are exhausted.
Computer system100 utilizes well known virtual addressing mechanisms that allow the programs ofcomputer system100 to behave as if they only have access to a large, single storage entity instead of access to multiple, smaller storage entities such asmain memory120 andDASD device155. Therefore,data121,operating system122, andcapacity manager123 are shown to reside inmain memory120, those skilled in the art will recognize that these items are not necessarily all completely contained inmain memory120 at the same time. It should also be noted that the term “memory” is used herein to generically refer to the entire virtual memory ofcomputer system100.
Processor110 may be constructed from one or more microprocessors and/or integrated circuits.Processor110 executes program instructions stored inmain memory120.Main memory120 stores programs and data thatprocessor110 may access. Whencomputer system100 starts up,processor110 initially executes the program instructions that make up theoperating system122.
Althoughcomputer system100 is shown to contain only a single system bus, those skilled in the art will appreciate that the present invention may be practiced using a computer system that has multiple buses. In addition, the I/O interfaces that are used in the preferred embodiment each may include separate, fully programmed microprocessors that are used to off-load compute-intensive processing fromprocessor110, as in iSeries input/output processors, or may be simple industry standard I/O adapters (IOAs).
Display interface140 is used to directly connect one ormore displays165 tocomputer system100. Thesedisplays165, which may be non-intelligent (i.e., dumb) terminals or fully programmable workstations, are used to allow system administrators and users to communicate withcomputer system100. Note, however, that whiledisplay interface140 is provided to support communication with one ormore displays165,computer system100 does not necessarily require adisplay165, because all needed interaction with users and other processes may occur vianetwork interface150.
Network interface150 is used to connect other computer systems and/or workstations (e.g.,175 inFIG. 1) tocomputer system100 across anetwork170. The present invention applies equally no matter howcomputer system100 may be connected to other computer systems and/or workstations, regardless of whether thenetwork connection170 is made using present-day analog and/or digital techniques or via some networking mechanism of the future. In addition, many different network protocols can be used to implement a network. These protocols are specialized computer programs that allow computers to communicate acrossnetwork170. TCP/IP (Transmission Control Protocol/Internet Protocol) is an example of a suitable network protocol.
At this point, it is important to note that while the present invention has been and will continue to be described in the context of a fully functional computer system, those skilled in the art will appreciate that the present invention is capable of being distributed as a program product in a variety of forms, and that the present invention applies equally regardless of the particular type of computer readable signal bearing media used to actually carry out the distribution. Examples of suitable signal bearing media include: recordable type media such as floppy disks and CD RW (e.g.,195 ofFIG. 1), and transmission type media such as digital and analog communications links.
Referring now toFIG. 3, amethod300 in accordance with a first embodiment bills a customer for actual use of temporary resources in a computer system. First, the customer requests an enablement code (step310). The provider of the computer system sends the enablement code to the customer (step320). Note that the enablement code includes a specification of resource-time. The resources specified in the enablement code are then enabled (step330). The customer may then use the resources (step340). The actual usage of the resources is metered (step350). The usage of resources instep340 and metering of actual usage instep350 continues as long as it is not time to bill (step360=NO). Once it is time to bill (step360=YES), a record of metered resource usage is sent to the resource provider (step370), and the resource provider then sends a bill to the customer for the metered resource usage (step380). The advantage ofmethod300 when compared tomethod200 inFIG. 2 is the customer is only charged for the actual usage of the resources. Thus, if two processors are enabled for sixty processor-days, and the two processors are used on average only eight hours of each twenty four hour day, the sixty processor days will last for a total of ninety days instead of the thirty days provided bymethod200 inFIG. 2. Two processors times ⅓ of a day usage per calendar day equals ⅔ of a processor day per calendar day. Because only ⅔ of a processor day is expended per calendar day, the sixty processor days will last for ninety calendar days instead of the thirty calendar days that would result usingmethod200 inFIG. 2. In addition,method300 may include the ability to bill at a higher rate for a predetermined resource-time (such as sixty processor-days), then bill at a lower rate once the predetermined resource-time has been used.
The record of metered resource usage may be sent to the provider via any suitable carrier. In a manual example, the customer queries the computer system to determine metered usage, and reports the metered usage on a form that is sent or faxed to the resource provider. In an automatic example, the capacity manager automatically sends the record of metered usage to the provider via the Internet, and the customer is then billed for the metered usage. Of course, other combinations and variations are possible, all of which are within the scope of the preferred embodiments.
Another option is to allow the customer to prepay for a predetermined amount of resource-time, and to deduct actual usage from the prepaid amount. This is similar to a prepaid phone card that has a specified number of minutes, and deducts from the total as minutes are used. One implementation of a prepaid method is shown asmethod400 inFIG. 4. The customer prepays for a specified resource-time (step410). The customer then requests an enablement code for the prepaid resource-time (step420). The resource supplier then provides the enablement code to the customer (step430), which includes a specification of prepaid resource-time. The resources are then enabled (step440) and used (step450). The actual usage of the resources is metered (step460), and deducted from the prepaid resource-time.Steps450 and460 continue as long as the metered use is less than the prepaid resource-time (step470=YES). Once the metered use is no longer less than the prepaid resource time (step470=NO), the resources are disabled (step480).
A modification tomethod400 inFIG. 4 within the scope of the preferred embodiments is the ability to renew the prepaid resource-time. Thus, if the prepaid resource time gets to some predetermined threshold (e.g., 20% of initial amount), the customer could be prompted to prepay for additional resource-time. If the customer does so before the prepaid resource-time is used up, the additional resource-time is added to the remaining balance, allowing the computer system to continue operating with the additional resources without interruption.
While the examples discussed with reference toFIGS. 1,3 and4 above do not have logical partitions, the preferred embodiments also extend to a logically partitioned computer system. Referring toFIG. 5, one specific implementation of a logically partitionedcomputer system500 includes N logical partitions, with each logical partition executing its own respective operating system526. InFIG. 5,logical partitions525A . . .525N are shown executing theirrespective operating systems526A . . .526N. The operating system526 in each logical partition may be the same as the operating system in other partitions, or may be a completely different operating system. Thus, one partition can run the OS/400 operating system, while a different partition can run another instance of OS/400, possibly a different release, or with different environment settings (e.g., time zone). The operating systems in the logical partitions could even be different than OS/400, provided it is compatible with the hardware (such as AIX or Linux). In this manner the logical partitions can provide completely different computing environments on the same physical computer system.
The logical partitions are managed by apartition manager540. One example ofsuitable partition manager540 is known as a “hypervisor” in IBM terminology.Partition manager540 manages resources550, shown inFIG. 5 asresource550A through resource550X. A “resource” in this context may be any hardware or software that may be controlled bypartition manager540. Examples of hardware resources include processors, memory, and hard disk drives. Examples of software resources include a database, internal communications (such as a logical LAN), or applications (such as word processors, e-mail, etc.). Thepartition manager540 controls which resources550 may be used by the logical partitions525. A resource, once made available to thepartition manager540, is categorized as anavailable resource560 if it has not yet been assigned to a logical partition, is categorized as a sharedresource570 if multiple logical partitions may access the resource, and is categorized as a dedicated resource580 if it has been exclusively assigned to a logical partition.FIG. 5 showsdedicated resources580A . . .580N that correspond to eachlogical partition525A . . .525N.
Referring toFIG. 6, amethod600 in accordance with the preferred embodiments begins when a customer requests an enablement code for a temporary resource on a computer system that includes logical partitions (step602). The computer supplier provides the enablement code to the customer, which includes a specification of which resource to enable (step604). The resource is then marked as available (step606). This means that the resource is placed in the pool ofavailable resources560 that have not yet been assigned to any logical partition. What happens next depends on whether the resource is then allocated by the partition manager as a dedicated resource to a particular partition, or whether the resource is allocated for shared use (step610). If the resource is to be a dedicated resource to a logical partition (step610=YES), a meter timer is started (step620) and the resource is used (step630). This continues (step630=NO) until the meter timer indicates it is time to bill (step630=YES). A record of the metered resource usage is then sent to the resource provider (step632), and the resource provider then sends a bill for the metered resource usage to the customer (step634). Note that when a resource is configured to a dedicated partition (step610=YES), the resource is considered to be 100% in use regardless of the actual usage in the dedicated partition. Therefore, every actual minute the resource is dedicated to a partition is a resource-minute that is charged to the customer. This is why a meter time is started instep620, and why the record of metered usage instep632 is the resource multiplied by the time elapsed on the meter timer. In this sense,method600 is similar tomethod200 inFIG. 2 that bills the customer according to the time a resource is enabled regardless of its actual use. This type of billing makes sense for logical partitions that have dedicated use of a resource, because that resource is unavailable for other logical partitions to use.
If the resource is allocated by the partition manager as a shared resource (step610=NO), multiple logical partitions may use the shared resource (step640). We assume a threshold value for shared use is specified. As long as the shared use does not exceed the threshold (step650=NO), no time is metered. Only when the shared use exceeds the specified threshold (step650=YES) does the capacity manager meter the shared use, and then only the shared use over the threshold is metered (step652). Once it is time to bill (step660=YES), the record of metered resource usage is sent to the resource provider (step662), and the resource provider sends a bill for the metered resource usage to the customer (step664).
The threshold that determines when the customer is charged is preferably determined by the capacity of the system before the temporary resources were enabled. For example, if one processor is allocated to the shared pool for five shared partitions that are configured for equal access to the pool, each of the partitions can use up to 20% of the processor clock cycles. Usage is averaged over a period of time and if any partition's usage exceeds 20% of the processor cycles, work from that partition is not dispatched to the processor before work from the other partitions, permitting the other partitions' usage to climb to their configured 20%. Now, let's assume that two additional processors are made available on demand. These two processors are initially marked available (step606), and are then allocated as shared resources (step610=NO). When the aggregate pool usage of processor clock cycles exceeds the amount one processor provides over an average time period, the additional cycles used are metered, and accumulate until a processor-minute's worth of cycles have been used and a processor-minute is charged to the customer. Of course, any suitable resource-time increment may be used. In this manner, different logical partitions may share a resource in a logically partitioned computer system and will only be charged according to their actual respective use of the resource. One advantage of the present invention is the ability of a logical partition service provider being able to determine which logical partition exceeded allocations (and so was metered) so the customer using metered capacity can be billed by the service provider.
Referring now toFIG. 7, amethod700 in accordance with the preferred embodiments shows the case when a customer prepays for resource-time (step710) in a logically partitioned computer system, rather than being billed (as shown inFIG. 6). The enablement code is requested (step712) and received (step714), and the resource is made available for assignment to a logical partition (step716). If the resource is dedicated to a partition (step720=YES), the meter timer is started (step730), and the resource is used (step732) until the metered use equals the prepaid resource time (step740=NO). At this point, the resource is disabled (step742). If the resource is shared among logical partitions (step720=NO), the shared resources are used by the logical partitions (step750). When the shared use exceeds the specified threshold (step760=YES), the actual usage over the threshold is metered (step762), and the metered use is compared to the prepaid resource-time. Once the metered use is equal to the prepaid resource-time (step720=NO), the resource is disabled (step772) such that no new work is dispatched to the processor. Note thatmethod700 could include steps that allow renewing the prepaid time so the resource metered use never arrives at the prepaid resource-time, thereby preventing the resource from being disabled.
The preferred embodiments provide significant advantages over the known prior art. Now temporary capacity on demand may be provided on a metered basis, where the customer is only charged for actual usage of the resource. This is analogous to a telephone bill or electric bill, where the customer pays based on actual usage of resources. The ability to meter and bill based on actual usage provides enhanced capabilities in a logically partitioned computer system, because logical partitions that share resources may now each be charged for only actual usage of the shared resources. Because actual usage may now be metered and billed, the level of granularity for charging customers is reduced. For example, instead of billing for processor-days, one could bill for processor-minutes, processor-seconds, or even processor cycles.
One skilled in the art will appreciate that many variations are possible within the scope of the present invention. Thus, while the invention has been particularly shown and described with reference to preferred embodiments thereof, it will be understood by those skilled in the art that these and other changes in form and details may be made therein without departing from the spirit and scope of the invention.