WebSocket と Azure Web PubSub を使用してリアルタイム アプリを簡単に構築する (プレビュー段階)

2021年4月29日 に投稿済み

Partner Director of Product Management

ストリーミング ビデオ用のチャット、リモート教育用のインタラクティブ ホワイトボード、IoT ダッシュボードなどのリアルタイム アプリケーション シナリオは、ますます人気が高まっています。企業は、ユーザー エクスペリエンスを向上させ、エンド カスタマーとリアルタイムでやり取りするために、このようなアプリケーションを構築したいと考えています。

Microsoft は本日、WebSocket を使用してリアルタイム Web アプリケーションを構築するための Azure Web PubSub サービスのプレビューを発表しました。WebSocket は、全二重通信を提供する標準化されたプロトコルです。これは、効率的なリアルタイムの Web 操作を構築するための鍵であり、Web サーバーに加えて、すべての主要なブラウザーでもサポートされています。Azure Web PubSub を使用すると、WebSocket とパブリッシュとサブスクライブのパターンを使用して、ライブ監視ダッシュボード、クロスプラットフォーム ライブ チャット、地図上のリアルタイム位置表示など、リアルタイム Web アプリケーションを簡単に構築できます。

Azure Web PubSub サービスの使用シナリオ

図 1:Azure Web PubSub サービスの使用シナリオ

フル マネージドで世界中で利用可能

リアルタイム シナリオでは、クライアントとサーバーとの間で高頻度のデータ フローと大量のコンカレント接続が必要になることがよくあります。たとえば、市場データを視覚化する財務アプリでは、最大 100,000 の接続と、ミリ秒単位の低待機時間でのライブ データが必要になることがあります。このような機能を大規模に稼働して実行するには、非単純なインフラストラクチャのセットアップが必要です。WebSocket ベースのリアルタイム エクスペリエンスを実装するには、開発者はまずクライアント接続を処理するためのインフラストラクチャを設定し、オンデマンドでそのインフラストラクチャをスケーリングするメカニズムを確立して、そのセットアップがビジネスの SLA 要件を満たしていることを確認する必要があります。このインフラストラクチャ管理は、エンド ユーザー エクスペリエンスに注力するための時間を開発者から奪うものでした。Azure Web PubSub サービスは、この問題を解決するために構築されました。このサービスでは、大規模なクライアント接続と高可用性アーキテクチャの組み込みサポートが提供されるため、開発者はリアルタイムの接続エクスペリエンスを提供するアプリケーション ロジックに注力することができます。 

Azure Web SubPub ポータル

図 2:Azure portal の Azure Web PubSub サービス

ネイティブ WebSocket のサポート

Azure Web PubSub サービスでは、ネイティブ WebSocket およびさまざまなプログラミング言語 (C#、Python、Java など) を WebSocket API を使用してサポートしています。これにより、リアルタイムのクロスプラットフォーム アプリケーションを構築し、WebSocket ベースの既存のアプリケーションを簡単に移行するのに必要な柔軟性が得られます。

このサービスは、生の WebSocket をサポートしているだけでなく、json.webpubsub.azure.v1 サブプロトコルも提供しています。これにより、クライアントはサービスとバックエンド サーバー コードの間でデータをルーティングせずに、効率的にパブリッシュとサブスクライブを実行できます。クロスプラットフォームのライブ チャットを例にとると、バックエンド サーバー コード (Web アプリまたは関数) で、自然言語処理、感情分析、およびその他の AI 対応機能のためにクライアント メッセージを解析することが必要になる場合があります。一方、アクション イベント (開封確認メッセージなど) は、Web アプリや関数を使用してルーティングする必要はありません。このシナリオでは、クライアントはサブプロトコルを使用し、Azure Web PubSub サービスを介してターゲットにイベントを直接送信します。

Azure Functions を使用したサーバーレス リアルタイム アプリケーション

Azure Web PubSub サービスは、Azure Functions とネイティブに統合されており、WebSocket を使用して、C#、JavaScript、Python、および Java でサーバーレス アプリケーションを構築できます。Azure Functions と Azure Web PubSub サービスを使用した、リアルタイム アプリケーション用のサーバーレス ソリューションを使用すると、コードの記述やインフラストラクチャの管理が少なくて済み、コストも節約できます。場所追跡ライブ ダッシュボードを例に説明します。Azure Functions を使用して IoT デバイスからの場所データを統合および処理できます。その後、Azure Web PubSub サービスを利用して、その場所データを複数のライブ ダッシュボード クライアントにブロードキャストし、顧客向けにリアルタイムの場所情報を視覚化します。

Azure Web PubSub の概要

Azure Web PubSub サービスの詳細については、Azure Web PubSub サービスのページにアクセスして、プレビュー ドキュメントを参照してください。無料の Azure アカウントで作業を開始することができ、Azure Web PubSub の Free レベルまたは Standard レベルを使用してこちらのクイック スタートを開始できます。Free レベルは Dev/Test 向けに設計されているため、1 つのユニットで簡単に作業を開始し、ユニットあたり最大 20 接続、1 日につきユニットあたり最大 20,000 メッセージを処理するアプリケーションを作成できます。コード サンプルで、このサービスで構築できるリアルタイム アプリをいくつかご紹介しています。ぜひご確認ください。皆様のご意見をフィードバック フォーラムからお寄せください。Microsoft では、お客様のリアルタイム Web メッセージングのニーズに合わせてサービスを強化したいと考えております。 

皆様が Azure Web PubSub サービスを使用して構築される魅力的なリアルタイム アプリを楽しみにしております。