関係およびメタルールの操作
内容
casp1032jp
内容
関係およびメタルールの操作について
基本
CA Spectrum
パッケージに付属したモデリング カタログには、事前定義済みの多数の関係が含まれており、それらの多くにはメタルールが関連付けられています。これらの関係は、ネットワーク内のほとんどの関係をレプリケートできるフレームワークを提供します。ただし、ネットワーク設計の要件に応じて追加の関係を作成できます。新しい関係を追加する場合は、以下の操作も行う必要があります。
- 特定のモデル タイプに対して新しい関係を実装するメタルールを、<met> で作成します。
- モデル タイプにインテリジェンスを追加して、これらのタイプのモデルが新しいメタルールに基づいて関連付けられる際に、適切に反応するようにします。プログラム的に CORBA API を使用して、インテリジェンスを実装する必要があります。例として、以下のメタルールを作成すると仮定します。User Sends_mail_to Userメタルールがインスタンス化された場合(たとえば、1 つの User モデルが別の User モデルにメールを送信する場合)、最初のモデルは、このモデル(このモデルが表すユーザ)がメールを送信したという事実に反応することが必要となる可能性があり、2 番目のモデルは、このモデルがメールを受信したという事実に反応することが必要となる可能性があります。この場合、これらの反応を実装するために User モデル タイプにインテリジェンスを追加する必要があります。
注:
CORBA API の使用については、「」セクションを参照してください。関係の検索と表示
関係を検索するには、指定したテキスト文字列が含まれる関係のみを含めるように、モデリング カタログ内のすべての関係のリストをフィルタします。デフォルトでは、Model Type Editor は、指定された文字列を関係の名前と照合します。ただし、ナビゲーション画面の[関係 ID]列を表示している場合は、文字列を関係 ID (ハンドル)とも照合します。
以下の手順に従います。
- ナビゲーション画面で、[関係]タブをクリックします。モデリング カタログ内のすべての関係の名前がリストされます。
- リストで、確認する関係の名前を選択します。特定の関係を見つけて選択するには、以下の手順に従います。
- [フィルタ]テキスト ボックスにテキスト文字列を入力して、名前または ID にこの文字列が含まれる関係のみを含めるようにリストをフィルタします。ID によってリストをフィルタするには、テーブルに[ID]列を表示する必要があります。
- リストの一番上の[関係]バーをクリックして、アルファベット順のソートを昇順から降順に、またはその逆に変更します。
- 開発者 ID関係が作成されたときにアクティブであった開発者 ID を指定します。
- 関係名関係の名前を指定します。
- 関係 ID関係に割り当てられる ID (ハンドル)を指定します。関係を削除した場合でも、ハンドルが再利用されることはありません。
- 関係タイプ関係のタイプ(1 対多または多対多のいずれか)を指定します。
- メタルール特定のモデル タイプに関係を適用するメタルールのリストを指定することにより、モデル タイプがどのように相互に対話できるかを定義します。
- 特定のモデル タイプのメタルールのみを含めるようにメタルールのリストをフィルタするには、[フィルタ]テキスト ボックスにモデル タイプの名前の全体または一部を入力します。
関係の作成
関係を作成できます。
関係を作成する方法
- ナビゲーション画面で[関係]タブをクリックし、
(関係の作成)をクリックします。
[関係の作成]ダイアログ ボックスが表示されます。 - 関係の名前を入力します。名前の最大長は 31 文字で、英数文字およびアンダースコア(スペースまたは句読点は除く)で構成される必要があります。重要:関係名はモデリング カタログ全体で一意である必要はありません。ただし、所定の開発者 ID で作成された関係全体で一意である名前を入力する必要があります。また、関係名を再利用することは許可されていますが、推奨されません。
- 作成する関係のタイプを選択します。
- 1 対多このタイプの関係は、1 つのモデル タイプを多くのモデル タイプに関連付けます。
- 多対多このタイプの関係は、多くのモデル タイプを多くのモデル タイプに関連付けます。
注:いったん関係を作成すると、関係タイプを変更することはできません。別の関係タイプを指定するには、関係を削除し、新しい関係を作成する必要があります。 - [OK]をクリックします。関係が作成され、関係 ID が割り当てられます。また、その情報がコンテンツ画面に表示されます。注:関係を削除した場合でも、ハンドルが再利用されることはありません。
- 関係を使用する 1 つ以上のメタルールを作成します。
- 関連するモデル タイプにインテリジェンスを追加して、これらのタイプのモデルが新しいメタルールに基づいて関連付けられる際に、適切に反応するようにします。プログラム的に CORBA API を使用して、インテリジェンスを実装する必要があります。注:CORBA API の使用については、「」セクションを参照してください。
関係メタルール
通常、各関係には 1 つ以上のメタルールがあり、それぞれが特定のモデル タイプに関係を適用します。中核的なデータベース内のモデル タイプの多くには、メタルールなしで提供される関係が存在します。これらは、ネットワーク設計に適したカスタマズ済みのメタルールを提供するための「プレースホルダ」として機能します。
関係内のメタルールのメンバとして指定されたモデル タイプから新しいモデル タイプが派生すると、メタルールは自動的に派生モデル タイプに適用されます。たとえば、基本
CA Spectrum
パッケージに付属したモデリング カタログには、Contains という名前の関係および Room と Device という名前の 2 つのモデル タイプが存在します。Contains 関係のメタルールの 1 つを以下に示します。Room Contains Device
モデリング カタログには、Device から派生した Workstation モデル タイプも含まれます。その結果、「Room Contains Device」は、「Room Contains Workstation」の形式で Workstation モデル タイプにも適用されます。Workstation モデル タイプが含まれるメタルールを明示的に作成する必要はありません。
一般的なモデル タイプのメタルールの作成について
可能な場合は常に、メタルールを最大限に適用するために、また、より特定的なメタルールの必要性を減らすために、一般的なモデル タイプ(モデル タイプ階層の最上位近くのモデル タイプ)のメタルールを作成します。メタルールが含まれるモデル タイプが一般的なものであるほど、その派生モデル タイプが多くなるので、そのメタルールを継承するモデル タイプも多くなります。
例として、Device モデル タイプは、Is_Adjacent_to 関係の以下のメタルールで使用される一般的なモデル タイプです。
Device Is_Adjacent_to Device
したがって、Device またはその子孫の 1 つから派生したいずれかのモデル タイプは、Device またはその子孫の 1 つから派生した他のいずれかのモデル タイプに隣接することができます。
メタルールの作成
対応する関係を所有する(すなわち、現在アクティブな開発者 ID を使用して関係が作成された)場合は、制限なくメタルールを作成できます。
別の開発者 ID を使用して関係が作成された場合でも、ルールで使用される 1 つ以上のモデル タイプが、現在アクティブな開発者 ID を使用して作成されていれば、この関係のメタルールを作成できます。
メタルールを作成する方法
- メタルールを作成する関係を検索して表示します。関係がコンテンツ画面に表示されます。
- コンテンツ画面の「関係」タブで、
(新規メタルールを作成します)をクリックします。
[メタ ルールの作成]ダイアログ ボックスが表示されます。 - 左側のモデル タイプのリストで、メタルールに含める先行(左)のモデル タイプを選択します。注:特定のモデル タイプを容易に見つけて選択するには、対応する[フィルタ]テキスト ボックスにテキスト文字列を入力して、リストをそれに応じてフィルタします。
- 右側のモデル タイプのリストで、メタルールに含める述語(右側)のモデル タイプを選択し、[OK]をクリックします。新しいメタルールが、現在の関係のメタルールのリストに追加され、先行のモデル タイプに従ってアルファベット順にリストに挿入されます。注:ここで、モデル タイプにインテリジェンスを追加して、これらのタイプのモデルが新しいメタルールに基づいて関連付けられる際に、適切に反応するようにする必要があります。プログラム的に CORBA API を使用して、インテリジェンスを実装する必要があります。
関係の削除
以下の 2 つの条件が満たされる場合は、関係を削除できます。
- 関係が、現在アクティブな開発者 ID を使用して作成された。
- 関係に、関連メタルールが存在しない。そうでない場合は、まずメタルールを削除します。
関係を削除する方法
- 削除する関係を検索して表示します。
- ナビゲーション画面の[関係]タブで関係を選択し、
(選択した関係を削除します)をクリックします。
確認ダイアログ ボックスが表示されます。 - [はい]をクリックします。関係が削除されます。
メタルールの削除
対応する関係を所有する(すなわち、現在アクティブな開発者 ID を使用して関係が作成された)場合は、制限なくメタルールを削除できます。
別の開発者 ID を使用して関係が作成された場合でも、ルールで使用されるモデル タイプの少なくとも 1 つが、現在アクティブな開発者 ID を使用して作成されていれば、メタルールを削除できます。
メタルールを削除する方法
- 削除するメタルールが含まれる関係を検索して表示します。
- コンテンツ画面の「関係」タブでメタルールを選択し、
(選択したメタルールを削除します)を選択します。
確認ダイアログ ボックスが表示されます。 - [はい]をクリックします。メタルールが削除されます。