Windows Communication Foundation とはWhat Is Windows Communication Foundation

Windows Communication Foundation (WCF) は、サービス指向アプリケーションを構築するためのフレームワークです。Windows Communication Foundation (WCF) is a framework for building service-oriented applications. WCF を使用すると、サービスエンドポイント間で非同期メッセージとしてデータを送信できます。Using WCF, you can send data as asynchronous messages from one service endpoint to another. サービス エンドポイントには、IIS でホストされている、継続的に使用可能なサービスの一部を使用したり、アプリケーションでホストされているサービスを使用できます。A service endpoint can be part of a continuously available service hosted by IIS, or it can be a service hosted in an application. エンドポイントには、サービス エンドポイントからデータを要求するサービスのクライアントを使用できます。An endpoint can be a client of a service that requests data from a service endpoint. メッセージは XML として送信された 1 文字または 1 語の簡単なものでも、バイナリ データのストリームのような複雑なものでも構いません。The messages can be as simple as a single character or word sent as XML, or as complex as a stream of binary data. サンプル シナリオをいくつか挙げます。A few sample scenarios include:

  • ビジネス トランザクションを処理するセキュリティ保護サービス。A secure service to process business transactions.

  • トラフィック レポートやその他のモニタリング サービスなど、現在のデータを他のサービスに提供するサービス。A service that supplies current data to others, such as a traffic report or other monitoring service.

  • 2 人のユーザーがリアル タイムで通信したりデータを交換したりできるチャット サービス。A chat service that allows two people to communicate or exchange data in real time.

  • データの 1 つ以上のサービスをポーリングし、論理プレゼンテーションで表示するダッシュボード アプリケーション。A dashboard application that polls one or more services for data and presents it in a logical presentation.

  • Windows Workflow Foundation を WCF サービスに使用した、実装されたワークフローの公開。Exposing a workflow implemented using Windows Workflow Foundation as a WCF service.

  • 最新のデータ フィードのサービスをポーリングする Silverlight アプリケーション。A Silverlight application to poll a service for the latest data feeds.

WCF が存在する前にこのようなアプリケーションを作成できるようになりましたが、WCF では、エンドポイントの開発がかつてないほど簡単になりました。While creating such applications was possible prior to the existence of WCF, WCF makes the development of endpoints easier than ever. 要約すると、WCF は、Web サービスと Web サービスクライアントを作成するための管理しやすいアプローチを提供するように設計されています。In summary, WCF is designed to offer a manageable approach to creating Web services and Web service clients.

WCF の機能Features of WCF

