はじめに
Windows Azure AppFabricとは、Windows Azureを構成するミドルウェアサービス群です。現在、アクセスコントロール、サービスバス、キャッシングと3つの機能が提供されています。本稿ではこのうち、システム間連携における必須機能となるサービスバスについて解説します。
対象読者
- Windows Azureの新機能に興味のある方
- Windows Azureのサブスクリプションを持っており、Azureを利用したことがある方
必要な環境
- Windows Azureサブスクリプション
- Visual Studio 2010もしくは、Visual Web Developer 2010 Express
- Windows Azure Tools for Microsoft Visual Studio 2011 1.5(2011年9月 - Windows Azure SDK 1.5含む)
- Windows Azure AppFabric SDK 1.5
AppFabricサービスバス
Windows Azure AppFabric サービスバス(以降、AppFabricサービスバス)とは、Windows Azureを構成するミドルウェアサービスの一つです。一般的にサービスバスと言えば、複数サービスを連携し、メッセージ通信を実現するものですが、AppFabricサービスバスも同様なことを実現できます。
サービスとクライアントは、オンプレミスシステムでも構いませんし、Windows Azureでも他クラウドシステムでも構いません。各システム間をシームレスに連携できます。また、.NET Framework以外からも利用できる標準的なプロトコルを用意しているため、Javaベースのシステムなどからも連携可能です。
通常オンプレミスのシステムと連携する時に問題となるのが、ファイアーウォールやNATですが、AppFabricサービスバスは、特にインバウンドのポートを解放(注1)することなくオンプレミスからサービス登録し提供できます。
厳密に言うと、サービス、クライアント側または利用するバインディング(後述)によって利用するポートが異なりますが、TCP/9350-9353番、HTTP/HTTPSのアウトバンドポートが解放されていれば問題ありません。
図1は、AppFabricサービスバスの概念図です。サービス提供者は、あらかじめAppFabricサービスバスのサービス名前空間を作成し、サービス名前空間に対してサービスを登録します。このとき、AppFabricサービスバスによってURIが割り当てられます。
サービス利用者(クライアント)は、サービスに対して割り当てられたURIに対して、サービスを要求します。そうすると、クライアントからの要求はAppFabricサービスバスを介して、サービス側に中継されます。このようにAppFabricサービスバスは、サービス提供者とクライアント間を橋渡しするサービスなのです。このような機能によって、クラウド間における連携システムや、クラウド-オンプレミス間の連携システムを容易に実装することが可能となります。
AppFabricサービスバスは、WCFをベースした技術であるため、これ以降の説明を理解するためにはWCFの理解が必要となります。本稿ではコード理解のための最小限の解説にとどめるため、詳細は、以下のURLなど参考にしてください。