Abstract:
Web application users are able to specify power constraints for remote web servers. These may be based on individual performance needs and energy-conservation desires. They enable the user to exercise control over the amount of energy that the web server expends in serving the needs of the user. The invention may employ such features as vertical scaling using power capacity on demand (CUoD) type functionality. The method includes providing a user-interactive interface to enable the user to indicate a preference for power restrictions with respect to its web requests. The user then instructs the web site provider to reduce power consumption in response to the user&#39;s request. The user specifies a reduction in overall power consumption for the user&#39;s needs, such as instructing the web service provider to use an energy-conserving server to handle the user&#39;s web requests, or specifying a acceptable delay or fulfilling the user&#39;s web requests.

Description:
FIELD OF THE INVENTION 
       [0001]    The present invention relates to a web user based system and method for the imposition of power restrictions on the services provided to the user by web servers. 
       BACKGROUND OF THE INVENTION 
       [0002]    The power costs relating to information technology (IT) have been steadily increasing, causing some experts to predict that power costs will soon overtake computer hardware costs. Currently, computing workloads are processed within relatively static data centers. Disaster recovery mechanisms exist to transfer data or processing to an alternate site based on an outage at an original data center location. 
         [0003]    Grid computing enables the distribution of compute workloads based on available resources. It does not include methods for the determination of processing location based on real-time energy costs. 
         [0004]    Equipment power needs are a significant burden for business IT budgets. Most servers are underutilized, indicating that processing capacity may exist in locations with lower energy costs. Not utilizing this capacity causes unnecessary incurred expense for organizations using status quo redistribution techniques. 
         [0005]    Accordingly, there exists a need in the art to overcome the deficiencies and limitations described herein above. 
       SUMMARY OF THE INVENTION 
       [0006]    The present invention relates to techniques for a web application user to specify power constraints for remote web servers based on a variety of factors such as individual performance needs and energy conservation desires. The invention may employ such features as vertical scaling using power capacity on demand (CUoD) type functionality. 
         [0007]    The invention utilizes two basic architectural steps, involving: 1) a system and method by which a user expresses a desire to “go green” and 2) a system and method that uses such a user expression to reduce power consumption. 
         [0008]    The invention relates to a user based system and method for specifying power restriction for the quantum of energy that a remote web site employs to serve the user. The restriction is based on individual performance needs and energy-conservation profiles of the user. The invention employs a user-interactive interface, the capability to enable the user to indicate a preference for power restrictions with respect to its web requests, and a control to enable the web site to reduce power in response to the user&#39;s request. The user may select several options for specifying the reduction in overall power consumption for the user&#39;s needs. Although not intending to be limiting, among these options are the following:
       The user instructs the web service provider to use an energy-conserving server to handle the user&#39;s web requests;   The user authorizes the web service provider to handle specified user requests at a lower priority;   The user instructs the web service provider to handle the user&#39;s web requests without utilizing additional nodes and CPUs;   The user specifies an acceptable delay for fulfilling web request;   The user selects from among annotations on a web site for energy conservation.       
 
         [0014]    The invention also relates to a computer-readable medium and a computer product containing instructions that are implemented on a computer, enabling the user to elect to go green. 
         [0015]    Finally, the invention relates to a method for a service provider to deploy a computer program to enable a user to select specific power constraints and to impose these restraints on remote web servers employed by the user. 
         [0016]    The invention has utilization in such products or services as Application Software, Web Services, Supervisory Processors and Grid Node Controllers, all of which are well known in the art. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0017]    These and other features of this invention will be more readily understood from the following detailed description of the various aspects of the invention taken in conjunction with the accompanying drawings in which: 
           [0018]      FIG. 1  is a simplified flow diagram of the present invention, 
           [0019]      FIG. 2  shows the flow using a service provider; and 
           [0020]      FIG. 3  is a block diagram illustrating an exemplary computerized system and method for implementing the present invention. 
       
    
    
       [0021]    The drawings are not intended to be drawn to scale. Instead, the drawings are merely a schematic representation, not intended to portray specific parameters of the invention. They are intended to depict only typical embodiments of the invention, and therefore should not be considered as limiting the scope of the invention. 
       DETAILED DESCRIPTION OF THE INVENTION 
       [0022]    For purposes of the present invention, ‘power’ is defined as the electric energy resource used by businesses and individual consumers over a given unit of time; and ‘green computing’ is defined in Wikipedia: “ . . . as the study and practice of using computing resources efficiently. Typically, technological systems or computing products that incorporate green computing principles take into account the so-called triple bottom line of economic viability, social responsibility, and environmental impact. One form of green computing includes maximized energy efficiency.” 
         [0023]    Green computing also is understood to be the science behind efficient computing and performing tasks for a smaller power budget. The government has many large initiatives on environmentally conscious IT programs. In fact, it has indicted that the concept of environmentally responsible IT is referred to as “clean technology,” “green computing” or “environmental IT.” Examples include operating systems that shut down computer processors when the computers are not in use, computers certified as environmentally sensitive, energy-efficient servers and e-cycling services. 
         [0024]    Independent websites provide listings of the most efficient computers, and industry has recognized the importance of efficient computing as witnessed by numerous articles directed to the same. Most of the latest embedded processors include run-time power modes that can be used to scale power consumption. A common one is idle mode which allows a processor core to shut down while peripherals remain active. Event reduction keeps the processor in idle mode as long as possible thereby providing additional power savings. Dynamic clock and voltage adjustment represent yet another example of power reduction that can be employed by a web server. 
         [0025]    An embodiment of the invention provides a system that enables a user of a web service to reduce the overall energy footprint required to serve the user&#39;s web requests through several methods. For example, a web browser may enable a user to select a green (e.g. energy-conserving) or non-green server that handles the user&#39;s web requests. Additionally, a user may transmit a green mode command to enable requests to be handled at lower priority. The user may specify that new nodes and CPUs should not be activated to serve the user&#39;s request. Additionally, a user may specify an acceptable delay for web requests in order to reduce power consumption. The interface may reside on the web browser GUI, for example, in the form a switch, dial, or slider. In this manner, the user participates in computational and communication load balancing. 
         [0026]    In another aspect of this invention, HTML, XML, or annotations within a web page may be used to specify methods for energy conservation. For example, a web page designer may specify alternate energy saving methods to display and serve the web page objects. 
         [0027]    Capacity upgrade on demand (CUoD) is a fast, nondisruptive method of activating “extra” processor capacity, built directly into certain internet servers. It enables a user to activate additional processors and pay only for the new processing power as the users&#39; needs grow. CUoD enables businesses to add processor capacity as needed, permanently activating capacity to respond to increased business demands. It is ideal for nondisruptive, planned growth, for companies to “pay as you grow.” There are a number of analogous technologies presently in use for activating additional processors. 
         [0028]    On/Off Capacity On Demand responds to temporary increases, adding computing capacity exactly when needed, for business peaks or specific limited times of the year when the extra capacity is needed. As business cycles and other events cause spikes in activity, IT departments can enable additional processors or memory when needed, and disable them as workloads return to normal. 
         [0029]    Reserve Capacity On Demand enables businesses to prepay for days of additional processing resources, which can be automatically activated as workloads fluctuate, thereby reducing administration intervention. 
         [0030]    Trial Capacity On Demand temporarily evaluates the effect that additional processing &amp; memory capacity could have on performance and business operations. This Capacity On Demand feature is ideal for testing new applications and resources, allowing administrators to test for up to 30 contiguous days of usage. For emergency recovery operations, a user may utilize the Capacity BackUp to divert workloads to backup servers to ensure continued business operations. For off-site disaster recovery, one may run entire workloads for up to 90 days, to respond to unexpected losses of server capabilities. 
         [0031]    Each of these server functions requires additional processing power, brought upon by the need to service user and application requests. The present invention addresses methods in which these functions, as well as analogous grid node activation, may be delayed or mitigated through user selection of roles and prioritization. 
         [0032]    A Web user may specify a desire to “go green”, in other words, to conserve energy, within certain performance bounds. A user may specify conservation desires through interactions with the computing entity, including a graphical interface on the Web browser, a graphical interface on the computer desktop, keyword entry, and/or speech entry. 
         [0033]    The following steps shown in  FIG. 1  are used to allow the user to specify certain energy conservation measures to be implemented directly with a an input interface  14  to a web user  16 . The process starts with the web server  12  providing an input interface  14  for the user  16 . The web user  16  then interacts with, and issues instructions to, the interface  18  by appropriate means such as a button  20 , a sliding scaler  22  having a range of conservation measures, for example, between 0% and 100% from which the user may select, an HTTP header  24 , and a suitable default setting  26 , or a web page  30 , optionally using metadata  28 . Other means, known in the art, or developed in the future, whereby the net user is able to interact with the interface are likewise encompassed within the parameters of the present invention. The interface input is read at  32  in a manner well known in the art. 
         [0034]    If the users&#39; the instructions are incorporated into an HTTP header  28 , the web server can elect to parse the header or not parse at its choice. The user can utilize metadata to preserve any settings that the user may want to be ongoing. Yet another option is to make conservation selections on a web page supplied to the user either by the server or by an interface provider shown in  FIG. 2 . 
         [0035]    The instructions communicated through the interface may be based on a pre-arranged plan or understanding between the user and the web server. On the other hand, they may be selected from a suitable drop-down menu or may be chosen from a table of options available to the user. 
         [0036]    These instructions are sent at  34  to the web server which then reads the interface input at  36 . These instructions may include, but are not limited to decreasing the user preferences, requesting a delay in implementing a compute task for the user, or restricting the use of new grids or computer facilities to meet the user&#39;s needs. 
         [0037]    Turning now to  FIG. 2 , the operative steps are similar to those of  FIG. 1  except that a service provider  40  is interposed between the user selection and the web server  12 . The service provider  40  is shown with its own computer program  42 , it being understood that it can provide a level of service without necessarily having its own computer. Instead, it could arrange with the web server or the user to utilize the computing capabilities of either of these, or may work with an outside source for computer-related functions. The service provider  40  can be employed by the web server, the user, or by both, as mutually agreed upon. As before, the web server  12  provides an input interface at  14  for the user  16 . The user  16  is then able to select from among the various options at  18  to transmit the users&#39; instructions to the web server  12 . However, instead of the instructions going directly to the server, they are read at  32  by the service provider  40 . The service provider  40  then issues instructions to the web server  12  concerning the level of conservation that the user desires with respect to its compute loads. 
         [0038]    For example, a user may select a button interface that communicates to the system that power conservation takes priority over performance. Alternatively, the sliding scaler  22  (e.g. dial or slider) may be used to enable the user to specify performance requirements. As another option, a default may be set as desired by the user, company, service provider, web-hosting service, operating system, or other third party. Further, the users&#39; inclination to conserve energy may be presented to a web server as part of each request as an HTTP header. In yet another choice, the web server may parse that header to ascertain the degree to which the user wishes to conserve energy while fulfilling a request. 
         [0039]    The interface may additionally present itself on individual web pages visited by the user. The user input may be stored as a site-specific cookie (metadata) enabling the setting to persist during future visits to this site. Profiles or policy tables may be used and traded among users, and these tables may specify settings for different energy use and power profiles. 
         [0040]    Additionally, the user may specify an acceptable delay for web requests so that power may be conserved. The applicability of such delays may be illustrated in a real-world example. A given web user, e.g., a Customer Service Representative, may, while at the job, need the highest possible performance from servers to obtain customer information in the most timely manner. However, that same web user, during personal time may be willing to see response time (not counting transmission latencies) for a web retail site drop from 0.9 seconds to 2.2 seconds, in exchange for the knowledge that such delays are saving power in remote data centers. Currently, without the present invention, there exists no such manner for a user to specify a willingness select with suboptimal performance under certain conditions. 
         [0041]    The user specifications may be used to reduce power consumption. Thresholds for acceptable performance may be adjusted according to preset or user-defined limits. User performance is measured to ensure continued acceptability. The specific implementation may take many forms. 
         [0042]    For example, in one embodiment, user performance is reduced to delay the point at which new processors or grid nodes are brought online. Under various circumstances, this may or may not be the most efficient approach, but it is a convenient starting point to the implementation concepts. To illustrate further, all users see slightly lowered performance at all times if they state a preference for energy conservation over performance. 
         [0043]    In another embodiment, user performance stays “optimal” until such a point that new processors or nodes need to be brought online. At this point, those users who specify “green” suffer performance degradation to a delay point at which new systems must be brought on-line. This approach is efficient as it provides optimal performance up until the threshold moment at which new processors or nodes are required to continue providing such performance. Only then is performance compromised for those users expressing such a willingness, so as to delay the point where new processors or nodes are allocated to the processing task. 
         [0044]    In yet another embodiment, users who specify varying prioritization will be served from systems with varying clock speeds. In general, faster clock speeds adversely impact power consumption. 
         [0045]    In still another embodiment, users who specify varying prioritization will be served on other systems employing various power reduction techniques, albeit at the cost of possibly reduced performance. 
         [0046]    Prioritization at server level may be application-specific or user-specific. Of course, different users may specify different desires. For example, user A may specify to the web server “Go Green,” while user B may specify “go fast” (a desire for performance), and user C may specify something intermediate. In the cases in which different servers are used, various user needs may be met with different servers. In the case, where only one server is available, decisions can be made according to many factors, such as a “majority rule” by the users or business for which the users work. 
       Computerized Implementation 
       [0047]    Referring now to  FIG. 3 , an exemplary computer system  100  of the invention implemented by a computer  104  deployed within a computer infrastructure  108  such as one existing at the information technology center of the web a service provider  40 , a business firm, a manufacturing company or a governmental agency. This  FIG. 3  is intended to demonstrate, among other things, that the operational steps of the present invention could be implemented within a network environment (e.g., the Internet, a wide area network (WAN), a local area network (LAN), a virtual private network (VPN), etc.), or on a stand-alone computer system. 
         [0048]    In the case of the network environment, communication throughout the network can occur via any combination of various types of communication links. For example, the communication links can comprise addressable connections that may utilize any combination of wired and/or wireless transmission methods. Thus, a user  20  communicates with the computer infrastructure through an interface  22 . The computer in turn communicates instructions from the user  20  to the web site  24 . 
         [0049]    Where communications occur via the Internet, connectivity could be provided by conventional TCP/IP sockets-based protocol, and an Internet service provider could be used to establish connectivity to the Internet. Still yet, computer infrastructure  108  is intended to demonstrate that some or all of the components of implementation could be deployed, managed, serviced, etc. by a service provider who offers to implement, deploy, and/or perform the functions of the present invention for others. 
         [0050]    As shown, the computer  104  includes a processing unit  112 , a memory  116 , a bus  120 , and input/output (I/O) interfaces  124 . Further, the computer system  100  is shown in communication with external I/O devices/resources  128  and storage system  132 . In general, the processing unit  112  executes computer program code, such as the code to implement various components of the computer  104 , which is stored in memory  116  and/or storage system  132 . It is to be appreciated that two or more, including all, of these components may be implemented as a single component. 
         [0051]    While executing computer program code, the processing unit  112  can read and/or write data to/from the memory  116 , the storage system  132 , and/or the I/O interfaces  124 . The bus  120  provides a communication link between each of the components in computer  100 . The external devices  128  can comprise any devices (e.g., keyboard, pointing device, display, etc.) that enable a user to interact with computer system  100  and/or any devices (e.g., network card, modem, etc.) that enable computer system  100  to communicate with one or more other computing devices. 
         [0052]    The computer infrastructure  108  is only illustrative of various types of computer infrastructures for implementing the invention. For example, in one embodiment, computer infrastructure  108  comprises two or more computing devices (e.g., a server cluster) that communicate over a network to perform the various process steps of the invention. Moreover, computer  104  is only representative of various possible computers that can include numerous combinations of hardware. 
         [0053]    To this extent, in other embodiments, the computer system  100  can comprise any specific purpose-computing article of manufacture comprising hardware and/or computer program code for performing specific functions, any computing article of manufacture that comprises a combination of specific purpose and general-purpose hardware/software, or the like. In each case, the program code and hardware can be created using standard programming and engineering techniques, respectively. 
         [0054]    Moreover, the processing unit  112  may comprise a single processing unit, or be distributed across one or more processing units in one or more locations, e.g., on a client site and with the server. Similarly, the memory  116  and/or the storage system  132  can comprise any combination of various types of data storage and/or transmission media that reside at one or more physical locations. 
         [0055]    Further, I/O interfaces  124  can comprise any system for exchanging information with one or more of the external device  128 . Still further, it is understood that one or more additional components (e.g., system software, math co-processing unit, etc.) not shown in  FIG. 1  can be included in computer system  100 . However, if computer  104  comprises a handheld device or the like, it is understood that one or more of the external devices  128  (e.g., a display) and/or the storage system  132  could be contained within computer  104 , not externally as shown. 
         [0056]    The storage system  132  can be any type of system (e.g., a database) capable of providing storage for information under the present invention. To this extent, the storage system  132  could include one or more storage devices, such as a magnetic disk drive or an optical disk drive. In another embodiment, the storage system  132  includes data distributed across, for example, a local area network (LAN), wide area network (WAN) or a storage area network (SAN) (not shown). In addition, although not shown, additional components, such as cache memory, communication systems, system software, etc., may be incorporated into the computer  104 . 
         [0057]    In the illustrated embodiment, the computer  104  communicates with external entities  136  such as another vehicle computing system, an external system communicating with the controller  112 , other apparatuses external to the vehicle, etc. over a path  140 , which may be wired (as shown) or wireless. 
         [0058]    While shown and described herein as a method and a system, it is understood that the invention further provides various alternative embodiments. For example, in one embodiment, the invention provides a computer-readable/useable medium that includes computer program code to enable a computer infrastructure to perform the process steps of the invention. To this extent, the computer-readable/useable medium includes program code that implements each of the various process steps of the invention. 
         [0059]    It is understood that the terms computer-readable medium or computer useable medium comprise one or more of any type of physical embodiment of the program code. In particular, the computer-readable/useable medium can comprise program code embodied on one or more portable storage articles of manufacture (e.g., a compact disc, a magnetic disk, a tape, etc.), or on one or more data storage portions of a computing device, such as the memory  116  and/or the storage system  132  (e.g., a fixed disk, a read-only memory, a random access memory, a cache memory, etc.), and/or as a data signal (e.g., a propagated signal) traveling over a network (e.g., during a wired/wireless electronic distribution of the program code). 
         [0060]    In another embodiment, the invention provides a business method that performs the process steps of the invention on a subscription, advertising, and/or fee basis. That is, a service provider could offer to manage the computer  104 . In this case, the service provider can create, maintain, and support a computer infrastructure, such as the computer infrastructure  108  that performs the process steps of the invention for one or more customers. In return, the service provider can receive payment from the customer(s) under a subscription and/or fee agreement and/or the service provider can receive payment from the sale of advertising content to one or more third parties. 
         [0061]    In still another embodiment, the invention provides a computer-implemented method for executing the computer  104 . In this case, a computer infrastructure, such as computer infrastructure  108 , can be provided and one or more systems for performing the process steps of the invention can be obtained (e.g., created, purchased, used, modified, etc.) and deployed to the computer infrastructure. To this extent, the deployment of a system can comprise one or more of: (1) installing program code on a computing device, such as computer  104 , from a computer-readable medium; (2) adding one or more computing devices to the computer infrastructure; and (3) incorporating and/or modifying one or more existing systems of the computer infrastructure to enable the computer infrastructure to perform the process steps of the invention. 
         [0062]    As used herein, it is understood that the terms “program code” and “computer program code” are synonymous and mean any expression, in any language, code or notation, of a set of instructions intended to cause a computing device having an information processing capability to perform a particular function either directly or after either or both of the following: (a) conversion to another language, code or notation; and/or (b) reproduction in a different material form. To this extent, program code can be embodied as one or more of: an application/software program, component software/a library of functions, an operating system, a basic I/O system/driver for a particular computing and/or I/O device, and the like. 
         [0063]    The foregoing description of various aspects of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed, and obviously, many modifications and variations are possible. Such modifications and variations that may be apparent to a person skilled in the art are intended to be included within the scope of the invention as defined by the accompanying claims.