Software Instance node

Software Instance node

A Software Instance (SI) node represents an instance of an off-the-shelf software product or equivalent proprietary item of software. It can correspond to one single running process or a group of processes (possibly on multiple hosts). A Software Instance often corresponds to a licensable entity. Where possible, versions of Software Instances are retrieved and stored. They are created, maintained and destroyed by patterns. Software Instance nodes always have a relationship to the Pattern node corresponding to their maintaining pattern.

  • A first order Software Instance is one which models a piece of software running directly on the OS.
  • A second order Software Instance is one which model software formed from first order Software Instances.

Why an SI and not a Runtime Environment?

Software Instances represent pieces of software running on a host. A Runtime Environment represents something supporting running software. For example, Weblogic is represented by an SI, and Java by a Runtime Environment node. However, it is still important to keep track of the supporting Runtime Environments and their versions as some might require updates.

Software Instance Lifecycle

The lifecycle of a Software Instance node depends upon the details of the pattern that maintains it. This is determined by a combination of the pattern trigger condition, whether the pattern specifies an explicit key for the Software Instance and the logic contained in the pattern itself. In all cases, if a pattern is deleted, the Software Instance nodes it is maintaining are immediately destroyed (as are all other nodes it might be maintaining).

Patterns can trigger on a Directly Discovered Data node, see Directly Discovered Data Trigger. They can also trigger or on the creation or modification of other Software Instance nodes, see Software Instance Trigger.

Directly Discovered Data Trigger

Creation/update

If a pattern triggers on a Directly Discovered Data node, such as a Discovered Process node or a Discovered Listening Port node, it might choose whether to specify keys for the Software Instance nodes it creates and maintains. If a key is specified then the decision whether to create a new Software Instance node or to update an existing one depends on the key. If a Software Instance node with the specified key exists, that node is updated, even if the node was previously maintained by a different pattern. In this case, the pattern takes over as the maintainer of the Software Instance. If a node with the specified key does not exist, a new Software Instance node is created. In both cases, the Software Instance node is linked to the pattern with a maintainer relationship.

If a key for the Software Instance node is not specified by the pattern, the system creates or updates a group Software Instance with an automatically generated key. The key is based upon the key of the Host upon which the Software Instance is running, the specified type of the Software Instance and, optionally, a key group that can be used to separate the nodes into a number of groups. The count attribute is set to the number of instances in the group identified in the collection of Directly Discovered Data. Each time the host is scanned, the count attribute is changed to represent the number of instances seen in that scan.

Removal

Software Instance node can be destroyed either manually or automatically.

To remove a Software Instance node manually, find the necessary Software Instance, select it in the list and pick Destroy from the Actions list.

Automatic removal happens according to the following scenario.
The age_count attribute of the (first order) Software Instance node contains information about when the Software Instance node was last confirmed by its maintaining pattern. If the age_count is positive, it represents the number of consecutive scans of the Host node in which the Software Instance was confirmed. If the age_count is negative, it represents the number of consecutive scans in which the Software Instance node was not confirmed. The last_update_success and last_update_failure attributes contain the date and time at which the Software Instance node was last confirmed, and not confirmed, respectively.

If the pattern does not have a removal block, Software Instance nodes are removed using an aging strategy based on the age_count and last_update_success attributes. The default aging parameters are the same as for a Host node, that is, if a Software Instance node has not been seen for at least 7 scans, over a period of at least 10 days, it is destroyed. The parameters can be changed in the options, see Configuring model maintenance settings for more information.

The default aging strategy only applies to Software Instance nodes created from patterns triggering on the following node kinds and maintaining the Software Instances:

  • DiscoveredProcess
  • DiscoveredService
  • DiscoveredListeningPort
  • DiscoveredSoftware
  • DiscoveredVirtualMachine

If the Software Instance is triggered on anything else, for example, a discovered file, then aging must be implemented in the pattern using a removal block.

