(57)【要約】  ネットワークアクセス可能ストレージ内に記憶されたメディアファイルの少なくとも1つの縮小サイズバージョンを、デバイスのローカルメモリ内に記憶するステップと、デバイスの少なくとも1つのプロセッサによって実行されるオペレーティングシステムのファイルシステムを介して、メディアファイルにアクセスするための要求を受信するステップと、要求の分析に基づいて、ネットワークアクセス可能ストレージからメディアファイルのコピーを取り出して、コピーによって要求に応答するためにネットワークインタフェースを使用するか、または、縮小サイズバージョンのうちの少なくとも1つによって要求に応答するかを決定するステップとを含む、ファイルへのアクセスを管理するためのシステムおよび方法。
2018524644.tif 000002
【特許請求の範囲】
【請求項１】
ファイルへのアクセスを管理するデバイス(10)であって、
ネットワークインタフェース(12)と、
ネットワークアクセス可能ストレージ(50)内に記憶されたメディアファイル(52)の少なくとも1つの縮小サイズバージョン(22)を記憶するように適合されたローカルメモリ(20)と、
少なくとも1つのプロセッサ(14)とを含み、前記少なくとも1つのプロセッサは、
前記少なくとも1つのプロセッサによって実行されるオペレーティングシステム(16)のファイルシステム(18)を介して、前記メディアファイル(52)にアクセスするための要求を受信し、
前記要求の分析に基づいて、
(1) 前記ネットワークアクセス可能ストレージから前記メディアファイルのコピーを取り出して、前記コピーによって前記要求に応答するために前記ネットワークインタフェースを使用するか、または、
(2) 前記縮小サイズバージョンのうちの1つによって前記要求に応答するか
を決定し、
前記決定に従って、前記要求に応答するように適合される、デバイス。
【請求項２】
前記分析は、前記要求を提出するアプリケーションまたはオペレーティングシステムのサービスまたはデバイスフレームワークサービスのうちの少なくとも1つの特性の分析を含む、請求項1に記載のデバイス。
【請求項３】
前記要求は、カーネルレベルのIO操作を介して受信される、請求項1に記載のデバイス。
【請求項４】
前記分析は、前記要求を提出することに先立って、前記要求を提出するアプリケーションによって実行される少なくとも1つの動作の分析を含む、請求項1乃至3のいずれか1項に記載のデバイス。
【請求項５】
前記少なくとも1つのプロセッサは、前記少なくとも1つの縮小サイズバージョンと併せて、前記メディアファイルのフルバージョン（52a）を記憶することを命令するように適合される、請求項1乃至4のいずれか1項に記載のデバイス。
【請求項６】
前記少なくとも1つのプロセッサは、前記縮小サイズバージョンへのアクセスの少なくとも1つのアクセス特性を監視するとともに、前記少なくとも1つのアクセス特性に従って、前記ローカルメモリから前記フルバージョンを削除することを命令するように適合される、請求項5に記載のデバイス。
【請求項７】
前記メディアファイルは、画像、ビデオ、一組の画像、およびオーディオファイル、およびグラフィックデータファイルから成るグループのメンバを符号化する、請求項1乃至6のいずれか1項に記載のデバイス。
【請求項８】
前記ローカルメモリは不揮発性メモリである、請求項1乃至7のいずれか1項に記載のデバイス。
【請求項９】
前記縮小サイズバージョンのうちの少なくとも1つの記憶サイズは、元のメディアファイルの前記記憶サイズと固定関係である、請求項1乃至8のいずれか1項に記載のデバイス。
【請求項１０】
前記縮小サイズバージョンのうちの少なくとも1つの記憶サイズは、事前に決定された固定サイズである、請求項1乃至9のいずれか1項に記載のデバイス。
【請求項１１】
前記少なくとも1つのプロセッサは、前記ネットワークインタフェースに、前記ネットワークアクセス可能ストレージでの記憶のために前記メディアファイルを送信するように命令するように適合され、前記縮小サイズバージョンのうちの少なくとも1つは、前記ローカルメモリでの記憶のために前記ネットワークインタフェースを介して受信される、請求項1乃至10のいずれか1項に記載のデバイス。
【請求項１２】
前記少なくとも1つのプロセッサは、前記ネットワークインタフェースに、前記ネットワークアクセス可能ストレージでの記憶のために前記メディアファイルを送信するように命令するように適合され、前記縮小サイズバージョンのうちの少なくとも1つは、前記ローカルメモリでの記憶のためにメディアサイズを低減するように適合された少なくとも1つのプロセッサによって、前記デバイス上でローカルに生成される、請求項1乃至11のいずれか1項に記載のデバイス。
【請求項１３】
ファイルへのアクセスを管理する方法であって、
ネットワークアクセス可能ストレージ内に記憶されたメディアファイルの少なくとも1つの縮小サイズバージョンを、デバイスのローカルメモリ内に記憶するステップと、
前記デバイスの少なくとも1つのプロセッサによって実行されるオペレーティングシステムのファイルシステムを介して、前記メディアファイルにアクセスするための要求を受信するステップと、
前記要求の分析に基づいて、
(1) 前記ネットワークアクセス可能ストレージから前記メディアファイルのコピーを取り出して、前記コピーによって前記要求に応答するために前記ネットワークインタフェースを使用するか、または、
(2) 前記縮小サイズバージョンのうちの少なくとも1つによって前記要求に応答するか
を決定するステップとを含む、方法。
【請求項１４】
ファイルへのアクセスを管理するためのソフトウェアプログラム製品であって、
非一時的コンピュータ可読記憶媒体と、
ネットワークアクセス可能ストレージ内に記憶されたメディアファイルの少なくとも1つの縮小サイズバージョンを、デバイスのローカルメモリ内に記憶するための第1のプログラム命令と、
前記デバイスの少なくとも1つのプロセッサによって実行されるオペレーティングシステムのファイルシステムを介して、前記メディアファイルにアクセスするための要求を受信するための第2のプログラム命令と、
前記要求の分析に基づいて、
(1) 前記ネットワークアクセス可能ストレージから前記メディアファイルのコピーを取り出して、前記コピーによって前記要求に応答するために前記ネットワークインタフェースを使用するか、または、
(2) 前記縮小サイズバージョンのうちの少なくとも1つによって前記要求に応答するか
を決定するための第3のプログラム命令とを含み、
前記第1、第2および第3のプログラム命令は、前記非一時的コンピュータ可読記憶媒体からの少なくとも1つのコンピュータ化されたプロセッサによって実行される、ソフトウェアプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
【背景技術】
【０００２】
現在のモバイルデバイスのローカルストレージのサイズは、通常、ユーザによって要求される全てのメディアファイルおよび/またはアプリケーションの記憶に対し不十分である。ローカルストレージユニットのコストおよび物理的な属性は、記憶容量を増加させるための能力を制限し、一方で、ユーザによって要求されるメディアファイルおよびアプリケーションの数およびサイズは絶えず増加する。
【０００３】
いくつかのソリューションは、全ての種類のセキュアデジタル（SD）カード等の、モバイルデバイス上に取り付けられることができる拡張ストレージデバイスを含む。しかしながら、このような拡張ストレージデバイスは、通常、ローカルストレージユニットよりもはるかに遅く、且つ、より安全でない。加えて、モバイルデバイスにおけるSDカードスロットの包含は、デバイスのサイズおよび/または設計上の制約を課し得る。
【０００４】
他のソリューションは、クラウドストレージに対してデータをバックアップすることおよびデバイスのローカルメモリからデータを削除することを含んでよい。例えばAndroid PhotosおよびiOS Photos等の、このようなクラウドストレージソリューションは、データのバックアップおよび目的の共有のために概ね使用可能である。
【発明の概要】
【課題を解決するための手段】
【０００５】
第1の態様によると、ファイルへのアクセスを管理するデバイスが提供され、デバイスは、ネットワークインタフェースと、ネットワークアクセス可能ストレージ内に記憶されたメディアファイルの少なくとも1つの縮小サイズバージョンを記憶するように適合されたローカルメモリと、少なくとも1つのプロセッサとを含み、少なくとも1つのプロセッサは、少なくとも1つのプロセッサによって実行されるオペレーティングシステムのファイルシステムを介して、メディアファイルにアクセスするための要求を受信し、要求の分析に基づいて、ネットワークアクセス可能ストレージからメディアファイルのコピーを取り出して、コピーによって要求に応答するためにネットワークインタフェースを使用するか、または、縮小サイズバージョンのうちの1つによって要求に応答するかを決定し、決定に従って、要求に応答するように適合される。
【０００６】
第1の態様に係るデバイスの第1の可能な実施では、分析は、要求を提出するアプリケーションまたはオペレーティングシステムのサービスまたはデバイスフレームワークサービスのうちの少なくとも1つの特性の分析を含む。
【０００７】
要求は、カーネルレベルのIO操作を介して受信されることができる。
【０００８】
第1の態様それ自体に係る、または、第1の態様の第1の実施形態に係るデバイスの第2の可能な実施形態では、分析は、要求を提出することに先立って、要求を提出するアプリケーションによって実行される少なくとも1つの動作の分析を含む。
【０００９】
第1の態様それ自体に係る、または、第1の態様の実施形態のうちのいずれかに係るデバイスの第3の可能な実施形態では、少なくとも1つのプロセッサは、少なくとも1つの縮小サイズバージョンと併せて、前記メディアファイルのフルバージョンを記憶することを命令するように適合される。
【００１０】
第1の態様それ自体に係る、または、第1の態様の実施形態のいずれかに係るデバイスの第4の可能な実施形態では、少なくとも1つのプロセッサは、縮小サイズバージョンへのアクセスの少なくとも1つのアクセス特性を監視するとともに、少なくとも1つのアクセス特性に従って、ローカルメモリからフルバージョンを削除することを命令するように適合される。
【００１１】
第1の態様それ自体に係る、または、第1の態様の実施形態のいずれかに係るデバイスの第5の可能な実施形態では、メディアファイルは、画像、ビデオ、一組の画像、およびオーディオファイル、およびグラフィックデータファイルから成るグループのメンバを符号化する。
【００１２】
第1の態様それ自体に係る、または、第1の態様の実施形態のいずれかに係るデバイスの第7の可能な実施形態では、ローカルメモリは不揮発性メモリである。
【００１３】
第1の態様それ自体に係る、または、第1の態様の実施形態のいずれかに係るデバイスの第8の可能な実施形態では、縮小サイズバージョンのうちの少なくとも1つの記憶サイズは、元のメディアファイルの記憶サイズと固定関係である。
【００１４】
第1の態様それ自体に係る、または、第1の態様の実施形態のいずれかに係るデバイスの第9の可能な実施形態では、縮小サイズバージョンのうちの少なくとも1つの記憶サイズは、事前に決定された固定サイズである。
【００１５】
第1の態様それ自体に係る、または、第1の態様の実施形態のいずれかに係るデバイスの第11の可能な実施形態では、少なくとも1つのプロセッサは、ネットワークインタフェースに、ネットワークアクセス可能ストレージでの記憶のためにメディアファイルを送信するように命令するように適合され、縮小サイズバージョンのうちの少なくとも1つは、ローカルメモリでの記憶のためにネットワークインタフェースを介して受信される。
【００１６】
第1の態様それ自体に係る、または、第1の態様の実施形態のいずれかに係るデバイスの第12の可能な実施形態では、少なくとも1つのプロセッサは、ネットワークインタフェースに、ネットワークアクセス可能ストレージでの記憶のためにメディアファイルを送信するように命令するように適合され、縮小サイズバージョンのうちの少なくとも1つは、ローカルメモリでの記憶のためにメディアサイズを低減するように適合された少なくとも1つのプロセッサによって、デバイス上でローカルに生成される。
【００１７】
第2の態様によると、ファイルへのアクセスを管理する方法が提供され、方法は、ネットワークアクセス可能ストレージ内に記憶されたメディアファイルの少なくとも1つの縮小サイズバージョンを、デバイスのローカルメモリ内に記憶するステップと、デバイスの少なくとも1つのプロセッサによって実行されるオペレーティングシステムのファイルシステムを介して、メディアファイルにアクセスするための要求を受信するステップと、要求の分析に基づいて、ネットワークアクセス可能ストレージからメディアファイルのコピーを取り出して、コピーによって要求に応答するためにネットワークインタフェースを使用するか、または、縮小サイズバージョンのうちの少なくとも1つによって要求に応答するかを決定するステップとを含む。
【００１８】
第3の態様によると、ファイルへのアクセスを管理するためのソフトウェアプログラム製品が提供され、ソフトウェアプログラム製品は、非一時的コンピュータ可読記憶媒体と、ネットワークアクセス可能ストレージ内に記憶されたメディアファイルの少なくとも1つの縮小サイズバージョンを、デバイスのローカルメモリ内に記憶するための第1のプログラム命令と、デバイスの少なくとも1つのプロセッサによって実行されるオペレーティングシステムのファイルシステムを介して、メディアファイルにアクセスするための要求を受信するための第2のプログラム命令と、要求の分析に基づいて、ネットワークアクセス可能ストレージからメディアファイルのコピーを取り出して、コピーによって要求に応答するためにネットワークインタフェースを使用するか、または、縮小サイズバージョンのうちの少なくとも1つによって要求に応答するかを決定するための第3のプログラム命令とを含み、前記第1、第2および第3のプログラム命令は、前記非一時的コンピュータ可読記憶媒体からの少なくとも1つのコンピュータ化されたプロセッサによって実行される。
【図面の簡単な説明】
【００１９】
添付図面を参照して、例としてのみ、発明のいくつかの実施形態がここで説明される。詳細な、図面に対するここでの具体的な参照によって、示される詳細は、例としており、且つ、発明の実施形態の例示的な議論を目的としていることが強調される。この際、図面に伴う説明は、当業者に対して、発明の実施形態がどのように実行されることができるかを明らかにする。
【００２０】
図面においては、
【００２１】
【図１】図1は、本発明のいくつかの実施形態に係る、ファイルアクセスを管理するための方法を例示する概略フローチャートである。
【図２】図2は、本発明のいくつかの実施形態に係る、ファイルアクセスを管理するためのシステムの概略的な例示である。
【図３】図3は、本発明のいくつかの実施形態に係る、プロセッサが外部ファイル管理サーバに配置される、ファイルアクセスを管理するためのシステムの概略的な例示である。
【図４】図4は、本発明のいくつかの他の実施形態に係る、ファイルアクセスを管理するためのシステムの概略的な例示である。
【図５】図5は、本発明のさらなる実施形態に係る、ファイルアクセスを管理するためのシステムの概略的な例示である。
【図６】図6は、本発明のいくつかの実施形態に係る、縮小サイズファイルの生成および記憶のためのシステムの概略的な例示である。
【図７】図7は、本発明のいくつかの他の実施形態に係る、縮小サイズファイルの生成および記憶のためのシステムの概略的な例示である。
【発明を実施するための形態】
【００２２】
Androidクラウドストレージソリューションでは、サードパーティアプリケーションはクラウドに対するアクセス権を持っていないことがあるため、サードパーティアプリケーションのプライベートファイルは、クラウドでバックアップされることができず、且つ、インストールされたアプリケーションもまた、バックアップされない。加えて、ファイルは、ユーザがファイルを手動で削除するときのみ、ローカルストレージから取り除かれることができる。iOSクラウドストレージソリューションでは、あるデバイスモードにおいては、デバイス上の全てのメディアファイルは自動的により低い解像度にスケールダウンされ、一方で、クラウド内にオリジナルのみを保持する。加えて、メディアファイルは、iOS photosアプリケーションの裁量でデバイスから削除される。
【００２３】
他のソリューションは、最も使用されていない画像およびアプリケーションファイルをクラウドストレージにオフロードし、特殊なAPIまたは手動のユーザ設定は、サードパーティアプリケーションによってアクセスするために必要とされる。
【００２４】
本発明のいくつかの実施形態によって提供されるソリューションは、デバイス上に記憶されたメディアファイルを対応する縮小サイズファイルに置き換えるとともに、フルサイズファイルをクラウド上に記憶する。従って、メディアファイルの使用可能なコピーは、常に、デバイス上で動作するアプリケーションに対してアクセス可能であることができる。ファイルのフルバージョンは、例えば、どのくらい頻繁に且つ/または最近ファイルが使用されているかに応じて、デバイスから削除されるか、デバイスにダウンロードされるか、またはデバイス上に保持されてよい。めったに使用されないファイルのフルバージョンはデバイスから削除されてよく、一方で、デバイス上に縮小サイズファイルを保持していてよい。ファイルが頻繁に使用されるケースでは、フルバージョンは、クラウドからデバイス上にダウンロードされてよく、且つ/または、デバイス上に保持されてよい。
【００２５】
本発明のいくつかの実施形態によって提供されるソリューションは、ファイルシステムレベルで機能するとともに、ファイルのどのバージョンを要求するアプリケーションに提供すべきか決定する指定ファイルシステムを構成する。指定ファイルシステムを作成する操作および/または決定は、要求するアプリケーションに対して透過的であり、例えば、要求するアプリケーションは、決定に関与することなく、その要求に応答してファイルを受信する。
【００２６】
発明の少なくとも1つの実施形態を詳細に説明する前に、発明は、その適用において、以下の説明で明らかにされる、且つ/または、図面および/または例で例示されるコンポーネントおよび/または方法の構成および配置の詳細に必ずしも限定されないことは理解されるべきである。発明は、他の実施形態の能力があり、または、様々な方法で実行されるまたは行われることができる。
【００２７】
本発明は、システム、方法および/またはコンピュータプログラム製品であってよい。コンピュータプログラム製品は、プロセッサに、本発明の態様を行わせるための、コンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体（またはメディア）を含んでよい。
【００２８】
コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行してよく、ユーザのコンピュータ上で部分的に実行してよく、スタンドアローンのソフトウェアパッケージとして、ユーザのコンピュータ上で部分的に、且つ、リモートコンピュータ上で部分的に実行してよく、または、リモートコンピュータまたはサーバ上で全体的に実行してよい。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク（LAN）またはワイドエリアネットワーク（WAN）を含む、任意のタイプのネットワークを介して、ユーザのコンピュータに接続されてよく、または、接続は、外部コンピュータ（例えば、インターネットサービスプロバイダを使用するインターネットを介して）に対して行われてよい。いくつかの実施形態では、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ（FPGA）またはプログラマブルロジックアレイ（PLA）を含む、電子回路は、本発明の態様を実行するために、電子回路をパーソナライズするコンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行してよい。
【００２９】
本発明の態様は、発明の実施形態に従って、方法のフローチャートの例示および/またはブロック図、装置（システム）およびコンピュータプログラム製品を参照してここで説明される。フローチャートの例示および/またはブロック図の各ブロック、およびフローチャートの例示および/またはブロック図におけるブロックの組合せは、コンピュータ可読プログラム命令によって実施されることができることが理解されるだろう。
【００３０】
図におけるフローチャートおよびブロック図は、本発明の様々な実施形態に従って、システム、方法およびコンピュータプログラム製品の可能な実施のアーキテクチャ、機能性および操作を例示する。この際、フローチャートまたはブロック図内の各ブロックは、モジュール、セグメント、または、特定の論理機能を実施するための1つまたは複数の実行可能な命令を含む、命令の一部を表してよい。いくつかの代替的な実施においては、ブロック内に記載される機能は、図で記載される順序以外で生じ得る。例えば、連続して示される2つのブロックは、関与する機能性に応じて、実際には、実質同時に実行されてよく、または、ブロックは、時には逆順で実行されてよい。ブロック図の各ブロックおよび/またはフローチャートの例示、およびブロック図および/またはフローチャートの例示におけるブロックの組合せは、特定の機能またはアクトを実行する、または、特殊目的ハードウェアおよびコンピュータ命令の組合せを行う特殊目的ハードウェアベースのシステムによって実施されることができることはまた留意されるだろう。
【００３１】
ここで、図1に対して参照が行われ、図1は、本発明のいくつかの実施形態に係る、ファイルアクセスを管理するための方法100を例示する概略フローチャートである。ブロック110で示されるように、プロセッサと呼ばれる、1つまたは複数のプロセッサは、ネットワークアクセス可能ストレージ内に記憶されたメディアファイルの縮小サイズバージョンを、デバイスのローカルメモリ内に記憶することを命令する。ブロック120に示されるように、プロセッサは、デバイスの少なくとも1つのプロセッサによって実行されるオペレーティングシステムのファイルシステムを介して、メディアファイルにアクセスするための要求を受信してよい。ブロック130に示されるように、プロセッサは、要求の分析に基づいて、ネットワークアクセス可能ストレージからメディアファイルのコピーを取り出して、コピーによって要求に応答するためにネットワークインタフェースを使用するか、または、ローカルに記憶された縮小サイズバージョンのうちの1つによって要求に応答するかを決定してよい。
【００３２】
本発明のいくつかの実施形態は、ファイルアクセスを管理するためのソフトウェアプログラム製品を提供することができ、ソフトウェアプログラム製品は、プログラム命令を記憶することができる非一時的コンピュータ可読記憶媒体を含んでよく、プログラム命令は、プロセッサによって実行されるとき、プロセッサに、方法100を実行させることができる。
【００３３】
ここで、図2に対してさらなる参照が行われ、図2は、本発明のいくつかの実施形態に係る、ファイルアクセスを管理するためのシステム200の概略的な例示である。システム200は、ネットワークアクセス可能ストレージ50、ファイル管理デバイス10およびファイル管理プロセッサ14を含んでよい。ファイル管理プロセッサ14は、デバイス10内、および/または外部ファイル管理サーバ（例えば、図3および5に示される）内に含まれてよい。ネットワークアクセス可能ストレージ50は、例えば、符号化された画像、ビデオ、一組の画像、オーディオファイル、グラフィックデータファイルおよび/または任意の他の適切な符号化されたメディア等を各々含むことができるメディアファイルを含む、複数のファイル52を記憶してよい。デバイス10は、ネットワークインタフェース12、オペレーティングシステム16、ファイルシステム18およびローカルメモリ20を含んでよい。ローカルメモリ20は不揮発性メモリであってよく、且つ/または、例えば、ファイル52の縮小サイズバージョンを含むことができる、複数の縮小ファイル22を記憶してよい。いくつかの実施形態では、各縮小サイズファイル22の記憶サイズと対応するファイル52の記憶サイズとの間の比は、固定された所定の定数であってよい。比は、例えば、縮小サイズファイル22に対して許容される相対的な品質に従って決定されてよい。
【００３４】
いくつかの他の実施形態では、縮小サイズファイル22は、例えば、アプリケーションがあるサイズ要件を有するとき、対応するファイル52のサイズと無関係な、事前に定義された固定サイズであってよい。いくつかのケースでは、ファイル52のフルバージョン52aはまた、ローカルメモリ20内に記憶されてもよい。
【００３５】
縮小サイズファイル22は、例えば、対応するファイル52と比較して、低減された品質を有してよい。本発明のいくつかの実施形態では、縮小サイズファイル22のサイズは、対応するファイル52のサイズの約10パーセントであってよい。別の例では、縮小サイズファイル22のサイズは、対応するファイル52のサイズの約20パーセントである。別の例では、縮小サイズファイル22のサイズは、100Kまたはそれ未満である。任意で、ファイル22は、より低い解像度を有してよく、損失圧縮されてよく、より低いビットレートを有してよく、且つ/または、任意の他の適切な方法によって縮小されてよい。
【００３６】
ファイル52は、例えば異なるサイズの、ローカルメモリ20内に記憶された、いくつかの関連する縮小サイズファイル22を有してよく、各バージョンは、他の目的および/またはアプリケーションのために使用されてよい。例えば、同じファイル52に関連するいくつかの縮小サイズファイル22は、例えば、固定の所定の比に従って決定されたサイズを有するファイル22、あるアプリケーションのために必要とされる事前に定義された固定サイズを有するファイル22、別のアプリケーションのために必要とされる別の事前に定義された固定サイズを有するファイル22、別の、非常に小さい、非常に古く、且つ/または、使用されないファイルのために事前に定義されたサイズを有するファイル22、および/または、異なるサイズを有する任意の他のファイル22を含んでよい。
【００３７】
プロセッサ14は、オペレーティングシステム16および/またはファイルシステム18を制御してよい。プロセッサ14は、例えば、アプリケーション、オペレーティングシステムサービス、デバイスフレームワークサービスまたは任意の他の適切な要求するエンティティ等の、要求するソフトウェアエンティティからファイル52にアクセスするための要求を受信してよい。要求は、例えば、ファイルシステム18を介して、例えば、カーネルレベルの入力出力（IO）操作を介して、受信されてよい。本発明のいくつかの実施形態では、プロセッサ14は、ファイル52を要求する且つ/または呼び出すことができるソフトウェアエンティティのインテントおよび/またはアクティビティを傍受することができる。プロセッサ14は、ファイル22、52および/または52aの割り当ておよび/または検索を管理してよい。プロセッサ14は、ファイルのどのバージョン、例えば、縮小ファイル22またはフルバージョンファイル52またはファイル52aのうちの1つを、要求するエンティティに提供すべきか決定してよい。決定は、例えば、要求するエンティティのタイプ、時刻、ファイルサイズ、要求するエンティティによって行われるアクションおよび/または任意の他の適切なパラメータ等に関係し得るルールまたは一連のルールに対するコンプライアンスをチェックすることによって行われてよい。プロセッサ14は、要求、インテントまたはアクティビティを分析し、且つ/または、例えば、分析に基づいて、例えば、ネットワークインタフェース12を使用することによって、ネットワークアクセス可能ストレージ50からファイル52のコピーを取り出すか、または、縮小サイズバージョンのうちの1つ、例えば、対応するファイル22を取り出すかを決定してよい。プロセッサ14は、次いで、決定に従って、ファイル52のコピーまたは対応するファイル22を取り出してよく、且つ、取り出されたファイルによって要求に応答してよい。ファイル52は、例えば、オーディオ、ビデオ、画像、アプリケーションリソースおよび/またはプロセッサ14に知られている任意の他のメディアファイルを含んでよい。
【００３８】
プロセッサ14は、例えば、ソフトウェアエンティティの特性を分析することによって、受信された要求を分析してよい。加えて、または、代替的に、プロセッサ14は、例えば、要求を提出することに先立って、または、インテント/アクティビティの傍受に先立って、ソフトウェアエンティティによって行われるアクションを分析することによって、受信された要求、インテントまたはアクティビティを分析してよい。
【００３９】
本発明のいくつかの実施形態では、例えば、分析に基づいて、プロセッサ14は、例えば、対応する縮小サイズファイル22の1つまたは複数と併せて、ファイル52のフルバージョン52aをローカルメモリ20内に記憶することを命令することができる。加えて、または、代替的に、プロセッサ14は、縮小サイズファイル22および/またはフルサイズバージョン52aのうちのどちらかへの様々なエンティティのアクセスパラメータを監視且つ/または分析してよく、且つ/または、例えば、監視および/または分析に基づいて、ローカルメモリ20における、対応するフルバージョン52aを保持し、ローカルメモリ20から対応するフルバージョン52aを削除し、または、ローカルメモリ20において、対応するフルバージョン52aを記憶することを命令してよい。アクセスパラメータは、例えば、最後のアクセス時刻、使用の頻度および/または任意の他の適切なアクセスパラメータを含んでよい。
【００４０】
本発明のいくつかの実施形態では、プロセッサ14は、例えば、アクセスパラメータに基づいて、各ファイル22および/または52aのためのスコアを生成、例えば計算または選択してよい。例えば、より高いスコアは、ファイルへのより頻繁な且つ/または最近のアクセスを示すことができる。プロセッサ14は、例えば、作成日、アクセスパターン、ファイルサイズおよび/または任意の他の関連パラメータ等の、ファイルの重要性、有用性、古さおよび/またはアクティビティを意味し得る、ファイル22/52aの様々な初期パラメータに従って、初期スコアを計算してよい。ファイルのスコアは、時間と共に変化してよく、且つ/または、周期的にまたは要求されると、プロセッサ14によってアップデートされてよい。例えば、ファイルがよりアクティブでなくなり、且つ/または古くなるにつれて、プロセッサ14によって与えられるスコアは下がり得る。ファイルがよりアクティブになるケースでは、例えば、スコアは増加し得る。
【００４１】
ファイル52aおよび/または22のために生成されるスコアがある所定の閾値を下回るまで下がるとき、フルバージョンファイル52aは、ローカルメモリ20から削除されてよく、且つ/または、縮小ファイル22のみが、ローカルメモリ20において保持されてよい。プロセッサ14は、例えば、ローカルメモリ20内の残りの空き空間、ファイル52aおよび/または22の平均サイズ、空き空間の減少の平均レート、および/または、例えば、メモリ20内の空間クリアリングの緊急性を意味し得る、任意の他のパラメータに従って、閾値を計算且つ/またはアップデートしてよい。本発明のいくつかの実施形態では、プロセッサ14は、ネットワークインタフェース12に、例えば、分析に基づいて、ネットワークアクセス可能ストレージ50における記憶のためにファイル52を送信し、且つ/または、ローカルメモリ20における記憶のために、例えば、ネットワークインタフェース12を介して、対応する縮小サイズファイル22を受信するように命令してよい。いくつかの他の実施形態では、プロセッサ14は、ファイル52のメディアサイズを縮小し、且つ/または、対応する縮小サイズファイル22を生成してよく、それによって、例えば、対応する縮小サイズファイル22は、プロセッサ14によってローカルに生成されることができ、且つ/または、ローカルメモリ20において記憶されることができる。
【００４２】
プロセッサ14がファイル52のための要求を受信するか、または、ファイル52を要求する且つ/または呼び出すソフトウェアエンティティのインテントおよび/またはアクティビティを傍受するケースでは、プロセッサ14は、対応するフルバージョン52aがローカルメモリ20において記憶されているときをチェックしてよい。対応するフルバージョン52aがローカルメモリ20において記憶されているケースでは、プロセッサ14は、関連ソフトウェアエンティティに、対応するフルバージョン52aを提供してよい。対応するフルバージョン52aがローカルメモリ52において記憶されていないケースでは、プロセッサ14は、関連ソフトウェアエンティティの操作がファイル52のフルバージョンを要求するときをチェックしてよく、または、対応する縮小サイズファイル22が十分であり得るときをチェックしてよい。プロセッサ14が、対応する縮小ファイル22が操作の要件を満足することができると決定するケースでは、プロセッサ14は、関連ソフトウェアエンティティに、対応する縮小サイズファイル22を提供してよい。本発明のいくつかの実施形態では、例えば、印刷または編集等のインテントは、フルサイズファイル52および/またはフルバージョン52aを要求してよく、例えば、添付または閲覧等のインテントは、対応する縮小サイズファイル22で満足することができる。
【００４３】
いくつかのケースでは、プロセッサ14は、例えば、ある傍受されたインテントおよび/またはアクティビティに対しては、フルサイズバージョン52aよりも、縮小サイズファイル22のうちの1つまたはいくつかがより適切であると決定し得る。例えば、いくつかのアプリケーションは、小さいサイズのメディアを要求し得る。例えばメッセージングアプリケーション経由のファイル共有等のインテントは、例えば、対応するフルサイズバージョン52aによるよりも、縮小サイズファイル22によって、より良く役立つ場合がある。このようなアプリケーションおよび/またはインテントについて、プロセッサ14は、例えそれぞれのフルサイズバージョン52aがデバイス上に記憶されているとしても、ファイル22を提供してよい。縮小ファイル22がデバイス上に存在しないケースでは、プロセッサ14は、本明細書で詳細に説明されるように、クラウド50から縮小ファイル22をダウンロードするか、または、デバイス上で縮小ファイル22を生成してよい。
【００４４】
ファイル52のフルバージョンが要求されるケースでは、プロセッサ14は、ネットワークアクセス可能ストレージ50へのアクセス、例えばネットワーク接続があるときをチェックしてよい。アクセスがない、且つ/またはストレージ50への接続が貧弱であるケースでは、プロセッサ14は、関連エンティティに、接続失敗を通知してよく、対応する縮小ファイル22を提供してよく、且つ/または、関連エンティティに、縮小ファイル22は、ファイル52のフルバージョンの代わりに提供されることを通知してよい。ストレージ50へのアクセスがあるケースでは、プロセッサ14は、ファイル52を取り出し、且つ/または、関連ソフトウェアエンティティにファイル52を提供してよい。
【００４５】
本発明のいくつかの実施形態では、プロセッサ14は、指定ファイルシステム30を実施且つ/または制御することによって、ストレージ50からのファイル52の取り出しを行ってよい。プロセッサ14からファイル52のための要求を一度受信すると、ファイルシステム30は、ファイル52を取り出し、且つ/またはファイル52を関連ソフトウェアエンティティに提供してよい。取り出しは、プロセッサ14が、例えば、ファイル52が、読出し/書込み操作のために要求されるとき、ファイル52が取り出され且つ/または提供されるまで、オペレーティングシステム16によって、ソフトウェアエンティティの操作をフリーズさせている間に実行されてよい。
【００４６】
本発明のいくつかの他の実施形態では、プロセッサ14は、オペレーティングシステム16によって、ストレージ50からのファイル52の取り出しを行ってよい。オペレーティングシステム16は、ソフトウェアエンティティのインテントおよび/またはアクティビティを傍受してよい。傍受されたインテントおよび/またはアクティビティは、ストレージ50において記憶されているファイル52を要求且つ/または呼び出してよい。オペレーティングシステム16は、例えば、このようなインテントおよび/またはアクティビティが傍受されたとき、ストレージ50から、要求された且つ/または呼び出されたファイル52を取り出してよい。オペレーティングシステム16による取り出しは、いくつかの実施形態では、例えば、要求する且つ/または呼び出すソフトウェアエンティティの継続操作を可能にする背景において、且つ/または、要求する且つ/または呼び出すソフトウェアエンティティの継続操作を可能にする限り、要求する且つ/または呼び出すソフトウェアエンティティに対して透過的に実行されてよい。
【００４７】
本発明のいくつかの実施形態は、例えば、プロセッサ14の位置において、オペレーティングシステム16内の操作および/またはモジュールを制御するプロセッサ14の能力において、且つ/または、ファイル要求、要件および/または呼出しを受信するプロセッサ14の能力において、変化してよい。本発明の様々な実施形態は、例えば、オペレーティングシステム16との統合レベルにおいて、それらがオペレーティングシステム16の挙動に影響を及ぼす方式および/または範囲において、且つ/または、アプリケーション要求処理にわたる、それらが有する制御の量において、変化し得る。
【００４８】
例えば、本発明のいくつかの実施形態は、オペレーティングシステム16とより統合されず、且つ、ファイル管理の低減された制御を有することがあり、どの要求がプロセッサ14に転送されるかの決定は、オペレーティングシステム16によって行われてよい。このような例示的な実施形態は、図3に示され、図3は、本発明のいくつかの実施形態に係る、ファイルアクセスを管理するためのシステム300の概略的な例示であり、その中で、プロセッサ14は外部ファイル管理サーバに配置される。システム300は、外部ファイル管理サーバ32、ネットワークアクセス可能ストレージ50およびデバイス10を含んでよい。ファイル管理サーバ32は、プロセッサ14を含んでよい。デバイス10のオペレーティングシステム16は、カーネルモジュール17およびファイルシステム18を含んでよい。プロセッサ14は、例えば、カーネルモジュール17を介して、ファイルシステム18を監視するためにデバイス10上でサービスを実行してよい。プロセッサ14は、オペレーティングシステム16によって、ソフトウェアエンティティによって行われるファイル要求に関して通知を受けてよく、且つ/または、要求されたとき、ファイル52を取り出してよい。
【００４９】
アプリケーションまたはサービス60がファイル52を要求するとき、カーネルモジュール17は、ファイルシステム18によって、ローカルストレージ20からバージョンを取り出すか、または、プロセッサ14に通知するかを決定してよく、プロセッサ14は、要求されたファイル52をストレージ50から取り出してよい。本発明のいくつかの実施形態では、オペレーティングシステム16は、プロセッサ14に、アプリケーションまたはサービス60によって行われる、関連する種類のファイルのための全ての要求について、または、ある種類のファイルのための全ての要求について通知してよい。いくつかの実施形態では、プロセッサ14は、例えば、本明細書において上で詳細に説明された決定考慮に従って、ストレージ50からフルサイズファイル52を取り出すか、且つ/または、ファイルシステム18に、ローカルストレージ20からバージョンを取り出すように命令するかを決定する。
【００５０】
本発明のいくつかの他の実施形態は、オペレーティングシステム16と統合されるとともに、ファイル管理のより多くの制御を有する。このような例示的な実施形態は図4に示され、図4は、本発明のいくつかの他の実施形態に係る、ファイルアクセスを管理するためのシステム400の概略的な例示である。システム400は、ネットワークアクセス可能ストレージ50、デバイス10およびプロセッサ14を含んでよい。プロセッサ14は、デバイス10のオペレーティングシステム16における指定ファイルシステム30を実施且つ/または制御してよい。オペレーティングシステム16は、カーネルモジュール17およびファイルシステム18を含んでよい。指定ファイルシステム30は、カーネルモジュール17、ファイルシステム18、ローカルストレージ20および/またはネットワークアクセス可能ストレージ50と通信してよく、且つ/または、それらを制御してよい。
【００５１】
指定ファイルシステム30は、例えば、カーネルモジュール17を介して、アプリケーションまたはサービス60によって行われるファイル要求を受信してよく、且つ/または、例えば、本明細書において上で詳細に説明される決定考慮に従って、ストレージ50からフルサイズファイル52を取り出すか、ファイルシステム18に、ローカルストレージ20からバージョン22または52aのうちの1つまたは複数を取り出すように命令するか、且つ/または、ローカルフルバージョン52aを生成または削除するかを決定してよい。
【００５２】
本発明のいくつかの他の実施形態は、オペレーティングシステム16とどちらも統合されるとともに外部アプリケーションサーバを有し、且つ、ファイル管理の完全制御を有してよい。このような例示的な実施形態は図5に示され、図5は、本発明のさらなる実施形態に係る、ファイルアクセスを管理するためのシステム500の概略的な例示である。システム500は、外部ファイル管理サーバ32、ネットワークアクセス可能ストレージ50、デバイス10およびプロセッサ14を含んでよい。プロセッサ14は、ファイル管理サーバ32、デバイス10および/または両方に含まれてよい。例えば、プロセッサ14の操作のいくつかは、デバイス10上で実行されてよく、且つ、いくつかはサーバ32上で実行されてよい。デバイス10のオペレーティングシステム16は、カーネルモジュール17およびファイルシステム18を含んでよい。
【００５３】
プロセッサ14は、デバイス10のオペレーティングシステム16における指定ファイルシステム30を実施且つ/または制御してよい。指定ファイルシステム30は、カーネルモジュール17、ファイルシステム18、ローカルストレージ20および/またはネットワークアクセス可能ストレージ50と通信してよく、且つ/またはそれらを制御してよい。いくつかの実施形態では、指定ファイルシステム30は、ファイル管理サーバ32を介して、ストレージ50と通信してよく、且つ/または、ストレージ50を制御してよい。
【００５４】
指定ファイルシステム30は、例えば、カーネルモジュール17を介して、アプリケーションまたはサービス60によって行われるファイル要求を受信してよい。プロセッサ14は、例えば、本明細書において上で詳細に説明される決定考慮に従って、ストレージ50からフルサイズファイル52を取り出すか、ファイルシステム18に、ローカルストレージ20からバージョン22または52aのうちの1つまたは複数を取り出すように命令するか、且つ/または、ローカルフルバージョン52aを生成または削除するかを決定してよい。
【００５５】
加えて、本発明のいくつかの実施形態は、例えば、縮小サイズファイル22が生成且つ/または記憶される方式において変化してよい。例えば、いくつかの実施形態では、縮小ファイル22は、ネットワークアクセス可能ストレージ50内で生成且つ記憶され、且つ、必要に応じて、デバイス10にダウンロードされてよい。いくつかの他の実施形態では、ファイル22は、デバイス10上で直接生成且つ記憶される。
【００５６】
参照が図6に対して行われ、図6は、本発明のいくつかの実施形態に係る、縮小サイズファイル22の生成および記憶のためのシステム600の概略的な例示である。システム600は、デバイス10およびネットワークアクセス可能ストレージ50を含んでよい。ファイル52は、ネットワークアクセス可能ストレージ50にアップロードされてよく、且つ、例えば、フルバージョンストレージ50aにおいて記憶されてよい。対応する縮小サイズファイル22は、デバイス10上に生成されてよいとともに、ローカルストレージ20内に記憶されてよい。例えば、ストレージ50にファイル52をアップロードすると、フルバージョン52aがローカルストレージ20から削除されそうなちょうどそのとき、または、例えば、低いアクセス頻度または最近のアクセスがないことによる、任意の中間の時間に、縮小サイズファイル22は生成されてよい。
【００５７】
参照が図7に対して行われ、図7は、本発明のいくつかの他の実施形態に係る、縮小サイズファイル22の生成および記憶のためのシステム700の概略的な例示である。システム700において、ネットワークアクセス可能ストレージ50は、フルバージョンストレージ50aおよび縮小サイズバージョンストレージ50bを含んでよい。ファイル52は、ネットワークアクセス可能ストレージ50にアップロードされてよく、且つ、例えば、フルバージョンストレージ50aにおいて記憶されてよい。対応する縮小サイズファイル22は、ネットワークアクセス可能ストレージ50において生成されてよく、且つ、例えば、縮小サイズバージョンストレージ50bにおいて記憶されてよい。縮小サイズファイル22は、デバイス10にダウンロードされてよく、且つ、例えば、ローカルストレージ20において記憶されてよい。
【００５８】
本発明のいくつかの実施形態では、縮小サイズファイル22は、ネットワークアクセス可能ストレージ50において一度生成されると、デバイス10にダウンロードされる。次いで、縮小ファイル22は、要求されたとき、且つ/または、対応するフルバージョン52aがデバイス10上にないケースにおいて使用されてよい。
【００５９】
いくつかの他の実施形態では、縮小サイズファイル22は、例えば、低いアクセス頻度または最近のアクセスがないことによって、対応するフルバージョン52aがデバイス10から削除されそうなときに、デバイス10にダウンロードされる。例えば、プロセッサ14は、ファイル52aの生成されたアクセススコアが、所定の閾値に近づくとき、縮小サイズファイル22をダウンロードしてよい。
【００６０】
本発明のいくつかの実施形態では、プロセッサ14は、クラウドで生成された縮小サイズファイル22をダウンロードすることと、縮小サイズファイル22をローカルに生成することとの間で選択してよい。選択は、ネットワークおよび/またはクラウドアクセシビリティ、および縮小サイズファイル22への必要性によって影響を受けることがある。例えば、フルサイズファイル52がアップロードされた後、縮小サイズファイル22は、まだ、ダウンロード且つ/または生成されていないことがある。フルサイズバージョン52aのアクセススコアが閾値を下回るまで一度下がると、ファイル52aは、ローカルメモリ20から削除されてよく、且つ、対応する縮小ファイル22が、プロセッサ14によってローカルに生成され、且つ/またはダウンロードされてよい。
【００６１】
本発明の様々な実施形態の説明が、例示の目的のために提供されてきたが、開示される実施形態に対して網羅的である、または限定されるようには意図されない。多くの修正および変更は、説明される実施形態の範囲および精神を逸脱することなく、当業者に対して明らかになるだろう。本明細書で使用される用語は、市場において発見される技術にわたる、実施形態、実際の適用または技術的な改善の原理を最もよく説明するために、または、当業他者が、本明細書で開示される実施形態を理解することができるように選ばれた。
【００６２】
明確さのために、別々の実施形態の文脈で説明された、発明のある特徴はまた、単一の実施形態において組み合わせて提供されてもよいことは理解される。逆に、簡潔さのために、単一の実施形態の文脈で説明された、発明の様々な特徴はまた、別々に、または、任意の適切な部分的組合せで、または、発明の任意の他の説明された実施形態において適切に提供されてもよい。様々な実施形態の文脈で説明されたある特徴は、実施形態がそれらの要素無しに動作しない場合を除いて、それらの実施形態の不可欠な特徴とみなされるべきでない。
【符号の説明】
【００６３】
10  ファイル管理デバイス
12  ネットワークインタフェース
14  ファイル管理プロセッサ
16  オペレーティングシステム
17  カーネルモジュール
18  ファイルシステム
20  ローカルメモリ
22  縮小ファイル
30  指定ファイルシステム
32  ファイル管理サーバ
50  ネットワークアクセス可能ストレージ
50a  フルバージョンストレージ
50b  縮小サイズバージョンストレージ
52  ファイル                    
52a  フルサイズバージョン
60  アプリケーション/サービス
【図１】
2018524644.tif 000003
【図２】
2018524644.tif 000004
【図３】
2018524644.tif 000005
【図４】
2018524644.tif 000006
【図５】
2018524644.tif 000007
【図６】
2018524644.tif 000008
【図７】
2018524644.tif 000009
【手続補正書】
【提出日】平成29年5月11日(2017.5.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ファイルへのアクセスを管理するデバイスであって、
ネットワークインタフェースと、
ネットワークアクセス可能ストレージ内に記憶されたメディアファイルの少なくとも1つの縮小サイズバージョンを記憶するように適合されたローカルメモリと、
少なくとも1つのプロセッサとを含み、前記少なくとも1つのプロセッサは、
前記少なくとも1つのプロセッサによって実行されるオペレーティングシステムのファイルシステムを介して、前記メディアファイルにアクセスするための要求を受信し、
前記要求の分析に基づいて、
(1) 前記ネットワークアクセス可能ストレージから前記メディアファイルのコピーを取り出して、前記コピーによって前記要求に応答するために前記ネットワークインタフェースを使用するか、または、
(2) 前記縮小サイズバージョンのうちの1つによって前記要求に応答するか
を決定し、
前記決定に従って、前記要求に応答するように適合される、デバイス。
【請求項２】
前記分析は、前記要求を提出するアプリケーションまたはオペレーティングシステムのサービスまたはデバイスフレームワークサービスのうちの少なくとも1つの特性の分析を含む、請求項1に記載のデバイス。
【請求項３】
前記要求は、カーネルレベルのIO操作を介して受信される、請求項1に記載のデバイス。
【請求項４】
前記分析は、前記要求を提出することに先立って、前記要求を提出するアプリケーションによって実行される少なくとも1つの動作の分析を含む、請求項1乃至3のいずれか1項に記載のデバイス。
【請求項５】
前記少なくとも1つのプロセッサは、前記少なくとも1つの縮小サイズバージョンと併せて、前記メディアファイルのフルバージョンを記憶することを命令するように適合される、請求項1乃至4のいずれか1項に記載のデバイス。
【請求項６】
前記少なくとも1つのプロセッサは、前記縮小サイズバージョンへのアクセスの少なくとも1つのアクセス特性を監視するとともに、前記少なくとも1つのアクセス特性に従って、前記ローカルメモリから前記フルバージョンを削除することを命令するように適合される、請求項5に記載のデバイス。
【請求項７】
前記メディアファイルは、画像、ビデオ、一組の画像、およびオーディオファイル、およびグラフィックデータファイルから成るグループのメンバを符号化する、請求項1乃至6のいずれか1項に記載のデバイス。
【請求項８】
前記ローカルメモリは不揮発性メモリである、請求項1乃至7のいずれか1項に記載のデバイス。
【請求項９】
前記縮小サイズバージョンのうちの少なくとも1つの記憶サイズは、元のメディアファイルの前記記憶サイズと固定関係である、請求項1乃至8のいずれか1項に記載のデバイス。
【請求項１０】
前記縮小サイズバージョンのうちの少なくとも1つの記憶サイズは、事前に決定された固定サイズである、請求項1乃至9のいずれか1項に記載のデバイス。
【請求項１１】
前記少なくとも1つのプロセッサは、前記ネットワークインタフェースに、前記ネットワークアクセス可能ストレージでの記憶のために前記メディアファイルを送信するように命令するように適合され、前記縮小サイズバージョンのうちの少なくとも1つは、前記ローカルメモリでの記憶のために前記ネットワークインタフェースを介して受信される、請求項1乃至10のいずれか1項に記載のデバイス。
【請求項１２】
前記少なくとも1つのプロセッサは、前記ネットワークインタフェースに、前記ネットワークアクセス可能ストレージでの記憶のために前記メディアファイルを送信するように命令するように適合され、前記縮小サイズバージョンのうちの少なくとも1つは、前記ローカルメモリでの記憶のためにメディアサイズを低減するように適合された少なくとも1つのプロセッサによって、前記デバイス上でローカルに生成される、請求項1乃至11のいずれか1項に記載のデバイス。
【請求項１３】
ファイルへのアクセスを管理する方法であって、
ネットワークアクセス可能ストレージ内に記憶されたメディアファイルの少なくとも1つの縮小サイズバージョンを、デバイスのローカルメモリ内に記憶するステップと、
前記デバイスの少なくとも1つのプロセッサによって実行されるオペレーティングシステムのファイルシステムを介して、前記メディアファイルにアクセスするための要求を受信するステップと、
前記要求の分析に基づいて、
(1) 前記ネットワークアクセス可能ストレージから前記メディアファイルのコピーを取り出して、前記コピーによって前記要求に応答するためにネットワークインタフェースを使用するか、または、
(2) 前記縮小サイズバージョンのうちの少なくとも1つによって前記要求に応答するか
を決定するステップとを含む、方法。
【請求項１４】
請求項13に記載の前記方法をコンピュータに実行させるプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不安定なネットワーク接続を有するデバイスのための、多層的な、クラウドベースのファイルシステムに関します。
【背景技術】
【０００２】
現在のモバイルデバイスのローカルストレージのサイズは、通常、ユーザによって要求される全てのメディアファイルおよび/またはアプリケーションの記憶に対し不十分である。ローカルストレージユニットのコストおよび物理的な属性は、記憶容量を増加させるための能力を制限し、一方で、ユーザによって要求されるメディアファイルおよびアプリケーションの数およびサイズは絶えず増加する。
【０００３】
いくつかのソリューションは、全ての種類のセキュアデジタル（SD）カード等の、モバイルデバイス上に取り付けられることができる拡張ストレージデバイスを含む。しかしながら、このような拡張ストレージデバイスは、通常、ローカルストレージユニットよりもはるかに遅く、且つ、より安全でない。加えて、モバイルデバイスにおけるSDカードスロットの包含は、デバイスのサイズおよび/または設計上の制約を課し得る。
【０００４】
他のソリューションは、クラウドストレージに対してデータをバックアップすることおよびデバイスのローカルメモリからデータを削除することを含んでよい。例えばAndroid PhotosおよびiOS Photos等の、このようなクラウドストレージソリューションは、データのバックアップおよび目的の共有のために概ね使用可能である。
【発明の概要】
【課題を解決するための手段】
【０００５】
第1の態様によると、ファイルへのアクセスを管理するデバイスが提供され、デバイスは、ネットワークインタフェースと、ネットワークアクセス可能ストレージ内に記憶されたメディアファイルの少なくとも1つの縮小サイズバージョンを記憶するように適合されたローカルメモリと、少なくとも1つのプロセッサとを含み、少なくとも1つのプロセッサは、少なくとも1つのプロセッサによって実行されるオペレーティングシステムのファイルシステムを介して、メディアファイルにアクセスするための要求を受信し、要求の分析に基づいて、ネットワークアクセス可能ストレージからメディアファイルのコピーを取り出して、コピーによって要求に応答するためにネットワークインタフェースを使用するか、または、縮小サイズバージョンのうちの1つによって要求に応答するかを決定し、決定に従って、要求に応答するように適合される。
【０００６】
第1の態様に係るデバイスの第1の可能な実施では、分析は、要求を提出するアプリケーションまたはオペレーティングシステムのサービスまたはデバイスフレームワークサービスのうちの少なくとも1つの特性の分析を含む。
【０００７】
要求は、カーネルレベルのIO操作を介して受信されることができる。
【０００８】
第1の態様それ自体に係る、または、第1の態様の第1の実施形態に係るデバイスの第2の可能な実施形態では、分析は、要求を提出することに先立って、要求を提出するアプリケーションによって実行される少なくとも1つの動作の分析を含む。
【０００９】
第1の態様それ自体に係る、または、第1の態様の実施形態のうちのいずれかに係るデバイスの第3の可能な実施形態では、少なくとも1つのプロセッサは、少なくとも1つの縮小サイズバージョンと併せて、前記メディアファイルのフルバージョンを記憶することを命令するように適合される。
【００１０】
第1の態様それ自体に係る、または、第1の態様の実施形態のいずれかに係るデバイスの第4の可能な実施形態では、少なくとも1つのプロセッサは、縮小サイズバージョンへのアクセスの少なくとも1つのアクセス特性を監視するとともに、少なくとも1つのアクセス特性に従って、ローカルメモリからフルバージョンを削除することを命令するように適合される。
【００１１】
第1の態様それ自体に係る、または、第1の態様の実施形態のいずれかに係るデバイスの第5の可能な実施形態では、メディアファイルは、画像、ビデオ、一組の画像、およびオーディオファイル、およびグラフィックデータファイルから成るグループのメンバを符号化する。
【００１２】
第1の態様それ自体に係る、または、第1の態様の実施形態のいずれかに係るデバイスの第7の可能な実施形態では、ローカルメモリは不揮発性メモリである。
【００１３】
第1の態様それ自体に係る、または、第1の態様の実施形態のいずれかに係るデバイスの第8の可能な実施形態では、縮小サイズバージョンのうちの少なくとも1つの記憶サイズは、元のメディアファイルの記憶サイズと固定関係である。
【００１４】
第1の態様それ自体に係る、または、第1の態様の実施形態のいずれかに係るデバイスの第9の可能な実施形態では、縮小サイズバージョンのうちの少なくとも1つの記憶サイズは、事前に決定された固定サイズである。
【００１５】
第1の態様それ自体に係る、または、第1の態様の実施形態のいずれかに係るデバイスの第11の可能な実施形態では、少なくとも1つのプロセッサは、ネットワークインタフェースに、ネットワークアクセス可能ストレージでの記憶のためにメディアファイルを送信するように命令するように適合され、縮小サイズバージョンのうちの少なくとも1つは、ローカルメモリでの記憶のためにネットワークインタフェースを介して受信される。
【００１６】
第1の態様それ自体に係る、または、第1の態様の実施形態のいずれかに係るデバイスの第12の可能な実施形態では、少なくとも1つのプロセッサは、ネットワークインタフェースに、ネットワークアクセス可能ストレージでの記憶のためにメディアファイルを送信するように命令するように適合され、縮小サイズバージョンのうちの少なくとも1つは、ローカルメモリでの記憶のためにメディアサイズを低減するように適合された少なくとも1つのプロセッサによって、デバイス上でローカルに生成される。
【００１７】
第2の態様によると、ファイルへのアクセスを管理する方法が提供され、方法は、ネットワークアクセス可能ストレージ内に記憶されたメディアファイルの少なくとも1つの縮小サイズバージョンを、デバイスのローカルメモリ内に記憶するステップと、デバイスの少なくとも1つのプロセッサによって実行されるオペレーティングシステムのファイルシステムを介して、メディアファイルにアクセスするための要求を受信するステップと、要求の分析に基づいて、ネットワークアクセス可能ストレージからメディアファイルのコピーを取り出して、コピーによって要求に応答するためにネットワークインタフェースを使用するか、または、縮小サイズバージョンのうちの少なくとも1つによって要求に応答するかを決定するステップとを含む。
【００１８】
第3の態様によると、ファイルへのアクセスを管理するためのソフトウェアプログラム製品が提供され、ソフトウェアプログラム製品は、非一時的コンピュータ可読記憶媒体と、ネットワークアクセス可能ストレージ内に記憶されたメディアファイルの少なくとも1つの縮小サイズバージョンを、デバイスのローカルメモリ内に記憶するための第1のプログラム命令と、デバイスの少なくとも1つのプロセッサによって実行されるオペレーティングシステムのファイルシステムを介して、メディアファイルにアクセスするための要求を受信するための第2のプログラム命令と、要求の分析に基づいて、ネットワークアクセス可能ストレージからメディアファイルのコピーを取り出して、コピーによって要求に応答するためにネットワークインタフェースを使用するか、または、縮小サイズバージョンのうちの少なくとも1つによって要求に応答するかを決定するための第3のプログラム命令とを含み、前記第1、第2および第3のプログラム命令は、前記非一時的コンピュータ可読記憶媒体からの少なくとも1つのコンピュータ化されたプロセッサによって実行される。
【図面の簡単な説明】
【００１９】
添付図面を参照して、例としてのみ、本開示のいくつかの実施形態がここで説明される。詳細な、図面に対するここでの具体的な参照によって、示される詳細は、例としており、且つ、本開示の実施形態の例示的な議論を目的としていることが強調される。この際、図面に伴う説明は、当業者に対して、本開示の実施形態がどのように実行されることができるかを明らかにする。
【００２０】
図面においては、
【００２１】
【図１】図1は、本開示のいくつかの実施形態に係る、ファイルアクセスを管理するための方法を例示する概略フローチャートである。
【図２】図2は、本開示のいくつかの実施形態に係る、ファイルアクセスを管理するためのシステムの概略的な例示である。
【図３】図3は、本開示のいくつかの実施形態に係る、プロセッサが外部ファイル管理サーバに配置される、ファイルアクセスを管理するためのシステムの概略的な例示である。
【図４】図4は、本開示のいくつかの他の実施形態に係る、ファイルアクセスを管理するためのシステムの概略的な例示である。
【図５】図5は、本開示のさらなる実施形態に係る、ファイルアクセスを管理するためのシステムの概略的な例示である。
【図６】図6は、本開示のいくつかの実施形態に係る、縮小サイズファイルの生成および記憶のためのシステムの概略的な例示である。
【図７】図7は、本開示のいくつかの他の実施形態に係る、縮小サイズファイルの生成および記憶のためのシステムの概略的な例示である。
【発明を実施するための形態】
【００２２】
Androidクラウドストレージソリューションでは、サードパーティアプリケーションはクラウドに対するアクセス権を持っていないことがあるため、サードパーティアプリケーションのプライベートファイルは、クラウドでバックアップされることができず、且つ、インストールされたアプリケーションもまた、バックアップされない。加えて、ファイルは、ユーザがファイルを手動で削除するときのみ、ローカルストレージから取り除かれることができる。iOSクラウドストレージソリューションでは、あるデバイスモードにおいては、デバイス上の全てのメディアファイルは自動的により低い解像度にスケールダウンされ、一方で、クラウド内にオリジナルのみを保持する。加えて、メディアファイルは、iOS photosアプリケーションの裁量でデバイスから削除される。
【００２３】
他のソリューションは、最も使用されていない画像およびアプリケーションファイルをクラウドストレージにオフロードし、特殊なAPIまたは手動のユーザ設定は、サードパーティアプリケーションによってアクセスするために必要とされる。
【００２４】
本開示のいくつかの実施形態によって提供されるソリューションは、デバイス上に記憶されたメディアファイルを対応する縮小サイズファイルに置き換えるとともに、フルサイズファイルをクラウド上に記憶する。従って、メディアファイルの使用可能なコピーは、常に、デバイス上で動作するアプリケーションに対してアクセス可能であることができる。ファイルのフルバージョンは、例えば、どのくらい頻繁に且つ/または最近ファイルが使用されているかに応じて、デバイスから削除されるか、デバイスにダウンロードされるか、またはデバイス上に保持されてよい。めったに使用されないファイルのフルバージョンはデバイスから削除されてよく、一方で、デバイス上に縮小サイズファイルを保持していてよい。ファイルが頻繁に使用されるケースでは、フルバージョンは、クラウドからデバイス上にダウンロードされてよく、且つ/または、デバイス上に保持されてよい。
【００２５】
本開示のいくつかの実施形態によって提供されるソリューションは、ファイルシステムレベルで機能するとともに、ファイルのどのバージョンを要求するアプリケーションに提供すべきか決定する指定ファイルシステムを構成する。指定ファイルシステムを作成する操作および/または決定は、要求するアプリケーションに対して透過的であり、例えば、要求するアプリケーションは、決定に関与することなく、その要求に応答してファイルを受信する。
【００２６】
本開示の少なくとも1つの実施形態を詳細に説明する前に、本開示は、その適用において、以下の説明で明らかにされる、且つ/または、図面および/または例で例示されるコンポーネントおよび/または方法の構成および配置の詳細に必ずしも限定されないことは理解されるべきである。本開示は、他の実施形態の能力があり、または、様々な方法で実行されるまたは行われることができる。
【００２７】
本開示は、システム、方法および/またはコンピュータプログラム製品であってよい。コンピュータプログラム製品は、プロセッサに、本開示の態様を行わせるための、コンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体（またはメディア）を含んでよい。
【００２８】
コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行してよく、ユーザのコンピュータ上で部分的に実行してよく、スタンドアローンのソフトウェアパッケージとして、ユーザのコンピュータ上で部分的に、且つ、リモートコンピュータ上で部分的に実行してよく、または、リモートコンピュータまたはサーバ上で全体的に実行してよい。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク（LAN）またはワイドエリアネットワーク（WAN）を含む、任意のタイプのネットワークを介して、ユーザのコンピュータに接続されてよく、または、接続は、外部コンピュータ（例えば、インターネットサービスプロバイダを使用するインターネットを介して）に対して行われてよい。いくつかの実施形態では、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ（FPGA）またはプログラマブルロジックアレイ（PLA）を含む、電子回路は、本開示の態様を実行するために、電子回路をパーソナライズするコンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行してよい。
【００２９】
本開示の態様は、本開示の実施形態に従って、方法のフローチャートの例示および/またはブロック図、装置（システム）およびコンピュータプログラム製品を参照してここで説明される。フローチャートの例示および/またはブロック図の各ブロック、およびフローチャートの例示および/またはブロック図におけるブロックの組合せは、コンピュータ可読プログラム命令によって実施されることができることが理解されるだろう。
【００３０】
図におけるフローチャートおよびブロック図は、本開示の様々な実施形態に従って、システム、方法およびコンピュータプログラム製品の可能な実施のアーキテクチャ、機能性および操作を例示する。この際、フローチャートまたはブロック図内の各ブロックは、モジュール、セグメント、または、特定の論理機能を実施するための1つまたは複数の実行可能な命令を含む、命令の一部を表してよい。いくつかの代替的な実施においては、ブロック内に記載される機能は、図で記載される順序以外で生じ得る。例えば、連続して示される2つのブロックは、関与する機能性に応じて、実際には、実質同時に実行されてよく、または、ブロックは、時には逆順で実行されてよい。ブロック図の各ブロックおよび/またはフローチャートの例示、およびブロック図および/またはフローチャートの例示におけるブロックの組合せは、特定の機能またはアクトを実行する、または、特殊目的ハードウェアおよびコンピュータ命令の組合せを行う特殊目的ハードウェアベースのシステムによって実施されることができることはまた留意されるだろう。
【００３１】
ここで、図1に対して参照が行われ、図1は、本開示のいくつかの実施形態に係る、ファイルアクセスを管理するための方法100を例示する概略フローチャートである。ブロック110で示されるように、プロセッサと呼ばれる、1つまたは複数のプロセッサは、ネットワークアクセス可能ストレージ内に記憶されたメディアファイルの縮小サイズバージョンを、デバイスのローカルメモリ内に記憶することを命令する。ブロック120に示されるように、プロセッサは、デバイスの少なくとも1つのプロセッサによって実行されるオペレーティングシステムのファイルシステムを介して、メディアファイルにアクセスするための要求を受信してよい。ブロック130に示されるように、プロセッサは、要求の分析に基づいて、ネットワークアクセス可能ストレージからメディアファイルのコピーを取り出して、コピーによって要求に応答するためにネットワークインタフェースを使用するか、または、ローカルに記憶された縮小サイズバージョンのうちの1つによって要求に応答するかを決定してよい。
【００３２】
本開示のいくつかの実施形態は、ファイルアクセスを管理するためのソフトウェアプログラム製品を提供することができ、ソフトウェアプログラム製品は、プログラム命令を記憶することができる非一時的コンピュータ可読記憶媒体を含んでよく、プログラム命令は、プロセッサによって実行されるとき、プロセッサに、方法100を実行させることができる。
【００３３】
ここで、図2に対してさらなる参照が行われ、図2は、本開示のいくつかの実施形態に係る、ファイルアクセスを管理するためのシステム200の概略的な例示である。システム200は、ネットワークアクセス可能ストレージ50、ファイル管理デバイス10およびファイル管理プロセッサ14を含んでよい。ファイル管理プロセッサ14は、デバイス10内、および/または外部ファイル管理サーバ（例えば、図3および5に示される）内に含まれてよい。ネットワークアクセス可能ストレージ50は、例えば、符号化された画像、ビデオ、一組の画像、オーディオファイル、グラフィックデータファイルおよび/または任意の他の適切な符号化されたメディア等を各々含むことができるメディアファイルを含む、複数のファイル52を記憶してよい。デバイス10は、ネットワークインタフェース12、オペレーティングシステム16、ファイルシステム18およびローカルメモリ20を含んでよい。ローカルメモリ20は不揮発性メモリであってよく、且つ/または、例えば、ファイル52の縮小サイズバージョンを含むことができる、複数の縮小ファイル22を記憶してよい。いくつかの実施形態では、各縮小サイズファイル22の記憶サイズと対応するファイル52の記憶サイズとの間の比は、固定された所定の定数であってよい。比は、例えば、縮小サイズファイル22に対して許容される相対的な品質に従って決定されてよい。
【００３４】
いくつかの他の実施形態では、縮小サイズファイル22は、例えば、アプリケーションがあるサイズ要件を有するとき、対応するファイル52のサイズと無関係な、事前に定義された固定サイズであってよい。いくつかのケースでは、ファイル52のフルバージョン52aはまた、ローカルメモリ20内に記憶されてもよい。
【００３５】
縮小サイズファイル22は、例えば、対応するファイル52と比較して、低減された品質を有してよい。本開示のいくつかの実施形態では、縮小サイズファイル22のサイズは、対応するファイル52のサイズの約10パーセントであってよい。別の例では、縮小サイズファイル22のサイズは、対応するファイル52のサイズの約20パーセントである。別の例では、縮小サイズファイル22のサイズは、100Kまたはそれ未満である。任意で、ファイル22は、より低い解像度を有してよく、損失圧縮されてよく、より低いビットレートを有してよく、且つ/または、任意の他の適切な方法によって縮小されてよい。
【００３６】
ファイル52は、例えば異なるサイズの、ローカルメモリ20内に記憶された、いくつかの関連する縮小サイズファイル22を有してよく、各バージョンは、他の目的および/またはアプリケーションのために使用されてよい。例えば、同じファイル52に関連するいくつかの縮小サイズファイル22は、例えば、固定の所定の比に従って決定されたサイズを有するファイル22、あるアプリケーションのために必要とされる事前に定義された固定サイズを有するファイル22、別のアプリケーションのために必要とされる別の事前に定義された固定サイズを有するファイル22、別の、非常に小さい、非常に古く、且つ/または、使用されないファイルのために事前に定義されたサイズを有するファイル22、および/または、異なるサイズを有する任意の他のファイル22を含んでよい。
【００３７】
プロセッサ14は、オペレーティングシステム16および/またはファイルシステム18を制御してよい。プロセッサ14は、例えば、アプリケーション、オペレーティングシステムサービス、デバイスフレームワークサービスまたは任意の他の適切な要求するエンティティ等の、要求するソフトウェアエンティティからファイル52にアクセスするための要求を受信してよい。要求は、例えば、ファイルシステム18を介して、例えば、カーネルレベルの入力出力（IO）操作を介して、受信されてよい。本開示のいくつかの実施形態では、プロセッサ14は、ファイル52を要求する且つ/または呼び出すことができるソフトウェアエンティティのインテントおよび/またはアクティビティを傍受することができる。プロセッサ14は、ファイル22、52および/または52aの割り当ておよび/または検索を管理してよい。プロセッサ14は、ファイルのどのバージョン、例えば、縮小ファイル22またはフルバージョンファイル52またはファイル52aのうちの1つを、要求するエンティティに提供すべきか決定してよい。決定は、例えば、要求するエンティティのタイプ、時刻、ファイルサイズ、要求するエンティティによって行われるアクションおよび/または任意の他の適切なパラメータ等に関係し得るルールまたは一連のルールに対するコンプライアンスをチェックすることによって行われてよい。プロセッサ14は、要求、インテントまたはアクティビティを分析し、且つ/または、例えば、分析に基づいて、例えば、ネットワークインタフェース12を使用することによって、ネットワークアクセス可能ストレージ50からファイル52のコピーを取り出すか、または、縮小サイズバージョンのうちの1つ、例えば、対応するファイル22を取り出すかを決定してよい。プロセッサ14は、次いで、決定に従って、ファイル52のコピーまたは対応するファイル22を取り出してよく、且つ、取り出されたファイルによって要求に応答してよい。ファイル52は、例えば、オーディオ、ビデオ、画像、アプリケーションリソースおよび/またはプロセッサ14に知られている任意の他のメディアファイルを含んでよい。
【００３８】
プロセッサ14は、例えば、ソフトウェアエンティティの特性を分析することによって、受信された要求を分析してよい。加えて、または、代替的に、プロセッサ14は、例えば、要求を提出することに先立って、または、インテント/アクティビティの傍受に先立って、ソフトウェアエンティティによって行われるアクションを分析することによって、受信された要求、インテントまたはアクティビティを分析してよい。
【００３９】
本開示のいくつかの実施形態では、例えば、分析に基づいて、プロセッサ14は、例えば、対応する縮小サイズファイル22の1つまたは複数と併せて、ファイル52のフルバージョン52aをローカルメモリ20内に記憶することを命令することができる。加えて、または、代替的に、プロセッサ14は、縮小サイズファイル22および/またはフルサイズバージョン52aのうちのどちらかへの様々なエンティティのアクセスパラメータを監視且つ/または分析してよく、且つ/または、例えば、監視および/または分析に基づいて、ローカルメモリ20における、対応するフルバージョン52aを保持し、ローカルメモリ20から対応するフルバージョン52aを削除し、または、ローカルメモリ20において、対応するフルバージョン52aを記憶することを命令してよい。アクセスパラメータは、例えば、最後のアクセス時刻、使用の頻度および/または任意の他の適切なアクセスパラメータを含んでよい。
【００４０】
本開示のいくつかの実施形態では、プロセッサ14は、例えば、アクセスパラメータに基づいて、各ファイル22および/または52aのためのスコアを生成、例えば計算または選択してよい。例えば、より高いスコアは、ファイルへのより頻繁な且つ/または最近のアクセスを示すことができる。プロセッサ14は、例えば、作成日、アクセスパターン、ファイルサイズおよび/または任意の他の関連パラメータ等の、ファイルの重要性、有用性、古さおよび/またはアクティビティを意味し得る、ファイル22/52aの様々な初期パラメータに従って、初期スコアを計算してよい。ファイルのスコアは、時間と共に変化してよく、且つ/または、周期的にまたは要求されると、プロセッサ14によってアップデートされてよい。例えば、ファイルがよりアクティブでなくなり、且つ/または古くなるにつれて、プロセッサ14によって与えられるスコアは下がり得る。ファイルがよりアクティブになるケースでは、例えば、スコアは増加し得る。
【００４１】
ファイル52aおよび/または22のために生成されるスコアがある所定の閾値を下回るまで下がるとき、フルバージョンファイル52aは、ローカルメモリ20から削除されてよく、且つ/または、縮小ファイル22のみが、ローカルメモリ20において保持されてよい。プロセッサ14は、例えば、ローカルメモリ20内の残りの空き空間、ファイル52aおよび/または22の平均サイズ、空き空間の減少の平均レート、および/または、例えば、メモリ20内の空間クリアリングの緊急性を意味し得る、任意の他のパラメータに従って、閾値を計算且つ/またはアップデートしてよい。本開示のいくつかの実施形態では、プロセッサ14は、ネットワークインタフェース12に、例えば、分析に基づいて、ネットワークアクセス可能ストレージ50における記憶のためにファイル52を送信し、且つ/または、ローカルメモリ20における記憶のために、例えば、ネットワークインタフェース12を介して、対応する縮小サイズファイル22を受信するように命令してよい。いくつかの他の実施形態では、プロセッサ14は、ファイル52のメディアサイズを縮小し、且つ/または、対応する縮小サイズファイル22を生成してよく、それによって、例えば、対応する縮小サイズファイル22は、プロセッサ14によってローカルに生成されることができ、且つ/または、ローカルメモリ20において記憶されることができる。
【００４２】
プロセッサ14がファイル52のための要求を受信するか、または、ファイル52を要求する且つ/または呼び出すソフトウェアエンティティのインテントおよび/またはアクティビティを傍受するケースでは、プロセッサ14は、対応するフルバージョン52aがローカルメモリ20において記憶されているときをチェックしてよい。対応するフルバージョン52aがローカルメモリ20において記憶されているケースでは、プロセッサ14は、関連ソフトウェアエンティティに、対応するフルバージョン52aを提供してよい。対応するフルバージョン52aがローカルメモリ52において記憶されていないケースでは、プロセッサ14は、関連ソフトウェアエンティティの操作がファイル52のフルバージョンを要求するときをチェックしてよく、または、対応する縮小サイズファイル22が十分であり得るときをチェックしてよい。プロセッサ14が、対応する縮小ファイル22が操作の要件を満足することができると決定するケースでは、プロセッサ14は、関連ソフトウェアエンティティに、対応する縮小サイズファイル22を提供してよい。本開示のいくつかの実施形態では、例えば、印刷または編集等のインテントは、フルサイズファイル52および/またはフルバージョン52aを要求してよく、例えば、添付または閲覧等のインテントは、対応する縮小サイズファイル22で満足することができる。
【００４３】
いくつかのケースでは、プロセッサ14は、例えば、ある傍受されたインテントおよび/またはアクティビティに対しては、フルサイズバージョン52aよりも、縮小サイズファイル22のうちの1つまたはいくつかがより適切であると決定し得る。例えば、いくつかのアプリケーションは、小さいサイズのメディアを要求し得る。例えばメッセージングアプリケーション経由のファイル共有等のインテントは、例えば、対応するフルサイズバージョン52aによるよりも、縮小サイズファイル22によって、より良く役立つ場合がある。このようなアプリケーションおよび/またはインテントについて、プロセッサ14は、例えそれぞれのフルサイズバージョン52aがデバイス上に記憶されているとしても、ファイル22を提供してよい。縮小ファイル22がデバイス上に存在しないケースでは、プロセッサ14は、本明細書で詳細に説明されるように、クラウド50から縮小ファイル22をダウンロードするか、または、デバイス上で縮小ファイル22を生成してよい。
【００４４】
ファイル52のフルバージョンが要求されるケースでは、プロセッサ14は、ネットワークアクセス可能ストレージ50へのアクセス、例えばネットワーク接続があるときをチェックしてよい。アクセスがない、且つ/またはストレージ50への接続が貧弱であるケースでは、プロセッサ14は、関連エンティティに、接続失敗を通知してよく、対応する縮小ファイル22を提供してよく、且つ/または、関連エンティティに、縮小ファイル22は、ファイル52のフルバージョンの代わりに提供されることを通知してよい。ストレージ50へのアクセスがあるケースでは、プロセッサ14は、ファイル52を取り出し、且つ/または、関連ソフトウェアエンティティにファイル52を提供してよい。
【００４５】
本開示のいくつかの実施形態では、プロセッサ14は、指定ファイルシステム30を実施且つ/または制御することによって、ストレージ50からのファイル52の取り出しを行ってよい。プロセッサ14からファイル52のための要求を一度受信すると、ファイルシステム30は、ファイル52を取り出し、且つ/またはファイル52を関連ソフトウェアエンティティに提供してよい。取り出しは、プロセッサ14が、例えば、ファイル52が、読出し/書込み操作のために要求されるとき、ファイル52が取り出され且つ/または提供されるまで、オペレーティングシステム16によって、ソフトウェアエンティティの操作をフリーズさせている間に実行されてよい。
【００４６】
本開示のいくつかの他の実施形態では、プロセッサ14は、オペレーティングシステム16によって、ストレージ50からのファイル52の取り出しを行ってよい。オペレーティングシステム16は、ソフトウェアエンティティのインテントおよび/またはアクティビティを傍受してよい。傍受されたインテントおよび/またはアクティビティは、ストレージ50において記憶されているファイル52を要求且つ/または呼び出してよい。オペレーティングシステム16は、例えば、このようなインテントおよび/またはアクティビティが傍受されたとき、ストレージ50から、要求された且つ/または呼び出されたファイル52を取り出してよい。オペレーティングシステム16による取り出しは、いくつかの実施形態では、例えば、要求する且つ/または呼び出すソフトウェアエンティティの継続操作を可能にする背景において、且つ/または、要求する且つ/または呼び出すソフトウェアエンティティの継続操作を可能にする限り、要求する且つ/または呼び出すソフトウェアエンティティに対して透過的に実行されてよい。
【００４７】
本開示のいくつかの実施形態は、例えば、プロセッサ14の位置において、オペレーティングシステム16内の操作および/またはモジュールを制御するプロセッサ14の能力において、且つ/または、ファイル要求、要件および/または呼出しを受信するプロセッサ14の能力において、変化してよい。本開示の様々な実施形態は、例えば、オペレーティングシステム16との統合レベルにおいて、それらがオペレーティングシステム16の挙動に影響を及ぼす方式および/または範囲において、且つ/または、アプリケーション要求処理にわたる、それらが有する制御の量において、変化し得る。
【００４８】
例えば、本開示のいくつかの実施形態は、オペレーティングシステム16とより統合されず、且つ、ファイル管理の低減された制御を有することがあり、どの要求がプロセッサ14に転送されるかの決定は、オペレーティングシステム16によって行われてよい。このような例示的な実施形態は、図3に示され、図3は、本開示のいくつかの実施形態に係る、ファイルアクセスを管理するためのシステム300の概略的な例示であり、その中で、プロセッサ14は外部ファイル管理サーバに配置される。システム300は、外部ファイル管理サーバ32、ネットワークアクセス可能ストレージ50およびデバイス10を含んでよい。ファイル管理サーバ32は、プロセッサ14を含んでよい。デバイス10のオペレーティングシステム16は、カーネルモジュール17およびファイルシステム18を含んでよい。プロセッサ14は、例えば、カーネルモジュール17を介して、ファイルシステム18を監視するためにデバイス10上でサービスを実行してよい。プロセッサ14は、オペレーティングシステム16によって、ソフトウェアエンティティによって行われるファイル要求に関して通知を受けてよく、且つ/または、要求されたとき、ファイル52を取り出してよい。
【００４９】
アプリケーションまたはサービス60がファイル52を要求するとき、カーネルモジュール17は、ファイルシステム18によって、ローカルストレージ20からバージョンを取り出すか、または、プロセッサ14に通知するかを決定してよく、プロセッサ14は、要求されたファイル52をストレージ50から取り出してよい。本開示のいくつかの実施形態では、オペレーティングシステム16は、プロセッサ14に、アプリケーションまたはサービス60によって行われる、関連する種類のファイルのための全ての要求について、または、ある種類のファイルのための全ての要求について通知してよい。いくつかの実施形態では、プロセッサ14は、例えば、本明細書において上で詳細に説明された決定考慮に従って、ストレージ50からフルサイズファイル52を取り出すか、且つ/または、ファイルシステム18に、ローカルストレージ20からバージョンを取り出すように命令するかを決定する。
【００５０】
本開示のいくつかの他の実施形態は、オペレーティングシステム16と統合されるとともに、ファイル管理のより多くの制御を有する。このような例示的な実施形態は図4に示され、図4は、本開示のいくつかの他の実施形態に係る、ファイルアクセスを管理するためのシステム400の概略的な例示である。システム400は、ネットワークアクセス可能ストレージ50、デバイス10およびプロセッサ14を含んでよい。プロセッサ14は、デバイス10のオペレーティングシステム16における指定ファイルシステム30を実施且つ/または制御してよい。オペレーティングシステム16は、カーネルモジュール17およびファイルシステム18を含んでよい。指定ファイルシステム30は、カーネルモジュール17、ファイルシステム18、ローカルストレージ20および/またはネットワークアクセス可能ストレージ50と通信してよく、且つ/または、それらを制御してよい。
【００５１】
指定ファイルシステム30は、例えば、カーネルモジュール17を介して、アプリケーションまたはサービス60によって行われるファイル要求を受信してよく、且つ/または、例えば、本明細書において上で詳細に説明される決定考慮に従って、ストレージ50からフルサイズファイル52を取り出すか、ファイルシステム18に、ローカルストレージ20からバージョン22または52aのうちの1つまたは複数を取り出すように命令するか、且つ/または、ローカルフルバージョン52aを生成または削除するかを決定してよい。
【００５２】
本開示のいくつかの他の実施形態は、オペレーティングシステム16とどちらも統合されるとともに外部アプリケーションサーバを有し、且つ、ファイル管理の完全制御を有してよい。このような例示的な実施形態は図5に示され、図5は、本開示のさらなる実施形態に係る、ファイルアクセスを管理するためのシステム500の概略的な例示である。システム500は、外部ファイル管理サーバ32、ネットワークアクセス可能ストレージ50、デバイス10およびプロセッサ14を含んでよい。プロセッサ14は、ファイル管理サーバ32、デバイス10および/または両方に含まれてよい。例えば、プロセッサ14の操作のいくつかは、デバイス10上で実行されてよく、且つ、いくつかはサーバ32上で実行されてよい。デバイス10のオペレーティングシステム16は、カーネルモジュール17およびファイルシステム18を含んでよい。
【００５３】
プロセッサ14は、デバイス10のオペレーティングシステム16における指定ファイルシステム30を実施且つ/または制御してよい。指定ファイルシステム30は、カーネルモジュール17、ファイルシステム18、ローカルストレージ20および/またはネットワークアクセス可能ストレージ50と通信してよく、且つ/またはそれらを制御してよい。いくつかの実施形態では、指定ファイルシステム30は、ファイル管理サーバ32を介して、ストレージ50と通信してよく、且つ/または、ストレージ50を制御してよい。
【００５４】
指定ファイルシステム30は、例えば、カーネルモジュール17を介して、アプリケーションまたはサービス60によって行われるファイル要求を受信してよい。プロセッサ14は、例えば、本明細書において上で詳細に説明される決定考慮に従って、ストレージ50からフルサイズファイル52を取り出すか、ファイルシステム18に、ローカルストレージ20からバージョン22または52aのうちの1つまたは複数を取り出すように命令するか、且つ/または、ローカルフルバージョン52aを生成または削除するかを決定してよい。
【００５５】
加えて、本開示のいくつかの実施形態は、例えば、縮小サイズファイル22が生成且つ/または記憶される方式において変化してよい。例えば、いくつかの実施形態では、縮小ファイル22は、ネットワークアクセス可能ストレージ50内で生成且つ記憶され、且つ、必要に応じて、デバイス10にダウンロードされてよい。いくつかの他の実施形態では、ファイル22は、デバイス10上で直接生成且つ記憶される。
【００５６】
参照が図6に対して行われ、図6は、本開示のいくつかの実施形態に係る、縮小サイズファイル22の生成および記憶のためのシステム600の概略的な例示である。システム600は、デバイス10およびネットワークアクセス可能ストレージ50を含んでよい。ファイル52は、ネットワークアクセス可能ストレージ50にアップロードされてよく、且つ、例えば、フルバージョンストレージ50aにおいて記憶されてよい。対応する縮小サイズファイル22は、デバイス10上に生成されてよいとともに、ローカルストレージ20内に記憶されてよい。例えば、ストレージ50にファイル52をアップロードすると、フルバージョン52aがローカルストレージ20から削除されそうなちょうどそのとき、または、例えば、低いアクセス頻度または最近のアクセスがないことによる、任意の中間の時間に、縮小サイズファイル22は生成されてよい。
【００５７】
参照が図7に対して行われ、図7は、本開示のいくつかの他の実施形態に係る、縮小サイズファイル22の生成および記憶のためのシステム700の概略的な例示である。システム700において、ネットワークアクセス可能ストレージ50は、フルバージョンストレージ50aおよび縮小サイズバージョンストレージ50bを含んでよい。ファイル52は、ネットワークアクセス可能ストレージ50にアップロードされてよく、且つ、例えば、フルバージョンストレージ50aにおいて記憶されてよい。対応する縮小サイズファイル22は、ネットワークアクセス可能ストレージ50において生成されてよく、且つ、例えば、縮小サイズバージョンストレージ50bにおいて記憶されてよい。縮小サイズファイル22は、デバイス10にダウンロードされてよく、且つ、例えば、ローカルストレージ20において記憶されてよい。
【００５８】
本開示のいくつかの実施形態では、縮小サイズファイル22は、ネットワークアクセス可能ストレージ50において一度生成されると、デバイス10にダウンロードされる。次いで、縮小ファイル22は、要求されたとき、且つ/または、対応するフルバージョン52aがデバイス10上にないケースにおいて使用されてよい。
【００５９】
いくつかの他の実施形態では、縮小サイズファイル22は、例えば、低いアクセス頻度または最近のアクセスがないことによって、対応するフルバージョン52aがデバイス10から削除されそうなときに、デバイス10にダウンロードされる。例えば、プロセッサ14は、ファイル52aの生成されたアクセススコアが、所定の閾値に近づくとき、縮小サイズファイル22をダウンロードしてよい。
【００６０】
本開示のいくつかの実施形態では、プロセッサ14は、クラウドで生成された縮小サイズファイル22をダウンロードすることと、縮小サイズファイル22をローカルに生成することとの間で選択してよい。選択は、ネットワークおよび/またはクラウドアクセシビリティ、および縮小サイズファイル22への必要性によって影響を受けることがある。例えば、フルサイズファイル52がアップロードされた後、縮小サイズファイル22は、まだ、ダウンロード且つ/または生成されていないことがある。フルサイズバージョン52aのアクセススコアが閾値を下回るまで一度下がると、ファイル52aは、ローカルメモリ20から削除されてよく、且つ、対応する縮小ファイル22が、プロセッサ14によってローカルに生成され、且つ/またはダウンロードされてよい。
【００６１】
本開示の様々な実施形態の説明が、例示の目的のために提供されてきたが、開示される実施形態に対して網羅的である、または限定されるようには意図されない。多くの修正および変更は、説明される実施形態の範囲および精神を逸脱することなく、当業者に対して明らかになるだろう。本明細書で使用される用語は、市場において発見される技術にわたる、実施形態、実際の適用または技術的な改善の原理を最もよく説明するために、または、当業他者が、本明細書で開示される実施形態を理解することができるように選ばれた。
【００６２】
明確さのために、別々の実施形態の文脈で説明された、本開示のある特徴はまた、単一の実施形態において組み合わせて提供されてもよいことは理解される。逆に、簡潔さのために、単一の実施形態の文脈で説明された、本開示の様々な特徴はまた、別々に、または、任意の適切な部分的組合せで、または、本開示の任意の他の説明された実施形態において適切に提供されてもよい。様々な実施形態の文脈で説明されたある特徴は、実施形態がそれらの要素無しに動作しない場合を除いて、それらの実施形態の不可欠な特徴とみなされるべきでない。
【符号の説明】
【００６３】
10  ファイル管理デバイス
12  ネットワークインタフェース
14  ファイル管理プロセッサ
16  オペレーティングシステム
17  カーネルモジュール
18  ファイルシステム
20  ローカルメモリ
22  縮小ファイル
30  指定ファイルシステム
32  ファイル管理サーバ
50  ネットワークアクセス可能ストレージ
50a  フルバージョンストレージ
50b  縮小サイズバージョンストレージ
52  ファイル                    
52a  フルサイズバージョン
60  アプリケーション/サービス
【国際調査報告】
2018524644.tif 000010
2018524644.tif 000011