(57)【要約】      （修正有）【課題】複数の異なるスプレッドシートからのデータを同期させるためのシステムおよび方法を提供する。【解決手段】第１のインポート時刻、第２のインポート時刻、第１のエクスポート時刻、および第２のエクスポート時刻をスケジューリングするためのスケジューリング・システムと、第１のインポート時刻に第１のエンティティから第１のスプレッドシートを取得し、第２のインポート時刻に第２のエンティティから第２のスプレッドシートを取得するためのインポート・システムと、第１のスプレッドシートおよび第２のスプレッドシートを同期させて第１の改訂スプレッドシートおよび第２の改訂スプレッドシートを取得するための同期システムと、第１のエクスポート時刻に第１のエンティティに第１の改訂スプレッドシートを提供し、第２のエクスポート時刻に第２のエンティティに第２の改訂スプレッドシートを提供するためのエクスポート・システムと、を有する。【選択図】図１
2008186461.tif 000002
【特許請求の範囲】
【請求項１】
スプレッドシート・データを同期させるための方法であって、
所定の第１のインポート時刻に第１のスプレッドシートを取得するステップと、
所定の第２のインポート時刻に第２のスプレッドシートを取得するステップと、
前記第１のスプレッドシートを前記第２のスプレッドシートに同期させて第１の改訂スプレッドシートおよび第２の改訂スプレッドシートを取得するステップと、
前記第１の改訂スプレッドシートを所定の第１のエクスポート時刻に第１のエンティティに供給するステップと、
前記第２の改訂スプレッドシートを所定の第２のエクスポート時刻に第２のエンティティに提供するステップと、
を含む、方法。
【請求項２】
前記第１のスプレッドシートおよび前記第２のスプレッドシートが異なるデータ・フォーマットおよび異なるデータを含む、請求項１に記載の方法。
【請求項３】
前記第１のスプレッドシートを前記第２のスプレッドシートに同期させるステップが、前記第２のスプレッドシート内のデータを前記第１のスプレッドシート内のデータを用いて更新することを含む、請求項１に記載の方法。
【請求項４】
前記第１のスプレッドシートを前記第２のスプレッドシートに同期させるステップが、
前記第１のスプレッドシートからの第１のデータ・サブセットおよび前記第２のスプレッドシートからの第２のデータ・サブセットをインポートすることと、
前記第１のサブセットおよび第２のサブセットをデータベースに記憶することと、
を含む、請求項１に記載の方法。
【請求項５】
前記第１のスプレッドシートを前記第２のスプレッドシートに同期させるステップが、前記第１および第２のデータ・サブセットの一部を前記第１のスプレッドシートにエクスポートすることを含む、請求項４に記載の方法。
【請求項６】
インポートするステップが、前記第１および第２のデータ・サブセットを決定するためのインポート処理エージェントを設けることを含む、請求項４に記載の方法。
【請求項７】
エクスポートするステップが、前記第１および第２のデータ・サブセットの前記一部を決定するためのエクスポート処理エージェントを設けることを含む、請求項５に記載の方法。
【請求項８】
スプレッドシート・データを同期させるためのシステムであって、
第１のインポート時刻、第２のインポート時刻、第１のエクスポート時刻、および第２のエクスポート時刻をスケジューリングするためのスケジューリング・システムと、
前記第１のインポート時刻に第１のエンティティから第１のスプレッドシートを取得し、前記第２のインポート時刻に第２のエンティティから第２のスプレッドシートを取得するためのインポート・システムと、
前記第１のスプレッドシートおよび前記第２のスプレッドシートを同期させて第１の改訂スプレッドシートおよび第２の改訂スプレッドシートを取得するための同期システムと、
前記第１のエクスポート時刻に前記第１のエンティティに前記第１の改訂スプレッドシートを提供し、前記第２のエクスポート時刻に前記第２のエンティティに前記第２の改訂スプレッドシートを提供するためのエクスポート・システムと、
を含む、システム。
【請求項９】
前記同期システムがデータベースを含み、前記インポート・システムが前記第１のスプレッドシートおよび前記第２のスプレッドシートから選択されたデータ・アイテムを前記データベースにインポートする、請求項８に記載のシステム。
【請求項１０】
前記選択されたデータ・アイテムが、前記第１および第２のスプレッドシートの各々に関連付けられた１組の制御情報に基づいて、少なくとも１つのインポート処理エージェントによって決定される、請求項９に記載のシステム。
【請求項１１】
前記同期システムが、前記第１のスプレッドシートからの値を用いて前記第２の改訂スプレッドシートの値を更新する、請求項９に記載のシステム。
【請求項１２】
前記第１および第２の改訂スプレッドシートが、前記第１および第２のスプレッドシートの各々に関連付けられた１組の制御情報に基づいて、少なくとも１つのエクスポート処理エージェントによって発生される、請求項９に記載のシステム。
【請求項１３】
前記同期システムにインポートされるスプレッドシートをストアすることができると共に前記同期システムからエクスポートされる改訂スプレッドシートをストアすることができる共通アクセス・エリアを更に含む、請求項８に記載のシステム。
【請求項１４】
前記スケジューリング・システムが、前記第１のインポート時刻、前記第２のインポート時刻、前記第１のエクスポート時刻、および前記第２のエクスポート時刻を周期的にスケジューリングするように構成することができる、請求項８に記載のシステム。
【請求項１５】
スプレッドシートおよび改訂スプレッドシートのコピーを記憶するためのバージョン制御システムを更に含む、請求項１４に記載のシステム。    
【請求項１６】
スプレッドシート・データを同期させるためのコンピュータ読み取り可能媒体にストアされたコンピュータ・プログラムであって、
第１のインポート時刻、第２のインポート時刻、第１のエクスポート時刻、および第２のエクスポート時刻をスケジューリングするように構成されたプログラム・コードと、
前記第１のインポート時刻に第１のスプレッドシートを取得し、前記第２のインポート時刻に第２のスプレッドシートを取得するように構成されたプログラム・コードと、
前記第１のスプレッドシートおよび前記第２のスプレッドシートを同期させて第１の改訂スプレッドシートおよび第２の改訂スプレッドシートを取得するように構成されたプログラム・コードと、
前記第１のエクスポート時刻に第１のエンティティに前記第１の改訂スプレッドシートを提供し、前記第２のエクスポート時刻に第２のエンティティに前記第２の改訂スプレッドシートを提供するように構成されたプログラム・コードと、
を含む、コンピュータ・プログラム。
【請求項１７】
前記同期するように構成されたプログラム・コードが、前記第１のスプレッドシートおよび前記第２のスプレッドシートから選択されたデータ・アイテムをデータベースに記憶する、請求項１６に記載のコンピュータ・プログラム。
【請求項１８】
前記選択されたデータ・アイテムが、前記第１および第２のスプレッドシートの各々に関連付けられた制御情報によって決定される、請求項１７に記載のコンピュータ・プログラム。
【請求項１９】
前記第１および第２の改訂スプレッドシートが、前記第１および第２のスプレッドシートの各々に関連付けられた制御情報に基づいて発生される、請求項１７に記載のコンピュータ・プログラム。
【請求項２０】
前記同期するように構成されたプログラム・コードが、前記第１のスプレッドシートからの値を用いて前記第２の改訂スプレッドシートの値を更新する、請求項１６に記載のコンピュータ・プログラム。
【請求項２１】
スプレッドシート・データを同期させるためのシステムを展開するための方法であって、
コンピュータ・インフラストラクチャを提供するステップであって、
第１のインポート時刻、第２のインポート時刻、第１のエクスポート時刻、および第２のエクスポート時刻をスケジューリングすることと、
前記第１のインポート時刻に第１のスプレッドシートをインポートすることと、
前記第２のインポート時刻に第２のスプレッドシートをインポートすることと、
前記第１のスプレッドシートおよび前記第２のスプレッドシートを同期させて第１の改訂スプレッドシートおよび第２の改訂スプレッドシートを取得することと、
前記第１のエクスポート時刻に第１のエンティティに前記第１の改訂スプレッドシートをエクスポートすることと、
前記第２のエクスポート時刻に第２のエンティティに前記第２の改訂スプレッドシートをエクスポートすることと、
を行うように動作可能なコンピュータ・インフラストラクチャを提供するステップを含む、方法。    
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の態様は、一般に、スプレッドシート・データの管理に関し、更に具体的には、多数のスプレッドシートからのデータを同期させるためのシステムおよび方法に関する。
【背景技術】
【０００２】
大規模なプロジェクトでは、多くの場合、多数の異なるソースとデータをやり取りする必要がある。例えば、多くの異なる拠点を伴う大規模な情報技術（ＩＴ）プロジェクトを管理するためには、多数のエンティティによって各拠点での要求事項および進捗状況を追跡しなければならない。かかる例では、例えば、様々な拠点におけるハードウェアのインストール、ネットワーク管理、試験等の異なるサービスを提供するために、多くのベンダーが関わっている場合がある。そういった異なるベンダーによって実行される業務のタスク、日付、コスト等を追跡し同期させて、効率的なプロジェクト・フローを保証しなければならない。例えば、あるベンダーによる試験は、他のベンダーによってその拠点におけるシステム全てがインストールされるまでは、スケジューリングも実行もしてはならない。しかしながら、多くの異なるエンティティから著しいデータ量を収集して同期させようとする場合、ロジスティック上の問題が起こる可能性がある。
【０００３】
１つの可能な解決策は、データベース・アプリケーションを提供し、これによって異なるエンティティの各々がデータを閲覧および入力することを可能とすることである。しかしながら、かかる解決策に伴うロジスティック上の問題の１つは、ＤＢ２（Ｒ）等のデータベース・アプリケーションに対してデータをインポートおよびエクスポートすることには、ユーザ側にかなり高レベルの知識が要求されるという事実である。かかるアプリケーションは強力な解決策となり得るが、一般に、それらの動作はたいていの人々によって広く理解されているわけではない。このため、従来のデータベースによる手法は、データを入力し閲覧するエンティティが必要とする柔軟性および使いやすさを欠いている場合がある。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
スプレッドシートを用いることによって、データベース・アプリケーションに多い柔軟性および使いやすさの問題に対処できる可能性のある解決策が与えられる。ＥＸＣＥＬ（Ｒ）等のスプレッドシート・アプリケーションは、ほとんど全ての業界において人々に広く用いられ理解されている（ＥＸＣＥＬは、米国、他の国々、または双方におけるMicrosoft Corporation社の商標である）。従って、スプレッドシートは、データを入力し、閲覧し、管理するための優れたツールを提供する可能性がある。しかしながら、大規模プロジェクトにおいてスプレッドシートを用いることの問題の１つは、通常、異なるエンティティは各自のスプレッドシートを利用しており、異なるスプレッドシートからのデータを定期的に同期させなければならないことである（すなわち、第１のスプレッドシートのセルからのデータを別のスプレッドシートのセルにコピーしなければならない）。更に、効率または機密性等の目的のため、全てのエンティティに同一データへのアクセスが与えられるわけではないという場合がある。このため、異なるエンティティごとに、異なるデータ・セットに対するアクセスを制限する（例えば、Read-Write可、Read only、アクセス不可）ことが望ましいことがある。従って、エンティティは、フォーマットおよびデータの双方に関して、各自の固有かつ編集可能なスプレッドシートを必要とする場合がある。このため、かかるスプレッドシートを同期させることは簡単なプロセスではない。しかしながら、スプレッドシート・アプリケーションの柔軟性および使いやすさが与えられるならば、異なるスプレッドシート間の同期プロセスを自動化することができるシステムに対する要望がある。
【課題を解決するための手段】
【０００５】
本発明の態様は、複数の異なるスプレッドシートからのデータを同期させるためのシステムおよび方法を提供することによって、上述の問題および他の問題に対処する。
【０００６】
第１の態様において、本発明は、スプレッドシート・データを同期させるための方法を提供する。この方法は、所定の第１のインポート時刻に第１のスプレッドシートを取得するステップと、所定の第２のインポート時刻に第２のスプレッドシートを取得するステップと、第１のスプレッドシートを第２のスプレッドシートに同期させて第１の改訂スプレッドシートおよび第２の改訂スプレッドシートを取得するステップと、第１の改訂スプレッドシートを所定の第１のエクスポート時刻に第１のエンティティに供給するステップと、
第２の改訂スプレッドシートを所定の第２のエクスポート時刻に第２のエンティティに提供するステップと、を含む。
【０００７】
第２の態様において、本発明は、スプレッドシート・データを同期させるためのシステムを提供する。このシステムは、第１のインポート時刻、第２のインポート時刻、第１のエクスポート時刻、および第２のエクスポート時刻をスケジューリングするためのスケジューリング・システムと、第１のインポート時刻に第１のエンティティから第１のスプレッドシートを取得し、第２のインポート時刻に第２のエンティティから第２のスプレッドシートを取得するためのインポート・システムと、第１のスプレッドシートおよび第２のスプレッドシートを同期させて第１の改訂スプレッドシートおよび第２の改訂スプレッドシートを取得するための同期システムと、第１のエクスポート時刻に第１のエンティティに第１の改訂スプレッドシートを提供し、第２のエクスポート時刻に第２のエンティティに第２の改訂スプレッドシートを提供するためのエクスポート・システムと、を含む。
【０００８】
第３の態様において、本発明は、スプレッドシート・データを同期させるためのコンピュータ読み取り可能媒体にストアされたコンピュータ・プログラムを提供する。このプログラムは、第１のインポート時刻、第２のインポート時刻、第１のエクスポート時刻、および第２のエクスポート時刻をスケジューリングするように構成されたプログラム・コードと、第１のインポート時刻に第１のスプレッドシートをインポートし、第２のインポート時刻に第２のスプレッドシートを取得するように構成されたプログラム・コードと、第１のスプレッドシートおよび第２のスプレッドシートを同期させて第１の改訂スプレッドシートおよび第２の改訂スプレッドシートを取得するように構成されたプログラム・コードと、第１のエクスポート時刻に第１のエンティティに第１の改訂スプレッドシートをエクスポートし、第２のエクスポート時刻に第２のエンティティに第２の改訂スプレッドシートを提供するように構成されたプログラム・コードと、を含む。
【０００９】
第４の態様において、本発明は、スプレッドシート・データを同期させるためのシステムを展開するための方法を提供する。この方法は、コンピュータ・インフラストラクチャであって、第１のインポート時刻、第２のインポート時刻、第１のエクスポート時刻、および第２のエクスポート時刻をスケジューリングすることと、第１のインポート時刻に第１のスプレッドシートをインポートすることと、第２のインポート時刻に第２のスプレッドシートをインポートすることと、第１のスプレッドシートおよび第２のスプレッドシートを同期させて第１の改訂スプレッドシートおよび第２の改訂スプレッドシートを取得することと、第１のエクスポート時刻に第１のエンティティに第１の改訂スプレッドシートをエクスポートすることと、第２のエクスポート時刻に第２のエンティティに第２の改訂スプレッドシートをエクスポートすることと、を行うように動作可能なコンピュータ・インフラストラクチャを提供するステップを含む。  
【００１０】
本発明のこれらの特徴および他の特徴は、以下に述べる本発明の様々な態様の詳細な説明を添付図面と関連付けて参照することで、容易に理解されよう。
【発明を実施するための最良の形態】
【００１１】
ここで図面を参照すると、図１は、複数のスプレッドシート間でスプレッドシート・データを同期させるための例示的なシステムおよび方法を示す。この例示的なシステムにおいて、複数のエンティティ３０（Ａ、Ｂ、Ｃ）の各々は、固有のスプレッドシート３２（ＳA、ＳB、ＳC）をそれぞれ維持する。図１は３つのエンティティ／スプレッドシートを用いた実施形態を示すが、いかなる数のエンティティ／スプレッドシートも使用可能であることは理解されよう。更に、スプレッドシート３２は、いかなる既知のスプレッドシート・アプリケーションを用いても実施可能である。一般に、各スプレッドシート３２におけるデータおよびデータ・フォーマットは、各エンティティ３０の必要に合わせられており、１つのエンティティのデータが他のエンティティのデータとは異なる場合もある。このため、あるデータは異なるエンティティ３０間で共有されるが、別のデータは共有されないか、またはエンティティ３０の一部によって共有される場合がある。例えば、主幹プロジェクト・マネージャは、データ全てを示すマスタ・スプレッドシートを有することができるが、異なるベンダーおよび下請業者は、データ・セット全体のうち彼らのタスクに関連する部分しか見ない。
【００１２】
上述のように、多数の異なるスプレッドシートを利用することの問題の１つは、異なるスプレッドシートからのデータを効率的に同期させることに関連する。例えば、Ａ社のタスク開始日は、Ｂ社による別のタスクの完了予定日に左右されることがある。このため、Ｂ社がそのスプレッドシートを編集してその完了予定日を変更した場合、この情報をＡ社のスプレッドシートに加えて、Ａ社の新しいタスク開始日を計算可能としなければならない。
【００１３】
これに対処するため、本実施形態は同期システム１８を利用する。このシステム１８は、インポート・エージェント制御機構２０、エクスポート・エージェント制御機構２２、およびデータベース２６を有する。インポート・エージェント制御機構２０は、（１）共通アクセス・エリア３６からのスプレッドシート３２のインポートをスケジューリングするためのインポート（Ｉｍｐ）・スケジューラ２１と、（２）各スプレッドシート３２から関連データを取得しそのデータをデータベース２６にロードする１組のインポート処理エージェント２３と、を含む。インポート・スケジューラ２１は、どのスプレッドシートが他に左右されるデータを含むかを考慮するように構成されている。このため、例えば、スプレッドシートＳB（ｎ）がスプレッドシートＳA（ｎ）からのデータに左右される場合、ＳA（ｎ）は最初にインポートされるようにスケジューリングされる。同様に、スプレッドシートＳC（ｎ）がスプレッドシートＳB（ｎ）からのデータに左右される場合、ＳBは二番目にインポートされるようにスケジューリングされる。このため、スプレッドシートＳB（ｎ）がインポートされると、スプレッドシートＳB（ｎ）はＳA（ｎ）からのデータによって更新することができる。スプレッドシートＳC（ｎ）がインポートされると、スプレッドシートＳC（ｎ）はＳB（ｎ）からのデータによって更新することができる。
【００１４】
インポート処理エージェント２３は、所与の各スプレッドシート３２からどのデータをインポートするかを決定する。上述のように、所与のエンティティ３０には、それが管理するデータおよび他のエンティティが管理するデータを示すスプレッドシートを与えることができる。典型的な状況においては、あるエンティティが管理するデータのみをインポートする必要がある。このため、そのエンティティによって管理されないデータはインポートされない。このことによる有益な結果は、あるエンティティが、自身で管理していないスプレッドシート内のデータ値を誤って変更してしまった場合、その入力がインポートされず、同期プロセスに悪影響を与えないことである。更に、この不注意によるエラーは、改訂されたスプレッドシートには現れない。
【００１５】
所与のスプレッドシート３２からどのデータ値をインポートする必要があるかの決定は、いかなる方法でも実行可能である。１つの例示的な実施形態においては、各スプレッドシート３２は、ハード・コードされた制御言語ステートメント等の制御情報を含み、これをインポート処理エージェント２３が解釈して、スプレッドシート３２内のどの列あるいは行またはそれら両方をインポートするかを決定することができる。この一例を以下で図２に示す。一般に、各スプレッドシート３２は、データのインポートおよび同期のために、インポート処理エージェントが関連付けられている。
【００１６】
スプレッドシート３２の各々からのデータを全てデータベース２６にインポートして処理したら、エクスポート・エージェント制御機構２２を用いて、改訂スプレッドシート３４（ＳA（ｎ＋１）、ＳB（ｎ＋１）、ＳC（ｎ＋１））を再構築し、共通アクセス・エリア３６にエクスポートする。例示的な実施形態においては、毎晩周期的にスプレッドシートは更新されるので、改訂スプレッドシート３４は毎朝各エンティティ３０に利用可能となる。エクスポート・エージェント制御機構２２は、同様に、エクスポート（Ｅｘｐ）・スケジューラ２５およびエクスポート処理エージェント２７を含む。エクスポート・スケジューラ２５は、何時に各改訂スプレッドシート３４をエクスポートするかを決定する。エクスポート処理エージェント２７は、データベース２６から適切なデータを取得し、更新したデータを用いて各改訂スプレッドシート３４を発生／ポピュレートする役割を果たす。
【００１７】
改訂スプレッドシート３４のエクスポート処理は、改訂スプレッドシート３４が依存するスプレッドシート（複数のスプレッドシート）３２がインポートされて処理された後のいかなる時点でもスケジューリングすることができる。例えば、スプレッドシートＳB（ｎ）がスプレッドシートＳA（ｎ）からのデータのみに依存する場合、ＳA（ｎ）がインポートされた後のいかなる時点でも、ＳB（ｎ）を改訂しエクスポートすることができる。更に、スプレッドシートＳC（ｎ）がスプレッドシートＳA（ｎ）およびＳB（ｎ）の双方からのデータに依存する場合は、ＳA（ｎ）およびＳB（ｎ）の双方がインポートされ処理された後にのみ、ＳC（ｎ）を改訂しエクスポートすることができる。１つの例示的な実施形態においては、改訂スプレッドシート３４の全てを同時にエクスポートすることができる。
【００１８】
上述のように、エクスポート処理エージェント２７は、データベース２６から適切なデータを取得し、更新したデータを用いて各改訂スプレッドシート３４を発生／ポピュレートする役割を果たす。インポート・プロセスと同様に、各改訂スプレッドシート３４に配置するデータおよびスプレッドシートの出力フォーマットの決定は、いかなる方法でも処理することができる。１つの例示的な実施形態では、スプレッドシート３２、３４自体に配置されたハード・コードされた制御言語ステートメント等の制御情報を、エクスポート処理エージェント２７が用いて、各改訂スプレッドシート３４を生成することができる。一般に、各改訂スプレッドシート３４には、エクスポート処理エージェント２７が関連付けられている。
【００１９】
改訂スプレッドシート３４を発生することに加えて、エクスポート・エージェント制御機構２２は、１つ以上の「エクスポートのみの」スプレッドシート３８、例えばＳX（ｎ＋１）を発生することができる。エクスポートのみのスプレッドシート３８は、例えば、全てのエンティティ３０に共通して対象となる一般的な情報またはリポートを提供することができる。このため、各エンティティは、エクスポートのみのスプレッドシート３８を閲覧することはできるが、更新および同期のためにそれらを再サブミットすることはできない。
【００２０】
また、同期システム１８は、例えばデータベース２８において各スプレッドシートの各バージョンのスナップショットをストアするバージョン制御システム２４も含むことができる。このため、これは、バージョンごとに生じる変化を追跡するための監査証跡（audit trail）を提供する。
【００２１】
データベース２６は、スプレッドシート３２、３４の各々に関連したデータを収集しストアするための中心的な位置を提供し、例えばＤＢ２、ＬＯＴＵＳ  ＮＯＴＥＳ（Ｒ）等のデータベース・アプリケーションのいずれかのタイプを含むことができる。集中データベース２６を用いることによって、全スプレッドシートのデータ全てを単一のデータ・ソースから維持し、更新し、制御することができる。また、かかるデータベース・アプリケーションは、従来のデータベース閲覧ツールを用いてユーザがデータベース２６内のデータを閲覧可能であるように構成することができる。典型的な実施形態において、かかるアクセスは、Ｒｅａｄ  ｏｎｌｙか、あるいは許可された権限となるか、またはそれら両方である。更に、単一のモジュールとして図示するが、データベース２６は複数の分散型データベースによって実施することも可能である。
【００２２】
共通アクセス・エリア３６は、様々なエンティティ３０に使いやすいインタフェースを提供し、いかなる方法でも実施することができる。共通アクセス・エリア３６は、エンティティ３０がスプレッドシート３２、３４、３８をアップロードし検索することができる制御されたストレージを提供する。例示的な用途では、共通アクセス・エリア３６は、エンティティ３０が容易に利用可能なウェブサイトとして実施することができる。他の用途では、共通アクセス・エリア３６は、サーバ、掲示板、またはネットワーク上の電子メール位置として実施可能である。更に、共通アクセス・エリア３６は、同期システム１８に統合することも可能である。
【００２３】
例示的な方法において、エンティティ３０は毎晩、各自のスプレッドシート３２を共通アクセス・エリア３６にアップロードする。同期プロセスの性質ゆえに、スプレッドシートが同期されるためには厳しいタイミング期限が必要である場合がある。いったんアップロードされると、スプレッドシート３２は、インポート・スケジューラ２１によって決定される順序でインポートされる。上述のように、順序は、スプレッドシート３２間の依存性に基づいて予め決められる。インポート処理エージェント２３は、スプレッドシートからどのデータ・アイテムをデータベース２６にインポートするかを決定する。更に、インポートされたスプレッドシートからのデータ・アイテムは、以前にインポートされたスプレッドシートから収集したデータに基づいて更新することができる。例えば、エンティティＡのスプレッドシート内の「合計コスト」データ・フィールドは、エンティティＢおよびエンティティＣのスプレッドシートから以前にインポートした項目コストに基づいて、データベース２６において更新することができる。
【００２４】
スプレッドシート３２を全てインポートし処理した後、例えば次の仕事日の開始前のある時に、エクスポート・スケジューラ２５の命令によって、改訂スプレッドシート３４を共通アクセス・エリア３６にエクスポートすることができる。エクスポート・プロセスの間、各改訂スプレッドシート３４は、例えば所定の１組の制御言語ステートメントに基づいて、エクスポート処理エージェント２７によって基本的に最初から構築される。そして、エンティティ３０は、都合の良いときに共通アクセス・エリア３６から改訂スプレッドシート３４をダウンロードすることができる。従って、このプロセスは、プロジェクトの特定の必要に合わせて、周期的に（例えば毎日、毎週等）実施することができる。
【００２５】
同期システム１８は、例えばクライアント−サーバ・システムを含むいずれかのタイプのコンピュータ・システム１０上で実現することができる。コンピュータ・システム１０は、一般に、プロセッサ１２、入出力（Ｉ／Ｏ）１４、メモリ１６、およびバス１７を含む。プロセッサ１２は、単一の処理ユニットを含むか、または、例えばクライアントおよびサーバ上のような１つ以上の位置で１つ以上の処理ユニット間に分散させることができる。メモリ１６は、磁気媒体、光媒体、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリ・メモリ（ＲＯＭ）、データ・キャッシュ、データ・オブジェクト等を含むいずれかの既知のタイプのデータ・ストレージ媒体あるいは伝送媒体またはそれら両方を含むことができる。更に、メモリ１６は、１つ以上のタイプのデータ・ストレージを含む単一の物理位置に存在することができ、または様々な形態で複数の物理システム間に分散させることも可能である。
【００２６】
Ｉ／Ｏ１４は、外部リソースと情報を交換するためのいずれかのシステムを含むことができる。外部デバイス／リソースは、モニタ／ディスプレイ、スピーカ、ストレージ、別のコンピュータ・システム、ハンド・ヘルド・デバイス、キーボード、マウス、音声認識システム、音声出力システム、プリンタ、ファクシミリ、ページャ等を含むいずれかの既知のタイプの外部デバイスを含むことができる。バス１７は、コンピュータ・システム１０における各コンポーネント間に通信リンクを提供し、同様に、電気、光、無線等を含むいずれかの既知のタイプの伝送リンクを含むことができる。図示しないが、コンピュータ・システム１０には、キャッシュ・メモリ、通信システム、システム・ソフトウェア等の追加のコンポーネントも組み込むことができる。
【００２７】
コンピュータ・システム１０に対するアクセスは、インターネット、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、仮想プライベート・ネットワーク（ＶＰＮ）等のネットワークを介して提供することができる。通信は、直接ハードワイヤード接続（例えばシリアル・ポート）を介して、またはワイヤラインあるいは無線による伝送方法またはそれら両方のいずれかの組み合わせを利用可能なアドレス可能接続を介して、行うことができる。更に、トークン・リング、Ethernet（登録商標）、WiFiまたは他の従来の通信規格等の従来のネットワーク接続も使用可能である。更に、従来のＴＣＰ／ＩＰソケット・ベースのプロトコルによって接続を行うこともできる。この例において、インターネット・サービス・プロバイダを用いて相互接続を確立することができる。更に、上述のように、クライアント−サーバまたはサーバ−サーバ環境において通信を行うことも可能である。
【００２８】
図２は、スプレッドシート・アプリケーション４０の一例を示し、これは、他のスプレッドシート・データ・セット（図示せず）と同期するように構成されたスプレッドシート・データ４２を含む。この例示的な実施形態においては、スプレッドシート・インタフェース４６は、スプレッドシート・データ４２を含むだけでなく、制御言語ステートメント５０を含むヘッダ４４を含むものとして図示されている。制御言語ステートメント５０は、処理エージェント２３、２７（図１）によって解釈されて、どの情報をスプレッドシート・データ４２からインポートし、スプレッドシート・データ４２にエクスポートするかを指示する。一実施形態において、制御言語ステートメント５０は、関連するエンティティのデータ要求に基づいて各スプレッドシートに埋め込まれている（すなわちハード・コードされている）。
【００２９】
この例では、複数の列ヘッダ４８の下に各レコード５２ごとのデータが構築されている。各列ヘッダ４８は、その列のデータが属する会社すなわちＡ社、Ｂ社、Ｃ社に関連付けられている。制御言語ステートメント５０は、特定の列（または行）をエクスポートするか、インポートするか、または変化しないままとするかを確定する。例えば、このスプレッドシートがＡ社によって用いられている場合、Ａ社の列ヘッダの下にあるデータの一部または全てを、エクスポートのためにタグ付けし、必要な場合にはＡ社によって変更し、次いでインポートする。Ｂ社およびＣ社のヘッダの下のデータは、スプレッドシートにエクスポートされるだけであり、インポートはされない。
【００３０】
制御言語ステートメント５０を用いることによって、同期システム１８は、所与のスプレッドシートからのどのデータをデータベース２６にインポートし、データベース２６から改訂スプレッドシートにエクスポートするか（図１を参照）を確定するように容易に構成することができる。また、制御言語ステートメント５０は、例えば数字対ストリングや位置等のデータ・フォーマットを指示する。スプレッドシート・データ４２と共に制御言語ステートメント５０を埋め込むことは、本発明の特徴を実現するための１つの考えられる方法を表すだけであることに留意すべきである。従って、スプレッドシート内のどのデータ・アイテムをエクスポートし、更新し、または変化しないままとするかを決定するためのいずれかの技法も利用可能であることは理解されよう。
【００３１】
スプレッドシート・データ４２の各行は一般に、場所、人、１つの設備等のデータ・レコードを表し、あるスプレッドシートにおける行は必ずしも別のスプレッドシート内の行と同じではないことに留意すべきである。例えば、異なるエンティティのスプレッドシートにおいて、行を異なる方法で分類することができる。従って、データをエクスポート／インポートする場合、各スプレッドシートごとに固有の処理が必要である。また、スプレッドシートは、例えば「列Ｔ  ｘ  列Ｗ  ＝  列Ｚ」のような式を含む場合があることに留意すべきである。
【００３２】
場合によっては、スプレッドシート内の情報の列は、参照の目的のみのものであり、変更したりデータベース２６にインポートしたりしてはならない。また、スプレッドシートを更新している人は、他の人／関係者が後にその情報を参照することがあることに気付かない場合がある。従って、異なるエンティティ間で容易に機密性を維持することができる。すなわち、あるスプレッドシート内の情報の列は、秘密とすることができ、他の関係者と共有してはならない。
【００３３】
本発明の教示は、契約または料金に基づいたビジネスの方法として提供可能であることは認められよう。例えば、本発明に記載した機能を顧客に提供するサービス・プロバイダが、同期システムを含むコンピュータ・システム１０の生成、維持、あるいは展開、またはそれら全てを行うことができる。すなわち、サービス・プロバイダが、本発明に記載したスプレッドシートの同期を提供することができる。
【００３４】
本発明に記載したシステム、機能、機構、方法、エンジンおよびモジュールは、ハードウェア、ソフトウェア、またはハードウェアおよびソフトウェアの組み合わせにおいて実現可能であることは理解されよう。それらは、本発明に記載した方法を実行するように適合されたいずれかのタイプのコンピュータ・システムまたは他の装置によって実施することができる。典型的なハードウェアおよびソフトウェアの組み合わせは、コンピュータ・プログラムを有する汎用コンピュータ・システムであり、このコンピュータ・プログラムは、ロードされて実行されると、本発明に記載した方法をコンピュータ・システムが実行するようにこれを制御する。あるいは、本発明の機能タスクの１つ以上を実行するための専用ハードウェアを含む特定用途コンピュータも利用可能である。更に別の実施形態においては、本発明の一部または全てを、例えばインターネット等のネットワーク上に分散させて実現することができる。
【００３５】
また、本発明は、コンピュータ・プログラムに埋め込むことも可能である。このプログラムは、本発明に記載された方法および機能の実施を可能とする機構を全て含み、コンピュータ・システムにロードされるとこれらの方法および機能を実行することができる。この文脈において、コンピュータ・プログラム、ソフトウェア・プログラム、プログラム、ソフトウェア等の言葉は、いずれかの言語、コード、または表記における１組の命令の表現を意味しており、この命令は、直接的に、または、（ａ）別の言語、コード、もしくは表記への変換、あるいは（ｂ）異なる材料形態における再生、またはそれら両方を行った後のいずれかで、情報処理機能を有するシステムに特定の機能を実行させるように意図されている。
【００３６】
本発明の前述の記載は、例示および説明の目的のために行った。網羅的であったり、開示した形態のみに本発明を限定したりすることは意図しておらず、明らかに、多くの変更および変形が可能である。当業者に明らかであると思われるかかる変更および変形は、特許請求の範囲によって規定された本発明の範囲内に含まれることが意図される。
【図面の簡単な説明】
【００３７】
【図１】本発明の一実施例に従った、複数のスプレッドシートからのデータを同期させるためのシステムを示す。
【図２】本発明の一実施例に従った例示的なスプレッドシートを示す。
【符号の説明】
【００３８】
１０  コンピュータ・システム
１６  メモリ
１８  同期システム
２０  インポート・エージェント制御機構
２１  インポート・スケジューラ
２２  エクスポート・エージェント制御機構
２３  インポート処理エージェント
２５  エクスポート・スケジューラ
２６  データベース
２７  エクスポート処理エージェント
３０  エンティティ
３２  スプレッドシート
３６  共通アクセス・エリア
【図１】
2008186461.tif 000003
【図２】
2008186461.tif 000004