WCF入門-01。WCFのサービスモデルを理解する。

WCFWindows Communication Foundation)について学習していきます。WCFMicroSoftの分散オブジェクト技術の実装のひとつですが、ひらたく言うとクライアントとサーバの間でオブジェクトをやり取りするためのフレームワークです。サーバで作成したクラスのインスタンスを劣化なしにクライアントに渡すことができます。シリアライズ(永続化)について理解があるなら、シリアライズ(永続化)されたオブジェクトを受け渡しするための仕組み。と捕らえると分かりやすいかもしれません。

シリアライズ(永続化)はオブジェクトを保存する技術です。オブジェクトをデータ形式(ファイル、DB、ネットワークストリーム)などに変換、逆変換できます。オブジェクトをデータに変換してサーバからクライアントに転送する。と考えてください。)

過去にも分散オブジェクト技術の実装は多くありました、CORBA、DCOM、.NET Remotingなど。.Net Framework 3.5 で新しく導入された分散オブジェクトの仕組みがWCFです。

基本的な知識としてWCFのサービスモデルを理解する必要があります。用語として最初に覚えておくと便利なので以下にまとめます。サービスモデルとは、サービスへの接続方法、通信プロトコル、インタフェース、サービスの動作を定義するもので、それぞれの要素をWCFではアドレス、コントラクト、バインディング、エンドポイントといいます。

  • アドレス

WCFのサービスのアドレス。http://localhost:8080/WCFService/WCFEndPointと記載します。クライアントはWCFのアドレスに対して要求を行ってサービスの結果を受け取ります。

オブジェクトをやり取りするための型定義。

通信プロトコル。HTTP、HTTPSTCP、名前付きパイプなどが選べます。

  • エンドポイント

アドレス、コントラクト、バインディングを組み合わせたもの。クライアントとサーバの両端を指します。MEX(MetadataExchange)というWCFサービスの型情報を提供するためのエンドポイントもあります。

  • ビヘイビア

サービスの振る舞いを決めます。監査機能やセキュリティ、デバッグ情報などのオプション。WCFサービスの動作を変更します。