Distribution of cooling resources using hierarchically identified cooling microgrids

In a method for distributing cooling resources to a plurality of locations using a plurality of hierarchically identified cooling microgrids, conditions detected at the plurality of locations are received. Each level of the hierarchically identified cooling microgrids is a plurality of resource actuators configured to vary distribution of the cooling resources. Settings for the plurality of resource actuators in each of the levels in the cooling microgrid hierarchy that substantially maintain conditions at the plurality of locations within predetermined ranges are determined using a processor, while substantially optimizing at least one measure of performance associated with supplying the cooling resources to the plurality of locations.

CROSS REFERENCE TO RELATED APPLICATION

The present application is related to and shares some common disclosure with commonly assigned and co-pending U.S. patent application Ser. No. 12/632,682, filed on Dec. 8, 2009 by Ratnesh Kumar Sharma et al., and entitled “Determining Operational Settings for Fluid Moving Devices”, the disclosure of which is hereby incorporated by reference in its entirety.

BACKGROUND

Data centers have become a ubiquitous element of modern IT infrastructure, especially in the services sector that requires “always-on” capability. Practically every large IT organization hosts a data center, either in-house or outsourced to major vendors. Furthermore, the recent emergence of the software as a service (SaaS) paradigm or more generically, cloud computing, coupled with emerging Web-based business, social networking and media applications and services have led to a tremendous growth in the number, size, and power densities of data centers. This increase has also been accompanied by equally tremendous increases in the amount of power required to operate cooling infrastructures of the data centers, which has also resulted in increases in the carbon footprints of the cooling infrastructures.

Conventional data centers use up to 50% of the total energy consumed for cooling the conventional data center. However, although there are multiple point cooling solutions available for different components of a conventional data center, the point cooling solutions are typically applied independently of each other and their inter-relationships are not exploited to improve the energy consumption of the conventional data center. The conventional data center is not organized or operated to improve an overall coefficient of performance (COP) of the cooling infrastructure.

DETAILED DESCRIPTION OF THE INVENTION

Disclosed herein are a method and a system for distributing cooling resources to a plurality of locations using a plurality of hierarchically identified cooling microgrids, in which each level of the hierarchically identified cooling microgrids includes a plurality of resource actuators configured to vary distribution of the cooling resources. In addition, or alternatively, to defining the hierarchy of the cooling microgrids based upon physical locations of the resource actuators, the hierarchy of the cooling microgrids may be defined in terms of the level of heat exchange being performed in the cooling microgrids. In this example, for instance, the microgrids that perform greater levels of heat exchange may be at a higher level in the hierarchy as compared with microgrids that perform lesser levels of heat exchange. In addition, or alternatively, to the manners discussed above for defining the hierarchy, the hierarchy of the cooling microgrids may be constructed based upon control and/or monitoring requirements. In this example, those microgrids sharing common control systems may be considered as being in a common hierarchy level.

In the method and system disclosed herein, conditions detected at the plurality of locations are received and settings for the plurality of resource actuators in each of the levels in the cooling microgrid hierarchy are determined using a processor. Each of these settings substantially maintains conditions at the plurality of locations within predetermined ranges, while substantially optimizing at least one measure of performance associated with supplying the cooling resources to the plurality of locations.

Through implementation of the method and system disclosed herein there are several advantages to a data center. According to a particular example, hierarchical organization of the data center cooling infrastructure allows more efficient (based on ensemble coefficient of performance (COP)) sharing of cooling resources. In addition, the method and system disclosed herein provide a framework for integration and characterization of distributed cooling resources in the data center. Moreover, cooling objectives may be delegated to various levels of the cooling microgrids, which allows optimum utilization of the cooling infrastructure with reduced redundancies. Furthermore, thermal management issues get addressed closer to source, thus reducing exergy destruction and improving second law of thermodynamics efficiency.

