3/17/2017 1:49 AM © 2007 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.
.NET Services: サービスバスと アーキテクチャの詳解 3/17/2017 1:49 AM T1-305 .NET Services: サービスバスと アーキテクチャの詳解 マイクロソフト株式会社 デベロッパー&プラットフォーム統括本部 エバンジェリスト 中原 幹雄 http://blogs.msdn.com/mikion/ © 2007 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.
アジェンダ .NET Services とは? サービスバスのアーキテクチャと詳細 まとめ
.NET Services とは?
Azure Services Platform クラウド コンピューティング環境・基盤
.NET Services インターネット スケールのサービスバス ワークフロー サービス アクセス コントロール サービス サービスバス 内製 サービス クライアント オンプレミス ESB MS/3rd パーティー サービス Desktop, RIA, Web ESB デスクトップ RIA Web
サービスバスの アーキテクチャと詳細
サービスバス ネーミング (Naming) サービス レジストリ (Service Reqistry) ID フェデレーションと アクセス コントロール (アクセス コントロール サービス) ネーミング (Naming) サービス レジストリ (Service Registry) メッセージング (Messaging Fabric) ネーミング (Naming) サービス アドレスの名前解決 サービス レジストリ (Service Reqistry) サービスの登録と公開 メッセージング (Messaging Fabric) クライアント⇔サービス間の通信
ネーミング Naming ネーミング (Naming) サービス レジストリ (Service Registry) ID フェデレーションと アクセス コントロール (アクセス コントロール サービス) ネーミング (Naming) サービス レジストリ (Service Registry) メッセージング (Messaging Fabric)
ネーミング プライベート ネットワーク上のサービス公開 ネーミング プライベート ネットワーク上のサービス公開 さまざまな課題: IPv4 アドレス 動的な IP アドレスの割り当て (DHCP) NAT (Network Address Translation) ファイアウォール マシン ファイアウォール ネットワーク ファイアウォール NAT ポート マッピング NAT ネットワーク ファイアウォール マシン ファイアウォール ? クライアント サービス Dynamic DNS インバウンド ポートの開放 インバウンド ポートの開放
ネーミング プライベート ネットワーク上のサービス公開 ネーミング プライベート ネットワーク上のサービス公開 .NET Services による解決策 サービスバスを経由し、クライアントとサービスを接続 呼び出し先サービス名をサービスバスによって解決 NAT やファイアウォールを容易に越えられる ファイアウォール=インバウンド ポートを開放しなくてよい IP アドレスの変更などを即時に更新 サービス名=サービスのエンドポイント サービスバス NAT ネットワーク ファイアウォール マシン ファイアウォール クライアント サービス サービスバスとの間に 確立した接続を通して通信
ネーミング サービス名の命名構造 (URI 構造) 現 CTP 版: sb://servicebus.windows.net/services/solution/name/... 必須プレフィックス solution name ... ルート SB.W.N services ... ... 将来版では ... sb://solution.servicebus.windows.net/name/...
サービス レジストリ Service Registry ID フェデレーションと アクセス コントロール (アクセス コントロール サービス) ネーミング (Naming) サービス レジストリ (Service Registry) メッセージング (Messaging Fabric)
サービス レジストリ サービスのエンドポイント公開用レジストリ ネーミング システムと連携 汎用のディレクトリー サービスではない レジストリへのアクセス: http://servicebus.windows.net/services/solution/ 発見 (Discover):Atom 1.0 フィード 公開 (Publishing):AtomPub、WS-Transfer WS-Transfer クライアント サービス レジストリ AtomPub ネーミング
メッセージング Messaging Fabric ID フェデレーションと アクセス コントロール (アクセス コントロール サービス) ネーミング (Naming) サービス レジストリ (Service Registry) メッセージング (Messaging Fabric)
メッセージング プログラミング モデル 専用の WCF バインディングを提供 .NET 以外:Java、Ruby 用の SDK も公開 サービスバス リレー バインディング 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 Event Request-Reply ユニキャスト通信 マルチキャスト通信 (基本は) リレー型通信 Tcp Tcp/Relayed Tcp/Hybrid (Tcp/Direct) 直接型通信 Http サービスバス Oneway クライアント サービス Event サービス クライアント サービス サービス Request-Reply クライアント サービス
Oneway メッセージング サービスバス sb://servicebus.windows.net/services/solution/a/b/ バックエンドの ネーミング・ ルーティング ファブリック ルーティング サブスクライブ フロントエンド ノード 一方向アウトバウンド net.tcp 接続 双方向アウトバウンドソケット接続 NLB TCP/SSL 808/828 TCP/SSL 828 メッセージ メッセージ クライアント サービス NAT ファイアウォール Dynamic IP
Oneway メッセージング (HTTP) サービスバス http://servicebus.windows.net/services/solution/a/b / バックエンドの ネーミング・ ルーティング ファブリック ルーティング サブスクライブ フロントエンド ノード メッセージ メッセージ バッファ サブスクライブ メッセージ サブスクライブ バッファ作成 クライアント サービス
Oneway メッセージング NetOnewayRelayBinding 少量メッセージを一方的&非同期に送信 ConnectivityMode:Tcp/Http/AutoDetect HTTP: サービスバス上のメッセージ バッファを 介してメッセージを転送 制限事項: 最大メッセージ サイズ=60KB HTTP:最大バッファ サイズ=256KB ファイアウォール要件: Tcp:アウトバウンド ポート 808/818/828 Http:アウトバウンド ポート 80/443
NetOnewayRelayBinding 3/17/2017 1:49 AM NetOnewayRelayBinding demo © 2007 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.
Event メッセージング サービスバス sb://servicebus.windows.net/services/solution/a/b/ バックエンドの ネーミング・ ルーティング ファブリック ルーティング サブスクライブ フロントエンド ノード TCP/SSL 808/828 TCP/SSL 828 TCP/SSL 828 メッセージ メッセージ メッセージ 一方向アウトバウンド net.tcp 接続 双方向アウトバウンド ソケット接続 双方向アウトバウンド ソケット接続 クライアント サービス サービス
Event メッセージング NetEventRelayBinding 少量メッセージをマルチキャスト送信 NetOnewayRelayBinding のマルチキャスト版 ConnectivityMode:Tcp/Http/AutoDetect 制限事項: 最大メッセージ サイズ=60KB HTTP:最大バッファ サイズ=256KB 現行 CTP 版:最大同時待ち受けサービス=20 ファイアウォール要件: Tcp:アウトバウンド ポート 808/818/828 Http:アウトバウンド ポート 80/443
NetEventRelayBinding 3/17/2017 1:49 AM NetEventRelayBinding demo © 2007 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.
Tcp メッセージング NetTcpRelayBinding の接続モード 接続モード (ConnectionMode): Relayed (リレー モード) = Tcp/Relayed サービス バスを介してクライアントとサービス間を中継接続する Direct (ダイレクト モード) クライアントとサービス間を直接接続する ※現行 CTP 版では “Hybrid” と同じ挙動 Hybrid (ハイブリッド モード) = Tcp/Hybrid クライアントとサービス間で直接接続可能な場合は直接 接続し (Direct)、そうでない場合はサービス バスを介してリレー接続する (Relayed) <netTcpRelayBinding> <binding name="default" connectionMode="Hybrid"> </binding> </netTcpRelayBinding>
Tcp/Relayed メッセージング サービスバス 2 3 1 4 sb://servicebus.windows.net/services/solution/a/b/ バックエンドの ネーミング・ ルーティング ファブリック 一方向 ランデブー コントロール メッセージ コントロール メッセージ フロントエンド ノード NLB コントロール メッセージ 2 ソケット-ソケット間 メッセージ転送 3 TCP/SSL 818 アウトバウンド ソケット接続 ソケット ランデブー アウトバウンド 1 クライアント サービス 4
Tcp/Relayed メッセージング NetTcpRelayBinding/Relayed 最もおススメなメッセージング方式 転送データ サイズが最も小さくなる 最短の待ち時間&最高のスループット ストリーミングをサポート (サイズ制限なし) ファイアウォール要件: アウトバウンド ポート 808/818/828
NetTcpRelayBinding/Relayed 3/17/2017 1:49 AM NetTcpRelayBinding/Relayed demo © 2007 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.
Tcp/Hybrid メッセージング サービスバス sb://servicebus.windows.net/services/solution/a/b/ バックエンドの ネーミング・ ルーティング ファブリック 一方向 ランデブー コントロール メッセージ フロントエンド ノード リレー接続 リレー ランデブー NAT プロービング コントロール メッセージ NAT プロービング TCP/SSL 818, 819 アップグレード アップグレード クライアント サービス NAT を越えた直接接続
Tcp/Hybrid メッセージング NetTcpRelayBinding/Hybrid P2P での大量メッセージ転送向き 可能ならばクライアント⇔サービス間を直接接続 短い待ち時間&高スループット ストリーミングをサポート (サイズ制限なし) 制限事項: NAT が混雑している場合、直接接続に成功する確率は低くなる 現行 CTP 版:いくつかの機能が使用不能 WS-ReliableMessaging、WS-Security ファイアウォール要件: アウトバウンド ポート 808/818/819/828
NetTcpRelayBinding/Hybrid 3/17/2017 1:49 AM NetTcpRelayBinding/Hybrid demo © 2007 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.
バックエンドの ネーミング・ ルーティング ファブリック Http メッセージング サービスバス http://servicebus.windows.net/services/solution/a/b/ バックエンドの ネーミング・ ルーティング ファブリック 一方向 ランデブー コントロール メッセージ コントロール メッセージ フロントエンド ノード NLB コントロール メッセージ 2 HTTP-ソケット間 メッセージ転送 3 HTTP/S 80/443 HTTP(S) リクエスト ソケット ランデブー アウトバウンド 1 クライアント サービス 4
Http メッセージング WS/WS2007/Basic/WebHttpRelayBinding 最も相互運用性が高い HTTP サービスに対する透過的な ”リバース プロキシ” 制約事項: 推奨:可能な限り “TCP” を利用する 現行 CTP版:著しくパフォーマンスが悪い ファイアウォール要件: サービス:アウトバウンド ポート 818/828 クライアント:アウトバウンド ポート 80/443
WSHttpRelayBinding WebHttpRelayBinding 3/17/2017 1:49 AM WSHttpRelayBinding WebHttpRelayBinding demo © 2007 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.
まとめ
まとめ .NET Services サービス バスにより、 オンプレミス ホステッドなサービスをクラウドを介して利用可能にします! NAT やファイアウォールを越えて... クラウド (Widows Azure) ホステッドな サービスも、サービス バスに接続可能 専用の WCF バインディングを提供 標準プロトコル ベース Java や Ruby からも利用可能 (SDK を公開) 複数の接続方式が選択可能 Oneway、Event、Request-Reply Tcp、Http (SOAP、REST)
情報リソース Azure Services Platform [MSDN] Microsoft .NET Services 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/
Tech Days 2009 関連セッション [.NET Services 関連] [WCF/WF 関連] T1-304 .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 スタイル サービスのアーキテクチャと実装
3/17/2017 1:49 AM © 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. © 2007 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.