JP2018526700A - コンテンツの記憶および取得用のシステムおよび方法 - Google Patents

コンテンツの記憶および取得用のシステムおよび方法 Download PDF

Info

Publication number
JP2018526700A
JP2018526700A JP2017557147A JP2017557147A JP2018526700A JP 2018526700 A JP2018526700 A JP 2018526700A JP 2017557147 A JP2017557147 A JP 2017557147A JP 2017557147 A JP2017557147 A JP 2017557147A JP 2018526700 A JP2018526700 A JP 2018526700A
Authority
JP
Japan
Prior art keywords
file
client device
portions
stored
identified
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017557147A
Other languages
English (en)
Other versions
JP6789244B2 (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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of JP2018526700A publication Critical patent/JP2018526700A/ja
Application granted granted Critical
Publication of JP6789244B2 publication Critical patent/JP6789244B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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]
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

クライアント装置においてファイルの部分にアクセスするシステムおよび方法が開示される。クライアント装置へのダウンロードのためにファイルの1つ以上の部分が選択され、ファイルは、ネットワークを介してクライアント装置と通信をするウェブベースのストレージシステム上に記憶されている。選択された1つ以上の部分における、クライアント装置上に記憶されていない少なくとも1つの部分が識別される。ファイルの識別された少なくとも1つの部分をダウンロードするために、要求が、ユーザ対話なしに、ウェブベースのストレージシステムに送信され、ファイルの識別された少なくとも1つの部分が、ネットワークを介してクライアント装置にダウンロードされる。

Description

