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

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

Info

Publication number
JP5480893B2
JP5480893B2 JP2011514644A JP2011514644A JP5480893B2 JP 5480893 B2 JP5480893 B2 JP 5480893B2 JP 2011514644 A JP2011514644 A JP 2011514644A JP 2011514644 A JP2011514644 A JP 2011514644A JP 5480893 B2 JP5480893 B2 JP 5480893B2
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.)
Active
Application number
JP2011514644A
Other languages
English (en)
Other versions
JP2011525278A5 (ja
JP2011525278A (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)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (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)

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のネットワークの帯域幅利用を低減する方法であって、
    第1のリクエスト・メッセージを前記第1のネットワークを経由してクライアントからサーバーへ送信するステップであって、
    前記第1のリクエスト・メッセージは、前記クライアントはホスト・キャッシュを用いるようにイネーブルされているという指示を含み、
    前記第1のリクエスト・メッセージは、複数のデータ部分に対する複数のハッシュをリクエストし、
    前記複数のデータ部分はそれぞれが、リクエストされた前記複数のハッシュの中に対応するハッシュを有し、
    前記複数のハッシュの中のそれぞれのハッシュは、当該ハッシュを生成するのに用いられる対応するデータ部分へのインデックスとして動作可能であり、また、前記対応するデータ部分に対するデータ・インテグリティを検証するように動作可能である、ステップと、
    前記ホスト・キャッシュが前記リクエストされた複数のデータ部分を格納している可能性が高いとの判断に応答して、前記クライアントによって、前記複数のデータ部分を含まない前記複数のハッシュを前記第1のネットワークを経由して受信するステップと、
    前記ホスト・キャッシュが前記リクエストされた複数のデータ部分を格納している可能性が低いとの判断に応答して、前記クライアントによって、前記複数のデータ部分を前記第1のネットワークを経由して受信するステップと、
    前記クライアントによって、第2のネットワークを経由して、前記受信された複数のハッシュに基づいて、前記複数のデータ部分の少なくとも第1のデータ部分に関して、前記ホスト・キャッシュに問い合わせをするステップであって、前記第2のネットワークは前記クライアントと前記ホスト・キャッシュとを前記第1のネットワークとは独立に通信状態で接続することができる、ステップと、
    を含む方法。
  2. 請求項1記載の方法において、前記第1ネットワークはセキュアード・ソケット・レイヤ・プロトコル(SSL)を実行する終端間で安全が確保されたネットワークである、方法。
  3. 請求項1記載の方法であって、
    少なくとも前記第1のデータ部分に関して前記ホスト・キャッシュに問い合わせるステップの後で、前記ホスト・キャッシュは前記第1のデータ部分を含まないと判断するステップと、
    前記ホスト・キャッシュは前記第1のデータ部分を含まないと判断した後で、前記第1のデータ部分に関する前記ホスト・キャッシュによる第2のリクエストを前記サーバーに送るステップと、
    を更に含む方法。
  4. 請求項1記載の方法であって、
    少なくとも前記第1のデータ部分に関して前記ホスト・キャッシュに問い合わせるステップの後で、前記ホスト・キャッシュから、前記ホスト・キャッシュは前記第1のデータ部分を含まないという指示を受信するステップと、
    前記ホスト・キャッシュは前記第1のデータ部分を含まないという指示を受信するステップの後で、前記クライアントによって、第2のリクエストを前記サーバーに送るステップであって、前記第2のリクエストは前記第1のデータ部分に対するリクエストを含む、ステップと、
    を更に含む方法。
  5. 請求項1記載の方法において、前記ホスト・キャッシュは前記データ部分のそれぞれと関連する失効パラメーターを格納しており、前記失効パラメーターはそれぞれのデータ・ブロックに対する有効期間を示す、方法。
  6. 請求項1記載の方法であって、前記第2のネットワークを経由して接続されている複数のクライアントに跨って格納された分散型ハッシュ・テーブルとして前記ホスト・キャッシュを実装するステップを更に含む方法。
  7. 請求項1記載の方法であって、暗号化アルゴリズムに基づいて前記複数のハッシュを生成するステップを更に含み、前記1組のハッシュは前記ホスト・キャッシュによってキャッシュされているデータ部分に対して統計的に一意的であるように生成される、方法。
  8. 請求項1記載の方法であって、
    少なくとも前記第1のデータ部分に関して前記ホスト・キャッシュに問い合わせるステップの後で、少なくとも前記第1のデータ部分を前記クライアントにおいて前記ホスト・キャッシュから受信するステップと、
    少なくとも前記第1のデータ部分を受信した後で、前記第1のデータ部分を検証するステップであって、
    前記第1のデータ部分に対してハッシュ関数を実行し、ハッシュ関数の結果を生じるステップと、
    前記ハッシュ関数の結果が、前記第1のデータ部分に関する対応するハッシュと一致するかどうかを判断するステップと、
    を含むステップと、
    を更に含む方法。
  9. ネットワークの帯域幅利用を低減する方法であって、
    クライアントからの第1のリクエスト・メッセージをサーバーにおいて前記ネットワークを経由して受信するステップであって、前記第1のリクエスト・メッセージは、第1のハッシュ関数を用いて作成されるハッシュに基づいてデータにインデックスを付するホスト・キャッシュを用いるように前記クライアントがイネーブルされているという指示と、前記サーバーに格納されている1組のデータに関する指示と、を含む、ステップと、
    前記サーバーに格納されている前記1組のデータに対して前記第1のハッシュ関数を用いて1組のハッシュを生成するステップであって、前記1組のハッシュは第1のファイルに対する第1の複数のハッシュを含み、前記第1のファイルは第1の複数のデータ部分を含み、前記第1の複数のハッシュはそれぞれが前記第1の複数のデータ部分の対応するデータ部分を有し、前記1組のハッシュはそれぞれが前記1組のデータのそれぞれのデータ部分の統計的に一意的な指紋を表す、ステップと、
    前記サーバーにおいて、前記クライアントは前記ホスト・キャッシュを用いるようにイネーブルされていると判断するステップと、
    前記サーバーにおいて、前記ホスト・キャッシュが前記第1のリクエスト・メッセージにより指示された前記1組のデータを格納している可能性が高いか否か判断するステップと、
    前記ホスト・キャッシュが前記1組のデータを格納している可能性が高いとの判断に応答して、前記ネットワークを経由して前記サーバーによって前記クライアントに、前記1組のデータを含めずに前記1組のハッシュを送信するステップと、
    前記ホスト・キャッシュが前記1組のデータを格納している可能性が低いとの判断に応答して、前記ネットワークを経由して前記サーバーによって前記クライアントに、前記1組のデータを送信するステップと、
    を含む方法。
  10. 請求項9記載の方法であって、前記1組のデータに対して前記1組のハッシュを生成するのに用いられたハッシュ関数に対応するハッシュ関数を、前記クライアントに提供するステップを更に含む方法。
  11. 請求項9記載の方法であって、
    前記1組のデータを含まずに前記1組のハッシュを送信するステップに応答して、第2のリクエスト・メッセージを、前記ネットワークを経由して前記ホスト・キャッシュから前記サーバーにおいて受信するステップを更に含み、前記第2のリクエスト・メッセージは、前記サーバーに格納されている前記第1の複数のデータ部分の少なくとも第1のデータ部分に対する前記ホスト・キャッシュのリクエストを含む、方法。
  12. 請求項9記載の方法であって、
    同じ1組のデータを求める第2のリクエスト・メッセージを前記クライアントから前記サーバーにおいて受信するステップを更に含み、前記クライアントは、前記第2のリクエスト・メッセージにおいて、前記ホスト・キャッシュは前記1組のデータを含まないという指示を提供する、方法。
  13. 請求項9記載の方法において、前記クライアントがホスト・キャッシュを用いるようにイネーブルされていると判断するステップは、前記第1のリクエスト・メッセージにおける指示を読み取り前記クライアントがイネーブルされていると判断するステップを含む、方法。
  14. 1組のコンピューティングデバイスを含むワイド・エリア・ネットワーク上においてレイテンシーを低減するコンピューティングシステムであって、前記コンピューティングデバイスは、プロセッサと、前記プロセッサに動作的に結合されており前記プロセッサによって実行可能な命令を格納するメモリーとを含む、コンピューティングシステムにおいて、
    ハッシュ値によってインデックスが付されたデータを格納するように構成されているホスト・キャッシュと、
    クライアントとサーバーとを通信状態で結合する第の1ネットワークと、
    前記クライアントとホスト・キャッシュとを通信状態で結合する第2のネットワークであって、前記第2のネットワークは、前記第1のネットワークとは独立しており、前記第1のネットワークを用いずに、前記クライアントと前記ホスト・キャッシュとの間の通信を提供するように構成されている、第2ネットワークと、
    クライアントのリクエストに応答して、前記第1ネットワークを経由して、1組のデータ又は前記1組のデータに対応する1組のハッシュを送信するように構成されているサーバーであって、前記ホスト・キャッシュが前記リクエストに係る前記1組のデータを格納している可能性が高いか否か判断し、可能性が高いと判断した場合、前記1組のデータを含めずに前記1組のハッシュを送信し、可能性が低いと判断した場合、前記1組のデータを送信する、サーバーと、
    前記サーバーが前記1組のハッシュを送信した場合、前記1組のハッシュを受信し、前記受信された1組の対応するハッシュに基づいて、前記1組のデータに関して、前記第2のネットワークを経由して前記ホスト・キャッシュに問い合わせるように構成されているクライアントと、
    を備えているコンピューティングシステム。
  15. 請求項14記載のシステムにおいて、前記クライアントは、前記サーバーが前記1組のデータを送信すると、前記1組のデータを受信し、ハッシュ値にしたがって前記1組のデータのコピーを前記ホスト・キャッシュに格納するように構成されている、システム。
  16. 請求項14記載のシステムにおいて、前記ホスト・キャッシュは、更に、前記ホスト・キャッシュが前記リクエストされたデータを含まないときには、前記クライアントによってリクエストされた1組のデータに対するリクエストを前記サーバーに送るように構成されている、システム。
  17. 請求項14記載のシステムにおいて、前記クライアントは、更に、前記ホスト・キャッシュが前記リクエストされたデータを含まないときには、前記1組のデータに対するリクエスト前記サーバーに送るように構成されている、システム。
  18. 請求項14記載のシステムにおいて、
    前記サーバーは、更に、ハッシュ関数を用いて前記ハッシュを発生するように構成されており、
    前記クライアントは、更に、前記サーバーと同じハッシュ関数を用いて、前記ホスト・キャッシュから受信されたデータをハッシュすることによって、前記ホスト・キャッシュから受信されたデータを検証するように構成されている、システム。
  19. 請求項14記載のシステムにおいて、前記サーバーは、更に、クライアントに既に送信された前記1組のデータを追跡し、同じ1組のデータに対する別のリクエストに応答して、前記1組のデータの代わりに、前記1組のデータに対応する1組のハッシュを送信するように構成されている、システム。
  20. 請求項1記載の方法において、前記第1のネットワークは、IPセキュリティ(IPSec)プロトコルを動作させ終端間で安全確保されたネットワークである、方法。
JP2011514644A 2008-06-19 2009-04-21 ローカル・ホスト・キャッシュおよび暗号ハッシュ機能を用いてネットワーク・トラフィックを低減する方法およびシステム Active JP5480893B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/141,950 2008-06-19
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
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 JP2011525278A (ja) 2011-09-15
JP2011525278A5 JP2011525278A5 (ja) 2012-08-16
JP5480893B2 true 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)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100036804A1 (en) * 2008-08-05 2010-02-11 International Business Machines Corporation Maintained and Reusable I/O Value Caches
US20100036805A1 (en) * 2008-08-05 2010-02-11 International Business Machines Corporation System Maintainable 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
US10198462B2 (en) * 2012-04-05 2019-02-05 Microsoft Technology Licensing, Llc Cache management
US8880638B2 (en) * 2012-06-18 2014-11-04 International Business Machines Corporation Distributed image cache for servicing virtual resource requests in the cloud
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
US9306997B2 (en) * 2013-01-16 2016-04-05 Cisco Technology, Inc. Method for optimizing WAN traffic with deduplicated storage
WO2014111587A2 (en) * 2013-01-19 2014-07-24 Fabulonia 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
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
US9660861B2 (en) 2013-04-23 2017-05-23 Telefonaktiebolaget L M Ericsson (Publ) Method and system for synchronizing with neighbor in a distributed resilient network interconnect (DRNI) 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 北京市大数据中心 一种高并发系统的前端限流方法

