Azure Fluid Relay の概要

Fluid Framework は、オープン ソースの、プラットフォームに依存しないフレームワークです。 Azure Fluid Relay は、開発者がリアルタイムのコラボレーション エクスペリエンスを構築し、接続されている JavaScript クライアント間で状態をリアルタイムでレプリケートするのに役立つ、Fluid Framework 向けのマネージド オファリングです。

Fluid Framework とは

Fluid Framework は、共有状態を分散および同期するためのクライアント ライブラリのコレクションです。 これらのライブラリを使用すると、ローカル データの操作に使用されるのと同様のコーディング パターンを使って、複数のクライアントで共有データ構造を同時に作成して操作できます。

詳細については、FluidFramework.com を参照してください。

Fluid である理由

低待機時間のコラボレーション エクスペリエンスを構築するのが難しいためです。

Fluid Framework では以下が提供されます。

  • カスタム サーバー コードを必要としないデータ永続化を備えたクライアント中心のアプリケーション モデル。
  • 使い慣れたプログラミング パターンを使用する分散データ構造。
  • 非常に短い待機時間。

Microsoft の開発者が多くのアプリケーションにコラボレーションを組み込んでいますが、コラボレーション エクスペリエンスを管理するために多くのアプリケーション固有のサーバー側ロジックが必要です。 Fluid Framework は、コラボレーション アプリケーションの作成の複雑さを軽減するための Microsoft の投資の結果です。

サーバー コードに投資する必要がまったくなかっとしたらどうでしょうか? 軽量で低コストになるように設計された汎用サーバーを使用できると想像してみてください。 すべての開発でクライアント エクスペリエンスに重点が置かれ、データ同期が自動的に処理されると想像してみてください。 Fluid でそれが保証されます。

クライアント開発者に重点を置く

Fluid Framework を使用して構築されたアプリケーションの場合、テキスト エディター間でのリアルタイム入力などの高度なデータ同期シナリオを可能にするために、サーバー上でカスタム コードを使用する必要はありません。 クライアント開発者はカスタマー エクスペリエンスに重点を置きながら、Fluid でデータの同期を維持する作業が行われるようにします。

Fluid Framework は、選択されたアプリケーション フレームワークで動作します。 簡単な JavaScript または React、Angular、Vue のようなフレームワークのいずれを好むかにかかわらず、Fluid Framework を使用すれば、コラボレーション エクスペリエンスの構築がシンプルかつ柔軟なものになります。

Fluid のしくみ

Fluid は、非常に優れたパフォーマンスを備えたコラボレーション エクスペリエンスを提供するように設計されました。 この目標を達成するために、チームはサーバー ロジックを可能な限りシンプルかつ軽量に保ちました。 このアプローチは、サーバー コストが低いクライアント間でのほとんど瞬時の同期を保証するのに役立ちました。

サーバーをシンプルに保つために、各 Fluid クライアントで自身の状態に責任を負うことになります。 以前のシステムではサーバーで信頼できる情報源を保持しますが、Fluid サービスはデータ操作を受け取り、その操作をシーケンス処理し、シーケンスされた操作をクライアントに返すことを担当します。 各クライアントではそのシーケンスを使用して、操作を受け取る順序に関係なく、現在の状態を個別および正確に生成することができます。

次の手順は一般的なフローです。

  1. クライアント コードによってデータがローカルに変更されます。
  2. Fluid ランタイムから Fluid サービスにその変更が送信されます。
  3. Fluid サービスにより、その操作がシーケンス処理され、すべてのクライアントにブロードキャストされます。
  4. Fluid ランタイムにより、その操作がローカル データに組み込まれ、"valueChanged" イベントが発生します。
  5. クライアント コードでそのイベントが処理されます (ビューが更新され、ビジネス ロジックが実行される)。