(57)【要約】  複数のデバイス及び複数のユーザにわたるサーバサイドのストレージと断続的なネットワーク接続中のローカルの仮想的な状態を維持するシステム、方法及び非一時的コンピュータ可読媒体が提供される。例示的な実施形態では、ユーザデバイス上で、ユーザによって彼らのユーザアカウントにローカルに追加されたコンテンツが表示され得、コンテンツが既にコンテンツマネージメントシステム上に生成されていたかのように、ユーザデバイスとの全ての対話機能が容易になされ得る。共有仮想空間をサポートするコンテンツマネージメントシステムのアプリケーションでは、ユーザが彼らのユーザデバイス上で加えた共有仮想空間への変更（新たな共有仮想空間の生成を含む）を、変更の後に即座にローカルで表示し、情報がサーバに伝送すること、又はユーザデバイスと矛盾のない状態にすることを待たない。
2016529634.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
ユーザデバイスにおいて、コンテンツマネージメントシステムのユーザアカウントにコンテンツアイテムを追加するための第１のリクエストを受信する工程と、
コンテンツアイテムをユーザアカウントに追加する要求と前記コンテンツアイテムに関連付けるグローバルＩＤの要求とを含む第２のリクエストを、前記コンテンツマネージメントシステムに提供する工程と、
前記ユーザデバイスにおいて、前記コンテンツアイテムにローカルＩＤを割り当てる工程と、
前記コンテンツアイテムになされた１つ以上の行為を、前記ローカルＩＤを用いて参照する工程と、
前記コンテンツアイテムに関連付けられた前記グローバルＩＤを、前記コンテンツマネージメントシステムから受信する工程と、
前記グローバルＩＤを受信したことに応じて、前記グローバルＩＤを前記ローカルＩＤとデータ構造内に蓄積する工程と、
操作の待ち行列内の１つ以上の未完了の操作と、前記ユーザデバイスと前記コンテンツマネージメントシステムとの間の前記コンテンツアイテムの状態を保存するための、前記ユーザデバイスに蓄積される１つ以上のデータ構造とを参照して、前記ローカルＩＤを前記グローバルＩＤに置き換える工程と、を含むことを特徴とする方法。
【請求項２】
前記コンテンツアイテムは、前記ユーザのアカウントにアップロードされた画像、前記ユーザの一人以上の連絡先との画像の共有、既存の共有仮想空間に追加された画像、既存の共有仮想空間に追加されたメッセージ、又は既存の共有仮想空間のメンバへのインバンドのメッセージ、の１つを含む、ことを特徴とする請求項１に記載の方法。
【請求項３】
前記データ構造は、ローカルＩＤからグローバルＩＤを参照する関連を含む、ことを特徴とする請求項１に記載の方法。
【請求項４】
前記関連は、ルックアップテーブル、変換テーブル、又はデータベースレコードの１つ以上を含む、ことを特徴とする請求項３に記載の方法。
【請求項５】
前記第２のリクエストを提供する工程と、前記ローカルＩＤを前記コンテンツアイテムに割り当てる工程とは、前記ユーザデバイスで同時に発生する、ことを特徴とする請求項１に記載の方法。
【請求項６】
前記コンテンツアイテムは、前記ユーザデバイスにローカルに存在する既存の共有仮想空間に追加された画像を含む、ことを特徴とする請求項１に記載の方法。
【請求項７】
前記ユーザデバイスと前記コンテンツマネージメントシステムとの間の接続性を、１つ以上の接続性パラメータに基づいて判定する工程を更に含む、ことを特徴とする請求項１に記載の方法。
【請求項８】
前記グローバルＩＤを前記ローカルＩＤとデータ構造内に蓄積する工程と、前記ローカルＩＤを前記グローバルＩＤで置き換える工程は、
前記コンテンツマネージメントシステムから前記アイテムのためのグローバルＩＤを受信した後に可能な限り即時に、
前記グローバルＩＤを受信してから決められた時刻制限の経過後に、
決められた数のグローバルＩＤを受信した後に、又は、
前記ローカルＩＤが割り当てられた前記コンテンツアイテムに関する行為に基づいて、実行される、ことを特徴とする請求項１に記載の方法。
【請求項９】
重複したグローバルＩＤが異なるコンテンツアイテムに割り当てられることを回避するために確認する工程を更に含む、ことを特徴とする請求項１に記載の方法。
【請求項１０】
前記確認する工程は、前記コンテンツマネージメントシステムのサーバに、前記ローカルＩＤを前記グローバルＩＤのリクエストと共に送信する工程を更に含む、ことを特徴とする請求項９に記載の方法。
【請求項１１】
ユーザデバイスの少なくとも１つのプロセッサによって実行されたときに、前記ユーザデバイスに、
ユーザデバイスにおいて、コンテンツマネージメントシステムのユーザアカウントにコンテンツアイテムを追加するための第１のリクエストを受信し、
コンテンツアイテムをユーザアカウントに追加する要求と前記コンテンツアイテムに関連付けるグローバルＩＤの要求とを含む第２のリクエストを、前記コンテンツマネージメントシステムに提供し、
前記ユーザデバイスにおいて、前記コンテンツアイテムにローカルＩＤを割り当て、
前記コンテンツアイテムになされた１つ以上の行為を、前記ローカルＩＤを用いて参照し、
前記グローバルＩＤを受信したことに応じて、前記グローバルＩＤを前記ローカルＩＤとデータ構造内に蓄積し、
操作の待ち行列内の１つ以上の未完了の操作と、前記ユーザデバイスと前記コンテンツマネージメントシステムとの間の前記コンテンツアイテムの状態を保存するための、前記ユーザデバイスに蓄積される１つ以上のデータ構造とを参照して、前記ローカルＩＤを前記グローバルＩＤに置き換える、
ように実行させる命令を含む、ことを特徴とする非一時的コンピュータ可読媒体。
【請求項１２】
前記ユーザデバイスの少なくとも１つのプロセッサによって実行されたときに、前記ユーザデバイスに、更に
前記グローバルＩＤを用いて、前記ユーザアカウントの前記コンテンツアイテムを前記コンテンツマネージメントシステムに蓄積するために、第３のリクエストを送信させ、
前記ユーザデバイスに前記コンテンツアイテムを表示させる、ことを含む請求項１１に記載の非一時的コンピュータ可読媒体の方法。
【請求項１３】
前記コンテンツアイテムは、
前記コンテンツマネージメントシステムの前記ユーザアカウントにアップロードされた画像と、
前記ユーザアカウントと関連付けられた少なくとも一人のユーザの連絡先との画像の共有と、
前記コンテンツマネージメントシステムにおける既存の共有仮想空間に追加された画像と、
前記コンテンツマネージメントシステムにおける既存の共有仮想空間に追加されたメッセージと、
前記コンテンツマネージメントシステムにおける既存の共有仮想空間のメンバへのインバンドのメッセージ、の１つ以上を含む、ことを特徴とする請求項１１に記載の非一時的コンピュータ可読媒体の方法。
【請求項１４】
前記コンテンツマネージメントシステムにおける前記既存の共有仮想空間は、前記ユーザデバイスのローカルに存在する共有仮想空間である、ことを特徴とする請求項１３に記載の非一時的コンピュータ可読媒体の方法。
【請求項１５】
前記データ構造は、ローカルＩＤからグローバルＩＤを参照する関連を含む、ことを特徴とする請求項１１に記載の非一時的コンピュータ可読媒体の方法。
【請求項１６】
前記関連は、ルックアップテーブル、変換テーブル、及びデータベースレコードの１つ以上である、ことを特徴とする請求項１５に記載の非一時的コンピュータ可読媒体の方法。
【請求項１７】
前記ユーザデバイスの少なくとも１つのプロセッサによって実行されたときに、前記ユーザデバイスに更に、前記コンテンツマネージメントシステムに対して、前記ローカルＩＤを前記グローバルＩＤのための前記第２のリクエストと共に送信させる、ことを特徴とする請求項１１に記載の非一時的コンピュータ可読媒体の方法。
【請求項１８】
前記グローバルＩＤを前記ローカルＩＤとデータ構造内に蓄積し、前記ローカルＩＤを前記グローバルＩＤで置き換えることは、
前記グローバルＩＤを受信した後に可能な限り即時に、
前記グローバルＩＤを受信したときから決められた時刻制限の経過後に、
決められた数のグローバルＩＤを、前記ユーザデバイスによって受信した後に、又は、
前記ローカルＩＤが割り当てられた前記コンテンツアイテムに関連する行為に基づいて実行される、ことを特徴とする請求項１１に記載の非一時的コンピュータ可読媒体の方法。
【請求項１９】
システムであって、
メモリと、
通信回路と、
ディスプレイと、
少なくとも１つのプロセッサであって、
コンテンツマネージメントシステムのユーザアカウントにコンテンツアイテムを追加するための第１のリクエストを受信し、
コンテンツアイテムをユーザアカウントに追加する要求と前記コンテンツアイテムに関連付けるグローバルＩＤの要求とを含む第２のリクエストを、前記コンテンツマネージメントシステムに提供し、
前記ユーザデバイスにおいて、前記コンテンツアイテムにローカルＩＤを割り当て、
前記コンテンツアイテムになされた１つ以上の行為を、前記ローカルＩＤを用いて参照し、
前記グローバルＩＤを受信したことに応じて、前記グローバルＩＤを前記ローカルＩＤとデータ構造内に蓄積する、
操作の待ち行列内の１つ以上の未完了の操作と、前記ユーザデバイスと前記コンテンツマネージメントシステムとの間の前記コンテンツアイテムの状態を保存するための、前記ユーザデバイスに蓄積される１つ以上のデータ構造とを参照して、前記ローカルＩＤを前記グローバルＩＤに置き換える、ように動作可能な前記１つ以上のプロセッサと、を含む、ことを特徴とするシステム。
【請求項２０】
前記コンテンツアイテムは、
前記コンテンツマネージメントシステムの前記ユーザアカウントにアップロードされた画像と、
前記ユーザアカウントと関連付けられた少なくとも一人のユーザの連絡先との画像の共有と、
前記コンテンツマネージメントシステムにおける既存の共有仮想空間に追加された画像と、
前記コンテンツマネージメントシステムにおける既存の共有仮想空間に追加されたメッセージと、
前記コンテンツマネージメントシステムにおける既存の共有仮想空間のメンバへのインバンドのメッセージ、の１つ以上を含む、ことを特徴とする請求項１９に記載のシステム。
【請求項２１】
前記コンテンツマネージメントシステムにおける前記既存の共有仮想空間は、前記ユーザデバイスのローカルに存在する共有仮想空間を含む、ことを特徴とする請求項２０に記載のシステム。
【請求項２２】
前記データ構造は、ローカルＩＤからグローバルＩＤを参照する関連を含む、ことを特徴とする請求項１９に記載のシステム。
【請求項２３】
前記蓄積された関連と、前記ローカルＩＤの前記グローバルＩＤとの置き換えは、
前記グローバルＩＤを受信した後に可能な限り即時に、
前記グローバルＩＤを受信したときから決められた時刻制限の経過後に、
決められた数のグローバルＩＤを、前記ユーザデバイスによって受信した後に、又は、
前記ローカルＩＤが割り当てられた前記少なくとも１つのコンテンツアイテムに関連する行為に基づいて実行される、ことを特徴とする請求項１９に記載のシステム。
【請求項２４】
前記少なくとも１つのプロセッサは、
前記第１のリクエストに応じて、前記コンテンツアイテムの前記ローカルＩＤを生成し、
ユーザが遅延を知覚することなく前記コンテンツアイテムを、前記ディスプレイに表示する、ように更に動作可能である、ことを特徴とする請求項１９に記載のシステム。
【請求項２５】
システムであって、
ユーザデバイスにおいて、コンテンツマネージメントシステムのユーザアカウントにコンテンツアイテムを追加する第１のリクエストを受信する手段と、
コンテンツアイテムをユーザアカウントに追加する要求と前記コンテンツアイテムに関連付けるグローバルＩＤの要求とを含む第２のリクエストを、前記コンテンツマネージメントシステムに提供する手段と、
前記ユーザデバイスにおいて、前記コンテンツアイテムにローカルＩＤを割り当てる手段と、
前記コンテンツアイテムになされた１つ以上の行為を、前記ローカルＩＤを用いて参照する手段と、
前記コンテンツアイテムに関連付けられた前記グローバルＩＤを、前記コンテンツマネージメントシステムから受信する手段と、
前記グローバルＩＤを受信したことに応じて、前記グローバルＩＤを前記ローカルＩＤとデータ構造内に蓄積する手段と、
操作の待ち行列内の１つ以上の未完了の操作と、前記ユーザデバイスと前記コンテンツマネージメントシステムとの間の前記コンテンツアイテムの状態を保存するための、前記ユーザデバイスに蓄積される１つ以上のデータ構造とを参照して、前記ローカルＩＤを前記グローバルＩＤに置き換える手段と、を含むことを特徴とするシステム。
【請求項２６】
前記コンテンツアイテムは、前記ユーザのアカウントにアップロードされた画像、前記ユーザの一人以上の連絡先との画像の共有、既存の共有仮想空間に追加された画像、既存の共有仮想空間に追加されたメッセージ、又は既存の共有仮想空間のメンバへのインバンドのメッセージ、の１つを含む、ことを特徴とする請求項２５に記載のシステム。
【請求項２７】
前記コンテンツアイテムは、前記ユーザデバイスにローカルに存在する既存の共有仮想空間に追加された画像を含む、ことを特徴とする請求項２５に記載のシステム。
【請求項２８】
前記第２のリクエストを提供し、前記ユーザデバイスで同時に、前記ローカルＩＤを前記コンテンツアイテムに割り当てる手段を更に有する、ことを特徴とする請求項２５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
様々な実施形態は、広く、複数のデバイス及び複数のユーザにわたるサーバサイドのストレージと断続的なネットワーク接続中のローカルの仮想的な状態を維持するシステム及び方法に関する。
【背景技術】
【０００２】
写真アプリケーション、ビデオアプリケーション及び他のコンテンツ共有アプリケーションがますます一般的になる一方で、それらの種類のアプリケーションによって現在提供されるサービスや機能は固有の制限を有する。これらの制限を認識して、複数のオンラインのコンテンツマネージメントシステム（ＣＭＳｓ）は、クラウドストレージのための便利なポータルと、彼らのコンテンツとの対話機能とをユーザに提供する。このようなシステムでは、ユーザデバイスで動作する類似のアプリケーション内でする場合と同様に、ユーザは、例えば写真やビデオなどのコンテンツをアップロードし、様々な操作を行い得る。これらの操作のいくつかは、極めて複雑であり得、更に大量のコンテンツを伴い得る。このような操作は、例えば、ユーザアカウントへの写真及び／又はビデオのアップロードすること、他のユーザから写真及び／又はビデオの共有を受けて、ユーザアカウントに写真及び／又はビデオをコピーすること、コンテンツマネージメントシステムの他のユーザと写真及び／又はビデオを共有すること、アルバムやコンテンツアイテムのコレクションを生成し共有すること、及び／又はコンテンツアイテムと相互に作用すること、又はあらゆるコンテンツとの相互作用、又はこれらの任意の組み合わせを含み得る。
【０００３】
このようなローカルアプリケーションが実装され得る様々な選択肢が以前から存在する。例えば、１つの選択肢はスタンドアローンのアプリケーションとして、そのアプリケーションをローカルに実装することであり得る。この選択肢は、他のユーザから受信したコンテンツをユーザデバイスに渡すための、ある種のメッセージング機能に依存する。しかしながら、この選択肢は、ユーザアカウントに蓄積されるコンテンツの量を、ローカルのアプリケーションが動作するユーザデバイスの容量に制限し、複雑なメッセージングと、関連する全てのユーザデバイスにおいて交換又は共有されたコンテンツアイテムの状態を複製する、データ生成の管理とを要求する。
【０００４】
他の選択肢は、例えば、サーバによってサポートされる全てのローカルの行為を伴う、サーバに実装されたアプリケーションであり得る。このシナリオでは、サーバはあらゆるユーザアカウント内のコンテンツの「存在(existence)」を制御し、サーバは、ユーザデバイスとユーザ間又はユーザデバイスと他のデバイス間のあらゆる操作（例えば、修正、共有、メッセージ等）を記録しなければならない。この選択肢は、大量のデータを蓄積すると共に、コンテンツマネージメントシステムのユーザ間の共有や他の相互作用を管理するための多くの機会を提供し得る。例えば、コンテンツマネージメントシステムの様々なユーザが「メンバ」である、共有仮想空間が、分り易さとは対極の別々の方法で、ユーザアカウント内でコンテンツを共有したり、コンテンツに関するメッセージをポストするために提供され得る。
【０００５】
しかしながら、この選択肢は、このサーバ起点のモデルはローカルの相互作用を、接続性が高い又は特定の閾値を満たすときのみに制限するため、難点がある。ユーザデバイスがコンテンツマネージメントサーバにデータネットワークを介して弱々しく又は断続的に接続する（例えば、携帯電話ネットワークに接続されたスマートフォン）場合、生成されたコンテンツと、コンテンツマネージメントサーバに蓄積、承認、組織化、及び／又は管理するように要求するユーザデバイス上でなされた行為とは、適切な接続性が回復するまで処理され得ない。例えば、ユーザは、スマートフォンからコンテンツマネージメントシステムのアプリケーションを用いて、写真のコレクションをアップロードし得るが、何時間もの間、これらのユーザアカウントではこれらの写真を見られない場合がある。写真はアカウント内にまだ現れていないため、ユーザはこれらの写真を他のユーザと共有し、レビューし、修正し、又はこれらの写真に対する他のあらゆる行為を行うことができない。このことは、ユーザ体験を極めて不満足かつ苛立たしいものにし得る。
【０００６】
従って、（ｉ）コンテンツの生成、（ｉｉ）写真又はメッセージの、ユーザアカウントや他のユーザのアクセス可能なデータ構造への追加、（ｉｉｉ）共有コンテンツをコンテンツマネージメントシステム上の個人的なアカウントにダウンロードすること、及び（ｉｖ）アプリケーションとの彼らの相互作用に対する他の応答、に対する、彼らのユーザデバイスで動作するコンテンツマネージメントシステムのアプリケーションのシームレスな応答を体験できるようにすることは、ユーザにとって非常に望ましい。しかしながら、サーバへの接続性が十分に補償されていない場合には、このことが常に可能でない場合があった。これは、ユーザデバイス上のユーザインターフェースと備わっているクライアントソフトウェアの間の接続性は永続的である一方、備わっているクライアントソフトウェアとサーバ間の接続性はしばしば断続的となる場合があるという事実に対応し得る。
【０００７】
従って、全てのバックエンド動作がローカルでなされるかのような、ユーザデバイス上で動作するコンテンツマネージメントシステムのアプリケーションの、シームレスな応答を有するコンテンツマネージメントシステムをユーザに提供することは有益であり得る。
【発明の概要】
【０００８】
複数のデバイス及び複数のユーザにわたるサーバサイドのストレージと断続的なネットワーク接続中のローカルの仮想的な状態を維持するシステム、方法及び非一時的コンピュータ可読媒体が提供される。ある実施形態では、ユーザによってユーザデバイス上でローカルにユーザアカウントに追加された、あらゆるコンテンツが表示され得、コンテンツが既にコンテンツマネージメントシステム上に生成されていたかのように、ユーザデバイスとの全ての対話機能が容易になされ得る。
【０００９】
更に、共有仮想空間をサポートするコンテンツマネージメントシステムのアプリケーションでは、ユーザが彼らのユーザデバイス上で加えた共有仮想空間への変更は、変更されると即座にローカルで表示され、情報をサーバに伝送するためのあらゆる待ち時間やユーザデバイスと矛盾のない状態にするためのあらゆる待ち時間を有する。従って、多数の共有仮想空間はローカルに生成され得、そして、様々なコンテンツアイテムがあらゆる情報がコンテンツマネージメントシステムのサーバに届く前に共有仮想空間に追加され得る。ユーザには、これらの行為は情報が既にコンテンツマネージメントシステムのサーバに届いていたかのように見える。従って、ある実施形態では、ユーザによって共有仮想空間に追加された、任意のコンテンツアイテムは、（ｉ）コンテンツマネージメントシステム上に共有仮想空間が既に生成されており、（ｉｉ）コンテンツアイテムが既に共有仮想空間にコピーされていたかのように、任意のメッセージ、又はコンテンツアイテムに追加又は関連付けられたポストと共に表示され得る。また、類似の機能も、既に存在している共有仮想空間にコンテンツを追加するために存在し得る。
【図面の簡単な説明】
【００１０】
上述及び他の側面と発明の利点とは、添付図面と併用される以下の詳細な記載の考慮のもとにより明らかとなる。
【図１】様々な実施形態に従う例示的なシステムを示す図
【図２】様々な実施形態に従う、３つのデータネットワークを介して３つのユーザデバイスがコンテンツマネージメントシステムのサーバに接続する、簡略化した例示的なネットワークを概略的に説明する図
【図３】様々な実施形態に従う、ユーザデバイス上で写真をアップロードし、他のユーザと共有する例示的な処理を説明するフローチャートを示す図
【図４】様々な実施形態に従う、写真をアップロードし、他のユーザと共有するための処理を説明する他のフローチャートを示す図
【図５】、
【図６】様々な実施形態に従う、ユーザデバイス上でローカルにコンテンツを生成し、そこで相互作用する処理を説明する追加的なフローチャートを示す図
【図７】様々な実施形態に従う、他の例示的なシステムを示す図
【発明を実施するための形態】
【００１１】
断続的なネットワーク接続にも関わらず、ローカルユーザデバイスにおける、ローカルコンテンツの生成とこのコンテンツとの対話機能のセットをサポートする方法、システム及びコンピュータ可読媒体が提供される。様々な例示的な実施形態では、彼らのユーザアカウントに、ユーザデバイス上でローカルに追加されたコンテンツは、ユーザデバイス上に表示され得、そして、コンテンツが既にコンテンツマネージメントシステム（例えばそのサーバ）上に生成されていたかのように、ユーザデバイスとの全ての対話機能が容易になされ得る。
【００１２】
この機能は、既存のコンテンツマネージメントシステム又はサービスに組み込まれ、別々のアプリケーションとして提供され、又は強化されたコンテンツマネージメントシステムを提供する別々のアプリケーションの１つ以上の機能に含まれ得る。例示的なコンテンツマネージメントシステムのアプリケーションは、例えばスマートフォンのようなユーザデバイスで動作し得、コンテンツマネージメントシステムのユーザアカウントにアクセスし得る。従ってコンテンツマネージメントシステムは単一又は複数のリモートサーバとなる。このようなアプリケーションは、例えば共有仮想スペース機能などの複雑な多者との相互作用をサポートし得る。一方、アプリケーションが最終的に単一又は複数のサーバからサポートされ得る、それぞれの場合には、ある実施形態では、この拡張された機能は、共有仮想空間機能がユーザデバイス上でローカルに動作しているかのうように見えるように、ユーザデバイスで動作するローカルクライアントに構築され得る。この機能は、ユーザデバイスが弱々しく接続している、断続的に接続している又はサーバに全く接続していないかどうかにかかわらず、生じ得る。ユーザに、彼らのデバイスが接続性に関わらず十分に対話的であるように感じさせることにより、ユーザ体験と提供される機能の充実が十分に増加され得る。
【００１３】
なお、以下、「デバイス（device）」及び「コンテンツマネージメントシステム（content management system）」との語は、この中で、広範なストレージプロバイダ及びデータマネージメントサービスプロバイダと、電子デバイスとユーザデバイスとを広く指すものとして用いられる。また、「コンテンツアイテム（content item）」との語は、この中で、広範なデジタルデータ、ドキュメント、テキストコンテンツアイテム、音声コンテンツアイテム、ビデオコンテンツアイテム、コンテンツアイテムの一部、及び／又は他の種類のデータを広く指すものである。コンテンツアイテムはまた、フィアル、フォルダ、又は、コンテンツアイテムのコレクション、プレイリスト、アルバムのような異なる振る舞いで一緒にコンテンツアイテムをグループ化する他の機構を含み得る。ここで、「ユーザ（user）」の語もまた、この中で広く用いられ、シングルユーザ、複数のユーザ、認証されたアカウント、代わりに自動的に動作する又は人間の命令により動作するアプリケーション又はプログラム、任意の他のユーザタイプ、又はこれらの任意の組み合わせに相当し得る。ここで、「ジェスチャ(gesture)」及び「複数のジェスチャ(gestures)」との語はまた、この中で広く用いられ、１以上の運動、動き、ホバリング、推論、サイン、又は１つ以上のセンサとの任意の他の物理的な相互作用、又は、発話によるコマンドや網膜の追跡に基づく目の動きの解釈などの、これらの任意の組み合わせに相当し得る。「連続するリアルタイム画像(continuous real-time image)」はまた、この中で広く用いられ、１つ以上の撮影コンポーネントを介して撮影されたライブ画像、撮影された連続画像、記録された画像、又は撮影コンポーネントを介して撮影され得る任意の他の種類の画像、又はこれらの任意の組み合わせに相当し得る。
【００１４】
本発明は、様々なコンポーネント及びコンポーネントの配置、様々な技術、方法、又はステップの手順と配置を具体化し得る。参照される図面は、実施形態を説明する目的ためだけのものであり、本発明を限定するものとして解釈されるものではない。それぞれが互いに独立して又は他の特徴との組み合わせにおいて用いることができる、様々な発明の特徴が以下に記載される。
【００１５】
図１は、様々な実施形態に従う例示的なシステムを示す。システム１００は、ネットワーク１０６を跨いでコンテンツマネージメントシステム１０４と通信するユーザデバイス１０２ａと１０２ｂとを含む。２つのユーザデバイスのみがシステム１００と示されているが、任意の数のユーザデバイスがコンテンツマネージメントシステム１０４及び／又はネットワーク１０６と作用し、上述の説明は単なる例示であることを、当業者は認識する。
【００１６】
ネットワーク１０６は、伝送制御プロトコル及びインターネットプロトコル（「ＴＣＰ／ＩＰ」）、ハイパーテキスト・トランスファー・プロトコル（「ＨＴＴＰ」）及び／又はワイヤレス・アプリケーション・プロトコル（「ＷＡＰ」）を含み、但しこれらに限定されない、任意の数のプロトコルを含み得る。例えば、ユーザデバイス１０２ａとユーザデバイス１０２ｂ（まとめると１０２）とは、ＴＣＰ／ＩＰを用いてコンテンツマネージメントシステム１０４と通信し、そして、上位レベルでは、コンテンツマネージメントシステム１０４におけるウェブサーバとＨＴＴＰを用いて通信するために、ブラウザを用い得る。
【００１７】
様々なユーザデバイス１０２は、デスクトップコンピュータ、モバイルコンピュータ、モバイル通信デバイス（例えば携帯電話機、スマートフォン、タブレット）、テレビ、セットトップボックス、及び／又は、任意の他のネットワーク利用可能デバイス、を含む、但しこれに限定されない、コンテンツマネージメントシステム１０４と通信する。様々なタイプのユーザデバイスは、スマートフォン、携帯電話機、タブレットコンピュータ、パーソナルデジタルアシスタント（ＰＤＡｓ）、ラップトップコンピュータ、デジタル音楽プレイヤ、及び／又は、タッチ感応式表示インターフェースを含むことができる、任意の他の種類のユーザデバイスを含む、但しこれに限定されない、ものであり得る。様々なタッチ感応式表示インターフェースは、液晶ディスプレイ（ＬＣＤ）、モノクロディスプレイ、カラーグラフィックスアダプタ（ＣＧＡ）ディスプレイ、エンハンストグラフィックスアダプタ（ＥＧＡ）ディスプレイ、可変グラフィックスアレイ（ＶＧＡ）ディスプレイ、任意の他のディスプレイ、を含む、又はこれらの任意の組み合わせを含む、但しこれに限定されない、ものであり得る。ある実施形態では、タッチ感応式ディスプレイインターフェースは、ジェスチャを受け付けて検出するために、１つ以上のプロセッサに接続されたマルチタッチパネルを含み得る。マルチタッチパネルは、例えば、１つ以上の行トレースを有し、及び／又はライントレースを駆動する、及び１つ以上の列トレースを有し、及び／又はラインを検知する、容量性の検知媒体であり得る。マルチタッチパネルは、この中でタッチ感応式ディスプレイインターフェースの１つの例として記載されるが、当業者は任意のタッチ感応式ディスプレイインターフェースが使用されることを認識する。更に、様々な種類のユーザデバイスは、ある実施形態では、１つ以上の撮影コンポーネントを含み得る。例えば、ユーザデバイス１０２は、前向きカメラ及び／又は後向きカメラを含み得る。
【００１８】
コンテンツマネージメントシステム１００は、ユーザが認証されたアカウントを使ってコンテンツを蓄積できるようにし、また、検索、修正、ブラウズ、同期及び／又は他のアカウントにコンテンツを共有するようなマネーメントタスクを実行する。ある実施形態では、ユーザデバイス１０２上の対応するユーザインターフェース（例えばスタンドアロンアプリケーション、クライアントアプリケーション等）は、ユーザがコンテンツマネージメントシステム１０４のモジュールによって提供される機能を実行することができるように、コンテンツマネージメントインターフェースモジュールを用いて実装され得る。システム１００の更なる詳細な記載は、図７を参照して以下に示す。
【００１９】
図２は、それぞれがネットワーク（例えば携帯電話ネットワーク）を跨いでコンテンツマネージメントシステムのサーバに接続する、３つのユーザデバイス（例えばスマートフォン）の、簡略化された例示的なネットワークを示す。システム２００はまた、コンテンツマネージメントシステム（ＣＭＳ）サーバ２０２と、３つのユーザデバイス、すなわち２２０、２３０及び２４０とを含む。ある実施形態では、ユーザデバイス２２０は、ネットワーク１  １１０を跨いでコンテンツマネージメントシステムのサーバ２０２に接続し得、ユーザデバイス２３０は、ネットワーク２  １１５を跨いでコンテンツマネージメントシステムのサーバ２０２に接続し得、そして、ユーザデバイス２４０は、ネットワーク３  １１７を跨いでコンテンツマネージメントシステムのサーバ２０２に接続し得る。これらのユーザデバイスのそれぞれは、異なるネットワーク接続を有し得ると共に、一般に異なる場所に位置し得るため、ユーザデバイス間又はユーザデバイスとコンテンツマネージメントシステムのサーバとの間の任意の相互作用は、一般的に異なるネットワーク遅延やネットワーク接続の待ち時間を有する。
【００２０】
ある実施形態では、ユーザデバイス２２０、２３０及び２４０のそれぞれは、コンテンツマネージメントシステムによって提供される対話的なアプリケーションを含み得る。それぞれデバイスに含まれるこの対話的なアプリケーションは、ユーザデバイス間に異なるタイミング条件を生じさせる。例えば、表示された３つのユーザデバイスのそれぞれが、３つのユーザデバイスの全てをメンバとして含む、仮想的に共有される空間の生成を決定した場合、あるデバイスが初めにそのユーザデバイス上に共有された仮想空間をローカルに生成し得るが、異なるユーザデバイスのリクエストがサーバに最初に到達することが発生し得る。従って、サーバは、最初に生成された共有仮想空間を有することによって、そのユーザを「信用する」。ある実施形態では、システム２００はまた、対話的な機能のセットをユーザデバイスのそれぞれに提供するために必要な帯域を維持するために、ユーザデバイスのローカルで動作するコンテンツマネージメントシステムのアプリケーションが、コンテンツマネージメントシステムと接続された状態を十分に高いレベルで維持する必要があり得ることを示している。（ｉ）生成されたオブジェクト（例えば撮影された又はアップロードされた写真）、（ｉｉ）多者間の、複数のコンテンツアイテムデータ構造、又は生成された構成物（例えばユーザが共有仮想空間を生成する）、又は、（ｉｉｉ）ユーザが、一方のオブジェクト（例えば写真）或いは共有仮想空間のいずれかと、生成され後であってサーバにより生成が既知になる前に相互作用する、多数のインスタンスが存在し得る。このようなインスタンスには、本発明の例示的な実施形態に従う様々なシステム及び方法が有効である。
【００２１】
本発明のある側面を説明するため、共有された仮想空間機能についてのローカルな相互作用は参照される。そのような機能は、「共有仮想空間を生成するシステム及び方法」と題して２０１４年２月２７日に出願された、共有に係る米国仮出願第61/945,814号に詳細に記載され、開示内容は全体として参照により取り込まれる。
【００２２】
「複数の共有仮想空間」又は単一の「共有仮想空間」として参照され得る、多者間の共有仮想空間は、複数のコンテンツアイテム及びそれらに関するメッセージを相互に共有するコンテンツマネージメントシステムのユーザの組によってアクセス可能な仮想空間に相当し得る。コンテンツマネージメントシステムは、ユーザの共有仮想空間、及び／又は全てのコンテンツアイテムとそれらのメッセージとを、ユーザアカウントと共に維持し得る。コンテンツマネージメントシステムはまた、いくつか又は全ての共有仮想空間の相互作用をサポートし得る。共有仮想空間内の複数の者は、生成者と、生成者が最初のコンテンツを共有した状態の他の者とが含まれ得る。これらの者は、共有仮想空間の「メンバ」としてときどき参照され得る。ある実施形態では、共有仮想空間は、コンテンツマネージメントシステムのユーザが１つ以上のコンテンツアイテムを共有し、又は他のユーザのコンテンツアイテムについての１つ以上のメッセージをポストしたことに応じて、自動的に生成され得る。例えば、共有リクエストは、１つ以上のコンテンツアイテムを共有するために一人以上のユーザの連絡先に送信され得る。共有リクエストが送信されたことに応じて、共有される１つ以上のコンテンツアイテムのコピーを含む、共有仮想空間が自動的に生成され得る。ある実施形態では、共有仮想空間はサーバ上に割り当てられたメモリロケーションに割り当てられ得る。ある実施形態では、共有仮想空間は、ユーザと他のユーザの両方からアクセスされ得、そして、これらのユーザのそれぞれは更なるコンテンツ（例えばコンテンツアイテム、画像及び／又はメッセージ等）を共有仮想空間に追加し得る。ある実施形態では、任意のコンテンツが共有仮想空間に追加されたときはいつでも、全てのメンバの者に通知がなされる。ある実施形態では、共有仮想空間のサービス又はアプリケーションを提供するコンテンツマネージメントシステムに登録をしていない、他の非メンバにも通知がなされ得る。通知は、インバンド（例えばコンテンツマネージメントシステム内又は関連するアプリケーション内）、アウトバンド（例えば電子メール、ＳＭＳ、ソーシャルメディアの通知又はポスト）、又はこれらの通信経路の任意の組み合わせにより、なされ得る。
【００２３】
ある実施形態では、共有仮想空間のメンバは、共有仮想空間の機能を提供するコンテンツマネージメントシステムの登録ユーザから排他的であり得る。ある実施形態では、コンテンツマネージメントシステムの未登録ユーザは、全体又は一部のいずれかについて共有仮想空間のメンバとして許可され得る。従って、コンテンツマネージメントシステムのユーザは、共有仮想空間に関する「メンバ」又は「非メンバ」であり得る。
【００２４】
ある実施形態では、共有仮想空間のメンバは共有仮想空間内の任意のコンテンツをコンテンツマネージメントシステム上のユーザアカウントにコピーし得、そして、コンテンツのコピーを、電子メール、ＳＭＳ又はソーシャルメディアへのポストを介して共有仮想空間から他の者に自由に送信することもし得る。共有仮想空間に招待された者のそれぞれは、共有仮想空間にいつでも便利にアクセスし、そして、全てのコンテンツとメンバとの相互の作用を維持すると共に容易にするように設計された、階層的なサーバとの永続的なデータ構造になり得る。ある実施形態では、共有仮想空間に追加されたコンテンツアイテムは別々の「ルームデータベース（rooms database）」にコピーされて、更に修正されないようにロックされ得る。例えば、ルームデータベース内におかれた画像は、その元の所有者が彼ら自身のユーザアカウント内の元のコンテンツアイテムをその後に修正するとしても、ロックされたままとなり得る。従って、任意のこのような修正は、共有仮想空間にコピーされたコンテンツアイテムには適用されない。コンテンツは、所定の期間、他の実施形態では不定期に、共有仮想空間内に保存され得る。
【００２５】
ある実施形態では、ユーザデバイス上でユーザによってなされた共有仮想空間に対するローカルの変更（例えばコンテンツアイテムの追加、ポスト、新しいメンバの追加、メンバの削除、他の共有仮想空間との統合など）は、当該変更がなされると直ぐにローカルに表示され得る。これは、ローカルに表示される前に、サーバに情報が伝送され、その後サーバの状態がユーザデバイスと矛盾のない状態になることを待つ必要がない場合があるために起こり得る。従って、ユーザデバイスのローカルでは、多数の共有仮想空間が生成され、様々なコンテンツアイテムがこれらに追加され、様々の者がメンバとしてこれらに追加されると共に、あらゆる情報がコンテンツマネージメントシステムのサーバに届く前に、様々な他の相互作用が発生する。これは、ユーザに対しては、相互作用が発生すると直ぐに、完了済みのタスクとして現れ得る。
【００２６】
ある実施形態では、ユーザのコンテンツとユーザの相互作用はコンテンツマネージメントシステムのサーバによって管理され得、コンテンツマネージメントシステムのクライアントアプリケーションは、通信ネットワークを介してサーバと通信し得るユーザデバイス上で動作し得る。更に、（ｉ）コンテンツの生成（例えば共有仮想空間）、（ｉｉ）ユーザアカウントや既存の共有仮想空間へのコンテンツアイテムの追加、（ｉｉｉ）コンテンツを共有仮想空間からコンテンツマネージメントシステム上のユーザアカウントにダウンロードすること、及び／又は（ｉｖ）クライアントアプリケーションとのユーザの相互作用に対する他の応答、に対するシステムのシームレスな応答を体験できるようにすることは、ユーザデバイスのユーザにとって非常に望ましい。これは、ユーザデバイス上のユーザインターフェースと備わっているローカルのクライアントソフトウェアの間の接続性は永続的である一方、備わっているクライアントソフトウェアとリモートサーバ間の接続性はしばしば断続的であり得るため、常に容易に達成できるものではない。
【００２７】
従って、ある実施形態では、コンテンツはユニークなインデックス番号又はコンテンツに割り当てられ又は関連付けられた識別子を参照して管理される。典型的に、標準的なコンテンツマネージメントシステムは、ユニークな識別子に割り当てられた各々のユーザを有し、全てのコンテンツ及びそのユーザの相互作用は、コンテンツマネージメントシステムが適切にコンテンツアイテムを彼らのアカウントに蓄積すると共に、サポートされた様々な相互作用を実装できるようにするために、ユニークな識別子を利用する。
【００２８】
ユーザがあるコンテンツの共有を初期化することによって又は既存の共有仮想空間にコンテンツを追加することによって共有仮想空間を生成するかは、前者の場合には共有がなされた場合に共有仮想空間のためのルームＩＤ（Room ID）が存在しないのに対し、後者の場合には共有仮想空間のためのルームＩＤが既に存在する場合を除いて、サーバにとっては実質的に同一である。ユーザが最初に共有仮想空間を生成した場合、ルームＩＤのためのリクエストが備えられたクライアントソフトウェアからデータネットワークを超えてコンテンツマネージメントシステムのサーバに送信され得る。クライアントアプリケーションが、ルームＩＤがサーバから受信されるまで待たなければならない場合、クライアントアプリケーションは共有仮想空間を生成することはできず、従ってルームＩＤを受信するまで共有仮想空間内にコンテンツを表示することができない。このことは、クライアントアプリケーションとサーバの接続性が断続的である場合に待ち状態を引き起こす可能性があり得る。ローカルの機能のユーザデバイス上の体験を生み出すために、解決されるべきこの機能的な問題は、ユーザが実際に求めるものに、如何に弱々しい又は断続的なデータ接続が害を与えないようにするかである。従って、ユーザがユーザインターフェースを介してリクエストを入力し、可能な範囲でローカルの機能に保存するための、ソフトウェア内のタスクを待ち行列に入れた後には、これらの行為は、サーバがまだこれらの行為を認めていない場合及び／又はリクエストを満たした処理していない場合であっても、ユーザインターフェースに反映されなければならない。
【００２９】
例示するように、オフラインであってもユーザは共有仮想空間を生成し得る。ユーザは多数の写真を撮り、共有をクリックし、及び／又は、共有仮想空間が生成されたことを示すメッセージを備えられたソフトウェアに送信して共有仮想空間に人を追加し得る。この時点では、ソフトウェアは新たな共有仮想空間が生成されたことをユーザインターフェースに伝え、平行して、新たな共有仮想空間が生成されたことをサーバと通信する。しかしながら、サーバにアクセス可能でない場合、当該ソフトウェアからの通信は配信されることはない。いうまでもなく、ユーザは、ユーザにとっての共有仮想空間が生成されたために、共有仮想空間にコメントを追加し得る。このため、共有仮想空間にコメントを表示させることが必要である。
【００３０】
従って、接続が弱々しい又は断続的であっても、ユーザは、いうまでもなく円滑でシームレスに近いローカルな体験であって、ユーザに共有仮想空間の生成が常に成功するという感覚を提供し得る体験を望み得る。ある実施形態では、ある時点でソフトウェアがメッセージをサーバに送信しても、しばらくしてから新たなポストのシミュレートされたバージョンが発生し得る。クライアントソフトウェアはローカルＩＤと新たなポストテーブル（どのポストが共有仮想空間にあるか、どの共有仮想空間があるか等を管理するテーブル）とを生成し得る。ソフトウェアは、あたかも新たな共有仮想空間が全体的に存在し、コンテンツが共有仮想空間に本当にポストされたかのように、ローカルでこれらの結果を生成し得る。サーバが応答した後には、それぞれのユーザデバイス上のシームレスな相互作用を維持するため、グローバルのルームＩＤがローカルのルームＩＤと関連付けられ、このような方法でローカルでの行為が二度又は全く実効されないことがないように、このローカルのルームＩＤはグローバルのルームＩＤによって置き換えられ得る。このため、ローカルのルームＩＤが待ち行列に入れられた指示に含まれる場合、待ち行列に入っているがまだ実行されていない指示、又は実行後の指示のいずれかにＩＤの切り替えが発生する。従って、この切り替えは、実行の最中に発生してあいまいさが生じ得ることを回避し得る。
【００３１】
他の説明の例として、ユーザは、動作しているクライアントアプリケーションを有し得る彼らのユーザデバイスで、いくつかの写真を撮影し得る。ユーザは、コンテンツマネージメントアカウントのユーザアカウントに撮影した写真をアップロードし、写真を一人以上の家族のメンバと共有し得る。しかしながら、ユーザは、ユーザとユーザの家族のメンバが有する共有仮想空間へ写真を追加しない場合がある。ある実施形態では、この新たな共有が新たな共有仮想空間を生成し得る。ある実施形態では、ユーザデバイスは、ネットワークの接続性の問題によってコンテンツマネージメントシステムのサーバに接続していない場合がある。この理由により、撮影された写真はローカルでユーザアカウントに追加されたが、サーバにアップロードされていない場合がある。撮影された写真はユーザアカウントに既に追加されているため、ローカルで共有仮想空間に追加されていない場合があり、従って、写真及び新たな共有仮想空間のいずれもローカルＩＤのみを有し得る。これらのコンテンツアイテムと共有仮想空間とのそれぞれに対するグローバルＩＤを要求するタスクと、共有仮想空間に写真を追加するタスクとは、待ち行列に追加され得、そしてローカルで実行が開始される。プロセス内のこれらの命令のいくつかが実行されている間にサーバへの接続性が復帰する場合、処理されていないタスクや二度実行されたタスク（例えば一度ローカルＩＤを参照し、二度グローバルＩＤを参照する）がないようにローカルＩＤとグローバルＩＤとの置き換えを管理する必要があり得る。
【００３２】
図３は、様々な実施形態に関して様々な待ち状態をもたらし得る、ユーザデバイス上で動作している従来的なコンテンツマネージメントシステムのアプリケーションの例示的な処理を示している。この特定のシナリオでは、ユーザが彼らのユーザデバイス上のコンテンツマネージメントシステムと相互作用することによりオブジェクト又はデータ構造を生成する方法又はシステムは、ユーザデバイスと接続したコンテンツマネージメントシステムのサーバがオブジェクト又はデータ構造の生成を認識し、オブジェクト又はデータ構造にグローバルＩＤを割り当てるまで処理をしない場合がある。
【００３３】
プロセス３００は、スタートで開始し、ユーザＡが、ユーザＡのユーザデバイスを介して写真をアップロードし、ユーザＢとユーザＣとのそれぞれと共有するものである３１０に移動する。説明目的のため、図３に図示されたアプリケーションは新規の「ルーム」機能であり、従来的なサーバベースのシステムに実装されているように表わされている。このような機能では、ユーザは、写真やビデオなどのコンテンツアイテムを一人以上の他のユーザと共有することによって、仮想空間を生成し得る。このような最初の共有が完了した後に、共有仮想空間はシステムによって生成され得る。従って、３１０では、２つの論理的なオブジェクト、すなわち（１）ユーザＡのユーザデバイスからコンテンツマネージメントシステム上の彼らのユーザアカウントにアップロードされた写真と、（２）ユーザＡが写真をユーザＢとユーザＣとに共有するとすぐにシステムによって生成された共有仮想空間とが生成され得る。従って、コンテンツマネージメントシステムによって生成され、グローバルＩＤが割り当てられた２つのオブジェクトが存在する。加えて、コンテンツマネージメントシステムは、第１のオブジェクト（例えば写真）を第２のオブジェクト（例えば共有仮想空間）に関連付ける必要があり得る。このリンクは、割り当てされたグローバルＩＤによって識別され得る共有仮想空間と関連付けられた記録に反映され得る。
【００３４】
プロセスフロー３００は、３１０から、ユーザデバイスが３１０に示したユーザの行為を処理する３２０へ移動する。この特定の実施形態ではグローバルＩＤしか存在しないものと理解されるものであるが、ユーザデバイスは、写真のためのグローバルＩＤと共有仮想空間のためのグローバルＩＤとを要求し得る。「ＡＢＣ共有仮想空間」として参照され得る、この共有仮想空間は、写真がユーザＢ及びユーザＣと共有される場合にユーザＡによって生成され得る。上述したように、これらのオブジェクト（例えば写真と共有仮想空間）の両方にグローバルＩＤが要求されるだけでなく、そのＩＤによる写真をそのＩＤによるＡＢＣ共有仮想空間に関連付けるために、命令も送信される必要がある。
【００３５】
プロセスフロー３００は、３２０から３３０へと移動する。この中で本発明との相違は、ユーザデバイスは、これらのオブジェクトが既存であるものとして扱われる前にコンテンツマネージメントシステムのサーバからグローバルＩＤが送信されるのを待たなければならず、その後にユーザデバイス上のユーザのアプリケーションに表示しなければならない。ステップ３３０では、ネットワークの遅延や接続性の問題がなければ、ユーザは何ら遅延や待ち時間を知覚しない。しかしながら、何らかの理由によってネットワーク遅延が発生した（例えばネットワークの混雑、信号がほとんど存在しない、わずかに存在する及び／又は存在しない場合のいずれかのエリアをユーザが移動している）場合には、ユーザデバイスがネットワークから切断される長い期間が存在し得る。このような例において、ステップ３３０は極めて厄介であり、ユーザは挫折して諦め得る。ユーザは数秒或いはより長い間、写真がユーザアカウントに表示される、又は共有仮想空間が存在して写真がユーザアカウントに表示され、共有仮想空間が表示されるのを待たなければならない場合がある。
【００３６】
プロセスフロー３００は、３３０から、ユーザデバイスが（ｉ）写真のため及び（ｉｉ）ＡＢＣ共有仮想空間のそれぞれのためのグローバルＩＤを受信し得る３４０に移動する。プロセスフローは、３４０から、写真が関連付けられてＡＢＣ共有仮想空間に表示されるように、（ａ）ユーザアカウント内に写真を蓄積し、（ｂ）ＡＢＣ共有仮想空間を生成し、（ｃ）ルームデータベースに写真を蓄積するように、ユーザデバイスがグローバルＩＤを使用し得る、３５０に移動し得る。プロセスフロー３００は、３５０から、ユーザデバイスがユーザＡのユーザアカウントに写真を表示し、ユーザのコンテンツマネージメントシステムのアプリケーション内にＡＢＣ共有仮想空間を表示し、そしてＡＢＣ共有仮想空間に写真を表示する、３６０に移動し得る。その後、プロセスフロー３００は終了し得る。
【００３７】
上述したように、コンテンツマネージメントシステムとの最低限の接続、弱々しい接続又は接続がないときはいつでも、ユーザはプロセスフロー３００の重大な欠点を感じ取る。図４に図示された例示的なプロセスフローは、この状況を改善するため、そして待ち状態や欠陥ためのものである。
【００３８】
図４は、様々な実施形態に従う例示的なプロセスフローを示す。プロセスフロー４００は、スタートで開始し得、ユーザＡがユーザデバイス上でユーザＭ及びユーザＮとコンテンツアイテムを共有し得る、４１０に移動し得る。ある実施形態では、ユーザＡがユーザデバイス上でユーザＭ及びユーザＮと既存のコンテンツアイテムを共有し得、又はユーザＡがユーザデバイス上でユーザＭ及びユーザＮと共有するコンテンツアイテムをアップロードし得る。このステップは、実装及び実行のためにはコンテンツマネージメントシステムによって識別される必要のある多数のオブジェクトが生成され得る、図３の３１０と類似し得る。例えば、ユーザＡは、新たなコンテンツアイテムを生成して識別子が割り当てられ得る写真をアップロードし得る。ユーザが、他のユーザ（例えばユーザＭ、ユーザＮ）と写真を共有した場合、ＩＤが割り当てられ、実行される必要のある共有仮想空間が生成され得る。実行により、共有仮想空間がコンテンツマネージメントシステム上のユーザアカウント内に現われることが分かる。或いは、ユーザが既存の写真をユーザＭ及び／又はユーザＮと共有した場合（例えばユーザアカウントに既に蓄積されていた写真）、この写真は既に、グローバルＩＤであり得るＩＤを有し得、従って、この行為によって共有仮想空間で生成される必要のある新たなＩＤはない。これは、実際にはいくつかのステップを含み得る。はじめに、共有仮想空間が生成され、ＩＤが割り当てられる（例えばルームＩＤ）。次に、（i）最初に共有仮想空間のメンバと共有したことによって、又は（ii）すでに存在する共有仮想空間をその後に共有することによって、あらゆるコンテンツアイテムが共有仮想空間に置かれ、コンテンツアイテムを変更することができないように、コンテンツアイテムのコピーが生成されて、−共有のユーザアカウント内の原本に加えて−別のデータベースに蓄積される。コンテンツアイテムの別のコピーを生成することに加えて、このコピーは、コンテンツアイテム及び共有仮想空間のメンバの全てと共有仮想空間内のメンバによるコンテンツアイテムに関するあらゆる相互作用とに関する情報を保有するレコード内の共有仮想空間に関連付けられなければならない場合がある。例えば、共有仮想空間のメンバは、（ｉ）コンテンツアイテムに関するメッセージをポストし、（ｉｉ）自身のアカウントにコンテンツアイテムをコピーし、及び／又は（ｉｉｉ）他のタスクを実行し得る。それぞれについて、含まれるオブジェクトの識別子と含まれる共有仮想空間を参照する命令がユーザデバイス上で発生し得る。
【００３９】
プロセスフロー４００は、４１０から分岐し、４２０と４２５とに同時に移動し得る。これは、ネットワークへの接続が遮断されている又は断続的である場合であっても、ユーザデバイス上のシームレスな相互作用を容易にする、本発明の例示的な実施形態に従った新規の機能を説明するものである。４２０を参照すると、ユーザデバイスは、コンテンツアイテムのためのグローバルＩＤと、４１０で生成された「ＡＭＮ共有仮想空間」のためのグローバルＩＤとを要求し得る。ある実施形態では、図４におけるステップ４２０は、図３におけるステップ３２０と実質的に類似であり、前の記載の後半が前半に適用され得る。しかしながら、４２５では、同時にかつ何ら遅延又は待ち時間がなく、ユーザデバイスはコンテンツアイテムとＡＭＮ共有仮想空間とにローカルＩＤを割り当て得る。これにより、共有仮想空間と同様、写真は、コンテンツマネージメントシステムのサーバによって正式に認識されてなかったとしても、ユーザデバイスにおいて「既存（exist）」にすることができる。さらに、この並列処理は４１０におけるユーザが行為を行うと直ぐに開始し得る。これはあらゆる遅延を回避し得、ユーザによって知覚されるシームレスなローカルの相互作用を生み出し得る。プロセスフロー４００は、４２０及び４２５から、ユーザデバイスがデータ構造をセットアップし、既存のデータ構造内のスペースを予約し、４２５において生成されたローカルＩＤのそれぞれのコピーを蓄積し、及び／又は接続性が回復した後にコンテンツマネージメントシステムのサーバから受信し得る、対応するグローバルＩＤのためのメモリを確保し得る、４３０に移動し得る。このデータ構造は、例えばルックアップテーブル、変換テーブル、データベースレコード、又は、何らかの他の便利で論理的な関連であって、高速かつ容易にグローバルＩＤ‐一度コンテンツマネージメントシステムのサーバから受信する‐と４２５において生成されたローカルＩＤとをマッチするための後続処理を可能にする論理的な関連、であり得る。
【００４０】
プロセスフロー４００は、４３０から、一方はグローバルＩＤを扱う経路と、他方はローカルＩＤを扱う経路とに再び分岐し得る。４４０では、ユーザデバイスはグローバルＩＤがコンテンツマネージメントシステムのサーバから送信されるのを待つ。ある実施形態では、図４におけるステップ４４０は、図３におけるステップ３３０と実質的に類似であり、前の記載の後半が前半に適用され得る。しかしながら、４４５と同時に、ユーザデバイスは、全てローカルＩＤを使用して、（ｉ）ユーザアカウントにコンテンツアイテムを追加し、（ｉｉ）ＡＭＮ共有仮想空間を生成し、（ｉｉｉ）ＡＭＮ共有仮想空間にコンテンツアイテムを蓄積し得る。ここに記載するようにコンテンツアイテムをユーザアカウントに追加することは、コンテンツアイテムが操作される前に、サーバがグローバルＩＤを返信するのを待たずに、コンテンツアイテムの生成の際にユーザアカウント内のコンテンツアイテムを表示することを意味する。
【００４１】
同様に、「ＡＭＮ共有仮想空間」はまた、コンテンツマネージメントシステムのサーバの観点ではまだ「既存」でなくても、クライアントアプリケーションに即時に表示され得る。ここで、留意すべき重要なことは、ユーザＡによって生成されたＡＭＮ共有仮想空間は、例えば、ユーザＡとＮとが、或いはユーザＡとＭとが場合に応じて写真を共有することにより、ユーザＭ又はユーザＮによって類似のＡＭＮ共有仮想空間が既に生成されていたとしても、ユーザＡのユーザデバイスに表示され得ることである。このシナリオでは、他の「ＡＭＮ共有仮想空間」は、コンテンツマネージメントシステムのサーバの観点では、既に存在し得る。並列のＡＭＮ共有仮想空間は、コンテンツマネージメントシステムのサーバによって、ユーザＡ、ユーザＭ及びユーザＮのユーザデバイスの１つのみが認識された又は認識される場合であっても、ユーザＡ、ユーザＭ及びユーザＮのユーザデバイスのそれぞれに表示され得、従って最終的にはグローバルＩＤが割り当てられる。
【００４２】
プロセスフロー４００は、４４０から、ユーザデバイスがコンテンツアイテムのそれぞれのためのグローバルＩＤを受信し、データ構造内のローカルＩＤのそれぞれと関連付けられる４５０に移動する。当業者が理解するように、ステップ４３０において参照されたデータ構造はあらゆるデータ構造又は階層構造に対応し得、上述したものは単なる例示である。例えば、データ構造がルックアップテーブルに対応する場合、ルックアップテーブル内のローカルＩＤのそれぞれは、関連付けられたグローバルＩＤとの対応を有し得る。これは、グローバルＩＤを要求したときに、例えばローカルＩＤ又はこれらへの参照を含むユーザデバイスによって達成され得る。従って、グローバルＩＤがサーバから返信された場合に、どのローカルＩＤが対応するかを知り得る。これは、ユーザデバイスがステップ４２０の同じリクエストを繰り返し再送信した場合、又は、サーバからの返信を受信しなかった場合に、複数のグローバルＩＤの誤った割り当てをも防ぎ得る。これは、例えば、キャッシュ等からユーザデバイスによってリクエストが再送される場合にネットワーク遅延又はユーザデバイスの障害があった場合に、障害の後に発生し得る。代わりに、例えば、（４２０において）サーバに送信されたグローバルＩＤは、サーバが冗長なリクエストをフィルタアウトすることができるように、操作又は命令番号及び／又は他のユニークな識別子を含み得る。
【００４３】
同様に、プロセスフローは、４４５から、ユーザデバイスがコンテンツアイテム又は共有仮想空間に関する、ユーザＡによって行われた全ての行為又はリクエストを、適切なローカルＩＤ（例えば、写真ＩＤ又はルームＩＤのいずれか）を用いて参照する４５５に移動する。従って、ユーザがＡは、新たに生成された共有仮想空間と同様、コンテンツアイテムと、ユーザが共有仮想空間に追加し得る他のコンテンツとの両方との操作、動作、及び／又は相互作用を継続し得る。例えば、コンテンツアイテムへのメッセージの添付、表示ランプの「ような」活性化、又は他の相互作用、及び／又は共有仮想空間のメンバでさえない他の者との共有、等のコンテンツアイテムに含まれる全ての相互作用は、コンテンツアイテムに対するローカルＩＤを用いてユーザデバイスによって参照され得る。同様に、ユーザが、ユーザアカウントにコンテンツアイテムがアップロードされているか否かに関わらず、たった今、更なるコンテンツアイテムを共有仮想空間ＡＭＮに追加することを決めた場合、コンテンツアイテムは今やローカルＩＤが（もし無ければ）付与され得る。これらのコンテンツアイテムは、４２５において割り当てられた共有仮想空間のためのローカルのルームＩＤを用いて、今や共有仮想空間ＡＭＮと関連付けられ得る。従って、ユーザデバイスとサーバがどの程度の時間の間接続していなかったかに応じて、生成され得たオブジェクトの数がどの程度であるか、及び、これらのオブジェクトとの相互作用をリクエストする、ローカルＩＤを用いた命令が全部でどの程度待ち行列に入っているか、を容易に想像することができる。
【００４４】
プロセスフロー４００は、４５０及び４５５から、今や４５０において受信したグローバルＩＤを有するユーザデバイスが、待ち行列に入っている命令のローカルＩＤのそれぞれを、なされた行為やなされたリクエストのそれぞれに関連するグローバルＩＤに置き換え得る、４６０において再び統合する。従って、ユーザＡのユーザアカウントに現れているコンテンツアイテム、コピーされたコンテンツアイテム及び関連付けられた共有仮想空間、又は共有仮想空間そのもの、を参照するように使用された全てのローカルＩＤは、ローカルの状況がサーバの状況と同期するために新たに得られたグローバルＩＤで今や置きかえられたローカルＩＤを有し得る。
【００４５】
プロセスフロー４００は、４６０から４７０に移動し得る。４７０において、プロセスは、ユーザが更にコンテンツアイテムをユーザアカウントに追加したか、或いは更なる共有をリクエストしたかを探索し得る。例えば、プロセスは、追加された更なるコンテンツアイテム、追加された共有仮想空間、及び／又は共有仮想空間に追加されたコンテンツが存在するかを決定し得る。イエスである場合、プロセスフロー４００は、４１０に戻り得る。４７０においてノーである場合、プロセスフローは終了する。
【００４６】
なお、図４におけるプロセスフロー４００は、単なる説明であって、コンテンツマネージメントシステムでＩＤ番号が割り当てられ得る、任意のコンテンツアイテム、データ構造、メッセージ又は共に用いられる相互作用に等価に適用される。
【００４７】
図５及び図６は、様々な実施形態に従う例示的なプロセスフローを示す。図５及び６に示す処理は、ユーザデバイスの接続性レベルを持続的に確認し、必要な場合にローカルＩＤを使用し、それ以外の場合はサーバがグローバルＩＤを割り当てるのを待ち、その後、適切なレベルまで接続性が復帰した場合に続行する。接続性が高い場合、ユーザデバイス上の処理は保存され、ローカルＩＤとグローバルＩＤとの対応付けの必要性は未然に取り除かれる。
【００４８】
図５を参照すると、プロセスフロー５００はスタートで開始し、ユーザＡがユーザデバイス上でローカルにコンテンツを生成する５１０に移動する。生成されたローカルのコンテンツは、任意の種類のコンテンツ又は、アップロードやコンテンツアイテムの共有、共有仮想空間の生成、共有仮想空間への人の追加、他の共有仮想空間との統合、共有仮想空間へのメッセージのポストを含む、コンテンツマネージメントシステムでサポートされる任意の行為と対応し得る。５２０において、ユーザデバイスは現在の接続性のレベルを確認し得る。この問い合わせは、５２５において図示される。ここで、プロセスは、図６に示すローカルＩＤを使用する経路と、図５のまま示される、コンテンツマネージメントシステムのサーバによって割り当てられたグローバルＩＤのみに依存する経路と、の２つの経路に分岐し得る。従って、５２５においてイエスである場合（例えば十分な接続性）、プロセス５００は、ユーザデバイスが、５１０において生成された各コンテンツアイテムのグローバルＩＤを要求する５３０に続き、その後、ユーザデバイスがサーバから送信されるグローバルＩＤを待つ５４０に続く。プロセスフロー５００は、ユーザデバイスが各コンテンツアイテムのグローバルＩＤを受信する５５０に続き、そこから、プロセスフローは、ユーザデバイスが、グローバルＩＤを用いてユーザＡのユーザアカウントにコンテンツアイテムを蓄積すると共に、任意のリクエストされた相互作用を実行する５６０に移動する。プロセスフロー５００は、５６０から、ユーザＡのユーザアカウントのコンテンツアイテム、及び／又は例えば、１つ以上の共有仮想空間当のユーザＡに関連付けられた任意の適切なデータ構造のコンテンツアイテムを、ユーザデバイスが表示し得る５７０に移動する。５７０から、プロセスフロー５００は、終了し得る。
【００４９】
なお、接続性が十分であるかについての、５２５における決定は、例えば、任意の潜在的なネットワークの接続性の問題や実際の接続性に対応する簡易な測定方法であり得る。ある実施形態では、５２５における決定は、何が十分な接続性であるかを定義するために用いられる様々なパラメータを有する複雑なアルゴリズムであり得る。これらのパラメータは、長時間の移動の平均と所定の数時間の枠を用い得る、過去の接続性及び／又はネットワーク強度を含み得るが、これらに限らない。（グローバルＩＤのみを用いた）処理の実行可能性を予測するように設計された任意のアルゴリズムを用い得る。しかしながら、望ましくないことは、５２５におけるイエスの回答であったものが、その後接続が切断され、しばらくの間来たるグローバルＩＤがないことである。この事象を防止するため、５４０では、例えば、処理はタイムアウトし得、そして、グローバルＩＤが受信できない場合には、処理は、実際に受信した場合に５３０におけるリクエストを破棄するフォローアップ信号を用いる図６の６１０に移動し得る。他の例として、ユーザデバイスが、サーバからリクエストに対する応答を受信する前に、電源を落としたり接続性を失ったりする場合に、同一のグローバルＩＤに対するサーバへの、生じ得る多数のリクエストを扱うために、任意の適切な機構が用いられ得る。
【００５０】
図５への参照を継続して、５２５における問い合わせに対する回答がノー（例えば不十分な接続性）である場合、プロセスフロー５００は６１０に続き得る。そこへの参照では、プロセッシングフロー６００は、図４のプロセスフロー４００と同様に分岐し得、６２０において、ユーザデバイスは、図５の５１０において生成されたローカルコンテンツのためのグローバルＩＤを要求し得る。同時に、６２５において、ユーザＡのユーザデバイスは、５１０におけるリクエストによって生成されたローカルコンテンツの各アイテムにローカルＩＤを割り当て得る。６２０及び６２５から、プロセスフロー６００は、ユーザデバイスがデータ構造をセットアップし、既存のデータ構造内のスペースを予約し、６２５において生成されたローカルＩＤのそれぞれのコピーを蓄積し、及び／又は受信した場合に入る、対応するグローバルＩＤのためのメモリを確保し得る６３０において統合し得る。
【００５１】
６３０の第２の側面、すなわちデータ構造は、ルックアップテーブル、関連テーブル、変換テーブル、又は、何らかの他のデータ構造であって、ユーザデバイスが、グローバルＩＤを受信した後に、各ローカルＩＤに関連付けられるグローバルＩＤを便利に見つけ得るデータ構造を含み得る。これにより、一時的なローカルＩＤを、待ち行列内の任意の未完了の命令、又はローカルで生成された、任意の未完了のコンテンツアイテムやデータ構造（例えば共有仮想空間）に対する永続的なグローバルＩＤとマッチできるようになり、ローカルＩＤがこのようなデータアイテムやデータ構造のための永続的なＩＤと関連付けられ得る。プロセスフロー６００は、６３０から、６４０と６４５にもう一度分岐し得る。６４０において、ユーザデバイスは、６２０においてなされたリクエストに応じてサーバから送信されるグローバルＩＤを待ち得る。ステップ６４５において、ユーザデバイスは、ユーザＡのユーザアカウントにローカルコンテンツを追加し得る。この後半のステップは、例えば、ユーザＡのユーザアカウントへの写真の追加、ユーザＡによって追加された共有仮想空間、ユーザＡがメンバである既存の共有仮想空間への人の追加、ユーザＡがメンバである既存の共有仮想空間へのメッセージの追加、ユーザＡのユーザアカウントから任意のコンテンツアイテムの共有等の、ユーザＡのユーザアカウントにローカルのコンテンツを追加するために、６２５において割り当てられたローカルＩＤを用いることを含み得る。
【００５２】
プロセスフロー６００は、６４０から、ユーザデバイスが各ローカルコンテンツに対するグローバルＩＤを受信して、６３０において生成されたデータ構造内のローカルＩＤとグローバルＩＤとを関連付け得る６５０に移動する。６５５において、ユーザデバイスは、適切なローカルＩＤを用いて、ユーザＡによってなされた、新たなローカルコンテンツに関する全ての行為を参照し得る。これにより、ユーザＡは、ネットワーク接続が無い場合であってもネットワーク接続があるかのように、ローカルにコンテンツマネージメントシステムのアプリケーションによってサポートされる、任意及び全てのコンテンツ又はデータ構造と相互作用することができるようになる。
【００５３】
プロセスフロー６００は、６５０及び６５５のそれぞれから、ユーザデバイスは各ローカルＩＤを、ユーザＡによってなされた又はリクエストされた行為のそれぞれの対応するグローバルＩＤに置き換え得る６６０において、再び統合し得る。６６０から、プロセスフロー６００は、問い合わせが実行されて、ユーザＡによって生成された任意の更なるローカルコンテンツがあるかを判定し得る６７０に移動する。この問い合わせは、ある実施形態では、図５の５１０においてプロセスフローが再び開始すべきかを問い合わせることと類似し得る。図５及び図６の例示的なプロセスフローは、ユーザＡによって行われている行為をユーザデバイスにおいて考慮し、従って、更なるコンテンツが生成された場合には様々なステップが繰り返され得る。６７０において、回答がイエスである場合、２つのオプションが存在する。
【００５４】
まず、プロセスフロー６００は、不十分な接続性が生じたことを想定し得る処理である６１０に戻り得る。デバイスは、５２５において不十分な接続性であることを既に判定したため、その想定が永続し、図６の処理を実行することが合理的なものとなり得る。しかしながら、接続性が回復して５２５における回答がイエスになり得る。このシナリオでは、プロセスフロー６００が回避され得、図５の処理が実行され得る。ネットワーク状態のこのような変化を捉えるため、６７０における「イエス」であるいくつか又は全てのインスタンスにおいて、５２０における問い合わせを再度行って現在の接続状態を確認し得る。ある実施形態では、プロセスフロー６００が、５２０にキックアップして接続性を確認する前に、図６のステップを継続する回数は、例えば（i）システムが設定し、（ii）ユーザが設定し、又は（iii）システムが推薦してユーザが上書きし得る。
【００５５】
６７０における回答がイエスであって、更に、システムパラメータに基づき、この時点でユーザＡのユーザデバイスの接続性を再確認することが望ましい場合、プロセスフロー６００は、図５の５２０に戻り得る。これは、図６の上において破線で示され、図５の５２０の左側へのこの破線矢印で示されている。再び、接続性レベルに応じて、図５又は図６のいずれかに示すプロセスフローが発生する。
【００５６】
当業者は、図６の６７０から図５の５２０に移動する破線矢印のオプションが実行されるかどうかは、様々な要因、或いはプロセスフローがステップ６１０から６６０を通過する繰り返しを何回行うかによることを理解する。このオプションは、例えば、（i）固定の時間制限の後、（ii）予想されるデータ通信の経路に基づく動的な時間制限の後、及び／又は（iii）様々な他のメトリクスに従って呼び出され得る。
【００５７】
図７は、様々な実施形態に従う例示的なシステムを示す。ある実施形態では、図７のシステム７００は、システム１００の要素をより細かいレベル（例えばモジュール、アプリケーション等）で表わすことを除き、図１のシステム１００と実質的に類似し得る。
【００５８】
ある実施形態では、ユーザデバイス１０２は、ユーザデバイス１０２上のコンテンツアイテムシステム１０８ａ及び１０８ｂ（まとめると１０８）内にローカルに蓄積されたコンテンツアイテム１１０ａ及び１１０ｂ（まとめると１１０）、及び／又はコンテンツマネージメントシステム１０４（例えばデータストア１１８）上に離れて蓄積されている等のコンテンツアイテムを、生成し、アクセスし、修正し、及び管理するために使用され得る。例えば、ユーザデバイス１０２ａは、コンテンツマネージメントシステム１０４のデータストア１１８に離れて蓄積されているコンテンツアイテム１１０ｂにアクセスし得、ユーザデバイス１０２ａ上のコンテンツアイテムシステム１０８ａ内にはコンテンツアイテム１１０ｂをローカルに蓄積する場合もしない場合もある。引き続きこの例では、ユーザデバイス１０２ａは、コンテンツアイテム１１０ｂを、一時的に、ユーザデバイス１０２ａ上のキャッシュ内にローカルに蓄積し、コンテンツアイテム１１０ｂの版（revisions）を生成し、コンテンツアイテム１１０ｂの版は通信されてコンテンツマネージメントシステム１０４のデータストア１１８に蓄積され得る。オプションとして、コンテンツアイテム１１０ａのローカルコピーはユーザデバイス１０２ａに蓄積され得る。ある実施形態では、データストア１１８は、コンテンツアイテムの１つ以上のコレクション１３２を含み得る。例えば、コレクション１３２は、類似する属性（例えばメタデータ）を有する、及び／又は類似のコンテンツを含む１つ以上のコンテンツアイテムを含み得る。
【００５９】
ある実施形態では、ユーザデバイス１０２は、デジタル画像及び／又はビデオを撮影し記録するためのカメラ１３８（例えば１３８ａ及び１３８ｂ）を含み得る。ユーザデバイス１０２は、画像等のコンテンツアイテムを、カメラ１３８を用いて撮影、記録、及び／又は蓄積し得る。例えば、カメラ１３８は画像を撮影及び記録し、画像をメタデータと共に蓄積し得る。メタデータは、以下の生成時のタイムスタンプ、ユーザの位置情報、方向、回転、タイトル及び／又は任意の他の属性又は撮影された画像に関連するデータを含みうるが、これらに限らない。メタデータの値は、属性１１２として、名前と値の組、タグ値の組、及び／又は任意の他のこれらの方法または組み合わせを蓄積して、メタデータとコンテンツアイテムとを関連付けてメタデータのタイプを容易に特定する。ある実施形態では、属性１１２は、これに限らないが、Ｅｘｃｈａｎｇｅａｂｌｅ  Ｉｍａｇｅ  Ｆｉｌｅ  Ｆｏｒｍａｔ（「Ｅｘｉｆ」）、ＪＰＥＧ  Ｆｉｌｅ  Ｉｎｔｅｒｃｈａｎｇｅ  Ｆｏｒｍａｔ  （Ｊｆｉｆ）、及び／又は他の標準を含む、特定の標準によって定義されたタグと値の組であり得る。
【００６０】
ある実施形態では、ユーザデバイス１０２は、時刻標準化モジュール１４６を含み得、コンテンツマネージメントシステム１０４は、時刻標準化モジュール１４８を含み得る。時刻標準化モジュール１４６（例えば１４６ａと１４６ｂ）は、コンテンツアイテムと共に蓄積される日時を標準化するために用いられ得る。時刻標準化モジュール１４６、対応する時刻標準化モジュール１４８及び／又は任意のこれらの組み合わせは、蓄積されるコンテンツアイテムの日時を標準化するために用いられる。標準化された日時は、コンテンツアイテムを、ソート、グループ化、比較の実行、基本的な数式の実行、及び／又はクラスタ形成するために用いられる。
【００６１】
ある実施形態では、ユーザデバイス１０２は、組織化モジュール１３６を含み得、コンテンツマネージメントシステム１０４は組織化モジュール１４０を含み得る。組織化モジュール１３６（例えば１３６ａと１３６ｂ）は、コンテンツアイテムをコンテンツアイテムのクラスタやコレクションに組織化するため、コンテンツアイテムを組織化して、ユーザインターフェースの表示のためのコンテンツアイテムのサンプリングを提供するため、及び／又は表示のための組織化されたコンテンツアイテムを検索するために使用され得る。組織化モジュール１３６は、任意のクラスタリングアルゴリズムを用い得る。組織化モジュール１３６は、ユーザデバイス１０２のユーザインターフェースの表示のためのコンテンツアイテムやコンテンツマネージメントシステム１０４のコンテンツアイテムを組織化するために、クラスタのための類似するコンテンツアイテムを特定するために用いられ得る。様々な類似性の規則に従う各コンテンツアイテム間の類似性の情報を具体化する１つ以上の数値的表現を生成するために、類似性の規則が定義され得る。組織化モジュール１３６は、コンテンツアイテムをクラスタ化するために、コンテンツアイテム間の類似性の参照として数値的表現を用い得る。
【００６２】
ある実施形態では、コンテンツアイテムはクラスタに組織化されて、検索要求に応じた類似のコンテンツの検索を援助し得る。例えば、組織化モジュール１３６ａは、２つの画像が類似することを特定し得、これらの画像を共に１つのクラスタにグループ化し得る。組織化モジュール１３６ａは、独立して、及び／又は対応する組織化モジュール（例えば１４０及び／又は１３６ｂ）と共同してクラスタを決定するために、コンテンツアイテムを処理し得る。ある実施形態では、組織化モジュール１３６ａは、対応する組織化モジュール（例えば１４０及び／又は１３６ｂ）と特定したクラスタのみを表示のために提供し得る。この例を続けると、クラスタを決定するためのコンテンツアイテムの処理は、新たなコンテンツアイテム及び／又は新たな類似性の規則を受け取る際に実行され得る繰り返し処理であり得る。
【００６３】
ある実施形態では、ユーザデバイス１０２ａは、分類モジュール１５０ａを含み得、一方、ユーザデバイス１０２ｂは、分類モジュール１５０ｂを含み得る（あわせると１５０）。分類モジュール１５０は、独立して、コンテンツマネージメントシステム１０４に含まれる分類モジュール１５２と組み合わせて、及び／又は任意にこれらを組み合わせて、コンテンツアイテムを分類し、修正し、及び／又は画像を分類するために、用いられ得る。例えば、分類モジュール１５０及び／又は１５２は、画像が文章を含むかを判定し、含む場合に蓄積される文章の種類を判定するために用いられ得る。コンテンツアイテムの修正は、コンテンツアイテムの表示を改善（画像内の文章の表示を修正）するために、コンテンツアイテムを訂正し、更なる変換を実行し、及び／又はコンテンツアイテムをクロップし得る。
【００６４】
ある実施形態では、ユーザデバイス１０２ａは、検索モジュール１４２ａを含み得、一方、ユーザデバイス１０２ｂは、合わせて検索モジュール１４２として参照され得る、検索モジュール１４２ｂを含み得る。コンテンツマネージメントシステム１０４は、対応する検索モジュール１４４を提供し得る。検索モジュール１４２及び１４４は、ユーザデバイス１０２及び／又はコンテンツマネージメントシステム１０４の両方に置かれたコンテンツアイテムの検索をサポート可能であり得る。１つ以上のコンテンツアイテムを要求する検索リクエストは、検索モジュール１４２及び／又は１４４によって受け取られ得る。ある実施形態では、検索は、マネージメントサービスの提供の際にコンテンツアイテムに割り当てられるメタデータ及び／又は属性を検索することによって処理され得る。例えば、コンテンツアイテムと共に蓄積されたクラスタマーカは日付によってコンテンツアイテムを発見するために用いられ得る。この特定のシナリオでは、クラスタマーカは、クラスタマーカと共に蓄積されたコンテンツアイテムの大まかな時刻、平均時間を示し得、このマーカは、特定のクラスタマーカを有するコンテンツのクラスタを検索し、検索結果を返すスピードを増加させるために用いられ得る。
【００６５】
コンテンツマネージメントシステム１０４によって管理されるコンテンツアイテム１１０は、それぞれのユーザデバイス１０２のコンテンツアイテムシステム１０８にローカルに蓄積され得、及び／又はコンテンツマネージメントシステム１０４のデータストア１１８に離れて蓄積（例えばデータストア１１８内のコンテンツアイテム１３４）され得る。コンテンツマネージメントシステム１０４は、管理するコンテンツアイテムの同期処理を提供し得る。属性１１２ａ及び１１２ｂ（合わせると１１２）または他のメタデータも、コンテンツアイテム１１０と共に蓄積され得る。例えば、特定の属性は、コンテンツマネージメントシステム１０４によって管理及び／又は同期処理されるユーザデバイス１０２にローカルに蓄積されたコンテンツアイテムを追跡するために、コンテンツアイテムと共に蓄積され得る。ある実施形態では、属性１１２は、拡張された属性、リソースフォーク、又は、コンテンツアイテムシステム１０８等のコンテンツアイテムシステムによって解釈されないコンテンツアイテムと共にメタデータを蓄積可能な任意の他の実装を用いて実装され得る。特に、属性１１２ａ及び１１２ｂは、コンテンツアイテムのためのコンテンツの識別子であり得る。例えば、コンテンツの識別子は、コンテンツアイテムを識別する、ユニーク又はほぼユニークな識別子（例えば番号や文字列）であり得る。コンテンツアイテムと共にコンテンツ識別子を蓄積することにより、コンテンツアイテムを追跡し得る。例えば、ユーザが、コンテンツアイテムを、コンテンツアイテムシステム１０８内の他の場所に階層的に移動させた場合、及び／又はコンテンツアイテムを変更した場合であっても、ユーザデバイス１０２のコンテンツアイテムシステム１０８内でコンテンツアイテムを特定し得る。コンテンツ識別子で特定されたコンテンツアイテムに対する任意の変更又は修正は、コンテンツマネージメントシステム１０４によって提供される同期及び／又はバージョン管理サービスのためにアップロード又は提供され得る。
【００６６】
スタンドアローンのコンテンツマネージメントアプリケーション１１４ａと１１４ｂ（合わせると１１４）、クライアントアプリケーション、及び／又はサードパーティアプリケーションは、ユーザデバイス１０２ａ及び１０２ｂ上でそれぞれ実行されて、ユーザがコンテンツマネージメントシステム１０４と相互作用するユーザインターフェースを提供する。コンテンツマネージメントアプリケーション１１４は、コンテンツマネージメントインターフェースモジュール１５４と共に提供される、ユーザデバイス１０２のための機能とアクセス可能なモジュールを外部に提供し得る。ウェブブラウザ１１６ａと１１６ｂ（合わせると１１６）は、コンテンツマネージメントインターフェースモジュール１５４と共に外部に提供され、コンテンツマネージメント１０４の機能を提供し得るクライアントアプリケーションのウェブページフロントエンドを表示するために用いられる。
【００６７】
コンテンツマネージメントシステム１０４は、ユーザが認証されたアカウントを使ってコンテンツを蓄積できるようにし、また、検索、修正、ブラウズ、同期及び／又は他のアカウントにコンテンツを共有するようなマネーメントタスクを実行する。コンテンツマネージメントシステム１０４の様々な実施形態は、コンテンツマネージメントインターフェースモジュール１５４、アカウントマネージメントモジュール１２０、同期モジュール１２２、コレクションモジュール１２４、共有モジュール１２６、ファイルシステム抽象化１２８、データストア１１８、及び組織化モジュール１４０を含む要素を有し得るが、これらに限らない。コンテンツマネージメントインターフェースモジュール１５４は、コンテンツマネージメントシステム１０４のサーバサイド又はバックエンドの機能／性能を外部に提供し得る。例えば、ユーザデバイス１０２の対応するユーザインターフェース（例えばスタンドアローンのアプリケーション、クライアントアプリケーション等）は、コンテンツマネージメントインターフェースモジュール１５４を用いて実行され、ユーザがコンテンツマネージメントシステム１０４によって提供される機能を実行できるようにし得る。
【００６８】
ユーザデバイス１０２に表示されるユーザインターフェースは、アカウントマネージメントモジュール１２０を用いて、ユーザがアカウントを生成し、及び／又はユーザがアカウントを使用することを認証するために用いられ得る。アカウントマネージメントモジュール１２０は、ユーザ及び／又はユーザデバイス１０２によるアカウントの使用を、ユーザ名／パスワード、デバイス識別子、及び／又は任意の他の認証方法を用いて認証する機能を提供し得る。アカウント情報１３０は、データストア１１８内でアカウントのために管理され得る。アカウント情報は、個人情報（例えば、電子メールアドレス又はユーザ名）、アカウント管理情報（例えば、「無料」や「有料」等のアカウントの種類）、使用情報（コンテンツアイテムの編集履歴）、許可された最大のストレージ空間、使用済みストレージ空間、コンテンツの蓄積場所、セキュリティ設定、個人の構成設定、コンテンツの共有データ等を含み得るが、これらに限らない。コンテンツマネージメントシステム１０４のストレージ空間の量は、予約され、分配され、確保され、蓄積され、及び／又は認証されたアカウントによりアクセスされ得る。アカウントは、データストア１１８内のそのアカウント用のコンテンツアイテム１３４及び／又はコンテンツアイテム１１０にアクセスするために、及び／又は、コンテンツアイテム１３４及び／又はコンテンツアイテム１１０を、他のアカウントから共有されたアカウントからアクセス可能にするために用いられ得る。ある実施形態では、アカウントマネージメントモジュール１２０は、コンテンツマネージメントシステム１０４の任意の数の他のモジュールと相互作用し得る。
【００６９】
ある実施形態では、コンテンツマネージメントシステム１０４のアカウントは、アカウントによって認証された１つ以上のユーザデバイス１０２から書類、テキストアイテム、音声アイテム、ビデオアイテム等のコンテンツを蓄積するために用いられ得る。コンテンツはまた、異なる振る舞いである、又はコンテンツアイテムを互いにグループ化する他のメカニズムを用いた、様々な種類のコレクションを含み得る。例えば、アカウントは、任意のユーザからアクセス可能にした公開コレクションを含み得る。ある実施形態では、公開コレクションはウェブでアクセス可能なアドレスに割り当てられ得る。このウェブでアクセス可能なアドレスへのリンクは、公開されたフォルダのコンテンツにアクセスするために用いられ得る。他の例では、アカウントは、写真及び／又はビデオを蓄積し得る写真コレクションを含み得、写真及び／又はビデオの目的に合わせた特定の属性及び行為を提供し得る。アカウントはまた、音声アイテムを再生し、他の音声に関連する行為を実行する機能を提供する、音声コレクションを含み得る。アカウントはさらに、特定の目的のコレクションを含み得る。アカウントはまた、複数のユーザアカウントとリンクし、これらのアカウントから利用可能な共有コレクション又はグループコレクションを含み得る。ある実施形態では、共有コレクションへのアクセスは、共有コレクションにアクセスすることが可能な異なるユーザに対して異なり得る。
【００７０】
コンテンツアイテム１１０及び／又はコンテンツアイテム１３４は、データストア１１８に蓄積され得る。ある実施形態では、データストア１１８は、ストレージデバイス、複数のストレージデバイス、又はサーバであり得る。或いは、データストア１１８は、１つ以上の通信ネットワークを介してアクセス可能なクラウドストレージプロバイダ又はネットワークストレージであり得る。コンテンツマネージメントシステム１０４は、コンテンツアイテムのシステム抽象化１２８（例えば、コンテンツアイテムのシステムデータベース抽象化レイヤ）を用いて、複雑さや詳細をユーザデバイス１０２から見えないようにして、コンテンツマネージメントシステム１０４によって蓄積されたコンテンツアイテムがどこにあるのかをユーザデバイス１０２が正確に知る必要がないようにし得る。実施形態は、ユーザデバイス１０２に現れるように、コンテンツアイテムを同一のコレクションに階層的に蓄積し得る。或いは、コンテンツマネージメントシステム１０４は、様々な順番、配置、及び／又は階層でコンテンツアイテムを蓄積し得る。コンテンツマネージメントシステム１４０は、コンテンツアイテムを、ネットワークアクセス可能ストレージ（ＳＡＮ）デバイス、ｒｅｄｕｎｄａｎｔ  ａｒｒａｙ  ｏｆ  ｉｎｅｘｐｅｎｓｉｖｅ  ｄｉｓｋｓ（ＲＡＩＤ）等に蓄積し得る。コンテンツマネージメントシステム１０４は、コンテンツアイテムを、ＦＡＴ、ＦＡＴ３２、ＮＴＦＳ、ＥＸＴ２、ＥＸＴ３、ＥＸＴ４、ＲｅｉｓｅｒＦＳ、ＢＴＲＦＳ等の１つ以上のパーティションタイプを用いて蓄積し得る。
【００７１】
データストア１１８はまた、コンテンツアイテム、コンテンツアイテムの種類、及び様々なアカウント、フォルダ、コレクション、又はグループとのコンテンツアイテムの関係を表すメタデータを蓄積し得る。このコンテンツアイテムのためのメタデータは、コンテンツアイテムの一部として、及び／又は別々に蓄積され得る。メタデータは、オブジェクト指向データベース、リレーショナルデータベース、コンテンツアイテムシステム、又は任意の他のデータのコレクションに蓄積され得る。ある実施形態では、データストア１１８に蓄積された各コンテンツアイテムは、システム全体にわたってユニークな識別子が割り当てられ得る。
【００７２】
ある実施形態では、データストア１１８は、コンテンツアイテムの複製やコンテンツアイテムのチャンクを特定することにより、要求されるストレージ空間の量を低下させ得る。複数のコピーを蓄積する代わりに、データストア１１８は、コンテンツアイテム１３４の１つのコピーを蓄積し、１つのコピーと複製をつなぐためのポインタや他の機構を使用し得る。同様に、データストア１１８は、より効率的にコンテンツアイテム１３４を蓄積すると共に、コンテンツアイテムの変化、コンテンツアイテムの異なるバージョン（バージョンツリーの分岐を含む）、及び変更履歴を追跡するコンテンツアイテムバージョン管理を用いることによって、アンドゥ（Undo）操作の機能を提供し得る。変更履歴は、元のコンテンツアイテムのバージョンにいつ適用したか、変更されたコンテンツアイテムのバージョンをいつ生成したかの変更の組を含み得る。
【００７３】
コンテンツマネージメントシステム１０４は、１つ以上のユーザデバイス１０２からのコンテンツの自動同期処理をサポートするように構成され得る。同期処理は、プラットフォーム非依存であり得る。すなわち、コンテンツは、種類、機能、オペレーティングシステム等の異なる、複数のユーザデバイス１０２にわたって同期処理され得る。例えば、ユーザデバイス１０２ａは、コンテンツマネージメントシステム１０４の同期モジュール１２２を介して、ユーザデバイス１０２のコンテンツアイテムシステム１０８内のコンテンツを、ユーザアカウントに関連付けられたコンテンツと同期するクライアントソフトウェアを含み得る。ある場合では、クライアントソフトウェアは、新規の、削除された、修正された、コピーされた又は移動されたコンテンツアイテムやフォルダ等のような、指定されたコレクション及びそのサブコレクション内のコンテンツに対する任意の変更と同期し得る。既存のコンテンツマネージメントシステムと結合するクライアントソフトウェアのある例では、ユーザはローカルフォルダのコンテンツを直接操作し得る一方で、バックグラウンドプロセスが変更のためにローカルコンテンツを監視し、コンテンツマネージメントシステム１０４に変更を同期する。ある実施形態では、バックグラウンドプロセスは、コンテンツマネージメントシステム１０４において更新されたコンテンツを特定し、ローカルコレクションに変更を同期する。クライアントソフトウェアは、同期処理の動作の通知を提供し得、コンテンツマネージメントシステムのアプリケーション内でコンテンツ状態の表示を直接提供し得る。ある実施形態では、ユーザデバイス１０２は利用可能なネットワーク接続を有し得ない。このシナリオでは、クライアントソフトウェアは、コンテンツアイテムの変更に対してリンクされたコレクションを監視し、ネットワーク接続が可能になった際のコンテンツマネージメントシステム１０４への後の同期のために、これらの変更を待ち行列に入れ得る。同様に、ユーザは、コンテンツマネージメントシステム１０４との同期を手動で停止又は一時停止し得る。
【００７４】
ユーザはまた、コンテンツマネージメントインターフェースモジュール１５４によって生成及び提供されたウェブインターフェースを介してコンテンツを視認し又は操作し得る。例えば、ユーザはコンテンツマネージメントシステム１０４によって提供されたウェブアドレスへウェブブラウザ内で移動し得る。コンテンツアイテムの新たなバージョンをアップロードするなどの、ウェブインターフェースを介してなされたデータストア１１８のコンテンツへの変更や更新は、ユーザアカウントに関連付けられた他のユーザデバイス１０２へ逆に伝達され得る。例えば、複数のユーザデバイス１０２のそれぞれはそのクライアントソフトウェアを用いて、１つのアカウントと関連付けられており、アカウント内のコンテンツアイテムはユーザデバイス１０２のそれぞれとの間で同期し得る。
【００７５】
コンテンツマネージメントシステム１０４は、コンテンツ及び／又はコンテンツのコレクションの公開又は非公開による共有を管理するための共有モジュール１２６を含み得る。共有モジュール１２６は、独立した共有、又はユーザデバイス１０２ａにある対応する共有モジュール１５２ａ及びユーザデバイス１０２ｂにある対応する共有モジュール１５２ｂ（合わせると共有モジュール１５２）と共同にした共有を管理し得る。公開によるコンテンツの共有は、コンテンツアイテム及び／又はコレクションを、コンテンツマネージメントシステム１０４を用いたネットワーク通信において任意のデバイスからアクセス可能にすることを含み得る。非公開によるコンテンツの共有は、データストア１１８内のコンテンツアイテム及び／又はコレクションを、２つ以上のユーザアカウントと結びつけて、各ユーザアカウントがコンテンツへアクセス可能にすることを含み得る。この共有は、プラットフォーム非依存で実行され得る。すなわち、コンテンツは、種類、機能、オペレーティングシステム等の異なる、複数のユーザデバイス１０２にわたって共有され得る。例えば、１つ以上の共有リンクが、共有されたコンテンツアイテムにアクセスするためにユーザ又はユーザの連絡先に提供され得る。コンテンツはまた、異なるユーザアカウントの種類にわたって共有され得る。特に、共有モジュール１２６がコレクションモジュール１２４と共に用いられることにより、仮想的なコレクションを他のユーザ又はユーザアカウントと共有することができ得る。仮想コレクションは、ユーザデバイス１０２のコンテンツアイテムシステム１０８内の様々な場所に蓄積され得る、及び／又はコンテンツマネージメントシステム１０４に離れて蓄積され得るコンテンツ識別子のコレクションであり得る。
【００７６】
ある実施形態では、コンテンツマネージメントシステムを用いた、アカウントのための仮想コレクションは、コンテンツアイテムのための１つ以上の識別子のコレクションに対応し得る（例えば、ストレージのコンテンツアイテムを特定する）。仮想コレクションは、コレクションモジュール１２４を用いて、コンテンツマネージメントシステムによって蓄積され及び／又は管理された既存のコンテンツアイテムから選択され、データストレージにある既存のコンテンツアイテムと仮想コレクションを関連付ける（例えば、蓄積場所、コンテンツ識別子、又は蓄積されたコンテンツアイテムのアドレスを関連付ける）ことにより生成され得る。既存のコンテンツアイテムと仮想コレクションを関連付けることにより、コンテンツアイテムは、コンテンツアイテムをコレクション内に置くために、データストレージ内の他の場所にコンテンツアイテムを蓄積する（例えばコンテンツアイテムをディレクトリにコピー及びペーストする）必要がない仮想コレクションの一部として指定され得る。
【００７７】
ある実施形態では、コンテンツマネージメントシステム１０４は、各エントリや行がデータストア１１８の各コンテンツアイテムの場所を特定する、コンテンツアイテムのためのコンテンツディレクトリ又はデータベーステーブル／エントリを管理するように構成され得る。ある実施形態では、ユニーク又はほぼユニークな識別子がデータストア１１８に蓄積される各コンテンツアイテムのために蓄積され得る。
【００７８】
ある実施形態では、メタデータが各コンテンツアイテムのために蓄積され得る。例えば、メタデータは、コンテンツアイテムを特定するために用いられるコンテンツのパスを含み得る。コンテンツのパスは、コンテンツアイテムの名前と、コンテンツアイテムに関連付けられたコンテンツアイテムの階層（例えば、ユーザデバイス１０２内のローカルな蓄積に対するパス）とを含み得る。コンテンツマネージメントシステム１０４は、コンテンツのパスを使用して、従来的な階層的なビューを用いたユーザインターフェースに、適切なコンテンツアイテムの階層でコンテンツアイテムを表示し得る。データストア１１８内のコンテンツアイテムの場所を特定するコンテンツのポインタもまた、コンテンツ識別子と共に蓄積され得る。例えば、コンテンツのポインタは、メモリ内のコンテンツアイテムの正確な蓄積アドレスを含み得る。ある実施形態では、コンテンツのポインタは、そのそれぞれがコンテンツアイテムの一部を含む複数の場所を指し示し得る。
【００７９】
コンテンツのパス及びコンテンツのポインタに加えて、コンテンツアイテムのエントリ／コンテンツアイテムデータベースのデータベーステーブルの行は、コンテンツアイテムへアクセス可能なユーザアカウントを特定するユーザアカウント識別子を含み得る。ある実施形態では、複数のユーザアカウント識別子は、コンテンツアイテムが複数のユーザアカウントにわたって共有されたことを特定する１つのコンテンツエントリと関連付けられ得る。
【００８０】
非公開によりコンテンツアイテムを共有するため、共有モジュール１２６は、コンテンツアイテムと関連付けられたコンテンツエントリ又はデータベーステーブルの行にユーザアカウント識別子を追加するように構成され得、これにより、コンテンツアイテムへの追加されたユーザアカウントのアクセスを登録する。共有モジュール１２６はまた、コンテンツアイテムへのユーザアカウントのアクセスを制限するため、コンテンツエントリ又はデータベーステーブルの行からユーザアカウント識別子を削除するように構成され得る。共有モジュール１２６はまた、仮想コレクションのためのデータベーステーブルへのユーザアカウントの追加又は削除に用いられ得る。
【００８１】
公開によりコンテンツを共有する場合、共有モジュール１２６は、任意のブラウザが何らかの認証を要することなく、コンテンツマネージメントシステム１０４へのアクセスを可能にする、ｕｎｉｆｏｒｍ ｒｅｓｏｕｒｃｅ ｌｏｃａｔｏｒ（「ＵＲＬ」）等のカスタムネットワークアドレスを生成するように構成され得る。これを実現するため、共有モジュール１２６は、要求されたコンテンツアイテムを適切に特定して返信するために後に用いられ得る、生成されたＵＲＬにコンテンツ識別子を含むように構成され得る。例えば、共有モジュール１２６は、生成されたＵＲＬにユーザアカウント識別子とコンテンツのパスを含むように構成され得る。ＵＲＬの選択のうえで、ＵＲＬに含まれるコンテンツ識別子のデータは、コンテンツ識別子のデータを受信して適切なコンテンツエントリを特定し、このコンテンツエントリに関連付けられたコンテンツアイテムを返信し得る、コンテンツマネージメントシステム１０４に送信され得る。
【００８２】
公開により仮想コレクションを共有するため、共有モジュール１２６は、任意のブラウザが何らかの認証を要することなく、コンテンツマネージメントシステム１００へのアクセスを可能にする、ｕｎｉｆｏｒｍ ｒｅｓｏｕｒｃｅ ｌｏｃａｔｏｒ（「ＵＲＬ」）等のカスタムネットワークアドレスを生成するように構成され得る。これを実現するため、共有モジュール１２６は、要求されたコンテンツアイテムを適切に特定して返信するために後に用いられ得る、生成されたＵＲＬにコレクション識別子を含むように構成され得る。例えば、共有モジュール１２６は、生成されたＵＲＬにユーザアカウント識別子とコレクション識別子を含むように構成され得る。ＵＲＬの選択のうえで、ＵＲＬに含まれるコンテンツ識別子のデータは、コンテンツ識別子のデータを受信して適切なコンテンツエントリ又はデータベースの行を特定し、このコンテンツエントリ又はデータベースの行に関連付けられたコンテンツアイテムを返信し得る、コンテンツマネージメントシステム１０４に送信され得る。
【００８３】
ＵＲＬの生成に加えて、共有モジュール１２６はまた、コンテンツアイテムへのＵＲＬが生成されたことを記録するように構成され得る。ある実施形態では、コンテンツアイテムに関連付けられたコンテンツエントリは、コンテンツアイテムへのＵＲＬが生成されたかを示すＵＲＬフラグを含み得る。例えば、ＵＲＬフラグは、最初に０又は「偽」が設定される二値であり得、コンテンツアイテムへのＵＲＬが生成されていないことを示し得る。共有モジュール１２６は、コンテンツアイテムへのＵＲＬが生成された後にフラグの値を１又は「真」に変更するように構成され得る。
【００８４】
ある実施形態では、共有モジュール１２６はまた、生成されたＵＲＬを非活性化するように構成され得る。例えば、各コンテンツエントリもまた、生成されたＵＲＬからの要求に応じてコンテンツが返信されるべきかを示すＵＲＬ活性フラグを含み得る。例えば、共有モジュール１２６は、ＵＲＬ活性フラグが１又は「真」に設定されている場合に生成されたリンクによって要求されたコンテンツアイテムのみを返信するように構成され得る。ＵＲＬ活性フラグの値又は二値の変更は、ＵＲＬが生成されたコンテンツアイテム又はコレクションへのアクセスを容易に制限し得る。これにより、ユーザは、コンテンツアイテムを移動したり生成されたＵＲＬを削除したりする必要なく、共有コンテンツへのアクセスを制限することができる。同様に、共有モジュール１２６は、ＵＲＬ活性フラグの値を１又は「真」に再び変更することによりＵＲＬを再活性化し得る。従って、ユーザは、新たなＵＲＬを生成する必要ななくコンテンツアイテムへのアクセスを容易に回復させる。
【００８５】
例示的なシステム
本発明の例示的な実施形態では、Ｃ、Ｃ＋＋、Ｊａｖａ（登録商標）、ＪａｖａＳｃｒｉｐｔ（登録商標）、Ｐｙｔｈｏｎ、Ｒｕｂｙ、ＣｏｆｆｅｅＳｃｒｉｐｔ、ａｓｓｅｍｂｌｙ  ｌａｎｇｕａｇｅ等の任意の適切なプログラミング言語を用いて特定の実施形態のルーチンを実装し得る。手続型又はオブジェクト指向等の異なるプログラミング技術が用いられ得る。ルーチンは、１つの処理デバイス又は複数のプロセッサ上で実行し得る。ステップ、操作、コンピュータ処理は特定の順番で表され得るが、この順番は異なる特定の実施形態において変更され得る。ある特定の実施形態では、本明細書において連続的に示された複数のステップは、同時に実行され得る。
【００８６】
特定の実施形態は、命令実行システム、装置、システム又はデバイスと共に使用するためのコンピュータ可読ストレージデバイス又は非一時的なコンピュータ可読媒体に実装され得る。特定の実施形態は、ソフトウェア又はハードウェア又は両方の組み合わせの制御ロジックの形式で実装され得る。この制御ロジックは、１つ以上のプロセッサで実行されたときに、特定の実施形態に記載されたものを実行するために動作可能であり得る。
【００８７】
特定の実施形態は、プログラムされた汎用デジタルコンピュータを用いて、特定用途向け集積回路、プログラマブルロジックデバイス、ＦＰＧＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙｓ）、光、化学、バイオ、量子又はナノ加工のシステム、コンポーネント及び機構により実装され得る。一般に、特定の実施形態の機能は、この分野で知られるあらゆる手段により実現され得る。分散化、ネットワーク化されたシステム、コンポーネント、及び／又は回路が用いられ得る。データの通信又は伝送は有線、無線又は任意の他の手段によりなされ得る。
【００８８】
用例／図に図示された要素の１つ以上は、より分割された又は統合された方法で、又は、削除され又はある場合に動作しないものとして、特定のアプリケーションに従って有用なものとして扱われて、実装され得る。ストレージデバイス等の機械可読媒体に蓄積され得るプログラムやコードを実装して、上述した任意の方法をコンピュータに実行させることは、思想及びスコープの範囲内であり得る。
【００８９】
この中の記載及び以下の請求項のあらゆる箇所で用いられるように、「ａ」、「ａｎ」及び「ｔｈｅ」はコンテキストが明示的に述べない限り複数の参照を含む。また、この中の記載及び以下の請求項のあらゆる箇所で用いられるように、「ｉｎ」の意味はコンテキストが明示的に述べない限り「ｉｎ」及び「ｏｎ」を含む。
【００９０】
仮想的な状態を管理するシステム及び方法を提供するための方法が記載されたが、本発明の思想及びスコープから乖離することなく多くの変更がなされ得ることが理解されるべきである。この分野における当業者から見てクレームされた主題から実質的でない変更、知られていないもの又は後に考案されたものは、請求項のスコープと均等であると想定される。従って、この分野の当業者に現在明らかな代用物又は後に知られたものは、定義された要素のスコープ内であると定義され得る。本発明の記載された実施形態は、限定では無く説明の目的のために示されたものである。
【図１】
2016529634.tif 000003
【図２】
2016529634.tif 000004
【図３】
2016529634.tif 000005
【図４】
2016529634.tif 000006
【図５】
2016529634.tif 000007
【図６】
2016529634.tif 000008
【図７】
2016529634.tif 000009
【手続補正書】
【提出日】平成28年2月29日(2016.2.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
方法であって、
ユーザデバイスにおいて、コンテンツマネージメントシステムのユーザアカウントにコンテンツアイテムを追加するための第１のリクエストを受信する工程と、 
コンテンツアイテムをユーザアカウントに追加する要求と前記コンテンツアイテムに関連付けるグローバルＩＤの要求とを含む第２のリクエストを、前記コンテンツマネージメントシステムに提供する工程と、 
前記ユーザデバイスにおいて、前記コンテンツアイテムにローカルＩＤを割り当てる工程と、
前記コンテンツアイテムになされた１つ以上の行為を、前記ローカルＩＤを用いて参照する工程と、
前記コンテンツアイテムに関連付けられた前記グローバルＩＤを、前記コンテンツマネージメントシステムから受信する工程と、 
前記グローバルＩＤを受信したことに応じて、前記グローバルＩＤを前記ローカルＩＤとデータ構造内に蓄積する工程と、
操作の待ち行列内の１つ以上の未完了の操作と、前記ユーザデバイスと前記コンテンツマネージメントシステムとの間の前記コンテンツアイテムの状態を保存するための、前記ユーザデバイスに蓄積される１つ以上のデータ構造とを参照して、前記ローカルＩＤを前記グローバルＩＤに置き換える工程と、を含むことを特徴とする方法。
【請求項２】
前記コンテンツアイテムは、前記ユーザアカウントにアップロードされた画像、ユーザの一人以上の連絡先との画像の共有、既存の共有仮想空間に追加された画像、既存の共有仮想空間に追加されたメッセージ、又は既存の共有仮想空間のメンバへのインバンドのメッセージ、の１つを含む、ことを特徴とする請求項１に記載の方法。
【請求項３】
前記データ構造は、ローカルＩＤからグローバルＩＤを参照する関連を含む、ことを特徴とする請求項１に記載の方法。
【請求項４】
前記関連は、ルックアップテーブル、変換テーブル、又はデータベースレコードの１つ以上を含む、ことを特徴とする請求項３に記載の方法。
【請求項５】
前記第２のリクエストを提供する工程と、前記ローカルＩＤを前記コンテンツアイテムに割り当てる工程とは、前記ユーザデバイスで同時に発生する、ことを特徴とする請求項１に記載の方法。
【請求項６】
前記コンテンツアイテムは、前記ユーザデバイスにローカルに存在する既存の共有仮想空間に追加された画像を含む、ことを特徴とする請求項１に記載の方法。
【請求項７】
前記ユーザデバイスと前記コンテンツマネージメントシステムとの間の接続性を、１つ以上の接続性パラメータに基づいて判定する工程を更に含む、ことを特徴とする請求項１に記載の方法。
【請求項８】
前記グローバルＩＤを前記ローカルＩＤと前記データ構造内に蓄積する工程と、前記ローカルＩＤを前記グローバルＩＤで置き換える工程は、
前記コンテンツマネージメントシステムから前記コンテンツアイテムのためのグローバルＩＤを受信した後に可能な限り即時に、
前記グローバルＩＤを受信してから決められた時刻制限の経過後に、
決められた数のグローバルＩＤを受信した後に、又は、
前記ローカルＩＤが割り当てられた前記コンテンツアイテムに関する行為に基づいて、実行される、ことを特徴とする請求項１に記載の方法。
【請求項９】
重複したグローバルＩＤが異なるコンテンツアイテムに割り当てられることを回避するために確認する工程を更に含む、ことを特徴とする請求項１に記載の方法。
【請求項１０】
前記確認する工程は、前記コンテンツマネージメントシステムのサーバに、前記ローカルＩＤを前記グローバルＩＤのリクエストと共に送信する工程を更に含む、ことを特徴とする請求項９に記載の方法。
【請求項１１】
ユーザデバイスの少なくとも１つのプロセッサによって実行されたときに、前記ユーザデバイスに、請求項１から１０のいずれか１項に記載の方法の各工程を実行させる命令を含むコンピュータプログラム。
【請求項１２】
システムであって、
メモリと、
通信回路と、
ディスプレイと、
少なくとも１つのプロセッサであって、
コンテンツマネージメントシステムのユーザアカウントにコンテンツアイテムを追加するための第１のリクエストを受信し、
コンテンツアイテムをユーザアカウントに追加する要求と前記コンテンツアイテムに関連付けるグローバルＩＤの要求とを含む第２のリクエストを、前記コンテンツマネージメントシステムに提供し、 
前記コンテンツアイテムにローカルＩＤを割り当て、
前記コンテンツアイテムになされた１つ以上の行為を、前記ローカルＩＤを用いて参照し、
前記グローバルＩＤを受信したことに応じて、前記グローバルＩＤを前記ローカルＩＤとデータ構造内に蓄積する、
操作の待ち行列内の１つ以上の未完了の操作と、前記システムと前記コンテンツマネージメントシステムとの間の前記コンテンツアイテムの状態を保存するための、前記システムに蓄積される１つ以上のデータ構造とを参照して、前記ローカルＩＤを前記グローバルＩＤに置き換える、ように動作可能な前記１つ以上のプロセッサと、を含む、ことを特徴とするシステム。
【請求項１３】
前記コンテンツアイテムは、
前記コンテンツマネージメントシステムの前記ユーザアカウントにアップロードされた画像と、
前記ユーザアカウントと関連付けられた少なくとも一人のユーザの連絡先との画像の共有と、
前記コンテンツマネージメントシステムにおける既存の共有仮想空間に追加された画像と、
前記コンテンツマネージメントシステムにおける既存の共有仮想空間に追加されたメッセージと、
前記コンテンツマネージメントシステムにおける既存の共有仮想空間のメンバへのインバンドのメッセージ、の１つ以上を含む、ことを特徴とする請求項１２に記載のシステム。
【請求項１４】
前記コンテンツマネージメントシステムにおける前記既存の共有仮想空間は、前記システムのローカルに存在する共有仮想空間を含む、ことを特徴とする請求項１３に記載のシステム。
【請求項１５】
前記データ構造は、ローカルＩＤからグローバルＩＤを参照する関連を含む、ことを特徴とする請求項１２に記載のシステム。
【請求項１６】
前記蓄積された関連と、前記ローカルＩＤの前記グローバルＩＤとの置き換えは、
前記グローバルＩＤを受信した後に可能な限り即時に、
前記グローバルＩＤを受信したときから決められた時刻制限の経過後に、
決められた数のグローバルＩＤを、前記システムによって受信した後に、又は、
前記ローカルＩＤが割り当てられた前記少なくとも１つのコンテンツアイテムに関連する行為に基づいて実行される、ことを特徴とする請求項１２に記載のシステム。
【請求項１７】
前記少なくとも１つのプロセッサは、
前記第１のリクエストに応じて、前記コンテンツアイテムの前記ローカルＩＤを生成し、
ユーザが遅延を知覚することなく前記コンテンツアイテムを、前記ディスプレイに表示する、ように更に動作可能である、ことを特徴とする請求項１２に記載のシステム。
【請求項１８】
システムであって、
ユーザデバイスにおいて、コンテンツマネージメントシステムのユーザアカウントにコンテンツアイテムを追加する第１のリクエストを受信する手段と、 
コンテンツアイテムをユーザアカウントに追加する要求と前記コンテンツアイテムに関連付けるグローバルＩＤの要求とを含む第２のリクエストを、前記コンテンツマネージメントシステムに提供する手段と、 
前記ユーザデバイスにおいて、前記コンテンツアイテムにローカルＩＤを割り当てる手段と、 
前記コンテンツアイテムになされた１つ以上の行為を、前記ローカルＩＤを用いて参照する手段と、
前記コンテンツアイテムに関連付けられた前記グローバルＩＤを、前記コンテンツマネージメントシステムから受信する手段と、 
前記グローバルＩＤを受信したことに応じて、前記グローバルＩＤを前記ローカルＩＤとデータ構造内に蓄積する手段と、
操作の待ち行列内の１つ以上の未完了の操作と、前記ユーザデバイスと前記コンテンツマネージメントシステムとの間の前記コンテンツアイテムの状態を保存するための、前記ユーザデバイスに蓄積される１つ以上のデータ構造とを参照して、前記ローカルＩＤを前記グローバルＩＤに置き換える手段と、を含むことを特徴とするシステム。
【請求項１９】
前記コンテンツアイテムは、前記ユーザアカウントにアップロードされた画像、ユーザの一人以上の連絡先との画像の共有、既存の共有仮想空間に追加された画像、既存の共有仮想空間に追加されたメッセージ、又は既存の共有仮想空間のメンバへのインバンドのメッセージ、の１つを含む、ことを特徴とする請求項１８に記載のシステム。
【請求項２０】
前記コンテンツアイテムは、前記ユーザデバイスにローカルに存在する既存の共有仮想空間に追加された画像を含む、ことを特徴とする請求項１８に記載のシステム。
【請求項２１】
前記第２のリクエストを提供し、前記ユーザデバイスで同時に、前記ローカルＩＤを前記コンテンツアイテムに割り当てる手段を更に有する、ことを特徴とする請求項１８に記載のシステム。
【国際調査報告】
2016529634.tif 000010
2016529634.tif 000011
2016529634.tif 000012