開発ツール

MSの「Project Nucleus」--ウェブアプリを高速化する新たな技術

マイクロソフトの「Project Nucleus」は、ウェブアプリのパフォーマンスと信頼性の向上を目指す取り組みだ。「SharePoint」「OneDrive」「Fluid Framework」などの関連技術とあわせて解説する。

 Microsoftが長年にわたってさまざまな点を改善してきたにもかかわらず、多くの人は今なお「SharePoint」がかなり古くさいコンテンツストレージシステムだと考えている。「OneDrive」の堅苦しいマネージド版にワークフローエンジンを追加したようなもの、というのが大半の人の印象だ。しかし、「Microsoft 365」担当コーポレートバイスプレジデントのJeff Teper氏がよく指摘するように、SharePointはアプリケーションでもあり、プラットフォームでもある。ワークフローと承認機能を含むアプリをSharePoint上で構築できるほか、「SharePoint Framework」を使ってイントラネットサイトを構築することも可能だ(SharePoint Frameworkは「React」や「Angular」など、あらゆる「JavaScript」フレームワークと連携するJavaScriptコントロールで、「SPFx」とも表記される)。

 OneDriveにはSharePointの技術が活用されているし、新しい「Microsoft Lists」アプリケーションは実際には内部で「SharePoint Graph API」を使用している。「Microsoft Teams」は多くの点で、SharePointリソースに簡単にアクセスできる手段だ。Teamsの共有ファイルはSharePoint上に存在し、プライベートチャットはSharePointのサイトコレクションとして実装されている。Microsoftが2020年に入ってオープンソース化した「Fluid Framework」は、Microsoft 365担当ゼネラルマネージャーであるSeth Patton氏が「AIが組み込まれた超高速かつ高性能のクラウドプラットフォーム」と呼ぶ環境で、共同作業用の分散アプリケーションを作成することでき、実際には「強化されたSharePointファイルストレージの非常に重要な進歩」がベースになっている。

 Teper氏は、FluidをREST APIの進化であると考えるように提案した。「Fluidはアプリケーションのあらゆる種類のバックエンドの開発を可能にするレイヤーであり、それによってさまざまなフロントエンド(ユーザー体験)に対応できる、とわれわれは考えている。現時点ではリアルタイムでない多数の基幹業務アプリケーションがリアルタイムに、そして楽しくインタラクティブなものになり、コンポーネントをストレージシステムに、すなわちアプリ自体のビジネスプロセスバックエンドに公開することを期待している」

 Microsoft自身がFluidのバックエンドを最初に実装した事例は、新しいOneDriveコンシューマーサービスでのSharePointだが、同社がオープンソース化したのはFluidのプロトコルとデータ構造、そして開発者がSharePointだけでなく独自のバックエンドサービスに接続できる共同作業用のコンポーネントだ。

 「Fluidのきっかけとなったのは、ドキュメントの共同編集に関して行ってきた他のすべてのことをどうすれば飛躍的に進化させられるか、ということだった。具体的には、カーネルモードで動作する『Azure Blob Storage』上に階層化されたSharePointに、新しいストレージシステムを配置して、プロトコル内のFluidデータ構造をオン(ストレージ)ディスクとSharePointにネイティブにマッピングし、驚異的な速度を実現した」とTeper氏は語る。

 Patton氏は2019年に米TechRepublicに対し、「SharePoint Online」はユーザーに見えないところで「Azure SQL」とAzure Blob Storageを使用している、と述べた。実際に、SharePoint OnlineはAzure Storageの最大の顧客だ。「Windows」チームとSharePointチームは、SharePointのアクセスパターンのパフォーマンスを最適化するために、新しいファイルI/Oスタックの開発に共同で取り組んでいる。それにはAzureのネイティブカーネルモード仮想ディスククライアントが含まれており、読み取り操作と書き込み操作は、ロードバランサーとサーバーの複数のレイヤー経由ではなく、Blobが格納されているサーバー上で直接実行される(同様のストレージサービスである「Direct Drive」が、「SAP Hana」のようなI/O負荷の高いワークロード用に設計された「Azure Ultra Disk Storage」ディスクストレージサービスを支えている)。Blobストレージに送信されるリクエストは一度に1つのファイルチャンクではなく、逆シリアル化されて並列的に送信されるため、複数のユーザーがFluidドキュメントを共同編集する際に、変更がストレージキューで待機することはない。

 Fluidは新しいデータレイヤーだ。Microsoftの実装では、この新しいSharePointストレージレイヤーを使用して、データを極めて高速にAzureのディスクに移動する。Teper氏はこれを「ほぼゼロレイテンシの共同オーサリング」と評している。

「PWA」を応用する

 Fluidがウェブアプリのバックエンドの未来であるなら、「Project Nucleus」はそれらのウェブアプリのパフォーマンスと信頼性の向上を目指すMicrosoftの取り組みだ。これには、ユーザーが接続していないとき(あるいは非常に低速のネットワークの使用時)にウェブアプリを使ってデータの閲覧や編集を可能にする機能が含まれる。

 「Progressive Web Apps」(PWA)は、アプリケーションを非常に手軽に配布する手段だ。アプリストアに置いてネイティブアプリのようにインストールすることもできるし、ウェブブラウザーでブックマークのようにピン留めして使うこともできる。Teamsのような「Electron」アプリと異なり、PWAは全く別のブラウザーエンジンを新たに起動することはない(Electronアプリは個別にアップデートする必要もある)。また、デバイスによっては、PWAはネイティブアプリと同じように、通知やジャンプリストといったOS統合機能の一部を利用することもできる。

 ただし、SharePointのようなものの場合、PWAは非常に大規模で複雑なデータセットの扱いにはあまり向いていない。特に低速のネットワーク接続では、パフォーマンスが必ずしも高速ではないからだ。

「開発ツール」で読まれている記事

TechRepublic Japanで人気の記事

編集部オススメ

トレンドまるわかり![PR]

財務・経理
人事・労務
マーケ・営業
購買・調達
生産・製造
データ分析
コミュニケーション
通信・通話
文書・コンテンツ
PC・モバイル
新興技術
ITインフラ
クラウドサービス
OS・ミドルウェア
開発
開発ツール
開発支援
ノンプログラミング開発ツール
データベース
運用
セキュリティ

ホワイトペーパーランキング

  1. 5分でわかる、レポート作成の心得!成果至上主義のせっかちな上司も納得のレポートとは
  2. ノートPCは従来ながらの選び方ではダメ!新しい働き方にも対応する失敗しない選び方を徹底解説
  3. 問題だらけの現場指導を効率化!「人によって教え方が違う」を解消するためのマニュアル整備
  4. 緊急事態宣言解除後の利用率は低下 調査結果に見る「テレワーク」定着を阻む課題とその対応策
  5. たしか、あのデータは、こっちのアプリにあったはず…--業務改善のためのアプリ導入がストレスの原因に?

Follow TechRepublic Japan

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]