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