With reference first toFIG. 1, there is shown a simplified perspective view of a section of an infrastructure100, in this instance, a data center, in which a method and system for distributing cooling resources to a plurality of locations using a plurality of hierarchically identified cooling microgrids disclosed herein may be implemented, according to an example. It should be understood that the infrastructure100may include additional elements and that some of the elements described herein may be removed and/or modified without departing from a scope of the infrastructure100.

The infrastructure100is depicted as having a plurality of racks102a-102narranged in rows104,106,108, a plurality of fluid moving devices114a-114n, a plurality of sensors120a-120n, and an analyzer130. The racks102a-102nare positioned on a raised floor110and house electronic devices116capable of generating/dissipating heat, for instance, computers, servers, bladed servers, disk drives, displays, etc. As shown inFIG. 1, when the fluid comprises a gas, such as air or a gaseous refrigerant, the fluid is delivered through fluid delivery devices118in the floor110to the racks102a-102n, as denoted by the arrows124. In other instances in which the fluid comprises a liquid, such as water, a liquid refrigerant, a multi-state refrigerant, etc., the fluid may be delivered to the racks102a-102nthrough a series of pipes (not shown). The fluid moving devices114a-114ngenerally operate to supply fluid flow to a space112beneath the raised floor110, and in certain instances to cool heated fluid (indicated by the arrows128).

The fluid moving devices114a-114nmay comprise widely available, conventional air conditioning (AC) units, such as, water cooled air handling units (AHUs), air cooled AHUs, etc. In any regard, the fluid moving devices114a-114nconsume relatively large amounts of energy in cooling heated fluid flow received from the infrastructure100and/or airflow from outside of the infrastructure100and in supplying the racks102a-102nwith the cooled fluid flow. In any regard, the cooled fluid contained in the space112may include cooled fluid supplied by one or more fluid moving devices114a-114n, and in certain instances, fluid flow recirculated into the space112. Thus, characteristics of the cooled fluid, such as, temperature, pressure, humidity, flow rate, etc., delivered to various locations in the infrastructure100may substantially be affected by the operations of a plurality of the fluid moving devices114a-114n. As such, determining how the fluid moving devices114a-114nare to be efficiently operated to maintain desired conditions in the infrastructure100is a relatively complex problem.

Various manners in which the operational settings for the fluid moving devices114a-114nmay be determined to enable the fluid moving devices114a-114nto be operated to distribute cooling resources to a plurality of locations using a plurality of hierarchically identified cooling microgrids are discussed in greater detail herein below.

With reference now toFIG. 2A, there is shown an architecture of a system200for distributing cooling resources to a plurality of locations in an infrastructure, such as the infrastructure100depicted inFIG. 1, using a plurality of hierarchically identified cooling microgrids202-206, according to an example. It should be understood that the following description of the system200is but one manner of a variety of different manners in which such a system200may be configured. In addition, it should be understood that the system200may include additional elements and that some of the elements described herein may be removed and/or modified without departing from a scope of the system200. For instance, the system200may include any number of sensors, memories, processors, fluid moving devices, etc., as well as other components, which may be implemented in the operations of the system200.

As shown inFIG. 2A, the system200includes the plurality of hierarchically identified cooling microgrids202-206to cool a plurality of heat generating components208a-208d. Generally speaking, a cooling microgrid comprises a multitude of potentially disparate local cooling resources with varying capacities and characteristics. In addition, the cooling microgrid includes a number of resource actuators that are able to vary distribution of the cooling resources at different hierarchical levels. Thus, similarly to an electrical microgrid, the cooling microgrid enables control of the cooling resource distribution at microgrid levels instead of only at a global scale. In one regard, the resource actuators in each of the microgrid hierarchy levels are able to be controlled to thereby vary the distribution of cooling resources to the microgrids over which the resource actuators have control. As discussed in greater detail herein below, the resource actuators may be operated in various manners to distribute the cooling resources while substantially maximizing operational efficiency based upon conditions detected at a plurality of locations using a plurality of sensors, such as the plurality of sensors120a-120ndepicted inFIG. 1.

As shown inFIG. 2A, the hierarchy of microgrids includes a global level cooling microgrid202, zonal level cooling microgrids204a,204b, and local cooling microgrids206a-206d. Although particular numbers of the cooling microgrids202-206have been depicted inFIG. 2A, it should be clearly understood that the system200may include any number of the cooling microgrids202-206in each of the hierarchical levels without departing from a scope of the system200.

In any regard, the global cooling microgrid202affects the cooling provisioning supplied to the zonal cooling microgrids204aand204band the local cooling microgrids206a-206d. More particularly, for instance, the global cooling microgrid202may function to control the temperature of cooling fluid supplied to fluid moving devices114a-114nin the infrastructure100and thus, has an effect on the operations of the fluid moving devices114a-114n. In addition, the zonal cooling microgrids204aand204baffect the cooling provisioning supplied to one or more of the local cooling microgrids206a-206d. More particularly, for instance, a zonal cooling microgrid204amay function to control the volume flow rate of air supplied to particular rows of racks104by the fluid moving devices114a-114nand thus has an effect on the components contained in those rows104. Moreover, the local cooling microgrids206a-206dmay function to control the volume flow rate of air supplied to one or more particular racks102a-102n. The resource actuators of the local cooling microgrids206a-206dmay thus comprise the fluid delivery devices118depicted inFIG. 1. In addition, or alternatively, the local cooling microgrids206a-206dmay include resource actuators configured to vary cooling resource distribution at more localized levels, such as, rack-level and/or server-level fans.

Turning now toFIG. 2B, there is shown a schematic diagram of various global level cooling resource actuators220a-220dand zonal level cooling resource actuators, in this example, computer room air conditioning (CRAC) units230a-230i, that may be employed in the system200, according to an example. As shown therein, the various global level cooling resource actuators220a-220dmay comprise an adsorption chiller220a, a centrifugal chiller220b, or another type of conventional chiller220c,220d. In addition, the global level cooling resource actuators220a-220dmay receive cooled cooling fluid, such as chilled water, refrigerant, etc., from one or both of ground coupled loops222and a cooling tower224. The global level cooling resource actuators220a-220dare also depicted as receiving heated cooling fluid (represented by the dashed arrows) from the CRAC units230a-230i. The heated cooling fluid is cooled in one or more of the global level cooling resource actuators220a-220dand the cooled cooling fluid (represented by the solid arrows) is circulated back to the CRAC units230a-230ithrough operation of one or more pumps226.

In the CRAC units230a-230i, the cooled cooling fluid cools air that flows through the CRAC units230a-230iand becomes heated. The air may be airflow re-circulated within an infrastructure100or airflow from outside of the infrastructure100. The process discussed above is repeated in a substantially continuous manner to continually airflow in various zones of an infrastructure100.

Turning now toFIG. 2C, there is shown a schematic diagram of various global level cooling resource actuators222and224and zonal level cooling resource actuators, in this example, computer room air conditioning (CRAC) units230a-230i, that may be employed in the system200, according to an example.FIG. 2Ccontains all of the elements depicted inFIG. 2Bexcept for the chillers220a-222d. Instead, inFIG. 2C, the heated cooling fluid is supplied directly into one or both of the ground coupled loops222and the evaporative cooling224, such as a cooling tower224, where the cooling fluid is cooled. In addition, the cooled cooling fluid is supplied back through the CRAC units230a-230ito enable cooling to be provisioned at the zonal and global microgrid levels.

Although particular reference has been made throughout this disclosure to the cooling resource distributed at the zonal microgrid204a,204band the local microgrid206a-206dlevels as comprising cooled airflow, it should be understood that the cooling resource may comprise a cooling fluid, such as, a refrigerant, chilled water, etc., without departing from a scope of the system200. In this example, the resource actuators at the zonal microgrid204a,204band the local microgrid206a-206dlevels may comprise pumps, valves, metering devices, etc. In addition, one or more of the microgrids or resource actuators may use different cooling fluids.

