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