説明

ワークブック範囲をデータソースとして公開する方法、システムおよび装置

【課題】 ワークブック範囲をサーバデータソースとして公開し、使用するための方法、システム、および装置を提供すること。
【解決手段】 このシステムは、データオブジェクトを含む範囲を含むワークブックを作成するためにスプレッドシートアプリケーションプログラムを実行することができるクライアントコンピュータを含む。ワークブックは、サーバコンピュータに発行され、そこで指定されたデータオブジェクトをサーバデータソースとして公開することができる。サーバコンピュータによってクライアントアプリケーションは、サーバデータソースとしてワークブック内に含まれるデータオブジェクトを発見し、それに接続することができる。

【発明の詳細な説明】
【背景技術】
【0001】
ワークブックを構築する際、スプレッドシートアプリケーションプログラムのユーザは、異なるいくつかのソースからのデータを使用することが多い。例えば、スプレッドシートアプリケーションプログラム内でワークブックを作成するとき、ユーザは、別のワークブックからデータをインポートしたり、データを手動でワークブックに入力したり、リレーショナルデータベースまたはオンライン分析処理(「OLAP」)キューブに対するクエリを実行することによってデータを取得したりすることができる。これらのソースのいずれかからデータが入力されると、ユーザは一般に、データをワークブック内に所望の構成で配列する。このプロセスの最後に、ユーザは、数値分析が有効な表範囲のデータを含むワークブックを作成した。
【0002】
他のユーザがワークブックの内容にアクセスできるように、そのワークブックまたはその一部のコピーを取ることができる。例えば、ワークブックが、電子メール(「Eメール」)メッセージを介して他のユーザに送信されるという多くのシナリオが存在する。次に、ワークブックを受信するユーザは、ワークブックに対する分析を行ったり、ワークブック内に含まれるデータを別のワークブックに追加したりすることができる。あるいは、複数のユーザがワークブックの内容にアクセスすることができる共有ファイルにワークブックを格納することができる。ワークブックの内容を共有するために、データの範囲をコピーし、他の文書に貼り付けることもできる。
【0003】
【特許文献1】Method, System, and Apparatus for Discovering and Connecting to Data Sources
【発明の開示】
【発明が解決しようとする課題】
【0004】
ワークブックを共有するこうした従来の方法によって、複数のユーザがワークブックの内容にアクセスすることはできるが、これらの方法には欠点がある。まず、複数のコンピュータおよびネットワークドメインにわたって何度も複写することができるワークブックの複数のコピーを管理することは非常に難しい。特に、システム管理者が確実にワークブックは安全であること、およびワークブックのバックアップを頻繁に取ることは非常に難しい。さらに、ファイル共有の場合、複数のユーザがワークブックに同時にアクセスすることが非常に難しい場合がある。例えば、元のワークブックの作成者がその更新を必要とした場合、それを使用するすべてのユーザを追跡して、各自のコピーを更新させることは極めて難しい。多くの場合、スプレッドシートクライアントアプリケーションは、あるユーザによって開かれると、ワークブックをロックし、それによって他者がファイルにアクセスするのを防ぐ。さらに、同じ機能をワークブックの異なるコピー上で実行し、それによって作業の重複が生じ、生産性が低下する可能性がある。
【0005】
これらの問題点などに関して、本発明の様々な実施形態を作成した。
【課題を解決するための手段】
【0006】
本発明によれば、上記および他の問題は、ワークブック範囲をデータソースとして公開する方法、システム、および装置によって解決される。ワークブック内の範囲をサーバデータソースとして公開することによって、サーバデータソースに接続し、それについてクエリを行うことができる任意のアプリケーションプログラムによって、ワークブックの内容への構造的アクセスが容易になり得る。さらに、ワークブック範囲は、ワークブックが発行されるとサーバデータソースとして公開されるため、スプレッドシートアプリケーションプログラムを操作することができる任意のユーザは、企業レベルのデータソースを容易に作成することができる。
【0007】
本発明の一態様によれば、ワークブックの内容をサーバデータソースとして公開し、サーバデータソースを使用するシステムが提供される。このシステムは、スプレッドシートアプリケーションプログラムを実行してワークブックを作成することができるクライアントコンピュータを含む。ワークブックは、データオブジェクトを含む1つまたは複数の範囲を含むことができる。本明細書で定義したように、データオブジェクトは、データの格納に使用されるワークシート内の任意のオブジェクトを含む。例えば、データオブジェクトは、それだけには限定されないが、任意の範囲のセル、ピボットテーブル、データ探査オブジェクト(data exploration object)(「DOE」)、リスト、データベース、およびクエリテーブルなどを含むことができる。
【0008】
スプレッドシートアプリケーションプログラムは、ワークシートが作成されるとデータオブジェクトごとにメタデータを生成するよう動作するようにすることもできる。メタデータは、ワークシートとともに保存することができる。メタデータは、サーバデータソースとしてのワークブック内のデータオブジェクトにアクセスする要求を受信し、それに応答する際に、サーバコンピュータによって使用することができる。データオブジェクトのメタデータの作成は、データが作成されたとき、データが発行されたとき、またはメタデータを生成する旨のユーザの要求に応答して、スプレッドシートアプリケーションプログラムによって自動的に実行することができる。ユーザがメタデータを編集することができる機能を提供することもできる。
【0009】
スプレッドシートアプリケーションプログラムは、さらに、ワークブックをサーバコンピュータに発行するよう動作することができる。ワークブックがサーバコンピュータに発行されると、ユーザは、ワークブック内のデータオブジェクトのうちの一部またはすべてがサーバデータソースとして公開されるように、またはデータオブジェクトのうちのどれもサーバデータソースとして公開されないように指定することができる。次いでワークブックは、サーバコンピュータに送信され、そこで指定されたデータソースがサーバデータソースとして公開される。
【0010】
本発明の態様によれば、システムは、ワークブック内のデータオブジェクトをサーバデータオブジェクトとして公開するサーバプログラムを実行するよう動作可能なサーバコンピュータも含む。本明細書で使用する場合、「データソース」および「サーバデータソース」という用語は、特にクエリを実行することができるデータベースを指す。この定義は、リレーショナルデータベース(構造化照会言語(「SQL」)を使用して構築し、クエリを行うことができるものなど)、階層型データベース、多次元データベース(OLAPキューブなど)、またはリレーショナルデータベースおよび多次元データベースの態様を結合したデータベース(Unified Dimensional Model(「UDM」)など)を含む。この定義は、Webサービスを介してクエリを行うことができるデータベースも含む。また、本明細書で使用する場合、「データソースクエリ」という用語は、SQLクエリなど、データソースを対象とするクエリを意味する。
【0011】
ワークブックデータオブジェクトが公開されると、クライアントアプリケーションは、サーバデータソースとしてのデータベースオブジェクトを発見し、それに接続することができる。サーバデータソースとしてのデータオブジェクトに対してクエリが発行されると、サーバコンピュータは、ワークブックを再計算するよう動作することができる。ワークブックが別のデータソースへの参照を含んでいる場合、再計算の前に、ワークブックの再計算に必要な任意のデータをデータソースから取り出すことができる。ワークブックが再計算されると、サーバコンピュータは、識別されたデータオブジェクトの表現(データベース表現など)を生成するよう動作することができる。これは、例えば、識別されたデータオブジェクトに対応する一時的なデータベースまたはキューブを生成することを含むことができる。
【0012】
表現が生成されると、サーバコンピュータは、表現に対して要求されたクエリを実行するよう動作することができる。次いでクエリの結果は、要求側クライアントアプリケーションプログラムに戻される。この方法で、例えば、ユーザは、容易にワークブックを作成し、サーバコンピュータに発行することができ、そこでそのデータオブジェクトをサーバデータソースとして公開することができる。OLAPクライアントなど、データベースクライアントアプリケーションを使用する他のユーザは、ワークブックに含まれるデータソースを発見し、データソースに対してネイティブのクエリを発行することができる。
【0013】
本発明は、コンピュータプロセス、コンピューティング装置、またはコンピュータプログラム製品やコンピュータ読取可能な媒体などの製品として実装することができる。コンピュータプログラム製品は、コンピュータシステムによって読み取ることができ、コンピュータプロセスを実行する旨の命令のコンピュータプログラムを符号化するコンピュータ記憶媒体とすることができる。コンピュータプログラム製品は、コンピューティングシステムによって読み取ることができ、コンピュータプロセスを実行する旨の命令のコンピュータプログラムを符号化する搬送波上の伝播信号とすることもできる。
【0014】
本発明を特徴付けるこれらおよび他の様々な特徴および利点は、以下の詳細な説明を読み、関連の図面を再検討することから明らかになる。
【発明を実施するための最良の形態】
【0015】
次に図中、同様の参照番号が同様の要素を示すが、図面を参照して、本発明の様々な態様について説明する。特に、図1および対応する説明は、本発明の実施形態を実施するのに適したコンピューティング環境の簡単な概説を提供するためのものである。本発明は、パーソナルコンピュータのオペレーティングシステム上で稼働するプログラムモジュールとともに実行されるプログラムモジュールの一般的な文脈で説明するが、他のタイプのコンピュータシステムおよびプログラムモジュールとの組み合わせで実施することもできることを当業者であれば理解されよう。
【0016】
一般にプログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、構成要素、データ構造、および他のタイプの構造などを含む。さらに、本発明は、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能家庭用電化製品、ミニコンピュータ、メインフレームコンピュータなどを含む他のコンピュータシステム構成で実施できることを当業者であれば理解されよう。また、本発明は、タスクが通信ネットワークによってリンクされているリモート処理装置によって実行される分散コンピューティング環境でも実施することができる。分散コンピューティング環境では、プログラムモジュールを、ローカルおよびリモートのメモリ記憶装置に置くことができる。
【0017】
次に図1を参照して、本発明のいくつかの実施形態の動作環境例について説明する。図1に示すように、ネットワーク10は、クライアントコンピュータ2といくつかのサーバコンピュータ12A〜12Cとを相互接続する。ネットワーク10は、ローカルエリアネットワークまたはインターネットなどの広域ネットワークを含めて、任意のタイプのコンピューティングネットワークを含むことができることを理解されたい。ネットワーク10は、クライアントコンピュータ2、サーバコンピュータ12A〜12C、およびネットワーク10に接続され、またはネットワーク10を介してアクセス可能な潜在的に他のコンピュータの間の通信を可能にする媒体を提供する。
【0018】
クライアントコンピュータ2は、1つまたは複数のアプリケーションプログラムを実行することができる汎用デスクトップまたはラップトップコンピュータを含む。特に、本発明の様々な実施形態によれば、コンピュータ2は、スプレッドシートクライアントアプリケーション4を実行するよう動作することができる。当業者にはわかるように、スプレッドシートクライアントアプリケーションプログラム4は、予算を作成し、財務予測および他の財務、および数値関係の業務を実行する機能を提供する。この機能を提供するために、データ値はセルを使用してまとめることができ、セル間の関係は、公式を使用して定義することができる。あるセルに変更を加えると、関連のセルが変更される。スプレッドシートプログラムは、通常、出力のグラフ描画機能や、テキスト、数値およびグラフ機能の様々なフォーマットオプションを提供する。
【0019】
本発明の実施形態によれば、スプレッドシートクライアントアプリケーション4は、ワークブック6の作成に使用することができる。ワークブック6は、1つまたは複数のワークシート(本明細書ではワークシートを(「スプレッドシート」)と呼ぶこともある)を含むスプレッドシートプログラムによって作成されるファイルである。ワークシートは、スプレッドシートプログラムの中で行および列に構成され、画面上に表示され、単一の表の構築に使用される単一のページである。
【0020】
ワークブック6内のワークシートは、データオブジェクトを含む1つまたは複数の範囲を含むことができる。本明細書で定義したように、データオブジェクトは、データの格納に使用されるワークシート内の任意のオブジェクトを含む。例えば、データオブジェクトは、それだけには限定されないが、任意の範囲のセル、ピボットテーブル、DOE、リスト、データベース、およびクエリテーブルなどを含むことができる。本明細書でより十分説明するように、これらのデータオブジェクトのそれぞれは、サーバ12Aから使用可能なサーバデータソースとして公開することができる。ワークブック内で使用される他のタイプのデータオブジェクトもサーバデータソースとして公開することができる。
【0021】
本発明の一態様によれば、スプレッドシートクライアントアプリケーション4はワシントン州レドモンドのMICROSOFT社のEXCELスプレッドシートアプリケーションプログラムを含むことを理解されたい。しかし、本明細書に記載した本発明の様々な態様は、他の製造業者の他のスプレッドシートアプリケーションプログラムとともに使用することもできることを理解されたい。さらに、本明細書に記載した発明の態様はスプレッドシートアプリケーションプログラムの文脈で示しているが、他のタイプのアプリケーションプログラムを使用して本発明の様々な態様を具体化することもできることを理解されたい。
【0022】
本発明の他の実施形態によれば、クライアントコンピュータ2は、OLAPクライアントアプリケーション8を実行するよう動作可能とすることもできる。OLAPクライアントアプリケーション8は、OLAPデータソースからのデータに接続し、それについてのクエリを行い、それを使用することができるアプリケーションプログラムを含む。例えば、OLAPクライアントアプリケーション8は、ネットワーク10を介してサーバコンピュータ12Bに接続することができる。サーバコンピュータ12B上で実行されるデータベースソフトウェアを介して、OLAPクライアントアプリケーション8は、データソース16に対するクエリを発行することができる。次いでサーバコンピュータ12Bは、OLAPクライアントアプリケーション8からのクエリを受信し、それに応答するよう動作することができる。
【0023】
以下でより詳しく説明するように、OLAPクライアントアプリケーション8は、ワークブック6に対するクエリを発行することもできる。この機能を実行可能にするために、スプレッドシートクライアントアプリケーション4は、ファイルサーバコンピュータ12Cによって維持され、サーバコンピュータ12Aからアクセス可能なリポジトリ14にワークブック6を発行することができる。サーバコンピュータ12A上で実行されるスプレッドシートサーバアプリケーション13は、次いでワークブック6のデータオブジェクトを含む範囲を構文解析し、データオブジェクトをサーバデータソースとして公開することができる。次いでOLAPクライアントアプリケーション8は、サーバコンピュータ12Bによって提供されるものなど、専用のOLAPデータソースに接続するのと同じ方法で、スプレッドシートサーバアプリケーション12Aによって公開されたデータソースに接続することができる。スプレッドシートクライアントアプリケーション4は、OLAPクライアントアプリケーション8と同じ方法でデータソースからのデータの消費者として働き得ることを理解されたい。また、コンピュータ2は、他のタイプのデータベースからのデータについてクエリを行い、それを消費するための追加のクライアントアプリケーションを実行するよう動作することができることも理解されたい。代替実施形態において、上述したコンピュータ2の機能を2つのコンピューティング装置に分けることができることもさらに理解されたい。例えば、1つのコンピューティング装置は、ワークブック6を発行するためにスプレッドシートアプリケーション4を実行するよう動作可能とすることができ、他のコンピューティング装置は、データを消費するためにクライアントアプリケーションを実行するよう動作可能とすることができる。
【0024】
本明細書で使用する場合、「データソース」および「サーバデータソース」という用語は、特にクエリを実行することができるデータベースを指す。この定義は、リレーショナルデータベース(SQLデータベースなど)、階層型データベース、多次元データベース(OLAPキューブなど)、またはリレーショナルデータベースおよび多次元データベースの態様を結合したデータベース(UDMなど)を含む。この定義は、Webサービスを介してクエリを行うことができるデータベースも含む。また、本明細書で使用する場合、「データソースクエリ」という用語は、SQLクエリなど、データソースを対象とするクエリを意味する。
【0025】
スプレッドシートサーバアプリケーション13は、表示画面の使用無し(ヘッドレス)で実行することができるサーバベースのアプリケーションプログラムを含む。スプレッドシートサーバアプリケーション13は、サーバコンピュータ上でスプレッドシートクライアントアプリケーション4の機能の多くを実行するよう動作することができる。例えば、スプレッドシートサーバアプリケーション13は、ワークブック6をロードし、計算することができる。本明細書に記載するように、スプレッドシートサーバアプリケーション13は、ネットワーク10を介して互換性のあるクライアントにワークブック6内の範囲を公開する機能も提供する。スプレッドシートクライアントアプリケーション4およびスプレッドシートサーバアプリケーション13によって実行される様々な機能に関する追加の詳細については、図2〜5を参照して後述する。
【0026】
次に図2を参照して、本発明の様々な実施形態において使用されるコンピュータ2のコンピュータアーキテクチャ例について説明する。図2に示したコンピュータアーキテクチャは、中央処理ユニット5(「CPU」)と、ランダムアクセスメモリ9(「RAM」)および読み取り専用メモリ(「ROM」)11を含むシステムメモリ7と、メモリをCPU5に結合するシステムバス12とを含む従来のデスクトップまたはラップトップコンピュータを示している。基本入出力システムは、例えば起動中など、コンピュータ内の要素間での情報の転送を助ける基本ルーチンを含み、ROM11に格納されている。コンピュータ2は、以下で詳述するように、オペレーティングシステム18、アプリケーションプログラム、および他のプログラムモジュールを格納する大容量記憶装置24をさらに含む。
【0027】
大容量記憶装置24は、バス12に接続される大容量ストレージコントローラ(図示せず)を介してCPU5に接続される。大容量記憶装置24およびその関連のコンピュータ読取可能な媒体は、コンピュータ2の不揮発性記憶装置を提供する。本明細書に含まれるコンピュータ読取可能な媒体の説明は、ハードディスクやCD−ROMドライブなどの大容量記憶装置を指すが、コンピュータ読取可能な媒体はコンピュータ2によってアクセスできる使用可能な任意の媒体とすることができることを当業者であれば理解されたい。
【0028】
コンピュータ読取可能な媒体は、それだけには限定されないが一例として、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、他のデータなど、情報を記憶するための任意の方法または技術で実施される揮発性および不揮発性の取外式および固定式の媒体がある。コンピュータ記憶媒体には、それだけには限定されないが、RAM、ROM、EPROM、EEPROM、フラッシュメモリまたは他の半導体メモリ技術、CD−ROM、デジタル多用途ディスク(DVD)または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、または所望の情報の格納に使用でき、コンピュータ2からアクセスできる他の任意の媒体などがある。
【0029】
本発明の様々な実施形態によれば、コンピュータ2は、インターネットなどのネットワーク10を介したリモートコンピュータへの論理接続を使用してネットワーク式環境で動作することができる。コンピュータ2は、バス12に接続されるネットワークインターフェイスユニット20を介してネットワーク10に接続することができる。ネットワークインターフェイスユニット20は、他のタイプのネットワークおよびリモートコンピュータシステムに接続するために使用することもできることを理解されたい。コンピュータ2は、キーボード、マウス、電子スタイラス(図2には示していない)を含む他のいくつかの装置からの入力を受信し、処理する入力/出力コントローラ22も含むことができる。同様に、入力/出力コントローラ22は、表示画面、プリンタ、他のタイプの出力装置への出力を提供することもできる。
【0030】
上記で概説したように、ワシントン州レドモンドのMICROSOFT社のWINDOWS(登録商標)XPオペレーティングシステムなど、ネットワーク式パーソナルコンピュータの動作を制御するのに適したオペレーティングシステム18を含めて、いくつかのプログラムモジュールおよびデータファイルをコンピュータ2の大容量記憶装置24およびRAM9に格納することができる。大容量記憶装置24およびRAM9は、1つまたは複数のプログラムモジュールを格納することもできる。特に、大容量記憶装置24およびRAM9は、上述したように、スプレッドシートクライアントアプリケーション4およびOLAPクライアントアプリケーション8を格納することができる。大容量記憶装置24およびRAM9は、スプレッドシートクライアントアプリケーション4によって作成されるワークブック6を格納することもできる。
【0031】
本発明の一実施形態によれば、スプレッドシートアプリケーションプログラム4は、ワークブック内に含まれるデータオブジェクトごとにメタデータ26を生成するよう動作可能でもある。メタデータ26は、スプレッドシートクライアントアプリケーション4によって自動的に生成したり、ユーザによって手動で作成したりすることができる。メタデータ26は、ワークブック6内に格納され、ワークブックとともに保存することができる。メタデータ26は、サーバデータソースとしてのワークブック内のデータオブジェクトにアクセスする要求を受信し、それに応答する際に、サーバコンピュータ12Aによって使用することができる。一例として、スプレッドシートアプリケーションプログラム10は、「ZIP CODE」という名称のワークブック内のあるフィールドのメタデータ26を作成することができる。メタデータ26は、フィールドの名前を示し、フィールドのデータ型を数字として設定することができる。また、メタデータ26は、フィールドのデフォルトの集約が「合計」であることを示すこともできる。このプロセスは、データソースが作成されたとき、データソースが発行されたとき、またはメタデータを生成する旨のユーザの要求に応答して、スプレッドシートアプリケーションプログラム4によって自動的に実行することができる。
【0032】
本発明の実施形態において、スプレッドシートクライアントアプリケーションプログラム4は、スプレッドシートアプリケーションプログラム4によって作成される、ワークブック6に含まれるデータオブジェクトのメタデータ26をユ―ザが編集することができる機能を提供するよう動作することができることを理解されたい。例えば、上記の例を使用して、ユーザは、郵便番号の合計を生成するのは不適切であると考える可能性がある。したがってユーザは、スプレッドシートクライアントアプリケーション4によって提供される機能を使用して、「ZIP CODE」フィールドのデフォルトの集約が合計ではなく、数であることを示すようにメタデータ26を編集することができる。次いで変更されたメタデータ26をワークブック6まで持続し、サーバコンピュータ12Aに発行することができる。このように、サーバコンピュータ12Aは、このフィールドに含まれているデータのデータソース要求によりよく応答することができる。スプレッドシートクライアントアプリケーション4によってワークブック内のデータオブジェクトのために生成されたメタデータ26を編集するユーザインターフェイス例については、図4を参照して以下で詳述する。
【0033】
サーバコンピュータ12A〜12Cは、図2および上記で示した従来のコンピューティング構成要素の多くを備えることができることを理解されたい。さらに、サーバコンピュータ12Aは、スプレッドシートサーバアプリケーション13を格納し、実行するよう動作可能とすることができる。ファイルサーバコンピュータ12Cは、ワークブック6など、リポジトリ14に格納されたファイルの要求を受信し、それに応答するファイルサーバアプリケーション28を格納し、実行するよう動作可能とすることができる。サーバコンピュータ12A〜12Cは、図2に示していないが当業者には知られている他の従来の構成要素を含むことができることを理解されたい。
【0034】
次に図3を参照して、ワークブック範囲をサーバデータソースとして発行するためにスプレッドシートクライアントアプリケーションプログラム4によって実行されるプロセスを示すルーチン例300について説明する。本明細書に示すルーチンの説明を読むと、本発明の様々な実施形態の論理操作は、(1)コンピューティングシステム上で稼働するコンピュータ実施動作またはプログラムモジュールのシーケンス、および/または(2)コンピューティングシステム内の相互接続されたマシン論理回路または回路モジュールとして実装されることを理解されたい。この実装は、選択の問題であり、本発明を実施するコンピューティングシステムの性能要件に依存する。したがって、図3および図5に示した論理操作、および本明細書に記載した本発明の実施形態の構成は、操作、構造的装置、動作、またはモジュールと様々に呼ばれる。これらの操作、構造的装置、動作、およびモジュールは、本明細書に記載した特許請求の範囲内に記載した本発明の意図および範囲から逸脱することなく、ソフトウェア、ファームウェア、専用デジタルロジック、およびそれらの任意の組み合わせで実施できることを当業者であれば理解されよう。
【0035】
ルーチン300は、操作302で開始し、ユ―ザはスプレッドシートクライアントアプリケーション4を使用してワークブック6を作成する。特に、本明細書に記載するように、ユーザは、スプレッドシートクライアントアプリケーション4によって提供される様々な機能を使用して、セル、ピボットテーブル、DOE、リスト、データベース、クエリテーブル、および他のデータオブジェクトの範囲を含むワークブック内のデータオブジェクトを作成することができる。また、ユーザは、手動でデータソース16のワークブック6にデータを入力したり、それに対するクエリを作成したりすることもできる。ワークブック6を作成するためにスプレッドシートクライアントアプリケーション4内で使用できる様々な機能および方法は、実質的に無限であり、当業者にはよく知られている。
【0036】
ルーチン300は操作302から操作304に進み、スプレッドシートクライアントアプリケーション4は、ワークブック6にデータソースとしてアクセスする要求に応答してサーバアプリケーション13によって使用するためのメタデータ26を生成する。特に、スプレッドシートクライアントアプリケーション4は、ワークブック6内に含まれる様々なデータソースを分析して、ワークブック6内の様々なデータソースの記述に使用できるデータを識別することができる。例えば、リレーショナルデータソースについては、スプレッドシートクライアントアプリケーション4は、列の名前、およびワークブック6とともに含まれるデータソースの様々なデータ型を識別することができる。多次元のデータソースについては、スプレッドシートクライアントアプリケーション4は、様々なデータソースの測定値、階層、およびデフォルトの集約を識別することができる。
【0037】
これらのプロパティの値は、スプレッドシートクライアントアプリケーション4によって知的な方法で設定することもできる。例えば、文字列データフィールドについては、スプレッドシートクライアントアプリケーション4は、デフォルトの集約を数として示すことができる。数値データフィールドについては、スプレッドシートクライアントアプリケーション4は、デフォルトの集約を合計となるように設定することができる。ワークブック6内のメタデータを識別したり、メタデータのプロパティを設定したりする他のタイプの知的な決定を、スプレッドシートクライアントアプリケーション4によって行うことができる。
【0038】
ルーチン300は操作304から操作306に進み、スプレッドシートクライアントアプリケーション4は、ユーザがスプレッドシートクライアントアプリケーション4によって生成されたメタデータを編集する旨の要求を行ったかどうかを決定する。上記で概説したように、スプレッドシートクライアントアプリケーション4は、生成されたメタデータを編集するユーザインターフェイスを提供することができる。これは、例えば、ワークブック6内のメタデータを識別し、メタデータに様々なプロパティを設定するときに、スプレッドシートクライアントアプリケーション4によって行われた知的な決定をユーザがオーバーライドできるようにするのに有用となり得る。
【0039】
操作306で、スプレッドシートクライアントアプリケーション4がメタデータを編集する旨の要求が受信されたと決定した場合、ルーチン300は操作308に分岐する。操作308では、スプレッドシートクライアントアプリケーション4は、編集されたメタデータをユーザから受信する。ユーザがメタデータを編集できるユーザインターフェイスの例については、図4を参照して以下で詳述する。ルーチン300は、操作308から操作310に進む。
【0040】
操作306で、スプレッドシートクライアントアプリケーション4がメタデータを編集する旨の要求は受信されていないと決定した場合、ルーチン300は操作310に分岐する。操作310で、スプレッドシートクライアントアプリケーション4によって生成され、ユーザによって潜在的に編集されたメタデータ26は、ワークブック6とともに保存される。ワークブック6の保存は、自動的に、またはユーザ要求に応答して行うことができる。
【0041】
ルーチン300は操作310から操作312に進み、メタデータ26を含むワークブック6がスプレッドシートサーバアプリケーション13に発行される。ワークブック6の発行は、ユーザコマンドに応答して、または自動的に行うことができる。例えば、ワークブック6の発行は、サーバコンピュータ12Aにスプレッドシートをアップロードし、またはスプレッドシートをプログラムに基づいて生成し、それをサーバアプリケーションプログラムインターフェイス(「API」)を介してサーバコンピュータ12Aに送信することを含むことができる。ワークブック6がスプレッドシートサーバアプリケーション13に発行されると、ワークブック6はリポジトリ14に格納される。また、スプレッドシートサーバアプリケーション13にはワークブック6の存在も通知され、次いでワークブック内に含まれる様々なデータオブジェクトがサーバデータソースとして公開され得る。ユーザは、スプレッドシートサーバアプリケーション13によってワークブック6内の様々なデータオブジェクトのうちのどれがデータソースとして公開されるかを指定することができることを理解されたい。あるいは、ワークブック6内のすべてのデータオブジェクトをデータオブジェクトとして公開することができ、またはユーザは、ワークブック6内のどのデータオブジェクトもデータソースとして公開されないよう指示することができる。
【0042】
ワークブック6がリポジトリ14に伝達され、スプレッドシートサーバアプリケーション13によって分析されると、OLAPクライアントアプリケーション8やスプレッドシートクライアントアプリケーション4などのデータベースクライアントアプリケーションを使用して、データソースとしてのワークブック6の内容についてのクエリを行うことができる。ワークブック6の内容をデータソースとして公開し、データソースクエリ要求を受信し、応答するためにスプレッドシートサーバアプリケーション13によって実行される様々な機能に関するこれ以上の詳細については、図5を参照して以下で詳述する。ルーチン300は、操作312から操作314に進み、終了する。
【0043】
次に図4を参照して、スプレッドシートクライアントアプリケーション4によって生成された、ワークブック6内に含まれる様々なデータソースのメタデータをユーザが編集することができるユーザインターフェイス例について説明する。図4は、メタデータを編集するいくつかのユーザインターフェイス構成要素を含むユーザインターフェイスウィンドウ30を示している。特に、ワークブック6内に含まれるデータソースに使用可能なフィールド34A〜34Nのそれぞれを列挙するリストボックス32が提供されている。スプレッドシートクライアントアプリケーション4によって識別される様々なフィールド間の関係を示すために、様々なフィールド34A〜34N間の関係をリストボックス32内に示すことができる。例えば、図4に示すように、時刻、年、月、データのフィールドを相互にインデントして、様々なフィールド間の階層を示すことができる。
【0044】
リストボックス32に示したフィールド34A〜34Nの順序および階層をユーザが配列できるようにするため、いくつかのユーザインターフェイスボタン36A〜36Fを提供することもできる。例えば、ユーザインターフェイスボタン36A〜36Dによって、ユーザは、様々なフィールドをそれぞれ上、下、右、左に配列することができる。ユーザインターフェイスボタン36Eを使用してフィールド34A〜34Nのうちの1つをコピーすることができ、ユーザインターフェイスボタン36Fを使用して新しいデータフィールドを作成することができる。
【0045】
図4にも示すように、リストボックス32で識別されるフィールドのうちの1つをユーザによって選択し、そのフィールドのプロパティをユーザインターフェイスウィンドウ30に示すことができる。例えば、図4に示すように、郵便番号を表すフィールド34Nが選択されている。したがって、テキスト38を使用してフィールド名が表示される。スプレッドシートクライアントアプリケーション4によって郵便番号フィールドに割り当てられたデータ型および集約も示されている。例えば、データ型のプロパティを数字から文字列に変更するためのドロップダウンメニュー40Aを提供することができる。同様に、ユーザが集約フィールドの値を合計から数に変更できるようにするためのドロップダウンメニュー40Bを提供することもできる。図4に示し、本明細書に記載したもの以外の他のタイプの編集操作もユーザインターフェイスウィンドウ30を介して可能であることを理解されたい。ユーザが編集を完了すると、変更を維持するためのボタン42、または変更をキャンセルするためのボタン44を選択することができる。
【0046】
次に図5を参照して、データソースとしてのワークブックの範囲の要求を受信し、それに応答するためのスプレッドシートサーバアプリケーション13の操作を示すルーチン例500について説明する。ルーチン500は操作502で開始し、スプレッドシートサーバアプリケーション13は、リポジトリ14内に含まれる様々な範囲のワークブックをサーバデータソースとして公開する。本発明の一実施形態によれば、参照により本明細書に特に含まれている同時出願した「Method,System,and Apparatus for Discovering and Connecting to Data Sources」という名称の米国特許出願(代理人整理番号第60001.0338US01号)(例えば、特許文献1参照)に記載したものなど、データソースは、データ接続マネージャを介して公開される。あるいは、リポジトリ14内に格納されているワークブック内に含まれているデータソースは、UDMなど、他のタイプの分析サーバインターフェイスを使用して公開することができる。スプレッドシートサーバアプリケーション13が様々なデータソースを公開すると、OLAPクライアントアプリケーション8やスプレッドシートクライアントアプリケーション4などのクライアントアプリケーションは、ソースを発見し、様々なデータソースに対してクエリを行う要求を発行することができる。
【0047】
ルーチン500は操作502から操作504に進み、スプレッドシートサーバアプリケーション13は、サーバデータソースとしてのワークブックに接続する旨の要求を受信する。例えば、操作506で、スプレッドシートサーバアプリケーション13は、ワークブックの範囲内に含まれるデータオブジェクトに対するネイティブのクエリを受信することができる。例えば、OLAPクライアントアプリケーションは、スプレッドシートサーバアプリケーション13にネイティブOLAPクエリを発行することができる。あるいは、ODB、ODBC、XML−A、およびSQLのクエリなど、他のタイプのクエリをスプレッドシートサーバアプリケーション13に対して発行することができる。当業者に知られているデータベースに対してクエリを行う他のタイプの標準を使用することもできる。
【0048】
操作508で、スプレッドシートサーバアプリケーション13は、クエリの対象となったデータソースを含むワークブック6をロードする。ワークブック6がスプレッドシートサーバアプリケーション13によってロードされると、ルーチン500は操作510に進み、スプレッドシートサーバアプリケーション13は、ワークブック6が別のデータソースへの参照を含んでいるかどうかを決定する。例えば、上記で概説したように、ワークブックは、データソース16などのデータソースへの参照を含むことができる。
【0049】
ワークブック6が別のデータソースへの参照を含んでいる場合、ルーチン500は操作512に分岐し、スプレッドシートサーバアプリケーション13は、データソース16に対して、ワークブック6の計算に必要な任意のデータについてのクエリを行う。このデータがスプレッドシートサーバアプリケーション13によって受信されると、ワークブック6は受信データについて更新される。
【0050】
操作510で、ワークブック6が別のデータソースへの参照を含んでいないと決定された場合、ルーチン500は操作514に進む。操作514で、スプレッドシートサーバアプリケーション13は、ワークブック6の内容を再計算する。ワークブックの内容の再計算は「大きい付加価値」となることを理解されよう。「大きい付加価値」によって、サ―バデータソースにおけるスプレッドシートの計算が可能になる。ルーチン500は操作514から操作516に進み、スプレッドシートサーバアプリケーション13は、再計算されたワークブックのデータベース表現(database representation)を生成する。特に、リレーショナルデータベースやOLAPキューブなどの一時的なデータベース表現がスプレッドシートサーバアプリケーション13によって生成される。データベース表現は、識別されたデータソースにわたって要求されたクエリを実行するため、一時的に生成される。
【0051】
要求されたワークブックのデータベース表現が生成されると、ルーチン500は操作518に進み、スプレッドシートサーバアプリケーション13は、再計算されたワークブックのデータベース表現上で要求されたクエリを実行する。クエリの実行に応答して、クライアントアプリケーションから受信された最初のクエリを満たすクエリ結果が生成される。ルーチン500は操作518から操作520に進み、スプレッドシートサーバアプリケーション13は、元のクエリ要求に識別されたクエリ結果で応答する。ルーチン500は、操作520から操作522に進み、終了する。
【0052】
上記に基づいて、本発明の様々な実施形態はワークブック内の範囲をサーバデータソースとして公開し、使用するための方法、システム、装置、およびコンピュータ読取可能な媒体を含むことを理解されたい。上記の仕様、例、およびデータは、製造の完全な説明および本発明の構成の使用を提供している。本発明の多くの実施形態は本発明の意図および範囲から逸脱することなく作成することができるので、本発明は特許請求の範囲にある。
【図面の簡単な説明】
【0053】
【図1】本発明の様々な実施形態において使用され、それによって提供されるいくつかのコンピュータシステムの態様を示すコンピュータネットワーク図である。
【図2】本発明の様々な実施形態において使用され、それによって提供されるクライアントコンピュータシステムの態様を示すコンピュータシステムアーキテクチャ図である。
【図3】本発明の一実施形態によるワークブック範囲をサーバデータソースとして発行するプロセスの態様を示すフロー図である。
【図4】ユーザがワークブックのある範囲内のデータオブジェクトに関連付けられているメタデータを編集することができる機能を提供する本発明の一態様を示す画面図である。
【図5】本発明の一実施形態によるサーバデータソースとしてのワークブック範囲の要求を受信し、それに応答するプロセスの態様を示すフロー図である。
【符号の説明】
【0054】
2 コンピュータ
4 スプレッドシートクライアントアプリケーション
5 中央処理装置
6 ワークブック
7 システムメモリ
8 OLAPクライアントアプリケーション
9 ランダムアクセスメモリ
10 ネットワーク
11 読み取り専用メモリ
12A サーバコンピュータ12B サーバコンピュータ
12C ファイルサーバコンピュータ
13 スプレッドシートサーバアプリケーション
14 ワークブックリポジトリ
16 データソース
18 オペレーティングシステム
20 ネットワークインターフェイスユニット
22 入力/出力コントローラ
24 大容量記憶装置
26 メタデータ
28 ファイルサーバアプリケーション