The heat generating components208a-208dmay comprise electronic devices capable of generating/dissipating heat, for instance, computers, servers, bladed servers, disk drives, displays, etc. The heat generating components208a-208dmay be stored in racks positioned on a raised floor (not shown) and may correspond or correlate to the plurality of locations where the cooling resources may be distributed.

Turning now toFIG. 3, there is shown a block diagram300of a system302for distributing cooling resources to a plurality of locations using a plurality of hierarchically identified cooling microgrids, such as the plurality of hierarchically identified cooling microgrids310depicted inFIG. 2, according to an example. It should be understood that the following description of the block diagram300is but one manner of a variety of different manners in which such a system302may be configured. In addition, it should be understood that the system302may include additional components and that some of the components described herein may be removed and/or modified without departing from a scope of the system302. For instance, the system302may include any number of sensors, memories, processors, fluid moving devices, etc., as well as other components, which may be implemented in the operations of the system302.

As shown inFIG. 3, the system302includes a plurality of analyzers304a-304n. According to a first embodiment, each of the analyzers304a-304ncomprises a separate analyzer130depicted in the infrastructure100ofFIG. 1. According to a second embodiment, all of the analyzers304a-304ntogether form the analyzer130depicted in the infrastructure100ofFIG. 1. In this embodiment, although the system302has been depicted as including multiple analyzers304a-304n, the analyzers304a-304nmay be replaced with a single analyzer304awithout departing from a scope of the system302.

The analyzers304a-304nare each depicted as including an input module306, a microgrid identifying module308, a condition tracking module310, a temporal mining module312, a resource actuator identifying module314, a resource actuator setting module316, and an output module320. According to an example, the each of the analyzers304a-304ncomprises software stored, for instance, in volatile or non-volatile memory, such as DRAM, EEPROM, MRAM, flash memory, floppy disk, a CD-ROM, a DVD-ROM, or other optical or magnetic media, and the like. In this example, the modules306-320comprise software modules stored in the memory, which are executable by a processor330of a computing device. According to another example, the analyzers304a-304ncomprise one or more hardware devices, such as, circuits arranged on one or more boards. In this example, the modules306-320comprise circuit components or individual circuits, which may also be controlled by a processor of a computing device. According to a further example, the analyzer304comprises a combination of hardware and software modules.

Generally speaking, one or more of the analyzers304a-304nare configured to determine settings for a plurality of resource actuators342a-342nbelonging to different levels of a plurality of hierarchically identified microgrids that substantially maintain conditions at a plurality of locations in one or more infrastructures100within predetermined ranges. In addition, the one or more analyzers304a-304nare configured to determine the settings while substantially optimizing at least one measure of performance associated with supplying cooling resources to the plurality of locations. The cooling resource actuators342a-342nmay comprise any of the resource actuators discussed above, including, for instance, fluid moving devices114a-114n, fluid delivery devices118, chillers220a-220d, ground coupled loops222, cooling tower224, pumps226, etc. According to an embodiment, each of the one or more analyzers304a-304nis configured to determine the settings for a microgrid of actuators342a-342n, for instance, based upon hierarchy levels. According to another embodiment, a single analyzer304ais configured to determine the settings for multiple microgrids of actuators342a-342nacross multiple hierarchical levels.

According to an example, the one or more analyzers304a-304nare configured to determine the operational settings based upon information received from a plurality of sensors120a-120n. In this example, the plurality of sensors120a-120nmay comprise sensors configured to detect, for instance, temperature levels, power consumption levels, operating levels, etc. The one or more analyzers304a-304nmay receive the information over a network340that operates to couple the various components of the system302or from a data storage location where the information is stored prior to retrieval by the one or more analyzers304a-304n. The network340generally represents a wired or wireless structure in the infrastructure for the transmission of data between the various components of the system302.

