"データベースアプリケーションのためのセキュアなキャッシング方法であって、データについてのユーザ要求およびユーザの前記データベースアプリケーションのセキュリティプロファイルを特定するセキュリティコンテキストを受けるステップと、前記ユーザ要求および前記受けたセキュリティコンテキストに基づいて、前記要求されたデータについてキャッシュを検索するステップと、前記要求されたデータが前記キャッシュ内に発見された場合に、前記キャッシュされたデータを前記ユーザ要求に応答して返すステップと、前記要求されたデータが前記キャッシュ内に発見されない場合に、前記要求されたデータをデータ源から入手し、前記入手したデータを前記キャッシュに格納し、前記入手したデータを前記セキュリティコンテキストに関連付け、前記要求されたデータを前記ユーザ要求に応答して返すステップと、を含む方法。前記キャッシュされたデータは、前記キャッシュされたデータを前記セキュリティコンテキストに関連付ける、対応するリストと共に格納され、前記要求されたデータが前記キャッシュ内に発見されない場合、前記キャッシュに格納された前記入手したデータを前記セキュリティコンテキストに関連付けるための新たなリストを、前記キャッシュに格納された前記入手したデータへの参照を格納することにより生成する、請求項1に記載の方法。前記新たなリストは、リストストレージユニットに格納され、その中で、格納されたリストの数が、受け取ったユーザクエリに基づいてインクリメンタルに増加する、請求項2に記載の方法。キャッシュされたデータにおける変化がリストの一貫性を損なう場合に、前記リストをリストストレージユニットからパージすることをさらに含む、請求項2に記載の方法。前記キャッシュを使用する前にリストストレージユニットを初期化することをさらに含み、前記初期化することは、共通に用いられるセキュリティコンテキストについて共通に用いられるデータについてのクエリをデータ源に提出することと、クエリの結果を前記キャッシュにロードすることと、前記キャッシュされたデータを参照するセキュリティリストを作成することとを含む、請求項2に記載の方法。格納されたリストを冗長性について検査することをさらに含み、2つの同一のリストが発見された場合には、前記2つの同一のリストが単一のリストに纏められる、請求項2に記載の方法。前記データは、メタデータである、請求項1に記載の方法。前記セキュリティコンテキストおよびデータ識別子により識別されるリストの存在についてリストストレージ内を検査するステップと、前記リストが存在しない場合、前記セキュリティコンテキストおよび前記データ識別子により識別されるリストを前記リストストレージ内に作成し、前記データ源からデータを取得し、前記取得したデータをデータストレージ内に格納し、前記データストレージに格納された前記取得したデータのストレージのアドレスを前記作成されたリストに取り込むステップと、前記リストが存在する場合、前記リスト内の前記ストレージアドレスを用いて、前記データストレージからデータを取得するステップとをさらに含む、請求項1に記載の方法。前記データ識別子は、キューブディメンジョン識別子である、請求項8に記載の方法。前記データストレージは、複数の異種の遠隔データ源から提供されたデータを含むキャッシュである、請求項8に記載の方法。前記データストレージおよび前記リストストレージに事前ロードすることをさらに含み、前記リストストレージには、共通に用いられるセキュリティコンテキストおよびデータ識別子に対応するリストが事前ロードされ、前記データストレージには、前記事前ロードされたリストにより参照される共通に用いられるデータが事前ロードされる、請求項8に記載の方法。データストレージに格納される前記データは、OLAPメタデータである、請求項8に記載の方法。キャッシングシステムであって、ソフトウェアモジュールを実行するプロセッサと、前記ソフトウェアモジュールを格納するメモリとを備え、前記ソフトウェアモジュールは、データについてのユーザ要求および前記ユーザのセキュリティプロファイルを識別する前記データベースアプリケーションのセキュリティコンテキストを受けるレシーバモジュールと、前記ユーザ要求および前記受け取ったセキュリティコンテキストに基づいて、前記要求されたデータについてキャッシュを検索する検索モジュールと、前記要求されたデータが前記キャッシュ内に発見された場合に、前記キャッシュされたデータを前記ユーザ要求に応答して入手する管理モジュールを備え、前記要求されたデータが前記キャッシュ内に発見されない場合、前記管理モジュールは、前記要求されたデータをデータ源から入手し、前記入手したデータを前記キャッシュに格納し、前記入手したデータを前記セキュリティコンテキストに関連付け、前記要求されたデータを前記ユーザ要求に応答して返す、システム。前記検索モジュールが要求されたデータを前記キャッシュ内に発見されない場合、前記管理モジュールは、前記キャッシュに格納された前記入手したデータを前記セキュリティコンテキストに関連付けるための新たなリストを、前記キャッシュに格納された前記入手したデータへの参照を格納することにより生成する、請求項13に記載のシステム。前記管理モジュールは、前記新たなリストをリストストレージユニットに格納し、その中で、格納されたリストの数は、一意の受け取ったユーザクエリに基づいてインクリメンタルに増加する、請求項14に記載のシステム。キャッシュされたデータにおける変化がリストの一貫性を損なう場合に前記リストをリストストレージユニットからパージする、パージモジュールをさらに備える、請求項14に記載のシステム。前記キャッシュを使用する前にリストストレージユニットを初期化する事前ロードモジュールをさらに備え、前記事前ロードモジュールは、共通に用いられるセキュリティコンテキストについて共通に用いられるデータについてのクエリを前記データ源に提出し、前記クエリの結果を前記キャッシュに事前ロードし、前記キャッシュされたデータを参照する新たなセキュリティリストを作成する、請求項16に記載のシステム。格納されたリストを冗長性について検査し、2つの同一のリストが発見された場合には前記2つの同一のリストを単一のリストに纏める、検査モジュールをさらに備える、請求項14に記載のシステム。コンピュータシステムに読み込まれて実行されたときに、請求項1から請求項12までのいずれか1項に記載の方法の全てのステップを実行するコンピュータプログラムコードを含む、コンピュータプログラム。本発明の課題は、最適化されたセキュアなキャッシングシステムおよびキャッシング方法を提供することにある。第1の態様から見ると、本発明は、セキュアなキャッシング方法を提供する。このキャッシング方法は、データについてのユーザ要求およびセキュリティコンテキストを受け取ることと、ユーザ要求および受けたセキュリティコンテキストに基づいて、要求されたデータについてキャッシュを検索することとを含む。要求されたデータがキャッシュ内に発見された場合、キャッシュされたデータをユーザ要求に応答して返す。要求されたデータがキャッシュ内に発見されない場合、要求されたデータをデータ源から入手し、入手したデータをキャッシュに格納し、入手したデータをセキュリティコンテキストに関連付け、要求されたデータをユーザ要求に応答して返す。この解決法は、以下の点に関して、当該技術分野の現状における欠陥に対処する。セキュリティ規則は、本質的に、個々のBIシステムのユーザがクエリレポートを提出するときに発見され、セキュリティリストとして表現されるのでこのセキュリティリストは、データキャッシュ内に置くことができる、このデータ源不可知の手法は、あらゆるセキュリティ規則をBIシステム内で再定義しなければならないという要件を有さない。更に、セキュリティリストは、キャッシュされたデータを参照する軽量のリストであるので、キャッシュされたデータ自体は、セキュリティプロファイルから独立しており、従って、異なるセキュリティプロファイルのアクセス権を遵守するという要件に関連した冗長性をわずかしか含まないか、全く含まない。この解決法によれば、キャッシュメモリは、サイズが最適化され、同じまたは異なるセキュリティコンテキストを有するますます多くのユーザがBIシステムにログインしてレポート/クエリを提出しても、著しく増大することにはならない。第1の態様から見ると、本発明は、セキュアなキャッシング方法であって、データについてのユーザ要求およびセキュリティコンテキストを受け取ることと、ユーザ要求および受け取ったセキュリティコンテキストに基づいて、要求されたデータについてキャッシュを検索することと、要求されたデータがキャッシュ内に発見された場合、キャッシュされたデータをユーザ要求に応答して返すことと、要求されたデータがキャッシュ内に発見されない場合、要求されたデータをデータ源から入手し、入手したデータをキャッシュに格納し、入手したデータをセキュリティコンテキストに関連付け、要求されたデータをユーザ要求に応答して返すこととを含む方法を提供する。好ましくは、本発明は、キャッシュされたデータが、キャッシュされたデータをセキュリティコンテキストに関連付ける対応するリストと共に格納される方法であって、要求されたデータがキャッシュ内に発見されない場合、キャッシュに格納された入手したデータをセキュリティコンテキストに関連付けるための新たなリストを、キャッシュに格納された入手したデータへの参照を格納することにより生成する、方法を提供する。好ましくは、本発明は、新たなリストがリストストレージユニットに格納され、その中で、格納されたリストの数が受け取ったユーザクエリに基づいてインクリメンタルに増加する、方法を提供する。好ましくは、本発明は、キャッシュされたデータにおける変化がリストの一貫性を損なう場合に、リストをリストストレージユニットからパージすることをさらに含む方法を提供する。好ましくは、本発明は、キャッシュを使用する前にリストストレージユニットを初期化することをさらに含む方法であって、初期化することが、共通に用いられるセキュリティコンテキストについて共通に用いられるデータについてのクエリをデータ源に提出することと、クエリの結果をキャッシュにロードすることと、キャッシュされたデータを参照するセキュリティリストを作成することとを含む、方法を提供する。好ましくは、本発明は、格納されたリストを冗長性について検査することをさらに含む方法であって、2つの同一のリストが発見された場合には2つの同一のリストが単一のリストに纏められる、方法を提供する。好ましくは、本発明は、データがメタデータである方法を提供する。好ましくは、本発明は、セキュリティコンテキストがユーザセキュリティプロファイルである方法を提供する。別の態様から見ると、本発明は、ユーザとデータ源とに接続されたシステムにおけるセキュアなキャッシング方法であって、データ源が、ユーザのセキュリティコンテキストに基づいて定められたアクセス権を有する方法を提供する。本方法は、セキュリティコンテキストおよびデータ識別子を含むユーザ要求を受け取ることと、セキュリティコンテキストおよびデータ識別子により識別されるリストの存在についてリストストレージ内を検査することとを含む。リストが存在しない場合、セキュリティコンテキストおよびデータ識別子により識別されるリストをリストストレージ内に作成し、データ源からデータを取得し、取得したデータをデータストレージに格納し、データストレージに格納された取得したデータのストレージのアドレスを作成されたリストに取り込む。リストが存在する場合、リスト内のストレージアドレスを用いて、データストレージからデータを取得する。好ましくは、本発明は、データ識別子がキューブディメンジョン識別子である方法を提供する。好ましくは、本発明は、データストレージが複数の異種の遠隔データ源から提供されたデータを含むキャッシュである方法を提供する。好ましくは、本発明は、データストレージおよびリストストレージに事前ロードすることをさらに含む方法であって、リストストレージには、共通に用いられるセキュリティコンテキストおよびデータ識別子に対応するリストが事前ロードされ、データストレージには、事前ロードされたリストにより参照される共通に用いられるデータが事前ロードされる、方法を提供する。好ましくは、本発明は、データストレージに格納されるデータがOLAPメタデータである方法を提供する。別の態様から見ると、本発明は、ソフトウェアモジュールを実行するプロセッサと、ソフトウェアモジュールを格納するメモリとを備えた、キャッシングシステムを提供し、ソフトウェアモジュールは、データについてのユーザ要求およびセキュリティコンテキストを受け取るレシーバモジュールと、ユーザ要求および受け取ったセキュリティコンテキストに基づいて、要求されたデータについてキャッシュを検索する検索モジュールと、要求されたデータがキャッシュ内に発見された場合に、キャッシュされたデータをユーザ要求に応答して入手する管理モジュールとを備え、要求されたデータがキャッシュ内に発見されない場合には、管理モジュールは、要求されたデータをデータ源から入手し、入手したデータをキャッシュに格納し、入手したデータをセキュリティコンテキストに関連付け、要求されたデータをユーザ要求に応答して返す。好ましくは、本発明は、検索モジュールが要求されたデータをキャッシュ内に発見されない場合、管理モジュールが、キャッシュに格納された入手したデータをセキュリティコンテキストに関連付けるための新たなリストを、キャッシュに格納された入手したデータへの参照を格納することにより生成する、システムを提供する。好ましくは、本発明は、管理モジュールが、新たなリストをリストストレージユニットに格納し、その中で、格納されたリストの数が、一意の受け取ったユーザクエリに基づいてインクリメンタルに増加する、システムを提供する。好ましくは、本発明は、キャッシュされたデータにおける変化がリストの一貫性を損なう場合に、リストをリストストレージユニットからパージする、パージモジュールをさらに備えたシステムを提供する。好ましくは、本発明は、キャッシュを使用する前にリストストレージユニットを初期化する事前ロードモジュールをさらに備えたシステムを提供し、事前ロードモジュールは、共通に用いられるセキュリティコンテキストについて共通に用いられるデータについてのクエリをデータ源に提出し、クエリの結果をキャッシュに事前ロードし、キャッシュされたデータを参照する新たなセキュリティリストを作成する。好ましくは、本発明は、格納されたリストを冗長性について検査し、2つの同一のリストが発見された場合には2つの同一のリストを単一のリストに纏める、検査モジュールをさらに備えたシステムを提供する。別の態様から見ると、本発明は、セキュアなキャッシングのための命令を格納するコンピュータ可読媒体を提供し、命令は、データについてのユーザ要求およびセキュリティコンテキストを受け取ることと、ユーザ要求および受け取ったセキュリティコンテキストに基づいて、要求されたデータについてキャッシュを検索することと、要求されたデータがキャッシュ内に発見された場合、キャッシュされたデータをユーザ要求に応答して返すことと、要求されたデータがキャッシュ内に発見されない場合、要求されたデータをデータ源から入手し、入手したデータをキャッシュに格納し、入手したデータをセキュリティコンテキストに関連付けることとを含む。好ましくは、本発明は、命令が、要求されたデータがキャッシュ内に発見されない場合に、キャッシュに格納された入手したデータをセキュリティコンテキストに関連付けるための新たなリストを、キャッシュに格納された入手したデータへの参照を格納することにより生成することをさらに含む、コンピュータ可読媒体を提供する。好ましくは、本発明は、命令が、新たなリストがリストストレージユニットに格納されることをさらに含み、その中で、格納されたリストの数が一意の受け取られたユーザクエリに基づいてインクリメントに増加する、コンピュータ可読媒体を提供する。好ましくは、本発明は、命令が、キャッシュされたデータにおける変化がリストの一貫性を損なう場合に、リストをリストストレージユニットからパージすることをさらに含む、コンピュータ可読媒体を提供する。好ましくは、本発明は、命令が、キャッシュを使用する前にリストストレージユニットを初期化することをさらに含み、初期化することが、共通に用いられるセキュリティコンテキストについて共通に用いられるデータについてのクエリをデータ源に提出することと、クエリの結果をキャッシュにロードすることと、キャッシュされたデータを参照するセキュリティリストを作成することとを含む、コンピュータ可読媒体を提供する。好ましくは、本発明は、命令が、格納されたリストを冗長性について検査することをさらに含み、2つの同一のリストが発見された場合に2つの同一のリストが単一のリストに纏められる、コンピュータ可読媒体を提供する。ここで、本発明の好ましい実施形態を、例示のみの目的で、添付の図を参照して説明する。本発明の特定の実施形態と従来のデータキャッシュシステムとの対比を助けるために、ここで、従来のデータキャッシュシステムを、図1を参照して説明する。上記のように、図1は、関連分野の技術による従来のデータキャッシュを備えたBIシステムを示すブロック図である。図1において、クライアント102が、クエリサービス112を用いてデータを要求する。クエリサービス112で生成されたクエリは、要求111Aとしてキャッシュユニット110に提供される。キャッシュユニット110は、クエリサービスおよびキャッシュユニット110のモジュールとインタフェースするデータキャッシュモジュール111と、キャッシング挙動に影響を与える設定モジュール114と、データを格納するデータストレージ117と、1つまたは複数の第三者データ源101から情報を取得するデータ源インタフェース115とを含む。データキャッシュモジュール111は、ストレージ117から取得したデータ、またはストレージ117において入手できない場合には第三者データ源101から取得したデータを、クエリサービス112への応答111Bにおいて提供し、次いでクエリサービス112が、それをクライアント102に提供する。この従来のシステムにおいて、第三者データ源101が、異なるユーザに対するデータの可視性/アクセス可能性に影響するセキュリティ規則を採用している場合、上述の背景技術の節で説明した2つの典型的な手法のうちの1つが、通常は適用される。図2は、本発明の例示的な実施形態により実装されるキャッシュを備えたBIシステムを示す。この例示的な実施形態におけるメンバの取得の場合、ユーザクエリをクライアント202から受け取ると、クエリサービス212は、元のクエリを満足させるためにキャッシュユニットに対する必要なメンバ要求211Aを作成し、ディメンジョン識別子例えば地理およびユーザのセキュリティコンテキストをそうした各要求と共に渡す。データキャッシュモジュール211は、要求211Aを受け取って、キャッシュ設定モジュール214およびセキュリティ認識レイヤ216とインタフェースする、インタフェースとして働く。セキュリティ認識レイヤ216は、セキュリティリストストレージ218に格納されたセキュリティリストを管理する。これは、セキュリティリストストレージ218に格納されたセキュリティリストを、作成し、更新し、削除する。セキュリティリストストレージ218に保持されたリストは、データストレージ217に保持された、キャッシュされたデータを参照する。セキュリティ認識レイヤ216は、異なるセキュリティコンテキストについて異なることがある、種々のメンバ間の関係を含む、全てのセキュリティコンテキスト情報を管理する。セキュリティ認識レイヤ216は、キャッシュユニット210のためにデータストレージ217を保守する。この例示的な実施形態におけるメンバの取得の場合、セキュリティ認識レイヤ216は、ユーザセキュリティコンテキストおよびディメンジョン識別子の両方により識別されるセキュリティリストの存在について、セキュリティリストストレージ218内を検査する。セキュリティリストが存在する場合は、セキュリティリストストレージ218は、発見されたセキュリティリスト内に存在する、データストレージ217に格納されたメンバについての1つまたは複数のストレージアドレスへのリンクを返す。それで、メンバデータは、セキュリティ認識レイヤによってデータストレージ217から直接取得することができ、クエリサービス212への応答211Bにおいて返すことができる。セキュリティリストが存在しない場合には、セキュリティ認識レイヤ216は、ユーザのセキュリティコンテキストに関連付けられたデータ源201からディメンジョンメンバを取得するよう、データ源インタフェース215に命令する。結果として得られたメンバおよびそれらの属性は、データストレージ217内にまだ存在しない場合にはデータストレージ217に格納され、セキュリティ認識レイヤ216は、対応するストレージアドレスを用いて、セキュリティリストストレージ218内に新しいセキュリティリストを作成する。特定のメンバが既にデータストレージ217に格納されている場合には、それらは複製されないが、既存のストレージアドレスが新しいセキュリティリスト内で用いられる。次いで、要求されたメンバは、キャッシュユニット210により、応答211Bを通じて、クエリサービス212に返される。図3は、本発明の実施形態による、キャッシュされたメンバへの参照を含むセキュリティリストの例示的な構造を示す図である。図3において、セキュリティリスト320は、セキュリティコンテキストフィールド321およびディメンジョンフィールド322を含む、ヘッダを有する。このヘッダが、セキュリティリストを識別する。セキュリティリスト320の本体330は、このセキュリティリストに関連付けられたメンバのキャッシュ内格納位置へのアドレス例えば、インデックスのリストを含む。例えば、セキュリティコンテキストフィールド321の値は欧州のセールスマネージャ323であり、ディメンジョンフィールド322の値は地理324である。セキュリティリストの本体330は、キャッシュに、例えば図2のデータストレージ217に格納されているメンバに対応する、1つまたは複数のアドレスを含む。例えば、セキュリティリストの本体330は、キャッシュされたメンバスペインのアドレス、キャッシュされたメンバオランダのアドレス、およびキャッシュされたメンバイタリアのアドレスを含む。図4は、本発明の例示的な実施形態による、レベルおよびメンバの単一階層を有する、地理ディメンジョンを示す図である。地理ディメンジョンは、4つのレベルに分割することができる。即ち、ネバダおよびオンタリオのメンバを有する州state/provinceレベル、米国、カナダ、フランスおよびイタリアのメンバを有する国レベル、北アメリカおよび欧州のメンバを有する大陸レベル、並びに、主レベルまたはルートレベル、即ち、全地理レベルである。図5に示すように、異なるユーザは、地理ディメンジョンの各レベル内の異なるレベルおよびメンバへのアクセスを有する。例えば、ユーザAは、大陸レベルのメンバである北アメリカについてのデータにのみアクセスできる。従って、ユーザAは、北アメリカメンバ、並びに、米国およびカナダのようないずれかのより下位レベルメンバへのアクセスが許される。つまり、ユーザAにとっての根ノードメンバは北アメリカであり、北アメリカの全ての子ノードはユーザAからアクセス可能である。他方、欧州およびその子ノードのような国レベルにある、他の地理ディメンジョンのメンバは、ユーザAからアクセス可能ではない。図6は、例示的な実施形態による、種々のユーザについての同じディメンジョンの例示的な見え方を示す。例えば、ユーザAは、北アメリカメンバおよびその全ての子ノードにアクセス可能であり、ユーザBは、欧州メンバおよびその全ての子ノードにアクセス可能であり、ユーザCは、地理ディメンジョンの全てのメンバにアクセス可能である。図7は、キャッシュ内のディメンジョンおよびメンバへのアクセスを提供するための、1つまたは複数のユーザ用のセキュリティコンテキストに関連付けられたセキュリティリストの使用を示す。ユーザAおよびユーザEは共に、プロファイル1というセキュリティコンテキストを有する。ユーザAまたはユーザEのどちらかがデータを要求すると、プロファイル1用のセキュリティリストが発見される。このプロファイル1セキュリティリストは、そのセキュリティコンテキストを有するユーザ、例えばユーザAおよびユーザEを、北アメリカメンバおよびその全ての子にリンクさせる。図8は、他のセキュリティコンテキストであるプロファイル2およびプロファイル3用の追加のセキュリティリストを示す。ここでは、ユーザBは、プロファイル2を自身のセキュリティコンテキストとして有する。このセキュリティコンテキストは、プロファイル2セキュリティリストに関連付けられ、プロファイル2セキュリティリストは、ユーザBを欧州メンバおよびその全ての子にリンクさせる。ユーザCおよびユーザDは、プロファイル3を自身のセキュリティコンテキストとして有する。このセキュリティコンテキストは、プロファイル3セキュリティリストに関連付けられ、プロファイル3セキュリティリストは、ユーザCおよびユーザDを、地理ディメンジョン内の全てのメンバにリンクさせる。図9は、本発明の例示的な実施形態による、セキュアなメンバキャッシングプロセスを示すフローチャートである。動作501において、ユーザクエリを受け取る。BIシステムのクエリエンジンに提出されるユーザクエリは、潜在的には複数のディメンジョンを参照するが、そのようなクエリは、クエリサービスによりサブクエリに分解されるので、そのため、このセキュアなメンバキャッシングプロセスが受け取るユーザクエリは、単一ディメンジョンについてのメンバ要求であると仮定することができる。このユーザクエリは、ユーザのセキュリティコンテキストも含む。上述のように、特定のOLAPデータ源に照合してデータをクエリ/レポートする、BIシステムの所与のユーザのセキュリティコンテキストは、その認証されたユーザおよびそのOLAPデータ源についての有効なセキュリティプロファイルこのユーザが属するセキュリティグループおよびログイン時に選択されたいずれかのロールに基づくにより定められる。とは言え、ユーザのセキュリティコンテキストは、ユーザがBIシステムと対話する際に変更される可能性がある。例えば、特定のOLAPキューブに照合したレポートをする準備をするとき、ユーザは、組織内での自分のロールをさらに説明するよう促されることがある。ひとたび認証されると、このロールは、BIシステムにおけるその後の行為について、このユーザのセキュリティコンテキストの一部となり、セキュアなメンバキャッシングプロセスは、この変更されたセキュリティコンテキストを、異なるセキュリティコンテキストとみなすことになる。動作502において、動作501において受け取ったユーザクエリ内で識別されたディメンジョンおよびセキュリティコンテキストに基づいて、セキュリティリスト内における検索が行われる。合致するものが発見された場合動作503-はい、動作505において、キャッシュ内の対応するメンバデータについてのアドレス情報が入手される。次いで、動作506において、要求されたメンバデータは、入手されたアドレス情報を用いて、キャッシュから直接取得される。他方、現在のセキュリティコンテキストおよびディメンジョンについてのセキュリティリストが発見されない場合動作503-いいえ、動作504において、要求されたメンバは、データ源から取得され、キャッシュに格納される。動作507において、キャッシュに格納されたメンバへのアドレスを含む新たなセキュリティリストがキャッシュ内に作成される。例示的な実施形態において、各ディメンジョンメンバは、一度だけ、データキャッシュに格納される。そのディメンジョンについて既に遭遇したユーザセキュリティコンテキストについて、ディメンジョンメンバ取得要求がデータキャッシュに対して為されたときは、根底にあるデータ源にクエリする必要はなく、現在のディメンジョンおよびユーザセキュリティコンテキストについてのセキュリティリストにより指し示されるキャッシュされたメンバが、単に返される。同じセキュリティコンテキストを共有するあらゆるユーザ例えば、カナダ国内の全てのセールスマネージャは、そのセキュリティコンテキストに関連付けられたセキュリティリストを用いて、キャッシュに格納されたデータにアクセスすることが可能となる。図10は、例示的な実施形態による、セキュアなメンバキャッシングプロセスにおけるセキュリティリストの生成を示すフローチャートである。動作601において、ユーザクエリを受け取る。動作602において、プロセスは、受け取ったユーザクエリ内で入手したセキュリティコンテキストおよびディメンジョンに基づいて、セキュリティリストについて検索する。特に、入手されたディメンジョンおよびセキュリティコンテキストは、所定の規則に従って結合され、キーまたは識別子になる。この生成されたキーを用いて、既存のリストが検索される。生成されたキーにより識別されるセキュリティリストが存在する場合動作603-はい、動作610において、プロセスは終了する。他方、こうしたリストが発見されない場合動作603-いいえ、動作604において、新たなセキュリティリストが生成される。例えば、新たなセキュリティリストは、キーフィールドおよびアドレスフィールドを含むように初期化されることになる。キーフィールドには、生成されたキーに対応する値が割り当てられる。次に、動作605において、現在のユーザのセキュリティコンテキストにおいて、現在のディメンジョンについて、データ源からメンバデータが取得される。次に、動作606において、返された各メンバがキャッシュ内に存在するかどうか検査される。メンバが既にキャッシュ内に存在する場合動作606-はい、動作607において、キャッシュ内のこのメンバのアドレス等の、このメンバへの参照が、新たなセキュリティリストに挿入される。メンバがキャッシュに格納されていない場合動作606-いいえ、動作608において、このメンバのデータがキャッシュに取り込まれ、動作609において、キャッシュ内のこのメンバデータのアドレス等の、このメンバへの参照が、新たなセキュリティリストに加えられる。次いで、プロセスは、次に返されたメンバについて同様の動作を続行する。他のディメンジョンメンバが返されない場合、プロセスは動作610に戻って終了する。図11および図12は、本発明の例示的な実施形態による、セキュリティリストの削除を示すフローチャートである。BIシステムは、セキュリティリストの削除を含むように、キャッシュの従来の立退きeviction戦略を改訂する。特に、キャッシュの立退き戦略は、キャッシュサイズ制限または時間制限よってトリガされ、ディメンジョンごとに実行することが可能であろう。図11において、データ、この例ではメタデータをキャッシュから削除する要求を動作701において受け取り、そのメタデータは、削除用にマークされる。例えば、キャッシュのサイズ制限に既に達し、メタデータがキャッシュからディメンジョンごとにパージされていると、その後のメタデータのためにメモリが解放される。あるいは、メタデータは、時間に基づいてパージすることができる。例えば、ディメンジョン内のいずれかのメタデータが所定の時間にわたって用いられていなければ、そのディメンジョンについてのメタデータはキャッシュからパージされる。これら2つの方法の組み合わせを用いて、キャッシュから削除すべきメタデータを決定することができる。また、セキュリティ規則の変更、または、根底にあるデータ源における他のメタデータ変更例えば、徐々に変化するディメンジョンでは時として起こるような、メンバデータの更新または削除の理由で、キャッシュは、メタデータをパージする必要があることがある。キャッシュが十分に最新であることを保証するため、例示的な実施形態において、ユーザが設定可能な有効期限が提供される。有効期限に到達すると、キャッシュデータは、パージされ、再読み込みされる。例示的な実施形態において、この方式は、全てのソースシステム型式で機能し得、根底にあるセキュリティシステムについての具体的な知識を必要としない。ディメンジョンの更新またはセキュリティの更新を決定するための、更新のトリガまたはポーリングのような機構が利用可能である場合、それらの機構は、キャッシュを更新すべき時を知るために用いられる。動作702において、所定の方式に従って、削除用にマークされたメタデータが見いだされる。動作703において、削除用にマークされたメタデータのアドレスが入手される。メタデータのアドレスは、対応するセキュリティリストを決定することができるように一時的に格納される。動作704において、マークされたメタデータは削除される。動作705において、格納されたメタデータのアドレスを用いて、このメタデータについてのセキュリティリストが見いだされる。セキュリティリストは、キャッシュ内のメタデータの位置へのポインタを格納する。従って、セキュリティリスト内に保持されたいずれかのポインタが、削除されたメタデータ項目のキャッシュ位置を指し示しているならば、そのポインタは、セキュリティリストから削除される必要があり、それは動作706にて行われる。図12に示される代替的な立退き戦略は、ディメンジョンの一意識別子に基づくことができる。例えば、ディメンジョンは地理とすることができる。動作711において、キャッシュからこのディメンジョンを削除する要求を受け取る。動作712において、システムは、地理ディメンジョンにより部分的に識別される格納されたセキュリティリストについて検索する。動作713において、システムは、現在のセキュリティリストが地理ディメンジョンによるキーを付されているかどうかを判断する。そうでない場合動作713-いいえ、動作714において、最後のリストが検査されたかどうかを判断する検査が行われる。他のセキュリティリストが存在する場合、システムは、動作712に戻り、要求されたディメンジョンによるキーを付されたリストがもっとあるかどうかを検査する。例えば、1つのセキュリティリストが従業者セキュリティコンテキストおよび地理ディメンジョンについてのものであり、別のリストがセールスマネージャセキュリティコンテキストおよび時間ディメンジョンについてのものであり、別のリストが出納係セキュリティコンテキストおよび地理ディメンジョンについてのものであるとすることができる。このとき、キャッシュから削除されるディメンジョンが地理であるならば、このディメンジョンにより識別される全てのセキュリティリストが削除される必要があり、セキュリティリスト従業者/地理および出納係/地理が削除されるべきであることを意味する。現在のセキュリティリストが、要求されたディメンジョンにより部分的に識別される場合動作713-はい、動作715において、このセキュリティリストは削除される。次いで、システムは、動作714において、そのディメンジョンについて検査を要する他のリストが存在するかどうかを検査する。他のリストが存在する場合動作714-いいえ、システムは動作712に戻り、要求されたディメンジョンについてのキーを付されたリストがもっとあるかどうかを検査する。他方、全てのリストが検査された場合動作714において-はい、動作716において、ディメンジョンがキャッシュ内で検索される。システムは、同じ一意のキーまたは識別子に基づいて、キャッシュ内でディメンジョンについて検索することができ、このキーまたは識別子は、例えば文字列地理とすることができる。このディメンジョンがメタデータキャッシュ内で発見されない場合動作717-いいえ、プロセスは終了する。ディメンジョンが発見された場合動作717-はい、動作718において、システムは、ディメンジョンをキャッシュから削除する。例示的な実施形態において、且つ、BIシステムに対する付加的な最適化として、共通に用いられるデータをキャッシュに事前ロードすることができる。システムにアクセスする主なセキュリティプロファイルに属するサンプルユーザを代表して、より共通に用いられるディメンジョンについてのメンバクエリを提出することにより、予めシステムの起動時にメンバデータをデータキャッシュに事前ロードすることができる。また、BIシステムに対する付加的な最適化として、BIシステム環境内にモデリングツールを提供することができ、その目的は、ディメンジョン、階層、およびレベルといったOLAPキューブのメタデータを表現すること、並びに、このメタデータを、BIシステムクエリエンジンに自動的に提供される新たな属性で強化することである。このとき、例えばセキュア済みと呼ばれるこのモデリングツールにおける新たなディメンジョン属性をサポートすることにより、モデラは、どのキューブにおけるどのディメンジョンが実際にセキュリティ処理を要するかを特定することができる。結果として、この属性についての値をキャッシュ取得ロジックによって検証することができ、呼び出し元のクエリエンジンに返されるメンバがセキュアされる必要のないディメンジョン即ち、セキュリティが適用されることがなく、従って、可視性の制限を考慮せずにそのキャッシュされたメンバを直接返すことが適するものについてのものであるときには常に、セキュリティリストを作成および処理するオーバヘッドが解消される。セキュリティ認識メンバキャッシングのための別のメモリ最適化技術として、例示的な実施形態は、同一のセキュリティリストを認識してそれらを単一のリストに纏めるcollapse、並列にまたはスケジュールに従って実行する個別の作業を含むことができる。このように纏められた任意の2つのリストは、2つの異なるセキュリティコンテキストにおける、同じディメンジョンに属するメンバのクエリに由来したものであろう。ひとたび2つのリストが単一のリストになると、この単一のリストを識別するキー付け機構は、元のリストの作成に寄与した2つのセキュリティコンテキストがいずれも、得られた単一のリストにいまや関連付けられたことを保証する。さらに、利用可能なシステムリソースに応じて、異なる型式のストレージ機構を用いて、キャッシュのサイズを、異なる量のデータを保持するように調節することが可能である。例えば、キャッシングレイヤは、どれだけの量のディメンジョンがRAMに格納され、どれだけの量がディスク上に格納されるかのバランスを取ることができる。大きいディメンジョンは、1,000,000個を超えるメタデータメンバを含むことがある。従って、1,000,000個のメンバが実際にキャッシュ内に存在しても、これらをRAM内に保持することも可能であり、またはディスクにパージすることも可能である。上記の例示的な実施形態は、OLAPメンバに関するキャッシングを説明する。メタデータのような様々な異なる種類のデータのキャッシングを、上述の例示的な構造および方法を用いて実装することができる。即ち、上述の例示的な実施形態は、どちらかと言えば、セキュアなOLAPデータ源に接続されたシステムにおけるセキュアなメンバキャッシングに有益であるが、これを他の型式のデータを伴う実施形態において用いることも可能である。例えば、OLAPディメンジョンデータ、階層データ、およびレベルデータを含むキャッシュを、これらの型式のデータへのアクセスをデータ源の規則に従ってセキュアにすることを要するときに最適化するために、これを用いることが可能である。タプル値へのアクセスをセキュアにすることを要するときに、OLAPセルデータを含むキャッシュを最適化するために、これを用いることも可能である。更に、特定のキャッシュされたデータへのアクセスをデータ源の規則に従ってセキュアにすることを要するときにはいつでも、セキュアな非OLAPデータ源に接続されたシステムにおける非OLAPデータを含むキャッシュを最適化するために、これを用いることが可能である。図13は、例示的な実施形態による、コンピュータ/サーバシステム800を示すブロック図である。システム800は、コンピュータ/サーバプラットフォーム801、周辺デバイス802およびネットワークリソース803を含む。コンピュータプラットフォーム801は、コンピュータプラットフォーム801の種々の部分に渡ってそれらの間で情報を通信するためのデータバス804または他の通信機構と、バス804に結合された、情報を処理し他の計算および制御のタスクを実行するためのプロセッサ805とを含むことができる。コンピュータプラットフォーム801は、種々の情報並びにプロセッサ805により実行される命令を格納するための、バス804に結合された、ランダムアクセスメモリRAMまたは他の動的ストレージデバイス等の揮発性ストレージ806も含む。揮発性ストレージ806は、プロセッサ805による命令の実行の間、一時的な変数または他の中間的な情報を格納するために用いることもできる。コンピュータプラットフォーム801は、基本入出力システムBIOS等、プロセッサ805用の静的な情報および命令、並びに種々の設定パラメタを格納するための、バス804に結合された読み出し専用メモリROMまたはEPROM807または他の静的なストレージデバイスをさらに含むことができる。情報および命令を格納するために、磁気ディスク、光ディスク、またはソリッドステートフラッシュメモリデバイス等の永続性ストレージデバイス808が設けられ、バス804に結合される。例えば、永続性ストレージデバイス808は、1つまたは複数のセキュリティリストを格納することができ、メタデータメンバを格納するキャッシュを含むこともできる。コンピュータプラットフォーム801は、コンピュータプラットフォーム801のユーザに対して情報を表示するための、ブラウン管CRT、プラズマディスプレイ、または液晶ディスプレイLCD等の表示デバイス809に、バス804を介して結合することができる。プロセッサ805への情報伝達およびコマンド選択のために、英数字および他のキーを含む入力デバイス820が、バス804に結合される。別の種類のユーザ入力デバイスは、方向情報およびOLAPクエリ等のコマンド選択をプロセッサ805に伝達するため、並びに、表示装置809上のカーソル動作を制御するための、マウス、トラックボール、カーソル方向キー等のカーソル制御デバイス811である。この入力デバイスは、典型的には、第1の軸例えば、xおよび第2の軸例えば、yの2軸において自由度2を有し、これにより、デバイスが面内の位置を指定することが可能になる。コンピュータプラットフォーム801により用いられるメタデータを格納する外部ストレージデバイスデータ源812を、バス804を介してコンピュータプラットフォーム801に接続することができる。簡単にするために、1つのデータ源812だけが描かれているが、多数のデータ源812、並びに他の種類のデータ源が存在することがある。本明細書で用いられるコンピュータ可読媒体という用語は、プロセッサ805に実行のための命令を提供することに関与する任意の媒体を指す。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読ストレージ媒体とすることができる。コンピュータ可読ストレージ媒体は、例えば、電子的、磁気的、光学的、電磁気的、赤外線若しくは半導体のシステム、装置若しくはデバイス、または上記のものの任意の適切な組み合わせとすることができるが、これらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例非網羅的なリストは、以下のもの、即ち、2つ以上の電線を有する電気的接続、フロッピーディスク若しくはフレキシブルディスク等のポータブルコンピュータディスケット、磁気テープ若しくは任意の他の磁気媒体、ハードディスク、ランダムアクセスメモリRAM、読み出し専用メモリROM、消去可能プログラム可能読み出し専用メモリEPROMまたはフラッシュメモリ、メモリカード、任意の他のメモリチップ若しくはカートリッジ、光ファイバ、ポータブルコンパクトディスク型読み出し専用メモリCD-ROM、任意の他の光媒体、パンチカード、紙テープ、孔のパターンを伴う任意の他の物理的媒体、若しくはコンピュータが読み取ることが可能な任意の他の媒体、またはこれらの適切な組み合わせを含む。本文書の文脈においては、コンピュータ可読ストレージ媒体は、命令実行システム、装置若しくはデバイスによって、またはこれらと関連して用いるためのプログラムを、収容または格納することができる任意の有形の媒体とすることができる。コンピュータ可読信号媒体は、例えば、ベースバンド内または搬送波の一部としてその中に具体化されたコンピュータ可読プログラムコードを有する、伝搬されるデータ信号を含むことができる。このような伝搬信号は、電磁的、光学的またはそれらの任意の適切な組み合わせを含むがこれらに限定されない種々の形態のいずれかをとることができる。コンピュータ可読信号媒体は、データバス804を構成する電線を含めて、同軸ケーブル、銅線および光ファイバを含むことができる。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではなく、且つ、命令実行システム、装置若しくはデバイスによって、またはこれらと関連して用いるためのプログラムを伝達、伝搬または伝送することができる、任意のコンピュータ可読媒体とすることができる。コンピュータ可読媒体上に具体化されたプログラムコードは、無線、有線、光ファイバケーブル、RF等、または上記のものの任意の適切な組み合わせを含むがこれらに限定されない、任意の適切な媒体を用いて伝送することができる。例示的な実施形態の態様に関する動作を実行するためのコンピュータプログラムコードは、Java、Smalltalk、C.NET等のようなオブジェクト指向プログラミング言語、および従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組み合わせで記述することができる。プログラムコードは、全体がユーザのコンピュータ上で実行される場合もあり、独立したソフトウェアパッケージとして、一部がユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、または全体が遠隔コンピュータ若しくはサーバ上で実行される場合もある。遠隔コンピュータは、ローカルエリアネットワークLAN若しくは広域ネットワークWANを含む任意のタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、または外部コンピュータへの例えば、インターネットサービスプロバイダを用いるインターネットを通じた接続がなされる場合もある。コンピュータ可読媒体は、本明細書において説明される方法および/または技術のいずれかを実装するための命令を運ぶことができる機械可読媒体の単なる一例に過ぎない。このような媒体は、不揮発性媒体および揮発性媒体を含むがこれらに限定されない多くの形態をとることができる。不揮発性媒体は、例えば、ストレージデバイス808のような光学ディスクまたは磁気ディスクを含む。揮発性媒体は、揮発性ストレージ806のような動的メモリを含む。種々の形態のコンピュータ可読媒体が、プロセッサ805に実行のための1つまたは複数の命令の1つまたは複数のシーケンスを運ぶことに関与することができる。例えば、命令を、最初に、遠隔コンピュータから磁気ディスク上に運ぶことができる。あるいは、遠隔コンピュータは、命令を自己の動的メモリにロードし、その命令を、モデムを用いて電話線を通じて送信することができる。コンピュータシステム800のローカルのモデムが、電話線上のデータを受信し、赤外線送信機を用いてデータを赤外線信号に変換する。赤外線検出器は、赤外線で運ばれたデータを受信することができ、適切な回路が、データをデータバス804に乗せることができる。バス804は、データを揮発性ストレージ806に運び、そこからプロセッサ805が命令を取得し実行する。揮発性メモリ806から取得された命令は、プロセッサ805によって実行される前か後のどちらかに、随意に、永続性ストレージデバイス808に格納することができる。命令は、当該技術分野において周知の種々のネットワークデータ通信プロトコルを用いて、インターネットを介してコンピュータプラットフォーム801にダウンロードすることもできる。コンピュータプラットフォーム801は、データバス804に結合されたネットワークインタフェースカード813等の通信インタフェースも含むことができる。通信インタフェース813は、ローカルネットワーク815に接続されたネットワークリンク814に、双方向データ通信結合を提供する。例えば、通信インタフェース813は、対応する型式の電話線にデータ通信接続を提供する、サービス総合ディジタル網ISDNカードまたはモデムとすることができる。別の例として、通信インタフェース813は、適合するLANにデータ通信接続を提供するローカルエリアネットワークインタフェースカードLANNICとすることができる。周知の802.11a、802.11b、802.11gおよびブルートゥース等の無線リンクも、ネットワークの実装に用いることができる。これらのどのような実装においても、通信インタフェース813は、種々の型式の情報を表現するデジタルデータストリームを搬送する、電気信号、電磁信号または光信号を送受信する。ネットワークリンク813は、典型的には、1つまたは複数のネットワークを通じた、他のネットワークリソースとのデータ通信を提供する。例えば、ネットワークリンク814は、ローカルネットワーク815を通じて、ホストコンピュータ816またはネットワークストレージ/サーバ822への接続を提供する。追加的にまたは代替的に、ネットワークリンク813は、ゲートウェイ/ファイアウォール817を通じて、インターネットのような広域ネットワークまたはグローバルネットワーク818に接続することができる。従って、コンピュータプラットフォーム801は、データ源の別の例である遠隔ネットワークストレージ/サーバ819等、インターネット818上のどこに位置するネットワークリソースにもアクセスすることが可能である。他方、コンピュータプラットフォーム801もまた、ローカルエリアネットワーク815および/またはインターネット818上のどこに位置するクライアントからでもアクセスすることができる。ネットワーククライアント820および821は、システム801に遠隔的にアクセスすることができる。ローカルネットワーク815およびインターネット818は共に、デジタルデータストリームを搬送する電気信号、電磁信号または光信号を用いる。コンピュータプラットフォーム801へとデジタルデータを搬送し、コンピュータプラットフォーム801からデジタルデータを搬送する、種々のネットワークを通る信号、並びにネットワークリンク814上の信号および通信インタフェース813を通る信号は、情報を運ぶ搬送波の例示的な形態である。コンピュータプラットフォーム801は、インターネット818およびLAN815を含む種々のネットワーク、ネットワークリンク814並びに通信インタフェース813を通じて、プログラムコードを含めて、メッセージを送信し、データを受信することが可能である。インターネットの例において、システム801がネットワークサーバとして動作するとき、それは、クライアント820および/またはクライアント821上で実行中のアプリケーションプログラムに対して、インターネット818、ゲートウェイ/ファイアウォール817、ローカルエリアネットワーク815および通信インタフェース813を通じて、要求されたコードまたはデータを送出することができる。同様に、それは、他のネットワークリソースからコードを受信することができる。受信されたコードは、受信されたときにプロセッサ805により実行することもでき、および/または、後で実行するために永続性ストレージデバイス808若しくは揮発性ストレージデバイス806または他の不揮発性ストレージに格納することもできる。この方式で、コンピュータシステム801は、搬送波の形態のアプリケーションコードを入手することができる。図面内のフローチャートおよびブロック図は、種々の例示的な実施形態による、システム、方法およびコンピュータプログラム製品の可能な実装の、アーキテクチャ、機能および動作を示す。この点に関して、フローチャートおよびブロック図内の各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能な命令を含む、モジュール、セグメント、またはコードの一部を表すことができる。幾つかの代替的な実装において、ブロック内に記された機能は、図面に記された順序とは異なる順序で行なわれることもあることにも留意すべきである。例えば、連続して図示された2つのブロックが、実際には実質的に同時に実行されることもあり、またはこれらのブロックは、関与する機能に応じて、ときには逆順で実行されることもある。ブロック図および/またはフローチャート図の各ブロック、並びにブロック図および/またはフローチャート図内のブロックの組み合わせは、指定された機能または行為を実行する専用ハードウェアベースのシステム、または専用ハードウェアとコンピュータ命令との組み合わせによって実装することができることにも留意されたい。本明細書において用いられる用語は、特定の実施形態を説明する目的のためのものにすぎず、本発明を限定することを意図するものではない。本明細書で用いられるとき、単数形1つのa、1つのanおよびそのtheは、文脈が明らかにそうでないことを示していない限り、複数形も含むことが意図されている。本明細書で用いられるとき、含むおよび/または含んでいるという用語は、提示された特徴、整数、ステップ、動作、要素、および/またはコンポーネントが存在することを特定するものであるが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、コンポーネント、および/またはそれらのグループの存在または追加を排除するものではないことがさらに理解されるであろう。以下の特許請求の範囲における全ての手段またはステップと機能との組み合わせミーンズまたはステッププラスファンクション要素の対応する構造、材料、行為および均等物は、その機能を、明確に特許請求されているように他の特許請求された要素と組み合わせて実行するための、いかなる構造、材料または行為をも含むことが意図される。例示的な実施形態の説明は、例示および説明の目的で提示されたものであるが、網羅的であることを意図するものではなく、本発明を開示された形態に限定することを意図するものでもない。本発明の範囲および精神から逸脱することのない多くの変更および変形が、当業者には明らかであろう。実施形態は、本発明の原理および実際の用途を最も良く説明するため、および、当業者が本発明を種々の変更を有する種々の実施形態について企図される特定の使用に適したものとして理解することを可能にするために、選択および記載された。"