SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Windows Azure新機能チュートリアル

Windows Azure AppFabricサービスバスでオンプレミス連携

Windows Azure 新機能チュートリアル(9)

メッセージ中継の方式

 それでは、具体的な連携方式について解説していきます。AppFabricサービスバスは、WCFをベースとした技術であるため、バインディングと呼ばれるいくつかのサービス提供方法(通信プロトコル)が用意されています(表1)。WCFに詳しい方なら、WCFのバイディングに対し「Relay」が付加されていることに気づくと思われますが、まさにこの「Relay」がサービスバスを中継してやりとりすることを表しているのです。

表1 バインディングの比較
リレーバインディング WCF標準バインディングとの対応 概要
NetOnewayRelayBinding なし 片方向
NetEventRelayBinding なし 片方向マルチキャスト
NetTcpRelayBinding NetTcpBinding Tcp
BasicHttpRelayBinding BasicHttpBinding WS-I Basic Profile 1.1
WebHttpRelayBinding WebHttpBinding RESTベース
WSHttpRelayBinding WSHttpBinding WS-*ベース
WS2007HttpRelayBinding WS2007HttpBinding WSHttpの拡張版

 NetOnewayRelayBinding/NetEventRelayBindingバインディングは、WCFには用意されていないバインディングです。片方向メッセージや同報メッセージを扱うことができます。NetTcpRelayBindingは、相互運用が必要でない.NET Framework同士での連携に適しています。

 Httpを含む各バインディングは、Webベースの標準的なプロトコルをサポートします。.NET以外との相互運用をする場合には、利用するプロトコルに応じてバインディングを選択できます。

 これ以外にも、AppFabricサービスバス独自のREST APIベースで利用できるMessageBuffer、Queue、Topicといった機能も用意されていますが、これらについては省略します。

サービスバスの準備

 サンプルプログラムの説明に先立って、AppFabricサービスバスの管理について説明します。AppFabricサービスバスの管理は、通常のWindows Azureと同じく「管理ポータル」から行います。

 管理ポータルを開き、[サービスバス、アクセス制御、キャッシュ]を選択すると、AppFabricのツリーが表示されます(図2)。ツリーから、[サービスバス]を選択すると、AppFabricサービスバスの管理画面になります。

図2:AppFabricサービスバス管理ポータル
図2:AppFabricサービスバス管理ポータル

サービス名前空間の作成

 AppFabricサービスバスを利用するためには、サービス名前空間(Service Namespace)を作成する必要があります。サービス名前空間は、他のAppFabricサービスであるアクセス制御、キャッシュと共用することもできますが、ここではAppFabricサービスバス専用の名前空間を作成してみましょう。

 リボンから[新規作成]ボタンをクリックします。サービス名前空間の作成ダイアログが表示されます(図3)。

図3:新しいサービス名前空間の作成
図3:新しいサービス名前空間の作成
  1. 利用可能なサービスから、[サービスバス]をチェックします。
  2. 全般プロパティの[名前空間]に、利用したい名前を入力します。この名前はAzureサービスで一意である必要があります。[使用可能かどうかの確認]ボタンをクリックして、「利用可能」と表示されれば問題ありません。また、[国/地域]からはAppFabricサービスバスを配置する場所を選択します。
  3. [サービスバス-接続パックサイズ]からは、接続パック数(注2)を選択します。契約プランによっては、無料で利用できる接続パックがあります。ここでは、「0接続」を選択しますが、利用しているプランを確認して選択してください。

 [名前空間の作成]ボタンをクリックし、しばらくして状態欄が「アクティブ」になれば作成完了です。

注2

 接続パック数の詳細は、Windows Azure AppFabricのFAQを参照してください。

 また、サービス名前空間の削除は、リボンの[削除]ボタンをクリックすることで削除できます。検証が完了しサービス名前空間が不要になった場合には、サービス名前空間を削除してください。

AppFabric SDKのインストール

 AppFabricサービスの利用には、Windows Azure SDKとは別に、Windows Azure AppFabric SDKが必要です。現在、並行して以下の2つのバージョンのSDKが提供されています。

 最新のSDK 1.5はサービスバスが提供するすべての機能を利用できますが、.NET Framework 4向けのアセンブリのみの提供です。.NET Framework 3.5からサービスバスを利用したい場合は、SDK 1.0を利用する必要がありますが、新規に追加されたQueue/Topicといった機能が利用できません。

 上記のURLからは、32bitと64bit環境向けのインストーラがダウンロードできます。お使いの環境に合わせてインストールしてください。

サービスバスの構成設定

 最新のSDK 1.5から、インストール時にサービスバスの設定が、マシン構成ファイル(Machine.config)(注3)に対して行われなくなりました。これにより、SDK 1.0までは特別な設定をしなくても動作していたプログラムが、SDK 1.5から動作しない場合があります。SDK1.5の場合は、あらかじめ以下のいずれかの方法を実施しておく必要があります。

注3

 マシン構成ファイルとは、OS全体の構成設定に利用されるコンフィグファイルです。通常は、「%SYSTEMROOT%systemroot\Microsoft .NET\Framework\バージョン\CONFIG\Machine.config」に格納されています。

[1]RelayConfigurationInstallerの実行

 サービスバスのインストールフォルダに、RelayConfigurationInstaller.exeが格納されています。管理者権限で実行することにより、必要な設定がマシン構成ファイルに対して行われます。64bitの開発環境を利用している場合は、32bitモード向けの構成変更も必要となるため、32bit向けの実行ファイルも併せて実行してください。

[2]アプリケーション構成ファイルにサービスバスの設定を追加

 SDK 1.5からは、アプリケーション構成ファイルにサービスバスの設定が可能になりました。以下のURLからサービスバスの定義をアプリケーション構成ファイルにコピーすることで、サービスバスの構成設定が可能です。

 上記URLから、リスト1のextension要素全体をコピーし、アプリケーション構成ファイルのsystem.ServiceModel要素に追加してください。

[リスト1]
<system.serviceModel>
<extensions>
    <behaviorExtensions>
      <add name="connectionStatusBehavior" ... />
      <add name="transportClientEndpointBehavior" ... />
    ….
</extension>
</ystem.serviceModel>

 また、AppFabricサービスバスのアセンブリは、「C:\Program Files\Windows Azure AppFabric SDK\V1.5\Assemblies\NET4.0」にインストールされます。AppFabricサービスバスを利用してプログラムするためには、ここの格納された「Microsoft.ServiceBus.dll」を参照設定してください。

 本稿では、AppFabric SDK 1.5を使用し、[2]の方法でサービスバスの構成設定を行っています。SDK 1.0を利用する場合には、特にこれらの設定をしなくても特に必要ありません。

次のページ
サービスバスの利用

この記事は参考になりましたか?

Windows Azure新機能チュートリアル連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト statemachine(statemachine)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/6225 2011/10/26 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー