WCF-概要

WCFは、Windows CommunicationFoundationの略です。WCFの基本的な機能は、相互運用性です。これは、サービス指向アプリケーションの構築に使用されるMicrosoftの最新テクノロジの1つです。WCFは、HTTP要求が均一に表現されるメッセージベースの通信の概念に基づいており、さまざまな転送メカニズムに関係なく、統一されたAPIを使用できます。

WCFは、Windows Vistaの.NETフレームワークの一部として2006年に初めてリリースされ、その後数回更新されました。WCF 4.5は、現在広く使用されている最新バージョンです。

WCFアプリケーションは3つのコンポーネントで構成されています-

  • WCFサービス、
  • WCFサービスホスト、および
  • WCFサービスクライアント。

WCFプラットフォームは、サービスモデルとも呼ばれます。

WCFの基本概念

メッセージ

本体とは別のパーツで構成された通信ユニットです。メッセージインスタンスは、クライアントとサービス間のすべてのタイプの通信に対して送信および受信されます。

終点

メッセージを送信または受信するアドレスを定義します。また、メッセージのセットを定義するとともに、メッセージの送信方法を説明する通信メカニズムも指定します。エンドポイントの構造は、次の部分で構成されています-

住所

アドレスは、メッセージを受信する正確な場所を指定し、Uniform Resource Identifier(URI)として指定されます。これは、scheme:// domain [:port] / [path]として表されます。下記の住所をご覧ください−

net.tcp:// localhost:9000 / ServiceA

ここで、「net.tcp」はTCPプロトコルのスキームです。ドメインは「localhost」で、マシンまたはWebドメインの名前にすることができ、パスは「ServiceA」です。

製本

エンドポイントが通信する方法を定義します。これは、通信のインフラストラクチャを構成するいくつかのバインディング要素で構成されています。たとえば、バインディングは、TCP、HTTPなどのトランスポートに使用されるプロトコル、メッセージエンコーディングの形式、セキュリティと信頼性に関連するプロトコルを示します。

契約

これは、エンドポイントがクライアントに公開する機能を指定する操作のコレクションです。通常、インターフェイス名で構成されます。

ホスティング

WCFの観点からのホスティングとは、セルフホスティング、IISホスティング、WASホスティングなどの多くの利用可能なオプションを介して実行できるWCFサービスホスティングを指します。

メタデータ

これは、クライアントアプリケーションとWCFサービス間の簡単な対話を容易にするため、WCFの重要な概念です。通常、WCFサービスのメタデータは、有効にすると自動的に生成されます。これは、サービスとそのエンドポイントの検査によって行われます。

WCFクライアント

メソッドの形式でサービス操作を公開するために作成されるクライアントアプリケーションは、WCFクライアントと呼ばれます。これは、サービスホスティングを行うアプリケーションを含め、どのアプリケーションでもホストできます。

チャネル

チャネルは、クライアントがサービスと通信するための媒体です。さまざまなタイプのチャネルがスタックされ、チャネルスタックと呼ばれます。

石鹸

「SimpleObjectAccess Protocol」と呼ばれていますが、SOAPはトランスポートプロトコルではありません。代わりに、ヘッダーと本文のセクションで構成されるXMLドキュメントです。

WCFの利点

  • 他のサービスとの相互運用性があります。これは、クライアントとサービスの両方に.Netが必要な.NETRemotingとはまったく対照的です。

  • WCFサービスは、ASMX(Active Server Methods)Webサービスと比較して、信頼性とセキュリティを強化しています。

  • WCFでセキュリティモデルとバインディングの変更を実装する場合、コーディングを大幅に変更する必要はありません。制約を満たすために必要な構成の変更はわずかです。

  • WCFにはロギングメカニズムが組み込まれていますが、他のテクノロジーでは、必要なコーディングを行うことが不可欠です。

  • WCFは、AJAXとJSON(JavaScriptオブジェクト表記)のサポートを統合しています。

  • これは、スケーラビリティと今後のWebサービス標準のサポートを提供します。

  • 非常に堅牢なデフォルトのセキュリティメカニズムがあります。