Family Cites Families (52)

* 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
WO1996032685A1 (en) * 1995-04-11 1996-10-17 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
US7062567B2 (en) 2000-11-06 2006-06-13 Endeavors Technology, Inc. Intelligent network streaming and execution system for conventionally coded applications
US6959320B2 (en) 2000-11-06 2005-10-25 Endeavors Technology, Inc. Client-side performance optimization system for streamed applications
US7188145B2 (en) 2001-01-12 2007-03-06 Epicrealm Licensing Llc Method and system for dynamic distributed data caching
AU2002232464A1 (en) * 2001-02-09 2002-08-28 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 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワークサービスシステム、サーバ及びプログラム
JP2003271442A (ja) 2002-03-14 2003-09-26 Ntt Comware Corp キャッシュサーバおよびそのキャッシュアウト方法並びにプログラム
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 データ管理システム、データ管理方法及びプログラム
JP2004185263A (ja) 2002-12-03 2004-07-02 Oki Electric Ind Co Ltd 分散協調型コンテンツ配信システム
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
EP1725948A4 (en) 2004-03-08 2013-01-16 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
KR20070104566A (ko) * 2005-01-24 2007-10-26 사이트릭스 시스템스, 인크. 네트워크에서 동적으로 발생된 객체들의 캐싱을 수행하는시스템 및 방법
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

