(57)【要約】【課題】  ワークブック範囲をサーバデータソースとして公開し、使用するための方法、システム、および装置を提供すること。【解決手段】  このシステムは、データオブジェクトを含む範囲を含むワークブックを作成するためにスプレッドシートアプリケーションプログラムを実行することができるクライアントコンピュータを含む。ワークブックは、サーバコンピュータに発行され、そこで指定されたデータオブジェクトをサーバデータソースとして公開することができる。サーバコンピュータによってクライアントアプリケーションは、サーバデータソースとしてワークブック内に含まれるデータオブジェクトを発見し、それに接続することができる。【選択図】  図１
2006004418.tif 000002
【特許請求の範囲】
【請求項１】
ワークブックの内容をサーバデータソースとして公開する方法であって、
ワークブック内の所定の範囲を対象とするデータベースクエリを受信するステップと、
前記クエリに応答して
前記所定の範囲を再計算するステップと、
前記再計算された範囲のデータベース表現を生成するステップと、
前記再計算された範囲の前記データベース表現上で前記要求されたクエリを実行してクエリ結果を取得するステップと、
前記クエリ結果を前記データベースクエリに対する応答として送信するステップと
を備えたことを特徴とする方法。
【請求項２】
前記ワークブックがデータソースへの参照を含むかどうかを決定するステップと、
前記ワークブックがデータソースへの参照を含むとの決定に応答して、前記ワークブックの計算に必要な前記データを前記データソースから取り出すステップと、
前記データソースから取り出した前記データを使用して前記所定の範囲を再計算するステップと
をさらに備えたことを特徴とする請求項１に記載の方法。
【請求項３】
前記データベースクエリは、ＯＬＡＰクライアントアプリケーションから受信することを特徴とする請求項２に記載の方法。
【請求項４】
コンピュータによって実行されると、請求項１に記載の方法を前記コンピュータに実行させるコンピュータ実行可能命令を格納することを特徴とするコンピュータ読取可能な媒体。
【請求項５】
請求項１に記載の方法を実行することができることを特徴とするコンピュータ制御装置。
【請求項６】
ワークブックの内容をサーバデータソースとして公開する方法であって
１つまたは複数のデータオブジェクトを含む所定の範囲を格納するワークブックを作成する機能を提供するステップと、
前記１つまたは複数のデータオブジェクトのメタデータであって、サーバデータソースとしての前記１つまたは複数のデータオブジェクトの要求に応答してサーバコンピュータによって使用するためのメタデータを生成するステップと、
前記ワークブックおよび前記メタデータを前記サーバコンピュータに発行し、よって前記データオブジェクトを前記サーバコンピュータでサーバデータソースとして公開するステップと
を備えたことを特徴とする方法。
【請求項７】
ユーザから前記１つまたは複数のオブジェクトの前記メタデータを編集する旨の要求を受信するステップと、
前記メタデータを編集する旨の要求に応答して、ユーザが前記メタデータを編集できる機能を提供するステップと
をさらに備えたことを特徴とする請求項６に記載の方法。
【請求項８】
コンピュータによって実行されると、請求項６に記載の方法を前記コンピュータに実行させるコンピュータ実行可能命令を格納することを特徴とするコンピュータ読取可能な媒体。
【請求項９】
請求項６に記載の方法を実行することができることを特徴とするコンピュータ制御装置。
【請求項１０】
ワークブック内の所定の範囲をサーバデータソースとして公開し、使用する方法であって
１つまたは複数のデータオブジェクトを含む所定の範囲を格納するワークブックを作成するステップと、
前記１つまたは複数のデータオブジェクトのメタデータであって、サーバデータソースとしての前記１つまたは複数のデータオブジェクトの要求に応答してサーバコンピュータによって使用するためのメタデータを生成するステップと、
前記ワークブックおよび前記メタデータを前記サーバコンピュータに発行するステップと、
前記データオブジェクトをサーバデータソースとして公開するステップと、
前記データオブジェクトのうちの１つの中に含まれるデータを参照するデータソースクエリを前記サーバコンピュータで受信するステップと、
前記クエリの受信に応答して、前記ワークブックをロードし、前記データオブジェクトの値の計算を含め、前記ワークブックを計算するステップと、
前記メタデータを使用して前記データオブジェクトのデータベース表現を生成するステップと、
前記データオブジェクトの前記データベース表現上で前記要求されたクエリを実行してクエリ結果を作成するステップと、
前記クエリに対し前記クエリ結果をもって応答するステップと
を備えたことを特徴とする方法。
【請求項１１】
前記ワークブックを計算するステップの前に、
前記ワークブックがデータソースへの参照を含むかどうかを決定するステップと、
前記ワークブックがデータソースへの参照を含むとの決定に応答して、前記ワークブックの計算に必要なデータを前記データソースから取り出すステップと、
前記データソースから取り出した前記データを考慮して、前記データオブジェクトの値の計算も含めて、前記ワークブックを計算するステップと
をさらに含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
コンピュータによって実行されると、請求項１０に記載の方法を前記コンピュータに実行させるコンピュータ実行可能命令を格納することを特徴とするコンピュータ読取可能な媒体。
【請求項１３】
請求項１０に記載の方法を実行することができることを特徴とするコンピュータ制御装置。
【請求項１４】
ワークブック内の所定の範囲をサーバデータソースとして公開し、使用するシステムであって
１つまたは複数のデータオブジェクトを含む１つまたは複数の所定の範囲を有するワークブックを作成するため、前記ワークブックをサーバコンピュータに発行するようさらに動作することができるスプレッドシートアプリケーションプログラムを実行するよう動作可能なクライアントコンピュータと、
前記ワークブックに含まれる前記データオブジェクトをサーバデータソースとして公開し、前記サーバデータソースを対象とするクエリ要求を受信して、該要求に応答するため、サーバプログラムを実行するよう動作可能なサーバコンピュータと
を備えたことを特徴とするシステム。
【請求項１５】
前記スプレッドシートアプリケーションプログラムは、前記１つまたは複数のデータオブジェクトのメタデータを生成し、前記ワークブック内に格納するようさらに動作可能であり、前記メタデータは、サーバデータソースとしての前記１つまたは複数のデータオブジェクトの要求に応答して前記サーバコンピュータによる使用に供されるものであることを特徴とする請求項１４に記載のシステム。
【請求項１６】
前記スプレッドシートアプリケーションプログラムは、ユーザが前記メタデータを編集できる機能を提供するようさらに動作することができることを特徴とする請求項１５に記載のシステム。
【請求項１７】
サーバデータソースに対するクエリを発行するためにアプリケーションプログラムを実行するよう動作することができる第２のクライアントコンピュータをさらに備え、前記サーバプログラムは前記第２のクライアントコンピュータから前記サーバデータソースへのデータベースクエリを受信し、該受信に応答するようさらに動作することができることを特徴とする請求項１６に記載のシステム。
【請求項１８】
前記第２のクライアントコンピュータからのデータベースクエリに応答するステップは、
前記ワークブックを再計算するステップと、
前記再計算されたワークブックのデータベース表現を生成するステップと、
前記再計算されたワークブックの前記データベース表現上で前記要求されたクエリを実行してクエリ結果を取得するステップと、
前記データベースクエリへの応答として前記第２のクライアントコンピュータに前記クエリ結果を送信するステップと
を含むことを特徴とする請求項１７に記載のシステム。
【請求項１９】
前記第２のクライアントコンピュータからのデータベースクエリに応答するステップは、
前記ワークブックがデータソースへの参照を含むかどうかを決定するステップと、
前記ワークブックがデータソースへの参照を含むとの決定に応答して、前記ワークブックの計算に必要な前記データを前記データソースから取り出すステップと、
前記データソースから取り出した前記データを使用して前記ワークブックを再計算するステップと
をさらに含むことを特徴とする請求項１８に記載のシステム。
【請求項２０】
前記第２のクライアントコンピュータ上で実行される前記アプリケーションは、ＯＬＡＰクライアントアプリケーションを含むことを特徴とする請求項１９に記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
ワークブックを構築する際、スプレッドシートアプリケーションプログラムのユーザは、異なるいくつかのソースからのデータを使用することが多い。例えば、スプレッドシートアプリケーションプログラム内でワークブックを作成するとき、ユーザは、別のワークブックからデータをインポートしたり、データを手動でワークブックに入力したり、リレーショナルデータベースまたはオンライン分析処理（「ＯＬＡＰ」）キューブに対するクエリを実行することによってデータを取得したりすることができる。これらのソースのいずれかからデータが入力されると、ユーザは一般に、データをワークブック内に所望の構成で配列する。このプロセスの最後に、ユーザは、数値分析が有効な表範囲のデータを含むワークブックを作成した。
【０００２】
他のユーザがワークブックの内容にアクセスできるように、そのワークブックまたはその一部のコピーを取ることができる。例えば、ワークブックが、電子メール（「Ｅメール」）メッセージを介して他のユーザに送信されるという多くのシナリオが存在する。次に、ワークブックを受信するユーザは、ワークブックに対する分析を行ったり、ワークブック内に含まれるデータを別のワークブックに追加したりすることができる。あるいは、複数のユーザがワークブックの内容にアクセスすることができる共有ファイルにワークブックを格納することができる。ワークブックの内容を共有するために、データの範囲をコピーし、他の文書に貼り付けることもできる。
【０００３】
【特許文献１】Method, System, and Apparatus for Discovering and Connecting to Data Sources
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ワークブックを共有するこうした従来の方法によって、複数のユーザがワークブックの内容にアクセスすることはできるが、これらの方法には欠点がある。まず、複数のコンピュータおよびネットワークドメインにわたって何度も複写することができるワークブックの複数のコピーを管理することは非常に難しい。特に、システム管理者が確実にワークブックは安全であること、およびワークブックのバックアップを頻繁に取ることは非常に難しい。さらに、ファイル共有の場合、複数のユーザがワークブックに同時にアクセスすることが非常に難しい場合がある。例えば、元のワークブックの作成者がその更新を必要とした場合、それを使用するすべてのユーザを追跡して、各自のコピーを更新させることは極めて難しい。多くの場合、スプレッドシートクライアントアプリケーションは、あるユーザによって開かれると、ワークブックをロックし、それによって他者がファイルにアクセスするのを防ぐ。さらに、同じ機能をワークブックの異なるコピー上で実行し、それによって作業の重複が生じ、生産性が低下する可能性がある。
【０００５】
これらの問題点などに関して、本発明の様々な実施形態を作成した。
【課題を解決するための手段】
【０００６】
本発明によれば、上記および他の問題は、ワークブック範囲をデータソースとして公開する方法、システム、および装置によって解決される。ワークブック内の範囲をサーバデータソースとして公開することによって、サーバデータソースに接続し、それについてクエリを行うことができる任意のアプリケーションプログラムによって、ワークブックの内容への構造的アクセスが容易になり得る。さらに、ワークブック範囲は、ワークブックが発行されるとサーバデータソースとして公開されるため、スプレッドシートアプリケーションプログラムを操作することができる任意のユーザは、企業レベルのデータソースを容易に作成することができる。
【０００７】
本発明の一態様によれば、ワークブックの内容をサーバデータソースとして公開し、サーバデータソースを使用するシステムが提供される。このシステムは、スプレッドシートアプリケーションプログラムを実行してワークブックを作成することができるクライアントコンピュータを含む。ワークブックは、データオブジェクトを含む１つまたは複数の範囲を含むことができる。本明細書で定義したように、データオブジェクトは、データの格納に使用されるワークシート内の任意のオブジェクトを含む。例えば、データオブジェクトは、それだけには限定されないが、任意の範囲のセル、ピボットテーブル、データ探査オブジェクト（ｄａｔａ  ｅｘｐｌｏｒａｔｉｏｎ  ｏｂｊｅｃｔ）（「ＤＯＥ」）、リスト、データベース、およびクエリテーブルなどを含むことができる。
【０００８】
スプレッドシートアプリケーションプログラムは、ワークシートが作成されるとデータオブジェクトごとにメタデータを生成するよう動作するようにすることもできる。メタデータは、ワークシートとともに保存することができる。メタデータは、サーバデータソースとしてのワークブック内のデータオブジェクトにアクセスする要求を受信し、それに応答する際に、サーバコンピュータによって使用することができる。データオブジェクトのメタデータの作成は、データが作成されたとき、データが発行されたとき、またはメタデータを生成する旨のユーザの要求に応答して、スプレッドシートアプリケーションプログラムによって自動的に実行することができる。ユーザがメタデータを編集することができる機能を提供することもできる。
【０００９】
スプレッドシートアプリケーションプログラムは、さらに、ワークブックをサーバコンピュータに発行するよう動作することができる。ワークブックがサーバコンピュータに発行されると、ユーザは、ワークブック内のデータオブジェクトのうちの一部またはすべてがサーバデータソースとして公開されるように、またはデータオブジェクトのうちのどれもサーバデータソースとして公開されないように指定することができる。次いでワークブックは、サーバコンピュータに送信され、そこで指定されたデータソースがサーバデータソースとして公開される。
【００１０】
本発明の態様によれば、システムは、ワークブック内のデータオブジェクトをサーバデータオブジェクトとして公開するサーバプログラムを実行するよう動作可能なサーバコンピュータも含む。本明細書で使用する場合、「データソース」および「サーバデータソース」という用語は、特にクエリを実行することができるデータベースを指す。この定義は、リレーショナルデータベース（構造化照会言語（「ＳＱＬ」）を使用して構築し、クエリを行うことができるものなど）、階層型データベース、多次元データベース（ＯＬＡＰキューブなど）、またはリレーショナルデータベースおよび多次元データベースの態様を結合したデータベース（Ｕｎｉｆｉｅｄ  Ｄｉｍｅｎｓｉｏｎａｌ  Ｍｏｄｅｌ（「ＵＤＭ」）など）を含む。この定義は、Ｗｅｂサービスを介してクエリを行うことができるデータベースも含む。また、本明細書で使用する場合、「データソースクエリ」という用語は、ＳＱＬクエリなど、データソースを対象とするクエリを意味する。
【００１１】
ワークブックデータオブジェクトが公開されると、クライアントアプリケーションは、サーバデータソースとしてのデータベースオブジェクトを発見し、それに接続することができる。サーバデータソースとしてのデータオブジェクトに対してクエリが発行されると、サーバコンピュータは、ワークブックを再計算するよう動作することができる。ワークブックが別のデータソースへの参照を含んでいる場合、再計算の前に、ワークブックの再計算に必要な任意のデータをデータソースから取り出すことができる。ワークブックが再計算されると、サーバコンピュータは、識別されたデータオブジェクトの表現（データベース表現など）を生成するよう動作することができる。これは、例えば、識別されたデータオブジェクトに対応する一時的なデータベースまたはキューブを生成することを含むことができる。
【００１２】
表現が生成されると、サーバコンピュータは、表現に対して要求されたクエリを実行するよう動作することができる。次いでクエリの結果は、要求側クライアントアプリケーションプログラムに戻される。この方法で、例えば、ユーザは、容易にワークブックを作成し、サーバコンピュータに発行することができ、そこでそのデータオブジェクトをサーバデータソースとして公開することができる。ＯＬＡＰクライアントなど、データベースクライアントアプリケーションを使用する他のユーザは、ワークブックに含まれるデータソースを発見し、データソースに対してネイティブのクエリを発行することができる。
【００１３】
本発明は、コンピュータプロセス、コンピューティング装置、またはコンピュータプログラム製品やコンピュータ読取可能な媒体などの製品として実装することができる。コンピュータプログラム製品は、コンピュータシステムによって読み取ることができ、コンピュータプロセスを実行する旨の命令のコンピュータプログラムを符号化するコンピュータ記憶媒体とすることができる。コンピュータプログラム製品は、コンピューティングシステムによって読み取ることができ、コンピュータプロセスを実行する旨の命令のコンピュータプログラムを符号化する搬送波上の伝播信号とすることもできる。
【００１４】
本発明を特徴付けるこれらおよび他の様々な特徴および利点は、以下の詳細な説明を読み、関連の図面を再検討することから明らかになる。
【発明を実施するための最良の形態】
【００１５】
次に図中、同様の参照番号が同様の要素を示すが、図面を参照して、本発明の様々な態様について説明する。特に、図１および対応する説明は、本発明の実施形態を実施するのに適したコンピューティング環境の簡単な概説を提供するためのものである。本発明は、パーソナルコンピュータのオペレーティングシステム上で稼働するプログラムモジュールとともに実行されるプログラムモジュールの一般的な文脈で説明するが、他のタイプのコンピュータシステムおよびプログラムモジュールとの組み合わせで実施することもできることを当業者であれば理解されよう。
【００１６】
一般にプログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、構成要素、データ構造、および他のタイプの構造などを含む。さらに、本発明は、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能家庭用電化製品、ミニコンピュータ、メインフレームコンピュータなどを含む他のコンピュータシステム構成で実施できることを当業者であれば理解されよう。また、本発明は、タスクが通信ネットワークによってリンクされているリモート処理装置によって実行される分散コンピューティング環境でも実施することができる。分散コンピューティング環境では、プログラムモジュールを、ローカルおよびリモートのメモリ記憶装置に置くことができる。
【００１７】
次に図１を参照して、本発明のいくつかの実施形態の動作環境例について説明する。図１に示すように、ネットワーク１０は、クライアントコンピュータ２といくつかのサーバコンピュータ１２Ａ〜１２Ｃとを相互接続する。ネットワーク１０は、ローカルエリアネットワークまたはインターネットなどの広域ネットワークを含めて、任意のタイプのコンピューティングネットワークを含むことができることを理解されたい。ネットワーク１０は、クライアントコンピュータ２、サーバコンピュータ１２Ａ〜１２Ｃ、およびネットワーク１０に接続され、またはネットワーク１０を介してアクセス可能な潜在的に他のコンピュータの間の通信を可能にする媒体を提供する。
【００１８】
クライアントコンピュータ２は、１つまたは複数のアプリケーションプログラムを実行することができる汎用デスクトップまたはラップトップコンピュータを含む。特に、本発明の様々な実施形態によれば、コンピュータ２は、スプレッドシートクライアントアプリケーション４を実行するよう動作することができる。当業者にはわかるように、スプレッドシートクライアントアプリケーションプログラム４は、予算を作成し、財務予測および他の財務、および数値関係の業務を実行する機能を提供する。この機能を提供するために、データ値はセルを使用してまとめることができ、セル間の関係は、公式を使用して定義することができる。あるセルに変更を加えると、関連のセルが変更される。スプレッドシートプログラムは、通常、出力のグラフ描画機能や、テキスト、数値およびグラフ機能の様々なフォーマットオプションを提供する。
【００１９】
本発明の実施形態によれば、スプレッドシートクライアントアプリケーション４は、ワークブック６の作成に使用することができる。ワークブック６は、１つまたは複数のワークシート（本明細書ではワークシートを（「スプレッドシート」）と呼ぶこともある）を含むスプレッドシートプログラムによって作成されるファイルである。ワークシートは、スプレッドシートプログラムの中で行および列に構成され、画面上に表示され、単一の表の構築に使用される単一のページである。
【００２０】
ワークブック６内のワークシートは、データオブジェクトを含む１つまたは複数の範囲を含むことができる。本明細書で定義したように、データオブジェクトは、データの格納に使用されるワークシート内の任意のオブジェクトを含む。例えば、データオブジェクトは、それだけには限定されないが、任意の範囲のセル、ピボットテーブル、ＤＯＥ、リスト、データベース、およびクエリテーブルなどを含むことができる。本明細書でより十分説明するように、これらのデータオブジェクトのそれぞれは、サーバ１２Ａから使用可能なサーバデータソースとして公開することができる。ワークブック内で使用される他のタイプのデータオブジェクトもサーバデータソースとして公開することができる。
【００２１】
本発明の一態様によれば、スプレッドシートクライアントアプリケーション４はワシントン州レドモンドのＭＩＣＲＯＳＯＦＴ社のＥＸＣＥＬスプレッドシートアプリケーションプログラムを含むことを理解されたい。しかし、本明細書に記載した本発明の様々な態様は、他の製造業者の他のスプレッドシートアプリケーションプログラムとともに使用することもできることを理解されたい。さらに、本明細書に記載した発明の態様はスプレッドシートアプリケーションプログラムの文脈で示しているが、他のタイプのアプリケーションプログラムを使用して本発明の様々な態様を具体化することもできることを理解されたい。
【００２２】
本発明の他の実施形態によれば、クライアントコンピュータ２は、ＯＬＡＰクライアントアプリケーション８を実行するよう動作可能とすることもできる。ＯＬＡＰクライアントアプリケーション８は、ＯＬＡＰデータソースからのデータに接続し、それについてのクエリを行い、それを使用することができるアプリケーションプログラムを含む。例えば、ＯＬＡＰクライアントアプリケーション８は、ネットワーク１０を介してサーバコンピュータ１２Ｂに接続することができる。サーバコンピュータ１２Ｂ上で実行されるデータベースソフトウェアを介して、ＯＬＡＰクライアントアプリケーション８は、データソース１６に対するクエリを発行することができる。次いでサーバコンピュータ１２Ｂは、ＯＬＡＰクライアントアプリケーション８からのクエリを受信し、それに応答するよう動作することができる。
【００２３】
以下でより詳しく説明するように、ＯＬＡＰクライアントアプリケーション８は、ワークブック６に対するクエリを発行することもできる。この機能を実行可能にするために、スプレッドシートクライアントアプリケーション４は、ファイルサーバコンピュータ１２Ｃによって維持され、サーバコンピュータ１２Ａからアクセス可能なリポジトリ１４にワークブック６を発行することができる。サーバコンピュータ１２Ａ上で実行されるスプレッドシートサーバアプリケーション１３は、次いでワークブック６のデータオブジェクトを含む範囲を構文解析し、データオブジェクトをサーバデータソースとして公開することができる。次いでＯＬＡＰクライアントアプリケーション８は、サーバコンピュータ１２Ｂによって提供されるものなど、専用のＯＬＡＰデータソースに接続するのと同じ方法で、スプレッドシートサーバアプリケーション１２Ａによって公開されたデータソースに接続することができる。スプレッドシートクライアントアプリケーション４は、ＯＬＡＰクライアントアプリケーション８と同じ方法でデータソースからのデータの消費者として働き得ることを理解されたい。また、コンピュータ２は、他のタイプのデータベースからのデータについてクエリを行い、それを消費するための追加のクライアントアプリケーションを実行するよう動作することができることも理解されたい。代替実施形態において、上述したコンピュータ２の機能を２つのコンピューティング装置に分けることができることもさらに理解されたい。例えば、１つのコンピューティング装置は、ワークブック６を発行するためにスプレッドシートアプリケーション４を実行するよう動作可能とすることができ、他のコンピューティング装置は、データを消費するためにクライアントアプリケーションを実行するよう動作可能とすることができる。
【００２４】
本明細書で使用する場合、「データソース」および「サーバデータソース」という用語は、特にクエリを実行することができるデータベースを指す。この定義は、リレーショナルデータベース（ＳＱＬデータベースなど）、階層型データベース、多次元データベース（ＯＬＡＰキューブなど）、またはリレーショナルデータベースおよび多次元データベースの態様を結合したデータベース（ＵＤＭなど）を含む。この定義は、Ｗｅｂサービスを介してクエリを行うことができるデータベースも含む。また、本明細書で使用する場合、「データソースクエリ」という用語は、ＳＱＬクエリなど、データソースを対象とするクエリを意味する。
【００２５】
スプレッドシートサーバアプリケーション１３は、表示画面の使用無し（ヘッドレス）で実行することができるサーバベースのアプリケーションプログラムを含む。スプレッドシートサーバアプリケーション１３は、サーバコンピュータ上でスプレッドシートクライアントアプリケーション４の機能の多くを実行するよう動作することができる。例えば、スプレッドシートサーバアプリケーション１３は、ワークブック６をロードし、計算することができる。本明細書に記載するように、スプレッドシートサーバアプリケーション１３は、ネットワーク１０を介して互換性のあるクライアントにワークブック６内の範囲を公開する機能も提供する。スプレッドシートクライアントアプリケーション４およびスプレッドシートサーバアプリケーション１３によって実行される様々な機能に関する追加の詳細については、図２〜５を参照して後述する。
【００２６】
次に図２を参照して、本発明の様々な実施形態において使用されるコンピュータ２のコンピュータアーキテクチャ例について説明する。図２に示したコンピュータアーキテクチャは、中央処理ユニット５（「ＣＰＵ」）と、ランダムアクセスメモリ９（「ＲＡＭ」）および読み取り専用メモリ（「ＲＯＭ」）１１を含むシステムメモリ７と、メモリをＣＰＵ５に結合するシステムバス１２とを含む従来のデスクトップまたはラップトップコンピュータを示している。基本入出力システムは、例えば起動中など、コンピュータ内の要素間での情報の転送を助ける基本ルーチンを含み、ＲＯＭ１１に格納されている。コンピュータ２は、以下で詳述するように、オペレーティングシステム１８、アプリケーションプログラム、および他のプログラムモジュールを格納する大容量記憶装置２４をさらに含む。
【００２７】
大容量記憶装置２４は、バス１２に接続される大容量ストレージコントローラ（図示せず）を介してＣＰＵ５に接続される。大容量記憶装置２４およびその関連のコンピュータ読取可能な媒体は、コンピュータ２の不揮発性記憶装置を提供する。本明細書に含まれるコンピュータ読取可能な媒体の説明は、ハードディスクやＣＤ−ＲＯＭドライブなどの大容量記憶装置を指すが、コンピュータ読取可能な媒体はコンピュータ２によってアクセスできる使用可能な任意の媒体とすることができることを当業者であれば理解されたい。
【００２８】
コンピュータ読取可能な媒体は、それだけには限定されないが一例として、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、他のデータなど、情報を記憶するための任意の方法または技術で実施される揮発性および不揮発性の取外式および固定式の媒体がある。コンピュータ記憶媒体には、それだけには限定されないが、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他の半導体メモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、または所望の情報の格納に使用でき、コンピュータ２からアクセスできる他の任意の媒体などがある。
【００２９】
本発明の様々な実施形態によれば、コンピュータ２は、インターネットなどのネットワーク１０を介したリモートコンピュータへの論理接続を使用してネットワーク式環境で動作することができる。コンピュータ２は、バス１２に接続されるネットワークインターフェイスユニット２０を介してネットワーク１０に接続することができる。ネットワークインターフェイスユニット２０は、他のタイプのネットワークおよびリモートコンピュータシステムに接続するために使用することもできることを理解されたい。コンピュータ２は、キーボード、マウス、電子スタイラス（図２には示していない）を含む他のいくつかの装置からの入力を受信し、処理する入力／出力コントローラ２２も含むことができる。同様に、入力／出力コントローラ２２は、表示画面、プリンタ、他のタイプの出力装置への出力を提供することもできる。
【００３０】
上記で概説したように、ワシントン州レドモンドのＭＩＣＲＯＳＯＦＴ社のＷＩＮＤＯＷＳ（登録商標）ＸＰオペレーティングシステムなど、ネットワーク式パーソナルコンピュータの動作を制御するのに適したオペレーティングシステム１８を含めて、いくつかのプログラムモジュールおよびデータファイルをコンピュータ２の大容量記憶装置２４およびＲＡＭ９に格納することができる。大容量記憶装置２４およびＲＡＭ９は、１つまたは複数のプログラムモジュールを格納することもできる。特に、大容量記憶装置２４およびＲＡＭ９は、上述したように、スプレッドシートクライアントアプリケーション４およびＯＬＡＰクライアントアプリケーション８を格納することができる。大容量記憶装置２４およびＲＡＭ９は、スプレッドシートクライアントアプリケーション４によって作成されるワークブック６を格納することもできる。
【００３１】
本発明の一実施形態によれば、スプレッドシートアプリケーションプログラム４は、ワークブック内に含まれるデータオブジェクトごとにメタデータ２６を生成するよう動作可能でもある。メタデータ２６は、スプレッドシートクライアントアプリケーション４によって自動的に生成したり、ユーザによって手動で作成したりすることができる。メタデータ２６は、ワークブック６内に格納され、ワークブックとともに保存することができる。メタデータ２６は、サーバデータソースとしてのワークブック内のデータオブジェクトにアクセスする要求を受信し、それに応答する際に、サーバコンピュータ１２Ａによって使用することができる。一例として、スプレッドシートアプリケーションプログラム１０は、「ＺＩＰ  ＣＯＤＥ」という名称のワークブック内のあるフィールドのメタデータ２６を作成することができる。メタデータ２６は、フィールドの名前を示し、フィールドのデータ型を数字として設定することができる。また、メタデータ２６は、フィールドのデフォルトの集約が「合計」であることを示すこともできる。このプロセスは、データソースが作成されたとき、データソースが発行されたとき、またはメタデータを生成する旨のユーザの要求に応答して、スプレッドシートアプリケーションプログラム４によって自動的に実行することができる。
【００３２】
本発明の実施形態において、スプレッドシートクライアントアプリケーションプログラム４は、スプレッドシートアプリケーションプログラム４によって作成される、ワークブック６に含まれるデータオブジェクトのメタデータ２６をユ―ザが編集することができる機能を提供するよう動作することができることを理解されたい。例えば、上記の例を使用して、ユーザは、郵便番号の合計を生成するのは不適切であると考える可能性がある。したがってユーザは、スプレッドシートクライアントアプリケーション４によって提供される機能を使用して、「ＺＩＰ  ＣＯＤＥ」フィールドのデフォルトの集約が合計ではなく、数であることを示すようにメタデータ２６を編集することができる。次いで変更されたメタデータ２６をワークブック６まで持続し、サーバコンピュータ１２Ａに発行することができる。このように、サーバコンピュータ１２Ａは、このフィールドに含まれているデータのデータソース要求によりよく応答することができる。スプレッドシートクライアントアプリケーション４によってワークブック内のデータオブジェクトのために生成されたメタデータ２６を編集するユーザインターフェイス例については、図４を参照して以下で詳述する。
【００３３】
サーバコンピュータ１２Ａ〜１２Ｃは、図２および上記で示した従来のコンピューティング構成要素の多くを備えることができることを理解されたい。さらに、サーバコンピュータ１２Ａは、スプレッドシートサーバアプリケーション１３を格納し、実行するよう動作可能とすることができる。ファイルサーバコンピュータ１２Ｃは、ワークブック６など、リポジトリ１４に格納されたファイルの要求を受信し、それに応答するファイルサーバアプリケーション２８を格納し、実行するよう動作可能とすることができる。サーバコンピュータ１２Ａ〜１２Ｃは、図２に示していないが当業者には知られている他の従来の構成要素を含むことができることを理解されたい。
【００３４】
次に図３を参照して、ワークブック範囲をサーバデータソースとして発行するためにスプレッドシートクライアントアプリケーションプログラム４によって実行されるプロセスを示すルーチン例３００について説明する。本明細書に示すルーチンの説明を読むと、本発明の様々な実施形態の論理操作は、（１）コンピューティングシステム上で稼働するコンピュータ実施動作またはプログラムモジュールのシーケンス、および／または（２）コンピューティングシステム内の相互接続されたマシン論理回路または回路モジュールとして実装されることを理解されたい。この実装は、選択の問題であり、本発明を実施するコンピューティングシステムの性能要件に依存する。したがって、図３および図５に示した論理操作、および本明細書に記載した本発明の実施形態の構成は、操作、構造的装置、動作、またはモジュールと様々に呼ばれる。これらの操作、構造的装置、動作、およびモジュールは、本明細書に記載した特許請求の範囲内に記載した本発明の意図および範囲から逸脱することなく、ソフトウェア、ファームウェア、専用デジタルロジック、およびそれらの任意の組み合わせで実施できることを当業者であれば理解されよう。
【００３５】
ルーチン３００は、操作３０２で開始し、ユ―ザはスプレッドシートクライアントアプリケーション４を使用してワークブック６を作成する。特に、本明細書に記載するように、ユーザは、スプレッドシートクライアントアプリケーション４によって提供される様々な機能を使用して、セル、ピボットテーブル、ＤＯＥ、リスト、データベース、クエリテーブル、および他のデータオブジェクトの範囲を含むワークブック内のデータオブジェクトを作成することができる。また、ユーザは、手動でデータソース１６のワークブック６にデータを入力したり、それに対するクエリを作成したりすることもできる。ワークブック６を作成するためにスプレッドシートクライアントアプリケーション４内で使用できる様々な機能および方法は、実質的に無限であり、当業者にはよく知られている。
【００３６】
ルーチン３００は操作３０２から操作３０４に進み、スプレッドシートクライアントアプリケーション４は、ワークブック６にデータソースとしてアクセスする要求に応答してサーバアプリケーション１３によって使用するためのメタデータ２６を生成する。特に、スプレッドシートクライアントアプリケーション４は、ワークブック６内に含まれる様々なデータソースを分析して、ワークブック６内の様々なデータソースの記述に使用できるデータを識別することができる。例えば、リレーショナルデータソースについては、スプレッドシートクライアントアプリケーション４は、列の名前、およびワークブック６とともに含まれるデータソースの様々なデータ型を識別することができる。多次元のデータソースについては、スプレッドシートクライアントアプリケーション４は、様々なデータソースの測定値、階層、およびデフォルトの集約を識別することができる。
【００３７】
これらのプロパティの値は、スプレッドシートクライアントアプリケーション４によって知的な方法で設定することもできる。例えば、文字列データフィールドについては、スプレッドシートクライアントアプリケーション４は、デフォルトの集約を数として示すことができる。数値データフィールドについては、スプレッドシートクライアントアプリケーション４は、デフォルトの集約を合計となるように設定することができる。ワークブック６内のメタデータを識別したり、メタデータのプロパティを設定したりする他のタイプの知的な決定を、スプレッドシートクライアントアプリケーション４によって行うことができる。
【００３８】
ルーチン３００は操作３０４から操作３０６に進み、スプレッドシートクライアントアプリケーション４は、ユーザがスプレッドシートクライアントアプリケーション４によって生成されたメタデータを編集する旨の要求を行ったかどうかを決定する。上記で概説したように、スプレッドシートクライアントアプリケーション４は、生成されたメタデータを編集するユーザインターフェイスを提供することができる。これは、例えば、ワークブック６内のメタデータを識別し、メタデータに様々なプロパティを設定するときに、スプレッドシートクライアントアプリケーション４によって行われた知的な決定をユーザがオーバーライドできるようにするのに有用となり得る。
【００３９】
操作３０６で、スプレッドシートクライアントアプリケーション４がメタデータを編集する旨の要求が受信されたと決定した場合、ルーチン３００は操作３０８に分岐する。操作３０８では、スプレッドシートクライアントアプリケーション４は、編集されたメタデータをユーザから受信する。ユーザがメタデータを編集できるユーザインターフェイスの例については、図４を参照して以下で詳述する。ルーチン３００は、操作３０８から操作３１０に進む。
【００４０】
操作３０６で、スプレッドシートクライアントアプリケーション４がメタデータを編集する旨の要求は受信されていないと決定した場合、ルーチン３００は操作３１０に分岐する。操作３１０で、スプレッドシートクライアントアプリケーション４によって生成され、ユーザによって潜在的に編集されたメタデータ２６は、ワークブック６とともに保存される。ワークブック６の保存は、自動的に、またはユーザ要求に応答して行うことができる。
【００４１】
ルーチン３００は操作３１０から操作３１２に進み、メタデータ２６を含むワークブック６がスプレッドシートサーバアプリケーション１３に発行される。ワークブック６の発行は、ユーザコマンドに応答して、または自動的に行うことができる。例えば、ワークブック６の発行は、サーバコンピュータ１２Ａにスプレッドシートをアップロードし、またはスプレッドシートをプログラムに基づいて生成し、それをサーバアプリケーションプログラムインターフェイス（「ＡＰＩ」）を介してサーバコンピュータ１２Ａに送信することを含むことができる。ワークブック６がスプレッドシートサーバアプリケーション１３に発行されると、ワークブック６はリポジトリ１４に格納される。また、スプレッドシートサーバアプリケーション１３にはワークブック６の存在も通知され、次いでワークブック内に含まれる様々なデータオブジェクトがサーバデータソースとして公開され得る。ユーザは、スプレッドシートサーバアプリケーション１３によってワークブック６内の様々なデータオブジェクトのうちのどれがデータソースとして公開されるかを指定することができることを理解されたい。あるいは、ワークブック６内のすべてのデータオブジェクトをデータオブジェクトとして公開することができ、またはユーザは、ワークブック６内のどのデータオブジェクトもデータソースとして公開されないよう指示することができる。
【００４２】
ワークブック６がリポジトリ１４に伝達され、スプレッドシートサーバアプリケーション１３によって分析されると、ＯＬＡＰクライアントアプリケーション８やスプレッドシートクライアントアプリケーション４などのデータベースクライアントアプリケーションを使用して、データソースとしてのワークブック６の内容についてのクエリを行うことができる。ワークブック６の内容をデータソースとして公開し、データソースクエリ要求を受信し、応答するためにスプレッドシートサーバアプリケーション１３によって実行される様々な機能に関するこれ以上の詳細については、図５を参照して以下で詳述する。ルーチン３００は、操作３１２から操作３１４に進み、終了する。
【００４３】
次に図４を参照して、スプレッドシートクライアントアプリケーション４によって生成された、ワークブック６内に含まれる様々なデータソースのメタデータをユーザが編集することができるユーザインターフェイス例について説明する。図４は、メタデータを編集するいくつかのユーザインターフェイス構成要素を含むユーザインターフェイスウィンドウ３０を示している。特に、ワークブック６内に含まれるデータソースに使用可能なフィールド３４Ａ〜３４Ｎのそれぞれを列挙するリストボックス３２が提供されている。スプレッドシートクライアントアプリケーション４によって識別される様々なフィールド間の関係を示すために、様々なフィールド３４Ａ〜３４Ｎ間の関係をリストボックス３２内に示すことができる。例えば、図４に示すように、時刻、年、月、データのフィールドを相互にインデントして、様々なフィールド間の階層を示すことができる。
【００４４】
リストボックス３２に示したフィールド３４Ａ〜３４Ｎの順序および階層をユーザが配列できるようにするため、いくつかのユーザインターフェイスボタン３６Ａ〜３６Ｆを提供することもできる。例えば、ユーザインターフェイスボタン３６Ａ〜３６Ｄによって、ユーザは、様々なフィールドをそれぞれ上、下、右、左に配列することができる。ユーザインターフェイスボタン３６Ｅを使用してフィールド３４Ａ〜３４Ｎのうちの１つをコピーすることができ、ユーザインターフェイスボタン３６Ｆを使用して新しいデータフィールドを作成することができる。
【００４５】
図４にも示すように、リストボックス３２で識別されるフィールドのうちの１つをユーザによって選択し、そのフィールドのプロパティをユーザインターフェイスウィンドウ３０に示すことができる。例えば、図４に示すように、郵便番号を表すフィールド３４Ｎが選択されている。したがって、テキスト３８を使用してフィールド名が表示される。スプレッドシートクライアントアプリケーション４によって郵便番号フィールドに割り当てられたデータ型および集約も示されている。例えば、データ型のプロパティを数字から文字列に変更するためのドロップダウンメニュー４０Ａを提供することができる。同様に、ユーザが集約フィールドの値を合計から数に変更できるようにするためのドロップダウンメニュー４０Ｂを提供することもできる。図４に示し、本明細書に記載したもの以外の他のタイプの編集操作もユーザインターフェイスウィンドウ３０を介して可能であることを理解されたい。ユーザが編集を完了すると、変更を維持するためのボタン４２、または変更をキャンセルするためのボタン４４を選択することができる。
【００４６】
次に図５を参照して、データソースとしてのワークブックの範囲の要求を受信し、それに応答するためのスプレッドシートサーバアプリケーション１３の操作を示すルーチン例５００について説明する。ルーチン５００は操作５０２で開始し、スプレッドシートサーバアプリケーション１３は、リポジトリ１４内に含まれる様々な範囲のワークブックをサーバデータソースとして公開する。本発明の一実施形態によれば、参照により本明細書に特に含まれている同時出願した「Ｍｅｔｈｏｄ，Ｓｙｓｔｅｍ，ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｄｉｓｃｏｖｅｒｉｎｇ  ａｎｄ  Ｃｏｎｎｅｃｔｉｎｇ  ｔｏ  Ｄａｔａ  Ｓｏｕｒｃｅｓ」という名称の米国特許出願（代理人整理番号第６０００１．０３３８ＵＳ０１号）（例えば、特許文献１参照）に記載したものなど、データソースは、データ接続マネージャを介して公開される。あるいは、リポジトリ１４内に格納されているワークブック内に含まれているデータソースは、ＵＤＭなど、他のタイプの分析サーバインターフェイスを使用して公開することができる。スプレッドシートサーバアプリケーション１３が様々なデータソースを公開すると、ＯＬＡＰクライアントアプリケーション８やスプレッドシートクライアントアプリケーション４などのクライアントアプリケーションは、ソースを発見し、様々なデータソースに対してクエリを行う要求を発行することができる。
【００４７】
ルーチン５００は操作５０２から操作５０４に進み、スプレッドシートサーバアプリケーション１３は、サーバデータソースとしてのワークブックに接続する旨の要求を受信する。例えば、操作５０６で、スプレッドシートサーバアプリケーション１３は、ワークブックの範囲内に含まれるデータオブジェクトに対するネイティブのクエリを受信することができる。例えば、ＯＬＡＰクライアントアプリケーションは、スプレッドシートサーバアプリケーション１３にネイティブＯＬＡＰクエリを発行することができる。あるいは、ＯＤＢ、ＯＤＢＣ、ＸＭＬ−Ａ、およびＳＱＬのクエリなど、他のタイプのクエリをスプレッドシートサーバアプリケーション１３に対して発行することができる。当業者に知られているデータベースに対してクエリを行う他のタイプの標準を使用することもできる。
【００４８】
操作５０８で、スプレッドシートサーバアプリケーション１３は、クエリの対象となったデータソースを含むワークブック６をロードする。ワークブック６がスプレッドシートサーバアプリケーション１３によってロードされると、ルーチン５００は操作５１０に進み、スプレッドシートサーバアプリケーション１３は、ワークブック６が別のデータソースへの参照を含んでいるかどうかを決定する。例えば、上記で概説したように、ワークブックは、データソース１６などのデータソースへの参照を含むことができる。
【００４９】
ワークブック６が別のデータソースへの参照を含んでいる場合、ルーチン５００は操作５１２に分岐し、スプレッドシートサーバアプリケーション１３は、データソース１６に対して、ワークブック６の計算に必要な任意のデータについてのクエリを行う。このデータがスプレッドシートサーバアプリケーション１３によって受信されると、ワークブック６は受信データについて更新される。
【００５０】
操作５１０で、ワークブック６が別のデータソースへの参照を含んでいないと決定された場合、ルーチン５００は操作５１４に進む。操作５１４で、スプレッドシートサーバアプリケーション１３は、ワークブック６の内容を再計算する。ワークブックの内容の再計算は「大きい付加価値」となることを理解されよう。「大きい付加価値」によって、サ―バデータソースにおけるスプレッドシートの計算が可能になる。ルーチン５００は操作５１４から操作５１６に進み、スプレッドシートサーバアプリケーション１３は、再計算されたワークブックのデータベース表現（ｄａｔａｂａｓｅ  ｒｅｐｒｅｓｅｎｔａｔｉｏｎ）を生成する。特に、リレーショナルデータベースやＯＬＡＰキューブなどの一時的なデータベース表現がスプレッドシートサーバアプリケーション１３によって生成される。データベース表現は、識別されたデータソースにわたって要求されたクエリを実行するため、一時的に生成される。
【００５１】
要求されたワークブックのデータベース表現が生成されると、ルーチン５００は操作５１８に進み、スプレッドシートサーバアプリケーション１３は、再計算されたワークブックのデータベース表現上で要求されたクエリを実行する。クエリの実行に応答して、クライアントアプリケーションから受信された最初のクエリを満たすクエリ結果が生成される。ルーチン５００は操作５１８から操作５２０に進み、スプレッドシートサーバアプリケーション１３は、元のクエリ要求に識別されたクエリ結果で応答する。ルーチン５００は、操作５２０から操作５２２に進み、終了する。
【００５２】
上記に基づいて、本発明の様々な実施形態はワークブック内の範囲をサーバデータソースとして公開し、使用するための方法、システム、装置、およびコンピュータ読取可能な媒体を含むことを理解されたい。上記の仕様、例、およびデータは、製造の完全な説明および本発明の構成の使用を提供している。本発明の多くの実施形態は本発明の意図および範囲から逸脱することなく作成することができるので、本発明は特許請求の範囲にある。
【図面の簡単な説明】
【００５３】
【図１】本発明の様々な実施形態において使用され、それによって提供されるいくつかのコンピュータシステムの態様を示すコンピュータネットワーク図である。
【図２】本発明の様々な実施形態において使用され、それによって提供されるクライアントコンピュータシステムの態様を示すコンピュータシステムアーキテクチャ図である。
【図３】本発明の一実施形態によるワークブック範囲をサーバデータソースとして発行するプロセスの態様を示すフロー図である。
【図４】ユーザがワークブックのある範囲内のデータオブジェクトに関連付けられているメタデータを編集することができる機能を提供する本発明の一態様を示す画面図である。
【図５】本発明の一実施形態によるサーバデータソースとしてのワークブック範囲の要求を受信し、それに応答するプロセスの態様を示すフロー図である。
【符号の説明】
【００５４】
２  コンピュータ
４  スプレッドシートクライアントアプリケーション
５  中央処理装置
６  ワークブック
７  システムメモリ
８  ＯＬＡＰクライアントアプリケーション
９  ランダムアクセスメモリ
１０  ネットワーク
１１  読み取り専用メモリ
１２Ａ  サーバコンピュータ１２Ｂ  サーバコンピュータ
１２Ｃ  ファイルサーバコンピュータ
１３  スプレッドシートサーバアプリケーション
１４  ワークブックリポジトリ
１６  データソース
１８  オペレーティングシステム
２０  ネットワークインターフェイスユニット
２２  入力／出力コントローラ
２４  大容量記憶装置
２６  メタデータ
２８  ファイルサーバアプリケーション
【図１】
2006004418.tif 000003
【図２】
2006004418.tif 000004
【図３】
2006004418.tif 000005
【図４】
2006004418.tif 000006
【図５】
2006004418.tif 000007
【外国語明細書】
2006004418000001.pdf