1. Field of the Invention
The present invention relates generally to an improved data processing system and in particular to a computer implemented method and apparatus for processing data. Still more particularly, the invention relates to capacity planning and resource availability notification on a hosted grid.
2. Description of the Related Art
Modern data processing environments at times require additional resources to handle temporary increases in workload. For example, a bank may experience unusually high electronic business traffic for a period of hours, days, or longer. During these times, the bank's data processing environment may become slow or may fail to process some transactions, resulting in loss of efficiency, errors, or business opportunity. While a business may wish to avoid these undesirable outcomes, adding additional data processing capability often is cost inefficient relative to the frequency of high traffic.
To resolve this problem, some businesses enter into a contract with a provider to provide additional data processing resources when needed. The customer business usually pays a hosting fee to maintain the availability of data processing resources. The customer also pays an additional fee for the actual use of host resources, such as data processing resources, as they are used. Thus, the customer pays a hosting or maintenance fee and a “pay-as-you-go” or “on demand” fee when using the host resources. The collection of resources both in the local customer data processing environment as well as a remote hosted data processing environment can combine to form a single global data processing grid.
In general, grid computing is a form of networking data processing systems to facilitate the aggregation of computing power. Grid computing may harness unused processing cycles of all data processing systems in a network for solving problems too intensive for any one stand-alone data processing system. An example of this type of data processing grid is the Deep Computing Capacity on Demand (DCCOD) center in Poughkeepsie, New York. Customers can use the DCCOD grid to off-load work that cannot be accomplished on their own local data processing environment. Such customers only use this capacity when their own facilities cannot handle the workload required by a change in business process, by added users, by additional requirements on established workloads or the by addition of workloads.
A hosted grid provider, or vendor, must be able to predict the type, amount, and configuration of resources that should be made available to a particular customer at a particular time. However, by the nature of the contractual “pay-as-you-go” arrangement, the hosted grid provider may not know precisely what resources, the amount of resources, or the configuration of resources needed until the customer calls upon the vendor for the additional resources. For instance, a customer may ask for capacity to host an application at a specified throughput for a specified number of hours at a specified time. A customer may further specify the configuration, such as the operating system, middleware, storage, and other hardware and software that is to be present on any part of the facility tasked to executing the workload. The provider is faced with the problem of predicting these requirements and requests far enough in advance to provide the required services in a timely manner. The problem is exacerbated by the fact that the vendor typically provides similar services to many different customers, each of whom uses a variable amount of the vendor's resources at any given time. Thus, the vendor also has the problem of planning how many resources to allocate to the host grid, or host data processing grid, for customers of a given class. This type of planning may be referred to as capacity planning.
In the past, yield management systems performed capacity planning by monitoring the current activity of the host grid and by monitoring customer-reported expected activity. For example, a customer contract may have specified an expected amount of activity over a specified period of time or that a minimum level of resources was to be made available by the vendor when a request is made. In turn, the host grid would be configured according to the current usage as judged by CPU cycles used, storage usage, network traffic, other factors, and the customer-reported predicted requirements.
However, yield management systems that use this method only account for current hosted usage and for a given, predicted set of resources for a known amount of time and typically at rather coarse grain time frames, such as from weeks to months. Thus, older management systems do not provide for a rapid change in the needs of the customer. In addition, older management systems do not allow for external monitoring in which continual and dynamic update of customer usage patterns both within the hosted site as well as on the customer site is possible. This type of statistical collection is required for more rapid and more accurate prediction of resource requirement, and to prevent over-allocation of resources. Finally, older management systems do not allow for monitoring of customer usage both within the hosted site and at the customer site, which would also provide for more accurate host grid provisioning. Thus, it would be advantageous to have computer implemented methods and devices for monitoring customer usage in a global data processing grid and for dynamically adjusting host grid provisioning.
The aspects of the present invention provides a computer implemented method, apparatus and computer usable program code for dynamically changing allocation policy in a host grid to support a local grid, or local data processing grid. The host grid is operated according to a set of allocation policies. The set of allocation policies corresponds to a predetermined resource allocation relationship between the host grid and a local grid. Based on the set of allocation policies, at least one resource on the host grid is allocated to the local grid. A monitoring agent is then used to monitor one of the local grid and both the local grid and the host grid for a change in a parameter. A change in the parameter may result in a change in the set of allocation policies. In the present invention, the host grid has a set of resources and includes at least one data processing system. The local grid includes at least one data processing system and is connected to the host grid via a network.
The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as an illustrative mode of use, further objectives and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:
With reference now to the figures,
In the depicted example, server 104 and server 106 connect to network 102 along with storage unit 108. In addition, clients 110, 112, and 114 connect to network 102. These clients 110, 112, and 114 may be, for example, personal computers or network computers. In the depicted example, server 104 provides data, such as boot files, operating system images, and applications to clients 110, 112, and 114. Clients 110, 112, and 114 are clients to server 104 in this example. Network data processing system 100 may include additional servers, clients, and other devices not shown.
A data processing grid, in general, is made up of all of the servers, clients, data stores, and network components that operate as a single data processing unit to perform a task or solve a problem. Thus a data processing grid may include clients 110, 112, and 114, server 104, all connected via network 102.
In the depicted example, network data processing system 100 is the Internet with network 102 representing a worldwide collection of networks and gateways that use the Transmission Control Protocol/Internet Protocol (TCP/IP) suite of protocols to communicate with one another. At the heart of the Internet is a backbone of high-speed data communication lines between major nodes or host computers, consisting of thousands of commercial, government, educational and other computer systems that route data and messages. Of course, network data processing system 100 also may be implemented as a number of different types of networks, such as for example, an intranet, a local area network (LAN), or a wide area network (WAN).
With reference now to
In the depicted example, data processing system 200 employs a hub architecture including north bridge and memory controller hub (MCH) 202 and south bridge and input/output (I/O) controller hub (ICH) 204. Processing unit 206, main memory 208, and graphics processor 210 are connected to north bridge and memory controller hub 202. Graphics processor 210 may be connected to north bridge and memory controller hub 202 through an accelerated graphics port (AGP).
In the depicted example, local area network (LAN) adapter 212 connects to south bridge and I/O controller hub 204. Audio adapter 216, keyboard and mouse adapter 220, modem 222, read only memory (ROM) 224, hard disk drive (HDD) 226, CD-ROM drive 230, universal serial bus (USB) ports and other communications ports 232, and PCI/PCIe devices 234 connect to south bridge and I/O controller hub 204 through bus 238 and bus 230. PCI/PCIe devices may include, for example, Ethernet adapters, add-in cards and PC cards for notebook computers. PCI uses a card bus controller, while PCIe does not. ROM 224 may be, for example, a flash binary input/output system (BIOS).
Hard disk drive 226 and CD-ROM drive 230 connect to south bridge and I/O controller hub 204 through bus 230. Hard disk drive 226 and CD-ROM drive 230 may use, for example, an integrated drive electronics (IDE) or serial advanced technology attachment (SATA) interface. Super I/O (SIO) device 236 may be connected to south bridge and I/O controller hub 204.
An operating system runs on processing unit 206 and coordinates and provides control of various components within data processing system 200 in
As a server, data processing system 200 may be, for example, an IBM eServer™ pSeries® computer system, running the Advanced Interactive Executive (AIX®) operating system or LINUX operating system (eServer, pSeries and AIX are trademarks of International Business Machines Corporation in the United States, other countries, or both while Linux is a trademark of Linus Torvalds in the United States, other countries, or both). Data processing system 200 may be a symmetric multiprocessor (SMP) system including a plurality of processors in processing unit 206. Alternatively, a single processor system may be employed.
Instructions for the operating system, the object-oriented programming system, and applications or programs are located on storage devices, such as hard disk drive 226, and may be loaded into main memory 208 for execution by processing unit 206. The processes for embodiments of the present invention are performed by processing unit 206 using computer usable program code, which may be located in a memory such as, for example, main memory 208, read only memory 224, or in one or more peripheral devices 226 and 230.
Those of ordinary skill in the art will appreciate that the hardware in
In some illustrative examples, data processing system 200 may be a personal digital assistant (PDA), which is configured with flash memory to provide non-volatile memory for storing operating system files and/or user-generated data.
A bus system may be comprised of one or more buses, such as bus 238 or bus 230 as shown in
As described above, any of the clients, servers, data processing systems, may be connected via network to operate as a data processing grid. The mechanism of the present invention allows a host grid to be automatically, quickly, and efficiently adjusted in response to changing conditions in a local data processing environment. In addition, the mechanism of the present invention allows contract terms to be automatically, quickly, and efficiently adjusted in response to changing conditions in the local data processing environment in order to entice the customer to adjust host resource utilization.
In an illustrative example, one or more monitoring agents are used to monitor customer usage of the host grid and to monitor activity on the local data processing environment, which may be a data processing grid. Monitoring customer usage at both the host and local sites allow for the hosting service to offer additional capacity with an attractive pricing structure to hosted customers based upon customer usage patterns and predicted additional capacity. This capability benefits the hosted service, by minimizing the amount of unpaid capacity, and benefits the hosted customer, by offering additional capacity in a more timely fashion and also with a more flexible pricing structure.
Local data processing environment 302 includes local grid 306. Local grid 306 includes a plurality of data processing resources, which may include equipment such as clusters 310 of computers, storage devices 312, individual computers, printers, scanners, network connections, routers, telephones, fax machines, or any other equipment that may be used by or with data processing systems. Resources may also include software programs or any other items that are used by data processing systems to perform data processing tasks.
From time to time, local grid 306 may utilize the resources on host grid 308 within host data processing environment 304. In this illustrative example, host grid 308 provides additional resources, which may include the types of resources described in relation to local grid 306, to local grid 306 according to coded policies that are based on a contract between the customer and the host grid provider. The host grid provider provides computing, I/O, and network resources for a number of applications. The host grid provider may also host end point applications.
Thus, host grid 308 includes at least one host data processing system and the host data processing system has a set of resources. Local grid 306 includes at least one local data processing system, and local grid 306 is connected to host grid 308 via a network, such as network 320. Host grid 308 is operated according to a set of allocation policies. The set of allocation policies correspond to a predetermined resource allocation relationship between host grid 308 and a local grid. A resource allocation relationship is predetermined if the relationship has been previously created or reviewed by a human. An example of an allocation policy is a policy directed to calendaring capacity. In this case, calendaring capacity is described in terms of the time of day that resources are allocated. For example, resources are allocated from the host grid between the hours of 12:00 midnight and 5:00 a.m. central standard time five days a week in order to perform a series of batch programs. The timed allocation of resources is an allocation policy. Another example of an allocation is a fair share capacity policy. An example of such a policy is a set of commands that directs that, on average, 50% of resources on host grid 308 are dedicated to a particular customer. Another example of an allocation policy is an advanced reservation policy. An example of an advanced reservation policy is a set of commands that 10% of host grid 308 resources are started at a particular date and time. Another example of an allocation policy is a deadline scheduling policy. An example of a deadline scheduling policy is a set of commands that provide whatever host grid 308 resources that are needed in order to ensure that an application completes a task by a particular date and time. In the illustrative embodiments, these policies also reflect that the capacity is being added to another grid, such as local grid 306.
Based on the set of allocation policies, at least one resource on host grid 308 is allocated to local grid 306. A monitoring agent is then used to monitor one of all local grids and both all local grids and host grid 308 for a change in a parameter. A change in the parameter may result in a change in the set of allocation policies or priorities.
Monitoring agent 314 is installed in local grid 306 so that host grid 308 will be capable of predicting effectively the type, configuration, and amount of resources to be provided to local grid 306. Monitoring agent 314 may be software or hardware designed to monitor activity on local grid 306 and to monitor the type, configuration, and number of resources available on local grid 306.
Monitoring agent 314 generally is loaded onto local data processing environment 302 and usually is loaded onto local grid 306. However, monitoring agent 314 may be loaded in other locations, such as, for example, on a server data processing system within host grid 308 or may be loaded on a third data processing grid not shown in
Wherever monitoring agent 314 is loaded, monitoring agent 314 monitors activity and parameters on local grid 306. For example, monitoring agent 314 may monitor one or more of the number of transactions taking place on local grid 306, the type, configuration, and number of resources currently used on local grid 306, or any other parameter specified by the host grid provider or by the customer. Monitoring agent 314 generates data representing the monitored activities and is adapted to transmit the data to other components of local grid 306 and host grid 308. An example of monitoring agent 314 is that from the Globus Toolkit®, provided by Globus Alliance or a daemon from LoadLeveler®, provided by International Business Machines Incorporated. Monitoring agent 314 also may be implemented using some combination of these agents, along with other agents available in the marketplace.
In real time, or periodically, monitoring agent 314 provides monitor signal 316 to workload prediction tool 318. In this illustrative example, monitor signal 316 is transmitted via network 320. In these illustrative examples, monitor signal 316 contains data representing monitored activities, as described in the preceding paragraph.
Workload prediction tool 318 may be, for example, a separate data processing system, a separate data processing grid, a part of host grid 308, a software program installed in a computer readable medium, a component of monitoring agent 314 itself, or any other suitable hardware or software. Workload prediction tool 318 predicts the expected workload based on the information contained in monitor signal 316 from local grid 306, such as by comparing the number of transactions and available resources. Workload prediction tool 318 optionally also predicts the expected workload based on the customer-reported expected workload on host grid 308, the past workload on host grid 308 at corresponding times in the past, and on other factors that may apply to a particular contractual arrangement like events that automatically trigger a request such as cyclical workload schedules.
Based on the predicted workload, host grid 308 is adjusted to accommodate an expected change in demand for host grid resources by local grid 306. In an illustrative embodiment, the process of adjusting host grid 308 is automatic, though a user may manually adjust host grid 308. Automatic adjustments to host grid 308 may be implemented by transmitting a policy signal from workload prediction tool 318 to host grid 308 via network 320. The policy signal contains information regarding how host grid 308 should be configured vis-à-vis a particular customer at local grid 306. Host grid 308 makes adjustments to the host resources available to local grid 306 based on the enumerated policies, thereby adjusting the configuration of host grid 308. The means for configuring the host data processing system may be a host control system that takes the form of one or more data processing systems, software programs, users, or data processing grids.
Thus, monitoring agent 314 allows host grid 308 to adjust to a change in local grid 306 quickly and efficiently without exceeding limits set by a particular contractual agreement. If allowed by a prior agreement, the adjustment may take place in the absence of a request by local grid 306 in order that host grid 308 may more quickly react to the changing needs of local grid 306.
In emergencies, host grid 308 may be automatically adjusted to handle the exigent requirements of a local grid without a prior agreement in place. In this case, new contract terms may be determined automatically and quickly, as described further below, to accommodate the new business circumstance.
As described above, changes to host grid 308 can be made in advance of an actual demand by local grid 306, depending on data collected by monitoring agent 314. For example, if monitoring agent 314 detects that the resources of a local grid are operating at 95 percent capacity, then local grid 306 can be adjusted before local grid 306 begins using host grid resources, assuming local grid 306 uses host grid resources after exceeding 100 percent capacity.
How far in advance changes to host grid usage may be predicted depends on the nature of the activity supported by local grid 306 and host grid 308, the information collected, the tolerance policies of local grid 306 and host grid, and other factors or other set policies. Changes in demand may be predicted and made within a few seconds to a few days, though generally within two to four hours.
Unlike prior systems for automatically adjusting pricing and grid operational policies in the face of changes in demand, the monitoring solution of the present invention provides an event to local and hosted data centers, based on what monitoring agent 314 detects from the existing systems going in and out of expected parameters. Thus, the mechanism of the present invention allows a host to tailor contract offers, grid operating policies, and host grid resources to specific individual customers based on their separate needs and on any conditions that are unique to a particular customer. In addition, the mechanism of the present invention allows for a host grid to be adjusted even before a change in demand occurs. Moreover, the mechanism of the present invention allows for contract terms to be generated even in the absence of a pre-existing agreement.
In an illustrative example, local grid 306 may be a data center handling Internet transactions for a bank. In this example, the data center begins to slow in response to an unusually high amount of Internet business activity. Monitoring agent 314 detects the high level of activity and the slowdown. In response, monitoring agent 314 sends monitor signal 316 to workload prediction tool 318. Monitor signal 316 may include information such as the level of activity, the amount of slow-down, the current resources available to local grid 306, and other information.
In response, workload prediction tool 318 determines that local grid 306, given the current pattern of workload, may require five additional servers over time. Prior contractual agreements, however, stipulate that no more than four servers can be added at this time. The additional servers, each running three software programs, provide enough capacity to reasonably handle the overflow of Internet business activity. In response, host grid 308 changes its operating policy to automatically configure four servers with the required software programs and automatically ensures that these additional resources are configured to operate correctly in concert with local grid 306. The customer is then charged for the use of these resources, based on the customer's particular contractual agreement.
In this example, an optimal or better resource allocation which includes five servers, where the set of allocation policies only allows four servers, violates the set of allocation policies. In addition, in this example, a parameter monitored by monitoring agent 314 includes at least the workload on local grid 306. The use of five servers by local grid 306 is optimal relative to the use of four servers by local grid 306. As used herein, the term “optimal” means a better configuration of resources utilized by a local grid, such as local grid 306, than the current best possible configuration of utilized resources allowed under the current set of allocation policies. Thus, the better configuration of utilized resources may be referred to as “more optimal” than the current best possible configuration of utilized resources. Additionally, the host grid may also be monitored for parameters that affect local grid resource utilization. Accordingly, a monitoring agent may be used to monitor one of the local grid and both the local grid and the host grid for a change in a parameter. The change in the parameter indicates an optimal resource allocation which would violate the set of allocation policies.
Continuing the example, the unusually high Internet activity eventually reduces to a normal amount of Internet activity. Monitoring agent 314 detects the decrease in Internet activity and sends monitor signal 316 to workload prediction tool 318. In response, workload prediction tool 318 creates a new operating policy that causes host grid 308 to no longer make available the servers and software programs to local grid 306. These resources are then available to another customer.
In addition to making additional resources available to local grid 306, the mechanism of the present invention also provides a means for notifying a customer to utilize resources on host grid 308 if those resources are underutilized and could be consumed by a customer at a reduced rate, or to avoid an anticipated problem, or to detect a mismatch between the customer's workload patterns and prior contractual agreements.
As described in relation to providing resources, monitoring agent 314 monitors local grid 306 and transmits monitor signal 316 to workload prediction tool 318. However, workload prediction tool 318 also provides information regarding the predicted workload to contract term determination tool 322. Contract term determination tool 322 may be a separate data processing system, a separate data processing grid, a part of host grid 308, a software program installed in a computer readable medium, a component of monitoring agent 314 itself, any other suitable hardware or software, or optionally a human decision maker. Contract term determination tool 322 uses information, such as workload measurements and storage consumption patterns, generated by monitoring agent 314 to determine adjustments to the price and the terms of making host grid resources available to local grid 306.
In turn, contract term determination tool 322 sends a signal containing data relevant to the change in contract terms to customer decision tool 324. Customer decision tool 324 may be a separate data processing system, a separate data processing grid, a part of host grid 308, a software program installed in a computer readable medium, a component of monitoring agent 314 itself, or any other suitable hardware or software. Alternatively, a notification can be sent to a user interface for accepting a user input regarding acceptance or refusal of the new contract.
Based on the offered change in contract terms or the offered additional contracts, customer decision tool 324 may cause local grid 306 to transmit a request signal to host grid 308. For example, customer decision tool 324 can receive information about additional capacity, and also receive information based on prediction techniques to see if the additional capacity is required. Customer decision tool 324 then allows an administrator to send a standards-based resource allocation request into host grid 308 to obtain the new resources as needed. The request signal may be generated and sent automatically based on policies established by the operator of local grid 306. For example, local grid 306 monitors offered contract changes and determines whether to accept offered changes by comparing the offer to coded contract terms. Thus, if the contract offer falls within a range of prices and other terms specified by a predetermined policy, then the contract offer is accepted; otherwise, the contract offer is refused or decision on the offer is delayed until a user can review the offer. A predetermined policy is a policy that has been previously created or reviewed by a human.
Whenever a change in contract terms is accepted, the request signal effectively requests a change in resource utilization on host grid 308. A request signal includes resource specification characteristics, such as computer CPU architecture, memory requirements, operating system version, as I/O resources, and any other resource specification characteristics or other resource requirements. The operating policy on host grid 308 is then adjusted accordingly.
In another illustrative example, monitoring agent 314 detects unusually high Internet activity on the bank's local grid 306. However, perhaps due to cost considerations or due to the current contract terms, local grid 306 does not request additional resources from host grid 308. Local grid 306 has access to information regarding current cost and contract terms because local grid 306 and host grid 308 share the same contract data and act in concert accordingly. The agent transmits monitor signal 316 to workload prediction tool 318. In turn, contract term determination tool 322 receives information from workload prediction tool 318, or receives information directly from monitor signal 316. In response, depending on current overall host grid resource utilization, contract term determination tool 322 may automatically lower the price of utilizing resources on host grid 308. Information regarding the lowered price is transmitted via a signal to customer decision tool 324 in order to entice the customer to request utilization of resources on host grid 308.
In another example, monitoring agent 314 detects an increase in Internet activity and, as a result, local grid 306 utilizes resources on host grid 308, as described above. However, host grid 308 becomes overloaded due to high demand for resources on host grid 308. In response, contract term determination tool 322 increases the price for utilizing resources on host grid 308. In turn, the notification for recommended change in contract terms is transmitted to customer decision tool 324 in order to entice the customer to use fewer resources on host grid 308.
Thus, the mechanism of the present invention allows host grid 308 to be adjusted automatically, quickly, and efficiently in response to changing conditions in local data processing environment 302. The mechanism of the present invention can be used to manage specific data processing systems and specific versions of software operating on individual data processing systems. In addition, the mechanism of the present invention allows contract terms to be adjusted automatically, quickly, and efficiently in response to changing conditions in local data processing environment 302. Thus, the mechanism of the present invention allows automatic configuration of a host grid in response to monitored changes in a local grid. The present invention also provides a mechanism to entice the customer to adjust host resource utilization.
In another illustrative example, additional customers having additional local grids utilize resources on host grid 308. In this case, monitoring agents are loaded in each local grid, and a monitoring agent may also be loaded in host grid 308. As time progresses, the number, type, and configuration of host grid resources that each local grid uses changes. For example, a first local grid may use more resources at time 1 and fewer resources at time 2 whereas a second local grid may use more resources at time 2 and less at time 1. The mechanism of the present invention can also be used to manage host grid usage by multiple local grids.
In this illustrative example, when the resources of local grid 306 become taxed by the combined usage of all other local grids, contract determination tool 322 on host grid 308 may transmit signals to customer decision tool 324 at each of the local grids. Each signal indicates that each customer will receive a reduced rate for access to host services for those customers that time shift use of resources. Thus, those customers that are conducting less critical functions will be enticed to delay use of host grid resources until a future time. Customer decision tool 324 in each local grid transmits corresponding response signals to host grid 308, which then changes its operating policies to provide additional resources to accommodate priority jobs and to provide less or no resources to time-shifted jobs. The transmission of policies and agreements back and forth between host grid 308 and local grid 306 may be performed automatically, as described above.
In other illustrative examples, the host provider may also universally raise the price of access to host resources (to the extent allowed by contract) in order to reduce the workload burden on host grid 308. The host provider may also charge different customers different amounts under different terms, based on conditions unique to each customer, such as customer contract terms or specific technical aspects related to the cost of providing service to a specific customer. Thus, a dynamic interplay between host grid 308 and each local grid may take place wherein host grid 308 dynamically and actively adjusts operating policies based on the changing needs and desires of different customers.
As a result, the present invention provides for a computer implemented method of dynamically changing allocation policy in a host grid to support a local grid. Changing the set of allocation polices or priorities may include adjusting at least one of a type of resource on the host grid, a configuration of a resource on the host grid, and a number of resources on the host grid. Adjusting at least one of a type of resource may involve adjusting one or more of the type of resources. Furthermore, resource types other than those in the illustrative examples may be adjusted.
The process begins as a monitoring agent monitors a local grid (step 400). The monitoring agent may monitor activity on the local grid, and may also monitor the type, configuration, and number of resources on the local grid. Next, the monitoring agent transmits an information signal, such as monitor signal 316 in
Thereafter, a workload prediction tool predicts the type, configuration, and amount of resources needed by the local grid (step 404). In response, the host grid is adjusted based on the parameters defined by the prior contract and based on the predicted host usage (step 406). Adjusting the host grid includes setting up additional resources, optimizing currently available resources, configuring resources, deleting resources, and performing other adjustments to the host grid. The resources on the host grid are then made available to the local grid (step 408). To this point, any adjustments to the host grid are made according to policies predetermined by an existing contract.
The monitoring agent continues to monitor activity on the local grid and to provide activity information to the host grid, and particularly to the contract term determination tool. The contract term determination tool evaluates host grid usage by the local grid and determines whether existing contract terms should be adjusted or new contracts created (step 410), as described in relation to
The contract term determination tool may then cause a revised contract offer to be transmitted to the customer decision tool, as described in relation to
Thereafter, the contract term determination tool waits for a time to allow the customer decision tool to make a decision regarding the revised contract terms (step 414). Thereafter, a determination is made whether the customer accepted the revised contract (step 416). If the customer accepted the revised contract, then the host grid continues to provide resources to the local grid according to the new contract terms (step 418).
If the customer refuses the new contract offer or fails to accept the new contract offer, then the contract term determination tool determines whether a revised contract offer should be sent (step 420). The new offer may include a further reduction in price to entice the customer to increase usage of the host grid resources. The new offer may also indicate that the contract will be canceled, and host grid resources not provided, if the customer does not accept a higher price. Any other new offer may be sent to the customer that is specifically tailored to the customer's needs and the host provider's currently available resources. The process then returns to step 412, where the revised offer is transmitted to the customer and is evaluated. If the customer then rejects the revised offer in step 416, then the process may repeat if the contract term determination tool evaluates that a third, fourth, or additional contract offers should be transmitted to the customer.
Returning to step 420, if the contract term determination tool evaluates that a revised offer should not be sent to the customer, then the contract term determination tool makes a final evaluation as to how host grid resources should be provided to the customer's local grid (step 422). In one illustrative example, the contract term determination tool evaluates that the current contract is still in force and will not be modified. In this case, the host grid resources continue to be provided to the customer local grid without modifications. In another illustrative example, the contract term determination tool evaluates that the current contract is to be canceled or modified unilaterally. In this case, fewer or no host grid resources are available to the customer local grid.
The process shown in
In addition, the set of allocation policies reflect a contract between a host organization operating the host grid and a customer organization operating the local grid. Furthermore, the proposed change in the set of allocation policies is associated with a change in the contract.
Thus, the present invention provides a computer implemented method, apparatus and computer usable program code for dynamically monitoring a local grid and, responsive to a change in that grid, adjusting a host grid. In addition, the contractual relationship between the vendor and the customer may be dynamically monitored and adjusted in response to a change in the local grid.
The mechanism of the present invention provides substantial advantages over prior methods of predicting use of resources on the host grid. For example, the prior method of predicting use of resources on the host grid only monitored the host grid and customer-reported expected use. However, the mechanism of the present invention directly monitors the local grid and activity on the local grid, and may also monitor current and past host grid utilization and customer-predicted future utilization. Thus, the mechanism of the present invention allows a host grid to be rapidly adjusted in response to changing conditions on the local grid. As a result, the host grid is better able to respond to customer needs. Furthermore, the host provider is better able to determine what resources need to be provided to the host grid.
The invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any tangible apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD.
A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution.
Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers.
Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.
The description of the present invention has been presented for purposes of illustration and description, and is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art. The embodiment was chosen and described in order to best explain the principles of the invention, the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.