In any regard, the one or more analyzers304a-304nare configured to store the condition information received from the sensors120a-120nin a data store322, which may comprise any reasonably suitable memory upon which the analyzer304may store data and from which the one or more analyzers304a-304nmay receive or retrieve data. Although the data store322has been depicted as forming a separate component from the one or more analyzers304a-304n, it should be understood that the data store322may be integrated with the one or more analyzers304a-304nwithout departing from a scope of the system200.

The one or more analyzers304a-304nmay also output the determined operational settings through the output module320. Thus, for instance, the determined operational settings may be outputted to a display upon which the outputted information may be displayed, a printer upon which the outputted information may be printed, a connection over which the outputted information may be conveyed to another computing device, a data storage device upon which the outputted information may be stored, etc.

According to a particular example where the processor330is configured to control operations of the cooling resource actuators342a-342n, the processor330may receive the determined operational settings and may transmit instructions over the network340to the cooling resource actuators342a-342nto vary operations of one or more of the cooling resource actuators342a-342nto match the determined operational settings.

Various manners in which the system300may operate are discussed with respect to the method400depicted inFIG. 4. More particularly,FIG. 4depicts a flow diagram of a method400for distributing cooling resources to a plurality of locations using a plurality of hierarchically identified cooling microgrids, according to an example. It should be apparent to those of ordinary skill in the art that the method discussed below with respect toFIG. 4represents a generalized illustration and that other steps may be added or existing steps may be removed, modified or rearranged without departing from the scope of the method400.

Although particular reference is made to the system300depicted inFIG. 3as performing the steps outlined in the method400, it should be understood that the method400may be performed by a differently configured system without departing from a scope of the method400. In addition, although particular reference is made to the modules of a single analyzer304aas performing the steps in the method400, it should be understood that one or more of the steps of the method400may be performed by modules of multiple analyzers304a-304n.

At step402, the resource actuators342a-342nare identified as being included in one or more of the cooling microgrids202-206(FIG. 2A), for instance, by the microgrid identifying module308. More particularly, for instance, the resource actuators342a-342nare identified as being included in the microgrids in an infrastructure100over which the resource actuators342a-342nrespectively have at least a predetermined level of influence. Thus, by way of example, a fluid delivery device118may be considered to be in a particular aisle (local cooling microgrid206a) of the infrastructure100.

At step404, the microgrids202-206are identified as being included in one or more levels of a plurality of hierarchically identified cooling microgrids202-206, for instance, by the microgrid identifying module308. More particularly, for instance, the microgrids204-206having resource actuators342a-342nthat affect the distribution of cooling resources to other resource actuators342a-342nare identified as being in a higher level in the hierarchy than the microgrids202having resource actuators342a-342nthat do not affect the distribution of cooling resources to other resource actuators342a-342n.

The hierarchical identification of the microgrids202-206generally allows for the thermodynamic interface of cooling resources from upper levels202-204of the hierarchically identified cooling microgrids to lower levels204-206of the hierarchically identified cooling microgrids. The hierarchically identified cooling microgrids202-206may also include energy storage mechanisms configured to assist in matching energy supply characteristics of the various micro-grid cooling resources with those of cooling demand. The presence of multiple hierarchical levels of control discussed herein generally allows for more granular control of actuators, for instance, even when some global data may be missing, as well as for granular control of actuators on shorter time-scales than what might occur in a scenario where only a global controller may be available. The multiple hierarchical levels of control discussed herein also assists in optimization on a global scale with improved availability and reliability as compared with conventional non-hierarchical control arrangements.

According to an example, steps402and404are considered optional because the inclusion of the resource actuators342a-342nin the microgrids202-206and the hierarchical arrangement of the microgrids202-206may be defined prior to implementation of the method400. For instance, the arrangement of the microgrids202-206may be predefined during the original design and layout of the infrastructure100.

