Skip to main content

 

OutSystems 11オンラインヘルプ

 

OutSystems

強い依存関係と弱い依存関係について理解する

プロデューサモジュールによって公開された要素のタイプに応じて、OutSystemsではプロデューサモジュールとそのコンシューマとの間に強い依存関係または弱い依存関係が生成されます。

強い依存関係

コンシューマモジュールにプロデューサに対する強い依存関係がある場合、プロデューサロジックがまるでコンシューマモジュール内で定義されているかのように実行されます。同じリクエスト内でロジックが実行され、トランザクション、セッション変数、サイトプロパティなどが共有されます。

実行時、プロデューサによって公開された要素を再利用するには、コンシューマモジュールが要素のシグネチャ実装の両方を認識していることが必要です。このため、公開された要素のシグネチャまたは実装がプロデューサで変更された場合、コンシューマモジュールは古くなり、コンシューマモジュールを再パブリッシュして最新バージョンのプロデューサの使用を開始する必要があります。

以下の要素を再利用した場合、コンシューマのプロデューサに対する依存関係は強い依存関係になります。

  • サーバーアクション
  • クライアントアクション
  • Webブロックおよびモバイルブロック
  • 画像
  • リソース
  • スクリプト
  • テーマ
  • ロール
  • プロセス
  • プロセスアクティビティ

同じプロデューサモジュールによって公開された複数の要素をコンシューマが再利用していて、それらの要素の1つ以上が上記の一覧に含まれている場合、コンシューマはプロデューサに対して強い依存関係を持ちます。

弱い依存関係

コンシューマモジュールにプロデューサに対する弱い依存関係がある場合、コンシューマが再利用するプロデューサの要素のタイプに応じて以下のいずれかが発生します。

  • アクションや画面などの関連するロジックが含まれる要素は、プロデューサのリクエストのコンテキストで実行される。プロデューサの実装の変更は、コンシューマでただちに有効になる。

  • エンティティやストラクチャなどのデータ型要素は、シグネチャによってのみ定義される(関連するロジックがない)。再利用されたエンティティに対するクエリは、コンシューマロジックと同じトランザクションで実行される。エンティティの変更は、データベースでただちに有効になる。

実行時、要素を再利用するには、コンシューマモジュールが要素のシグネチャを認識していることのみが必要です。このため、公開された要素の実装のみがプロデューサで変更された場合、コンシューマモジュールは古くはならず、実行時にただちに最新バージョンのプロデューサをコンシューマで使用できます。

以下の要素を再利用した場合、コンシューマのプロデューサに対する依存関係は弱い依存関係になります。

  • Web画面
  • サービスアクション
  • データベースエンティティ
  • ローカルストレージ
  • 静的エンティティ
  • ストラクチャ

同じプロデューサモジュールによって公開された複数の要素をコンシューマが再利用していて、すべての要素が上記の一覧に含まれている場合のみ、コンシューマはプロデューサに対して弱い依存関係を持ちます。

  • Was this article helpful?