JP2009543227A - 以前に格納されたコンテンツの効率的な配信のための方法およびシステム - Google Patents

以前に格納されたコンテンツの効率的な配信のための方法およびシステム Download PDF

Info

Publication number
JP2009543227A
JP2009543227A JP2009518571A JP2009518571A JP2009543227A JP 2009543227 A JP2009543227 A JP 2009543227A JP 2009518571 A JP2009518571 A JP 2009518571A JP 2009518571 A JP2009518571 A JP 2009518571A JP 2009543227 A JP2009543227 A JP 2009543227A
Authority
JP
Japan
Prior art keywords
file
sequence
data
client
data sequence
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.)
Withdrawn
Application number
JP2009518571A
Other languages
English (en)
Inventor
ヘンク ボッツ,
スリカンス デバラヤン,
サラバナ アナマライサミ,
Original Assignee
サイトリックス システムズ, インコーポレイテッド
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 サイトリックス システムズ, インコーポレイテッド filed Critical サイトリックス システムズ, インコーポレイテッド
Publication of JP2009543227A publication Critical patent/JP2009543227A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/194Calculation of difference between files
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5603Access techniques
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99948Application of database or data structure, e.g. distributed, multimedia, or image
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99955Archiving or backup
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99956File allocation

Abstract

ネットワークを介して配信されるファイルのファイルサイズを縮小するためのシステムおよび方法を開示する。方法は、データシーケンスを含む第1のファイルを受信することと、重複するデータシーケンスに対応するエントリを有するハッシュテーブルを作成することと、データシーケンスを含む第2のファイルを受信することと、該第1のファイルおよび該第2のファイルの両方に存在するデータシーケンスを判断するために、該第2のファイル内の各データシーケンスと該ハッシュテーブル内のデータシーケンスとを比較することと、該第2のファイルからのデータシーケンスと、該第1のファイルおよび該第2のファイルの両方に存在する該データシーケンスの位置および長さの表示とを含む第3のファイルを作成することとを包含する。

Description

本発明は、インターネットおよびコンピュータネットワークのコンテンツ配信に関し、特に、ネットワークを介して配信されるファイルのファイルサイズを縮小させるためのシステムおよび方法に関する。
多くのネットワーク環境において、帯域幅は、不十分なリソースである。帯域幅は、環境の接続インフラストラクチャ、またはネットワークにおけるデバイスの最大伝送または受信の速度によって制限されることがある。帯域幅が不足する場合、ネットワークを介して伝送されるファイルサイズを縮小することによって、伝送時間の大幅な改善を実現することができる。
インターネットおよびワールドワイドウェブを含むネットワークの別の一般的な特徴として、冗長なデータの伝送がある。例えば、多くの場合、クライアントは、実行された任意の変更をチェックするために、異なる日に同じファイルをリクエストすることがある。このファイルデータの大部分は、ユーザに既に伝送されているために、冗長となる可能性がある。例えば、ファイルが新聞のウェブページである場合、見出しおよびフォーマット情報は、変わらないままである。別の例として、クライアントは、例えば、ファイルが更新されるスポーツのスコアをリストするウェブページである場合、1時間のうちに数回ファイルをロードすることがある。この例では、毎回の閲覧において変化する唯一のデータは、スコアのみとなることがあり、チーム名、ロゴ、およびフォーマットは変わらないままである。
伝送されるファイルサイズを縮小させるためにこの冗長性を活用する、いくつかのシステムおよび方法が既に存在する。多くのウェブブラウザは、ユーザが同じサイトを再び閲覧する場合にイメージを再伝送する必要のないように、ユーザが既に訪問したサイトのイメージを格納している。この方法は効果的ではあるが、典型的には、標準的なイメージファイルのみに制限されており、大容量のテキスト、スクリプト、またはフォーマット情報を含むページのファイルサイズを縮小させることはできない。多くのウェブサイトは、変更されたページの一部分のみが再伝送されるようにウェブページを制御するために、フレーム、アプレット、またはスクリプトを利用する。この方法の欠点は、こうした技術を使用するためのサイトのプログラミングに、多くの場合、かなりの開発期間およびリソースが必要となり、以前から存在したファイルを再コーディングしなければならない可能性がある、ということである。このため、現在存在するファイルおよび将来的なファイルの両方に容易に適用可能な、伝送ファイルサイズを縮小させるために多くのネットワーク伝送でみられる冗長性に対して影響力を与える手段が必要とされている。
(本発明の概要)
本発明は、以前に伝送されたデータを含むファイルのために伝送ファイルサイズを大幅に縮小できる、効率的な機構を提供する。本発明は、ファイル特有、アプリケーション特有、またはネットワーク特有のソリューションを必要とせずに、この縮小を可能にし得、このために、多大な開発投資が不要となる。
一局面において、本発明は、以前に格納されたファイルへの効率的な更新を作成するための方法である。該方法は、データシーケンスを含む第1のファイルを受信することと、重複するデータシーケンスに対応するエントリを有するハッシュテーブルを作成することと、データシーケンスを含む第2のファイルを受信することと、該第1のファイルおよび該第2のファイルの両方に存在するデータシーケンスを判断するために、該第2のファイル内の各データシーケンスと該ハッシュテーブル内のデータシーケンスとを比較することと、該第1のファイルおよび該第2のファイルの両方に存在する該データシーケンスの長さおよび位置の表示を格納することと、該第2のファイルからのデータシーケンスと、該第1のファイルおよび該第2のファイルの両方に存在する該データシーケンスの位置および長さの表示とを含む第3のファイルを作成することとを包含する。
別の局面において、本発明は、以前に格納されたファイルへの効率的な更新を受信する方法である。該方法は、データシーケンスを含む第1のファイルを受信することと、データシーケンスと、該第1のファイル内のシーケンスの位置および長さの表示とを含む第2のファイルを受信することと、該第2のファイルからのデータシーケンスと、該第2のファイルによって示される該第1のファイル内のシーケンスを含む第3のファイルを作成するために、Java(登録商標)script機能を実行することとを包含する。
さらに別の局面において、本発明は、以前に格納されたファイルへの効率的な更新を作成するためのコンピュータシステムである。該システムは、第1のファイルおよび第2のファイルを受信するトランシーバであって、各ファイルは、複数のデータシーケンスのそれぞれを含む、トランシーバと、該トランシーバと通信し、該第1のファイルおよび該第2のファイル内のデータシーケンスに対してハッシュ値を計算するハッシュエンジンであって、該シーケンスの少なくとも2つが重複し、該第1のファイルおよび該第2のファイルの両方に存在するデータシーケンスを判断する、ハッシュエンジンと、該ハッシュエンジンと通信し、該第1のファイルおよび該第2のファイルの両方に存在する該シーケンスの長さおよび位置の表示を格納するストレージエレメントと、該ストレージエレメントと通信し、該第2のファイルからのデータシーケンスと、両方のファイルに存在する該シーケンスの長さおよび位置の表示とを含む第3のファイルを作成するプロセッサとを備える。
図1Aは、クライアントサーバネットワークのデバイスとして有益なコンピューティングデバイスまたはネットワークデバイスの実施形態のブロック図である。 図1Bは、クライアントサーバネットワークのデバイスとして有益なコンピューティングデバイスまたはネットワークデバイスの実施形態のブロック図である。 図2は、クライアントサーバネットワークにおいて動作するネットワークアプライアンスの実施形態を示すブロック図である。 図3は、以前に格納されたファイルへの効率的な更新を作成するための方法の一実施形態を表す流れ図である。 図4は、以前に格納されたファイルへの効率的な更新を作成するための方法の別の実施形態を表す流れ図である。 図5は、以前に格納されたファイルへの効率的な更新を作成および受信するための方法の別の実施形態を表す流れ図である。 図6は、以前に格納された第1のファイルからの第2のファイルと、第2のファイルからのデータシーケンスならびに第1のファイルおよび第2のファイルの両方に存在するデータシーケンスの位置および長さの表示を含む第3のファイルとをアセンブルするための方法の一実施形態を表す流れ図である。 図7は、ファイル伝送方法を判断するための方法の一実施形態を表す流れ図である。
本発明の上述のおよびその他の目的、局面、特徴、および利点は、添付の図面と共に以下の説明を参照することによって、より明らかに、またより適切に理解されるであろう。
(本発明の詳細な説明)
本明細書に記載されているように、サーバおよびクライアントは、パーソナルコンピュータ、ノートブックコンピュータ、パーソナルデジタルアシスタント、セル式電話、ポケットベル、スタンドアロンコンピュータサーバ、ブレード(blade)サーバ、ラックマウント式サーバ、または上記サーバの任意の種類のグループを限定としてではなく含む、情報の処理および情報の送受信が可能な任意のデバイスを備え得る。
図1Aおよび図1Bは、クライアントコンピュータデバイスおよびサーバコンピュータデバイスとして有益な典型的なコンピュータ100のブロック図を表す。図1Aおよび図1Bに示されているように、各コンピュータ100は、中央処理装置102、およびメインメモリ装置104を含む。各コンピュータ100はまた、1つ以上の入力/出力デバイス130a〜130b(概して、参照番号130と称される)等のその他の付加的なエレメント、および中央処理装置102と通信するキャッシュメモリ140を含み得る。
中央処理装置102は、メインメモリ装置104からフェッチされる命令に応答し、これを処理する任意の論理回路網である。多くの実施形態において、中央処理装置は、Intel Corporation(Mountain View、California)製、Motorola Corporation(Schaumburg、Illinois)製、Transmeta Corporation(Santa Clara、California)製CrusoeおよびEfficeonシリーズのプロセッサ、International Business Machines(White Plains、New York)製プロセッサのシリーズ、またはAdvanced Micro Devices(Sunnyvale、California)製プロセッサのシリーズ等のマイクロプロセッサ装置によって提供される。
メインメモリ装置104は、Static random access memory(SRAM)、Burst SRAMまたはSynchBurst SRAM(BSRAM)、Dynamic random access memory(DRAM)、Fast Page Mode DRAM(FPM DRAM)、Enhanced DRAM(EDRAM)、Extended Data Output RAM(EDO RAM)、Extended Data Output DRAM(EDO DRAM)、Burst Extended Data Output DRAM(BEDO DRAM)、Enhanced DRAM(EDRAM)、synchronous DRAM(SDRAM)、JEDEC SRAM、PC100 SDRAM、Double Data Rate SDRAM(DDR SDRAM)、Enhanced SDRAM(ESDRAM)、SyncLink DRAM(SLDRAM)、Direct Rambus DRAM(DRDRAM)、または強誘電体RAM(FRAM)等のデータを格納可能で、かつ任意の格納場所にマイクロプロセッサ102が直接アクセスすることのできる、1つ以上のメモリチップであり得る。図1Aに図示された実施形態において、プロセッサ102は、システムバス150(以下により詳細に記載)を介してメインメモリ104と通信する。図1Bは、プロセッサがメモリポートを介してメインメモリ104と直接通信する、コンピュータシステム100の実施形態を表す。例えば、図1Bにおいて、メインメモリ104は、DRDRAMであり得る。
図1Aおよび図1Bは、メインプロセッサ102がセカンダリバスを介してキャッシュメモリ140と直接通信し、「バックサイド(backside)」バスと呼ばれることのある、実施形態を表す。別の実施形態において、メインプロセッサ102は、システムバス150を用いて、キャッシュメモリ140と通信する。キャッシュメモリ140は、典型的には、メインメモリ104よりも高速に応答し、典型的にはSRAM、BSRAM、またはEDRAMによって提供される。
図1Aに図示された実施形態において、プロセッサ102は、ローカルシステムバス150を介して、種々のI/Oデバイス130と通信する。VESA VLバス、ISAバス、EISAバス、MicroChannel Architecture(MCA)バス、PCIバス、PCI−Xバス、PCI−Expressバス、またはNuBusを含む、I/Oデバイス130へと中央処理装置102を接続するために、種々のバスを使用してもよい。I/Oデバイスがビデオディスプレイである実施形態の場合、プロセッサ102は、ディスプレイと通信するために、Advanced Graphics Port(AGP)を使用してもよい。図1Bは、メインプロセッサ102がHyperTransport、Rapid I/O、またはInfiniBandを介して、I/Oデバイス130bと直接通信する、コンピュータシステム100の実施形態を表す。さらに、図1Bは、ローカルバスおよび直接通信が混在している実施形態を表し、プロセッサ102は、I/Oデバイス130bと直接通信しながら、ローカル相互接続バスを使って、I/Oデバイス130aと通信する。
広範囲の種々のI/Oデバイス130が、コンピュータシステム100に存在してもよい。入力デバイスは、キーボード、マウス、トラックパッド、トラックボール、マイクロフォン、および描画タブレットを含む。出力デバイスは、ビデオディスプレイ、スピーカ、インクジェットプリンタ、レーザプリンタ、および昇華型プリンタを含む。I/Oデバイスはさらに、ハードディスクドライブ、3.5インチ、5.25インチディスクまたはZIPディスク等のフロッピー(登録商標)ディスクを受け入れるフロッピー(登録商標)ディスクドライブ、CD−ROMドライブ、CD−R/RWドライブ、DVD−ROMドライブ、種々のフォーマットのテープドライブ、およびTwintech Industry,Inc.(Los Alamitos、California)製USB Flash Driveシリーズのデバイス等のUSBストレージデバイス等、コンピュータシステム800のための大容量ストレージを提供してもよい。
さらなる実施形態において、I/Oデバイス130は、システムバス150と外部通信バス(例えば、USBバス、Apple Desktopバス、RS−132シリアル接続、SCSIバス、FireWireバス、FireWire800バス、Ethernet(登録商標)バス、AppleTalkバス、Gigabit Ethernet(登録商標)バス、Asynchronous Transfer Modeバス、HIPPIバス、Super HIPPIバス、SerialPlusバス、SCI/LAMPバス、FibreChannelバス、またはSerial Attached小型コンピュータシステムインタフェースバス)との間をつなぐものとしてもよい。
図1Aおよび図1Bに示されている種類の汎用コンピュータは、典型的には、タスクのスケジューリングおよびシステムリソースへのアクセスを制御する、オペレーティングシステムの制御下で動作する。典型的なオペレーティングシステムには、中でも、Microsoft Corp.(Redmond、Washington)製MICROSOFT WINDOWS(登録商標)、Apple Computer(Cupertino、California)製MacOS、International Business Machines(Armonk、New York)製OS/2、およびCaldera Corp.(Salt Lake City、Utah)が配布する無料のオペレーティングシステム、Linuxを含む。
携帯デバイスを備える実施形態の場合、デバイスは、全てMotorola Corp.(Schaumburg、Illinois)製i55sr、i58sr、i85sまたはi88s、京セラ(京都、日本)製6035または7135、あるいはSamsung Electronics Co.,Ltd.(Seoul、Korea)製i300またはi330等のJAVA(登録商標)を有効化したセル式電話にしてもよい。携帯デバイスを備える別の実施形態において、携帯デバイスは、全てpalmOne,Inc.(Milpitas、California)製Tungsten W、VII、VIIx、i705等のPalmOSオペレーティングシステムの制御下によって動作するパーソナルデジタルアシスタント(PDA)にしてもよい。さらなる実施形態において、クライアント113は、全てHewlett−Packard Corporation(Palo Alto、California)製iPAQ4155、iPAQ5555、iPAQ1945、iPAQ2215およびiPAQ4255、ViewSonic(Walnut、California)製ViewSonic V36、または、Toshiba America,Inc.(New York、New York)製Toshiba PocketPC e405等の、PocketPCオペレーティングシステムの制御下において動作するパーソナルデジタルアシスタント(PDA)としてもよい。さらに別の実施形態において、携帯デバイスは、全てpalmOne,Inc.(Milpitas、California)製Treo 180、Treo 270、Treo 600、Treo 650、Treo 700、またはTreo 700w等のPDAと電話デバイスの組合せデバイスである。また別のさらなる実施形態において、携帯デバイスは、Motorola Corp製MPx200等のPocketPCオペレーティングシステムの制御下において動作するセル式電話である。典型的な携帯デバイスは、プロセッサ102およびメインメモリ104を含む、図1Aおよび図1B中において上述されているエレメントの多くを備えてもよい。
図2は、クライアント−サーバネットワークで動作するネットワークアプライアンス(appliance)の実施形態を示すブロック図を表している。概観として、多数のクライアント213a、213b、・・・213n’(これら全部を213と称する)が、ネットワーク211を介してネットワークアプライアンス209に接続されており、このネットワークアプライアンス209は、多数のサーバ205a、205b、205n(これら全部を205と称する)を備えるネットワーク211’に接続されている。クライアント213、ネットワーク211、サーバ205、およびネットワークアプライアンス209は、本明細書に記載されているものと実質的に同様の能力、種類、機能、および構成を備える任意のコンピュータデバイスを備えてもよい。
引き続き、より詳細に図2を参照すると、多数のサーバ205へネットワーク211’を介して接続されるネットワークアプライアンス209が示されている。図示された実施形態において、サーバ205は、スタンドアロンコンピュータサーバ、ブレードサーバ、ラックマウント式サーバ、または任意の種類の上記サーバのグループを含む、情報の処理および情報の送受信が可能な任意のデバイスを備えてもよい。サーバは、データベース、ファイルサーバ、ウェブサーバ、アプリケーションサーバまたは任意のその他の種類のサーバをさらに備えてもよい。複数のサーバを含む実施形態において、サーバは、同一のサーバであり得、またはメーカー、モデル、種類、コンテンツ、パフォーマンス、利用可能性、または任意のその他の局面において異なってもよい。
ネットワークアプライアンス209は、限定としてではなく、ファイアウォールサービス、SSLプーリング(pooling)および加速、TCPプーリングおよび加速、データ圧縮、接続モニタリング、アプリケーションロギング、アプリケーション加速、アプリケーション配信、負荷均衡、キャッシング、仮想化、変換、リダイレクション、接続プーリング、プロキシサービス、逆プロキシサービス、認証、およびセッション管理を含む、クライアント213へのサービス提供に関連する任意の機能を実行してもよい。いくつかの実施形態において、ネットワークアプライアンス209は、サーバ205と同じ物理的マシン上に常駐してもよい。いくつかの実施形態において、ネットワークアプライアンス209は、プロセッサ、ディスクスペース、RAM、または任意のその他のコンピューティングリソースをサーバ205と共有してもよい。
図示された実施形態において、ネットワークアプライアンス209は、ネットワーク211、211’に接続される。ネットワーク211、211’は、インターネット、ローカルネットワーク、ウェブサーバ、ファイルサーバ、ルータ、データベース、コンピュータ、サーバ、ネットワークアプライアンス、または任意のその他の情報の送受信が可能なコンピュータデバイスを備えてもよい。ネットワーク211、211’は、ケーブル、IRポート、ワイヤレスシグナル、または複数のコンピュータデバイスに接続する任意のその他の手段を介して接続されるコンピュータデバイスを備えてもよい。ネットワーク211、211’およびネットワークに接続される任意のデバイスは、SSL、HTML、XML、RDP、ICA、FTP、HTTP、TCP、IP、UDP、IPX、SPX、NetBIOS、NetBEUI、SMB、SMTP、Ethernet(登録商標)、ARCNET、ファイバ分散データインタフェース(FDDI)、RS232、IEEE802.11、IEEE802.11a、IEE802.11b、IEEE802.11gおよび直接非同期接続、または任意のそれらの組み合わせを限定としてではなく含む、コンピュータデバイスの間でまたはコンピュータデバイス内で通信するために使用される任意の通信プロトコルを介して通信してもよい。ネットワーク211、211’は、任意のプロトコル、あるいはAMPS、TDMA、CDMA、GSM、GPRSまたはUMTSを含む、携帯デバイスの間で通信するために使用されるプロトコルを利用する、携帯電話ネットワークを備えてもよい。ネットワーク211、211’は物理的に別個のネットワークを備えてもよい、またはネットワーク211、211’は同じネットワークを備えてもよい、および任意の方法で接続してもよい。いくつかの実施形態において、ネットワーク211’経由で通信するデバイスは、特殊な、またはネットワーク211を介して通信するデバイスとは異なるプロトコルを使用してもよい。
上記のデバイスのいずれかにおけるTCP/IPベースの通信を含む実施形態において、Messaging Application Programming Interface(MAPI)(電子メール)、File Transfer Protocol(FTP)、HyperText Transfer Protocol(HTTP)、Common Internet File System(CIFS)プロトコル(ファイル伝送)、Independent Computing Architecture(ICA)プロトコル、Remote Desktop Protocol(RDP)、Wireless Application Protocol(WAP)、Mobile IPプロトコル、およびVoice Over IP(VoIP)プロトコルを含む、任意のTCP/IPベースのプロトコルを使用してもよい。修正トランスポート制御プロトコル等の、任意の種類および形式のトランスポート制御プロトコル、例えば、Transaction TCP(T/TCP)、選択確認応答(selection acknowledgement)を有するTCP(TCPSACK)、大型ウィンドウを有するTCP(TCP−LW)、TCP−VegasプロトコルおよびTCPスプーフィング(spoofing)プロトコル等の輻輳予測プロトコルも使用してもよい。別の実施形態において、UDP over IP等の任意の種類および形式のユーザデータグラムプロトコル(UDP)を使用してもよい。
次に図3を参照すると、以前に格納されたファイルへの効率的な更新を作成するための方法の一実施形態が示されている。図3はネットワークアプライアンス209およびクライアント213によって実行中のコンテキストにおける方法を表しているが、本方法は、単体または任意の組み合わせで本明細書に記載されているコンピュータデバイスのいずれかによって実行してもよい。概観的に、この方法は、第1の複数のデータシーケンスを含む第1のファイルを受信する(ステップ301)ことと、クライアントに該第1のファイルを伝送する(ステップ303)ことと、第2の複数のデータシーケンスを含む第2のファイルを受信する(ステップ309)ことと、複数のエントリを有するハッシュテーブルを作成することであって、該複数のエントリのそれぞれは、該第1の複数のシーケンスのそれぞれの1つに対応し、該エントリの少なくとも2つは、重複するデータシーケンスに対応する、作成する(ステップ311)ことと、該第2の複数のデータシーケンスのハッシュ値を計算する(ステップ313)ことと、該第2の複数のデータシーケンスのそれぞれを、同じハッシュ値を有する該第1の複数のシーケンスからのシーケンスと比較して、両方のファイルに存在するデータシーケンスを判断する(ステップ315)ことと、該第1のファイルおよび該第2のファイルの両方に存在する該データシーケンスの長さおよび位置の表示を格納する(ステップ317)ことと、該第2のファイルからのデータシーケンスと、該第1のファイルおよび該第2のファイルの両方に存在する該データシーケンスの位置および長さの表示とを含む第3のファイルを作成する(ステップ319)ことと、クライアントに該第3のファイルを伝送する(ステップ321)こととを包含する。
引き続き図3を参照し、より詳細に説明すると、ネットワークアプライアンス209は、第1の複数のデータシーケンスを含む第1のファイルを受信する(ステップ301)。いくつかの実施形態において、第1のファイルは、ネットワーク211’、サーバ205、データベース、またはそれらの任意の組み合わせから受信してもよい。いくつかの実施形態において、第1のファイルは、ディスクまたはその他の格納媒体から読み込むか、キャッシュから取得するか、またはRAMからアクセスしてもよい。別の実施形態において、第1のファイルは、ネットワークアプライアンス209上で実行されるアプリケーションまたはプロセスから受信してもよい。
第1のファイルは、ファイルを構成するビットまたはバイトシーケンスに対応するデータシーケンスを含んでもよい。第1のファイルは、HTML、XML、WML、SVG、その他のドキュメントプロトコル、イメージファイルプロトコル、サウンドファイルプロトコル、ビデオファイルプロトコル、およびバイナリファイルプロトコルを限定としてではなく含む、任意のファイルプロトコルを含んでもよい。いくつかの実施形態において、ファイルは、ウェブページまたはウェブページの一部分を含む。いくつかの実施形態において、ファイルは、ニュースページ、ウェブアプリケーションページ、チャットルーム、掲示板、スポーツページ、電子メールのページ、ディレクトリリスト、トラッキングページ、およびウェブカメラページを限定としてではなく含む、ある頻度で更新される任意のウェブページを含んでいる。第1のファイルを受信後、ネットワークアプライアンス209は、後で取得が可能なように第1のファイルを格納またはキャッシュする。いくつかの実施形態において、ネットワークアプライアンス209は、本明細書に記載されたネットワークアプライアンスの機能のいずれかによって、該第1のファイルを修正してもよい。
いくつかの実施形態において、第1のファイルを受信(ステップ301)後、ネットワークアプライアンス209は、第1のファイルをクライアントに伝送する(ステップ303)。ネットワークアプライアンス209は、ネットワークのいずれか、または本明細書に記載されたプロトコルを介して、本明細書に記載されたクライアントのいずれかに、第1のファイルを伝送してもよい。ネットワークアプライアンス209は、圧縮、加速および暗号化を含む、ネットワークアプライアンスによって実行される機能のいずれかに従がって、第1のファイルを修正してもよい。図3はステップ301の後すぐに第1のファイルを伝送するネットワークアプライアンス209を表しているが、別の実施形態において、該伝送は、ネットワークアプライアンス209が、第1のファイルを受信(ステップ301)した後に実行されるステップ(ステップ305〜ステップ321)のいずれかの後に行うこともできる。
いくつかの実施形態において、ネットワークアプライアンス209は、該伝送の記録を格納してもよい。該記録は、データベースまたはキャッシュを含む任意のメモリエレメントに格納してもよい。一実施形態において、ネットワークアプライアンス209は、所与のファイルがクライアントに以前伝送されているかどうかを判断するために、該キャッシュにアクセスしてもよい。一実施形態において、該記録は、定められた時間量の後に期限切れとなるよう設定してもよい。例えば、ネットワークアプライアンス209が、所与のクライアント213が1日の終わりにそのキャッシュから全てのファイルを削除することを示す情報を有する場合、ネットワークアプライアンスは、クライアント213に伝送されたファイルの全記録が1日の終わりに期限切れとなるように設定してもよい。
図示された実施形態において、ネットワークアプライアンス209が第1のファイルをクライアント213に伝送(ステップ303)した後、クライアントは、次に、第1のファイルを受信(ステップ305)し、第1のファイルを表示(ステップ307)し、第1のファイルを格納(ステップ308)してもよい。クライアントは、本明細書に記載された実施形態のいずれかによって、こうしたステップを実行してもよい。
図示された実施形態において、ネットワークアプライアンス209がクライアント213に第1のファイルを伝送(ステップ303)した後、ネットワークアプライアンスは、第2の複数のデータシーケンスを含む第2のファイルを受信する(ステップ309)。別の実施形態において、ネットワークアプライアンス209は、クライアントへの第1のファイルの伝送(ステップ303)時または伝送前に第2のファイルを受信する(ステップ309)。第2のファイルは、本明細書に記載されているファイルの種類、プロトコル、ウェブページおよびウェブページの一部分のいずれかを含んでもよい。第2のファイルを受信後、ネットワークアプライアンス209は、後で取得が可能なよう、第2のファイルを格納またはキャッシュしてもよい。いくつかの実施形態において、ネットワークアプライアンス209は、本明細書に記載されたネットワークアプライアンスの機能のいずれかによって該第2のファイルを修正してもよい。
第2の複数のデータシーケンスを含む第2のファイルを受信(ステップ309)後、ネットワークアプライアンスは、複数のエントリを有するハッシュテーブルを生成してもよく、複数のエントリのそれぞれは、第1の複数のシーケンスのそれぞれの1つに対応し、該エントリの少なくとも2つは、重複するデータシーケンスに対応する(ステップ311)。該ハッシュテーブルは、データシーケンスまたはデータシーケンスへの参照をエントリとして格納するための機能性を提供し、次に所与のシーケンスと一致するエントリの該テーブルを効率的に検索する、任意の公知のハッシュテーブルアルゴリズムによって、作成されてもよい。別の実施形態において、ネットワークアプライアンスは、第2のファイルの受信前または受信時(ステップ309)においてハッシュテーブルを作成してもよい(ステップ311)。
いくつかの実施形態において、ハッシュテーブルのエントリは、バイトシーケンスを含む第1のファイルからのデータシーケンスに対応してもよい。バイトシーケンスは任意の長さにしてもよい。一実施形態において、シーケンスは4バイトのシーケンスである。
図示された実施形態において、ハッシュテーブルエントリの少なくとも2つは重複するデータシーケンスに対応する。重複するシーケンスは、共通の任意の数のバイトを有してもよい。例えば、ファイルがシーケンス「abcdefghijklmnop」を含む場合には、重複する4バイトシーケンスの例は、「cdef」および「fghi」に加えて、「cdef」および「defg」を含む。一実施形態において、ハッシュテーブルエントリは、連続する重複するバイトシーケンスに対応する。例えば、ファイルにシーケンス「abcdefg」を含む場合、少なくとも2つの連続する重複する4バイトのシーケンスを含むハッシュテーブルは、シーケンス「abcd」「bcde」「cdef」および「defg」に対応するエントリを含んでもよい。
いくつかの実施形態において、所与の時間におけるハッシュテーブルエントリは、第1のファイルの所与の部分または「ウィンドウ」のデータシーケンスに対応するのみでもよい。これにより、ハッシュテーブルのサイズを、ファイル全体が一度にハッシュされた場合のハッシュテーブルのサイズよりも小さくすることができる。いくつかの実施形態において、第1のファイルの最初のXバイトのみがハッシュされ、そして次に、ある状態が生じると、Y個のエントリがテーブルから取り除かれ、続いてY個よりも多いエントリがテーブルに追加される。一実施形態において、64キロバイトのウィンドウサイズが使用され、特定の状態が生じた場合に、ウィンドウは32キロバイトずつ移動される。この実施形態において、第1のファイルの最初の64キロバイトからのシーケンスがハッシュされ、次に、特定の状態が生じた際に、ファイルの最初の32キロバイトからのシーケンスに対応するエントリが取り除かれ、ファイルの次の32キロバイトからのシーケンスに対応するエントリが追加される。
ハッシュウィンドウが移動する状態は、ハッシュアルゴリズムの実行時間、パフォーマンス、または圧縮が改善される任意の状態にしてもよい。一実施形態において、ウィンドウは、ウィンドウの所与の半分において、シーケンスの85%超の一致が見つかった場合に移動される。別の実施形態において、ウィンドウは、第2のファイルの所与のパーセンテージを既存のハッシュエントリと比較した場合に移動される。一実施形態において、ウィンドウは、ハッシュ値が計算され、第1のファイルと比較される第2のファイルのつりあう部分と比較した場合に移動される。例えば、第1のファイルが100キロバイトであり、第2のファイルが80キロバイトである場合、第2のファイルの80/100*64キロバイトをハッシュテーブルのシーケンスと比較する際に、ハッシュウィンドウを移動してもよい。
ネットワークアプライアンス209がハッシュテーブルを作成した(ステップ311)後、ネットワークアプライアンス209は、次に、該第2の複数のデータシーケンスのハッシュ値を計算してもよい(ステップ313)。該ハッシュ値は、第1の複数のシーケンスのハッシュ値を計算するために使用される同じ方法によって計算してもよい。ネットワークアプライアンス209は、ネットワークアプライアンスが第1のファイルからのデータシーケンスを選択するのと同様に、第2のファイルからのデータシーケンスを選択してもよい。例えば、ネットワークアプライアンス209が第1のファイルからの連続する重複する4バイトのシーケンスに対応するハッシュテーブルエントリを作成する場合、ネットワークアプライアンスは、第2のファイルからの連続する重複する4バイトのシーケンスのハッシュ値を計算するように選択してもよい。
第2の複数のデータシーケンスのいくつかまたは全てのハッシュ値を計算(ステップ313)後、ネットワークアプライアンス209は、第2の複数のデータシーケンスのそれぞれを、両方のファイルに存在するデータシーケンスを判断する(ステップ315)ために、同じハッシュ値を有する第1の複数のシーケンスからのシーケンスと比較してもよい。ネットワークアプライアンスは、現在使用可能な任意のハッシュアルゴリズムによって、このステップを実行してもよい。該比較は、より長い一致を判断するために、一致するシーケンスの後続のバイトの比較を含んでもよい。例えば、第1のファイルはシーケンス「abcdefghijklmno」を含んでもよく、第2のファイルはシーケンス「zyxwvutcdefghituv」を含んでもよい。ハッシングが連続する4バイトのシーケンス上で行われる場合、ネットワークアプライアンス209は、両方のファイルにシーケンス「cdef」が存在することを判断してもよい。ネットワークアプライアンス209は、次に、両方のファイルにシーケンス「cdefghi」が存在することを判断するために、一致するシーケンスの後続のバイトを比較してもよい。このため、いくつかの実施形態において、両方のファイルに存在すると判断されるシーケンスの長さは、ハッシュ値が計算されるシーケンスの長さとは異なってもよい。いくつかの実施形態において、一致するシーケンスの最小および最大長を設定してもよい。
両方のファイルに存在するデータシーケンスを判断した(ステップ315)後、ネットワークアプライアンス209は、第1および第2のファイルの両方に存在する該データシーケンスの長さおよび位置の表示を格納してもよい(ステップ317)。ネットワークアプライアンス209は、キャッシュ、RAM、ディスク、またはテープを含む、任意のストレージ媒体において該表示を格納してもよい。いくつかの実施形態において、ネットワークアプライアンス209は、ネットワークアプライアンス209自体に該表示を格納してもよい。別の実施形態において、ネットワークアプライアンス209は、別のコンピュータデバイス100上に該表示を格納してもよい。いくつかの実施形態において、ネットワークアプライアンス209が、第2の複数のデータシーケンスのそれぞれを同じハッシュ値(ステップ313)を有する第1の複数のシーケンスからのシーケンスと比較しながら、データシーケンスの長さおよび位置を格納してもよい。別の実施形態において、格納される所与のシーケンスの長さおよび位置について、最小長を必要としてもよい。一実施形態において、最小長は、4バイトとなるように指定してもよい。
両方のファイルに存在する該シーケンスの長さおよび位置の表示は、シーケンスの長さおよび位置を識別する任意の表示を含んでもよい。いくつかの実施形態において、該シーケンスの位置は、ファイル内の絶対的な位置として格納される。別の実施形態において、該シーケンスの位置は、該第1のファイル内の所与の参照ポインタに対して相対的な位置として格納される。一実施形態において、該参照ポインタは固定してもよく、別の実施形態において、該参照ポインタはルールセット(rule set)によって移動してもよい。
一実施形態において、参照ポインタは、最初は、第1のファイルの始まりを示すように設定してもよい。ポインタは、次に、5バイトよりも長い一致するシーケンスが見つかるたびに、インクリメントしてもよい。ポインタは、次に、第1のファイルの一致するシーケンスの最後のバイトに1つ加えたバイトを指すようにインクリメントしてもよい。この実施形態において、両方のファイルに存在する該シーケンスの位置は、参照ポインタの位置から正または負の位置の、所与の数のバイトとして格納される。
いくつかの実施形態において、一致するシーケンスの長さおよび位置は、固定した長さ整数(length integer)として格納される。一実施形態において、一致するシーケンスの長さは、1バイトの整数として格納され、ここで整数は、4バイトから1027バイトの間の長さを表す。この実施形態において、一致するシーケンスのバイト長は、4の倍数に制限される。別の実施形態において、該シーケンス長さを格納するために、任意のその他のビットまたはバイト長の整数を使用してもよい。さらに別の実施形態において、最小長および最大長を含み、バイト長を所与の倍数に制限する任意のその他の制限を、一致するシーケンスのバイト長に課してもよい。さらに別の実施形態において、一致するシーケンスの長さは、可変の長さ整数として格納してもよい。いくつかの実施形態において、一致するシーケンスの位置は、変更可能な長さ整数として格納してもよい。別の実施形態において、一致するシーケンスの位置は、所与のバイトまたはビット長の固定した長さ整数として格納される。
ネットワークアプライアンス209が、第1および第2のファイルの両方に存在する該データシーケンスの長さおよび位置の表示を格納(ステップ317)した後、ネットワークアプライアンス209は、第2のファイルからのデータシーケンスと、第1および第2のファイルの両方に存在する該データシーケンスの位置および長さの表示とを含む第3のファイルを作成してもよい。該生成(ステップ317)は、一致するシーケンスの全ての長さおよび位置が格納された後で実行してもよく、または該生成(317)は、一致するシーケンスが見つかると同時に実行してもよい。第3のファイルは、本明細書に記載されている任意のフォーマットの長さおよび位置の表示を含んでもよい。いくつかの実施形態において、共有するシーケンスの長さおよび位置は、特殊バイトまたはビットシーケンスの後にしてもよい。
例えば、第1のファイルがストリング「abcdefghijklmnop」を含み、第2のファイルがストリング「xxxxxxxdefghijkxxxxxxcdefxxx」を含む場合、第3のファイルは、シーケンス「xxxxxxx3,8xxxxxx2,4xxx」を含んでもよい。この例において、3,8は、バイト3で開始し、8バイト長の第1のファイルからのシーケンスを示す表示を表すよう使用される(いくつかの実施形態において、この表示は、2つの固定長の2進整数としてもよい)。同様に、2,4は、バイト2で開始し、4バイト長の第1のファイルからのシーケンスを示す表示を表す。
別の例として、第1のファイルがストリング「abcdefghijklmnop」を含み、第2のファイルがストリング「xxxxxxxdefghijkxxxxxxcdefxxx」を含む場合、第3のファイルは、シーケンス「xxxxxxx3,8xxxxxx−9,4xxx」を含んでもよい。この例において、共有シーケンスの位置は、参照ポインタからの相対的な距離として格納され、上記に記載されている方法によってインクリメントされる。この例において、ネットワークアプライアンス209は、参照ポインタが最初に、第1のファイルの始まりを示すことから、前の例と同様に、第1の一致するシーケンスを示す。参照ポインタはこうして、第1のファイルの一致するシーケンスの最後のバイトに1つ加えたバイトの位置を示すようインクリメントされる。このため、第2の一致するシーケンスは−9,4で示され、これは、第2の一致するシーケンスが、第1のファイルの以前に一致したシーケンスの後のバイトの9バイト前に生じることを示す。
一実施形態において、第3のファイルは、ASCII等のバイトプロトコルに符号化してもよい。一実施形態において、バイナリデータの7バイトの各グループを、8バイトのASCII文字に符号化してもよい。この変換は、任意の公知の変換方法によって行ってもよい。ASCII文字は、ISO−8859−1を含む任意の既存の文字セットの定義に対応してもよい。いくつかの実施形態において、第3のファイルは、HTMLファイルを含んでもよい。一実施形態において、第3のファイルは、第2のファイルからの該データシーケンスと、第1および第2のファイルの両方に存在する該データシーケンスの位置および長さの表示とを含むJava(登録商標)script変数を含んでもよい。一実施形態において、第3のファイルはまた、該Java(登録商標)script変数を処理することによって、該第2のファイルをアセンブルするための機能性を備えるJava(登録商標)script機能を含んでもよい。別の実施形態において、第3のファイルは、該機能性を備えるJava(登録商標)script機能への参照を含んでもよい。
以下のHTMLコード、
<HTML>
<HEAD>
<SCRIPT>
var updateFile = “〜〜〜〜〜 ”

