Inventory data for hardware and software assets is one of the primary data feeds for software license management. It consists in accurately determining which software products are installed and used on each device. License management also requires contextual data: on which devices is the software installed and/or running? What are the properties of the hardware devices where the applications are installed? How are the applications accessed? For instance, are they executed from a local installation, are they virtualized applications, are they installed on a virtual machine (VM), or are they Web applications? To answer these questions, we need to also collect information about the hardware devices and virtual environment.
Software Application Recognition
The identification of software products installed on each device is usually performed by considering multiple installation evidence types found on the hard disk. Most publishers will de facto register their applications by using a packaging technology that will locally store information about the software product. For example, within Program and Features on Windows devices (Add/Remove Programs on old releases) or RPM (RedHat Packaging Manager) package registry on UNIX and Linux.
Another software identification mechanism is to analyze installed files: the name and properties of executables, dlls, jar, and other files and in some cases the content of specific files are often used to discover software products. Specific operating system or technology related repositories, such as the registry on Windows devices can be introspected to uncover installed applications. Finally, a new standard, the ISO 19770-2, has been adopted by major publishers such as CA, Symantec, Adobe or Flexera Software. It enables accurate discovery and inventory of installed software products through the use of software identification (SWID) tags, contained in XML files, that are added to each installation and stored on the hard disk.
There are many scenarios that are not covered by hard disk inventory. A software product can be running on a device from a shared drive. In this case, none of the inventory mechanism described above will work; only an analysis of the list of programs running in memory or a network discovery, if the product can be found though port scanning, will uncover it. Some products require more in-depth inventory: for instance, license management for Oracle database options requires connecting to the Oracle database and reading data from specific tables that monitor their usage. Application virtualization is another challenge as disk inventory will not provide software identification data. In this case, the best solution resides in querying the application virtualization tools themselves: Microsoft App-V or Citrix XenApp/EdgeSight, for instance, provide reliable application usage data.
License management requires more than a software inventory for each device. Publishers use many licensing metrics that require gathering additional data. User based licenses, where the number of users is counted regardless of the number of installations, require understanding which user is assigned to a device or is using it. Hardware property based licenses, primarily used in the datacenter, use a variety of metrics such as the number of sockets, processors, cores, the amount of memory, the speed and model of processors, etc. These metrics requires collecting hardware properties on each device where the application is running.
Another challenging area is operating system (or server) virtualization such as VMware ESX/vSphere or Microsoft Hyper-V and hardware partitioning technologies (HP nPAR, IBM LPAR, IBM WPAR, Solaris Zones, etc.). Understanding the relationship between a virtual machine or a partition and its physical host and being able to get the hardware properties of the host is mandatory for accurate license management as publishers have created specific rules tied to these environments. For instance, Oracle database licensing does not support soft partitioning and requires an entitlement based on the hardware properties of the host supporting the virtual machine, for processor based licensing. For some editions of their products, Microsoft has set a limit on the number of virtual machines that can be covered by a single license. Traditional device inventory running within a virtual machine or a partition has no visibility on its host. A specific host inventory is needed to get the host hardware properties and the list of virtual machines or partitions supported by it.
Software license management requires inventory data that goes beyond the traditional device inventory but organizations may not need to purchase new tools. They should first assess the accuracy and completeness of their device inventory tool, usually provided by the configuration management product. In some cases, configuration changes will be needed to collect all the data (package, file, registry, ISO 19770-2 tag, usage data…) required for license management. They should also investigate the availability of other inventory data sources. Many license management tools deliver discovery and inventory capabilities, but only the ones not covered by the configuration management tool, usually around hardware virtualization and in depth inventory such as Oracle should be implemented. The license management tool is responsible for aggregating the data from the multiple data sources enabling the accurate calculation of a license position for each software product.
Learn more about discovery, inventory and application recognition by viewing our on-demand webinar.