(57)【要約】【課題】  生データ、オブジェクト、クエリ可能なデータセット、完全または部分Ｗｅｂ応答などデータベースクエリから生成された結果を、現在およびその後の使用のためにメモリに保存し、保存されている結果が一致しなくなるとそれらを無効にして、一致しない結果の使用を軽減するためのシステムおよび方法を提供すること。【解決手段】  保存されている結果は、１つまたは複数の構成要素によって使用され、一般に、その後のクエリが実質的に同じ結果を戻し得るときに、使用することができる。保存されている結果の整合性に影響を与えるデータベース変更が行われたとき、および／または有効期限が切れたとき、無効化メッセージを送信して、保存されている結果を無効にすることができる。したがって、一致しない保存結果の使用が軽減される。さらに、自動再クエリ技術を使用して、一致しない結果を自動的に更新して一致した結果を取得することができる。【選択図】  図３
2004303211.tif 000002
【特許請求の範囲】
【請求項１】
無効化情報を格納するためのコンテキストバンクと、
データベースクエリおよび関連する無効化情報を前記コンテキストバンクからデータベースに送信するためのクエリマネージャと、
データベースクエリに基づいた結果を格納し、前記関連する無効化情報が前記データベースによって維持されるためのメモリと
を備えたことを特徴とするメモリ無効化登録システム。
【請求項２】
前記無効化情報は、無効化文字列、サービス情報、および有効期限の少なくとも１つを備えたことを特徴とする請求項１に記載のシステム。
【請求項３】
前記無効化文字列は、一意の識別子、マシン名、ポート、アドレス、およびキュー名のうちの少なくとも１つを備えたことを特徴とする請求項２に記載のシステム。
【請求項４】
前記無効化文字列は、認証、暗号化、およびプロトコル情報のうちの少なくとも１つをさらに備えたことを特徴とする請求項３に記載の方法。
【請求項５】
前記クエリマネージャは、クエリとともに送信する無効化情報を取得するために前記コンテキストバンクとともに動作することを特徴とする請求項１に記載のシステム。
【請求項６】
前記無効化情報は、複数のクエリに関連し格納されている結果に、関連付けられることを特徴とする請求項１に記載のシステム。
【請求項７】
前記クエリマネージャは、前記格納されている結果に影響を与えることになるデータベース変更、および前記無効化情報で定義されている期限切れのうち少なくとも一方の後で、無効化メッセージを受信することを特徴とする請求項１に記載のシステム。
【請求項８】
前記データベース変更は、前記変更が同期的に配信されるまで、阻止されることを特徴とする請求項７に記載のシステム。
【請求項９】
前記データベース変更は、前記変更が非同期的に配信される間に、終了することを特徴とする請求項７に記載のシステム。
【請求項１０】
前記無効化メッセージが受信された後で前記メモリ内に保存されている結果を自動的に無効にすることを特徴とする請求項１に記載のシステム。
【請求項１１】
前記無効化メッセージが受信された後で前記データベースの再クエリを自動的に行い、メモリ内に保存されている結果を更新することを特徴とする請求項１に記載のシステム。
【請求項１２】
前記一意の識別子は、前記保存されている結果と前記ソースクエリの間の関連を定義するためにランタイム時に生成されることを特徴とする請求項３に記載のシステム。
【請求項１３】
１つまたは複数のクエリを保存されている結果とともにグループ化するために、前記一意の識別子を使用することを特徴とする請求項１２に記載のシステム。
【請求項１４】
前記一意の識別子をセキュリティ機構として使用して、偽りの無効化情報および偽りの無効化メッセージのうちの少なくとも１つを軽減することを特徴とする請求項１２に記載のシステム。
【請求項１５】
結果の格納と無効化を調整するためのメモリマネージャをさらに備えたことを特徴とする請求項１に記載のシステム。
【請求項１６】
前記自動無効化は、一致しない結果を前記メモリから削除すること、前記メモリ内の一致しない結果を上書きすること、および前記メモリ内の一致しない結果にタグを付けることのうちの少なくとも１つを備えたことを特徴とする請求項１０に記載のシステム。
【請求項１７】
前記メモリはキャッシュメモリを備えたことを特徴とする請求項１に記載のシステム。
【請求項１８】
前記メモリは複数の構成要素によって共有されることを特徴とする請求項１に記載のシステム。
【請求項１９】
ＳＱＬベースの環境で使用することを特徴とする請求項１に記載のシステム。
【請求項２０】
その後の要求による使用のために前記結果をメモリに格納すること、および前記格納されている結果が前記データベースと一致しなくなったときに前記結果を無効にすることを要求するためのコメントおよびページ指示のうちの少なくとも１つをさらに備えたことを特徴とする請求項１に記載のシステム。
【請求項２１】
前記コンテキストバンクは、前記格納されている結果の生成に使用するクエリへの前記無効化情報の伝達を容易にすることを特徴とする請求項１に記載のシステム。
【請求項２２】
前記格納されている結果は、生データ、変換データ、例外的なデータ、集計データ、概要データ、ピボットテーブルデータ、前記生データから生成されたオブジェクト、部分Ｗｅｂ応答、完全Ｗｅｂ応答、およびクエリ可能データのうちの少なくとも１つを備えたことを特徴とする請求項１に記載のシステム。
【請求項２３】
１つまたは複数の構成要素に関する無効化情報を格納するコンテキストと、
データベースクエリおよび無効化情報を送信するためのクエリマネージャと、
前記データベースクエリから生成された結果を格納するための１つまたは複数のメモリと
を備えたことを特徴とする自動メモリ無効化システム。
【請求項２４】
前記１つまたは複数のメモリはローカルキャッシュメモリ、補助キャッシュメモリ、およびリモート高速メモリを備えたことを特徴とする請求項２３に記載のシステム。
【請求項２５】
偽りの無効化情報および偽りの無効化メッセージについての悪意のあるクエリのうちの少なくとも１つを軽減するために、クエリエンジンおよび前記依存構成要素に対して動作するセキュリティ層をさらに備えたことを特徴とする請求項２３に記載のシステム。
【請求項２６】
保存されている結果が一致しなくなったときに前記保存されている結果を自動的に無効にすること、および保存されている結果が無効になったことを構成要素に通知することのうち少なくとも一方を提供するための機構をさらに備えたことを特徴とする請求項２３に記載のシステム。
【請求項２７】
セキュリティ層としてファイアウォールをさらに備えたことを特徴とする請求項２３に記載のシステム。
【請求項２８】
前記１つまたは複数のメモリが前記ファイアウォール内に存在することを特徴とする請求項２７に記載のシステム。
【請求項２９】
前記ファイアウォールは、前記１つまたは複数のメモリにおいて、結果の格納、結果へのアクセス、および結果の無効化の少なくとも１つを容易にすることを特徴とする請求項２７に記載のシステム。
【請求項３０】
前記１つまたは複数のメモリは前記１つまたは複数の構成要素から同時にアクセス可能であることを特徴とする請求項２７に記載のシステム。
【請求項３１】
登録された結果を保存して前記結果が一致しなくなったときに自動的に無効化するための方法であって、
無効化情報をコンテキストに格納すること、
前記無効化情報を関連するクエリとともに送信すること、および
前記クエリから生成された前記結果をメモリに保存すること
を備えることを特徴とする方法。
【請求項３２】
一致した結果を確実にするために、前記クエリの後、かつ前記結果を格納する前に変更が行われたかどうかについて前記クエリが行われたデータベースをチェックすることをさらに備えることを特徴とする請求項３１に記載の方法。
【請求項３３】
前記無効化情報は無効化文字列、サービス情報、および有効期限のうちの少なくとも１つを備えることを特徴とする請求項３１に記載の方法。
【請求項３４】
前記無効化文字列は識別子、マシン名、ポート、アドレス、およびキュー名のうちの少なくとも１つを備えることを特徴とする請求項３３に記載の方法。
【請求項３５】
前記無効化文字列は認証、暗号化、およびプロトコル情報のうちの少なくとも１つをさらに備えることを特徴とする請求項３４に記載の方法。
【請求項３６】
前記メモリはキャッシュメモリであることを特徴とする請求項３１に記載の方法。
【請求項３７】
結果が一致しなくなったときにデータベースクエリから生成された保存されている前記結果を自動的に無効にするための方法であって、
無効化情報の少なくとも一部を含む無効化メッセージを受信すること、および
前記無効化情報の少なくとも一部を使用して保存されている結果を無効にすること
を備えることを特徴とする方法。
【請求項３８】
前記結果を自動的に無効にすることをさらに備えることを特徴とする請求項３７に記載の方法。
【請求項３９】
一致した結果を生成し保存するために自動的に再クエリを行うことをさらに備えることを特徴とする請求項３７に記載の方法。
【請求項４０】
前記無効化メッセージは前記格納されている結果に影響を与えることになるデータベース変更および有効期限切れのうちの少なくとも一方に関連付けられることを特徴とする請求項３７に記載の方法。
【請求項４１】
結果をメモリに格納すること、および前記格納されている結果が一致しなくなったときに前記格納されている結果を自動的に無効化することを容易にする２つ以上のコンピュータ構成要素の間で送信されるデータパケットであって、
取り出し、クエリとともに送信できるようにコンテキスト内に格納され、保存されている結果を自動的に無効にする無効化メッセージに使用される無効化情報
を備えることを特徴とするデータパケット。
【請求項４２】
結果を保存し、前記結果が一致しなくなったときに前記結果を無効にするためにメモリ無効化登録システムのコンピュータ実行可能構成要素を格納するコンピュータ可読媒体であって、
構成要素に関連する無効化情報を格納するためのコンテキストと、
前記コンテキストから無効化情報を取得し、要求されたクエリとともに前記無効化情報を送信するためのクエリマネージャと、
結果を保存し、一致しない結果を無効にすることを容易にするためのメモリマネージャと
を備えることを特徴とするコンピュータ可読媒体。
【請求項４３】
メモリ内に保存されている結果を無効にするためのシステムであって、
データベースへのクエリを行うよう要求する構成要素の無効化情報を取得するための手段と、
前記無効化情報をクエリとともに送信するための手段と、
無効化メッセージを受信するための手段と、
メモリ内に格納されている一致しない結果を無効にするための手段と
を備えることを特徴とするシステム。
【請求項４４】
一致した結果を得るために前記データベースの再クエリを自動的に行うための手段をさらに備えることを特徴とする請求項４３に記載のシステム。
【請求項４５】
無効化情報および無効化メッセージが偽りではないことを確認するための手段をさらに備えることを特徴とする請求項４３に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にデータベースに関し、より詳細には、データベースクエリから生成された結果をその後使用するために保存し、保存されている結果がデータベースと一致しなくなったときにそれらを無効にするためのシステムおよび方法に関する。
【背景技術】
【０００２】
コンピューティング技術およびネットワーキング技術によって、日常生活の多くの重要な側面が変化してきた。コンピュータは、贅沢な教育用ツールおよび／または娯楽センターの代わりに家庭の必需品となり、ユーザに、資金の管理および予測、暖房、冷房、照明、セキュリティなど家庭用器具の運転の制御、および永続的で信頼できる媒体への記録および画像の保管を行うためのツールを提供する。インターネットなどのネットワーキング技術によって、ユーザに、リモートシステム、情報および関連するアプリケーションへの実質的に無限のアクセスが提供される。
【０００３】
コンピューティング技術およびネットワーキング技術の堅牢化、安全化、高信頼化が進むにつれて、多くの消費者、卸売業者、小売業者、企業、教育機関などは、パラダイムを変更しつつあり、従来の手段の代わりにインターネットを使用して業務を行うようになってきている。例えば、多くの企業および消費者は、Ｗｅｂサイトおよび／またはオンラインサービスを提供している。例えば、今日消費者は、インターネットを介して各自のアカウントにアクセスし、残高照会、振込み、請求書の支払いなどますます多くの利用可能なトランザクションを行うことができる。
【０００４】
一般に、インターネットセッションは、ユーザがクライアントアプリケーション（Ｗｅｂサーバなど）とインターフェースをとり、クライアントアプリケーションからアクセス可能なデータベースに情報を格納するデータベースサーバと対話することを含む。例えば、株式市場のＷｅｂサイトは、株価を取得し、株を購入するためのツールをユーザに提供することができる。ユーザは、銘柄記号を入力し、マウスをクリックしてクエリをアクティブにすることによって株価を要求することができる。次いでクライアントアプリケーションは、株情報についてデータベースへのクエリを行い、株価を戻す。同様に、ユーザは、適した情報を提供することによって株を購入することができ、注文を送信することによってデータベースクエリが開始して現在の価格情報および注文状況が戻される。
【０００５】
より多くのユーザがこうしたサービスを活用するようになるにつれて帯域幅の消費が増大し、帯域幅は有限のリソースであるため、パフォーマンスおよび／または速度が低下する可能性がある。別の欠点は、使用可能なデータの量に対する使用可能なデータ転送率が限られることである。例えば、大量のデータ（例えば様々なサーバにわたって分散されている）を取得する要求は、帯域幅を使用可能なときでさえ、時間がかかり、パフォーマンスが制限される可能性がある。
【０００６】
【特許文献１】米国特許第６，０６１，６７７号明細書
【特許文献２】米国特許第６，３４７，３１２号明細書
【特許文献３】米国特許第６，３５６，８８９号明細書
【特許文献４】米国特許第６，３８９，４１４号明細書
【特許文献５】米国特許第６，５１９，５８７号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記のことは、複数のユーザが頻繁に同様の要求を行うことによっていっそうひどくなる。例えば、現在の株価を要求しているユーザは、更新された株価の取得要求を頻繁に行う可能性がある。したがって、ユーザは頻繁に帯域幅を消費し、実質的に同様の情報を取得する。さらに、他の複数のユーザが、実質的に同様の情報の取得要求を同時に行う可能性がある。その後データベーステーブルが変更されると戻された結果が無効になる可能性があるため、取得したデータの整合性が保証できないという点で、ユーザはさらに制約を受ける。
【課題を解決するための手段】
【０００８】
以下に、本発明の一部の態様を基本的に理解できるようにするために本発明の概略を示す。この概略は、本発明の広範にわたる概要ではない。本発明の鍵となる／重要な要素を識別するもの、または本発明の範囲を画定するものではない。唯一の目的は、後述するより詳細な説明の前置きとして簡略化した形で本発明の一部の概念を示すことである。
【０００９】
本発明は、データベースの変更および／または有効期限切れのために結果が無効になったとき、データベースクエリから生成された保存されている結果を無効にするシステムおよび方法に関する。したがって本発明は、データベースへのクエリを行い、データベースクエリから生成された結果を保存し、データベースの変更および／または有効期限によって結果が無効になるまで保存されている結果を使用する機構を提供する。
【００１０】
一般に、データベースは、データベースへのクエリによって取得可能な情報を格納する。ユーザは、アプリケーションとインターフェースをとり、例えばデータベース内に格納されている情報の少なくとも一部を取得することができる。ユーザは、例えばＷｅｂサービスを使用し、サーバに格納されている情報に関連する要求を送信することができる。要求によって関連性のあるデータベースの１つまたは複数のクエリが開始され、次いで１つまたは複数のクエリの結果を使用して応答を生成し、Ｗｅｂサービスから戻され、表示され、消費され、かつ／またはさらに使用されることができる。
【００１１】
多くの場合、データベースは、一般的なリソース競合の元となる可能性がある。例えば、複数のユーザが、データベースへのクエリを同時に行い、同様の結果を戻す同様の要求を送信する可能性がある。同様の結果についてのこうした同時のクエリによって、例えばデータベースの負荷の増大、帯域幅の低減、パフォーマンスの低下、リソースの消費がもたらされる可能性がある。他の例では、１人または複数のユーザが、同様の結果を戻す要求を頻繁に行う可能性がある。同様に、システムパフォーマンスは、例えばデータベース負荷によって低下する可能性がある。上記の場合、データベースが、複数のユーザ要求および／またはユーザの間で共有された状態を表し、共有される競合状態は、システムのパフォーマンスおよびスケーラビリティを制限する可能性がある。
【００１２】
クエリ数を低減するために一般的に使用される技術は、頻繁に使用されるデータをデータベースから外部に（例えば生データ、変換データ、クエリ可能な形のデータの態様で）保存し、クエリをさらに実行する代わりに保存された結果を使用することを含む。しかし、ユーザへの通知なしに、その後データベースの変更が行われることによって保存されているデータがデータベースと一致しなくなる可能性があるため、保存されているデータの整合性が損なわれる。
【００１３】
本発明のシステムおよび方法によって、データベースの負荷が低減（例えば実質的に同様の情報に対するクエリが低減）され、拡張性が向上し、処理の反復が低減され、データの整合性が保証される。このシステムおよび方法は、コンテキストバンク（ｃｏｎｔｅｘｔ  ｂａｎｋ）に無効化情報を格納することを含み、そこから無効化情報を取得し、クエリとともに送信することにより、クエリをクエリ要求側に関連付けてデータベースに登録することができる。次いでクエリから生成された結果（生データ、変換データ、クエリ可能な形のデータ、部分応答および完全応答など）を、様々なユーザ（Ｗｅｂサーバなど）がデータベースの外部にあるアクセス可能な記憶媒体に保存し、１回または複数回使用することができ、したがって実質的に同様の情報に対するクエリが軽減される。
【００１４】
格納されている結果に影響を与えることになるデータベースの変更が行われると、保存されている結果の無効を容易にするための無効化メッセージが送信されて、ユーザが一致しないデータを使用するのを軽減することができる。一般にクエリとともに送信された無効化情報を使用して無効化メッセージが構築される。さらに、有効期限を定義して、たとえデータベースの変更が行われていない場合でも、有効期限が切れた後は保存されている結果が無効になるようにすることができる。保存されている結果を無効にした後、その結果を例えば自動的に破棄し、かつ／または自動的に更新することができる。
【００１５】
さらに、本発明のシステムおよび方法は、Ｗｅｂ環境で使用することができ、データベースクエリから生成されたＷｅｂ応答を全部または一部格納し、その後の要求に応答して戻すことができる場合、Ｗｅｂサーバリソースの待ち時間および使用をさらに低減することができる。例えば、開発者は、Ｗｅｂページ内にコメントを埋め込むことによって、クエリの結果が変更されるまで、データベースクエリに基づいて生成された応答がキャッシュされるよう要求することができる。コメントは、Ｗｅｂサーバを呼び出し、データベース依存関係をキャッシュされる応答に関連付け、その依存関係に関連する無効化情報および／または依存関係自体をコンテキストバンクに格納する。格納された無効化情報は、自動的に取得され、その後のクエリとともにデータベースに送信される。上述のように、以前クエリされた結果が一致しなくなるようなデータベースへの変更が行われたとき、および／または有効期限が切れたときに無効化情報を無効化メッセージに使用することができる。
【００１６】
無効化情報をコンテキストバンクに格納し、使用することによって、無効化情報をクエリと関連付けるためのインフラストラクチャが容易にインスタンス化され、クエリ応答が容易に保存（例えばキャッシュ）されるようになる。したがって、格納されている無効化情報を使用することによって、Ｗｅｂサーバ（および／またはクエリ要求を処理することができる他の構成要素）が応答の生成についての知識を持つ必要が軽減される。さらに、格納されている無効化情報を使用することによって、Ｗｅｂサーバによって応答がどのように使用されるかを、応答を生成する構成要素が知る必要が軽減される。
【００１７】
本発明によれば、本明細書に記載したシステムおよび方法は、無効化情報を格納し、クエリを実行し、そのクエリに基づいた結果を保存し、無効化メッセージを受信し、かつ／または保存されている情報を無効にするための構成要素を使用する。さらに、非同期および同期の通信の様々なデータ転送技術、および安全でない偽りの情報およびメッセージの存在および／または転送を軽減するセキュリティ技術を使用することができる。実際には、このシステムおよび方法を、クライアント−サーバおよび／またはＳＱＬベースの環境など様々な環境で使用することができる。
【００１８】
上記および関連の目的の達成のために、本発明は、以下で十分説明し、特に特許請求の範囲で指摘する特徴を含む。以下の説明および添付の図面では、本発明の一部の態様および実装形態の例を詳細に述べる。ただしこれらは、本発明の原理を使用することができる様々な方法のうちのごく一部を示すものである。本発明の他の目的、利点、および新しい特徴は、図面と併せ読めば、本発明の以下の詳細な説明から明らかになる。
【発明を実施するための最良の形態】
【００１９】
次に、図面を参照して本発明を説明する。図中、全体を通じて同様の要素への言及には同様の参照符号を使用する。以下の説明では、説明上、本発明を完全に理解できるようにするために、特定の詳細を数多く記載している。しかし、本発明をこうした特定の詳細の限外で実施できることは理解できよう。他の例では、本発明を説明しやすくするために、よく知られている構造および装置をブロック図の形で示している。
【００２０】
本願で使用する場合、「構成要素」という用語は、ハードウェア、ハードウェアおよびソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかのコンピュータ関連のエンティティを指すものとする。例えば、構成要素は、それだけには限定されないが、プロセッサ上で動作するプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および／またはコンピュータとすることができる。一例として、サーバ上で動作するアプリケーションおよびサーバをコンピュータ構成要素とすることができる。１つまたは複数の構成要素がプロセスおよび／または実行スレッド内に存在していてもよく、１つの構成要素を１つのコンピュータ上に配置する、および／または２つ以上のコンピュータ間に分散することもできる。「スレッド」とは、オペレーティングシステムカーネルが実行する予定のプロセス内のエンティティである。各スレッドは関連する「コンテキスト」を有しており、これは、スレッドの実行に関連する揮発性データである。スレッドのコンテキストは、システムレジスタの内容およびスレッドのプロセスに属する仮想アドレスを含む。したがって、スレッドのコンテキストを含む実際のデータは、その実行に伴って変化する。
【００２１】
本発明は、（例えば動的および静的）データベースクエリから生成された結果をメモリに格納するためのシステムおよび方法に関し、そこで結果を取得し、使用し、（データベースの変更や有効期限切れなど）一致しなくなったときに無効にすることができる。このシステムおよび方法によって、実質的に同様の（例えば重複する）情報についてのクエリの低減によってシステム負荷、およびリソース競合が軽減される。さらに、このシステムおよび方法によって、一致しない保存結果の使用が軽減される。したがって、このシステムおよび方法は、情報を得るためにデータベースへのクエリを行い、結果をキャッシュなどのメモリに格納し、保存された結果を１回、または実質的に同様の結果が必要な場合は複数回使用し、一致しなくなったときに保存されている結果を自動的に無効にし、任意選択で、自動的な再クエリおよび保存によってメモリを更新するための機構を提供する。
【００２２】
図１を参照すると、本発明の一態様による無効化登録システム１００の例を示している。無効化登録システム１００は、コンテキストバンク１１０、およびクエリマネージャ１２０を含む。
【００２３】
コンテキストバンク１１０を使用して、保存されている結果に影響を及ぼし得るデータベース変更が行われたとき、および／または有効期限が切れたときに保存されている結果を容易に無効にするための情報を提供することができる。例えば、コンテキストバンク１１０を使用して、（例えば後述する依存関係など）構成要素に関連する無効化情報を格納することができる。無効化情報は、データベースクエリによってデータベースにリンクすることができる。結果は、保存し、１回または複数回使用することができる。クエリに影響を及ぼし得るデータベースへの変更が行われたとき、および／または期限切れになったとき、対応する無効化情報を使用して、例えば通知、イベント、フラグ、保存されている結果の自動無効化、および一致した結果を自動再クエリにより取得することによるメモリの更新などによって保存されている結果を容易に無効にすることができる。
【００２４】
一般の無効化情報は、無効化文字列、サービス情報、およびタイムアウトを含む。無効化文字列は一般に、構成要素識別子、位置（マシン名など）、ポート、アドレス、および／またはキュー名を含み、例えば認証情報、暗号化、およびプロトコル優先順位（ｐｒｏｔｏｃｏｌ  ｐｒｅｆｅｒｅｎｃｅｓ）などをさらに含むことができる。サービス情報は、例えば保存結果の自動削除用フラグ、結果を自動的に更新するためのフラグ、結果に無効であると自動的にタグ付けするためのフラグ、保存されている結果に影響を与えることなく構成要素に通知するためのフラグを含むことができる。タイムアウトは、例えばデータベースの変更、ファイルの変更、時間をベースにすることができる。上記は例であり、限定するものではないことを理解されたい。したがって、本発明の一態様に従って異なる情報をさらに含める、および／または含める情報をより少なくすることができる。
【００２５】
コンテキストバンク１１０に格納されている無効化情報は、クエリマネージャ１２０から使用可能である。クエリマネージャ１２０は、コマンドおよび／またはクエリの実行時に無効化情報を使用することができる。例えばクエリマネージャ１２０は、コンテキストバンク１００から無効化情報を取得し、この無効化情報をクエリに含め、無効化情報をクエリの一部とする、かつ／またはクエリに関連付けることができる。
【００２６】
本発明の一態様では、ページ指示（Ｗｅｂページ内のコメントなど）を使用して、構成要素（依存オブジェクトなど）のインスタンス化、およびその構成要素に関連する無効化情報のコンテキストバンク１１０への格納を開始することができる。コンテキストバンク１１０を使用して無効化情報を格納することによって、クエリマネージャ１２０を呼び出すアプリケーションが、どのように応答をキャッシュするかを知る必要なく、クエリとともに無効化情報を使用するインフラストラクチャを容易に確立できるようになる。
【００２７】
クエリマネージャ１２０は、データベースへのクエリ要求を介して呼び出されると、コンテキストバンク１１０と対話して、その構成要素に関連付けられた無効化情報を取得する。次いでクエリマネージャ１２０は、データベースへのクエリを介して要求を実行し、コンテキストバンク１１０から取得された無効化情報が連続的に、かつ／またはクエリと同時に送信される。次いでクエリ結果を再調整し、使用して、格納すべき結果が生成され、送信された無効化情報は、構成要素、クエリ、およびクエリが行われたデータベースに関連付けられたままである。
【００２８】
クエリの後、かつ格納すべき結果の生成前に、クエリが行われたデータベースが変更されなかった場合（例えば格納すべき結果がデータベースと一致している場合など）、その結果を使用し、メモリに保存して、さらに使用することができる。実質的に同様の結果を戻し得る要求が続いて送信されるときは、別のクエリを実行する代わりに格納されている結果を使用することができる。したがって、本発明は、パフォーマンス、スループット、処理および速度を低下させる可能性があり、リソース競合になりやすい実質的に同様の結果についてのクエリの実行を軽減する。
【００２９】
結果を保存した後、データベース変更、または期限切れによって保存されている結果が一致しなくなる可能性がある。上記のクエリの結果に影響を及ぼし得るデータベース変更が行われたとき、および／またはタイムアウトが満了したとき、たとえその結果を生成した構成要素がもはや存在していないとしても、クエリとともに送信された無効化情報を使用して構成要素（メモリマネージャ１２０など）に保存されている結果を無効（削除、更新など）にするよう通知することができる。保存されている結果への関連付けを試みる他の構成要素に、保存されている結果が無効であることを示す通知を提供することができる。したがって本発明では、構成要素に通知し、かつ／または保存されている結果を無効にすることによって、一致しない保存結果の使用が軽減される。
【００３０】
図２に移ると、本発明の一態様による無効化メモリ管理システム２００の例を示している。無効化メモリ管理システム２００は、クエリマネージャ１２０およびメモリマネージャ２２０を含む。
【００３１】
上記の機能に加えて、クエリマネージャ１２０は、クエリ結果および／または変更された、かつ／または期限切れになったデータベースに対する無効化メッセージを受信することができる。一般に、無効化情報（例えば上述したような）がクエリとともに送信された後、クエリ結果が戻される。本発明の一態様では、クエリマネージャ１２０は、戻されたクエリ結果を受信し、メモリマネージャ２２０は、クエリ結果から生成された結果の保存、および／または使用を容易にするために使用される。格納すべき結果の生成前にデータベースが変更されたこと、および／または有効期限が切れたことがわかる場合、メモリマネージャ２２０は、その結果をメモリに保存することなく、構成要素にその結果を提供することができる。データが一致しており（データベースの変更が行われないなど）、有効期限が切れていない場合、メモリマネージャ２２０は、その結果を連続的かつ／または同時に構成要素に提供し、かつ／またはメモリに保存することができる。保存されている結果には、実質的に同様のクエリが要求されたときに構成要素からアクセスすることができ、したがってリソースを消費し、パフォーマンスを低下させる実質的に同様のクエリの実行が軽減される。
【００３２】
戻された結果は、生データ、変換データ（例外的な集計データ、概要データ、ピボットテーブル、生データから生成されたオブジェクト、および／または部分または完全Ｗｅｂ応答（ｃｏｍｐｌｅｔｅ  ｗｅｂ  ｒｅｓｐｏｎｓｅ）など）、および／またはクエリ可能データ（そのサブセットを取得するためにその後のクエリによって使用できるデータセット）を含み得ることを理解されたい。さらに、結果をメモリに保存するために様々な技術を使用できることを理解されたい。例えば、第１の手法では、戻されたほぼすべての結果（例えば完全Ｗｅｂ応答）を保存することができる。第２の手法では、戻された結果の一部（例えば部分ページ）をメモリに保存することができる。例えば、その後の要求に共通し得る部分が保存される。別の例では、複数の要求に共通する結果が保存される。その場合、メモリから取得した共通の結果に対するローカルクエリでは、要求に関連するデータを戻すことができる。第３の手法では、個人用の結果をクエリおよび他のいくつかの手段によって取得することができ、共通の結果をメモリに保存して、使用することができる。上記の例は、説明の目的で提供したものであり、本発明を限定するものではないことを理解されたい。
【００３３】
無効化メッセージを受信した後、クエリマネージャ１２０は、データベース変更通知を構成要素に容易にルーティングし、かつ／または保存されている結果を無効にすることができる。本発明の一態様では、クエリマネージャ１２０が構成要素に通知し、構成要素は次のアクションを決定する。例えば、構成要素は、メモリマネージャ２２０を使用して保存されている結果を無効にすることができる。あるいは、クエリマネージャ１２０は、メモリマネージャ２２０を使用して、メモリマネージャ２２０は、保存されている結果を無効にし、かつ／または構成要素に通知することができる。保存されている結果が無効になると、クエリを開始した構成要素、および対応する保存はもはや存在しないことを理解されたい。
【００３４】
次に図３を参照すると、本発明の一態様によるデータベース登録／無効化システム３００の例を示している。データベース登録／無効化システム３００は、コンテキストバンク１１０、クエリマネージャ１２０、メモリマネージャ２２０、および任意選択でクライアント３１０、メモリ３２０を含む。複数のメモリマネージャ２２０、クライアント３１０、およびメモリ３２０を使用できるが、簡潔にするために、以下では１つのクライアントインスタンスについて説明することを理解されたい。
【００３５】
上述したように、コンテキストバンク１１０は、保存されている結果に影響を与えることになるデータベース変更が行われたとき、および／または有効期限が切れたときに保存されている結果を無効にするための情報を提供するために使用できる構成要素に関する（例えば上述した）無効化情報を格納することができる。本発明の一態様では、クライアント３１０は、無効化情報、つまり識別子、マシン名、ポート、アドレス、データベース名、一致しない保存結果を自動的に無効にする指示、一致しない結果を自動的に更新する指示、およびタイムアウト（データベース変更、ファイル変更、および時間による無効など）をコンテキストバンク１１０に提供することができる。
【００３６】
データベースに対するクエリを行うためにクライアント３１０がクエリマネージャ１２０を呼び出したとき、クエリマネージャ１２０は、（上述したように）コンテキストバンク１１０から関連する無効化情報を受信し、かつ／または関連する無効化情報をコンテキストバンク１１０から取得する（図示せず）。次いでクエリマネージャ１２０は、クエリを行い、無効化情報を提供する。クエリマネージャ１２０は、本発明の一態様に従って動的および／または静的データベースへのクエリを行うことができる。
【００３７】
クエリマネージャ１２０は、クエリ結果を受け付け、その結果をクライアント３１０に送信することができる。本発明は、同期および非同期メッセージ配信を提供することを理解されたい。同期メッセージ配信では、無効化メッセージの配信および／または一致しない結果の無効化まで、データベースの変更を阻止することができる。同期配信では、変更のコミットと無効化メッセージの受信および／または結果の無効化の間にデータベース変更が確実に行われないようにすることによって、データの不一致が軽減される。非同期メッセージ配信では、無効化メッセージを配信する前、および／または一定しない結果を無効にする前にデータベースの変更をコミットすることができる。非同期配信では、配信待ち時間が軽減される。
【００３８】
クエリ結果を受信した後に、クエリが行われたデータベースは、様々な技術を使用して検査され、クエリ後、格納すべき結果を生成する前に、変更が行われたかどうかを確認することができる。変更が行われた場合、クライアント３１０は、メモリマネージャ２２０を呼び出すことなく結果を使用することができる。変更が行われていない場合、クライアント３１０は、その結果を使用し、メモリマネージャ２２０を使用して、その結果を（ローカル、リモート、高速、ＨＴＴＰ、共有などの）メモリ３２０に格納することができる。実質的に同様の結果を戻し得るその後の要求では、保存されている結果が一致しなくなるまでクエリを行う代わりに、メモリ３２０から保存されている結果を使用することができる。
【００３９】
本発明の別の態様では、結果を保存するかどうかの決定を容易にするために様々な技術が使用される。例えば、結果が複数の要求に共通であり、まれにしか変更されないと決定されると、その結果は保存される。しかし、結果が頻繁に変更され、かつ／または頻繁には使用されず、かつ保存のコストが比較的高いと決定されると、その結果は保存されない。本発明のさらに別の態様では、メモリ問題を軽減するために様々な技術が使用される。例えば、メモリ３２０がいっぱいである場合、結果は、先入れ先出し（ＦＩＦＯ）方式または先入れ後出し（ＦＩＬＯ）方式、最も古い情報が最初に破棄される経時ベース方式（ａｇｅ  ｂａｓｅｄ  ａｐｐｒｏａｃｈ）、最も使用されていない、または最後に使用されてから最も長い情報が最初に破棄される使用量方式（ｕｓａｇｅ  ａｐｐｒｏａｃｈ）、サイズベース方式、およびキーベース方式を使用して保存することができる。別の例では、十分な「空き」メモリを使用できるまで結果が保存されない。他の手法、またはこれらの手法のバリエーションでは、結果の生成に必要な時間量および／またはリソースを考慮することができる。
【００４０】
結果に影響を与えることになるデータベースへの変更が行われると、かつ／または有効期限が切れると、無効化メッセージがシステム３００にディスパッチされる。一般に、無効化メッセージは、無効化情報の少なくとも一部を含む。クエリマネージャ１２０は、無効化メッセージを受信することができる。次いでクエリマネージャ１２０は、クライアント３１０（および／または無効化メッセージを受信するように登録されている他の構成要素）に通知する。次いでクライアント３１０は、メモリマネージャ２２０を呼び出して、保存されている結果を無効にする（例えば削除、消去、上書き、および移動する）ことができる。無効化情報に自動結果更新が指示されている場合、その後のクエリが行われて新しい結果が生成され、これをメモリ３２０に保存し、クライアント３１０のような構成要素によって使用することができる。上記の技術を使用することによって、一致しない結果上に新しい結果を保存することによって一致しない結果の削除を軽減することができる。
【００４１】
無効化登録システム１００、無効化メモリ管理システム２００、およびデータベース登録／無効化システム３００は、さらに構成要素を使用して、データベース（データベーステーブル、データテーブル、テーブルなど）を登録する、データベースへの変更を検出する、変更されたデータベースが登録されているかどうかを決定する、および／または登録されているデータベースが変更されたことを示すメッセージをディスパッチすることができることを理解されたい。
【００４２】
図１〜３は、システム１００〜３００の構成要素を示すブロック図であるが、コンテキストバンク１１０、クエリマネージャ１２０、メモリマネージャ２２０、クライアント３１０、およびメモリ３２０は、用語が本明細書で定義されているような１つまたは複数のコンピュータ構成要素として実装できることを理解されたい。したがって、システム１００〜３００、コンテキストバンク１１０、クエリマネージャ１２０、メモリマネージャ２２０、クライアント３１０、およびメモリ３２０を実装するよう動作可能なコンピュータ実行可能構成要素は、それだけには限定されないが、本発明に従って、ＡＳＩＣ（特定用途向け集積回路）、ＣＤ（ｃｏｍｐａｃｔ  ｄｉｓｋ）、ＤＶＤ（ｄｉｇｉｔａｌ  ｖｉｄｅｏ  ｄｉｓｋ）、ＲＯＭ（Ｒｅａｄ  ｏｎｌｙ  Ｍｅｍｏｒｙ）、フロッピー（登録商標）ディスク、ハードディスク、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｏｎｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、およびメモリスティックなどのコンピュータ可読媒体に格納することができることを理解されたい。
【００４３】
図４に進むと、本発明の一態様によるＷｅｂベースメモリ無効化システム４００の例を示している。Ｗｅｂベースメモリ無効化システム４００は、Ｗｅｂサーバ４０５、依存構成要素（ｄｅｐｅｎｄｅｎｃｙ  ｃｏｍｐｏｎｅｎｔ）４１０、コンテキスト構成要素４２０、クエリマネージャ４３０、サーバ４４０、データベースサーバ４５０、メモリストア４６０、ローカルメモリ４７０、高速メモリ４８０、他のメモリ４９０（リモート高速メモリなど）、アプリケーション４９２、および補助層４９４を含む。
【００４４】
Ｗｅｂサーバ４０５は、ページ指示（上述したようなコメントなど）を含むＷｅｂページにアクセスすることができる。ページ指示を使用して、Ｗｅｂ応答が保存されること、および関連するデータベースが変更されたとき、および／または有効期限が切れたときに保存された応答を無効化すべきであることを指定することができる。Ｗｅｂサーバ４０５は、ページ指示を使用し、依存構成要素４１０（オブジェクト、導出オブジェクトなど）を呼び出し、コンテキスト構成要素４２０への無効化情報の格納を容易にすることができる。
【００４５】
依存構成要素４１０は、例えばグローバル一意識別子、すなわちＧＵＩＤなどの一意の識別子を取得して、その後のクエリに関連付けるべきキャッシュされた応答を識別する。依存構成要素４１０は、一意の識別子および（上述したような）他の様々な無効化情報をコンテキスト構成要素４２０に提供する。一般に、無効化情報は、無効化文字列（例えばＧＵＩＤ、マシン名、ポート、アドレスおよびキュー名、任意選択で認証情報、暗号化、およびプロトコル優先順位）、サービス情報、および（データベースの変更および期限切れなどによる）タイムアウトを含む。しかし、上記は例であり、無効化情報を限定するものではない。
【００４６】
クエリマネージャ４３０（クエリマネージャ１１０など）が呼び出されてデータベースへのクエリを行うとき、クエリマネージャ４３０は、コンテキスト構成要素４２０とインターフェースをとり、関連する無効化情報を取得する。次いでクエリエンジン４２０は、クエリおよび無効化情報をデータベースサーバ４５０内のサーバ４４０（例えば動的および静的）に送信する。データベース４４０に対するクエリが実行されて結果がアプリケーション４９２に戻される。無効化情報は、データベースサーバ４５０に残り、Ｗｅｂサーバ４０５上の依存構成要素４１０と、サーバ４４０によって戻される結果との間の関連を提供する。
【００４７】
クエリ結果を受信した後、Ｗｅｂサーバは、完全応答または部分応答を生成する。Ｗｅｂサーバ４０５は、依存構成要素４１０をポーリングして、応答が生成されている間にデータベースの変更が行われたかどうかを決定し、次いでその結果を保存するかどうかを決定する。その結果を保存することが決定されると、Ｗｅｂサーバ４０５は、メモリストア４６０を使用して、結果をローカルメモリ４７０（キャッシュなど）、高速メモリ４８０（キャッシュなど）、および／または他のメモリ４９０への保存を容易にすることができる。一般に、ローカルメモリ４７０をアプリケーション４９０に関連付け、高速メモリ４８０を補助層４９４（ＨＴＴＰ．ｓｙｓなど）に関連付けることができる。そうでない場合、保存することなく応答を使用し、かつ／または破棄することができる。
【００４８】
保存されているＷｅｂ応答に影響を与えるデータベース変更が行われたとき、および／または有効期限が切れたとき、サーバ４４０は、無効化メッセージを依存構成要素４１０に送信する。次いで依存構成要素４１０は、（例えばイベントを発生させる、フラグを設定するなどにより）変更を信号で知らせる。メモリストア４６０は、この信号を受信し、応答を無効にする。任意選択で、無効化メッセージが受信されると、自動更新を使用してクエリを実行して、一致した結果を取得し、保存することができる。自動更新は、一致しない結果を上書きし、かつ／または一致した結果を保存する前に一致しない結果を削除することができる。
【００４９】
次に図５に、本発明の一態様によるセキュリティ技術の例を示している。システム５００は、Ｗｅｂサーバ４０５、データベースサーバ４５０、およびＷｅｂサーバ４９６とデータベースサーバ４５０を動作可能に結合するセキュリティ層５１０を含む。
【００５０】
上述したように、クエリエンジン４３０は、コンテキスト構成要素４２０とインターフェースをとり、クエリ要求を受信した後、無効化情報を取得する。次いでクエリエンジン４２０は、Ｗｅｂサーバ４０５からデータベースサーバ４５０内のサーバ４４０にクエリおよび無効化情報を送信する。
【００５１】
上述したように、無効化情報は、グローバル一意識別子、すなわちＧＵＩＤなどの一意の識別子を含むことができる。ＧＵＩＤは、データベースの変更および有効期限切れをシミュレートしようとする悪意のある試みを軽減するために使用することができるセキュリティ機構を提供する。例えば、本発明の一態様では、ランタイム時のデータベースクエリ登録要求が受信されるときにＧＵＩＤを作成し、それによってＧＵＩＤを「推測する」または模倣する機会が軽減される。次いで無効にすべき保存結果の組を識別するためにＧＵＩＤが使用される。
【００５２】
ＧＵＩＤが無効である（例えば無効にすべき保存結果の組を識別しない）と決定されると、無効化要求を無視し、かつ／または例えばＧＵＩＤとともに破棄することができる。別の例では、偽りの無効化要求をシステム管理者に転送して、発信位置を追跡するために使用することができる。
【００５３】
図６は、本発明の一態様による無効化メッセージ転送技術の例を示している。システム６００は、Ｗｅｂサーバ４０５、データベースサーバ４５０、ならびにＷｅｂサーバ４０５およびデータベースサーバ４５０を動作可能に結合する通信インターフェース６１０を含む。
【００５４】
クエリ要求を受信すると、クエリエンジン４３０は、コンテキスト構成要素４２０から無効化情報を取得し、クエリおよび無効化情報をデータベースサーバ４５０に送信する。クエリが実行されて結果がＷｅｂサーバ４０５に送信され、この結果をメモリに保存し、複数回使用することができ、実質的に同様のクエリの実行を軽減することができる。
【００５５】
データベースサーバ４５０から結果が戻されると、無効化情報は、データベースサーバ４５０に残り、Ｗｅｂサーバ４０５内で関連する保存結果を探すためにデータベース変更が行われたときに使用することができる。データベースサーバ４５０内に無効化情報を格納するために様々な機構を使用できること、および無効化情報を変更されたデータベースと照合し、無効化メッセージをディスパッチするために様々な技術を使用できることを理解されたい。
【００５６】
データベースの変更が行われると、無効化メッセージが構築され、通信インターフェース６１０を介してデータベースサーバ４５０からＷｅｂサーバ４９６に送信される。無効化メッセージは、例えば無効化情報の少なくとも一部を含むことができる。
【００５７】
データベースの変更は、コミットおよび／または阻止することができることを理解されたい。例えば、本発明の一態様で、非同期無効化メッセージ転送モデルを使用することができ、データベース変更は、無効化メッセージが通信インターフェース６１０を介して送信されるかどうか、および／または保存されている結果が無効化されたかどうかに関係なくコミットされる。
【００５８】
本発明の別の態様で、同期無効化メッセージ転送モデルを使用することができ、無効化メッセージが通信インターフェース６１０を介して送信されるまで、および／または保存されている結果が無効化されるまでデータベースの変更が阻止される。非同期モデルは拡張性を提供し、同期モデルは信頼性を提供する。上記は理解しやすくするために提供したものであり、本発明を限定するものではなく、例えば、本発明に従って他の様々なプッシュおよび／またはプル手法など他の技術を使用することもできる。
【００５９】
図７は、本発明の一態様による分散無効化システム７００の例を示している。無効化システム７００は、Ｎを１以上の整数とすると、第１のＷｅｂアプリケーション７１０１からＮ番目のＷｅｂアプリケーション７１０Ｎ、Ｍを１以上の整数とすると、第１のコンテキスト構成要素７２０１からＭ番目のコンテキスト構成要素７１０Ｍ、Ｋを１以上の整数とすると、第１のデータベース７３０１からＫ番目のデータベース７３０Ｋ、および共有メモリ７４０を含む。
【００６０】
第１のＷｅｂアプリケーション７１０１からＮ番目のＷｅｂアプリケーション７１０ＮをまとめてＷｅｂアプリケーション７１０、第１のコンテキスト構成要素７２０１からＭ番目のコンテキスト構成要素７２０Ｍをまとめてコンテキスト構成要素７２０、第１のデータベース７３０１からＫ番目のデータベース７３０Ｋをまとめてデータベース７３０と呼ぶことができる。
【００６１】
Ｗｅｂアプリケーション７１０（オブジェクトインスタンスなど）を使用してデータベースへのクエリを行い、ユーザ要求を満たすことができる。一般に、Ｗｅｂアプリケーション７１０がインスタンス化されると、Ｗｅｂアプリケーション７１０に関連する無効化情報は、アセンブルされ、それぞれのコンテキスト構成要素７２０（コンテキストバンク１１０など）に格納される。上述したように、無効化情報は一般に、一意の識別子、無効化文字列、サービス情報、および有効期限を含むが、無効化情報はそのように限定されるものではない。
【００６２】
クエリ要求が少なくとも１つのＷｅｂアプリケーション７１０で受信されると、対応するコンテキストバンクを使用して関連する無効化情報が取得される。次いでクエリおよび無効化情報を、通信プロトコル（Ｅｔｈｅｒｎｅｔ（登録商標）やＦｉｒｅｗｉｒｅなど）を介してデータベース７３０に送信する。クエリは、ユーザ要求を満たすために１つまたは複数のデータベース７３０を使用できることに注意されたい。
【００６３】
クエリを実行した後、結果を少なくとも１つのＷｅｂアプリケーション７１０に戻すことができる。結果が確実に一致するようにするために、データベース７３０のチェックを行い、クエリの後、しかし格納すべき結果を生成する前に結果に影響を与えることになる変更が行われたかどうかを決定することができる。変更が行われたと決定された場合、その結果を使用し、かつ／または破棄することができる。結果が一致すると決定された場合、その結果を使用し、かつ／または共有メモリ７４０などのメモリに保存することができる。保存されている結果は、１回または複数回使用することが可能である。さらに、１つまたは複数のＷｅｂアプリケーション７１０は、保存されている結果を連続的かつ／または同時に使用することができる。したがって、本発明は、複数のＷｅｂアプリケーション７１０が実質的に同様の結果についてのクエリを行うのをさらに軽減する。
【００６４】
少なくとも１つのデータベース７２０に対してデータベース変更が行われたとき、および／または有効期限が切れたとき、少なくとも１つのデータベース７２０は、無効化メッセージを１つまたは複数のＷｅｂアプリケーション７１０および／または共有メモリ７４０に送信する。（例えば１つの）無効化メッセージは、変更によって影響を受ける複数のＷｅｂアプリケーションに通知するために、複数のＷｅｂアプリケーションアドレス、および／または他の情報（他の無効化情報など）を含むことができることを理解されたい。
【００６５】
本発明の別の態様では、複数の無効化メッセージを送信することができ、無効化メッセージは、Ｗｅｂアプリケーションおよび／または共有メモリ７４０に関連付けられ、そこに送信される。さらに別の態様では、実質的にすべてのＷｅｂアプリケーション７１０および／または共有メモリ７４０が無効化メッセージを受信できるように、無効化メッセージをブロードキャストすることができる。次いでＷｅｂアプリケーション７１０は、無効化メッセージを受け付け、かつ／またはそれに対して作用するかどうかを決定することができる。無効化メッセージを共有メモリ７４０に提供することによって、無効化メッセージをＷｅｂアプリケーションに提供する必要性を軽減できることを理解されたい。例えば、要求を開始したＷｅｂアプリケーションは、保存されている結果を無効にするために存在している必要はない。さらに、保存されている結果を共有した任意のアプリケーションは、保存されている結果を無効にするために存在している必要はない。したがって、本発明は、開始したアプリケーションおよび／または共有した任意のアプリケーションがもはや存在しない場合でさえ、一致しない結果を破棄し、かつ／または共有メモリを解放するための機構を提供する。
【００６６】
無効化メッセージを受信した後、次いで保存されている結果を無効にすることができる。例えば、保存されている結果をメモリから削除し、または不一致としてそれにタグ付けすることができる。任意選択で、自動更新を使用してその後のクエリを実行して一致した結果を取得し、メモリに保存することができる。自動更新はさらに、それらが一致しなくなると更新結果を自動的に無効にするために、その後のクエリとともに無効化情報を再送信することができる。
【００６７】
図８は、本発明の一態様によるＷｅｂサービス無効化システム８００の例を示している。Ｗｅｂサービス無効化システム８００は、クライアント８０５、ファイアウォール８１０、メモリ８２０、Ｎを１以上の整数とすると、第１のＷｅｂサービス８３０１からＮ番目のＷｅｂサービス８３０Ｎ、およびデータベース８４０を含む。第１のＷｅｂサービス８３０１からＮ番目のＷｅｂサービス８３０ＮをまとめてＷｅｂサービス８３０と呼ぶことができる。
【００６８】
クライアント８０５は、ファイアウォール８１０を介してＷｅｂサービス８３０とインターフェースをとる。Ｗｅｂサービス８３０へのアクセスは、ファイアウォール８１０によって制御することができる。例えば、ファイアウォール８１０は、クライアント８０５によるＷｅｂサービス８３０へのアクセスを限定する、かつ／またはアクセスを拒否することができる。さらに、ファイアウォール８１０を使用して、クライアント８０５によるデータベース８４０およびメモリ８２０へのアクセスを限定することができる。Ｗｅｂサーバ８３０、データベース８４０、および／またはメモリ８２０へのクライアントアクセスを相互排他的にすることができることを理解されたい。例えば、クライアント８０５は、データベース８４０および／またはメモリ８２０にアクセスすることなくＷｅｂサーバ８３０にフルアクセスすることができる。しかしクライアント８０５は、Ｗｅｂサーバ８３０、データベース８４０、および／またはメモリ８２０にフルアクセスできること、またはアクセスできないことがある。
【００６９】
さらにファイアウォール８１０を使用して、データベース８４０および／またはメモリ８２０に保存されている結果へのＷｅｂサービスアクセスを限定することができる。本発明の一態様では、１つまたは複数のＷｅｂサービス８３０は、（例えばクライアント８０５によって開始された）クエリ、（例えば上述した）無効化情報、およびルーティング情報など他の情報をデータベース８４０に送信することができる。１つまたは複数のＷｅｂサービス８３０が使用許可（ｃｌｅａｒａｎｃｅ）を有している場合、送信された情報をデータベース８４０に伝達することができる。本発明の別の態様では、１つまたは複数のＷｅｂサービス８３０は、ファイアウォール８１０を介して情報を伝達することなく、クエリ、無効化情報、および他の情報をデータベース８４０に送信することができる。
【００７０】
クエリが実行された後、データベース８４０は、クエリ結果を戻す。これは、格納すべき結果の生成に使用される。本発明の一態様では、この結果がファイアウォール８１０に戻され、ファイアウォール８１０は、ある機構（メモリマネージャ１２０など）を使用してその結果をメモリ８２０に保存する。本発明の別の態様では、（例えばファイアウォール８１０を通る、および／または回避することによって）結果をＷｅｂサービス８３０に戻すことができる。次いでＷｅｂサービス８３０は、この結果をメモリ８２０に格納することができ、そこでこの結果はメモリ８２０へのアクセス権を有するＷｅｂサービス８３０から使用でき、この結果をクライアント８０５に提供することができる。
【００７１】
したがって保存されている結果には、メモリ８２０の使用許可を有しているＷｅｂサービス８３０からアクセスすることができる。例えば、Ｗｅｂサービス８３０Ｎは、メモリ８２０内に保存されている結果と実質的に同じ、かつ／またはそのサブセットである結果を戻すクエリを送信することができる。Ｗｅｂサービス８３０Ｎは、メモリ８２０にアクセスすることができる場合、クエリを実行する代わりに、保存されている結果を使用することができる。Ｗｅｂサービス８３０Ｎがメモリ８２０にアクセスできない場合、クエリが実行される。
【００７２】
メモリ８４０に保存されている結果に影響を及ぼすデータベース変更が行われたとき、および／または有効期限が切れたとき、データベース８４０は、無効化メッセージをファイアウォール８１０に送信することができる。無効化メッセージが使用許可を有している場合、メッセージを使用して、メモリ８２０内の一致しない結果を無効にすることができる。本発明の一態様では、通知をさらにＷｅｂサービス８３０に送信して、Ｗｅｂサービス８３０に結果が無効になったことを通知することができる。別の態様では、通知をＷｅｂサービス８３０に送信する代わりに、Ｗｅｂサービス８３０がメモリ８２０を定期的にポーリングして、例えば依然として結果が一致しているかどうかを決定することができる。別の例では、Ｗｅｂサービス８３０がクエリおよび無効化情報を送信すると、同様の結果がメモリ８２０に保存されているか、また同様の結果が一致しているかどうかを決定するためにメモリ８２０で検索が行われる。
【００７３】
自動更新を使用して、一致した結果についての再クエリを自動的に行い、次のデータベース変更が行われたとき、および／またはデータベースのデータ（結果）に対応する期限が切れたときに無効にするための無効化情報を再送信することができる。
【００７４】
図９〜１２は、本発明によるいくつかの方法を示している。説明を簡単にするために、これらの方法を、一連の動作として示し、記載している。本発明は、例示の動作によって、および／または動作の順序によって限定されるものではなく、例えば、動作を様々な順序で、かつ／または同時に、また本明細書に提示、記載していない他の動作とともに行うことができることを理解されたい。さらに、本発明による方法の実施にすべての動作例が必要であるとは限らない。さらに、ある方法を代わりに相互に関連のある一連の状態またはイベントとして表すことができる（状態図など）ことを当分野の技術者であれば理解されよう。
【００７５】
図９に進むと、自動無効化方法９００の例を示している。参照符号９１０で、あるインスタンスがインスタンス化される（オブジェクト、導出オブジェクト、クライアント、アプリケーション、クライアントアプリケーション、および依存インスタンスなど）。９２０で、インスタンスに関連する無効化情報がコンテキストに格納される。上述したように、無効化情報は一般に、無効化文字列、サービス情報、およびタイムアウトを含む。複数のインスタンスをインスタンス化することができ、また複数のインスタンスは、無効化情報を同様のコンテキストに格納することができることを理解されたい。
【００７６】
参照符号９３０で、方法は、クエリ実行要求の受信を待つ。要求を受信すると、コンテキストに格納されており、インスタンスと関連する無効化情報が取り出される。９４０で、クエリおよび無効化情報が例えばデータベースが存在する動的および／または静的サーバに送信される。
【００７７】
次に図１０を参照すると、本発明の一態様による図９の続きを示している。参照符号１０１０に進むと、方法９００は、クエリの結果を待つ。結果を受信し、処理した後、１０２０で、クエリに使用されるデータベースが検査され、クエリとキャッシュ可能な結果の生成との間に変更が行われたかどうかを確認する。これによって、確実に結果が一致するようになる。
【００７８】
クエリと結果の受信との間に変更が行われなかった場合、１０３０でその結果がメモリに格納され、１０４０でインスタンスに提供される。保存されている結果をその後使用して、例えば同様の結果を戻し得るクエリの実行を軽減することができる。１０２０で、クエリと格納すべき結果の生成の間に変更が行われたと決定された場合、１０４０で、その結果は一般にインスタンスに提供され、保存されない。しかし、インスタンスは、一致しない結果を格納し、使用することを決定することができる。結果が一致しないことを他のインスタンスに通知するために様々な技術を使用することができる。例えば、インスタンスが一致しない結果の使用を試みるときはいつでもイベントを生成させるようにフラグを設定することができる。
【００７９】
次に図１１に、本発明の一態様によるデータ変更ベース無効化方法１１００の例を示している。１１１０に進むと、データベース変更が行われ、無効化メッセージが送信され、受信される。無効化メッセージは一般に、無効化情報の一部を含む。例えば、一意の識別子を含めて、無効にすべき一致しない結果の組の識別を容易にすることができる。
【００８０】
データベース変更および送受信を同期することができ、無効化メッセージが受信され、かつ／またはそれに対して行動するときにデータベース変更がコミットされることを理解されたい。別の例では、非同期技術を使用して、送信が行われた、および／またはメッセージを受信したかどうかに関係なくデータベースの変更がコミットされる。
【００８１】
１１２０で、保存されている結果が無効になる。結果を無効にするために様々な方法を使用できることを理解されたい。例えば、結果をメモリから削除する、無効としてタグ付けする、かつ／または上書きすることができる。１１３０で、自動更新を行い、現在の一致した結果を得るためにクエリを行い、その後のデータベースの変更のために無効化メッセージを再登録することができる。
【００８２】
次に図１２を参照すると、本発明の一態様による時間ベース無効化方法の別の例を示している。１２１０に進むと、無効化情報に含められている期間が満了する。その後、無効化メッセージが送信され、受信される。無効化メッセージは、無効化情報の一部を含むことができる。例えば、一意の識別子を含めて、無効にすべき一致しない結果の組の識別を容易にすることができる。１２２０で、（例えば上記と同じように）保存されている結果が無効になる。１２１０で、自動更新を行い、現在の一致した結果を得るためにクエリを行い、その後の有効期限のために無効化メッセージを再登録することができる。
【００８３】
本発明の様々な態様に関する状況をさらに提供するために、図１３および以下の説明は、本発明の様々な態様を実施できる適した動作環境１３１０の簡単な概略説明を提供するためのものである。本発明は、１つまたは複数のコンピュータまたは他の装置が実行するプログラムモジュールなどのコンピュータ実行可能命令の一般的な状況で説明するが、本発明は、他のプログラムモジュールとの組合せで、および／またはハードウェアおよびソフトウェアの組合せとして実施することもできることを当分野の技術者であれば理解されよう。しかし、一般にプログラムモジュールは、特定のタスクを実行する、または特定のデータ型を実装するルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。動作環境１３１０は、適した動作環境の一例にすぎず、本発明の使用または機能の範囲に関する限定を示唆するものではない。本発明との使用に適した他のよく知られているコンピュータシステム、環境、および／または構成には、それだけには限定されないが、パーソナルコンピュータ、ハンドヘルドまたはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラム可能家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記の任意のシステムまたは装置を含む分散コンピューティング環境などがある。
【００８４】
図１３を参照すると、本発明の様々な態様を実施する環境１３１０の例は、コンピュータ１３１２を含んでいる。コンピュータ１３１２は、処理ユニット１３１４、システムメモリ１３１６、およびシステムバス１３１８を含む。システムバス１３１８は、それだけには限定されないが、システムメモリ１３１６などのシステム構成要素を処理ユニット１３１４に結合する。処理ユニット１３１４は、使用可能な様々なプロセッサのうちのどんなものでもよい。デュアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャも処理ユニット１３１４として使用することができる。
【００８５】
システムバス１３１８は、使用可能な様々なバスアーキテクチャのうちの任意のものを使用するメモリバスまたはメモリコントローラ、周辺バスまたは外部バス、および／またはローカルバスを含むいくつかのタイプのバス構造のうちどんなものでもよい。こうしたアーキテクチャには、それだけには限定されないが、８ビットバスのＩＳＡ（Ｉｎｄｕｓｔｒｉａｌ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）、ＭＳＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）、拡張ＩＳＡ（Ｅｘｔｅｎｄｅｄ  ＩＳＡ）、ＩＤＥ（Ｉｎｔｅｌｌｉｇｅｎｔ  Ｄｒｉｖｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）、ＶＥＳＡローカルバス（ＶＬＢ）、ＰＣＩ（Ｐｒｅｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、ＡＧＰ（Ａｄｖａｎｃｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ）、ＰＣＭＣＩＡ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ  Ｍｅｍｏｒｙ  Ｃａｒｄ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ａｓｓｏｃｉａｔｉｏｎ）バス、およびＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｆａｃｅ）などがある。
【００８６】
システムメモリ１３１６は、揮発性メモリ１３２０および不揮発性メモリ１３２２を含む。基本入出力システム（ＢＩＯＳ）は、例えば起動中など、コンピュータ１３１２内の要素間での情報を転送するための基本ルーチンを含み、不揮発性メモリ１３２２に格納されている。不揮発性メモリ１３２２には、それだけには限定されないが一例として、ＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）、ＰＲＯＭ（ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（ｅｌｅｃｔｒｉｃａｌｌｙ  ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＥＰＲＯＭ（ｅｌｅｃｔｒｉｃａｌｌｙ  ｅｒａｓａｂｌｅ  ＲＯＭ）、フラッシュメモリなどがある。揮発性メモリ１３２０には、ランダムアクセスメモリ（ＲＡＭ）などがあり、これは外部キャッシュメモリとして働く。ＲＡＭは、それだけには限定されないが一例として、ＳＲＡＭ（ｓｙｎｃｈｒｏｎｏｕｓ  ＲＡＭ）、ＤＲＡＭ（Ｄｙｎａｍｉｃ  ＲＡＭ）、ＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  ＤＲＡＭ）、ＤＤＲ  ＳＤＲＡＭ（ｄｏｕｂｌｅ  ｒａｔｅ  ＳＤＲＡＭ）、ＥＳＤＲＡＭ（ｅｎｈａｎｃｅｄ  ＳＤＲＡＭ）、ＳＬＤＲＡＭ（Ｓｙｎｃｈｌｉｎｋ  ＤＲＡＭ）、およびＤＲＲＡＭ（ｄｉｒｅｃｔ  Ｒａｍｂｕｓ  ＲＡＭ）など多くの形態で使用可能である。
【００８７】
コンピュータ１３１２は、リムーバブル／非リムーバブル、揮発性／不揮発性コンピュータ記憶媒体を含むこともできる。図１３は、例えばディスク記憶装置１３２４を示す。ディスク記憶装置１３２４には、それだけには限定されないが、磁気ディスクドライブ、フロッピー（登録商標）ディスクドライブ、テープドライブ、Ｊａｚドライブ、Ｚｉｐドライブ、ＬＳ−１００ドライブ、フラッシュメモリカード、メモリスティックなどの装置がある。さらに、ディスク記憶装置１３２４は、記憶媒体を別個に、あるいは、それだけには限定されないが、コンパクトディスクＲＯＭ装置（ＣＤ−ＲＯＭ）、ＣＤレコーダブルドライブ（ＣＤ−Ｒ  Ｄｒｉｖｅ）、ＣＤリライタブルドライブ（ＣＤ−ＲＷ  Ｄｒｉｖｅ）、またはデジタル多用途ディスクＲＯＭドライブ（ＤＶＤ−ＲＯＭ）などの光ディスクドライブなど他の記憶媒体と組み合わせて含めることができる。ディスク記憶装置１３２４のシステムバス１３１８への接続を容易にするために、一般に、インターフェース１３２６などリムーバブルまたは非リムーバブルインターフェースが使用される。
【００８８】
図１３は、ユーザと適した動作環境１３１０に記載した基本的なコンピュータリソースとの間で媒介として働くソフトウェアを説明していることを理解されたい。こうしたソフトウェアには、オペレーティングシステム１３２８などがある。オペレーティングシステム１３２８は、ディスク記憶装置１３２４に格納することができ、コンピュータシステム１３１２のリソースを制御し、割り当てるよう働く。システムアプリケーション１３３０は、システムメモリ１３１６またはディスク記憶装置１３２４のいずれかに格納されているプログラムモジュール１３３２およびプログラムデータ１３３４を介してオペレーティングシステム１３２８によるリソースの管理を利用する。本発明は様々なオペレーティングシステム、またはオペレーティングシステムの組合せで実施できることを理解されたい。
【００８９】
ユーザは、入力装置１３３６を介してコマンドまたは情報をコンピュータ１３１２に入力する。入力装置１３３６には、それだけには限定されないが、マウスなどのポインティング装置、トラックボール、スタイラス、タッチパッド、キーボード、マイクロフォン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナ、ＴＶチューナカード、デジタルカメラ、デジタルビデオカメラ、Ｗｅｂカメラなどがある。これらおよび他の入力装置は、インターフェースポート１３３８を経由してシステムバス１３１８によって処理ユニット１３１４に接続される。インターフェースポート１３３８には、例えば、シリアルポート、パラレルポート、ゲームポート、ユニバーサルシリアルバス（ＵＳＢ）などがある。出力装置１３４０は、入力装置１３３６と同じタイプの何らかのポートを使用する。したがって、例えばＵＳＢポートを使用して、コンピュータ１３１２への入力を提供し、コンピュータ１３１２から出力装置１３４０に情報を出力することができる。出力アダプタ１３４２は、出力装置１３４０の中でも一部の出力装置１３４０にはモニタ、スピーカー、プリンタなど特殊なアダプタを必要とするものがあることを示すために提供されている。出力アダプタ１３４２には、それだけには限定されないが一例として、出力装置１３４０とシステムバス１３１８の間の接続手段を提供するビデオカードおよびサウンドカードなどがある。リモートコンピュータ１３４４など、他の装置および／または装置のシステムは、入力および出力の機能を提供することに注意されたい。
【００９０】
コンピュータ１３１２は、リモートコンピュータ１３４４など１つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク式環境で動作することができる。リモートコンピュータ１３４４は、パーソナルコンピュータ、サーバ、ルーター、ネットワークＰＣ、ワークステーション、マイクロプロセッサベースの装置、ピア装置、または他の一般のネットワークノードなどでよく、一般にコンピュータ１３１２に関連して記載した多くのまたはすべての要素を含む。簡潔にするために、リモートコンピュータ１３４４とともにメモリ記憶装置１３４６のみを示している。リモートコンピュータ１３４４は、ネットワークインターフェース１３４８を介してコンピュータ１３１２に論理的に接続され、次いで通信接続１３５０を介して物理的に接続される。ネットワークインターフェース１３４８は、ローカルエリアネットワーク（ＬＡＮ）および広域エリアネットワーク（ＷＡＮ）などの通信ネットワークを含む。ＬＡＮ技術は、ＦＤＤＩ（Ｆｉｂｅｒ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄａｔａ  Ｉｎｔｅｒｆａｃｅ）、ＣＤＤＩ（Ｃｏｐｐｅｒ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄａｔａ  Ｉｎｔｅｒｆａｃｅ）、Ｅｔｈｅｒｎｅｔ（登録商標）／ＩＥＥＥ８０２．３、トークンリング／ＩＥＥＥ８０２．５などがある。ＷＡＮ技術には、それだけには限定されないが、ポイントツーポイントリンク、サービス総合デジタル網（ＩＳＤＮ）およびそのバリエーションなどの回線交換ネットワーク、パケット交換ネットワーク、デジタル加入者回線（ＤＳＬ）などがある。
【００９１】
通信接続１３５０は、ネットワークインターフェース１３４８をバス１３１８に接続するために使用されるハードウェア／ソフトウェアを指す。通信接続１３５０は、明瞭にするためにコンピュータ１３１２内に示しているが、コンピュータ１３１２の外部にあってもよい。ネットワークインターフェース１３４８への接続に必要なハードウェア／ソフトウェアには、一例にすぎないが、通常の電話用のモデム、ケーブルモデム、ＤＳＬモデムなどのモデム、ＩＳＤＮアダプタ、Ｅｔｈｅｒｎｅｔ（登録商標）カードなど内部技術、外部技術がある。
【００９２】
上記で説明してきたことは、本発明の例を含む。当然、本発明を説明するために構成要素または方法の予想されるすべての組合せについて説明することは不可能であるが、本発明の他の多くの組合せおよび置換えが可能であることを当分野の技術者であれば理解できよう。したがって、本発明は、添付の特許請求の範囲の要旨および範囲内のこうしたすべての代替形態、修正形態、および変形形態を含むものとする。さらに、「含む」という用語が詳細な説明または特許請求の範囲で使用されている限り、こうした用語は、請求項で移行語として使用されるときに「備える」が解釈されるように、「備える」という用語を包含しているものとする。
【図面の簡単な説明】
【００９３】
【図１】本発明の一態様による無効化登録システムの例を示す図である。
【図２】本発明の一態様による無効化メモリ管理システムの例を示す図である。
【図３】本発明の一態様によるデータベース登録／無効化システムの例を示す図である。
【図４】本発明の一態様によるＷｅｂベースメモリ無効化システムの例を示す図である。
【図５】本発明の一態様によるセキュリティ技術の例を示す図である。
【図６】本発明の一態様による無効化メッセージ転送技術の例を示す図である。
【図７】本発明の一態様による分散無効化システムの例を示す図である。
【図８】本発明の一態様によるＷｅｂサービス無効化システムの例を示す図である。
【図９】本発明の一態様による自動無効化方法の例を示す図である。
【図１０】本発明の一態様による図９の続きを示す図である。
【図１１】本発明の一態様による変更ベース無効化方法の例を示す図である。
【図１２】本発明の一態様による時間ベース無効化方法の例を示す図である。
【図１３】本発明の一態様によるオペレーティングシステムの例を示す図である。
【符号の説明】
【００９４】
１００  無効化登録システム
１１０  コンテキストバンク
１２０  クエリマネージャ
２００  無効化メモリ管理システム
２２０  メモリマネージャ
３００  データベース登録／無効化システム
３１０  クライアント
３２０  メモリ
４００  Ｗｅｂベースメモリ無効化システム
４０５  Ｗｅｂサーバ
４１０  依存構成要素
４２０  コンテキスト構成要素
４３０  クエリマネージャ
４４０  サーバ
４５０  データベースサーバ
４６０  メモリストア
４７０  ローカルメモリ
４８０  高速メモリ
４９０  他のメモリ
４９２  アプリケーション
４９４  補助層
４９６  Ｗｅｂサーバ
５００  システム
５１０  セキュリティ層
６００  システム
６１０  通信インターフェース
７００  分散無効化システム
７１０１〜７１０Ｎ  第１のＷｅｂアプリケーション〜Ｎ番目のＷｅｂアプリケーション
７２０１〜７２０Ｍ  第１のコンテキスト構成要素〜Ｍ番目のコンテキスト構成要素
７３０１〜７３０Ｋ  第１のデータベース〜Ｋ番目のデータベース
７４０  共有メモリ
８００  Ｗｅｂサービス無効化システム
８０５  クライアント
８１０  ファイアウォール
８２０  メモリ
８３０１〜８３０Ｎ  第１のＷｅｂサービス〜Ｎ番目のＷｅｂサービス
８４０  データベース
９００  自動無効化方法
１１００  データ変更ベース無効化方法
１３１０  動作環境
１３１２  コンピュータ
１３１４  処理ユニット
１３１６  システムメモリ
１３１８  システムバス
１３２０  揮発性メモリ
１３２２  不揮発性メモリ
１３２４  ディスク記憶装置
１３２６  インターフェース
１３２８  オペレーティングシステム
１３３０  システムアプリケーション
１３３２  プログラムモジュール
１３３４  プログラムデータ
１３３６  入力装置
１３３８  インターフェースポート
１３４０  出力装置
１３４２  出力アダプタ
１３４４  リモートコンピュータ
１３４６  メモリ記憶装置
１３４８  ネットワークインターフェース
１３５０  通信接続
【図１】
2004303211.tif 000003
【図２】
2004303211.tif 000004
【図３】
2004303211.tif 000005
【図４】
2004303211.tif 000006
【図５】
2004303211.tif 000007
【図６】
2004303211.tif 000008
【図７】
2004303211.tif 000009
【図８】
2004303211.tif 000010
【図９】
2004303211.tif 000011
【図１０】
2004303211.tif 000012
【図１１】
2004303211.tif 000013
【図１２】
2004303211.tif 000014
【図１３】
2004303211.tif 000015
【外国語明細書】
2004303211.tif 000016
2004303211.tif 000017
2004303211.tif 000018
2004303211.tif 000019
2004303211.tif 000020
2004303211.tif 000021
2004303211.tif 000022
2004303211.tif 000023
2004303211.tif 000024
2004303211.tif 000025
2004303211.tif 000026
2004303211.tif 000027
2004303211.tif 000028
2004303211.tif 000029
2004303211.tif 000030
2004303211.tif 000031
2004303211.tif 000032
2004303211.tif 000033
2004303211.tif 000034
2004303211.tif 000035
2004303211.tif 000036
2004303211.tif 000037
2004303211.tif 000038
2004303211.tif 000039
2004303211.tif 000040
2004303211.tif 000041
2004303211.tif 000042
2004303211.tif 000043
2004303211.tif 000044
2004303211.tif 000045
2004303211.tif 000046
2004303211.tif 000047
2004303211.tif 000048
2004303211.tif 000049
2004303211.tif 000050
2004303211.tif 000051
2004303211.tif 000052
2004303211.tif 000053
2004303211.tif 000054
2004303211.tif 000055
2004303211.tif 000056
2004303211.tif 000057
2004303211.tif 000058
2004303211.tif 000059
2004303211.tif 000060