If the pattern maintaining a node does have a removal block, the block can override the default aging scheme to destroy its nodes either earlier or later than normal. For TKU patterns, refer to the documentation accompanying each pattern for details of special removal behavior.

Regardless of the presence or absence of a removal block in the pattern, if the Host corresponding to a DDD-triggered Software Instance node is destroyed, the Software Instance node is immediately destroyed (see How nodes get removed).

Software Instance trigger

Creation/update

When patterns trigger on the creation or modification of other Software Instance nodes, the behavior is simpler. In this situation, the pattern must provide a key for each Software Instance node. The key is used to find an existing Software Instance node to update, or to create a new one. In both cases, the node is linked to the pattern with a maintainer relationship.

Removal

Software Instance nodes created as a result of Software Instance triggers are destroyed using the Cascade removal type; when the triggering Software Instance node is destroyed, the destruction is cascaded to the higher-level Software Instance node. See Cascade Removal.

It is possible for other triggers to be used. If any other trigger is used, BMC Atrium Discovery has no automatic removal behavior. Patterns must be used to explicitly destroy any Software Instance nodes created as a result of other triggers.

Software Instance node attributes

The attributes and relationships of a Software Instance node are described in the tables below.

UI Name
Attribute Name and Type

Description

Name
name string

Name of the Software Instance.

Type
type string

Type of the Software Instance.

Instance Count
count int

Number of instances grouped together.

Not displayed in UI
key string

Globally unique key.

Instance
instance string

The product's own name for this instance.

VM Type
vm_type string

The type of VM technology used by this instance of a virtual machine.

Cluster Identifier
cluster_id string

The internal identifier of the cluster this element is contributing to.

Cluster Internal Name
cluster_name string

The internal name of the cluster this element is contributing to.

Publisher
publisher string

The publisher of the Software Instance. Only populated in cases that a Pattern identifies products whose publisher has changed between released versions, or where more than one publisher may be releasing the software, for example, Apache. This information is normally found in the Pattern node's publishers attribute.

Product Name
product string

The product name. Only populated in cases that a Pattern identifies more than one product. This information is normally found in the Pattern node's products attribute.

Full Version
version string

Full-resolution version.

Product Version
product_version string

Version publicised by the vendor.

Release
release string

Release number.

Edition
edition string

Edition.

Service Pack
service_pack string

Service Pack.

Build
build string

Build number.

Patch
patch string

Patch level.

Revision
revision string

Revision.

Not shown in the UI
age_count int

The number of consecutive successful (positive) or failed (negative) times the Software Instance has been seen during host scans.

Not shown in the UI
last_update_success date

The time at which a scan was last successfully associated with this Software Instance.

Not shown in the UI
last_update_failure date

The time at which a scan associated with this Software Instance failed.

Not shown in UI
_explicit_removal _string

Attribute used internally for explicit removal.

Software Instance node relationships

The relationships on a Software Instance node are described in the table below.

UI name

Relationship

Description

Host

SoftwareInstance:
RunningSoftware:
HostedSoftware:
Host:
Host

Host on which this Software Instance is running.

Host(s)

SoftwareInstance:
AggregateSoftware:
HostedSoftware:
Host:
Host

Host(s) on which this aggregate Software Instance is running.

MFPart

SoftwareInstance:
RunningSoftware:
HostedSoftware:
Host:
MFPart

MFPart on which this Software Instance is running.

MFPart(s)

SoftwareInstance:
AggregateSoftware:
HostedSoftware:
Host:
MFPart

MFPart(s) on which this aggregate Software Instance is running.

Maintaining Pattern

SoftwareInstance:
Element:
Maintainer:
Pattern:
Pattern

Pattern that is maintaining this Software Instance.

Client to Server Comms

SoftwareInstance:
Client:
Communication:
Server:
SoftwareInstance

Server Software Instances that this Software Instance is communicating with.

Server to Client Comms

SoftwareInstance:
Server:
Communication:
Client:
SoftwareInstance

Client Software Instances that are communicating with this Software Instance.

