JP4964881B2 - ユーザ装置上の多次元データベースの部分的キャッシングおよび修正 - Google Patents

ユーザ装置上の多次元データベースの部分的キャッシングおよび修正 Download PDF

Info

Publication number
JP4964881B2
JP4964881B2 JP2008524107A JP2008524107A JP4964881B2 JP 4964881 B2 JP4964881 B2 JP 4964881B2 JP 2008524107 A JP2008524107 A JP 2008524107A JP 2008524107 A JP2008524107 A JP 2008524107A JP 4964881 B2 JP4964881 B2 JP 4964881B2
Authority
JP
Japan
Prior art keywords
data
piece
local cube
user
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008524107A
Other languages
English (en)
Other versions
JP2009512909A (ja
Inventor
ホアン ハイ
ベンカトラマーニ ラマナザン スリダラン
マーク ヤン シャオホン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2009512909A publication Critical patent/JP2009512909A/ja
Application granted granted Critical
Publication of JP4964881B2 publication Critical patent/JP4964881B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP

Description

本発明は、ユーザ装置上の多次元データベースの部分的キャッシングおよび修正に関する。
多次元データベース(キューブまたは統一次元モデル(UDM)としても知られる)は今日のビジネス世界において益々大きな役割を果たしており、一般にオンライン分析処理(OLAP)の主要なコンポーネントである。関係がフラットなデータの2次元ビューのみを提供するリレーショナルデータベースとは異なり、多次元データベースは一般に多数の抽象化次元を提供する。さらに、多次元データベースは、一般に階層および階層の組み合わせの表現を完全にサポートする。例えば、上記のデータベースが提供する多次元ビューは、生産ラインの階層、ビジネス組織の階層、顧客の階層、時間、および他の次元を複雑に組み合わせたものを表現することができる。多次元データベースは一般に、多次元のデータおよびデータ間で定義した関係に基づいて複雑な計算を行う機能性で構成される。(定義により、多次元のデータベースシステムを使用する)OLAPシステムの例には、ワシントン州レドモンド(Redmond、Washington)のマイクロソフト社(Microsoft Corporation)より入手可能なMicrosoft(登録商標) Analysis Servicesがある。
OLAPシステム(例えば、Microsoft Analysis Services)を利用するレポーティングツールは一般に、多次元データの静的なビューのみ生成するよう構成される。レポーティングツール(例えば、Microsoft(登録商標) Excelのようなアプリケーション)は、ユーザ装置(すなわち、クライアント)に存在し、ネットワークを介してクエリを多次元データベースサーバに送信し、そのサーバはビューを生成してそれをユーザ装置に返信する。このビューは、例えば依存する値が変化した際に値の再計算を実施することで、ユーザがビューと対話してレポートビューデータを試行できるような効率的メカニズムを提供しないという点で静的である。すなわち、ユーザデータはビューデータで「what−if」シナリオを展開することができない。例えば、アプリケーションはスプレッドシートまたはテーブル内にレポート(すなわち、ビュー)を提供でき、この場合、1つまたは複数のセルの値は1つまたは複数の他のセルの値に依存する(すなわち、1つまたは複数の他セルの値の関数である)。
データ片に対する変更の影響を試行するため、ユーザはアプリケーション内で変更を行い、それをサーバに送信しなければならないだろう。サーバはその後前記データ片を伴うサーバ側の計算を多次元データベース内で実施し、その変更をユーザに折り返し報告する。前記変更は、それがデータベース内に存続し、従って前記変更はデータベースを共有する他のユーザに強制されるという点で永続的である。さらに、ユーザはユーザ装置とサーバとの間の通信、およびサーバが計算する時間の間待機しなければならない。また、OLAPのユーザ数が増加すると、サーバを伴う上記通信および計算の数が増加し、このことはネットワーク上の輻輳の原因となりうる。この輻輳はさらに、例えばクエリへの応答の遅延原因となる。
多次元データに対する「what−if」シナリオを実装する他の選択肢は、レポーティングツール自身を構成して、依存データ間で必要な計算を実施することである。しかしながら、レポーティングツールは本質的に、提示するデータを関連付ける能力が非常に未熟である。すなわち、レポーティングツールは一般に、比較的フラットなデータの2次元ビューを定義および表示できるだけである。従って、多次元データベースのデータ間の複雑な関係を、レポーティングツールが提供するデータのビューにマッピングすることは、一般に不可能ではないにしても極度に困難な作業である。さらに、レポーティングツールは一般に、多次元データベースのデータ変更に対して必要な、頻繁で複雑な多次元計算を実施するようには構成されていない。加えて、これらの複雑な計算の一部は、(例えば、データがレポートに表示されていないため)レポートを実行中のユーザ装置に存在しないデータへアクセスすることを伴う。上記データはサーバから取り出さねばならず、そのため、レポーティングツールを用いた多次元計算の実施がさらに困難かつ時間のかかるものとなる。
このように、現在利用可能なレポーティングツールは、ユーザが、多次元データベースのビューにおいて、ビュー内でデータを変更することにより生ずる影響を試行可能にするには不適切である。
ここでは本発明の態様に対する例示的なコンテキストを簡潔な形で提供する。ここでは特許請求された対象の範囲を制限するよう意図しておらず、特許請求された対象の主要なおよび/または本質的な特徴を識別するようにも意図していない。本発明のこれらおよび他の態様は、後述する発明を実施するための最良の形態でより完全に説明する。
(例えば、OLAPシステムの一部として)多次元データベースのユーザに対し、多次元データベースの少なくとも一部のコピー(すなわち、ローカルキューブ)をユーザのユーザ装置上にローカルにキャッシュすることができる。例えば、ユーザ装置は、ユーザのローカルキューブに対する要求を多次元データベースサーバ(例えば、Microsoft(登録商標) Analysis Servicesサーバ)に送信できる。ユーザのセキュリティコンテキストに基づいて、ユーザに対してサーバが生成したキューブはサブキューブ、すなわち、多次元データベースの全体に満たないキューブである可能性がある。サーバはキューブのセキュアなコピーをサーバ自身に格納し、そのキューブをユーザ装置に送信し、ユーザ装置はそのキューブをローカルに格納することができる。
ユーザはその後、多次元データベースサーバではなくローカルキューブに問い合わせることができる。さらに、ローカルキューブはデータベースからのデータだけでなく、データ片の間の依存関係を表す関数を含むことができる。ユーザ装置上のレポーティングツールを構成してローカルキューブと通信することができる。レポーティングツールはローカルキューブに問い合わせ、ローカルキューブおよびローカル(例えば揮発性)メモリからのデータを含む操作を実施することができる。例えば、ローカルキューブからのデータに対する操作は多次元の操作を含むことができ、レポーティングツールを実行するコンピュータプロセスまたはそこから発生するコンピュータプロセスの一部として実施することができる。これらの操作にローカルキューブからアクセスすることもできる。従って、ユーザは「オフライン(off−line)」で、すなわちデータベースサーバと接続せずに作業することができる。ユーザはこの機能を利用して、「what−if」シナリオをリモートサーバにアクセスする必要なく、ローカルに試行することができる。
例えば、シンクライアント側クエリレイヤを提供できる。このシンクライアント側クエリレイヤは、例えばMicrosoft(登録商標) Excelのようなフロントエンドレポーティングツールからの全てのクエリをローカルにキャッシュしたデータに向ける。従って、フロントエンドレポーティングツールは、データサーバに接続せずにユーザのニーズを満たすことができる。ユーザはレポート内に提示されたデータを自由に変更することができ、データ変更をローカルキューブに送信することができる。その後全ての関連するデータ変更(計算、集計、等)をクライアント側プロセス内部のメモリ内操作として比較的迅速に計算することができ、ユーザに伝える(例えば、表示する)ことができる。例えば、ユーザはスプレッドシートアプリケーション(例えばMicrosoft(登録商標) Excel)の最初のセルに変更を加えることができ、結果として生ずるデータベース操作をローカルに実施し、スプレッドシート内部の影響を受けたセルは、ユーザに提示したユーザインタフェースディスプレイ内で更新することができる。
ローカルキューブをユーザ装置に提供する多次元データベースサーバは、ローカルキューブにタイムスタンプを付与することができる。ローカルキューブに加えた変更の変更リストをユーザ装置上で保持し、これら変更の各々にタイムスタンプを付与することができる。ローカルキューブが多次元データベースサーバからロードされた時間を表すタイムスタンプおよび/または変更リスト内に列挙した変更のタイムスタンプに基づいて、ローカルキューブ内のデータをそのコピー元である多次元データベースサーバからのデータと同期することができる。同期更新はインクリメンタルであるか、またはローカルキューブの完全なリフレッシュを伴うことが可能であり、同期更新をユーザが開始することおよび/または予めスケジュールした時間に実施することが可能である。
本発明の実施形態では、システムが、通信ネットワークのユーザ装置上で、その通信ネットワーク上のユーザ装置とは別個の装置であるネットワーク装置上に記憶された多次元データベースの少なくとも一部を使用するために提供される。多次元データベースは通信ネットワーク上の複数のユーザ装置で共有される。システムには記憶コントローラが含まれ、ユーザ装置の不揮発性記憶媒体にある多次元データベースの少なくとも一部のコピーを格納することを制御する。
本実施形態の態様において、システムにはクエリコントローラも含まれ、多次元データベースの少なくとも一部に含まれる情報片に対する要求をユーザ装置上で実行するアプリケーションから受信し、前記情報片を不揮発性記憶媒体上のコピーから取得することを制御する。
本実施形態の別態様において、多次元データベースの少なくとも一部には、少なくとも第1の情報片が含まれ、当該第1の情報片は前記少なくとも一部に含まれる少なくとも第2の情報片の関数であり、記憶コントローラはコピー内の前記関数を不揮発性記憶媒体に格納することを制御するよう動作する。本態様において、システムには関数コントローラがさらに含まれ、ユーザ装置上の揮発性メモリにおける第2情報片の値を変更するアプリケーションに応じて、揮発性メモリ内の第1の情報片の関数を実施する。
本実施形態の別態様において、関数コントローラは、関数の実施結果から得られる第1情報片の値を表示することができるように、関数の実施結果をアプリケーションのユーザインタフェースディスプレイに通信するように動作する。
本実施形態の別態様において、変更は、多次元データベースの少なくとも一部のコピーに含まれる1つまたは複数の情報片に対する、揮発性メモリ内で行った複数の変更の1つである。本態様において、このシステムには変更リストコントローラがさらに含まれ、変更を複数の変更を表す変更リストに追加することを制御する。その変更リストは揮発性メモリ内に存在する。
本実施形態のさらなる別態様において、記憶コントローラは揮発性メモリからの変更リストを適用することで、不揮発性記憶媒体上にある多次元データベースの少なくとも一部のコピーの更新を制御するよう動作する。
本実施形態の別態様において、記憶コントローラは不揮発性記憶媒体上の変更リストの記憶を制御するよう動作する。
本実施形態の別態様において、システムにはサーバインタフェースコントローラがさらに含まれ、変更リストをユーザ装置からネットワーク装置への送信することを制御する。
本実施形態の別態様において、アプリケーションは多次元データベースの少なくとも一部のコピーからレポートを生成するよう動作する。
本実施形態のさらなる別態様において、システムにはサーバインタフェースコントローラがさらに含まれ、多次元データベースの少なくとも一部のコピーに対する要求をネットワーク装置に送信し、多次元データベースの少なくとも一部を受信するよう動作する。
本実施形態の別態様において、システムにはサーバインタフェースコントローラがさらに含まれ、多次元データベースの少なくとも一部に対する1つまたは複数の変更を示す少なくとも1つの通信を、ネットワーク装置から受信するよう動作する。このサーバインタフェースコントローラは、前記の少なくとも1つの通信に応じて、多次元データベースの少なくとも一部のローカルコピーを多次元データベースの少なくとも一部と同期するよう動作する。
本発明の別実施形態において、ネットワーク装置上に格納した多次元データベースの少なくとも一部が、通信ネットワーク上のネットワーク装置とは別個の装置であるユーザ装置によって使用される。多次元データベースは、通信ネットワーク上の複数のユーザ装置により共有される。多次元データベースの少なくとも一部のコピーは、ユーザ装置上の不揮発性記憶媒体に記憶される。
本実施形態の態様において、多次元データベースの少なくとも一部に含まれる情報片に対する要求をユーザ装置上で実行しているアプリケーションから受信し、前記情報片を不揮発性記憶媒体上のコピーから取得する。
本実施形態の別態様において、多次元データベースの少なくとも一部には少なくとも第1の情報片が含まれ、当該第1の情報片は前記の少なくとも一部に含まれる少なくとも第2の情報片の関数である。本態様において、コピー内の前記関数を不揮発性記憶媒体に格納し、アプリケーションがユーザ装置上の揮発性メモリにおける第2情報片の値を変更することに応じて、前記関数が揮発性メモリの第1の情報片で実施される。
本実施形態の別態様において、関数の実施結果をユーザ装置のユーザに表示する。
本実施形態のさらなる別態様において、変更は、多次元データベースの少なくとも一部のコピーに含まれる1つまたは複数の情報片に対する、揮発性メモリ内で行った複数の変更の1つである。本態様において、変更が複数の変更を表す変更リストに加えられ、変更リストは揮発性メモリに存在する。
本実施形態の別態様において、揮発性メモリからの変更リストを適用することで、不揮発性記憶媒体上の多次元データベースの少なくとも一部のコピーが更新される。
本実施形態の別態様において、変更リストを不揮発性記憶媒体に格納する。
本実施形態の別態様において、変更リストをユーザ装置からネットワーク装置に送信する。
本実施形態のさらなる別態様において、多次元データベースの少なくとも一部のコピーからレポートを生成する。
本実施形態の別態様において、多次元データベースの少なくとも一部のコピーに対する要求をユーザ装置からネットワーク装置に送信し、前記の多次元データベースの少なくとも一部のコピーをユーザ装置で受信する。
本実施形態の別態様において、多次元データベースの少なくとも一部に対する1つまたは複数の変更を示す少なくとも1つの通信を、ネットワーク装置から受信する。多次元データベースの少なくとも一部のローカルコピーを、前記少なくとも1つの通信に応じて多次元データベースの少なくとも一部と同期する。
本発明の別実施形態において、コンピュータプログラム製品を提供する。前記製品には、コンピュータ可読媒体と、そのコンピュータ可読媒体上に記憶され命令を定義するコンピュータ可読信号とが含まれる。命令は、コンピュータによる実行の結果として、コンピュータに対して前述した本発明の実施形態および/または前述したそれらの1つまたは複数の態様の方法を実施させる。
本発明の他の利点、新規な特徴、および目的、ならびにその態様および実施形態は、添付図面と関連させて考慮すると、本発明の態様と実施形態とを含む以下の本発明の詳細説明から明らかになるであろう。添付図面は概略図であり、スケール(scale)するように描かれてはいない。図面においては、様々な図面で示された同一またはほぼ同一な各コンポーネントは単一の数字で表してある。明りょうさのため、全てのコンポーネントが全ての図面においてはラベル付けされておらず、当業者に本発明を理解させるために必ずしも図示する必要がないところでは、本発明の各実施形態または各態様を構成するコンポーネントの全ては示してはいない。
本発明の幾つかの実施形態を、レポーティングツールとしてMicrosoft(登録商標) Excelに主に関連させて以下で説明するが、当然のことながら本発明はそれに限定されない。様々な他のレポーティングツールのうち任意のものを使用することができる。さらに、本発明の幾つかの実施形態をMicrosoft(登録商標) Analysis Servicesに関連させて説明するが、他の多次元データベースシステム(すなわち、OLAP)または、OLAPをシミュレートするリレーショナルデータベース(一般にはROLAPと呼ばれる)システムを使用することができ、これらも本発明の範囲内にあると意図される。
本発明のこれらおよび他の実施形態の機能および利点は、後述の例からより完全に理解されるであろう。以下の例は、本発明の更なる理解の促進と本発明の利点の説明を意図しているが、本発明の完全な範囲を裏付けるものではない。
ここで使用される際、明細書または請求項に関わらず、「備える」、「含む」、「扱う」、「内包する」、「伴う」、等の用語は非制限であり、すなわち、「〜を含むがこれらに限らない」という意味で理解されるべきである。移行句の「〜から成る」および「本質的に〜から成る」のみがそれぞれ、請求項に関して米国特許庁特許審査便覧(2004年5月、第8版、改訂2版)、2111.03条に規定されるように、制限的または半制限的な移行句であるものとする。
図1は、本発明の幾つかの実施形態に従う、多次元データベースシステムの例を示すブロック図である。システム100は単に多次元データベースシステムの例示的実施形態であって、本発明の範囲を限定することを意図していない。例えばシステム100の変形のような、上記システムの多数の他の実装のうち任意のものが可能であり、それらが本発明の範囲内にあると意図してされる。
システム100は、ユーザ装置102、104および106、通信ネットワーク108、サーバ112、多次元データベース114、他のネットワーク要素のうち任意のもの、または上述のものの任意で適切な組合せを含むことができる。
本明細書で使用される際、「ネットワーク」は、伝送媒体の1つまたは複数のセグメントで相互接続した複数のネットワーク要素からなる所定のグループである。1つまたは複数のネットワーク要素はネットワーク装置を含むことができ、伝送媒体の1つまたは複数のセグメント上の1つまたは複数のネットワーク要素に対する通信を送信および/または受信するよう構成できる。ネットワークの所定グループのメンバーであるネットワーク要素は、例えばネットワーク要素をネットワークに追加したときおよび/またはユーザがネットワークにログオンしたとき、ならびにネットワーク要素が除去されたときおよび/またはユーザがログオフしたときに、経時的に変化することができる。それぞれのセグメントは複数種類の伝送媒体のうち任意のものでよく、それには1つまたは複数の電気配線または光配線あるいは金属製および/または光ファイバ製のケーブル、(例えば、搬送波上の無線電送を用いた)大気またはこれら伝送媒体の任意の組合せが含まれる。本明細書で使用するとき、「複数」は2つ以上を意味する。当然のことながら、ネットワークは、単線、バス、無線接続、または他の種類のセグメントにより接続した2つ程度の要素で単純であってもよい。さらに、当然のことながら、ネットワークがこのアプリケーションの図面で、図面内の要素に接続されるように示されるとき、接続された要素自体がネットワークの一部である。
本明細書で使用される際、「ネットワーク装置」はネットワーク上で通信するよう動作する装置であり、ワークステーション、パーソナルコンピュータ、端末、ラップトップコンピュータ、エンドステーション、ユーザ装置、サーバ、ゲートウェイ、レジスタ、スイッチ、ルータ、ハブ、ブリッジ、ディレクトリ、トランスミッタ、レシーバ、リピータ、およびこれらの任意の組合せを含むが、これらに限定されない。本明細書で使用される際、「ユーザ装置」はユーザが通信を送信および/または受信可能なネットワーク装置であり、通信ネットワーク上の通信に対するエンドポイントとしての役割を果たすことができる。当然のことながら、ユーザ装置は全ての時点において実際にネットワークの一部になっていなくともよい。ユーザ装置は、ワークステーション、パーソナルコンピュータ(例えば、PC)、ラップトップコンピュータ、ノートブックコンピュータ、電話(例えば、固定電話または携帯電話)、ページャ、Blackberry(商標)ブランドの装置、PCS装置、携帯情報端末(PDA)、双方向無線(例えば、「ウォーキートーキー」)、その他の種類のユーザ装置、および上述の任意の適切な組合せを含むが、これらに限定されない。
ネットワーク108は様々な種類のネットワークであること、および/またはそれらを含むことができる。それらのネットワークは、ローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、広域ネットワーク(WAN)、無線ネットワーク(例えば、上述したもののうち任意のもの)、他の種類のネットワーク、または上述の任意の適切な組合せを含むが、これらに限定されない。
図1に示すように、サーバ112および多次元データベース114は同一のネットワーク装置110に存在することができる。しかし当然のことながら、サーバ112および多次元データベース114は別個の装置に存在してもよい。
サーバ112は多次元データベース114へのアクセスを制御することができ、ユーザ装置102、104および106を含む複数のユーザ装置により多次元データベース114を共有することができる。当然のことながら、3つのユーザ装置のみを図1に示しているが、システム100は数十、数百または数千のユーザ装置を含みうる。さらに、ネットワーク108上に1つ以上のサーバがあってもよい。それぞれのユーザ装置は、通信ネットワーク108を通じてサーバ112と通信を交換することで、多次元データベース114に格納したデータに対するアクセスおよび/または修正をすることができる。例えば、ユーザ装置は、サーバ112上のクエリコントローラ(例えば、サーバサイドクエリレイヤ)と通信するように構成されたクエリコントローラ(例えば、クライアントサイドクエリレイヤ)で構成され、クエリを実装することができる。さらに、ユーザ装置は、他のロジックで構成され、データに対する変更を実装して、これら変更をサーバ112に通信することができ、サーバ112は、データベース114に存在するデータに対して変更を加えることができる。
さらに、本発明の幾つかの実施形態において、サーバ112が構成され、例えばユーザ装置102、104または106のうち1つから受信したリクエストに応じて、多次元データベース114の少なくとも一部であるキューブを生成することができる。サーバ112は、要求しているユーザ装置にそのキューブを通信することができる。この通信には、キューブの生成時を表すタイムスタンプを含めることもできる。以下でより詳細に説明するように、このタイムスタンプは要求するユーザ装置によって使用され、キューブを多次元データベース114と同期させることができる。サーバ112は、ユーザまたはユーザのグループのセキュリティコンテキストに基づいてキューブを生成することができる。例えば、サーバ112はデータベース114のうち、ユーザに権限を与える部分(すなわち、スライス)のみを選択することができる。この選択は、情報片間の依存性の考慮を伴うかもしれない。さらに、幾つかの実施形態において、リクエストは、選択されるデータに対する1つまたは複数の他の制約を指定することができ、サーバ112はキューブの生成時にこれを考慮することができる。
以下でより詳細に説明するように、ユーザ装置(例えば、ユーザ装置102、104または106)は、そのローカルキューブに格納された1つまたは複数の情報片に対して加えられた変更を表す変更リストを生成するように構成されることができ、およびこの変更リストをサーバ112に伝送するように構成されることができる。サーバ112は、変更リスト内の変更を多次元データベース114に適用するように、および多次元データベースを共有する1つまたは複数のユーザ装置にこれらの変更を報告するように構成されることができる。さらに、サーバ112は、データベースを共有する複数のユーザ装置に定期的な更新を送信するように構成されることができ、それぞれの更新はタイムスタンプを含むことができる。これらの更新は多次元データベース114に変更を指定することができる。さらに、サーバ112は、2つの異なるユーザ装置の一方または両方が定期的な更新を受信した後、それらのユーザ装置によって多次元データベース114の同じ情報片に対して加えた変更間の衝突を解決するように構成されることができる。
図2は、本発明の幾つかの実施形態に従って、通信ネットワーク上のユーザ装置とは別個のネットワーク装置上に格納した多次元データベースを、ユーザ装置上で使用するシステム200の例を示すブロック図である。
システム200は単に、通信ネットワーク上のユーザ装置とは別個のネットワーク装置上に格納した多次元データベースをユーザ装置上で使用するシステムの例示的実施形態であり、本発明の範囲を限定するよう意図していない。例えばシステム200の変形のような上記システムの多数の他の実装のうち任意のものが可能であり、本発明の範囲内にあると意図される。
システム200は、ユーザインタフェース208、アプリケーション210、サーバインタフェースコントローラ212、変更リストコントローラ214、関数コントローラ216、クエリコントローラ218、記憶コントローラ220、不揮発性記憶媒体222、通信ネットワーク230、他のコンポーネント、および前述したものの任意の適切な組み合わせ、のうち任意のものを含むことができる。図2に示すように、幾つかの実施形態において、アプリケーション210はコンポーネント212−220とは別個かつ相違なコンポーネントとすることが可能である。他の実施形態において、1つまたは複数のこれらコンポーネントをアプリケーション210内部に統合することができる。例えば、1つまたは複数のコンポーネント212−220、またはそれらが提供する機能性をアプリケーション210(例えば、Microsoft(登録商標) Excel)に対するアドインとして実装することができる。さらに、コンポーネント208−220のうち1つまたは複数をアプリケーション210の実行中(すなわち、ランタイムの間)に揮発性メモリ206内部に格納することができる。
不揮発性記憶媒体は様々な時点で、レポートファイル224、ローカルキューブ226、変更リスト228、他のコンポーネント、または前述の任意の適切な組み合わせを格納することができ、それらの各々を以下でより詳細に説明する。
コンポーネント206−228の全ては図2に示すようにユーザ装置204(例えば、システム100のユーザ装置102−106のうち任意のもの)に存在するが、幾つかの実施形態では、1つまたは複数のこれらコンポーネントが異なる装置に存在してもよい。例えば、不揮発性記憶媒体222はユーザ装置204とは別個の装置に存在可能である。1つまたは複数のコンポーネント208−220はクライアント/サーバシステムの「クライアント」の部分としてみなすことができ、この場合、サーバを例えばサーバ112のような多次元データベースのサーバとすることができる。
サーバインタフェースコントローラ212を多次元データベース114の少なくとも一部に対する要求をサーバ112に伝送する制御をするように構成できる。それに応じて、コントローラ212は多次元データベースの一部を受信することができる。記憶コントローラ220を例えば記憶媒体222のような不揮発性記憶媒体に、ローカルキューブ226を格納するのを制御するように構成できる。本明細書で使用するとき、「ローカルキューブ」は、ユーザ装置の不揮発性媒体に格納した(または格納すべき)多次元データベースの少なくとも一部のコピーである。
本発明の幾つかの実施形態において、ローカルキューブ226はユーザ装置204の1つまたは複数のユーザに特化したものにできる。例えば、ローカルキューブ226は多次元データベースの1つまたは複数の部分のみを含むことができ、その部分に対してユーザ装置204の1人または複数のユーザがアクセス可能である。上記実施形態において、ローカルキューブに含まれる1つまたは複数の部分を、多次元データベースシステムに対して実装したセキュリティシステムに従って、1人または複数のユーザのセキュリティコンテクキトに基づいて決定することができる。上記実施形態において、ローカルキューブ226に含まれる多次元データベースに、1人または複数のユーザによるアクセスが許可される部分が無いことを確実にするように配慮されることが可能である。上述のように、サーバ112はキューブの生成時にこれらのセキュリティ手段を実装することができる。部分をそのように限定することは、多次元データベース内に含まれるデータ片間の依存関係の考慮を伴うかもしれない。
上述のように、ユーザ装置204上にローカルキューブ226をキャッシュすること、並びにユーザがローカルキューブ226内部に格納したデータおよび関数にアクセスおよび使用可能になることで、ユーザに対して高速なアクセスと計算時間を提供できる。さらに、ローカルキューブ226が多次元データベースの全体に満たない場合、これは多次元データベースに格納されたある特定のデータのみにアクセスが限定されたユーザの場合であるかもしれないが、アクセスおよび処理速度はデータ量の減少によってさらに増加する。
ユーザインタフェース208を構成して、ユーザ入力および出力202を受信および出力し、ユーザ並びにユーザ装置204上のアプリケーションおよび/または他のコンポーネント間のインタフェースとしての役割を果たすことができる。本明細書で使用するとき、「ユーザインタフェース」は、アプリケーションまたはアプリケーションの一部(すなわち、コンピュータ可読命令のセット)であり、これによりユーザはアプリケーションの実行中にアプリケーションと対話できる。ユーザインタフェースはコードを含むことができる。このコードは、アプリケーションがユーザに対してアプリケーションの実行中に、例えばコンピュータスクリーンまたは他の手段を通して視覚的に、他の手段のスピーカを通して聴覚的に、並びにゲームコントローラまたは他の手段を通して手動で、どのように情報を出力するかを定義する。上記ユーザインタフェースは、例えばマイクロフォンを用いて聴覚的に、またはキーボード、マウス、ゲームコントローラ、トラックボール、タッチスクリーンまたは他の手段を用いて手動で、アプリケーション実行中にユーザが情報を入力する方法を定義するコードを含むこともできる。
ユーザインタフェースは、ユーザに情報を視覚的に提示(すなわち、表示)する方法を定義することができ、ユーザが情報の視覚的プレゼンテーション(すなわち、表示)をナビゲートする方法と、ユーザが視覚的プレゼンテーションのコンテキスト内で情報を入力する方法とを定義する。アプリケーションの実行中に、ユーザインタフェースは情報の視覚的プレゼンテーションを制御することができ、このインタフェースによりユーザは視覚的プレゼンテーションをナビゲートすること、および視覚的プレゼンテーションのコンテクキト内で情報を入力することが可能となる。ユーザインタフェースの種類は、ユーザが命令をタイプするコマンド駆動型、ユーザがメニューから情報を選択するメニュー駆動型インタフェース、およびその組み合わせから、GUIにまで及ぶ。GUIは一般にコンピュータのグラフィック能力のより有利な点を利用しており、ナビゲートするのにより柔軟、直感的かつ容易であり、コマンド駆動型およびメニュー駆動型の視覚的ユーザインタフェースより魅力的な「ルックアンドフィール」を有する。本明細書で使用するとき、ユーザインタフェースまたはGUIにより提示される情報の視覚的プレゼンテーションはそれぞれ、「ユーザインタフェースディスプレイ」または「GUIディスプレイ」と呼称される。
アプリケーション210としては、ユーザが多次元データベース114内部に格納したデータからレポートを生成可能なレポーティングツールまたは他の種類のアプリケーションが可能である。本発明の幾つかの実施形態において、アプリケーション210は、ユーザ装置204上の1つまたは複数のコンポーネントと相互作用する(またはそのコンポーネントを含む)ように構成され、上記データに多次元データベース114からではなくローカルキューブ226から上記データにアクセスできる。例えば、クエリコントローラ218は、ローカルキューブ226に含まれる(および多次元データベース114自体の内部にも含まれる)情報片に対する要求をアプリケーション210から受信し、その情報片をデータベース114からではなくローカルキューブ226から取得することを制御できるよう構成されることができる。
データベース114およびローカルキューブ226からコピーされたデータを格納することに加え、記憶コントローラ220を構成してデータベース114からコピーした関数をローカルキューブ226に格納することができる。これらの関数はローカルキューブ内部に格納したデータ片の間の関係を定義することができ、1つまたは複数の多次元操作を含む1つまたは複数の操作を含むことができる。例えば、第1の情報片は少なくとも第2の情報片の関数である値を有する。ユーザがアプリケーション210の第2の情報片に加えた変更に応じて、関数コントローラ216は第1のデータ片に対して関数を実施してその値を修正することができる。関数コントローラ216は、揮発性メモリ206内で本関数を実施できるよう構成され、それにより、関数がサーバ112および/または多次元データベース114上でリモートに他の方法で実施された場合よりも高速な処理時間を提供する。従って、その変更を存続させることなく、ユーザは様々な情報片の様々な値を試行して、これらの値がローカルメモリ内の他の情報片の値にどのように影響するかを判定することができる。上記関数の実行結果を、例えば、ユーザインタフェースの提示データを再描画するユーザ要求に応じて、ユーザインタフェース208を通してユーザに表示することができる。
例えば、ユーザはスプレッドシートアプリケーション(例えば、Microsoft(登録商標) Excel)の第1のセルに現れる値を変更することができる。この値は、ローカルキューブ226に格納した多次元データベースからのデータ片の値を表すかもしれない。この情報片をローカルキューブ226の1つまたは複数の他の情報片に関連付けることができ、これら関係の各々を1つまたは複数の多次元操作により定義することができる。ユーザがセル内の値を変更したことに応じて、関数コントローラ216を構成して、ローカルキューブ226から多次元操作を用いて、関連する情報片の全ての値を再計算することができる。新しい値の計算後、再計算の結果変更された値を表す全てのセルを更新して変更を反映するように、関数コントローラ216はこれらの新しい値をアプリケーション210および/またはユーザインタフェース208に通信する。
本発明の幾つかの実施形態では、情報片に対する変更を、変更リストコントローラ214により変更リスト内に格納する。上記変更リストは揮発性メモリ206内に保持することができ、これら変更を多次元データベース114に記録できるように、上記変更リストを変更リスト228として不揮発性記憶媒体に存続することおよび/またはサーバ112に送信することができる。変更リスト内のそれぞれの変更に対し、その変更とともにタイムスタンプを記録することができる。以下でより詳細に説明するように、これらタイムスタンプを使用してローカルキューブ226が多次元データベース114と同期することができる。
例えば、アプリケーション210のユーザは1つまたは複数の情報片の値を変更することで、これが他の情報片にどのように影響するかを試行することができる。ユーザが情報片を変更する度に、その変更を揮発性メモリ内の変更リストに記録することができる。ユーザが試行を完了した後に、ユーザは変更した情報片を元の値に戻すか、或いは1つまたは複数の情報片を変更したままにしておくことができる。ユーザは次いで情報片を含むレポートまたは他の文書をレポートファイル224として保存することができ、変更リストをローカルキューブ226に適用することができる。さらに、変更リスト自体を変更リスト228として記憶媒体222に記憶することができる。
サーバインタフェースコントローラ212を構成して、変更を多次元データベース114に適用できるように変更リスト228をサーバ112に伝送することができる。例えば、サーバインタフェースコントローラ212を構成して、変更リスト228をサーバ112に定期的に送信することおよび/または変更リストをイベントに応じて送信することができる。例えばそのイベントには、記憶媒体222への変更リスト228の保存、アプリケーション210の終了、ユーザコマンド、等がある。データの完全性が維持されるように、変更リストをサーバ112に伝送した後に変更リスト228を記憶媒体222から削除して、同一の変更が多次元データベース114に対して再度行われないことを保証することができる。別の方法として、変更リスト内のタイムスタンプを利用する他の同期技術を使用することができ、および/またはサーバ112に送信した変更リスト内の最後の変更を反映する指標を変更リスト228内に保持することができる。
サーバ112を構成して、変更リスト228の変更と多次元データベース114のデータとの同期を調整することができる。例えば、サーバ112を構成して、情報片をデータベース114からユーザ装置に最後にロードしてから変更したユーザ装置上の情報片に対してユーザが変更を加えた場合に、データを同期することができる。さらに、サーバ112を構成して、多次元データベース114に対して行った変更を、データベース114内のデータを共有する複数のユーザ装置(例えば、ユーザ装置102−106)に対して(例えば定期的に)プッシュすることができる。ユーザ装置は次いでプッシュされた変更を使用して自身のローカルキューブを更新することができる。
多次元データベースを共有するそれぞれのユーザ装置は、同期技術自体を使用できるよう構成されうる。例えば、ユーザ装置204のサーバインタフェースコントローラ212を使用して、ローカルキューブ226と多次元データベース114とを同期することができる。上述のように、サーバからローカルキューブを含むユーザ装置204への通信は、ローカルキューブの生成時点を表すタイムスタンプを含むこともできる。また上述したように、サーバを構成して、タイムスタンプを含むユーザ装置に定期的な更新を伝送することができる。サーバインタフェースコントローラ212を構成して、例えばローカルキューブ226と通信したタイムスタンプに基づいて、定期的な通信の受信に応じてローカルキューブ226を多次元データベース114と同期することができる。コントローラ212を構成して、サーバ112からの更新情報とともに含まれるタイムスタンプを、最初にローカルキューブ226と通信したタイムスタンプと比較できる。更新のタイムスタンプがローカルキューブのそれより後の場合、ローカルキューブは無効であり、同期される必要がある。
ローカルキューブ226をインクリメンタルに更新可能なように、ローカルキューブ226およびサーバインタフェースコントローラ212を構成して、すなわち、最後の更新から変更されたローカルキューブ226内部の情報片のみ更新することができる。さらに、サーバインタフェースコントローラ212を構成して、ローカルキューブ226の完全なリフレッシュを実施することもできる。例えば、コントローラ212は、サーバから受信した更新がローカルキューブ226に含まれない変更を含むと判定される場合に、サーバ112から現在のローカルキューブを要求することができるよう構成されることが可能である。
サーバインタフェースコントローラ200を構成して、サーバ112からの更新の受信に応じて別の同期シナリオを処理することができる。例えば、最後にローカルキューブ226をインクリメンタルに更新またはリフレッシュしてからローカルキューブ226に変更が加えられなかった場合、その後インクリメンタル更新をローカルキューブ226に行うか、またはローカルキューブの完全なリフレッシュを実施するかのいずれかを行うことができる。最後にインクリメンタルな更新または完全なリフレッシュを行ってからローカルキューブ226に変更が加えられた場合、コントローラ212を構成して完全なリフレッシュをローカルキューブ226に実施し、次いでその変更を再適用することができる。例えば、コントローラ212は、サーバ112からの更新の受信並びに前回のインクリメンタルな更新またはリフレッシュとの間で発生した変更リスト228に維持した変更を、再適用することができる。
幾つかの実施形態では、コントローラ212が変更リスト228をサーバ112に伝える処理中であるとき、コントローラ212は「変更をプレビュー」することができる。すなわち、コントローラ212は送信中の変更を、ユーザ装置204にまだ送信されていない多次元データベース114上の変更と比較することができる。例えば、コントローラ212はサーバ112から更新情報を(どの定期更新とも独立して)要求し、次いでその更新情報で指定された変更を送信中の変更リストの変更と比較することができる。コントローラ212は、様々な技術のうち任意のものを用いてこれら変更の間の衝突を解決することができる。それらの技術には、例えば、更新時に指定された変更に基づいてローカルキューブ226に対してインクリメンタルな変更を加え、次いで変更リストからの変更を適用すること、またはローカルキューブ226に対して完全なリフレッシュを実行して、変更リスト228の変更を再適用し、次いで変更リスト228をサーバ112に伝送することがある。
システム100および200、およびそれらのコンポーネントを様々な技術のうち任意のものを使用して実装することができる。その技術には、ソフトウェア(例えば、C、C#(登録商標)、C++、Java(登録商標),またはその組合せ)、ハードウェア(例えば、1つまたは複数の特定用途向け集積回路)、ファームウェア(例えば、電気的にプログラムされたメモリ)またはそれらの任意の組合せが含まれる。システム100および/または200の1つまたは複数のコンポーネントが単一の装置(例えば、コンピュータ)に存在するか、或いは1つまたは複数のコンポーネントが別個の個々の装置に存在できる。さらに、それぞれのコンポーネントを複数の装置に渡って分散させることができ、1つまたは複数の装置を相互接続できる。
さらに、システム100および/または200の1つまたは複数のコンポーネントを含む1つまたは複数の装置の各々に、コンポーネントの各々はシステムの1つまたは複数の位置に存在できる。例えば、これらシステムのコンポーネントの様々な部分は装置のメモリ(例えば、RAM、ROM、ディスク、等)の様々な領域に存在することができる。上記の1つまたは複数の装置の各々は、他のコンポーネントの中で、複数の既知のコンポーネントを含むことができる。そのコンポーネントには例えば、1つまたは複数のプロセッサ、メモリシステム、ディスクストレージシステム、1つまたは複数のネットワークインタフェース、および1つまたは複数のバスまたは様々なコンポーネントを相互接続する他の内部通信リンクがある。システム100および/または200、およびそれらのコンポーネントを、図4および5に関連して後述するようなコンピュータシステムを用いて実装することができる。
図3は、本発明の幾つかの実施形態に従って、通信ネットワーク上のユーザ装置からリモートに配置されるネットワーク装置に格納した多次元データベースの少なくとも一部を、ユーザ装置上で使用する方法300の例を示すフローチャートである。方法300は単に、通信ネットワーク上のユーザ装置からリモートに配置されるネットワーク装置に格納した多次元データベースの少なくとも一部を、ユーザ装置上で使用する方法の例示的実施形態であって、本発明の範囲を限定するようには意図していない。例えば方法300の変形のような、上記方法の多数の他の実装のうち任意のものが可能であり、本発明の範囲内にあるとして意図される。
最初に、ユーザ装置は多次元データベースの少なくとも一部に対する要求を、例えば図1のシステム200に関連して上述したように、多次元データベースのサーバ(図示せず)に送信することができる。それに応じて、例えばシステム200に関連して上述したように、サーバは前記の少なくとも一部のコピーを生成し、前記の少なくとも一部をユーザ装置(図示せず)に伝送することができる。
動作302で、例えばシステム200の記憶コントローラ220に関連して上述したように、多次元データベースの少なくとも一部のコピーをユーザ装置の不揮発性記憶媒体に格納することができる。動作304で、多次元データベースの少なくとも一部(すなわち、ローカルキューブ)に含まれる情報片に対する、ユーザ装置上で実行されているアプリケーションからの要求に応じて、その情報片をローカルキューブから取り出すことができる。動作304をシステム200に関連して上述したように実施することができる。
上述のように、幾つかの実施形態において、少なくとも1つまたは複数の第1情報片はローカルキューブの第2情報片の値の関数であってもよい(すなわち、第2情報片の値に依存する)。従って、動作306において、アプリケーションがユーザ装置上の揮発性メモリにおける第2情報片の値を変更することに応じて、前記関数(例えば、1つまたは複数の操作)を揮発性メモリ内の第1情報片に対して実施することができる。図2に関連して上述したように、動作306をシステム200の関数コントローラ216により実施することができる。
動作308で、例えばシステム200に関連して上述したように、関数の実施結果から得られる第1情報片の値を、アプリケーションにより提供されるユーザインタフェースディスプレイ内部で表示することができる。動作310で、複数の変更を表す変更リストに変更を追加することができる。例えば、変更リストは揮発性メモリ内に存在することができる。図2に関連して上述したように、動作310をシステム200の変更リストコントローラ214により実施することができる。
動作312で、例えば方法200に関連して上述したように、揮発性メモリからの変更リストをローカルキューブに適用することで、ローカルキューブのコピーを更新することができる。
動作314で、例えば方法200の変更リストコントローラ214に関連して上述したように、変更リストを不揮発性記憶媒体に格納することができる。動作316で、例えば方法200のサーバインタフェースコントローラ212に関連して上述したように、変更リストをユーザ装置からネットワーク装置に伝送することができる。
図3には示していないが、方法300は、多次元データベースに対する更新を指定可能な多次元データベースサーバからの定期的な通信の受信を含むことができる。様々な同期技術のうち任意のもの、例えばシステム200に関連して上述したうち任意のものを上記更新の受信に応じてローカルキューブおよび/または多次元データベースに適用することができる。
動作318で、例えば200に関連して上述したように、レポートをローカルキューブから生成することができる。
方法300の1つまたは複数の動作を(少なくとも部分的に)並列に実施するか、または図3に示したもの以外の順序で実施することができる。例えば、レポートを生成する動作318を、方法300を実施中の任意の時点で実施することができる。さらに、変更リストをユーザ装置からネットワーク装置に伝送する動作316を、キューブを更新する動作312および変更リストを記憶媒体に格納する動作314のそれぞれの前に実施することができる。さらに、方法300の1つまたは複数の動作を、例えばイベントに応じて、方法300の1つまたは複数の他の動作を実施した後に繰り返すことができる。方法300はイベントベースのプログラミング技術および処理技術を使用することができ、その場合、様々な動作を特定のイベントに応じて実施するが、その順序は必ずしも方法300に示した順序ではない。
方法300およびその動作、並びに前記方法およびそれらの動作の様々な実施形態および変形を、個々にまたは組み合わせで、1つまたは複数のコンピュータ可読媒体上に明確に具体化したコンピュータ可読信号によって定義することができる。そのコンピュータ可読媒体には、例えば、不揮発性記録媒体、集積回路メモリ要素、またはそれらの組合せがある。コンピュータ可読媒体は、コンピュータがアクセスできる利用可能な任意の媒体であってよい。例として、限定はしないが、コンピュータ可読媒体はコンピュータ記憶媒体と通信媒体とを備えることができる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータのような情報を格納するための任意の方法または技術で実装した、揮発性および不揮発性、取り外し可能および取り外し不可能な媒体が含まれる。コンピュータ記憶媒体はRAM,ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)または他の光学記憶、磁気カセット、磁気テープ、磁気ディスク記憶または他の磁気記憶装置、他種の揮発性および不揮発性メモリ、所望の情報を格納するのに使用可能で、コンピュータによるアクセスが可能な任意の他の媒体、ならびに前述したものの任意の適切な組合せ、を含むがこれらに限らない。
通信媒体は一般に、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータを搬送波または他のトランスポート機構のような変調データ信号で具体化し、任意の情報配信媒体を含む。用語「変調データ信号」は、1つまたは複数の特性を有するかまたは信号内で情報を符号化するように変化する信号を意味する。例として、限定はしないが、通信媒体には有線ネットワークまたは直接配線接続のような有線媒体、音響、RF、赤外線および他の無線媒体のような無線媒体、他種の通信媒体、および前述したものの任意の適切な組合せが含まれる。
1つまたは複数のコンピュータ可読媒体に具体化したコンピュータ可読信号は、例えば1つまたは複数のプログラムの一部として命令を定義することができる。その命令は、コンピュータによる実行の結果として、コンピュータに指示して本明細書で説明した1つまたは複数の関数(例えば、方法300またはその任意の動作)、および/または様々な実施形態、それらの変形および組合せを実施させる。上記の命令は複数のプログラミング言語のうち任意のもので記述することができる。そのプログラミング言語には、例えば、Java(登録商標)、J#、Visual Basic、C、C#、またはC++、Fortran、Pascal、Eiffel、Basic、COBOL、等、あるいはそれらの任意な組合せがある。上記命令が具体化されるコンピュータ可読媒体は、システム100、200、400および500のうち任意のものの1つまたは複数のコンポーネントに存在でき、1つまたは複数の上記コンポーネントに渡り分散することができ、それらの間で移動することができる。
コンピュータ可読媒体は可搬型であり、そこに格納した命令を任意のコンピュータシステムリソース上にロードして、本明細書に説明した本発明の態様を実施することができる。加えて、当然のことながら、上述したコンピュータ可読媒体上に格納した命令は、ホストコンピュータ上で実行されるアプリケーションプログラムの一部として具体化される命令に限定されない。むしろ、前記命令を任意の種類のコンピュータコード(例えば、ソフトウェアまたはマイクロコード)として具体化することができ、そのコードを用いて本発明の上述の態様を実施するためにプロセッサをプログラムできる。
当然のことながら、例えば図1、2、4および5に関連して説明したコンピュータシステムのような、本明細書で説明した関数を実施する任意の単一コンポーネントまたは複数のコンピュータシステムのコンポーネント集合を、上記関数を制御する1つまたは複数のコントローラとして総称的に考えることができる。前記の1つまたは複数のコントローラを専用のハードウェアおよび/またはファームウェアのような多数の方法で、マイクロコードまたはソフトウェアを用いて上述の関数または前述の任意の適切な組合せを実施するようプログラムしたプロセッサを使用することにより、実装することができる。
本発明に従う様々な実施形態を1つまたは複数のコンピュータシステム上で実装することができる。これらのコンピュータシステムは例えば、インテル(Intel)のPENTIUM(登録商標)型プロセッサ、モトローラ(Motorola)のPowerPC、サン(Sun)のUltraSPARC、ヒューレットパッカード(Hewlette Packard)のPA−RISCプロセッサ、アドバンストマイクロデバイス(Advanced Micro Devices(AMD))から入手可能な様々なプロセッサのうち任意のもの、または任意の他種のプロセッサに基づくもののような汎用コンピュータで可能である。当然のことながら、任意の種類のコンピュータシステムのうち1つまたは複数を使用して本発明の様々な実施形態を実装できる。
本発明の一実施形態に従う汎用コンピュータシステムを構成して、上述の1つまたは複数の機能を実施する。当然のことながら、このシステムは他の機能を実施可能であり、本発明は特定の機能または機能セットを有することに限定されない。
例えば、本発明の様々な態様を、図4に示すような汎用コンピュータシステム400で実行される専用ソフトウェアとして実装することができる。コンピュータシステム400は、ディスクドライブ、メモリ、またはデータ記憶用の他の装置のような1つまたは複数のメモリ装置404に接続したプロセッサ403を含むことができる。一般に、コンピュータシステム400の動作中にプログラムおよびデータを格納するためにメモリ404を使用する。コンピュータシステム400のコンポーネントを相互接続機構405により結合することができる。相互接続機構405は1つまたは複数の(例えば、同一マシン内部に統合したコンポーネント間の)バスおよび/または(例えば、別個の個々のマシンに存在するコンポーネント間の)ネットワークを含むことができる。相互接続機構405により、通信(例えば、データ、命令)をシステム400のシステムコンポーネント間で交換できる。さらに、コンピュータシステム400には、例えば、キーボード、マウス、トラックボール、マイクロフォン、タッチスクリーンのような1つまたは複数の入力装置402と、例えば印刷装置、ディスプレイスクリーン、スピーカのような1つまたは複数の出力装置401とが含まれる。加えて、コンピュータシステム400は、(相互接続機構405に加えて、またはその代わりとして)コンピュータシステム400を通信ネットワークに接続する1つまたは複数のインタフェース(図示せず)を含むことができる。
図5に詳細に示すがストレージシステム406には、一般にコンピュータ可読および書込み可能な不揮発性記録媒体501が含まれる。不揮発性記録媒体501に、プロセッサが実行すべきプログラムを定義する信号、あるいはプログラムが処理すべき媒体501上または内部に格納した情報を定義する信号が格納される。その媒体は、例えば、ディスクまたはフラッシュメモリであってもよい。一般には、動作中にプロセッサは、不揮発性記録媒体501から、プロセッサによる情報へのアクセスを媒体501よりも高速にすることが可能な別のメモリ502内にデータを読み込ませる。このメモリ502は一般に、ダイナミックランダムアクセスメモリ(DRAM)またはスタティックメモリ(SRAM)のような揮発性のランダムアクセスメモリである。メモリ502は、図示したストレージシステム406、または図示していないがメモリシステム404内で可能である。プロセッサ403は一般に集積回路メモリ404、502内部のデータを操作し、処理の完了後にデータを媒体501にコピーする。媒体501と集積回路メモリ要素404、502との間のデータ移動を管理する様々なメカニズムが知られており、本発明はそれらに限定されない。本発明は特定のメモリシステム404またはストレージシステム406に限定されない。
コンピュータシステムは、例えば特定用途向け集積回路(ASIC)のような特別にプログラムした専用ハードウェアを含むことができる。本発明の態様をソフトウェア、ハードウェアまたはファームウェア、あるいはそれらの任意の組合せで実装することができる。さらに、上記の方法、動作、システム、システム要素およびそれらのコンポーネントを、上述のコンピュータシステムの一部として、または独立したコンポーネントとして実装することができる。
コンピュータシステム400を、本発明の様々な態様を実践可能なある種類のコンピュータシステムとして例に示すが、当然のことながら、本発明の態様は図4に示すようなコンピュータシステム上で実装することに限定されない。本発明の様々な態様を、図4に示す様々なアーキテクチャまたはコンポーネントを有する1つまたは複数のコンピュータ上で実践することができる。
コンピュータシステム400は、高レベルのコンピュータプログラミング言語を用いてプログラム可能な汎用コンピュータシステムが可能である。コンピュータシステム400を、特別にプログラムした専用ハードウェアを用いて実装できる。コンピュータシステム400において、プロセッサ403は、一般に、インテル社(Intel Corporation)から入手可能な公知のペンティアム(Pentium)(登録商標)クラスのプロセッサなどの商用的に利用可能なプロセッサである。多数の他のプロセッサが利用可能である。上記のプロセッサは、通常オペレーティングシステムを実行する。このオペレーティングシステムは、例えば、マイクロソフト社から入手可能なWindows(登録商標)95、Windows(登録商標)98、Windows(登録商標)NT、Windows(登録商標)2000(Windows(登録商標)ME)またはWindows(登録商標)XPオペレーティングシステム、アップル社から入手可能なMAC OSシステムX、サンマイクロシステムズ(Sun Microsystems)から入手可能なSolaris Operating System、様々なソースから入手可能なLinuxまたは様々なソースから入手可能なUNIX(登録商標)が可能である。様々な他のオペレーティングシステムの任意のものも使用できる。
プロセッサおよびオペレーティングシステムは共同で、アプリケーションプログラムが高レベルプログラミング言語で記述されるコンピュータプラットフォームを定義する。当然のことながら、本発明は特定のコンピュータシステムプラットフォーム、プロセッサ、オペレーティングシステム、またはネットワークに限定されない。また、本発明は特定のプログラミング言語またはコンピュータシステムに限定されず、他の適切なプログラミング言語および他の適切なコンピュータシステムを利用することもできることは当業者には明らかであろう。
コンピュータシステムの1つまたは複数の部分を、通信ネットワークに接続した1つまたは複数のコンピュータシステム(図示せず)に渡り分散することができる。これらのコンピュータシステムは汎用コンピュータシステムでもある。例えば、本発明の様々な態様を1つまたは複数のコンピュータシステム間で分散させることができる。これらのコンピュータシステムは、サービス(例えば、サーバ)を1つまたは複数のクライアントコンピュータに提供するか、または分散システムの一部として全体のタスクを実施するように、構成する。例えば、本発明の様々な態様はクライアントサーバシステム上で実施できる。このクライアントサーバシステムは、本発明の様々な実施形態に従って様々な機能を実施する1つまたは複数のサーバシステム間で分散させたコンポーネントを含む。これらコンポーネントは、通信プロトコル(例えば、TCP/IP)を用いて通信ネットワーク(例えば、インターネット)上で通信する実行可能な中間(例えば、IL)コードまたはインタプリタ型(例えば、Java(登録商標))コードで可能である。
当然のことながら、本発明は特定のシステムまたはシステムグループでの実行に限定されず、本発明は特定の分散アーキテクチャ、ネットワーク、または通信プロトコルに限定されない。
本発明の様々な実施形態を、SmallTalk、Java(登録商標),J#(Jシャープ)、C++、Ada、またはC#(Cシャープ)のようなオブジェクト指向プログラミング言語を用いてプログラムすることができる。他のオブジェクト指向プログラミング言語も使用することができる。または、関数型、スクリプト型、および/または論理型プログラミング言語も使用することができる。本発明の様々な態様をプログラムされてない環境で実装することができる(例えば、ブラウザプログラムのウィンドウでの参照時にグラフィカルユーザインタフェース(GUI)の態様を表示または他の機能を実施する、HTML、XML、または他のフォーマットで作成したドキュメント)。本発明の様々な態様をプログラムされた要素またはプログラムされてない要素あるいはそれらいずれかの組み合わせとして実装することができる。さらに、本発明の様々な実施形態をマイクロソフト社から入手可能なMicrosoft(登録商標).NET技術を用いて実装することができる。
本発明の幾つかの例示的実施形態を説明してきたが、前述したことは単に例であって限定的ではなく例としてのみ提示されたことは、当業者には明らかであろう。多数の修正および他の例示的実施形態が当業界の技術の範囲内であり、本発明の範囲内であると考慮されている。特に、本明細書で提示した例の多くは方法の動作またはシステム要素の特定の組み合わせを伴うが、当然のことながらこれら動作およびこれら要素を他の方法で組み合わせて同一の目的を達成できる。1つの実施形態と関連させてのみ議論した動作、要素および機能は、他の実施形態で同様な役割から除外されるとは意図していない。さらに、添付の特許請求の範囲で述べる1つまたは複数のミーンズ・プラス・ファンクション(means−plus−function)の限定に対して、ミーンズ(手段)は引用した機能を実施する本発明で開示した手段に限定されず、引用した機能を実施する、公知または後に開発される任意の等価な手段を範囲内に含むことを意図される。
「第1の」、「第2の」、「第3の」、等のような序数用語を特許請求の範囲において請求要素を修正するために使用することそれ自体は、方法の動作が実施される別順序または一時的順序に対するいずれの優先度、優先順位、あるいはある請求要素の順序を示唆しておらず、特定の名前を有するある請求要素を(序数用語の使用は除き)同一名を有する別要素から区別し、その請求要素を区別するために、それらの序数用語を単にラベルとして使用している。
本発明の幾つかの実施形態に従う多次元データベースシステムの例を示すブロック図である。 本発明の幾つかの実施形態に従って、通信ネットワーク上のユーザ装置とは別個のネットワーク装置上に格納した多次元データベースを、ユーザ装置上で使用するシステムの例を示すブロック図である。 本発明の幾つかの実施形態に従って、通信ネットワーク上のユーザ装置からリモートに配置されるネットワーク装置に格納した多次元データベースの少なくとも一部を、ユーザ装置上で使用する方法の例を示すフローチャートである。 本発明の幾つかの実施形態を実装可能なコンピュータシステムの例を示すブロック図である。 本発明の幾つかの実施形態を実装するコンピュータシステムの一部として使用可能な、ストレージシステムの例を示すブロック図である。

Claims (6)

  1. 通信ネットワークのユーザ装置として実装され該ユーザ装置とは別個の前記通信ネットワーク上のネットワーク装置に格納された多次元データベースの少なくとも一部を使用するシステムであって、前記多次元データベースは前記通信ネットワーク上の複数のユーザ装置によって共有され、前記システムは、
    前記ネットワーク装置から受信した前記多次元データベースの少なくとも一部のコピーを前記ユーザ装置からアクセス可能であるか前記ユーザ装置内にある不揮発性記憶媒体に、ローカルキューブとして格納し、前記多次元データベースからコピーされた複数の関数であって、前記ローカルキューブ内に格納されたデータ片の間の依存関係を定義する多次元操作を含む複数の関数を、前記ローカルキューブ内のデータとともに格納するように構成された、記憶コントローラと、
    前記ローカルキューブに含まれ、および前記多次元データベースに含まれる第2のデータ片に対する要求を前記ユーザ装置上で実行するアプリケーションから受信し、前記多次元データベースの代わりに前記ローカルキューブから前記第2のデータ片を取り出して、前記第2のデータ片を前記ユーザ装置の揮発性メモリに格納する、クエリコントローラと
    前記多次元データベースからコピーされ、前記記憶コントローラによって前記ローカルキューブに格納された前記複数の関数のうち1つの関数を実行するように構成された関数コントローラであって、前記関数は、前記ローカルキューブにおける第1のデータ片と前記第2のデータ片との依存関係を定義する多次元操作を含み、前記アプリケーションがユーザの入力に基づいて前記揮発性メモリ内の前記第2のデータ片の値を変更したことに応答して、前記揮発性メモリ内において、前記関数に含まれる多次元操作を前記第1のデータ片に対して実行して前記第1のデータ片の値を再計算し、前記関数の実行結果として前記第1のデータ片の値をユーザに提示するために、前記第1のデータ片の前記再計算された値を前記アプリケーションに提供する関数コントローラと、
    少なくとも前記ローカルキューブの前記第2のデータ片の値に対する前記変更を、前記揮発性メモリ内の変更リストに追加するように構成された変更リストコントローラであって、前記揮発性メモリ内の前記変更リストは、前記ローカルキューブ内に格納された1つまたは複数のデータ片に対して前記揮発性メモリ内において行われた複数の変更を表し、前記変更リストコントローラは、前記記憶コントローラが、ユーザ要求に応答して、前記揮発性メモリ内の前記変更リストを前記ローカルキューブに適用して前記不揮発性記憶媒体に格納された前記ローカルキューブを更新すると、前記ローカルキューブに適用した前記変更リストを、前記不揮発性記憶媒体に格納する、変更リストコントローラと、
    前記不揮発性記憶媒体に格納した前記変更リストを前記ネットワーク装置に伝送する、サーバインタフェースコントローラと
    を有することを特徴とするシステム。
  2. 前記サーバインタフェースコントローラは、前記多次元データベースの前記少なくとも一部に対する1つまたは複数の変更を示す少なくとも1つの通信を前記ネットワーク装置から受信し、前記少なくとも1つの通信に応じて、前記多次元データベースの前記少なくとも一部のコピーである前記ローカルキューブを前記多次元データベースの前記少なくとも一部と同期させるようにさらに動作することを特徴とする請求項1に記載のシステム。
  3. 通信ネットワーク上のユーザ装置において、前記ユーザ装置とは別個の前記通信ネットワーク上のネットワーク装置に格納された多次元データベースの少なくとも一部を使用するための方法であって、前記多次元データベースは、前記通信ネットワーク上の複数のユーザ装置によって共有され、前記方法は、前記ユーザ装置が、
    前記ネットワーク装置から受信した前記多次元データベースの少なくとも一部のコピーを、前記ユーザ装置からアクセス可能であるか前記ユーザ装置内にある不揮発性記憶媒体に、ローカルキューブとして格納し、前記多次元データベースからコピーされた複数の関数であって、前記ローカルキューブ内に格納されたデータ片の間の依存関係を定義する多次元操作を含む複数の関数、前記ローカルキューブ内のデータとともに格納する動作と、
    前記ローカルキューブに含まれ、および前記多次元データベースにも含まれる第2のデータ片に対する要求を、前記ユーザ装置上で実行するアプリケーションから受信し、前記第2のデータ片を、前記多次元データベースの代わりに前記ローカルキューブから取り出して、前記第2のデータ片を前記ユーザ装置の揮発性メモリに格納する動作と、
    前記多次元データベースからコピーされ、前記記憶コントローラによって前記ローカルキューブに格納された前記複数の関数のうち1つの関数を実行する動作であって、前記関数は、前記ローカルキューブに含まれる第1のデータ片と前記第2のデータ片との依存関係を定義する多次元操作を含み、前記アプリケーションがユーザの入力に基づいて前記揮発性メモリ内の前記第2のデータ片の値を変更したことに応答して、前記揮発性メモリ内において、前記関数に含まれる多次元操作を前記第1のデータ片に対して行して前記第1のデータ片の値を再計算する動作と、
    前記関数の実行結果として前記第1のデータ片の値をユーザに提示するために、前記第1のデータ片の前記再計算された値を前記アプリケーションに提供する動作と、
    少なくとも前記第2のデータ片の値に対する前記変更を、前記揮発性メモリ内の変更リストに追加する動作であって、前記揮発性メモリ内の前記変更リストは、前記ローカルキューブ内に格納された1つまたは複数のデータ片に対して前記揮発性メモリ内において行われた複数の変更を表す動作と、
    ユーザ要求に応答して、前記揮発性メモリ内の前記変更リストを前記ローカルキューブに適用することによって、前記不揮発性記憶媒体に格納された前記ローカルキューブを更新し、前記ローカルキューブに適用した前記変更リストを前記不揮発性記憶媒体に格納する動作と、
    前記不揮発性記憶媒体に格納した前記変更リストを前記ネットワーク装置に伝送する動作と
    含むことを特徴とする方法。
  4. 前記ローカルキューブからレポートを生成する動作
    をさらに含むことを特徴とする請求項に記載の方法。
  5. 前記多次元データベースの前記少なくとも一部に対する1つまたは複数の変更を示す少なくとも1つの通信を、前記ネットワーク装置から受信する動作と、
    前記少なくとも1つの通信に応じて、前記多次元データベースの前記少なくとも一部のコピーである前記ローカルキューブを前記多次元データベースの前記少なくとも一部と同期させる動作
    をさらに含むことを特徴とする請求項に記載の方法。
  6. 通信ネットワーク上のユーザ装置に、前記ユーザ装置とは別個の前記通信ネットワークのネットワーク装置に格納された多次元データベースの少なくとも一部を使用させるためのプログラムであって、多次元データベースは、前記通信ネットワーク上の複数のユーザ装置によって共有され、前記ユーザ装置に、
    前記多次元データベースの少なくとも一部のコピーに対する要求を、前記通信ネットワーク上の前記ネットワーク装置へ伝送する動作と、
    前記の多次元データベースの少なくとも一部のコピーを受信すると、前記多次元データベースの少なくとも一部のコピーを、前記ユーザ装置からアクセス可能であるか前記ユーザ装置内にある不揮発性記憶媒体に、ローカルキューブとして記憶し、前記多次元データベースからコピーされた複数の関数であって、前記ローカルキューブ内に格納されたデータ片の間の依存関係を定義する多次元操作を含む複数の関数を、前記ローカルキューブ内のデータとともに記憶する動作と、
    前記ローカルキューブに含まれ、および前記多次元データベースにも含まれる第2のデータ片に対する要求を、前記ユーザ装置上で実行するアプリケーションから受信し、前記第2のデータ片を前記多次元データベースの代わりに前記ローカルキューブから取り出して、前記第2のデータ片を前記ユーザ装置の揮発性メモリに格納する動作と、
    前記多次元データベースからコピーされ、前記記憶コントローラによって前記ローカルキューブに格納された前記複数の関数のうち1つの関数を実行する動作であって、前記関数は、前記ローカルキューブに含まれる第1のデータ片と前記第2のデータ片との依存関係を定義する多次元操作を含み、前記アプリケーションがユーザの入力に基づいて前記揮発性メモリ内の前記第2のデータ片の値を変更したことに応答して、前記揮発性メモリ内において、前記関数に含まれる多次元操作を前記第1のデータ片に対して実行して前記第1のデータ片の値を再計算する動作と、
    前記関数の実行結果として前記第1のデータ片の値をユーザに提示するために、前記第1のデータ片の前記再計算された値を前記アプリケーションに提供する動作と、
    少なくとも前記第2のデータ片の値に対する前記変更を、前記揮発性メモリ内の変更リストに追加する動作であって、前記揮発性メモリ内の前記変更リストは、前記ローカルキューブ内に格納された1つまたは複数のデータ片に対して前記揮発性メモリ内において行われた複数の変更を表す動作と、
    ユーザ要求に応答して、前記揮発性メモリ内の前記変更リストを前記ローカルキューブに適用することによって、前記不揮発性記憶媒体に格納された前記ローカルキューブを更新し、前記ローカルキューブに適用した前記変更リストを前記不揮発性記憶媒体に格納する動作と、
    前記不揮発性記憶媒体に格納した前記変更リストを前記ネットワーク装置に伝送する動作と
    実行させること特徴とするプログラム
JP2008524107A 2005-07-25 2006-07-25 ユーザ装置上の多次元データベースの部分的キャッシングおよび修正 Expired - Fee Related JP4964881B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/188,439 2005-07-25
US11/188,439 US20070022120A1 (en) 2005-07-25 2005-07-25 Caching and modifying portions of a multi-dimensional database on a user device
PCT/US2006/029026 WO2007014274A2 (en) 2005-07-25 2006-07-25 Caching and modifying portions of a multi-dimensional database on a user device

Publications (2)

Publication Number Publication Date
JP2009512909A JP2009512909A (ja) 2009-03-26
JP4964881B2 true JP4964881B2 (ja) 2012-07-04

Family

ID=37680288

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008524107A Expired - Fee Related JP4964881B2 (ja) 2005-07-25 2006-07-25 ユーザ装置上の多次元データベースの部分的キャッシングおよび修正

Country Status (6)

Country Link
US (1) US20070022120A1 (ja)
EP (1) EP1907955A4 (ja)
JP (1) JP4964881B2 (ja)
KR (1) KR20080031202A (ja)
CN (1) CN101523388B (ja)
WO (1) WO2007014274A2 (ja)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070220171A1 (en) * 2006-03-17 2007-09-20 Sony Corporation Systems and methods for synchronization of asynchronous networks
WO2007148437A1 (ja) * 2006-06-22 2007-12-27 Kabushiki Kaisha Toshiba 知的財産管理システム、知的財産管理方法およびそのプログラム
US8082239B2 (en) * 2008-02-04 2011-12-20 Microsoft Corporation Defining sub-cube scope based upon a query
US8452755B1 (en) * 2009-05-12 2013-05-28 Microstrategy Incorporated Database query analysis technology
US8478786B2 (en) 2010-09-14 2013-07-02 Microsoft Corporation Automatic layout derivation and implementation
US9330091B1 (en) 2011-10-08 2016-05-03 Bay Dynamics, Inc. System for managing data storages
US9390082B1 (en) 2011-10-08 2016-07-12 Bay Dynamics, Inc. Generating multiple views of a multidimensional cube
US9081830B1 (en) 2011-10-08 2015-07-14 Bay Dynamics Updating a view of a multidimensional cube
US10353922B1 (en) 2011-10-08 2019-07-16 Bay Dynamics, Inc. Rendering multidimensional cube data
US8682922B2 (en) 2012-03-20 2014-03-25 Schlumberger Technology Corporation Method and system for accessing a virtual seismic cube
CN102663117B (zh) * 2012-04-18 2013-11-20 中国人民大学 面向数据库与Hadoop混合平台的OLAP查询处理方法
US20140081903A1 (en) * 2012-09-17 2014-03-20 Salesforce.Com, Inc. Methods and systems for displaying and filtering business analytics data stored in the cloud
WO2014056145A1 (zh) * 2012-10-09 2014-04-17 华为技术有限公司 使Web应用获取数据库变化的方法和系统
CN103235793A (zh) * 2013-04-01 2013-08-07 华为技术有限公司 联机处理数据的方法、设备及系统
CN104252452B (zh) * 2013-06-25 2019-03-15 腾讯科技(深圳)有限公司 数据管理的方法及装置
WO2015067014A1 (en) * 2013-11-06 2015-05-14 Huawei Technologies Co., Ltd. Method and system for managing data for performing write back on what-if analysis
IN2013CH05008A (ja) * 2013-11-06 2015-05-08 Huawei Technologies India Pvt Ltd
KR102213674B1 (ko) 2014-02-17 2021-02-08 삼성전자주식회사 내부 하드웨어 필터를 포함하는 일체형 데이터 저장 장치와 이의 동작 방법
CN103870571B (zh) 2014-03-14 2017-06-06 华为技术有限公司 多维联机分析处理系统中的立方体重构方法和装置
US10353923B2 (en) * 2014-04-24 2019-07-16 Ebay Inc. Hadoop OLAP engine
US10769175B1 (en) 2014-06-20 2020-09-08 Amazon Technologies, Inc. Real-time hosted system analytics
EP3158478B1 (en) 2014-06-20 2023-06-07 Amazon Technologies, Inc. Embeddable cloud analytics
AU2015276830B2 (en) * 2014-06-20 2018-09-06 Amazon Technologies, Inc. Dynamic n-dimensional cubes for hosted analytics
US11868372B1 (en) 2014-06-20 2024-01-09 Amazon Technologies, Inc. Automated hierarchy detection for cloud-based analytics
US10430438B2 (en) 2014-06-20 2019-10-01 Amazon Technologies, Inc. Dynamic n-dimensional cubes for hosted analytics
CN107533569B (zh) 2015-10-23 2022-04-05 甲骨文国际公司 用于多维数据库环境中的沙箱支持的系统和方法
CN106844377B (zh) * 2015-12-03 2020-07-03 北京国双科技有限公司 多维数据库的处理方法及装置
CN106909691A (zh) * 2017-03-09 2017-06-30 山东浪潮商用系统有限公司 一种基于缓存的高效税收数据分析方法
CN107291893A (zh) * 2017-06-21 2017-10-24 天津光电通信技术有限公司 一种基于.net技术的数据库综合管理方法
US10884980B2 (en) * 2017-07-26 2021-01-05 International Business Machines Corporation Cognitive file and object management for distributed storage environments
US10909134B2 (en) 2017-09-01 2021-02-02 Oracle International Corporation System and method for client-side calculation in a multidimensional database environment
KR102034679B1 (ko) 2018-01-17 2019-10-23 (주)비아이매트릭스 그리드 인터페이스 기반 데이터 입출력 시스템
CN110110012A (zh) * 2019-04-23 2019-08-09 上海淇玥信息技术有限公司 用户预期价值评估方法、装置、电子设备及可读介质
CN114461605B (zh) * 2022-01-10 2023-07-04 北京元年科技股份有限公司 内存多维数据库的事务数据多版本实现方法、装置及设备
CN115981970B (zh) * 2023-03-20 2023-05-16 建信金融科技有限责任公司 运维数据分析方法、装置、设备和介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6182060B1 (en) * 1997-04-15 2001-01-30 Robert Hedgcock Method and apparatus for storing, retrieving, and processing multi-dimensional customer-oriented data sets
US5978796A (en) * 1997-06-30 1999-11-02 International Business Machines Corporation Accessing multi-dimensional data by mapping dense data blocks to rows in a relational database
SE510001C2 (sv) * 1997-07-21 1999-03-29 Ericsson Telefon Ab L M Metod för att lagra element i en databas
JPH11249874A (ja) * 1998-02-27 1999-09-17 Toshiba Corp コンピュータシステム、同システムにおける同期処理方法および記録媒体
US6549907B1 (en) * 1999-04-22 2003-04-15 Microsoft Corporation Multi-dimensional database and data cube compression for aggregate query support on numeric dimensions
US6741997B1 (en) * 2001-06-14 2004-05-25 Oracle International Corporation Instantiating objects in distributed database systems
WO2004072810A2 (en) 2003-02-10 2004-08-26 Netezza Corporation Materialized view system and method
US7269581B2 (en) * 2003-03-28 2007-09-11 Microsoft Corporation Systems and methods for proactive caching utilizing OLAP variants

Also Published As

Publication number Publication date
KR20080031202A (ko) 2008-04-08
WO2007014274A2 (en) 2007-02-01
EP1907955A2 (en) 2008-04-09
CN101523388B (zh) 2011-09-07
CN101523388A (zh) 2009-09-02
JP2009512909A (ja) 2009-03-26
US20070022120A1 (en) 2007-01-25
WO2007014274A3 (en) 2009-04-23
EP1907955A4 (en) 2010-03-31

Similar Documents

Publication Publication Date Title
JP4964881B2 (ja) ユーザ装置上の多次元データベースの部分的キャッシングおよび修正
US10506043B2 (en) Rapid client-side component processing based on component relationships
US20050055698A1 (en) Server-driven data synchronization method and system
US7917524B2 (en) Systems and methods for providing a mockup data generator
CN103870536B (zh) 用于内存数据库处理的系统和方法
US8074228B2 (en) Systems and methods for providing mockup business objects
US8402119B2 (en) Real-load tuning of database applications
US8056091B2 (en) Systems and methods for using application services
US20070143358A1 (en) Data synchronization system and method
US20050028171A1 (en) System and method enabling multiple processes to efficiently log events
US20170169092A1 (en) Data model design collaboration using semantically correct collaborative objects
US20050278341A1 (en) Component offline deploy
CN108363787B (zh) 一种ifc文件并行存储方法、装置及系统
US8843440B2 (en) Synchronizing database projects with partner projects
US20200387412A1 (en) Method To Manage Database
US10789274B2 (en) Replicating data in a multi-cloud environment
US8910183B2 (en) Access to context information in a heterogeneous application environment
US20140059538A1 (en) Virtual machine state tracking using object based storage
Needham et al. An analysis of a corba-based approach to accessing geospatial information via the internet
US11321351B2 (en) Adaptable legacy stateful workload
CN113656144B (zh) 一种数据发布系统、方法、装置、电子设备及存储介质
US11681672B2 (en) Virtual database resource usage
US11269736B2 (en) Method to manage database failure
JP2005503600A (ja) インターネット上でダイナミック・ページ・ビルダでメッセージ・パブリッシングを提供するための方法およびシステム
US10812623B2 (en) Hierarchical message handler

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111004

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111228

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120309

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120328

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150406

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees