説明

リアルタイムコラボレーションの間のデータ及びローカル計算のプライベートビュー

リアルタイムコラボレーションの間に複数のユーザ又はクライアントがスプレッドシートファイル上でプロセスを実行するための技術が開示されている。この技術によれば、少なくとも1つのクライアントによって計算をローカルに行うことができる。こうすることにより、効率アップを達成することができる。なぜなら、データ更新だけをホストマシンに提供すればよいからである。よって、好ましくは、ローカルに行われる計算が異なるデータを生成可能かを決定する。もしコンフリクトを起こすデータが生成される可能性があるならば、スプレッドシートファイルのための計算は通常、リモートでホストマシンによって行われる。そうでなければ、ローカル計算を行うことができる各クライアントは計算をローカルに行い、更新されたデータだけをホストマシンに送信する。計算をローカルに行うべきか否かの決定は、1つ又は複数の新しい式がスプレッドシートファイルに追加されたときのような場合に、状況に応じて実行される。

【発明の詳細な説明】
【技術分野】
【0001】
幾つかのスプレッドシートアプリケーションに関する新しい機能は、複数のユーザが1つのスプレッドシートファイル上で同時にリアルタイムでコラボレートすることができることである。これは、各ユーザが瞬間的に(又はほぼ瞬間的に)、ファイルを編集している他のユーザにより行われる変更を見ることが出来るという編集モードである。例えば、第1のユーザがスプレッドシートセルの内容を変更したとき、他の全てのユーザがスプレッドシートの更新を数ミリ秒後に各自のビュー(view)において見ることができ、よって、変更が行われるとすぐに全ての変更が表示されるように感じる。この種のコラボレーションには、リアルタイムチャットやユーザプレゼンス情報のような他の機能がしばしば伴う。もし上記機能を上手に実行することができれば、ユーザが同じスプレッドシートに対して作業をしてデータを同時に共有し編集するという状態を正しく表示することができる。
【背景技術】
【0002】
リアルタイムコラボレーションの1つの問題点は、ほとんどの場合、各コラボレーションユーザがスプレッドシートファイル内の同じデータを見たがることである。これは、明確なユーザの期待であり、もしユーザが変更をした後に同じデータを見なければ、ユーザはデータが不正確であると感ずるか、自分が行った変更が正しく受信されていないと感ずる。また、ユーザは誰が正しいデータを持っているのかということについて不安になる。このようなユーザの期待はユーザエクスペリエンスにとって非常に重要なことであるので、従来のリアルタイムコラボレーション環境における計算はサーバのような中心部で行われ、その後、各クライアントに個別に配信されていた。これは異なるタイミングで行われる異なる計算により、多くの場合データが異なってしまうからである。従って、ユーザが変更を行うたびに、変更が配信されて、スプレッドシートファイルが再計算及び再配信されて、スプレッドシートファイルの各クライアントバージョンを更新できるようにしていた。これをするにはかなりの時間を要し、複雑な計算をするスプレッドシートでは特に長い時間を要する。
【発明の概要】
【発明が解決しようとする課題】
【0003】
リアルタイムコラボレーションの別の問題点は、コラボレーションするユーザが自分自身のビューでデータを見たいとしばしば望むことである。例えば、複数のユーザが1つの大きな表にデータを入力しているとき、各ユーザは本人しか見たいと思わないエントリを持っていることがある。各ユーザは固有の方法で表をフィルタリングして、本人が責任を持つエントリだけを表示したいと望むことがある。問題は、通常各ユーザが異なるフィルタを有しており、そのフィルタが同じ表に適用されるが、各ユーザが同じ表を同時に編集しているので、全ユーザが他のユーザの変更を見ることになることである。このことにより、従来、リアルタイムコラボレーション環境でデータを操作又は分析することは、不可能でないにしても非常に難しかった。
【課題を解決するための手段】
【0004】
スプレッドシートファイル上で複数のユーザ又はクライアントによりリアルタイムコラボレーションで処理を行う技術がここに開示されている。この技術によれば、複数のクライアントの少なくとも1つにより計算をローカルに行うことができる。このようにすることにより性能が向上する。なぜならデータ更新だけをホストマシンに提供すればよいからである。よって、好ましくは、ローカルに行われる計算が異なるデータを生成可能かどうかについての決定がなされる。もしコンフリクトするデータが生成される可能性があるなら、スプレッドシートファイルの計算は通常、ホストマシンによりリモートで行われる。もしそうでなければ、上記のことができる各クライアントが計算をローカルに行い、更新データだけをホストマシンに送る。1つ又は複数の新しい式がコラボレーションしている複数クライアントの1つによりスプレッドシートファイルに追加されときのような場合に、計算がローカルに行われるべきか否かの決定は状況に応じてなされる。
【0005】
スプレッドシートファイル上でコラボレートしているクライアントによって、スプレッドシートファイルの所望のビューを提供する技術についても本明細書に開示されている。スプレッドシートファイルの詳細の全てが含まれている典型的な共有ビューを表示するのではなく、プライベートビュー(private view)が各クライアント毎に、クライアントが選択するデータに応じて表示される。これは、例えば、ソート、フィルタその他のツールの使用の結果として得られるものである。従って、特定の指定動作だけがクライアントコンピュータとホストマシンの間で同期されるが、全てのデータが提供されるので、その後他のクライアントコンピュータにもデータを送信することができる。コラボレーションの後にクライアントコンピュータの所望のビュー又はプライベートビューを利用可能にするために、各ビューがホストマシンのスプレッドシートファイルに残ることもある。
【0006】
上記した発明の概要は本発明の概念を簡潔に紹介するための記載であり、本発明の技術思想は後述する発明の実施形態で更に説明される。上記した発明の概要は特許請求の範囲に記載された発明の重要な特徴や本質的な特徴を特定することを意図していない。また、上記した発明の概要は特許請求の範囲に記載された発明の範囲を決定する場合の補助情報として用いられることを意図していない。
【図面の簡単な説明】
【0007】
例示的な実施形態は添付図面を参照して下記の発明の実施形態の説明を読むことにより、より良く理解されるであろう。
【0008】
【図1】図1は典型的なコンピューティング装置のブロック図である。
【図2】図2は複数のクライアントコンピュータがスプレッドシートファイル上でコラボレートしている様子を示すシステム図であり、1つのクライアントコンピュータがローカルに計算をしている場合を示している。
【図3】図3はスプレッドシートファイル上でコラボレートしている複数のクライアントコンピュータがスプレッドシートファイルで計算を行う方法のフローチャートである。
【図4】図4はスプレッドシートファイル上でコラボレートしている複数のクライアントコンピュータにスプレッドシートファイルのビューを提供する方法のフローチャートである。
【発明を実施するための形態】
【0009】
法令に規定された要件を満たすように、本発明の内容を詳細に説明する。しかしながら、本明細書そのものは、本発明の範囲を限定する意図を有していない。特許請求の範囲に記載された発明は下記に説明されたもの以外の実施形態で実施することができる。例えば、現在又は未来の技術に鑑み、本明細書に記載されたものとは異なるステップを含んでもよいし、同様なステップを組み合わせてもよい。
【0010】
図1は、上記した本発明の内容を実施することができる適切なコンピューティングシステム環境100の例を示している。このコンピューティングシステム環境100は適切なコンピューティング環境の一例に過ぎず、上記した本発明の機能又は用途の範囲に関して何らかの限定を与えることを意図していない。また、コンピューティング環境100は、典型的な動作を行うコンピューティング環境100内に図示されているコンポーネントの任意の1つ又は任意の組み合わせに関連した従属性や要件を有していると解釈されるべきではない。
【0011】
図1を参照すると、コンピューティングシステム環境100は汎用コンピューティング装置としてコンピュータ110を有している。コンピュータ110のコンポーネントは、処理ユニット120、システムメモリ130及びシステムバス121を含んでもよいが、これらに限定されない。システムバス121は、システムメモリを含む種々のシステムコンポーネントを処理ユニット120に接続している。システムバス121は、色々なバスアーキテクチャを使用するメモリバス、メモリコントローラ、ペリフェラルバス(periphral bus)又はローカルバス等のいずれのバス構造を有してもよい。上記アーキテクチャは、例えば、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、拡張ISAバス、VESA(Video Electronics Standards Association)ローカルバス、PCI(Peripheral Component Interconnect)バスを含むが、これらに限定されない。尚、PCIバスはメザニンバス(Mezzanine bus)としても知られている。
【0012】
通常、コンピュータ110は種々のコンピュータ可読媒体を含んでいる。コンピュータ可読媒体はコンピュータ110によりアクセス可能であれば任意の入手可能な媒体でよい。コンピュータ可読媒体は、揮発性及び不揮発性の媒体、取り外し可能な及び固定の媒体を含む。例えば、コンピュータ可読媒体は、コンピュータ記憶媒体と通信媒体を含んでもよいが、これらに限定されない。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュールその他のデータのような情報を記憶するための任意の方法又は技術で使用される揮発性及び不揮発性の取り外し可能な及び固定の媒体を含む。コンピュータ記憶媒体は例えば、RAM、ROM、EEPROM,フラッシュメモリ、その他のメモリ手段、CRROM,DVD、その他の光学ディスク記憶手段、磁気カセット、磁気テープ、磁気ディスク記憶装置、その他の磁気記憶手段、及び、所望の情報を記憶することができ且つコンピュータ110によりアクセス可能な上記以外の任意の媒体を含むが、これらに限定されない。通常、通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュール及びその他のデータを、搬送波のような変調されたデータ信号又は他の移送手段に保有しており、通信媒体は任意の情報配信媒体を含む。「変調されたデータ信号」という用語は、信号内の情報を符号化するように設定又は変更された特性を1つ以上有する信号を意味する。例として、通信媒体は、有線ネットワーク又は有線直結(diret−wired connection)のような有線媒体及び音響媒体、RF媒体、赤外線媒体、その他の無線媒体のような無線媒体を含むが、これらに限定されない。上記したものの任意の組み合わせも、コンピュータ可読媒体の範疇に含まれる。
【0013】
システムメモリ130はコンピュータ記憶媒体として、ROM(read only memory)131及びRAM(random access memory)132のような揮発性メモリ及び/又は不揮発性メモリを有する。BIOS(Basic Input/Output System)133は、例えばスタートアップの際にコンピュータ110内の要素間で情報を伝送するための基本ルーチンを含んでおり、通常はROM131に記憶されている。通常、RAM132は、処理ユニット120により直ちにアクセス可能である及び/又は処理ユニット120により処理中のデータ及び/又はプログラムモジュールを含んでいる。一例として、図1はオペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136及びプログラムデータ137を示しているが、これらに限定されない。
【0014】
コンピュータ110は他の取り外し可能な/固定の、揮発性/不揮発性のコンピュータ記憶媒体をさらに有してもよい。一例として、図1は、固定の不揮発性の磁気媒体に読み書きを行うハードディスクドライブ141と、取り外し可能な不揮発性の磁気ディスク152に読み書きを行う磁気ディスクドライブ151と、CD−RW、DVD−RW、その他の光学媒体のような取り外し可能な不揮発性の光学ディスク156に読み書きを行う光学ディスクドライブ155とを示している。上記した以外の取り外し可能な/固定の、揮発性/不揮発性のコンピュータ記憶媒体で上記の典型的な動作環境において使用することができるものは、磁気テープカセット、フラッシュメモリカード、DVD、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROM等であるが、これらに限定されない。通常、ハードディスクドライブ141はシステムバス121に、インターフェース140のような固定のメモリインターフェースを介して接続される。また、磁気ディスクドライブ151及び光学ディスクドライブ155は通常、システムバス121に、インターフェース150のような取り外し可能なメモリインターフェースにより接続される。
【0015】
上述され且つ図1に示されたドライブ及びこれらに付随するコンピュータ記憶媒体は、コンピュータ110において使用されるコンピュータ可読命令、データ構造、プログラムモジュール及びその他のデータを記憶する。例えば、図1において、ハードディスクドライブ141はオペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146及びプログラムデータ147を記憶するものとして図示されている。尚、これらコンポーネントはオペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136及びプログラムデータ137と同じであってもよいし異なっていてもよい。本明細書では、オペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146及びプログラムデータ147には異なる番号が付けられており、少なくとも、これらが異なるものであることを示している。ユーザはコマンド及び情報をキーボード162及びポインティングデバイス161のような入力装置を介してコンピュータ110に入力することができる。ポインティングデバイス161は例えば、マウス、トラックボール、タッチパッドである。その他の入力装置(不図示)としては、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信用アンテナ、スキャナ等が挙げられる。上記及びその他の入力装置はしばしば処理ユニット120にユーザ入力インターフェース160を介して接続される。ユーザ入力インターフェース160はシステムバス121に接続されている。尚、上記及びその他の入力装置は、パラレルポート、ゲームポート又はUSB(universal serial bus)のような他のインターフェース及びバス構造により処理ユニット120に接続されてもよい。グラフィックスインターフェース182も、システムバス121に接続されてよい。1つ又は複数のGPU(Graphics Processing Units)184はグラフィックスインターフェース182と通信可能であってもよい。モニタ191又は他のタイプの表示装置も、ビデオインターフェース190のようなインターフェースを介してシステムバス121に接続されている。ビデオインターフェース190はビデオメモリ186と通信可能である。モニタ191に加え、コンピュータは、スピーカ197及びプリンタ196のようなその他の周辺出力機器も含んでもよい。これら機器は出力周辺機器インターフェース195を介して接続される。
【0016】
コンピュータ110はネットワーク環境又は分散環境で機能することがで、この場合、リモートコンピュータ180のような1つ又は複数のリモートコンピュータにつながる論理接続を使用する。リモートコンピュータ180は、例えば、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、又はその他の一般的なネットワークノードであり、図1には1つのメモリ記憶デバイス181しか示されていないが、通常、上記コンピュータ110に関連して上述された要素の多く又は全てを含む。図1に示された論理接続は、LAN(ローカルエリアネットワーク)171及びWAN(広域ネットワーク)173を含むが、他のネットワーク/バスを含んでもよい。このようなネットワーク環境は、家庭、オフィス、企業内コンピュータネットワーク、イントラネット及びインターネットにおいて広く使用されているものである。
【0017】
LANネットワーク環境で使用される場合、コンピュータ110はLAN171にネットワークインターフェース又はアダプタ170を介して接続される。WANネットワーク環境で使用される場合、コンピュータ110は通常、インターネットのようなWAN173を介して通信を可能とするモデム172又はその他の手段を含む。モデム172は外部に設けられる場合もあるし内部に設けられる場合もあるが、ユーザ入力インターフェース160又は他の適切な手段を介してシステムバス121に接続され得る。ネットワーク環境においては、コンピュータ110に関連して説明されたプログラムモジュール又はその一部は、リモートメモリ記憶装置に記憶されてもよい。例として、図1はリモートアプリケーションプログラム185がメモリ装置181にある場合を示しているが、これに限定されない。尚、図示されたネットワーク接続は例示であり、コンピュータ同士間で通信リンクを確立する他の手段を使用してもよい。
【0018】
図2から次のことが理解できる。即ち、上記したものに類似した2つ又は3つ以上のコンピューティングシステム200、220は、第1のクライアント及び第2のクライアントとして知られているものであり、スプレッドシートファイル210のような共通の1つのファイル上で、リアルタイムでコラボレートしたいと望むことがある。これは、各ユーザ又はクライアントが、ファイルを同時に編集している他のユーザ又はクライアントによって行われる変更を見る編集モードである。図示されているように、これは、サーバ230のような別のホストマシンを介して行われる。このホストマシンは保存されるスプレッドシートファイルのバージョンを有している。勿論、クライアントコンピュータのいずれかがコラボレーション用ホストマシンとして使用されることもある。この場合、クライアントコンピュータが上記能力を備え且つクライアントコンピュータが正しくネットワーク化されていることが条件となる。
【0019】
典型的なコラボレーション環境においては、クライアントコンピュータ(例えば、コンピューティングシステム200)は、メッセージ又はデータ更新を、コンピュータ実行命令を介してホストマシン230に伝達する(矢印240で示されているように)。ホストマシン230は、全てのクライアントから受信される色々な変更や入力データを処理し(ボックス250に示されているように)、データ更新等を、コンピュータ実行命令を介して各クライアントコンピュータに送信する(矢印260で示されているように)。このように、全てのクライアントコンピュータに対してスプレッドシートファイル210の状態は、コラボレーション中は、同期状態に維持される。尚、いずれかのクライアントコンピュータによりスプレッドシートファイル210に行われる変更は、迅速に別のクライアントコンピュータに提供されるので、全ての変更は変更が生じたときに現れるように見える。
【0020】
スプレッドシートファイル210で行われる全ての計算を中央処理して結果を個々のクライアントコンピュータに再配信するという動作をホストマシン230に任せるのではなく、少なくとも幾つかの状況下では、計算を1つ又は複数のクライアントコンピュータによってローカルに行うことが好ましい場合もある(ボックス270を参照)。図2の例では、クライアントコンピュータ220だけが上記のようなローカルな計算を行うように図示されているが、任意の数の他のクライアントコンピュータ(例えば、クライアントコンピュータ200)も上記のローカルな計算を行ってよい。ローカルな計算は、例えば、技術分野でシッククライアント(thick client)バージョンとして知られているものによって、または、他の論理(例えば、ローカルなウェブページに含まれている論理)を使用することによって、行うことができる。このようなローカルな計算がクライアントコンピュータ220によって行われた後、データに対する更新だけ(ボックス280参照)がホストマシン230に送信され(矢印290で示されているように)同期がとられる。尚、任意のコラボレートセッションにおいて、1つ又は複数のクライアントコンピュータがスプレッドシートファイル210の計算をローカルに行ってもよいし、1つ又は複数のクライアントコンピュータはホストマシン230を利用して上記計算をリモートで行ってもよい。しかしながら、特に、複雑な計算が含まれるとき、スプレッドシートファイル210によって要求される計算をローカルに行うことにより、データ更新がより早く完了する場合がある。
【0021】
スプレッドシートファイル220のローカルな計算がどのように、複数のユーザ又はクライアントを含むコラボレートセッションの間に好適に採用されるかをより良く理解するために、関係するプロセスステップが図3に示されている。図示されているように、リアルタイムコラボレーションは、ホストマシンに記憶されているスプレッドシートファイルが複数のクライアント又はユーザによって開かれると開始する(ボックス300)。その後、ホストマシンは、スプレッドシートファイルのために実行されるべき計算がクライアントによってローカルに行われるのならば異なるデータを返信可能かを、決定する(ボックス305)。より詳しくは、ホストマシンは好ましくは、スプレッドシートファイル内の全ての式を、異なる結果を生成するものとして知られている式の所定リストと比較する。計算結果同士のずれは、色々な理由により生じ得る。例えば、計算がいつまたはどこで行われたかにより、ずれが生ずることもある。各スプレッドシート計算では上記決定を個別に行う。なぜなら上記決定は、上記機能がどのように評価されるかに応じて変わることがあるからである。
【0022】
もし上記計算が常に同じ結果を返信するものであるとホストマシンによって決定されたならば、上記計算をローカルに行わせるためのメッセージが各クライアントコンピュータに送られ(ボックス310)、クライアントコンピュータが計算を行う(ボックス315)。尚、ローカルに計算を行う各クライアントコンピュータはクライアントのスプレッドシートファイルに計算結果を表示し(ボックス320)、データのみを含む対応更新情報をホストマシンに送る(ボックス325)。従って、ホストマシンはクライアントコンピュータからの複数の更新情報を同期させ、更新情報を全てのクライアントコンピュータに送る(ボックス330)。
【0023】
たとえ上記計算がクライアントコンピュータによりローカルに行われる場合に異なるデータが返信され得ると決定されても、各ユーザ又はクライアントにはスプレッドシートファイルの式をローカルに計算するか否かを決めるための選択又は選択肢が提供されることが好ましい(ボックス335)。例えば、(例えば、どの時間帯にクライアントコンピュータが位置するのかに応じた結果を関数が与える場合)異なる結果を返信するローカル計算が許容される場合もある。このような場合、計算はクライアントコンピュータによってローカルに行われ(ボックス340)、計算結果はクライアントコンピュータによって表示され(ボックス345)、対応するデータ更新がホストマシンに送られる(ボックス350)。
【0024】
もしクライアントが計算をローカルに行うことができなければ、あるいは、もし異なる結果が許容できないと考えられるならば、データ更新はホストマシンに送られ(ボックス355)、スプレッドシートファイルのための計算は好ましくはホストマシンによってリモートに行われる(ボックス360)。データ更新はその後ホストマシンからクライアントコンピュータに送られる(ボックス330)。スプレッドシートファイルの式の計算をローカルに行うか否かの選択は管理方針によって予め決めておくこともできる。
【0025】
スプレッドシートファイルの式の計算をローカルに行うか否かに拘わらず、次のことがフィードバックループ332から理解できる。即ち、データ更新がホストマシンによって同期して行われて全てのクライアントに送られること(ボックス330)が、コラボレーション中は連続して行われることが好ましいということが理解できる。このように、クライアントコンピュータは現在のデータに基づいてスプレッドシートファイルを変更することができ且つ現在のデータに基づいてスプレッドシートファイルの計算を行うことができる。
【0026】
スプレッドシートファイルの計算をローカルに行うか否かの決定を状況に応じて行えるようにするためには、コラボレーションの間に新しい式がスプレッドシートファイルに追加されたかを決定するステップを上記プロセスが含むことが好ましい(ボックス365)。明らかに、もしクライアントコンピュータによって式が追加されていないならば、ホストマシンからクライアントコンピュータへのデータ更新の送信は続けられる(ボックス330)。1つ又は複数の新しい式がコラボレーションの間に追加されると、フィードバックループ370が形成されて、新しい式が分析され、スプレッドシートファイルの計算がローカルに行われるときに異なるデータが返信可能かどうかを新たに決定することになる(ボックス310)。
【0027】
本発明の他の側面は、コラボレーションの間に各クライアントコンピュータにおいて表示されるスプレッドシートファイルのビューに関する。クライアントコンピュータがスプレッドシートファイル全体を表示する、スプレッドシートファイルの共有ビューに限定されるのではなく、スプレッドシートファイルの特定のオブジェクトのみを表示する、プライベートビューを持つことをクライアント又はユーザは好む場合もある。スプレッドシートファイル内の全てのデータが各クライアントコンピュータにとって同じであり、いかなるデータに行われる変更もホストマシンによって更新可能であり、各クライアントコンピュータに送られるとする。各クライアントコンピュータはデータのクライアントのビューにのみ適用するソーティングとフィルタリングを施すことができるので、各クライアントはスプレッドシートファイルにおいて自分のためだけに調整されたデータビューを持つことができる。このことにより、複数の大きな表を同時に編集又は分析する必要があるクライアントは、1つの編集を行うときと同じような体験をすることになる。勿論、好ましくは、1つのクライアントコンピュータによって行われるビューへの変更は、他の全てのクライアントへ配信されない。
【0028】
図4に示されているように、コラボレーションは、スプレッドシートファイルが複数のクライアントコンピュータによって開かれたときに開始される(ボックス400)。尚、クライアントがスプレッドシートファイルにおいてデータオブジェクトをプライベートビュー又は共有ビューのいずれで見るかを選択できるようにするための選択又は選択肢が(例えば、ユーザインターフェースによって)提供される(ボックス405)。この選択肢はスプレッドシート全体に包括的に提供されるか、スプレッドシートのオブジェクト毎に提供される。もしクライアントがプライベートビューを持ちたいと望むなら、データのビューは、まるで一人のユーザが編集を行っている場合と同じように、クライアントにより生成される(ボックス410)。
【0029】
ユーザ又はクライアントがコラボレーションで処理を行う度に、ユーザ又はクライアントは、スプレッドシートファイルについて処理をホストマシンと同期させるべきかを決定する(ボックス415)。よって、好ましくは、クライアントアプリケーションはどの処理がホストマシンと同期されるべきか及び同期されるべきではないかを知るロジックを含む。例えば、特定の処理(例えば、ソーティング、フィルタリング、ピボットテーブル操作(PivotTable manipulations)等)が同期されるべきでないかが決定される。いずれにせよ、好ましくは、クライアントによってスプレッドシートファイルに追加された又は変更されたデータは、常にホストマシンと同期される(ボックス420)。
【0030】
その後ホストマシンがデータ更新を処理して、データ更新を全てのクライアントコンピュータに送ることになる(ボックス425)。クライアントコンピュータがホストマシンから受信する全ての変更は、コラボレーションにおいてそのような変更が通常適用されるように適用される。よって、データにおけるどのような変更も、それがたとえプライベートビューに示されているデータにおける変更であっても、コラボレーションしている他の全てのクライアントコンピュータによって取得される。同時に、データにおける変更がプライベートビューで見ることができない場合には、変更はプライベートビューのユーザインターフェースに表示されない。コラボレーションの間は編集プロセスが継続的に進行するので、好ましくはフィードバックループ435を設けることにより、ホストマシンからの更新されたデータは選ばれたビューに表示される。
【0031】
勿論、上記ビューに代わるもう一つのビューは共有ビューであり、共有ビューはスプレッドシートファイルを包括的に表示する。プライベートビューが選択されない場合、プライベートビューの代わりに、共有ビューが生成される(ボックス430)。
【0032】
一旦ユーザ又はクライアントコンピュータがコラボレーションから外れることを決めると、好ましくは、クライアントコンピュータのために選択されたビューはホストコンピュータに記憶されているスプレッドシートファイルに残される(ボックス440)。このようにすれば、クライアントコンピュータはスプレッドシートファイルを後日開いたとき、スプレッドシートファイルからそのビューを見ることができる。任意ではあるが、各クライアントコンピュータのビューに関して、ロジックはスプレッドシートファイルのフォーマットで書かれてもよい。このビューはファイルフォーマットで表として表すことができ、各ユーザ、オブジェクト及びオブジェクトのビューのエントリを有する。
【0033】
1つの典型的な状況としては、第1のユーザと第2のユーザが、例えば、スプレッドシートアプリケーションのシック(thick)クライアントバージョンを使用して、スプレッドシートの大きな表においてコラボレートしている場合が考えられる。この表は例えば、各国毎の販売データを含む。例えば、第1のユーザ又は第1のクライアントがフィルタリングを適用することにより、米国における販売のみを表示するのに対し、第2のユーザはフィルタリングを適用することによりフランスにおける販売のみを表示する。もし第2のユーザがフランスにおける販売を含む上記表の行に変更を行ったとすると、データが変更された後に変更は第1のユーザのコンピュータに送信される。但し、第1のユーザのビューは上記変更をスクリーン上に反映しない。なぜなら、フランスにおける全ての販売データは、現在、フィルタリングされて、ビューに表示されないようになっているからである。しかしながら、第2のユーザによって行われる変更が考慮されている、第1のユーザのスプレッドシートにおけるトータルセールスチャートのような第1のユーザのスプレッドシートの他の場所は正確に更新される。また、第2のユーザは、フランスとスペインからの販売データを見ることができるように、適用されたフィルタリングを変更することもある。この変更はビューに影響を与えるだけだから、この変更はホストマシンには送信されないようにし、第1のユーザによっても認識されないようにしてもよい。
【0034】
本発明の内容を構造的特徴及び/または方法論的な動作に注目して説明してきたが、特許請求の範囲に記載されている本発明の内容は、上記された特徴または動作に限定される必要はない。上記された特徴または動作は特許請求の範囲に記載された本発明を実施する1つの例として開示されているだけである。