In any regard, at step406, condition information is received from the sensors120a-120n, for instance, through the input module306. The condition information may include temperature measurements, airflow volume flow rate measurements, cooling fluid flow rate measurements, pressure measurements, workload/utilization measurements, etc, detected at various locations within one or more infrastructures100. In addition, as discussed above with respect to the system300inFIG. 3, the processor330may receive the detected conditions directly from the sensors120a-120nor from a data storage location in which the conditions have previously been collected and stored. Moreover, the received condition information may be stored in the data store322. Additional information, such as, information pertaining to the priorities of the workloads running at various locations may also be stored in the data store322and the processor330may employ the additional information in determining the settings for the plurality of resource actuators.

At step408, a determination as to whether the conditions detected at the various locations in the one or more infrastructures100are within predetermined ranges, for instance, by the condition tracking module310. The predetermined ranges may comprise, for instance, manufacturer recommended operating temperatures for servers contained in an infrastructure, known safe operating conditions for the servers, etc. In another example, the temporal mining module312may be implemented to identify anomalies in the detected conditions as discussed in greater detail in copending U.S. patent application Ser. No. 12/632,682. As discussed therein, the temporal mining module312may use temporal data mining algorithms on the data collected from the sensors120a-120n. For instance, the temporal mining module312may use continuous-valued multivariate time series data to find recurrent motifs as “frequent episodes” underlying the data. An efficient change point detection algorithm may be coupled with a temporal re-description approach to model key events of interest. Levelwise algorithms may then be used to find episodes that have sufficient support.

In the event that the conditions detected by the sensors120a-120nare within the predetermined ranges, the analyzer304may continue to receive the detected conditions as indicated at step406. However, if the condition tracking module310determines that one or more conditions are outside of the predetermined ranges, the one or more resource actuators342a-342nin each of the levels in the cooling microgrid hierarchy that may be manipulated to substantially maintain conditions at the plurality of locations within predetermined ranges are identified, for instance, by the resource actuator identifying module314, as indicated at step410. By way of example, optimization and objective criteria may be employed in identifying the appropriate one or more resource actuators342a-342nin the cooling microgrid hierarchy to be manipulated. The optimization and objective criteria may include those discussed below with respect to step412. In addition, the settings for the one or more resource actuators342a-342nin each of the levels of the cooling microgrid hierarchy that substantially maintains conditions at the plurality of locations within the predetermined ranges may be determined at step412. Moreover, at step412, settings for the one or more resource actuators342a-342nthat substantially optimize at least one measure of performance associated with supplying the cooling resources may also be determined, for instance, by the resource actuator setting module316, as indicated at step412.

According to an example, the resource actuator identifying module314identifies which of the one or more resource actuators342a-342nin the hierarchy of microgrids202-206may be manipulated to vary the distribution of cooling resources to the location(s) identified as having conditions that are outside of the predetermined ranges. From this determination, if there is more than one resource actuator342a-342nthat may be manipulated to bring the conditions within the predetermined ranges, the resource actuator identifying module310determines measures of performance resulting from manipulation of the resource actuators342a-342nand identifies the resource actuator(s) associated with the substantially optimized measure of performance as the one or more resource actuators342a-342nto be manipulated. The resource actuator identifying module314may identify the resource actuator(s)342a-342nto manipulate and determine the measures of performance through application of various analytical tools. For instance, the resource actuator identifying module314may implement a computational fluid dynamics (CFD) tool to predict the cooling resource distribution resulting from various resource actuator342a-342nmanipulations. As another example, the resource actuator identifying module314may employ models based upon historical data to predict how manipulating the resource actuator(s)342a-342nwill likely affect the cooling resource distribution in the infrastructure(s)100.

