(57)【要約】  コンテンツ管理システム上のコンテンツアイテムが、生成される共有リンクを用いて共有されうる。共有リンクは、コンテンツアイテムが認証無しでアクセスされるようなユニフォーム・リソース・ロケータ（ＵＲＬ）などのカスタムネットワークアドレスであってもよい。共有インデックス及びコンテンツアイテムのコンテンツパスが、共有リンクによって開始されるリクエストに従って、コンテンツを識別するために使用される共有インデックスでリストされうる。コンテンツ管理システムは、コンテンツアイテムを共有することを望むユーザ共有入力を受け付けると、コンテンツアイテムにコンテンツリンクを生成することができる。或いは、いくつかの実施形態において、共有リンクがコンテンツ管理システムによって予め生成され、クライアントデバイスに格納されうる。共有リンクは、ユーザによってアクセス可能なクリップボードなどの、クライアントデバイス上のデータバッファに直接的に格納されうる。
2016516233.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツ管理サーバによって、該コンテンツ管理サーバへ第１のコンテンツアイテムリクエストを送信するように構成される第１の共有リンクを生成する工程と、
前記コンテンツ管理サーバによって、前記第１の共有リンクを識別する、共有インデックスの第１の新たなエントリを作成する工程と、
前記コンテンツ管理サーバによって、前記コンテンツ管理サーバとネットワーク通信で第１のクライアントデバイスへ、前記第１の共有リンクを送信する工程と、
前記コンテンツ管理サーバによって、前記第１のクライアントデバイスからの第１の共有リクエストであって、前記第１の共有リンクと、第１のコンテンツアイテムの位置を識別する第１のコンテンツパスとを識別する前記第１の共有リクエストを受信する工程と、
前記コンテンツ管理サーバによって、前記第１のコンテンツアイテムの位置を識別する前記第１のコンテンツパスを含む、前記共有インデックスの前記第１の新たなエントリを更新する工程と
を含むことを特徴とする方法。
【請求項２】
前記第１の共有リクエストは、前記第１のクライアントデバイスが前記第１のコンテンツアイテムを共有する第１の共有入力を受信すると、前記第１のクライアントデバイスによって送信されることを特徴とする請求項１に記載の方法。
【請求項３】
前記第１のコンテンツアイテムが前記コンテンツ管理サーバで利用可能でない場合に、前記第１のクライアントデバイスから前記第１のコンテンツアイテムを受信する工程と、
前記第１のコンテンツパスによって識別される位置に前記第１のコンテンツアイテムを格納する工程と
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記第１の共有リンクを識別し、前記第１の共有リンクの選択に応じて第２のクライアントデバイスによって送信される前記第１のコンテンツアイテムのリクエストを、前記第２のクライアントデバイスから受信する工程と、
前記第１のコンテンツアイテムのリクエストによって識別される前記第１の共有リンクに基づき、前記共有インデックスを検索する工程と、
前記第１の共有リンクを識別する前記第１の新たなエントリを識別する工程と、
前記第１の新たなエントリに含まれる前記第１のコンテンツパスによって識別される前記位置に位置付けられる前記第１のコンテンツアイテムを、前記第２のクライアントデバイスへ返す工程と
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記コンテンツ管理システムへ第２のコンテンツアイテムを送信するように構成される第２の共有リンクを生成する工程と、
前記第２の共有リンクを識別する、前記共有インデックスの第２の新たなエントリを作成する工程と、
前記第１のクライアントデバイスへ前記第２の共有リンクを送信する工程と
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項６】
第２の共有リンクを識別し、前記第２の共有リンクの選択に応じて第２のクライアントデバイスによって送信されるコンテンツアイテムのリクエストを、前記第２のクライアントデバイスから受信する工程と、
前記第２のコンテンツアイテムのリクエストによって識別される前記第２の共有リンクに基づき、前記共有インデックスを検索する工程と、
前記第２の共有リンクを識別する第２の新たなエントリを識別する工程と、
前記第２の共有リンクに関連付けられる第２のコンテンツアイテムの位置を識別する第２のコンテンツパスを前記第２の新たなエントリが含まないかを判定する工程と、
前記第２のコンテンツアイテムが利用可能でないことを前記第２のクライアントデバイスへ通知する工程と
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記第２のコンテンツアイテムを前記第１のクライアントデバイスから受信する工程と、
前記第２のコンテンツパスによって識別される前記位置に前記第２のコンテンツアイテムを格納する工程と、
前記第２の共有リンクを識別し、前記第２の共有リンクの選択に応じて前記第２のクライアントデバイスによって送信される前記第２のコンテンツアイテムのリクエストを、前記第２のクライアントデバイスから受信する工程と、
前記第２のコンテンツアイテムのリクエストによって識別される前記第２の共有リンクに基づき、前記共有インデックスを検索する工程と、
前記第２の共有リンクを識別する前記第２の新たなエントリを識別する工程と、
前記第２の新たなエントリに含まれる前記第２のコンテンツパスによって識別される前記位置に位置付けられる前記第２のコンテンツアイテムを前記第２のクライアントデバイスへ返す工程と
をさらに含むことを特徴とする請求項６に記載の方法。
【請求項８】
コンテンツ管理サーバであって、
プロセッサと、
実行されると前記プロセッサを動作させる命令を格納したメモリと
を備え、
前記プロセッサは、
前記コンテンツ管理サーバへ第１のコンテンツアイテムのリクエストを送信するように構成される第１の共有リンクを生成し、
前記第１の共有リンクを識別する、共有インデックスの第１の新たなエントリを作成し、
前記コンテンツ管理サーバとネットワーク通信で第１のクライアントデバイスへ、前記第１の共有リンクを送信し、
前記第１のクライアントデバイスからの第１の共有リクエストであって、前記第１の共有リンクと、第１のコンテンツアイテムの位置を識別する第１のコンテンツパスとを識別する前記第１の共有リクエストを受信し、
前記第１のコンテンツアイテムの位置を識別する前記第１のコンテンツパスを含むように、前記共有インデックスの前記第１の新たなエントリを更新する
ことを特徴とするコンテンツ管理サーバ。
【請求項９】
前記第１の共有リクエストは、前記第１のクライアントデバイスが前記第１のコンテンツアイテムを共有する第１の共有入力を受信すると、前記第１のクライアントデバイスによって送信されることを特徴とする請求項８に記載のコンテンツ管理サーバ。
【請求項１０】
前記命令はさらに前記プロセッサを、
前記第１のコンテンツアイテムが前記コンテンツ管理サーバで利用可能でない場合に、前記第１のクライアントデバイスから前記第１のコンテンツアイテムを受信し、
前記第１のコンテンツパスによって識別される位置に前記コンテンツアイテムを格納する
ように動作させることを特徴とする請求項８に記載のコンテンツ管理サーバ。
【請求項１１】
前記命令はさらに前記プロセッサを、
前記第１の共有リンクを識別し、前記第１の共有リンクの選択に応じて第２のクライアントデバイスによって送信される前記第１のコンテンツアイテムのリクエストを、前記第２のクライアントデバイスから受信し、
前記第１のコンテンツアイテムのリクエストによって識別される前記第１の共有リンクに基づき、前記共有インデックスを検索し、
前記第１の共有リンクを識別する前記第１の新たなエントリを識別し、
前記第１の新たなエントリに含まれる前記第１のコンテンツパスによって識別される前記位置に位置付けられる前記第１のコンテンツアイテムを、前記第２のクライアントデバイスへ返す
ように動作させることを特徴とする請求項８に記載のコンテンツ管理サーバ。
【請求項１２】
前記命令はさらに前記プロセッサを、
前記コンテンツ管理システムへ第２のコンテンツアイテムを送信するように構成される第２の共有リンクを生成し、
前記第２の共有リンクを識別する、前記共有インデックスの第２の新たなエントリを作成し、
前記第１のクライアントデバイスへ前記第２の共有リンクを送信する
ように動作させることを特徴とする請求項８に記載のコンテンツ管理サーバ。
【請求項１３】
前記命令はさらに前記プロセッサを、
第２の共有リンクを識別し、前記第２の共有リンクの選択に応じて第２のクライアントデバイスによって送信されるコンテンツアイテムのリクエストを、前記第２のクライアントデバイスから受信し、
前記第２のコンテンツアイテムのリクエストによって識別される前記第２の共有リンクに基づき、前記共有インデックスを検索し、
前記第２の共有リンクを識別する第２の新たなエントリを識別し、
前記第２の共有リンクに関連付けられる第２のコンテンツアイテムの位置を識別する第２のコンテンツパスを前記第２の新たなエントリが含まないかを判定し、
前記第２のコンテンツアイテムが利用可能でないことを前記第２のクライアントデバイスへ通知する
ように動作させることを特徴とする請求項８に記載のコンテンツ管理サーバ。
【請求項１４】
前記命令はさらに前記プロセッサを、
前記第２のコンテンツアイテムを前記第１のクライアントデバイスから受信し、
前記第２のコンテンツパスによって識別される前記位置に前記第２のコンテンツアイテムを格納し、
前記第２の共有リンクを識別し、前記第２の共有リンクの選択に応じて前記第２のクライアントデバイスによって送信される前記第２のコンテンツアイテムのリクエストを、前記第２のクライアントデバイスから受信し、
前記第２のコンテンツアイテムのリクエストによって識別される前記第２の共有リンクに基づき、前記共有インデックスを検索し、
前記第２の共有リンクを識別する前記第２の新たなエントリを識別し、
前記第２の新たなエントリに含まれる前記第２のコンテンツパスによって識別される前記位置に位置付けられる前記第２のコンテンツアイテムを前記第２のクライアントデバイスへ返す
ように動作させることを特徴とする請求項１３に記載のコンテンツ管理サーバ。
【請求項１５】
コンテンツ管理サーバによって実行されると、前記コンテンツ管理サーバを動作させる命令を記憶した一時的でないコンピュータで読み取り可能な記憶媒体であって、
前記コンテンツ管理サーバを、
前記コンテンツ管理サーバへ第１のコンテンツアイテムのリクエストを送信するように構成される第１の共有リンクを生成し、
前記第１の共有リンクを識別する、共有インデックスの第１の新たなエントリを作成し、
前記コンテンツ管理サーバとネットワーク通信で第１のクライアントデバイスへ、前記第１の共有リンクを送信し、
前記第１のクライアントデバイスからの第１の共有リクエストであって、前記第１の共有リンクと、第１のコンテンツアイテムの位置を識別する第１のコンテンツパスとを識別する前記第１の共有リクエストを受信し、
前記第１のコンテンツアイテムの位置を識別する前記第１のコンテンツパスを含むように、前記共有インデックスの前記第１の新たなエントリを更新する
ように動作させることを特徴とする記憶媒体。
【請求項１６】
前記第１の共有リクエストは、前記第１のクライアントデバイスが前記第１のコンテンツアイテムを共有する第１の共有入力を受信すると、前記第１のクライアントデバイスによって送信されることを特徴とする請求項１５に記載の記憶媒体。
【請求項１７】
前記コンテンツ管理サーバを、
前記第１のコンテンツアイテムが前記コンテンツ管理サーバで利用可能でない場合に、前記第１のクライアントデバイスから前記第１のコンテンツアイテムを受信し、
前記第１のコンテンツパスによって識別される位置に前記コンテンツアイテムを格納する
ように動作させることを特徴とする請求項１５に記載の記憶媒体。
【請求項１８】
前記コンテンツ管理サーバを、
前記第１の共有リンクを識別し、前記第１の共有リンクの選択に応じて第２のクライアントデバイスによって送信される前記第１のコンテンツアイテムのリクエストを、前記第２のクライアントデバイスから受信し、
前記第１のコンテンツアイテムのリクエストによって識別される前記第１の共有リンクに基づき、前記共有インデックスを検索し、
前記第１の共有リンクを識別する前記第１の新たなエントリを識別し、
前記第１の新たなエントリに含まれる前記第１のコンテンツパスによって識別される前記位置に位置付けられる前記第１のコンテンツアイテムを、前記第２のクライアントデバイスへ返す
ように動作させることを特徴とする請求項１５に記載の記憶媒体。
【請求項１９】
前記コンテンツ管理サーバを、
前記コンテンツ管理システムへ第２のコンテンツアイテムを送信するように構成される第２の共有リンクを生成し、
前記第２の共有リンクを識別する、前記共有インデックスの第２の新たなエントリを作成し、
前記第１のクライアントデバイスへ前記第２の共有リンクを送信する
ように動作させることを特徴とする請求項１５に記載の記憶媒体。
【請求項２０】
前記コンテンツ管理サーバを、
第２の共有リンクを識別し、前記第２の共有リンクの選択に応じて第２のクライアントデバイスによって送信されるコンテンツアイテムのリクエストを、前記第２のクライアントデバイスから受信し、
前記第２のコンテンツアイテムのリクエストによって識別される前記第２の共有リンクに基づき、前記共有インデックスを検索し、
前記第２の共有リンクを識別する第２の新たなエントリを識別し、
前記第２の共有リンクに関連付けられる第２のコンテンツアイテムの位置を識別する第２のコンテンツパスを前記第２の新たなエントリが含まないかを判定し、
前記第２のコンテンツアイテムが利用可能でないことを前記第２のクライアントデバイスへ通知する
ように動作させることを特徴とする請求項１５に記載の記憶媒体。
【請求項２１】
システムであって、
第１のコンテンツアイテムのリクエストを送信するように構成される第１の共有リンクを生成する手段と、
前記第１の共有リンクを識別する、共有インデックスの第１の新たなエントリを作成する手段と、
第１のクライアントデバイスへ、前記第１の共有リンクを送信する手段と、
前記第１のクライアントデバイスからの第１の共有リクエストであって、前記第１の共有リンクと、第１のコンテンツアイテムの位置を識別する第１のコンテンツパスとを識別する前記第１の共有リクエストを受信する手段と、
前記第１のコンテンツアイテムの位置を識別する前記第１のコンテンツパスを含むように、前記共有インデックスの前記第１の新たなエントリを更新する手段と
を備えることを特徴とするシステム。
【請求項２２】
前記第１の共有リクエストは、前記第１のクライアントデバイスが前記第１のコンテンツアイテムを共有する第１の共有入力を受信すると、前記第１のクライアントデバイスによって送信されることを特徴とする請求項２１に記載のシステム。
【請求項２３】
前記第１のコンテンツアイテムが利用可能でない場合に、前記第１のクライアントデバイスから前記第１のコンテンツアイテムを受信する手段と、
前記第１のコンテンツパスによって識別される位置に前記第１のコンテンツアイテムを格納する手段と
をさらに含むことを特徴とする請求項２１に記載のシステム。
【請求項２４】
前記第１の共有リンクを識別し、前記第１の共有リンクの選択に応じて第２のクライアントデバイスによって送信される前記第１のコンテンツアイテムのリクエストを、前記第２のクライアントデバイスから受信する手段と、
前記第１のコンテンツアイテムのリクエストによって識別される前記第１の共有リンクに基づき、前記共有インデックスを検索する手段と、
前記第１の共有リンクを識別する前記第１の新たなエントリを識別する手段と、
前記第１の新たなエントリに含まれる前記第１のコンテンツパスによって識別される前記位置に位置付けられる前記第１のコンテンツアイテムを、前記第２のクライアントデバイスへ返す手段と
をさらに含むことを特徴とする請求項２１に記載のシステム。
【請求項２５】
第２のコンテンツアイテムのリクエストを送信するように構成される第２の共有リンクを生成する手段と、
前記第２の共有リンクを識別する、前記共有インデックスの第２の新たなエントリを作成する手段と、
前記第１のクライアントデバイスへ前記第２の共有リンクを送信する手段と
をさらに含むことを特徴とする請求項２１に記載のシステム。
【請求項２６】
第２の共有リンクを識別し、前記第２の共有リンクの選択に応じて第２のクライアントデバイスによって送信されるコンテンツアイテムのリクエストを、前記第２のクライアントデバイスから受信する手段と、
前記第２のコンテンツアイテムのリクエストによって識別される前記第２の共有リンクに基づき、前記共有インデックスを検索する手段と、
前記第２の共有リンクを識別する第２の新たなエントリを識別する手段と、
前記第２の共有リンクに関連付けられる第２のコンテンツアイテムの位置を識別する第２のコンテンツパスを前記第２の新たなエントリが含まないかを判定する手段と、
前記第２のコンテンツアイテムが利用可能でないことを前記第２のクライアントデバイスへ通知する手段と
をさらに含むことを特徴とする請求項２１に記載のシステム。
【請求項２７】
前記第２のコンテンツアイテムを前記第１のクライアントデバイスから受信する手段と、
前記第２のコンテンツパスによって識別される前記位置に前記第２のコンテンツアイテムを格納する手段と、
前記第２の共有リンクを識別し、前記第２の共有リンクの選択に応じて前記第２のクライアントデバイスによって送信される前記第２のコンテンツアイテムのリクエストを、前記第２のクライアントデバイスから受信する手段と、
前記第２のコンテンツアイテムのリクエストによって識別される前記第２の共有リンクに基づき、前記共有インデックスを検索する手段と、
前記第２の共有リンクを識別する前記第２の新たなエントリを識別する手段と、
前記第２の新たなエントリに含まれる前記第２のコンテンツパスによって識別される前記位置に位置付けられる前記第２のコンテンツアイテムを前記第２のクライアントデバイスへ返す手段と
をさらに含むことを特徴とする請求項２６に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツアイテムの共有に関し、より詳細には、コンテンツアイテムへの共有リンクを作成することに観点する。
【背景技術】
【０００２】
クラウドストレージアカウントは、ネットワーク接続で任意のコンピュータデバイスからアクセス可能なオンラインストレージアカウントに、ユーザが自身のコンテンツアイテムを格納することを許容する。したがって、ユーザは、コンピュータデバイスから自身のオンラインストレージアカウントへ、画像、音楽、文書などのコンテンツアイテムを更新することができ、後に、異なるコンピュータデバイスから当該コンテンツアイテムにアクセスすることができる。
【０００３】
ユーザが複数のコンピュータデバイスから自身のコンテンツアイテムにアクセスすることが可能なことに加えて、クラウドストレージアカウントはまた、ユーザが他のユーザとコンテンツアイテムを共有することを可能とする。ユーザは、コンテンツアイテムへのアクセスを他のユーザに提供するためにリンクを提供することができる。
【０００４】
コンテンツアイテムを共有する現行のシステムは、自身のコンテンツアイテムを共有するユーザを抑止することは難しい。例えば、いくつかのシステムでは、コンテンツアイテムへの共有リンクを作成するために異なるユーザインタフェースをユーザがナビゲートする必要がある。さらに、ネットワーク接続が共有リンクを作成するために必要となりうる。いくつかのシステムでは、ユーザへの共有リンクを提供する前に、コンテンツ管理システムへコンテンツアイテムがアップロードされるまでユーザが待機する必要がある。したがって、コンテンツアイテムを共有する改善された方法が必要とされる。
【発明の概要】
【０００５】
本開示の追加の特徴及び利点について以下で説明し、部分的には本説明から自明なものとなるか、又は、ここで開示する原理のプラクティスにより理解されうるであろう。本開示の特徴及び利点は、添付の特許請求の範囲に個別に示した機器や組合せによって、完全に理解され、取得されるであろう。本開示のそれらの特徴及び他の特徴が、以下の詳細な説明及び添付の特許請求の範囲から十分に明らかになるであろうし、或いは、ここで説明する原理のプラクティスによって理解されうるであろう。
【０００６】
コンテンツアイテムを共有するための、システム、方法、及び一時的でないコンピュータで読取可能な記憶媒体について開示する。ユーザが他のユーザとコンテンツアイテムを共有することを可能とするために、コンテンツ管理システムは、コンテンツアイテムが認証なしでアクセスされることを可能とする、ユニフォーム・リソース・ロケータ（ＵＲＬ）などのカスタムネットワークアドレスである共有リンクを作成するように構成される。共有リンクは、コンテンツ管理システムからコンテンツアイテムを要求するように構成されうる。
【０００７】
コンテンツ管理システムは、コンテンツアイテムを識別するために共有リンクを使用することができ、要求側のユーザデバイスへ当該コンテンツを返す。例えば、コンテンツ管理システムは、共有リンクに関連付けられるコンテンツアイテムの位置を識別するコンテンツパスに沿って各共有リンクをリストアップする共有インデックスを含むことができる。したがって、コンテンツ管理システムは、共有インデックスを検索しコンテンツアイテムを返すために、要求側のクライアントデバイスから受信した共有リンクを使用することができる。
【０００８】
いくつかの実施形態において、コンテンツ管理システムは、ユーザがコンテンツアイテムを共有することを望むことを示すユーザからの共有入力を受信すると、コンテンツアイテムへのコンテンツリンクを生成することができる。共有入力は、コンテンツアイテムとともに提供される、ボタンなどのユーザインタフェース要素をユーザが選択した結果として受信され、コンテンツアイテムを共有するようにユーザに促す。いくつかの実施形態において、ユーザインタフェース要素は、ユーザがコンテンツアイテム上をスクロールすると現れるように構成される。ユーザインタフェース要素は、コンテンツアイテム上でユーザが右クリックすると、現れるウィンドウとして提示されてもよい。いくつかの実施形態において、共有入力は、ユーザがキーボードショートカットを用いた結果として受信されてもよい。
【０００９】
共有入力を受信すると、クライアントデバイスは、コンテンツアイテムに対する共有リンクを生成するために、共有リクエストをコンテンツ管理システムへ送信することができる。コンテンツ管理システムは共有リンクを生成することができ、ユーザへ提示するクライアントデバイスへ生成した共有リンクを返す。
【００１０】
或いは、いくつかの実施形態において、コンテンツ管理システムは、クライアントデバイスに格納される共有リンクを予め生成することができる。ユーザから共有入力を受信すると、クライアントデバイスは、新たな共有リンクがコンテンツ管理システムによって生成されることを要求するよりもむしろローカルに格納された共有リンクの１つを提供することができる。その後、クライアントデバイスは、ユーザへ提供される共有リンクと、共有のコンテンツアイテムとともに識別されるコンテンツパスとを識別するように、コンテンツ管理システムに共有リクエストを送信することができる。コンテンツ管理システムは、コンテンツパスと共有リンクとを関連付ける共有インデックスを更新するために、共有リクエストで受信したデータを使用することができる。
【００１１】
共有リンクは、複数の方法でユーザへ提供されうる。いくつかの実施形態において、共有リンクは、ユーザへ視覚的に提示されうる。例えば、共有リンクは、ユーザがコンテンツアイテムを共有するために電子メール、ソーシャルネットワーキングポスト等にコピーすることができるようなテキストでクライアントデバイス上に提示される。したがって、ユーザは、例えば共有リンクを電子メール、ソーシャルネットワーキングポストなどに入力するためにペースト（貼り付け）機能を用いることによって共有リンクにアクセスすることができる。
【図面の簡単な説明】
【００１２】
本開示の上述した特徴及び利点、並びに、他の特徴及び利点は、添付の図面に示される特定の複数の実施形態を参照することによって明らかになるであろう。それらの図面が本開示の特定の実施形態のみを示し、従って本発明の範囲を限定することを意図していないことが理解されれば、添付図面の使用を通じて、追加の特徴及び詳細とともに、本発明の原理が記載され説明される。
【図１】本発明に係るデバイス及びネットワークの一実施形態を示す図である。
【図２】クライアントデバイスから共有リクエストを受信すると、共有リンクを作成するコンテンツ管理システムを示す図である。
【図３】コンテンツアイテムへの共有リンクを提供するクライアントデバイスの方法の一実施形態を示す図である。
【図４】クライアントデバイスから共有リクエストを受信すると、共有リンクを作成するコンテンツ管理システムの方法の一実施形態を示す図である。
【図５Ａ】、
【図５Ｂ】、
【図５Ｃ】クライアントデバイス上のローカルメモリに格納される共有リンクをユーザに提供する一実施形態を示す図である。
【図６】ローカルメモリに格納される共有リンクをユーザに提供するクライアントデバイスの方法の一実施形態を示す図である。
【図７】クライアントデバイス上のローカルメモリに格納される共有リンクをユーザに提供するコンテンツ管理システムの方法の一実施形態を示す図である。
【図８】共有リンクによって要求されたコンテンツアイテムを返す方法の一実施形態を示す図である。
【図９Ａ】、
【図９Ｂ】一実施形態に係るシステムを示す図である。
【発明を実施するための形態】
【００１３】
本開示の種々の実施形態を以下で説明する。特定の実施形態について説明するが、それらは説明の目的のために行われるものであることを理解されるべきである。当業者は他のコンポーネント及び構成が本開示の精神及び範囲から逸脱することなく利用することができることを理解するであろう。
【００１４】
本開示の技術は、コンテンツ管理システム上に格納されるコンテンツアイテムを共有する、当分野における必要性を解決する。ユーザが他のユーザとコンテンツアイテムを共有することを可能とするために、コンテンツ管理システムは、コンテンツアイテムが認証なしでアクセスされることを許容する、ユニフォーム・リソース・ロケータ（ＵＲＬ）などのカスタムネットワークアドレスである共有リンクを作成するように構成されうる。共有リンクは、コンテンツ管理システムからコンテンツアイテムを要求するように構成されうる。
【００１５】
コンテンツ管理システムは、コンテンツアイテムを識別するために共有リンクを使用することができ、要求側のユーザデバイスへ当該コンテンツを返す。例えば、コンテンツ管理システムは、共有リンクに関連付けられるコンテンツアイテムの位置を識別するコンテンツパスに沿って各共有リンクを識別する共有インデックスを含むことができる。したがって、コンテンツ管理システムは、共有インデックスを検索しコンテンツアイテムを返すために、要求側のクライアントデバイスから受信した共有リンクを使用することができる。
【００１６】
いくつかの実施形態において、コンテンツ管理システムは、ユーザがコンテンツアイテムを共有することを要求することに応じて、コンテンツアイテムへの共有ツリンクを生成することができる。例えば、クライアントデバイスで受信した共有入力は、ユーザがコンテンツアイテムを共有することを望むことを示すことができる。共有入力を受信すると、クライアントデバイスは、コンテンツアイテムに対する共有リンクを生成するために、共有リクエストをコンテンツ管理システムへ送信することができる。コンテンツ管理システムは共有リンクを生成することができ、クライアントデバイスへユーザが利用可能なように生成した共有リンクを返す。
【００１７】
或いは、いくつかの実施形態において、共有リンクは、ユーザがコンテンツアイテムを共有することを要求する前に、コンテンツ管理システムによって、予め生成され、クライアントデバイスに格納されうる。コンテンツアイテムを共有することを要求するユーザから共有入力を受信すると、クライアントデバイスは、コンテンツ管理システムによって生成された共有リンクを要求するよりもむしろローカルに格納された共有リンクの１つを提供することができる。これは、コンテンツ管理システムが共有リンクを作成することを待つことなく、共有リンクをユーザが利用可能となるため、利点である。さらに、クライアントデバイスがオフライン、即ち、コンテンツ管理システムとネットワーク通信状態にない場合であっても、共有リンクがユーザに利用可能となる。
【００１８】
いくつかの実施形態において、共有リンクがクライアントデバイス上のクリップボードなどのデータバッファにおいてユーザに利用可能となる。クライアントデバイスは、コンテンツ管理システムから受信した共有リンクをデータバッファに格納することができる。ユーザは、共有リンクを電子メール、ソーシャルネットワーキングポスト等へ入力するために、例えばペースト（貼り付け）機能を通じて共有リンクに容易にアクセスすることができる。
【００１９】
システム構成１００の一例を図１に示し、電子デバイスはコンテンツ及び他のデータを交換するためにネットワークを介して通信を行う。当該システムは、図１に示すように、広域エリアネットワーク上で使用されるように構成されうる。しかしながら、本原理は、電子デバイスの相互通信を容易にする多種多様なネットワーク構成に適用することができる。例えば、図１のシステム１００の各コンポーネントは、ネットワークにおいて、局所型の又は分散型の様式で実現されてもよい。
【００２０】
システム１００において、ユーザは、直通通信及び中継通信の少なくとも一方によってネットワーク１０４へ接続されるクライアントデバイス１０２１、１０２２、１０２ｎ（まとめて１０２と表記する。）を通じてコンテンツ管理システム１０６と情報のやり取りを行うことができる。コンテンツ管理システム１０６は、デスクトップコンピュータ、モバイルコンピュータ、モバイル通信デバイス例えばモバイル電話機、スマートフォン、タブレット、スマートテレビジョン、セットトップボックス、及び、任意の他のネットワーク接続可能なコンピュータデバイスの少なくとも１つなどの、種々のクライアントデバイスからの接続をサポートすることができる。クライアントデバイス１０２は、種別、性能、オペレーティングシステムなどを変えることができる。さらに、コンテンツ管理システム１０６は、複数のクライアントデバイス１０２からの接続や複数のクライアントデバイス１０２との情報のやり取りを同時に受け付けることができる。
【００２１】
ユーザは、クライアントデバイス１０２ｉにインストールされたクライアント側のアプリケーションを介してコンテンツ管理システム１０６と情報をやり取りすることができる。いくつかの実施形態において、クライアント側のアプリケーションは、コンテンツ管理システムの特定のコンポーネントを含むことができる。例えば、当該コンポーネントは、スタンドアロンのアプリケーション、１つ以上のアプリケーションプラグイン、及びブラウザ拡張の少なくとも１つであってもよい。しかしながら、ユーザはまた、クライアントデバイス１０２上に常駐し、コンテンツ管理システム１０６と通信を行うように構成された、ウェブブラウザなどのサードパーティアプリケーションを介してコンテンツ管理システム１０６と情報をやり取りしてもよい。いずれにしても、クライアント側のアプリケーションは、コンテンツ管理システム１０６と情報をやり取りするためにユーザに対してユーザインタフェース（ＵＩ）を提供することができる。例えば、ユーザは、ファイルシステムと一体化したクライアント側のアプリケーションを介して、又は、ウェブブラウザアプリケーションを用いて表示されたウェブページを介してコンテンツ管理システム１０６と情報をやり取りすることができる。
【００２２】
コンテンツ管理システム１０６は、ユーザによるコンテンツの格納とともに、コンテンツの検索（取り出し）、修正、閲覧、及び共有などの種々のコンテンツ管理タスクを実行することを可能とすることができる。さらに、コンテンツ管理システム１０６は、ユーザによる複数のクライアントデバイス１０２からのコンテンツへのアクセスを可能とすることができる。例えば、クライアントデバイス１０２ｉは、ネットワーク１０４を介してコンテンツ管理システム１０６へコンテンツをアップロードすることができる。当該コンテンツは、後に、同じクライアントデバイス１０２ｉ又はいくつかの他のクライアントデバイス１０２ｊを用いてコンテンツ管理システム１０６から取り出すことができる。
【００２３】
種々のコンテンツ管理サービスを容易にするために、ユーザは、コンテンツ管理システム１０６へのアカウントを作成することができる。アカウント情報は、ユーザアカウントデータベース１５０に保持されうる。ユーザアカウントデータベース１５０は、登録したユーザに対するプロファイル情報を格納することができる。いくつかのケースにおいて、ユーザプロファイルの個人情報は、ユーザ名称及び電子メールアドレスの少なくとも一方のみであってもよい。しかしながら、コンテンツ管理システム１０６はまた、追加のユーザ情報を受け付けるように構成されうる。
【００２４】
ユーザアカウントデータベース１５０はまた、アカウント種別、例えば無料又は有料、利用情報、例えばファイル編集履歴、認証された最大格納スペース、使用されている格納スペース、コンテンツ格納位置、セキュリティ設定、個人コンフィグレーション設定、コンテンツ共有データなどのアカウント管理情報を含みうる。アカウント管理モジュール１２４は、ユーザアカウントデータベース１５０のユーザアカウントの詳細を更新するか、及び、取得するかの少なくとも一方を行うように構成されうる。アカウント管理モジュール１２４は、コンテンツ管理システム１０６の任意の多くの他のモジュールと情報をやり取りするように構成されうる。
【００２５】
アカウントは、アカウントで認証される１つ以上のクライアントデバイス１０２から、デジタルデータ、文書、テキストファイル、オーディオファイル、ビデオファイル、画像ファイルなどのコンテンツを格納するために使用されうる。コンテンツはまた、異なる挙動の多種多様なフォルダ又は複数のコンテンツアイテムともにグループ化する他の仕組みを含むことができる。例えば、アカウントは任意のユーザがアクセス可能な公開フォルダを含むことができる。公開フォルダは、ウェブアクセス可能なアドレスを割り当てられうる。ウェブアクセス可能なアドレスへのリンクは、公開フォルダのコンテンツにアクセスするために使用されうる。他の実施形態において、アカウントは、写真を対象とし、写真に適合した特定の属性及び動作を提供する写真フォルダ、オーディオファイルを再生する機能を提供し、他のオーディオ関連の動作を実行するオーディオフォルダ、又は、他の特定用途のフォルダを含むことができる。アカウントは、複数のユーザアカウントにリンク付けされた、又は、複数のユーザアカウントで利用可能な共有フォルダ又はグループフォルダを含むことができる。複数のユーザへの許可は、共有フォルダにおいて異なってもよい。
【００２６】
コンテンツは、コンテンツストレージ１６０に格納されうる。コンテンツストレージ１６０は、１つのストレージデバイス、複数のストレージデバイス、又はサーバであってもよい。或いは、コンテンツストレージ１６０は、１つ以上の通信ネットワークを介してアクセス可能なクラウドストレージプロバイダ、又は、ネットワークストレージであってもよい。コンテンツ管理システム１０６は、クライアントデバイスからの複雑性と詳細を隠すことができ、それにより、クライアントデバイス１０２はコンテンツアイテムがコンテンツ管理システム１０６によって格納されていることを正確に知る必要がない。１つの変形例において、コンテンツ管理システム１０６は、クライアントデバイス１０２ｉに明らかなように同じフォルダ階層のコンテンツアイテムを格納することができる。しかしながら、コンテンツ管理システム１０６は、自身の順序、構成、又は階層でコンテンツアイテムを格納することができる。コンテンツ管理システム１０６は、ネットワークアクセス可能ストレージ（ＳＡＮ）やレイド（冗長アレイの安価ディスク：ＲＡＩＤ）等に、コンテンツアイテムを格納することができる。コンテンツストレージ１６０は、ＦＡＴ、ＦＡＴ３２、ＮＴＦＳ、ＥＸＴ２、ＥＸＴ３、ＥＸＴ４、ＲｅｉｓｅｒＦＳ、ＢＴＲＦＳなどの１つ以上のパーティションタイプを用いてコンテンツアイテムを格納することができる。
【００２７】
コンテンツストレージ１６０はまた、コンテンツアイテムと、コンテンツアイテム種別と、種々のアカウント、フォルダ若しくはグループへのコンテンツアイテムの関係と、を記述するメタデータを格納することができる。コンテンツアイテムにおけるメタデータは、コンテンツアイテムの一部として格納することができ、又は、コンテンツアイテムとは区別して格納することができる。１つの変形例において、コンテンツストレージ１６０に格納された各コンテンツアイテムは、システム全体で固有の識別子を割り当てられてもよい。
【００２８】
コンテンツストレージ１６０は、複製ファイル又はファイルの複製セグメントを識別するのに必要とされるストレージスペースの量を低減させることができる。複数のコピーを格納する代わりに、コンテンツストレージ１６０は、単一のコピーを格納し、その後ポインタを使用するか、又は、複製を単一のコピーへリンク付ける他の仕組みを使用することができる。同様に、ファイルへの変更、ファイルの異なるバージョン（分岐バージョンツリーを含む）、及び変更履歴を追跡するファイルバージョン制御を用いて、コンテンツストレージ１６０は、より効果的にファイルを格納することができるとともに、元に戻す操作（アンドゥ操作）の機能を提供することができる。この変更履歴は、オリジナルのファイルバージョンへ適用する際に、変更したファイルバージョンを生成する変更の組み合わせを含むことができる。
【００２９】
コンテンツ管理システム１０６は、１つ以上のクライアントデバイス１０２からコンテンツの自動的な同期化をサポートするように構成されてもよい。同期化は、プラットフォームにとらわれなくてよい。つまり、コンテンツは、様々な種別、性能、オペレーティングシステムなどの複数のクライアントデバイス１０２にわたって同期化されうる。例えば、クライアントデバイス１０２ｉは、コンテンツ管理システム１０６の同期化モジュール１３２を介して、クライアントデバイス１０２ｉのファイルシステムにおけるコンテンツと、関連するユーザアカウントのコンテンツとを同期化するクライアントソフトウェアを含んでもよい。いくつかのケースにおいて、クライアントソフトウェアは、指定したフォルダ及びそのサブフォルダのコンテンツへの任意の変更、例えば、ファイル若しくはフォルダを新規作成、削除、修正、複製、又は移動するなどを同期化することができる。クライアントソフトウェアは、ソフトウェアアプリケーションを区別することができ、オペレーティングシステムの既存のコンテンツ管理アプリケーションと一体化することができ、或いは、それらの組み合わせを行うことができる。既存のコンテンツ管理アプリケーションと一体化するクライアントソフトウェアの一実施形態において、ユーザはローカルフォルダで直接コンテンツを扱うことができ、一方でバックグランド処理がローカルフォルダに対する変更を監視し、コンテンツ管理システム１０６へそれらの変更を同期させる。逆に、バックグラウンド処理は、コンテンツ管理システム１０６で更新されたコンテンツを識別することができ、それらの変更をローカルフォルダへ同期させることができる。クライアントソフトウェアは、同期操作の通知を提供することができ、コンテンツ管理アプリケーション内で直接的にコンテンツの状態の指標を提供することができる。時には、クライアントデバイス１０２ｉは、ネットワーク接続が利用可能でないかもしれない。そのような状況において、クライアントソフトウェアは、リンク付けされたフォルダのファイルへの変更を監視することができ、ネットワーク接続が利用可能になると、コンテンツ管理システム１０６へ最新の同期化におけるそれらの変更を通知する（キューイングする）ことができる。同様に、ユーザは、手動で、コンテンツ管理システム１０６との同期化を停止、又は、一時停止することができる。
【００３０】
ユーザはまた、ユーザインタフェースモジュール１２２によって生成され、管理されているウェブインタフェースを介してコンテンツを閲覧し、又は操作することができる。例えば、ユーザは、ウェブブラウザにおいて、コンテンツ管理システム１０６によって提供されるウェブアドレスへナビゲートすることができる。ウェブインタフェースを通じて行われる、新たなバージョンのファイルを更新するなどのコンテンツストレージ１６０のコンテンツへの変更又は更新は、ユーザのアカウントと関連付けられた他のクライアントデバイス１０２へ戻すように伝えられる。例えば、それぞれが自身のクライアントソフトウェアを有する複数のクライアントデバイス１０２は、単一のアカウントに関連付けられ、アカウント内のファイルは、複数のクライアントデバイス１０２のそれぞれの間で同期化されうる。
【００３１】
コンテンツ管理システム１０６は、種々のクライアントデバイス１０２とインタフェースで接続するための通信インタフェース１２０を含み、アプリケーション・プログラミング・インタフェース（ＡＰＩ）を介して他のコンテンツ及びサービスプロバイダ１０９１、１０９２、．．．１０９ｎ（まとめて”１０９”）の少なくとも１つと情報をやり取りすることができる。所定のソフトウェアアプリケーションは、ユーザの代わりにコンテンツストレージにアクセスすることができる。例えば、スマートフォン又はタブレットコンピュータデバイス上のアプリなどのソフトウェアパッケージは、ユーザが読み、書き、作成、削除、共有、又はその他のコンテンツへの操作のためにクレデンシャルを提供すると、コンテンツ管理システム１０６へ直接の呼び出しがプログラムで行われうる。同様に、ＡＰＩはウェブサイトを通じてユーザがコンテンツストレージ１６０の全て又は一部へアクセスすることを許容することができる。
【００３２】
コンテンツ管理システム１０６はまた、認証されたクライアント及びユーザのみがファイルへアクセスすることを保証するために、ユーザクレデンシャル、セキュリティトークン、ＡＰＩ読み出し、特定のクライアントデバイスなどを検証する認証モジュール１２６を含むことができる。さらに、コンテンツ管理システム１０６は、集約ファイル操作、ユーザアクション、ネットワーク利用、使用済み合計ストレージスペースとともに、他の技術、利用、又はビジネス手法について、追跡したり報告したりすることができる解析モジュール１３４を含むことができる。プライバシーポリシー及びセキュリティポリシーの少なくとも一方は、コンテンツ管理システム１０６で格納されるユーザデータへの認証の無いアクセスを防止することができる。
【００３３】
コンテンツ管理システム１０６は、共有コンテンツの公開又は非公開を管理する共有モジュール１３０を含むことができる。共有コンテンツの公開は、コンテンツ管理システム１０６とのネットワーク通信で任意のコンピュータデバイスからアクセス可能なコンテンツアイテムを作成することを含むことができる。共有コンテンツの非公開は、各ユーザアカウントがコンテンツアイテムへアクセスするように、２つ以上のユーザアカウントと、コンテンツストレージ１６０のコンテンツアイテムをリンク付けることを含むことができる。共有は、プラットフォームにとらわれない方法で実行されてもよい。つまり、コンテンツは、様々な種別、性能、オペレーティングシステムなどの複数のクライアントデバイス１０２にわたって共有されうる。コンテンツは、様々なユーザアカウントの種別にわたって共有されてもよい。
【００３４】
いくつかの実施形態において、コンテンツ管理システム１０６は、コンテンツストレージ１６０の各コンテンツアイテムの位置を識別するコンテンツディレクトリを維持するように構成されうる。コンテンツディレクトリは、コンテンツストレージに格納される各コンテンツアイテムに対する固有のコンテンツ入力を含むことができる。
【００３５】
コンテンツ入力は、コンテンツストレージ１６０のコンテンツアイテムの位置を識別するために使用されうるコンテンツパスを含むことができる。例えば、コンテンツパスは、メモリ内のコンテンツアイテムの正確なストレージアドレスを識別することができる。いくつかの実施形態において、コンテンツパスは、コンテンツアイテムの一部をそれぞれが含む、メモリ内の複数の位置を識別することができる。
【００３６】
さらに、コンテンツパスは、コンテンツアイテムと関連付けられるコンテンツアイテムの名称と、フォルダ階層を含むことができる。例えば、コンテンツパスは、コンテンツアイテムが位置するフォルダ又はフォルダのパスとともに、コンテンツアイテムの名称を含むことができる。コンテンツ管理システム１０６は、適切なフォルダ階層のコンテンツアイテムを提示するために、コンテンツパスを使用することができる。
【００３７】
コンテンツパスに加えて、コンテンツ入力はまた、コンテンツアイテムへのアクセスを有するユーザアカウントを識別するユーザアカウント識別子を含むことができる。いくつかの実施形態において、複数のユーザアカウント識別子は、コンテンツアイテムが複数のユーザアカウントによるアクセスが共有されていることを示す単一のコンテンツ入力と関連づけられる。
【００３８】
非公開のコンテンツアイテムを共有するために、共有モジュール１３０は、ユーザアカウント識別子を、コンテンツアイテムに関連付けられるコンテンツ入力に追加するように構成され、このように、追加したユーザアカウントにコンテンツアイテムへアクセスすることを許可する。共有モジュール１３０はまた、コンテンツアイテムへのユーザアカウントのアクセスを制限するために、コンテンツ入力からユーザアカウント識別子を取り除くように構成されてもよい。
【００３９】
公開のコンテンツアイテムを共有するために、共有モジュール１３０は、コンテンツアイテムにアクセスするように使用されうる共有リンクを生成するように構成されうる。いくつかの実施形態において、共有リンクは、コンテンツアイテムが認証無しでアクセスされることを許容する、ユニフォーム・リソース・ロケータ（ＵＲＬ）などのカスタムネットワークアドレスであってもよい。生成される共有リンクは、共有リンクと関連付けられるコンテンツアイテムを識別するために使用されうる。共有リンクが生成すると、共有モジュール１３０は、共有インデックスのエントリを作成する。エントリは、生成された共有リンクと、コンテンツ管理システム１０６上でコンテンツアイテムの位置を識別するために使用されうるコンテンツアイテムのコンテンツパスを含むことができる。共有リンクを介してリクエストを受信すると、コンテンツ管理システム１０６は、コンテンツアイテムの位置を識別するために、共有インデックスで共有リンクを検索することができる。従って、コンテンツ管理システム１０６は、要求側のクライアントデバイス１０２へコンテンツアイテムを返すことができる。
【００４０】
いくつかの実施形態において、ユーザがコンテンツアイテムを共有する要求をすると、共有リンクが作成されうる。例えば、クライアントデバイス１０２ｉは、コンテンツアイテムを共有する要求を行う共有入力を受信すると、コンテンツ管理システム１０６へ共有リクエストを送信するように構成されうる。クライアントデバイス１０２ｉから共有リクエストを受信すると、コンテンツ管理システム１０６は、ユーザがコンテンツアイテムを共有するために利用可能にされる共有リンクを作成し、クライアントデバイス１０２ｉへ当該共有リンクを送信するように構成されうる。
【００４１】
コンテンツ管理システム１０６へ送信される共有リクエストは、共有入力によって識別されるコンテンツアイテムのコンテンツパスを含むことができる。クライアントデバイス１０２ｉから共有リクエストを受信すると、コンテンツ管理システム１０６は、共有リンクを生成し、生成した共有リンクとクライアントデバイス１０２ｉから受信したコンテンツパスとを含む共有インデックスのエントリを作成するように構成されうる。コンテンツ管理システム１０６は、ユーザがコンテンツアイテムを共有するために利用可能にされる、作成した共有リンクをクライアントデバイス１０２ｉへ送信することができる。
【００４２】
図２は、クライアントデバイス１０２ｉから共有リクエストを受信すると、共有リンクを作成するコンテンツ管理システム１０６を示す図である。図示するように、クライアントデバイス１０２ｉは、コンテンツパス”ｆｏｏ”を有するコンテンツアイテム”Ａ”を含む。コンテンツアイテム”Ａ”への共有リンクを作成するために、クライアントデバイス１０２ｉは、コンテンツ管理システム１０６へ共有リクエスト２０５を送信することができる。共有リクエスト２０５は、コンテンツアイテム”Ａ”に対してコンテンツパス”ｆｏｏ”を含むことができる。
【００４３】
いくつかの実施形態において、クライアントデバイス１０２ｉは、クライアントデバイス１０２ｉのユーザがコンテンツアイテムを共有したいことを示す共有入力の受信に応じて、共有リクエスト２０５を送信することができる。共有入力は、ユーザが他のユーザと共有することを望むコンテンツアイテムを識別することができる。例えば、いくつかの実施形態において、クライアントデバイス１０２ｉは、ユーザがコンテンツアイテム”Ａ”を共有させることを可能とするボタンなどのユーザインタフェース要素をユーザに提示することができる。ユーザインタフェース要素の選択は、コンテンツアイテム”Ａ”を識別する共有入力の結果をもたらすことができる。
【００４４】
共有リクエスト２０５を受信すると、コンテンツ管理システム１０６は、共有リンク”Ｘ”を生成することができる。さらに、コンテンツ管理システム１０６は、生成した共有リンク”Ｘ”と、クライアントデバイス１０２ｉから受信されるコンテンツパス”ｆｏｏ”とを含む共有インデックス２１０のエントリを追加することができる。コンテンツ管理システム１０６は、生成した共有リンク”Ｘ”を、メッセージ２１５で、クライアントデバイス１０２ｉへ送信することができる。クライアントデバイス１０２ｉは、コンテンツアイテム”Ａ”共有するために使用することができる、受信した共有リンク”Ｘ”を提示することができる。
【００４５】
図１の説明に戻り、いくつかの実施形態において、クライアントデバイス１０２ｉへ返された共有リンクは、クライアントデバイス１０２ｉによって視覚的に提示されうる。例えば、共有モジュール１３０は、クライアントデバイス１０２ｉにウィンドウに共有リンクを提示させる。その後、ユーザは、電子メールや、ソーシャルネットワーキングサイトへのポストなどに共有リンクをコピーすることによって、容易にコンテンツアイテムを共有することができる。
【００４６】
いくつかの実施形態において、共有リンクは、クライアントデバイス１０２ｉで実行される複数のアプリケーションからアクセス可能な、クライアントデバイス１０２ｉ上のデータバッファに格納されうる。例えば、共有リンクは、クリップボードなどのデータバッファへ格納され、ユーザは電子メールや、ソーシャルネットワーキングポストへ共有リンクを含ませるように、ペースト機能を使用することができる。
【００４７】
いくつかの実施形態において、クライアントデバイス１０２ｉは、共有リンクが作成されるのに必要な時間を割り当てるように構成されることができる。例えば、共有リンクの作成は、ネットワーク接続の欠落、低速なネットワーク接続、コンテンツ管理システム１０６による遅延、などに起因して遅延が発生するかもしれない。長期間の間、ユーザが要求した共有リンクを待機していることが起こらないことを保証するために、クライアントデバイス１０２ｉは、コンテンツ管理システム１０６へ共有リクエストを送信すると、タイマーをセットするように構成されうる。コンテンツ管理システム１０６へ共有リクエストを送信した後に割り当てられた時間内に共有リンクが返されない場合、クライアントデバイス１０２ｉじゃ、共有リンクが作成できなかったことをエラーメッセージでユーザに提示するように構成されうる。
【００４８】
割り当てられた時間が経過した後に共有リンクがクライアントデバイス１０２ｉへ返された場合、クライアントデバイス１０２ｉは、後のユーザのために、受信した共有リンクをクライアントデバイス１０２ｉのローカルメモリに格納することができる。例えば、ユーザが後に同じコンテンツアイテムを公開して共有しようとする場合に、クライアントデバイス１０２ｉは、ローカルメモリから共有リンクを取り出し、当該共有リンクをユーザへ利用可能とすることができる。したがって、クライアントデバイス１０２ｉは、コンテンツ管理システム１０６へ共有リクエストを送信することなく、共有リンクをユーザに利用可能にすることができる。このタイプの実施形態において、クライアントデバイス１０２ｉｈｓ、コンテンツ管理システム１０６へ共有リクエストを送信する前に、コンテンツアイテムへの共有リンクについて、クライアントデバイス１０２ｉ上のローカルメモリを確認するように構成されうる。
【００４９】
図３は、コンテンツアイテムへの共有リンクを提供するクライアントデバイスの方法の一実施形態を示す。図３には特定のステップが示されるものの、他の実施形態では、より多いステップ、より少ないステップを有する方法であってもよい。図示するように、本方法は、ブロック３０５から開始され、共有入力がユーザから受信される。共有入力は、コンテンツアイテムを公開して共有するように要求する、ユーザから受信した入力であってもよい。例えば、共有入力は、ユーザにコンテンツアイテムを共有することを促す、コンテンツアイテムと提示される、ボタンなどのユーザインタフェース要素をユーザが選択した結果として受信されうる。
【００５０】
共有入力を受信すると、本方法は、ブロック３１に進み、クライアントデバイスが、コンテンツアイテムの共有リンクがクライアントデバイスのローカルメモリに格納されているかどうかを判定する。例えば、ユーザがコンテンツアイテムを公開して共有するように前もって要求していてもよく、結果として、共有リンクがクライアントデバイスのローカルメモリに格納され、コンテンツアイテムと関連付けられる。クライアントデバイスは、コンテンツアイテムへの共有リンクがローカルメモリに格納されているかどうかを判定するためにローカルメモリを検索することができる。
【００５１】
ブロック３１０で、クライアントデバイスがコンテンツアイテムへの共有リンクがクライアントデバイスに格納されていると判定した場合、本方法はブロック３３０に進み、共有リンクがクライアントデバイス上のクリップボードなどのデータバッファへ格納される。その後、本方法は、ブロック３３５へ進み、共有リンクが作成された通知をユーザへ提示する。本方法はブロック３５０へ進み、受信した共有リンクがローカルメモリに格納され、コンテンツアイテムと関連付けられる。その後、本方法は終了する。
【００５２】
ブロック３１０で、クライアントデバイスがコンテンツアイテムへの共有リンクがローカルメモリに存在していないと判定した場合、本方法は、ブロック３１５に進み、クライアントデバイスは、コンテンツ管理システムへ共有リクエストを送信する。共有リクエストは、コンテンツアイテムのコンテンツパスを含むことができる。
【００５３】
ブロック３２０で、クライアントデバイスは、コンテンツ管理システムからの応答を受信するための、タイマーを開始することができる。例えば、クライアントデバイスは、コンテンツ管理システムからの共有リンクを含む応答を受信するために共有リクエストを送信した後に所定の時間を割り当てることができる。
【００５４】
ブロック３２５で、本方法は、コンテンツ管理システムからの応答を受信するために割り当てられた所定の時間内に共有リンクを受信したかどうかを判定する。ブロック３２５で共有リンクが所定の時間内に受信されたと判定した場合、本方法はブロック３３０に進み、クライアントデバイスは、受信した共有リンクをデータバッファに格納する。本方法はその後ブロック３３５に進み、クライアントデバイスは、共有リンクがデータバッファに格納されたことを示す通知をユーザへ提供する。その後、本方法はブロック３５０に進み、受信した共有リンクがローカルメモリに格納され、コンテンツアイテムと関連付けられる。本方法はその後終了する。
【００５５】
代替的に、ブロック３２５で、共有リンクが割り当てられた時間内に受信されなかった場合、本方法はブロック３４０に進み、エラーメッセージがユーザに提示される。例えば、クライアントデバイスは、共有リンクが作成されなかったことや、ユーザが後に共有リンクを作成することを試みることができることを示すメッセージを提示することができる。
【００５６】
共有リンクが割り当てられた時間内にコンテンツ管理システムから受信されなかったものの、コンテンツ管理システムはまだクライアントデバイスへ共有リンクを返すことができる。例えば、クライアントデバイスとコンテンツ管理システムとの間で発生するネットワーク接続などの問題は、共有リンクが割り当てられた時間が経過した後にクライアントデバイスへ送信される結果となる遅延の原因となる。したがって、ブロック３４５で、クライアントデバイスは、共有リンクがクライアントデバイスによって受信されたかどうかを判定する。ブロック３４５で共有リンクがコンテンツ管理システムから受信されなかった場合、本方法は終了する。
【００５７】
ブロック３４５で共有リンクがコンテンツ管理システムから受信された場合、本方法はブロック３５０へ進み、受信した共有リンクがクライアントデバイスのローカルリンクに格納され、コンテンツアイテムと関連付けられる。したがって、ユーザがその後にコンテンツアイテムを共有することを選択した場合、クライアントデバイスは、ローカルメモリに格納した共有リンクを提供することができ、共有リクエストをコンテンツ管理システムへ送信する必要はない。その後本方法は終了する。
【００５８】
図４は、クライアントデバイスから共有リクエストを受信した際に共有リンクを作成するコンテンツ管理システムの方法の一実施形態を示す。図４には特定のステップが示されるものの、他の実施形態では、より多いステップ、より少ないステップを有する方法であってもよい。図示するように、本方法はブロック４０５から開始され、共有リクエストはクライアントデバイスからコンテンツ管理システムによって受信される。共有リクエストは、識別したコンテンツアイテムに対する共有リンクを作成するリクエストであってもよい。共有リクエストは、コンテンツアイテムを位置づけるために使用されるコンテンツアイテムに対する、コンテンツパス又は他のコンテンツアイテム識別子を含むことができる。
【００５９】
共有リクエストを受信すると、本方法はブロック４１０に進み、コンテンツ管理システムは共有リンクを生成する。コンテンツ管理システムは、当分野で既知の種々の方法の何れかで共有リンクを生成することができるが、生成される共有リンクはそれぞれ固有であることが好ましい。
【００６０】
共有リンクを作成すると、本方法はブロック４１５に進み、コンテンツ管理システムは、共有インデックスの新たなエントリを作成する。共有インデックスは、コンテンツ管理システムによって作成される共有リンクのリストであってもよい。共有インデックスは、さらに、共有インデックスにリストされる各共有リンクへ対応するコンテンツパスをリストしてもよい。コンテンツ管理システムは、コンテンツ管理システムによって作成される共有リンクとともにクライアントデバイスから受信したコンテンツパスを含む共有インデックスに新たなエントリを追加することができる。
【００６１】
本方法はブロック４２０に進み、コンテンツ管理システムによって作成された共有リンクがクライアントデバイスへ送信され、その後ユーザへ提供される。その後本方法は終了する。
【００６２】
図１の開示に戻り、いくつかの実施形態において、共有リンクは、クライアントデバイス１０２ｉローカルメモリに予めキャッシュされ、共有入力を受信するとユーザへ提供される。クライアントデバイス１０２ｉ上での共有リンクを予めキャッシュすることは、共有入力を受信すると、コンテンツ管理システム１０６からの共有リンクを要求する上でいくつかの利点を提供する。例えば、クライアントデバイス１０２ｉ上で共有リンクを予めキャッシュすることによって、クライアントデバイス１０２ｉは、コンテンツ管理システム１０６へリクエストを送信する必要なく、ほぼすぐにユーザへ共有リンクを利用可能とすることができる。したがって、クライアントデバイス１０２ｉは、共有入力を受信するとほぼすぐにユーザに共有リンクを利用可能とすることができる。さらに、クライアントデバイス１０２ｉは、クライアントデバイス１０２ｉがオフラインである場合、即ち、クライアントデバイス１０２ｉがコンテンツ管理システム１０６とネットワーク接続されていない間であってもユーザに共有リンクを利用可能とすることができる。
【００６３】
クライアントデバイス１０２ｉ上で共有リンクを予めキャッシュするために、共有モジュール１３０は、共有リンクを作成し、クライアントデバイス１０２ｉへ共有リンクを送信することができる。クライアントデバイス１０２ｉは、クライアントデバイス１０２ｉ上のローカルメモリに共有リンクを格納することができる。さらに、共有モジュール１３０は、クライアントデバイス１０２ｉへ送信される作成した共有リンクのみを含む共有インデックスに新たなエントリを作成することができる。したがって、新たなエントリはコンテンツパスを含まない。
【００６４】
共有入力が受信されると、クライアントデバイス１０２ｉは、ローカルメモリに格納された共有リンクをユーザに利用可能にすることができる。その後、クライアントデバイス１０２ｉは、コンテンツアイテムのコンテンツパスとユーザへ提供される共有リンクとを含む、コンテンツ管理システム１０６への共有リクエストを送信することができる。共有リクエストを受信すると、共有モジュール１３０は、クライアントデバイス１０２ｉから受信したコンテンツパスを含む共有リンクと関連付けられる共有インデックス入力を更新するために、コンテンツパスと共有リンクとを使用することができる。
【００６５】
図５Ａ乃至図５Ｃは、予めキャッシュした共有リンクをユーザに利用可能にする一実施形態を示す。図示するように、図５Ａにおいて、クライアントデバイス１０２ｉは、ファイルパス”ｆｏｏ”とともにコンテンツアイテム”Ａ”を含む、クライアントデバイス１０２ｉは、共有リンクを含まないローカルストレージ５０５を含む。
【００６６】
さらに、コンテンツ管理システム１０６は、３つの共有リンク”Ｘ”、”Ｙ”、及び”Ｚ”を作成しており、共有インデックス５１０の３つの共有リンクのそれぞれに対するエントリも作成している。図示するように、共有インデックス５１０の各エントリは、共有リンクの値を含み、コンテンツパスの値は含まない。
【００６７】
図５Ｂは、コンテンツ管理システム１０６が３つの共有リンク”Ｘ”、”Ｙ”、及び”Ｚ”をメッセージ５１５を介してクライアントデバイス１０２ｉへ送信する様子を示す。図示するように、送信された共有リンクは、クライアントデバイス１０２ｉ上のローカルストレージ５０５に格納される。コンテンツ管理システム１０６は、任意の時間でメッセージ５１５をクライアントデバイスへ送信することができる。例えば、いくつかの実施形態において、コンテンツ管理システム１０６は、クライアントデバイス１０２ｉがコンテンツ管理システム１０６によって管理されるストレージアカウントで認証されると、クライアントデバイス１０２ｉへメッセージ５１５を送信することができる。
【００６８】
図５Ｃは、クライアントデバイス１０２ｉがユーザからの共有入力を受信すると、予めキャッシュされた共有リンクを利用可能にする様子を示す。クライアントデバイス１０２ｉは、コンテンツアイテム”Ａ”を共有するためにユーザから共有入力を受信することができる。共有入力を受信すると、クライアントデバイス１０２ｉは、任意の利用可能な共有リンクを識別するために、ローカルメモリ５０５を検索することができる。図示するように、３つの共有リンク全てが利用可能であり、クライアントデバイス１０２ｉは、ユーザに共有リンク”Ｘ”を提供することができる。
【００６９】
共有入力の受信に応じて、ユーザに共有リンク”Ｘ”を提供すると、クライアントデバイス１０２ｉは、コンテンツ管理システム１０６へ共有リクエスト５２０を送信することができる。共有リクエスト５２０は、コンテンツアイテム”Ａ”のコンテンツパス”ｆｏｏ”とともに、ユーザへ提供される共有リンク”Ｘ”を含むことができる。
【００７０】
コンテンツ管理システム１０６は、共有インデックス５１０を更新するために、共有リンク”Ｘ”と、コンテンツパス”ｆｏｏ”とを使用することができる。図示するように、コンテンツ管理システム１０６は、クライアントデバイス１０２ｉから受信したコンテンツパス”ｆｏｏ”を含むように共有リンク”Ｘ”と関連付けられるエントリを更新している。
【００７１】
さらに、いくつかの実施形態において、コンテンツ管理システム１０６は、共有リクエスト５２０の受信に応じて、クライアントデバイス１０２ｉ上のローカルメモリ５０５に格納された共有リンク”Ｘ”を置き換えるために新たな共有リンクを送信することができる。代替的に、いくつかの実施形態において、クライアントデバイス１０２ｉは、ローカルメモリ５０５に格納された共有リンクの数が少ない、例えば割り当てられていない共有リンクのみが利用可能であると判定すると、コンテンツ管理システムから新たな共有リンクを要求するように構成されうる。
【００７２】
図６は、ローカルメモリに格納された共有リンクをユーザに提供するクライアントデバイスの方法の一実施形態を示す。図６には特定のステップが示されるものの、他の実施形態では、より多いステップ、より少ないステップを有する方法であってもよい。図示するように、本方法はブロック６０５から開始され、クライアントデバイスが共有すべきコンテンツアイテムを識別するユーザからの共有入力を受信する。共有入力を受信すると、本方法は、ブロック６１０に進み、クライアントデバイスは、利用可能な共有リンクがクライアントデバイスのローカルメモリに格納されているかどうかを判定する。利用可能な共有リンクがコンテンツアイテムと関連付けられていない共有リンクであってもよく、即ち、共有リンクが共有入力に応じてユーザに提供されない。
【００７３】
ブロック６１０で、クライアントデバイスがローカルメモリに利用可能共有リンクがないと判定した場合、本方法は、ブロック６３５へ進み、エラーメッセージがユーザへ提示される。例えば、エラーメッセージは、ユーザに対して、共有リンクが当該時間で提供できず、ユーザは後に再度試みるべきであることを警告することができる。その後、本方法は終了する。
【００７４】
ブロック６１０で、クライアントデバイスがローカルストレージに格納された利用可能な共有リンクがあると判定した場合、本方法はブロック６１５に進み、クライアントデバイス利用可能な共有リンクをデータバッファに格納する。本方法はその後ブロック６２０に進み、クライアントデバイスは共有リンクがデータバッファに格納されたことをユーザに通知する。
【００７５】
ブロック６２５で、クライアントデバイスは、コンテンツ管理システムへ共有リクエストを送信する。共有リクエストは、共有リンクと、コンテンツアイテムと関連付けられたコンテンツパスとを含むことができる。本方法はその後ブロック６３０へ進み、新たな共有リンクがコンテンツ管理システムから受信されうる。新たな共有リンクは、ローカルストレージに格納され、他の共有入力の受信に応じてユーザに提供されうる。
【００７６】
図７は、クライアントデバイス上のローカルストレージに格納された共有リンクをユーザに提供するコンテンツ管理システムの方法の一実施形態を示す。図７には特定のステップが示されるものの、他の実施形態では、より多いステップ、より少ないステップを有する方法であってもよい。図示するように、本方法はブロック７０５から開始され、コンテンツ管理システムは、共有リンクを生成する。共有リンクは当分野の種々の既知の方法を用いてせいせいされるが、好適な実施形態において、生成された共有リンクのそれぞれは固有である。
【００７７】
共有リンクを生成すると、コンテンツ管理システムは、共有インデックスの新たなエントリを作成することができる。共有インデックスは、各共有リンクがアクセスを提供する、コンテンツアイテムのコンテンツパスとともに、コンテンツ管理システムによって生成された共有リンクをリストアップすることができる。コンテンツ管理システムによって生成された新たなコンテンツエントリは、生成した共有リンクを含むことができ、コンテンツパスに対する値は含まない。
【００７８】
共有インデックスのエントリが作成されると、コンテンツ管理システムは、共有リンクをクライアントデバイスへ送信することができ、それはクライアントデバイスのローカルメモリに格納されうる。
【００７９】
ブロック７２０で、コンテンツ管理システムは、クライアントデバイスから共有リクエストを受信することができる。共有リクエストは、コンテンツパスとともに共有リンクを含むことができる。その後、本方法はブロック７２５に進み、コンテンツ管理システムは、クライアントデバイスから受信したコンテンツパスを含む共有リンクに関連付けられた共有インデックスのエントリを更新する。その後本方法は終了するか、又は、繰り返される。
【００８０】
図１の説明に戻り、開示された技術の１つの利点は、コンテンツ管理システム１０６に格納されているコンテンツアイテムを必要とすることなく、共有リンクがユーザに提供されることである。例えば、ユーザは、コンテンツ管理システム１０６へコンテンツアイテムが更新される前に、クライアントデバイス１０２ｉ上にコンテンツアイテムを共有するように選択することができる。
【００８１】
共有リンクをユーザに利用可能とすることができるものの、共有リンクはコンテンツアイテムがコンテンツ管理システム１０６に更新されるまで、コンテンツへのアクセスを提供しないであろう。従って、共有モジュール１３０は、共有リンクを介して要求されたコンテンツアイテムがコンテンツ管理システム１０６に格納されているかどうかを判定し、コンテンツアイテムがコンテンツ管理システム１０６に格納されていなければユーザにエラーメッセージを返すように構成される。
【００８２】
いくつかの実施形態において、クライアントデバイス１０２ｉは、当該クライアントデバイス１０２ｉで作成されるように、コンテンツアイテムへの共有リンクを作成するように構成されうる。例えば、ユーザは、クライアントデバイス１０２ｉのカメラで写真を撮ったり、或いは、クライアントデバイス１０２ｉで提示される画面のスクリーンショットを撮ったりすることによって、クライアントデバイス１０２ｉによって提供される機能を用いてクライアントデバイス１０２ｉ上でコンテンツアイテムを作成することができる。
【００８３】
クライアントデバイス１０２ｉは、新たに作成されたコンテンツアイテムを共有する共有入力である場合にクライアントデバイス１０２ｉのコンテンツアイテムの作成を考慮するように構成されうる。従って、例えばクライアントデバイス１０２ｉのスクリーンショットを撮ることによってコンテンツアイテムをユーザが作成すると、クライアントデバイスは、ユーザへ新たに作成されたクライアントデバイスへの共有リンクを利用可能とするように攻勢される。例えば、いくつかの実施形態において、クライアントデバイス１０２ｉは共有リンクに対する、コンテンツ管理システム１０６へ共有リクエストを送信することができる。或いは、いくつかの実施形態において、クライアントデバイス１０２ｉは、クライアントデバイス１０２ｉのユーザに利用可能とする、クライアントデバイス１０２ｉ上のローカルメモリに格納された、予めキャッシュされた共有リンクを作成することができる。
【００８４】
したがって、新たなコンテンツアイテムをユーザ作成すると、クライアントデバイス１０２ｉは、例えばクライアントデバイス上のデータバッファに共有リンクを格納することによってコンテンツアイテムにアクセスする共有リンクを利用可能にすることができる。ユーザは、電子メール、ソーシャルネットワーキングホスト等へデータバッファに格納された共有リンクを貼り付けることによってコンテンツアイテムを共有することができる。
【００８５】
コンテンツ管理システム１０６が特定のコンポーネントで提示されている一方で、システム１０６のアーキテクチャ構成がただの１つの可能な構成であり、より多い構成又はより少ない構成での他の構成も可能であることを当業者には理解されるべきである。
【００８６】
図８は、共有リンクによって要求されるコンテンツアイテムを返す方法の一実施形態を示す。図８には特定のステップが示されるものの、他の実施形態では、より多いステップ、より少ないステップを有する方法であってもよい。図示するように、本方法はブロック８０５から開始され、コンテンツアイテムのリクエストが要求側のクライアントデバイスからコンテンツ管理システムで受信される。コンテンツアイテムのリクエストは、公開されている共有されたコンテンツアイテムにアクセスするリクエストであってもよい。
【００８７】
コンテンツアイテムのリクエストは、コンテンツアイテムを共有するように作成された共有リンクを用いて送信されうる。例えば、いくつかの実施形態において、コンテンツアイテムのリクエストは、共有リンクをユーザが選択すると、送信されうる。或いは、いくつかの実施形態において、コンテンツアイテムのリクエストは、ウェブブラウザアプリケーションのＵＲＬフィールドに共有リンクをユーザが入力すると送信されてもよい。
【００８８】
コンテンツアイテムのリクエストを受信すると、本方法はブロック８１０に進み、コンテンツ管理システムは、要求されたコンテンツアイテムに関連付けられた共有インデックスのエントリを識別する。例えば、コンテンツアイテムのリクエストは、共有リンクを含むことができ、コンテンツ管理システムは、対応するエントリに対する共有インデックスを検索するために共有リンクを使用することができる。
【００８９】
ブロック８１５で、コンテンツ管理システムは、識別された共有インデックスのエントリがデータパスを含むかどうかを判定する。例えば、実施形態において、共有リンクがクライアントデバイスのローカルメモリからユーザへ提供されものの、クライアントデバイスはコンテンツ管理システムへコンテンツアイテムのコンテンツパスをまだ送信していない。
【００９０】
ブロック８１５でコンテンツパスが共有インデックスのエントリに含まれていない場合、本方法はブロック８３５に進み、エラーメッセージが要求側のクライアントデバイスへ返される。エラーメッセージは要求されたコンテンツアイテムがまだ利用可能でないことを示してもよい。
【００９１】
ブロック８１５で共有インデックスのエントリがコンテンツパスに含まれている場合、本方法はブロック８２０に進み、コンテンツ管理システムはコンテンツパスを用いてコンテンツアイテムを位置付ける。ブロック８２５で、コンテンツ管理システムは、コンテンツアイテムがコンテンツ管理システムに格納されているかどうかを判定する。
【００９２】
ブロック８２５でコンテンツアイテムがコンテンツ管理システムに格納されていないと判定されると、本方法はブロック８３５に進み、エラーメッセージが要求側のユーザデバイスへ送信される。エラーメッセージは、コンテンツアイテムがコンテンツ管理システムにまだ格納されていないことを示してもよい。いくつかの実施形態において、エラーメッセージがコンテンツアイテムの更新状態を示すこともできる。例えば、エラーメッセージは、コンテンツアイテムが更新を開始しているかどうか、開始していればコンテンツ管理システムへの更新がどの程度完了しているかを示すことができる。さらに、エラーメッセージは更新の予測完了時間を含むことができる。
【００９３】
ブロック８２５でコンテンツアイテムがコンテンツアイテムに格納されているとコンテンツ管理システムが判定した場合、本方法はブロック８３０に進み、コンテンツ管理システムは要求側のクライアントデバイスへコンテンツアイテムを返すことができる、その後本方法は終了する。
【００９４】
図９Ａ及び図９Ｂは可能なシステムの実施形態を示す。本技術を実施する際により好適な実施形態が当業者に明らかになるであろう。当業者はまた他のシステムの実施形態が可能であることを用意に理解するであろう。
【００９５】
図９Ａは、従来のシステムバスのコンピュータシステムアーキテクチャ９００を示し、システムのコンポーネントはバス９０５を用いてそれぞれ他のコンポーネントと電気的に通信される。例示のシステム９００は、処理部（ＣＰＵ又はプロセッサ）９１０と、読み取り専用メモリ（ＲＯＭ）９２０、ランダムアクセスメモリ（ＲＡＭ）９２５などのシステムメモリ９１５を含む種々のシステムコンポーネントをプロセッサ９１０へ連結するシステムバス９０５とを含む。システム９００は、プロセッサ９１０に近接して直接的に接続されるか、又は、プロセッサ９１０の一部として実装される高速メモリのキャッシュを含むことができる。システム９００は、プロセッサ９１０によって素早くアクセスするように、メモリ９１５及びストレージデバイス９３０の少なくとも１つからデータをキャッシュ９１２へコピーすることができる。本方法において、プロセッサ９１０がデータを待つ間の遅延を避けるように、キャッシュが性能の向上をもたらす。それらのモジュール及び他のモジュールが種々のアクションを実行するようにプロセッサ９１０を制御するか又は制御するように構成される。他のシステムメモリ９１５が使用可能であってもよい。メモリ９１５は異なる性能の特徴で複数の異なる種別のタイプを含むことができる。プロセッサ９１０は、一般用途のプロセッサと、ストレージデバイス９３０に格納された、プロセッサ９１０を制御するように構成されるモジュール１（９３２）、モジュール２（９３４）、モジュール３（９３６）などのハードウェアモジュール又はソフトウェアモジュールとともに、ソフトウェア命令が実際のプロセッサの設計に組み込まれた特定用途のプロセッサとを含むことができる。プロセッサ９１０は、基本的には、複数のコア若しくはプロセッサ、バス、メモリコントローラ、キャッシャなどを含む、完全に内蔵型のコンピュータシステムであってもよい。複数のコアプロセッサは対称又は非対称であってもよい。
【００９６】
ユーザがコンピュータデバイス９００と情報をやり取りすることを可能とするために、入力デバイス９４５は、音声用のマイクロフォン、ジェスチャ又はグラフィカル入力用のタッチセンサー方式のスクリーン、キーボード、マウス、モーション入力、音声などの任意の数の入力機構であってもよい。出力デバイス９３５はまた、当業者にすでに知られている１つ以上の出力機構であってもよい。いくつかの例において、多様なシステムはコンピュータデバイス９００と通信するために複数の種別の入力をユーザが提供することを可能とする。通信インタフェース９４０は、一般的にユーザ入力及びシステム出力を調節し、管理することができる。任意の特定のハードウェア構成での動作に制限することはなく、従って、ここでの基本的な特徴は、開発されて改善されたハードウェア又はファームウェア構成に容易に適合するであろう。
【００９７】
ストレージデバイス９３０は、不揮発性メモリであり、磁気カセット、フラッシュメモリカード、固体素子メモリデバイス、デジタル多用途ディスク、カートリッジ、ランダムアクセスメモリ（ＲＡＭ）９２５、リードオンリメモリ（ＲＯＭ）９２０及びそれらの組み合わせなどのコンピュータによってアクセス可能なデータを記憶する、ハードディスクや他のタイプのコンピュータで読み取り可能な媒体であってもよい。
【００９８】
ストレージデバイス９３０は、プロセッサ９１０を制御するためのソフトウェアモジュール９３２、９３４、９３６を含むことができる。他のハードウェア又はソフトウェアモジュールが考慮されてもよい。ストレージデバイス９３０は、システムバス９０５へ接続される。１つの形態において、特定の機能を実行するハードウェアモジュールは、機能を実行するために、プロセッサ９１０、バス９０５、ディスプレイ９３５などの必要なハードウェアコンポーネントと接続して、コンピュータで読み取り可能な媒体に格納されたソフトウェアコンポーネントを含むことができる。
【００９９】
図９Ｂは説明した方法を実行し、グラフィカルユーザインタフェース（ＧＵＩ）を生成して表示するために使用されるチップセットアーキテクチャを含むコンピュータシステム９５０を示す。コンピュータシステム９５０は、本開示の技術を実行するために使用されうるコンピュータハードウェア、ソフトウェア、及びファームウェアの一例である。システム９５０は、特定したコンピュータの計算を実行するように構成されたソフトウェア、ファームウェア及びハードウェアを実行可能な物理的に又は論理的に区別された任意の数の資源の代表例であるプロセッサ９５５を含んでもよい。プロセッサ９５５は、プロセッサ９５５への入力及びプロセッサ９５５からの出力を制御することができるチップセット９６０と通信することができる。本実施例において、チップセット９６０は、ディスプレイなどの出力９６５へ情報を出力し、磁気媒体、固体素子媒体などを含むストレージデバイス９７０から情報を読み込んだり、ストレージデバイス９７０へ情報を書き込んだりすることができる。チップセット９６０はまた、ＲＡＭ９７５からデータを読み込んだり、ＲＡＭ９７５へデータを書き込んだりすることもできる。種々のインタフェースコンポーネント９８５と相互に接続するブリッジ９８０はチップセット９６０と相互に接続するために提供されうる。そのようなユーザインタフェースコンポーネント９８５は、キーボード、マイクロフォン、タッチ検出及び処理回路、マウスなどのポインティングデバイス、を含むことができる。一般的には、システム９５０への入力は、機械生成型及び人生成型の少なくとも一方の種々の発信源のいずれかから行われる。
【０１００】
チップセット９６０はまた、異なる物理的なインタフェースを有する１つ以上の通信インタフェース９９０と相互に接続することができる。そのような通信インタフェースは、有線及び無線のローカルエリアネットワーク、ブロードバンド無線ネットワークや、パーソナルエリアネットワークにおけるインタフェースを含むことができる。本開示のＧＵＩを生成し、表示し、用いるための方法のいくつかのアプリケーションは、物理インタフェースを介してオーダしたデータセットを受信する工程、又は、ストレージ９７０、又は９７５に格納されたデータを解析するプロセッサ９５５によって機械自身で生成されたオーダしたデータセットを受信する工程を含む。さらに、機械はユーザインタフェースコンポーネント９８５を介したユーザからの入力を受信し、プロセッサ９５５を用いてそれらの入力を解釈することによる閲覧機能などの、適切な機能を実行することができる。
【０１０１】
例示のシステム９００、９５０が、１つのプロセッサ９１０以上を有してもとく、より高い処理性能を提供するネットワーク接続されたコンピュータデバイスのグループ又はクラスタの一部であってもよいことが明らかである。
【０１０２】
明瞭な説明のため、いくつかの例において、本技術は、デバイス、デバイスコンポーネント、ソフトウェアに実装された方法のステップ若しくはルーチン、又はハードウェアとソフトウェアの組み合わせを備える機能ブロックを含む個々の機能ブロックを含むように提示されうる。
【０１０３】
いくつかの実施形態において、コンピュータで読み取り可能なストレージデバイス、媒体、及びメモリは、ビットストリームなどを含むケーブル信号又は無線信号を含むことができる。しかしながら、言及すると、一時的でないコンピュータで読み取り可能な記憶媒体は、エネルギ、キャリア信号、電磁波及び信号自体などを明確に排除する。
【０１０４】
上述した例示に係る方法は、コンピュータで読み取り可能な記憶媒体に格納され、又は、当該記憶媒体に格納されたコンピュータで実行可能な命令を用いて実装される。そのような命令は、例えば、所定の機能又は機能のグループを実行するために一般用途のコンピュータ、特定用途のコンピュータ又は特定用途の処理デバイスに実行させる或いは構成する命令及びデータを含むことができる。使用されるコンピュータ資源の部分がネットワーク上でアクセス可能である。コンピュータで実行可能な命令は、例えば、アセンブリ言語、ファームウェア、又はソースコードなどのバイナリ、中間フォーマット命令であってもよい。命令や上述した例示に係る方法の中で使用される情報及び作成される情報の少なくとも一方を格納するために使用されるコンピュータで読み取り可能な媒体の例は、磁気ディスク若しくは光学ディスク、フラッシュメモリ、不揮発性メモリで提供されるＵＳＢデバイス、及びネットワーク接続されたストレージデバイスなどを含む。
【０１０５】
本開示に従って方法を実行するデバイスは、ハードウェア、ファームウェア及びソフトウェアの少なくとも１つを含むことができ、種々のフォームファクタをとることができる。そのようなフォームファクタの典型的な例示は、ラップトップ、スマートフォン、スモールフォームファクタのパーソナルコンピュータ、携帯情報端末などを含むことができる。ここで開示の機能はまた、周辺機器又はアドインカードに実装されてもよい。そのような機能はまた、他の例示の方法によって、異なるチップ又は異なる単一のデバイスで実行する異なる処理から回路基板上に実装される。
【０１０６】
命令、そのような目例を搬送する媒体、それらを実行するためのコンピュータ資源、及びそのようなコンピュータ資源をサポートするための他の構造は、上述した開示で説明した機能を提供するための手段である。
【０１０７】
種々の例示及び他の情報が添付の特許請求の範囲の範囲内の態様を説明するために使用されたが、そのような例示の特定の特徴又は構成に基づき暗示されるべき請求項の限定はなく、当業者は広く種々の実現を導出するためにそれらの例示を使用することができる。さらに、いくつかの構成要件が例示の構造の特徴及び方法のステップに特有の言語で説明したが、添付の特許請求の範囲に定義した構成要件が説明した特徴又は動作に限定される必要がないことが理解されるべきである。例えば、そのような機能は、ここで特定したもの以外のコンポーネントで異なって分散されるか、或いは、実行されてもよい。むしろ、本開示の特徴及びステップは、添付の特許請求の範囲の中で、システム及び方法のコンポーネントの例として開示されている。
【０１０８】
本出願は、２０１３年３月８日出願のＵＳ仮出願第６１，７７５，３６７号と、２０１４年３月１０日出願のＵＳ出願第１４／２０３，４４２号の優先権を主張し、それら全体の記載において、ここでの参照により明示的に組み込まれるものである。
【図１】
2016516233.tif 000003
【図２】
2016516233.tif 000004
【図３】
2016516233.tif 000005
【図４】
2016516233.tif 000006
【図５Ａ】
2016516233.tif 000007
【図５Ｂ】
2016516233.tif 000008
【図５Ｃ】
2016516233.tif 000009
【図６】
2016516233.tif 000010
【図７】
2016516233.tif 000011
【図８】
2016516233.tif 000012
【図９Ａ】
2016516233.tif 000013
【図９Ｂ】
2016516233.tif 000014
【国際調査報告】
2016516233.tif 000015
2016516233.tif 000016