WCFによるセキュアでリライアブルでトランザクティッドな分散アプリケーションの構築:Windows Communication Foundation概説(3/3 ページ)
セキュリティ、信頼性を高める機能、分散トランザクション機能を解説。最終回のまとめとしてWCFのアーキテクチャを概観。
■3-3. WCFのアーキテクチャ
まずビヘイビアに関してまとめておこう。先にも述べたようにビヘイビアはほかに露出する必要のないサービス内の振る舞いを実装する部分に当たり、下記のような定義を行う個所となる。
- 並列処理、インスタンス制御、スロットリング
- Fault(違反)/Exception(例外)処理
- ユーザーの偽装、認証、認可
- トランザクションの自動参加・投票
今回まだ説明していないインスタンス制御やスロットリングなどの設定も、ビヘイビアにて行う領域となる。すでに見てきたセキュア、リライアブル、トランザクティッドについては、下記の図のように概観することができる。
セキュリティの概念図
WCFによるセキュアなコミュニケーションはこのような仕組みにより実現される。なお、AはAddress(アドレス)、BはBinding(バインディング)、CはContract(コントラクト)、BvはBehavior(ビヘイビア)の略である。
さて、いままで見てきたさまざまな特性がニーズに応じて差し替え可能な点がWCFのアーキテクチャの最も特徴的な部分なのである。
トランスポートの選択(HTTP、HTTPS、TCP、名前付きパイプ(=Named-Pipe)、MSMQ、UDPやSMTPなどのカスタム・トランスポート)、エンコーディングの選択(Text、MTOM、Binary、POXなどのカスタム・メッセージ・エンコーダ)、セキュリティ、リライアビリティ、トランザクションの選択、インスタンシングやスロットリングなどの選択といったさまざまな選択肢が(ものによって相互依存が存在するものもあるが)基本的にはそれぞれの特性を個々に着脱可能なアーキテクチャになっている。ただ自由な半面、逆に複雑さも増す可能性があるため、よく使用されるプリセットの組み合わせを標準のバインディング・セット(basicHttpBinding、wsHttpBinding、netTcpBindingなど)といった形で提供しているといってもよい。
最後にWCFのアーキテクチャを1枚の図にまとめておく。
今回はWS-*を使用した、セキュアでリライアブルでトランザクティッドな分散アプリケーションの構築に関して見ていき、WCFのアーキテクチャを概観してきた。WCFの大きな可能性を感じていただけたのではないだろうか。残念ではあるが、今回をもってWCF概説の連載は終了する(※編集注:WCFのRTM版が提供された段階で、本連載の内容を修正/加筆した改訂版を再掲する予定です)。
本来であれば、このほかにもセッション、インスタンシング、メッセージング・パターン(中でも特にOneWayと非同期双方向メッセージング(Duplex))、WCFの管理面の諸機能、MSMQの使用、Windows CardSpace(WCS)のWCFでのプログラミングなど、まだまだ解説する必要がある項目が多々残っている。
また、WS-*によるほかのプラットフォームとの相互運用性*1や、既存分散テクノロジとの相互運用性、ひいては既存分散テクノロジからの移行方法、および新たなホスティング環境であるWindows Activation Service(WAS)に関する解説も必要である。
*1 Javaサイドから見たWCFとの相互運用に関して興味のある方は、下記のプロジェクトの動向を捕捉していただきたい。
・Project Tango:Web Services Interoperability Technologies(WSIT)
しかしこれらのトピックは概説記事の範囲を超える部分も多々あるため、SDKマニュアルはもとより、マイクロソフトが提供するMSDNや各種書籍や今後の@ITでの記事などを参考にしていただければ幸いである。
本記事の読者の皆さまが、まもなくリリースされるWCFをいち早く習得され、今後のソリューションの現場で適用していただき、導入メリットを享受していただくことを切に願っている。
参考までに各種参考資料のリンクを掲載しておく。まだまだ英語サイトでの情報の方が豊富な状況は変わらないといえるため、英語の情報も捕捉していただければありがたい。
参考資料:
Copyright© Digital Advantage Corp. All Rights Reserved.