次の方法で共有


アプリケーション システム動作のデリゲートと公開

更新 : 2007 年 11 月

システム デザイナでは、アプリケーション システムにおいて、システムの動作を提供または利用するメンバを指定できます。このタスクを行うには、システムのエンドポイントの動作をそのメンバにデリゲートします。システムのメンバに属するエンドポイントの動作を選択的に公開することもできます。これらのタスクを完了すると、システムの定義にプロキシ エンドポイントが表示されます。

システムにメンバを追加する方法の詳細については、「方法 : アプリケーション システムにメンバを追加する」を参照してください。

プロキシ エンドポイントを通して動作をデリゲートして公開する

システム定義からメンバに対してエンドポイントの動作をデリゲートすると、Visual Studio では、システム定義からメンバに対してエンドポイントがコピーされ、システム定義上にプロキシ エンドポイントが作成されて、プロキシ エンドポイントと新規メンバのエンドポイントが接続されます。メンバに属するエンドポイントの動作を公開すると、Visual Studio では、そのメンバの新しいプロキシ エンドポイントがシステム定義の境界に追加されます。

ms181883.alert_note(ja-jp,VS.90).gifメモ :

特定のシステム定義の配置について正常に検証するには、最終的に、システム定義およびそのシステム定義に含まれるすべてのシステムにエンドポイントの動作をデリゲートすることが必要になります。

プロキシ エンドポイントを使用すると、システム内のメンバにアクセスし、これらのメンバの動作をシステム外部に公開することが可能になります。プロキシ エンドポイントを通して公開しないメンバは、システム外部にはアクセスできません。このシステムの外部にあるシステムやアプリケーションからこれらのメンバにアクセスすることもできません。

たとえば、Web サービス プロバイダ エンドポイントを持つ ASP.NET Web アプリケーションを含むシステムについて考えてみます。このシステムには、ASP.NET Web アプリケーションに接続された外部データベースも含まれています。システム外部からデータベースへのアクセスを制限するには、Web サービス プロバイダ エンドポイントだけをプロキシ エンドポイントとして公開します。これで、システムが公開する Web サービスを介したデータベースへのアクセス ポイントは 1 つだけになり、システム外部からデータベースへの直接アクセスは制限されます。

システムの定義にプロキシ エンドポイントを追加することは、他のシステムにそのシステムを追加し、そのシステムを含むシステムの配置を評価する際に分散システム デザイナが遵守する制約を定義することに相当します。

ms181883.alert_note(ja-jp,VS.90).gifメモ :

Visual Studio では、実行時にこれらの制約を強制するようなチェックは実行されません。このため、プロキシ エンドポイントとして定義する制約事項が実行時に実際に強制され、システムに属するメンバへのアクセスのセキュリティが確保されていることを確認してください。

ただし、システムを配置するときは、システムとそのプロキシ エンドポイントは、具体的なエンティティとしては存在しません。最終的に、すべてのプロキシ エンドポイントが、その動作をアプリケーション エンドポイントにデリゲートします。配置時に、システムは、システム メンバのエンドポイントに動作をデリゲートします。メンバがシステムである場合、それらのシステムは動作を自身のメンバにデリゲートし、それが繰り返されます。このプロセスにより、任意の数のシステム層に動作をデリゲートできます。配置プロセスにおいて、システムの構成が解決され、接続されるアプリケーション エンドポイントとオーバーライドされるアプリケーション設定だけが残されます。

アプリケーション システムのプロキシ エンドポイント

システム定義にプロキシ エンドポイントを追加すると、追加されたプロキシ エンドポイントとメンバのエンドポイントが代行線で接続されます。プロキシ エンドポイントは、常に、動作をデリゲートして公開しているエンドポイントと同じタイプおよびロールを備えます。たとえば、プロバイダ エンドポイントの動作を公開するプロキシ エンドポイントは、プロバイダ エンドポイントでもあります。代行線は、プロキシ エンドポイントからプロバイダ エンドポイントへの方向を示します。同様に、コンシューマ エンドポイントの動作を公開するプロキシ エンドポイントは、コンシューマ エンドポイントでもあります。代行線は、コンシューマ エンドポイントからプロキシ エンドポイントへの方向を示します。エンドポイントの詳細については、「アプリケーションのエンドポイントの概要」を参照してください。

ms181883.alert_note(ja-jp,VS.90).gifメモ :

メンバが適切に動作し、システムが有効になるためには、一般に、メンバのコンシューマ エンドポイントに、適切なプロバイダ エンドポイントへの接続またはメンバのプロキシ エンドポイントへのデリゲートに対する接続が必要です。ただし、コンシューマ エンドポイントへの接続は省略できます。詳細については、「アプリケーション システム内での通信」を参照してください。

システム定義のプロキシ エンドポイントのデリゲートは、システム定義内の 1 つのメンバに属する単一のエンドポイントに対してのみ行うことができます。システム定義の外部では、公開しているエンドポイント タイプへの接続の場合と同じ規則が適用され、プロキシ エンドポイントは他のエンドポイントに接続できますが、次の追加考慮事項があります。

  • プロバイダ タイプのプロキシ エンドポイントの場合、そのプロキシ エンドポイントを、それを定義するシステムの外部にある 1 つ以上のコンシューマ エンドポイントに接続できます。同時に、そのプロキシ エンドポイントを、外部のシステム定義で別のプロキシ エンドポイントとして公開することもできます。

  • コンシューマ タイプのプロキシ エンドポイントの場合、単一のプロバイダ エンドポイントに接続するか、外部のシステム定義で別のプロキシ エンドポイントとして公開できます。

参照

処理手順

方法 : アプリケーション システムの動作をメンバにデリゲートする

方法 : アプリケーション システムのメンバの動作を公開する

概念

アプリケーション システムの概要

その他の技術情報

アプリケーション システムの動作をデリゲートして公開する