一般に、本開示はデータ記憶に関し、特に、クラウドストレージにデータを記憶し、クラウドストレージのデータにアクセスするシステムおよび方法に関する。
ウェブベースのストレージシステムは、1つ以上のユーザ装置からアクセス可能なデータを、ユーザが記憶および取得することを可能にするファイルホスティングシステムである。これらのストレージシステムは、ユーザデータを記憶するためにクラウドストレージを用い得る。ユーザ装置は、ウェブベースのストレージシステムへ記憶されたファイルへのアクセスを有することが望ましい場合がある。しかしながら、ファイルが大きい場合、ユーザがファイルにアクセスできるようになる前に、ファイルの全体がユーザの装置にダウンロードされるまで待つことは、ユーザにとって望ましくない場合がある。
一般に、本開示はデータ記憶に関し、特に、クラウドストレージにデータを記憶し、クラウドストレージのデータにアクセスするシステムおよび方法に関する。
データストレージを維持するシステムおよび方法が本明細書に開示される。一態様では、クライアント装置においてファイルの部分にアクセスするシステムまたは方法に関する。クライアント装置へのダウンロードのためにファイルの1つ以上の部分が選択される。ファイルは、ネットワークを介してクライアント装置と通信をするウェブベースのストレージシステムに記憶されている。選択された1つ以上の部分における、クライアント装置上に記憶されていない少なくとも1つの部分が識別される。ファイルの識別された少なくとも1つの部分をダウンロードするために、要求は、ユーザ対話なしに、ウェブベースのストレージシステムに送信され、ファイルの識別された少なくとも1つの部分はネットワークを介してクライアント装置にダウンロードされる。
別の態様では、クライアント装置においてファイルの部分にアクセスする手段を備えるシステムに関する。システムは、クライアント装置へのダウンロードのためにファイルの1つ以上の部分を選択する手段であって、ファイルは、ネットワークを介してクライアント装置と通信をするウェブベースのストレージシステム上に記憶されている手段と、選択された1つ以上の部分における、クライアント装置上に記憶されていない少なくとも1つの部分を識別する手段と、ファイルの識別された少なくとも1つの部分をダウンロードするために、要求を、ユーザ対話なしに、ウェブベースのストレージシステムに送信する手段と、ファイルの識別された少なくとも1つの部分を、ネットワークを介してクライアント装置にダウンロードする手段と、を備えている。
いくつかの実装では、識別する手段は、選択された1つ以上の部分を、メタファイル中のエントリと比較する手段を備える。メタファイル中の各エントリは、選択された1つ以上の部分の各々を識別する部分識別子と、選択された1つ以上の部分の各々がクライアント装置上に記憶されているかどうかを示す標識とを含む。メタファイルはクライアント装置上に記憶され、クライアント装置のユーザにとってアクセス可能でなくてよい。識別された少なくとも1つの部分がダウンロードされた後に、識別された少なくとも1つの部分がクライアント装置上に記憶されたことを反映するためにメタファイルを更新される。
いくつかの実装では、ファイルは文書に対応し、システムは、文書の第1の部分のビューを、クライアント装置を操作するユーザに提供する手段であって、ファイルの選択された1つ以上の部分は、第1の部分に隣接する文書の第2および第3の部分を含む手段をさらに備える。ファイルの選択された1つ以上の部分は、ファイルの過去の閲覧パターンまたはファイルの編集作業に基づいて決定される優先スコアが付与されるファイルの部分に対応してよい。いくつかの実装では、ファイルのコンテンツをクライアント装置に表示するために、アプリケーションがクライアント装置にインストールされており、アプリケーションは、変更無しで、ファイルの選択された1つ以上の部分の表示が可能である。
いくつかの実装では、システムは、クライアント装置上にファイルの識別された少なくとも1つの部分が記憶される前に、ファイルの識別された少なくとも1つの部分を暗号化する手段をさらに備える。暗号化する手段は、第1鍵と第1初期化ベクトルとを使用し、第1鍵と第1初期化ベクトルとは異なる第2初期化ベクトルとが使用されて、クライアント装置に記憶されるファイルの別の部分を暗号化する。システムは、第1初期化ベクトルおよび第2初期化ベクトルをメタファイルに記憶する手段をさらに備えてよく、メタファイル中の各エントリは、選択された1つ以上の部分の各々を識別する部分識別子と、選択された1つ以上の部分の各々がクライアント装置上に記憶されているかどうかを示す標識とを含む。
いくつかの実装では、システムは、ファイルの1つ以上の部分のサイズを、ネットワークの接続速度と、ファイルの種類と、クライアント装置のユーザによって要求されると予測されるファイル中のデータの量と、のうちの少なくとも1つに基づいて決定する手段をさらに備える。
本開示の上記および他の特徴は、その性質および様々な利点を含めて、添付の図面と合わせて以下の詳細な記載を考慮することでより明らかになる。図面において、
例示の一実施形態による、クライアント装置でファイルの部分にアクセスするコンピュータ化システムのブロック図。 例示の一実施形態による、ファイルの部分を追跡し、各部分がクライアント装置にローカルにキャッシュされたかどうかを示す標識を記憶するデータベース構造の図。 例示の一実施形態による、読み出し要求に応じてファイルの1つ以上の部分を提供する例示の方法のフローチャート。 例示の一実施形態による、書き込み要求に応じてファイルの1つ以上の部分を提供する例示の方法のフローチャート。 例示の一実施形態による、クライアント装置でファイルの部分にアクセスする例示の方法のフローチャート。 例示の一実施形態による、本明細書に記載された処理のいずれかを実行するコンピューティング装置のブロック図。
本開示の全体的な理解を提供するために、ウェブベースのストレージシステムにおけるファイルコンテンツの記憶および取得を提供するシステムを含む、例示の実施形態が記載される。特に、効率的なダウンロードおよびデータの使用を可能にする方法が記載される。例えば、本明細書に記載される方法は、クライアント装置におけるユーザが、クライアント装置にファイルの全体をダウンロードすることなく、ファイルの部分を閲覧し選択的に修正することを可能にする。これにより、例えば、ファイルのデータをダウンロードするために必要な帯域幅、クライアント装置におけるストレージ要求、および、クライアント装置においてファイルが修正される場合の、ウェブベースのストレージシステムに修正をアップロードするために必要な帯域幅、のうちの1つ以上の様々な計算資源の使用を減少できる。しかしながら、本明細書に記載されるシステムおよび方法は、言及される用途に適切に適合され修正され得ること、本明細書に記載されるシステムおよび方法は、他の適切な用途に用い得ること、および、そのような他の追加と修正は、その範囲から逸脱しないこと、が当業者に理解されるであろう。一般に、本明細書に記載されたコンピュータ化システムは、1つ以上のエンジンを備え得る。エンジンは、コンピュータ、マイクロプロセッサ、ロジックデバイス、またはハードウェア、ファームウェア、およびソフトウェアと構成され、本明細書に記載されるコンピュータ化された1つ以上の方法を実行する他の装置もしくはプロセッサのような1つ以上の処理装置を含む。
本開示は、クラウドストレージシステムにファイルを記憶し、クラウドストレージシステムからファイルを取得するシステムおよび方法を提供する。本明細書に記載されるシステムおよび方法は、既存のウェブベースのファイルアップロードシステムに関連する技術的な問題の多くを解決する。本明細書に記載されるシステムおよび方法は、ユーザデータを記憶および共有するためにネットワークを通じて他のシステムと通信し得るウェブベースのストレージシステムに関して記載される。一般に、当業者は、本明細書に記載されるシステムおよび方法は、その範囲から逸脱することなく、ローカルに相互接続されたシステムに適用可能であることを理解するであろう。
図1は、本発明におけるシステムおよび方法を実装するために使用し得るネットワークおよびデータベース構造の例を示す。図1は、クライアント装置がクラウドストレージシステムに記憶されたデータにアクセスすることを可能にする、コンピュータ化システム100のブロック図である。このシステム100は、ネットワーク101を通じて相互に通信するよう構成された、ウェブベースのストレージシステム110およびクライアント装置102を含む。ウェブベースのストレージシステム110は、サーバ112、プロセッサ114、および、ユーザデータ・データベース116を含む。クライアント装置102は、キャッシュ103、メタファイル104、ディスプレイ105、プロセッサ106、ユーザ入力装置107、およびネットワークインターフェイス108を含む。本明細書において、用語「プロセッサ」は、1つ以上のコンピュータ、マイクロプロセッサ、ロジックデバイス、サーバ、またはハードウェア、ファームウェア、およびソフトウェアにより構成され、本明細書に記載されるコンピュータ化された1つ以上の技術を実行する他の装置のことを言う。プロセッサおよび処理装置は、インプット、アウトプット、および現在処理中のデータを記憶する1つ以上のメモリ装置を含んでもよい。図1には、図の複雑化を避けるために単一のウェブベースのストレージシステム110およびクライアント装置102のみが示されている。一般に、システム100は、複数のウェブベースのストレージシステムおよび任意の数のクライアント装置102をサポート可能である。
ウェブベースのストレージシステム110は、ユーザがデータを記憶、取得、および修正することを可能にするファイルホスティングシステムである。このデータはユーザのウェブデータと称されることがあり、ユーザデータ・データベース116中に記憶される。サーバ112、プロセッサ114、またはその両方は、ユーザデータ、ユーザデータ・データベース116の維持に関連する機能を実行し得る。例えばデータへのメモリの割り当て、データベース中に記憶される新しいデータの受信、データベース中のデータの削除、データベースにおいてどのくらいのストレージスペースが利用可能かを示す標識の提供、またはデータベース維持に関する他の適切な機能等である。ウェブベースのストレージシステム110は、単一のサーバシステムまたは分散システム中に記憶され得る。特に、ウェブベースのストレージシステム110はユーザデータを記憶するためにクラウドストレージを使用してよい。
ウェブベースのストレージシステム110上に記憶されるファイルは大きくてもよい。例えば、ファイルは、ビデオコンテンツ、記録管理のための大きなデータベース構造、または任意の他の適切な種類の大きなファイルを含んでよい。ネットワーク101への接続が低速である場合(例えば、低速のインターネット接続)、ファイルのダウンロードには長い時間がかかり得る。一般に、クライアント装置を操作するユーザにファイルが提供される前に、大きなファイルがダウンロードされるまで待つことは望ましくない場合がある。この場合、ファイルは複数の部分つまりチャンクに分割されてよく、また関連する部分のみがクライアント装置にダウンロードされてよい。そのような例では、各部分はファイルのデータの適切なサブセットを含んでよい、または言い換えれば、各部分はファイルのデータの全てではないが一部を含んでよい。ファイルの部分は、例えば一定数のバイトを含んでよく、同一または異なるサイズであってよい。
クライアント装置102は、ウェブベースのストレージシステム110上に記憶された大きなファイルの部分へアクセスすることを要求してもよい。例えば、ファイルが動画ファイルである場合、ファイルの動画コンテンツがユーザに提供されることが可能になる前に、全体のファイルがクライアント装置102中のキャッシュ103にダウンロードされるまで待つことは望ましくない場合がある。この場合、動画ファイルは複数の部分に分割されてよく、関連する部分またはいくつかの部分がクライアント装置102にダウンロードされる。本明細書に記載されるいくつかの例は大きな動画ファイルに関連するが、本開示は動画ファイルに限定されず、音声コンテンツ、テキストコンテンツ、画像コンテンツ、データベースコンテンツ、または任意の他の適切な種類のファイルコンテンツを含むファイルを含む、他の種類のファイルに適用可能である。
図1に示されるように、クライアント装置102は、キャッシュ103と、メタファイル104と、ディスプレイ105と、プロセッサ106と、ユーザ入力装置107と、ネットワークインターフェイス108とを含む。ユーザ入力装置107は、ユーザがファイルと対話することを可能にする。例えば、ユーザ入力装置107は、ユーザがユーザデータ・データベース116上に記憶されたファイルを選択することでユーザ入力を提供するように、キーボード、マウス、またはタッチスクリーンを含んでよい。ユーザ入力は、選択したファイルを読み込むための、または選択したファイルを修正するためのユーザからの要求を示し得る。
ファイルは、クラウドストレージにおけるユーザデータ・データベース116中に記憶されているが、ファイルの部分または全体のファイルが、クライアント装置102中のキャッシュ103中にローカルに記憶されてもよい。ファイルがすでにキャッシュ103中に記憶されている場合は、クライアント装置102がウェブベースのストレージシステム110からファイルをダウンロードする必要はない。この場合、ディスプレイ105を通じてファイルのコンテンツのビューを提供するアプリケーションを開くことで、ファイルが直接ユーザに提供されてよい。そうでなければ、クライアント装置102は、クライアント装置102にファイルのコンテンツを転送するために、ウェブベースのストレージシステム110に要求を送信する。1つの例では、キャッシュ103はファイルの部分を全く記憶しなくてよい。この場合、要求は、ファイルのどの部分がキャッシュ103にダウンロードされることが要求されたか、または全体のファイルがキャッシュ103にダウンロードされるべきかを示す標識を含んでよい。別の例では、キャッシュ103はファイルの部分のサブセットをすでに記憶していてもよい。この場合、要求された部分がすでにローカルにキャッシュされていれば、クライアント装置102は要求された部分をダウンロードする必要はない。あるいは、どの要求された部分もまだローカルにキャッシュされていなければ、ウェブベースのストレージシステム110は要求された部分をクライアント装置102に送信する。
要求された部分のいくつかがローカルにキャッシュされている場合は、ウェブベースのストレージシステム110は、クライアント装置102にローカルにキャッシュされていない要求された部分を送信してよい。例えば、ローカルにキャッシュされている部分は、すでに閲覧されたおよび/またはクライアント装置102にキャッシュされた動画ファイルの部分に対応してよい。クライアント装置102は、動画ファイルをストリーミングすることが望ましい場合がある。ストリーミングを行うには、クライアント装置102は、動画ファイルのまだ閲覧されていないいくつかの後の部分を、ユーザが動画ファイルのこれらの後の部分を閲覧することを望んでいると予期して、ローカルに記憶してよい。この場合、前もってダウンロードした部分が再生される間に、クライアント装置102は後の部分をダウンロードする要求をしてよい。これらの要求された後の部分は、それからクライアント装置102に送信され、閲覧の用意ができるまでキャッシュ103中に記憶されてよい。
上記の例では、ファイルは動画コンテンツを含むと記載されている。一般に、ファイルは他のコンテンツを含んでよい。例えば、ファイルは、テキストおよび/またはグラフィックもしくはピクチャのコンテンツを含む文書ファイルであってよい。この場合、ファイルは順番に並べられた部分に分割されてよい。1つの例では、ユーザは、ディスプレイ105を通じてファイルの特定の部分を閲覧してもよい。特定の部分はキャッシュ103中にローカルに記憶されてよいが、ファイルの他の部分は、ウェブベースのストレージシステム110中に記憶され、ローカルにキャッシュされなくてよい。ユーザが、ディスプレイ105を通じてファイルの特定の部分を閲覧すると、システム100は特定の部分に隣接する先行部分および後続部分を識別してよい。先行部分および/または後続部分は、ユーザがこれらの部分の1つにスクロールすることを予期して、特定の部分が閲覧される間に、キャッシュ103にダウンロードされてよい。同様に、システム100は、ファイルのいくつかの部分が、ファイルの他の部分よりも閲覧される可能性が高いコンテンツを含むと判定してよく、そのような部分に、関連する優先順位を割り当ててよい。例えば、テキストのコンテンツはピクチャのコンテンツよりも閲覧および編集がされる可能性が高い場合があるので、テキストのコンテンツを含む部分が、ピクチャのコンテンツを含む部分よりもダウンロードに関して優先されるようにしてもよい。
いくつかの実施形態では、閲覧される可能性が高い(したがって優先される)ファイルの部分は、閲覧行動の過去のパターンに基づいて識別されてよい。1つの例では、最近に更新されたか、またはユーザが閲覧した最新のバージョン以来、大量に編集されたコンテンツが、他の部分よりも優先される。別の例では、システム100が、ユーザが特定の方向(例えば、上から下または下から上)に文書中をスクロールしていると検出した場合、ファイルの部分はその方向に従って優先され、早く表示されると予測される部分が、後で表示されると予測される部分より前にダウンロードされてよい。
一般に、ファイルは動画ファイルまたはテキストのおよび/またはピクチャのコンテンツを含む文書に限定されない。ファイルは、複数の部分に分割することが適切な任意の種類のファイルでよい。いくつかの実施形態では、ファイルはあるデータの記録を維持するデータベース構造である。1つの例では、ファイルは、学校に在籍する生徒のリスト等の記録のリストであってよい。リスト中の各記録は、例えば生徒の名前、電子メールアドレス、家の住所、生徒の識別番号、緊急連絡情報、登録した授業、成績証明書、授業料請求状態、または生徒に関連する任意の他の適切なデータ等の生徒に対応するデータを含み得る。この場合、ファイルはウェブベースのストレージシステム110上に記憶された大きなファイルであってよい。学校の管理者等のクライアント装置102のユーザは、特定の生徒に関連したデータ記録を示すファイルの部分等のファイルの選択した部分のみを閲覧することを望む場合がある。この場合、ネットワーク101を通じて、長い時間がかかるかもしれない全体のファイルをダウンロードするよりも、ファイルの選択した部分のみがウェブベースのストレージシステム110からクライアント装置102にダウンロードされてよい。関連する部分がクライアント装置102にダウンロードされた後、ユーザは、選択した生徒のデータ記録をクライアント装置102上で修正して、ファイルの修正した部分をウェブベースのストレージシステム110にアップロードしてよい。この場合、ファイルは、ある数の記録を記憶するのに適切なサイズにされた部分に分割されてよい。例えば、各部分は、一人の生徒または複数の生徒等の整数の生徒に対応してよい。
いくつかの実施形態では、ファイルの部分の大きさは最適な方法で選択される。特に、部分の大きさは、ネットワーク接続速度およびファイルに対する予測された用途を考慮して決定される。大きな部分は小さな部分よりもネットワーク101を通じて送信するのに長い時間がかかるので、大きすぎるサイズにされた部分を使用することが望ましくない場合がある。さらに、大きな部分は、クライアント装置102上で実際に望まれるコンテンツの量が大きな部分のほんの小さな部分に該当していると、望ましくない場合がある。例えば、ファイルが、学校に在籍する生徒を追跡するデータベース構造である上記の例においては、複数の生徒を含むサイズにされたファイルの部分を使用することが望ましくない場合がある。特に、クライアント装置102のユーザにとって、一度に1人の生徒に対応する記録を閲覧し修正することが望ましい場合があるので、1人の生徒の記録を含むようなサイズにされた部分が適切であり得る。本明細書に記載された、学校に在籍する生徒に関連付けられたデータを記憶するファイルに関する例は、説明の目的のみに記載されるものであり、また一般に、本開示のシステムおよび方法は、任意の種類の記録管理データに関するデータを記憶するファイルに適用可能であることが理解されるであろう。
部分が非常に小さく、ファイルの部分をダウンロードするためのクライアント装置102からのどのような要求も複数の部分のダウンロードを伴うと、ファイルを複数の小さな部分に分割することも望ましくない場合がある。上記の例では、生徒の記録を閲覧または修正するどのような要求も、複数の部分をダウンロードし記憶することを必要とし得るので、部分は生徒の記録の断片を含むようなサイズにされることが望ましくない場合がある。
用途によっては、クライアント装置102のユーザが、複数の生徒に対応する記録を一度に閲覧および修正することが望ましい場合がある。例えば、ユーザは特定の授業の全ての生徒もしくは特定の成績の全ての生徒等の特定の成績の1つ以上の基準を満たす生徒、卒業する生徒、クラブや組織に属す生徒、授業料請求の支払いが未払いになっている生徒、または任意の他の適切なカテゴリ、の記録を閲覧することを望む場合がある。この場合、部分は、(1つ以上の基準を満たす)関連する生徒の記録が部分にまとめられてクライアント装置102にダウンロードされるオンザフライ方式で生成されてよい。この場合、部分およびそのサイズは前もって定められておらず、必要に応じて動的に決定される。
本明細書に記載されるように、本開示のシステムおよび方法は、クライアント装置102のユーザが、クライアント装置102にファイルの全体をダウンロードする必要なしに、ファイルの部分を閲覧し選択的に修正することを可能にする。本開示は、ユーザがある部分を閲覧し必要に応じて選択的に修正し得るように、クライアント装置102がファイルの関連する部分のみをウェブベースのストレージシステム110からダウンロードすることを可能にする。
いくつかの実施形態では、本開示のシステムおよび方法は、クライアント装置102のユーザに見えないように動作する。特に、ユーザは、クライアント装置102がウェブベースのストレージシステム110と記載される方法で通信をしており、ファイルの部分を一度にダウンロードすることに気付かなくてもよい。さらに、クライアント装置102によって実行され、ファイルの様々な部分を開き、表示し、修正するソフトウェアアプリケーションもまた、ファイルの全体の代わりにファイルの部分のみがクライアント装置102にキャッシュされることに気付かなくてもよい。動画ストリーミングアプリケーションとは対照的に、本開示によるクライアント装置102のアプリケーションは、ファイルの部分を一度に開き閲覧する処理を扱うための特別な装備がされている必要はなくてよい。
この場合、本開示のシステムおよび方法は、クライアント装置102のバックグラウンドで動作する。1つの例では、20メガバイト(MB)のサイズを有する文書を開き、文書中をスクロールするため、ユーザはクライアント装置102中のソフトウェアアプリケーションを使用している。文書はウェブベースのストレージシステム中に記憶され10の部分に分割されたファイルに対応しており、各部分は2MBのサイズを有する。ユーザが最初の10MB中をスクロールする間、ソフトウェアアプリケーションは11MBから15MBを求める要求をしてもよい。クライアント装置105は、データベース構造(例えば図2に関し示され詳細が記載されるデータベース構造)に問い合わせをして、11MBから15MBが部分6、7、および8に対応していると判定する。文書の要求されたメガバイトを、ファイルの部分にマッピングすると、その後クライアント装置102は部分6、7、および8をダウンロードするためにウェブベースのストレージシステム110に要求を送信する。
いくつかの実施形態では、ファイルの部分はキャッシュ103中に記憶される前に暗号化され、クライアント装置102のユーザに提供される前に復号される。1つの例では、AES(Advanced Encryption Standard)が使用されてキャッシュ103において部分が暗号化されるが、一般に、任意の適切な暗号化方法が使用されてよい。ウェブベースのストレージシステム110からクライアント装置102にダウンロードされるデータを暗号化することは、少なくとも、そうすることによってユーザがウェブベースのストレージシステム110等のクラウドシステムに自身のファイルを記憶することが促され得るという理由で、望ましい場合がある。例えば、ユーザが本人のクライアント装置102を紛失した場合、クライアント装置102にアクセスした別の人は、キャッシュ103中に記憶されたデータが暗号化されているために、キャッシュ103中に記憶されたデータにアクセスすることが出来ない。
キャッシュ103中に記憶される部分を暗号化するために使用される暗号化方法は、全体のファイルへ同一の鍵を使用することを伴うが、ファイルの各部分へ異なる初期化ベクトルを有してよい。異なる初期化ベクトルは、メタファイル104中または図2に関し記載されるデータベース構造200等のデータベース構造中に記憶されてよい。ファイルの部分を復号するため、クライアント装置102上で閲覧または修正することが要求された部分の最初から部分の最後のバイトまで復号処理が実行されてよい。図1に示すように、メタファイル104はクライアント装置上に記憶されるが、メタファイル104はウェブベースのストレージシステム110またはネットワーク101へのアクセスを有する任意の他の装置上に記憶されてよい。いくつかの実施形態では、メタファイルはクライアント装置のユーザにとってアクセス可能ではない。
プロセッサ106は、本明細書に記載の任意の機能を、クライアント装置102によって実行されるものとして、実行するように構成されてよい。特に、プロセッサ106は、クライアント装置102へのダウンロードのために1つ以上の部分を選択し、選択された1つ以上の部分における、クライアント装置上に記憶されていない少なくとも1つ以上の部分を識別し、ウェブベースのストレージシステム110へ識別した部分をダウンロードする要求を送信し、識別した部分をダウンロードしてよい。さらに、プロセッサ114は、本明細書に記載の任意の機能を、ウェブベースのストレージシステム110によって実行されるものとして、実行するように構成されてよい。加えてまたは代わりに、プロセッサ106によって実行される本明細書に記載の任意の機能はプロセッサ114によって実行されてよく、反対に、プロセッサ114によって実行される本明細書に記載の任意の機能はプロセッサ106によって実行されてもよい。例えば、本開示の大部分では、メタファイル104をクライアント装置102上に記憶されるものとして記載している。代わりに、メタファイル104は、本開示の範囲から逸脱することなく、ウェブベースのストレージシステム上に記憶されてよい。
図2は、クライアント装置102の1人以上のユーザに関連付けられたファイルのセット等の、ファイルのセットの部分を追跡する典型的なデータベース構造200を示す。データベース構造200は、図1に関し示され記載されたメタファイル104上に記憶されたデータに対応してよい。データベース構造200に示されたデータは、ローカルにクライアント装置102上のメタファイル104中、ウェブベースのストレージシステム110中、またはネットワーク101にアクセスを有する別のシステム中に記憶されてよい。図2に示すデータベース構造200は、基本的には、ファイル内の部分およびその位置を識別するために使用され得るマップである。特に、データベース構造200における各エントリはデータベース構造200の行に示されており、ファイルの部分に対応している。各エントリは、ファイル識別子と、部分識別子と、開始点と、終了点と、クライアント装置102中のキャッシュ103等のローカルキャッシュ上に部分が記憶されているかを示すフラグ指示子と、部分が最後に修正された日時に対応するタイムスタンプと、を含む。各開始点と終了点のペアは、ファイル内の1つの部分について、その開始境界と終了境界のそのファイル内での位置をそれぞれ示す。
図2に示されるように、ファイル識別子154で識別されるファイルは、部分識別子1、2、3、および4を有する4つの部分に分割される。ファイル154の各部分は50データ単位の同一のサイズを有し、各単位はデータビット数またはバイト数であってよい。さらに、ファイル154の4つの部分の各々は、キャッシュ103上にローカルに記憶される。ファイル154の各部分がキャッシュ103中に記憶されているので、ユーザがクライアント装置102を介してファイル154の任意の部分にアクセスすることを望む場合は、システム100はデータベース構造200を使用して、ファイル154の全ての部分がすでにキャッシュ103上に記憶されており、またネットワーク101を通じて送信する必要のある部分はないと判定する。
別の例としては、データベース構造200は、7つの部分に分割されるファイル931を示し、各部分は100データ単位のサイズを有する。ファイル154とは対照的に、ファイル931のどの部分もキャッシュ103上にローカルに記憶されていない。この場合、クライアント装置102がファイル931(またはその部分)にアクセスする要求を識別すると、システム100はデータベース構造200を使用して、ファイル931のどの部分もクライアント装置102上にローカルに記憶されていないと判定する。この判定に応じて、システム100は、ネットワーク101を通じて所望の部分を、ユーザに提供するためにクライアント装置102に送信する。
別の例としては、データベース構造200は、5つの部分に分割されたファイル287を示し、各部分は100データ単位のサイズを有する。これらの5つの部分のうちの2つ(部分1と2)はキャッシュ103中にローカルに記憶されているが、ファイル287の残りの3つの部分(部分3、4、および5)はキャッシュ103中に記憶されていない。この場合、クライアント装置102が部分1と2を要求すると、これらの部分はすでにローカルにキャッシュされているので、システム100がネットワーク101を通じてこれらの部分をクライアント装置102に送信する必要はない。一方、クライアント装置102が部分3、4、および5のうちの1つを要求すると、システム100は要求された1つ以上の部分をクライアント装置102に送信する。
図2に示されるように、様々なファイルの部分は互いに重複しない。しかしながら、本開示の範囲から逸脱することなく、部分は互いに重複してもよいことが理解されるであろう。さらに、データベース構造200は、各ファイルが等しいサイズにされた部分に分割されたファイルを示すが、部分のサイズは異なるファイルに関して異なってよい。一般に、異なるファイルに関して、部分は全て同一のサイズであってよく、または同じファイルに関して、異なるサイズにされた部分が使用されてよい。いくつかの実施形態では、部分が同一のサイズの場合、マップは終了点無しで開始点を、開始点無しで終了点を、または部分の中央点等の別の点を含んでよい。
データベース構造200に示されたエントリは、説明の目的のみに記載されるものであり、本明細書に記載されたマップ中のエントリは、図示されたフィールドのサブセットを含んでよく、および/または、例えばファイル(または部分)が作成されたか最後にアクセスされた日時に対応するタイムスタンプ、ファイルの種類またはファイル部分のコンテンツ、およびファイルの部分の数等の図示されていない他のフィールドを含んでよい。
図2に示されるように、ファイルの部分はあるファイルに関して固定のサイズを有し、また異なるファイルは異なるサイズにされたファイル部分を有してよい。一般に、ファイル部分のサイズは、異なるファイル間および同一のファイル内であっても同一または異なってよい。特に、ファイル部分のサイズは、ネットワーク101上の接続速度の検出に応じて動的に決定されてよい。例えば、部分のサイズは、インターネット接続速度に基づいて動的に決定されてよい。特に、インターネット接続速度が遅い場合、部分のサイズは、インターネット接続速度が速い場合よりも小さくてよい。
部分がクライアント装置102にダウンロードされるかクライアント装置102から削除されると、どの部分がキャッシュ103中に記憶されているかを反映するためにメタファイル104は更新される。特に、データベース構造200は、どの部分がクライアント装置102にキャッシュされ、またどの部分がキャッシュされていないかについての正確な記録を維持するために更新される。
図3は、クライアント装置102からの読み出し要求に応じて、ファイルの部分を提供する例示の方法300のフローチャートである。方法300は、読み出し要求を受信する工程(ステップ302)と、読み出し要求が有効であるかを判定する工程(決定ブロック304)と、読み出し要求中のファイルがキャッシュされているかを判定する工程(決定ブロック308)と、を含む。1つの例では、要求が、例えばファイルの開始前または終了後に発生するデータの要求等の不正確なオフセットを含む場合に、読み出し要求は有効ではないと判定されてよい。さらなる例では、読み出し要求がもはや存在しないもしくは削除されたファイルからのデータを要求する場合、要求されたファイルから読み出す許可をクライアント装置102が有していない場合、要求が特定のファイルではなくフォルダからのデータに関する場合、読み出しデータを置く場所を読み出し要求が用意できない場合、またはそれらの任意の適切な組み合わせの場合、読み出し要求は有効でなくてよい。読み出し要求が有効ではない場合、要求はステップ306において拒絶される。キャッシュ103上にローカルに記憶されている等のファイルがキャッシュされている場合、ステップ310において、ファイルはクライアント装置102を介してユーザに提供される。反対に、ファイルがキャッシュされていない場合、方法はファイルの要求された部分がキャッシュされているかを決定ブロック309において判定する。その場合、ファイルの要求された部分はステップ312においてダウンロードおよびキャッシュされ、ダウンロードされた部分がステップ314においてユーザに提供される。決定ブロック316において、読み出し要求を調べて、まだダウンロードされていないかユーザに提供されていない部分がさらにあるかを判定する。読み出し要求中の全ての部分がダウンロードされてユーザに提供されるまで、ステップ309、311、312、および314が繰り返される。
決定ブロック308で、ファイルがキャッシュされているかの判定は、要求中の任意の部分を識別することを伴ってよい。1つの例では、要求は、20MBのファイルの11MBから15MB等のサイズで表されるファイルの一部を参照してよい。その後、システム100は、データベース構造200等のデータベース構造をマップとして使用し、要求中の部分に対応する適切な部分識別子を識別する。別の例では、要求は適切な部分識別子をすでに参照してよい。システム100は、要求中の任意の部分がクライアント装置102にキャッシュされているかを決定ブロック309において判定する。すでにキャッシュされている任意の部分はステップ311において提供されるが、キャッシュされていない任意の部分はステップ312においてダウンロードされ、ステップ314においてユーザに提供されてよい。
図4は、クライアント装置102からの書き込み要求に応じて、ファイルの部分を提供する例示の方法400のフローチャートである。方法400は、書き込みを受信する工程(ステップ402)と、書き込み要求が有効であるかを判定する工程(決定ブロック404)と、書き込み要求中のファイルがキャッシュされているかを判定する工程(決定ブロック408)と、を含む。書き込み要求は、図3に関し上記されるように、読み出し要求が有効ではないのと同じ理由のいずれかで有効ではない場合がある。さらに、書き込み要求は、所定の制限よりも大きいと無効の場合がある。書き込み要求が有効ではない場合、要求はステップ406において拒絶される。キャッシュ103上にローカルに記憶されている等のファイルがキャッシュされている場合、ステップ410においてファイルはクライアント装置102を介してユーザに提供され、ファイルの修正済み部分がウェブベースのストレージシステム110にステップ411においてアップロードされる。反対に、ファイルがキャッシュされていない場合、方法はファイルの要求された部分がキャッシュされているかを決定ブロック409において判定する。キャッシュされていない場合、ファイルの要求された部分はステップ412においてダウンロードおよびキャッシュされ、ダウンロードされた部分がステップ414においてユーザに提供される。反対に、ファイルの要求された部分が、決定ブロック409で判定すでにキャッシュされている場合は、方法400は、ステップ414に直接進み、ダウンロードされた部分をユーザに提供する。決定ブロック416において、提供された部分をユーザが修正したかどうかが判定される。修正した場合、修正済み部分はステップ418においてアップロードされる。そうでなければ、読み出し要求を調べて、まだダウンロードされていないかユーザに提供されていない部分がさらにあるかを決定ブロック420において判定する。書き込み要求中の全ての部分がダウンロードされてユーザに提供されるまで、ステップ409、412、414、416、および418が繰り返される。
図5は、クライアント装置でファイルの部分にアクセスする例示の方法500のフローチャートである。方法500は、クライアント装置へのダウンロードのためにファイルの1つ以上の部分を選択する工程であって、ファイルは、ネットワークを介してクライアント装置と通信をするウェブベースのストレージシステム上に記憶されている工程(ステップ502)と、選択された1つ以上の部分における、クライアント装置上に記憶されていない少なくとも1つの部分を識別する工程(ステップ504)と、ファイルの識別された少なくとも1つの部分をダウンロードするために、要求を、ユーザ対話なしに、ウェブベースのストレージシステムに送信する工程(ステップ506)と、ファイルの識別された少なくとも1つの部分を、ネットワークを介してクライアント装置にダウンロードする工程(ステップ508)と、を含む。
ステップ502において、クライアント装置へのダウンロードのためにファイルの1つ以上の部分が選択される。ファイルは、ネットワークを介してクライアント装置と通信をするウェブベースのストレージシステム上に記憶されている。いくつかの実施形態では、ファイルが文書に対応する場合、文書の第1の部分は、クライアント装置102を操作するユーザに、ディスプレイ105を通じて提供されてよい。ファイルの選択された1つ以上の部分は、第1の部分に隣接する文書の第2および第3の部分に対応してよい。加えてまたは代わりに、ファイルの選択された1つ以上の部分は、ファイルの過去の閲覧パターンに基づいて決定されてよい。例えば、ユーザが文書の上から下の方向にスクロールしている場合、ファイルの選択された1つ以上の部分は、次に閲覧されると予測される部分を含んでよい。さらに、部分には、スクロールの方向に基づいて決定される優先スコアが付与されてよい。例えば、文書において他の部分の上に出現する部分には、低い部分よりも高い優先スコアが付与されてよく、高い優先スコアを有する部分は他の部分の前にダウンロードされてよい。加えてまたは代わりに、ファイルの選択された1つ以上の部分は、ファイルの判定された編集作業に基づいて決定されてよい。例えば、まだユーザに閲覧されていないが、1人以上の他のユーザに大量に編集されたファイルの部分は、少なく編集された他の部分よりも優先されてよい。
いくつかの実施形態では、ファイルの1つ以上の部分のサイズは、ネットワークの接続速度と、ファイルの種類と、クライアント装置のユーザによって要求されると予測されるファイル中のデータの量と、のうちの少なくとも1つに基づいて決定される。図1に関し記載されるように、遅い接続速度は、ネットワーク101の接続速度が速い場合よりも小さな部分に関連付けられてよい。さらに、ファイルが、学校に在籍する生徒等の記録を追跡するデータベースを含む場合、このファイルは、特定の用途に適切なサイズにされた部分に分割されてよい。例えば、部分は一人の生徒の記録を含むサイズにされてよい。
ステップ504において、選択された1つ以上の部分における、クライアント装置上に記憶されていない少なくとも1つの部分が識別される。例えば、ステップ502において選択された1つ以上の部分は、メタファイル中の、図2に関し示され記載されたデータベース構造200等のエントリと比較されてよい。特に、メタファイル中の各エントリは、選択された1つ以上の部分の各々を識別する部分識別子への参照を含んでよい。メタファイル中の各エントリは、選択された1つ以上の部分の各々がクライアント装置上に記憶されているかどうかを示す標識をさらに含んでよい。
ステップ506において、ファイルの識別された少なくとも1つの部分をダウンロードするために、要求は、ユーザ対話なしに(または言い換えれば自律的に)、ウェブベースのストレージシステムに送信される。いくつかの実施形態では、ファイルのコンテンツをクライアント装置に表示するために、アプリケーションがクライアント装置にインストールされており、アプリケーションは、変更無しで、ファイルの選択された1つ以上の部分の表示が可能である。特に、ファイルの全体がローカルにキャッシュされている場合は、ファイルを開くために使用されるアプリケーションは、ファイル部分を開くのに使用可能な同一のアプリケーションであり、ファイルの部分を開くことを可能にするためのアプリケーションの変更は不要である。一般に、本開示のシステムおよび方法は、ファイルの関連する部分が初めにキャッシュされているか否かに関わらず、ユーザによるクライアント装置との通常の対話の変更の必要なく、ユーザのクライアント装置に実装されてよい。
ステップ508において、ファイルの識別された少なくとも1つの部分はネットワークを介してクライアント装置にダウンロードされる。特に、識別された少なくとも1つの部分はウェブベースのストレージシステム110によってクライアント装置102に送信される。送信された部分がクライアント装置102上に記憶される前に、送信された部分は暗号化されてよい。上記のように、暗号化方法は、同一ファイルの他の部分に使用される同一の鍵および異なる初期化ベクトルの使用を含んでよい。さらに、異なる初期化ベクトルはメタファイル104中またはデータベース構造200中にフィールドエントリとして記憶されてよい。
図6は、本明細書に記載された処理のいずれかを実行する、図1のシステムの任意の構成要素等のコンピューティング装置のブロック図である。これらのシステムの構成要素の各々は1つ以上のコンピューティング装置600に実装されてよい。ある態様では、これらのシステムの複数の構成要素が1つのコンピューティング装置600内に含まれてよい。ある実装では、構成要素およびストレージ装置は、複数のコンピューティング装置600間に実装してよい。
コンピューティング装置600は、少なくとも1つの通信インターフェイスユニットと、入出力コントローラ610と、システムメモリと、1つ以上のデータストレージ装置と、を備える。システムメモリは、少なくとも1つのRAM(random access memory)602および少なくとも1つのROM(read−only memory)1004を含む。これらの要素の全ては、コンピューティング装置600の動作を行うためにCPU(central processing unit)606と通信をしている。コンピューティング装置600は様々な異なる方法で構成されてよい。例えば、コンピューティング装置600は通常のスタンドアローンコンピュータでよく、または代わりに、コンピューティング装置600の機能は複数のコンピュータシステムとアーキテクチャ間に分散されてよい。図6では、コンピューティング装置600は、ネットワークまたはローカルネットワークを介して、他のサーバまたはシステムに接続している。
コンピューティング装置600は分散アーキテクチャに構成されてよく、データベースおよびプロセッサは、別個のユニットまたは場所に収納されている。いくつかのユニットは、1次処理機能を実行し、一般のコントローラまたはプロセッサおよびシステムメモリを少なくとも含む。分散アーキテクチャの実装においては、これらのユニットの各々は、他のサーバ、クライアント、またはユーザコンピュータおよび他の関連装置との1次通信リンクとして機能する通信ハブまたはポート(図示せず)に、通信インターフェイスユニット608を介して、接続している。通信ハブまたはポートは、専ら通信ルータとして機能する最小限の処理能力を有してよい。様々な通信プロトコルは、システムの一部であってよく、Ethernet(登録商標)、SAP、SAS(登録商標)、ATP、BLUETOOTH(登録商標)、GSM(登録商標)、及びTCP/IPを含むがそれに限定されるものではない。
CPU606は、1つ以上の通常のマイクロプロセッサ等のプロセッサ、および1つ以上の、CPU606から仕事量をオフロードする数値演算コプロセッサ等の、補助的なコプロセッサを備える。CPU606は通信インターフェイスユニット608および入出力コントローラ610と通信しており、それを通じてCPU606は、他のサーバ、ユーザ端末、または装置等の他の装置と通信する。通信インターフェイスユニット608および入出力コントローラ610は、例えば他のプロセッサ、サーバ、またはクライアント装置と同時通信する複数の通信チャンネルを含んでよい。
CPU606はまた、データストレージ装置と通信をしている。データストレージ装置は、磁気、光学、または半導体メモリの適切な組み合わせを備えてよく、また、例えばRAM602、ROM604、フラッシュドライブ、コンパクトディスク等の光学ディスク、またはハードディスクもしくはドライブを含んでよい。CPU606およびデータストレージ装置の各々は、例えば、単一のコンピュータまたは他のコンピューティング装置内に完全に配置されるか、またはUSBポート、シリアルポートケーブル、同軸ケーブル、イーサネット(登録商標)ケーブル、電話線、無線周波数トランシーバもしくは他の類似の無線または有線の媒体、または前述の組み合わせ等の通信媒体によって互いに接続されてよい。例えば、CPU606はデータストレージ装置に通信インターフェイスユニット608を介して接続されてよい。CPU606は、1つ以上の特定の処理機能を実行するよう構成されてよい。
データストレージ装置は、例えば、(i)コンピューティング装置600のオペレーティングシステム612、(ii)本明細書に記載されたシステムおよび方法に従って、特にCPU606に関して詳細に記載された処理に従ってCPU606を監督するよう適合された1つ以上のアプリケーション614(例えば、コンピュータプログラムコードまたはコンピュータプログラム製品)、または(iii)プログラムに要求された情報を記憶するために使用され得る情報を記憶するよう適合されたデータベース616、を記憶してよい。
オペレーティングシステム612はおよびアプリケーション614は、例えば、圧縮、未コンパイル、および暗号化形式で記憶されてよく、またコンピュータプログラムコードを含んでよい。プログラムの命令は、ROM604またはRAM602等のデータストレージ装置以外のコンピュータ可読媒体からプロセッサのメインメモリに読み込まれてよい。プログラムにおける一連の命令を実行することで、CPU606に本明細書に記載された処理ステップを実行させるが、ハードワイヤード回路が、本開示の処理の実装のためのソフトウェア命令の代わりにあるいはソフトウェア命令と組み合わせて使用されてよい。したがって、記載されたシステムおよび方法は、ハードウェアおよびソフトウェアの任意の特定の組み合わせに限定されない。
適切なコンピュータプログラムコードが、本明細書に記載された任意の処理に関し1つ以上の機能を実行するために提供されてよい。プログラムはまた、プロセッサに、入出力コントローラ610を介してコンピュータ周辺装置(例えばビデオディスプレイ、キーボード、コンピュータマウス等)と連動することを可能にするオペレーティングシステム612、データベース管理システム、および「デバイスドライバ」等のプログラム要素を含んでよい。
本明細書で使用される用語「コンピュータ可読媒体」は、実行のための命令をコンピューティング装置600(または本明細書に記載された装置の任意の他のプロセッサ)のプロセッサに提供するまたは提供に関与する任意の非一時的な媒体ことを言う。そのような媒体は、非揮発性媒体および揮発性媒体を含むがそれに限定されるものではない複数の形態をとってよい。非揮発性媒体は、例えば、光学、磁気、もしくは光磁気ディスク、またはフラッシュメモリ等の集積回路メモリを含む。揮発性媒体は、典型的にはメインメモリを構成するDRAM(dynamic random access memory)を含む。コンピュータ可読媒体の一般的な形態は、例えば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、任意の他の磁気媒体、CD−ROM、DVD、任意の他の光学媒体、パンチカード、紙テープ、穿孔のパターンを有する任意の他の物理的媒体、RAM、PROM、EPROMもしくはEEPROM(electronically erasable programmable read−only memory)、FLASH−EEPROM、任意の他のメモリチップもしくはカートリッジ、またはコンピュータが読み込み可能な任意の他の非一時的媒体を含む。
実行用のCPU606(または本明細書に記載された装置の任意の他のプロセッサ)に1つ以上の一連の1つ以上の命令を取得することにおいて、コンピュータ可読媒体の様々な形態が含まれてよい。例えば、命令は最初はリモートコンピュータ(図示せず)の磁気ディスク上にあってよい。リモートコンピュータは命令を自身のダイナミックメモリにロードし、命令をイーサネット接続、ケーブル線、またはモデムを使用する電話線さえも通じて送信することが可能である。コンピューティング装置600(例えばサーバ)に対してローカルな通信装置は、それぞれの通信回線上のデータを受信し、データをプロセッサ用にシステムバスに置くことが可能である。システムバスは、メインメモリにデータを運び、プロセッサがそこから命令を取得して実行する。メインメモリによって受信された命令は、プロセッサによる実行の前または後に選択的にメモリ中に記憶されてよい。加えて、命令は通信ポートを介して電気信号、電磁または光学信号として受信される。これらの信号は、様々な種類の情報を運ぶ無線通信またはデータストリームの典型的な形態である。
本開示の様々な実施形態が本明細書に示され記載されているが、当業者にとっては、そのような実施形態は例としての目的でのみ提供されることが明らかである。数々の変形、変更、および置き換えが、本開示から逸脱することなく、当業者にとって明らかである。本開示に記載の本発明の実施形態に対する様々な代替が、本開示の実施に際して用いられてよいことが理解されるべきである。

Claims (20)

  1. クライアント装置においてファイルの部分にアクセスする方法であって、
    少なくとも1つのコンピュータプロセッサが、前記クライアント装置へのダウンロードのためにファイルの1つ以上の部分を選択する工程であって、前記ファイルは、ネットワークを介して前記クライアント装置と通信をするウェブベースのストレージシステム上に記憶されている工程と、
    選択された前記1つ以上の部分における、前記クライアント装置上に記憶されていない少なくとも1つの部分を識別する、識別工程と、
    前記ファイルの識別された前記少なくとも1つの部分をダウンロードするために、要求を、ユーザ対話なしに、前記ウェブベースのストレージシステムに送信する工程と、
    前記ファイルの識別された前記少なくとも1つの部分を、前記ネットワークを介して前記クライアント装置にダウンロードする工程と、を備える方法。
  2. 前記識別工程は、選択された前記1つ以上の部分を、メタファイル中のエントリと比較する工程を含み、前記メタファイル中の各エントリは、選択された前記1つ以上の部分の各々を識別する部分識別子と、選択された前記1つ以上の部分の各々が前記クライアント装置上に記憶されているかどうかを示す標識とを含む、請求項1に記載の方法。
  3. 前記メタファイルは前記クライアント装置上に記憶され、前記クライアント装置のユーザにとってアクセス可能ではない、請求項2に記載の方法。
  4. 識別された前記少なくとも1つの部分がダウンロードされた後に、識別された前記少なくとも1つの部分が前記クライアント装置上に記憶されたことを反映するために前記メタファイルを更新する工程をさらに備える、請求項2または3に記載の方法。
  5. 前記ファイルは文書に対応し、前記方法は、前記文書の第1の部分のビューを、前記クライアント装置を操作するユーザに提供する工程であって、前記ファイルの選択された前記1つ以上の部分は、前記第1の部分に隣接する前記文書の第2および第3の部分を含む工程をさらに備える、請求項1乃至4のいずれか一項に記載の方法。
  6. 前記ファイルの選択された前記1つ以上の部分は、前記ファイルの過去の閲覧パターンまたは前記ファイルの編集作業に基づいて決定される優先スコアが付与される前記ファイルの部分に対応する、請求項1乃至5のいずれか一項に記載の方法。
  7. 前記ファイルのコンテンツを前記クライアント装置に表示するために、アプリケーションが前記クライアント装置にインストールされており、前記アプリケーションは、変更無しで、前記ファイルの選択された前記1つ以上の部分の表示が可能である、請求項1乃至6のいずれか一項に記載の方法。
  8. 前記クライアント装置上に前記ファイルの識別された前記少なくとも1つの部分が記憶される前に、前記ファイルの識別された前記少なくとも1つの部分を暗号化する工程であって、前記暗号化は、第1鍵と第1初期化ベクトルとの使用を含み、前記第1鍵と前記第1初期化ベクトルとは異なる第2初期化ベクトルとが使用されて、前記クライアント装置に記憶される前記ファイルの別の部分を暗号化する工程をさらに備える、請求項1乃至7のいずれか一項に記載の方法。
  9. 前記第1初期化ベクトルおよび前記第2初期化ベクトルをメタファイルに記憶する工程をさらに備え、前記メタファイル中の各エントリは、選択された前記1つ以上の部分の各々を識別する部分識別子と、選択された前記1つ以上の部分の各々が前記クライアント装置上に記憶されているかどうかを示す標識とを含む、請求項8に記載の方法。
  10. 前記ファイルの前記1つ以上の部分のサイズを、前記ネットワークの接続速度と、前記ファイルの種類と、前記クライアント装置のユーザによって要求されると予測される前記ファイル中のデータの量と、のうちの少なくとも1つに基づいて決定する工程をさらに備える、請求項1乃至9のいずれか一項に記載の方法。
  11. クライアント装置においてファイルの部分にアクセスするシステムであって、前記システムは少なくとも1つのコンピュータプロセッサを備え、前記少なくとも1つのコンピュータプロセッサは、
    前記クライアント装置へのダウンロードのためにファイルの1つ以上の部分を選択する工程であって、前記ファイルは、ネットワークを介して前記クライアント装置と通信をするウェブベースのストレージシステム上に記憶されている工程と、
    選択された前記1つ以上の部分における、前記クライアント装置上に記憶されていない少なくとも1つの部分を識別する、識別工程と、
    前記ファイルの識別された前記少なくとも1つの部分をダウンロードするために、要求を、ユーザ対話なしに、前記ウェブベースのストレージシステムに送信する工程と、
    前記ファイルの識別された前記少なくとも1つの部分を、前記ネットワークを介して前記クライアント装置にダウンロードする工程と、を行うように構成されているシステム。
  12. 前記識別工程を、選択された前記1つ以上の部分を、メタファイル中のエントリと比較することによって行い、前記メタファイル中の各エントリは、選択された前記1つ以上の部分の各々を識別する部分識別子と、選択された前記1つ以上の部分の各々が前記クライアント装置上に記憶されているかどうかを示す標識とを含む、請求項11に記載のシステム。
  13. 前記メタファイルは前記クライアント装置上に記憶され、前記クライアント装置のユーザにとってアクセス可能ではない、請求項12に記載のシステム。
  14. 前記少なくとも1つのコンピュータプロセッサは、識別された前記少なくとも1つの部分がダウンロードされた後に、識別された前記少なくとも1つの部分が前記クライアント装置上に記憶されたことを反映するために前記メタファイルを更新することを行うようにさらに構成されている、請求項12または13に記載のシステム。
  15. 前記ファイルは文書に対応し、前記少なくとも1つのコンピュータプロセッサは、前記文書の第1の部分のビューを、前記クライアント装置を操作するユーザに提供するようにさらに構成されており、前記ファイルの選択された前記1つ以上の部分は、前記第1の部分に隣接する前記文書の第2および第3の部分を含む、請求項11乃至14のいずれか一項に記載のシステム。
  16. 前記ファイルの選択された前記1つ以上の部分は、前記ファイルの過去の閲覧パターンまたは前記ファイルの編集作業に基づいて決定される優先スコアが付与される前記ファイルの部分に対応する、請求項11乃至15のいずれか一項に記載のシステム。
  17. 前記ファイルのコンテンツを前記クライアント装置に表示するために、アプリケーションが前記クライアント装置にインストールされており、前記アプリケーションは、変更無しで、前記ファイルの選択された前記1つ以上の部分の表示が可能である、請求項11乃至16のいずれか一項に記載のシステム。
  18. 前記少なくとも1つのコンピュータプロセッサは、前記クライアント装置上に前記ファイルの識別された前記少なくとも1つの部分が記憶される前に、前記ファイルの識別された前記少なくとも1つの部分を、第1鍵と第1初期化ベクトルとを使用することで暗号化するようにさらに構成されており、前記第1鍵と前記第1初期化ベクトルとは異なる第2初期化ベクトルとが使用されて、前記クライアント装置に記憶される前記ファイルの別の部分を暗号化する、請求項11乃至17のいずれか一項に記載のシステム。
  19. 前記少なくとも1つのコンピュータプロセッサは、前記第1初期化ベクトルおよび前記第2初期化ベクトルをメタファイルに記憶するようにさらに構成されており、前記メタファイル中の各エントリは、選択された前記1つ以上の部分の各々を識別する部分識別子と、選択された前記1つ以上の部分の各々が前記クライアント装置上に記憶されているかどうかを示す標識とを含む、請求項18に記載のシステム。
  20. 前記少なくとも1つのコンピュータプロセッサは、前記ファイルの前記1つ以上の部分のサイズを、前記ネットワークの接続速度と、前記ファイルの種類と、前記クライアント装置のユーザによって要求されると予測される前記ファイル中のデータの量と、のうちの少なくとも1つに基づいて決定するようにさらに構成されている、請求項11乃至19のいずれか一項に記載のシステム。
