(この記事は 2013 年 11 月 19 日に Excel Blog に投稿された記事の翻訳です)

投稿者: Excel チーム、投稿日: 11 月 19 日

今回は、Excel チームでプログラム マネージャーを務める Micah Myerscough の記事をご紹介します。

マイクロソフトは先日、Excel Web App に複数の新機能を追加したことを発表しました。中でも注目の機能の 1 つが、リアルタイム共同編集機能です。この機能は同時並列的なコラボレーションを実現することによって、スプレッドシート上での共同作業の進め方を刷新するものです。この記事では、このリアルタイム共同編集機能を導入した理由と機能のしくみについてご紹介します。

リアルタイム共同編集とは?

この新しいリアルタイム共同編集機能の全容は、SkyDrive および Office 365 でご確認いただけます。最大の変更点は次のとおりです。

  • リアルタイムのプレゼンス表示: 他の共同作業者がスプレッドシート上で何を選択しているか、セルを編集中であるかどうかを確認できます。
  • リアルタイムのデータ表示: 他のユーザーが内容を変更すると、新しいデータが即座に表示されます。
  • 共同作業者リスト: 画面右上に、当該ファイルで作業中の全ユーザーのリストが表示されます。このリストの名前をクリックすると、そのユーザーの作業位置に移動します。

図 1: Excel Web App のリアルタイムのプレゼンス表示と共同編集

導入の理由

マイクロソフトにはお客様から、共同作業支援機能のさらなる充実を求める声が多数寄せられていました。そこで私たちは、ユーザーの皆様を訪問したり、会合を開いたり、マイクロソフトのオフィスにお招きしたりして、Excel Web App が他の作業者との共同作業でどのように使用されているかを観察しました。その結果、他の作業者がワークブックのどこで作業をしているかが把握しにくいという点が、共同作業における最大の課題の 1 つであることが明らかになりました。これでは他のユーザーの作業状況が見えないため、変更内容が突然画面に反映されるのです。マイクロソフトは、最高の共同作業エクスペリエンスを実現するためには、この問題を解決する必要があると考えました。

機能のしくみ

新しい共同編集機能のしくみを完全に理解するには、これまでの機能のしくみを理解する必要があります。Excel Web App では長年にわたって共同編集機能を提供してきましたが、これはリアルタイム性を実現するものではなく、ブラウザーがタイマーを使用してサーバーと通信するという過程が存在していました。つまり、スプレッドシート上でユーザーがどの程度アクティブであるかによって、ブラウザーが数秒から数分の間隔でサーバーに要求を送信し、すべてを更新していました。その結果、最終的には表示が��新されますが、スプレッドシートの内容が変更されてから他のユーザーの画面にそれが表示されるまでに一定の時間がかかってしまうという問題がありました。複数の作業者と共同作業を行う場合、ユーザーの皆様にとってこの更新頻度は到底満足のいくものではありませんでした。

図 2: ブラウザーはタイマーを使用し、要求したときのみサーバーから更新を受信

リアルタイム性を実現するために、選択または変更のたびに、ワークブックに接続されているすべてのブラウザーに通知を送信するコンポーネントをサーバーに追加しました。これにより、セルで入力を行ったり選択中のセルを移動したりすると、サーバーが直ちにその更新情報を全ユーザーに送信し、各ブラウザーが即座に新しい情報をダウンロードするようになりました。これは、学校で給食の用意ができると、昼食のチャイムを鳴らして全生徒に知らせるようなものです。変更がなければブラウザーが要求を送信することもないため、不要な要求がブラウザーからサーバーへ送信されることがなくなりました。また、変更が取得可能になるとすぐにブラウザーに通知されるため、変更がサーバーに送信されてから他のユーザーが受け取るまでの時間が大幅に短縮されました。この変更により、これまで他の共同作業者の変更内容が反映されるまでに
2 ~ 30 秒かかっていたものが、平均 1 秒以下にまで短縮されました。

図 3: すべてのブラウザーが常に接続されているため、変更のたびにブラウザーがその情報を受け取ることができる

データ転送の最適化

このモデルを設計するにあたって、スプレッドシートで作業中の全員がアクティブなときはネットワーク上で大量の情報が送受信され、接続速度の低下とデータ プランの料金上昇の原因となることが早期に判明しました。この軽減策として、必要なときにのみ更新情報を送信するしくみを導入しました。これにより、ブラウザーは表示中のワークブックの一部の情報のみをサーバーに送信し、サーバーは関係する部分のみを各ユーザーに送信するようになっています。たとえば、あるユーザーがシート 1 を表示しているときに別のユーザーがシート 2 を変更した場合、シート 1 を表示しているユーザーがシート 2 を表示するまで、その変更情報は送信されません。さらに、特定の種類の情報についてセグメント化を行い、1 つの情報のみが変更された場合にパッケージ全体を送信せずに済むようにしました。たとえば、あるワークブックで 20 人が作業している場合、1 人だけが選択箇所を変更したときには、20 人全員分の情報を再送信する必要はなく、その 1 人の新しい選択箇所の情報だけを送信すれば済みます。こうすることでデータ通信量が大幅に減少すると共に、共同作業の高速化とデータ プランの有効活用が実現されます。

図 4: この図の場合、2 番目のユーザーにのみ 1 番目のユーザーが行った A1 への変更が送信される (3 番目のユーザーは変更を視認できないため)

ご意見をお聞かせください

ここでは Excel Web App に追加されたリアルタイムのプレゼンス表示機能とデータ更新機能についてご説明しました。これらの機能が導入された理由と機能のしくみはおわかりいただけたでしょうか。ご意見やご要望がありましたら、コメント欄に書き込んでいただくか、Excel Web App の [Give Feedback] からお寄せください。皆様の共同作業のお役に立てますと幸いです。

Micah Myerscough (Excel 担当プログラム マネージャー)