WCF

  当社では、最近WCFを使った分散システムの開発を行いましたので、ご紹介いたします。

  ■WCFとは
   WCF(Windows Communication Foundation)はマイクロソフト社の新しい分散テクノロ
   ジーです。
   ポイントはいろいろありますが、可能な限り書きだすと以下のようになります。
    ・マイクロソフト保有の分散テクノロジーを統合および拡張したものである。
    ・サービス志向のアプリケーション開発のフレームワークである。
    ・他のテクノロジーとの相互運用が可能である。
    ・NET Framework 3.5の構成要素である。
     (Windows VistaとWindows Sever2008で標準サポートされている)

  ■開発システム
   ジュースなどの飲料を生産するラインにおいて、品質データを計測し、集計するシステム
   です。
   サーバ側で計測データの収集を行っています。
   クライアント側からサーバ側(WCFでは「サービス」側と呼んでいます)へは2つのインター
   フェイスがあります。
    ・必要な計測データ項目を選択定義します。
    ・データを要求します。

  ■設計 
   「WCFとは」のところで「通信プロトコルに依存しない」といっていましたが、正確にはいろい
   ろなプロトコルを選択できるということです。
   WCFでは「バインディング」要素でプロトコルを指定します。
   ただし、まぎらわしいのですがWCFでバインディングというときの「プロトコル」という用語は
   セキュリティ機構を指しています。
   バインディングとは以下の要素の組み合わせです。
    ・プロトコル
      セキュリティ機構(信頼性の高いメッセージ機構またはトランザクションコンテキストの
      フロー設定)
    ・エンコーディング
      メッセージエンコーディング(テキストまたはバイナリなど)
    ・トランスポート  
      使用する基本のトランスポートプロトコル(TCPやHTTPなど) 

   バインディングの情報は複雑になる可能性があるため、WCFではシステム指定のバインディ
   ングが用意されています。
   確認できているところでは13種あり、アプリケーションの形態やパフォーマンスおよび相互運
   用性などを考慮して決定することになります。  
   今回のシステムではパフォーマンスを重視して、"NetTcpBinding"を採用しました。

  ■開発 
   開発ツールはVisual Studio2008およびVisual Studio Tools for Officeを使用しました。

  本稿作成にはmsdnドキュメントを参考にさせていただきました。
  作成日:2009/02/10