Peer to Peer Comms

SoftwareInstance:
Peer:
Communication:
Peer:
SoftwareInstance

Peer Software Instances that are communicating with this Software Instance.

Contains

SoftwareInstance:
SoftwareContainer:
SoftwareContainment:
ContainedSoftware:
SoftwareInstance

Software instances that make up this aggregate Software Instance.

Components

SoftwareInstance:
SoftwareContainer:
SoftwareContainment:
ContainedSoftware:
SoftwareComponent

Software Components inside this Software Instance.

Contained within

SoftwareInstance:
ContainedSoftware:
SoftwareContainment:
SoftwareContainer:
SoftwareInstance

Aggregate Software Instances containing this Software Instance.

Containing Applications

SoftwareInstance:
ContainedSoftware:
SoftwareContainment:
SoftwareContainer:
BusinessApplicationInstance

Business applications containing this Software Instance.

Cluster

SoftwareInstance:
ServiceProvider:
SoftwareService:
Service:
Cluster

Cluster containing this Software Instance.

Depends On Cluster

SoftwareInstance:
Dependant:
Dependency:
DependedUpon:
Cluster

Cluster this Software Instance is dependant on.

Database Details

SoftwareInstance:
ElementWithDetail:
Detail:
Detail:
DatabaseDetail

Details of this Software Instance.

Software Support Details

SoftwareInstance:
ElementWithDetail:
SupportDetail:
SoftwareDetail:
SupportDetail

Software Support Detail related to this Software Instance.

Depended Upon By Software Instances

SoftwareInstance:
DependedUpon:
Dependency:
Dependant:
SoftwareInstance

Software Instances that depend upon this Software Instance.

Depends On Software Instance

SoftwareInstance:
Dependant:
Dependency:
DependedUpon:
SoftwareInstance

Software Instances that this Software Instance depends on.

Depended Upon By Software Components

SoftwareInstance:
DependedUpon:
Dependency:
Dependant:
SoftwareComponent

Software Components that depend upon this Software Instance.

Depends On Software Component

SoftwareInstance:
Dependant:
Dependency:
DependedUpon:
SoftwareComponent

Software Components that this Software Instance depends on.

Contained Virtual Host

SoftwareInstance:
HostContainer:
HostContainment:
ContainedHost:
Host

Virtual Host provided by this Software Instance.

Contained MFPart

SoftwareInstance:
HostContainer:
HostContainment:
ContainedHost:
MFPart

MFPart provided by this Software Instance.

Files

SoftwareInstance:
ElementUsingFile:
RelatedFile:
File:
File

Files used by this Software Instance.

Depended Upon By

SoftwareInstance:
DependedUpon:
Dependency:
Dependant:
Detail

Detail depending upon this Software Instance.

Depends On

SoftwareInstance:
Dependant:
Dependency:
DependedUpon:
Detail

Detail depended upon by this Software Instance.

Database Elements This Depends On

SoftwareInstance:
Dependant:
Dependency:
DependedUpon:
DatabaseDetail

Detail depended upon by this Software Instance.

Details

SoftwareInstance:
ElementWithDetail:
Detail:
Detail:
Detail

Details of this Software Instance.

Collections

SoftwareInstance:
Member:
Collection:
Collection:
Collection

A collection which this Software Instance is a member of.

Managed by Software Instance

SoftwareInstance:
ManagedElement:
Management:
Manager:
SoftwareInstance

Software Instances that manage this Software Instance.

Manages Software Instances

SoftwareInstance:
Manager:
Management:
ManagedElement:
SoftwareInstance

Software Instances that this Software Instance manages.

Manages Hosts

SoftwareInstance:
Manager:
Management:
ManagedElement:
Host

Hosts that this Software Instance manages.

Manages Host Containers

SoftwareInstance:
Manager:
Management:
ManagedElement:
HostContainer

Host Containers that this Software Instance manages.

Manages Clusters

SoftwareInstance:
Manager:
Management:
ManagedElement:
Cluster