JP2017557147A 2015-09-14 2016-09-01 コンテンツの記憶および取得用のシステムおよび方法 Active JP6789244B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/853,214 2015-09-14
US14/853,214 US10887371B2 (en) 2015-09-14 2015-09-14 Systems and methods for content storage and retrieval
PCT/US2016/049848 WO2017048517A1 (en) 2015-09-14 2016-09-01 Systems and methods for content storage and retrieval

Publications (2)

Publication Number Publication Date
JP2018526700A true JP2018526700A (ja) 2018-09-13
JP6789244B2 JP6789244B2 (ja) 2020-11-25

Family

ID=56896835

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017557147A Active JP6789244B2 (ja) 2015-09-14 2016-09-01 コンテンツの記憶および取得用のシステムおよび方法

Country Status (8)

Country Link
US (2) US10887371B2 (ja)
EP (1) EP3350722B1 (ja)
JP (1) JP6789244B2 (ja)
KR (1) KR102072854B1 (ja)
CN (1) CN107810499B (ja)
DE (2) DE112016004168T5 (ja)
GB (1) GB2555952B (ja)
WO (1) WO2017048517A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10255242B2 (en) * 2016-06-29 2019-04-09 RedCritter Corp. Communications platform for implementing a recognition and reward system
US10484354B2 (en) * 2017-02-15 2019-11-19 Telefonaktiebolaget Lm Ericsson (Publ) Data owner restricted secure key distribution
US11533384B2 (en) * 2020-03-20 2022-12-20 International Business Machines Corporation Predictive provisioning of cloud-stored files

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010175849A (ja) * 2009-01-29 2010-08-12 Canon Inc 情報処理システム、その処理方法、情報処理装置及びプログラム
JP2011216115A (ja) * 2011-07-15 2011-10-27 Hitachi Ltd ダウンロード制御装置
US20120084405A1 (en) * 2006-09-05 2012-04-05 Adobe Systems Incorporated Methods And Apparatus For Optimizing Responsiveness Of Portable Documents
JP2013081158A (ja) * 2011-08-18 2013-05-02 Apple Inc ネットワークパフォーマンスに基づく、ネットワークベースのデジタルデータリポジトリからのダウンロードの管理
US20130305039A1 (en) * 2011-05-14 2013-11-14 Anthony Francois Gauda Cloud file system
JP2014203280A (ja) * 2013-04-05 2014-10-27 富士通株式会社 データ管理プログラム,データ管理装置およびデータ管理方法
WO2014206749A1 (en) * 2013-06-28 2014-12-31 Thomson Licensing Method for adapting the downloading behavior of a client terminal configured to receive multimedia content, and corresponding terminal.
WO2015084890A1 (en) * 2013-12-03 2015-06-11 Amazon Technologies, Inc. Data transfer optimizations
US20150200988A1 (en) * 2014-01-13 2015-07-16 Facebook, Inc. Systems and methods for streaming digital content using an intermediate server

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0862664B1 (en) 1995-10-27 2003-01-02 Specialty Coating Systems, Inc. Method and apparatus for the deposition of parylene af4 onto semiconductor wafers
US6516339B1 (en) * 1999-08-18 2003-02-04 International Business Machines Corporation High performance client/server editor
US7630986B1 (en) * 1999-10-27 2009-12-08 Pinpoint, Incorporated Secure data interchange
US6842770B1 (en) * 2000-08-18 2005-01-11 Apple Computer, Inc. Method and system for seamlessly accessing remotely stored files
GB0510991D0 (en) 2005-05-28 2005-07-06 Xaar Technology Ltd Method of printhead passivation
GB0513375D0 (en) * 2005-06-30 2005-08-03 Retento Ltd Computer security
US7660581B2 (en) * 2005-09-14 2010-02-09 Jumptap, Inc. Managing sponsored content based on usage history
US8697458B2 (en) 2009-04-22 2014-04-15 Shat-R-Shield, Inc. Silicone coated light-emitting diode
WO2011020088A1 (en) * 2009-08-14 2011-02-17 Azuki Systems, Inc. Method and system for unified mobile content protection
US20150205489A1 (en) * 2010-05-18 2015-07-23 Google Inc. Browser interface for installed applications
CN102024054A (zh) * 2010-12-10 2011-04-20 中国科学院软件研究所 一种面向密文云存储的文档检索方法与系统
CN102075542B (zh) * 2011-01-26 2012-12-19 中国科学院软件研究所 一种云计算数据安全支撑平台
US8924500B2 (en) * 2011-03-29 2014-12-30 Amazon Technologies, Inc. Local storage linked to networked storage system
CN102520922B (zh) * 2011-11-14 2016-04-13 上海交通大学 一种协作环境下的远程开发方法及其系统
US8886752B2 (en) * 2011-11-21 2014-11-11 Sony Computer Entertainment America System and method for optimizing transfers of downloadable content
US9542466B2 (en) * 2012-05-10 2017-01-10 Aetherstore Inc. Systems and methods for distributed storage
WO2013192222A2 (en) 2012-06-18 2013-12-27 Hzo, Inc. Systems and methods for applying protective coatings to internal surfaces of fully assembled electronic devices
CN102882923B (zh) * 2012-07-25 2015-04-15 北京亿赛通科技发展有限责任公司 移动终端安全存储系统及方法
US20140036519A1 (en) * 2012-08-01 2014-02-06 Raymond L. Cloward Spiraling support tube
US10140269B2 (en) * 2013-03-12 2018-11-27 Microsoft Technology Licensing, Llc Viewing effects of proposed change in document before committing change
US9538232B2 (en) * 2013-03-14 2017-01-03 Verizon Patent And Licensing Inc. Chapterized streaming of video content
CN104079704A (zh) * 2013-03-26 2014-10-01 联想(北京)有限公司 对数据进行同步的移动终端和服务器及相应的方法
CN104079615B (zh) * 2013-03-29 2018-11-09 联想(北京)有限公司 文件下载方法和信息处理装置
US9405767B2 (en) * 2013-05-01 2016-08-02 Microsoft Technology Licensing, Llc Streaming content and placeholders
US9665501B1 (en) * 2013-06-18 2017-05-30 Western Digital Technologies, Inc. Self-encrypting data storage device supporting object-level encryption
CN104468664A (zh) * 2013-09-18 2015-03-25 中兴通讯股份有限公司 一种上传文件到云存储系统的方法、下载方法及装置
US9326026B2 (en) 2013-10-31 2016-04-26 At&T Intellectual Property I, Lp Method and apparatus for content distribution over a network
CN104717240A (zh) * 2013-12-12 2015-06-17 鸿合科技有限公司 文件网络共享方法及装置
CN104717254B (zh) * 2013-12-12 2019-01-08 华为技术有限公司 文件访问的方法和云网关
CN104158857B (zh) * 2014-07-25 2017-10-27 中南大学 一种提供网络化操作系统服务的装置和方法
US9916206B2 (en) * 2014-09-30 2018-03-13 Code 42 Software, Inc. Deduplicated data distribution techniques
US9959280B1 (en) * 2014-09-30 2018-05-01 EMC IP Holding Company LLC Garbage collection of data tiered to cloud storage
US11461533B2 (en) * 2014-10-15 2022-10-04 International Business Machines Corporation Generating a document preview
US20170149860A1 (en) * 2014-10-19 2017-05-25 Tensera Networks Ltd. Partial prefetching of indexed content
US10929353B2 (en) * 2015-04-29 2021-02-23 Box, Inc. File tree streaming in a virtual file system for cloud-based shared content
US10190701B2 (en) 2015-05-07 2019-01-29 Applied Materials, Inc. Corrosion control for chamber components

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120084405A1 (en) * 2006-09-05 2012-04-05 Adobe Systems Incorporated Methods And Apparatus For Optimizing Responsiveness Of Portable Documents
JP2010175849A (ja) * 2009-01-29 2010-08-12 Canon Inc 情報処理システム、その処理方法、情報処理装置及びプログラム
US20130305039A1 (en) * 2011-05-14 2013-11-14 Anthony Francois Gauda Cloud file system
JP2011216115A (ja) * 2011-07-15 2011-10-27 Hitachi Ltd ダウンロード制御装置
JP2013081158A (ja) * 2011-08-18 2013-05-02 Apple Inc ネットワークパフォーマンスに基づく、ネットワークベースのデジタルデータリポジトリからのダウンロードの管理
JP2014203280A (ja) * 2013-04-05 2014-10-27 富士通株式会社 データ管理プログラム,データ管理装置およびデータ管理方法
WO2014206749A1 (en) * 2013-06-28 2014-12-31 Thomson Licensing Method for adapting the downloading behavior of a client terminal configured to receive multimedia content, and corresponding terminal.
WO2015084890A1 (en) * 2013-12-03 2015-06-11 Amazon Technologies, Inc. Data transfer optimizations
US20150200988A1 (en) * 2014-01-13 2015-07-16 Facebook, Inc. Systems and methods for streaming digital content using an intermediate server

