Service rules metadata

Service rules metadata defines the dependency structure of the CI types and the relationship types in service definitions. The metadata helps identify CIs and construct business service maps. Configure and manage service rules metadata with the metadata rules editor.

The dependencies defined by service rules metadata are used when identifying dependent CIs. This information helps prioritize the order of CI identification and match CIs and respective dependent CIs in a payload. Service rules metadata is also used by Service Mapping and can be defined for custom CI types. After defining a new CI type, you can define metadata rules that specify how the new CI type is related to existing types in the CMDB.

Service rules metadata consists of hosting rules and containment rules that describe a relationship type between two CI types. Each set of rules models the data from a different perspective of the CI.
  • Containment rules: Represent CIs' configuration hierarchy, each containment rule describing which other CIs are contained by a given CI.
  • Hosting rules: Represent the placement of the CIs in a business definition, each hosting rule describing what a CI runs on.

The same relationship type can be used in a hosting rule and in a containment rule. It is the context in which the relationship is used that distinguishes between a containment and hosting rule.

The plugins that have been activated on an instance determine which hosting and containment rules are available by default.

Hosting rules

Hosting rules represent all valid combinations for pairs of hosting and hosted CIs in the service definition. Hosting rules are a flat set of rules that can be only one level deep. You create them for resources, typically physical or virtual hardware.

Each hosting rule is a standalone rule between two CI types. It specifies the relationship between a CI type and another valid CI type that it can host or be hosted on in the service definition.

A hosting rule consists of a parent CI type, a relationship type (such as Hosted On::Hosts) and a child CI type. For example, a hosting rule can specify that the Application type Runs On::Runs the Hardware type.

If a CI is hosted on multiple resources (such as Windows and Linux), create a separate hosting rule for the CI with each resource that it can be hosted on. During CI identification, the pair of CIs in the relationship must satisfy at least one hosting rule.

Hosting rules are stored in the CMDB Metadata Hosting Rules [cmdb_metadata_hosting] table.

Containment rules

The collection of containment rules represent the containment hierarchy for a CI type. Each rule specifies the relationship between a CI type and another valid CI type that it can contain or be contained by in the service definition. The rules are chained to each other in a containment rules group, with a CI type that is the top-level (root) parent of the group.

Containment rules are logical concepts and represent logical CIs. For example, to describe software that runs on a server, or to specify that the Tomcat type Contains::Contained By the WAR File type.

To designate that data flows into or from a CI type, add an endpoint to the rule for that CI type. After an endpoint is added to a containment rule, you cannot add any child rules to that rule.

Containment rules are stored in the CMDB Metadata Containment Rules [cmdb_metadata_containment] table.

Rules restrictions

The rules that you create are bound by the following restrictions and are enforced in the metadata rules editor. Only valid options that adhere to these restrictions are available in the editor.
  • If a CI type is a child in a containment rule, it cannot be a top-level (root) parent of any other containment rule. It also cannot be in any hosting rule, either as a parent or as a child.
  • If a CI type is a top-level (root) parent of a containment rule, it cannot be a child in a hosting rule. For example, a CI cannot be hosted on Tomcat, if Tomcat has any containment rules.
  • If a CI type is a child in a hosting rule, it cannot be in any containment rule, either as a parent or a child.
  • If a CI type is a parent in a hosting rule, it cannot be a child in any containment rule.
  • Hosting rules cannot create loops, such as Tomcat –runs_on- VMWare –runs_on- Tomcat.

Hosting and containment rules model

Hosting rules that model the diagram:
  • Tomcat 'Runs on' Hardware
Containment rules that model the diagram:
  • Tomcat 'Contains' Configuration File
  • Tomcat 'Contains' WAR
  • WAR has two endpoints for JDBC with MySQL:
    • Inbound
    • Outbound

Valid set of rules

Tomcat Hosted Linux
Linux Hosted Computer

The second metadata entry in this example satisfies the third rule restriction above (it is a hosting rule, not a containment rule).