Grouping patterns configuration

You can control the process of business application creation by using grouping patterns configuration. The configuration allows you to include or exclude chosen relations during data traversal and chosen classes from resulting business applications. You can also change the dependency direction for relations that are defined in Common Data Model, and assign tiers to business application elements.

Grouping patterns configuration is stored in an XML format in the database. You can export the configuration to the XML file, and import it from the XML file.

Grouping patterns can be assigned to the default configuration and a customized configuration. The default configuration applies to all grouping patterns and is loaded when TADDM is started, but the customized configuration has a higher priority. It means that when a grouping pattern is attached to an customized configuration, the default configuration applies in all cases that are not specified by the customized grouping pattern configuration. For more details about creating customized configurations, see Attaching a custom configuration to a grouping pattern.

The XML configuration file consists of the following sections:
general
contains configuration that defines additional logging level details and maximum hops number.
compositionConfiguration
defines these elements that are visible as business application elements. The following subsections are available:
  • includeInComposition
  • excludeFromComposition
traversalConfiguration
allows you to exclude or include particular relations or dependencies during creation process of business applications. The following subsections are available:
  • excludedRelationships
  • includedRelationships
tiers
is used to create functional group names in business applications that are compatible with earlier versions.
directions
denotes dependency direction for relations that are defined in Common Data Model. It can be a part of the default configuration only.
The following configuration is an excerpt from the default configuration:
<?xml version="1.0" encoding="UTF-8" ?>
<xml>
    <tiers>
    ...
        <tier>
            <name>Computer Systems</name>
            <rule>
                <className>ComputerSystem</className>
            </rule>
        </tier>
...
</tiers>
    <traversalConfiguration>
        <excludedRelationships>
            <exclude relation="{any}" source="customCollection.CustomCollection" target="{any}"/>
            <exclude relation="{any}" source="customCollection.GroupingPattern" target="{any}"/>
            <exclude relation="{any}" source="{any}" target="customCollection.GroupingPattern"/>
            <exclude relation="{any}" source="customCollection.Path" target="{any}"/>
...
        </excludedRelationships>
    </traversalConfiguration>
    <compositionConfiguration>
        <includeInComposition>
            <include type="simple.SComputerSystem"/>
            <include type="simple.SDeployableComponent"/>
            <include type="simple.SFunction"/>
            <include type="simple.SGroup"/>
            <include type="simple.SSoftwareServer"/>
        </includeInComposition>
        <excludeFromComposition>
            <exclude type="customCollection.GroupingPattern" />
            <exclude type="app.FunctionalGroup" />
        </excludeFromComposition>
    </compositionConfiguration>
    <directions>
        <forwardRelationships>
            <forward relation="only relation.Provides" source="sys.blade.BladeCenterManagementModule" target="sys.blade.Alert"/>
            <forward relation="only relation.Provides" source="sys.vmware.VMWareVirtualSwitch" target="sys.vmware.VMWarePortGroup"/>
            <forward relation="only relation.Provides" source="app.AppServer" target="app.JVM"/>
...
        </forwardRelationships>
        <reverseRelationships>
            <reverse relation="only app.dependencies.SwitchToDevice" source="{any}" target="{any}"/>
            <reverse relation="only relation.ControlsAccess" source="{any}" target="{any}"/>
            <reverse relation="only relation.Contains" source="{any}" target="{any}"/>
...
        </reverseRelationships>
    </directions>  
</xml>
For each type of configuration, a source, target, or relation class can be defined in the following ways:
  • Any type ("{any}") - it matches any class from Common Data Model.
  • Class name - it matches a particular class and all of its subclasses.
  • Class name only (only) - it matches a particular class only, without any of its subclasses.
Examples:
  • <exclude relation="{any}" source="sys.ComputerSystem" target="{any}"/>
    Excludes from traversal all types of relations from ComputerSystem and all its subclasses to any target class from Common Data Model.
  • <exclude relation="only relation.InvokedThrough" source="app.messaging.mq.MQLocalQueue" target="app.messaging.mq.MQChannel"/>
    Excludes from traversal a relation InvokedThrough (but not its subclasses) between MQLocalQueue and MQChannel (and their subclasses).

You can provide a class name as a short class name or a fully qualified class name. For example, you can use sys.linux.LinuxUnitaryComputerSystem instead of com.collation.platform.model.topology.sys.linux.LinuxUnitaryComputerSystem. Class name is not case-sensitive.