The present invention relates to a method of, and system for, monitoring usage of software on computers in a computer network.
Monitoring and upgrading software installed in computing devices in a network is known. In one system, the usage of installed software is measured and a determination is made whether or not to upgrade a software package based on the measure of usage.
In accordance with one aspect of the present invention, there is provided a networked computer system comprising:
In some embodiments the action comprises, for at least some installed software, replacement of the software by alternative software.
In some embodiments the mapping engine provides mapping rules which provide different actions for respective computers.
The attribute data allows software to be replaced according to the attributes of the computer. The attribute data may also include data relating to the user of the computer. For example if the attribute data indicates the computer is used by an accountant in an accounts department and a particular accounts package is heavily used, data is produced according to the rule identifying upgraded software, e.g. the latest version of data is produced indicating it should be replaced by an alternative software more appropriate to the user. If a computer in some other department has the same software which is rarely used or not used, the data may indicate that the software should be uninstalled or replaced by alternative less powerful software. The replacement of the software may take place automatically.
Different rules may be provided for the same software in different computers according to the attributes.
The system allows software to be monitored and upgraded, with unused software un-installed, and rarely used software replaced by alternative more suitable software or un-installed but taking account of operational requirements as defined by the attributes and rules. This improves the reliability of the network by removing unused software and by standardising software, which is used, to the latest version.
Another aspect of the invention provides a non-transitory computer readable medium storing instructions which, when executed by a processor arranged to receive, from a source of usage data, data relating to usage of software installed on respective computers of the system, and to receive, from a source of attribute data, data relating to attributes associated with the computers, causes the processor to perform a computer implemented method comprising:
In some embodiments, the action comprises, for at least some installed software, replacement of the software by alternative software.
In some embodiments the mapping rules provide different actions for respective computers.
Another aspect of the invention provides a computer implemented method comprising:
In some embodiments, the action comprises, for at least some installed software, replacement of the software by alternative software.
In some embodiments the mapping rules provide different actions for respective computers.
Further features and advantages of the invention will become apparent from the following description of illustrative embodiments of the invention, given by way of example only, which is made with reference to the accompanying drawings.
Overview
Referring to
The network further comprises a system management tool 8 for example a Configuration Manager (ConfigMgr) also formerly known as a Systems Management Server (SMS) provided by Microsoft Corporation. Other companies also provide systems management tools. The tool 8 has a data base 81 storing data relating to the configuration of the network. The tool 8 uses agents A on the computers 21 . . . 2n which report regularly to the tool 8. Each agent A on a computer C1, Cm . . . Cn identifies the software on the computer and the times of use of the software.
Linked to the systems management tool 8 is a usage processor 10. The usage processor 10 provides processed usage data to a mapping rules processor 12 which will be described in more detail below. The data produced by the mapping rules processor may be used to control the provision by a software portal 14 of software to the computers C1 . . . Cn of the network. The software portal 14 is a source of software which users can access to request the download of software which has for example been pre-approved by the relevant manager(s) of the commercial company who operate the network. The software portal 14 may provide a link to a source of the required software. In an example of the present invention, the mapping rules processor and the software portal act to automatically install on a computer C software chosen according to the mapping rules and to uninstall unused software and software which is replaced by new software.
In addition to the systems management tool monitoring software on the computers, the usage processor 10 may periodically determine whether the computers are active.
The mapping rules processor 12 determines what action to take or recommendation to make in relation to software installed on a computer. The action or recommendation depends on the role of the computer and the usage of the installed software. The result of applying the rules may be a report 18 and/or control of the software portal 14 to install software on a computer C and/or uninstall unused or replaced software. Installation and un-installation of software may be automatic or controlled by the user or a network administrator.
Attribute Data
A source 16 of attribute data provides attribute data to the mapping rules processor 12. The attribute data may be derived from various sources. In this example it is derived from tags T which are data sets stored in the computers C. Referring to
Some computers may not have tags of attribute data. The attributes of such computers may be found from other sources, for example asset registers.
Usage Data
Referring to
Various property names are used below and are indicated by italics. They have the following meanings:
Illustrative default values for various properties are as follows:
It will be appreciated that other values may be chosen for the properties: the values are a design choice. The actual data with which the property thresholds and timeout are compared are derived from the systems management tool, e.g. ConfigMgr.
Trusted
A computer is trusted if ALL the following are true:
Machine Active
A machine is deemed active if it is not inactive. A machine is inactive if ALL the following are true:
Normal Usage Calculation
If a machine is considered to be both “Active” and “Trusted” then usage calculation for a particular product for normal installations is based on an evaluation of the Reference date, the install date and last run date for the particular product as shown in the following table, Table 1. In the table “NULL” denotes that data is unavailable or incomplete. For example the install date or the last run date are not known.
If a machine reports a future date (this does sometimes occur with ConfigMgr) then it will fall into the “used” category as the following will be true:
Reference Date—“future” Date<Removal Possible Lower Threshold
Suite Usage Calculation
Some software products are identified as suites and the overall usage for the suite is calculated based on the most recent last run date for any component.
Sub-Components of a Package
Whilst this description refers mainly to software packages and suites of packages, it will be appreciated that the use of subcomponents of a package may be monitored and software evaluated on the basis of usage and non-usage of the sub-components (together with the relevant attribute data) as indicated in Example 2 below.
Reports
The mapping may be used to produce a report. The application of the rule(s) based on usage and attributes, may be a report recommending actions to take in relation to software installed on a computer. The report may be used by a licensing manager to determine what new licenses to buy (and what licenses to cancel) when planning an upgrade of the computer before an upgrade takes place. The application of the rule(s) based on usage and attributes may be a report simply of the role and usage of software installed on the computers of the network.
Usage in Reports
For products identified as suites the overall usage for the suite is calculated based on the per-component installations and usage. This then allows recommendations to be made in a report regarding whether a suite can be downgraded or completely removed based on the number of components installed and their usage.
Mapping Rules
Referring to
Actions may include without limitation: do nothing; replace a particular product with another product in dependence on attribute data regardless of use; replace a particular product with another product in dependence on attribute data and use; uninstall a product in dependence on use and attribute data.
Different rules may be established for different attributes. Different rules may be established for different software products. Different rules may be established for different computers as identified by the attribute data.
Examples of applying the rules process include (without limitation):
Whether or not that tool has been used the recommendation and/or the action taken is to upgrade the tool to the most recent version. More generally, for any computer having software which is important to the role of the department, the recommendation and/or action to take is to upgrade the software regardless of use.
New Operating System
A rule or a set of rules may also depend on whether or not a new operating system is being installed either to replace an existing operating system or to provide a new bare metal machine joining a subnet. Operating systems may be provided to computers Cn in subnets using 1E's product PXELite.
Based on usage of software used with the old operating system and the attributes associated with the computer, when a new operating system is provided, new software compatible with the new operating system is chosen. As exemplified above, some software may be upgraded to be compatible with the new operating system regardless of use because of the attributes, whilst other software may be replaced by an alternative or not replaced, on the basis of use and attributes.
AppClarity
1E Limited provides a software product AppClarity™. An embodiment of the present invention may be used with AppClarity™. One of the functions of AppClarity™ is to standardise the identifiers of software packages because it has been observed that what are in fact identical packages may have for various reasons variations in their identifiers. AppClarity™ thus reduces the number of apparently different software packages and provides consistent identification of software packages for use by the software portal 14 the rules processor 12 and the usage processor. A usage processing engine 10 may be implemented within AppClarity™.
Computer Programs
The invention also provides a computer program which when run on a computer Cn implements the procedures described above. The computer program is stored on a non transitory carrier, for a computer readable medium for example a hard disk, an optical disc, a magneto-optical disk, a compact disc, a magnetic tape, electronic memory including Flash memory, ROM and RAM, a RAID or any other suitable computer readable storage device.
A Computer
Referring to
The usage processor and the mapping rules processor may be provided by a usage evaluation engine running on a processor and a rules engine running on another processor or both may be run on the same processor. Such processors are generally similar to the computer of
The above embodiments are to be understood as illustrative examples of the invention. Further embodiments of the invention are envisaged. For example, whilst the computers have agents installed on them to monitor usage and report to the systems management tool, usage can be determined in other ways for example monitoring traffic on the network. It is to be understood that any feature described in relation to any one embodiment may be used alone, or in combination with other features described, and may also be used in combination with one or more features of any other of the embodiments, or any combination of any other of the embodiments. Furthermore, equivalents and modifications not described above may also be employed without departing from the scope of the invention, which is defined in the accompanying claims.