(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0013】
複数の解像度を有するコンテンツアイテムを管理するための方法、システム、コンピュータ可読媒体を提供する。コンテンツアイテム若しくはアイテムの第2の解像度のバージョンを、バックグラウンドでダウンロードするか、又は、ダウンロードを試みる間に、ユーザは、ユーザデバイス上で第1の解像度で画像などのコンテンツアイテムのやり取り及び閲覧をすることができる。ここで使用されるように、用語「バックグラウンド」処理は、ユーザデバイスでの現在のユーザインタラクションに直接関連しない任意の処理であってもよい。
【0014】
なお、以下、「デバイス(device)」及び「コンテンツ管理システム(content management system)」との用語は、本明細書で、広範なストレージプロバイダ及びデータ管理サービスプロバイダと、電子デバイスとユーザデバイスとを広く指すものとして用いられる。また、「コンテンツアイテム(content item)」との語は、本明細書で、広範なデジタルデータ、ドキュメント、テキストコンテンツアイテム、音声コンテンツアイテム、ビデオコンテンツアイテム、コンテンツアイテムの一部、及び/又は他の種類のデータを広く指すものである。コンテンツアイテムはまた、ファイル、フォルダ、又は、コンテンツアイテムのコレクション、プレイリスト、アルバムのような異なる振る舞いで一緒にコンテンツアイテムをグループ化する他の機構を含み得る。ここで、「ユーザ(user)」の語もまた、この中で広く用いられ、シングルユーザ、複数のユーザ、認証されたアカウント、代わりに自動的に動作する又は人間の命令により動作するアプリケーション又はプログラム、任意の他のユーザタイプ、又はこれらの任意の組み合わせに相当し得る。ここで、「ジェスチャ(gesture)」及び「複数のジェスチャ(gestures)」との語はまた、この中で広く用いられ、1以上の運動、動き、ホバリング、推論、サイン、又は1つ以上のセンサとの任意の他の物理的な相互作用、又は、発話によるコマンドや網膜の追跡に基づく目の動きの解釈などの、これらの任意の組み合わせに相当し得る。「連続するリアルタイム画像(continuous real−time image)」はまた、この中で広く用いられ、1つ以上の撮影コンポーネントを介して撮影されたライブ画像、撮影された連続画像、記録された画像、又は撮影コンポーネントを介して撮影され得る任意の他の種類の画像、又はこれらの任意の組み合わせに相当し得る。
【0015】
本発明は、様々なコンポーネント及びコンポーネントの配置、様々な技術、方法、又はステップの手順と配置を具体化し得る。参照される図面は、実施の形態を説明することのみを目的としており、本発明を限定するものとして解釈されるものではない。それぞれが互いに独立して又は他の特徴との組み合わせにおいて用いることができる、様々な発明の特徴が以下に記載される。
【0016】
図1は、様々な実施の形態に従う例示的なシステムを示す。システム100は、ネットワーク106を跨いでコンテンツ管理システム104と通信するユーザデバイス102aと102bとを含む。2つのユーザデバイスのみがシステム100内に示されているが、任意の数のユーザデバイスがコンテンツ管理システム104及び/又はネットワーク106と作用し、上述の説明は単なる例示であることを、当業者は認識する。
ネットワーク106は、伝送制御プロトコル及びインターネットプロトコル(「TCP/IP」)、ハイパーテキスト・トランスファー・プロトコル(「HTTP」)及び/又はワイヤレス・アプリケーション・プロトコル(「WAP」)を含み、但しこれらに限定されない、任意の数のプロトコルを含み得る。例えば、ユーザデバイス102aとユーザデバイス102b(まとめると102)とは、TCP/IPを用いてコンテンツ管理システム104と通信し、そして、上位レベルでは、コンテンツ管理システム104におけるウェブサーバとHTTPを用いて通信するために、ブラウザを用い得る。
【0017】
様々なユーザデバイス102は、デスクトップコンピュータ、モバイルコンピュータ、モバイル通信デバイス(例えば携帯電話機、スマートフォン、タブレット)、テレビ、セットトップボックス、及び/又は、任意の他のネットワーク利用可能デバイス、を含む、但しこれに限定されない、コンテンツ管理システム104と通信する。様々なタイプのユーザデバイスは、スマートフォン、携帯電話機、タブレットコンピュータ、パーソナルデジタルアシスタント(PDAs)、ラップトップコンピュータ、デジタル音楽プレイヤ、及び/又は、タッチ感応式表示インタフェースを含むことができる、任意の他の種類のユーザデバイスを含む、但しこれに限定されない、ものであり得る。様々なタッチ感応式表示インタフェースは、液晶ディスプレイ(LCD)、モノクロディスプレイ、カラーグラフィックスアダプタ(CGA)ディスプレイ、エンハンストグラフィックスアダプタ(EGA)ディスプレイ、可変グラフィックスアレイ(VGA)ディスプレイ、任意の他のディスプレイ、を含む、又はこれらの任意の組み合わせを含む、但しこれに限定されない、ものであり得る。ある実施形態では、タッチ感応式ディスプレイインタフェースは、ジェスチャを受け付けて検出するために、1つ以上のプロセッサに接続されたマルチタッチパネルを含み得る。マルチタッチパネルは、例えば、1つ以上の行トレースを有し、及び/又はライントレースを駆動する、及び1つ以上の列トレースを有し、及び/又はラインを検知する、容量性の検知媒体であり得る。マルチタッチパネルは、この中でタッチ感応式ディスプレイインタフェースの1つの例として記載されるが、当業者は任意のタッチ感応式ディスプレイインタフェースが使用されることを認識する。更に、様々な種類のユーザデバイスは、ある実施形態では、1つ以上の撮影コンポーネントを含み得る。例えば、ユーザデバイス102は、前向きカメラ及び/又は後向きカメラを含み得る。
【0018】
コンテンツ管理システム100は、ユーザが認証されたアカウントを使ってコンテンツを格納できるようにし、また、検索、修正、ブラウズ、同期及び/又は他のアカウントにコンテンツを共有するような管理タスクを実行する。いくつかの実施形態では、ユーザデバイス102上の対応するユーザインタフェース(例えばスタンドアロンアプリケーション、クライアントアプリケーション等)は、ユーザがコンテンツ管理システム104のモジュールによって提供される機能を実行することができるように、コンテンツ管理インタフェースモジュールを用いて実装され得る。システム100の更なる詳細な記載は、
図11を参照して以下に示される。
【0019】
いくつかの実施形態において、ユーザインタフェース200は画像202などの画像のセットを表示してもよい。画像202は、例えば、行と列の画像を含むグリッドビューに表示されてもよい。当業者は任意の量の行及び列が使用され、任意の量の画像がセット202内に表示されうることを認識するであろう。例えば、セット202は、9、16、100、又は1000の画像、或いは任意の他の数の画像を含んでもよい。いくつかの実施形態において、表示される画像のセットは、所定の数の全てが表示される画像や、一部に表示されるもののみを有するいくつかの画像を含んでもよい。画像の一部は、現在表示されたウィンドウへ近接する表示ウィンドウ内に表示される画像に対応してもよい。いくつかの実施形態において、それらの画像は、スワイプ、クリック又はスクロールなどの1以上のアクションをユーザが実行することによって全てが閲覧されてもよい。
【0020】
セット202内に含まれる画像は、任意の適切なフォーマットに提示されてもよい。 例えば、セット202内の画像のいくつか又は全ては、高解像度の画像及びビデオの少なくとも1つ、標準解像度の画像及びビデオの少なくとも1つ、又はそれらの任意の他の組み合わせであってもよい。セット202内の各画像の種々のフォーマットは、画像又は複数の画像の表示解像度に対応してもよい。画像の表示解像度は、表示されうる画像の各次元の画素の数に対応してもよい。いくつかの実施形態において、セット202内に表示される画像の解像度は、ユーザインタフェース(ユーザインタフェースを表示する表示スクリーン)の表示解像度の性能によって制限されてもよい。画像の種々の解像度は、限定はしないが、標準解像度(例えば、480i、576i)、改善解像度(例えば、480p、576p)、高解像度(例えば、720p、1080i、1080p)、及び超高解像度(例えば、2160p、4320p、8640p)の少なくとも1つ、又は、任意の他の解像度を含んでもよい。
【0021】
いくつかの実施形態において、ユーザはフルスクリーンモードで閲覧するセット202のうちの1以上の画像を選択してもよい。例えば、ユーザは指206を用いてセット202から画像204を選択してもよい。任意のジェスチャ、又は複数のジェスチャの組み合わせが画像を選択するために使用されてもよい。例えば、指206は、それらの上をタップすることによって画像204を選択してもよい。
【0022】
選択した画像204は、サムネイルの解像度(例えば、75x75ピクセル)などの第1の解像度でセット202内に初期に表示されてもよい。当業者は、サムネイルの解像度が、限定はしないが、100x100ピクセル、160x160ピクセル、200x200ピクセル又は任意の他の組み合わせ、置換、又はそれらの範囲内の、複数のピクセルレベルを包含しうることを認識するであろう。サムネイルの解像度の画像204を提示することは、少なくとも一部において、利用可能な解像度でセット202からの複数の又は全ての画像を提示することの困難性に起因しうる。例えば、デバイスが高解像度(例えば、1080p)でセット202内に含まれる全ての画像を格納するのに十分なトータルストレージを有していなければ、セット202は、より低い解像度(例えば、サムネイルの解像度)で初期に表示され、格納されてもよい。
【0023】
画像204が選択されると、フルスクリーンモードでの画像又は単一の画像のビューを閲覧する要求が、コンテンツ管理システム(例えば、コンテンツ管理システム100)へネットワーク(例えば、ネットワーク104)を介して送信されうる。例えば、ローカルではデバイスがセット202により低い解像度の画像を格納して表示する一方で、ユーザはコンテンツ管理システム上のそれらのアカウント内に格納される高解像度のバージョンの画像を有してもよい。ユーザによるセット202からの1以上の画像の選択の検知に応じて、コンテンツ管理システムは、高品質又は高解像度のバージョンの画像204を検索し、ユーザデバイスへ送信してもよい。いくつかの実施形態において、コンテンツ管理システムは、ユーザに対して閲覧可能又は不可能であってもよい、それ自身別個のインタフェース250を含んでもよい。いくつかの実施形態において、コンテンツ管理システム上に描画されるアクティビティは、ユーザからの物理的なインタラクションなしで実行されてもよい。しかしながら、例示の目的で、コンテンツ管理システムのインタフェース250は、ここに提示されてもよい。インタフェース250は、セット202からのその選択に応じて、画像204の単一の画像ビューを表示する要求を受信してもよい。インタフェース250(及び、コンテンツ管理システム100)は、その後、コンテンツ管理システム上のユーザのアカウント内の高品質の画像254を配置してもよい。画像254は、いくつかの実施形態において、画像254がより高解像度から成ってもよい例外として、実質的に類似の画像204であってもよい。
【0024】
いくつかの実施形態において、画像254は、ユーザデバイスへ送信され、ユーザインタフェース200内に表示されてもよい。ユーザインタフェース200内に初期に表示されたセット202は、ユーザインタフェース200上で画像254に置き換えられてもよく、任意の数の表示スクリーンを立ち上げてもよい。例えば、画像254は、ユーザインタフェース上の「フルスクリーン」モードで表示されてもよいし、ユーザインタフェース200の全て又はほぼ全てを占有してもよい。画像254は、ユーザインタフェース200上の利用可能な表示空間の一部のみを占有してもよい。いくつかの実施形態において、セット202の一部及び画像254の両方は、ユーザインタフェース200内に表示されてもよい。
【0025】
いくつかの実施形態において、画像204を選択すること、高解像度のバージョン(例えば、画像254)に対するコンテンツ管理システムへの要求を送信すること、及び、単一の画像ビューの画像254を提示することの処理は、実質的に同時に全てが行われてもよい。例えば、ユーザは画像204を選択し、それに続いて、最小時間の遅延で単一の画像のビューで画像254が提示されてもよい。しかしながら、これは、要求の送信や高解像度の画像をダウンロードすることがネットワーク接続及び他の性能特性の少なくとも1つに依存するように、ユーザデバイスとコンテンツ管理システムとの間の接続レベルに依存してもよい。いくつかの実施形態において、これは、セット202のうちの画像の1以上を局所的にキャッシュすることによって解決されてもよく、これによって、画像204の選択と画像254の閲覧との間の任意の時間遅延を減少することになる。
【0026】
いくつかの実施形態において、セット202内に含まれる画像に対応する画像254及び他の高品質のバージョンがバックグラウンドでダウンロードされてもよい。例えば、セット202のユーザインタフェースのように、画像254などの、種々の高品質のバージョンの画像がバックグラウンドでダウンロードされてもよい。これは、コンテンツ管理システムへ送信される要求や画像の応答を待つことなく、単一の画像ビューで、選択した画像をユーザが閲覧することを許容する。いくつかの実施形態において、高解像度のバージョンの画像は、ユーザデバイスへのダウンロードにおいて動的に優先順位が決定されてもよい。例えば、最近閲覧した画像、最近格納された画像、及び最近アップロードされた画像の少なくとも1つがダウンロードされるように優先順位が決定されてもよい。
【0027】
図3は、種々の実施形態に従う、ダウンロードする優先順位に基づいて優先レベルを画像へ割り当てる例示のフローチャートを示す。処理300はステップ302から開始される。ステップ302で、単一の閲覧モードで閲覧すべき選択された画像が利用可能であるかどうかに関する決定が行われうる。上記決定はユーザデバイス、コンテンツ管理システム、又は両方で分割されて(例えば、ユーザデバイス上で開始し、コンテンツ管理システム上で完了する)、実行されてもよい。例えば、選択した画像(例えば、画像204)は、ネットワーク接続の欠如のため単一の閲覧モードでの閲覧が利用可能でなくてもよい。単一の閲覧モードは、画像204の高品質のバージョン(例えば、画像254)を取得するか、又は、取得するように試みてもよいが、ユーザデバイスとコンテンツ管理システムとの間のネットワーク接続の欠如に起因して、高品質の画像が即座に利用可能でないかもしれない。ステップ302で、アクセスが利用不可能であれば、処理300は、ステップ304へ進む。アクセスが利用可能であれば、処理300は、ステップ308へ進み、第1の優先レベルが1以上の選択された画像に割り当てられる。
【0028】
ステップ304で、選択した画像と同一のコレクション内に位置する任意の追加の画像が利用可能であるかどうかに関しての決定が行われてもよい。例えば、画像204は、セット202などの画像のコレクション内に位置してもよい。コレクション202内の追加画像の1つ以上がアクセス可能であれば、その後、選択した画像又は選択した複数の画像が第2の優先レベルに割り当てられる。そうでなければ、処理300はステップ306へ進む。
【0029】
ステップ306で、アクションが1つ以上の選択した画像に行われたか否かについての決定が行われる。例えば、ユーザ共有、編集、及び任意の他のタスクを選択した画像に実行した場合、当該画像は第3の優先レベルに割り当てられる。そうでなければ、処理300はステップ302に戻り、単一の閲覧モードで1以上の画像が利用可能となるまで待機する。
【0030】
いくつかの実施形態において、1以上の選択した画像へ割り当てられた優先レベルがコンテンツ管理システム上のユーザアカウントからの画像をユーザデバイスへダウンロードする順序を決定してもよい。前述した例示が選択した画像へ第1、第2、第3の優先レベルを割り当てるものの、当業者は、任意の優先レベル及び任意の優先レベルの割り当てが任意の特性に基づいて実行されてもよいことを認識するであろうし、既に記載したシナリオは単に例示である。例えば、順序の多くの異なるパラダイムが動的な優先順位の決定に使用されてもよい。いくつかの実施形態において、第1の優先レベルは、第2の優先レベル及び第3の優先レベルの両方よりも高くランク付けされてもよい。例えば、動的な優先順位の順序は、第1の優先レベル、第2の優先レベル、及び第3の優先レベルであってもよい。このシナリオでは、第1の優先レベルがより高くランク付けされ、従って、第2の優先レベルが割り当てられたアイテムよりも前にダウンロードされうる。また、このシナリオでは、第2の優先レベルが第3の優先レベルよりも高くランク付けされてもよく、第2の優先レベルに割り当てられたアイテムは第3の優先レベルが割り当てられたアイテムよりも前にダウンロードされてもよい。他の例示として、動的な優先順位の順序は、第1の優先レベルが、第2の優先レベルよりも高くランク付けされた第3の優先レベルよりも高くランク付けされる第1の優先レベルを有してもよい。当業者は、優先レベルの任意の順列が実現されうることを理解するであろうし、前述した優先レベルの順序や割り当てと、ランク付けは単に例示である。さらに、当業者は、任意の数のアイテムが任意の数の優先レベルに割り当てられてもよいことも理解するであろうし、3つの優先レベルの使用は単なるれいじである。当業者は処理300からの任意のステップがユーザデバイス、追加のデバイス、コンテンツ管理ステム、又は任意のそれらの組み合わせ上で実行されてもよいことも理解するであろう。
【0031】
図4は、種々の実施形態に従う、ユーザデバイス上のコレクション内の画像を分類する概略を示す。インタフェース400は、コンテンツ管理システムの特定の部分に対応し、関連するメタデータを有する画像を含んでもよい。いくつかの実施形態において、ユーザがコンテンツ管理システムに直接アクセスし、やり取りすることができたのであれば、インタフェース400は、コンテンツ管理システム(例えば、コンテンツ管理システム100)のディスプレイ出力に対応してもよい。例えば、ユーザはコンテンツ管理システム100上でそれらのユーザアカウント内に格納された画像にアクセスして閲覧することを試みてもよいいくつかの実施形態において、インタフェース400は、ユーザがそれらのユーザアカウント内に格納された画像のいくつか又は全ての閲覧の試みに応じて提示されるディスプレイに対応してもよい。
【0032】
インタフェース400は画像402、404を表示してもよい。2つの画像がインタフェース400内に含まれるのみであるが、当業者は、任意の数の画像がユーザに提示されるか、ユーザアカウント内に格納されるかの少なくとも一方が行われてもよいことを理解するであろうし、2つの画像の使用は、単なる例示である。いくつかの実施形態において、インタフェース400内に表示される画像は関連するメタデータを含んでもよい。例えば、画像402、404は、それぞれ地理的情報402a、404aだけでなく時間的情報402b、404bを含んでもよい。地理的情報402aは画像402が撮影された場所(例えば、ニューヨークシティ)を示し、時間的情報402bは画像402が撮影された日付及び時刻の少なくとも一方(例えば、2013年10月1日、午後12時00分)を示してもよい。地理的情報404aは画像404が撮影された場所(例えば、サンフランシスコ)を示し、時間的情報404bは画像404が撮影された日付及び時刻の少なくとも一方(例えば、2011年7月4日、午後3時00分)を示してもよい。いくつかの実施形態において、日付及び時刻の扱いは、画像を処理する均一性を提供するために、複数のタイムゾーンに渡って同期されてもよい。
【0033】
関連するメタデータはまた、いくつかの実施形態において、カメラから受信した交換可能な画像ファイルフォーマット(Exif)データを含んでもよい。カメラは、画像若しくはビデオ、画像種別(例えば、パノラマ)、連写、又は任意の他の撮影コンテンツに異なる拡張子を割り当ててもよい。いくつかの実施形態において、関連するメタデータは、ユーザによって最近アップロードされた、閲覧された、又は共有された画像に対応してもよい。例えば、最近共有された画像は、それらの画像が共有されたことを示す、値1又はTrueを示す共有指標フラグを有してもよい。いくつかの実施形態において、関連するメタデータは、特定の画像又はコレクションが閲覧された時間に関する情報を含んでもよい。例えば、各画像は、画像が閲覧された時を示すか、画像が何回閲覧されたかを示すか、又は、任意の他の閲覧基準を示す、閲覧履歴を含んでもよい。他の例として、最近共有した画像がコレクションとともに分類されてもよい。
【0034】
いくつかの実施形態において、ユーザアカウント内に含まれる画像が関連するメタデータを用いて分類され、関連するメタデータに基づいて1以上のコレクションへ収集されてもよい。ユーザインタフェース450は、ユーザのユーザデバイス(例えば、デバイス102)上に表示されるユーザインタフェースに対応してもよい。いくつかの実施形態において、ユーザインタフェース450は、ユーザインタフェース450が画像のコレクションを含んでもよいということを例外として、
図2のユーザインタフェース200に実質的に類似してもよい。ユーザインタフェース450は、ユーザアカウント上の画像内に格納された関連するメタデータの1以上の一片に基づいて形成されうるコレクション460、470を含んでもよい。例えば、コレクション460は、サンフランシスコへのユーザの旅行からの画像に対応し、地理的情報404a及び時間的情報404bの少なくとも1つに実質的に類似するメタデータをそれぞれが有する画像462、464、468、470を含んでもよい。他の例として、コレクション470は、ニューヨークシティへのユーザの旅行からの画像に対応してもよく、コレクション470内の各画像は地理的情報402a及び時間的情報402bの少なくとも1つに実質的に類似してもよい。いくつかの実施形態において、コレクション内の画像の分類は、ユーザの最近の閲覧履歴、共有履歴、任意の最近のアップロードした画像、又はコンテンツアイテムの種別に基づいてもよい。例えば、最近閲覧した画像は特定のコレクションに含まれてもよい。
【0035】
いくつかの実施形態において、ユーザはそれらのユーザデバイスへ、それらのユーザアカウントからの1以上の画像をダウンロードするように要求してもよい。画像又は複数の画像がダウンロードされる際に、それらは、画像に関連するメタデータに基づいて、コンテンツ管理システム及び当該デバイスの少なくとも一方によって分類されてもよい。例えば、地理的情報404a及び時間的情報404bの少なくとも1つを含む任意の画像がユーザデバイス上のコレクション460内に収集され、配置されてもよい。いくつかの実施形態において、コンテンツ管理システム、ユーザデバイス、又は両方に分割して常駐する1以上のアルゴリズムは、類似の又は実質的に類似のメタデータに基づいて、分類され、収集されてもよい。任意の数の画像が分類され、任意の数のコレクションに収集されてもよい。例えば、ユーザアカウント内に格納される全ての画像は、分類されるが、予め定義された数のみが1以上のコレクション内でユーザデバイスへ送信されてもよい。
【0036】
いくつかの実施形態において、ユーザアカウント内に格納される画像は、グリッドの画像、又は、複数のグリッド画像を含むページに表示されてもよい。グリッド画像は、低解像度、又は、単一のビューモードでの画像を表示するために使用されるものよりも低解像度の任意の数の画像を含んでもよい。例えば、単一の画像ビューにおいて、画像は154x154ピクセルの解像度を有し、それに対して、グリッド内の画像は75x75ピクセルの解像度を有してもよい。上述した解像度の値は、単に例示であり、当業者は単一のビューモードとグリッドの両方に対して任意のピクセル値が使用されてもよいということを理解するであろう。いくつかの実施形態において、ユーザアカウント内に格納される全ての画像は、ユーザデバイスへ送信されうる、1以上のグリッドへ分類され、収集されてもよい。例えば、ユーザアカウント内に格納される千(1,000)の画像が存在してもよく、百(100)画像を含む、十(10)のグリッドがユーザアカウント内で形成されてもよい。10のグリッドの任意の数がユーザデバイスへ送信されてもよいが、基準要因(例えば、利用可能なトータルストレージ)が単一の時間で送信される量を決定してもよい。グリッドへの画像の収集は、画像が個別に閲覧される場合よりも速くそれらのユーザアカウント内に格納された大量の画像を見ることをユーザに許容するため、非常に有益であろう。さらに、グリッドの画像はより低い解像度を有する画像を含むため、グリッドのトータルの格納サイズは小さくてもよく、従って、任意のネットワークの待ち時間又はストレージの制約に関わらずユーザデバイス上でより早く、かつ高速に閲覧することができるであろう。例えば、低解像度のグリッドの画像を収集することによって、全体として単一の画像ビューの1以上の画像に等しい、各グリッドが低解像度を全てが有する大量の画像を含むため、より大量の画像がユーザデバイスへ送信されうる。特定の例示として、64x64ピクセルの解像度を有する九つ(9)の画像を含む単一のグリッドは、一つ(1)の512x512ピクセルの画像よりもユーザデバイスへ送信する帯域幅がより少なくてすむ。従って、ユーザは、高解像度の1つの画像のみが送信される通常送信されるよりも速く大量の画像を閲覧しやり取りすることができる。
【0037】
図5は、種々の実施形態に従う、ユーザインタフェース上に表示することが可能なグリッドビューの例示のダイアグラムを示す。ユーザインタフェース500は、ユーザデバイスの表示スクリーン上に表示されてもよい(例えば、ユーザデバイス上に配置されたタッチ検知ディスプレイインタフェース)。いくつかの実施形態において、ユーザインタフェース500は、ユーザインタフェース500がグリッドビューにおいて種々の画像を表示してもよいということを例外として、ユーザインタフェース400に実質的に類似してもよい。
【0038】
各グリッドは、任意の数の画像を含んでもよく、当該画像の数がコンテンツ管理システム及びユーザの少なくとも一方によって設定されてもよい。例えば、当該システムは、ユーザデバイス上の利用可能な量のトータルストレージを算出し、算出結果に基づいて、ユーザデバイスへ送信されるべき多数のグリッドを作成してもよい。いくつかの実施形態において、ユーザはどのくらいの画像が単一のグリッドビューに含まれるべきかを選択したり、当該グリッド内に含まれるべき画像の解像度を選択したりの少なくとも一方を行ってもよい。例えば、ユーザは、含まれる百(100)が1つのグリッドに含まれるように決定してもよく、ユーザによって指定された数に基づいて、特定の解像度(例えば、75x75ピクセル)の百の画像がグリッド内に作成されてもよい。他の例として、ユーザはグリッドビュー内に含まれる画像が所定の解像度を有することを決定してもよく、当該決定に基づいて、所定の量の画像が各画像のサイズ及び解像度に基づいてグリッド内に含まれてもよい。
【0039】
ユーザインタフェース500は、グリッドビュー内に複数の画像502を含んでもよい。複数の画像502は、10x10のグリッド又は配列で表示されてもよい(例えば、列ごとに十の画像で、行ごとに十の画像)。複数の画像502は正方形のグリッド(例えば、行及び列ごとに同じ数の画像)を含ものの、当業者は任意の数の画像がグリッド内に含まれ、行ごと又は列ごとに任意の数の画像が使用されうることを理解するであろう。例えば、グリッドの複数の画像502は、20x10(10単位で20)の画像、5x5(5単位で5)の画像、15x8(8単位で15)の画像、又は任意の数の他の収集画像、或いはそれらの組み合わせの配列を含んでもよい。
【0040】
いくつかの実施形態において、グリッドビューに含まれる複数の画像は、グリッドビューのブロック又はページで送信されてもよい。例えば、複数の画像502は、別個のページの複数の画像512及び複数の画像522とともに1ページで送信されてもよい。複数の画像502は、ユーザインタフェース500上で現在表示されているウィンドウ内に表示されてもよく、例えば、その一方で、複数の画像512及び複数の画像522がユーザインタフェース500内に表示されうる現在表示されていないウィンドウに含まれてもよい。例えば、複数の画像502がユーザインタフェース500の現在のウィンドウに初期に表示され、1以上のユーザインタラクション(例えば、スワイプ、フリック、タップ等)がユーザインタフェース500の現在のウィンドウ内に複数の画像512が表示させるようにしてもよい。
【0041】
現在表示されていないウィンドウ(例えば、複数の画像512及び複数の画像522)の1つの中に含まれる複数の画像は、現在のウィンドウ内に表示される画像よりも低い解像度にフォーマットされていてもよい。例えば、現在表示されていないウィンドウの1つにおける複数の画像512のうち画像514が現在表示されているウィンドウの複数の画像502のうち画像504よりも低い解像度でフォーマットされていてもよい。例えば、画像504は75x75ピクセルのサムネイル解像度であってもよく、一方で、画像514は64x64のピクセルの解像度を有するものであってもよい。これは、現在表示されていないウィンドウに含まれる画像がより少ない量のトータルストレージを占めることを許容する。現在のウィンドウの表示から現在表示されていないウィンドウへ遷移するジェスチャに応じて、現在表示されていないウィンドウ(例えば、複数の画像512)のうちの複数の画像は、例えば、サムネイル画像などの、より高い解像度で、コンテンツ管理システムからダウンロードされてもよい。いくつかの実施形態において、種々のグリッドビュー内に含まれる複数の画像の解像度は動的であってもよく、1以上のジェスチャの検出に応じて自動的に増大/縮小されてもよい。例えば、前述したように、ジェスチャの検出に応じて、複数の画像512は、より高い解像度(例えば、サムネイル解像度よりも低い解像度からサムネイル解像度へ)を有するように増大されてもよく、一方で、複数の画像502はそれに応じて解像度が縮小されてもよい。
【0042】
1以上のグリッドビュー内に表示可能な画像の数は、種々の要因に依存してもよい。例えば、ユーザは利用可能なトータルストレージの量、ユーザアカウント内に格納されるトータル画像の量、及びグリッド内に表示可能な画像の解像度の少なくとも1つに基づいて、グリッド内にどのくらいの画像が含まれるべきかを決定してもよい。いくつかの実施形態において、ユーザデバイス及びコンテンツ管理システムの少なくとも一方は、どのくらいの画像がグリッドビュー内で閲覧されうるかを決定してもよい。例えば、ユーザデバイスは、九つ(9)の画像のみが一つ(1)のグリッドのユーザインタフェース上に表示されうることを決定してもよい。
【0043】
図6は、種々の実施形態に従う、1以上のグリッドの構造を説明する概略図を示す。ユーザインタフェース600は、それらのユーザデバイス上のユーザの現在のストレージ設定を表示してもよい。例えば、ユーザのユーザデバイスは、利用可能な各納涼を決定するために状態チェックを行ってもよい。いくつかの実施形態において、利用可能なストレージの量は、特定のファイルタイプに依存してもよい。例えば、音楽用に利用可能な第1の量のトータルストレージと、画像用に利用可能な第2の量のトータルストレージと、文書用に利用可能な第3の量のトータルストレージが存在してもよい。これは単に例示であり、当業者は、任意の量のストレージの可用性が使用されてもよく、コンテンツのフォーマットが当該コンテンツ種別用に利用可能なトータルストレージの特定の量を有し、音楽、画像、及び文書の少なくとも1つ用の第1、第2、及び第3の量のトータルストレージの使用は単なる例示であることを理解するであろう。
【0044】
ユーザインタフェース600はストレージ指標602を含んでもよい。ストレージ指標602は、それらのデバイスにアイテムをダウンロードする又は追加するためにユーザに対して利用可能なストレージの量を詳述している。トータルストレージ606は、ユーザのユーザデバイス上の利用可能なトータルストレージの総量に対応してもよい。例えば、ユーザデバイスは、ユーザのユーザデバイス上に格納されることが可能な任意の形式のメディア、ソフトウェア、アプリケーション又は他のアイテムで満たされうる、200GBのトータルストレージを含んでもよい。トータルストレージ606が200GBに対応するものの、当業者は、限定はしないが、1GB、10GB、100GB、又は1TBを含む任意の格納量が使用されうることを理解するであろう。現在のストレージ604は、ユーザデバイス上の現在格納されているトータルストレージに対応してもよい。例えば、ユーザデバイスは、ユーザデバイス上に格納された1以上のアイテムによって現在格納されている100GBを有する、200GBの総量を有してもよい。
【0045】
ユーザインタフェース650は、コンテンツ管理システム100などのコンテンツ管理システム上のユーザアカウントの表示可能な部分に対応してもよい。いくつかの実施形態において、ユーザインタフェース650は、ユーザインタフェース650がユーザアカウント内の種々のメディアアイテムの格納値を含んでもよいということを例外として、ユーザインタフェース250に実質的に類似してもよい。いくつかの実施形態において、ユーザインタフェース650は、写真ディレクトリ658及びビデオディレクトリ668を含んでもよい。各ディレクトリはまた、それぞれ、写真ディレクトリ658に対応するストレージ指標652や、ビデオディレクトリ668に対応するストレージ指標662などの自身のストレージ指標を含んでもよい。ストレージ指標652、662は、ストレージ指標652、662のそれぞれが、ユーザアカウント内に格納される種々のメディアアイテムによって占められる利用可能なトータルストレージの量を示してもよいということを例外として、実質的にストレージ指標602に類似してもよい。
【0046】
ストレージ指標652は、トータルストレージ値656を含んでもよく、ストレージ指標662はトータルストレージ値666を含んでもよい。トータルストレージ値656は写真をアップロードするためのコンテンツ管理システム上で利用可能なトータルストレージ量に対応してもよく、一方で、トータルストレージ値666はビデオをアップロードするためのコンテンツ管理システム上で利用可能なトータルストレージ量に対応してもよい。いくつかの実施形態において、トータルストレージ値656、666は、コンテンツ管理システム上のユーザアカウント内で利用可能なトータルストレージ量に等しく、かつ、対応してもよい。例えば、ユーザアカウント内で利用可能なトータルストレージは、8GBであってもよく、トータルストレージ値656、666は、各ストレージ指標が当該特定のメディアタイプに対して使用する8GBのみを有することを示してもよい。いくつかの実施形態において、現在の写真ストレージ値654は、写真によってユーザアカウント内で占められるストレージ量を示してもよい。例えば、現在の写真ストレージ値654は、ユーザがユーザアカウント内で格納される1GBの写真を有することを示してもよい。いくつかの実施形態において、現在のビデオストレージ値664は、ビデオによってユーザアカウント内で占められるストレージ量を示してもよい。例えば、現在のビデオストレージ値664は、ユーザがユーザアカウント内で格納される2GBのビデオを有することを示してもよい。いくつかの実施形態において、写真用の1GBのストレージとビデオ用の2GBのストレージは、8GBのトータルの利用可能なストレージスペースの中から、ユーザがメディアアイテム用に使用する3GBのストレージ有することを示してもよい。しかしながら、2つの現在のストレージ値は、トータル値に対して総計となる必要はなく、ビデオ及び写真の両方に対して利用可能な8GBのストレージスペースであってもよい。当業者はまた、任意のストレージスペース量及び現在のストレージレベルが使用され、トータルスペースが8GBで、写真用に1GB、ビデオ用に2GBの使用が単なる例示であることを理解するであろう。
【0047】
いくつかの実施形態において、コンテンツ管理システムは、ユーザデバイス上の現在のストレージレベルを決定するために、当該ユーザデバイス上で1以上のパフォーマンスアルゴリズム又はストレージアルゴリズムを実行してもよい。例えば、パフォーマンスアルゴリズムは、コンテンツ管理システムからユーザデバイスへ送信されてもよく、ユーザデバイス上で利用可能なトータルストレージ量を算出するために使用されてもよい。当該アルゴリズムは、その後ユーザデバイスに算出結果をコンテンツ管理システムへ戻すべく送信させうる。ユーザデバイスのストレージレベルを算出することに応じて、コンテンツ管理システムは、コンテンツ管理システム上のそれらのアカウント内で格納されるいくつかの又は全てのコンテンツをどのように閲覧するからを決定するために、ユーザに対する閲覧オプションをユーザデバイスに送信してもよい。前述した例示は、アルゴリズムをデバイスへ送信すること、デバイス上で情報を算出すること、算出結果をコンテンツ管理システムへ戻すべく送信すること、及び、その後にデバイスへ表示オプションが送信されることを有するが、当業者は、それらのステップのいずれか1つがコンテンツ管理システム及びユーザデバイスの何れかによって実行されてもよいことを理解するであろう。
【0048】
ユーザデバイス上で利用可能なストレージスペースの量を算出することに応じて、ユーザデバイスは種々のグリッドビューオプションを表示してもよい。種々のグリッドビューオプションは、ユーザアカウント内に格納されるいくつかの又は全ての画像が閲覧されうる種々の方法をユーザに示してもよい。前述した例示に続いて、ユーザのユーザデバイス上に利用可能な100MBのストレージスペースと、コンテンツ管理システム上のユーザカウント内に格納された1GBの写真がある。表示オプション610は、各画像が10MBの大きさである、10の写真、即ち、トータル100MBの写真をグリッドビュー内に表示することが可能であることをユーザに示してもよい。表示オプション612は、各画像が1MBの大きさである、100の写真、即ち、トータル100MBの写真をグリッドビュー内に表示することが可能であることをユーザに示してもよい。さらに、表示オプション614は、各画像が100kBの大きさである、1000の写真、即ち、トータル100MBの写真をグリッドビュー内に表示することが可能であることをユーザに示してもよい。ユーザは、それらのオプション又は任意のサイズの画像量を表示するための任意の追加のオプションの何れかを選択してもよい。例えば、ユーザは、表示オプション612を選択してもよく、ユーザインタフェース600は画像セット622を表示してもよい。画像セット622は、各画像が1MBのサイズである100の写真を含んでもよい。
【0049】
図7は、種々の実施形態に従う、現在の表示ウィンドウからの距離に基づく種々のグリッドビューの解像度を表示する例示のブロック図を示す。現在のウィンドウ702は、ユーザインタフェース、例えば
図2のユーザインタフェース200などによって現在表示される画像又は画像のセットに対応してもよい。現在表示されている画像は第1の解像度から成ってもよい。例えば、現在ンのユーザインタフェース内に表示される画像は、1080pの高解像度画像(1920x1080、2,073,600ピクセル)であってもよい。他の例として、現在のウィンドウ内に表示される画像は、グリッド内の各画像が256x256ピクセルの解像度を有するグリッドの画像に対応してもよい。
【0050】
いくつかの実施形態において、現在表示されていないウィンドウ内に表示されうる1以上の追加の画像及び画像のセットの少なくとも1つが存在してもよい。現在表示されていないウィンドウは、ユーザインタフェース内に現在表示されていない任意のウィンドウに対応してもよいが、時間内のいくつかのポイントでユーザインタフェース内に表示されうる。例えば、現在表示されていない
図5のウィンドウ504は、現在のウィンドウ502から現在表示されていないウィンドウ504へ遷移するために、ユーザによるジェスチャ(例えば、スワイプ)に応じて表示されてもよい。ユーザのユーザデバイス上に占められるストレージスペースの量を最小化するために、現在表示されていないウィンドウに含まれる画像は、より低い解像度で格納されてもよい。現在表示されているウィンドウ及び現在表示されていないウィンドウのいずれかの中に含まれる画像の解像度は、現在表示されているウィンドウ及び現在表示されていないウィンドウの間の距離に依存してもよい。例えば、表示ウィンドウ704は、現在のウィンドウ702から距離d1を有する現在表示されていないウィンドウに対応してもよい。いくつかの実施形態において、現在表示されていないウィンドウが距離d1を有するのであれば、当該現在表示されていないウィンドウは、現在のウィンドウ702内の画像の解像度よりも低い解像度を有する1以上の画像を含んでもよい。例えば、現在表示されていないウィンドウ704は、900pの解像度(1600x900、1,440,000ピクセル)を有する1以上の画像を含んでもよい。他の例として、現在のウィンドウ702が100x100ピクセルの解像度を有するグリッドの画像を含むのであれば、現在表示されていないウィンドウ704は、75x75ピクセルの解像度を有するグリッドの画像を含んでもよい。
【0051】
いくつかの実施形態において、現在表示されていないウィンドウ706、708は、それぞれ距離d2、d3を有してもよい。種々の距離が各ウィンドウ内に含まれる画像又は複数の画像の解像度に対応してもよい。例えば、距離d2を有するウィンドウ706は、720pの解像度(1280x720、829,440ピクセル)を有する複数の画像を含んでもよい。他の例として、距離d3を有するウィンドウ708は、SVGAの解像度(800x600、480,000ピクセル)を有する複数の画像を含んでもよい。さらに他の例として、現在表示されていないウィンドウ706、708の少なくとも一方は、64x64ピクセル又はそれよりも小さい現在表示されていないウィンドウ704よりも小さい解像度を有するグリッドの画像を含んでもよい。いくつかの実施形態において、現在閲覧されているウィンドウ又は画像と、現在閲覧されていないウィンドウ又は画像との間の距離が長くなればなるほど、より小さい解像度を有する現在閲覧されていないウィンドウ又は画像となってもよい。
【0052】
図8は、種々の実施形態に従う、画像等のコンテンツアイテムのバックグラウンドでのダウンロードを実行するための処理の例示のフローチャートを示す。処理800は、ステップ802で開始される。ステップ802で、ユーザデバイスは、通信ネットワークを介してコンテンツ管理システムにアクセスしてもよい。例えば、デバイス102は、ネットワーク104にわたるコンテンツ管理システム100上の認証されたアカウント(例えば、ユーザアカウント)にアクセスする1以上の要求を送信してもよい。いくつかの実施形態において、コンテンツ管理システムにアクセスすることは、ユーザがユーザ名、パスワード、又は任意の他の識別情報若しくはクレデンシャル、或いはそれらの組み合わせを入力することを含んでもよい。いくつかの実施形態において、ユーザがコンテンツ管理システムへのアクセスを許可されるとすぐに、供給されたログインクレデンシャルがユーザデバイス及びコンテンツ管理システムの少なくとも一方に格納されてもよい。
【0053】
ステップ804で、コンテンツ管理システムからの1以上の画像にアクセスする要求が、ユーザデバイスからコンテンツ管理システムへ送信されてもよい。当該要求は、コンテンツ管理システムがユーザデバイスへアクセスを許可することに応じて送信されてもよい。例えば、コンテンツ管理システム上のユーザアカウントへログインされるとすぐに、ユーザは、ユーザアカウント内に格納された1以上の画像を選択してもよい。1以上の画像の選択に応じて、ユーザは、コンテンツ管理システムからユーザデバイスへ選択した画像をダウンロードするように要求してもよい。いくつかの実施形態において、当該要求は、コンテンツ管理システムからの1以上の画像をダウンロードする要求に対応してもよい。
【0054】
ステップ806で、アクセスするように要求された1以上画像は、当該1以上の画像に対しる予期される使用によって分類されてもよい。いくつかの実施形態において、分類は、1以上の画像の予期される使用が第1のバージョンでダウンロードされる画像に対応するかどうかを判定してもよい。例えば、分類は、1以上の画像が単一の画像ビューで閲覧されうるかどうかを判定してもよい。いくつかの実施形態において、単一の画像ビューで閲覧される画像は、サムネイル解像度などの低解像度で閲覧され、ダウンロードされるグリッドビューに含まれる画像とは対照的に、1080pなどの高解像度でダウンロードされてもよい。
【0055】
いくつかの実施形態において、1以上の画像を分類することは、種々の要因に基づいて、1以上の画像を収集することを含んでもよい。例えば、分類は、1以上の画像へのローカルアクセスがユーザデバイスで利用可能であるかどうかに基づいて1以上の画像を収集してもよい。他の例として、分類は、ユーザが1以上の画像が現れるユーザデバイスのユーザインタフェース上に表示可能なページをスクロールしたかどうかに基づいて、1以上の画像を収集してもよい。さらに他の例として、分類は、1以上の選択した画像に対してアクションが行われたかどうかに基づいて、複数の画像を収集してもよい。分類は、ユーザが前回又は最近共有した他の画像とともに1以上の画像を収集してもよい。いくつかの実施形態において、1以上の画像は、他の共有した画像とともに収集されてもよい。分類はまた、コンテンツ管理システムへのユーザによる最近のアップロード、最近閲覧した画像、又は、画像が撮影された又は閲覧された時間フレームに基づいて複数の画像を収集してもよい。ステップ808において、1以上の分類された画像は、第2のバージョンで受信されてもよい。例えば、選択した画像が単一の画像ビューで閲覧されるがユーザデバイスとコンテンツ管理システムとの間の接続レベルが低い場合、その結果、画像は、まず低い解像度でダウンロードされてもよい。これは、分類と実質的に同時に画像を閲覧することをユーザに許容し、任意の待ち時間なしで当該バージョンの画像を十分に扱うことをユーザに許容する。
【0056】
ステップ810で、第1バージョンの1以上の画像のバックグラウンドでのダウンロードが実行されてもよい。バックグラウンドでのダウンロードは、第2バージョンの1以上の画像がユーザデバイスで閲覧されている間に、第1バージョンの1以上の画像をユーザデバイスへダウンロードしてもよい。例えば、ユーザデバイスとコンテンツ管理システムとの間の接続レベルが低い間は、ユーザは、低い解像度の画像をまずダウンロードしてもよい。いくつかの実施形態において、第2バージョンの1以上の画像がダウンローを継続している間に、第1バージョンの1以上の画像のバックグラウンドでのダウンロードが発生してもよい。低い解像度のバージョンの画像がユーザデバイスで閲覧されている間に、高解像度のバージョンの画像がバックグラウンドでダウンロードされてもよい。接続レベルが低いことに起因して、より高い解像度の画像が、例えば、ダウンロードするためにより長い時間かかってもよいしたがって、ユーザは、高解像度のバージョンのダウンロード中にまず低解像度の画像を閲覧し、扱うことができてもよい。
【0057】
いくつかの実施形態において、ダウンロードの要求は、複数の画像をダウンロードする要求を含んでもよく、コレクション内でダウンロードするのに動的に優先順位の決定が行われてもよい。いくつかの実施形態において、画像を分類し、動的に優先順位を決定することは、コレクション内でユーザインタフェース上に画像を表示することを含んでもよい。例えば、
図4の画像404は、ダウンロードされ、ユーザインタフェース400上でコレクション460内に表示されてもよい。いくつかの実施形態において、分類及び動的な優先順位の決定は、コンテンツ管理システムがユーザデバイス上で単独で動作するように、コレクション内の画像上で実行される任意のユーザアクションを関連付けることを含んでもよい。これは、ユーザデバイスとコンテンツ管理システムとの間の接続レベルを問わず、それらのユーザデバイス上で実質的にローカルな感触をユーザが有することを許容することができる。
【0058】
いくつかの実施形態において、画像は、グリッドビューのユーザインタフェース内に初期に提示されてもよい。例えば、グリッドビュー内に含まれる各画像は、第2バージョン(サムネイル解像度)で提示されてもよい。ユーザによる選択に応じて、1以上の画像が単一の画像ビューに第1の解像度で提示されてもよい。例えば、ユーザには、サムネイルの解像度でグリッドビューに複数の画像を有して提示されてもよい。複数の画像の1以上を閲覧するユーザ選択に応じて、選択した画像は高解像度で提示されてもよい。
【0059】
いくつかの実施形態において、画像は、コンテンツ管理システム上のユーザアカウント内に格納されてもよい。しかしながら、ユーザアカウント内に、グリッドビューを表示するユーザインタフェース上の1つのウィンドウ内に表示可能な数よりも多くの画像が存在してもよい。例えば、グリッドビューは、百(100)の画像を表示することができる一方で、ユーザアカウント内には千(1000)の画像が存在してもよい。この場合、ユーザインタフェース上の現在表示されているウィンドウのグリッドビュー内に表示されるようにダウンロードされた各画像は、第2バージョン(例えば、サムネイルの解像度)であってもよい。いくつかの実施形態において、ユーザインタフェース上の現在のウィンドウ内に現在表示されていない任意の追加の画像は、第2バージョンでダウンロードされてもよく、解像度の種別は現在のウィンドウと現在表示されていないウィンドウとの間の近接度に依存してもよい。例えば、現在表示されていないが、現在のウィンドウに連続して近接したウィンドウ内に含まれる画像は、サムネイルの解像度(例えば、64x64ピクセル)よりも低い解像度を有してもよく、一方で、現在のウィンドウに連続して近接していない現在表示されていないウィンドウ内に含まれる画像は、利用可能な最も低い解像度(例えば、50x50ピクセル)でダウンロードされてもよい。
【0060】
このように、短い距離を有する(例えば、現在表示されているウィンドウに近接する)画像は、第1の解像度よりも低い解像度を有してもよく、一方で、長い距離を有する(例えば、現在表示されているウィンドウに近接しておらず、実質的に遠い)画像は、第1の解像度及び第2の解像度よりも低い解像度を有してもよい。例えば、ユーザデバイス上に現在表示されていない画像は、ユーザデバイス上に現在表示されている画像よりも低い解像度を有してもよい。現在閲覧されている画像と特定の画像との間の距離が長くなるにつれて、解像度がより小さくなってもよい。これは、大量の画像を通してスクロールしている間は、画像へアクセスする待ち時間が最小化され当該スクロールが非常にスムーズとなりうるように、ユーザにとって有益なものでありうる。
いくつかの実施形態において、バックグラウンドでのダウンロードにおける動的に優先順位を決定することは、種々の要因に基づいてもよい。例えば、優先順位の決定は、単一の画像ビューで閲覧されるべく選択された1以上の画像への利用可能なアクセスに基づいてもよく、第1の優先レベルに割り当てられてもよい。他の例として、優先順位の決定は、選択した1以上の画像が属するように同一のコレクション内に配置される1以上の追加の画像への利用可能なアクセスに基づいてもよい。この場合、第2の優先レベルが、1以上の選択した画像へ割り当てられてもよい。さらに他の例として、優先順位の決定は、1以上の選択した画像へ/でアクションが実行されたかどうかに基づいてもよい。この場合、第3の優先レベルが、1以上の選択した画像へ割り当てられてもよい。
【0061】
いくつかの実施形態において、種々の優先レベルは、画像をダウンロードするためのランキングレベルに対応してもよい。例えば、より高いランキングレベルに割り当てられた画像は、より低いランキングレベルに割り当てられた画像より前にダウンロードされてもよい。任意のランキングの順列が使用されてもよい。例えば、第1の優先レベルは、第2及び第3の優先レベルよりも高くランク付けされてもよく、第2の優先レベルは第3の優先レベルよりも高く、或いはその逆にランク付けされてもよい。同様に、第2の優先レベルは、第1及び第3の優先レベルよりも高くランク付けされてもよく、第1の優先レベルは第3の優先レベルよりも高く、或いはその逆にランク付けされてもよい。さらに、第3の優先レベルは、第1及び第2の優先レベルよりも高くランク付けされてもよく、第1の優先レベルは第2の優先レベルよりも高く、或いはその逆にランク付けされてもよい。当業者は、第1、第2、及び第3の優先レベルの使用が単に例示であって、任意の数の優先レベル及び任意の順序のそれらのレベルが使用されてもよいことを理解するであろう。
【0062】
いくつかの実施形態において、1以上の画像に関連付けられたメタデータは、コンテンツ管理システムからユーザデバイスへダウンロードされてもよい。メタデータは1以上の画像より前に、又は実質的に同時に、ダウンロードされてもよい。いくつかの実施形態において、1以上の画像の予期される使用の分類は、ダウンロード下メタデータの少なくとも一部に基づいてもよい。例えば、画像404は、地理的情報404a及び時間的情報404bを含んでもよい。地理的情報404a及び時間的情報404bは、画像404とともに、又は、画像404のダウンロードの前にダウンロードされてもよく、コレクション(例えば、コレクション460)内の画像404を分類するために使用されてもよい。いくつかの実施形態において、バックグラウンドでのダウンロードは、ダウンロードしたメタデータの少なくとも一部に基づいて動的に優先順位が決定されてもよい。
【0063】
図9は、種々の実施形態に従う、画像を表示し、キャッシュするための処理の例示のフローチャートである。処理900はステップ902で開始されうる。ステップ902で、ダウンロード可能な画像の判定が行われてもよい。当該判定は、ユーザデバイス上の利用可能なストレージスペースの量を算出することを含む。ダウンロード可能な画像の量は、初期に、他のユーザデバイス/個別のデバイス、1以上のソーシャルメディアネットワーク、及びコンテンツ管理システムの少なくとも1つに格納されてもよい。いくつかの実施形態において、ユーザは、コンテンツ管理システム上の認証されたアカウントを有してもよく、ユーザデバイスへダウンロード可能なアカウント内に格納された多くの画像が判定されてもよい。
【0064】
いくつかの実施形態において、当該判定は、1以上の要因に基づいてもよい。例えば、コンテンツ管理システムからダウンロード可能な画像の量は、ユーザデバイス(例えば、クライアントデバイス102)と、コンテンツ管理システム(例えば、コンテンツ管理システム100)との間の接続レベルに依存してもよい。ユーザデバイスとコンテンツ管理システムとの間の接続レベルが弱い、又は低ければ、ダウンロード可能な画像の量は、接続レベルが高い又はと良い場合よりも低くてもよい。他の例として、利用可能なWi−Fi信号がなければ、ダウンロード可能な画像の量は、ユーザの現在のセルラーデータプランに基づいて調節されてもよい。この場合、ユーザは、月々の又は年々のサービスのほとんどの部分を受けることができないか、或いは、任意の過剰な課金を負担するかもしれない。いくつかの実施形態において、ユーザは、Wi−Fiのみのオプション又はWi−Fi優先オプションのサービスを受けることができる。例えば、ユーザは、1以上の画像をダウンロードするために使用するネットワーク条件をデバイスへ通知するそれらのユーザ設定の範囲内のオプションを選択してもよい。
【0065】
いくつかの実施形態において、上記判定は、ユーザデバイス上の利用可能なストレージスペースの量に基づいてもよい。例えば、ユーザは、100GBの利用可能なストレージスペースのみを有しているものの、コンテンツ管理システム上のユーザアカウント内に格納された1GBの画像が存在してもよい。この場合、ユーザは、
図6のオプション610、612、614などの種々の解像度で画像をダウンロードするためのオプションを有して提示されるか、又は、上記オプションを提示してもよい。他の例として、画像をダウンロードするのに必要とされるストレージスペースの量は、ユーザデバイス上のフリーのストレージスペースの総量よりも少なくてもよい。コンテンツ管理システム及びユーザデバイスの少なくとも一方は、フリーのストレージスペースの総量に対応させて、ユーザデバイスへダウンロードされる画像の量を制限してもよい。コンテンツ管理システム及びユーザデバイスの少なくとも一方はまた、フリーのストレージスペースの総量に対応させて、画像のサイズ又は解像度を低減させてもよい。
【0066】
いくつかの実施形態において、上記判定は、ユーザデバイス上の利用可能な充電量に基づいてもよい。例えば、ユーザデバイスが実質的に低レベルの利用可能な充電量を有している場合、大量の画像、又は同等の単一の高解像度の画像をダウンロードすることは、大容量の処理電力を取り上げうる。これは、特に、ユーザが緊急でそれらのデバイスを使用する必要がある不運なシチュエーションにおいて、ユーザにとって妨げとなりうる。このように、ユーザデバイスが実質的に低バッテリレベルにあれば、ダウンロード可能な画像の量及びダウンロード可能な画像のサイズの少なくとも一方は、ユーザデバイス上の残充電量をいくらか残すことを保証するように修正されてもよい。この場合、ユーザは、ダウンロードされる画像の品質又は量を問わず、緊急のシチュエーションにおいて、それらのデバイスを使用することができる。
【0067】
ステップ904において、判定した画像の量は、第1の解像度でユーザデバイスへダウンロードされてもよい。前述した例に続いて、オプション610は、ユーザデバイス上の利用可能なストレージスペースに基づいて、ユーザが各写真が10MBのサイズである10の写真(例えば、トータル100MBのストレージスペース)をダウンロードすることをユーザへ示してもよい。
【0068】
ステップ906において、ダウンロードされた画像からのうち第1のサブセットの画像は、ユーザデバイス上の第1のグリッドビューに表示されてもよい。第1のグリッドビュー内に表示される画像は、いくつかの実施形態において、第2の解像度で表示されてもよい。例えば、ユーザは、各画像が1MBのサイズの100の画像をダウンロードすることを選択してもよい。ユーザは、ユーザインタフェース600内のセット622などのグリッドビュー内に100の画像のいくつか又は全てを表示してもよい。いくつかの実施形態において、グリッドビュー内に表示される画像は、ダウンロードした画像の中のいくつかの解像度から成ってもよい。例えば、ユーザがオプション612を選択して、それぞれが1MBの解像度を有する100の画像をダウンロードした場合、セット622は、1MBの解像度を有する100の画像を表示してもよい。他の例として、100のダウンロードした画像のいくつか又は全ては、スペースを確保するために、又は、接続レベルが減少している場合に、より低い解像度(例えば、100kB)でグリッドビュー内に表示されてもよい。
【0069】
ステップ908において、第1のサブセットの画像が第1のグリッドビュー内に表示される一方で、ダウンロードした画像のうちのさらなる画像がキャッシュされてもよい。例えば、ユーザが1MBの解像度を有する100の画像をダウンロードしたものの、50の画像のみを表示する場合、残りの50の画像は、ユーザデバイス上の一時的なメモリにキャッシュされてもよい。これは、ユーザが選択した画像の量を一度に見せる又は提示すること許容し、一方で、後の時点で任意の他の画像をまだ表示することができる。いくつかの実施形態において、初期にダウンロードした画像は、サムネイルの解像度(例えば、75x75ピクセル)から成ってもよく、一方で、グリッドビュー内に表示される画像がサムネイルの解像度よりも高い解像度(例えば、256x256ピクセル)から成ってもよい。例えば、ユーザは、各画像がサムネイルの解像度でトータル100MBを有する1000の画像をストレージスペースにダウンロードしてもよい。しかしながら、グリッドビューの100の画像を表示するユーザ入力又は選択に応じて、100の画像がオリジナルのストレージバージョンよりも高い解像度でユーザデバイスへ提示されるか、ダウンロードされるかの少なくとも一方が行われてもよい。
【0070】
いくつかの実施形態において、第2のサブセットの画像を表示する入力が検知されてもよい。第2のサブセットの画像は、第1のサブセットの画像及び追加的にキャッシュされた画像の少なくとも一方からの画像を含んでもよい。例えば、ユーザは、サンフランシスコへの最近の旅行からユーザの画像の全てを閲覧するように決定してもよい。ユーザは、ユーザデバイスへ1以上の入力と、日付で検出して組織化したユーザの旅行に対応する画像とを提供してもよい。当該画像は、ユーザデバイス上に現在格納されている任意の画像に基づいて組織化されてもよい。このように、組織化のメカニズム(例えば、組織化アルゴリズム)は、現在表示されているサブセットの画像及び任意のキャッシュされた画像から画像を選択してもよい。
【0071】
いくつかの実施形態において、コンテンツ管理システム上のユーザアカウント内に格納された各画像のアスペクト比についての判定が行われてもよい。アスペクト比の当該判定は、その後、ダウンロードする画像の優先順位を決定するために使用されてもよい。いくつかの実施形態において、アスペクト比は、ユーザデバイスへダウンロードすることが可能な画像の量を判定するために使用される他の要因に追加して使用される要因であってもよい。例えば、ユーザの画像の全てが接続レベル利用可能なストレージスペースの量、デバイスの充電量、及びデータプランの少なくとも1つに基づいてダウンロード可能かどうかを判定されてもよいが、それらの画像のいくつか又は全てがユーザのユーザデバイスに準拠しないアスペクト比を有し、したがって、表示可能でないかもしれない。このように、いくつかの実施形態において、適切なアスペクト比を有する画像のみがダウンロードされうる。いくつかの実施形態において、最良の又はより適切なアスペクト比を有する画像が、ユーザデバイス上で表示可能であるが差異的に閲覧することができないアスペクト比を有する任意の画像より前にダウンロードされうる。
【0072】
図10は、種々の実施形態に従う、画像間の決定された距離に基づいて画像をダウンロードするための処理の例示のフローチャートである。処理1000はステップ1002で開始されうる。ステップ1002で、ユーザは、コンテンツ管理システム上のアカウントへアクセスしてもよい。いくつかの実施形態において、当該アカウントは、ユーザに関連付けられ、ユーザアカウントして参照されうる。いくつかの実施形態において、ユーザは、ユーザアカウントへのアクセスを許可するために、ログインクレデンシャル(例えば、ユーザ名、パスワードなど)を提供するように要求されてもよい。ログインクレデンシャルは、いくつかの実施形態において、ユーザのユーザデバイスに格納されてもよく、将来コンテンツ管理システムへアクセスするために使用されうる。
【0073】
ステップ1004で、第1のコレクションの画像がコンテンツ管理システムからユーザデバイスへダウンロードされてもよい。いくつかの実施形態において、第1のコレクションの画像が第1の解像度でダウンロードされてもよく、ユーザアカウント内に格納されてもよい。 例えば、第1のコレクションの画像は、1080pなどの高解像度でダウンロードされてもよい。当業者は、任意の量の画像が第1のコレクションの画像内にダウンロードされ、当該画像が任意の解像度からなってもよいことを理解するであろう。いくつかの実施形態において、第1のコレクションの画像の解像度は、1以上の要因に基づいてもよい。例えば、第1のコレクションの画像のダウンロードは、ユーザデバイスとコンテンツ管理システムとの間の接続レベルに基づいてもよい。他の例として、ダウンロードは、ユーザデバイス上のストレージスペースの利用可能な量や、ユーザデバイスの利用可能な充電量の少なくとも1つに基づいてもよい。
【0074】
いくつかの実施形態において、ダウンロードされた第1のコレクションの画像は、ユーザデバイスの表示スクリーン上に提示されるユーザインタフェース内に表示されてもよい。例えば、
図6の画像622は、ユーザインタフェース600内に表示されてもよい。いくつかの実施形態において、第1のコレクションの画像は、画像のブロック又はページでダウンロードされてもよい。例えば、複数の画像は、画像のブロック単位で、コンテンツ管理システムからユーザデバイスへダウンロードされてもよい。当該ブロックは、圧縮ファイル、ファイルディレクトリ、又は他のブロッキング、或いは任意のそれらの組み合わせであってもよい。いくつかの実施形態において、第1のコレクションの画像は、ユーザインタフェース内のグリッドビューに表示されてもよい。
【0075】
ステップ1006で、第1のコレクションの画像と、ユーザアカウント内に格納された任意の追加の画像との間の距離メトリックが判定されてもよい。いくつかの実施形態において、距離メトリックは、現在閲覧されているウィンドウと、現在閲覧されていないウィンドウとの間の距離に対応してもよい。例えば、1以上の画像が
図7の現在のウィンドウ702内に表示されてもよい。ウィンドウ702内に表示される単複の画像は、例えば、1080pの解像度を有する高解像度の画像であってもよい。コンテンツ管理システム及びユーザデバイスの少なくとも一方は、第1のコレクションの画像と、任意の追加の画像との間の距離を判定してもよい。例えば、
図7のウィンドウ704は、ユーザアカウント内、及び、ユーザデバイス上の少なくとも一方に格納された1以上の追加の画像を含んでもよく、コンテンツ管理システム及びユーザデバイスの少なくとも一方は、第1のコレクションの画像とウィンドウ704内に含まれる任意の画像との間の距離メトリックを判定してもよい。いくつかの実施形態において、現在表示されているウィンドウに実質的に近接している現在表示されていないウィンドウ内に表示可能な画像が第2の解像度に割り当てられてもよい。しかしながら、いくつかの実施形態において、現在表示されているウィンドウに実質的に近接している現在表示されていないウィンドウ内に表示可能な画像が第3の解像度に割り当てられてもよい。例えば、ウィンドウ704及びウィンドウ706の少なくとも一方に含まれる画像は、それらがウィンドウ703に実施的に近接する現在表示されていないウィンドウである場合に、第2の解像度(例えば、75x75ピクセル、256x256ピクセルなど)に割り当てられてもよい。しかしながら、現在のウィンドウ702に実質的に近接していない現在表示されていないウィンドウであるウィンドウ708は、第3の解像度(例えば、64x64ピクセル、50x50ピクセルなど)に割り当てられてもよい。
【0076】
ステップ1008で、追加の画像は、当該追加の画像と、第1のコレクション内の画像との間の判定した距離メトリックに基づいて、第2の解像度及び第3の解像度の少なくとも一方でダウンロードされてもよい。例えば、ウィンドウ704内に含まれる画像は、高解像度(例えば、900p)でダウンロードされてもよく、一方で、ウィンドウ708に含まれる画像は、SVGAの解像度でダウンロードされてもよい。したがって、短い距離を有する画像(例えば、現在表示されているウィンドウに近接している)は、第1の解像度よりも低い解像度を有してもよく、一方で、長い距離を有する画像(例えば、現在井表示されているウィンドウから近接していない或いは実質的に離れている)は、第1の解像度及び第2の解像度よりも低い解像度を有してもよい。これは、画像が現在表示されている画像と比較して相対的に小さいタイムフレームで閲覧されるであろう可能性及び予測の何れか一方に従って、画像のダウンロードを適切にかつ効果的に補助するであろう。したがって、現在表示されている画像の直後に閲覧されそうにない画像は、高解像度で初期にダウンロードされる必要はなく、むしろ低解像度でダウンロードされ、スペースを確保するようにしてもよい。
【0077】
いくつかの実施形態において、各ダウンロードされる画像は、第1のコレクションの画像及び追加の画像内に分類されてもよい。分類は、各画像に関連付けられたメタデータに基づいてもよい。例えば、画像は、地理的情報404a及び時間的情報404bを含んでもよい。情報404a、404bは、第1の解像度で表示されうる、コレクション460内の画像404に分類されるのを補助してもよい。いくつかの実施形態において、ユーザアカウントに格納される追加の画像に関連付けられるメタデータは、ユーザインタフェース内に表示されない追加の画像のコレクションに当該追加の画像を収集するようにしてもよい。したがって、日付を必要とする又は要求される画像や、一度に閲覧される必要が現在はない画像を分類することによって、ユーザデバイス上に有意なストレージスペースが確保されうる。
【0078】
図11は、様々な実施の形態に従う例示的なシステムを示す。ある実施の形態では、
図11のシステム1100は、システム100の要素をより細かいレベル(例えばモジュール、アプリケーション等)で表わすことを除き、
図1のシステム100と実質的に類似し得る。
【0079】
ある実施の形態では、ユーザデバイス102は、ユーザデバイス102上のコンテンツアイテムシステム108a及び108b(まとめると108)内にローカルに格納されたコンテンツアイテム110a及び110b(まとめると110)、及び/又はコンテンツ管理システム104(例えばデータストア118)上に離れて格納されている等のコンテンツアイテムを、生成し、アクセスし、修正し、及び管理するために使用され得る。例えば、ユーザデバイス102aは、コンテンツ管理システム104のデータストア118に離れて格納されているコンテンツアイテム110bにアクセスし得、ユーザデバイス102a上のコンテンツアイテムシステム108a内にコンテンツアイテム110bをローカルに格納する場合もしない場合もある。引き続きこの例では、ユーザデバイス102aは、コンテンツアイテム110bを、一時的に、ユーザデバイス102a上のキャッシュ内にローカルに格納し、コンテンツアイテム110bの版(revisions)を生成し、コンテンツアイテム110bの版は通信されてコンテンツ管理システム104のデータストア118に格納され得る。オプションとして、コンテンツアイテム110aのローカルコピーはユーザデバイス102aに格納され得る。ある実施の形態では、データストア118は、コンテンツアイテムの1つ以上のコレクション132を含み得る。例えば、コレクション132は、類似する属性(例えばメタデータ)を有する、及び/又は類似のコンテンツを含む1つ以上のコンテンツアイテムを含み得る。
【0080】
ある実施形態では、ユーザデバイス102は、デジタル画像及び/又はビデオを撮影し記録するためのカメラ138(例えば138a及び138b)を含み得る。ユーザデバイス102は、画像などのコンテンツアイテムをカメラ138を使用して取得、記録および/または格納してもよい。例えば、カメラ138は画像を撮影及び記録し、画像をメタデータと共に格納し得る。メタデータは、以下の生成時のタイムスタンプ、ユーザの位置情報、方向、回転、タイトル及び/又は任意の他の属性又は撮影された画像に関連するデータを含みうるが、これらに限らない。メタデータの値は、属性112として、名前と値の組、 タグ値の組、及び/又は任意の他のこれらの方法または組み合わせを格納して、メタデータとコンテンツアイテムとを関連付けてメタデータのタイプを容易に特定する。ある実施形態では、属性112は、これに限らないが、Exchangeable Image File Format(「Exif」)、JPEG File Interchange Format (Jfif)、及び/又は他の標準を含む、特定の標準によって定義されたタグと値の組であり得る。
【0081】
ある実施の形態では、ユーザデバイス102は、時刻標準化モジュール146を含み得、コンテンツ管理システム104は、時刻標準化モジュール148を含み得る。時刻標準化モジュール146(例えば146aと146b)は、コンテンツアイテムと共に格納される日時を標準化するために用いられ得る。時刻標準化モジュール146、対応する時刻標準化モジュール148及び/又は任意のこれらの組み合わせは、格納されるコンテンツアイテムの日時を標準化するために用いられる。標準化された日時は、コンテンツアイテムを、ソート、グループ化、比較の実行、基本的な数式の実行、及び/又はクラスタ形成するために用いられる。
【0082】
ある実施の形態では、ユーザデバイス102は、組織化モジュール136を含み得、コンテンツ管理システム104は組織化モジュール140を含み得る。組織化モジュール136(例えば136aと136b)は、コンテンツアイテムをコンテンツアイテムのクラスタやコレクションに組織化するため、コンテンツアイテムを組織化して、ユーザインタフェースの表示のためのコンテンツアイテムのサンプリングを提供するため、及び/又は表示のための組織化されたコンテンツアイテムを検索するために使用され得る。組織化モジュール136は、任意のクラスタリングアルゴリズムを用い得る。組織化モジュール136は、ユーザデバイス102のユーザインタフェースの表示のためのコンテンツアイテムやコンテンツ管理システム104のコンテンツアイテムを組織化するために、クラスタのための類似するコンテンツアイテムを特定するために用いられ得る。様々な類似性の規則に従う各コンテンツアイテム間の類似性の情報を具体化する1つ以上の数値的表現を生成するために、類似性の規則が定義され得る。組織化モジュール136は、コンテンツアイテムをクラスタ化するために、コンテンツアイテム間の類似性の参照として数値的表現を用い得る。
【0083】
ある実施形態では、コンテンツアイテムはクラスタに組織化されて、検索要求に応じた類似のコンテンツの検索を援助し得る。例えば、組織化モジュール136aは、2つの画像が類似することを特定し得、これらの画像を共に1つのクラスタにグループ化し得る。組織化モジュール136aは、独立して、及び/又は対応する組織化モジュール(例えば140及び/又は136b)と共同してクラスタを決定するために、コンテンツアイテムを処理し得る。ある実施の形態では、組織化モジュール136aは、対応する組織化モジュール(例えば140及び/又は136b)と特定したクラスタのみを表示のために提供し得る。この例を続けると、クラスタを決定するためのコンテンツアイテムの処理は、新たなコンテンツアイテム及び/又は新たな類似性の規則を受け取る際に実行され得る繰り返し処理であり得る。
【0084】
ある実施の形態では、ユーザデバイス102aは分類モジュール150aを含んでもよく、ユーザデバイス102bは分類モジュール150b(分類モジュールを150と総称する)を含んでもよく、それらの分類モジュールを独立して使用するか、コンテンツ管理システム104に含まれる分類モジュール152と組み合わせて使用するか、および/またはそれらの任意の組み合わせを行うことで、コンテンツアイテムを分類し、コンテンツアイテムを修正し、および/または画像を分類してもよい。例えば、分類モジュール150及び/又は152は、画像が文章を含むかを判定し、含む場合に格納される文章の種類を判定するために用いられ得る。コンテンツアイテムの修正は、コンテンツアイテムの表示を改善(画像内の文章の表示を修正)するために、コンテンツアイテムを訂正し、更なる変換を実行し、及び/又はコンテンツアイテムをクロップし得る。
【0085】
ある実施の形態では、ユーザデバイス102aは、検索モジュール142aを含み得、一方、ユーザデバイス102bは、合わせて検索モジュール142として参照され得る、検索モジュール142bを含み得る。コンテンツ管理システム104は、対応する検索モジュール144を提供し得る。検索モジュール142及び144は、ユーザデバイス102及び/又はコンテンツ管理システム104の両方に置かれたコンテンツアイテムの検索をサポート可能であり得る。1つ以上のコンテンツアイテムを要求する検索リクエストは、検索モジュール142及び/又は144によって受け取られ得る。ある実施形態では、検索は、管理サービスの提供の際にコンテンツアイテムに割り当てられるメタデータ及び/又は属性を検索することによって処理され得る。例えば、コンテンツアイテムと共に格納されたクラスタマーカは日付によってコンテンツアイテムを発見するために用いられ得る。この特定のシナリオでは、クラスタマーカは、クラスタマーカと共に格納されたコンテンツアイテムの大まかな時刻、平均時間を示し得、このマーカは、特定のクラスタマーカを有するコンテンツのクラスタを検索し、検索結果を返すスピードを増加させるために用いられ得る。
【0086】
コンテンツ管理システム104によって管理されるコンテンツアイテム110は、それぞれのユーザデバイス102のコンテンツアイテムシステム108にローカルに格納され得、及び/又はコンテンツ管理システム104のデータストア118に離れて格納(例えばデータストア118内のコンテンツアイテム134)され得る。コンテンツ管理システム104は、管理するコンテンツアイテムの同期処理を提供し得る。属性112a及び112b(合わせると112)または他のメタデータも、コンテンツアイテム110と共に格納され得る。例えば、特定の属性は、コンテンツ管理システム104によって管理及び/又は同期処理されるユーザデバイス102にローカルに格納されたコンテンツアイテムを追跡するために、コンテンツアイテムと共に格納され得る。ある実施形態では、属性112は、拡張された属性、リソースフォーク、又は、コンテンツアイテムシステム108等のコンテンツアイテムシステムによって解釈されないコンテンツアイテムと共にメタデータを格納可能な任意の他の実装を用いて実装され得る。特に、属性112a及び112bは、コンテンツアイテムのためのコンテンツの識別子であり得る。例えば、コンテンツの識別子は、コンテンツアイテムを識別する、ユニーク又はほぼユニークな識別子(例えば番号や文字列)であり得る。コンテンツアイテムと共にコンテンツ識別子を格納することにより、コンテンツアイテムを追跡し得る。例えば、ユーザがコンテンツアイテムシステム108階層の中でコンテンツアイテムを他の場所に動かした場合および/またはユーザがコンテンツアイテムを変更した場合、コンテンツアイテムはユーザデバイス102のコンテンツアイテムシステム108の中で依然として特定可能である。コンテンツ識別子で特定されたコンテンツアイテムに対する任意の変更又は修正は、コンテンツ管理システム104によって提供される同期及び/又はバージョン管理サービスのためにアップロード又は提供され得る。
【0087】
スタンドアローンのコンテンツ管理アプリケーション114aと114b(合わせると114)、クライアントアプリケーション、及び/又はサードパーティアプリケーションは、ユーザデバイス102a及び102b上でそれぞれ実行されて、ユーザがコンテンツ管理システム104と相互作用するユーザインタフェースを提供する。コンテンツ管理アプリケーション114は、コンテンツ管理インタフェースモジュール154と共に提供される、ユーザデバイス102のための機能とアクセス可能なモジュールを外部に提供し得る。ウェブブラウザ116aと116b(合わせると116)は、コンテンツ管理インタフェースモジュール154と共に外部に提供され、コンテンツ管理104の機能を提供し得るクライアントアプリケーションのウェブページフロントエンドを表示するために用いられる。
【0088】
コンテンツ管理システム104は、ユーザが認証されたアカウントを使ってコンテンツを格納できるようにし、また、検索、修正、ブラウズ、同期及び/又は他のアカウントにコンテンツを共有するような管理タスクを実行する。コンテンツ管理システム104の様々な実施形態は、コンテンツ管理インタフェースモジュール154、アカウント管理モジュール120、同期モジュール122、コレクションモジュール124、共有モジュール126、ファイルシステム抽象化128、データストア118、及び組織化モジュール140を含む要素を有し得るが、これらに限らない。コンテンツ管理インタフェースモジュール154は、コンテンツ管理システム104のサーバサイド又はバックエンドの機能/性能を外部に提供し得る。例えば、ユーザデバイス102の対応するユーザインタフェース(例えばスタンドアローンのアプリケーション、クライアントアプリケーション等)は、コンテンツ管理インタフェースモジュール154を用いて実行され、ユーザがコンテンツ管理システム104によって提供される機能を実行できるようにし得る。
【0089】
ユーザデバイス102に表示されるユーザインタフェースは、アカウント管理モジュール120を用いて、ユーザがアカウントを生成し、及び/又はユーザがアカウントを使用することを認証するために用いられ得る。アカウント管理モジュール120は、ユーザ及び/又はユーザデバイス102によるアカウントの使用を、ユーザ名/パスワード、デバイス識別子、及び/又は任意の他の認証方法を用いて認証する機能を提供し得る。アカウント情報130は、データストア118内でアカウントのために管理され得る。アカウント情報は、個人情報(例えば、電子メールアドレス又はユーザ名)、アカウント管理情報(例えば、「無料」や「有料」等のアカウントの種類)、使用情報(コンテンツアイテムの編集履歴)、許可された最大のストレージ空間、使用済みストレージ空間、コンテンツの格納場所、セキュリティ設定、個人の構成設定、コンテンツの共有データ等を含み得るが、これらに限らない。コンテンツ管理システム104のストレージ空間の量は、予約され、分配され、確保され、格納され、及び/又は認証されたアカウントによりアクセスされ得る。アカウントは、データストア118内のそのアカウント用のコンテンツアイテム134及び/又はコンテンツアイテム110にアクセスするために、及び/又は、コンテンツアイテム134及び/又はコンテンツアイテム110を、他のアカウントから共有されたアカウントからアクセス可能にするために用いられ得る。ある実施の形態では、アカウント管理モジュール120はコンテンツ管理システム104の任意の数の他のモジュールと相互作用してもよい。
【0090】
ある実施の形態では、コンテンツ管理システム104のアカウントは、アカウントによって認証された1つ以上のユーザデバイス102から書類、テキストアイテム、音声アイテム、ビデオアイテム等のコンテンツを格納するために用いられ得る。コンテンツはまた、異なる振る舞いである、又はコンテンツアイテムを互いにグループ化する他のメカニズムを用いた、様々な種類のコレクションを含み得る。例えば、アカウントは、任意のユーザからアクセス可能にした公開コレクションを含み得る。ある実施形態では、公開コレクションはウェブでアクセス可能なアドレスに割り当てられ得る。このウェブでアクセス可能なアドレスへのリンクは、公開されたフォルダのコンテンツにアクセスするために用いられ得る。他の例では、アカウントは、写真及び/又はビデオを格納し得る写真コレクションを含み得、写真及び/又はビデオの目的に合わせた特定の属性及び行為を提供し得る。アカウントはまた、音声アイテムを再生し、他の音声に関連する行為を実行する機能を提供する、音声コレクションを含み得る。アカウントはさらに、特定の目的のコレクションを含み得る。アカウントはまた、複数のユーザアカウントとリンクし、これらのアカウントから利用可能な共有コレクション又はグループコレクションを含み得る。ある実施形態では、共有コレクションへのアクセスは、共有コレクションにアクセスすることが可能な異なるユーザに対して異なり得る。
【0091】
コンテンツアイテム110及び/又はコンテンツアイテム134は、データストア118に格納され得る。ある実施形態では、データストア118は、ストレージデバイス、複数のストレージデバイス、又はサーバであり得る。或いは、データストア118は、1つ以上の通信ネットワークを介してアクセス可能なクラウドストレージプロバイダ又はネットワークストレージであり得る。コンテンツ管理システム104は、コンテンツアイテムのシステム抽象化128(例えば、コンテンツアイテムのシステムデータベース抽象化レイヤ)を用いて、複雑さや詳細をユーザデバイス102から見えないようにして、コンテンツ管理システム104によって格納されたコンテンツアイテムがどこにあるのかをユーザデバイス102が正確に知る必要がないようにし得る。実施形態は、ユーザデバイス102に現れるように、コンテンツアイテムを同一のコレクションに階層的に格納し得る。或いは、コンテンツ管理システム104は、様々な順番、配置、及び/又は階層でコンテンツアイテムを格納し得る。コンテンツ管理システム140は、コンテンツアイテムを、ネットワークアクセス可能ストレージ(SAN)デバイス、redundant array of inexpensive disks(RAID)等に格納し得る。コンテンツ管理システム104は、コンテンツアイテムを、FAT、FAT32、NTFS、EXT2、EXT3、EXT4、ReiserFS、 BTRFS等の1つ以上のパーティションタイプを用いて格納し得る。
【0092】
データストア118はまた、コンテンツアイテム、コンテンツアイテムの種類、及び様々なアカウント、フォルダ、コレクション、又はグループとのコンテンツアイテムの関係を表すメタデータを格納し得る。このコンテンツアイテムのためのメタデータは、コンテンツアイテムの一部として、及び/又は別々に格納され得る。メタデータは、オブジェクト指向データベース、リレーショナルデータベース、コンテンツアイテムシステム、又は任意の他のデータのコレクションに格納され得る。ある実施形態では、データストア118に格納された各コンテンツアイテムは、システム全体にわたってユニークな識別子が割り当てられ得る。
【0093】
ある実施形態では、データストア118は、コンテンツアイテムの複製やコンテンツアイテムのチャンクを特定することにより、要求されるストレージ空間の量を低下させ得る。複数のコピーを格納する代わりに、データストア118は、コンテンツアイテム134の1つのコピーを格納し、1つのコピーと複製をつなぐためのポインタや他の機構を使用し得る。同様に、データストア118は、より効率的にコンテンツアイテム134を格納すると共に、コンテンツアイテムの変化、コンテンツアイテムの異なるバージョン(バージョンツリーの分岐を含む)、及び変更履歴を追跡するコンテンツアイテムバージョン管理を用いることによって、アンドゥ(Undo)操作の機能を提供し得る。変更履歴は、元のコンテンツアイテムのバージョンにいつ適用したか、変更されたコンテンツアイテムのバージョンをいつ生成したかの変更の組を含み得る。
コンテンツ管理システム104は、1つ以上のユーザデバイス102からのコンテンツの自動同期処理をサポートするように構成され得る。同期処理は、プラットフォーム非依存であり得る。すなわち、コンテンツは、種類、機能、オペレーティングシステム等の異なる、複数のユーザデバイス102にわたって同期処理され得る。例えば、ユーザデバイス102aは、コンテンツ管理システム104の同期モジュール122を介して、ユーザデバイス102のコンテンツアイテムシステム108内のコンテンツを、ユーザアカウントに関連付けられたコンテンツと同期するクライアントソフトウェアを含み得る。ある場合では、クライアントソフトウェアは、新規の、削除された、修正された、コピーされた又は移動されたコンテンツアイテムやフォルダ等のような、指定されたコレクション及びそのサブコレクション内のコンテンツに対する任意の変更と同期し得る。既存のコンテンツ管理システムと結合するクライアントソフトウェアのある例では、ユーザはローカルフォルダのコンテンツを直接操作し得る一方で、バックグラウンドプロセスが変更のためにローカルコンテンツを監視し、コンテンツ管理システム104に変更を同期する。ある実施形態では、バックグラウンドプロセスは、コンテンツ管理システム104において更新されたコンテンツを特定し、ローカルコレクションに変更を同期する。クライアントソフトウェアは、同期処理の動作の通知を提供し得、コンテンツ管理システムのアプリケーション内でコンテンツ状態の表示を直接提供し得る。ある実施形態では、ユーザデバイス102は利用可能なネットワーク接続を有し得ない。このシナリオでは、クライアントソフトウェアは、コンテンツアイテムの変更に対してリンクされたコレクションを監視し、ネットワーク接続が可能になった際のコンテンツ管理システム104への後の同期のために、これらの変更をキューに入れ得る。同様に、ユーザは、コンテンツ管理システム104との同期を手動で停止又は一時停止し得る。
【0094】
ユーザはまた、コンテンツ管理インタフェースモジュール154によって生成及び提供されたウェブインタフェースを介してコンテンツを視認し又は操作し得る。例えば、ユーザはコンテンツ管理システム104によって提供されたウェブアドレスへウェブブラウザ内で移動し得る。コンテンツアイテムの新たなバージョンをアップロードするなどの、ウェブインタフェースを介してなされたデータストア118のコンテンツへの変更や更新は、ユーザアカウントに関連付けられた他のユーザデバイス102へ逆に伝達され得る。例えば、複数のユーザデバイス102のそれぞれはそのクライアントソフトウェアを用いて、1つのアカウントと関連付けられており、アカウント内のコンテンツアイテムはユーザデバイス102のそれぞれとの間で同期し得る。
【0095】
コンテンツ管理システム104は、コンテンツ及び/又はコンテンツのコレクションの公開又は非公開による共有を管理するための共有モジュール126を含み得る。共有モジュール126は、独立して、又はユーザデバイス102aにある対応する共有モジュール152a及びユーザデバイス102bにある対応する共有モジュール152b(合わせると共有モジュール152)と連携して、共有を管理し得る。公開によるコンテンツの共有は、コンテンツアイテム及び/又はコレクションを、コンテンツ管理システム104を用いたネットワーク通信において任意のデバイスからアクセス可能にすることを含み得る。非公開によるコンテンツの共有は、データストア118内のコンテンツアイテム及び/又はコレクションを、2つ以上のユーザアカウントと結びつけて、各ユーザアカウントがコンテンツへアクセス可能にすることを含み得る。この共有は、プラットフォーム非依存で実行され得る。すなわち、コンテンツは、種類、機能、オペレーティングシステム等の異なる、複数のユーザデバイス102にわたって共有され得る。例えば、1つ以上の共有リンクが、共有されたコンテンツアイテムにアクセスするためにユーザ又はユーザのコンタクトに提供され得る。コンテンツはまた、異なるユーザアカウントの種類にわたって共有され得る。特に、共有モジュール126がコレクションモジュール124と共に用いられることにより、仮想的なコレクションを他のユーザ又はユーザアカウントと共有することができ得る。仮想コレクションは、ユーザデバイス102のコンテンツアイテムシステム108内の様々な場所に格納され得る、及び/又はコンテンツ管理システム104に離れて格納され得るコンテンツ識別子のコレクションであり得る。
【0096】
ある実施形態では、コンテンツ管理システムを用いた、アカウントのための仮想コレクションは、コンテンツアイテムのための1つ以上の識別子のコレクションに対応し得る(例えば、ストレージのコンテンツアイテムを特定する)。仮想コレクションは、コレクションモジュール124を用いて、コンテンツ管理システムによって格納され及び/又は管理された既存のコンテンツアイテムから選択され、データストレージにある既存のコンテンツアイテムと仮想コレクションを関連付ける(例えば、格納場所、コンテンツ識別子、又は格納されたコンテンツアイテムのアドレスを関連付ける)ことにより生成され得る。既存のコンテンツアイテムと仮想コレクションを関連付けることにより、コンテンツアイテムは、コンテンツアイテムをコレクション内に置くために、データストレージ内の他の場所にコンテンツアイテムを格納する(例えばコンテンツアイテムをディレクトリにコピー及びペーストする)必要がない仮想コレクションの一部として指定され得る。
【0097】
ある実施形態では、コンテンツ管理システム104は、各エントリや行がデータストア118の各コンテンツアイテムの場所を特定する、コンテンツアイテムのためのコンテンツディレクトリ又はデータベーステーブル/エントリを管理するように構成され得る。ある実施形態では、ユニーク又はほぼユニークな識別子がデータストア118に格納される各コンテンツアイテムのために格納され得る。
【0098】
ある実施形態では、メタデータが各コンテンツアイテムのために格納され得る。例えば、メタデータは、コンテンツアイテムを特定するために用いられるコンテンツのパスを含み得る。コンテンツのパスは、コンテンツアイテムの名前と、コンテンツアイテムに関連付けられたコンテンツアイテムの階層(例えば、ユーザデバイス102内のローカルな格納に対するパス)とを含み得る。コンテンツ管理システム104は、コンテンツのパスを使用して、従来的な階層的なビューを用いたユーザインタフェースに、適切なコンテンツアイテムの階層でコンテンツアイテムを表示し得る。データストア118内のコンテンツアイテムの場所を特定するコンテンツのポインタもまた、コンテンツ識別子と共に格納され得る。例えば、コンテンツのポインタは、メモリ内のコンテンツアイテムの正確な格納アドレスを含み得る。ある実施形態では、コンテンツのポインタは、そのそれぞれがコンテンツアイテムの一部を含む複数の場所を指し示し得る。
【0099】
コンテンツのパス及びコンテンツのポインタに加えて、コンテンツアイテムのエントリ/コンテンツアイテムデータベースのデータベーステーブルの行は、コンテンツアイテムへアクセス可能なユーザアカウントを特定するユーザアカウント識別子を含み得る。ある実施形態では、複数のユーザアカウント識別子は、コンテンツアイテムが複数のユーザアカウントにわたって共有されたことを特定する1つのコンテンツエントリと関連付けられ得る。
【0100】
非公開によりコンテンツアイテムを共有するため、共有モジュール126は、コンテンツアイテムと関連付けられたコンテンツエントリ又はデータベーステーブルの行にユーザアカウント識別子を追加するように構成され得、これにより、コンテンツアイテムへの追加されたユーザアカウントのアクセスを登録する。共有モジュール126はまた、コンテンツアイテムへのユーザアカウントのアクセスを制限するため、コンテンツエントリ又はデータベーステーブルの行からユーザアカウント識別子を削除するように構成され得る。共有モジュール126はまた、仮想コレクションのためのデータベーステーブルへのユーザアカウントの追加又は削除に用いられ得る。
【0101】
公開によりコンテンツを共有する場合、共有モジュール126は、任意のブラウザが何らかの認証を要することなく、コンテンツ管理システム104へのアクセスを可能にする、uniform resource locator(「URL」)等のカスタムネットワークアドレスを生成するように構成され得る。これを実現するため、共有モジュール126は生成されたURLにコンテンツ識別データを含めるよう構成されてもよい。このコンテンツ識別データは、要求されたコンテンツアイテムを適切に特定して返信するために後に用いられてもよい。例えば、共有モジュール126は、生成されたURLにユーザアカウント識別子とコンテンツのパスを含むように構成され得る。URLの選択のうえで、URLに含まれるコンテンツ識別子のデータは、コンテンツ識別子のデータを受信して適切なコンテンツエントリを特定し、このコンテンツエントリに関連付けられたコンテンツアイテムを返信し得る、コンテンツ管理システム104に送信され得る。
【0102】
公開により仮想コレクションを共有するため、共有モジュール126は、任意のブラウザが何らかの認証を要することなく、コンテンツ管理システム100へのアクセスを可能にする、uniform resource locator(「URL」)等のカスタムネットワークアドレスを生成するように構成され得る。これを実現するため、共有モジュール126は生成されたURLにコレクション識別データを含めるよう構成されてもよい。このコレクション識別データは、要求されたコンテンツアイテムを適切に特定して返信するために後に用いられてもよい。例えば、共有モジュール126は、生成されたURLにユーザアカウント識別子とコレクション識別子を含むように構成され得る。URLの選択の際、URLに含まれるコンテンツ識別データはコンテンツ管理システム104に送信されてもよく、このコンテンツ管理システム104は受信されたコンテンツ識別データを使用して適切なコンテンツエントリ又はデータベースの行を特定し、このコンテンツエントリ又はデータベースの行に関連付けられたコンテンツアイテムを返信してもよい。
【0103】
URLの生成に加えて、共有モジュール126はまた、コンテンツアイテムへのURLが生成されたことを記録するように構成され得る。ある実施形態では、コンテンツアイテムに関連付けられたコンテンツエントリは、コンテンツアイテムへのURLが生成されたかを示すURLフラグを含み得る。例えば、URLフラグは、最初に0又は「偽」が設定される二値であり得、コンテンツアイテムへのURLが生成されていないことを示し得る。共有モジュール126は、コンテンツアイテムへのURLが生成された後にフラグの値を1又は「真」に変更するように構成され得る。
【0104】
ある実施形態では、共有モジュール126はまた、生成されたURLを非活性化するように構成され得る。例えば、各コンテンツエントリもまた、生成されたURLからの要求に応じてコンテンツが返信されるべきかを示すURL活性フラグを含み得る。例えば、共有モジュール126は、URL活性フラグが1又は「真」に設定されている場合に生成されたリンクによって要求されたコンテンツアイテムのみを返信するように構成され得る。URL活性フラグの値又は二値の変更は、URLが生成されたコンテンツアイテム又はコレクションへのアクセスを容易に制限し得る。これにより、ユーザは、コンテンツアイテムを移動したり生成されたURLを削除したりする必要なく、共有コンテンツへのアクセスを制限することができる。同様に、共有モジュール126は、URL活性フラグの値を1又は「真」に再び変更することによりURLを再活性化し得る。従って、ユーザは、新たなURLを生成する必要ななくコンテンツアイテムへのアクセスを容易に回復させる。
【0105】
例示的なシステム
本発明の例示的な実施形態では、C、C++、Java、JavaScript、Python、Ruby、CoffeeScript、assembly language等の任意の適切なプログラミング言語を用いて特定の実施形態のルーチンを実装し得る。手続型又はオブジェクト指向等の異なるプログラミング技術が用いられ得る。ルーチンは、1つの処理デバイス又は複数のプロセッサ上で実行し得る。ステップ、操作、コンピュータ処理は特定の順番で表され得るが、この順番は異なる特定の実施形態において変更され得る。ある特定の実施形態では、本明細書において連続的に示された複数のステップは、同時に実行され得る。
【0106】
特定の実施形態は、命令実行システム、装置、システム又はデバイスと共に使用するためのコンピュータ可読ストレージデバイス又は非一時的なコンピュータ可読媒体に実装され得る。特定の実施形態は、ソフトウェア又はハードウェア又は両方の組み合わせの制御ロジックの形式で実装され得る。この制御ロジックは、1つ以上のプロセッサで実行されたときに、特定の実施形態に記載されたものを実行するために動作可能であり得る。
【0107】
特定の実施の形態は、プログラムされた汎用デジタルコンピュータを用いて、特定用途向け集積回路、プログラマブルロジックデバイス、FPGA(field programmable gate arrays)、光、化学、バイオ、量子又はナノ加工のシステム、コンポーネント及び機構を用いて、実装され得る。一般に、特定の実施形態の機能は、この分野で知られるあらゆる手段により実現され得る。分散化、ネットワーク化されたシステム、コンポーネント、及び/又は回路が用いられ得る。データの通信又は伝送は有線、無線又は任意の他の手段によりなされ得る。
【0108】
用例/図に図示された要素の1つ以上は、より分割された又は統合された方法で、又は、削除され又はある場合に動作しないものとして、特定のアプリケーションに従って有用なものとして扱われて、実装され得る。ストレージデバイス等の機械可読媒体に格納され得るプログラムやコードを実装して、上述した任意の方法をコンピュータに実行させることは、思想及びスコープの範囲内であり得る。
【0109】
この中の記載及び以下の請求項のあらゆる箇所で用いられるように、「a」、「an」及び「the」はコンテキストが明示的に述べない限り複数の参照を含む。また、この中の記載及び以下の請求項のあらゆる箇所で用いられるように、「in」の意味はコンテキストが明示的に述べない限り「in」及び「on」を含む。
【0110】
仮想的な状態を管理するシステム及び方法を提供するための方法が記載されたが、本発明の思想及びスコープから乖離することなく多くの変更がなされ得ることが理解されるべきである。この分野における当業者から見てクレームされた主題から実質的でない変更、知られていないもの又は後に考案されたものは、請求項のスコープと均等であると想定される。従って、この分野の当業者に現在明らかな代用物又は後に知られたものは、定義された要素のスコープ内であると定義され得る。本発明の記載された実施形態は、限定では無く説明の目的のために示されたものである。