【特許請求の範囲】
【請求項1】
ワークブックの内容をサーバデータソースとして公開する方法であって、
ワークブック内の所定の範囲を対象とするデータベースクエリを受信するステップと、
前記クエリに応答して
前記所定の範囲を再計算するステップと、
前記再計算された範囲のデータベース表現を生成するステップと、
前記再計算された範囲の前記データベース表現上で前記要求されたクエリを実行してクエリ結果を取得するステップと、
前記クエリ結果を前記データベースクエリに対する応答として送信するステップと
を備えたことを特徴とする方法。
【請求項2】
前記ワークブックがデータソースへの参照を含むかどうかを決定するステップと、
前記ワークブックがデータソースへの参照を含むとの決定に応答して、前記ワークブックの計算に必要な前記データを前記データソースから取り出すステップと、
前記データソースから取り出した前記データを使用して前記所定の範囲を再計算するステップと
をさらに備えたことを特徴とする請求項1に記載の方法。
【請求項3】
前記データベースクエリは、OLAPクライアントアプリケーションから受信することを特徴とする請求項2に記載の方法。
【請求項4】
コンピュータによって実行されると、請求項1に記載の方法を前記コンピュータに実行させるコンピュータ実行可能命令を格納することを特徴とするコンピュータ読取可能な媒体。
【請求項5】
請求項1に記載の方法を実行することができることを特徴とするコンピュータ制御装置。
【請求項6】
ワークブックの内容をサーバデータソースとして公開する方法であって
1つまたは複数のデータオブジェクトを含む所定の範囲を格納するワークブックを作成する機能を提供するステップと、
前記1つまたは複数のデータオブジェクトのメタデータであって、サーバデータソースとしての前記1つまたは複数のデータオブジェクトの要求に応答してサーバコンピュータによって使用するためのメタデータを生成するステップと、
前記ワークブックおよび前記メタデータを前記サーバコンピュータに発行し、よって前記データオブジェクトを前記サーバコンピュータでサーバデータソースとして公開するステップと
を備えたことを特徴とする方法。
【請求項7】
ユーザから前記1つまたは複数のオブジェクトの前記メタデータを編集する旨の要求を受信するステップと、
前記メタデータを編集する旨の要求に応答して、ユーザが前記メタデータを編集できる機能を提供するステップと
をさらに備えたことを特徴とする請求項6に記載の方法。
【請求項8】
コンピュータによって実行されると、請求項6に記載の方法を前記コンピュータに実行させるコンピュータ実行可能命令を格納することを特徴とするコンピュータ読取可能な媒体。
【請求項9】
請求項6に記載の方法を実行することができることを特徴とするコンピュータ制御装置。
【請求項10】
ワークブック内の所定の範囲をサーバデータソースとして公開し、使用する方法であって
1つまたは複数のデータオブジェクトを含む所定の範囲を格納するワークブックを作成するステップと、
前記1つまたは複数のデータオブジェクトのメタデータであって、サーバデータソースとしての前記1つまたは複数のデータオブジェクトの要求に応答してサーバコンピュータによって使用するためのメタデータを生成するステップと、
前記ワークブックおよび前記メタデータを前記サーバコンピュータに発行するステップと、
前記データオブジェクトをサーバデータソースとして公開するステップと、
前記データオブジェクトのうちの1つの中に含まれるデータを参照するデータソースクエリを前記サーバコンピュータで受信するステップと、
前記クエリの受信に応答して、前記ワークブックをロードし、前記データオブジェクトの値の計算を含め、前記ワークブックを計算するステップと、
前記メタデータを使用して前記データオブジェクトのデータベース表現を生成するステップと、
前記データオブジェクトの前記データベース表現上で前記要求されたクエリを実行してクエリ結果を作成するステップと、
前記クエリに対し前記クエリ結果をもって応答するステップと
を備えたことを特徴とする方法。
【請求項11】
前記ワークブックを計算するステップの前に、
前記ワークブックがデータソースへの参照を含むかどうかを決定するステップと、
前記ワークブックがデータソースへの参照を含むとの決定に応答して、前記ワークブックの計算に必要なデータを前記データソースから取り出すステップと、
前記データソースから取り出した前記データを考慮して、前記データオブジェクトの値の計算も含めて、前記ワークブックを計算するステップと
をさらに含むことを特徴とする請求項10に記載の方法。
【請求項12】
コンピュータによって実行されると、請求項10に記載の方法を前記コンピュータに実行させるコンピュータ実行可能命令を格納することを特徴とするコンピュータ読取可能な媒体。
【請求項13】
請求項10に記載の方法を実行することができることを特徴とするコンピュータ制御装置。
【請求項14】
ワークブック内の所定の範囲をサーバデータソースとして公開し、使用するシステムであって
1つまたは複数のデータオブジェクトを含む1つまたは複数の所定の範囲を有するワークブックを作成するため、前記ワークブックをサーバコンピュータに発行するようさらに動作することができるスプレッドシートアプリケーションプログラムを実行するよう動作可能なクライアントコンピュータと、
前記ワークブックに含まれる前記データオブジェクトをサーバデータソースとして公開し、前記サーバデータソースを対象とするクエリ要求を受信して、該要求に応答するため、サーバプログラムを実行するよう動作可能なサーバコンピュータと
を備えたことを特徴とするシステム。
【請求項15】
前記スプレッドシートアプリケーションプログラムは、前記1つまたは複数のデータオブジェクトのメタデータを生成し、前記ワークブック内に格納するようさらに動作可能であり、前記メタデータは、サーバデータソースとしての前記1つまたは複数のデータオブジェクトの要求に応答して前記サーバコンピュータによる使用に供されるものであることを特徴とする請求項14に記載のシステム。
【請求項16】
前記スプレッドシートアプリケーションプログラムは、ユーザが前記メタデータを編集できる機能を提供するようさらに動作することができることを特徴とする請求項15に記載のシステム。
【請求項17】
サーバデータソースに対するクエリを発行するためにアプリケーションプログラムを実行するよう動作することができる第2のクライアントコンピュータをさらに備え、前記サーバプログラムは前記第2のクライアントコンピュータから前記サーバデータソースへのデータベースクエリを受信し、該受信に応答するようさらに動作することができることを特徴とする請求項16に記載のシステム。
【請求項18】
前記第2のクライアントコンピュータからのデータベースクエリに応答するステップは、
前記ワークブックを再計算するステップと、
前記再計算されたワークブックのデータベース表現を生成するステップと、
前記再計算されたワークブックの前記データベース表現上で前記要求されたクエリを実行してクエリ結果を取得するステップと、
前記データベースクエリへの応答として前記第2のクライアントコンピュータに前記クエリ結果を送信するステップと
を含むことを特徴とする請求項17に記載のシステム。
【請求項19】
前記第2のクライアントコンピュータからのデータベースクエリに応答するステップは、
前記ワークブックがデータソースへの参照を含むかどうかを決定するステップと、
前記ワークブックがデータソースへの参照を含むとの決定に応答して、前記ワークブックの計算に必要な前記データを前記データソースから取り出すステップと、
前記データソースから取り出した前記データを使用して前記ワークブックを再計算するステップと
をさらに含むことを特徴とする請求項18に記載のシステム。
【請求項20】
前記第2のクライアントコンピュータ上で実行される前記アプリケーションは、OLAPクライアントアプリケーションを含むことを特徴とする請求項19に記載のシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate