1

バックグラウンド

いくつかの操作を提供するRESTfulAPIがあります。このRESTfulAPIは、APIの操作にアクセスするために、プラットフォームで認証および承認される必要があるサードパーティによって使用されます。

サードパーティは信頼性の高いデータ消費を必要とし、APIは一部のデータを消費するためのパブリッシャー/コンシューマーパターンベースのソリューションを提供する必要があります。

いわゆるAPIは車輪の再発明を行わないため、Windows AzureServiceBusを使用しようとしています

問題

RESTful APIは、実際のサービスバスサービスを抽象化する必要があります。一方、Service Busは、独自のプラットフォームで信頼性の高いメッセージングを提供するソリューションです

実際、Service Busはスタンドアロンのサービスではありませんが、一部のワークフローの一部です。サードパーティは、WindowsAzureの資格情報を持っているとは想定されていません

サードパーティは、Service Busのトピック(つまり、メッセージキュー)へのアクセスを許可するAPI固有の資格情報を使用してWindows AzureServiceBusに接続する必要があります。

可能な解決策

a。WindowsAzureサービスバスへの直接アクセスを承認する

それは最も簡単な解決策のようです。フローを見てみましょう:

  1. サードパーティは、Windows Azure Service Bus接続文字列(資格情報)を取得するために、RESTfulAPIにリクエストを送信します
  2. 接続文字列を取得すると、サードパーティはWindows Service Busに接続し、トピックサブスクリプションからのメッセージの受信を開始します。注:接続文字列はサーバー側で暗号化されており、承認されたクライアントのみが復号化できます。

長所

  • 簡単。APIは、サードパーティがWindows Azure Service Busを使用することを許可し、その他の責任はありません。
  • 独自のAPIは、トピックサブスクライバーの高負荷を管理しません。これは、WindowsAzureプラットフォームによって処理されます。

短所

  • サードパーティは、WindowsAzureと非常に密接に関連しています。
  • サードパーティは、しばらくの間、RESTfulAPIを簡単にバイパスできます。

b。WindowsAzureサービスバスへのプロキシアクセス

これは可能ですか?全体のフローは次のようになります。

  1. サードパーティは、Windows Azure Service Busトピックにサブスクライブするために、RESTfulAPIと同様のTCPAPIを要求します。
  2. TCP APIは接続を確立し、サービスバスI/OへのTCPAPI接続をサードパーティへのTCPAPIにミラーリングするためにプロキシを作成します。
  3. これで、サードパーティがプロキシに接続され、メッセージを送受信します

長所

  • サードパーティはプロキシを介して接続されています。つまり、サードパーティはWindows Azureクレデンシャルを所有しておらず、TCPまたはRESTfulAPIをバイパスできない可能性があります。
  • メッセージングは​​、もはやWindowsAzureに完全に結び付けられているわけではありません。

短所

  • Windows Azure Service Busが接続を閉じるとどうなりますか?
  • プラットフォームプロキシがダウンした場合はどうなりますか?

c。Windows AzureServiceBusサーバーラッパー

これが定義とフローです。

  1. RESTful APIサーバーには、Windows AzureServiceBusサブスクリプション接続のプールがあります
  2. サードパーティは、APIサーバーのTCPソケットまたはWebSocketにサブスクライブされています
  3. Windows Azure Service Busにメッセージがある場合は常に、サードパーティの接続プールにルーティングされ、サードパーティがメッセージを受信します
  4. サードパーティは、RESTfulAPIを使用してメッセージを送信します

長所

  • サードパーティは、サービスバステクノロジーに完全に依存していません。

短所

  • bと同じ。アプローチ。

質問

  • bです。アプローチは可能ですか?

  • cについてのあなたのアドバイスは何ですか。Windows AzureServiceBusサーバーラッパー回避可能な戦争は、稼働時間とWindows Azure Service BusからAPI、およびAPIからサードパーティへの同期の点で信頼性が低いと思いますか?

  • 私は間違っていますか?これらのアプローチに代わるものがありますか?

4

1 に答える 1

2

最後に、オプションaでオプトインしました。:Windows AzureServiceBusへの直接アクセスを承認します。

これは、WindowsAzureアクセス制御サービスを使用しています。

このアプローチを使用すると、サードパーティは、一部のトピックに関する特定のアクセス許可を持つ発行者(ID)を含むAzureServiceBus接続文字列を受け取ります。例:「消費者は聞くことしかできない」。

これに関する詳細については:

于 2012-12-13T09:34:45.123 に答える