According to an embodiment, the at least one measure of performance comprises a coefficient of performance of the cooling resource actuators342a-342n. In this embodiment, the coefficient of performance of the cooling resource actuators342a-342nmay be adopted to create an integrated model across the different length scales in the infrastructure(s)100. In addition, the resource actuators342a-342nare manipulated with the goals of managing supply and demand of cooling resources while minimizing the energy cost function and maintaining reliability. Thus, for instance, the resource actuator identifying module314is configured to determine settings for the resource actuators342a-342nacross the hierarchy of cooling micro-grids202-206to maximize the coefficient of performance of the cooling resource actuators342a-342n.

According to another embodiment, the at least one measure of performance comprises a thermoeconomic measure of performance. In this embodiment, a thermoeconomic approach relying on the second law of thermodynamics is adopted to determine the interaction between geography, meteorology, and the infrastructure100cooling energy demand. In addition, the resource actuators342a-342nare manipulated with the goals of minimizing the total cost of ownership while maximizing the utilization of available energy (exergy). For instance, the selection and/or operation of the cooling resource actuators342a-342nis optimized for delivery of cooling at the desired availability, efficiency, and emission levels. In addition, a simulation model of the infrastructure100may be constructed and run to identifying end-use requirements and simulate the basic thermodynamics of the infrastructure100, for instance, to primarily simulate the cooling requirements given the waste heat load, building shell performance, weather, etc.

In any regard, at step410, the settings for the one or more resource actuators342a-342nidentified at step408are determined to meet the conditions discussed above. Thus, for instance, the resource actuator setting module316may determine that the flow rate of a cooling resource supplied through one or more resource actuators342a-342nat one or more hierarchical levels of microgrids202-206is to be increased or decreased.

At step414, the settings for the one or more resource actuators342a-342ndetermined at step412are outputted, for instance, by the output module318. The determined settings may be outputted to a user, for instance, through a display, through transmission over a network, printed on a printer, etc. In another example, the determined settings may be communicated over the network340to the resource actuators342a-342n. In this example, the analyzer304may have direct control over the operations of the resource actuators342a-342nand the resource actuators342a-342nmay be manipulated as determined at step414.

Some or all of the operations set forth in the method400may be contained as utilities, programs, or subprograms, in any desired computer accessible medium. In addition, the method400may be embodied by computer programs, which can exist in a variety of forms both active and inactive. For example, they may exist as software program(s) comprised of program instructions in source code, object code, executable code or other formats. Any of the above may be embodied on a computer readable storage medium.

Exemplary computer readable storage media include conventional computer system RAM, ROM, EPROM, EEPROM, and magnetic or optical disks or tapes. Concrete examples of the foregoing include distribution of the programs on a CD ROM or via Internet download. It is therefore to be understood that any electronic device capable of executing the above-described functions may perform those functions enumerated above.

FIG. 5illustrates a block diagram of a computing apparatus500configured to implement or execute the method400depicted inFIG. 4, according to an example. In this respect, the computing apparatus500may be used as a platform for executing one or more of the functions described hereinabove with respect to the system300.

The computing apparatus500includes a processor502that may implement or execute some or all of the steps described in the method400. Commands and data from the processor502are communicated over a communication bus504. The computing apparatus500also includes a main memory506, such as a random access memory (RAM), where the program code for the processor502, may be executed during runtime, and a secondary memory508. The secondary memory508includes, for example, one or more hard disk drives510and/or a removable storage drive512, representing a floppy diskette drive, a magnetic tape drive, a compact disk drive, etc., where a copy of the program code for the method400may be stored.

The removable storage drive510reads from and/or writes to a removable storage unit514in a well-known manner. User input and output devices may include a keyboard516, a mouse518, and a display520. A display adaptor522may interface with the communication bus504and the display520and may receive display data from the processor502and convert the display data into display commands for the display520. In addition, the processor(s)502may communicate over a network, for instance, the Internet, LAN, etc., through a network adaptor524.

It will be apparent to one of ordinary skill in the art that other known electronic components may be added or substituted in the computing apparatus500. It should also be apparent that one or more of the components depicted inFIG. 5may be optional (for instance, user input devices, secondary memory, etc.).