はじめに

完了

Tailwind Traders のエンジニアであるあなたは、会社が株価情報を顧客に提供する新しい Web サイトの立ち上げを計画していることを知りました。 最近、インターンが新しいアプリケーション用の Web サイトのプロトタイプを作成し、現在、アーキテクト リーダーはあなたに参加を求め、ソリューションを改善するよう依頼しています。 あなたの目的は、アプリを更新して在庫価格情報の自動更新を実装するが、サーバー上のデータが変更されたときにのみ、クライアントとサーバー間の通信が行われるようにすることです。

プロトタイプ アーキテクチャ

サーバー プロトタイプには 2 つの機能があります。

関数名 トリガーの種類 説明
getStocks Azure Cosmos DB サーバーは、データベース内の株式テーブルからすべてのデータを読み取り、クライアントが要求するたびにそのデータを HTTP 応答で返す役割を担います。
setPrice Timer データベース内のデータを変更する機能は、タイマー トリガーで実行されます。 これは、バックエンド システムからの変更の受信をシミュレートします。

プロトタイプとして、インターンは、1 分ごとに更新されるタイマー機能を使ってストック フィードをシミュレートしました。 クライアント Web サイトは、準リアルタイムのデータを表示するために、5 秒ごとに /api/getStocks API エンドポイントからすべての株式を要求します。 このクライアント要求は効率的ではありません。 サーバーからデータをプルするのではなく、サーバーが新しい株式情報をプッシュする方が効率的です。

実行するタスク

このモジュールでは、次のことを行います。

  • プロトタイプを実行する:クライアント アプリケーションを表示します。これは、すべての株式のサーバーを定期的にポーリングします
  • アプリケーションを改善する:SignalR Service を使って接続されているクライアントに変更をブロードキャストし、準リアルタイムの更新を提供するサーバーレス Azure Functions アプリを実装します。
  • SignalR に接続し、メッセージを取得して表示するように、クライアント JavaScript Web アプリケーションを更新します。