.NET Framework 4.5 の Windows Communication Foundation 用語集

次の表に、Windows Communication Foundation のドキュメントで使用する用語の定義を示します。

用語

期間 定義
address メッセージを受信する場所を指定します。 アドレスは、URI (Uniform Resource Identifier) として指定されます。 URI のスキーマ部分では、そのアドレスに到達するために使用するトランスポート機構 (HTTP、TCP など) を指定します。 URI の階層部分には一意の場所が含まれ、その形式はトランスポート機構によって異なります。
アプリケーション エンドポイント アプリケーションによって公開されるエンドポイントです。アプリケーション エンドポイントは、アプリケーションで実装されるサービス コントラクトに対応しています。
動作 動作とは、サービス、エンドポイント、特定の操作、またはクライアントの実行時のさまざまな状況を制御するコンポーネントです。 動作はスコープに従ってグループ化されます。共通動作は、すべてのエンドポイントにグローバルに作用し、サービス動作は、サービスに関連する側面にのみ作用します。また、エンドポイントの動作は、エンドポイントに関連するプロパティにのみ作用し、操作レベルの動作は特定の操作に作用します。
binding WCF サービスとの通信に使用する通信プロトコルを指定します。 バインディングは、バインド要素と呼ばれる一連のコンポーネントで構成されます。各バインド要素を積み重ねることで、通信インフラストラクチャが作成されます。 「エンドポイント」を参照してください。
channel バインド要素の具象実装です。 バインディングは構成を表し、チャネルはその構成に関連付けられた実装です。 したがって、各バインディング要素に関連付けられたチャネルが存在します。 チャネルが積み重ねられて、バインディングの具象実装 (チャネル スタック) が作成されます。
クレーム ベース セキュリティ クレームに基づいて、保護されているリソースへの承認されたアクセスを許可します。
クライアント アプリケーション (client application) クライアント アプリケーションは、1 つ以上のエンドポイントとメッセージを交換するプログラムです。 クライアント アプリケーションは、WCF クライアントのインスタンスを作成し、WCF クライアントのメソッドを呼び出すことによって開始されます。 1 つのアプリケーションがクライアントとサービスの両方として機能できることに注意してください。
コーディング 開発者は、サービスまたはクライアントのすべてのコンポーネントに対する厳密な制御を保持できます。構成によって行われた設定を検査し、必要に応じてコードによってオーバーライドできます。 アプリケーションは、コーディング、構成、またはこの 2 つの組み合わせによって制御できます。
configuration 構成には、コードの作成後、再コンパイルを必要とせずに、開発者以外のユーザー (ネットワーク管理者など) がクライアントとサービスのパラメーターを設定できるという利点があります。 構成では、エンドポイント アドレスなどの値を設定できるだけでなく、エンドポイント、バインディング、および動作の追加が可能であるため、制御を強化することもできます。 アプリケーションは、構成、コーディング、またはこの 2 つの組み合わせによって制御できます。
コントラクト (contract) コントラクトは、特定の種類のコントラクトに対するサポート仕様です。 たとえば、サービス コントラクトは、操作のグループに対する仕様です。 WCF では、コントラクトは階層構造を持ち、これは System.ServiceModel.Description 名前空間に存在する説明オブジェクトにミラー化されています。 サービス コントラクトは、WCF で最も大きなコントラクト スコープです。 サービス コントラクトの各サービス操作には、エラー メッセージを含め、操作により交換されるメッセージとその交換方向を規定した操作コントラクトがあります。 操作の各メッセージには、メッセージ コントラクト、つまり SOAP メッセージ エンベロープの構造仕様があり、個々のメッセージ コントラクトには、メッセージに含まれるデータ構造を規定したデータ コントラクトがあります。
データ コントラクト サービスが使用するデータ型をメタデータに記述して、他のサービスがそのサービスと相互運用できるようにする必要があります。 データ型の記述は、データ コントラクトと呼ばれます。型は、メッセージの任意の部分で使用できます (パラメーターや戻り値の型など)。 サービスが単純型だけを使用している場合、データ コントラクトを明示的に使用する必要はありません。
宣言アプリケーション 命令型の指示を実行することなく、実行時に作成されるように記述されたアプリケーションです。
endpoint WCF サービスとの通信に使用されるアドレス、バインディング、およびコントラクトで構成されます。
エンドポイント アドレス サービスのエンドポイントごとに一意のエンドポイント アドレスを作成できます。また、一定の条件下では、エンドポイント間でアドレスを共有することもできます。
エラー コントラクト エラー コントラクトをサービス操作に関連付けることにより、呼び出し元に返すことのできるエラーを示すことができます。 操作には、0 個以上のエラーを関連付けることができます。 これらのエラーは、プログラミング モデルで例外としてモデル化される SOAP エラーです。 例外は SOAP エラーに変換され、その後、クライアントに送信されます。
ホスティング サービスは、何らかのプロセス内でホストされている必要があります。 ホストは、サービスの有効期間を制御するアプリケーションです。 サービスは、自己ホスト型であっても、既存のホスティング プロセスによって管理されていてもかまいません。
ホスト プロセス ホスティング プロセスとは、サービスをホストするように設計されたアプリケーションです。 ホスティング プロセスには、インターネット インフォメーション サービス (IIS)、Windows アクティブ化サービス (WAS)、Windows サービスなどがあります。 これらのホスト シナリオでは、ホストがサービスの有効期間を制御します。 たとえば、IIS を使用して、サービス アセンブリや構成ファイルを格納する仮想ディレクトリを設定できます。 メッセージを受信すると、IIS はサービスを開始し、その有効期間を制御します。
開始操作 新しいセッションの最初の操作として呼び出される操作です。 開始操作以外の操作は、少なくとも 1 つの開始操作が呼び出された後にしか呼び出すことはできません。
インスタンス化モデル サービスには、インスタンス化モデルが含まれます。 インスタンス化モデルには、1 つの CLR オブジェクトがすべてのクライアントにサービスを提供する "単一モデル"、クライアント呼び出しを処理するために、呼び出しごとに新しい CLR オブジェクトが作成される "呼び出しモデル"、CLR オブジェクトのセットがセッションごとに 1 つ作成される "セッション モデル" の 3 つのモデルがあります。 インスタンス化モデルの選択は、アプリケーション要件とサービスの予想される使用パターンによって異なります。
message メッセージとは、本文やヘッダーなどの複数の部分で構成できるデータの内部格納ユニットです。
メッセージ コントラクト メッセージ コントラクトとは、メッセージの形式を記述したものです。 たとえば、メッセージ要素をヘッダーと本文のどちらに入れるか、メッセージのどの要素にどのレベルのセキュリティを適用するかなどを宣言します。
メッセージ セキュリティ モード メッセージ セキュリティ モードでは、セキュリティ仕様の 1 つまたは複数を実装することによりセキュリティが提供されます。 各メッセージには、メッセージ送信中のセキュリティを確保し、受信側による改ざんの検出とメッセージの復号化を可能にするために必要な機構が含まれます。 この意味で、セキュリティはすべてのメッセージ内にカプセル化されるため、複数のホップにわたるエンド ツー エンドのセキュリティが実現します。 セキュリティ情報はメッセージの一部になるため、メッセージと共に複数の種類の資格情報を含めることもできます (これらはクレームと呼ばれます)。 この方法には、送信元と送信先の間の複数のトランスポートを含め、どのトランスポート上でもメッセージを安全に送信できるという利点もあります。 この方法の欠点は、使用される暗号化機構が複雑であるため、パフォーマンスに影響することです。
metadata サービスのメタデータは、外部エンティティがそのサービスと通信するために認識しておく必要のあるサービスの特性を示します。 ServiceModel メタデータ ユーティリティ ツール (Svcutil.exe) でメタデータを使用することにより、クライアント アプリケーションがサービスとやり取りするために使用できる、WCF クライアントと付随する構成を生成できます。 サービスが公開するメタデータには、サービスのデータ コントラクトが定義された XML スキーマ ドキュメントと、サービスのメソッドが記載された WSDL ドキュメントが含まれます。 メタデータを有効にすると、WCF によってサービスとそのエンドポイントが検査され、サービスのメタデータが自動的に生成されます。 サービスからメタデータを公開するには、メタデータの動作を明示的に有効にする必要があります。
操作コントラクト 操作コントラクトは、操作のパラメーターと戻り値の型を定義します。 サービス コントラクトを定義するインターフェイスの作成時に、コントラクトに含まれる各メソッド定義に T:System.ServiceModel.OperationContractAttribute 属性を適用することによって、操作コントラクトを表します。 各操作は、単一のメッセージを取得し、単一のメッセージを返すようにモデル化することも、一連の型を取得し、型を返すようにモデル化することもできます。 後者の場合、その操作用に交換する必要のあるメッセージの形式がシステムによって決定されます。
投影 (projection) ネットワーク上でのデータの表現です。 たとえば、メッセージは、SOAP 射影では SOAP エンベロープとして送信され、Web 射影では JSON 形式で送信されます。
security WCF のセキュリティには、機密性 (盗聴を防ぐためのメッセージの暗号化)、整合性 (メッセージの改ざんを検出するための手段)、認証 (サービスとクライアントを検証する方法)、承認 (リソースへのアクセスの制御) が含まれます。 これらの機能は、TLS over HTTP (HTTPS とも呼ばれます) などの既存のセキュリティ機構を利用するか、さまざまな WS-* セキュリティ仕様の中から 1 つ以上の仕様を実装することによって実現されます。
自己ホスト サービス 自己ホスト型サービスとは、開発者が作成したプロセス アプリケーション内で実行されるサービスです。 開発者は、サービスの有効期間を制御し、サービスのプロパティを設定します。また、サービスを開き (サービスをリッスン モードに設定する)、サービスを閉じることも開発者が行います。
service 1 つ以上のエンドポイントを公開するプログラムまたはプロセスです。各エンドポイントは、1 つ以上の操作を公開します。
サービス コントラクト サービス コントラクトは、関連する複数の操作を 1 つの機能単位に関連付けます。 コントラクトでは、サービスの名前空間や対応するコールバック コントラクトなど、サービス レベルの設定を定義できます。 ほとんどの場合、開発者は選択したプログラミング言語でインターフェイスを作成し、このインターフェイスに T:System.ServiceModel.ServiceContractAttribute 属性を適用することによって、コントラクトを定義します。 実際のサービス コードは、インターフェイスを実装することによって作成されます。
サービス操作 サービス操作とは、操作の機能を実装するためにサービスのコードに定義された手順です。 この操作は、WCF クライアントのメソッドとしてクライアントに公開されます。 メソッドは、値を返すこともあれば、任意の数の引数を受け取ることもあります。また、引数を受け取らず、応答を返さないこともあります。 たとえば、"Hello" として機能する操作をクライアントの存在の通知として使用したり、一連の操作を開始するために使用したりできます。
システム指定のバインディング WCF には、システム指定のバインディングが多数用意されています。 これらは、特定のシナリオ用に最適化されたバインディング要素の集まりです。 たとえば、T:System.ServiceModel.WSHttpBinding は、さまざまな WS-* 仕様を実装するサービスと相互運用できるようにデザインされています。 これらのバインディングでは、特定のシナリオに適切に適用できるオプションだけが提供されるため、時間を節約できます。 これらのバインディングでは要件が満たされない場合は、独自のカスタム バインドを作成できます。
終了操作 既存セッションの最後のメッセージとして呼び出される操作です。 既定では、WCF は、サービスが関連付けられているセッションが閉じられた後に、サービス オブジェクトとそのコンテキストを再利用します。
トランスポート セキュリティ モード セキュリティは、トランスポート モード、メッセージ セキュリティ モード、およびメッセージ資格情報付きトランスポート モードのいずれかによって提供できます。 トランスポート セキュリティ モードは、トランスポート層の機構 (HTTPS など) によって、機密性、整合性、および認証を提供することを示します。 HTTPS のようなトランスポートを使用する場合、このモードには、パフォーマンスの面で効率的であることと、インターネットで普及しているため、十分に認識されているという利点があります。 欠点は、この種のセキュリティは通信パスの各ホップで個別に適用されるため、通信が "Man-in-the-middle" 攻撃の影響を受けやすくなることです。
メッセージ資格情報付きトランスポート セキュリティ モード このモードは、トランスポート層を使用してメッセージの機密性、認証、および整合性を提供します。各メッセージには、メッセージの受信側で必要とされる複数の資格情報 (クレーム) を含めることができます。
型コンバーター CLR 型は、CLR 型のインスタンスと他の型のインスタンスを変換する 1 つまたは複数の System.ComponentModel.TypeConverter 派生型に関連付けることができます。 型コンバーターは、System.ComponentModel.TypeConverterAttribute 属性を使用して、CLR 型に関連付けられています。 TypeConverterAttribute は、CLR 型またはプロパティで直接指定できます。 プロパティで指定された型コンバーターは、プロパティの CLR 型で指定された型コンバーターよりも常に優先されます。
WCF クライアント WCF クライアントは、サービス操作を (Visual Basic や Visual C# など、開発者が選択した .NET Framework プログラミング言語の) メソッドとして公開するクライアント アプリケーション構造体です。 サービスをホストするアプリケーションも含め、すべてのアプリケーションが WCF クライアントをホストできます。 したがって、他のサービスの WCF クライアントを含むサービスを作成できます。 ServiceModel メタデータ ユーティリティ ツール (Svcutil.exe) を使用し、メタデータを公開する実行中のサービスでメタデータを指定することによって、WCF クライアントを自動的に生成できます。
ワークフロー サービス ワークフロー サービスは、ワークフローとして実装される WCF サービスです。 ワークフローには、WCF メッセージを送受信するメッセージング アクティビティが含まれています。
WS-* WCF に実装された一連の Web サービス (WS) 仕様 (WS-Security や WS-ReliableMessaging など) の略称です。
XAML eXtensible Application Markup Language
XAML スキーマ XAML でカスタム型を定義するために使用されるマークアップ スキーマです。