WCF には、次の機能セットが含まれています。WCF includes the following set of features. 詳細については、「 WCF 機能の詳細」を参照してください。For more information, see WCF Feature Details.

  • サービス指向Service Orientation

    WS 標準を使用した結果として、WCF では サービス指向 アプリケーションを作成できるようになります。One consequence of using WS standards is that WCF enables you to create service oriented applications. サービス指向アーキテクチャ (SOA) は、データの送受信に Web サービスを使用します。Service-oriented architecture (SOA) is the reliance on Web services to send and receive data. このサービスを使用する一般的な長所は、1 つのアプリケーションから別のアプリケーションへハードコーディングせずに、疎結合にできるということです。The services have the general advantage of being loosely-coupled instead of hard-coded from one application to another. 疎結合リレーションシップでは、必須のコントラクトが一致していれば、任意のプラットフォームで作成した任意のクライアントを任意のサービスに接続できます。A loosely-coupled relationship implies that any client created on any platform can connect to any service as long as the essential contracts are met.

  • 相互運用性Interoperability

    WCF は、Web サービスの相互運用性のための最新の業界標準を実装します。WCF implements modern industry standards for Web service interoperability. サポートされている標準の詳細については、「 相互運用性と統合」を参照してください。For more information about the supported standards, see Interoperability and Integration.

  • 複数のメッセージ パターンMultiple Message Patterns

    メッセージは複数のパターンの 1 つを使用して交換されます。Messages are exchanged in one of several patterns. 最も一般的なパターンは要求/応答パターンです。このパターンでは 1 つのエンドポイントが 2 番目のエンドポイントからデータを要求し、The most common pattern is the request/reply pattern, where one endpoint requests data from a second endpoint. 2 番目のエンドポイントが応答します。The second endpoint replies. その他にも一方向のメッセージなどのパターンがあります。一方向のメッセージでは、1 つのエンドポイントが応答を期待せずにメッセージを送信します。There are other patterns such as a one-way message in which a single endpoint sends a message without any expectation of a reply. より複雑なパターンとして、2 つのエンドポイントが接続を確立し、インスタント メッセージング プログラムのようにデータをやり取りする双方向交換パターンがあります。A more complex pattern is the duplex exchange pattern where two endpoints establish a connection and send data back and forth, similar to an instant messaging program. WCF を使用して異なるメッセージ交換パターンを実装する方法の詳細については、「 コントラクト」を参照してください。For more information about how to implement different message exchange patterns using WCF see Contracts.

  • サービス メタデータService Metadata

    WCF では、WSDL、XML スキーマ、WS-POLICY などの業界標準で指定された形式を使用したサービスメタデータの公開をサポートしています。WCF supports publishing service metadata using formats specified in industry standards such as WSDL, XML Schema and WS-Policy. このメタデータを使用すると、WCF サービスにアクセスするためのクライアントを自動的に生成して構成できます。This metadata can be used to automatically generate and configure clients for accessing WCF services. メタデータは HTTP や HTTPS 上で、または Web サービス メタデータ交換標準を使用して公開できます。Metadata can be published over HTTP and HTTPS or using the Web Service Metadata Exchange standard. 詳細については、「メタデータ」を参照してください。For more information, see Metadata.

  • データ コントラクトData Contracts

    WCF は .NET Framework を使用して構築されているため、適用するコントラクトを提供するコードフレンドリなメソッドも含まれています。Because WCF is built using the .NET Framework, it also includes code-friendly methods of supplying the contracts you want to enforce. 汎用的な型のコントラクトの 1 つにデータ コントラクトがあります。One of the universal types of contracts is the data contract. 本質的に、Visual C# または Visual Basic を使用してサービスをコード化した場合、データを処理する最も簡単な方法は、データ エンティティを表すクラスにデータ エンティティに属するプロパティを作成する方法です。In essence, as you code your service using Visual C# or Visual Basic, the easiest way to handle data is by creating classes that represent a data entity with properties that belong to the data entity. WCF には、この簡単な方法でデータを操作するための包括的なシステムが含まれています。WCF includes a comprehensive system for working with data in this easy manner. データを表すクラスを作成すると、設計したデータ型にクライアントが準拠できるメタデータがサービスによって自動生成されます。Once you have created the classes that represent data, your service automatically generates the metadata that allows clients to comply with the data types you have designed. 詳細については、「 データコントラクトの使用」を参照してください。For more information, see Using Data Contracts.

  • SecuritySecurity

    メッセージを暗号化してプライバシーを保護し、メッセージを受信する前にユーザーが自身を認証することを必須化することができます。Messages can be encrypted to protect privacy and you can require users to authenticate themselves before being allowed to receive messages. SSL や WS-SecureConversation などよく知られた標準を使用してセキュリティを実装できます。Security can be implemented using well-known standards such as SSL or WS-SecureConversation. 詳細については、 セキュリティに関するページを参照してください。For more information, see Security.

  • 複数のトランスポートとエンコーディングMultiple Transports and Encodings

    メッセージは複数の組み込みトランスポート プロトコルおよびエンコーディングのいずれかを使用して送信できます。Messages can be sent on any of several built-in transport protocols and encodings. 最も一般的なプロトコルとエンコーディングは、World Wide Web で使用するために、ハイパーテキスト転送プロトコル (HTTP) を使用して、テキストエンコードされた SOAP メッセージを送信することです。The most common protocol and encoding is to send text encoded SOAP messages using the HyperText Transfer Protocol (HTTP) for use on the World Wide Web. また、WCF では、TCP、名前付きパイプ、または MSMQ を介してメッセージを送信することもできます。Alternatively, WCF allows you to send messages over TCP, named pipes, or MSMQ. これらのメッセージはテキストとしてエンコードするか、最適化されたバイナリ形式を使用することができます。These messages can be encoded as text or using an optimized binary format. バイナリ データは MTOM 標準を使用することで効率的に送信できます。Binary data can be sent efficiently using the MTOM standard. 提供されているトランスポートまたはエンコーディングのいずれもニーズを満たさない場合は、独自のカスタム トランスポートまたはエンコーディングを作成できます。If none of the provided transports or encodings suit your needs you can create your own custom transport or encoding. WCF でサポートされているトランスポートとエンコーディングの詳細については、「 トランスポート」を参照してください。For more information about transports and encodings supported by WCF see Transports.

  • キューに置かれた信頼性のあるメッセージReliable and Queued Messages

    WCF は、WS-Reliable メッセージングおよび MSMQ を使用して実装された信頼できるセッションを使用して、信頼性の高いメッセージ交換をサポートします。WCF supports reliable message exchange using reliable sessions implemented over WS-Reliable Messaging and using MSMQ. WCF での信頼性の高い、キューに置かれたメッセージングサポートの詳細については 、「キューと信頼できるセッション」を参照してください。For more information about reliable and queued messaging support in WCF see Queues and Reliable Sessions.

  • 非揮発性メッセージDurable Messages

    非揮発性メッセージは、通信の中断によって失われることがないメッセージです。A durable message is one that is never lost due to a disruption in the communication. 非揮発性メッセージ パターンのメッセージは常にデータベースに保存されます。The messages in a durable message pattern are always saved to a database. 中断が発生した場合、接続復旧時にデータベースでメッセージの交換を再開できます。If a disruption occurs, the database allows you to resume the message exchange when the connection is restored. Windows Workflow Foundation (WF) を使用して、持続性のあるメッセージを作成することもできます。You can also create a durable message using the Windows Workflow Foundation (WF). 詳細については、「 ワークフローサービス」を参照してください。For more information, see Workflow Services.

  • トランザクションTransactions

    WCF では、AtomicTransactions、名前空間の Api、および Microsoft 分散トランザクションコーディネーターの3つのトランザクションモデルのいずれかを使用したトランザクションもサポートしてい System.Transactions ます。WCF also supports transactions using one of three transaction models: WS-AtomicTransactions, the APIs in the System.Transactions namespace, and Microsoft Distributed Transaction Coordinator. WCF でのトランザクションサポートの詳細については、「 トランザクション」を参照してください。For more information about transaction support in WCF see Transactions.

  • AJAX および REST サポートAJAX and REST Support

    REST は、進化し続ける Web 2.0 テクノロジの一例です。REST is an example of an evolving Web 2.0 technology. SOAP エンベロープにラップされていない "plain" XML データを処理するように WCF を構成できます。WCF can be configured to process "plain" XML data that is not wrapped in a SOAP envelope. また、JSON は、ATOM (一般的な RSS 標準) などの特定の XML 形式や、JavaScript Object Notation (JSON) などの XML 以外の形式をサポートするように拡張することもできます。WCF can also be extended to support specific XML formats, such as ATOM (a popular RSS standard), and even non-XML formats, such as JavaScript Object Notation (JSON).

  • 拡張性Extensibility

    WCF アーキテクチャには、多くの機能拡張ポイントがあります。The WCF architecture has a number of extensibility points. 追加の機能が必要になった場合、サービスの動作をカスタマイズできる多数のエントリ ポイントがあります。If extra capability is required, there are a number of entry points that allow you to customize the behavior of a service. 使用可能な拡張ポイントの詳細については、「 WCF の拡張」を参照してください。For more information about available extensibility points see Extending WCF.

WCF と他のマイクロソフト テクノロジと統合WCF Integration with Other Microsoft Technologies

WCF は柔軟なプラットフォームです。WCF is a flexible platform. この柔軟性により、WCF は他のいくつかの Microsoft 製品でも使用されています。Because of this extreme flexibility, WCF is also used in several other Microsoft products. WCF の基本を理解することで、これらの製品のいずれかを使用する場合でもすぐに利点が得られます。By understanding the basics of WCF, you have an immediate advantage if you also use any of these products.

WCF とペアにする最初のテクノロジは、Windows Workflow Foundation (WF) でした。The first technology to pair with WCF was the Windows Workflow Foundation (WF). ワークフローは、ワークフローのステップを "アクティビティ" としてカプセル化することで、アプリケーション開発を簡素化します。Workflows simplify application development by encapsulating steps in the workflow as "activities." Windows Workflow Foundation の最初のバージョンでは、開発者がワークフローのホストを作成する必要がありました。In the first version of Windows Workflow Foundation, a developer had to create a host for the workflow. 次のバージョンの Windows Workflow Foundation は、WCF と統合されました。The next version of Windows Workflow Foundation was integrated with WCF. これにより、任意のワークフローを WCF サービスで簡単にホストできるようになりました。That allowed any workflow to be easily hosted in a WCF service. これを行うには、Visual Studio 2012 以降で WF/WCF プロジェクトの種類を自動的に選択します。You can do this by automatically choosing the WF/WCF project type in Visual Studio 2012 or later.

Microsoft BizTalk Server R2 は、通信テクノロジとして WCF も利用しています。Microsoft BizTalk Server R2 also utilizes WCF as a communication technology. BizTalk は、1 つの標準化形式のデータを受け取り、別の形式に変換するように設計されています。BizTalk is designed to receive and transform data from one standardized format to another. メッセージは、厳密なマッピングか、またはワークフロー エンジンなどの BizTalk 機能の 1 つを使用してメッセージを変換できる、中央管理のメッセージ ボックスに配信する必要があります。Messages must be delivered to its central message box where the message can be transformed using either a strict mapping or by using one of the BizTalk features such as its workflow engine. BizTalk では、WCF 基幹業務 (LOB) アダプターを使用してメッセージボックスにメッセージを配信できるようになりました。BizTalk can now use the WCF Line of Business (LOB) adapter to deliver messages to the message box.

Microsoft Silverlight は開発者がストリーミング ビデオなどメディアを多用する Web サイトを作成できる、相互運用が可能で充実した Web アプリケーションを作成するためのプラットフォームです。Microsoft Silverlight is a platform for creating interoperable, rich Web applications that allow developers to create media-intensive Web sites (such as streaming video). バージョン2以降、silverlight は wcf を通信テクノロジとして組み込み、Silverlight アプリケーションを WCF エンドポイントに接続します。Beginning with version 2, Silverlight has incorporated WCF as a communication technology to connect Silverlight applications to WCF endpoints.

Windows Server AppFabric アプリケーションサーバーのホスト機能は、通信に WCF を使用するアプリケーションを展開および管理するために特に設計されています。The hosting features of Windows Server AppFabric application server are specifically designed for deploying and managing applications that use WCF for communication. ホスト機能には、WCF 対応アプリケーション向けに設計された豊富なツールおよび構成オプションが含まれています。The hosting features include rich tooling and configuration options specifically designed for WCF-enabled applications.

関連項目See also