Also Published As

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

Similar Documents

Publication Publication Date Title
JP5480893B2 (ja) ローカル・ホスト・キャッシュおよび暗号ハッシュ機能を用いてネットワーク・トラフィックを低減する方法およびシステム
JP4263421B2 (ja) サーバレス分散ファイルシステム
US10187275B2 (en) Monitoring network traffic by using event log information
JP5075236B2 (ja) サーバーレス分散ファイルシステムにおけるセキュアリカバリ
US8019882B2 (en) Content identification for peer-to-peer content retrieval
EP1521419B1 (en) Techniques for securing electronic identities
CN110011981B (zh) 一种基于区块链的可信云存储方法及系统
US20110161663A1 (en) Intelligent caching for ocsp service optimization
US8375424B2 (en) Replicating selected secrets to local domain controllers
Hefeeda et al. Design and evaluation of a proxy cache for peer-to-peer traffic
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
Zerfos et al. SDFS: Secure distributed file system for data-at-rest security for Hadoop-as-a-service
Tang et al. Lightweight authentication of freshness in outsourced key-value stores
JP4017065B2 (ja) キャッシュ制御方法およびキャッシュシステム
JP2012203618A (ja) セッション管理システム
US11895227B1 (en) Distributed key management system with a key lookup service
Vardhan et al. A DYNAMIC FILE REPLICATION BASED ON CPU LOAD AND CONSISTENCY MECHANISM IN A TRUSTED DISTRIBUTED ENVIRONMENT.
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