Cluster this Software Instance manages.

Manages Storage Systems

SoftwareInstance:
Manager:
Management:
ManagedElement:
StorageSystem

Storage Systems that this Software Instance manages.

Load Balancer

SoftwareInstance:
ServiceProvider:
SoftwareService:
Service:
LoadBalancerMember

Load balancer member that this Software Instance is implementing a service for.

Primary processes

SoftwareInstance:
InferredElement:
Inference:
Primary:
DiscoveredProcess

Discovered process from which the existence of this Software Instance was inferred.

Contributor processes

SoftwareInstance:
InferredElement:
Inference:
Contributor:
DiscoveredProcess

Discovered process from which one or more attributes of this Software Instance were inferred.

Associated processes

SoftwareInstance:
InferredElement:
Inference:
Associate:
DiscoveredProcess

Discovered process related in some way to this Software Instance.

Associated services

SoftwareInstance:
InferredElement:
Inference:
Associate:
DiscoveredService

Discovered service related in some way to this Software Instance.

Not displayed in UI

SoftwareInstance:
InferredElement:
Inference:
Contributor:
DiscoveredWBEMInstance

Discovered WBEM instance from which one or more attributes of this Software Instance were inferred.

Not displayed in UI

SoftwareInstance:
InferredElement:
Inference:
Contributor:
DiscoveredNetworkConnection

Discovered network connection from which one or more attributes of this Software Instance were inferred.

Associated network connections

SoftwareInstance:
InferredElement:
Inference:
Associate:
DiscoveredNetworkConnection

Discovered network connection related in some way to this Software Instance.

Not displayed in UI

SoftwareInstance:
InferredElement:
Inference:
Primary:
DiscoveredListeningPort

Discovered listening port from which the existence of this Software Instance was inferred.

Not displayed in UI

SoftwareInstance:
InferredElement:
Inference:
Contributor:
DiscoveredListeningPort

Discovered listening port from which one or more attributes of this Software Instance were inferred.

Associated listening ports

SoftwareInstance:
InferredElement:
Inference:
Associate:
DiscoveredListeningPort

Discovered listening port related in some way to this Software Instance.

Not displayed in UI

SoftwareInstance:
InferredElement:
Inference:
Contributor:
Package

Package from which one or more attributes of this Software Instance were inferred.

Associated packages

SoftwareInstance:
InferredElement:
Inference:
Associate:
Package

Package related in some way to this Software Instance.

Not displayed in UI

SoftwareInstance:
InferredElement:
Inference:
Contributor:
Host

Host from which one or more attributes of this Software Instance were inferred.

Not displayed in UI

SoftwareInstance:
InferredElement:
Inference:
Associate:
Host

Host related in some way to this Software Instance.

Not displayed in UI

SoftwareInstance:
InferredElement:
Inference:
Primary:
DiscoveredFile

Discovered file from which the existence of this Software Instance was inferred.

Not displayed in UI

SoftwareInstance:
InferredElement:
Inference:
Contributor:
DiscoveredFile

Discovered file from which one or more attributes of this Software Instance were inferred.

Associated files

SoftwareInstance:
InferredElement:
Inference:
Associate:
DiscoveredFile

Discovered file related in some way to this Software Instance.

Primary software

SoftwareInstance:
InferredElement:
Inference:
Primary:
DiscoveredSoftware

Discovered software from which the existence of this Software Instance was inferred.

Contributor software

SoftwareInstance:
InferredElement:
Inference:
Contributor:
DiscoveredSoftware

Discovered software from which one or more attributes of this Software Instance were inferred.

Associated discovered software

SoftwareInstance:
InferredElement:
Inference:
Associate:
DiscoveredSoftware

Discovered software related in some way to this Software Instance.

Not displayed in UI

SoftwareInstance:
InferredElement:
Inference:
Contributor:
DiscoveredCommandResult

Discovered command result from which one or more attributes of this Software Instance were inferred.

