書籍転載
Windows Azure 実践クラウド・プログラミング
for C#/Visual Basic/PHP

Windows Azure Platform AppFabricの機能と導入
― Chapter 6 Azureアプリケーションの拡張と運用(前編) ―

山田 祥寛
2010/10/13
Page1 Page2

本コーナーは、秀和システム発行の書籍『Windows Azure 実践クラウド・プログラミング for C#/Visual Basic/PHP』の中から、特にInsider.NET読者に有用だと考えられる章や個所をInsider.NET編集部が選び、同社の許可を得て転載したものです。基本的に元の文章をそのまま転載していますが、レイアウト上の理由などで文章の記述を変更している部分(例:「上の図」など)や、図の位置などを本サイトのデザインに合わせている部分が若干ありますので、ご了承ください。『Windows Azure 実践クラウド・プログラミング』の詳細は「目次情報ページ」もしくは秀和システムのサイトをご覧ください。

ご注意:本記事は、書籍の内容を改変することなく、そのまま転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。

6-6 Azure AppFabricによるオンプレミス−クラウド連携

 現実的な開発の局面では、すべての機能をクラウド環境だけで完結できるケースは稀でしょう。法規制や企業内ポリシーなどの理由からデータをクラウドに移行できないというケースはよくあります。そもそも既存のシステム資産をワンポイントでクラウドに移行させるのは、現実的ではありません。今後、クラウドの利用がより浸透したとしても、オンプレミス(自社運用システム)とクラウドとの連携は欠かすことのできないテーマです。

 Windows Azure Platform AppFabric(以降、Azure AppFabric)は、一言で言うならば、このオンプレミス−クラウド連携をサポートするためのサービスです*60。オンプレミス向けの製品として、Windows Server 2008 R2対応のWindows Server AppFabricが提供されていますが、そのクラウド版と捉えても良いでしょう。具体的には、ファイアウォール内外のサービス連携、シングルサインオンなどの機能を提供します。

*60 従来は.NET Servicesと呼ばれていたサービスが正式リリースに伴い、現在の名称に変更されました。

Azure AppFabricの機能

 執筆時点でAzure AppFabricが提供しているのは、「サービスバス」と「アクセスコントロール」です。将来的には、Windows Server AppFabricで提供されている、

  • WF(Windows Workflow Foundation*61)によるワークフロー
  • 分散型のインメモリキャッシュ

などの機能も追加される予定ですが、以下ではまず、現時点で利用可能なサービスについてのみ解説します。

*61 ワークフローをモデル化して扱うためのフレームワークです。詳細は以下の記事も参考にしてください。「Visual Studio 2008で標準搭載されたWindows Workflow Foundation

(1)サービスバス

 サービスバスは、オンプレミス、またはクラウドで公開されているサービスに対するアクセスを中継するための機能を提供します。具体的には、以下のような機能が含まれます。

機能 概要
サービスレジストリ サービスの情報(エンドポイント)を管理
ネーミング サービスの名前解決を管理
メッセージング サービスへのリクエストを中継
表6-15 サービスバスの主な機能

図6-33:サービスバス

 サービスバスを利用するには、まずサービス側でサービスレジストリに対してエンドポイント(リクエストの受け口)情報を登録する必要があります。登録は接続のタイミングで動的に行われますので、静的なアドレス情報などをあらかじめ登録しておく必要はありません。

 サービスバスでは、サービスを登録する際に、サービスに対して、以下のような仮想的なURIを割り当てます(ネーミング)。

sb://サービス名前空間.servicebus.windows.net/サービス名

 サービスの利用者(クライアント)がリクエストを行うのも、ここで割り当てられた仮想URIに対してです。サービスバスはクライアントからのリクエストを受け付けると、レジストリ情報によって名前解決し、本来のサービスに対してメッセージを中継/送信します(メッセージング)。

 このように、サービスバスとは仮想URIを介して、サービス提供者とクライアントアプリケーションとのやりとりを橋渡しするサービスであるともいえます*62

*62 まさに、SOA(Service Oriented Architecture)で言うところのESB(Enterprise Service Bus)に相当する機能と考えても良いでしょう。

(2)アクセスコントロール

 アクセスコントロールは、複数のアプリケーションに対して、共通の認証機能(シングルサインオン)を提供するためのサービスです。アクセスコントロールでは、セキュリティ情報を含んだトークンを介して認証を管理するのが基本です*63

*63 セキュリティトークンサービス(Security Token Service。STS)とも呼ばれます。

 具体的な認証の流れについても鳥瞰してみましょう。

図6-34:アクセスコントロール

 アクセスコントロールを利用するに先立って、認証を要求するサービス(Relaying Party)は、まず自分自身の認証トークンをアクセスコントロールに登録しておく必要があります。

 クライアントの側でも、Relaying Partyにアクセスするにあたって、(直接にRelaying Partyに認証を求めるのではなく)まずアクセスコントロールに対してトークンの要求を行います。アクセスコントロールではクライアントから送信された情報(ユーザ名やパスワードなど)に基づいてトークンを発行しますので、クライアントもこのトークンを用いて、Relaying Partyに対してアクセスするわけです。Relaying Partyでは提示されたトークンに応じて、クライアントにアクセス権限を付与します。

 アクセスコントロールとは、認証トークン(いわゆる切符)の受け渡しを管理するためのサービスであると言っても良いでしょう*64

*64 アクセスコントロールに関する詳細は、以下の記事も参考になります。「Windows Azure Platform AppFabric に触れる 〜アクセス コントロールによる認証の実現


 INDEX
  [書籍転載]Windows Azure 実践クラウド・プログラミング for C#/Visual Basic/PHP
  Windows Azure Platform AppFabricの機能と導入
  1.Azure AppFabricの機能
    2.Azure AppFabric利用の事前準備

インデックス・ページヘ 「Windows Azure 実践クラウド・プログラミング for C#/Visual Basic/PHP」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間