METHOD AND APPARATUS FOR CORRELATING LICENSE AGREEMENT INFORMATION WITH HARDWARE AND SOFTWARE CONFIGURATIONS

Abstract: A software tool and database enables a user to correlate and systematically associate hardware and software configuration data with license agreement information. The tool presents configuration information based on agreement criteria and/or agreement information based on configuration criteria in an integrated fashion that permits the user to switch from one kind of information to the other kind in a variety of convenient ways. The invention provides for tracking and day-to-day management of technical requirements, costs and environmental details of existing data centers, and the creation of scenarios for determining the optimum acquisition, expansion and reconfiguration strategies of the data centers. A modeling tool allows for the creation of various "What-If" scenarios of possible data center configurations for long term projections of the technical and financial requirements of existing, modified or proposed data center configurations.

Description: METHOD AND APPARATUS FOR CORRELATING LICENSE AGREEMENT INFORMATION WITH HARDWARE AND SOFTWARE CONFIGURATIONS BACKGROUND OF THE INVENTION, The present invention relates to the management of the hardware and software of data centers and, more particularly, to a method and apparatus for correlating, over selected time periods, license agreement information with displays of actual and hypothetical hardware and software configurations. Data center managers, capacity planners and financial planners are periodically required to evaluate the technical capabilities, financial requirements and environmental requirements of the hardware and software of computer data centers, networks, corporate IT assets and other collections of computer hardware and software. The term "data center" is meant here to be broad enough to encompass any or combinations of the foregoing. The managers and planners must also periodically determine whether or not to modify, upgrade or replace the existing hardware and software or whether to purchase additional hardware or software. Increasingly, data center managers are also responsible for assuring compliance with software licensing provisions and terms, to prevent software misuse, unnecessary expenses and the like. Typically, the only sources of information are from sales literature and from the sales representatives of new hardware and software products. The sales representatives are not likely to be familiar with the technical, financial and environmental requirements of existing data centers. Moreover, often data center managers do not have ready access to software contract/license data or agreements, which in many cases are kept with the legal department of their businesses. The data center managers, capacity planners and financial planners thus do not presently have a good methodology for evaluating existing software and hardware, determining whether to purchase or lease new hardware and software, upgrade existing hardware and software or to dispose of existing hardware or software. There is currently no reliable methodology for determining the financial and environmental costs of such changes. Nor is there currently any facility for systematically, automatically and temporally correlating, collating, comparing and analyzing license agreement information with actual or hypothetical hardware and software configurations and cost of ownership data. Though spreadsheet products are currently available, the spreadsheets do not take into account all the parameters of existing data centers and have not been proposed to provide the functionality described herein, despite a need that has not been met to date . A variety of techniques are available for gathering and reporting on the inventory of hardware and software products . In some environments (e.g., PC networks), software tools are available that conduct a survey to discover the computers and related hardware devices. Some of these same tools, as well as other products that do not do such a hardware survey, also survey the executable software programs ("modules," "executable files") on a computer or a network of computers and then automatically identify (on the basis of a knowledge base of file names, identifying strings, "footprints," etc.) which software products they comprise . Yet other tools allow users to specify products that users are installing or have installed, implicitly or explicitly indicating which programs they comprise. Other tools allow users to specify hardware products that users are installing or have installed, implicitly or explicitly indicating which components they comprise. Other software tools exist that allow users to enter into a database information pertaining to contractual license agreements ("contracts," "agreements") for the user's hardware and software products . This provides a convenient place to record such information as vendor or distributor, contact information, software and/or hardware products covered by the agreement, computers on which the software is authorized to run, number of authorized users, maintenance terms, renewal date, budgets and forecasts, invoice and payment history, key terms and conditions, links to electronic versions of documents, etc . As license agreements are often interrelated in complex ways, such tools typically allow the user to organize and identify these agreements in terms of master agreements, sub-agreements, addenda, etc. Some such products also provide: automated "alerts" (signals that an important event is occurring) ; financial capabilities such as chargebacks, links to accounting systems, etc.; information about vendor Internet address (allowing the user to automatically open a browser and display information from the vendor's Web site); and other capabilities. Existing software tools which offer asset management capabilities include ARGIS from Janus Technologies, The Contract Tickler from ARM Group and ContractManagement from Global Business Center. These existing products are not believed to provide linked associations of data from pre-existing repositories and many-to-many linkages. Nor do they provide reconciliation of data from multiple repositories in an automatic or substantially automatic fashion. Although both kinds of information — inventory information on the one hand and agreement information on the other—are useful by themselves, they would be more meaningful and useful if they were integrated, related, coordinated, and reconciled. However, at present, using existing tools, it is awkward to relate the two types of information. The user must look up the contract in the license agreement tool and then manually look up the corresponding inventory in the other tool (or vice versa) . With a single installation having hundreds of agreements, thousands of software products, and possibly tens of thousands of computers, this process can be laborious, repetitive, error-prone, expensive, and impractical. Time is often critical—if the information cannot be obtained and evaluated before a particular date (e.g., a deadline for canceling or renegotiating a contract), it is essentially useless. It is therefore desirable to provide an apparatus for and a method of tracking the technical specifications, costs and environmental details of existing data centers and correlating the same with license agreement data, for determining the optimum acquisition, expansion and reconfiguration strategies for the data centers. SUMMARY OF THE INVENTION In part, the present invention provides for tracking and day-to-day management of license agreement data vis-a-vis technical requirements, costs and environmental details of existing data centers, and the creation of scenarios for determining the optimum acquisition, expansion and reconfiguration strategies of the data centers as well as the forecasting of technical requirements, costs and environmental requirements of existing and proposed configurations of the data centers. The invention includes a knowledge base comprised of the technical and financial specifications of various storage devices and other software and hardware. A modeling tool allows for the creation of various "What-If" scenarios of possible data center configurations for making long term projections of the technical and financial requirements of existing, modified or proposed data center configurations. The costs of individual devices, systems or data center locations, as well as the costs of proposed new equipment are tracked. The invention also includes the ability to present technical, financial and other information of a data center at various levels, namely at the configuration, location, system and individual device levels, and the ability to prepare custom reports, tables and charts of the information. An aspect of the invention includes an apparatus for and a method of managing hardware and software of at least one data center. Information concerning a plurality of devices is stored. One or more configurations include at least one location, at least one system within the location, at least one device group within the system, and at least one device within a device group are stored. Information that is associated with each element of the configuration is correlated and stored. A display comprising at least a portion of the configuration and at least a portion of the associated information is generated. The associated information may include financial information, technical information, or a summary of financial and technical information of at least one of the locations, systems, device groups and devices of the configuration. The associated information may include contact and lessor information or history information of a device. Table information of at least a portion of the associated information of selected locations, systems, device groups and devices over a selected time interval may be generated, and a chart representing the table information may likewise be generated. A report of at least a portion of the configuration of the associated information may be generated. The configuration and associated information and the information concerning the devices may be edited. Other aspects of the invention include: adding a new location to a configuration; adding a new system to a configuration; adding a new asset to a configuration; updating information in a configuration; moving an asset within a configuration; disposing of an asset in a configuration; and modeling proposed changes or modifications to a configuration, the modifications including adding at least one asset to the selected configuration, moving at least one asset within the selected configuration, and disposing of at least one asset within the selected configuration. A key aspect of the invention involves the gathering and cataloging of license agreement information relating to software products used with a computer data center. In this aspect of the invention, there is disclosed a method and apparatus for correlating over selected time periods, such license agreement information with displays of actual and hypothetical hardware and software configurations. The present invention is a software program and/or a knowledge base, hereinafter, the "tool," that enables the user to view information on the one hand pertaining to hardware and software product inventory (proposed and/or actual) , and, on the other hand, license agreement information in such a way that the two sets of information are correlated and associated. The tool presents inventory information based on agreement criteria and/or agreement information based on inventory criteria in an integrated fashion that permits the user to switch from one kind of information to the other kind in a variety of convenient ways . The key components of the tool are the main software blocks which carry out the following main functional tasks: Data acquisition; Reconciliation and association; and Processing, display, and output. As used herein, the term computer or computers -used by itself- means all types of computers from single to multiple PCs to midrange computers, UNIX, mainframe, networked, etc. Further aspects of the above summarized system and method are described in the present assignee's U.S. patent application S/N 60/152,177, filed on September 2, 1999, the contents of which are incorporated by reference herein. Other features and advantages of the present invention will become apparent from the following description of the invention which refers to the accompanying drawings . BRIEF DESCRIPTION OF THE DRAWINGS The invention will now be described in greater detail in the following detailed description with reference to the drawings in which: Figure 1 is a block diagram showing a computer system in accordance with the present invention. Figure 2 is a block diagram showing the knowledge base of Figure 1. Figure 3 is a block diagram showing the configuration storage of Figure 1. Figures 4A-4E show an example of the respective levels of a configuration stored in the configuration storage of Figure 3. Figure 5 is a block diagram showing the display generator of Figure 1. Figure 6 shows an example of a display generated by the display generator of Figure 5. Figure 7 is a block diagram showing the information tabs data of the display generator of Figure 5. Figures 8A-8B shows an example of the financial specifications displayed when the financial tab of the information tabs of Figure 7 is selected. Figures 9A-9B shows an example of the technical specifications displayed when the technical tab of the information tabs of Figure 7 is selected. Figure 10A shows an example of the summary, technical and financial specifications that are displayed when the summary tab of the information tabs of Figure 7 is selected. Figure 10B shows the contact and lessor information displayed when the contact/lessor tab of the information tabs of Figure 7 is selected. Figure IOC shows the history data displayed when the history tab of the information tabs of Figure 7 is selected. Figure 11A and 11B show examples of tables generated by the table generator of Figure 1. Figure 12 shows an example of a chart generated by the chart generator of Figure 1. Figure 13A is a flow chart illustrating the flow of a Select New Location transaction, and Figure 13B illustrates an example of a displayed representation of a Select New Location transaction. Figure 14A is a flow chart illustrating the flow of a Select New System transaction, and Figure 14B illustrates an example of a display of a Select New System transaction. Figures 15A-15B are flow charts illustrating the flow of a Select New Acquisition transaction. Figures 16A-16G show examples of displayed representations of several of the steps of Figures 15A-15B. Figure 17 is a flow chart illustrating the flow of an Update operation. Figures 18A-18C show examples of displayed representations of steps in the operation of Figure 17. Figure 19 is a flow chart illustrating the flow of a Move transaction. Figures 20A-20B show examples of displayed representations of an example of the operation of Figure 19. Figure 21 is a flow chart illustrating the flow of a Device Disposition transaction. Figure 22A is a flow chart illustrating the flow of a What- If Configuration transaction. Figure 22B shows an example of a displayed representation of the operation of Figure 22A. Figure 23 is a flow chart illustrating the flow of a chart generation operation. Figures 24A and 24B show examples of a displayed representation of the operation of Fiqure 24A. Figure 25 shows a file indexing scheme for several tables used by the invention Figure 26 illustrates a relationship between agreements, inventory data. Figure 27 is a software screen illustrating assets by contract comparisons. DETAILED DESCRIPTION OF THE INVENTION Referring first to Figure 1, there is shown a computer system 10 including an operating system 20, which may be a conventional operating system such as Windows 95, Window 98, Windows NT, Windows 3. IX, UNIX, etc . Also included are a knowledge base 30 for storing financial and technical information of various hardware devices and/or software products and/or license agreement data, a configuration storage 40 for storing one or more configuration trees representing existing and proposed configurations of the data centers, and a correlator 45 for correlating the financial and technical information stored in the knowledge base with the elements of the configuration trees for storage in the configuration storage. Further included are a table generator 60 for generating a table or grid displaying financial and summary information of one or more of the configurations or portions of configurations, a report generator 70 for generating a printed report of a configuration or a portion of a configuration, and a chart generator 80 for generating information generated by the table generator in graphic form. A display generator 50 generates a visual representation of, for example, part or all of a configuration stored in configuration storage 40 together with its associated information from the correlator 45 and the knowledge base 30 for a display 90. Additionally, grid information generated by the table generator 60 is formatted by the display generator 50. Alternatively, the representation of one or more charts generated by the chart generator 80 are formatted for display by the display generator. The knowledge base 30, shown in greater detail in Figure 2, includes one or more databases of user or software vendor supplied financial information 34 and user/vendor supplied technical information 36 of various devices. The knowledge base also includes contact and lessor information 38, other user supplied information 39, and default data 32 including financial, technical and license information of other devices not supplied by the user. The knowledge base may be constituted of a single or several files or tables and may reside in a single or several computers and its contents may be located in geographically remote locations, e.g. the license information being located in a New York based computer while the configuration data being located in a California based computer. The editor 55 (Figure 1) serves for modifying the user/vendor supplied information in the knowledge base and the configuration storage. Figure 3 shows the configuration storage 40 which is comprised of one or more configurations 40A, 40B, 40C, ... Each configuration includes at least one data center location having at least one system which, in turn, includes at least one device group. Each device group, in turn, includes one or more devices. The configuration is stored in a tree data structure in which the highest level represents the respective configuration, the second level of the tree represents the data center locations within the configuration, the third level represents the systems within a respective location, the fourth level of the data structure represents the device groups within a respective system, and the fifth level represents the devices under a respective device group. Figures 4A-4E show examples of respective levels of a configuration tree, generated by the display generator 50, with Figure 4A showing a representation of the first level, called the Sample Configuration. Figure 4B shows a representation of the first and second levels of the example, namely two data center locations within the Sample Configuration. Figure 4C shows the first through third levels which includes the respective systems of each of the two locations, and Figure 4D shows the first through fourth levels which may include, for example, a control unit, a DASD, a processor and a RAID. Figure 4E shows the first through fifth levels which includes the respective devices of each device group. In accordance with the invention, the display generator 50 may be instructed to generate a display of between one to all five of the configuration tree levels, as shown in Figure 4A-4E. Per Figure 5, the display generator generates a representation of part or all of a configuration tree 52, together with selected portions of its associated information 55, over a date range 57. Figure 6 illustrates a display of the display generator 50, showing a months grid 56 which may display financial information or summaries of financial information or months as well as the total cost of ownership (TCO) and the totals. The display generator generates information tabs 54 (Figure 7) which include a financial tab 54A, a technical tab 54B, a summary tab 54B, a contact/lessor tab 54D or a history tab 54E. Figure 8A-8B, 9A-9B, and 10A-10C, show displays generated when one of the information tabs 54 is selected for a respective element in a configuration tree. The financial information for a respective configuration includes cost of capital, cost of money, air conditioning costs (BTU) , electricity (KVA) costs, floor space costs, and/or the monthly overhead costs. The financial specifications for a data center location includes cost of capital, if different from that of the entire configuration, the air conditioning cost per BTU, if different from that of the configuration, the cost of electricity, if different from that of the configuration, the cost of floor space per square foot, if different from that of the configuration, the monthly overhead cost, and/or the total floor space. The system level financial specifications include the air conditioning cost per BTU, if different from that of the configuration of the respective data center, and the overhead costs. The device level financial specifications include the acquisition date, the maintenance per month, the maintenance delay, the monthly overhead costs, the financial life, the transaction start date, the acquisition cost, the salvage value, the depreciation method (if the device is purchased) , the monthly lease cost and lease buyout cost (if the device is leased) , the remaining book value, the device serial number, the order date, the delivery date, the installation date and the invoice date. Figures 9A-9B show examples of displays when the technical tab 54B is selected. The technical information of a device may include the device type, the device manufacturer, the device model number, the device serial number, the area used, the BTUs, and the power consumed in KVA. If the device is a DASD, the technical information may also include the capacity per unit, the number of cylinders per device, the data transfer rate, the number of physical device addresses per unit, and the number of tracks per cylinder. For a RAID, the technical information may also include the capacity per unit, the logical device addresses, the cache, the number of ESCON channels, the number of logical channels, and the number of OEMI host adapters. For a control unit, the technical information may also include the cache and the number of channel interfaces. Figure 10A is a summary of the technical and financial specifications of a respective system and Figure 10B shows the associated contact and lessor information of a device when the contact/lessor tab 54D is selected. Figure IOC is a display when the history tab 54E is selected and shows the history of a respective device. Referring back to Figure 1, the table generator 60 generates a table displaying the technical information about selected levels of a configuration tree which, in turn, is formatted by the display generator 50 for display as the months grid 56. Figure 11A is a representation of a months grid 56 showing various information. Other information, such as the lease costs, maintenance costs, overhead costs, net remaining book value, total device area, total BTUs or total capacity may be shown as set out in box 56A. The months grid 56 may display specific information as a function of one or more months, and may be used to show comparisons between respective devices, systems or locations. See Figure 11B. A graphic representation of the information is generated by the chart generator 80 and formatted by the display generator 50. Figure 12 is an example of a bar chart. Alternatively, stack charts, pie charts or other types of charts may be generated. Different charts may be displayed concurrently. Report generator 70 (Figure 1) generates reports of selected levels of detail which may be either printed out or formatted for display by the display generator 50. Figures 24A and 24B illustrate a print report request . Each requested report begins from a first date in which the devices were acquired up to a specified date for an actual or a proposed configuration. The type of report is also selected and may cover an entire configuration, a single location, a single system, the devices by lessor, the devices by lease number, the devices by contract, new location and system, transaction detail, or a shopping list. The name of the configuration and/or location is also selected as well as the degree of detail. A report can be of an entire configuration including all locations, systems and devices in the configuration, or of a single location. A "devices by lessor" report provides information about all leased devices by a specified lessor and shows information about all locations and systems where such devices are installed. A "devices by lease number" report provides information about all leased devices belonging to a selected lease number and shows information about all locations and systems where such devices are installed. A "devices by contract" report provides information about all purchased devices based on a selected contact and shows information about all systems and locations where such devices are installed. A new location and system report provides information about new locations and systems that have been added to a proposed ("What-If") configuration. A transaction detail report provides a chronological list of all transactions created while preparing a proposed configuration. A shopping list report provides a list of all transactions within the What-If configuration that are different from the actual configuration. The editor 55, shown in Figure 1, stores, retrieves and edits contact information, changes the requirements and specifications of any item within a configuration, and deletes a transaction with the configuration storage 40. The editor also enables custom modification to the knowledge base 30. Custom modifications to the knowledge base include adding a manufacturer, adding a device, adding a model, modifying and adding information about a device, creating an additional set of customer specifications for a respective device, changing the set of specifications that is defined as the default set, adding information about RAID devices, and adding or removing a custom specification of a RAID device. Throughout the instant specification, "device or "element" refers to either hardware components, assemblies, products, etc. and/or to software products . The knowledge base 30 is also periodically updated by information provided by a disk, online or in a CD-ROM. The invention enables the simulation and optimization of changes to existing configurations. Editor 55 and the display generated by the display generator 50 are used to create a new location or system, add device levels and devices, update financial and technical information, move devices, and dispose of devices as specified by a user. The editor 55 and the display generated by the display generator 50 also allow for the creation of proposed or "What- If" configurations. Figure 13A is a flow chart of a transaction for creating a new location within a configuration. First, a Select New Location transaction is selected at step 100, such as by selecting a menu item on the display generated by the display generator 50 and as shown in Figure 6, for example. Then, the name of the new location is entered at step 102. Figure 13B shows an example of a display of a new location with its specifications . Figure 14A is a flow chart which describes the flow of a transaction for adding one or more systems to a respective location. First, a respective location is selected from the configuration tree at step 120, and a New Systems transaction is selected at step 122. The name of the new system is then entered at step 124. Figure 14B shows an example of a display showing the acquisition of a device. Here, a processor has been selected from the knowledge base and has been added to System B at the NY-Wall Street location in the configuration. Figures 15A-15B are flow charts of the steps for adding a device and its associated information. At step 140 of Figure 15A, a New Acquisition transaction is selected. Then, at step 142, a device type is selected from the knowledge base and at step 144, a system is selected in the configuration tree where the device type is to be added. The new device type is added to the configuration tree at step 146. If desired, steps 142, 144 and 146 may be repeated for adding other device types at step 148. Figure 16A shows an example where a processor was selected from the knowledge base and added to a configuration. Thereafter, one of the newly added device types is selected from the configuration tree at step 150, and a device model is assigned to the newly added device at step 152. As step 158 shows, steps 150 and 152 are repeated for each newly added device. Figure 16B shows an example with two newly added device types. The associated information for each newly added device is then entered. At step 160 of Figure 15B, one of the newly added devices is selected from the configuration tree. Then, at step 162, the financial tab is selected so that financial information is included. A transaction type, namely either the lease or purchase of a new device, is selected at step 164. If the device is leased, as step 166 shows, a contact and lessor are entered at step 168. Alternatively, if the device is purchased, a depreciation method is selected at step 170. Figure 16C shows an example where financial information has been entered for a newly acquired RAID device. Figure 16D shows an example where the names of contacts have been entered for the newly acquired device. The technical tab is selected at step 172 so that technical information for the newly added device may be entered at step 174. Figure 16E shows an example where the technical information is added for a newly acquired RAID device. It should be noted that the technical information may alternatively be added before the financial information. Then, if the newly added device includes custom in-house or manufacturer provided modifications, as shown at step 176, the custom option is selected at step 178. Custom information is then added at step 180. For example, for a RAID device, the RAID level field and its corresponding quantity are added at step 182. Figure 16F and 16G show examples of such transactions. Steps 160 to 182 may then be repeated for each newly added device at step 184 . Figure 17 is a flow chart illustrating updating financial and technical information. First, the Update Operation is selected at step 200, and the device in the configuration tree for which the technical and/or financial information is to be updated is selected at step 202. If the financial data is to be updated, as shown at step 204, the financial tab is selected at step 206, and updated financial data is then entered at step 208. Figure 18A shows an example where the maintenance per month amount has been updated for a RAID device. When technical information is to be updated, as step 210 shows, the technical tab is selected at step 212, and the technical data is then updated at step 214. Figure 18B shows an example where the capacity of a RAID device is updated. The technical information may instead by updated prior to the financial information. Other data may then be updated, as shown at step 216. The respective transaction is selected at step 218, and the data updated at step 220. Figure 18C shows an example where the lessor/contact tab has been selected so that the contact information for a RAID device of the configuration is changed. Figure 19 is a flow chart illustrating a transaction in which a device is moved from one system to another. At step 240, the Move Transaction is selected. Then, the device or devices that are to be moved are selected from the configuration tree at step 242, and the system to which the devices are to be moved is selected at step 244. As step 246 shows, steps 242 and 244 may be repeated or undone. Figure 20A shows an example of step 242 where two RAID devices have been selected, and Figure 2 OB shows an example of step 244. Then, the moved device is selected from the configuration tree at step 248, and the start date for the move is entered at step 250. Steps 248 and 250 are repeated for each device that is to be moved, as step 252 shows. Figure 21 illustrates a flow chart showing the disposition of a device, namely the termination of the financial and technical life of the device, so that the associated costs and other requirements for the disposition of the device may be determined. The disposition of a device is distinguished from the deletion of a device. Specifically, a device is deleted when, using the editor 55, all historical records of a device are removed to appear that the device never existed. By contrast, the disposition of a device represents the disposal of an existing device where the historical records of the device remain. The Device Disposition Transaction is selected at step 260, and then the device that is to be disposed is selected from the configuration tree at step 262. As step 264 shows, step 262 may be repeated for each device to be disposed. Thereafter, the disposal date of the device is selected at step 266. Significantly, the invention also allows for the creation of proposed changes to a configuration, namely a What-If configuration, so that the effects on the financial and technical requirements of such changes may be determined. The financial and technical specifications of an existing configuration may be compared to a configuration having a proposed change. Alternatively, the financial and technical requirements of two or more proposed configurations may be compared to each other. Figure 22A is a flow chart illustrating the creation of two or more What-If configurations according to the invention. First, an existing stored configuration is selected at step 300, and the What-If Configuration Transaction is selected as to step 302. Then, at step 304, the name of a What-If configuration is entered, and, at step 306, one or more locations, systems, device groups or devices are added, moved and/or disposed of using the transactions described above regarding Figures 13A, 14A, 15A, 15B, 17, 19 and 21. An appropriate date range for the What-If configuration is then selected at step 308. Steps 304 to 308 may be repeated for each respective What-If configuration, as step 310 shows. Then, the specification of two or more of the newly created What-If configurations may be compared for matching configuration tree levels and matching date ranges. The matching tree levels for two What-If configurations are selected at step 312, and then either the financial, technical, summary, contact/lessor or history tabs is selected at step 314. The selected What-If configurations are then displayed at step 316. Step 312 to 316 may be repeated for each pair of What-If configurations that are to be compared. Figure 22B shows an example where the summary information of two What-If scenarios are displayed for corresponding date ranges and system levels . One or more charts representing the financial or technical information of the respective What-If scenarios may be generated, as Figure 23 shows. Here, one or more previously generated What-If scenarios are selected at step 380, and a configuration level from the configuration tree is selected at step 382. A common date range is selected at step 384, and one of the financial, technical or sμmmary tabs is selected at step 386, and a chart is generated at step 388. Steps 380 to 388 may be repeated for each respective What-If scenario, as step 390 shows. Then, if it is desirable to display the charts of two or more What-If scenarios concurrently, as step 392 shows, the charts may be resized for concurrent display. Figure 12 shows an example of two bar charts representing the total capacity of two respective What-If scenarios. As described above, the invention allows the management of Hardware and Software Data Centers in a substantially automated manner through the use of software which relies on a knowledge base. In creating a configuration whose total cost of ownership needs to be determined, the user is allowed access to computer programs that allow the user to define a particular configuration e.g. its location, device groups, components, costs etc. The information about the financial cost is looked up and/or calculated from information stored in the knowledge base. The information in the knowledge base is often pre-stored in the knowledge base and is provided to a user who purchases the product of the invention. In addition, the information in the knowledge base can be and often is supplemented by information that is supplied by the user. In generating hardware configurations, the invention also provides so called drop-down menus which allow the user to select devices, e.g. CPU's, memory and other storage components from drop-down menus or to individually specify them. If devices or configurations are specified for which pricing information is not available in the knowledge, such information can be hand entered by the user for reference purposes or estimated by the user for the purpose of obtaining a rough evaluation of the costs of a particular configuration. It should be noted that the invention may also include information about the personnel costs, such as for systems operation or technical support. Further, it should be noted that the invention is also applicable to a manufacturing configuration. Here, for example, the configuration may include factories or mills as a second level, machine types as a third level and specific machines or lathes as a fourth level . As described above, this invention provides decision support capabilities in the planning and operation of a computer enterprise. Namely, the ability to accurately project the actual cost of ownership over time and to forecast the financial and technical effects of making a change of some kind to a current or hypothetical hardware/software configuration . The preceding description has focused on embodiments that are hardware based. The following is a description of the additional capabilities provided by this invention for managing and projecting the actual costs of ownership over time of software products and a description of the interrelationships of the costs of software products with proposed hardware changes . Licensing fees are typically determined by the computer on which the software will run. In the personal computer arena, users generally pay a single fixed fee irrespective of the size or speed of their computer. However, as one moves to larger systems possibly composed of servers, multi-user systems and/or mainframes, software licenses terms will vary. In some instances, software prices are based on the number of users, the model of CPU, the speed rating of the CPU or combinations of one or more of these factors. Additionally, these fees or prices may be for a limited period of time, and may include charges for maintenance and support . The licensing fees charged by vendors for software used by large data centers is most often based upon the size of the CPU that software is run on. Users are either charged a fixed amount according to which of their CPUs fall into a particular class (more commonly known as a "model group") or, they are charged according to the speed (MIPS rating) of a specific CPU. Furthermore, each vendor may use one, both or a combination of these pricing schedules. There is no common basis or standard definition of a model group. Each vendor may establish his own model group pricing schedules separate and apart from what other vendors may use. For example, the assignee of the present invention, Isogon Corporation, may list seven processor groups for a software product covering all IBM processors and another company may define twenty groups for those same processors. A typical computer installation may have dozens or even hundreds of active software licenses, each having its own pricing schedule. By way of example, pricing and model group data are presented further on below in tabulated formats, i.e. tables 1, 2 and 3. Table 1 presents one vendor's model grouping for selected IBM processors and their corresponding MIPS rating for comparison. Table 2 is a pricing schedule based upon MIPS ratings and Table 3 presents a sample price schedule by model group. Table 1 Sample Model Groups for IBM Processors Table 2 - Sample MIPS based Pricing Note : The rates in Tables 2 and 3 are onetime licensing rates. They are graduated, thus for a 60 MIPS CPU the first 50 MIPS would be at the 0-50 rate and the next 10 MIPS at the 50-100 rate. The model groups shown in Table 3 correspond to those in Table 1. Table 3 - Sample Model Group Pricing Product Z Using the data from Tables 1, 2, and 3, the following is a simple one year comparison for those software products. Present licensing costs are computed on the basis of the production system using product X, the development system using product Y and both systems using product Z. The licensing upgrade costs of moving to either the 500S or the 500J models are computed. The original and new licensing costs are shown in the following table for comparison and because maintenance and support fees are charged as a percentage . The user will have to pay upgrade fees for products X & Y that are dramatically increased (in 15 proportion to the MIPS rating of the proposed configuration) , and, only one upgrade fee for product Z. The second license for product Z is unnecessary. However, the user will not receive any monetary credit for no longer using it. 20 Software costs alone are not necessarily the deciding factor. The total cost of ownership is more relevant. In order to determine the financial consequences over time of these proposed configurations, the following tables factor in some 25 representative hardware costs to illustrate ownership costs for one year. The first table is the present configuration which establishes a baseline for comparison. The total cost of ownership (TCO) for the original 3090/28T production and development systems is $873,752. 10 12 22,500 13,500 | | 117 | | 260 22,500 13,500 | | 176 | | 260 | 270,000 162,000 0 1,406 0 3,120 270,000 162,000 0 2,106 0 3,120 TCO 87 3 ,752 Moving to a consolidated configuration using the model 500S IBM processor, the same 15 12 month period costs would be as follows: 20 12 39,800 21,890 244 341 331 477,600 262,680 10,156 2,930 13,250 4,094 5,650 3,968 TC 780,327 In spite of the increased software 25 costs, the TCO can be reduced to $780,327. For sake of comparison, the decision maker now considers a consolidation to the model 500J. The 12 month cost figures are as follows: 30 12 42,600 23,430 274 379 331 511 ,200 281 ,16 12,510 3,283 16,286 4,549 5,650 3,968 TC 838,605 In the case of the IBM model 500J system, the TCO for a single year is only modestly reduced to $838,605. Other scenarios are possible. A planning decision may consider moving from one or more separate processors to a sysplex of multiple processors that balance workloads. In this instance, multiple licenses of the same software may be involved. For example, moving from two processors to a sysplex of five may involve purchasing three additional licenses at the appropriate costs and paying upgrade fees for the other two . While these examples are necessarily simple for the sake of clarity, one can see that when dozens or even hundreds of software products are involved, this invention becomes a valuable tool in projecting the total cost of ownership. While this invention can, in most cases, determine and present the monthly costs and TCO of a proposed configuration from information contained in the knowledge base, the invention cannot have a perfect understanding of all possible pricing options. Accordingly, the user is provided with the ability to enter or create custom data for software products and to update information as necessary to ensure that the knowledge base properly reflects the current or proposed configuration. In summary, the features of this invention relating software management are similar to that provided for hardware. This invention also takes into account those factors peculiar to software licensing. Some of these features are : Knowledge base contains pricing schedules for software products; Supports MIPS based pricing; Supports Model Group pricing; Contains other relevant configuration data, e.g., vendor, version, maintenance fees, etc.; Knowledge base can be updated and custom data for software products added; The user interface can additionally display software product information as part of the system configuration : Listed as a separate item; Grouped according to vendor; Note that this is directly analogous to the Device Grouping feature for hardware . Ability to add or remove a software product from a configuration; Ability to move a software product from one system to another; Ability to determine if a multi -product discount is applicable from a vendor; Ability to perform a pricing comparison of a vendor's software product using both model group and MIPS based pricing when both methods are offered; Ability to perform what-if scenarios over time to determine the total cost of ownership; and/or Supports conventional purchase/lease pricing, custom pricing; and/or pricing based on the number of users . Turning now to the license agreement information handling aspect of the invention, it is noted that individuals, companies and governments accumulate interests (ownership) in real property or services by means of purchase, sale, lease, rent or other such conveyance. Such property (assets) includes: computer hardware, computer software, maintenance agreements, contracts for services received, contracts for services rendered, etc. Typically, there is a contract, assignment or, in the case of software, a license agreement which establishes the terms and conditions of ownership and how the right-to-use of these assets is to occur. For example, the outright purchase of a computer places few restrictions upon the buyer whereas leasing imposes stringent time limits, payment schedules, insurance requirements, penalties and other obligations upon the lessee. A computer vendor may own or control numerous assets for which there may exist schedules of maintenance, upgrades, fees due and payable, statutory requirements, e.g. income, business use taxes, permits, licenses, etc., and other obligations, each of which has one or more agreements establishing terms and conditions. Similarly, a computer service bureau may purchase or lease computer hardware and software for the express purpose of producing income by entering into agreements with others desiring to use these assets. From the aspect of ownership (or management), it is vital that these agreements be fully considered when decisions are to be taken that may influence the cost of ownership. The discussion below focuses primarily upon the user of computer hardware and software, however, the modeling presented is perhaps applicable to other situations wherein contractual relationships are directly associated with the vendor or lessor of such assets . Software tools exist that allow users to enter information into a database pertaining to various licensing agreeme nts ("contracts," "agreements") for the user's hardware and software products ("assets") . These tools (hereinafter, "license agreement tools") provide a convenient place to record such information as vendor or distributor, contact information, software and/or hardware products covered by the agreement, computers on which the software is authorized to run, number of authorized users, maintenance terms, renewal date(s), budgets and forecasts, invoice and payment history, key terms and conditions, links to electronic versions of documents, etc. As license agreements are often interrelated in complex ways, such tools typically allow the user to organize and identify these agreements in terms of master agreements, sub-agreements, addenda, etc. Some such license agreement tools also provide: automated "alerts" (signals that an important event is either imminent or occurring) ; financial capabilities such as chargebacks, links to accounting systems, etc.; information about a vendor's Internet address (allowing the user to automatically open a browser and display information from the vendor's Web site) ; and other capabilities. For the present purposes, the term "license agreements" means any and all contractual relationships and terms and conditions to purchase, sell, lease, rent, license or otherwise gain and/or provide use of hardware, software and/or services. At least one product, (the Manhasset™ product from Isogon Corporation) enables determining the total cost of ownership over time. That product has been described in the preceding pages herein. It provides graphical and spreadsheet displays of financial and technical data pertaining to an organization's computer hardware and software configurations over time, and permits the user to create hypothetical variations on those configurations, typically, to compare these variations in terms of their financial and technical consequences. Such a product will hereinafter be referred to as the "decision support tool." The tool: • Provides a configuration hierarchy (based on enterprise, location, system, etc.) of the user's hardware and software products. NOTE: Loca tion is understood to mean geographical location (for example, Europe, the United Kingdom, England, London, 7 Gleneagles Court, Brighton Road, Crawley, West Sussex, RH10 6AD) , physical location (for example, tenth floor, room 1001) , and/or organizational location e.g. asset cost center, etc. or, for example, Isogon Corporation, UK office, sales division. Location also means the physical layout of elements relative to one another. • Previews the impact of proposed financial and technical changes as assets are hypothetically acquired, moved, disposed of, and financial arrangements renegotiated. • Computes the monthly cost of ownership and the total cost of ownership (TCO) of any hardware and/or software configuration over any specified time period including acquisition, disposition, and maintenance expenses such as electricity and cooling costs. • Provides costs for individual devices, hardware and software products, systems, different locations, or the user's organization's configuration in its entirety. • Displays configuration information (optionally, over a user-specified period of time) by data center, system, user-specified asset grouping, or individual asset . • Simultaneously displays information about the user's actual configuration and any proposed configuration under consideration. • Automatically highlights configurations that do not satisfy the user's specified requirements. • Produces a "shopping list" with specific courses of action to make the user's chosen hypothetical configuration a reality. • Creates custom exportable charts and graphs, especially useful for the justification of acquisition decisions . • Presents the user's configurations, real and hypothetical, with as much detail as desired, or summarized. • Uses a knowledge base to supply financial and technical information necessary for cost-effective planning. This information follows a simple purchase/lease model which can vary according to the nature of the asset. • Accepts user input to identify hardware and software products not included in the knowledge base. Although both kinds of tools — license agreement tools on the one hand and decision support tools on the other — are useful in and of themselves, users need them to be integrated, related, coordinated, and reconciled. It is difficult to manually relate the two types of information. Some tools may provide the ability to create multiple views ("windows") . The operating system itself may provide the capability to use two or more unrelated programs simultaneously in multiple views ("windows"), which allows the user to use a decision support tool (in one window) and a license agreement tool (in another window) at the same time. (This would allow the user to visually relate the information in one tool to the information in the other, and even copy information from one and paste it into the other.) However, such tools do not allow the user to correlate two or more sets of information in a systematic, automated way. For example, when a decision maker is contemplating upgrading to a larger computer system, it is highly desirable to be able to factor in the upgrade and termination costs of existing licensing agreements with the proposed upgrade costs and determine the cost benefit, if any. Such a tool has many advantages for those who work with such information. The tool of the present invention allows a user to conveniently answer questions such as: What software licenses can and cannot be transferred? What software products are subject to upgrade fees and how much? When is the best time, based on existing and/or proposed agreements, to perform this upgrade? For either an actual or hypothetical configuration, what license agreements are associated with each item of hardware or software in the configuration? For selected items of hardware or software the user is considering deploying, what are the terms and conditions of the licenses governing their use? For a user-specified selection of license agreements (optionally, from a user-specified selection of vendors and optionally limited to a user-specified selection of hardware and software items licensed by those license agreements) , what are the financial and non- financial figures for these items over a user-specified period of time? For a user-specified selection of license agreements (optionally, from a user-specified selection of vendors and optionally limited to a user-specified selection of hardware and software items licensed by those license agreements) , what are the financial consequences in an actual or hypothetical configuration of changing one of the terms or conditions? For example, if a license agreement specified a cap on increases in annual maintenance fees to 8%, what are the consequences over a given period of decreasing the cap to 5%? For a user-specified selection of license agreements (optionally, from a user-specified selection of vendors and optionally limited to a user-specified selection of hardware and software items licensed by those license agreements) , are any actual or hypothetical configurations out of compliance with the terms and conditions of these license agreements at any time? For example, if a license agreement specifies that a particular software product can be utilized on processors totaling up to 1,000 MIPS [a measurement of relative processing power] , does a given hypothetical configuration exceed 1,000 MIPS at any given point in time? . Note, while MIPS is used, any other form of capacity measurement can be used, e.g. Million Service Units (MSU) which is a measure of cpu hours and is used alone or sometimes in conjunction with MIPS. For a user-specified selection of license agreements (optionally, from a user-specified selection of vendors and optionally limited to a user-specified selection of hardware and software items licensed by those license agreements) , are the license rights of these agreements being underutilized by either an actual or hypothetical configuration underutilized? For example, if a license agreement specifies that a particular software product can be utilized on processors totaling up to 1,000 MIPS, does a given hypothetical configuration fail to reach 1,000 MIPS at any given point in time?. For a user-specified selection of license agreements (optionally, from a user-specified selection of vendors and optionally limited to a user-specified selection of hardware and software items licensed by those license agreements) , what are the locations of all the assets covered by those agreements? For a user-specified selection of license agreements (optionally, from a user-specified selection of vendors and optionally limited to a user-specified selection of hardware and software items licensed by those license agreements) , what are the total physical characteristics (such as electrical draw, square footage required, storage capacity, etc.) of all of the assets covered by those agreements over time? Likewise, the user would be able to be selective in her queries by optionally selecting processors, specified locations, and/or within user-specified organizational subdivisions to narrow the desired results . One aspect of the present invention is designed to make it easy to answer these and other such questions, and to overcome the problems inherent in not having the information pertaining to hardware and software configuration over time (on the one hand) and agreement information (on the other hand) coordinated. In one aspect thereof, the present invention is a software program (hereinafter, the "tool") that permits the user to view information pertaining to actual and hypothetical hardware and software product configurations, on the one hand, and license agreement information on the other in such a way that the two sets of information are both correlated and associated. The license agreement information may include the text of license agreements and may include a fields table that contains the answers to the questions posed above, e.g. what software licenses can and can not be transferred. This tool can present information about actual and hypothetical configuration information based on agreement criteria; and agreement information based on configuration criteria. The user can, optionally, view this information wherein the license and configuration criteria span a specified period of time. The user views this information in an integrated fashion and can switch from one kind of information to the other kind in a variety of convenient ways. The tool can be understood in terms of its major functional areas: Data Acquisition Reconciliation and Association Processing, Display, and Output Data Acquisition The two or more sets of data (configuration; agreement information) must be brought into the tool in one way or another. There are several ways that this can be done, such as: The tool provides the functionality already described to discover and/or create actual and/or hypothetical configuration information. The information is imported from one or more other hardware and software products that provide that functionality (e.g., via reading a file or a database) . The tool shares a database with a product or hardware and software products that provide the functionality. The tool provides a facility by which the user can manually enter the information. (This is particularly applicable to hypothetical configuration information and license agreement information.) The tool makes use of Application Program Interfaces (APIs) provided by other hardware and software products to obtain agreement information or configuration information from the databases or data files of those other hardware and software products. The tool provides APIs for other hardware and software products to use to supply agreement information and/or configuration information to the present program whenever such information is created or obtained by those other hardware and software products. With reference to Figure 26, the present invention may interface with and/or acquire the bulk of its data from existing hardware/software inventory and contract/agreement collectors as well as from data entered manually by operators. In one aspect thereof, the invention comprises a specially constructed database 410 which produces relationships between diverse pieces of asset management data. The database 410 contains information including inventory data 418. This inventory data can be obtained from auto discovery tools 412 and inventory records 414, as shown. The database 410 further contains a contract and agreement repository 422, the information for which can be obtained from a pre-existing contract repository 416. The aim of the invention is to create data sets defining relationships between asset management data, such as between inventory data and contract and agreement data, as shown by the overlapped region 424 in Figure 26, which represents data in the different data sets that are interrelated. The size of the relationships data 424 relative to the size and content of the inventory data 418 or to the contract and agreement data 422 is dependent on the ability of the software to identify those relationships, as well as on the existence, in the first instance, of such relationships. For example, at some installations much of the inventory data may describe home-grown software products which are not covered by contract and agreement data. The usefulness of the present invention becomes more pronounced as the overlap region 424 increases in size and is quite significant when the linked data records in the region 424 constitute at least 25% of the number of records in database 418. With further reference to the drawings, each set of data can be considered a repository of such data that is, presumably, created, modified and updated by processes external to the present invention. These repositories, while conceptually distinct, may be stored in separate databases or a single database. The contract/agreement repository (CDB) 422 is a database of contractual information organized according to a unique agreement identification code (ID) , and further according to the type of data it contains, e.g., the asset, asset group, invoice, purchase order and contract. Asset is defined to include but not be limited to hardware, software products, maintenance and service agreements. An asset group is a user-selected set of assets. Each record or group of records contained in the CDB provides details of an agreement (lease, contract, license, etc.). Typically, such records include the following information: • Time and date of transaction • Vendor • Name, address, phone number, email address, etc. of vendor • General description of the asset (computer, DASD, software, maintenance, etc.) • Manufacturer, model, year, options, etc. • Warranties or support purchased • Contract terms and conditions (purchase, lease, rental, etc.) • Contact information (support personnel, phone numbers, email addresses, etc.) These fields may also include more detailed information such as: licensing fees; number of persons authorized, MIPS authorized, number of invocations authorized, annual maintenance fees, rental fees and product/sub-product identifications. The primary purpose of the CBD is to maintain a complete database of contract information. If a data element is not already supported by the CDB, the present invention will, optionally, create and maintain the data for that element. For example, if one vendor's CDB does not support asset groups, the present invention will provide the user with the capability of defining and maintaining asset groups. In addition to electronic storage of the contract information, the present invention also provides the user with one or more ways to further store and/or reference an agreement : 1. An image of the original document is stored and/or referenced (i.e., file location, hyperlink, etc.) . The image may have originated from a facsimile, optical scanner, digital photo, or image file generated by the user and/or vendor. Storage formats may be bitmap, JPEG, TIFF', or other known storage format . 2. Optical character recognition (OCR) techniques may be applied to a scanned document and the resulting data stored. 3. Electronic copy of the document. For example, a word processing file, spreadsheet, XML file, etc. 4. A description of the physical location of the original hardcopy document . Figure 27 is a software screen 426 providing an example of asset information viewed by contract. Reconciliation and Association After the two types of information have been acquired, the next crucial step is to associate the two. (For example, internally, an association consists of a pointer in a record in one table pointing to a record in another table.) Product identification based on configuration is often presented in different terms than the identification based on agreements. For example, product or vendor names may not be identical; what is considered a single product from one point of view may be considered to consist of two or more products from the other; there may be other discrepancies and mismatches; etc. Furthermore, even after all such inconsistencies, discrepancies, and mismatches have been resolved, there may be products for which there is license agreement information but no configuration information (e.g., the product has not yet been installed; it has been removed; or the licensing information is in error) . Similarly, there may be configuration information but no license agreement information (e.g., the user doesn't have an agreement for the product; the product doesn't require an agreement; or the information is missing) . Such products and agreements need to be identified, the reasons for such discrepancies need to be resolved, and the appropriate records must be created or deleted. The present invention includes facilities by which all these tasks can be accomplished in a straightforward, substantially automated manner. By substantial automation is meant a process which reduces the time to produce data correlation/reconciliation to below about one fifth and preferably one tenth the time that the task would consume if it were carried out manually. The following list is meant to be illustrative and not exhaustive. Some of these facilities can be considered optional. A facility for concurrently presenting two or more lists of items (e.g., products, vendors, processors, users, etc.) sorted by product name, product identification number, vendor name, vendor identification, or other identifying feature in a display. Optionally, a facility by which the tool automatically establishes an association between items in one list (e.g., products, vendors, processors, users, etc.) with items in another list of such items whenever product name or product identification number match. These would be subject to user confirmation either globally or item-by-item. Optionally, a facility by which the tool determines possible associations or associations that are most probable. This would be based upon the heuristics of evaluating the similarity of item name, identification number, or other such criteria between items in one list and items in another list. [Techniques that could be applied include: Soundex coding, pattern matching, dictionary lookup, and/or Fuzzy Logic] The results would be displayed for user selection, confirmation, or rejection. For each item to be associated, the facility provides as many candidates as are appropriate, ranked alphabetically or in likelihood of match. All such candidate associations can be displayed in a distinctive color; the user could tab or scroll directly from one such candidate association to the next and confirm or reject each one in turn, or could highlight and accept or reject several such candidate associations at once. 5 A facility by which the user specifies an association between one or more items in one list with an item in another list. The user might use a pointing device such as a computer mouse to highlight one or more items on the one list of products and one item on 10 the other list of products. Optionally, the tool would present an opportunity for the user to confirm the association before it was processed. A facility for making changes to the associations already established. There are several ways in which 15 these associations can be implemented. One method is for each record in a table to be linked with a corresponding record in another table. Into that field, for each record, is written the index (pointer) of the corresponding record (that is, the 20 record to be linked to) in the other table. This can be done reciprocally, so that each table has a field that points to records in the other table, as illustrated below: LICENSE AGREEMENT TABLE Record Product Vendor Effective Location Number Name Name Date Record Number 0000001 OS/390 IBM 05/04/89 0000079 0000002 CICS IBM 05/04/89 0000063 0000003 Iceberg StorageTek 12/01/95 0000042 9200 0000100 ES/9000 IBM 07/15/97 0000987 ...(etc. ) HARDWARE/SOFTWARE CONFIGURATION TABLE Record License Agreement Number Product Name Vendor Name Record Number 0000042 Iceberg 9200 StorageTek 0000003 . ια Cust . Info. International 0000063 Control Sys . Business Machines 0000002 Corporation International 0000079 OS/390 _ Business Machines 0000001 Corporation ...t-εtc. ) NOTE: These tables are illustrative. In actual implementation, these tables contain many other fields For example, in a preferred implementation, there would be a separate vendor table; in a products table, a 20 record would contain only an index pointer into the vendor table. In one implementation using this approach, a user looking at a license agreement or list of license agreements may also want to look at the configuration 25 information pertaining to a given product. The tool would only have to read the corresponding record number from the license agreement table to have an index pointer into the configuration table. The inventory repository of an organization's assets (ADB) 418 may contain information which duplicates or closely resembles that contained within the CDB 422. In addition to matching assets in the ADB with those in the CDB, the present invention reconciles such differences. Although the CDB and the ADB are conceptually distinct, they can be stored in separate databases or a single database, and any additional tables or lists that are created by the present invention can be part of that same database, one of the two separate databases, or a third separate database. In a preferred embodiment, the present invention provides a facility, the List Associator (LA) , for automatically establishing an association between items in the CDB, i.e., agreements, with items in the ADB (i.e., software products, vendors, processors, etc.) whenever product name, product identification number or other identifying feature match. In another preferred method, a separate table is created consisting of links associating records in a license information table (e.g., the ADB) with corresponding records in a configuration information table (e.g., the CDB). Each record of the table consists of two indices, one into one table and one into the other. An advantage of this method over importing the two types of information into a combined list is that as data contained within the individual repositories is dynamically updated, e.g., usage data or the movement of an asset to another physical location, the associations remain always linking the most current data together. Figure 25 demonstrates how this association table is applied. One can see that this method provides the additional advantages that it can be created and maintained without the need to alter either the Hardware/Software Configuration table or the License Agreement table and permits many-to-many associations. For example, an agreement for the software product CA-ABEND Aid from Computer Associates Int'l exists in the CDB as record number 0000003, and the product is shown in record number 0000042 of the ADB to be installed on the Development System #2 of Acme Atlanta's Data Processing Center. The LA establishes an association (e.g., 00000030000042) between the two records, thus, if the product is moved to Development System #1, record 0000042 of the ADB is updated. However, since both CDB record 0000003 and association 00000030000042 remain unchanged the user is always presented with the most current information. In a preferred embodiment, the present invention provides a facility, the List Associator (LA) , for automatically establishing an association between items in the CDB, i.e., agreements, with items in the ADB (i.e., software products, vendors, processors, etc.) whenever product name, product identification number or other identifying feature match. The LA creates associations that are many-to-many . Typically, an agreement may include several assets and, an asset may involve multiple agreements (e.g., one for purchase and a second for maintenance) . An advantage of this method over importing the two types of information into a combined list is that data fields are not needlessly duplicated. Optionally, the LA determines possible associations or associations that are most probable. This is based upon the heuristics of evaluating the similarity of item name, identification number, or other such criteria between items in one list and items in another list. Several techniques that can be applied separately or together include: Soundex coding, pattern matching, dictionary (or Knowledge Base) lookup, and/or Fuzzy Logic. The results may be displayed for user selection, confirmation, or rejection. For each item to be associated, the LA provides as many candidates as are appropriate, ranked alphabetically or in likelihood of match. All such candidate associations can be displayed in a distinctive color; the user could tab or scroll directly from one such candidate association to the next and confirm or reject each one in turn, or could highlight and accept or reject several such candidate associations at. once. Optionally, the user can provide a set of rules by which the LA can establish an association between records in separate lists. For example, a rule can be established to treat XYZ Corporation and XYZ International (a wholly-owned subsidiary) as one and the same . Optionally, the LA provides a facility by which the user specifies an association between one or more items in one list with an item in another list. The user might use a pointing device such as a computer mouse to highlight one or more items on the one list of products and one item on the other list of products. Optionally, the LA would present an opportunity for the user to confirm the association before it was processed. Dynamic Detection of Change: Over the course of time, and for a variety of reasons, associations made by the LA may refer to records that have been deleted and, perhaps, reused for other agreements or assets. Associations for new agreements or assets also need to be made . The user may execute the LA to update these associations and/or this may be scheduled to occur on a periodic basis. However, as a typical installation may have hundreds if not thousands of assets and agreements, this may prove time-consuming and an inconvenience . Each of the programs that control the ADB and CDB can be modified to notify the LA to update its associations when records are added, deleted, copied or substantially changed (e.g., an asset is disposed of) . A disadvantage of this method is that the vendors of these programs may not provide such support . As an independent notion from the techniques described above, a Dynamic Detection process could directly detect the act of adding, deleting, copying or substantially modifying one or more records in either or both of the ADB and CDB. The Dynamic Detector (DD) is a continuously running process that establishes certain intercepts or hooks into certain operating system or database functions so that when any records in these databases are added, deleted or modified, in any of the several ways in which this could occur, the DD receives control, and is able to analyze the operation. When the DD determines that a record has been added or modified, it may notify the LA to update or create new associations for those records. II a record has been deleted the LA may decide to perform a more extensive analysis. Remote Access The present invention provides various types of remote access capabilities and for a variety of purposes . A user may provide read-only access to a third party that will use agreement and usage information to negotiate contractual terms with a vendor on behalf of the user. A user may import information from other sites within the enterprise to view financial and usage data for the purpose of identifying and eliminating unfavorable scenarios (e.g., high-cost contracts with little or no usage) , evaluating purchasing and maintenance strategies as well as identifying various cost centers. Similarly, a user may outsource various processing tasks on a sporadic or routine basis and desire to be able to import this usage information. A user may export information to a service organization that gathers such information from numerous organizations in order to determine industrywide cost and usage statistics. The user may then evaluate the resulting data in order to determine pricing, purchasing and maintenance strategies. A user may employ a service bureau to operate the present invention. In either case, techniques for accessing the appropriate record or records in the one table from a record in the other table are known to those skilled in the art of writing software that accesses data in a database . Once these associations are recorded in the database (and the appropriate software is available to make use of these associations, as discussed below) , it becomes readily possible for the user to access information automatically and conveniently, as described in more detail in the next section. Processing, Display, and Output After the two or more types of information have been reconciled and associated, the tool provides a number of facilities to process and display the information: A facility for displaying those agreements for which no configuration information has been associated, as well as a facility for creating a corresponding record in the list of hardware and software products, suitably flagged. (Such a facility displays, among other things, a list of only such hardware and software products; allows the user to scroll or tab through the complete list to the next such product; provides an ability to print a list of such hardware and software products; provides the ability to output a flat file with one record for each such product . ) A facility for displaying those hardware and software products for which no agreement information has been associated, as well as a facility for creating a corresponding record in the list of hardware and software products, suitably flagged, for the agreement portion of the tool. (Such a facility serves to, among other things, display a list of only such hardware and software products; allow the user to scroll or tab through the complete list to the next such product; provide an ability to print a list of such hardware and software products; provide the ability to output a flat file with one record for each such product.) A facility for displaying only those hardware and software products for which both configuration and agreement information is present. (Such a facility serves to, among other things, display a list of only such hardware and software products; allow the user to scroll or tab through the complete list to the next such product; provide an ability to print a list of such hardware and software products; provide the ability to output a flat file with one record for each such product . ) When an item or list of items providing configuration information (optionally, over a user- specified period of time) about a product is on display, the user can conveniently invoke a display of the corresponding (associated) agreement information record or records. (This can be invoked via a function key, a special keystroke combination, or a mouse operation. ) When an item or list of items providing agreement information about a product or group of hardware and software products is on display, the user can conveniently invoke a display of the corresponding (associated) configuration information (optionally, over a user-specified period of time) record or records. (This can be invoked via a function key, a special keystroke combination, or a mouse operation.) Where agreement information is pertinent to configuration information, the tool will optionally calculate and display such information, optionally displaying such items distinctively. For example, if a license agreement specifies that a product can only be installed on a particular computer, the tool can, for each unit or point of time in a user-specified period of time, highlight in one way (for example, in blue) configuration information indicating the product is (actually or hypothetically) installed on the authorized computer, and can highlight in another way (for example, in red) configuration information indicating the product is (actually or hypothetically) installed on an unauthorized computer. As another example, if a particular agreement licenses a particular product to be installed on computers totaling no more than a certain number of MIPS, the program can, for each unit or point of time in a user- specified period of time, total the MIPS of the processors on which that product has been found (according to the configuration information) ; if the total is under the licensed capacity, the license can be displayed in one way (for example, in blue) , and if the authorized capacity is exceeded, in another way (for example, in red) . Where agreement information is pertinent to configuration information, the tool allows the user to generate a hypothetical configuration by changing that information and calculates and displays the results of changing such information, optionally displaying such records distinctively. For example, if a license agreement specifies a maintenance rate of 15%, the user generates a hypothetical configuration in which the maintenance rate is 12% from a user-specified point in time and displays the results over a user-specified period of time. Optionally, for each unit or point of time in a user-specified period of time, the tool can distinctively display actual and/or hypothetical configuration information according to whether or not user-specified agreement-related criteria are met, such as hardware and software products on selected processors, at specified locations, within specified organizational subdivisions, from specified vendors, etc. For example, the user can request that the configuration information (optionally, over a user- specified period of time) pertaining to all programs whose maintenance terms are within one month of expiration (according to the corresponding agreement information) be distinctively displayed (for example, in red) , or the display can be filtered to include or exclude all such information. Optionally, for each product (or set of hardware and software products) in an actual or hypothetical configuration (optionally, meeting user-specified criteria, such as hardware and software products on selected processors, at specified locations, within specified organizational subdivisions, from specified vendors, etc.), the tool displays the relevant agreement or agreements. Optionally, for each product (or a user-selected set of hardware and software products) in an actual or hypothetical configuration (optionally, meeting user- specified criteria, such as hardware and software products on selected processors, at specified locations, within specified organizational subdivisions, from specified vendors, etc.), the tool displays the vendors and/or distributors associated with the agreement or agreements, as well as pertinent information about the vendors and/or distributors, such as their Internet Web site addresses (optionally, with the facility to open a browser Window displaying information from the appropriate Web site) . Optionally, for each product (or a user-selected set of hardware and software products) in an actual or hypothetical configuration (optionally, meeting user- specified criteria, such as hardware and software products on selected processors, at specified locations, within specified organizational subdivisions, from specified vendors, etc.), the tool displays important dates associated with the agreement or agreements (such as cancellation and renewal dates) . Optionally, for each product (or a user-selected set of hardware and software products) in an actual or hypothetical configuration (optionally, meeting user- specified criteria, such as hardware and software products on selected processors, at specified locations, within specified organizational subdivisions, from specified vendors, etc.), the tool displays contact information (such as name, address, telephone numbers, email addresses) pertaining to the agreement or agreements. Optionally, for each product (or a user-selected set of hardware and software products) in an actual or hypothetical configuration (optionally, meeting user- specified criteria, such as hardware and software products on selected processors, at specified locations, within specified organizational subdivisions, from specified vendors, etc.), the tool displays invoice and/or payment forecast, budget, and/or history information for each unit or point of time in a user-specified period of time. Optionally, for all hardware and software products in an actual or hypothetical configuration (optionally, meeting user-specified criteria, such as hardware and software products on selected processors, at specified locations, within specified organizational subdivisions, from specified vendors, etc.), the tool displays hardware and software products that have an agreement associated with them. Optionally, the tool can display, for all hardware and software products (or a user-selected set of hardware and software products) in an actual or hypothetical configuration (optionally, meeting user- specified criteria, such as hardware and software products on selected processors, at specified locations, within specified organizational subdivisions, from specified vendors, etc.), the hardware and software products that have no agreement associated with them. Optionally, for all agreements (optionally, meeting user-specified criteria, such as from a specified vendor, for specified hardware and software products, on selected processors, at specified locations, within specified organizational subdivisions, from specified vendors, etc.), the tool displays all hardware and software products that are not in an actual or hypothetical configuration, for each unit or point of time in a user-specified period of time. Optionally, for each agreement that specifies a maximum number of MIPS, (optionally, meeting user- specified criteria, such as from a specified vendor, for specified hardware and software products, on selected processors, at specified locations, within specified organizational subdivisions, fron specified vendors, etc.), the tool displays the processors on which the hardware or software asset is installed in an actual or hypothetical configuration, and whether any such use is not authorized by the agreement, for each unit or point of time in a user-specified period of time . Optionally, for each agreement that specifies a particular number of processors (optionally, meeting user-specified criteria, such as from a specified vendor, for specified hardware and software products, at specified locations, within specified organizational subdivisions, from specified vendors, etc.), the tool displays the number of processors on which the hardware or software asset is installed in an actual or hypothetical configuration, and whether that number is higher or lower than the agreement authorizes, for each unit or point of time in a user-specified period of time . Optionally, for each agreement that authorizes particular (or multiple) versions and/or releases of the product (optionally, meeting user-specified criteria, such as for specified hardware and software products, on selected processors, at specified locations, within specified organizational subdivisions, from specified vendors, etc.), the tool displays the versions and/or releases installed,, indicating any of these are not authorized by the agreement, for each unit or point of time in a user- specified period of time. Optionally, the tool displays charts and graphs of any or all of the user-selected and user-specified information selected for display, with records meeting specified criteria highlighted distinctively, for each unit or point of time in a user-specified period of time . Optionally, the tool produces print reports of user-selected and user-specified information, with records meeting specified criteria highlighted distinctively, for each unit or point of time in a user-specified period of time. Optionally, the tool exports records for use by other programs and hardware and software products of user-selected and user-specified information, for each unit or point of time in a user-specified period of time . In the foregoing description, there has been described a method and apparatus for correlating over time license agreement information with actual and hypothetical hardware and software configurations. The programs which have been described above produce a large quantity of data which is arranged in various lists, files, tables, data sets, etc. and in various manners. In the description above, some tools have been described for allowing an end user to view the underlying information/results. Isogon Corporation, the assignee of the present application, has developed its owns tool or family of tools which facilitate the task of viewing information by an end user regardless of the source of the underlined information. One such tool is Isogon' s Galaxy suite of programs which interface with a range of Isogon Corporation products and allow those products to be run through a user interface which is defined by the Galaxy program. The Galaxy product includes a so called "VIEW MANAGEMENT" component which provides an end user a great deal of flexibility in viewing information, organizing information and maintaining information. With a product such as the aforementioned Isogon Galaxy suite of programs, and numerous similar programs that are available in the marketplace, the present invention incorporates the feature of allowing the results/data obtained with the present invention to be exported to spreadsheets, databases, files and the like. Data items can be displayed distinctly as by use of color and the like and calculations can be displayed in spreadsheet fashion, tabular format, graphics etc. It should also be understood that the present invention allows comparing configuration data with license information through the use of multiple hypothetical configurations and these comparisons can be made concurrently to evaluate total cost of ownership and the like. The term "ownership" in the phrase total cost ownership, is not limited to pure ownership, but includes such ownership rights as those obtained by lease, rent, license, purchase for limited periods of time and the like. The term "cost" in the phrase total cost ownership, is not limited solely to expenses, but also includes any revenue due to income or revenue producing activities. The results in the form of the calculations provided by the present invention can be displayed and viewed over a period of time that may be sub-divided and for which sub-totals as by month, year and the like, can be obtained. In the preceding description the term "location" was used to describe physical locations. However, "location" in accordance with the concept of the present invention also encompasses "organizations" . That is, location also means and defines an arbitrary hierarchy of user-defined business entities such as enterprise, company, division, department, cost center, etc . Although the present invention has been described in relation to particular embodiments thereof, many other variations and modifications and other uses will become apparent to those skilled in the art. It is preferred, therefore, that the present invention be limited not by the specific disclosure herein, but only by the appended claims.

Claims: WHAT IS CLAIMED IS: 1. A method for correlating license agreement information with physical computer configurations, the method comprising the steps of: modeling elements of a data center configuration on a computer by identifying to the computer the elements of a given configuration; providing in the computer a knowledge base containing license information for a plurality of the elements of the given configuration; identifying to the computer the location of various elements relative to the given configuration; correlating the license agreement information stored in the knowledge base with the elements of the configuration including the location of the elements; and outputting correlated information in a manner which associates agreement information with corresponding ones of the elements located in the given configuration, whereby a user is enabled to automatically obtain license agreement information pertaining to selected elements. 2. The method of claim 1, in which the elements of the given configuration include hardware elements and software elements, the software elements constituting software products, the knowledge base containing software licensing information for a plurality of the software products and the output step including outputting correlated information in a manner which associates software agreement information with corresponding ones of the software products. 3. The method of claim 2 , including providing in the knowledge base, financial information which reflects financial ownership costs of a plurality of the hardware or software elements of the given configuration; and including correlating the license agreement information with the hardware or software elements of the given configuration. 4. The method of claim 2, including performing the method substantially automatically in a manner whereby effecting changes to the given configuration maintains the correlation with the software license agreement information. 5. The method of claim 3, including carrying out the method by calculating the financial ownership costs over a predetermined time period and time intervals contained therein. 6. The method of claim 2, further including identifying, in the software license agreement information, data which determines what software products are subject to upgrade fees, and/or data which determines for selected license agreements, corresponding hardware or software elements in the given configuration, and/or data which determines the financial ownership costs of corresponding software products over a user-specified period of time, and/or data which determines whether the given configuration is or is not out of compliance with terms and conditions of corresponding license agreements, at any time, and/or data which determines whether software license rights under a specified agreement are underutilized by the given configuration, and/or data which determines the identity of locations of the elements which are governed by the license agreement information. 7. The method of claim 2, further including at least partially, manually entering the elements of various configurations and the license agreement information. 8. The method of claim 2, including displaying software license agreements for which no configuration information has been associated, and/or hardware or software products for which no agreement information has been associated, and/or only those hardware and software elements for which both configuration and agreement information has been entered in the knowledge base. 9. The method of claim 2, including permitting a user to alter license agreement information to compare possible costs of software relative to the given configuration and vice versa. 10. The method of claim 2, including enabling a user to select records from the given configuration which meet specified conditions including one or more of: a user-specified period of time and the name of a software vendor. 11. The method of claim 2, in which the given configuration includes information defining at least one data center location, at least one system within the location, at least one device group within the system, and at least one device within the device group . 12. The method of claim 2, further including altering at least one of a plurality of elements of configuration and substantially automatically recorrelating the altered configuration with information stored in the knowledge base and generating a revised output reflecting the changes to the configuration . 13. The method of claim 2, including the step of providing in the knowledge base pre-defined lists of hardware and/or software elements and enabling a user to select hardware and/or software elements for inclusion in the modeling of said data center configuration . 14. The method of claim 5, including calculating the present value of the financial ownership costs modeled over the predetermined time period, and/or ownership costs of the software products based on CPU power rating on which the software products are intended to be used. 15. The method of claim 3, wherein said financial ownership costs includes space costs used by hardware components of said at least one computer data center. 16. The method of claim 11, including enabling calculating the replacement of at least one device within the device group with one or more other devices to show financial and technical ramifications of such replacement without losing original information stored for a given configuration prior to the replacement step. 17. The method of claim 2, in which data records pertaining to the elements of the given configuration, on the one hand, and data records pertaining to the license information, on the other hand, are stored in separate databases and further including linking data produced by the correlating step, the linking data being stored in a respective, separate database. 18. The method of claim 17, in which the linking data contains one-to-many and many-to-many data links; is created by one or more of: Soundex Coding, pattern matching, dictionary look-up and Fuzzy Logic, and/or is enabled to be updated on a periodic basis. 19. A system for correlating license agreement information with physical computer configurations, the system comprising: modeling software which models a data center configuration on a computer by identifying to the computer the elements of a given configuration; a knowledge base containing license information for a plurality of the elements of the given configuration; identifying software which identifies to the computer the location of various elements relative to the given configuration; correlating software which correlates the license agreement information stored in the knowledge base with elements of the configuration; and outputting software which outputs correlated information in a manner which associates agreement information with corresponding elements located in the given configuration, whereby a user is enabled to obtain substantially automatically license agreement information pertaining to selected elements of the configuration . 20. The system of claim 19, in which the elements of the configuration include hardware elements and software elements wherein the software elements constitute software products and the knowledge base contains software license information for the software products . 21. The system of claim 20, in which the knowledge base includes financial information which reflects financial ownership costs of a plurality of the hardware elements of the given configuration; and the correlating software correlates the license agreement information with the hardware elements of the given configuration. 22. The system of claim 20, in which the system software operates substantially automatically in a manner whereby effecting changes to the given configuration maintains the correlation with the software license information. 23. The system of claim 20, in which the correlating software calculates the financial ownership costs over a pre-determined time period and time intervals contained therein. 24. The system of claim 20, including software that enables identifying, in the license agreement information, data which determines for selected license agreements, corresponding hardware or software elements in the given configuration. 25. The system of claim 20, including software which enables identifying, in the license agreement information, data which determines the financial ownership costs of corresponding software products over a user-specified period of time, and/or data which determines whether the given configuration is or is not out of compliance with terms and conditions of corresponding license agreements, at any time period, and/or data which determines the identity of locations of configuration assets which are governed by the license agreement information. 26. The system of claim 20, including providing in the knowledge base pre-defined lists of software products and including software that enables a user to select software products for inclusion in the modeling of said data center configuration. 27. The system of claim 20, in which data records pertaining to the software products is stored in a first database and data records pertaining to the license agreement information is stored in a second database and the correlating software produces linking data, the linking data containing one-to-many and many- to-many data links; and being crated by one or more of: Soundex Coding, pattern matching, dictionary look-up and Fuzzy Logic. 28. The system of claim 27, including software which automatically and dynamically updates the linking data upon changes being made to the data records. 29. The system of claim 20, wherein the software agreement data is maintained on a separate computer located remotely relative to a computer in which the software products are installed.

Inventors: BARRITZ ROBERT, HELLBERG PER, KASSAN PETER, BARRITZ, ROBERT, HELLBERG, PER, KASSAN, PETER
Applicants: ISOGON CORP, ISOGON CORPORATION
Application year: 2000
Main classification: G06F1
IPC codes: G06F1, G06F21, G06Q99