<SCRIPT>
</HEAD>

<BODY onload=createPage( updateFile )>
</BODY>
</HTML>
は、クライアントに伝送され得る第3のファイルの一例を示す。
上記の例において、HTMLファイルは、「updateFile」という名前のJava(登録商標)script変数を含んでいる。該変数は、第2のファイルからのデータシーケンスと、第1および第2のファイルの両方に存在する該データシーケンスの位置および長さの表示とを含んでもよい。上記の例はさらに、「createPage」という名前のJava(登録商標)script機能への呼び出しを含んでいる。HTMLファイルによって含まれてもよく、またはクライアント上に格納されてもよい該機能は、Java(登録商標)script変数「updateFile」からのデータを使用して該第2のファイルのアセンブルのための機能性を備えてもよい。上記の例において、標準的なHTMLブラウザは、HTMLページのローディングの際に「createPage」関数を実行する。「createPage」関数はまた、第2のファイルがアセンブルされると、該第2のファイルを表示するためにHTMLページを変更するための機能性を備えてもよい。
第2のファイルからのデータシーケンスと、第1および第2のファイルの両方に存在する該データシーケンスの位置および長さの表示とを含む第3のファイルの作成(ステップ319)後、ネットワークアプライアンス209は、クライアントに第3のファイルを伝送(ステップ321)してもよい。該伝送は、ネットワークのいずれかによって、および本明細書に記載されている方法によって実行してもよい。ネットワークアプライアンス209は、圧縮、加速および暗号化を含む、ネットワークアプライアンス209によって実行される任意の機能によって、第3のファイルを修正してもよい。
第3のファイルをクライアントに伝送(ステップ321)後、クライアント213は、第3のファイルを受信し(ステップ323)、第2のファイルからのデータシーケンスと、第3のファイルによって示される第1のファイルのシーケンスとを含む第2のファイルを再作成するためにJava(登録商標)script機能を実行し(ステップ325)、第2のファイルを表示してもよい(ステップ327)。クライアント213は、本明細書に記載された実施形態のいずれかによって、こうしたステップを実行してもよい。
次に図4を参照すると、以前に格納されたファイルに対して効率的な更新を作成するための方法の別の実施形態を表す流れ図が示される。概観的に、該方法は、第1のファイルの重複するデータシーケンスに対応するエントリを有するハッシュテーブルを作成する(ステップ311)ことと、該第1のファイルの始まりに参照ポインタを設定する(ステップ401)ことと、第2のファイルのデータシーケンスのハッシュ値を計算する(ステップ313)ことと、両方のファイルに該シーケンスが存在するかどうか判断する(ステップ315)こととを包含する。方法は次に、第2のファイルの次のシーケンスに移動する(ステップ409)ことか、または一致するシーケンスの全体長を判断する(ステップ403)ことのどちらかと、該長さが最小閾値を超えるかどうか判断する(ステップ405)こととを含んでもよい。方法は次に、第2のファイルの次のシーケンスに移動する(ステップ409)ことか、または参照ポインタに対する一致するシーケンスの長さおよび位置を格納する(ステップ317)ことのどちらかを含んでもよい。方法は次に、第1のファイルの一致するシーケンスの最後のバイトに1つ加えたバイトに参照ポインタを設定する(ステップ407)ことと、第2のファイルの次のシーケンスに移動する(ステップ409)こととを含んでもよい。図示された実施形態において、方法は、ネットワークアプライアンス209によって実行してもよい。
引き続き図4を参照し、より詳細に説明すると、ネットワークアプライアンス209は、第1のファイルの重複するデータシーケンスに対応するエントリを有するハッシュテーブルを作成する(ステップ311)。このステップは、本明細書に記載されたハッシュテーブルを作成するための方法のいずれかによって実行してもよい。
第1のファイルの重複するデータシーケンスに対応するエントリを有するハッシュテーブルを作成(ステップ311)後、ネットワークアプライアンス209は、該第1のファイルの始まりへの参照ポインタを設定してもよい(ステップ401)。参照ポインタは、任意の種類のポインタを含んでもよい。
該第1のファイルの始まりへの参照ポインタを設定(ステップ401)後、ネットワークアプライアンス209は、第2のファイルのデータシーケンスのハッシュ値を計算してもよい(ステップ313)。このステップは、本明細書に記載されたハッシュ値を計算する方法のいずれかによって実行してもよい。
第2のファイルのデータシーケンスのハッシュ値を計算(ステップ313)後、ネットワークアプライアンス209は、該シーケンスが両方のファイルに存在するかどうかを判断してもよい(ステップ315)。このステップは、本明細書に記載された方法のいずれかによって実行してもよい。
シーケンスが両方のファイルに存在しない場合、ネットワークアプライアンス209は、第2のファイルの次のシーケンスに移動してもよい(409)。該次のシーケンスは、第2のファイルの所与のシーケンスの後で実行される任意のシーケンスを含んでもよい。一実施形態において、次のシーケンスは、以前のシーケンスの1バイト後から開始するシーケンスとしてもよい。別の実施形態において、次のシーケンスは、以前のシーケンスの後の任意のその他の数のバイトから開始するシーケンスとしてもよい。いくつかの実施形態において、第2のファイルの次のシーケンスへの移動(ステップ409)は、本明細書において上記されたように、ハッシュウィンドウを移動させることによって、付随して起こるようにしてもよい。次のシーケンスが存在しない場合には、方法を終了してもよい。
両方のファイルにシーケンスが存在する場合、ネットワークアプライアンス209は、一致するシーケンスの後続のバイトを比較することによって、一致するシーケンスの全体長を判断してもよい(ステップ403)。全体長は、本明細書に記載された方法のいずれかによって判断してもよい。
ネットワークアプライアンス209は、次に、一致するシーケンスの全体長が所与の閾値を超えるかどうかを判断してもよい(ステップ405)。この判断は、本明細書に記載された方法のいずれかによって行ってもよい。一致するシーケンスの長さが最小閾値を超えない場合、ネットワークアプライアンス209は、第2のファイルの次のシーケンスに移動してもよい。
長さが最小閾値を超える場合、ネットワークアプライアンス209は、次に、本明細書に記載されている方法のいずれかによって、所与の参照ポインタに対する一致するシーケンスの長さおよび位置を格納してもよい。ネットワークアプライアンス209は、次に、本明細書に記載された方法のいずれかによって参照ポインタをインクリメントしてもよい(ステップ407)。ネットワークアプライアンス209は、次に、第2のファイルの次のシーケンスに移動してもよい(ステップ409)。
次に図5を参照すると、以前に格納されたファイルへの更新を効率的に受信する方法の一実施形態が図示されている。概観として、該方法は、アセンブリ機能を受信する(ステップ503)ことと、データシーケンスを含む第1のファイルを受信する(ステップ305)ことと、該第1のファイルを表示することと、該第1のファイルを格納する(ステップ308)ことと、データシーケンスと、第1のファイルのシーケンスの位置および長さの表示とを含む第3のファイルを受信する(ステップ323)ことと、第2のファイルからのデータシーケンスと、第3のファイルによって示される第1のファイルのシーケンスとを含む第2のファイルを作成するために、Java(登録商標)script機能を実行する(ステップ325)ことと、該第2のファイルを表示する(ステップ327)こととを包含する。
引き続き図5を参照し、より詳細に説明すると、ネットワークアプライアンス209は、アセンブリ機能を伝送してもよい。該アセンブリ機能は、第2のファイルからのデータシーケンスと、第1のファイルおよび第2のファイルの両方に存在する該データシーケンスの位置および長さの表示とを含むファイルを使用して、第2のファイルをアセンブリするための任意のコンピュータ読み込み可能なプログラム手段を備えてもよい。該アセンブリ機能は、任意のプログラミング言語、あるいはJava(登録商標)scriptまたはJava(登録商標)を含むスクリプト言語を含んでもよい。いくつかの実施形態において、アセンブリ機能は、本明細書に記載されたその他のネットワークアプライアンス機能のいずれかによって伝送してもよい。一実施形態において、アセンブリ機能は、その他のクライアント側の加速機能性を提供するプログラムに含めてもよい。
図示された実施形態において、ネットワークアプライアンス209がアセンブリ機能を伝送(ステップ501)後、クライアント213は、アセンブリ機能を受信する(ステップ503)。クライアントは、または本明細書に記載されたネットワーク、プロトコル、またはコンピュータデバイスのいずれかを介して、該アセンブリ機能を受信してもよい。いくつかの実施形態において、クライアント213は、ネットワークアプライアンス209からアセンブリ機能を受信する。一実施形態において、アセンブリ機能は、クライアント側の加速プログラムの一部として含めてもよい。別の実施形態において、アセンブリ機能は、ディスクまたはその他のポータブルストレージデバイスを含む、伝送ソフトウェアの任意の手段によって、クライアント213上にインストールしてもよい。
図示された実施形態において、アセンブリ機能を受信(ステップ503)後、クライアント213は、データシーケンスを含む第1のファイルを受信する。図示された実施形態において、クライアント213は、ネットワークアプライアンス209から第1のファイルを受信する。別の実施形態において、クライアント213は、任意のコンピュータデバイスからの第1のファイルを受信してもよい。該ファイルは、本明細書に記載されている任意のファイル種類またはプロトコルを含んでもよい。
クライアント213がデータシーケンスを含む第1のファイルを受信(ステップ305)後、クライアント213は、該第1のファイルを表示してもよい(ステップ307)。このファイルは、所与のファイルに適した任意の方法で表示してもよい。いくつかの実施形態において、ファイルは、ウェブブラウザで表示してもよい。別の実施形態において、ファイルは、ワードプロセッサまたはスプレッドシート等のビジネスアプリケーションで表示してもよい。さらに別の実施形態において、ファイルは、スタンドアロンのアプリケーションを備え、そのようなものとして表示してもよい。いくつかの実施形態において、ファイルは、仮想的なコンピューティング環境で実行するアプリケーションに対応してもよい。一実施形態において、ファイルは、リモートで実行するアプリケーションに対応してもよい。別の実施形態において、ファイルは、ストリーミングアプリケーションに対応してもよい。
クライアント213が該第1のファイルを表示(ステップ307)後、クライアント213は、該第1のファイルを格納してもよい(ステップ308)。クライアント213は、キャッシュ、ディスク、フラッシュメモリ、またはRAMにおける格納を含む、任意のストレージエレメントにおいて第1のファイルを格納してもよい。いくつかの実施形態において、クライアント213は、格納のためにファイルを圧縮してもよい。別の実施形態において、クライアント213は、ファイルの一部分のみを格納してもよい。いくつかの実施形態において、クライアント213は、該第1のファイルのディスプレイ前またはディスプレイ中(ステップ307)に該第1のファイルを格納してもよい(ステップ308)。
クライアント213が該第1のファイルを格納(ステップ308)後、クライアント213は、第3のファイルを受信してもよい(ステップ323)。図示された実施形態において、クライアント213は、ネットワークアプライアンス209から第3のファイルを受信する。別の実施形態において、クライアント213は、任意のコンピュータデバイスから第3のファイルを受信してもよい。該ファイルは、任意のファイル種類または本明細書に記載されているプロトコルを含んでもよい。いくつかの実施形態において、ファイルは、ASCII文字を含んでもよい。別の実施形態において、ファイルは、バイナリデータを含んでもよい。
クライアント213が該第3のファイルを受信(ステップ323)後、クライアントは、第2のファイルをアセンブルするためにJava(登録商標)script機能を実行してもよい(ステップ325)。いくつかの実施形態において、Java(登録商標)script機能は、該第3のファイルに含めてもよい。別の実施形態において、Java(登録商標)script機能は、クライアント213上に既に格納していてもよい。いくつかの実施形態において、Java(登録商標)script機能は、クライアント側の加速プログラム内において提供されてもよい。いくつかの実施形態において、第3のファイルは、クライアント213がJava(登録商標)script機能をダウンロードできる位置へのリンクを含んでもよい。
Java(登録商標)script機能は、任意の技術、または該第2のファイルをアセンブルするために本明細書に記載された任意の技術の逆を実行してもよい。いくつかの実施形態において、Java(登録商標)script機能は、ステップ503で受け取ったアセンブリ機能を備えてもよい。別の実施形態において、Java(登録商標)script機能は、該アセンブリ機能への参照を含んでもよい。さらに別の実施形態において、該Java(登録商標)script機能は、該アセンブリ機能のダウンロードのための手段を備えてもよい。
該第2のファイルをアセンブルするためにJava(登録商標)script機能を実行(ステップ325)後、クライアントは、該第2のファイルを表示してもよい(ステップ327)。ファイルは、ファイルを表示するために本明細書に記載された方法のいずれかによって表示してもよい。
次に図6を参照すると、以前に格納された第1のファイルからの第2のファイル、ならびに、第2のファイルからのデータシーケンスと、第1のファイルおよび第2のファイルの両方に存在するデータシーケンスの位置および長さの表示とを含む第3のファイルをアセンブルする方法の一実施形態が示されている。概観的に、該方法は、第3のファイルからの組のデータを読み込む(ステップ601)ことと、該組のデータが、第1および第2のファイルの両方に存在する該データシーケンスの位置および長さに対応するかどうか判断する(ステップ603)こととを包含する。この方法は次に、該第1のファイルの指定された位置における指定されたバイト長を読み込む(ステップ605)ことと、第2のファイルに該バイトを追加する(ステップ607)ことと、第1のファイルから読み込まれたバイトの最後のバイトに1つ加えたバイトの位置に参照ポインタをインクリメントする(ステップ609)ことと、該第3のファイルから次の組のデータに移動する(ステップ613)こととを含んでもよい。一実施形態において、該方法は、クライアント213によって実行してもよい。別の実施形態において、該方法は、図5に記載されているように、アセンブリ機能によって実行してもよい。
引き続き図6を参照して、より詳細に説明すると、クライアント213は、第1のファイルの始まりに参照ポインタを設定してもよい。これは、本明細書に記載された方法のいずれかによって実行してもよい。
参照ポインタを設定(ステップ601)後、クライアント213は、第3のファイルからの組のデータを読み込んでもよい(ステップ602)。該組のデータは、任意の数のビットまたは該第3のファイルのバイトを含んでもよい。一実施形態において、該組のデータは、次に、メモリエレメントまたはキャッシュに格納してもよい。
該組のデータを読み込み(ステップ602)後、クライアント213は、該組のデータが、第1のファイルのシーケンスの長さおよび位置と対応するかどうかを判断してもよい。一実施形態において、クライアントは、該組のデータが特殊文字またはビットシーケンスを含むかどうか判断してもよい。
該組のデータが第1のファイルのシーケンスの長さおよび位置に対応しない場合、クライアント213は、該組のデータを第2のファイルに追加してもよい(ステップ611)。該追加は、第2のファイルの最後への該組のデータの追加を含んでもよい。クライアント213は次に、第3のファイルから次の組のデータへ移動してもよい(ステップ613)。
該データが第1のファイルのシーケンスの長さおよび位置に対応する場合、クライアント213は次に、第1のファイルの指定された位置に指定された長さのバイトを読み込んでもよい(ステップ605)。クライアントは、本明細書に記載された長さおよび位置の表示のいずれかを認識することによって、指定された長さおよび位置を判断してもよい。一実施形態において、クライアントは、次に、メモリエレメントまたはキャッシュに該指定されたバイトを格納してもよい。
第1のファイルの指定された位置に指定された長さのバイトを読み込んだ後(ステップ605)、クライアント213は、次に、該バイトを第2のファイルに追加してもよい(ステップ607)。該追加は、第2のファイルの最後への該バイトの追加を含んでもよい。
クライアント213は次に、該第1のファイルから読み込んだバイトの最後のバイトに1つ加えたバイトの位置に参照ポインタをインクリメントしてもよい(ステップ609)。これは、本明細書に記載された方法のいずれかによって実行してもよい。クライアント213は、次に、該第3のファイルから次の組のデータに移動してもよい(ステップ613)。
次に図7を参照すると、ファイル伝送方法を判断するための方法の一実施形態を示す。以下の実施形態ではネットワークアプライアンス209によって実行される方法を記載しているが、該方法は、マシンのいずれかまたは上述したマシンの組み合わせによって実行してもよい。概観的に、該方法は、クライアント213からのリソースのリクエストを受信する(ステップ701)ことと、該クライアントの機能のためのリクエストを送信する(ステップ703)ことと、該クライアントの機能を含む情報を受信する(ステップ705)ことと、ファイル伝送方法を判断する(ステップ(707)こととを包含する。
引き続き図7を参照し、より詳細に説明すると、ネットワークアプライアンス209は、クライアントからのリクエストを受信する(ステップ701)。一実施形態において、クライアントからのリクエストの受信(ステップ701)は、クライアントからの直接のリクエストの受信を含む。別の実施形態において、クライアント213からのリクエストは、上述した、ネットワーク、接続、および機器のいずれかから受信してもよい。該リクエストは、上述したプロトコルのいずれかを含んでもよい。いくつかの実施形態において、リクエストは、クライアント213から伝送されるのと全く同じリクエストを含んでもよい。別の実施形態において、リクエストは、クライアント213からの元のリクエストの修正を含んでもよい。該修正は、上述したネットワークアプライアンスサービスのいずれかを提供する間の修正、ならびに、リクエストのコンテンツ、フォーマット、プロトコル、アドレス指定、ヘッダ、またはその他の部分、クライアント213からのリクエスト、または新規リクエストに対する任意のその他の修正を含んでもよい。リクエストは、クライアント213によって直接リクエストされるリソースを含んでもよく、クライアント213の任意のサービスの実行中においてリクエストされるリソースを含んでもよい。
クライアントからリクエストを受信(ステップ701)後、ネットワークアプライアンス209は、該クライアントの機能のリクエストを送信する(ステップ703)。一実施形態において、該リクエストは、クライアント213に送信してもよい。別の実施形態において、リクエストは、その内容が参照によって本明細書中に明示的に組み込まれている、米国特許出願第10/956832号「A METHOD AND APPARATUS FOR ASSIGNING ACCESS CONTROL LEVELS IN PROVIDING ACCESS TO NETWORKED CONTENT FILES」に記載されているように、収集エージェント(collection agent)に送信してもよい。該収集エージェントは、リクエストを送信するネットワークアプライアンスと同じ物理的なマシン上に常駐してもよく、または異なる物理的なマシン上に常駐してもよい。該リクエストは、さらに、ファイル、キャッシュ、データベース、サーバ、実行中のアプリケーション、または任意のその他の、クライアント213に関する情報源に送信してもよい。
クライアントの機能のリクエストを送信(ステップ703)後、ネットワークアプライアンス209は、該クライアント機能を含む情報を受信する(ステップ705)。該情報は、クライアント213、収集エージェント、ファイル、キャッシュ、データベース、サーバ、実行中のアプリケーション、または任意のその他の、クライアント213に関する情報源から受信してもよい。該情報は、限定としてではなく、クライアントノード213のマシンID、オペレーティングシステムの種類、オペレーティングシステムへのパッチの有無、インストールしたネットワークカードのMACアドレス、クライアントデバイス上のデジタルウォーターマーク、Active Directoryにおけるメンバーシップ、ウィルススキャナの有無、パーソナルファイアウォールの有無、HTTPヘッダ、ブラウザの種類、デバイスの種類、ネットワーク接続情報、認可証明書(authorization credential)、および上述したその他の機能または設定のいずれかを備えてもよい。いくつかの実施形態において、ネットワークアプライアンスは、後で取得するために、該情報を格納またはキャッシュしてもよい。
該クライアント機能を含む情報の受信(ステップ705)後、ネットワークアプライアンスは、該クライアント213に対応するファイル伝送方法を判断してもよい(ステップ707)。該判断は、受信した情報のいずれかに基づいて行ってもよい。
いくつかの実施形態において、ネットワークアプライアンス209は、図3に記載されている以前に格納されたファイルへの効率的な更新を作成するための方法によって、ファイルを伝送するために、ステップ705で受信した情報に応答して、判断してもよい。一実施形態において、該判断は、クライアントの213メモリサイズ、接続速度、接続帯域幅、プロセッサ速度、または格納したファイルが以前に存在したかどうかに対応する情報に応答して行ってもよい。
いくつかの実施形態において、ネットワークアプライアンス209は、クライアント213へアセンブリ機能を伝送するために、ステップ705で受信された情報に応答して、判断してもよい。例えば、クライアント213がアセンブリ機能を有していないという情報をネットワークアプライアンス209が受信する場合、およびクライアントがアセンブリ機能を実行するための機能を有すると情報が示す場合、ネットワークアプライアンスはアセンブリ機能をクライアント213に伝送してもよい。いくつかの実施形態において、該アセンブリ機能は、リクエストされたコンテンツファイル、またはネットワークアプライアンス209の機能によって伝送されたその他のファイルを含む、任意のその他のファイルと共に伝送してもよい。いくつかの実施形態において、ネットワークアプライアンスは、複数のアセンブリ機能を有してもよい。例えば、ネットワークアプライアンス209は、異なるコンピューティング環境、オペレーティングシステム、およびハードウェア構成のために最適化した多数のアセンブリ機能を有してもよい。ネットワークアプライアンスは次に、ステップ705で受信された情報に応答して、クライアント213にどのアセンブリ機能を伝送するか判断してもよい。
本発明は、特定の好適な実施形態を参照して、特に示され、記載されているが、添付の特許請求の範囲に定義されているように、本発明の精神および範囲から逸脱しない限り、形式および詳細における種々の変更を行ってもよいことが、当業者には理解されるであろう。

Claims (26)

  1. 以前に格納されたファイルに対する効率的な更新を作成するための方法であって、該方法は、
    (a)第1の複数のデータシーケンスを含む第1のファイルを受信するステップと、
    (b)第2の複数のデータシーケンスを含む第2のファイルを受信するステップと、
    (c)複数のエントリを有するハッシュテーブルを作成するステップであって、該複数のエントリのそれぞれは、該第1の複数のシーケンスのそれぞれの1つに対応し、該エントリの少なくとも2つは、重複するデータシーケンスに対応する、ステップと、
    (d)該第2の複数のデータシーケンスに対してハッシュ値を計算するステップと、
    (e)両方のファイルに存在するデータシーケンスを判断するために、該第2の複数のデータシーケンスのそれぞれを同じハッシュ値を有する該第1の複数のシーケンスからのシーケンスと比較するステップと、
    (f)該第1のファイルおよび該第2のファイルの両方に存在する該データシーケンスの長さおよび位置の表示を格納するステップと、
    (g)該第2のファイルからのデータシーケンスと、該第1のファイルおよび該第2のファイルの両方に存在する該データシーケンスの位置および長さの表示とを含む第3のファイルを作成するステップと
    を包含する、方法。
  2. 前記ステップ(c)は、前記第1のファイル内の連続かつ重複するバイトシーケンスに対応するエントリを有するハッシュテーブルを作成するステップを包含する、請求項1に記載の方法。
  3. 前記ステップ(c)は、前記第1のファイル内の4バイト長の連続かつ重複するシーケンスに対応するエントリを有するハッシュテーブルを作成するステップを包含する、請求項1に記載の方法。
  4. 前記ステップ(c)は、前記第1のファイルの所与のNバイトを網羅するウィンドウ内のデータシーケンスに対応するエントリを有するハッシュテーブルを作成するステップを包含する、請求項1に記載の方法。
  5. 前記ステップ(d)は、
    (i)前記第2のファイル内の所与のデータシーケンスに対してハッシュ値を計算するステップと、
    (ii)該ハッシュ値に対応するエントリに対して前記ハッシュテーブルを確認するステップと、
    (iii)該第2のファイルからの該データシーケンスを該ハッシュテーブルエントリに対応する前記第1のファイルのデータシーケンスと比較するステップと、
    (iv)該第1のファイルおよび該第2のファイルの両方に存在するシーケンスの全体の長さを判断するために、該第2のファイルからの該シーケンスの後のバイトを該第1のファイル内の該シーケンスの後のバイトと比較するステップと
    を包含する、請求項1に記載の方法。
  6. 前記ステップ(g)は、前記第2のファイルからのデータシーケンスと、前記第1のファイルおよび該第2のファイルの両方に存在するシーケンスの位置および長さの表示とを含む第3のファイルを作成するステップを包含し、該位置は、該第1のページの位置からの相対的な距離として表示される、請求項1に記載の方法。
  7. 前記ステップ(g)は、前記第2のファイルからのデータシーケンスと、前記第1のファイルおよび該第2のファイルの両方に存在するシーケンスの位置および長さの表示とを含む第3のファイルを作成するステップを包含し、該第3のファイルは、バイト符号化プロトコルを使用してバイトシーケンスに変換される、請求項1に記載の方法。
  8. (h)前記第3のファイルをクライアントに伝送するステップ
    をさらに包含する、請求項1に記載の方法。
  9. 前記ステップ(h)は、HTTPを介して前記第3のファイルをクライアントに伝送するステップを包含する、請求項8に記載の方法。
  10. 前記ステップ(h)は、Java(登録商標)script変数を介して前記第3のファイルをクライアントに伝送するステップを包含する、請求項8に記載の方法。
  11. 前記ステップ(h)は、前記第2のファイルへと再アセンブリするために、前記第3のファイルをクライアントに伝送するステップを包含する、請求項8に記載の方法。
  12. 以前に格納されたファイルへの更新を効率良く受信するための方法であって、該方法は、
    (a)データシーケンスを含む第1のファイルを受信するステップと、
    (b)データシーケンスと、該第1のファイル内のシーケンスの位置および長さの表示とを含む第2のファイルを受信するステップと、
    (c)該第2のファイルからのデータシーケンスと、該第2のファイルによって示される該第1のファイル内のシーケンスとを含む第3のファイルを作成するために、Java(登録商標)script機能を実行するステップと
    を包含する、方法。
  13. 前記第2のファイルは、データシーケンスと、前記第1のファイル内のシーケンスの位置および長さの表示とを含むJava(登録商標)script変数を含む、請求項12に記載の方法。
  14. 前記ステップ(b)は、データシーケンスと、前記第1のファイル内のシーケンスの位置および長さの表示とを含む第2のファイルを受信するステップを包含し、該位置は、該第1のファイル内の位置からの相対的な差分として表示される、請求項12に記載の方法。
  15. 前記ステップ(c)は、
    (i)当初は前記第1のファイルの始まりを示す参照ポインタを維持するステップと、
    (ii)参照ポインタからの該第1のファイル内のシーケンスの距離を示す受信した情報に基づいて該第1のファイルからのシーケンスを識別するステップと、
    (iii)該第1のファイル内のシーケンスの最後のバイトに1つ加えたバイトを示すように該参照ポインタを設定するステップと
    を包含する、請求項14に記載の方法。
  16. 以前に格納されたファイルへの効率的な更新を作成するためのコンピュータシステムであって、該システムは、
    第1のファイルおよび第2のファイルを受信するトランシーバであって、各ファイルは、複数のデータシーケンスのそれぞれを含む、トランシーバと、
    該トランシーバと通信し、該第1のファイルおよび該第2のファイル内のデータシーケンスに対してハッシュ値を計算するハッシュエンジンであって、該シーケンスの少なくとも2つが重複し、該第1のファイルおよび該第2のファイルの両方に存在するデータシーケンスを判断する、ハッシュエンジンと、
    該ハッシュエンジンと通信し、該第1のファイルおよび該第2のファイルの両方に存在する該シーケンスの長さおよび位置の表示を格納するストレージエレメントと、
    該ストレージエレメントと通信し、該第2のファイルからのデータシーケンスと、両方のファイルに存在する該シーケンスの長さおよび位置の表示とを含む第3のファイルを作成するプロセッサと
    を備える、コンピュータシステム。
  17. 前記ハッシュエンジンは、前記第1のファイル内の連続かつ重複するバイトシーケンスに対してハッシュ値を計算する、請求項16に記載のコンピュータシステム。
  18. 前記ハッシュエンジンは、前記第1のファイル内の4バイト長の連続かつ重複するシーケンスに対してハッシュ値を計算する、請求項16に記載のコンピュータシステム。
  19. 前記ハッシュエンジンは、前記第1のファイルの所与のNバイトを網羅するウィンドウ内のデータシーケンスに対してハッシュ値を計算する、請求項16に記載のコンピュータシステム。
  20. 前記ハッシュエンジンは、前記第1のファイルおよび前記第2のファイルの両方に存在するデータシーケンスの全体の長さを判断するために、該第1のファイルおよび該第2のファイルの両方に存在するシーケンスの後のバイトを比較する、請求項16に記載のコンピュータシステム。
  21. 前記プロセッサは、前記第2のファイルからのデータシーケンスと、前記第1のファイル内のデータシーケンスの位置および長さの表示とを含む第3のファイルを作成し、該位置は、参照ポインタから該第1のファイルへの相対的な距離として表示される、請求項16に記載のコンピュータシステム。
  22. 前記プロセッサは、前記生成された第3のファイルをバイトストリームに変換する、請求項16に記載のコンピュータシステム。
  23. 前記コンピュータシステムは、前記第3のファイルをクライアントに伝送するためのトランスミッタをさらに備える、請求項16に記載のコンピュータシステム。
  24. 前記トランスミッタは、HTTPを介して前記第3のファイルをクライアントに伝送する、請求項23に記載のコンピュータシステム。
  25. 前記トランスミッタは、Java(登録商標)script変数を介して前記第3のファイルをクライアントに伝送する、請求項24に記載のコンピュータシステム。
  26. 前記トランスミッタは、前記第2のファイルへと再アセンブリするために、前記第3のファイルをクライアントに伝送する、請求項24に記載のコンピュータシステム。
JP2009518571A 2006-06-30 2007-06-29 以前に格納されたコンテンツの効率的な配信のための方法およびシステム Withdrawn JP2009543227A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/428,058 US7756826B2 (en) 2006-06-30 2006-06-30 Method and systems for efficient delivery of previously stored content
PCT/US2007/072490 WO2008005840A2 (en) 2006-06-30 2007-06-29 Method and systems for efficient delivery of previously stored content

Publications (1)

Publication Number Publication Date
JP2009543227A true JP2009543227A (ja) 2009-12-03

Family

ID=38878037

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009518571A Withdrawn JP2009543227A (ja) 2006-06-30 2007-06-29 以前に格納されたコンテンツの効率的な配信のための方法およびシステム

Country Status (11)

Country Link
US (2) US7756826B2 (ja)
EP (1) EP2044755B1 (ja)
JP (1) JP2009543227A (ja)
KR (1) KR20090034321A (ja)
CN (1) CN101485174B (ja)
AU (1) AU2007269315B2 (ja)
BR (1) BRPI0713874A2 (ja)
CA (1) CA2655020A1 (ja)
HK (1) HK1128840A1 (ja)
IL (1) IL196034A0 (ja)
WO (1) WO2008005840A2 (ja)

Families Citing this family (166)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9275052B2 (en) 2005-01-19 2016-03-01 Amazon Technologies, Inc. Providing annotations of a digital work
US9672533B1 (en) 2006-09-29 2017-06-06 Amazon Technologies, Inc. Acquisition of an item based on a catalog presentation of items
US8725565B1 (en) 2006-09-29 2014-05-13 Amazon Technologies, Inc. Expedited acquisition of a digital item following a sample presentation of the item
US7865817B2 (en) 2006-12-29 2011-01-04 Amazon Technologies, Inc. Invariant referencing in digital works
US9665529B1 (en) 2007-03-29 2017-05-30 Amazon Technologies, Inc. Relative progress and event indicators
US7716224B2 (en) 2007-03-29 2010-05-11 Amazon Technologies, Inc. Search and indexing on a user device
US8990215B1 (en) 2007-05-21 2015-03-24 Amazon Technologies, Inc. Obtaining and verifying search indices
US20080307233A1 (en) * 2007-06-09 2008-12-11 Bank Of America Corporation Encoded Data Security Mechanism
JP2009027400A (ja) * 2007-07-19 2009-02-05 Alaxala Networks Corp 過大フロー検出装置、過大フロー検出回路、端末装置及びネットワークノード
US8683458B2 (en) * 2007-11-30 2014-03-25 Red Hat, Inc. Automatic full install upgrade of a network appliance
US20090287986A1 (en) * 2008-05-14 2009-11-19 Ab Initio Software Corporation Managing storage of individually accessible data units
US8418164B2 (en) 2008-05-29 2013-04-09 Red Hat, Inc. Image install of a network appliance
US8429444B2 (en) * 2008-12-18 2013-04-23 Scality, S.A. Multipurpose storage system based upon a distributed hashing mechanism with transactional support and failover capability
US9087032B1 (en) 2009-01-26 2015-07-21 Amazon Technologies, Inc. Aggregation of highlights
US8832584B1 (en) 2009-03-31 2014-09-09 Amazon Technologies, Inc. Questions on highlighted passages
US8692763B1 (en) 2009-09-28 2014-04-08 John T. Kim Last screen rendering for electronic book reader
US9054913B1 (en) 2009-11-30 2015-06-09 Dell Software Inc. Network protocol proxy
US8533299B2 (en) * 2010-04-19 2013-09-10 Microsoft Corporation Locator table and client library for datacenters
US8370305B2 (en) * 2010-04-19 2013-02-05 Greenbytes, Inc., A Rhode Island Corporation Method of minimizing the amount of network bandwidth needed to copy data between data deduplication storage systems
US9454441B2 (en) * 2010-04-19 2016-09-27 Microsoft Technology Licensing, Llc Data layout for recovery and durability
US9813529B2 (en) 2011-04-28 2017-11-07 Microsoft Technology Licensing, Llc Effective circuits in packet-switched networks
US8438244B2 (en) 2010-04-19 2013-05-07 Microsoft Corporation Bandwidth-proportioned datacenters
US9170892B2 (en) 2010-04-19 2015-10-27 Microsoft Technology Licensing, Llc Server failure recovery
US8447833B2 (en) 2010-04-19 2013-05-21 Microsoft Corporation Reading and writing during cluster growth phase
US8996611B2 (en) 2011-01-31 2015-03-31 Microsoft Technology Licensing, Llc Parallel serialization of request processing
US8745064B2 (en) * 2010-09-13 2014-06-03 Lumension Security, Inc. Systems and methods for operating a saturated hash table
US9495322B1 (en) 2010-09-21 2016-11-15 Amazon Technologies, Inc. Cover display
US8843502B2 (en) 2011-06-24 2014-09-23 Microsoft Corporation Sorting a dataset of incrementally received data
US9158741B1 (en) 2011-10-28 2015-10-13 Amazon Technologies, Inc. Indicators for navigating digital works
US9736121B2 (en) 2012-07-16 2017-08-15 Owl Cyber Defense Solutions, Llc File manifest filter for unidirectional transfer of files
US9778856B2 (en) 2012-08-30 2017-10-03 Microsoft Technology Licensing, Llc Block-level access to parallel storage
US10218586B2 (en) 2013-01-23 2019-02-26 Owl Cyber Defense Solutions, Llc System and method for enabling the capture and securing of dynamically selected digital information
US8776254B1 (en) 2013-01-23 2014-07-08 Owl Computing Technologies, Inc. System and method for the secure unidirectional transfer of software and software updates
US9306953B2 (en) 2013-02-19 2016-04-05 Owl Computing Technologies, Inc. System and method for secure unidirectional transfer of commands to control equipment
US11422907B2 (en) 2013-08-19 2022-08-23 Microsoft Technology Licensing, Llc Disconnected operation for systems utilizing cloud storage
US9798631B2 (en) 2014-02-04 2017-10-24 Microsoft Technology Licensing, Llc Block storage by decoupling ordering from durability
US9304766B2 (en) * 2014-02-21 2016-04-05 Red Hat Israel, Ltd. Determining character sequence digest
US9311329B2 (en) 2014-06-05 2016-04-12 Owl Computing Technologies, Inc. System and method for modular and continuous data assurance
US10282228B2 (en) * 2014-06-26 2019-05-07 Amazon Technologies, Inc. Log-based transaction constraint management
US20220164840A1 (en) 2016-04-01 2022-05-26 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US11004125B2 (en) 2016-04-01 2021-05-11 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US11244367B2 (en) 2016-04-01 2022-02-08 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US11210420B2 (en) 2016-06-10 2021-12-28 OneTrust, LLC Data subject access request processing systems and related methods
US11562097B2 (en) 2016-06-10 2023-01-24 OneTrust, LLC Data processing systems for central consent repository and related methods
US11038925B2 (en) 2016-06-10 2021-06-15 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11200341B2 (en) 2016-06-10 2021-12-14 OneTrust, LLC Consent receipt management systems and related methods
US10997318B2 (en) 2016-06-10 2021-05-04 OneTrust, LLC Data processing systems for generating and populating a data inventory for processing data access requests
US11418492B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for using a data model to select a target data asset in a data migration
US11227247B2 (en) 2016-06-10 2022-01-18 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US10169609B1 (en) 2016-06-10 2019-01-01 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11100444B2 (en) 2016-06-10 2021-08-24 OneTrust, LLC Data processing systems and methods for providing training in a vendor procurement process
US10846433B2 (en) 2016-06-10 2020-11-24 OneTrust, LLC Data processing consent management systems and related methods
US11023842B2 (en) 2016-06-10 2021-06-01 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US11188862B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Privacy management systems and methods
US11520928B2 (en) 2016-06-10 2022-12-06 OneTrust, LLC Data processing systems for generating personal data receipts and related methods
US10685140B2 (en) 2016-06-10 2020-06-16 OneTrust, LLC Consent receipt management systems and related methods
US11301796B2 (en) 2016-06-10 2022-04-12 OneTrust, LLC Data processing systems and methods for customizing privacy training
US11341447B2 (en) 2016-06-10 2022-05-24 OneTrust, LLC Privacy management systems and methods
US11277448B2 (en) 2016-06-10 2022-03-15 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11294939B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US10796260B2 (en) 2016-06-10 2020-10-06 OneTrust, LLC Privacy management systems and methods
US10592648B2 (en) 2016-06-10 2020-03-17 OneTrust, LLC Consent receipt management systems and related methods
US10909265B2 (en) 2016-06-10 2021-02-02 OneTrust, LLC Application privacy scanning systems and related methods
US10282559B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US11222309B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11636171B2 (en) 2016-06-10 2023-04-25 OneTrust, LLC Data processing user interface monitoring systems and related methods
US11651106B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11134086B2 (en) 2016-06-10 2021-09-28 OneTrust, LLC Consent conversion optimization systems and related methods
US11366909B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11087260B2 (en) 2016-06-10 2021-08-10 OneTrust, LLC Data processing systems and methods for customizing privacy training
US11651104B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Consent receipt management systems and related methods
US10592692B2 (en) 2016-06-10 2020-03-17 OneTrust, LLC Data processing systems for central consent repository and related methods
US11416589B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10607028B2 (en) 2016-06-10 2020-03-31 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US10803200B2 (en) 2016-06-10 2020-10-13 OneTrust, LLC Data processing systems for processing and managing data subject access in a distributed environment
US11544667B2 (en) 2016-06-10 2023-01-03 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11146566B2 (en) 2016-06-10 2021-10-12 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11403377B2 (en) 2016-06-10 2022-08-02 OneTrust, LLC Privacy management systems and methods
US10284604B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing and scanning systems for generating and populating a data inventory
US11138242B2 (en) 2016-06-10 2021-10-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US11222142B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for validating authorization for personal data collection, storage, and processing
US11228620B2 (en) 2016-06-10 2022-01-18 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11438386B2 (en) 2016-06-10 2022-09-06 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11188615B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Data processing consent capture systems and related methods
US11354434B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US10839102B2 (en) 2016-06-10 2020-11-17 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US10565236B1 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11343284B2 (en) 2016-06-10 2022-05-24 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US11416590B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11157600B2 (en) 2016-06-10 2021-10-26 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10318761B2 (en) 2016-06-10 2019-06-11 OneTrust, LLC Data processing systems and methods for auditing data request compliance
US11295316B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems for identity validation for consumer rights requests and related methods
US10944725B2 (en) 2016-06-10 2021-03-09 OneTrust, LLC Data processing systems and methods for using a data model to select a target data asset in a data migration
US10503926B2 (en) 2016-06-10 2019-12-10 OneTrust, LLC Consent receipt management systems and related methods
US10885485B2 (en) 2016-06-10 2021-01-05 OneTrust, LLC Privacy management systems and methods
US11586700B2 (en) 2016-06-10 2023-02-21 OneTrust, LLC Data processing systems and methods for automatically blocking the use of tracking tools
US11366786B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing systems for processing data subject access requests
US11025675B2 (en) 2016-06-10 2021-06-01 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US10997315B2 (en) 2016-06-10 2021-05-04 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10678945B2 (en) 2016-06-10 2020-06-09 OneTrust, LLC Consent receipt management systems and related methods
US10510031B2 (en) 2016-06-10 2019-12-17 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US11057356B2 (en) 2016-06-10 2021-07-06 OneTrust, LLC Automated data processing systems and methods for automatically processing data subject access requests using a chatbot
US11151233B2 (en) 2016-06-10 2021-10-19 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11074367B2 (en) 2016-06-10 2021-07-27 OneTrust, LLC Data processing systems for identity validation for consumer rights requests and related methods
US11138299B2 (en) 2016-06-10 2021-10-05 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10467432B2 (en) 2016-06-10 2019-11-05 OneTrust, LLC Data processing systems for use in automatically generating, populating, and submitting data subject access requests
US11144622B2 (en) 2016-06-10 2021-10-12 OneTrust, LLC Privacy management systems and methods
US11461500B2 (en) 2016-06-10 2022-10-04 OneTrust, LLC Data processing systems for cookie compliance testing with website scanning and related methods
US10949565B2 (en) 2016-06-10 2021-03-16 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10909488B2 (en) 2016-06-10 2021-02-02 OneTrust, LLC Data processing systems for assessing readiness for responding to privacy-related incidents
US11675929B2 (en) 2016-06-10 2023-06-13 OneTrust, LLC Data processing consent sharing systems and related methods
US10878127B2 (en) 2016-06-10 2020-12-29 OneTrust, LLC Data subject access request processing systems and related methods
US11238390B2 (en) 2016-06-10 2022-02-01 OneTrust, LLC Privacy management systems and methods
US10896394B2 (en) 2016-06-10 2021-01-19 OneTrust, LLC Privacy management systems and methods
US11625502B2 (en) 2016-06-10 2023-04-11 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US10873606B2 (en) * 2016-06-10 2020-12-22 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11392720B2 (en) 2016-06-10 2022-07-19 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US11416798B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for providing training in a vendor procurement process
US10740487B2 (en) 2016-06-10 2020-08-11 OneTrust, LLC Data processing systems and methods for populating and maintaining a centralized database of personal data
US11354435B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US11475136B2 (en) 2016-06-10 2022-10-18 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US11481710B2 (en) 2016-06-10 2022-10-25 OneTrust, LLC Privacy management systems and methods
US10783256B2 (en) 2016-06-10 2020-09-22 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US11727141B2 (en) 2016-06-10 2023-08-15 OneTrust, LLC Data processing systems and methods for synching privacy-related user consent across multiple computing devices
US11328092B2 (en) 2016-06-10 2022-05-10 OneTrust, LLC Data processing systems for processing and managing data subject access in a distributed environment
US11416109B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Automated data processing systems and methods for automatically processing data subject access requests using a chatbot
US10565161B2 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for processing data subject access requests
US11222139B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems and methods for automatic discovery and assessment of mobile software development kits
US10853501B2 (en) 2016-06-10 2020-12-01 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10606916B2 (en) 2016-06-10 2020-03-31 OneTrust, LLC Data processing user interface monitoring systems and related methods
US11336697B2 (en) 2016-06-10 2022-05-17 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10892964B2 (en) 2019-02-25 2021-01-12 Zscaler, Inc. Systems and methods for monitoring digital user experience
US11863409B2 (en) 2019-02-25 2024-01-02 Zscaler, Inc. Systems and methods for alerting administrators of a monitored digital user experience
US10938686B2 (en) 2019-02-25 2021-03-02 Zscaler, Inc. Systems and methods for analyzing digital user experience
US11811623B2 (en) 2016-10-26 2023-11-07 Zscaler, Inc. Deep tracing of user experience
US10728117B1 (en) 2019-02-25 2020-07-28 Zscaler, Inc. Systems and methods for improving digital user experience
US10013577B1 (en) 2017-06-16 2018-07-03 OneTrust, LLC Data processing systems for identifying whether cookies contain personally identifying information
US11544409B2 (en) 2018-09-07 2023-01-03 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
US11144675B2 (en) 2018-09-07 2021-10-12 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
US10803202B2 (en) 2018-09-07 2020-10-13 OneTrust, LLC Data processing systems for orphaned data identification and deletion and related methods
CN110362615A (zh) * 2019-05-09 2019-10-22 中国航空工业集团公司西安航空计算技术研究所 面向具有复杂接口的多对象智能数据表驱动方法及装置
US10972370B1 (en) 2020-01-10 2021-04-06 Zscaler, Inc. Monitoring and analysis of cloud-based applications
US11544410B2 (en) 2020-01-10 2023-01-03 Zscaler, Inc. Secure access to third-party cloud-based applications
US11822522B2 (en) * 2020-01-31 2023-11-21 EMC IP Holding Company LLC Intelligent filesystem for container images
US11797528B2 (en) 2020-07-08 2023-10-24 OneTrust, LLC Systems and methods for targeted data discovery
EP4189569A1 (en) 2020-07-28 2023-06-07 OneTrust LLC Systems and methods for automatically blocking the use of tracking tools
US11475165B2 (en) 2020-08-06 2022-10-18 OneTrust, LLC Data processing systems and methods for automatically redacting unstructured data from a data subject access request
US11436373B2 (en) 2020-09-15 2022-09-06 OneTrust, LLC Data processing systems and methods for detecting tools for the automatic blocking of consent requests
US20230334158A1 (en) 2020-09-21 2023-10-19 OneTrust, LLC Data processing systems and methods for automatically detecting target data transfers and target data processing
US11418588B2 (en) 2020-09-29 2022-08-16 EMC IP Holding Company LLC Intelligent peer-to-peer container filesystem
US11397819B2 (en) 2020-11-06 2022-07-26 OneTrust, LLC Systems and methods for identifying data processing activities based on data discovery results
US11811633B2 (en) 2021-01-14 2023-11-07 Zscaler, Inc. Traceroutes through external proxies
US11863415B2 (en) 2021-01-14 2024-01-02 Zscaler, Inc. Determining endpoint and application behavior for monitoring user experience
US11687528B2 (en) 2021-01-25 2023-06-27 OneTrust, LLC Systems and methods for discovery, classification, and indexing of data in a native computing system
US11442906B2 (en) 2021-02-04 2022-09-13 OneTrust, LLC Managing custom attributes for domain objects defined within microservices
US11494515B2 (en) 2021-02-08 2022-11-08 OneTrust, LLC Data processing systems and methods for anonymizing data samples in classification analysis
US11601464B2 (en) 2021-02-10 2023-03-07 OneTrust, LLC Systems and methods for mitigating risks of third-party computing system functionality integration into a first-party computing system
WO2022178089A1 (en) 2021-02-17 2022-08-25 OneTrust, LLC Managing custom workflows for domain objects defined within microservices
US11546661B2 (en) 2021-02-18 2023-01-03 OneTrust, LLC Selective redaction of media content
US11533315B2 (en) 2021-03-08 2022-12-20 OneTrust, LLC Data transfer discovery and analysis systems and related methods
US11562078B2 (en) 2021-04-16 2023-01-24 OneTrust, LLC Assessing and managing computational risk involved with integrating third party computing functionality within a computing system
US11502908B1 (en) 2021-06-02 2022-11-15 Zscaler, Inc. Geo tagging for advanced analytics and policy enforcement on remote devices
US11863391B2 (en) 2021-06-04 2024-01-02 Zscaler, Inc. Distributed telemetry and policy gateway in the cloud for remote devices
US11582294B2 (en) 2021-06-04 2023-02-14 Zscaler, Inc. Highly scalable RESTful framework
US11329905B1 (en) 2021-08-19 2022-05-10 Zscaler, Inc. Distributed adaptive probability for population selection of remote devices in a network
US11620142B1 (en) 2022-06-03 2023-04-04 OneTrust, LLC Generating and customizing user interfaces for demonstrating functions of interactive user environments

Family Cites Families (121)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6816872B1 (en) 1990-04-26 2004-11-09 Timespring Software Corporation Apparatus and method for reconstructing a file from a difference signature and an original file
US6206829B1 (en) 1996-07-12 2001-03-27 First Opinion Corporation Computerized medical diagnostic and treatment advice system including network access
US6022315A (en) * 1993-12-29 2000-02-08 First Opinion Corporation Computerized medical diagnostic and treatment advice system including network access
US5694546A (en) 1994-05-31 1997-12-02 Reisman; Richard R. System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list
EP0770246A4 (en) 1994-07-14 1998-01-14 Johnson Grace Company METHOD AND APPARATUS FOR COMPRESSING IMAGES
US6948070B1 (en) 1995-02-13 2005-09-20 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
US5905492A (en) * 1996-12-06 1999-05-18 Microsoft Corporation Dynamically updating themes for an operating system shell
US6130726A (en) * 1997-03-24 2000-10-10 Evolve Products, Inc. Program guide on a remote control display
US6173287B1 (en) 1998-03-11 2001-01-09 Digital Equipment Corporation Technique for ranking multimedia annotations of interest
US6993004B2 (en) * 1998-10-29 2006-01-31 Sound Starts, Inc. Method and apparatus for practicing IP telephony from an Internet-capable radio
US6314094B1 (en) * 1998-10-29 2001-11-06 Central Coast Patent Agency Inc Mobile wireless internet portable radio
US6550012B1 (en) 1998-12-11 2003-04-15 Network Associates, Inc. Active firewall system and methodology
US6424979B1 (en) * 1998-12-30 2002-07-23 American Management Systems, Inc. System for presenting and managing enterprise architectures
US6292792B1 (en) 1999-03-26 2001-09-18 Intelligent Learning Systems, Inc. System and method for dynamic knowledge generation and distribution
US7165041B1 (en) 1999-05-27 2007-01-16 Accenture, Llp Web-based architecture sales tool
US6473794B1 (en) 1999-05-27 2002-10-29 Accenture Llp System for establishing plan to test components of web based framework by displaying pictorial representation and conveying indicia coded components of existing network framework
US6721713B1 (en) 1999-05-27 2004-04-13 Andersen Consulting Llp Business alliance identification in a web architecture framework
US6536037B1 (en) 1999-05-27 2003-03-18 Accenture Llp Identification of redundancies and omissions among components of a web based architecture
US6615166B1 (en) 1999-05-27 2003-09-02 Accenture Llp Prioritizing components of a network framework required for implementation of technology
US6957186B1 (en) 1999-05-27 2005-10-18 Accenture Llp System method and article of manufacture for building, managing, and supporting various components of a system
US6519571B1 (en) 1999-05-27 2003-02-11 Accenture Llp Dynamic customer profile management
US6792086B1 (en) * 1999-08-24 2004-09-14 Microstrategy, Inc. Voice network access provider system and method
US6434628B1 (en) * 1999-08-31 2002-08-13 Accenture Llp Common interface for handling exception interface name with additional prefix and suffix for handling exceptions in environment services patterns
US6434568B1 (en) * 1999-08-31 2002-08-13 Accenture Llp Information services patterns in a netcentric environment
US6742015B1 (en) * 1999-08-31 2004-05-25 Accenture Llp Base services patterns in a netcentric environment
US6496850B1 (en) 1999-08-31 2002-12-17 Accenture Llp Clean-up of orphaned server contexts
US6636242B2 (en) * 1999-08-31 2003-10-21 Accenture Llp View configurer in a presentation services patterns environment
US6549949B1 (en) * 1999-08-31 2003-04-15 Accenture Llp Fixed format stream in a communication services patterns environment
US6842906B1 (en) * 1999-08-31 2005-01-11 Accenture Llp System and method for a refreshable proxy pool in a communication services patterns environment
US6502213B1 (en) * 1999-08-31 2002-12-31 Accenture Llp System, method, and article of manufacture for a polymorphic exception handler in environment services patterns
US6640249B1 (en) * 1999-08-31 2003-10-28 Accenture Llp Presentation services patterns in a netcentric environment
US6578068B1 (en) * 1999-08-31 2003-06-10 Accenture Llp Load balancer in environment services patterns
US6529948B1 (en) * 1999-08-31 2003-03-04 Accenture Llp Multi-object fetch component
US6339832B1 (en) * 1999-08-31 2002-01-15 Accenture Llp Exception response table in environment services patterns
US6289382B1 (en) * 1999-08-31 2001-09-11 Andersen Consulting, Llp System, method and article of manufacture for a globally addressable interface in a communication services patterns environment
US6477665B1 (en) * 1999-08-31 2002-11-05 Accenture Llp System, method, and article of manufacture for environment services patterns in a netcentic environment
US6601192B1 (en) * 1999-08-31 2003-07-29 Accenture Llp Assertion component in environment services patterns
US6571282B1 (en) * 1999-08-31 2003-05-27 Accenture Llp Block-based communication in a communication services patterns environment
US6539396B1 (en) * 1999-08-31 2003-03-25 Accenture Llp Multi-object identifier system and method for information service pattern environment
US6601234B1 (en) * 1999-08-31 2003-07-29 Accenture Llp Attribute dictionary in a business logic services environment
US6477580B1 (en) * 1999-08-31 2002-11-05 Accenture Llp Self-described stream in a communication services patterns environment
US6529909B1 (en) * 1999-08-31 2003-03-04 Accenture Llp Method for translating an object attribute converter in an information services patterns environment
US6550057B1 (en) * 1999-08-31 2003-04-15 Accenture Llp Piecemeal retrieval in an information services patterns environment
US6606660B1 (en) * 1999-08-31 2003-08-12 Accenture Llp Stream-based communication in a communication services patterns environment
US6442748B1 (en) * 1999-08-31 2002-08-27 Accenture Llp System, method and article of manufacture for a persistent state and persistent object separator in an information services patterns environment
US6715145B1 (en) * 1999-08-31 2004-03-30 Accenture Llp Processing pipeline in a base services pattern environment
US6615253B1 (en) * 1999-08-31 2003-09-02 Accenture Llp Efficient server side data retrieval for execution of client side applications
US6640238B1 (en) * 1999-08-31 2003-10-28 Accenture Llp Activity component in a presentation services patterns environment
US6438594B1 (en) * 1999-08-31 2002-08-20 Accenture Llp Delivering service to a client via a locally addressable interface
US6640244B1 (en) * 1999-08-31 2003-10-28 Accenture Llp Request batcher in a transaction services patterns environment
US6615199B1 (en) * 1999-08-31 2003-09-02 Accenture, Llp Abstraction factory in a base services pattern environment
US6332163B1 (en) * 1999-09-01 2001-12-18 Accenture, Llp Method for providing communication services over a computer network system
US7610289B2 (en) * 2000-10-04 2009-10-27 Google Inc. System and method for monitoring and analyzing internet traffic
US6792458B1 (en) * 1999-10-04 2004-09-14 Urchin Software Corporation System and method for monitoring and analyzing internet traffic
US7523181B2 (en) 1999-11-22 2009-04-21 Akamai Technologies, Inc. Method for determining metrics of a content delivery and global traffic management network
US6754699B2 (en) 2000-07-19 2004-06-22 Speedera Networks, Inc. Content delivery and global traffic management network system
US7007034B1 (en) * 2000-01-21 2006-02-28 International Business Machines Corporation File structure for storing content objects in a data repository
US7043488B1 (en) * 2000-01-21 2006-05-09 International Business Machines Corporation Method and system for storing hierarchical content objects in a data repository
US6986102B1 (en) * 2000-01-21 2006-01-10 International Business Machines Corporation Method and configurable model for storing hierarchical data in a non-hierarchical data repository
US7076494B1 (en) * 2000-01-21 2006-07-11 International Business Machines Corporation Providing a functional layer for facilitating creation and manipulation of compilations of content
US6839701B1 (en) * 2000-01-21 2005-01-04 International Business Machines Hitmask for querying hierarchically related content entities
US7089239B1 (en) * 2000-01-21 2006-08-08 International Business Machines Corporation Method and system for preventing mutually exclusive content entities stored in a data repository to be included in the same compilation of content
US6611840B1 (en) * 2000-01-21 2003-08-26 International Business Machines Corporation Method and system for removing content entity object in a hierarchically structured content object stored in a database
US6449627B1 (en) * 2000-01-21 2002-09-10 International Business Machines Corp. Volume management method and system for a compilation of content
WO2001065371A2 (en) * 2000-03-01 2001-09-07 Computer Associates Think, Inc. Method and system for updating an archive of a computer file
US20020049608A1 (en) 2000-03-03 2002-04-25 Hartsell Neal D. Systems and methods for providing differentiated business services in information management environments
US20020059274A1 (en) 2000-03-03 2002-05-16 Hartsell Neal D. Systems and methods for configuration of information management systems
US20020049841A1 (en) 2000-03-03 2002-04-25 Johnson Scott C Systems and methods for providing differentiated service in information management environments
US20030236745A1 (en) 2000-03-03 2003-12-25 Hartsell Neal D Systems and methods for billing in information management environments
US20020095400A1 (en) 2000-03-03 2002-07-18 Johnson Scott C Systems and methods for managing differentiated service in information management environments
AU2001237696A1 (en) * 2000-03-03 2001-09-12 Sanctum Ltd. System for determining web application vulnerabilities
US20020174227A1 (en) 2000-03-03 2002-11-21 Hartsell Neal D. Systems and methods for prioritization in information management environments
US20020065864A1 (en) 2000-03-03 2002-05-30 Hartsell Neal D. Systems and method for resource tracking in information management environments
US7162539B2 (en) 2000-03-16 2007-01-09 Adara Networks, Inc. System and method for discovering information objects and information object repositories in computer networks
US6981180B1 (en) 2000-03-16 2005-12-27 Akamai Technologies, Inc. Method and apparatus for testing request-response service using live connection traffic
US6976090B2 (en) 2000-04-20 2005-12-13 Actona Technologies Ltd. Differentiated content and application delivery via internet
US7152047B1 (en) * 2000-05-24 2006-12-19 Esecure.Biz, Inc. System and method for production and authentication of original documents
US6883168B1 (en) * 2000-06-21 2005-04-19 Microsoft Corporation Methods, systems, architectures and data structures for delivering software via a network
US8126313B2 (en) * 2000-06-28 2012-02-28 Verizon Business Network Services Inc. Method and system for providing a personal video recorder utilizing network-based digital media content
US6591266B1 (en) 2000-07-14 2003-07-08 Nec Corporation System and method for intelligent caching and refresh of dynamically generated and static web content
US7155723B2 (en) 2000-07-19 2006-12-26 Akamai Technologies, Inc. Load balancing service
US7047281B1 (en) * 2000-08-08 2006-05-16 Fineground Networks Method and system for accelerating the delivery of content in a networked environment
US6868292B2 (en) * 2000-09-14 2005-03-15 The Directv Group, Inc. Device control via digitally stored program content
WO2002039693A2 (en) 2000-11-07 2002-05-16 Surgient Networks, Inc. System and method for providing differentiated business services in information management
US20030182414A1 (en) * 2003-05-13 2003-09-25 O'neill Patrick J. System and method for updating and distributing information
US6691301B2 (en) 2001-01-29 2004-02-10 Celoxica Ltd. System, method and article of manufacture for signal constructs in a programming language capable of programming hardware architectures
US6963981B1 (en) 2001-01-29 2005-11-08 Akamai Technologies, Inc. Method and apparatus for remote installation of an operating system over a network connection
US6847983B2 (en) * 2001-02-28 2005-01-25 Kiran Somalwar Application independent write monitoring method for fast backup and synchronization of open files
JP3990115B2 (ja) * 2001-03-12 2007-10-10 株式会社東芝 サーバ側プロキシ装置及びプログラム
US7054912B2 (en) * 2001-03-12 2006-05-30 Kabushiki Kaisha Toshiba Data transfer scheme using caching technique for reducing network load
US20020143798A1 (en) 2001-04-02 2002-10-03 Akamai Technologies, Inc. Highly available distributed storage system for internet content with storage site redirection
AUPR797501A0 (en) * 2001-09-28 2001-10-25 BlastMedia Pty Limited A method of displaying content
US6904430B1 (en) * 2002-04-26 2005-06-07 Microsoft Corporation Method and system for efficiently identifying differences between large files
WO2003096669A2 (en) * 2002-05-10 2003-11-20 Reisman Richard R Method and apparatus for browsing using multiple coordinated device
US6925467B2 (en) * 2002-05-13 2005-08-02 Innopath Software, Inc. Byte-level file differencing and updating algorithms
US7277963B2 (en) 2002-06-26 2007-10-02 Sandvine Incorporated TCP proxy providing application layer modifications
US7587517B2 (en) 2002-07-08 2009-09-08 Precache Inc. Packet routing via payload inspection for quality of service management
US7395355B2 (en) 2002-07-11 2008-07-01 Akamai Technologies, Inc. Method for caching and delivery of compressed content in a content delivery network
US7007064B2 (en) * 2002-08-02 2006-02-28 Motorola, Inc. Method and apparatus for obtaining and managing wirelessly communicated content
US7096311B2 (en) * 2002-09-30 2006-08-22 Innopath Software, Inc. Updating electronic files using byte-level file differencing and updating algorithms
JP2004152136A (ja) * 2002-10-31 2004-05-27 Matsushita Electric Ind Co Ltd データ更新システム、データ更新システムの差分データ生成装置及びプログラム、並びに更新後ファイル復元装置及びプログラム
US7353225B2 (en) * 2002-11-13 2008-04-01 Sun Microsystems, Inc. Mechanism for comparing content in data structures
US7360025B1 (en) * 2002-12-13 2008-04-15 O'connell Conleth Method and system for automatic cache management
US7188216B1 (en) * 2002-12-13 2007-03-06 Vignette Corporation Method and system for an extensible caching framework
JP4302970B2 (ja) * 2002-12-16 2009-07-29 富士通株式会社 差分更新方法、プログラム及び装置
US7320009B1 (en) * 2003-03-28 2008-01-15 Novell, Inc. Methods and systems for file replication utilizing differences between versions of files
US7890464B2 (en) * 2003-06-20 2011-02-15 Innopath Software, Inc. Processing software images and generating difference files
US20050004954A1 (en) 2003-07-01 2005-01-06 Hand Held Products, Inc. Systems and methods for expedited data transfer in a communication system using hash segmentation
US7031972B2 (en) * 2003-07-21 2006-04-18 Innopath Software, Inc. Algorithms for block-level code alignment of software binary files
CA2532909A1 (en) 2003-08-21 2005-03-31 Microsoft Corporation Systems and methods for interfacing application programs with an item-based storage platform
EP1658555A4 (en) 2003-08-21 2009-05-06 Microsoft Corp SYSTEMS AND METHODS FOR MODELING DATA IN A STORAGE PLATFORM BASED ON OBJECTS
US8131739B2 (en) 2003-08-21 2012-03-06 Microsoft Corporation Systems and methods for interfacing application programs with an item-based storage platform
US7529811B2 (en) 2003-08-21 2009-05-05 Microsoft Corporation Systems and methods for the implementation of a core schema for providing a top-level structure for organizing units of information manageable by a hardware/software interface system
US7529779B2 (en) * 2004-06-10 2009-05-05 Samsung Electronics Co., Ltd. Apparatus and method for efficient generation of delta files for over-the-air upgrades in a wireless network
WO2006009210A1 (ja) * 2004-07-21 2006-01-26 Sony Corporation コンテンツ処理装置,コンテンツ処理方法およびコンピュータプログラム
JP2008522254A (ja) * 2004-11-08 2008-06-26 イノパス・ソフトウェアー・インコーポレーテッド スタティック・ファイル・システムの差異検出および更新
EP1839172A2 (en) 2004-12-08 2007-10-03 B-Obvious Ltd. Bidirectional data transfer optimization and content control for networks
US7698318B2 (en) * 2006-02-10 2010-04-13 Microsoft Corporation Automatically determining file replication mechanisms
US8151323B2 (en) 2006-04-12 2012-04-03 Citrix Systems, Inc. Systems and methods for providing levels of access and action control via an SSL VPN appliance
KR101433859B1 (ko) * 2007-10-12 2014-08-27 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 파일 데이터 관리 방법
US7941410B2 (en) * 2008-09-30 2011-05-10 Microsoft Corporation Method and system of managing conflicts for a set of synchronized folders

Also Published As

Publication number Publication date
CN101485174B (zh) 2012-08-22
CN101485174A (zh) 2009-07-15
CA2655020A1 (en) 2008-10-01
EP2044755B1 (en) 2015-07-22
AU2007269315A1 (en) 2008-01-10
AU2007269315B2 (en) 2011-09-15
HK1128840A1 (en) 2009-11-06
WO2008005840A3 (en) 2008-06-05
KR20090034321A (ko) 2009-04-07
US20080005203A1 (en) 2008-01-03
EP2044755A2 (en) 2009-04-08
BRPI0713874A2 (pt) 2013-01-01
US7756826B2 (en) 2010-07-13
WO2008005840A2 (en) 2008-01-10
IL196034A0 (en) 2009-09-22
US20100235374A1 (en) 2010-09-16
US8838630B2 (en) 2014-09-16

Similar Documents

Publication Publication Date Title
AU2007269315B2 (en) Method and systems for efficient delivery of previously stored content
US9621666B2 (en) Systems and methods for enhanced delta compression
US7685298B2 (en) Systems and methods for providing authentication credentials across application environments
US7716306B2 (en) Data caching based on data contents
US7877463B2 (en) Method and systems for providing access to dynamic content via static pages
JP3990115B2 (ja) サーバ側プロキシ装置及びプログラム
US8412767B2 (en) Mobile content service
US20060271559A1 (en) Method and system for delta compression
JP2013512514A (ja) キャッシュを利用した効率的なメディア配信のためのシステム及び方法
JP4981544B2 (ja) 通信システム,代理サーバならびにその制御方法およびその制御プログラム
KR20090009804A (ko) 네트워크 응답 버퍼링 거동을 관리하는 방법 및 그를 이용하는 컴퓨터 시스템
JP3848209B2 (ja) データ転送装置、データ転送方法及びプログラム
US6968396B1 (en) Reloading of hypermedia pages by sending only changes
JP4031516B2 (ja) サーバ側プロキシ装置、クライアント側プロキシ装置、データ転送方法及びプログラム
US9710425B2 (en) Mobile proxy server for internet server having a dynamic IP address
JP4157585B2 (ja) サーバ側プロキシ装置、クライアント側プロキシ装置、データ転送方法及びプログラム
JP4041157B2 (ja) クライアント側プロキシ装置、データ転送方法及びプログラム

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20100907