(57)【特許請求の範囲】
【請求項１】
メモリと、コンピュータサーバの動作を制御するように構成されたプロセッサとを含む、コンピュータサーバであって、
該プロセッサは、該コンピュータサーバに、
データサーバから、コンピュータサーバにアクセスすることを許可された少なくとも1名のユーザに対応する関連付けられたデータ許可を有する権利者向けデータを受信させ、
権利者向けデータと該権利者向けデータの関連付けられたデータ許可に対応する関連識別子とを記憶することを含む、権利者向けデータのキャッシングを行わせ、
コンピュータサーバの第1のユーザからの権利者向けデータの少なくとも一部分を求める第1のデータ要求を受信させ、
コンピュータサーバの第1のユーザに対応するユーザ許可を検索させ、かつ
第1のユーザの許可と権利者向けデータの関連付けられたデータ許可に対応する関連識別子とに基づくものである、第1のユーザの許可が前記キャッシュされた権利者向けデータの関連付けられたデータ許可と交わるかどうかの判定を行わせる
ように構成され、
該コンピュータサーバは、
第1のユーザの許可が権利者向けデータの関連付けられたデータ許可と交わる場合に、第1のユーザに前記キャッシュされた権利者向けデータの少なくともサブセットを伝送するようにさらに構成されているとともに、
コンピュータサーバの第2のユーザから、第1のユーザから受信された第1のデータ要求と同じ権利者向けデータを要求する第2のデータ要求を受信し、
前記要求された権利者向けデータに関する第2のユーザの許可が前記第1のユーザの許可とは異なる、コンピュータサーバの第2のユーザに対応するユーザ許可を検索し、かつ
前記第2のユーザ要求に応答して、キャッシュされた権利者向けデータの異なるサブセットを第2のユーザに伝送する
ようにさらに構成されている、
コンピュータサーバ。
【請求項２】
コンピュータサーバが、キャッシュされた権利者向けデータを第1のユーザに伝送する前に、該キャッシュされた権利者向けデータが失効しているかどうか判定するようにさらに構成されている、請求項1記載の装置。
【請求項３】
コンピュータサーバが、キャッシュされた権利者向けデータが変更されるときに該キャッシュされた権利者向けデータの更新を受信するようにパブリッシュサーバに利用登録するようにさらに構成されている、請求項1記載の装置。
【請求項４】
コンピュータサーバが、キャッシュデータの失効の前にパブリッシュサーバから更新データを受信するように構成されている、請求項3記載の装置。
【請求項５】
コンピュータサーバが、
コンピュータサーバの第1のユーザから、第1のデータ要求と同じ権利者向けデータを要求する第2のデータ要求を受信し、
第1のユーザの許可が、第1のデータ要求を受信した後で変更されていると判定し、かつ
第1のユーザにキャッシュされた権利者向けデータの異なるサブセットを伝送する
ようにさらに構成されている、請求項1記載の装置。
【請求項６】
データサーバから、コンピュータサーバにアクセスすることを許可された少なくとも1名のユーザに対応する関連付けられたデータ許可を有する権利者向けデータを受信する工程、
権利者向けデータと該権利者向けデータの関連付けられたデータ許可に対応する関連識別子とを記憶することを含む、権利者向けデータのキャッシングを行う工程、
第1のユーザから権利者向けデータの少なくとも一部分を求める第1の要求を受信する工程、
第1のユーザの許可と権利者向けデータの関連付けられたデータ許可に対応する関連識別子とに基づくものである、第1のユーザの許可が前記キャッシュされた権利者向けデータの関連付けられたデータ許可と交わるかどうかの判定を行う工程、
第1のユーザの許可が権利者向けデータの関連付けられたデータ許可と交わる場合に、第1のユーザに前記キャッシュされた権利者向けデータの少なくともサブセットを伝送する工程、
コンピュータサーバの第2のユーザから、第1のユーザから受信された第1のデータ要求と同じ権利者向けデータを要求する第2のデータ要求を受信する工程、
前記要求された権利者向けデータに関する第2のユーザの許可が前記第1のユーザの許可とは異なる、コンピュータサーバの第2のユーザに対応するユーザ許可を検索する工程、および
第2のユーザ要求に応答して、キャッシュされた権利者向けデータの異なるサブセットを第2のユーザに伝送する工程
を含む方法。
【請求項７】
第1のユーザにキャッシュされた権利者向けデータを伝送する前に、該キャッシュされた権利者向けデータが失効しているかどうか判定する工程
をさらに含む、請求項6記載の方法。
【請求項８】
権利者向けデータのキャッシングを行う工程が、権利者向けデータを該権利者向けデータの関連付けられたデータ許可に対応するキャッシュシグネチャと共に記憶する工程を含む、請求項6記載の方法。
【請求項９】
キャッシュシグネチャがユーザ要求に対応する情報を含む、請求項8記載の方法。
【請求項１０】
更新データを受信するためにパブリッシュサーバに利用登録する工程、
パブリッシュサーバから権利者向けデータについての非同期データ更新を受信する工程、および
キャッシュされた権利者向けデータを更新された権利者向けデータで置き換える工程
をさらに含む、請求項6記載の方法。
【請求項１１】
第1の要求のハッシュ値を計算することによってキャッシュシグネチャを生成する工程
をさらに含む、請求項7記載の方法。
【請求項１２】
ユーザの許可がデータ許可と交わるかどうかの判定を行う工程が、許可サーバからのユーザの許可を要求および受信する工程を含む、請求項6記載の方法。
【請求項１３】
コンピュータシステム上で第1のユーザ許可を有する第1のユーザに対応する第1のデータ要求を受信する工程、
第1のデータ要求と第1のユーザ許可とに対応する第1の応答データがローカル・データ・キャッシュに記憶されているかどうか判定する工程、
第1の応答データがローカル・データ・キャッシュに記憶されている場合に、第1のユーザに応答データを送信する工程、
コンピュータシステム上で、第1のユーザ許可とは異なる第2のユーザ許可を有する第2のユーザに対応する、第1のデータ要求と同じである第2のデータ要求を受信する工程、
第2のユーザ要求と第2のユーザ許可とに対応する第2の応答データがローカル・データ・キャッシュに記憶されているかどうか判定する工程、
第2の応答データがローカル・データ・キャッシュに記憶されている場合に、第2のユーザに第1の応答データとは異なる第2の応答データを送信する工程
を含む方法。
【請求項１４】
データがキャッシュされていない場合に、データに第1のユーザの要求または第2のユーザの要求のどちらかに対応するデータを要求し、データサーバから受信されたデータをキャッシュする工程
をさらに含む、請求項13記載の方法。
【請求項１５】
キャッシュデータのサブセットを送信する前にキャッシュデータの有効期限を確認し、キャッシュデータが失効していない場合に限り、第1のユーザまたは第2のユーザの一方にキャッシュデータのサブセットを送信する工程
をさらに含む、請求項13記載の方法。
【請求項１６】
実行されると、プロセッサに、
コンピュータシステム上で第1のユーザ許可を有する第1のユーザに対応する第1のデータ要求を受信する工程、
第1のデータ要求と第1のユーザ許可とに対応する第1の応答データがローカル・データ・キャッシュに記憶されているかどうか判定する工程、
第1の応答データがローカル・データ・キャッシュに記憶されている場合に、第1のユーザに応答データを送信する工程、
コンピュータシステム上で、第1のユーザ許可とは異なる第2のユーザ許可を有する第2のユーザに対応する、第1のデータ要求と同じである第2のデータ要求を受信する工程、
第2のユーザ要求と第2のユーザ許可とに対応する第2の応答データがローカル・データ・キャッシュに記憶されているかどうか判定する工程、
第2の応答データがローカル・データ・キャッシュに記憶されている場合に、第2のユーザに第1の応答データとは異なる第2の応答データを送信する工程
を含む方法を実施させるコンピュータ可読命令を記憶している、一つまたは複数のコンピュータ可読媒体。
【請求項１７】
データがキャッシュされていない場合に、データに第1のユーザの要求または第2のユーザの要求のどちらかに対応するデータを要求し、データサーバから受信されたデータをキャッシュする工程
をさらに含む、請求項16記載の方法。
【請求項１８】
キャッシュデータのサブセットを送信する前にキャッシュデータの有効期限を確認し、キャッシュデータが失効していない場合に限り、第1のユーザまたは第2のユーザの一方にキャッシュデータのサブセットを送信する工程
をさらに含む、請求項16記載の方法。
【請求項１９】
第1のユーザに対応する、第1のデータ要求と同じデータを要求する第3のデータ要求を受信する工程、
第1のユーザの許可が、第1のデータ要求を受信した後で変更されていると判定する工程、
第1のユーザに、第1のデータ要求に応答して第1のユーザに送信された応答データとは異なる応答データを送信する工程
をさらに含む、請求項16記載の方法。
【請求項２０】
権利者向けデータのキャッシングを行う工程が、権利者向けデータを、該権利者向けデータの関連付けられたデータ許可に対応する権利トークンと共に記憶する工程を含む、請求項8記載の方法。
【請求項２１】
権利トークンが、同じキャッシュされた権利者向けデータにアクセスする同様の許可を有するユーザのグループ化を可能にする、請求項20記載の方法。
【請求項２２】
キャッシュの更新の通知が、階層として配置され、データ・キャッシュ・サーバ上で記憶されている複数のキャッシュを更新することができる、請求項10記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の分野
本発明は、情報の電子的な記憶および配布のための、詳細には、許可された受け手への情報の配布のためのコンピュータベースのシステムおよび方法を対象とする。
【背景技術】
【０００２】
背景
インターネットなどのグローバル・コンピュータ・ネットワークは、世界中に位置する広範な人々に情報が配布されることを可能にする。インターネットの利点の一つは、使用される通信プロトコルが非占有的であり、よって、カスタマイズされたハードウェアまたはソフトウェアを必要とせずにエンドユーザがインターネットにアクセスし、これを使用することを可能にすることである。多くの異なる産業が、コンピュータネットワークを、その顧客が膨大な量のデータに迅速にアクセスすることを可能にするための手段として使用する。これらの企業においては、保護されたデータと保護されていないデータの両方がリモートユーザに提供される速度がきわめて重要であり、これらの企業を他の企業と区別する部分であることが多い。企業がユーザにより迅速にデータを配布することを可能にする一般的な技法の一つは、ネットワーク上でデータを要求するユーザのより近くに置かれているプロキシサーバの使用を伴う。プロキシサーバを使用してユーザの最初のデータ要求に対する応答をキャッシュすることにより、同じユーザからの後続の同一データの要求に対する応答を、同じ情報を再度検索するためにデータサーバに問い合わせることを必要とせずに、プロキシサーバによって処理することができる。
【０００３】
しかし、ユーザにデータを提供するためのプロキシサーバのユーザは、データ提供者がデータへのアクセスの強固な制御を必要とするときには、適当ではない場合もある。例えば、財務データ提供者は、財務データの配布を規定する法規に従うことが求められる。さらに、財務情報はきわめて価値の高いものであり、財務データ提供者は、無許可の顧客および/または不払いの顧客からのアクセスを防止する手段を持たなければならない。したがって、財務データ提供者も、他の産業のデータ提供者も、一部のユーザだけに制限される権利者向けデータ（entitled data）を生成する場合がある。多くの現行システムにおいて、権利者向けデータがデータ源に要求され、送信中のデータは、無許可のユーザがキャッシュデータにアクセスするのを防止するためにキャッシュ不能と表示される。例えば、ユーザが保護されたデータの提供者に権利者向けデータを要求し、それを受け取った後で、保護されたデータにアクセスする当該ユーザの許可はその後に取り消され得る。キャッシュ不能データはプロキシサーバにおいてキャッシュされず、同じデータを求める後続のデータ要求は、データサーバから再度検索される必要がある。
【０００４】
しかし、ユーザに権利者向けデータを提供する大規模なクライアント・サーバシステムでは、サーバ容量は多かれ少なかれシステム上のユーザの数に比例する。したがって、ユーザによって生成されるあらゆる要求または新しいユーザの追加の都度、権利者向けデータを生成し、送信するのに必要とされるサーバの容量は増加する。サーバは単位時間当たり決まった数の要求だけしか処理することができず、そのため、要求の数が増加するにつれて、サーバの数も増加しなければならず、これによって金融機関が権利者向けデータを生成し、送信するための費用が大幅に増加する。したがって、権利者向けデータへのアクセスを提供するためのさらに別の方法およびシステムが求められている。
【発明の概要】
【０００５】
概要
本発明は、以下でより詳細に説明し、図に示すが、権利者向けデータを管理するためのデータ管理システムに関するものである。本発明の各局面は、より迅速なデータへのアクセスおよびデータの配信を可能にするためのデータ・キャッシュ・サーバ上での権利者向けデータのキャッシングに関するものである。
【０００６】
少なくとも一つの態様においては、提供者のネットワークの入口点の近くでデータをキャッシュするデータ・キャッシュ・サーバなどのコンピュータシステムを説明する。顧客の近くの位置においてデータをキャッシュする、すなわちデータを記憶することができれば、データを生成するデータサーバの数を増やさずにユーザの数およびユーザ要求の数を増加させることが可能になる。提供者のネットワークの入口点の近くにデータ・キャッシュ・サーバが位置すれば、データをエンドユーザに送信するのに要する時間が短縮される。というのは、データ・キャッシュ・サーバへのデータの転送は普通、データを求めるユーザの要求の前に行われるからである。加えて、データ・キャッシュ・サーバはデータサーバほど高価ではなく、したがって、データを生成しユーザに送信するための金融機関が負担する費用が減少する。
【０００７】
少なくとも一つの態様において、コンピュータサーバは、データサーバから権利者向けデータを受信し、受信したデータをキャッシュするように構成される。権利者向けデータは、コンピュータサーバへのアクセスを許可された少なくとも1名のユーザに対応する関連付けられたデータ許可を有し得る。コンピュータサーバは、権利者向けデータをキャッシュし、権利者向けデータと、権利者向けデータの関連付けられたデータ許可に対応する関連識別子とを記憶し得る。コンピュータサーバは、ユーザに対応するユーザ許可を検索し、ユーザの許可がキャッシュされた権利者向けデータの関連付けられたデータ許可と交わる（intersect）かどうか判定し得る。ユーザの許可がキャッシュされた権利者向けデータの関連付けられたデータ許可と交わる場合に、コンピュータサーバは、キャッシュされた権利者向けデータの少なくとも一部をユーザに送信し得る。
【０００８】
少なくとも一つの態様において、データキャッシュ管理の方法は、コンピュータシステムが、第1のユーザ許可を得ている第1のユーザに対応する第1のデータ要求を受信する工程を含み得る。コンピュータシステムは、第1のデータ要求と第1のユーザ許可とに対応する第1の応答データがローカル・データ・キャッシュに記憶されているかどうか判定し得る。第1の応答データがローカルキャッシュに記憶されている場合に、第1のユーザに応答データが送信され得る。第2のユーザ許可を得ている第2のユーザに対応する第2のデータ要求が受信され得る。第2のユーザ許可は第1のユーザ許可と異なり得る。コンピュータシステムは、第2のユーザ要求と第2のユーザ許可とに対応する第2の応答データがローカル・データ・キャッシュに記憶されているかどうか判定し、第2の応答データがローカル・データ・キャッシュに記憶されている場合に、第2のユーザに第2の応答データを送信し得る。第2の応答データは第1の応答データと異なり得る。
【０００９】
[本発明1001]
メモリと、
コンピュータサーバに、
データサーバから、コンピュータサーバにアクセスすることを許可された少なくとも1名のユーザに対応する関連付けられたデータ許可を有する権利者向けデータを受信させ、
権利者向けデータと該権利者向けデータの関連付けられたデータ許可に対応する関連識別子とを記憶することを含む、権利者向けデータのキャッシングを行わせ、
コンピュータサーバの第1のユーザからの権利者向けデータの少なくとも一部分を求める第1のデータ要求を受信させ、
コンピュータサーバの第1のユーザに対応するユーザ許可を検索させ、かつ
第1のユーザの許可と権利者向けデータの関連付けられたデータ許可に対応する関連識別子とに基づくものである、第1のユーザの許可が前記キャッシュされた権利者向けデータの関連付けられたデータ許可と交わるかどうかの判定を行わせ、
第1のユーザの許可が権利者向けデータの関連付けられたデータ許可と交わる場合に、コンピュータサーバが、第1のユーザに前記キャッシュされた権利者向けデータの少なくともサブセットを伝送するようにさらに構成されている
ように構成された、コンピュータサーバの動作を制御するように構成されたプロセッサと
を含む、コンピュータサーバ。
[本発明1002]
コンピュータサーバが、キャッシュされた権利者向けデータを第1のユーザに伝送する前に、該キャッシュされた権利者向けデータが失効しているかどうか判定するようにさらに構成されている、本発明1001の装置。
[本発明1003]
コンピュータサーバが、
コンピュータサーバの第2のユーザから、第1のユーザから受信された第1のデータ要求と同じ権利者向けデータを要求する第2のデータ要求を受信し、
コンピュータサーバの第2のユーザに対応する、第1のユーザの許可とは異なる、前記要求された権利者向けデータに関するユーザ許可を検索し、かつ
第2のユーザ要求に応答して、キャッシュされた権利者向けデータの異なるサブセットを第2のユーザに伝送する
ようにさらに構成されている、本発明1001の装置。
[本発明1004]
コンピュータサーバが、キャッシュされた権利者向けデータが変更されるときに該キャッシュされた権利者向けデータの更新を受信するようにパブリッシュサーバに利用登録するようにさらに構成されている、本発明1001の装置。
[本発明1005]
コンピュータサーバが、キャッシュデータの失効の前にパブリッシュサーバから更新データを受信するように構成されている、本発明1004の装置。
[本発明1006]
コンピュータサーバが、
コンピュータサーバの第1のユーザから、第1のデータ要求と同じ権利者向けデータを要求する第2のデータ要求を受信し、
第1のユーザの許可が、第1のデータ要求を受信した後で変更されていると判定し、かつ
第1のユーザにキャッシュされた権利者向けデータの異なるサブセットを伝送する
ようにさらに構成されている、本発明1001の装置。
[本発明1007]
データサーバから、コンピュータサーバにアクセスすることを許可された少なくとも1名のユーザに対応する関連付けられたデータ許可を有する権利者向けデータを受信する工程、
権利者向けデータと該権利者向けデータの関連付けられたデータ許可に対応する関連識別子とを記憶することを含む、権利者向けデータのキャッシングを行う工程、
第1のユーザから権利者向けデータの少なくとも一部分を求める第1の要求を受信する工程、
第1のユーザの許可と権利者向けデータの関連付けられたデータ許可に対応する関連識別子とに基づくものである、第1のユーザの許可が前記キャッシュされた権利者向けデータの関連付けられたデータ許可と交わるかどうかの判定を行う工程、および
第1のユーザの許可が権利者向けデータの関連付けられたデータ許可と交わる場合に、第1のユーザに前記キャッシュされた権利者向けデータの少なくともサブセットを伝送する工程
を含む方法。
[本発明1008]
第1のユーザにキャッシュされた権利者向けデータを伝送する前に、該キャッシュされた権利者向けデータが失効しているかどうか判定する工程
をさらに含む、本発明1007の方法。
[本発明1009]
権利者向けデータのキャッシングを行う工程が、権利者向けデータを該権利者向けデータの関連付けられたデータ許可に対応するキャッシュシグネチャと共に記憶する工程を含む、本発明1007の方法。
[本発明1010]
キャッシュシグネチャがユーザ要求に対応する情報を含む、本発明1009の方法。
[本発明1011]
更新データを受信するためにパブリッシュサーバに利用登録する工程、
パブリッシュサーバから権利者向けデータについての非同期データ更新を受信する工程、および
キャッシュされた権利者向けデータを更新された権利者向けデータで置き換える工程
をさらに含む、本発明1007の方法。
[本発明1012]
第1の要求のハッシュ値を計算することによってキャッシュシグネチャを生成する工程
をさらに含む、本発明1008の方法。
[本発明1013]
ユーザの許可がデータ許可と交わるかどうかの判定を行う工程が、許可サーバからのユーザの許可を要求および受信する工程を含む、本発明1007の方法。
[本発明1014]
コンピュータシステム上で第1のユーザ許可を有する第1のユーザに対応する第1のデータ要求を受信する工程、
第1のデータ要求と第1のユーザ許可とに対応する第1の応答データがローカル・データ・キャッシュに記憶されているかどうか判定する工程、
第1の応答データがローカル・データ・キャッシュに記憶されている場合に、第1のユーザに応答データを送信する工程、
コンピュータシステム上で、第1のユーザ許可とは異なる第2のユーザ許可を有する第2のユーザに対応する、第1のデータ要求と同じである第2のデータ要求を受信する工程、
第2のユーザ要求と第2のユーザ許可とに対応する第2の応答データがローカル・データ・キャッシュに記憶されているかどうか判定する工程、
第2の応答データがローカル・データ・キャッシュに記憶されている場合に、第2のユーザに第1の応答データとは異なる第2の応答データを送信する工程
を含む方法。
[本発明1015]
データがキャッシュされていない場合に、データに第1のユーザの要求または第2のユーザの要求のどちらかに対応するデータを要求し、データサーバから受信されたデータをキャッシュする工程
をさらに含む、本発明1014の方法。
[本発明1016]
キャッシュデータのサブセットを送信する前にキャッシュデータの有効期限を確認し、キャッシュデータが失効していない場合に限り、第1のユーザまたは第2のユーザの一方にキャッシュデータのサブセットを送信する工程
をさらに含む、本発明1014の方法。
[本発明1017]
実行されると、プロセッサに、
コンピュータシステム上で第1のユーザ許可を有する第1のユーザに対応する第1のデータ要求を受信する工程、
第1のデータ要求と第1のユーザ許可とに対応する第1の応答データがローカル・データ・キャッシュに記憶されているかどうか判定する工程、
第1の応答データがローカル・データ・キャッシュに記憶されている場合に、第1のユーザに応答データを送信する工程、
コンピュータシステム上で、第1のユーザ許可とは異なる第2のユーザ許可を有する第2のユーザに対応する、第1のデータ要求と同じである第2のデータ要求を受信する工程、
第2のユーザ要求と第2のユーザ許可とに対応する第2の応答データがローカル・データ・キャッシュに記憶されているかどうか判定する工程、
第2の応答データがローカル・データ・キャッシュに記憶されている場合に、第2のユーザに第1の応答データとは異なる第2の応答データを送信する工程
を含む方法を実施させるコンピュータ可読命令を記憶している、一つまたは複数のコンピュータ可読媒体。
[本発明1018]
データがキャッシュされていない場合に、データに第1のユーザの要求または第2のユーザの要求のどちらかに対応するデータを要求し、データサーバから受信されたデータをキャッシュする工程
をさらに含む、本発明1017の方法。
[本発明1019]
キャッシュデータのサブセットを送信する前にキャッシュデータの有効期限を確認し、キャッシュデータが失効していない場合に限り、第1のユーザまたは第2のユーザの一方にキャッシュデータのサブセットを送信する工程
をさらに含む、本発明1017の方法。
[本発明1020]
第1のユーザに対応する、第1のデータ要求と同じデータを要求する第3のデータ要求を受信する工程、
第1のユーザの許可が、第1のデータ要求を受信した後で変更されていると判定する工程、
第1のユーザに、第1のデータ要求に応答して第1のユーザに送信された応答データとは異なる応答データを送信する工程
をさらに含む、本発明1017の方法。
[本発明1021]
権利者向けデータのキャッシングを行う工程が、権利者向けデータを、該権利者向けデータの関連付けられたデータ許可に対応する権利トークンと共に記憶する工程を含む、本発明1009の方法。
[本発明1022]
権利トークンが、同じキャッシュされた権利者向けデータにアクセスする同様の許可を有するユーザのグループ化を可能にする、本発明1021の方法。
[本発明1023]
キャッシュの更新の通知が、階層として配置され、データ・キャッシュ・サーバ上で記憶されている複数のキャッシュを更新することができる、本発明1011の方法。
以下の詳細な説明、特許請求の範囲、および図面を考察すれば、当業者には本発明の他の特徴および利点が明らかになるであろう。図面において、類似の番号は類似の特徴を指し示すのに使用される。
【図面の簡単な説明】
【００１０】
【図１】本発明のいくつかの態様による、データキャッシュ管理システムにおいて利用されるネットワークおよびデータ処理装置の例示的態様を示す図である。
【図２】本発明のいくつかの態様による、例示的な権利者向けデータキャッシュ管理システムを示す構成図である。
【図３】本発明のいくつかの態様による、権利者向けデータキャッシュ管理の例示的態様を示す流れ図である。
【図４】本発明のいくつかの態様による、例示的データキャッシュ管理システムを示す別の構成図である。
【図５】ａは、本発明のいくつかの態様による、例示的データキャッシュ管理システムにおけるデータ許可に対応するデータ例を含む表を示す図である。ｂは、本発明のいくつかの態様による、例示的データキャッシュ管理システムにおけるユーザ許可の例を含む表を示す図である。
【図６】本発明のいくつかの態様による、権利者向けデータキャッシュ管理の例示的態様を示す流れ図である。
【図７】本発明のいくつかの態様による、権利者向けデータキャッシュ管理の別の例示的態様を示す流れ図である。
【図８】本発明のいくつかの態様による、権利者向けデータキャッシュ管理の別の例示的態様を示す流れ図である。
【００１１】
本発明の態様の詳細な説明に入る前に、本発明はその適用が、以下の説明において記載され、図面において例示される構造の詳細および構成要素の配置だけに限定されるものではないことを理解すべきである。本発明では、他の態様も可能であり、様々なやり方で実施し、または実行することも可能である。また、本明細書において使用される表現および用語は、説明のためのものであり、限定とみなされるべきではないことも理解すべきである。そうではなく、本明細書において使用される語句には、それらの最も広い解釈および意味が与えられるべきである。「含む（including）」および「含む（comprising）」およびこれらの変形の使用は、その後に記載される項目およびその均等物、ならびにさらに別の項目およびその均等物を包含することを意図するものである。「取り付けられた（mounted）」、「接続された（connected）」、「結合された（coupled）」、「位置決めされた（positioned）」、「係合された（engaged）」、および類似の用語の使用は、直接と間接両方の取付け、接続、結合、位置決め、および係合を含むことを意図するものである。
【発明を実施するための形態】
【００１２】
詳細な説明
図1に、本発明の一つまたは複数の例示的局面を実施するのに使用され得るネットワークアーキテクチャおよびデータ処理装置の一例を示す。様々なネットワークノード103、105、107、109が、インターネットなどの広域ネットワーク（WAN）101を介して相互接続され得る。また、あるいは代替として、私設イントラネット、企業ネットワーク、LAN、無線ネットワーク、パーソナルネットワーク（PAN）などを含む他のネットワークも使用され得る。ネットワーク101は例示のためのものであり、より少数の、またはさらに多くのコンピュータネットワークで置き換えられてもよい。ローカル・エリア・ネットワーク（LAN）は任意の公知のLANトポロジのうちの一つまたは複数を有していてよく、イーサネットなどの多種多様なプロトコルのうちの一つまたは複数を使用してよい。装置103、105、107、109および他の装置（不図示）は、より対線、同軸ケーブル、光ファイバ、電波または他の通信媒体によりネットワークのうちの一つまたは複数に接続され得る。
【００１３】
「ネットワーク」という用語は、本明細書において使用され、図面において示される場合、リモートの記憶装置が一つまたは複数の通信路を介して相互に結合されているシステムのみならず、その時々にそのような記憶機能を有するシステムに結合され得る独立型の装置も指すものである。したがって、「ネットワーク」という用語は、「物理ネットワーク」のみならず、あらゆる物理ネットワークにまたがって置かれている、単一の実体に帰せられるデータからなる「コンテンツネットワーク」も含む。
【００１４】
構成要素には、一つまたは複数のデータサーバ103、ウェブサーバ105、およびクライアントコンピュータ107、109が含まれ得る。データサーバ103は、データベースのアクセス、制御、および管理全般と、本明細書において説明する本発明の一つまたは複数の例示的局面を実施するための制御ソフトウェアとを提供する。データサーバ103は、ユーザが要求するデータと対話し、データを獲得するためのウェブサーバ105に接続され得る。あるいは、データサーバ103は、ウェブサーバ自体として機能し、インターネットに直接接続されていてもよい。データサーバ103は、直接もしくは間接の接続により、または他の何らかのネットワークにより、ネットワーク101（インターネットなど）を介してウェブサーバ105に接続され得る。ユーザはリモートコンピュータ107、109を使用してデータサーバ103と対話してよく、例えば、ウェブブラウザを使用し、ウェブサーバ105によってホストされる一つまたは複数の外部に公開されているウェブサイトを介してデータサーバ103に接続し得る。クライアントコンピュータ107、109は、データサーバ103と呼応してデータサーバ103に記憶されたデータにアクセスするのに使用されてもよく、他の目的で使用されてもよい。例えば、クライアント装置107から、ユーザは、当技術分野において公知であるように、インターネットブラウザを使用して、または、コンピュータネットワーク（インターネットなど）上でウェブサーバ105および/またはデータサーバ103と通信するソフトウェアアプリケーションを実行することにより、ウェブサーバ105にアクセスし得る。
【００１５】
サーバとアプリケーションとは、同じ物理マシン上で組み合わされ、別々の仮想アドレスまたは論理アドレスを有していてもよく、別々の物理マシン上にあってもよい。図1には、使用され得るネットワークアーキテクチャの一例が示されているにすぎず、使用される特定のネットワークアーキテクチャおよびデータ処理装置は様々とすることができ、本明細書においてさらに説明するように、それらが提供する機能に付随するものであることを当業者は理解するであろう。例えば、ウェブサーバ105およびデータサーバ103によって提供されるサービスは単一のサーバ上で組み合わされてもよい。
【００１６】
各構成要素103、105、107、109は、任意の種類の公知のコンピュータ、サーバ、またはデータ処理装置とすることができる。例えばデータサーバ103は、データサーバ103の動作全般を制御するプロセッサ111を含み得る。データサーバ103はさらに、RAM113、ROM115、ネットワークインターフェース117、入力/出力インターフェース119（例えばキーボード、マウス、ディスプレイ、プリンタなど）、およびメモリ121を含み得る。I/O119は、データまたはファイルを読み出し、書き込み、表示し、かつ/または印刷するための様々なインターフェースユニットおよびドライブを含み得る。メモリ121はさらに、データ処理装置103の動作全般を制御するためのオペレーティング・システム・ソフトウェア123、データサーバ103に本明細書において説明する本発明の局面を実施するよう指示するための制御論理125、ならびに本発明の局面と併用される場合も併用されない場合もある二次的機能、補助機能、および/または他の機能を提供する他のアプリケーションソフトウェア127を記憶し得る。また制御論理は、本明細書においては、データ・サーバ・ソフトウェア125とも呼ばれ得る。データ・サーバ・ソフトウェアの機能は、ユーザがシステムに入力を提供することにより手動で作成される制御論理に符号化された規則に基づいて自動的に行われる動作もしくは判断、またはユーザ入力に基づく自動処理の組み合わせ（例えば問い合わせ、データ更新など）を指し得る。
【００１７】
またメモリ121は、第1のデータベース129および第2のデータベース131を含む、本発明の一つまたは複数の局面の実施に際して使用されるデータも記憶し得る。態様によっては、第1のデータベースは（例えば別個の表、レポートなどとして）第2のデータベースを含んでいてもよい。すなわち、情報は、システム設計に応じて、単一のデータベースに記憶することもでき、異なる論理データベース、仮想データベース、または物理データベースへと分離することもできる。装置105、107、109は、装置103に関連して説明したのと同様のアーキテクチャを有していても、異なるアーキテクチャを有していてもよい。本明細書において説明するデータ処理装置103（または装置105、107、109）の機能は、例えば、複数のコンピュータにまたがって処理負荷を分散させたり、地理的位置、ユーザ・アクセス・レベル、サービス品質（QoS）などに基づいてトランザクションを区別したりするために、複数のデータ処理装置に分散していてもよいことを当業者は理解するであろう。
【００１８】
本発明の一つまたは複数の局面は、本明細書において説明するように、一台もしくは複数コンピュータまたは他の装置によって実行される、コンピュータ使用可能データもしくはコンピュータ可読データ、および/またはコンピュータ実行可能命令として、例えば一つまたは複数のプログラムモジュールとして実施され得る。一般に、プログラムモジュールには、コンピュータまたは他の装置内でプロセッサによって実行されると、特定のタスクを実施し、または特定の抽象データ型を実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。モジュールは、後で実行するためにコンパイルされるソース・コード・プログラム言語で書かれていてもよく、（それだけに限らないが）HTMLやXMLなどのスクリプト言語で書かれていてもよい。コンピュータ実行可能命令は、ハードディスク、光ディスク、取り外し可能記憶媒体、固体メモリ、RAMなどのコンピュータ可読媒体上に記憶され得る。当業者には理解されるように、プログラムモジュールの機能は、様々な態様において、望みどおりに組み合わされても、分散されてもよい。加えて、機能は、その全部または一部が、集積回路、フィールド・プログラマブル・ゲート・アレイ（FPGA）などのファームウェアまたはハードウェアの均等物として実施されてもよい。本発明の一つまたは複数の局面をより効果的に実施するための特定のデータ構造が使用されてもよく、そのようなデータ構造は本明細書において説明するコンピュータ実行可能命令およびコンピュータ使用可能データの範囲内において企図されている。
【００１９】
図2を参照すると、データ管理システム200の例示的態様が示されている。図2に示すように、データ管理システム200は、データ・キャッシュ・サーバ202、データサーバ204、および許可サーバ206を含み得る。データ・キャッシュ・サーバ202は、ユーザに配信するためのキャッシュデータを記憶するように設計された任意の種類のコンピュータサーバとすることができ、データサーバ204とは別個のものとすることができる。一態様において、データ・キャッシュ・サーバ202は、データ提供者のためのコンピュータリソース（コンピュータネットワークなど）の境界に位置するエッジデバイスとすることができ、ユーザにとってのデータ提供者のネットワークへの入口点とすることができる。データサーバ204よりもユーザに近い位置にあるコンピュータリソースの境界においてデータをキャッシュすれば、要求が行われる都度データサーバ204にデータを要求するのではなく、データ・キャッシュ・サーバ202からユーザにデータを送信することにより、結果的に時間とコストが節約され得る。データサーバ204にデータを要求し、データサーバ204からデータを受信する必要をなくすことにより、ユーザへのデータの配信時間が短縮され得る。さらに、データサーバ204にデータを求める多くの要求による負荷も低減され、潜在的に性能およびシステム信頼性の向上がもたらされる可能性がある。
【００２０】
図2に示すように、データ・キャッシュ・サーバ202は、権利者向けデータを含むデータサーバ204と通信し得る。権利者向けデータとは、ある特定の権利者向けデータへのアクセスがある特定のユーザだけに制限され得るように安全に維持されるデータをいう。場合によっては、ユーザは、システム内の異なるデータへのユーザのアクセス権を決定する関連付けられた許可（権利）のセットを有していてもよい。例えば、ユーザには、全データセットまたはデータセット内のデータの特定の行だけを見る権利が付与され得る。加えて、権利者向けデータは、ユーザに権利者向けデータを送信する前にユーザの許可が検証されるべきことを必要としてもよい。例えば、権利者向けデータは金融取引データを含み得る。一例では、ユーザがデータを要求する都度、ユーザに権利者向けデータを送信する前に、ユーザの許可が許可サーバ206を用いて検証されなければならない。少なくとも一つの態様において、データサーバ204は、権利者向けであり、時間的でもあるデータを含む。時間的データとは、変化し得る、または時間の経過と共に複数の異なる値を取り得るデータをいう。例えば、時間的データは、一日、一週間、一ヶ月、一年の間の時間（時期）によって異なる値をとる会社株式価格とすることもできる。
【００２１】
許可サーバ206は、システム上の複数の異なるユーザおよび/またはユーザのグループのためのユーザ許可を記憶し、システムの一名または複数のユーザを識別するデータ・キャッシュ・サーバ202またはデータサーバ204からの問い合わせに応答してユーザ許可を検索し得る。例えばユーザは、全データセット、データセットの特定の行および/または列のみを閲覧する許可を得ている場合もあり、データセットのある特定の部分を閲覧する許可を得ているが他の部分を見る許可は得ていない場合もある。別の例では、ユーザは、グループの全ユーザが各ユーザに特定のデータ（株式データ、顧客データなど）を閲覧させる許可を得るような一つまたは複数のグループ（顧客、ブローカ、管理者など）に属し得る。ユーザがシステムにデータを求める要求を送信するときに、ユーザ識別情報は、データ要求に含まれるユーザ識別および/または認証情報から判定され得る。一態様において、許可サーバ206は、データ・キャッシュ・サーバ202にユーザ許可を提供する。また許可サーバ206はユーザの許可をデータサーバ204にも提供してよく、データサーバ204は権利者向けデータとユーザ許可の両方をデータ・キャッシュ・サーバ202に送信してよい。場合によっては、許可サーバ206は、データサーバ204およびデータ・キャッシュ・サーバ202と別個の装置とすることができる。あるいは、許可サーバ206は、データサーバ204またはデータ・キャッシュ・サーバ202の保護された部分内に物理的に位置していてもよい。実施態様によっては、ユーザ許可は保護されているため、公衆ネットワークまたは別の保護されていないコンピュータネットワーク上でユーザまたはグループの許可データを伝送することが望ましくない場合もあるはずである。したがって、保護されたコンピュータネットワークおよび/または暗号化を使用して、許可サーバ206とサーバ202、204との間で許可データが伝送されてもよい。加えて、データの伝送時に、ユーザの許可をユーザの識別情報と同じデータ伝送において伝送しないことなど、別のセキュリティ措置が講じられてもよい。
【００２２】
図3の例を参照すると、S305に示すように、データ・キャッシュ・サーバ202がデータサーバ204からデータを受信するときに、データ・キャッシュ・サーバ202は、S310に示すように、データのコピーをデータ・キャッシュ・サーバ202のメモリ内にローカルで記憶する（すなわち、データをキャッシュする）。データサーバ204から受け取られるデータはデータIDを含んでいてよく、データIDはユーザ要求なしでキャッシュデータ更新するのに使用され得る。データIDは、データサーバ204によって生成されてもよい。また、データサーバ204から受け取られるデータは、ユーザがデータにアクセスすることを可能にするユーザ許可または権利トークンのリストも含み得る。データ・キャッシュ・サーバ202は、複数の異なるデータセットを受信し、キャッシュし得る。場合によっては、データ・キャッシュ・サーバ202は、データを求める初期ユーザ要求に応答してデータを受信し得る。場合によっては、データは、データを求めるユーザ要求の前にデータ・キャッシュ・サーバ202に送信され得る。さらに別の例では、データは、データの新しいバージョンが到着したときにデータ・キャッシュ・サーバ202に送信され得る。この例では、データは、データサーバ204にデータが変更されたことが通知されるときにデータ・キャッシュ・サーバ202に送信され得る。この例では、データサーバ204は、データ・キャッシュ・サーバ202に、変更されたデータを通知し得る。これに応答して、データ・キャッシュ・サーバ204は、対応するキャッシュデータのコピーを更新する。この変更されたデータの通知は、以前に供給されたデータIDを使用し得る。
【００２３】
また、データを記憶するときに、データ・キャッシュ・サーバ202は、S315に示すように、キャッシュシグネチャ、および/またはデータ・キャッシュ・サーバ202が後でデータサーバ204に問い合わせせずに異なるユーザのためにデータを検索することを可能にする許可可能エンティティ（PE）のリストをデータにタグ付けし得る。以下の図5aおよび図5bに示すように、S315は、データ・キャッシュ・サーバ202において、データを要求するユーザに関係なくデータ要求のコンテキストに対応する一つまたは複数の変数（キャッシュシグネチャなど）と、要求されるデータと関連付けられたユーザ許可に対応する一つまたは複数のさらに別の変数（許可可能エンティティなど）とを記憶することを含み得る。図5aおよび図5bに示すように、キャッシュシグネチャ、PE、および権利トークンは、同じ表に記憶されてもよく、異なる表から参照してもよく、別の方法で、それらが関連する権利者向けデータにリンクされていてもよい。場合によっては、キャッシュシグネチャは、ユーザから受け取られるデータ要求（要求されるデータの種類/範囲や他の基準など）に基づくものとすることもできるが、データを要求するユーザの個別またはグループの許可に基づくものとする必要はない。例えば、キャッシュシグネチャは、ユーザデータもユーザ許可もなしでデータ要求またはデータ要求の一部のハッシュ値を計算すること（hashing）（HMAC-SHA1）によって生成されてもよい。データ・キャッシュ・サーバ202は、同じデータから複数の権利トークンを生成してよく、よって、ユーザ要求がアクセスするときにキャッシュの迅速なルックアップを可能にするように、データ・キャッシュ・サーバ202上に記憶されたデータの複数のコピーを更新してよい。
【００２４】
場合によっては、データサーバ204からデータ・キャッシュ・サーバ202に配信される特定のデータセットについて、配信されるデータセットは、データを要求するユーザの許可にかかわらず同じデータを含んでいてもよい。しかし、例えばユーザ222やユーザ224などのユーザに送信されるデータは、要求側ユーザの許可に応じて限定され得る。よって、データ・キャッシュ・サーバ202は、ユーザの許可レベル（すなわち権利）に応じて、権利者向けデータセットの全部または一部を決定し、要求側ユーザに配信し得るが、同じユーザおよび/または異なるユーザからのその後の要求に応答するためにデータセット全体をキャッシュし得る。ユーザは、ユーザがデータセットのどの部分（または全データセット）にアクセスを許可されるか決定する許可を得ていてよい。例えば、ユーザは行レベルの許可を得ていてもよく、行レベルの許可は、ユーザがデータセット内のデータのある特定の行にアクセスすることを許す。別の種類の権利または許可は選択レベルの許可とすることができ、選択レベルの許可は、ユーザの許可に応じて返されるべき行のリストを決定する。選択レベルの許可では、データ・キャッシュ・サーバ202は、データの特定の行を要求し得るが、データサーバ204によって送信されるデータは、ユーザの選択レベルの許可に対応する行だけになるはずである。要求された行がキャッシュ内にない場合には、要求された行を含むデータも要求においてデータ・キャッシュ・サーバ202に返され、次いでデータ・キャッシュ・サーバ202上にキャッシュされ得ることに留意すべきである。新しくキャッシュされたデータは、要求側ユーザがデータについての許可を得ているかどうかに応じてユーザに送信される場合もされない場合もある。場合によっては、ユーザ許可は、バイナリ形式で記憶され得る。例えば、ユーザの許可は、特定のデータ行についてユーザが当該行にアクセスする許可を得ていることを表示するために「1」に設定され、データ・キャッシュ・サーバ202が当該行へのユーザアクセスを拒否すべきであることを表示するために「0」に設定され得る。ユーザ許可を設定することにより、データ・キャッシュ・サーバ202は、単一のデータセットを受信し、ユーザ許可の異なるセットを有する複数のユーザに当該データの異なるサブセットを配信することができる。例えば、データ・キャッシュ・サーバ202が必ずしもデータサーバ204に再問い合わせしなくても、第1のユーザ許可のセットを有する第1のユーザは元のデータセットからのデータの第1のサブセットを受信してよく、第2のユーザ許可のセットを有する第2のユーザは、元のデータセットからのデータの第2のサブセットを受信してよい。
【００２５】
データサーバ204からデータ・キャッシュ・サーバ202に送信されるデータセットは、データ要求を開始したユーザについてと、システム上の他のユーザについての対応するデータ許可を含み得る。各データセットは、複数の許容される許可と関連付けられ得る。よって、ユーザが、ユーザの許可がデータセットの許可と交わるように許容されるデータ許可のいずれかを得ている場合、ユーザには、当該ユーザがアクセスする権利を付与されているデータのサブセットにアクセスする（例えば閲覧する、変更する、削除するなど）ことが許可され得る。
【００２６】
S320に示すように、データを求めるユーザ要求がデータ・キャッシュ・サーバ202において受信されるときに、ユーザの要求は、S325で、データ要求と関連付けられたキャッシュシグネチャを識別するように計算される。一例では、この計算は、ユーザ特有のデータを持たない要求のハッシュ値を計算することによって行われる。次いでS330で、キャッシュ・データ・サーバ202は、キャッシュシグネチャと一致するデータが以前にキャッシュされているかどうか判定するために問い合わせされる。要求されたデータがデータ・キャッシュ・サーバ202上に存在する場合（例えば、一致するキャッシュシグネチャが見つかる場合など）には、S335で、キャッシュデータについて交わる許可のセットがあるかどうか判定するために要求側ユーザの許可がチェックされる。要求側ユーザの許可と要求されたキャッシュデータが交わり、キャッシュデータのうちの少なくとも一つの許可と一致するユーザの少なくとも一つの許可がある場合には、S340でデータのサブセットがユーザに送信され得る。例えば、図5aを参照すると、データセットは、データ行1についての行レベルの許可P1およびP2、データ行2についての許可P1、データ行3についての許可P2、データ行4についての許可P4などの特定の許可（許可可能エンティティ）を含み得る。図5bに示す例において、ユーザ1は関連付けられたユーザ許可P1を有し、ユーザ2は関連付けられたユーザ許可P2およびP6を有し、ユーザ3は関連付けられたユーザ許可P2を有し、ユーザ4は関連付けられたユーザ許可P3およびP5を有する。したがって、この例では、データ・キャッシュ・サーバ202は、（ユーザ1は許可P1を得ており、データ行1とデータ行2も両方とも許可P1を有するため）ユーザ1の許可はデータ行1およびデータ行2と交わると判定してよく、データ行1とデータ行2の両方をユーザ1に送信してよい。次いで、ユーザ4からの第2の要求を処理するときに、データ・キャッシュ・サーバ202は、（ユーザ4とデータ行4とはどちらも許可P3を有するため）ユーザ4の許可はデータ行1とだけ交わると判定してよく、データ行1だけをユーザ4に送信してよい。
【００２７】
図5bに示すように、ユーザ許可を得ていることに加えて、ユーザは一つまたは複数のグループ（ユーザ役割など）とも関連付けられていてよい。この例では、ユーザ1およびユーザ3はグループAのメンバであり、ユーザ2はグループBのメンバである。またグループも、ユーザと同様に、関連付けられたデータ許可を得ていてよい。この例では、グループAは許可P1、P5を得ており、グループBは許可P1、P2、P3を得ており、グループCは許可P4、P5を得ている。各グループには一意の権利トークンが与えられる。この例では、グループAは1という権利トークンを有し、グループBは2という権利トークンを有し、グループCは3という権利トークンを有する。その結果、ユーザ1はグループAに属することにより1という権利トークンを割り当てられており、ユーザ2はグループBに属することにより2という権利トークンを割り当てられており、ユーザ3はグループAおよびCに属することにより1および3という権利トークンを割り当てられている。この例では、ユーザ4はグループのメンバではないため、権利タグを持たない。権利トークンは許可のグループに対応する。異なる権利トークンが同じ許可を含んでいてもよい。少なくともいくつかの例では、あるユーザと関連付けられる権利トークンの数は、関連付けられたユーザ許可の数より小さくてもよい。
【００２８】
図6を参照すると、権利者向けデータの異なるサブセットが異なる許可を得ている異なるユーザに配信される例示的流れ図が示されている。この例では、S610で、データ・キャッシュ・サーバ202が第1のユーザから権利者向けデータを求めるデータ要求を受信する。S615で、データ・キャッシュ・サーバ202は、要求されたデータ・キャッシュ・サーバ202上の権利者向けデータが第1のユーザの許可と交わる許可を有するかどうか判定する。これは、まず要求からキャッシュシグネチャを生成することによって行われてよく、権利トークンの生成を含み得る。S620で、第1のユーザの許可と交わる許可を有するデータ応答のサブセットについて、データ・キャッシュ・サーバ202は第1のユーザに第1のサブセットを伝送する。S625で、データ・キャッシュ・サーバ202は、第1のユーザとは異なるユーザ許可を得ている第2のユーザから同様のデータ要求（例えば、データの同じ列および行を要求するデータ要求および/または同じ問い合わせコンテキストを有する問い合わせなど）を受信する。S630で、データ・キャッシュ・サーバ202は、第2のユーザによって要求されたキャッシュされた権利者向けデータが第2のユーザの許可と交わるかどうか判定し得る。S635で、第2のユーザの許可がキャッシュ内に存在するデータの許可と交わる場合には、データ・キャッシュ・サーバ202はキャッシュデータの第2のサブセットを送信する。前述のように、第2のユーザに送信されるキャッシュデータの第2のセットは、同様の（または同じ）データ要求に応答して第1のユーザに送信されるキャッシュデータの第1のサブセットと異なっていてよい。加えて、キャッシュデータの第1のサブセットもキャッシュデータの第2のセットも、データ・キャッシュ・サーバ202上のキャッシュデータの単一のセットに由来するものとすることができる。
【００２９】
また、態様によっては、データ・キャッシュ・サーバ202上に記憶されるデータは、失効日付および/または時刻も含み得る。これらの例では、データ・キャッシュ・サーバ202がデータを求める要求を受信し、データ応答が失効している場合、データ・キャッシュ・サーバ202は、ユーザにキャッシュデータを送信せず、代わりに、データサーバ204に更新データを要求し、次いで、更新データをユーザに送信してもよい。キャッシュデータが失効していない場合には、データ・キャッシュ・サーバ202は、キャッシュデータをユーザに送信し得る。態様によっては、データ・キャッシュ・サーバ202は、キャッシュされた権利者向けデータが失効しており（変更されているなど）、更新を必要とするかどうか判定するのに別の技法を使用し得る。
【００３０】
次に図4を参照すると、データサーバ204は更新データを受信し得る。新しいデータを受信し次第、データサーバ204は、パブリッシュサーバ208を使用してデータ・キャッシュ・サーバ202に更新データを通知し得る。更新データをデータ・キャッシュ・サーバ202に適時に提供するために、パブリッシュサーバ208は、データに対応するデータIDを使用してデータ・キャッシュ・サーバ202に新しいデータが到着していることを通知する。データIDは、データ・キャッシュ・サーバ202内の関連するキャッシュデータの階層を表す。この通知を受信し次第、データ・キャッシュ・サーバ202は、データサーバ204に、更新データを求める要求を送信する。データサーバ204は、データサーバ204がパブリッシュサーバ208を介して新しいデータを受信するときに、データ・キャッシュ・サーバ202を能動的に更新する。
【００３１】
図5aを参照すると、行1にはデータID Fund.Est.Cons.Group1.IBMが示されている。このデータIDは、ドメイン:Funds、Est、Cons、Group1、およびIBMを含み、Fundから開始する根とIBMで終了する葉とを有する階層とみなすことができる。データサーバ204は、「.」で区切られたデータIDの任意の部分を送信することにより、データ・キャッシュ・サーバ202に変更されたデータを通知することができる。例えば、Fund.Estという通知データIDを送信すると、データ・キャッシュ・サーバは、Fund.Est.Cons.Group1.IBM、Fund.Est.Cons.Group1.INTC、Fund.Est.Det.Group2.IBM、およびFund.Est.Det.Group2.INTCについてのデータを検索するはずである。別の例として、Fund.Est.ConsというデータIDの通知を送信すると、データ・キャッシュ・サーバは、Fund.Est.Cons.Group1.IBMおよびFund.Est.Cons.Group1.INTCについてのデータを検索するはずである。データIDは、少数の通知により多数の異なるデータキャッシュが更新されることを可能にする。
【００３２】
態様によっては、データ・キャッシュ・サーバはユーザ（ユーザ1やユーザ2など）に、データIDが変更されているという通知を送信する。ユーザ1およびユーザ2は独自のキャッシングシステムを持っていてよく、データ変更の適時の通知を得ようとし得る。図7を参照すると、データキャッシュを更新するための技法を説明する例示的流れ図が示されている。S710で、データ・キャッシュ・サーバ202は、データ・キャッシュ・サーバ202においてキャッシュされている可能性のある権利者向けデータを求めるユーザ要求を受信する。S715で、データ・キャッシュ・サーバ202は、例えば、要求側ユーザを識別し、許可サーバ206にユーザと関連付けられた許可、グループ、および権利トークンを検索するための許可問い合わせを送信することによって、要求側ユーザの許可を検索する。S720で、データ・キャッシュ・サーバ202は、データキャッシュ内に記憶されている要求されたデータが検索されたユーザ許可と交わる許可を有するかどうか判定する。データがキャッシュに記憶されている場合に、S725に示すように、データ・キャッシュ・サーバ202は、キャッシュデータが失効していないことを確認する。要求されたキャッシュデータが失効していない場合に、S730で、データ・キャッシュ・サーバ202は、ユーザの許可に基づいて、ユーザにキャッシュデータのサブセットを送信し得る。S735で、データ・キャッシュ・サーバ202は、パブリッシュサーバ208から非同期通知を受信する。パブリッシュサーバ208からのデータ通知の受信はユーザ要求への応答の後でのみ行われる必要はないことを理解すべきである。すなわち、S735における更新データ通知の受信は、図7に示すように、ユーザ要求への応答の前、応答の間、または応答の後に1回または複数回行われ得る。場合によっては、データサーバ204および/またはパブリッシュサーバ208は、データ・キャッシュ・サーバ202がいつユーザ要求に応答する可能性があるかを知らずに、更新データをデータ・キャッシュ・サーバ204に伝送するためのイベントまたはスケジュールを決定し得る。したがって、データ・キャッシュ・サーバ202は、データ通知を受信し、処理している間に、よって、パブリッシュサーバ208および/またはデータサーバ204から新しいデータを受信している間に、同時にキャッシュデータを求めるユーザ要求に応答するように構成され得る。
【００３３】
場合によっては、パブリッシュサーバ208は、パブリッシュサーバ208とデータサーバ204との間の通信を円滑化するために、データサーバ204と同じ（または類似の）ソフトウェアを利用してもよい。例えば、パブリッシュサーバ208は、利用登録（subscription）を管理するためにウェブサービスを利用してもよい。態様によっては、ユーザ222などのリモートユーザが非同期更新を受信するためにパブリッシュサーバ208に利用登録することができる。この態様では、パブリッシュサーバ208は、リモートユーザを更新するためにHTTPによりXMLを使用してウェブサイト上にデータを掲載し得る。またパブリッシュサーバ208は、リモートユーザを登録、登録解除するための登録表も含んでいてよい。一態様では、パブリッシュサーバ208は、リモートユーザにウェブサービス上で公開された新しいデータを通知するためのURLをリモートユーザに提供し得る。
【００３４】
またパブリッシュサーバ208は、データ・キャッシュ・サーバ202への更新を管理するためのパブリッシュ/サブスクライブ表も含んでいてよい。この態様では、データ・キャッシュ・サーバ202が利用者表に追加され、データがパブリッシュ/サブスクライブ表に追加される。データが変更される際に、データサーバ204は、パブリッシュサーバ208に、パブリッシュ/サブスクライブ表においてエントリが作成されたことを通知する。データ・キャッシュ・サーバ202が同じシグネチャでパブリッシュ/サブスクライブ表に位置する場合、キャッシュはデータ・キャッシュ・サーバ202において更新され得る。
【００３５】
また場合によっては、パブリッシュサーバ208は、通知システムも含んでいてよい。少なくとも一つの態様において、通知システムは、物理的にパブリッシュサーバ208内に位置し得る。ユーザ222またはデータ・キャッシュ・サーバ202が更新データについてパブリッシュサーバ208に利用登録するときに、通知システムは、更新データを求める要求の形のエントリを更新通知待ち行列に入れることができる。この待ち行列は、データ・キャッシュ・サーバ202やユーザ222などの利用登録されたユーザを更新するのに必要なすべてのデータを含み得る。待ち行列に要求を出し次第、待ち行列全体が、同じデータを求める前の要求の有無についてチェックされ得る。前の要求が存在する場合には、新しいエントリを作成するのではなく、当該待ち行列エントリが更新される。待ち行列はFIFO待ち行列（先入れ先出し）として実施され得る。通知ソフトウェアは、利用者に、データが更新されているという通知を送信し、対応する待ち行列エントリを削除し得る。また通知システムは、データサーバ204によって生成された更新データの通知の数も管理してよい。通知システムは、前の通知と後の通知がどちらも存在するかどうか判定し、通知の一方はもはや無関係であるため、当該通知を削除してよい。待ち行列管理は、重複通知が閾値頻度内に発生するのを防止することができる。例えば、待ち行列管理システムは、重複通知が所定の時間枠内（1分以内など）に発生することを許容しないことが可能である。重複通知の発生を防止することにより、データサーバ204への要求の数が低減され得る。
【００３６】
場合によっては、パブリッシュサーバ208からキャッシュデータの変更の通知を受信し次第、データ・キャッシュ・サーバ202は、古いデータを含むデータキャッシュの部分を無効化し（失効と表示するなど）、かつ/または、パブリッシュサーバ208もしくはデータサーバ204に、任意の知られている失効したデータの更新データを要求する（非同期的に要求するなどの）決定を行い得る。データ・キャッシュ・サーバ202がユーザ222から失効していることが知られているデータを求める要求を受信するときには、2つの応答のうちの一つが与えられ得る。新しいデータ更新および/または要求側ユーザのユーザ許可のタイミングに応じて、データ・キャッシュ・サーバ202は、要求されたデータの古いバージョンをユーザに送信する場合もあり、更新データがデータ・キャッシュ・サーバ202によって受信されるまで、要求されたデータのユーザへの配信を遅延させる場合もある。例えば、ユーザ要求を扱うデータ・キャッシュ・サーバ202のところのソフトウェアアプリケーションは、ユーザに更新データが提供されるべきかどうか、またはユーザが古いデータで満足するはずであるかどうか判定し得る。
【００３７】
前述のように、データ・キャッシュ・サーバ202は、キャッシュデータのうちの一部が失効している（または失効している可能性がある）と判定するときに、データサーバ204に更新データを要求し得る。データサーバ204がデータ・キャッシュ・サーバ202に更新データを提供することができない場合に、データ・キャッシュ・サーバ202からの更新要求は、データサーバ204が要求を処理し、更新データを送信することができるまで、待ち行列内に留まり得る。場合によっては、データサーバ204がキャッシュを更新することができない場合に、システムは、管理者またはデータ提供者のモニタリング施設に警報を送信してよい。
【００３８】
少なくとも一つの態様において、待ち行列通知は増分順序番号を含んでいてよく、そのため、複数のデータキャッシュに最新の順序番号について相互に問い合わせさせることが可能になる。例えば、キャッシュは、特定の許可についてのその順序番号をブロードキャストしてよく、データ・キャッシュ・サーバ202上のその他のキャッシュもすべて、その特定の許可に対応するそれぞれの順序番号を応答し、ブロードキャストしてよい。この例では、あるキャッシュが別のキャッシュより大きい順序番号を有する場合に、より大きい順序番号を有するキャッシュはそのデータを失効と表示してよく、次いで、データサーバ204に更新データを要求してよい。少なくとも一つの態様において、キャッシュが通知サービスから通知を受信する場合に、キャッシュは新しい順序番号を更新し、記憶する。
【００３９】
少なくとも一つの態様において、データ・キャッシュ・サーバ202は、分散されたキャッシュを使用し得る。この場合には、単一のサーバがマスタとみなされ、通知と、すべてのデータ・キャッシュ・サーバ（またはサーバのグループ）の間で分散されているキャッシュの更新とを管理し得る。マスタ・データ・キャッシュ・サーバの故障イベントが発生し次第、別のマスタサーバがサーバのグループの中から選択される。
【００４０】
前述のように、ユーザ要求に応答してユーザに送信されるデータは、ユーザの許可に左右され得る。加えて、別の態様では、ユーザに送信される応答データは、ユーザの別の特性に応じてさらに制限され、または区分化され得る。例えば、ユーザは、ユーザの地理的区域に基づいてもっぱら追加のデータ（またはより少ないデータ）だけを受信してもよい。別の態様では、ユーザが金融機関に有する口座の種類に応じて、ユーザに選択の量または種類のデータだけが表示されてもよい。データ・キャッシュ・サーバ202からユーザに提供される応答をこれら追加の特性に基づかせることを区分化と呼んでもよい。この種の区分化を利用する際に、複数のデータセットに関する許可を定義するために、共通の符号セットがそれらのデータセットと関連付けられてもよい。共通の符号セットによって定義される許可は、ユーザがユーザの現在の地域または国の外部にあるデータを見ることができないという結果をもたらしてもよく、他の特性に基づいてユーザからデータを制限してもよい。図6を参照すると、権利者向けデータの異なるサブセットが異なる許可を得ている異なるユーザに配信される例示的流れ図が示されている。図7を参照すると、データキャッシュを更新するための技法を記述する例示的流れ図が示されている。通常、ユーザには、このように許可を管理するための権利トークンが割り当てられるはずである。権利トークンは、大量の許可が前述のようにより少数のセットへとグループ化されることを可能にする。
【００４１】
図8を参照すると、キャッシュされた権利者向けデータをユーザに提供するための上記局面のいくつかを例示する流れ図が示されている。S805に示すように、データ・キャッシュ・サーバ202はユーザ222などのユーザから権利者向けデータを求める要求を受信する。S810で、データ・キャッシュ・サーバ202はまず、要求のハッシュ値を計算してよく、次いで、データがローカルキャッシュ記憶に存在するかどうか判定してよい。要求されたデータがローカルキャッシュ内に存在する（S810:はい）場合に、データ・キャッシュ・サーバ202は、次いでS815で、許可サーバ206から要求側ユーザの許可を検索し、次いでS820で、ユーザの許可がキャッシュされたデータ許可と交わる（一致する、または対応する許可を有するなど）かどうか判定し得る。ユーザの権利トークンは、グループ許可がより少数のバケットとして表されることを可能とし得る。ユーザの許可がデータ許可と交わり、またはキャッシュシグネチャと組み合わされた権利トークンが存在する場合（S820:はい）、データ・キャッシュ・サーバ202は、次いでS825で、キャッシュデータが失効しているかどうか判定し得る。キャッシュデータが失効していない場合（S825:いいえ）に、データ・キャッシュ・サーバ202は、次いでS830に示すように、データをユーザに送信し得る。ユーザの許可がデータ許可と交わらない場合（S820:いいえ）に、データ・キャッシュ・サーバ202は、ユーザに、ユーザはデータを閲覧する許可を得ていないと応答する。
【００４２】
この例では、キャッシュデータが失効している場合（S825:はい）に、次いでS835で、データ・キャッシュ・サーバ202は、データサーバ204に更新データを要求し得る。S840で、データサーバ204は、要求された更新データをデータ・キャッシュ・サーバ202に送信する。次いでS845で、データ・キャッシュ・サーバ202は、更新データを受信し、S830で更新データを要求側ユーザに送信する前に、データをローカルでキャッシュする。
【００４３】
工程S810に戻って、データ・キャッシュ・サーバ202が、ユーザの要求と一致するデータがキャッシュ内に存在しないと判定した場合（S810:いいえ）に、データ・キャッシュ・サーバ202は、S835で、データサーバ204にデータを要求し得る。また、場合によっては、データ・キャッシュ・サーバ202は、潜在的により効率よく動作するために、S815で同時に、ユーザの許可または権利トークンも要求してよい。S845で、データ・キャッシュ・サーバ202は、更新データを受信し、データをローカルでキャッシュし、次いでS830で、更新データをユーザに送信し得る。
【００４４】
また、前述のように、データ・キャッシュ・サーバ202は、S850に示すように、データが変更される際にキャッシュへの更新を受信するように一つまたは複数のパブリッシュサーバ208に利用登録してもよい。データ・キャッシュ・サーバ202がパブリッシュサーバ208に利用登録するときに、パブリッシュサーバ208は、S855に示すように、更新データ、またはデータが変更されているという通知をデータ・キャッシュ・サーバ202に送信する。場合によっては、パブリッシュサーバ208および/またはデータ・キャッシュ・サーバ202において走る非同期プロセスが、データ・キャッシュ・サーバ202上の権利者向けデータキャッシュを効果的に最新に保つように、周期的にスケジュールされ、かつ/またはイベント駆動されてもよい。図8には、パブリッシュサーバ208の利用登録の時間的特性、および変化が原因でデータが非同期的にデータ・キャッシュ・サーバ202に届く時間を示すためにS850とS855との間に破線が表示されている。
【００４５】
本発明は、本明細書に記載されている構成要素および方法工程の構造的詳細および構成だけにその用途が限定されるものではないことを理解すべきである。本発明は、他の態様も可能であり、様々なやり方で実施し、実行することができる。以上態様の変形および改変も本発明の範囲内に含まれる。例えば、図に示す工程は、記載される以外の順序で実施されてもよく、反復されてもよいこと、および図示の一つまたは複数の工程は、開示の局面に従って任意選択とすることもできることを当業者は理解するであろう。本明細書において開示し、定義する発明は、前述の、またはテキストおよび/もしくは図面から明らかな個々の特徴のうちの2つ以上のあらゆる選択し得る組み合わせにまで及ぶことを理解すべきである。これらの異なる組み合わせはすべて本発明の様々な選択し得る局面を構成する。本明細書に記載される態様は、本発明を実施するための知られている最良の形態を説明し、当業者が本発明を利用することを可能にするものである。
【図１】
0005638082.tif 000002
【図２】
0005638082.tif 000003
【図３】
0005638082.tif 000004
【図４】
0005638082.tif 000005
【図５】
0005638082.tif 000006
【図６】
0005638082.tif 000007
【図７】
0005638082.tif 000008
【図８】
0005638082.tif 000009