Associated command results

SoftwareInstance:
InferredElement:
Inference:
Associate:
DiscoveredCommandResult

Discovered command result related in some way to this Software Instance.

Not displayed in UI

SoftwareInstance:
InferredElement:
Inference:
Contributor:
DiscoveredRegistryValue

Discovered Windows Registry value from which one or more attributes of this Software Instance were inferred.

Associated registry values

SoftwareInstance:
InferredElement:
Inference:
Associate:
DiscoveredRegistryValue

Discovered Windows Registry value related in some way to this Software Instance.

Not displayed in UI

SoftwareInstance:
InferredElement:
Inference:
Contributor:
DiscoveredWMI

Discovered WMI query result from which one or more attributes of this Software Instance were inferred.

Associated WMI values

SoftwareInstance:
InferredElement:
Inference:
Associate:
DiscoveredWMI

Discovered WMI query result related in some way to this Software Instance.

Not displayed in UI

SoftwareInstance:
InferredElement:
Inference:
Contributor:
Pattern

Pattern from which one or more attributes of this Software Instance were inferred.

Associated WBEM instances

SoftwareInstance:
InferredElement:
Inference:
Associate:
DiscoveredWBEMInstance

Discovered WBEM instance related in some way to this Software Instance.

Not displayed in UI

SoftwareInstance:
InferredElement:
Inference:
Contributor:
DiscoveredWBEMQueryResult

Discovered WBEM result from which one or more attributes of this Software Instance were inferred.

Associated WBEM query results

SoftwareInstance:
InferredElement:
Inference:
Associate:
DiscoveredWBEMQueryResult

Discovered WBEM result related in some way to this Software Instance.

Not displayed in UI

SoftwareInstance:
InferredElement:
Inference:
Contributor:
DiscoveredWBEMAssociatorsResult

Discovered WBEM association from which one or more attributes of this Software Instance were inferred.

Associated associators results

SoftwareInstance:
InferredElement:
Inference:
Associate:
DiscoveredWBEMAssociatorsResult

Discovered WBEM association related in some way to this Software Instance.

Not displayed in UI

SoftwareInstance:
Primary:
Inference:
InferredElement:
BusinessApplicationInstance

Application whose existence was inferred from this Software Instance.

Not displayed in UI

SoftwareInstance:
Contributor:
Inference:
InferredElement:
BusinessApplicationInstance

Application whose attributes have been partly or wholly determined from this Software Instance.

Associated Applications

SoftwareInstance:
Associate:
Inference:
InferredElement:
BusinessApplicationInstance

Application related in some way to this Software Instance.

Not displayed in UI

SoftwareInstance:
Primary:
Inference:
InferredElement:
SoftwareInstance

Software whose existence was inferred from this Software Instance.

Not displayed in UI

SoftwareInstance:
Contributor:
Inference:
InferredElement:
SoftwareInstance

Software whose attributes have been partly or wholly determined from this Software Instance.

Associated to Software

SoftwareInstance:
Associate:
Inference:
InferredElement:
SoftwareInstance

Software related in some way to this Software Instance.

Not displayed in UI

SoftwareInstance:
InferredElement:
Inference:
Primary:
SoftwareInstance

Software whose existence was inferred from this Software Instance.

Not displayed in UI

SoftwareInstance:
InferredElement:
Inference:
Contributor:
SoftwareInstance

Software whose attributes have been partly or wholly determined from this Software Instance .

Associated Software

SoftwareInstance:
InferredElement:
Inference:
Associate:
SoftwareInstance

Software related in some way to this Software Instance.

Not displayed in UI

SoftwareInstance:
InferredElement:
Inference:
Primary:
MFPart

MFPart from which the existence of this Software Instance was inferred.

Not displayed in UI

SoftwareInstance:
InferredElement:
Inference:
Contributor:
MFPart

MFPart from which one or more attributes of this Software Instance were inferred.

Was this page helpful? Yes No Submitting... Thank you

Comments