【特許請求の範囲】
【請求項1】
プロセスを実行するためのコンピュータ実行可能命令を記憶したコンピュータ可読媒体であって、前記プロセスは、
第1のクライアント(200)においてスプレッドシートファイル(210)を開くステップであって、前記スプレッドシートファイル(210)は第2のクライアント(220)においても開かれて前記第1のクライアント(200)と前記第2のクライアント(220)とが前記スプレッドシートファイル(210)上でコラボレートするステップと、
前記スプレッドシートファイル(210)におけるデータに対して少なくとも1つの計算を前記第1のクライアント(200)においてローカルに行うステップと、
前記第1のクライアント(200)における前記第1のスプレッドシートファイル(210)に前記計算の結果を表示するステップとを備えることを特徴とするコンピュータ可読媒体。
【請求項2】
前記コンピュータ実行可能命令によって実行される前記プロセスは、前記スプレッドシートファイル(210)における計算がローカルに行われる場合に異なるデータを返信可能かを決定するステップをさらに備えることを特徴とする請求項1に記載のコンピュータ可読媒体。
【請求項3】
前記コンピュータ実行可能命令によって実行される前記プロセスは、前記スプレッドシートファイル(210)内の式を、異なる結果を生成することが知られている式の所定リストと比較するステップをさらに備えることを特徴とする請求項2に記載のコンピュータ可読媒体。
【請求項4】
前記コンピュータ実行可能命令によって実行される前記プロセスは、前記スプレッドシートファイル(210)における前記計算をローカルに行うべきかを前記第1のクライアント(200)に選択させるステップをさらに備えることを特徴とする請求項1に記載のコンピュータ可読媒体。
【請求項5】
前記コンピュータ実行可能命令によって実行される前記プロセスにおいて、前記スプレッドシートファイル(210)における前記計算をローカルに行うべきかの前記選択は、管理方針によって予め決められることを特徴とする請求項4に記載のコンピュータ可読媒体。
【請求項6】
前記コンピュータ実行可能命令によって実行される前記プロセスは、コラボレーションの間に加えられた式について、前記スプレッドシートファイル(210)における計算がローカルに行われる場合に異なるデータを返信可能であるかを状況に応じて決定するステップをさらに備えることを特徴とする請求項2に記載のコンピュータ可読媒体。
【請求項7】
前記コンピュータ実行可能命令によって実行される前記プロセスは、
前記スプレッドシートファイル(210)における前記データに対する更新を受信するステップと、
更新された前記データを用いる式について、前記スプレッドシートファイル(210)における新しい計算をローカルに行うステップとをさらに備えることを特徴とする請求項1に記載のコンピュータ可読媒体。
【請求項8】
プロセスを実行するためのコンピュータ実行可能命令を記憶したコンピュータ可読媒体であって、前記プロセスは、
第1のクライアント(200)においてスプレッドシートファイル(210)を開くステップであって、前記スプレッドシートファイル(210)は第2のクライアント(220)においても開かれて前記第1のクライアント(200)と前記第2のクライアント(220)とが前記スプレッドシートファイル(210)上でコラボレートするステップと、
前記スプレッドシートファイル(210)におけるデータの計算を前記第1のクライアント(200)においてローカルに行うべきか前記第1のクライアント(200)以外のリモートデバイスにおいて行うべきかを決定するステップであって、
前記計算がローカルに行われるべきならば、前記計算を前記第1のクライアント(200)においてローカルに行い、
前記計算がリモートで行われるべきならば、前記計算を行うためのデータを前記リモートデバイスに送る、ステップとを備えることを特徴とするコンピュータ可読媒体。
【請求項9】
前記コンピュータ実行可能命令によって実行される前記プロセスは、前記スプレッドシートファイル(210)における計算がローカルに行われる場合に異なるデータを返信可能かを決定するステップをさらに備えることを特徴とする請求項8に記載のコンピュータ可読媒体。
【請求項10】
前記コンピュータ実行可能命令によって実行される前記プロセスは、前記スプレッドシートファイル(210)内の式を、異なる結果を生成することが知られている式の所定リストと比較するステップをさらに備えることを特徴とする請求項9に記載のコンピュータ可読媒体。
【請求項11】
前記コンピュータ実行可能命令によって実行される前記プロセスは、前記スプレッドシートファイル(210)における前記計算をローカルに行うべきかを前記第1のクライアント(200)に選択させるステップをさらに備えることを特徴とする請求項8に記載のコンピュータ可読媒体。
【請求項12】
前記コンピュータ実行可能命令によって実行される前記プロセスは、コラボレーションの間に加えられた式について、前記スプレッドシートファイル(210)における計算がローカルに行われる場合に異なるデータを返信可能かを状況に応じて決定するステップをさらに備えることを特徴とする請求項8に記載のコンピュータ可読媒体。
【請求項13】
前記コンピュータ実行可能命令によって実行される前記プロセスは、
前記スプレッドシートファイル(210)における前記データに対する更新を受信するステップと、
更新された前記データを用いる式について、前記スプレッドシートファイル(210)における新しい計算をローカルに行うステップとをさらに備えることを特徴とする請求項8に記載のコンピュータ可読媒体。
【請求項14】
プロセスを実行するためのコンピュータ実行可能命令を記憶したコンピュータ可読媒体であって、前記プロセスは、
第1のクライアント(200)においてスプレッドシートファイル(210)を開くステップであって、前記スプレッドシートファイル(210)は第2のクライアント(220)においても開かれて前記第1のクライアント(200)と前記第2のクライアント(220)とが前記スプレッドシートファイル(210)上でコラボレートするステップと、
前記スプレッドシートファイル(210)の前記スプレッドシートファイル(210)の全体よりも小さな第1のプライベートビューを前記第1のクライアント(200)において提供するステップとを備えることを特徴とするコンピュータ可読媒体。
【請求項15】
前記コンピュータ実行可能命令によって実行される前記プロセスは、前記第1のクライアント(200)によって前記スプレッドシートファイル(210)上で行われる各処理をホストマシンに同期させるかを決定するステップをさらに備えることを特徴とする請求項14に記載のコンピュータ可読媒体。
【請求項16】
前記コンピュータ実行可能命令によって実行される前記プロセスにおいて、前記スプレッドシートファイル(210)の前記第1のプライベートビューが、前記スプレッドシートファイル(210)に適用されるフィルタによって決定されることを特徴とする請求14に記載のコンピュータ可読媒体。
【請求項17】
前記コンピュータ実行可能命令によって実行される前記プロセスは、前記第1のクライアント(200)によって前記スプレッドシートファイル(210)に入力された新しいデータの全てをホストマシンに同期させるステップをさらに備えることを特徴とする請求項14に記載のコンピュータ可読媒体。
【請求項18】
前記コンピュータ実行可能命令によって実行される前記プロセスは、ホストマシンから受信された全ての変更を前記第1のクライアント(200)に適用するステップをさらに備えることを特徴とする請求項14に記載のコンピュータ可読媒体。
【請求項19】
前記コンピュータ実行可能命令によって実行される前記プロセスは、前記スプレッドシートファイル(210)の前記第1のプライベートビューをホストマシンにおいても維持するステップをさらに備えることを特徴とする請求項14に記載のコンピュータ可読媒体。
【請求項20】
前記コンピュータ実行可能命令によって実行される前記プロセスは、
各クライアントのビューを前記スプレッドシートファイル(210)のフォーマットで書くステップと、
前記スプレッドシートファイル(210)の前記ビューをホストマシンに記憶するステップとをさらに備えることを特徴とする請求項14に記載のコンピュータ可読媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公表番号】特表2011−502303(P2011−502303A)
【公表日】平成23年1月20日(2011.1.20)
【国際特許分類】
【出願番号】特願2010−531123(P2010−531123)
【出願日】平成20年10月11日(2008.10.11)
【国際出願番号】PCT/US2008/079668
【国際公開番号】WO2009/055263
【国際公開日】平成21年4月30日(2009.4.30)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】