Windows Communication Foundation とは
Windows Communication Foundation (WCF) は、サービス指向アプリケーションを構築するためのフレームワークです。WCF を使用すると、1 つのサービス エンドポイントから別のサービス エンドポイントに非同期メッセージとしてデータを送信できます。サービス エンドポイントには、IIS でホストされている、継続的に使用可能なサービスの一部を使用したり、アプリケーションでホストされているサービスを使用できます。エンドポイントには、サービス エンドポイントからデータを要求するサービスのクライアントを使用できます。メッセージは XML として送信された 1 文字または 1 語の簡単なものでも、バイナリ データのストリームのような複雑なものでも構いません。サンプル シナリオをいくつか挙げます。
ビジネス トランザクションを処理するセキュリティ保護サービス。
トラフィック レポートやその他のモニタリング サービスなど、現在のデータを他のサービスに提供するサービス。
2 人のユーザーがリアル タイムで通信したりデータを交換したりできるチャット サービス。
データの 1 つ以上のサービスをポーリングし、論理プレゼンテーションで表示するダッシュボード アプリケーション。
Windows Workflow Foundation を WCF サービスに使用した、実装されたワークフローの公開。
最新のデータ フィードのサービスをポーリングする Silverlight アプリケーション。
WCF が登場する前もそのようなアプリケーションの作成は可能でしたが、WCF によってエンドポイントの開発が一段と簡単になりました。要約すると、WCF は Web サービスと Web サービス クライアントを作成するための管理しやすいアプローチを提供するように設計されています。
WCF の機能
WCF には次の機能セットがあります。詳細については、次のトピックを参照してください。 WCF 機能の詳細.
サービス指向
WS 標準を使用する結果として、WCF を使用してサービス指向アプリケーションを作成できます。サービス指向アーキテクチャ (SOA) は、データの送受信に Web サービスを使用します。このサービスを使用する一般的な長所は、1 つのアプリケーションから別のアプリケーションへハードコーディングせずに、疎結合にできるということです。疎結合リレーションシップでは、必須のコントラクトが一致していれば、任意のプラットフォームで作成した任意のクライアントを任意のサービスに接続できます。
相互運用性
WCF は、Web サービスの相互運用性を図るために、最新の業界標準を実装しています。サポートされている標準詳細情報、「相互運用性と統合」を参照してください。
複数のメッセージ パターン
メッセージは複数のパターンの 1 つを使用して交換されます。最も一般的なパターンは要求/応答パターンです。このパターンでは 1 つのエンドポイントが 2 番目のエンドポイントからデータを要求し、2 番目のエンドポイントが応答します。その他にも一方向のメッセージなどのパターンがあります。一方向のメッセージでは、1 つのエンドポイントが応答を期待せずにメッセージを送信します。より複雑なパターンとして、2 つのエンドポイントが接続を確立し、インスタント メッセージング プログラムのようにデータをやり取りする双方向交換パターンがあります。WCF を使用した異なるメッセージ交換パターンの実装方法詳細情報、「コントラクト」を参照してください。
サービス メタデータ
WCF では、WSDL、XML スキーマ、WS-Policy などの業界標準で指定された形式を使用するサービス メタデータの公開をサポートしています。このメタデータを使用して、WCF サービスにアクセスするためのクライアントを自動生成および構成できます。メタデータは HTTP や HTTPS 上で、または Web サービス メタデータ交換標準を使用して公開できます。詳細については、次のトピックを参照してください。 メタデータ.
データ コントラクト
WCF は .NET Framework を使用して作成されているため、適用するコントラクトを提供するコードフレンドリなメソッドが含まれています。汎用的な型のコントラクトの 1 つにデータ コントラクトがあります。本質的に、Visual C# または Visual Basic を使用してサービスをコード化した場合、データを処理する最も簡単な方法は、データ エンティティを表すクラスにデータ エンティティに属するプロパティを作成する方法です。WCF には、このような簡単な方法でデータを使用する包括的なシステムがあります。データを表すクラスを作成すると、設計したデータ型にクライアントが準拠できるメタデータがサービスによって自動生成されます。詳細については、次のトピックを参照してください。 データ コントラクトの使用
セキュリティ
メッセージを暗号化してプライバシーを保護し、メッセージを受信する前にユーザーが自身を認証することを必須化することができます。SSL や WS-SecureConversation などよく知られた標準を使用してセキュリティを実装できます。詳細については、次のトピックを参照してください。 Windows Communication Foundation セキュリティ.
複数のトランスポートとエンコーディング
メッセージは複数の組み込みトランスポート プロトコルおよびエンコーディングのいずれかを使用して送信できます。最も一般的なプロトコルとエンコーディングは、World Wide Web で HTTP (ハイパーテキスト転送プロトコル) を使用して、テキスト エンコードされた SOAP メッセージを送信するものです。また、WCF では、TCP、名前付きパイプ、MSMQ でメッセージを送信することもできます。これらのメッセージはテキストとしてエンコードするか、最適化されたバイナリ形式を使用することができます。バイナリ データは MTOM 標準を使用することで効率的に送信できます。提供されているトランスポートまたはエンコーディングのいずれもニーズを満たさない場合は、自身のカスタム トランスポートまたはエンコーディングを作成できます。WCF でサポートされているトランスポートとエンコーディング詳細情報、「Windows Communication Foundation のトランスポート」を参照してください。
キューに置かれた信頼性のあるメッセージ
WCF では、WS-Reliable Messaging 経由で MSMQ を使用して実装された、信頼性の高いセッションで信頼性の高いメッセージ交換をサポートしています。WCF でサポートされている、キューに置かれた信頼性の高いメッセージング詳細情報、「キューと信頼できるセッション」を参照してください。
非揮発性メッセージ
非揮発性メッセージは、通信の中断によって失われることがないメッセージです。非揮発性メッセージ パターンのメッセージは常にデータベースに保存されます。中断が発生した場合、接続復旧時にデータベースでメッセージの交換を再開できます。Windows Workflow Foundation (WF) を使用して非揮発性メッセージを作成することもできます。詳細については、次のトピックを参照してください。 ワークフロー サービス.
トランザクション
WCF では、3 つのトランザクション モデル、WS-AtomicTtransactions、System.Transactions 名前空間の API、および Microsoft 分散トランザクション コーディネーターの 1 つを使用したトランザクションもサポートしています。WCF でサポートされているトランザクション詳細情報、「トランザクション」を参照してください。
AJAX および REST サポート
REST は、進化し続ける Web 2.0 テクノロジの一例です。SOAP エンベロープにラップされていない "書式なし" XML データを処理するように WCF を構成できます。また、WCF を拡張して、ATOM (一般的な RSS 標準) などの特定の XML 形式や、JSON (JavaScript Object Notation) などの XML 以外の形式をサポートすることもできます。
機能拡張
WCF アーキテクチャーには多数の機能拡張ポイントがあります。追加の機能が必要になった場合、サービスの動作をカスタマイズできる多数のエントリ ポイントがあります。使用可能な拡張機能ポイント詳細情報、「WCF の拡張」を参照してください。
WCF と他のマイクロソフト テクノロジと統合
WCF は柔軟性の高いプラットフォームです。この柔軟性を活かして、WCF は他のいくつかの Microsoft 製品でも使用されています。WCF の基本を理解することで、これらの製品を使用するときにもすぐにこの利点を活用できます。
WCF とペアを組んでいる最初のテクノロジは、Windows Workflow Foundation (WF) です。ワークフローではワークフローの手順を「アクティビティ」としてカプセル化することで、アプリケーション開発を簡単にできます。Windows Workflow Foundation の最初のバージョンでは、開発者がワークフローのホストを作成しなければなりませんでした。次のバージョンの Windows Workflow Foundation は WCF と統合されました。これにより、任意のワークフローを簡単に WCF サービスでホストできるようになりました。これは Visual Studio 2010 と Visual Studio 2010 で WF/WCF のプロジェクトの種類を選択することで、自動的に実行できます。
Microsoft BizTalk Server R2 も WCF を通信テクノロジに使用しています。BizTalk は、1 つの標準化形式のデータを受け取り、別の形式に変換するように設計されています。メッセージは、厳密なマッピングか、またはワークフロー エンジンなどの BizTalk 機能の 1 つを使用してメッセージを変換できる、中央管理のメッセージ ボックスに配信する必要があります。BizTalk では、WCF 業務基幹 (LOB) アダプターを使用してメッセージをメッセージ ボックスに配信できます。
Microsoft Silverlight は開発者がストリーミング ビデオなどメディアを多用する Web サイトを作成できる、相互運用が可能で充実した Web アプリケーションを作成するためのプラットフォームです。バージョン 2 以降、Silverlight は WCF を通信テクノロジに組み込み、Silverlight アプリケーションを WCF エンドポイントに接続するようになりました。
Microsoft .NET Services は WCF を使用してインターネット対応アプリケーションを構築するクラウド コンピューティング イニシアティブです。.NET Services を使用して、信頼の境界全体で機能する WCF サービスを作成します。
Windows Server AppFabric のホスト機能 アプリケーション サーバーは、WCF を通信に使用するアプリケーションを配置および管理するために特別に構築されています。ホスト機能 には、WCF 対応アプリケーションに合わせて特別に設計された豊富なツールおよび構成オプションが揃っています。
参照
リファレンス
概念
Windows Communication Foundation の基本概念
Windows Communication Foundation のアーキテクチャ
ドキュメントのガイド
その他のリソース
ガイドラインとベスト プラクティス
チュートリアル入門
基本的な WCF プログラミング
Windows Communication Foundation Samples