JP2011525278A - ローカル・ホスト・キャッシュおよび暗号ハッシュ機能を用いてネットワーク・トラフィックを低減する方法およびシステム - Google Patents

ローカル・ホスト・キャッシュおよび暗号ハッシュ機能を用いてネットワーク・トラフィックを低減する方法およびシステム Download PDF

Info

Publication number
JP2011525278A
JP2011525278A JP2011514644A JP2011514644A JP2011525278A JP 2011525278 A JP2011525278 A JP 2011525278A JP 2011514644 A JP2011514644 A JP 2011514644A JP 2011514644 A JP2011514644 A JP 2011514644A JP 2011525278 A JP2011525278 A JP 2011525278A
Authority
JP
Japan
Prior art keywords
data
client
host cache
server
network
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.)
Granted
Application number
JP2011514644A
Other languages
English (en)
Other versions
JP5480893B2 (ja
JP2011525278A5 (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 JP2011525278A publication Critical patent/JP2011525278A/ja
Publication of JP2011525278A5 publication Critical patent/JP2011525278A5/ja
Application granted granted Critical
Publication of JP5480893B2 publication Critical patent/JP5480893B2/ja
Active 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/183Provision of network file services by network file servers, e.g. by using NFS, CIFS
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • 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/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computational Linguistics (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Communication Control (AREA)

Abstract

記載する方法およびシステムは、ブランチ・オフィスにおけるクライアントが、アプリケーション・サーバーの代わりに、WANを通じてローカル・ホスト・キャッシュからデータを引き出すことを可能にして、レイテンシーを改善しWAN全体のトラフィックを低減する。データ・センターにおけるサーバーは、ホスト・キャッシュ・システムが許可されているか否かに基づいて、ハッシュのリストまたは要求されたデータのいずれかを供給するように構成することができる。クライアント側のホスト・キャッシュは、ハッシュに基づいて、データをクライアントに供給することができる。ハッシュは、データの指紋を供給するために発生することができ、この指紋は効率的にデータをインデックス化するために用いることができる。
【選択図】図3

Description

[0001] 本発明は、一般的には、コンピューター・システムに関し、更に特定すれば、ネットワークを通じてデータを要求元クライアントに供給するための応答時間を改善するコンピューティングシステムに関する。
従来技術
[0002] 業務環境において一般的に実装されているデータ・ネットワーク構成では、データ・ストレージをデータ・センターに集中させ、このデータ(例えば、データ・センターにおけるサーバーを経由して)を複数のクライアントコンピューティングデバイスにワイド・エリア・ネットワークを通じて供給することを伴う。複数のクライアントコンピューティングデバイスは、WANの1つ又複数のブランチに位置することができる。これらのブランチは、WANに対する少なくとも1つの接続を有するローカル・エリア・ネットワーク(LAN)を用いて互いに通信状態で結合されている複数のコンピューティングデバイスを表すことができる。LANは、ルーターまたは当技術分野では周知のその他の橋架デバイスを通じてWANに結合することができる。大会社の環境では、データ・センターがブランチ(1つまたは複数)から離れて配置される場合もある。クライアント・デバイス上で実行するアプリケーションは、動作のために、データ・センターからのデータ(例えば、データ・センターにおけるアプリケーション・センターを通じて給送される)を必要とする場合がある。ワイド・エリア・ネットワーク(WAN)上のデータ・トラフィックが増大すると、一般に、帯域幅が縮小し、WANを通じたデータ要求に対するレイテンシーが長大化する虞れがある。このため、ブランチ・オフィスにあるコンピューティングデバイスにおけるアプリケーション応答時間が遅れる虞れがある。
[0003] ワイド・エリア・ネットワーク上におけるデータ・トラフィックを低減し、帯域幅およびレイテンシーを改善するのに役立てるために、一部の業務ではWAN最適化システムを実施する場合がある。一般に、ワイド・エリア・ネットワーク(WAN)最適化システムとは、WAN上における帯域幅消費を低減するように設計されたハードウェアである。WAN最適化システムの目標は、データ・トラフィックを搬送するためのWAN帯域幅の量を低減することである。一般に、WAN最適化装置は、データの圧縮、ならびにデータのWANへの送信およびWANからのデータの引き出しをインテリジェントに管理する(特定のアルゴリズムを用いて)ように動作することができる。WAN上におけるデータ・トラフィックを圧縮することにより、データ・トラフィックを低減し、それに対応して輻輳も減少させることができる。WAN上において輻輳が減少すると、ルーターのレイテンシー、ジッター、およびパケットの損失も対応して減少することができる。
[0004] 既存のWAN最適化システムは、WANの帯域幅については一般に改善をもたらすが、既存のWAN最適化システムは、暗号化データを扱うことや、終端間(end-to-end)のセキュリティを設けることには適していない場合もある。更に、既存のWAN最適化システムは、データ・センターおよび各ブランチ・オフィスの双方においてインターフェース・ハードウェアの動作を必要とし、これによって保守コストの増大を招く虞れがある。
[0005] 本方法およびシステムは、ブランチ・オフィスにおけるクライアントが、アプリケーション・サーバーの代わりに、ホスト・キャッシュ(hosted cache)からWANを通じてデータを引き出すことを可能にして、レイテンシーを改善し、全体的なWANトラフィックを低減しようとするものである。データ・センターにおけるサーバーは、ホスト・キャッシュ・システムがイネーブルされているか否かに基づいて、ハッシュのリストまたは要求されたデータのいずれかを提供するように構成することができる。クライアント側におけるホスト・キャッシュは、ハッシュに基づいて、データをクライアントに供給することができる。ハッシュは、一般に、データの指紋(fingerprint)を与えることができ、この指紋はデータをインデックス化するために用いることができる。
図1は、記載する実施形態にしたがって動作することができるコンピューティングシステムのブロック図を示す。 図2は、一般的なWAN最適化システムを示す。 図3は、ホスト・キャッシュを用いたデータ引き出しプロセスのシステム実施形態を示す。 図4は、ホスト・キャッシュと共に用いるレコード・フォーマットを示す。 図5は、複数のホスト・キャッシュを実装したシステム実施形態を示す。 図6は、分散型キャッシュを用いるピア・ツー・ピア・ネットワークの実施形態を示す。 図7は、ホスト・キャッシュのために専用ピアを用いるピア・ツー・ピア・プロセスの実施形態を示す。 図8は、図3のシステムを用いたサーバー側プロセスの実施形態を示す。 図9は、図3のシステムを用いたクライアント側プロセスの実施形態を示す。 図10は、失効(expiration)パラメーターを用いたレコード・フォーマットを示す。
[0016] 以下の本文は、多数の異なる実施形態の詳細な説明を明記するが、この記載の法的範囲は、本特許の終端に明記される特許請求の範囲の文言によって定義されることは言うまでもない。あらゆる可能な実施形態を記載することは、不可能ではないにしても、現実的ではないので、詳細な説明は単なる例示と解釈すべきであり、あらゆる可能な実施形態を記載するのではない。多数の大体実施形態も、現在の技術または本特許の出願日以降に開発された技術のいずれを用いても、実現することができ、これらも特許請求の範囲に該当するものとする。
[0017] また、「本明細書において用いる場合、「 」という用語は...を意味することを定めるものとする」という文章または同様の文章を用いて本特許において用語が明示的に定義されていないのであれば、その用語の意味を、その平素の意味または通常の意味を超えて、明示的にもまたは暗示的にも限定する意図はなく、このような用語は、本特許のいずれの章において作成されたいずれの言説(特許請求の範囲の文言以外)に基づいても、その範囲を限定するように解釈してはならないことは言うまでもない。本特許の最後にある特許請求の範囲において列挙されているいずれの用語も、本特許において、1つの意味で一貫性をもって言及されている場合については、読者を混乱させないことのみを目的とした明確化のためにそれを行ったのであり、このような請求項の用語が、暗示等によって、その1つの意味に限定されることを意図するのではない。最後に、請求項の要素が、「手段」という用語および機能を明記することによって定義され、何の構造の明言もない場合を除いて、いずれの請求項の要素も、35U.S.C.§112、第6パラグラフの適用に基づいて、解釈されることを意図しているのではない。
[0018] 図1は、適したコンピューティングシステム環境100の一例を示す。このコンピューティングシステム環境100は、本明細書で記載するユーザー・インターフェースを表示し提供するように動作することができる。尚、コンピューティングシステム環境100は、適したコンピューティング環境の一例に過ぎず、特許請求の範囲の方法および装置の使用または機能の範囲に関して、何の限定をも示唆することも意図していないことは、注記してしかるべきである。環境例100に示されるいずれのコンポーネントまたはコンポーネントの組み合わせに関しても、コンピューティング環境100が何らかの依存性または要件を有するように解釈してはならない。
[0019] 図1を参照すると、特許請求する方法および装置のブロックを実施するためのシステム例は、コンピューター110の形態とした汎用コンピューティングデバイスを含む。コンピューター110のコンポーネントには、限定ではないが、演算装置またはプロセッサ120、システム・メモリー130、およびシステム・メモリーを含む種々のシステム・コンポーネントを演算装置120に結合するシステム・バス121を含むことができる。
[0020] コンピューター110は、ネットワーク接続環境において、リモート・コンピューター180のような、1つ又複数のリモート・コンピューターに対する論理接続を用いて、ローカル・エリア・ネットワーク(LAN)171および/またはワイド・エリア・ネットワーク(WAN)173を通じて、モデム172を通じて、またはその他のネットワーク・インターフェース170を通じて動作することができる。
[0021] コンピューター110は、通例、種々のコンピューター読み取り可能媒体を含み、これらの媒体は、コンピューター110によってアクセスできる入手可能な媒体であればいずれでもよく、揮発性および不揮発性の双方、リムーバブル、および非リムーバブル媒体を含む。システム・メモリー130は、リード・オンリ・メモリー(ROM)131およびランダム・アクセス・メモリー(RAM)132のような、揮発性および/または不揮発性メモリーの形態としたコンピューター記憶媒体を含む。ROMは、基本入力/出力システム133(BIOS)を含むことができる。RAM132は、通例、データおよび/またはプログラム・モジュールを収容する。プログラム・モジュールには、オペレーティング・システム134、アプリケーション・プログラム135、その他のプログラム・モジュール136、およびプログラム・データ137が含まれる。また、コンピューター110は、他のリムーバブル/非リムーバブル、揮発性/不揮発性コンピューター記憶媒体も含むことができ、ハード・ディスク・ドライブ141、磁気ディスク152に対して読み取りおよび書き込みを行う磁気ディスク・ドライブ151、光ディスク156に対して読み取りおよび書き込みを行う光ディスク・ドライブ155等が挙げられる。ハード・ドライブ141、151、および155は、インターフェース140、150を通じて、システム・バス121とインターフェースすることができる。
[0022] ユーザーは、キーボード162およびポインティング・デバイス161のような入力デバイスを通じてコンピューター20にコマンドおよび情報を入力することができる。ポインティング・デバイス161は、慣例ではマウス、トラックボール、またはタッチ・パッドと呼ばれている。他の入力デバイス(図示せず)には、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星ディッシュ、スキャナー等を含むことができる。これらおよびその他の入力デバイスは、多くの場合、システム・バスに結合されているユーザー入力インターフェース160を通じて演算装置120に接続されているが、パラレル・ポート、ゲーム・ポート、またはユニバーサル・シリアル・バス(USB)というような、他のインターフェースおよびバス構造によって接続することもできる。モニター191またはその他のタイプのディスプレイ・デバイスも、ビデオ・インターフェース190のようなインターフェースを通じて、システム・バス121に接続することができる。モニターに加えて、コンピューターは、スピーカー197およびプリンター196のような他の周辺出力デバイスも含むことができ、これらは出力周辺インターフェース190を通じて接続することができる。
WAN最適化システム
[0023] 図2は、当技術分野において一般に知られているWAN最適化システム200を実現するワイド・エリア・ネットワーク(WAN)を示す。WAN最適化システムは、一般に、ワイド・エリア・ネットワーク接続の両側に配備することができる。
[0024] WAN最適化システムは、一般に、1対のコンポーネント・ハードウェア・デバイスを伴う。即ち、一般にWAN203の一方側にあるデータ・センター202に設置されるサーバー側コンポーネント201と、ブランチ206に設置されるクライアント側コンポーネント204である。多くの場合、WAN最適化コンポーネント・デバイス(サーバー201またはクライアント・コンポーネント204)は、WANルーター208(例えば、WAN接続とは反対側にあるポートにおいてルーターに結合されている)の背後に配置するとよい。これらのデバイス201および204は、WANを通じたアプリケーション性能が向上するように、WAN203に宛てられたアプリケーション・トラフィックを調整するように動作することができる。その結果、WANを加速化し、アプリケーションの応答タイムを高速化することができる。これによって、ブランチ・オフィスにいるエンド・ユーザーや、移動体作業員(例えば、ラップトップまたはその他の移動体コンピューティングデバイスを通じて接続する)に、重要なアプリケーションへのアクセス速度を高めることが可能となる。
[0025] ブランチ206は、一般にデータ・センター202にデータを要求する複数のクライアント・コンピューター211を含むことができる。会社環境の中には、ブランチが機能(例えば、会計、調達、顧客サービス等)を分割するために設置されることもある。会社環境の中には、ブランチ206が特定の地理的サービス場所を提供する場合もある。一般に、クライアント・コンピューター211は、データ・センター202において1つ又複数のアプリケーション・サーバー215にアクセスする1つ又複数の業務アプリケーションを実行することができる。
[0026] アプリケーション・サーバー215は、当該アプリケーション・サーバー215によって実行されるアプリケーションにデータを供給するために、データベース217(例えば、データ・センターに位置するか、またはデータ・センターから離れて位置する)に結合することができ、そしてWAN203を通じてブランチ・オフィスにあるクライアント211に提供することができる。勿論、LAN210を用いるブランチ構成の代わりに、図2は、WANを通じてサーバー215からトラフィックを受信するためにWANに接続されているあらゆるクライアント・デバイス、例えば、インターネットを通じて接続するリモート・ラップトップにも等しく適用可能である。
WAN最適化装置の機能
[0027] 一般に、サーバー側WAN最適化デバイス201は、データ・センターのサーバー(例えば、サーバー215)によって発せられたデータを調査してインデックス化し、調査に基づいてデータ・パケットを圧縮し、WAN203を通じてこのデータ・パケットを送信するように動作することができる。クライアント側WAN最適化コンポーネント204は、WAN203を通じてサーバー側コンポーネント201から圧縮データを受信し、データ・パケットを伸張し、ブランチ206における要求元クライアント211のデバイスにデータを供給するように動作することができる。
[0028] WAN最適化システムの中には、サーバー側コンポーネント・デバイス201が、データの送信をスケジューリングするために(例えば、優先度に応じて)データをインデックス化する場合もある。クライアント204におけるWAN最適化コンポーネント・デバイスも、サーバー・デバイス201によって行われたインデックス化に基づいて、データをキャッシュするように動作することができる。ブランチ206におけるクライアント211からの同じデータに対する第2要求が、クライアント側WAN最適化デバイス204によって受け取られると、クライアント側WAN最適化デバイス204は、WAN203を通って行く代わりに、単にそのキャッシュからデータを戻すことができる。
WAN最適化装置に付随する問題
[0029] 図2に示したように、既存のWAN最適化システム200は、一般に、サーバー端において、データ・センター202のような第1コンポーネント・デバイス201の設置を必要とし、更にクライアント端において、ブランチ・オフィス206のような第2コンポーネント・デバイス204の設置を必要とする。データ・センター202およびブランチ・オフィス206は、ワイド・エリア・ネットワーク(WAN)203を通じて通信する。複数のブランチ・オフィス206を有する環境では、多数のクライアント側最適化デバイス204を設置する必要がある場合もある。
[0030] 多数のコンポーネント・デバイスの運用には、設置および保守にコストが嵩む。特に、WAN最適化装置は、データ・トラフィックの非常に詳細な(即ち、高粒度の)調査を必要とするので、最適化システムの運用には、大量の処理オーバーヘッドが発生する可能性がある。更に、既存のWAN最適化装置の調査プロセスでは、データ部分の精細なレベルの粒度が必要となるので(即ち、最適化装置は、一般に、データを分類できるようにまたはデータに対してその他の動作ができるように、データがどのようなものか理解する必要がある)、WAN最適化装置は、一般に、暗号化されたデータに対して動作することができない(例えば、IP Security、即ち、IPSecプロトコル、またはSecured Sockets Layer、即ち、SSLプロトコルのような、終端間暗号プロトコル(end-to-end encryption protocol)を用いてデータがネットワークを通じて送られる場合)。この場合、WAN最適化装置は、このデータ・ストリームには動作することができないので、WANトラフィックには何の影響も及ぼさなくてもよい(WAN最適化装置のサーバー側コンポーネントは、暗号化データを理解することができず、したがって、既存のWAN最適化システムは、暗号化データを圧縮することや、インデックス化できない場合もある)。更に、WAN最適化装置はデータを調査して理解する必要があるので、既存のWAN最適化装置を用いて端末間セキュリティを容易に設けることができない場合もある。また、WANが公衆トラフィック(例えば、インターネットへの接続)を含む殆どの会社環境では、一般に、セキュリティは主要な関心事であるので、WAN最適化装置は、有用な圧縮およびレイテンシーの利点を、安全を確保したトラフィック(secured traffic)(例えば、暗号化)には提供できないこともある。
ホスト・キャッシュを用いた最適化
[0031] 図3は、ブランチにあるクライアント・デバイスによるデータ引き出しを最適化するための終端間セキュリティを設けるコンピューティングシステム300の一実施形態を示す。勿論、LANを用いたブランチ構成の代わりに、図3は、WAN(例えば、ラップトップ接続)を通じてサーバーからトラフィックを受信するためにWANに接続されているいずれのクライアント・デバイスにも等しく適用可能である。尚、クライアントという用語は、物理的なコンピューティングデバイス、またはサーバーにデータを要求するコンピューティングデバイス上で実行するクライアント・アプリケーションを意味するために用いることができることは、注記してしかるべきである。多数のアプリケーションを同じコンピューティングデバイスによって実行することもできる。
[0032] 図3のシステムの一般的な動作について説明する。データ・センター302は、アプリケーション・サーバー315を通じて、ブランチ306にあるクライアント311にデータを供給する。ブランチ306は、複数のクライアント・コンピューター311がローカル・エリア・ネットワーク即ちLAN310を通じて接続されている地理的場所を表すことができる。図2と同様、クライアント・コンピューター311はサーバー315と通信して、データ・センター302において格納および管理されているデータを要求し引き出すことができる。クライアント・コンピューター311は、LAN310とWAN303との間にある接続を経由してデータを引き出すことができる。WANへの接続は、ルーター308を経由してもよい。この実施形態では、ホスト・キャッシュ(hosted cache)320はブランチ306においてLAN310にも結合されている。ホスト・キャッシュ320は、特定のコンピューティングデバイス上に実装してもよいし、または、例えば、クライアントがピア・ツー・ピアの様式で動作するときには、複数のコンピューティングデバイスにおいて実装される分散キャッシュを表すこともできる(以下で更に論ずる)。ホスト・キャッシュ320は、ローカル・エリア・ネットワークを通じてクライアントに通信状態で結合することができる。実施形態の中には、ホスト・キャッシュが、データを要求するクライアント、例えば、クライアント311の内いずれかと同じデバイスに位置することもある。
[0033] 図3のクライアント311は、データ要求をサーバー315に送るようにプログラミングすることができる。アプリケーション・サーバー315は、データを要求しているクライアント311がホスト・キャッシュ320を使用することを許可されている(enabled)か否か判断するようにプログラミングすることができる。次いで、アプリケーション・サーバー315は、クライアント311によって要求されたデータ、またはクライアント311によって要求されたデータを具体的に識別する識別子のリストを供給することができる。アプリケーション・サーバー315は、識別子を発生することができ(例えば、アルゴリズムを用いて)、または他のコンピューティングエンティティまたはアプリケーション(例えば、データベース管理システム)が識別子を発生し、アプリケーション・サーバーによる引き出しのためにこれらをある場所(例えば、データ・センターにおけるデータベース)に格納することができる。識別子の一例には、ハッシュ関数によって生成するハッシュがあり、ハッシュは要求されたデータの指紋として機能することができる(以下で更に論ずる)。サーバーがデータベース317に接続されている場合、ハッシュをデータと共にデータベース317に格納することができ、あるいはサーバー315によってデータとしてハッシュされたものがクライアントへの送信のために引き出される。
[0034] 一部のクライアント311には、ホスト・キャッシュ320を用いることを許可しつつ、一方では一部のクライアント(例えば、旧式のコンピューティングデバイスやシステム)には許可しなくてもよい。クライアント311がホスト・キャッシュ320を用いることを許可された場合、このクライアント311は、アプリケーション・サーバー315からの要求データ、または要求データに対応する1組のハッシュをアプリケーション・サーバー315から受信するようにプログラミングすることができる。クライアント311は、アプリケーション・サーバー315の代わりに、キャッシュされているデータをホスト・キャッシュ320から引き出すためにハッシュを用いるように構成することができる。ホスト・キャッシュ320は、対応するハッシュによってインデックス化された受信データ326を格納するようにプログラミングすることができる。ハッシュは、レコード・キー327としての役割を果たすことができる。ホスト・キャッシュ320は、更に、ハッシュ値即ちキー327に対応するデータ326を引き出して戻すようにプログラミングすることができる。ホスト・キャッシュ320は、表325または他のプログラム・オブジェクトのような、いずれの周知の作表方法を用いても、インデックス化されたデータを格納することができる。
ハッシュ関数およびハッシュ・インデックス化
[0035] ハッシュ関数は、一般に、ある種のデータを受け取り比較的小さな値(例えば、小さな整数)を出力するアルゴリズムまたは明確な(well-defined)手順である。ハッシュ関数によって戻される値をハッシュ値、ハッシュ・コード、ハッシュ和(hash sum)、または単にハッシュと呼ぶことができる。更に、個々のハッシュ関数に応じて、ハッシュはデータ部分(例えば、セグメント、パケット、ブロック等)の統計的に一意の指紋を備えることができる。場合によって、これらのハッシュ関数を暗号ハッシュ関数と呼ぶこともある。ハッシュ指紋は、ハッシュに対応するデータについてデータ完全性分析を実行するために用いることができる。例えば、ハッシュに基づいてデータを戻すとき、このデータを同じハッシュ関数(分かっている場合)に入力してハッシュを戻すことができる。ハッシュが一致した場合、受信したデータが、ハッシュを生成するために用いられたデータと同じであるという統計的に高い確率があると考えられる。
[0036] ハッシュ関数は、データベースにおいて項目を見つける、大きなファイルにおいて重複しているレコードまたは同様のレコードを検出する、データ・シーケンスにおいて同様のストレッチ(stretch)を見つける等のような、表の調査またはデータ比較作業を高速化するために用いることができる。特に、ハッシュ関数は比較的一意の(例えば、データ範囲について一意)インデックスを小さな数値フォーマットで与えるので、ハッシュ値を読み取り、ハッシュ値に基づいてインデックス化する際、一般に、要する処理時間を短縮することができる。
ホスト・キャッシュの動作
[0037] 本システムの一実施形態では、ホスト・キャッシュ320はハッシュ・テーブル325を収容することができる。ハッシュ・テーブル325は、受信データ326をハッシュ値327によってインデックス化するときに用いられる。ホスト・キャッシュ320は、例えば、データ・ベース・テーブルとして維持することができ、あるいはハッシュ値によってデータを引き出すことができるその他の掲載機能またはレジストリ(registry)として維持することもできる。当技術分野において知られている引き出しメカニズム(例えば、クエリー言語コール)であればいずれでも、ハッシュ値(例えば、SQL)に基づいてデータを求めるためにホスト・キャッシュに問い合わせるために用いることができる。
[0038] 一実施形態では、ハッシュ関数は、公開および/または秘密鍵対に基づく暗号化アルゴリズムであってもよい。このように、ハッシュは、暗号鍵に結び付けられたデータ部分の暗号的に一意の識別子(CUI)を表すことができる。公開−秘密鍵対暗号化の実施態様は、当技術分野では一般に周知である。公開−秘密鍵対暗号化を用いる一実施形態では、クライアントが暗号鍵を必要としない場合もある。例えば、クライアントがサーバーから受け取ったハッシュ値を単にホスト・キャッシュに受け渡す場合、クライアントが暗号鍵を持ち運ぶ必要はないと考えられる。別の例では、データ完全性をチェックする場合、クライアントは暗号鍵を暗号アルゴリズムと共に用いて、サーバーから戻されたデータがハッシュに対応することを検証することができる。勿論、暗号鍵を伴わないハッシュ関数も、データ完全性機能をチェックするために用いることができる。
[0039] ホスト・キャッシュ・インデックス化方式の一実施形態では、図4において更に詳細に示すような、特定のレコード・フォーマットを用いる。図4のインデックス化の実施形態では、インデックス化データ・ストア400がレコード401を収容することができる。レコード401は、レコード・キー403によってインデックス化されたデータ部分402を有する。レコード・キー403は、このレコードのハッシュとすることができる(この場合、ハッシュは、本明細書に記載しているシステムにおいて用いられる共通のハッシュ関数に対応する)。レコード・キーまたはハッシュ403は、暗号的に一意の識別子(CUI)とするとよい。CUIは2つの主要な特異性を有することができる。第1に、CUIは統計的に一意であることができる。共通のデータベース・インデックス化方式と同様に、レコード・キーは、表におけるエントリ全体の重複を防止するために一意である必要がある場合もある。したがって、CUIは、それが特定の状況またはアプリケーションに対して一意であることの確率が高くなるように、導出されたものであるとよい。例えば、前述したようなデータ・システムでは、CUIが統計的に一意となることができるのは、暗号的に一意の識別子が同じデータ部分から導出することができる確率が、ある範囲のデータ値においてありそうもない場合である。第2に、CUIは特定のユーザー・ハッシュ関数、例えば、サーバー、クライアント、およびホスト・キャッシュによって用いられる共通のハッシュ関数に対応することができる。ハッシュが鍵対暗号システムである状況では、CUIは、ハッシュを発生するために用いられる特定の暗号アルゴリズムの特定の公開または秘密鍵と対応することができる。例えば、CUIは、公開鍵から、暗号アルゴリズムを用いて導出することができる。実施形態の中には、アルゴリズムを用いてCUIがその公開鍵と対応するまたは一致することを検証するとよい場合もある。
[0040] 図4のレコード401は、ハッシュ値によってインデックス化されたデータをキャッシュするために用いることができる。CUIレコード・ハッシュ・キー403は、各レコード401を突き止め、ハッシュ・キー403に対応するデータ部分402を引き出すために用いることができる。一実施形態では、レコード410はローカル・ネットワークに対して公開してもよい。即ち、インデックス化した情報は暗号化されていなくてもよい(恐らくは、ハッシュ・キーを除いて)。しかしながら、以下に記載する他の実施形態では、データ部分402またはレコード401を暗号化することができる。
多数のホスト・キャッシュ
[0041] 図5は、複数のホスト・キャッシュ312〜322を実装したシステムの実施形態を示す。この実施形態では、クライアント311は、最適化パラメーターの数に基づいて、ホスト・キャッシュ321〜322の内特定の1つと通信または相互作用することができる。例えば、企業(business enterprise)が、地理的近接度またはネットワーク近接度(例えば、キャッシュとクライアントとの間で通信するのに必要な最小限のネットワーク・ルーティングであるもの)に基づいてクライアント毎にホスト・キャッシュを設けることができる。更に、サブネットまたは他のネットワーク分割に基づいて、異なるホスト・キャッシュを設けることもできる。一実施形態では、多数のホスト・キャッシュを冗長性尺度として設けることができる。例えば、ホスト・キャッシュの内一部(subset)だけ(例えば、1つのホスト・キャッシュ)をアクティブに指定して、クライアントとの接続および相互作用に利用可能にすることができる。指定されたホスト・キャッシュ(1つまたは複数)で障害が発生した場合、冗長なホスト・キャッシュを活性化することができる。冗長な、インアクティブなホスト・キャッシュ(1つまたは複数)には、指定されたアクティブなホスト・キャッシュ(1つまたは複数)と同じ情報を収容すること、そしてその情報で更新することができる。例えば、データは、複数のホスト・キャッシュに跨って複製することができる。
ピア・ツー・ピア・ネットワークを用いた分散型ハッシュ・テーブル
[0042] 一実施形態では、クライアントはピア・ツー・ピア・ネットワークの一部であってもよい。図6は、分散型ホスト・キャッシュ(distributed hosted hash)600を実装するピア・ツー・ピア・ネットワークを用いる一実施形態を示す。この分散型ホスト・キャッシュは、サーバー−独立永続的インデックス化システムを表すことができる。分散型キャッシュ600は、ピア・ツー・ピア・ネットワーク605を形成するピア・エンティティ601〜604のグループ全体にわたって維持することができる。分散型ホスト・キャッシュ600の中にあるレコードは、例えば、ハッシュ関数を用いて、論理的に分割または分類することができる。ハッシュ関数は、引き出しを一層効率的に行うことができるように、ある論理的な順序でエントリを一緒に分類またはクラスタ化することができる。ハッシュ関数は、編成された態様でレコードを互いに凝集することによって、引き出しを一層効率的にすることができる。分散型ホスト・キャッシュは、2つの主要な固有性を有することができる。その固有性とは、1)ノード601〜604のような複数のノード/クライアント/ピア間でのレコード内容の分散、および2)レコードを公開し引き出すための方法を提供するルーティング・メカニズム(図示せず)である。
[0043] 図6の実施形態では、サーバーは、情報を要求するクライアント601〜604のいずれの1つにでも、データのハッシュを供給するために、前述のように構成することができる。次いで、クライアントは、ハッシュを含むブロードキャスト要求メッセージをピア・ツー・ピア・ネットワーク605に送り、ピア・ツー・ピア・ネットワークにおいて、ハッシュに対応するデータを収容しているピア・ノードを突き止めることができる。ピアが以前にデータを要求し格納している場合、このピアが要求に回答して、ブロードキャスト・メッセージを送ったピアにそのデータを供給することができる。このように、ホスト・キャッシュは、ピア・ツー・ピア・ネットワークの複数の異なるピア(ピア・ノード)に跨って維持することができる。つまり、ブランチにあるクライアントは、アプリケーション・サーバーが提供したハッシュに基づいて、要求されたデータを戻すことができる。この実施形態では、ピア・ツー・ピア・ネットワークにおけるピアは、協調してデータをキャッシュすることができる。ピア・ツー・ピアの実施形態についてこの章では記載しているが、本方法およびシステムは、ピア・ツー・ピア・ネットワークを伴わないプロトコルを含む、いずれのクライアント−サーバー・プロトコルにおいても用いることができることは注記してしかるべきである。
[0044] 図7は、分散型ホスト・キャッシュを用いない、別のピア・ツー・ピア・ネットワークの実施形態を示す。多数のピアに跨ってホスト・キャッシュを実装して、各ピアがデータのコピーまたはそのデータの一部を格納する代わりに、1つのピア701を選択して、唯一のホスト・キャッシュ(これをスーパー・ピアと呼ぶこともできる)に指定することもできる。クライアント/ノード/ピア702〜704は、ホスト・キャッシュのサービスおよび情報を求めて、1つのピア701に頼るようにプログラミングすることができる。しかしながら、クライアント702〜704の各々は、キャッシュをホストすることができ、冗長性またはフェイルオーバーの目的でそうすることができる。この実施形態では、1つのピアをホスト・キャッシュとして指定または選択する際に、数個のパラメーターを考慮するとよい。例えば、指定は、ピアの作業負荷(workload)、ピアの処理能力、および/またはピアの記憶容量に基づくことができる。
[0045] 図7では1つのピアだけのホスト・キャッシュに指定しても、ピア・ツー・ピア・ネットワーク705においてクライアント(702〜704)として活動する各ピアは、それ自体のホスト・キャッシュを維持することができる。この構成では、クライアント・ピア(例えば、701〜704)は、サーバーにデータを要求し、サーバーから1組のハッシュを受け取り、そのローカル・キャッシュがデータを含むか否か最初にチェックすることができる。ピアのローカル・キャッシュがそのデータを収容していない場合、ピアは、指定されたホスト・キャッシュ・ピアを検索することができる。別の実施形態では、ピア701の障害の場合、ピア・ツー・ピア・ネットワークにおける他のピア(例えば、702〜704)が分散型ホスト・キャッシュ・モデルに切り替わることができ、これらはピア・ネットワークのローカル・キャッシュを検索してデータを求め始めることができる(即ち、分散型ホスト・キャッシュ・モデル)。
[0046] ホスト・キャッシュは、個々のクライアント構成に基づいて、多数の方法で実装することができる。先に論じたように、ホスト・キャッシュは、ピア・ツー・ピア・ネットワーク上に実装する必要はない。ホスト・キャッシュは、オペレーティング・システムのコンポーネントとして、またはコンピューティングデバイス上で一般的に実行するプロセスとして実装することもできる。例えば、ホスト・キャッシュは、Microsoft Windowsオペレーティング・システムのコンポーネントとして実装することもできる。
[0047] ホスト・キャッシュ・サービスは、ハッシュ・インデックス化に基づいてデータを戻すという目標の機能(focused function)を提供する。データの暗号化を実施しなくてもよい場合もある。何故なら、ホスト・キャッシュは一般にブランチにおいて信頼を得られたエンティティであるからである。しかしながら、実施形態の中には、特定の実施態様にとって適しているのであれば、いずれかの利用可能な暗号方式を用いて、キャッシュの暗号化を実施する場合もある。例えば、正規のユーザーだけにホスト・キャッシュへのアクセスを付与できるように、ホスト・キャッシュに対して認証または許可方式を実施することもできる(例えば、ホスト・キャッシュから読み取るため、そしてホスト・キャッシュに書き込むために付与されるアクセス)。尚、このセキュリティは、例えば、LAN上において、ブランチ全体に実施するとよいことは注記してしかるべきである。
[0048] データ送信のために、前述のシステムを用いて異なるプロセスを実施して、終端間セキュリティに備えることもでき、これによってレイテンシーが改善する。
[0049] 図8は、前述のシステムを用いて実施することができるこのようなプロセスの一実施形態を示す。即ち、アプリケーション・サーバー315のようなサーバーが、ネットワークを通じてクライアントからデータ要求メッセージを受信することができる(801)。サーバーは、クライアントがホスト・キャッシュを用いることを許可されているか否か判断することができる(802)。一実施形態では、クライアントの要求は、ヘッダー、またはクライアントがホスト・キャッシュを用いることを許可されていることを示す他の指示を含むことができる。別の実施形態では、サーバーは、ストア(レジストリのような)においてクライアントを参照することによって、クライアントがホスト・キャッシュを用いることを許可されているか否か調べるようにプログラミングすることができる。この実施形態では、クライアントはサーバーにクライアントの識別を(例えば、クライアントからの要求メッセージの中にある識別子を通じて)通知することができる。クライアントがホスト・キャッシュを用いることを許可されていないとサーバーが判断した場合、サーバーは、要求されたデータを供給することによって、この要求を処理することができる(803)。クライアントがホスト・キャッシュを用いることを許可されているとサーバーが判断した場合、サーバーは、データ自体の代わりに、データのハッシュを供給することができる(804)。別の実施形態では、サーバーは、ホスト・キャッシュを用いることを許可されているクライアントの集合体を参照することができる。
[0050] 実施形態の中には、サーバーがその応答をクライアント要求に対して送信する前にまたは送信しつつ、追加の最適化技法を採用することができる場合もある。例えば、サーバーは複数の応答(ハッシュおよび/または要求データ)を集めて、1つ又複数のパラメーター(例えば、監視/測定したネットワーク・帯域幅、スケジュール等)に基づいてそれらを送信することができる。また、サーバーは、ハッシュ関数に基づいて、1組のハッシュを並べることもでき、ハッシュ関数は、この1組のハッシュの編成(例えば、連続または順序)を規定する。また、サーバーは、1組のハッシュに基づいて、データ送信に優先順位を付けることもできる。
[0051] 一実施形態では、サーバーは、ハッシュを用いてそのデータをインデックス化するように構成することができる。例えば、サーバーは、サーバーがアクセスすることができるデータ・ファイルに対して、ハッシュ関数を用いてハッシュを発生することができる。別の実施形態では、別のデバイスまたはプログラムが、ハッシュ関数を用いて、データをハッシュし、これらのハッシュをサーバーまたは他の要求元デバイス(例えば、クライアントまたはホスト・キャッシュ)に利用可能にすることができる。ハッシュは、これらのハッシュを発生するために用いられるデータに対するインデックスとして作用することができる。更に、ハッシュ自体が、データの完全性を検証するメカニズムを備えている(以下で更に論ずる)。一実施形態では、サーバーは、要求されたときにだけ、要求データに対してハッシュ関数を実行することもできる。別の実施形態では、ハッシュ処理は、要求とは独立して実行することもできる(例えば、いずれのデータ要求を受ける前でも、そのデータをハッシュすることができる)。
ステートフル・サーバーの実施形態
[0052] 前述の実施形態では、サーバーは、クライアントとの以前のトランザクションに関してステートレスであってもよい(例えば、クライアントのデータ要求に対する以前の回答)。言い換えると、サーバーは、いずれの特定のデータにしても、当該サーバーがそれをクライアントに供給したということの指示を覚えていなくても、あるいは格納しなくてもよい。サーバーが状態を維持する実施形態では、サーバーは、クライアントによって要求されているデータをホスト・キャッシュが既に格納している可能性が高いか否か判断するように構成することができる。例えば、サーバーは、特定のデータが既に要求されてブランチにあるクライアントに送られているか否か指示する情報を格納するようにプログラミングすることができ、このクライアントには、ホスト・キャッシュを用いることを許可されていることが分かっている。同じデータに対する要求を後に受けたとき、サーバーは、この後からの要求を行ったクライアントに、単にデータのハッシュ(1つまたは複数)だけを供給するようにプログラミングすることができる。この動作は、ホスト・キャッシュが、以前に要求されたデータを既にキャッシュしていると仮定して、プログラミングすることができる。サーバーが、要求された1組のデータを以前に送ったこと(またはデータが既に要求されたまたは供給されたことを示す情報を格納したこと)を覚えていない場合、そのデータを要求元クライアントに供給するようにサーバーをプログラミングすることができる。このように、更なるレイテンシーの改善を実現することができ、アプリケーション・サーバー、ホスト・キャッシュ、またはクライアントのいずれとの間におけるある種の相互通信も削減または回避することができる。この実施形態では、サーバーは、クライアントがホスト・キャッシュを許可されているか否か判断することなく動作するように構成することができる。代替実施形態では、サーバーは、クライアントがホスト・キャッシュを許可されているか否かチェックするのであってもよい。これは、旧式のアプリケーションおよびデバイスを有する混成ネットワークにおいて、ホスト・キャッシュを用いることを許可されることができず、サーバーが特定のクライアントのみに(即ち、ハッシュなしで)送る(send only send)ことが必要となる場合にも、用いることができる。この場合、サーバーは要求データをブランチのクライアントに送っており、要求データをローカル・キャッシュに格納することができても、旧式のデバイスはなおも動作のために実際のデータを戻す必要がある。
[0053] 図9は、ブランチにおいて本システムを用いるプロセスを示す。データを要求するクライアントが、サーバーから応答メッセージ(1つまたは複数)を受け取ることができる(901)。この応答は、クライアントが要求したデータ、または実際のデータ集合は含まず、要求されたデータに対応する1組のハッシュを含むことができる。ブロック902において、クライアントは、応答がデータを含むか、またはデータなしで1組のハッシュを含むか判断するようにプログラミングすることができる。クライアントが、サーバーからの応答が要求した実際のデータを含むと判断した場合、クライアントはデータを消費し(903)、このデータのコピーをホスト・キャッシュに格納することができる(904)。ホスト・キャッシュは、ハッシュ値によってインデックス化されたデータを格納することができる。ハッシュ値は、サーバーによって発生すること、または実際のデータと共に受け渡すこと(例えば、ブロック901において)のいずれでも可能である。あるいは、クライアントはデータをハッシュして、これらのハッシュを実際のデータと共にホスト・キャッシュに供給することもできる。更に別の実施形態では、ホスト・キャッシュがデータをハッシュすることもできる。どのエンティティがハッシュ機能を実行するかには関係なく、ハッシュは、ホスト・キャッシュによって格納されているデータをインデックス化するために、ホスト・キャッシュによって用いることができる。更に、これらのエンティティのいずれによって用いられるハッシュ関数も(1つよりも多いエンティティがハッシュ機能を実行している場合)、全て同一であってもよい。
[0054] クライアントが、実際の1組のデータなしで1組のハッシュを受信した場合、クライアントは、ハッシュに基づいて、ホスト・キャッシュに問い合わせてデータを求めることができる(905)。ホスト・キャッシュは、1組のハッシュに対応するデータをそれが有するか否か判断することができる(906)。ホスト・キャッシュがそのデータを収容している場合、クライアントは、それがアプリケーション・サーバーから受信したハッシュに基づいて、ホスト・キャッシュからデータを引き出すことができる(907)。オプションとして、クライアントは、ハッシュを用いて、ホスト・キャッシュによって受信されたデータに対してデータ完全性チェックを実行することもできる(908)。当業者にはお分かりであろうが、ハッシュは、当該ハッシュを発生するために用いられるデータの一意の指紋を与える。つまり、クライアントがホスト・キャッシュから受け取るデータの完全性および識別を検証する1つの方法は、ホスト・キャッシュからのデータに対して同じハッシュ関数(例えば、ハッシュを供給したサーバーとホスト・キャッシュとの間で共通であることが分かっているハッシュ関数)を実行して、そのデータから同じハッシュが得られるか否か確認することである。同じハッシュが得られた場合、そのデータの完全性および識別が検証できたことになる。データが検証され有効であると判断された場合(909)、クライアントは、ブロック910において、引き出したデータを消費することができる。データが検証されず、つまり無効でない(not invalid)場合、サーバーから1組のデータを引き出すことができ、サーバーから引き出した新たなデータで、ホスト・キャッシュを更新することができる(911)。
[0055] ホスト・キャッシュが要求データを収容していない場合、ホスト・キャッシュに1組のデータを入力し(911)、この1組のデータをクライアントに供給する(912)には、様々な方法を実施することができる。一実施形態では、ホスト・キャッシュは、クライアントによって要求されたがそれが現在格納していないデータを引き出す機能を実施することができる。例えば、アプリケーション・サーバーにデータを要求するように、ホスト・キャッシュをプログラミングすることができる。この場合、アプリケーション・サーバーは、そのデータをホスト・キャッシュに、ハッシュと共にまたはハッシュなしで、戻すことができ、次いで、ホスト・キャッシュは要求データを要求元のクライアントに供給することができる。次いで、ホスト・キャッシュは、新たなデータを、サーバーから受信したハッシュと共に、またはデータに基づいてそれが発生したハッシュに基づいて格納することができる。ホスト・キャッシュおよびサーバーが用いたハッシュ関数が同一である場合、この実施形態の方法およびシステムは、後の引き出しのために、同じハッシュ・インデックスをクライアントに供給するように動作することができる。
[0056] 別の実施形態では、クライアントは、ホスト・キャッシュに格納されていないデータをアプリケーション・サーバーから引き出す責務(responsibility)を担うこともできる。例えば、ホスト・キャッシュがメッセージをクライアントに戻して、クライアントが送ったハッシュに基づいて、ホスト・キャッシュが、クライアントが要求したデータを現在格納していないことを示すと、クライアントは、そのデータを求めて、第2の要求をアプリケーション・サーバーに送ることができる。この状況では、クライアントは、この第2の要求と共に、ホスト・キャッシュが要求データを収容していないことの指示も、アプリケーション・サーバーに送ることができる。一実施形態では、クライアントがホスト・キャッシュを用いることを許可されていないことを示すことによって、これを実行することができる。この状況では、アプリケーション・サーバーは単に要求データをクライアントに供給することができ、クライアントはこのデータをホスト・キャッシュにプッシュすることができる。このデータは、サーバー、クライアント、またはホスト・キャッシュのいずれかによってハッシュすることができる。別の実施形態では、ホスト・キャッシュが現在要求データを有していないかもしれないという指示を、別の指示として送ることもできる。例えば、クライアントからアプリケーション・サーバーへの第2の要求におけるヘッダーは、クライアントがホスト・キャッシュを用いることを許可されていること、およびホスト・キャッシュが要求された情報を含んでいないことの双方の指示を含むことができる。この例では、サーバーは、要求されたデータ、およびこの要求されたデータのハッシュを戻すことができる。
[0057] 一実施形態では、最初のクライアント要求に基づいてホスト・キャッシュに最初から入力するのを待つ代わりに、ホスト・キャッシュに、高いアクセス率を有することが分かっている1組のデータを予め入力しておいてもよい。これは、システム・ダウンタイムの間に予定したロードによって、行うことができる。
[0058] ホスト・キャッシュのデータ管理は、タイム・スタンプによって、ホスト・キャッシュの中にあるデータの周期的浄化によって行うことができる。例えば、各データ・セグメントまたはブロックに、ある数の変数(作成日、受信日等)で時間コードを付けることができる。タイム・スタンプから存在期間が経過したときに、そのデータ・ブロックを削除することができる。これによって、データを比較的新鮮に保つメカニズムが設けられる。例えば、データを削除すると、そのデータは(要求されたときには)、後になってから新たなバージョンでアプリケーション・サーバーからダウンロードされる。ハッシュされたデータについて注記すべき重要なことは、複数のハッシュによって1つのファイルがインデックス化されることもあるということである。更に、2つ以上のファイルが、同じハッシュを収容している共通のデータ・ブロックを有する場合もある。データは、データ・ブロック毎に浄化される場合があり、したがって、データ・ファイルは削除された部分の一部を収容していることがある。削除された部分は、アプリケーション・サーバーから新たに引き出し直す必要がある場合がある。
[0059] 図10に示す実施形態では、各レコードに失効パラメーター1001を含ませることができる。レコードは、これらが公開者(publisher)によって削除されるまで、または失効パラメーターに基づいてこれらが失効するまで、ホスト・キャッシュに永続することができる。この失効パラメーター1001は、データが有効である期間に対応することができる。失効パラメーター1001は、レコードについて有効性の失効を示すことができる。つまり、失効パラメーター1001は、図9に示したような引き出しプロセスにおいて用いることができる。例えば、ブロック909において、失効パラメーター1001によって示される期限をチェックして、失効になっているか否か判断することができる。失効パラメーター1001が過ぎている場合、レコードは無効であると考えられ、ブロック911を用いて、サーバーから新たなデータを引き出すことができる。それ以外の場合、レコードは有効であり、クライアント910によって消費することができる。
ホスト・キャッシュ発見プロセス
[0060] ホスト・キャッシュは、発見プロトコルと共に実装することもできる。発見プロトコルは、ネットワーク上においてホスト・キャッシュの存在を検出する能力をクライアントに提供するのに適したプロトコルであればいずれでもよい。発見メカニズムは、明示的でも自動でもよい。例えば、明示的発見プロトコルでは、登録されているホスト・キャッシュ(1つまたは複数)であればそのいずれに関する情報を提供するレジスタにも、クライアントを誘導することができる。あるいは、明示的な発見は、各コンピューティングデバイスを特定のホスト・キャッシュに導くグループコンピューティング方針(group computing policy)またはスクリプトを用いて実現することもできる。自動発見の実施形態では、接続するクライアントに、このクライアントにアクセス可能なネットワーク・セグメント上にあるホスト・キャッシュの存在に関する情報をプッシュすることができる。尚、地理的に互いに近接する位置に複数のクライアント・マシンを含むブランチにクライアントを接続することができても、これらのクライアント・マシンはドメインまたはサブネットに区分され、これらのドメインまたはサブネット内またはその間でのアクセスが制限されている場合もあることは注記してしかるべきである。
[0061] 一実施形態では、ホスト・キャッシュを用いることを許可されたクライアントは、所定の発見プロトコルを用いて、ホスト・キャッシュが当該クライアントのネットワーク上で利用可能か否か判断することができる。言い換えると、クライアントは、ネットワークに接続するときに、特定の発見プロトコルを用いて通信するようにプログラミングすることができる。1つ注意しておくと、クライアントはクライアント・アプリケーションまたはクライアント・デバイスを表すこともできる。代替実施形態では、クライアントは、ネットワークに接続するときに、それ自体の可用性または存在を公開する責務がある場合もある。また、発見プロトコルは、クライアントの存在を公表するメカニズムも備えることができ、通信ドメインに基づいて、クライアントおよびホスト・キャッシュが互いを意識するようにさせる。例えば、クライアントが移動体(例えば、ラップトップ)であるように構成されている場合、クライアントは第1ネットワークまたは第2ネットワークに接続することができ(ドメインまたはサブネットに基づいて)、各ネットワークは別のホスト・キャッシュを有することができる。いずれの場合でも、発見プロトコルは、クライアントと共に動作して、クライアントを直接接続するホスト・キャッシュをネットワークにおいて提供するように構成することができる。
最適化監視
[0062] ホスト・キャッシュおよび対応するサーバーのシステム上においてデータ・トラフィックを監視することによって、記載したシステムに更なる最適化を行うこともできる。例えば、監視することができるデータ送信パラメーターの中には、クライアントからのデータ要求のレイテンシーが含まれる。別の変数を挙げると、クライアントによるホスト・キャッシュへのアクセス頻度に対するWAN接続を通じたアクセスの回数がある。データ・トラフィックの監視および記録ならびに分析によって、ネットワーク管理者が、記載した本方法およびシステムの動作パラメーターを調節することを可能にすることができる。例えば、監視データに基づいて、管理者は、オフピーク時の間にどのデータを予め入力しておけばよいか発見することができる。
既存のWAN最適化装置との統合
[0063] 一実施形態では、クライアント側WAN最適化デバイスは、ホスト・キャッシュとして動作するように構成することができる。この実施形態では、サーバー側WANデバイスは不要である。
一実施形態では、WAN最適化デバイスは、ホスト・キャッシュに加えて用いることもできる。WAN最適化装置は一般に暗号化ファイルを扱うことができないので、WAN最適化装置は、データが暗号化されて送信されていないときにはいつでも、クライアントとサーバーとの間における一般的なデータまたはファイルのアクセスに用いることができる。暗号化データについては、ホスト・キャッシュの実装を用いることができる。この構成は、旧式のシステムまたはデバイス、例えば、ホスト・キャッシュを認識するまたはこれと通信するように構成されていないデバイスを有するネットワークにおいて行うことができる。別の実施形態では、クライアントがホスト・キャッシュを用いることができない場合、既存のWAN最適化システム(例えば、サーバーおよびクライアント側双方にWAN最適化コンポーネント・デバイスを含むもの))を用い、一方ホスト・キャッシュを用いることができるクライアントはそうすればよい。サーバーは、データ要求メッセージに埋め込まれている情報を通じて(例えば、前述のようにヘッダーを通じて)、クライアントの要求にどのように応答すればよいか判断することができる。
[0064] 特許請求する方法およびシステムを用いることの利点は、WANのサーバーおよびクライアント側双方において2つのコンポーネント・ボックスを含み維持する必要性を低減できることである。これによって、保守コストを削減する。更に、既存のWAN最適化システムによって得られるレイテンシーの改善を達成および/または凌駕しつつなおも、暗号化データをWANを通じて送ることができる。記載した本方法およびシステムの別の利点は、インデックス化および圧縮を行うためにデータの詳細な調査を行う際に必要とされる処理容量の減少である。言い換えると、WAN最適化装置がデータをインデックス化する際、粒度が細かい程大きな処理容量が必要となる。一方、特許請求する方法およびシステムは、データに基づいてハッシュを発生し、ハッシュ処理機能(hashing function)は一般に効率的であり、多くの処理オーバーヘッドを必要としない。
[0065] 記載した本方法およびシステムの別の利点は、WAN上においてクライアントとサーバーとの間に仲介デバイスの必要性を全体的に排除したことである。代わりに、記載した本方法およびシステムは、安全を確保したブランチ環境の境界内に収容されたホスト・キャッシュを用いる。キャッシュに要求データが入力されていない状況について疑問が生ずる。この場合、クライアントとアプリケーション・サーバーとの間で取り決めた何らかの態様でデータを送ればよい。言い換えると、データは暗号化されていても、暗号化されていなくてもよい。中間において人間を排除することは、WANを通じてクライアントとサーバーとの間においてあらゆる動作部(working parts)を除去することを指す。
[0066] 別の利点は、プロトコルに依存しないことである。既存のWAN最適化装置は、動作するためには、多数の異なるプロトコルを用いるようにプログラミングする必要がある場合もある。本願の方法およびシステムは、サーバーとクライアントとの間で用いられる既存のプロトコルを通じて、ハッシュを単に送るだけでよい。

Claims (20)

  1. ネットワークの帯域幅利用を低減し、ネットワーク上におけるデータ引き出しのレイテンシーを改善する方法であって、
    第1ネットワーク(305)を通じてクライアント(311)をサーバー(315)に接続するステップと、
    第2ネットワーク(310)を通じて前記クライアント(320)をホスト・キャッシュ(320)に接続するステップであって、前記クライアント(311)が、前記第1ネットワーク(303)とは独立して、前記第2ネットワーク(310)を通じて前記ホスト・キャッシュ(320)と通信することができる、ステップと、
    前記第1ネットワーク(303)を通じてクライアント(311)から前記サーバー(315)に第1要求メッセージを送信するステップであって、前記メッセージが1組のデータを求める要求を含む、ステップと、
    前記クライアント(311)において、前記第1ネットワーク(303)を通じて、前記要求した1組のデータを対応する1組のハッシュと共に受信するか、または前記1組のデータはなく、当該1組のデータに対応する1組のハッシュを受信するステップ(901)と、
    前記クライアント(311)において、当該クライアントが前記1組のハッシュを前記1組のデータと共に受信したのか、または前記1組のデータなしで前記1組のハッシュを受信したのか判断するステップ(902)と、
    前記クライアント(311)が前記1組のハッシュを前記1組のデータと共に受信したときに、前記第2ネットワーク(310)を通じて前記1組のデータのコピーを前記ホスト・キャッシュ(32)に格納するステップと、
    前記クライアントが、前記1組のデータなしで前記1組のハッシュを受信した場合、前記1組のハッシュに基づいて、前記第2ネットワーク(310)を通じて、前記クライアント(311)が、前記ホスト・キャッシュ(320)に問い合わせて前記1組のデータを求めるステップ(905)であって、前記ホスト・キャッシュが、ハッシュによってインデックス化されたデータを格納する、ステップと、
    を備えている、方法。
  2. 請求項1記載の方法において、前記第1ネットワークが、セキュアード・ソケット・レイヤ・プロトコル(SSL)またはIPセキュリティ(IPSec)プロトコルの一方を実行する終端間安全確保ネットワークである、方法。
  3. 請求項1記載の方法であって、更に、前記第1ネットワークを通じて前記クライアントから前記サーバーに第1要求メッセージを送信するステップは、前記クライアントが前記ホスト・キャッシュを利用することを許可されていることの指示を含むメッセージを送信するステップを含む、方法。
  4. 請求項1記載の方法であって、更に、前記ホスト・キャッシュが前記要求データを収容していない場合、前記ホスト・キャッシュによって、前記クライアントが要求したデータを求める要求を、前記サーバーに送るステップを備えている、方法。
  5. 請求項1記載の方法であって、更に、前記ホスト・キャッシュから、このホスト・キャッシュが前記1組のハッシュに対応するデータを収容していないことの指示を受信し、前記クライアントによって前記要求データを求める第2要求を前記サーバーに送るステップを備えている、方法。
  6. 請求項1記載の方法において、前記ホスト・キャッシュは、データ毎に有効期間を示す失効値を収容する失効パラメーターを、前記1組のデータの各々と関連付けて格納する、方法。
  7. 請求項1記載の方法であって、更に、前記第2ネットワークを通じて接続されている複数のクライアントに跨って格納された分散型ハッシュ・テーブルとして、前記ホスト・キャッシュを実装するステップを備えている、方法。
  8. 請求項1記載の方法において、1組のハッシュを発生するステップは、暗号アルゴリズムに基づいて前記1組のハッシュを発生するステップを含み、前記1組のハッシュが、前記ホスト・キャッシュによってキャッシュされているデータに対して統計的に一意となるように発生される、方法。
  9. 請求項1記載の方法であって、更に、前記1組のデータに対してハッシュ関数を実行し、このハッシュ関数の結果、前記データについて問い合わせるために用いられたハッシュと一致するハッシュが得られたか否か判断することによって、前記クライアントにおいて、前記ホスト・キャッシュから受信した前記1組のデータを検証するステップ(908)を備えている、方法。
  10. ネットワークの帯域幅利用を低減し、ネットワーク上におけるデータ引き出しのレイテンシーを改善する方法であって、
    ネットワークを通じてクライアントからの要求メッセージを、サーバーにおいて受信するステップ(801)であって、前記メッセージが、前記サーバーに格納されている1組のデータを求める前記クライアントの要求を含む、ステップと、
    前記サーバーに格納されている前記1組のデータに対して第1ハッシュ関数を用いて1組のハッシュを発生するステップであって、前記1組のハッシュの内各ハッシュが、前記1組のデータの内各データの統計的に一意の指紋を表す、ステップと、
    前記サーバーにおいて、前記クライアントがホスト・キャッシュを用いることを許可されているか否か判断するステップ(802)であって、前記ホスト・キャッシュが、前記第1ハッシュ関数を用いて生成されたハッシュに基づいて、データをインデックス化する、ステップと、
    前記クライアントがホスト・キャッシュを用いることを許可されていない場合、前記ネットワークを通じて前記サーバーによって前記クライアントに、前記1組のデータと、発生したハッシュの内対応する1組とを送信するステップ(803)と、
    前記クライアントがホスト・キャッシュを用いることを許可されている場合、前記ネットワークを通じて前記サーバーによって前記クライアントに、前記1組のデータを含めずに前記1組のハッシュを送信するステップ(804)と、
    を備えている、方法。
  11. 請求項10記載の方法であって、更に、前記1組のデータに対して前記1組のハッシュを生成するために用いられたハッシュ関数に対応するハッシュ関数を、前記クライアントに供給するステップを備えている、方法。
  12. 請求項10記載の方法であって、更に、ネットワークを通じて前記ホスト・キャッシュからの要求メッセージを前記サーバーにおいて受信するステップを備えており、前記メッセージが、前記サーバーにおいて格納されている前記1組のデータを求める前記ホスト・キャッシュの要求を含む、方法。
  13. 請求項10記載の方法であって、更に、同じ1組のデータを求める第2の要求を前記クライアントから受信するステップを備えており、前記クライアントが、前記ホスト・キャッシュが前記1組のデータを収容していないことの指示を与える、方法。
  14. 請求項10記載の方法において、前記クライアントがホスト・キャッシュを用いることを許可されているか否か判断するステップは、前記クライアントが許可されているか否か判断するために、どのクライアントが許可されているかを示すレジストリーにおいて前記クライアントの調査を行うか、または前記要求メッセージにおける指示を読むステップを含む、方法。
  15. 1組のコンピューティングデバイスを含むワイド・エリア・ネットワーク上においてレイテンシーを低減するコンピューティングシステムであって、前記コンピューティングデバイスが、プロセッサと、このプロセッサに動作的に結合されておりこのプロセッサによって実行可能な命令を格納するメモリーとを含み、
    ハッシュ値によってインデックス化されたデータを格納するように構成されているホスト・キャッシュ(320)と、
    クライアント(311)とサーバー(315)とを通信状態で結合する第1ネットワーク(303)と、
    前記クライアント(311)をホスト・キャッシュ(320)と通信状態で結合する第2ネットワーク(304)であって、前記第1ネットワーク(303)とは独立しており、前記第1ネットワーク(303)を用いずに、前記クライアント(311)と前記ホスト・キャッシュ(320)との間で通信を行うように構成されている、第2ネットワーク(304)と、
    クライアントの要求に応答して、前記第1ネットワーク(303)を通じて、1組のデータまたはこの1組のデータに対応する1組のハッシュを送信するように構成されているサーバー(315)と、
    前記サーバー(315)が前記1組のハッシュを送信したときに、この1組のハッシュを受信し、前記受信した1組の対応するハッシュに基づいて、前記1組のデータを求めて、前記第2ネットワーク(310)を通じて前記ホスト・キャッシュ(320)に問い合わせるように構成されているクライアント(311)と、
    を備えている、コンピューティングシステム。
  16. 請求項15記載のシステムにおいて、前記クライアント(311)は、前記サーバー(315)が前記1組のデータを送信したときに、この1組のデータを受信し、前記クライアント(311)は、ハッシュ値にしたがって前記1組のデータのコピーを前記ホスト・キャッシュ(320)に格納する、システム。
  17. 請求項15記載のシステムにおいて、前記ホスト・キャッシュ(320)が前記要求データを収容していないとき、前記ホスト・キャッシュ(320)は、前記クライアントが要求したデータを求める要求を前記サーバー(315)に送るように構成されている、システム。
  18. 請求項15記載のシステムにおいて、前記クライアント(311)は、前記ホスト・キャッシュ(320)が前記要求データを収容していないときに、前記1組のデータを求める要求を送るように構成されている、システム。
  19. 請求項15記載のシステムにおいて、前記サーバー(315)は、ハッシュ関数を用いて前記ハッシュを発生するように構成されており、前記クライアント(311)は、前記サーバーと同じハッシュ関数を用いて、前記ホスト・キャッシュ(320)から受信したデータをハッシュすることによって、前記ホスト・キャッシュ(320)から受信したデータを検証するように構成されている、システム。
  20. 請求項15記載のシステムにおいて、前記サーバー(315)は、更に、ステートフル・サーバーであるように構成されており、クライアント(315)に既に送信された前記1組のデータを追跡し、同じ1組のデータを求める別の要求に応答して、前記1組のデータの代わりに、この1組のデータに対応する1組のハッシュを送信する、システム。
JP2011514644A 2008-06-19 2009-04-21 ローカル・ホスト・キャッシュおよび暗号ハッシュ機能を用いてネットワーク・トラフィックを低減する方法およびシステム Active JP5480893B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/141,950 US9747340B2 (en) 2008-06-19 2008-06-19 Method and system of using a local hosted cache and cryptographic hash functions to reduce network traffic
US12/141,950 2008-06-19
PCT/US2009/041267 WO2009154869A2 (en) 2008-06-19 2009-04-21 Method and system of using a local hosted cache and cryptographic hash functions to reduce network traffic

Publications (3)

Publication Number Publication Date
JP2011525278A true JP2011525278A (ja) 2011-09-15
JP2011525278A5 JP2011525278A5 (ja) 2012-08-16
JP5480893B2 JP5480893B2 (ja) 2014-04-23

Family

ID=41432266

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011514644A Active JP5480893B2 (ja) 2008-06-19 2009-04-21 ローカル・ホスト・キャッシュおよび暗号ハッシュ機能を用いてネットワーク・トラフィックを低減する方法およびシステム

Country Status (8)

Country Link
US (2) US9747340B2 (ja)
EP (1) EP2308216A4 (ja)
JP (1) JP5480893B2 (ja)
KR (1) KR101570892B1 (ja)
CN (2) CN102067557B (ja)
BR (1) BRPI0912888B1 (ja)
RU (1) RU2475988C2 (ja)
WO (1) WO2009154869A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015514274A (ja) * 2012-04-05 2015-05-18 マイクロソフト コーポレーション キャッシュ管理

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100036805A1 (en) * 2008-08-05 2010-02-11 International Business Machines Corporation System Maintainable and Reusable I/O Value Caches
US20100036804A1 (en) * 2008-08-05 2010-02-11 International Business Machines Corporation Maintained and Reusable I/O Value Caches
US20120102134A1 (en) 2010-10-21 2012-04-26 International Business Machines Corporation Cache sharing among branch proxy servers via a master proxy server at a data center
US9078128B2 (en) * 2011-06-03 2015-07-07 Apple Inc. System and method for secure identity service
US9098378B2 (en) 2012-01-31 2015-08-04 International Business Machines Corporation Computing reusable image components to minimize network bandwidth usage
US20130201519A1 (en) * 2012-02-03 2013-08-08 Apple Inc. Bridging Non-Network Interfaces and Network Interfaces
US8805797B2 (en) * 2012-02-22 2014-08-12 International Business Machines Corporation Optimizing wide area network (WAN) traffic by providing home site deduplication information to a cache site
US8880638B2 (en) * 2012-06-18 2014-11-04 International Business Machines Corporation Distributed image cache for servicing virtual resource requests in the cloud
US9306997B2 (en) * 2013-01-16 2016-04-05 Cisco Technology, Inc. Method for optimizing WAN traffic with deduplicated storage
US9509736B2 (en) 2013-01-16 2016-11-29 Cisco Technology, Inc. Method for optimizing WAN traffic
US9300748B2 (en) 2013-01-16 2016-03-29 Cisco Technology, Inc. Method for optimizing WAN traffic with efficient indexing scheme
EP2946524A2 (en) * 2013-01-19 2015-11-25 Trondert OÜ Secure streaming method in a numerically controlled manufacturing system, and a secure numerically controlled manufacturing system
CN103116627B (zh) * 2013-01-31 2016-05-18 汉柏科技有限公司 一种高并发soa技术访问数据库的方法和系统
US10474652B2 (en) * 2013-03-14 2019-11-12 Inpixon Optimizing wide data-type storage and analysis of data in a column store database
US9553798B2 (en) 2013-04-23 2017-01-24 Telefonaktiebolaget L M Ericsson (Publ) Method and system of updating conversation allocation in link aggregation
US9497074B2 (en) 2013-04-23 2016-11-15 Telefonaktiebolaget L M Ericsson (Publ) Packet data unit (PDU) structure for supporting distributed relay control protocol (DRCP)
US9497132B2 (en) 2013-04-23 2016-11-15 Telefonaktiebolaget Lm Ericsson (Publ) Method and system of implementing conversation-sensitive collection for a link aggregation group
CN103281398B (zh) * 2013-06-14 2017-04-12 清华大学 数据中心网络泛在缓存方法
KR101846427B1 (ko) * 2014-04-28 2018-04-06 인텔 코포레이션 컴퓨팅 장치의 보안 부팅 기법
US9813290B2 (en) 2014-08-29 2017-11-07 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for supporting distributed relay control protocol (DRCP) operations upon misconfiguration
US10277616B2 (en) 2014-09-25 2019-04-30 Vigilant Ip Holdings Llc Secure digital traffic analysis
US10021181B2 (en) * 2014-12-22 2018-07-10 Dropbox, Inc. System and method for discovering a LAN synchronization candidate for a synchronized content management system
US10891264B2 (en) * 2015-04-30 2021-01-12 Vmware, Inc. Distributed, scalable key-value store
CN105068762B (zh) * 2015-08-06 2018-05-18 北京奇艺世纪科技有限公司 一种数据读取方法及装置
US10382552B2 (en) * 2016-12-12 2019-08-13 Verizon Patent And Licensing Inc. User device ad-hoc distributed caching of content
US10708382B2 (en) * 2018-11-08 2020-07-07 Citrix Systems, Inc. Systems and methods for latency masking via prefix caching
FR3092923B1 (fr) * 2019-02-19 2021-05-21 Sangle Ferriere Bruno Méthode cryptographique de vérification des données
FR3093574B1 (fr) * 2019-03-04 2021-10-01 Amadeus Traitement de données distribuées
CN116719582B (zh) * 2023-08-07 2023-11-03 北京市大数据中心 一种高并发系统的前端限流方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003271442A (ja) * 2002-03-14 2003-09-26 Ntt Comware Corp キャッシュサーバおよびそのキャッシュアウト方法並びにプログラム
JP2004185263A (ja) * 2002-12-03 2004-07-02 Oki Electric Ind Co Ltd 分散協調型コンテンツ配信システム

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5452447A (en) * 1992-12-21 1995-09-19 Sun Microsystems, Inc. Method and apparatus for a caching file server
US5572221A (en) * 1994-10-26 1996-11-05 Telefonaktiebolaget Lm Ericsson Method and apparatus for detecting and predicting motion of mobile terminals
AU5386796A (en) * 1995-04-11 1996-10-30 Kinetech, Inc. Identifying data in a data processing system
US5860153A (en) * 1995-11-22 1999-01-12 Sun Microsystems, Inc. Memory efficient directory coherency maintenance
WO1999003047A1 (en) 1997-07-11 1999-01-21 Earle Machardy Content hosting environment system and cache mechanism
US6014667A (en) * 1997-10-01 2000-01-11 Novell, Inc. System and method for caching identification and location information in a computer network
US6185598B1 (en) * 1998-02-10 2001-02-06 Digital Island, Inc. Optimized network resource location
US6377991B1 (en) * 1998-05-29 2002-04-23 Microsoft Corporation Method, computer program product, and system for migrating URLs within a dynamically changing distributed cache of URLs
US6311216B1 (en) * 1998-05-29 2001-10-30 Microsoft Corporation Method, computer program product, and system for client-side deterministic routing and URL lookup into a distributed cache of URLS
US6661904B1 (en) * 1998-07-15 2003-12-09 Personalogo Method and system for automated electronic conveyance of hidden data
US6757705B1 (en) * 1998-08-14 2004-06-29 Microsoft Corporation Method and system for client-side caching
GB2342195A (en) * 1998-09-30 2000-04-05 Xerox Corp Secure token-based document server
EP0993163A1 (en) * 1998-10-05 2000-04-12 Backweb Technologies Ltd. Distributed client-based data caching system and method
US6405219B2 (en) * 1999-06-22 2002-06-11 F5 Networks, Inc. Method and system for automatically updating the version of a set of files stored on content servers
EP1154356A1 (en) * 2000-05-09 2001-11-14 Alcatel Caching of files during loading from a distributed file system
US6766313B1 (en) * 2000-07-12 2004-07-20 Microsoft Corporation System and method for caching and retrieving information
US7484002B2 (en) * 2000-08-18 2009-01-27 Akamai Technologies, Inc. Content delivery and global traffic management network system
US6959320B2 (en) * 2000-11-06 2005-10-25 Endeavors Technology, Inc. Client-side performance optimization system for streamed applications
US7062567B2 (en) 2000-11-06 2006-06-13 Endeavors Technology, Inc. Intelligent network streaming and execution system for conventionally coded applications
US7188145B2 (en) * 2001-01-12 2007-03-06 Epicrealm Licensing Llc Method and system for dynamic distributed data caching
WO2002065282A2 (en) * 2001-02-09 2002-08-22 Microsoft Corporation Distribution of binary executables and content from peer locations/machines
US8156223B2 (en) * 2001-03-20 2012-04-10 Microsoft Corporation Distribution of binary executables and content from peer locations/machines
US6912591B2 (en) * 2001-05-02 2005-06-28 Science Application International Corporation System and method for patch enabled data transmissions
TW579463B (en) * 2001-06-30 2004-03-11 Ibm System and method for a caching mechanism for a central synchronization server
US7092997B1 (en) * 2001-08-06 2006-08-15 Digital River, Inc. Template identification with differential caching
JP2003153229A (ja) * 2001-11-15 2003-05-23 Mitsubishi Electric Corp データ通信装置及びデータ通信方法
US7392348B2 (en) * 2003-08-06 2008-06-24 International Business Machines Corporation Method for validating remotely cached dynamic content web pages
US6781963B2 (en) * 2002-02-14 2004-08-24 Qualcomm Inc Method and an apparatus for terminating a user from a group call in a group communication network
JP4366040B2 (ja) 2002-03-07 2009-11-18 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワークサービスシステム、サーバ及びプログラム
US7461262B1 (en) * 2002-03-19 2008-12-02 Cisco Technology, Inc. Methods and apparatus for providing security in a caching device
CA2379082A1 (en) * 2002-03-27 2003-09-27 Ibm Canada Limited-Ibm Canada Limitee Secure cache of web session information using web browser cookies
US6996584B2 (en) * 2002-05-14 2006-02-07 Pervasive Software, Inc. System and method of maintaining functional client side data cache coherence
US7171439B2 (en) 2002-06-14 2007-01-30 Integrated Device Technology, Inc. Use of hashed content addressable memory (CAM) to accelerate content-aware searches
US7836295B2 (en) 2002-07-29 2010-11-16 International Business Machines Corporation Method and apparatus for improving the resilience of content distribution networks to distributed denial of service attacks
JP2004126639A (ja) * 2002-09-30 2004-04-22 Toshiba Corp データ管理システム、データ管理方法及びプログラム
GB0303192D0 (en) * 2003-02-12 2003-03-19 Saviso Group Ltd Methods and apparatus for traffic management in peer-to-peer networks
US7441011B2 (en) * 2003-10-23 2008-10-21 Microsoft Corporation Truth on client persistent caching
US20080281950A1 (en) 2004-03-08 2008-11-13 First Oversi Ltd Method and Device for Peer to Peer File Sharing
US7788713B2 (en) * 2004-06-23 2010-08-31 Intel Corporation Method, apparatus and system for virtualized peer-to-peer proxy services
US7437364B1 (en) * 2004-06-30 2008-10-14 Google Inc. System and method of accessing a document efficiently through multi-tier web caching
CA2594983A1 (en) * 2005-01-24 2006-08-03 Citrix Systems, Inc. Systems and methods for performing caching of dynamically generated objects in a network
US7640363B2 (en) * 2005-02-16 2009-12-29 Microsoft Corporation Applications for remote differential compression
JP4515319B2 (ja) 2005-04-27 2010-07-28 株式会社日立製作所 コンピュータシステム
JP2007066161A (ja) 2005-09-01 2007-03-15 Hitachi Ltd キャッシュシステム
CN101009516B (zh) * 2006-01-26 2011-05-04 华为技术有限公司 一种进行数据同步的方法、系统及装置
US7617322B2 (en) * 2006-09-29 2009-11-10 Microsoft Corporation Secure peer-to-peer cache sharing
US7634479B2 (en) * 2006-12-29 2009-12-15 Trend Micro Incorporated Pre-populating local URL rating cache
US7757002B2 (en) * 2007-03-23 2010-07-13 Sophos Plc Method and systems for analyzing network content in a pre-fetching web proxy
US8234327B2 (en) * 2007-03-30 2012-07-31 Netapp, Inc. System and method for bandwidth optimization in a network storage environment
US20090307302A1 (en) * 2008-06-06 2009-12-10 Snap-On Incorporated System and Method for Providing Data from a Server to a Client

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003271442A (ja) * 2002-03-14 2003-09-26 Ntt Comware Corp キャッシュサーバおよびそのキャッシュアウト方法並びにプログラム
JP2004185263A (ja) * 2002-12-03 2004-07-02 Oki Electric Ind Co Ltd 分散協調型コンテンツ配信システム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015514274A (ja) * 2012-04-05 2015-05-18 マイクロソフト コーポレーション キャッシュ管理
US10198462B2 (en) 2012-04-05 2019-02-05 Microsoft Technology Licensing, Llc Cache management

Also Published As

Publication number Publication date
CN102067557A (zh) 2011-05-18
KR20110027688A (ko) 2011-03-16
BRPI0912888A2 (pt) 2015-10-20
CN104615666B (zh) 2018-06-05
RU2475988C2 (ru) 2013-02-20
US9747340B2 (en) 2017-08-29
EP2308216A4 (en) 2016-03-30
WO2009154869A3 (en) 2010-03-18
BRPI0912888B1 (pt) 2021-03-09
US20090319473A1 (en) 2009-12-24
US20180004748A1 (en) 2018-01-04
CN104615666A (zh) 2015-05-13
EP2308216A2 (en) 2011-04-13
CN102067557B (zh) 2015-02-11
JP5480893B2 (ja) 2014-04-23
RU2010151959A (ru) 2012-06-27
KR101570892B1 (ko) 2015-11-20
WO2009154869A2 (en) 2009-12-23

Similar Documents

Publication Publication Date Title
JP5480893B2 (ja) ローカル・ホスト・キャッシュおよび暗号ハッシュ機能を用いてネットワーク・トラフィックを低減する方法およびシステム
JP4263421B2 (ja) サーバレス分散ファイルシステム
JP5075236B2 (ja) サーバーレス分散ファイルシステムにおけるセキュアリカバリ
EP1521419B1 (en) Techniques for securing electronic identities
US9584522B2 (en) Monitoring network traffic by using event log information
Mei et al. Secure dynamic fragment and replica allocation in large-scale distributed file systems
US7818575B2 (en) Efficient retrieval of cryptographic evidence
CN110011981B (zh) 一种基于区块链的可信云存储方法及系统
US20090327505A1 (en) Content Identification for Peer-to-Peer Content Retrieval
US20060179141A1 (en) Monitoring network traffic by using a monitor device
US20110161663A1 (en) Intelligent caching for ocsp service optimization
Hefeeda et al. Design and evaluation of a proxy cache for peer-to-peer traffic
US8375424B2 (en) Replicating selected secrets to local domain controllers
EP3350744B1 (en) Digital data locker system providing enhanced security and protection for data storage and retrieval
CN112019330B (zh) 一种基于联盟链的内网安全审计数据的存储方法及系统
US11165663B2 (en) Network management using a distributed ledger
Dhaya et al. Cloud computing security protocol analysis with parity-based distributed file system
JP4017065B2 (ja) キャッシュ制御方法およびキャッシュシステム
US11895227B1 (en) Distributed key management system with a key lookup service
JP2012203618A (ja) セッション管理システム
Vardhan et al. A DYNAMIC FILE REPLICATION BASED ON CPU LOAD AND CONSISTENCY MECHANISM IN A TRUSTED DISTRIBUTED ENVIRONMENT.
Santhosh et al. A novel revocation management for distributed environment: a detailed study
Xie An Investigation of Distributed Information Search
Kouril et al. Using CRL Push Delivery for Efficient Certificate Revocation Information Distribution in Grids CESNET Technical Report X/2007

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120420

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120629

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130312

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130612

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: 20140117

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140214

R150 Certificate of patent or registration of utility model

Ref document number: 5480893

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250