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.

Virtual machines modeled by Virtual Machine nodes in BMC Discovery 11.2 and later

In versions of BMC Discovery before 11.2, SI nodes were used to represent virtual machines. In BMC Discovery 11.2, they are now modeled using a Virtual Machine node which makes it easier to find and relate VMs to their containers and Hosts.

Software Instance Lifecycle

The lifecycle of a SI 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 SI 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 SI 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 SI nodes it creates and maintains. If a key is specified then the decision whether to create a new SI node or to update an existing one depends on the key. If a SI 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 SI 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 SI with an automatically generated key. The key is based upon the key of the hosting node (Host or Cluster) upon which the SI is running, the specified type of the SI 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

The Software Instance node, including in a clustered environment, can be destroyed either manually or automatically.

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

The Software Instance is automatically removed in the following scenarios:
The age_count attribute of the (first order) SI node contains information about when the SI 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 SI 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.

In a clustered environment, the SI node is automatically destroyed when the Cluster node that contains the SI is deleted or when aging determines that the instance can be deleted.The aging of clustered Software Instances is performed slightly differently than normal SIs. This is because clustered SIs can be running on different hosts at different times due to a failover, or it can be running on multiple hosts of the cluster. Therefore, the age count for a clustered SI is stored on each Hosted Software relationship with a host of the cluster. If a cluster is configured to support a failover software, a flag is maintained to indicate whether the software is actively running on this host. When the age count of all Hosted Software relationships for a clustered SI exceeds the aging threshold, only then the SI node is destroyed.

If the pattern does not have a removal block, SI 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 SI 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

If the SI 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 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 of a Software Instance node are as described in the following table:

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.

Cloud Hosted
cloud boolean

When set, this flag indicates that the Software instance runs directly on a cloud service

Cloud Class
cloud_class string

Vendor classification of cloud software

Instance
instance string

The product's own name for this instance.

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.

Listening Ports
listening_ports list:int

Ports this element is configured to listen on.

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 publicized 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.

Shared flag override
_shared boolean

When set, this flag indicates that the Software Instance should always be regarded as shared or not shared for purposes of visualization and application modelling. This is a user controlled flag.


Software Instance node relationships

The relationships on a Software Instance node are as described in the following table:

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.

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.

Host(s)

SoftwareInstance:
ClusteredSoftware:
HostedSoftware:
Host:
Host

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

Databases

SoftwareInstance:
Client:
Communication:
Server:
DatabaseDetail

Databases that this Software Instance is a client of.

Observed Communication to Load Balancer Service

SoftwareInstance:
Connecting:
ObservedCommunication:
Listening:
LoadBalancerService

Load Balancer Services that this Software Instance is observed to be communicating with.

Observed incoming connections

SoftwareInstance:
Listening:
ObservedCommunication:
Connecting:
SoftwareInstance

Software Instances observed to be connecting to this one.

Observed outgoing connections

SoftwareInstance:
Connecting:
ObservedCommunication:
Listening:
SoftwareInstance

Software Instances this one is observed connecting to.

Observed connections

SoftwareInstance:
Peer:
ObservedCommunication:
Peer:
SoftwareInstance

Software Instances observed communicating with this one.

Observed incoming connections from candidate SIs

SoftwareInstance:
Listening:
ObservedCommunication:
Connecting:
CandidateSoftwareInstance

Candidate Software Instances observed to be connecting to this one.

Observed outgoing connections to candidate SIs

SoftwareInstance:
Connecting:
ObservedCommunication:
Listening:
CandidateSoftwareInstance

Candidate Software Instances this one is observed connecting to.

Observed connections with candidate SIs

SoftwareInstance:
Peer:
ObservedCommunication:
Peer:
CandidateSoftwareInstance

Candidate Software Instances observed communicating with this one.

Observed incoming connections from unassigned connections

SoftwareInstance:
Listening:
ObservedCommunication:
Connecting:
UnassignedConnections

Unassigned Connections to this Candidate Software Instance.

Observed outgoing connections to unassigned ports

SoftwareInstance:
Connecting:
ObservedCommunication:
Listening:
UnassignedConnections

Unassigned Connections that this Candidate Software Instance is observed connecting to.

Observed connections with unassigned connections

SoftwareInstance:
Peer:
ObservedCommunication:
Peer:
UnassignedConnections

Unassigned Connections observed communicating with this Candidate Software Instance.

Other Facets

SoftwareInstance:
MainFacet:
MultiFacet:
Facet:
SoftwareInstance

Other facets of this Software Instance.

Main Facet

SoftwareInstance:
Facet:
MultiFacet:
MainFacet:
SoftwareInstance

Chosen main facet of this Software Instance.

Contained in Software Cluster

SoftwareInstance:
ContainedSoftware:
SoftwareContainment:
SoftwareContainer:
SoftwareCluster

Software Cluster containing this Software Instance.

Manages Software Cluster

SoftwareInstance:
Manager:
Management:
ManagedElement:
SoftwareCluster

Software Clusters that this Software Instance manages.

Cluster Service

SoftwareInstance:
ServiceProvider:
SoftwareService:
Service:
ClusterService

Cluster service that this Software Instance is implementing.

Hosting Cluster

SoftwareInstance:
RunningSoftware:
HostedSoftware:
Host:
Cluster

Cluster on which this clustered Software Instance is running.

Not displayed in UI

SoftwareInstance:
InferredElement:
Inference:
Contributor:
DiscoveredAPIResult

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

Associated API call results

SoftwareInstance:
InferredElement:
Inference:
Associate:
DiscoveredAPIResult

Discovered API call result related in some way to this Software Instance.

Client Software Clusters

SoftwareInstance:
Server:
Communication:
Client:
SoftwareCluster

Client Software Clusters that this Software Instance is communicating with.

Server Software Clusters

SoftwareInstance:
Client:
Communication:
Server:
SoftwareCluster

Server SoftwareClusters that this Software Instance is communicating with.

Peer Software Clusters

SoftwareInstance:
Peer:
Communication:
Peer:
SoftwareCluster

Peer SoftwareClusters that this Software Instance is communicating with.

Depends On Software Clusters

SoftwareInstance:
Dependant:
Dependency:
DependedUpon:
SoftwareCluster

Software Clusters that this Software Instance depends on.

Dependant Software Cluster

SoftwareInstance:
DependedUpon:
Dependency:
Dependant:
SoftwareCluster

Software Clusters that depend upon this Software Instance.


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

Comments