(57)【要約】  分散型表計算アプリケーションは、ネットワークにおいてサーバおよびクライアントで実行する。ネットワーク型表計算アプリケーション一般に、アプリケーションを用いる前に、ユーザが任意の特定の表計算ソフトウェアをインストールする必要がなく、用いることができる。一実装において、表計算アプリケーションは、複数のクライアント計算デバイスおよびサーバ論理のブラウザプログラム内で実行するクライアントエンジンを含んでもよい。サーバ論理は、複数のクライアント計算デバイスのそれぞれのブラウザプログラムによって要求される場合に、表計算アプリケーションのクライアント計算デバイスにクライアントエンジンを分散するように構成されてもよい。サーバ論理は、複数のクライアント計算デバイスで同時に開かれる単独の表計算ドキュメントを同期化する。
2009532778.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
サーバ計算デバイスでクライアント計算デバイスのブラウザプログラムから表計算アプリケーションに関する要求を受信し、
前記要求に応じて、前記表計算アプリケーションの第１の部分用のプログラミングコードを前記クライアント計算デバイスの前記ブラウザプログラムに送信し、前記表計算アプリケーションの前記第１の部分用の前記プログラミングコードは、前記表計算アプリケーションの表計算ドキュメントの操作または書式設定に関する前記クライアント計算デバイスのユーザからの要求を局所的に処理するように設計されており、
前記サーバ計算デバイスで前記表計算アプリケーションの第２の部分用のプログラミングコードを実行し、前記表計算アプリケーションの前記第２の部分用の前記プログラミングコードは、前記表計算ドキュメントにおける機能の更新を処理するようにプログラムされている、方法。
【請求項２】
前記方法では、さらに
前記表計算アプリケーションの前記第１の部分用の前記プログラミングコードを複数のクライアント計算デバイスのブラウザプログラムに送信し、
前記複数のクライアント計算デバイスの一つでの前記表計算アプリケーションの前記第１の部分を介して行われる前記表計算ドキュメントに対して変更を、前記複数のクライアント計算デバイスの残りにおける表計算ドキュメントに対して更新する、請求項１に記載の方法。
【請求項３】
前記複数のクライアント計算デバイスの残りは、リアルタイムで更新される、請求項２に記載の方法。
【請求項４】
前記表計算アプリケーションの前記第１の部分は、前記複数のクライアント計算デバイスのユーザからのメッセージを表示するためのメッセージ領域を表示する、請求項２に記載の方法。
【請求項５】
前記メッセージは、前記複数のクライアント計算デバイスの前記ユーザ間で、リアルタイムで通信される、請求項４に記載の方法。
【請求項６】
前記表計算ドキュメントにおいて用いるための複数の機能を提供することをさらに含み、前記複数の機能の少なくとも一部は、他方のクライアント計算デバイスのユーザによって作成された機能である請求項１に記載の方法。
【請求項７】
前記方法では、さらに
記表計算ドキュメントに他のクライアント計算デバイスのユーザがパブリックにアクセス可能にするためのオプションを前記クライアント計算デバイスのユーザのために提供する、請求項１に記載の方法。
【請求項８】
プログラミング命令を格納するコンピュータ読出可能な記録媒体であって、前記プログラミング命令が計算デバイスによって実行されることで、前記計算デバイスは、
クライアント計算デバイスのブラウザプログラムから表計算アプリケーションに関する要求を受信し、
前記要求に応じて、前記表計算アプリケーションの第１の部分用のプログラミングコードを前記クライアント計算デバイスの前記ブラウザプログラムに送信し、前記表計算アプリケーションの前記第１の部分用の前記プログラミングコードは、前記表計算アプリケーションの表計算ドキュメントの操作または書式設定に関する前記クライアント計算デバイ
スのユーザからの要求を局所的に処理するように設計されており、
前記表計算アプリケーションの第２の部分用のプログラミングコードを実行し、前記表計算アプリケーションの前記第２の部分用の前記プログラミングコードは、前記表計算ドキュメントにおける機能の更新を処理するように設計されている、コンピュータ読出可能な記録媒体。
【請求項９】
プロセッサと、前記プロセッサに接続されるメモリとを備えるデバイスであって、前記メモリは命令を格納しており、前記命令が前記プロセッサによって実行されることで、前記プロセッサは、
ネットワーク上の複数のクライアント計算デバイスにクライアントエンジンを分配し、前記クライアントエンジンは、表計算アプリケーションに関連付けられる機能の第１の部分を実装しており、かつ前記表計算アプリケーションに対する前記複数のクライアント計算デバイスからの要求に応じて、前記複数のクライアント計算デバイスの各々に分配され、
前記デバイスで前記表計算アプリケーションに局所的に関連付けられる機能の第２の部分として動作する表計算サーバコンポーネントを実行し、前記表計算サーバコンポーネントは、前記複数のクライアント計算デバイスの一つで行われる変更を、リアルタイムまたは略リアルタイムで、前記複数のクライアント計算デバイスの残りに対して更新する、デバイス。
【請求項１０】
前記クライアントエンジンは、前記複数の前記クライアント計算デバイスの一つで実行されるウェブブラウザによって前記デバイスに対して行われるＨＴＴＰ要求に応じて、前記複数のクライアント計算デバイスの少なくとも１つに分配される、請求項９に記載のデバイス。
【請求項１１】
前記複数のクライアント計算デバイスにおける前記クライアントエンジンは、前記複数のクライアント計算デバイスのユーザ間で通信されるメッセージを表示するように構成されるメッセージ領域を含むユーザインターフェイスを提供する、請求項９に記載のデバイス。
【請求項１２】
前記メッセージは、前記複数のクライアント計算デバイスの前記ユーザ間で、リアルタイムで通信される請求項１０に記載のデバイス。
【請求項１３】
前記クライアントエンジンは、前記表計算アプリケーション用のユーザインターフェイスを、ブラウザウィンドウ内に埋め込まれる表計算ユーザインターフェイスとして表示するように構成される、請求項９に記載のデバイス。
【請求項１４】
前記表計算ユーザインターフェイスは、ウェブページのフレームに埋め込まれる、請求項１３に記載のデバイス。
【請求項１５】
前記表計算アプリケーションに関連付けられる機能の前記第１の部分は、前記表計算アプリケーションの表計算ドキュメントの操作または書式設定に関する前記クライアント計算デバイスのユーザからの要求を局所的に処理するように設計されており、前記表計算アプリケーションに関連付けられる機能的な第２の部分は、前記表計算における機能の更新を処理するように設計されている、請求項１０に記載のデバイス。
【請求項１６】
前記複数のクライアント計算デバイスによって作成される表計算ドキュメントを格納するために記憶デバイスをさらに備える、請求項１０に記載のデバイス。
【請求項１７】
方法であって、
ネットワーク上の複数のクライアント計算デバイスにクライアントエンジンを分配し、前記クライアントエンジンは、表計算アプリケーションに関連付けられる機能の第１の部分を実装しており、かつ前記表計算アプリケーションに対する前記複数のクライアント計算デバイスからの要求に応じて、前記複数のクライアント計算デバイスの各々に分配され、
前記デバイスで前記表計算アプリケーションに局所的に関連付けられる機能の第２の部分として動作する表計算サーバコンポーネントを実行し、前記表計算サーバコンポーネントは、前記複数のクライアント計算デバイスの一つで行われる変更を、リアルタイムで、前記複数のクライアント計算デバイスの残りに対して更新する、方法。
【請求項１８】
前記方法では、さらに
前記複数のクライアント計算デバイスのユーザ間で通信されるメッセージを表示するように構成されるメッセージ領域を含むユーザインターフェイスを提供する、請求項１７に記載の方法。
【請求項１９】
複数のユーザに分散型表計算アプリケーションを提供するためのシステムであって、
複数のクライアント計算デバイスのブラウザプログラム内で実行されるクライアントエンジンロジックと、
前記複数のクライアント計算デバイスの各々の前記ブラウザプログラムを介して要求される場合に、前記クライアントエンジンロジックを前記表計算アプリケーションの前記複数のクライアント計算デバイスに分配するように構成されるサーバロジックとを備え、前記サーバロジックは、前記複数のクライアント計算デバイスで同時にオープンされる単独の表計算ドキュメントを同期化する、システム。
【請求項２０】
前記クライアントエンジンロジックは、前記複数のクライアント計算デバイスの一つに関連付けられる前記ブラウザと前記サーバロジックとの間のインターフェイスを提供し、前記クライアントエンジンロジックが、前記ブラウザおよび前記サーバロジックからの通信を非同期的に処理する、請求項１９に記載のシステム。
【請求項２１】
前記表計算アプリケーションの表計算ドキュメントのインターフェイス内に実装されるメッセージサイドバーを前記複数の計算デバイスのユーザに提供するためのロジックをさらに備え、前記メッセージサイドバーを介して、前記複数の計算デバイスのユーザ間で送信されるリアルタイムメッセージが表示される、請求項１９に記載のシステム。
【請求項２２】
方法であって、
表計算ドキュメントを一意に識別するリンクを提供し、
前記ウェブページ内に埋め込まれる前記リンクを含むウェブページを処理中であるウェブブラウザから前記リンクに関する要求を受信し、
前記リンクに関する前記要求の受信に応じて、前記表計算ドキュメントと、前記ウェブブラウザのユーザに前記表計算ドキュメントを提供するように構成される表計算アプリケーションの少なくとも一部とを送信する、方法。
【請求項２３】
前記リンクは、ハイパーテキストマークアップ言語（ＨＴＭＬ）インラインフレームの一部として提供される、請求項２２に記載の方法。
【請求項２４】
システムであって、
複数のクライアント計算デバイスのブラウザプログラム内で実行されるクライアントロジックを備え、前記クライアントロジックは、前記クライアント計算デバイスの一つに対する表計算ドキュメントの表示を処理するユーザインターフェイスコンポーネントと、前記表計算ドキュメントの操作または書式設定に関連する前記クライアント計算デバイスの
一つのユーザからの要求を局所的に処理するクライアントエンジンコンポーネントとを含み、さらに
前記複数のクライアント計算デバイスの各々の前記ブラウザプログラムを介して要求される場合に、前記クライアントエンジンを前記複数のクライアント計算デバイスに分配するように構成されるサーバロジックを備え、前記サーバロジックは、前記複数のクライアント計算デバイスで同時にオープンされる単独の表計算ドキュメントを同期化し、前記サーバロジックは、前記複数のクライアント計算デバイスに対するウェブインターフェイスを提供するように構成されるフロントエンドサーバコンポーネントと、前記表計算ドキュメントにおける機能の更新を処理するように構成されるバックエンドコンポーネントとを含む、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
背景
Ａ．開示の分野
本開示は一般に、表計算アプリケーションに関し、さらに詳細には、ネットワークベースの共同表計算アプリケーションに関する。
【背景技術】
【０００２】
Ｂ．従来技術の詳細
電子表計算アプリケーションは、金融、実業界および学界をはじめとする種々の業界において、広範囲に用いられている。表計算アプリケーションは通常、データおよび／またはプログラミング情報の矩形の表（またはグリッド）であることが多い表計算を作成するために用いられる。表計算アプリケーションの人気の理由の１つは、解析アプリケーションおよび／またはデータベースアプリケーションの実装を容易にするのに役立てることができることである。
【０００３】
既存の表計算アプリケーションは、単独のユーザのコンピュータシステムにおいて局所的に実行するソフトウェアプログラムである傾向がある。そのようなシステムによって作成される表計算は、グループ環境で作業する場合に、分配することが困難であり、改変または共同することが困難である場合がある。
【発明の開示】
【課題を解決するための手段】
【０００４】
概要
ある局面は、クライアント計算デバイスのブラウザプログラムからサーバ計算デバイスにおける表計算アプリケーションに関する要求を受信することを含む方法に関する。該方法はさらに、要求に応じてクライアント計算デバイスのブラウザプログラムに表計算アプリケーションの第１の部分用のプログラミングコードを送信することを含み、表計算アプリケーションの第１の部分用のプログラミングコードは、表計算アプリケーションの表計算ドキュメントの操作（ｎａｖｉｇａｔｉｎｇ）または書式設定（ｆｏｒｍａｔｔｉｎｇ）に関するクライアント計算デバイスのユーザからの要求を局所的に処理するように設計される。方法はさらに、サーバ計算デバイスで表計算アプリケーションの第２の部分用のプログラミングコードを実行することを含み、表計算アプリケーションの第２の部分用のプログラミングコードは、表計算ドキュメントにおける機能の更新を処理するように設計される。
【０００５】
さらに別の局面は、複数のユーザに分散型表計算アプリケーションを提供するためのシステムに関する。システムは、クライアント計算デバイスのブラウザプログラムの中で実行するクライアントエンジンロジックを含む。システムはさらに、クライアント計算デバイスのブラウザプログラムによって要求される場合に、表計算アプリケーションのクライアント計算デバイスにクライアントエンジンを分配するように構成されるサーバロジックを含み、サーバロジックは、複数のクライアント計算デバイスで同時に開かれる単独の表計算ドキュメントを同期化する。
【０００６】
さらに別の局面は、表計算ドキュメントを一意に識別するリンクを提供することと、ウェブページ内に埋め込まれるリンクを含むウェブページを処理中のウェブブラウザからリンク用の要求を受信することと、リンク用の要求の受信に応じて、表計算ドキュメントと、ウェブブラウザのユーザに表計算ドキュメントを提供するように構成される表計算アプ
リケーションの少なくとも一部と、を送信することと、を含む方法に関する。
【０００７】
本願明細書に組み込まれ、その一部を構成する添付図面は、本発明の実施形態を示しており、詳細と共に、本発明を説明する。
【発明を実施するための最良の形態】
【０００８】
詳細な説明
以下の詳細な説明は、添付図面について言及する。詳細な説明は、本発明を限定するわけではない。
【０００９】
＜概観＞
本発明の原理に従う実装は、オンライン表計算アプリケーションに関する。オンライン表計算アプリケーションは、標準的な表計算アプリケーションによって提供される機能の大部分またはすべてを提供してもよい。オンライン表計算アプリケーションは、表計算を容易に共同して改変するために、互いに対して潜在的に物理的に遠隔位置にある多数のユーザのために能力を提供してもよい。さらに、オンライン表計算アプリケーションにより、ユーザは、作成した表計算を容易に発表することを可能にしてもよい。
【００１０】
＜システムの詳細＞
図１は、本発明の原理に従う概念が実装され得る例示のシステム１００の図である。システム１００は、ネットワーク１４０を介してサーバ１２０などのサーバに接続することができる多数のクライアント１１０を含んでもよい。ネットワーク１４０は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、公衆交換電話網（ＰＳＴＮ）などの電話網、イントラネット、インターネットまたはネットワークの組み合わせを含んでもよい。簡単にするために、３台のクライアント１１０および１台のサーバ１２０がネットワーク１４０に接続されるものとして示されている。実際には、より多くのクライアントおよび／またはサーバであってもよい。また、場合によっては、クライアントは、サーバの１つまたは複数の機能を実行してもよく、サーバは、クライアントの１つまたは複数の機能を実行してもよい。
【００１１】
クライアント１１０は、パーソナルコンピュータ、ラップトップコンピュータ、携帯電話、携帯情報端末（ＰＤＡ）または別のタイプの計算デバイスまたは通信デバイスなどのデバイスを含んでもよい。クライアント１１０のユーザは、サーバ１２０から情報にアクセスまたは受信してもよい。
【００１２】
図示の実装において、サーバ１２０は一般に、クライアント１１０と対話し、クライアント１１０が、サーバ１２０と連動して、オンライン表計算アプリケーションを実行するようにしてもよい。サーバ１２０は、オンライン表計算アプリケーションを実装するのを支援するために、表計算サーバコンポーネント１２５としての参照符号が付されているソフトウェアを含んでもよい。クライアント１１０のユーザによって作成されるオンライン表計算アプリケーションは、たとえば、データベース１３０などの記憶媒体にサーバ１２０によって格納されてもよい。図１には単独のデバイスとして示されているが、サーバ１２０は、たとえば、単独の計算デバイスまたは複数の分散型計算デバイスとして実装されてもよい。当業者は、デバイスがサーバまたはクライアントとして機能中かどうかは、実装される特定のアプリケーションに左右されることが多いことを認識されよう。すなわち、計算デバイスがクライアントまたはサーバとして操作中であるかどうかは、アプリケーション内の計算デバイスの役割に関連して左右される可能性がある。クライアントおよびサーバの関係は、それぞれのコンピュータで実行中であり、互いに対してクライアント・サーバ関係を有するコンピュータプログラムによって生じる。
【００１３】
サーバ１２０とクライアント１１０の対話は、クライアント１１０でブラウザプログラム１１５を介して行われてもよい。たとえば、オンライン表計算アプリケーションは、ブラウザ１１５内で実行するウェブアプリケーションであってもよい。このような態様において、クライアント１１０は、クライアント１１０でオンライン表計算を用いるために、任意の表計算特有のソフトウェアをインストールすることを必要としなくてもよい。ブラウザプログラムは、公知であり、当業界において広く利用可能である。ブラウザまたはブラウザプログラムが本願明細書において述べられている場合には、これらの用語は、ブラウザプログラムが独立型プログラムであるか、オペレーティングシステムの一部として含まれるブラウザプログラムなどの埋め込み型プログラムであるかに関係なく、ユーザがマークアップ文書（たとえば、ウェブ文書）を閲覧することを可能にする任意のプログラムを指すことを意図している。
【００１４】
＜例示の計算デバイスアーキテクチャ＞
図２は、クライアント１１０またはサーバ１２０の一方といった計算デバイス２００の例示の図である。計算デバイス２００は、バス２１０、プロセッサ２２０、メインメモリ２３０、読み出し専用メモリ（ＲＯＭ）２４０、記憶デバイス２５０、入力デバイス２６０、出力デバイス２７０および通信インターフェイス２８０を含んでもよい。バス２１０は、計算デバイス２００のコンポーネントの中での通信を可能にする経路を含んでもよい。
【００１５】
プロセッサ２２０は、命令を解釈して実行し得るプロセッサ、マイクロプロセッサまたは処理ロジックの何れかのタイプを含んでもよい。メインメモリ２３０は、プロセッサ２２０による実行のために情報および命令を格納し得るランダムアクセスメモリ（ＲＡＭ）または別のタイプの動的記憶デバイスを含んでもよい。ＲＯＭ２４０は、プロセッサ２２０による使用のための静的情報および命令を格納し得るＲＯＭデバイスまたは別のタイプの静的記憶デバイスを含んでもよい。記憶デバイス２５０は、磁気記録媒体および／または光学記録媒体およびその対応するドライブを含んでもよい。
【００１６】
入力デバイス２６０は、キーボード、マウス、ペン、音声認識および／または生体認証機構などの計算デバイス２００への情報をユーザが入力することを可能にする機構を含んでもよい。出力デバイス２７０は、ディスプレイ、プリンタ、スピーカなどをはじめとするユーザに情報を出力する従来の機構を含んでもよい。通信インターフェイス２８０は、計算デバイス２００が他のデバイスおよび／またはシステムと通信可能にする任意のトランシーバのような機構を含んでもよい。たとえば、通信インターフェイス２８０は、ネットワーク１４０などのネットワークを介して、別のデバイスまたはシステムと通信するための機構を含んでもよい。
【００１７】
表計算サーバコンポーネント１２５は、ソフトウェアにおいて実装され、メモリ２３０などのコンピュータ読取可能媒体に格納されてもよい。コンピュータ読取可能媒体は、１つまたは複数の物理的メモリデバイスまたは論理メモリデバイスおよび／または搬送波として定義されてもよい。
【００１８】
表計算サーバコンポーネント１２５を定義するソフトウェア命令は、データ記憶デバイス２５０などの別のコンピュータ読取可能媒体からメモリ２３０に読み出されてもよく、通信インターフェイス２８０を介して別のデバイスからメモリ２３０に読み出されてもよい。メモリ２３０に収容されたソフトウェア命令は、プロセッサ２２０に後述する処理を行わせてもよい。あるいは、本発明の原理に従えば、配線回路が、処理を実装するために、ソフトウェアの代わりにまたはソフトウェアと組み合わせて用いられてもよい。したがって、本発明の原理に従う実装は、ハードウェア回路およびソフトウェアの任意の特定の組み合わせに限定されるわけではない。
【００１９】
＜オンライン表計算アプリケーション＞
オンライン表計算アプリケーションは、本願明細書に記載したように、アプリケーションの一部がクライアント１１０の１つまたは複数およびサーバ１２０で実行する分散型ウェブアプリケーションとして実装されてもよい。さらに詳細には、オンライン表計算アプリケーションを用いたいクライアント１１０は、サーバ１２０から表計算アプリケーションを要求してもよい。それに応じて、サーバ１２０は、クライアント１１０における局所的な実行のために表計算アプリケーションの一部を送信してもよい。したがって、オンライン表計算アプリケーションは、サーバ１２０およびクライアント１１０の１つまたは複数にわたる分散型アプリケーションとして実行されてもよい。
【００２０】
図３は、図１に類似の図であり、オンライン表計算アプリケーションの例示の実装をさらに詳細に示している。表計算サーバコンポーネント１２５は、フロントエンドコンポーネント３２６およびバックエンドコンポーネント３２７を含んでもよい。フロントエンドコンポーネント３２６は、クライアント１１０とインターフェイスをとるウェブおよび／またはＸＭＬサーバを含んでもよい。たとえば、フロントエンドコンポーネント３２６は、クライアント１１０からのＨＴＴＰ要求を受信し、ＸＭＬデータをクライアント１１０に送信してもよい。バックエンドコンポーネント３２７は、表計算を更新するために必要とされる機能の計算などの表計算アプリケーションに関連付けられるより多くの実体的な処理を実行してもよい。
【００２１】
オンライン表計算アプリケーションの一部はまた、クライアント１１０内で実行されてもよい。たとえば、ブラウザ１１５内で、オンライン表計算アプリケーションは、クライアントエンジン３１６およびユーザインターフェイス３１７を含むものとして概念化されてもよい。クライアントエンジン３１６は、たとえば、クライアント１１０によって必要とされる場合に、サーバ１２０からダウンロードされるＪａｖａスクリプトを用いて実装されてもよい。ユーザインターフェイス３１７は、たとえば、クライアントエンジン３１６から供給されるＨＴＭＬ（ハイパーテキストマークアップ言語）およびＣＳＳ（カスケーディング・スタイル・シート）データに基づいて、ブラウザ１１５に表示される最終的なユーザインターフェイスを提供してもよい。
【００２２】
ユーザインターフェイス３１７およびクライアントエンジン３１６は共に、クライアントエンジン３１６が、ユーザインターフェイス３１７とのユーザの対応の多くを処理することができるクライアント側のレイヤーを加えるときに、従来のブラウザに基づくウェブアプリケーションのスタート・ストップスタート・ストップ性を低減するように作用する。ユーザセッションの最初でウェブページをロードする代わりに、ブラウザ１１５は、サーバ１２０（または、あるいはローカルキャッシュ）から、クライアントエンジン３１６をロードしてもよい。クライアントエンジン３１６は、ユーザが見るインターフェイスのレンダリングおよびユーザのためにサーバ１２０との通信の両方に対して責任を負ってもよい。クライアントエンジン３１６は、オンライン表計算アプリケーションとのユーザの対話が、非同期、すなわち、サーバ１２０との通信とは独立に起こることも可能にする。
【００２３】
一実装において、オンライン表計算アプリケーションのクライアント側の操作は、周知の非同期ＪａｖａスクリプトおよびＸＭＬ（ＡＪＡＸ）ウェブ開発技術を用いて実装されてもよいが、当業者は、他の技術を用いることも可能であることを認識されよう。
【００２４】
図４は、例示の表計算セッションにおけるオンライン表計算アプリケーションの種々のコンポーネントの例示の操作を示すフローチャートである。クライアント１１０の１つで、ユーザは、表計算アプリケーションセッションを開始してもよい（動作４０１）。たとえば、クライアント１１０のユーザは、ブラウザ１１５を用いてフロントエンドコンポー
ネント３２６と接触してもよい。一部の実装において、ユーザは、表計算サーバコンポーネント１２５に予め登録するか、または表計算サーバコンポーネント１２５に関するアカウントを作成してログインすることを必要としてもよい。
【００２５】
表計算セッションを開始するユーザに応じて、表計算サーバコンポーネント１２５は、クライアントエンジン３１６をクライアント１１０に送信してもよい（動作４０２）。クライアントエンジン３１６の一部分は、前のセッションからクライアント１１０にキャッシュされてもよく、その場合には、この部分は、サーバ１２０から再ダウンロードする必要はない。一部の実装において、クライアントエンジン３１６を含むプログラミングコードは、モジュール態様で実装されてもよい。この状況において、クライアントエンジン３１６の部分は、クライアントエンジン３１６のそのような部分の機能がクライアント１１０によって必要されるときに、要求に基づいて、クライアント１１０に送信されてもよい。たとえば、クライアントエンジン３１６は、クライアント１１０に常に送信される基本的なユーザ対話および表示機能などの多数の「中心的な（コアな）」機能を実装してもよく、さらに特殊な表計算機能などの他の機能が、必要に応じてクライアント１１０に送信されてもよい。さらに、オンライン表計算アプリケーションの一部の機能は常に、バックエンドコンポーネント３２７によって実行されてもよく、したがって、クライアントエンジン３１６に送信されることはない。
【００２６】
クライアントエンジン３１６は、クライアント１１０によって必要とされる場合に、クライアント１１０に送信可能なため、オンライン表計算アプリケーションは、全体的にウェブに基づくアプリケーションであってもよく、クライアントは、クライアントエンジン３１６のいずれかの部分を予めインストール必要はない。有利には、ユーザは通常、互換性のあるブラウザ１１５を含み、ネットワーク１４０に接続される任意の計算デバイスからオンライン表計算アプリケーションを用いることができる。
【００２７】
クライアントエンジン３１６は、一旦、クライアント１１０でロードされると、ユーザインターフェイス３１７を介して表計算のグラフィカルユーザインターフェイスをユーザに提示してもよい（動作４０３）。表計算はまた、本願明細書では表計算ドキュメントとも呼ばれ、表計算アプリケーションがユーザに提示するデータオブジェクトである。ユーザに提示される表計算は、ユーザが新たな表計算ドキュメントを起動し得る「空欄の」表計算、オンライン表計算アプリケーションの前のセッションから検索される表計算ドキュメント、従来の表計算ドキュメント（たとえば、「ｘｌｓ」ドキュメント、「ｃｖｓ」ドキュメントまたは他のタイプの周知の表計算ドキュメントフォーマット）からインポートされる表計算ドキュメントのバージョンであってもよい。
【００２８】
図５は、ユーザに提示され得る例示の表計算インターフェイスを示す図である。ブラウザは、クライアントエンジン３１６から受信されたＨＴＭＬおよびＣＳＳデータに基づき、表計算インターフェイス５１０を表示してもよい。表計算インターフェイスは、制御列５１１、行見出し列５１２および１〜８の参照符号が付けられた多数のデータ列５１３を含んでもよい。制御列５１１は、現在使用中のセル（たとえば、図５に示される実施例におけるセルＤ４）を表示するフィールド５２１およびユーザが数式または他の表計算操作を入力し得る数式フィールド５２２を含んでもよい。行見出し列５１１は、「Ａ」から「Ｈ」のラベルが付けられた行見出しを含む。ユーザは、行見出しおよび列見出しの組み合わせによって表計算インターフェイス５１０における特定のセルを指定することができる。セルＤ１は、たとえば、値「＄９．００」を含む。
【００２９】
表計算インターフェイス５１０によって、ユーザは、たとえば、表計算セルに値または数式を入力し、表計算に関連する書式設定操作を実行することができる。それに応じて、クライアントエンジン３１６は、必要に応じて、表計算サーバコンポーネント１２０と対
話して、要求を行う（動作４０４）。図５に示されるように、ユーザは、文字列「旅費：」をセルＢ１に入力し、セルＤ１、Ｄ２およびＤ３にドルの値を入力した。セルＤ４は現在、使用中のセル（このセルを包囲する太線によって示される）である。ユーザは、数式「＝ｓｕｍ（Ｄ１：Ｄ３）」を入力する。これは、数式フィールド５２２に示され、セルＤ１〜Ｄ３の値を合計して、その結果をセルＤ４に書き込むように表計算に指示する。さらに、これも図５に示されているように、ユーザは、列「Ｆ」および「Ｇ」の幅を改変した。ユーザは、たとえば、所望の方向に列「Ｆ」と列「Ｇ」との間の列区切線をドラッグすることによって、これを行ってもよい。
【００３０】
オンライン表計算アプリケーションによって許容可能な上述の機能および操作は、例示である。表計算インターフェイス５１０によって、オンライン表計算アプリケーションは、ユーザが表計算アプリケーションに従うものとして一般に認識される種々の操作を行うことを可能にしてもよい。
【００３１】
一実装において、クライアントエンジン３１６は、表計算サーバコンポーネント１２５に接触しなくても、表計算インターフェイスの操作および／または書式設定に関連するユーザの行為に応じて関連付けられる機能の大部分またはすべてを処理してもよい。表計算における機能の評価などの表計算アプリケーションの他の機能は、バックエンドコンポーネント３２７においてロジックによって処理されてもよい。クライアント１１０で局所的に書式設定処理およびデータ入力フィードバックを処理することによって、オンライン表計算アプリケーションは、頻繁に生じる傾向があり、ユーザが即時フィードバックを期待するユーザの行為に対する高水準の反応性を提供してもよい。バックエンドコンポーネント３２７における表計算数式の評価を処理することによって、第１のユーザによって作成された数式の結果は、数式の内部詳細を共有しなくても、他のユーザと共有することができる。このように、ユーザは、内部詳細所有権を潜在的に維持すると同時に、カスタム数式／操作を共有または公開することができる。
【００３２】
当業者は、別の実装において、クライアントエンジン３１６およびバックエンドコンポーネント３２７で実行される機能の分割が、改変され、クライアントエンジン３１６がより多い機能またはより少ない機能を処理し、同様に、バックエンドコンポーネント３２７もまた、より多い機能またはより少ない機能を処理するようにしてもよいことを認識されよう。
【００３３】
定期的に、または表計算インターフェイス５１０を介してユーザの明確な指示によって、表計算ドキュメントを含むデータが、保存されてもよい（動作４０５）。１つの可能な実装において、表計算ドキュメントは、表計算サーバコンポーネント１２５によってデータベース１３０に保存されてもよい。このような態様において、表計算ドキュメントは、ネットワーク１４０に接続される任意の計算デバイスからユーザ（または他のユーザ）によってアクセス可能であってもよい。
【００３４】
＜オンライン表計算アプリケーションのさらなる機能＞
以下、オンライン表計算アプリケーションによって提供されるさらなる機能が、より詳細に記載される。
【００３５】
オンライン表計算アプリケーションは、単独の表計算上で作業する多数のユーザの間で連携を提供してもよい。たとえば、多数のユーザは、同時に表計算を編集し、ユーザのそれぞれの編集を表示してもよい。１人のユーザが、表計算の特定のセルを編集する場合に、該編集は、表計算サーバコンポーネント１２５に送信され、次に、表計算を同様に編集または表示している他の共同ユーザに転送してもよい。このために、表計算サーバコンポーネント１２５は、２人のユーザが特定のセルを同時に編集しようとする場合など、共同
ユーザ間の衝突を処理してもよい。たとえば、表計算サーバコンポーネント１２５は、受信した第１の編集を許容してもよく、または共同ユーザに何らかの方法で優先順位を付けて、より優先順位の高いユーザの編集がより優先順位の低いユーザの編集を無効にするようにしてもよい。ユーザの編集が、表計算サーバコンポーネント１２５によって拒否される場合には、表計算サーバコンポーネント１２５が、編集の拒否を該当するユーザに通知するメッセージをユーザに返すように送信してもよい。このような態様において、多数のユーザが、潜在的にリアルタイム（または略リアルタイム）で、単独の表計算を共同してもよい。
【００３６】
一実装において、特定の表計算アプリケーションで表示して共同し得る当事者は、表計算の最初の作成者によって指定されてもよい。たとえば、最初の作成者は、作成者が他の可能な共同作業者のそれぞれに関して権限を指定することを可能にする「管理者」権限を与えられてもよい。作成者は、他の共同作業者が以下の作業、すなわち表計算の編集、表計算のみの表示、表計算の指定部分の編集または可能な共同作業者のリストに対するさらなるユーザの追加のうちの１つまたは複数を行うための権限を有することを指定してもよい。たとえば、一定のユーザは、表計算の一定の部分を編集することが可能であってもよく、他の指定されたセルまたはセルの領域は、それらのユーザに対して「ロックされた」状態のままであり、ユーザは、ロックされたセルを表示することができるが、編集することはできないようになっていてもよい。一部の実装において、表計算は、誰でも表示および／または編集することが可能な「公の（ｐｕｂｌｉｃ）」表計算として指定されてもよい。
【００３７】
図６は、ユーザに提示され得る例示の表計算インターフェイス６１０を示す図である。インターフェイス６１０は、入力６４０としてラベル付けされた４つのさらなる入力が追加された点を除き、インターフェイス５１０と類似である。入力は、最初の入力６４５を追加したユーザ以外の異なる共同ユーザによって追加されたと仮定する。入力６４０は、第１のユーザが最初の入力６４５を追加すると同時に追加されてもよく、または第１のユーザが入力６４５を追加した後で追加されてもよい。共同ユーザによって行われる各入力は、共同ユーザのクライアントエンジン３１６から表計算サーバコンポーネント１２５に戻るように送信され、次に、すべての他のオンライン共同ユーザに転送されてもよい。このような態様において、ユーザは、ドキュメント上で同時に共同することができる。
【００３８】
一部の実装において、ユーザは、一部の態様で、どのユーザがどの編集を行ったかを示すために、表計算インターフェイス６１０の表示を構成することが可能であってもよい。たとえば、異なるユーザによって行われた変更は、ユーザごとに異なるフォントまたは異なる色で示されてもよい。あるいはまたはさらに、その上にあるユーザのマウスまたは何らかの方法でセルを選択する場合に、セルを最後に編集した共同作業者の印が、示されてもよい。図６に示された実施例において、入力６４０および６４５は、異なるフォントで示されてもよい。また、文字列ボックス６５０が、図６に示されている。文字列ボックス６５０は、現在選択されたセルを編集した最後のユーザの名前が記入されていてもよい。この実施例では、セルＥ４は、現在選択されたセル（太字で示されている）であり、このセルを最後に編集した人物は、ユーザ「ジュリー」である。
【００３９】
ユーザ間の連携に加えて、オンライン表計算アプリケーションは、表計算で作用している場合に、共同作業者が互いに対話的に通信することを可能にしてもよい。
【００４０】
図７は、ユーザに提示され得る別の例示の表計算インターフェイス７１０を示す図である。インターフェイス７１０は、インターフェイス７１０がさらに、表計算アプリケーションに対する共同作業者が互いに通信し得るメッセージサイドバー７１５を含む点を除き、インターフェイス５１０および６１０と類似である。
【００４１】
サイドバー７１５は、表計算を現在表示または編集中のユーザを示す領域７２０を含んでもよい。このユーザのリストは、特定の表計算のために表計算サーバコンポーネント１２５にログインされるユーザに対応してもよい。サイドバー７１５はまた、ユーザ間で送信された過去のメッセージを表示するメッセージ領域７２５と、ユーザがメッセージを入力し得る入力領域７３０と、を含んでもよい。入力領域７３０にタイプされるメッセージは、すべての他のユーザまたは選択数のユーザに対してメッセージ領域７２５に表示されてもよい。入力されたメッセージは、たとえば、メッセージを送信するユーザのクライアントエンジン３１６から表計算サーバコンポーネント１２５に送信されてもよい。表計算サーバコンポーネント１２５で、入力されたメッセージは、すべての他のオンライン共同作業者のクライアントエンジン３１６に戻すように送信されてもよい。このような態様において、表計算における共同作業者は、リアルタイムで互いに通信することができると同時に、表計算で作業することができる。
【００４２】
当業者は、上述したように、メッセージサイドバー７１５が例示であり、メッセージサイドバーによって提供される実際の表示レイアウトおよびメッセージ機能が、可変であってもよいことを認識されよう。たとえば、メッセージサイドバーは、ユーザがネットワーク１４０にわたって、互いと音声セッションを開始することを可能にする音声リンクを含んでもよい。
【００４３】
一部の実装において、オンライン表計算アプリケーションは、オンライン表計算アプリケーションの任意のユーザが表計算を開くことができるか、またはユーザがウェブページにおいて作成された表計算を組み込むことを可能にすることのいずれかによって、ユーザが作成した表計算を公開することができるインターフェイスを提供してもよい。ウェブページで表計算を公開したいユーザは、たとえば、ユーザが公開したい特定の表計算ドキュメントの識別も含む表計算サーバコンポーネント１２５へのリンクを設けてもよい。
【００４４】
図８は、本発明の態様に従うウェブページ内に埋め込まれる表計算を示す図である。この実施例において、ユーザが、ウェブサーバ８１０に第１のドメイン（（たとえば、「ｊｉｍｓｗｅｂｐａｇｅ．ｏｒｇ」）に関連付けられるコンテンツ８０５を配置すると仮定する。クライアントは、ブラウザ８１５を用いて、第１のドメインを訪問し、ウェブサーバ８１０からウェブページ８２０としてコンテンツ８０５を受信してもよい。コンテンツ８０５は、それ自体の中に表計算サーバコンポーネント１２５へのリンク８２５（ＨＴＭＬインラインフレーム（ＩＦＲＡＭＥ）内のリンクなど）を含んでもよい。当業者は、リンク８２５がＩＦＲＡＭＥ以外技術を用いて実装されてもよいことを認識されよう。リンク８２５は、クライアントがサーバ１２０からダウンロードするために、特定の表計算ドキュメントへの識別子を含むＵＲＬを含んでもよい。図８に示される実施例において、表計算サーバコンポーネント１２５は、ドメイン「ｓｐｒｅａｄｓｈｅｅｔｓｅｒｖｅｒ．ｃｏｍ」に関連付けられ、ダウンロードされるべき特定の表計算ドキュメントが、文字列「ｓｈｅｅｔ＝１２３４５６」によって識別される。ウェブページをレンダリングするときに、ブラウザ８１５は、表計算サーバコンポーネント１２５と接触し、クライアントエンジン３１６をダウンロードし、クライアント８１２で必要に応じて表計算を表示する。クライアント８１２のユーザの観点から、表計算は、第１のドメインへの操作に応じてロードされる。
【００４５】
オンライン表計算アプリケーションは、ユーザがカスタム機能または操作を作成することを可能にしてもよい。カスタムユーザ機能は、たとえば、既存の機能の組み合わせとして作成されてもよい。オンライン表計算アプリケーションは、ＪａｖａＳｃｒｉｐｔ（登録商標）で書かれたカスタム機能またはＤＬＬ（ダイナミックリンクライブラリ）ファイルなどの実行可能なコードとしてコンパイルされるカスタム機能などの他のプログラミン
グ言語でカスタム機能を作成する能力などのより高度なツールを提供してもよい。一実装において、カスタム機能の作成者は、他のユーザに対して自分のカスタム機能を公開する能力を有してもよい。表計算サーバコンポーネント１２５は、たとえば、ユーザが機能を提出し得るインターフェイスおよび他のユーザが、探索、評価、選択を行い、他のカスタム機能を自分のアプリケーションにインポートすることができるインターフェイスなどを提供することによって、ユーザが自分のカスタム機能を公開することをできるように促進してもよい。一部の実装において、表計算サーバコンポーネント１２５は、ユーザが自分のカスタム機能に関して支払いを請求することを可能にしてもよい。
【００４６】
＜結論＞
ネットワークにわたって分散した態様で実行するネットワーク型表計算アプリケーションが、本願明細書に記載される。ネットワーク型表計算アプリケーションは一般に、アプリケーションを用いる前に、ユーザが任意の特定の表計算ソフトウェアをインストールする必要がなく、用いることができる。さらに、ネットワーク型表計算アプリケーションは、表計算アプリケーションに共通に関連付けられる特徴の大部分またはすべてを提供することに加えて、表計算を編集し、表計算で作業している間に互いに即席のメッセージを送信することができる能力を多数のユーザに提供することによって、多数のユーザが、表計算で容易に共同することを可能にしてもよい。
【００４７】
本発明の例示の実施形態の前述の説明は、図および詳細を提供するが、包括的であることを意図しているわけでもなく、開示された正確な形態に本発明を限定することを意図しているわけでもない。上記の教示に照らして、改変および変形も可能であり、または本発明の実現から改変および変形が得られ得る。たとえば、本願明細書に記載されるコンピュータシステムが、オンライン表計算を実装するために用いられるものとして記載されているが、ウィキまたは表などの他の共同ドキュメントを作成するために用いることも可能である。
【００４８】
さらに、一連の動作は図４に関して記載したが、動作の順序は、本発明に従う他の実装において可変であってもよい。さらに、非独立な動作は、並列に実装されてもよい。
【００４９】
また、本発明の態様は、上述したように、図に示された実装においてソフトウェア、ファームウェアおよびハードウェアの多くの異なる形態において実装されてもよいことは当業者には明白であろう。本発明の原理に従う態様を実装するために用いられる実際のソフトウェアコードまたは専用の制御ハードウェアは、本発明を限定するためではない。したがって、本発明の態様の操作および挙動は、特定のソフトウェアコードを参照することなく記載された。当業者は、本願明細書の記述に基づいて、態様を実装するためにソフトウェアを設計し、ハードウェアを制御することを可能であることは理解されよう。
【００５０】
さらに、本発明の一定の部分は、１つまたは複数の機能を実行する「ロジック」または「コンポーネント」として実装されてもよい。このロジックは、特定用途向け集積回路またはフィールドプログラマブルゲートアレイなどのハードウェア、ソフトウェアまたはハードウェアおよびソフトウェアの組み合わせを含んでもよい。
【００５１】
本願明細書において用いられる要素、動作または命令は、特記のない限り、本発明にとって重要または不可欠であると考えるべきではない。また、本願明細書で用いられるとき、「ａ」なる冠詞は、１つまたは複数の品目を含むことを意図している。唯一の品目を意図する場合には、「ｏｎｅ」または類似の言葉が用いられる。さらに、「に基づく」なる句は、特記のない限り、「少なくとも一部に基づく」ことを意味することを意図している。
【図面の簡単な説明】
【００５２】
【図１】本発明の原理に従う概念が実装され得る例示のシステムの図である。
【図２】図１に示される計算デバイスの例示の図である。
【図３】オンライン表計算アプリケーションの例示の実装を示す図である。
【図４】例示の表計算アプリケーションセッションにおけるオンライン表計算アプリケーションの種々のコンポーネントの例示の操作を示すフローチャートである。
【図５】ユーザに提示され得る例示の表計算インターフェイスを示す図である。
【図６】ユーザに提示され得る別の例示の表計算インターフェイスを示す図である。
【図７】ユーザに提示され得る別の例示の表計算インターフェイスを示す図である。
【図８】本発明の態様に従うウェブページ内に埋め込まれる表計算を示す図である。
【図１】
2009532778.tif 000003
【図２】
2009532778.tif 000004
【図３】
2009532778.tif 000005
【図４】
2009532778.tif 000006
【図５】
2009532778.tif 000007
【図６】
2009532778.tif 000008
【図７】
2009532778.tif 000009
【図８】
2009532778.tif 000010
【手続補正書】
【提出日】平成20年11月14日(2008.11.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
方法であって、
サーバ計算デバイスでクライアント計算デバイスのブラウザプログラムから表計算アプリケーションに関する要求を受信し、
前記要求に応じて、前記表計算アプリケーションの第１の部分用のプログラミングコードを前記クライアント計算デバイスの前記ブラウザプログラムに送信し、前記表計算アプリケーションの前記第１の部分用の前記プログラミングコードは、前記表計算アプリケーションの表計算ドキュメントの操作または書式設定に関する前記クライアント計算デバイスのユーザからの要求を局所的に処理するように設計されており、
前記サーバ計算デバイスで前記表計算アプリケーションの第２の部分用のプログラミングコードを実行し、前記表計算アプリケーションの前記第２の部分用の前記プログラミングコードは、前記表計算ドキュメントにおける機能の更新を処理するようにプログラムされている、方法。
【請求項２】
前記方法では、さらに
前記表計算アプリケーションの前記第１の部分用の前記プログラミングコードを複数のクライアント計算デバイスのブラウザプログラムに送信し、
前記複数のクライアント計算デバイスの一つでの前記表計算アプリケーションの前記第１の部分を介して前記表計算ドキュメントに対して行われる変更を、前記複数のクライアント計算デバイスの残りにおける表計算ドキュメントに対して更新する、請求項１に記載の方法。
【請求項３】
前記複数のクライアント計算デバイスの残りは、リアルタイムまたは略リアルタイムで更新される、請求項２に記載の方法。
【請求項４】
前記表計算アプリケーションの前記第１の部分は、前記複数のクライアント計算デバイスのユーザからのメッセージを表示するためのメッセージ領域を表示する、請求項２に記載の方法。
【請求項５】
前記メッセージは、前記複数のクライアント計算デバイスの前記ユーザ間で、リアルタイムで通信される、請求項４に記載の方法。
【請求項６】
前記表計算ドキュメントにおいて用いるための複数の機能を提供することをさらに含み、前記複数の機能の少なくとも一部は、他方のクライアント計算デバイスのユーザによって作成された機能である請求項１に記載の方法。
【請求項７】
前記方法では、さらに
記表計算ドキュメントに他のクライアント計算デバイスのユーザがパブリックにアクセス可能にするためのオプションを前記クライアント計算デバイスのユーザのために提供する、請求項１に記載の方法。
【請求項８】
プログラミング命令を格納するコンピュータ読出可能なメモリデバイスであって、前記プログラミング命令が計算デバイスによって実行されることで、前記計算デバイスは、
クライアント計算デバイスのブラウザプログラムから表計算アプリケーションに関する要求を受信し、
前記要求に応じて、前記表計算アプリケーションの第１の部分用のプログラミングコードを前記クライアント計算デバイスの前記ブラウザプログラムに送信し、前記表計算アプリケーションの前記第１の部分用の前記プログラミングコードは、前記表計算アプリケーションの表計算ドキュメントの操作または書式設定に関する前記クライアント計算デバイスのユーザからの要求を局所的に処理するように設計されており、
前記表計算アプリケーションの第２の部分用のプログラミングコードを実行し、前記表計算アプリケーションの前記第２の部分用の前記プログラミングコードは、前記表計算ドキュメントにおける機能の更新を処理するように設計されている、コンピュータ読出可能なメモリデバイス。
【請求項９】
プロセッサと、前記プロセッサに接続されるメモリとを備えるデバイスであって、前記メモリは命令を格納しており、前記命令が前記プロセッサによって実行されることで、前記プロセッサは、
ネットワーク上の複数のクライアント計算デバイスにクライアントエンジンを分配し、前記クライアントエンジンは、表計算アプリケーションに関連付けられる機能の第１の部分を実装しており、かつ前記表計算アプリケーションに対する前記複数のクライアント計算デバイスからの要求に応じて、前記複数のクライアント計算デバイスの各々に分配され、
前記デバイスで前記表計算アプリケーションに局所的に関連付けられる機能の第２の部分として動作する表計算サーバコンポーネントを実行し、前記表計算サーバコンポーネントは、前記複数のクライアント計算デバイスの一つで行われる変更を、リアルタイムまたは略リアルタイムで、前記複数のクライアント計算デバイスの残りに対して更新する、デバイス。
【請求項１０】
前記クライアントエンジンは、前記複数の前記クライアント計算デバイスの一つで実行されるウェブブラウザによって前記デバイスに対して行われるＨＴＴＰ要求に応じて、前記複数のクライアント計算デバイスの少なくとも１つに分配される、請求項９に記載のデバイス。
【請求項１１】
前記複数のクライアント計算デバイスにおける前記クライアントエンジンは、前記複数のクライアント計算デバイスのユーザ間で通信されるメッセージを表示するように構成されるメッセージ領域を含むユーザインターフェイスを提供する、請求項９に記載のデバイス。
【請求項１２】
前記メッセージは、前記複数のクライアント計算デバイスの前記ユーザ間で、リアルタイムで通信される請求項１０に記載のデバイス。
【請求項１３】
前記クライアントエンジンは、前記表計算アプリケーション用のユーザインターフェイスを、ブラウザウィンドウ内に埋め込まれる表計算ユーザインターフェイスとして表示するように構成される、請求項９に記載のデバイス。
【請求項１４】
前記表計算ユーザインターフェイスは、ウェブページのフレームに埋め込まれる、請求項１３に記載のデバイス。
【請求項１５】
前記表計算アプリケーションに関連付けられる機能の前記第１の部分は、前記表計算アプリケーションの表計算ドキュメントの操作または書式設定に関する前記クライアント計算デバイスのユーザからの要求を局所的に処理するように設計されており、前記表計算アプリケーションに関連付けられる機能の第２の部分は、前記表計算における機能の更新を処理するように設計されている、請求項１０に記載のデバイス。
【請求項１６】
前記複数のクライアント計算デバイスによって作成される表計算ドキュメントを格納するために記憶デバイスをさらに備える、請求項１０に記載のデバイス。
【請求項１７】
方法であって、
ネットワーク上の複数のクライアント計算デバイスにクライアントエンジンを分配し、前記クライアントエンジンは、表計算アプリケーションに関連付けられる機能の第１の部分を実装しており、かつ前記表計算アプリケーションに対する前記複数のクライアント計算デバイスからの要求に応じて、前記複数のクライアント計算デバイスの各々に分配され、
前記デバイスで前記表計算アプリケーションに局所的に関連付けられる機能の第２の部分として動作する表計算サーバコンポーネントを実行し、前記表計算サーバコンポーネントは、前記複数のクライアント計算デバイスの一つで行われる変更を、リアルタイムまたは略リアルタイムで、前記複数のクライアント計算デバイスの残りに対して更新する、方法。
【請求項１８】
前記方法では、さらに
前記複数のクライアント計算デバイスのユーザ間で通信されるメッセージを表示するように構成されるメッセージ領域を含むユーザインターフェイスを提供する、請求項１７に記載の方法。
【請求項１９】
複数のユーザに分散型表計算アプリケーションを提供するためのシステムであって、
複数のクライアント計算デバイスのブラウザプログラム内で実行されるクライアントエンジンロジックと、
前記複数のクライアント計算デバイスの各々の前記ブラウザプログラムを介して要求される場合に、前記クライアントエンジンロジックを前記表計算アプリケーションの前記複数のクライアント計算デバイスに分配するように構成されるサーバロジックとを備え、前記サーバロジックは、前記複数のクライアント計算デバイスで同時にオープンされる単独の表計算ドキュメントを同期化する、システム。
【請求項２０】
前記クライアントエンジンロジックは、前記複数のクライアント計算デバイスの一つに関連付けられる前記ブラウザと前記サーバロジックとの間のインターフェイスを提供し、前記クライアントエンジンロジックが、前記ブラウザおよび前記サーバロジックからの通信を非同期的に処理する、請求項１９に記載のシステム。
【請求項２１】
前記表計算アプリケーションの表計算ドキュメントのインターフェイス内に実装されるメッセージサイドバーを前記複数の計算デバイスのユーザに提供するためのロジックをさらに備え、前記メッセージサイドバーを介して、前記複数の計算デバイスのユーザ間で送信されるリアルタイムメッセージが表示される、請求項１９に記載のシステム。
【請求項２２】
方法であって、
表計算ドキュメントを一意に識別するリンクを提供し、
前記ウェブページ内に埋め込まれる前記リンクを含むウェブページを処理中であるウェブブラウザから前記リンクに関する要求を受信し、
前記リンクに関する前記要求の受信に応じて、前記表計算ドキュメントと、前記ウェブブラウザのユーザに前記表計算ドキュメントを提供するように構成される表計算アプリケーションの少なくとも一部とを送信する、方法。
【請求項２３】
前記リンクは、ハイパーテキストマークアップ言語（ＨＴＭＬ）インラインフレームの一部として提供される、請求項２２に記載の方法。
【請求項２４】
システムであって、
複数のクライアント計算デバイスのブラウザプログラム内で実行されるクライアントロジックを備え、前記クライアントロジックは、前記クライアント計算デバイスの一つに対する表計算ドキュメントの表示を処理するユーザインターフェイスコンポーネントと、前記表計算ドキュメントの操作または書式設定に関連する前記クライアント計算デバイスの一つのユーザからの要求を局所的に処理するクライアントエンジンコンポーネントとを含み、さらに
前記複数のクライアント計算デバイスの各々の前記ブラウザプログラムを介して要求される場合に、前記クライアントロジックを前記複数のクライアント計算デバイスに分配するように構成されるサーバロジックを備え、前記サーバロジックは、前記複数のクライアント計算デバイスで同時にオープンされる単独の表計算ドキュメントを同期化し、前記サーバロジックは、前記複数のクライアント計算デバイスに対するウェブインターフェイスを提供するように構成されるフロントエンドサーバコンポーネントと、前記表計算ドキュメントにおける機能の更新を処理するように構成されるバックエンドコンポーネントとを含む、システム。
【国際調査報告】
2009532778.tif 000011
2009532778.tif 000012