MicrosoftはFluid Frameworkをオープンソース化する。これは、分散型のリアルタイムのコラボレーションWebアプリケーション用の低レベルのプラットフォームであり、同時に利用する多数のコラボレーターにスケールできる。Microsoftは、Microsoft 365でFluid Frameworkを活用している。
Fluid Frameworkは、共有状態を配布および同期するためのクライアントライブラリのコレクションとしてそれ自体を説明している。Fluidクライアントは、コラボレーションのないアプリケーションで一般的に使用されるデータ構造(SharedMap、SharedMatrix、SharedStringなど)について分散バージョンを使用する。開発者は、分散データ構造への変更を伝達および同期するためにサーバコードを記述する必要はない。Fluidサービスは、すべての変更を接続されたクライアントに低遅延で転送するように努めている。Fluidサービスはアトミックブロードキャスト戦略を採用している。この戦略では、オリジンクライアントによる分散データ構造に対するすべての操作がまずシーケンス化され、次に他のクライアントにブロードキャストされる。オリジンクライアントは確認応答(ACK)応答を受信する。このサービスは、どの操作が適用されたかをローカルコピーとして保持しない。つまり、ルーティングされた操作のセマンティクスを認識しない。
Fluidは、楽観的でコンセンサスベースの分散データ構造と呼ばれるものを提案している。楽観的データ構造(SharedMap、SharedSequence、SharedMatrix、SharedStringなど)は、Fluidサービスシーケンスの前にFluid操作をローカルに適用し、その操作をブロードキャストする。それによって最高の遅延プロファイルが提供される。コンセンサスベースのデータ構造(OrderCollection、RegisterCollectionなど)は、操作を適用する前に、Fluidサービスからの確認を待つ(ローカルの場合でも)。これらは、分散データ構造の更新動作に関する保証をさらに提供する。Fluidの共同発明者であるKurt Berglund氏は、Fluidサービスの仕組みについてブログ投稿で詳しく説明している。
(出典: Fluid Framework Serviceの仕組み)
Microsoftは、フレームワークのプレイグラウンドでFluid Frameworkを活用するコラボレーションアプリケーションの例をいくつか提供している。1つの例(Brainstorm)を使用すると、ユーザは付箋を共有してリアルタイムに共同作業を行うことができる。接続しているユーザは誰でも、他のユーザがすでに作成した付箋に付箋を追加できる。最終的に、すべてのユーザに、すべてのユーザからの付箋を集約する同じボードが表示される。別の例として、FacebookのオンラインテキストエディタであるDraft.jsを使用した共同テキスト編集を紹介している。その例は、異なる分散データ構造の単独利用あるいは同時利用を示している。
Fluid Frameworkは、フレームワークに依存するものではない。開発者は、(バニラ)JavaScriptまたはUIフレームワーク(React、Angular、Vueなど)で記述されたWebアプリケーションで使用できる。
Microsoftの元チーフソフトウェアアーキテクトであり、IBM Notesコラボレーションソフトウェアの作成者であるRay Ozzie氏は、FluidをMicrosoft Sharepoint Workspaceで使用されているコラボレーションテクノロジーと比較した。
Fluidサービス:もっと簡単です。
Grooveは、分散コンセンサス用に設計された変換システム上に構築されたdappでした。元帳の各トランザクションは署名されました。分散型の信頼性です。やり過ぎです。
Fluidアーチは面白いです。「長いオフライン」エンドポイントをどれだけうまく処理できるでしょうか。
Microsoftは、Fluid Frameworkがまだ本番品質のソリューションに適用する準備ができていないと考えているが、それでもコアテクノロジが成熟していて安定していることを強調している。今後の開発努力により、新しいAPIと機能を導入し、フレームワークの使用を簡素化することを目指している。
Microsoftは、昨年のBuild会議で、初めてFluidのデモンストレーションを実施した。Office on the webスイート上のOfficeのユーザ間のリアルタイムコラボレーションを可能にするフレームワークとしてである。Microsoftは、今年初めにFluidコンポーネントのプレビュー版をリリースした。これは、OutlookとOfficeのWebバージョンのコラボレーションエクスペリエンスをで強化しようとするものである。