第2回 Azure AppFabricによるオンプレミス連携の適用例

オンプレミス・システムと連携するサンプル・アプリケーション

前回は、Windows Azure platform AppFabricの概要について解説し、簡単なサンプル・アプリケーションの動作確認を行いました。

今回は、以下のシナリオでサンプル・アプリケーションを動作させることで、Azure AppFabricの適用例と実装例を紹介したいと思います。また、WCF(Windows Communication Foundation)についての前提知識が必須であるため、「Code Recipe -.NET開発サンプル コード集」などを参考にしてください。

  • オンプレミス・システムで購買システムが展開されている
  • 上記システム内で期間限定のキャンペーンを実施する

キャンペーンに対応する目的で公開されるシステムは、利用者数が想定できず、またキャンペーン期間終了後は利用されなくなると思われます。このような要件に対応するため、クラウド・サービスの特徴である「使いたいリソースを使いたいときだけ借りられる」という点を生かして、Azure platform上にキャンペーン・システムを構築します。

今回用意したサンプル・アプリケーションは以下の2つです。

  • オンプレミス・システムを想定したサンプル「ThinkITOnPremiseService」
  • Azure platformで動作させるサンプル「ThinkITCampaignService」

ダウンロードはこちら

サンプル・アプリケーションの起動手順は、以下になります。

  1. アプリケーション2つ分の「Web.Config」の設定を編集(※後述)
  2. Visual Studioを起動し、「ThinkITOnPremiseService」を「F5」で実行
  3. Visual Studioをもう1つ起動し、「ThinkITCampaignService」を「F5」で実行

今回はローカル環境での実行を前提としています。AppFabric SDK v1.0を利用したサービスをAzure platform上へデプロイする場合、「Microsoft.ServiceBus.dll」アセンブリをローカル・コピーに設定する必要があるので注意してください。

オンプレミス・システムの設定情報を編集する

「ThinkITOnPremiseService」についての設定方法を説明します。

まず、Web.Configを編集します。Windows Azure platform AppFabricに登録したサービスを利用できるように、「サービス・バスに設定する情報」と「公開サービスの設定」を記述します。
--------------------------------------------------------------------------------
【オンプレミス向けのWeb.Configの設定例】

<!-- (1)サービスバスに設定する情報 -->
  <appSettings>
    <add key="ServicePath" value="ProductService"/>
    <add key="ServiceNamespace" value="thinkitbus"/>
    <add key="IssuerName" value="owner"/>
    <add key="IssuerSecret" value="<Base64エンコードした秘密鍵>"/>
  </appSettings>

<!-- (2)公開サービスの設定 -->
  <system.serviceModel>
    <services>
      <service name="OnPremiseSystem.Services.ProductService">
        <endpoint binding="netTcpRelayBinding" contract="OnPremiseSystem.Services.IProductContract" />
      </service>
    </services>
  </system.serviceModel>
--------------------------------------------------------------------------------

(1)と(2)で設定している情報について、解説します。

(1)第1回で紹介した「Service Namespace(thinkitservice)のパラメータ値」の認証情報と、オンプレミス・システム側での公開サービス名(今回は“OnPremiseSystem.Services.ProductService”)を記述します。

(2)<endpoint>タグ内で、「オンプレミス・システムのエンドポイント」、「サービス・バスのメッセージング形式」、「WCFサービスが公開しているインターフェースの名前空間」を記述します(本稿では割愛しますが、メッセージング形式には一方通行のユニキャストやマルチキャストなどが存在します)。

次ページからは、オンプレミス・システム側のサービスを開発/公開し、Windows Azureと連携させるまでを解説します。

著者について

勇 大地

野村総合研究所(NRI) 勇 大地

野村総合研究所に入社後、主にJava/Webのフレームワーク開発・普及に従事している。プライベートでは.NET系の技術が好きで、Windows AzureやSilverlightに興味を持ち独自に学習している。趣味はひきこもる事で、机の半径2メートル以内が主な生活エリア。

IT Leaders 毎月無料でお届けいたします

本誌は、読者登録いただくことにより、毎月無料でみなさまのお手元まで直接お届けいたします(書店などでは販売していません)。

企業の情報システムを担当する方々や事業部門のIT担当の方々、およびIT関連プロフェッショナルの方々を対象に、実践的に役立つ情報を掲載、幅広く業務にご活用いただけます。

IT Leaders新規購読お申し込みはこちらから