サービスバス - Microsoft

T1-304
マイクロソフト株式会社
デベロッパー&プラットフォーム統括本部
エバンジェリスト
中原 幹雄
http://blogs.msdn.com/mikion/
.NET Services とは?
.NET Services の主要な機能
サービス バス
アクセス コントロール サービス
ワークフロー サービス
まとめ
インターネット スケールのサービスバス
オンプレミス ホステッドなサービスをクラウ
ド ベースで利用可能にする
クラウド ホステッドなサービスも接続可能
サービスバス
サービスの登録・公開とクライアント⇔サービス間
のメッセージ中継
アクセス コントロール サービス
Claims ベースの ID フェデレーションによる
サービスへのアクセス権限管理
ワークフロー サービス
サービスのオーケストレーション
ワークフロー サービス
アクセス
コントロール
サービス
内製
サービス
サービスバス
クライアント
Desktop,
デスクトップ
RIA,RIA
Web
Web
オンプレミス ESB
ESB
MS/3 rd パーティー サービス
.NET Services SDK
現時点での最新版:December 2008 CTP
http://go.microsoft.com/fwlink/?LinkID=129448
Java、Ruby 用の SDK も公開
.NET Services & SQL Services ポータル
http://portal.ex.azure.microsoft.com/View.aspx?name=solution_name
サービスバス
アクセス コントロール サービス
ワークフロー サービス
ワークフロー サービス
アクセス
コントロール
サービス
サービスバス
ネーミング
(Naming)
ID フェデレーションと
アクセス コントロール
サービス レジストリ
(アクセス コントロール サービス)
(Service Registry)
メッセージング
(Messaging Fabric)
ネーミング (Naming)
サービス アドレスの名前解決
サービス レジストリ (Service Reqistry)
サービスの登録と公開
メッセージング (Messaging Fabric)
クライアント⇔サービス間の通信
ネーミング
サービス レジストリ
メッセージング
クライアントからの呼び出し先サービス名
をサービスバスによって解決
NAT やファイアウォールを容易に越えられる
ファイアウォール=インバウンド ポートを開放しな
くてよい
IP アドレスの変更などを即時に更新
サービス名=サービスのエンドポイント
サービスバス
NAT
ネットワーク ファイアウォール
マシン ファイアウォール
クライアント
サービス名の命名構造 (URI):
サービス
サービスバスとの間に
確立した接続を通して通信
sb://servicebus.windows.net/services/solution/name/...
ネーミング
サービス レジストリ
メッセージング
サービスのエンドポイント公開用レジストリ
ネーミング システムと連携
汎用のディレクトリー サービスではない
レジストリへのアクセス:
http://servicebus.windows.net/services/solution/
発見 (Discover):Atom 1.0 フィード
公開 (Publishing):AtomPub、WS-Transfer
クライアント
WS-Transfer
AtomPub
サービス
レジストリ
ネーミング
ネーミング
サービス レジストリ
メッセージング
プログラミング モデル
専用の WCF バインディングを提供
.NET Services SDK
.NET 以外:Java、Ruby 用の SDK も公開
WCF 標準バインディング
サービスバス リレー バインディング
BasicHttpBinding
BasicHttpRelayBinding
WebHttpBinding
WebHttpRelayBinding
WSHttpBinding
WSHttpRelayBinding
WS2007HttpBinding
WS2007HttpRelayBinding
WSHttpContextBinding
WSHttpRelayContextBinding
WS2007HttpFederationBinding
WS2007HttpRelayFederationBinding
NetTcpBinding
NetTcpRelayBinding
NetTcpContextBinding
NetTcpRelayContextBinding
n/a [NetMsmqBinding に近しい]
NetOnewayRelayBinding
n/a [NetTcpPeerBinding に近しい]
NetEventRelayBinding
ネーミング
サービス レジストリ
メッセージング
メッセージング方式:
Oneway:
ユニキャスト通信
サービスバス
Oneway
クライアント
サービス
NetOnewayRelayBinding
Event:
Event
マルチキャスト通信
NetEventRelayBinding
Request-Reply:
クライアント
(基本的には) リレー型通信
サービス
サービス
サービス
WS|Basic|WebRelayBinding
NetTcpRelayBinding
Request-Reply
Direct (Hybrid) は直接通信
クライアント
サービス
sb://servicebus.windows.net/services/solution/a/b/
バックエンドの
ネーミング・
ルーティング
ファブリック
ルーティング
サブスクライブ
サービスバス
フロントエンド
ノード
NLB
TCP/SSL
808/828
メッセージ
クライアント
TCP/SSL
828
メッセージ
NAT
ファイアウォール
Dynamic IP
サービス
Identity
Provider
信頼関係
Claims
RP にアクセスするには、
RPのポリシーに準じた Claims が必要
Relying Party
RP の要求する
Claims を送信
メッセージを送信
トークン
トークン付きでメッセージを送信
Claims を含んだ
トークンを返す
トークン
Subject
クラウド上における STS
(Security Token Service)
Claims ベースの ID フェデレーションによる
認証をサポート
さまざまなサービスが混在する
標準プロトコル ベース
SAML、WS-Security、WS-Trust、WS-Federation、...
さまざまな ID 発行者と連携可能
アクセス コントロール サービス自身は ID 発行者ではない
.NET Services のサービスバスやワークフロー サー
ビスだけでなく、他の .NET サービスや異種プラッ
トフォームのサービス・アプリケーションからも利
用可能
4 つのサービスから構成される :
トークン発行者としての STS
ルール管理サービス
ルール実行エンジン
ポータル
アクセス コントロール サービス
Public API
Public API
ポータル
STS
ルール管理サービス
ルール実行エンジン
フェデレーション
ID 発行者
(ID Issuer)
1. 利用者のためにアクセス
コントロールのルールを
決める
0. 公開鍵、証明書の交換;
定期的にリフレッシュ
アクセス
コントロール
サービス
アカウント
3. アクセスコントロール
ルールに基づいて、入力
Claims を出力 Claims
にマッピングする
(STS)
6.クレームをRelying Party
でチェック
Relying Party
(サービス)
5. トークン付きのメッセージを送信
リクエスタ
(クライアント)
さまざまなサービスとの連携
サービス
ID 発行者
信頼関係
ワークフロー サービス
ID 発行者
信頼関係
アクセス
コントロール
サービス
アクティブ
信頼
関係
サービスバス
クライアント
サービス
Web ブラウザ
パッシブ
サービス
Web アプリ
サービス
(サービスバス接続)
(サービスバス接続)
クラウド上でサービス オーケストレーション
を実現するための基盤サービス
インターネットスケールでのサービス品質保証
スケーラビリティ、信頼性、可用性、...
WF ベースでのワークフロー開発が可能
.NET Services 専用アクティビティの提供
容易な配置と管理 (ポータル サイト)
サービス
ワークフロー
クライアント
サービスバス
サービス
サービス
1
VS – ワンクリック配置
2
ワークフローの設計・開発
2
ワークフローの配置
3
ワークフロータイプの管理
4
ワークフローインスタンスの
管理
アプリケーションと
サービス
Visual Studio WF デザイナ
2
ワークフローと
ルール XAML
1
3
4
•ワークフローポータル
•WorkflowClient API
•SOAP Web サービス
http://
サービスバス
.NET Services ワークフロー用 VS テンプレート
.NET Services ワークフロー用
WF アクティビティ
WF デザイナ
.xoml とルールのみ使用可能
ワークフロー タイプの登録 (ワークフローとルール)
ワークフロー インスタンスの
生成と管理
.NET Services は、オンプレミスならびに
クラウドから利用可能なインターネット ス
ケールのサービスバス&STS&BPM
サービスバス
インターネット サービスバス
オンプレミスならびにクラウドでホストされているサービ
スとクライアント間との接続をサポート
NAT やファイアウォールを越えて...
アクセス コントロール サービス
クラウド上の STS (Security Token Service)
Claims ベースの ID フェデレーションによる認証を支援
ワークフロー サービス
クラウド上でのサービス オーケストレーション
Azure Services Platform
http://www.microsoft.com/azure/default.mspx
[MSDN] Microsoft .NET Services
http://msdn.microsoft.com/azure/netservices.aspx
.NET Services Team Blog
http://blogs.msdn.com/netservices/
.NET Services SDK ダウンロード
.NET Services SDK (Dec 2008 CTP)
http://go.microsoft.com/fwlink/?LinkID=129448
Java SDK for .NET Services
http://www.jdotnetservices.com/
Ruby SDK for .NET Services
http://www.dotnetservicesruby.com/
[.NET Services 関連]
T1-305 .NET Services:サービスバスとアーキテクチャの詳解
T1-306 .NET Services:ワークフロー サービスによるクラウド サービスの
オーケストレーション
T1-307 .NET Services:アクセス コントロール サービス
T1-401 クラウド コンピューティングのエッセンス
[WCF/WF 関連]
T3-301 “Dublin”:WCF/WF サービスのためのアプリケーション サーバー
T3-305 Data Services におけるデータアクセスと同期
T3-306 WCF/WF 4.0:ワークフローサービス開発の進化
[その他クラウド関連]
T1-301 Windows Azure プログラミング
T1-302 Windows Azure ストレージ サービス
T1-303 Windows Azure 管理機能
T1-308 SQL Services 概要
T1-402 “Geneva”:フェデレーショナルなクレームベース ID モデルの適用
T1-403 Web 2.0 スタイル サービスのアーキテクチャと実装
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.