WO2001053948A2 - Continuous inventorying monitor - Google Patents
Continuous inventorying monitor Download PDFInfo
- Publication number
- WO2001053948A2 WO2001053948A2 PCT/US2001/001745 US0101745W WO0153948A2 WO 2001053948 A2 WO2001053948 A2 WO 2001053948A2 US 0101745 W US0101745 W US 0101745W WO 0153948 A2 WO0153948 A2 WO 0153948A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- module
- modules
- software
- library
- inventory
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
Definitions
- the present invention relates to a method and apparatus for inventorying and surveying the computer software products installed on a computer and, more particularly, the invention relates to a continuous inventorying, surveying and monitoring system and method for inventorying, surveying, and, optionally, monitoring the frequency of use of a variety of computer programs and software products.
- Licensed software products such as those from IBM, Computer Associates or Microsoft, are typically composed of a number of discrete executable components: exe-files, batch files, etc., herein collectively referred to as modules.
- a typical mainframe computer might have 500 products, composed of 500,000 modules on 3,000 libraries, often with many of the products duplicated on a number of libraries. Even a personal computer may contain several thousand exe-files, located in dozens or hundreds of folders. Isogon is the assignee of the present invention.
- Prior Isogon patents have described techniques for performing software auditing, including the steps of Surveying (scanning hard-drives or disk storage for modules) , Identification (deciding, for each module on each library, what software product it belongs to) and Monitoring (intercepting and recording module executions) .
- Surveying scanning hard-drives or disk storage for modules
- Identification deciding, for each module on each library, what software product it belongs to
- Monitoring intercepting and recording module executions
- IDENTIFIER functions are batch processes that are performed periodically, while the Monitoring activity (MONITOR) is typically continuous.
- the SURVEYOR builds a Survey DataBase (SDB) containing a record of every module that it finds on any of the computer's hard drives, indicating the library on which each one was found (recognizing that libraries with the same name but stored on different disk devices are in fact different libraries) , and optionally including other identifying information (i.e., a "fingerprint" about the module as well.
- SDB Survey DataBase
- Such "fingerprint” information typically includes the size of the module, the name and size of constituent sets or parts of the module, the dates that the constituent parts were compiled, the date that the constituent parts were linkedited or bound together to create the module, certain textual data contained within the module, etc.
- Identification is subsequently performed by correlating the data in the SDB with data in a Knowledge Base (KB) that relates module names to product names, by applying certain matching rules and heuristics. Data produced by the MONITOR is not used by either the SURVEYOR or IDENTIFIER.
- a continuous surveyor of the present invention contains a database of software modules on the computer system which is continuously updated by detecting additions, deletions or modifications to software on an ongoing basis.
- the surveying function of the present invention is carried out directly by surveying a library where the names of software modules are stored, or by monitoring the execution of modules and noting when a module is being executed which has not previously been in the system and/or by dynamic detection of software programs which carry out the tasks of installing, uninstalling, or modifying the locations where software modules are located.
- Figure 1 is a main flow chart of the surveying process of the present invention.
- Figure 2 is a flow chart of surveying by monitoring the execution of software modules.
- Figure 3 illustrates a search tree approach to finding module names in very large libraries/databases .
- Figure 4 is modeled after Figure 3 and shows an aspect of a software module search tree.
- the present invention is concerned with providing a continuously updated inventory (or list) of software modules comprising the software products in a computer in a substantially automated manner.
- the term computer denotes broadly, a single or a plurality of computers operating as a system or as a data center or the like.
- a computer can be a mainframe computer or it may be a network of PCs and it may use any of the available operating systems.
- the invention refers to the inventorying of software modules --sometimes using the term "surveying"-- it connotes and conveys the taking of the inventory of the software modules which means that the objective is to create a fairly accurate list of the software modules on the computer.
- continuous surveying needs to be distinguished from the term periodic surveying.
- the inventors herein are aware of scheduled surveying of load modules on large computer systems which typically are carried out at frequencies of typically a year or half a year or perhaps every three months or monthly. Given the great expense and computer overhead involved in taking a complete inventory of software modules on a large computer system, it is burdensome to perform such inventorying or surveying more frequently than every month or so. Therefore, the term continuous surveying as used herein means at least one or more of the following. It includes a system where the process of surveying is ongoing, meaning that as soon as a survey has been completed the next one is immediately initiated on an ongoing basis.
- the inventorying process is also continuous when it is performed periodically, the period being selected to be somewhat longer than the maximum time for conducting a survey. For example, if a survey requires about two hours to complete, the continuous survey may be initiated every three hours.
- the definition of "continuous" surveying includes surveys that are carried out at least twice as frequently as any prior art scheduled surveys.
- Another example of "continuous" surveying is inventorying of software that is initiated or triggered automatically in response to the detection of the execution of software modules not listed in an existing module inventory. Described below are several techniques for maintaining updated inventory lists, including the ones referred to below as continuous surveying, surveying during monitoring, and dynamic detection of module installation or change.
- CS Continuous SURVEYOR
- the CS is a continuous activity that creates and maintains the SDB ( Figure 1), ensuring that the SDB is kept current.
- the CS minimizes or eliminates unnecessary module analysis activity by attempting to only survey those modules that are new or have changed since the last time they were subject to module analysis.
- the CS creates and uses Module Indicators (MI) and Library Indicators (LI) :
- An MI is associated with a particular module in a particular library of the computer system being surveyed, and incorporates, or is derived from, certain information about the module, all of which is available in the library' s directory, though the precise nature and extent of this information will 5 differ from operating system to operating system.
- the "directory" of a library is an index or card-catalog to the modules contained in the library. The directory can be efficiently read, in its entirety, to
- the module 20 change if the module is replaced with a different version by the same name. For example, if a new version of the software product to which the module belongs were to be installed on the same library, the
- the MI is created by treating the module directory data in any of the following ways: as a single numerical value; mathematically transformed into a numerical value such as a computed checksum, 5 hash total, CRC total or the application of other such mathematical calculations wherein the probability of detecting any change of one or more module characteristics is at least 90%; or arranged as a pre-determined
- the essential characteristic of the MI is that it is highly probabilistic that it will have a different value if one or more of the constituent module characteristics changes
- An LI is derived from the set of Mis pertaining to all the modules residing on the library.
- the LI consists of a hash total of all the Mis
- an LI is derived from the set of Mis as a calculation such as a computed checksum, hash total, CRC total or
- LIs and Mis are retained in a database, and are associated with the respective libraries and modules in the SDB to which they pertain. Historical data regarding the LIs and Mis consisting of at least one prior value is also retained either in the database or as a separate file or database representing a prior inventory. The preferred technique for accomplishing this is to store the LI and MI data directly in the SDB, as part of the record associated with each library or module.
- CS processing as shown in Fig. 1, is as follows:
- Steps 14, 16 Compare the current-LI to the LI in the SDB that corresponds to the current library, derived at the time a module-analysis of one or more modules on this library was last performed. If the current-LI is identical to the LI in the SDB, then no modules on the library have been added, deleted or modified since they were last surveyed, in which case, processing continues at step 6. (Steps 14, 16) .
- steps 18-38 compare in turn, each current-MI for each module on the current library with the prior version of the MI for that module as stored in the SDB. If no prior version of the MI exists (indicating that the module has been added since the last survey) , or if the two Mis differ (indicating that the module has been replaced or updated) , perform a module-analysis of the module and store the module-analysis information in the SDB together with the module's current-MI and the date of the survey activity.
- this interval might be calibrated to complete an entire cycle of the libraries in some specified approximate time, such as an hour .
- the MONITOR process is enhanced to recognize when a "new" module is being executed, that is, a module recently installed on the system, and therefore not currently recorded in the SDB, and perform the required module-analysis of that module immediately.
- module-analysis is performed on every module on the same library as the "new" module, on the theory that new modules are associated with the installation of new software, which likely contains other modules as well. The process is as follows :
- the MONITOR accesses the current SDB to determine if a module with the same name as the executed module is recorded, and on the same library as the executed module. If so, the module was previously surveyed, and MONITOR processing continues as normal. If the executed module is not found in the SDB, processing continues with step 2.
- the MONITOR initiates an immediate module- analysis of the module.
- the information about the module gathered by the module-analysis process is either a) used to update the SDB directly, or b) included, as a distinct record-type, in the execution and usage data that the MONITOR emits. This latter approach would be preferred if the SDB to which the
- MONITOR has access is a read-only version of the SDB, or if it is an in-storage representation on the SDB, and therefore can't be updated directly.
- the MONITOR can initiate or notify another process (e.g., the CS or SURVEYOR) to perform the module-analysis of the executed module or of the entire library.
- another process e.g., the CS or SURVEYOR
- the MONITOR when the MONITOR detects a newly-installed module it optionally surveys the entire library containing that module, on the theory that other related modules may have been installed as well.
- the MONITOR creates an MI of the executing module. If the MI does not match the MI for that module on file in the SDB, then the module has been updated, replaced, or otherwise changed from the one previously surveyed. If so, the process proceeds as in step 2 above .
- the MONITOR creates an MI of the executing module. If the MI matches the MI for a module on file in the SDB having the same name but located on a different library, then the module is most likely a copy of the one detected by the CS . If so, the process proceeds to survey the module and its library as in step 2 above.
- the SDB which would typically exist as a database on external disk storage, is represented as a memory resident table, which will improve the MONITOR'S speed and efficiency by eliminating the need to perform time consuming I/O when looking up each module that's executed.
- IEFGTR13 IEFGTR14
- IEFGTRMS IEFGTRMS
- An efficient means of implementing this table is to use a form of binary search tree, and a ternary search tree, in particular. Ternary search trees combine the time efficiency of digital search trees with the space efficiency of binary search trees.
- module names can be organized in such a tree structure.
- a list of library names is constructed with each element in the list referencing a ternary tree of module names, each of which is contained within that library ( Figure 3) .
- a primary advantage of this organization is that the MONITOR can reduce memory requirements by selectively loading those portions of the SDB pertaining to libraries which have been checked for names of executing modules. For example, little used or archival libraries can be excluded from consideration by the MONITOR.
- the SDB is organized in memory as a single ternary tree of all known module names on the system.
- the last element in each tree node contains (or references) a list of all libraries in which this module (and copies of this module) is located ( Figure 4) .
- a module name ending in "13" is only found in LIBC, however, the module name ending in "14"
- the SDB is organized in memory as a table indexed by the hash code of the module names found on the system.
- Dynamic Detection of Module Installation or Change As an independent notion from the techniques described above, a Dynamic Detection process directly detects the act of adding, deleting, copying or modifying one or more modules on the system, or the act of creating a new library, or moving, copying or renaming an existing library, and triggers the surveying process immediately, and only for the added, deleted, copied or changed modules or libraries.
- the Dynamic Detector is a continuously running process (which could optionally be combined with another such process, such as the CS or MONITOR) that establishes certain intercepts or hooks into certain operating system functions so that when any modules are added, deleted or modified within the system, in any of the several ways in which this could occur, the DD receives control, and is able to perform analysis and record information. For example, this may be accomplished in OS/390 by intercepting the BLDL function, which is invoked when a module is written into a load library. When a module is subsequently added, deleted or modified, the DD receives control and either performs a module-analysis itself, or invokes another process, such as the Surveyor, to do so, or signals a continuous process, such as the CS, to do so.
- a continuously running process which could optionally be combined with another such process, such as the CS or MONITOR
- the entire computer system can be surveyed without imposing any undo overhead
- Continuous surveying ensures that data will be kept up-to-date; Monitoring of executing modules can determine modules not previously encountered by surveying; Monitoring of executing modules can detect modules that have changed from that encountered in the last survey; Monitoring of executing modules can provide an indicator that other modules in the same library are likely to have changed; Monitoring of executing modules provides a convenient mechanism to signal that a survey should be conducted.
- Monitoring of program usage can be carried out more efficiently in that the inventory of load modules is more up to date and accurate.
- monitoring of usage was typically done over a period of from six weeks to three months during which time the inventory of the software may have changed considerably, creating various ambiguities and difficulties. This is avoided by the present invention.
- By carrying out inventorying/surveying of software modules virtually immediately after they are installed it is easier to identify the software products to which they are associated for at least two main reasons. The first is that there is still knowledge of the personnel who installed them so that they can immediately also indicate to the surveying program the software product name, resolving ambiguities quickly.
- the name of the software product is typically also loaded in a special library and that library can be consulted to immediately determine the corresponding software names which are associated with specific load module names.
Abstract
Description
Claims
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU2001234486A AU2001234486B2 (en) | 2000-01-18 | 2001-01-17 | Continuous surveyor monitor |
AU3448601A AU3448601A (en) | 2000-01-18 | 2001-01-17 | Continuous surveyor monitor |
EP01906594A EP1248983A2 (en) | 2000-01-18 | 2001-01-17 | Continuous inventorying monitor |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17671000P | 2000-01-18 | 2000-01-18 | |
US60/176,710 | 2000-01-18 | ||
US65135100A | 2000-08-29 | 2000-08-29 | |
US09/651,351 | 2000-08-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2001053948A2 true WO2001053948A2 (en) | 2001-07-26 |
WO2001053948A3 WO2001053948A3 (en) | 2002-02-21 |
Family
ID=26872513
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2001/001745 WO2001053948A2 (en) | 2000-01-18 | 2001-01-17 | Continuous inventorying monitor |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP1248983A2 (en) |
AU (2) | AU2001234486B2 (en) |
WO (1) | WO2001053948A2 (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2378546A (en) * | 2001-05-29 | 2003-02-12 | Hewlett Packard Co | Automatic configuration of performance management software |
EP1746501A1 (en) * | 2005-07-22 | 2007-01-24 | International Business Machines Corporation | Method and apparatus for populating a software catalogue with software knowledge gathering |
WO2007115940A1 (en) | 2006-04-11 | 2007-10-18 | International Business Machines Corporation | Weighted determination in configuration management systems |
WO2010027477A1 (en) * | 2008-09-02 | 2010-03-11 | Belarc, Inc. | System and method for software usage discovery |
US8161473B2 (en) | 2007-02-01 | 2012-04-17 | Microsoft Corporation | Dynamic software fingerprinting |
US9026996B2 (en) | 2007-01-26 | 2015-05-05 | International Business Machines Corporation | Providing assistance in making change decisions in a configurable managed environment |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5499340A (en) * | 1994-01-12 | 1996-03-12 | Isogon Corporation | Method and apparatus for computer program usage monitoring |
US5581764A (en) * | 1993-04-30 | 1996-12-03 | Novadigm, Inc. | Distributed computer network including hierarchical resource information structure and related method of distributing resources |
-
2001
- 2001-01-17 WO PCT/US2001/001745 patent/WO2001053948A2/en not_active Application Discontinuation
- 2001-01-17 AU AU2001234486A patent/AU2001234486B2/en not_active Ceased
- 2001-01-17 AU AU3448601A patent/AU3448601A/en active Pending
- 2001-01-17 EP EP01906594A patent/EP1248983A2/en not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5581764A (en) * | 1993-04-30 | 1996-12-03 | Novadigm, Inc. | Distributed computer network including hierarchical resource information structure and related method of distributing resources |
US5499340A (en) * | 1994-01-12 | 1996-03-12 | Isogon Corporation | Method and apparatus for computer program usage monitoring |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2378546A (en) * | 2001-05-29 | 2003-02-12 | Hewlett Packard Co | Automatic configuration of performance management software |
GB2378546B (en) * | 2001-05-29 | 2005-06-01 | Hewlett Packard Co | Automatic configuration of performance management tools |
EP1746501A1 (en) * | 2005-07-22 | 2007-01-24 | International Business Machines Corporation | Method and apparatus for populating a software catalogue with software knowledge gathering |
WO2007115940A1 (en) | 2006-04-11 | 2007-10-18 | International Business Machines Corporation | Weighted determination in configuration management systems |
CN101410801B (en) * | 2006-04-11 | 2012-11-28 | 国际商业机器公司 | Method and system for applying configuration items configuration data |
US8712973B2 (en) | 2006-04-11 | 2014-04-29 | International Business Machines Corporation | Weighted determination in configuration management systems |
US9026996B2 (en) | 2007-01-26 | 2015-05-05 | International Business Machines Corporation | Providing assistance in making change decisions in a configurable managed environment |
US8161473B2 (en) | 2007-02-01 | 2012-04-17 | Microsoft Corporation | Dynamic software fingerprinting |
WO2010027477A1 (en) * | 2008-09-02 | 2010-03-11 | Belarc, Inc. | System and method for software usage discovery |
US8473607B2 (en) | 2008-09-02 | 2013-06-25 | Belarc, Inc. | System and method for software usage discovery |
Also Published As
Publication number | Publication date |
---|---|
AU3448601A (en) | 2001-07-31 |
AU2001234486B2 (en) | 2005-11-24 |
EP1248983A2 (en) | 2002-10-16 |
WO2001053948A3 (en) | 2002-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7197431B2 (en) | Method and system for determining the use and non-use of software programs | |
US5278979A (en) | Version management system using pointers shared by a plurality of versions for indicating active lines of a version | |
US6920447B2 (en) | Concurrent data recall in a hierarchical storage environment using plural queues | |
US6996807B1 (en) | Consolidation and reduction of usage data | |
US6374267B1 (en) | Database backup system and method utilizing numerically identified files for incremental dumping | |
US7222133B1 (en) | Method for reducing database recovery time | |
US7707007B2 (en) | Autonomic client migration system for service engagements | |
US7647363B2 (en) | Revision control system for large-scale systems management | |
US5590056A (en) | Method and apparatus for computer program usage monitoring | |
US7194475B2 (en) | Method, system, and program for performing an impact analysis of program statements in at least one source code file | |
AU2001286605A1 (en) | Method and system for determining the use and non-use of software programs | |
US5375234A (en) | Data dictionary manager for maintaining an active data dictionary | |
US10768928B2 (en) | Software development work item management system | |
US20060026567A1 (en) | Distribution of data/metadata in a version control system | |
CN108776643A (en) | A kind of object code merging control method and system based on Version Control flow | |
AU2001234486B2 (en) | Continuous surveyor monitor | |
EP1901185A2 (en) | Search index generation apparatus | |
EP1215590B1 (en) | Method and system for scalable, high performance hierarchical storage management | |
US7958090B2 (en) | Method, system, and computer program product for implementing back up history cleanup operations for a database management system | |
CN114816470A (en) | Metadata database management method and device, electronic equipment and medium | |
JP2011081472A (en) | Document management system | |
US20230385055A1 (en) | Providing access to historical metadata for software repositories | |
JP2009123038A (en) | Project operation achievement management system | |
US20210240596A1 (en) | Source code file retrieval | |
AU2022202332A1 (en) | System and method for extracting and cataloging specified file activity data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A2 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A2 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
AK | Designated states |
Kind code of ref document: A3 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A3 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2001906594 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2001234486 Country of ref document: AU |
|
WWP | Wipo information: published in national office |
Ref document number: 2001906594 Country of ref document: EP |
|
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
NENP | Non-entry into the national phase in: |
Ref country code: JP |
|
WWG | Wipo information: grant in national office |
Ref document number: 2001234486 Country of ref document: AU |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 2001906594 Country of ref document: EP |