Also Published As

Publication number Publication date
EP3350722A1 (en) 2018-07-25
GB201717893D0 (en) 2017-12-13
DE112016004168T5 (de) 2018-06-21
KR102072854B1 (ko) 2020-02-03
GB2555952B (en) 2021-10-06
WO2017048517A1 (en) 2017-03-23
DE202016107380U1 (de) 2017-02-06
KR20170134586A (ko) 2017-12-06
US20210126963A1 (en) 2021-04-29
EP3350722B1 (en) 2021-02-17
US10887371B2 (en) 2021-01-05
US20170078362A1 (en) 2017-03-16
CN107810499B (zh) 2022-03-25
GB2555952A (en) 2018-05-16
JP6789244B2 (ja) 2020-11-25
US11930070B2 (en) 2024-03-12
CN107810499A (zh) 2018-03-16

Similar Documents

Publication Publication Date Title
US11930070B2 (en) Systems and methods for content storage and retrieval
US20170364245A1 (en) Predictive caching and fetch priority
EP2279602B1 (en) Systems and methods for remoting multimedia plugin calls
US20190089810A1 (en) Resource access method, apparatus, and system
US10521116B2 (en) System and method for managing object store
JP2017504850A (ja) 接続された装置のデータ管理
CN106817388B (zh) 虚拟机、宿主机获取数据的方法、装置及访问数据的系统
CN108427677B (zh) 一种对象访问方法、装置及电子设备
US10009399B2 (en) Asset streaming and delivery
US10673975B2 (en) Content streaming service method for reducing communication cost and system therefor
KR20120102972A (ko) 클라우드 환경에서의 데이터 암호화 처리 장치 및 방법
US20160142486A1 (en) Data-access system and method for storing data and reading data
US20210209243A1 (en) Restrictions on virtualized sessions using risk factor assessment
CN105283921A (zh) 非易失性存储器的操作
CN106657182B (zh) 云端文件处理方法和装置
US20150163223A1 (en) Managing Resources In A Distributed Computing Environment
JP2010277517A (ja) ファイル管理サーバ、ファイル管理システム、ファイル管理プログラム、及びファイル管理方法
JP2009064055A (ja) 計算機システム及びセキュリティ管理方法
US20150106884A1 (en) Memcached multi-tenancy offload
US20190079875A1 (en) Efficient provisioning of virtual machines to endpoint computing environment
US10853057B1 (en) Software library versioning with caching
US7664916B2 (en) Global smartcard cache methods and apparatuses
JP2007128273A (ja) 分散型データアーカイブ装置及びシステム
US11403461B2 (en) System and method for redacting data from within a digital file
EP2930607A1 (en) Method and apparatus for increasing available portable memory storage space

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180309

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190226

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190524

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190823

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200421

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201102

R150 Certificate of patent or registration of utility model

Ref document number: 6789244

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250