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 | Description |
---|---|
Name | Name of the Software Instance. |
Type | Type of the Software Instance. |
Instance Count | Number of instances grouped together. |
Not displayed in UI | Globally unique key. |
Cloud Hosted | When set, this flag indicates that the Software instance runs directly on a cloud service |
Cloud Class | Vendor classification of cloud software |
Instance | The product's own name for this instance. |
Cluster Identifier | The internal identifier of the cluster this element is contributing to. |
Cluster Internal Name | The internal name of the cluster this element is contributing to. |
Listening Ports | Ports this element is configured to listen on. |
Publisher | 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 |
Product Name | The product name. Only populated in cases that a Pattern identifies more than one product. |
Full Version | Full-resolution version. |
Product Version | Version publicized by the vendor. |
Release | Release number. |
Edition | Edition. |
Service Pack | Service Pack. |
Build | Build number. |
Patch | Patch level. |
Revision | Revision. |
Not shown in the UI | The number of consecutive successful (positive) or failed (negative) times the |
Not shown in the UI | The time at which a scan was last successfully associated with this Software Instance. |
Not shown in the UI | The time at which a scan associated with this Software Instance failed. |
Not shown in UI | Attribute used internally for explicit removal. |
Shared flag override | 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 |
| Host on which this Software Instance is running. |
Host(s) |
| Host(s) on which this aggregate Software Instance is running. |
MFPart |
| MFPart on which this Software Instance is running. |
MFPart(s) |
| MFPart(s) on which this aggregate Software Instance is running. |
Maintaining Pattern |
| Pattern that is maintaining this Software Instance. |
Client to Server Comms |
| Server Software Instances that this Software Instance is communicating with. |
Server to Client Comms |
| Client Software Instances that are communicating with this Software Instance. |
Peer to Peer Comms |
| Peer Software Instances that are communicating with this Software Instance. |
Contains |
| Software instances that make up this aggregate Software Instance. |
Components |
| Software Components inside this Software Instance. |
Contained within |
| Aggregate Software Instances containing this Software Instance. |
Containing Applications |
| Business applications containing this Software Instance. |
Cluster |
| Cluster containing this Software Instance. |
Depends On Cluster |
| Cluster this Software Instance is dependant on. |
Database Details |
| Details of this Software Instance. |
Software Support Details |
| Software Support Detail related to this Software Instance. |
Depended Upon By Software Instances |
| Software Instances that depend upon this Software Instance. |
Depends On Software Instance |
| Software Instances that this Software Instance depends on. |
Depended Upon By Software Components |
| Software Components that depend upon this Software Instance. |
Depends On Software Component |
| Software Components that this Software Instance depends on. |
Files |
| Files used by this Software Instance. |
Depended Upon By |
| Detail depending upon this Software Instance. |
Depends On |
| Detail depended upon by this Software Instance. |
Database Elements This Depends On |
| Detail depended upon by this Software Instance. |
Details |
| Details of this Software Instance. |
Collections |
| A collection which this Software Instance is a member of. |
Managed by Software Instance |
| Software Instances that manage this Software Instance. |
Manages Software Instances |
| Software Instances that this Software Instance manages. |
Manages Hosts |
| Hosts that this Software Instance manages. |
Manages Host Containers |
| Host Containers that this Software Instance manages. |
Manages Clusters |
| Cluster this Software Instance manages. |
Manages Storage Systems |
| Storage Systems that this Software Instance manages. |
Load Balancer |
| Load balancer member that this Software Instance is implementing a service for. |
Primary processes |
| Discovered process from which the existence of this Software Instance was inferred. |
Contributor processes |
| Discovered process from which one or more attributes of this Software Instance were inferred. |
Associated processes |
| Discovered process related in some way to this Software Instance. |
Associated services |
| Discovered service related in some way to this Software Instance. |
Not displayed in UI |
| Discovered WBEM instance from which one or more attributes of this Software Instance were inferred. |
Not displayed in UI |
| Discovered network connection from which one or more attributes of this Software Instance were inferred. |
Associated network connections |
| Discovered network connection related in some way to this Software Instance. |
Not displayed in UI |
| Discovered listening port from which the existence of this Software Instance was inferred. |
Not displayed in UI |
| Discovered listening port from which one or more attributes of this Software Instance were inferred. |
Associated listening ports |
| Discovered listening port related in some way to this Software Instance. |
Not displayed in UI |
| Package from which one or more attributes of this Software Instance were inferred. |
Associated packages |
| Package related in some way to this Software Instance. |
Not displayed in UI |
| Host from which one or more attributes of this Software Instance were inferred. |
Not displayed in UI |
| Host related in some way to this Software Instance. |
Not displayed in UI |
| Discovered file from which the existence of this Software Instance was inferred. |
Not displayed in UI |
| Discovered file from which one or more attributes of this Software Instance were inferred. |
Associated files |
| Discovered file related in some way to this Software Instance. |
Primary software |
| Discovered software from which the existence of this Software Instance was inferred. |
Contributor software |
| Discovered software from which one or more attributes of this Software Instance were inferred. |
Associated discovered software |
| Discovered software related in some way to this Software Instance. |
Not displayed in UI |
| Discovered command result from which one or more attributes of this Software Instance were inferred. |
Associated command results |
| Discovered command result related in some way to this Software Instance. |
Not displayed in UI |
| Discovered Windows Registry value from which one or more attributes of this Software Instance were inferred. |
Associated registry values |
| Discovered Windows Registry value related in some way to this Software Instance. |
Not displayed in UI |
| Discovered WMI query result from which one or more attributes of this Software Instance were inferred. |
Associated WMI values |
| Discovered WMI query result related in some way to this Software Instance. |
Not displayed in UI |
| Pattern from which one or more attributes of this Software Instance were inferred. |
Associated WBEM instances |
| Discovered WBEM instance related in some way to this Software Instance. |
Not displayed in UI |
| Discovered WBEM result from which one or more attributes of this Software Instance were inferred. |
Associated WBEM query results |
| Discovered WBEM result related in some way to this Software Instance. |
Not displayed in UI |
| Discovered WBEM association from which one or more attributes of this Software Instance were inferred. |
Associated associators results |
| Discovered WBEM association related in some way to this Software Instance. |
Not displayed in UI |
| Application whose existence was inferred from this Software Instance. |
Not displayed in UI |
| Application whose attributes have been partly or wholly determined from this Software Instance. |
Associated Applications |
| Application related in some way to this Software Instance. |
Not displayed in UI |
| Software whose existence was inferred from this Software Instance. |
Not displayed in UI |
| Software whose attributes have been partly or wholly determined from this Software Instance. |
Associated to Software |
| Software related in some way to this Software Instance. |
Not displayed in UI |
| Software whose existence was inferred from this Software Instance. |
Not displayed in UI |
| Software whose attributes have been partly or wholly determined from this Software Instance . |
Associated Software |
| Software related in some way to this Software Instance. |
Not displayed in UI |
| MFPart from which the existence of this Software Instance was inferred. |
Not displayed in UI |
| MFPart from which one or more attributes of this Software Instance were inferred. |
Host(s) |
| Host(s) on which this clustered Software Instance is running. |
Databases |
| Databases that this Software Instance is a client of. |
Observed Communication to Load Balancer Service |
| Load Balancer Services that this Software Instance is observed to be communicating with. |
Observed incoming connections |
| Software Instances observed to be connecting to this one. |
Observed outgoing connections |
| Software Instances this one is observed connecting to. |
Observed connections |
| Software Instances observed communicating with this one. |
Observed incoming connections from candidate SIs |
| Candidate Software Instances observed to be connecting to this one. |
Observed outgoing connections to candidate SIs |
| Candidate Software Instances this one is observed connecting to. |
Observed connections with candidate SIs |
| Candidate Software Instances observed communicating with this one. |
Observed incoming connections from unassigned connections |
| Unassigned Connections to this Candidate Software Instance. |
Observed outgoing connections to unassigned ports |
| Unassigned Connections that this Candidate Software Instance is observed connecting to. |
Observed connections with unassigned connections |
| Unassigned Connections observed communicating with this Candidate Software Instance. |
Other Facets |
| Other facets of this Software Instance. |
Main Facet |
| Chosen main facet of this Software Instance. |
Contained in Software Cluster |
| Software Cluster containing this Software Instance. |
Manages Software Cluster |
| Software Clusters that this Software Instance manages. |
Cluster Service |
| Cluster service that this Software Instance is implementing. |
Hosting Cluster |
| Cluster on which this clustered Software Instance is running. |
Not displayed in UI |
| Discovered API call result from which one or more attributes of this Software Instance were inferred. |
Associated API call results |
| Discovered API call result related in some way to this Software Instance. |
Client Software Clusters |
| Client Software Clusters that this Software Instance is communicating with. |
Server Software Clusters |
| Server SoftwareClusters that this Software Instance is communicating with. |
Peer Software Clusters |
| Peer SoftwareClusters that this Software Instance is communicating with. |
Depends On Software Clusters |
| Software Clusters that this Software Instance depends on. |
Dependant Software Cluster |
| Software Clusters that depend upon this Software Instance. |
Comments
Log in or register to comment.