Business application structure

Business application structure is created automatically, basing on a grouping pattern definition and on grouping pattern selectors definitions.

For details, see Creating grouping patterns.

The structure of business applications has a form of a directed graph. The graph elements are called Nodes and the graph edges are called Paths.
Business application
Business application is represented by a new class in Common Data Model named com.collation.platform.model.topology.customCollection.CustomCollection. CustomCollection has a broader meaning and can represent not only business applications, but also other types of collections that do not have strictly business meaning. The hierarchyType attribute defines the meaning for each custom collection. Currently, this attribute can have three values: Business Application, Collection, and Access Collection. Access Collection is used by TADDM to control access to some sets of data. For more information, see data-level security.
Business application nodes
A business application node always points to only one component, which usually is a configuration item. Node is represented by a new class in Common Data Model named com.collation.platform.model.topology.customCollection.Node.
A node is not visible in Data Management Portal. It means that when you display the details pane for a particular node, the details pane of a component with which the node is connected is displayed.
For these types of elements which are less important or irrelevant for the overall structure, nodes are not created. Such elements are called low-level elements, and typically they are not configuration items, for example IP address, operating system, process, CPU.
Business application paths
A business application path is a connection between two business application nodes. Path is represented by a new class in Common Data Model named com.collation.platform.model.topology.customCollection.Path. The path is always directed according to objects' dependency direction. It means that the dependent object points to the object on which it depends.
A path contains information about the source and target nodes, and about a route from a source node to a target node.
Paths represent relations or dependencies between source and target objects, but they can also represent entire subgraphs. The subgraphs include all nodes that were not included as nodes in the business application, as defined in the composition configuration of the grouping pattern that generated the specific business application. All elements that are excluded by the composition configuration, and relations between them, are stored as detailed information for just one path between a specific pair of objects. You can view these details in a path's detail pane.
Two objects can be connected by more than one route. For example, direct dependency between the source and target objects, direct relation between source and target objects, and a route that connects a couple of low-level objects through a set of relations and dependencies. However, all objects that were added during traversal are represented by just one path, and the detailed data (the XD attribute) contains additional information for each route.
For details about business application paths, see Business Application Path details pane.
The CustomCollection class does not have relations to nodes and paths, but the Node class and the Path class have relations to the CustomCollection class. If you want to query all nodes or paths for a specific custom collection, query those nodes or paths, the parent attribute of which points to a specific custom collection. For example:
select * from Path where parent.guid == 'DED47778C834ABAFBA6A55137D1A8B'
Querying routes
Each CI can have additional data that is stored as XML along with the object. The attribute that contains XML data is named XD. In case of a path object, this attribute stores detailed information about low-level objects that were traversed during business application generation but were excluded by the composition configuration. It also stores detailed information about these objects. For details about composition configuration, see Composition configuration.
The following example shows an output from querying a path object:
<Path array="1" guid="F92431E223E637ECAC3775DD54AA0AC2"
    lastModified="1413539533336"
    parent="DED47778CBA834ABAFBA6A55137D1A8B" xsi:type="coll:com.collation.platform.model.topology.customCollection.Path">
    <sourceNodeGuid>5B2C7E013F4A3E948080405446FC38DD</sourceNodeGuid>
    <targetNodeGuid>24EEC97B70F43039AE2EC88C31D96B56</targetNodeGuid>
    <displayName>1.0.0.0/24 - 1.0.0.7</displayName>
    <bidiFlag>3</bidiFlag>
    <XD>
        <xml>
            <routes>
                <instance>
                    <routeStart/>
                    <fromObjectGuid>1AA04147456D3FB3811DDC1425732B56</fromObjectGuid>
                              <relationshipType>net.IpInterface(ipNetwork) -&gt; relation.Networks -&gt; net.IpNetwork</relationshipType>

                    <toObjectGuid>EB377A0AB0BA35E9A78688FACEFE181E</toObjectGuid>

                    <fromObjectGuid>1AA04147456D3FB3811DDC1425732B56</fromObjectGuid>
                              <relationshipType>net.IpInterface(parent) -&gt; relation.Contains -&gt; sys.ComputerSystem(ipInterfaces)</relationshipType>

                    <toObjectGuid>4FF04D906FD8354298DCB2F9116AD0C3</toObjectGuid>
                </instance>
            </routes>
        </xml>
    </XD>
    <isPlaceholder>false</isPlaceholder>
    <status>1</status>
    <statusChangeTime>1413539533336</statusChangeTime>
</Path>
To query inside the XD attribute, you can use a new eval operator. For example, to query paths that contain a specific object as a low-level object, use the following query:
select * from Path where XD eval
'/xml/routes/instance[fromObjectGuid=\"1AA04147456D3FB3811DDC1425732B56\"]'
For more information about MQL and the eval operator, see Model Query Language overview.
Note: Each route has segments. A segment consists of two nodes that are connected by a relationship or dependency. If the number of segments exceeds the limit that is defined in the com.ibm.cdb.serviceinfrastructure.path.max.length property, the route is not created. For details, see Configuring the collation.properties file entries.