トラバーサル構成
トラバーサル構成は、オブジェクト間の対象とする関係と除外する関係からなります。
デフォルトでは、ビジネス・アプリケーション合成時に、既存のすべての CI とそれらの関係がトラバースされます。 ビジネス・アプリケーションは、グループ化パターンの処理中に合成されます。 ただし、トラバーサル構成を使用することで、この処理で一部の関係をスキップできます。 つまり、コンポジターは、除外された関係をそれ以上処理しません。 この構成は、共通データ・モデルで定義されている暗黙的関係、または任意の CI をリンクできて、TADDM API または TADDM UI で作成可能な明示的関係のいずれかに適用されます。 ただし、explicitrel.sh スクリプトを使用して暗黙的関係に対して生成された明示的関係は、デフォルトで無視されます。このような関係を構成することはできません。
以下の例では、最初の 2 つの relation タグにより、すべての入出力関係を除外して、CI タイプ全体が完全に除外されます。 3 つ目の relation タグにより、1 つの単純な関係のみが除外されます。
- 例:
<traversalConfiguration> <excludedRelationships> <exclude relation="{any}" source="admin.AdminInfo" target="{any}"/> <exclude relation="{any}" source="{any}" target="admin.AdminInfo"/> <exclude relation="only relation.DeployedTo" source="app.j2ee.J2EEApplication" target="app.j2ee.websphere.WebSphereCell"/> ... <includedRelationships> <include relation="{any}" source="admin.AdminInfo" target="{any}"/> <include relation="{any}" source="{any}" target="admin.AdminInfo"/> ...
トラバーサル構成は、以下のパラメーターで構成されています。
- excludedRelationships
- このパラメーターには、一連の除外される関係が含まれます。
- includedRelationships
- このパラメーターには、一連の組み込まれる関係が含まれます。 デフォルトではすべての関係が組み込まれますが、このパラメーターは、グループ化パターン構成で、デフォルト構成で除外されている関係を組み込む場合に役立ちます。
excludedRelationships パラメーターおよび includedRelationships パラメーターには以下のエレメントが含まれます。- relation
- 関係または依存タイプの名前。
- source
- 関係ソース・オブジェクト・タイプの名前。 特定のソースを定義しない場合は、この値を {any} に設定できます。
- ターゲット
- 関係ターゲット・オブジェクト・タイプの名前。 特定のターゲットを定義しない場合は、この値を {any} に設定できます。
direction
特定の関係に対して定義される依存関係トラバーサルの方向。 指定可能な値を以下に示します。UP: 現在のトラバーサル方向が、ソース・オブジェクト・タイプから開始して、依存関係チェーンの上方向にトラバースする場合にのみ、除外ルールまたは組み込みルールが適用されます。DOWN: 現在のトラバーサル方向が、ソース・オブジェクト・タイプから開始して、依存関係チェーンの下方向にトラバースする場合にのみ、除外ルールまたは組み込みルールが適用されます。UP_AFTER_DOWN: 現在のトラバーサル方向が、ソース・オブジェクト・タイプから開始して、依存関係チェーンの下方向にトラバースし、次に上方向にトラバースする場合にのみ、除外ルールまたは組み込みルールが適用されます。 これは、LowerUpオプション (データ管理ポータルで選択できます) と同じです。DOWN_AFTER_UP: 現在のトラバーサル方向が、ソース・オブジェクト・タイプから開始して、依存関係チェーンの上方向にトラバースし、次に下方向にトラバースする場合にのみ、除外ルールまたは組み込みルールが適用されます。 これは、HigherDownオプション (データ管理ポータルで選択できます) と同じです。
トラバーサル構成は、共通データ・モデルで定義されている関係の方向に関連付けられます (関係の方向の構成は考慮されません)。 ただし、明示的な依存関係の場合、ソースおよびターゲット・クラスは共通データ・モデルによって制限されないため (任意のクラスを明示的関係のソースまたはターゲットとして使用できます)、明示的依存関係のトラバーサルでは方向が考慮されます。
その他の例
- 特定のオブジェクトのペアの間の特定の関係をスキップする。
<exclude relation="relation.RunsOn" source="sys.OperatingSystem" target="sys.ComputerSystem"/> - 特定のクラスがソースとなっているすべての関係をスキップする。
<exclude relation="{any}" source="net.BindAddress" target="{any}"/> - 特定のクラスがターゲットとなっているすべての関係をスキップする。
<exclude relation="{any}" source="{any}" target="net.BindAddress"/> - 関係はスキップする一方、そのサブクラスはスキップしない。注:
dev.RealizesExtentはrelation.Realizesのサブクラスであり、relation.Realizesがスキップされても処理されます。<exclude relation="only relation.Realizes" source="sys.FileSystem" target="sys.FileSystem"/>
アプリケーション・サーバー・オブジェクト・タイプの IBM Tivoli Enterprise Console オブジェクトがソースとなっているすべての関係をスキップする。<exclude relation="{any}" source="app.AppServer:IBMTivoliEnterpriseConsole" target="{any}"/>
特定のオブジェクトのペアの間の特定の関係をスキップする。 また、このような関係がスキップされるのは、オブジェクトを依存チェーンの下方向にトラバースしているときに見つかった場合のみです。
この除外ルールをパターン構成に追加し、これをコンピューター・システム CI がコア CI (トラバーサル開始点) であるパターンに付加すると、アプリケーション・サーバーがコンピューター・システムに依存しているため、このコア CI で実行されるすべてのアプリケーション・サーバー (アプリケーション) がトポロジーに追加されます。 すでに追加済みのアプリケーション・サーバーと接続している他のアプリケーション・サーバーは、IP 接続の依存性を介してトポロジーに追加することもできます。 ただし、上記の例に示した除外ルールが適用されるのは、トラバーサル・エンジンが、これらのアプリケーション・サーバーが稼働しているホスト・コンピューター・システムを追加しようとした場合です。 この場合、「アプリケーション・サーバー」->「実行場所」->「コンピューター・システム」関係が下方向にトラバースされ、除外ルールが適用されます。<exclude relation="relation.RunsOn" source="app.AppServer" target="sys.ComputerSystem" direction="DOWN"/>
ターゲットが SSoftwareServer タイプのオブジェクトであり、 hierachyDomain属性がapp.placeholder.client.remoteに設定され、hierarchyType属性がUnknownに設定されている関係をスキップします。<exclude relation="{any}" source="{any}" target="simple.SSoftwareServer:app.placeholder.client.remote.Unknown"/>
特定の関係のセットのみをトラバースするように
BizAppsAgent を構成することもできます。 例えば次のとおりです。<excludedRelationships>
<exclude source="{any}" target="{any}" relation="{any}"/>
</excludedRelationships>
<includedRelationships>
<include target="{any}" source="sys.SystemPComputerSystem" relation="relation.Virtualizes"/>
<include target="{any}" source="sys.linux.LinuxUnitaryComputerSystem" relation="relation.Virtualizes"/>
<include target="{any}" source="only sys.ComputerSystem" relation="relation.Virtualizes"/>
</includedRelationships>