Azure Web PubSub サービスとは

Azure Web PubSub サービスを使用すると、サーバーとクライアントがリアルタイムでデータを交換する必要がある Web アプリケーションを簡単に構築できます。 リアルタイム データ交換は、開発者が構築および保守する特定の時間依存アプリの基盤です。 開発者は、チャット アプリ、リアルタイム ダッシュボード、マルチプレーヤー ゲーム、オンライン オークション、マルチユーザー コラボレーション アプリ、位置情報追跡、通知など、さまざまなアプリケーションおよび業界でこのサービスを使用してきました。

アプリの使用量が少ない場合、開発者は通常、サーバーとクライアント間のリアルタイム通信を提供するためにポーリング メカニズムを選択します。この場合、クライアントは一定期間にわたって HTTP 要求をサーバーに繰り返し送信します。 ただし、開発者から、ポーリング メカニズムは簡単に実装できるが、3 つの重要な欠点があると報告されることがよくあります。

  • データが古い。
  • データの整合性がない。
  • 帯域幅とコンピューティング リソースが無駄になる。

これらの欠点は、開発者が代替手段を探す主な動機となっています。 この記事では、Azure Web PubSub サービスの概要と、開発者がそれを使用して、リアルタイム通信チャネルを迅速かつ大規模に構築する方法について説明します。

Azure Web PubSub サービスの用途

AI 支援チャットボットのストリーミング トークン

最近の AI への関心の高まりに伴い、Web PubSub は、トークン ストリーミング用の AI 対応アプリケーションを構築する開発者にとって非常に貴重なツールとなっています。 このサービスは、数千万のコンカレント接続にスケーリングするための厳しいテストが行われ、非常に短い待機時間を実現しています。

リアルタイム更新の配信

データ リソースの更新をネットワーク経由で他のコンポーネントに配信する必要があるアプリ シナリオでは、Azure Web PubSub を使用することでメリットが得られます。 名前が示すように、このサービスはパブリッシャーとサブスクライバー間の通信を促進します。 パブリッシャーは、データの更新をパブリッシュするコンポーネントです。 サブスクライバーは、データの更新をサブスクライブするコンポーネントです。

Azure Web PubSub サービスは、データが時間に依存するさまざまな業界やアプリのシナリオで使用されます。 一般的なユース ケースの一部を次に示します。

ユース ケース アプリケーションの例
高頻度のデータ更新 マルチプレーヤー ゲーム、ソーシャル メディア投票、世論調査、オンライン オークション
ライブ ダッシュボードと監視 会社のダッシュボード、金融市場データ、即時売上更新、ゲーム リーダーボード、IoT の監視
クロスプラットフォーム チャット ライブ チャット ルーム、オンライン カスタマー サポート、リアルタイムのショッピング アシスタント、メッセンジャー、ゲーム内チャット
位置情報の追跡 車両資産追跡、配送状態の追跡、輸送状態の更新、配車アプリ
マルチユーザー コラボレーション アプリ コオーサリング、共同作業ホワイトボード、チーム会議アプリ
クロスプラットフォーム プッシュ通知 ソーシャル メディア、電子メール、ゲームの状態、移動に関するアラート
IoT デバイスとコネクテッド デバイス リアルタイムの IoT メトリック、電気自動車の充電ネットワークの管理、ライブ コンサートのエンゲージメント
自動化 アップストリーム イベントからのリアルタイム トリガー

Azure Web PubSub サービスを使用する利点とは

大規模なクライアント接続と高可用性アーキテクチャを組み込みでサポート:

Azure Web PubSub サービスは、大規模なリアルタイム アプリケーション向けに設計されています。 1 つの Web PubSub リソースで、100 万ものコンカレント接続にスケーリングできます。これは、ほとんどの場合に十分です。 複数のリソースを一緒に使用すると、このサービスにより 100 万を超えるコンカレント接続のスケーリングが可能になります。 その一方で、シャーディング、高可用性、ディザスター リカバリーの目的で、複数のグローバル リージョンもサポートしています。

さまざまなクライアント SDK とプログラミング言語をサポート:

Azure Web PubSub サービスは、さまざまなクライアントと連携します。 これらのクライアントとしては、Web およびモバイル ブラウザー、デスクトップ アプリ、モバイル アプリ、サーバー プロセス、IoT デバイス、ゲーム コンソールなどがあります。 サーバーとクライアントの SDK は、主流のプログラミング言語である、C#、Java、JavaScript、Python で使用できるため、このサービスで提供される API を簡単に使用できます。 このサービスは標準の WebSocket プロトコルをサポートしているため、選択したプログラミング言語で SDK を使用できない場合は、任意の REST 対応プログラミング言語を使用して、Web PubSub の API を直接呼び出すことができます。

さまざまなメッセージング パターンに対応する豊富な API を提供:

Azure Web PubSub サービスは、サーバーとクライアント間のリアルタイムの双方向通信によるデータ交換を提供します。 このサービスには、メッセージの配信方法と送信先を細かく制御できる機能が用意されています。 サポートされているメッセージング パターンの一覧を次に示します。

メッセージング パターン 詳細
すべてのクライアントにブロードキャストする サーバーは、接続されているすべてのクライアントにデータの更新を送信します。
クライアントのサブセットにブロードキャストする サーバーは、ユーザーが任意に定義したクライアントのサブセットにデータの更新を送信します。
特定の人間のユーザーが所有するすべてのクライアントにブロードキャストする 人間のユーザーは、複数のブラウザー タブまたはデバイスを開いていることがあるため、ユーザーが使用するすべての Web クライアントが同期されるように、ユーザーにブロードキャストできます。
クライアント pub/sub クライアントは、サーバーの関与なしに、ユーザーが任意に定義したグループ内のクライアントにメッセージを送信します。
クライアントからサーバーへ クライアントが短い待ち時間でサーバーにメッセージを送信します。

Azure Web PubSub サービスを使用する方法

Azure Web PubSub サービスを使用してプログラミングを行うにはさまざまな方法があります。以下にいくつかの例を示します。

  • サーバーレスのリアルタイム アプリケーションを作成する: Azure Functions と Azure Web PubSub サービスとの統合を使用して、JavaScript、C#、Java、Python などの言語でサーバーレスのリアルタイム アプリケーションを作成します。
  • WebSocket サブプロトコルを使用してクライアント側のみで Pub/Sub を実行する - Azure Web PubSub サービスは、承認されたクライアントが便利な方法で他のクライアントにパブリッシュできるように、MQTT などの WebSocket サブプロトコルを提供します。
  • 提供された SDK を使用して、セルフホスト アプリ サーバーで WebSocket 接続を管理する - Azure Web PubSub サービスが提供する C#、JavaScript、Java、Python の SDK により、接続へのメッセージのブロードキャスト、いくつかのグループへの接続の追加、接続の終了など、WebSocket 接続を容易に管理できます。
  • REST API を介してサーバーからクライアントにメッセージを送信する - Azure Web PubSub サービスに用意されている REST API を通じて、アプリケーションは、接続されているクライアントに対し、REST 対応の任意のプログラミング言語でメッセージをポストすることができます。

クイック スタート

次のステップ

これらのリソースを使用して、独自のアプリケーションの構築を開始します。