(57)【特許請求の範囲】
【請求項１】
ユーザのクライアントデバイスが、前記クライアントデバイスのコンテンツライブラリの内部に第１コンテンツアイテムを格納する手段であって、前記コンテンツライブラリがオンラインコンテンツ管理システムによって管理されており、前記第１コンテンツアイテムが他のユーザと共有される、格納する手段と、
前記クライアントデバイスが、前記コンテンツライブラリの外部に第２コンテンツアイテムを格納する手段と、
前記クライアントデバイスが、前記第２コンテンツアイテムへのリンクを生成するためのユーザ入力を受け付ける手段と、
前記クライアントデバイスが、前記ユーザ入力に応じて、前記第２コンテンツアイテムのコピーである第３コンテンツアイテムを生成する手段と、
前記クライアントデバイスが、前記第３コンテンツアイテムを前記クライアントデバイスのキャッシュに格納する手段と、
前記クライアントデバイスが、前記第３コンテンツアイテムを前記オンラインコンテンツ管理システムに送信する手段と、
前記オンラインコンテンツ管理システムから、前記オンラインコンテンツ管理システムに保持される前記第３コンテンツアイテムにアクセスするためのリンクを受け付ける手段と、を備えるシステム。
【請求項２】
前記第２コンテンツアイテムが前記クライアントデバイスのどこに保持されているかを示すディレクトリパスを含む、前記第３コンテンツアイテムの説明を送信する手段をさらに備える請求項１に記載のシステム。
【請求項３】
前記第３コンテンツアイテムのコンテンツに基づいてひとつ以上の第１ハッシュ値を生成する手段と、
前記ひとつ以上の第１ハッシュ値を前記オンラインコンテンツ管理システムに送信する手段と、
前記ひとつ以上の第１ハッシュ値の一部に対応するひとつ以上の第２ハッシュ値を、前記オンラインコンテンツ管理システムから受け付ける手段と、
前記ひとつ以上の第２ハッシュ値に対応する前記第３コンテンツアイテムのコンテンツを前記オンラインコンテンツ管理システムに送信する手段と、をさらに備える請求項１または２に記載のシステム。
【請求項４】
前記リンクは、前記オンラインコンテンツ管理システムに保持されている前記第３コンテンツアイテムに関連付けられたメタデータを参照するＵＲＬである請求項１から３のいずれか一項に記載のシステム。
【請求項５】
前記第３コンテンツアイテムは、前記オンラインコンテンツ管理システムによって同期されない請求項１から４のいずれか一項に記載のシステム。
【請求項６】
前記第３コンテンツアイテムを保持する前記キャッシュを含むディレクトリは、前記オンラインコンテンツ管理システムによって同期されるコンテンツアイテムとは同期しない請求項１から５のいずれか一項に記載のシステム。
【請求項７】
前記コンテンツライブラリは前記クライアントデバイスと可視的に関連付けられており、前記第２コンテンツアイテムは前記クライアントデバイスの前記コンテンツライブラリとは可視的には関連付けられていない請求項１から６のいずれか一項に記載のシステム。
【請求項８】
前記コンテンツライブラリは少なくともひとつの第２クライアントデバイスと同期され、かつ、前記第２コンテンツアイテムは前記第２クライアントデバイスに可視的に表示されることはない請求項７に記載のシステム。
【請求項９】
前記第２コンテンツアイテムは前記オンラインコンテンツ管理システムによる同期のために前記クライアントデバイスの前記コンテンツライブラリの内部へ移動可能である請求項７に記載のシステム。
【請求項１０】
コンテンツ管理システムのサーバデバイスにおいて、かつ、前記コンテンツ管理システムによって管理されているコンテンツライブラリを有するユーザのクライアントデバイスから、前記コンテンツライブラリの外部の第２コンテンツアイテムの説明を受け付ける手段であって、前記クライアントデバイスが前記コンテンツライブラリの内部に第１コンテンツアイテムを格納し、前記第１コンテンツアイテムが他のユーザと共有される、受け付ける手段と、
前記第２コンテンツアイテムの説明に基づいて、前記コンテンツ管理システムの外部コンテンツデータベースに、前記コンテンツライブラリの外部のコンテンツアイテムについてのメタデータエントリを生成する手段と、
前記メタデータエントリにアクセスするためのリンクを生成する手段と、
前記クライアントデバイスに前記リンクを送信する手段と、を備えるシステム。
【請求項１１】
前記第２コンテンツアイテムのコンテンツデータに対応するひとつ以上の第１ハッシュ値を受け付ける手段と、
前記第１ハッシュ値を、前記コンテンツ管理システムのコンテンツデータストアのハッシュ値インデックスと比較する手段と、
前記比較に基づいて、前記ひとつ以上のハッシュ値のうちのどれが前記コンテンツデータストアに存在しないかを決定する手段と、
前記コンテンツデータストアに存在しない前記ひとつ以上の第１ハッシュ値に対応するひとつ以上の第２ハッシュ値を、前記クライアントデバイスに送信する手段と、をさらに備える請求項１０に記載のシステム。
【請求項１２】
前記ひとつ以上の第２ハッシュ値に対応するコンテンツデータを受け付ける手段と、
前記コンテンツデータを前記コンテンツデータストアに格納する手段と、をさらに備える請求項１１に記載のシステム。
【請求項１３】
前記メタデータエントリは、前記クライアントデバイスにおける前記第２コンテンツアイテムの位置を表すディレクトリパスを含み、前記位置は前記コンテンツライブラリの外部である請求項１０から１２のいずれか一項に記載のシステム。
【請求項１４】
前記メタデータエントリは隠された名前空間に関連付けられる請求項１０から１３のいずれか一項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願へのクロスリファレンス
本願は、「SHARING UNMANAGED CONTENT USING A CONTENT MANAGEMENT SYSTEM」というタイトルの２０１４年７月２１日に提出された米国特許仮出願第62/026,996号および「SHARING UNMANAGED CONTENT USING A CONTENT MANAGEMENT SYSTEM」というタイトルの２０１４年７月３１日に提出された米国特許出願第14/448,173号の優先権の利益を享受する。それらの両方の出願は、それらの全体が全ての目的において参照により本明細書に組み入れられる。
【０００２】
技術分野
本技術はデバイス間でコンテンツを共有することに関する。
【背景技術】
【０００３】
オンラインコンテンツ管理システムにより、該システムの加入者は、コンテンツアイテムをオンラインで保持することができ、それによりそのコンテンツアイテムは種々のクライアントデバイスからアクセス可能になる。これらのオンラインコンテンツ管理システムは、クライアントデバイス上の加入者のコンテンツライブラリにコンテンツアイテムを追加することで加入者がコンテンツアイテムをオンラインコンテンツストレージにアップロードすることを可能とし、かつ加入者のコンテンツライブラリに保持されるコンテンツアイテムへのオンラインストレージからのアクセスを可能とする。これらのオンラインコンテンツ管理システムは多くの場合、加入者が保持されているコンテンツアイテムを他の加入者および非加入者（「受領者」）と共有することを可能とするフィーチャを含む。しかしながら、加入者は、加入者のコンテンツライブラリ内にあってオンラインコンテンツ管理システムによって管理されているコンテンツアイテムしか共有することができない。
【発明の概要】
【０００４】
ある実施では、オンラインコンテンツ管理システムの加入者は、加入者のコンテンツライブラリの外部にあるコンテンツアイテムを共有することができる。計算デバイスは、加入者のコンテンツライブラリに関連付けられている管理コンテンツアイテムを含んでもよい。計算デバイスは、加入者のコンテンツライブラリの外部に保持される非管理コンテンツアイテムを含んでもよい。加入者は、非管理コンテンツアイテムへのリンク（例えば、ＵＲＬ、ファイルパス、位置参照など）を生成するための、非管理コンテンツアイテムに関連付けられた入力を提供してもよい。リンクを生成する際、非管理コンテンツアイテムはオンラインコンテンツ管理システムにアップロードされ、加入者のコンテンツライブラリとは別に保持されてもよい。生成されたリンクは受領者ユーザ（例えば、加入者や非加入者）と共有されてもよい。受領者は、生成されたリンクを用いて、オンラインコンテンツ管理システムにアップロードされて保持されている非管理コンテンツアイテムにアクセスしてもよい。
【図面の簡単な説明】
【０００５】
【図１Ａ】図１Ａ−１Ｃは、非管理コンテンツアイテムを共有するための例示的なグラフィカルユーザインタフェースを示す。
【図１Ｂ】図１Ａ−１Ｃは、非管理コンテンツアイテムを共有するための例示的なグラフィカルユーザインタフェースを示す。
【図１Ｃ】図１Ａ−１Ｃは、非管理コンテンツアイテムを共有するための例示的なグラフィカルユーザインタフェースを示す。
【図２】オンラインコンテンツ管理システムを用いて非管理コンテンツアイテムを共有するための例示的システムを示すブロック図である。
【図３】非管理コンテンツアイテムへのリンクを共有するための例示的なクライアントプロセスを示す。
【図４】非管理コンテンツアイテムへのリンクを共有するための例示的なサーバプロセスを示す。
【図５】サーバに保持される非管理コンテンツアイテムにアクセスするための要求を処理するための例示的なサーバプロセスを示す。
【図６Ａ】図６Ａおよび図６Ｂは、例示的なシステムの実施の形態を示す。
【図６Ｂ】図６Ａおよび図６Ｂは、例示的なシステムの実施の形態を示す。
【発明を実施するための形態】
【０００６】
本開示のさまざまな実施の形態について、以下に詳しく論じる特定の実装について論じているが、これは説明のみを目的として行われていることを理解されたい。当業者は、本開示の趣旨および範囲から逸脱することなく他のコンポーネントや構成が用いられうることを認識するであろう。
【０００７】
図１Ａ−１Ｃは、非管理コンテンツアイテムを共有するための例示的なグラフィカルユーザインタフェース（ＧＵＩ）１００、１２０および１５０を示す。例えば、コンテンツライブラリはオンラインコンテンツ管理システムによって管理されている任意の数の個別のコンテンツアイテムからなってもよい。コンテンツライブラリに関連付けられているコンテンツアイテムは、クライアントコンピュータシステムにおいて、オンラインコンテンツ管理システムによって管理されていないコンテンツアイテムを含むファイルディレクトリ構造と共存してもよい。したがって、非管理コンテンツアイテムは、加入者のコンテンツライブラリの外部にあり、したがって、オンラインコンテンツ管理システムによって管理されないコンテンツアイテムである。オンラインコンテンツ管理システムはデバイスに亘って加入者のコンテンツライブラリを管理（例えば、保持、同期等）する。コンテンツアイテム（例えば、管理されているか管理されていない）は、文書、テキストファイル、音声ファイル、ビデオファイルなどの任意のタイプのファイルであってもよい。さらに、コンテンツアイテムは、フォルダかまたはコンテンツアイテムを一緒にグループ化する他の機構であってもよい。
【０００８】
ある実施では、計算デバイス（例えば、モバイルデバイス、ハンドヘルドデバイス、ラップトップコンピュータ、タブレットコンピュータ、クライアントデバイスなど）は、オンラインコンテンツ管理システムの加入者が受領者ユーザ（例えば、オンラインコンテンツ管理システムの他の加入者や非加入者）と非管理コンテンツアイテムを共有することができるよう、グラフィカルユーザインタフェース１００、１２０および１５０を表示するよう構成されてもよい。
【０００９】
図１Ａは、受領者ユーザと共有すべき外部のコンテンツアイテムを選択するための例示的グラフィカルユーザインタフェース１００を示す。例えば、ＧＵＩ１００は、クライアントデバイスのファイルシステムフォルダを表すグラフィカル要素１０２（例えば、ウインドウ）を含んでもよい。例えば、クライアントデバイスは、加入者のコンテンツライブラリのコピーを保持するよう構成され、かつ、コンテンツライブラリ内のコンテンツアイテムをオンラインコンテンツ管理システムと同期させるよう構成された計算デバイスであってもよい。クライアントデバイスは、オンラインコンテンツ管理システムにアクセス可能かつ加入者のオンラインコンテンツライブラリにアクセス可能な計算デバイスであってもよい。
【００１０】
ある実施では、グラフィカル要素１０２により表示されるファイルシステムフォルダは、オンラインコンテンツ管理システムによって管理されるコンテンツライブラリの外部のフォルダであってもよい。ファイルシステムフォルダ内のコンテンツアイテムもまたコンテンツライブラリの外部であってもよく、したがって管理されていなくてもよい。クライアントデバイスのユーザ（例えば、加入者）は、グラフィカル要素１０２により提示された非管理コンテンツアイテム１０４を選択し、グラフィカル要素１０６を表示させてもよい。グラフィカル要素１０６はポップアップウインドウやプルダウンメニューであってもよく、または、選択された非管理コンテンツアイテムに対して行われるべき機能を提示して選択するための他のグラフィカル要素であってもよい。例えば、グラフィカル要素１０６は、選択された非管理コンテンツアイテムをユーザのコンテンツアイテムに加えるかそこに移動させるための選択可能アイテムを含んでもよい。
【００１１】
ある実施では、グラフィカル要素１０６は、選択された非管理コンテンツアイテム１０４を受領者と共有するための選択可能アイテム１０８を含んでもよい。例えば、ユーザは、選択された非管理コンテンツアイテム１０４に対するリンク（例えば、ＵＲＬ、ファイルパス、呼び出し可能参照など）を生成するために、アイテム１０８を選択してもよい。例えば、非管理コンテンツアイテム１０４が選択されると、クライアントデバイスは非管理コンテンツアイテム１０４をオンラインコンテンツ管理システムにアップロードしてもよい。オンラインコンテンツ管理システムはクライアントデバイスに、オンラインコンテンツ管理システムによって保持される非管理コンテンツアイテム１０４のオンラインコピーへのリンクを返してもよい。オンラインコンテンツ管理システムは非管理コンテンツアイテム１０４をユーザのコンテンツライブラリの外部に保持しつつ、リンクの受領者がオンラインで非管理コンテンツアイテム１０４にアクセスすることを可能としてもよい。
【００１２】
図１Ｂは、共有リンクのためのアクセス可用性パラメータを指定するための例示的なグラフィカルユーザインタフェース１２０を示す。例えば、図１Ａを参照して上述されたようにユーザが非管理コンテンツアイテムへのリンクを共有することを選択することに応じて、ＧＵＩ１２０が表示されてもよい。ＧＵＩ１２０は、生成されたリンク１２４（例えば、ＵＲＬ）を示すグラフィカル要素１２２（例えば、ウインドウやポップアップなど）と、そのリンクに誰がアクセス可能かをユーザが指定することを可能とするグラフィカル要素１２６（例えば、プルダウンメニュー）と、そのリンクの有効期限をユーザが指定することを可能とするグラフィカル要素１２８（例えば、プルダウンメニュー）と、を含んでもよい。例えば、ユーザによって選択される場合、グラフィカル要素１２６はオプション（例えば、だれでも、特定のグループ、特定の受領者）の選択可能なリストを提示してもよい。ユーザは、このリストから選択することで、生成されたリンクに誰がアクセス可能かを指定できる。アクセス権が与えられていない受領者ユーザがリンクを用いて非管理コンテンツアイテムへのアクセスを試みた場合、その受領者は、そのユーザはリンクにアクセスする権利を有さないことを示す通知を受けるであろう。ユーザによって選択される場合、グラフィカル要素１２８はオプション（例えば、一日、三十日、二ヶ月、一年など）の選択可能なリストを提示してもよい。ユーザは、このリストから選択することで、生成されたリンクの有効期限を指定できる。有効期限が到来すると、オンラインコンテンツ管理システムはリンクを非アクティブ化させる。有効期限後にリンクを用いることを試みる受領者は、リンクがもはやアクティブでないことを示す通知をオンラインコンテンツ管理システムから受けるであろう。ある実施では、ユーザはリンクをキャンセルするための明示的な入力を提供してもよい。例えば、生成されたリンクのリストを示すユーザインタフェースが表示されてもよい。ユーザは、リンクの隣のグラフィカル要素（例えば、ボタン）を選択することで、リンクをキャンセルすることができる。キャンセルされたリンクを用いることを試みる受領者は、リンクがもはやアクティブでないことを示す通知をオンラインコンテンツ管理システムから受けるであろう。
【００１３】
図１Ｃは、非管理コンテンツアイテムへのリンクを共有するための例示的なグラフィカルユーザインタフェース１５０を示す。例えば、グラフィカルユーザインタフェース１５０はクライアントデバイス上で構成される電子メッセージアプリケーションのユーザインタフェースであってもよい。ＧＵＩ１５０は、電子メッセージ（例えば、テキストメッセージ、インスタントメッセージ、電子メールメッセージなど）の内容を示すグラフィカル要素１５２（例えば、ウインドウ）を含んでもよい。ユーザがＧＵＩ１００および／またはＧＵＩ１２０を用いて非管理コンテンツアイテムへのリンクを生成した後、ユーザは、そのリンクを表すテキスト１５４（例えば、ＵＲＬ、ファイルパスなど）を電子メッセージに貼り付けてもよい。ユーザは次にそのリンクを含む電子メッセージを受領者に送ってもよい。電子メッセージを受け取ると、受領者はテキスト１５４を選択することでリンクを呼び出し、そのリンクによって表される（例えば、参照される）非管理コンテンツアイテムを見ることができる。例えば、リンクが選択されると、ウェブブラウザウインドウが開き、リンクされている非管理コンテンツアイテムがそのウェブブラウザウインドウに表示されてもよい。リンクされている非管理コンテンツアイテムが見れない状態にある場合、ウェブブラウザウインドウは後述のようにエラーメッセージを表示してもよい。
【００１４】
図２は、オンラインコンテンツ管理システムを用いて非管理コンテンツアイテムを共有するための例示的システム２００を示すブロック図である。システム２００はクライアントデバイス２０２とオンラインコンテンツ管理システム２２０とを含んでもよい。例えば、オンラインコンテンツ管理システム２２０は、コンテンツ管理システム２２０の大規模データ処理およびストレージ要求を取り扱うために、複数のサーバ、データベースおよび他の計算デバイスを含んでもよい。本明細書で説明されるオンラインコンテンツ管理システム２２０のコンポーネントは、オンラインコンテンツ管理システムを構成する複数のサーバやデータベースや他のデバイスのうちのひとつ以上において構成されてもよい。
【００１５】
ある実施では、クライアントデバイス２０２は、クライアントデバイス２０２上でローカルコンテンツライブラリ２１０を管理するコンテンツクライアント２０４を含んでもよい。コンテンツライブラリ２１０はオンラインコンテンツ管理システム２２０によって管理され、かつ、他のクライアントデバイスと同期される種々のコンテンツアイテムを含んでもよい。ある実施では、コンテンツクライアント２０４は、コンテンツ管理システム２２０のコンテンツマネジャ２２２と通信し、コンテンツライブラリ２１０をコンテンツ管理システム２２０のコンテンツライブラリ２２６と同期させてもよい。
【００１６】
ある実施では、コンテンツライブラリ２１０はコンテンツ管理システム２２０によって、コンテンツメタストア２２４内のコンテンツメタデータおよびコンテンツデータストア２３０内のコンテンツデータブロックとして保持されてもよい。例えば、コンテンツマネジャ２２２はコンテンツライブラリ２１０を表すメタデータをコンテンツメタストア２２４（例えば、データベース、データストア、データベーステーブルなど）に格納してもよい。ある実施では、コンテンツメタストア２２４は、コンテンツ管理システム２２０によって管理されるコンテンツライブラリのそれぞれについてのコンテンツライブラリメタデータ２２６を含んでもよい。
【００１７】
ある実施では、異なるコンテンツライブラリについてのメタデータは名前空間を用いて区別されてもよい。例えば、第１ユーザのコンテンツライブラリは第１名前空間に関連付けられてもよい。第２ユーザのコンテンツライブラリは第２名前空間に関連付けられてもよい。クライアントデバイス（例えば、クライアントデバイス２０２）がそのコンテンツライブラリ（例えば、コンテンツライブラリ２１０）をコンテンツ管理システム２２０に同期させる場合、クライアントデバイスはクライアントのコンテンツライブラリに関連付けられた名前空間に関連付けられたコンテンツを受けるであろう。したがって、ユーザのコンテンツライブラリの名前空間に関連付けられたコンテンツアイテムのみがユーザのコンテンツライブラリに表示されるであろう。
【００１８】
ある実施では、コンテンツライブラリ２２６に保持されるメタデータは、コンテンツライブラリ２１０の内容（例えば、コンテンツアイテムの位置、コンテンツアイテムのサイズ、コンテンツアイテムの識別子など）を記述してもよい。例えば、コンテンツライブラリ２２６に保持されるメタデータは、コンテンツライブラリ２１０のディレクトリ構造（例えば、ディレクトリの階層）を模してもよい。コンテンツライブラリ２２６に保持されるメタデータは、コンテンツライブラリ２１０に関連付けられたコンテンツ（例えば、種々のタイプのファイル）に対応する、コンテンツストア２３０に保持されるデータブロックを参照（例えば、ポインタやメモリアドレスを用いて）してもよい。したがって、コンテンツマネジャ２２２はコンテンツライブラリ２２６に保持されるメタデータを用いることで、コンテンツライブラリ２１０に保持されるコンテンツアイテムに対するコンテンツデータを取得することができる。
【００１９】
ある実施では、コンテンツデータストア２３０（例えば、データベースやファイルシステムなど）は、コンテンツマネジャ２２２によって管理されるコンテンツアイテムに対応するデータブロックを保持してもよい。例えば、コンテンツクライアント２０４がコンテンツライブラリ２１０をコンテンツ管理システム２２０と同期させる場合、コンテンツライブラリ２１０内の各コンテンツアイテムのためのコンテンツデータ（例えば、ファイル、データブロックなど）はコンテンツストア２３０に保持され、かつそこから取得されてもよい。ある実施では、コンテンツストア２３０に保持されるコンテンツデータブロックはハッシュ値によりインデクス化される。例えば、クライアントデバイスまたはサーバデバイスが対応するデータブロックの内容をハッシュ化することによって、ハッシュ値を生成してもよい。特定のデータブロックのインデクスは、その特定のデータブロック内のデータに基づいて生成されたハッシュ値である。
【００２０】
ある実施では、コンテンツマネジャ２２２はコンテンツメタストア２２４に保持されるコンテンツアイテムメタデータを用いて、コンテンツデータストア２３０において保持されるコンテンツアイテム（例えば、データ）を探してもよい。例えば、クライアントデバイス２０２のユーザは、コンテンツライブラリ２１０内で管理されているコンテンツアイテムへのリンクを共有してもよい。受領者はリンクを用いてコンテンツマネジャ２２２に、リンクされているコンテンツアイテム（例えば、リンクはリンクされているコンテンツアイテムへの参照である）へのアクセス要求を送信してもよい。コンテンツマネジャ２２２は管理されているコンテンツアイテムを特定する要求を受領者から受信してもよい。コンテンツアイテムは、リンクやＵＲＬやコンテンツパスや他の識別子によって特定されてもよい。コンテンツマネジャ２２２はコンテンツアイテム識別子をコンテンツライブラリ２２６に保持される複数のコンテンツ識別子（例えば、リンク、ＵＲＬ、コンテンツパス等）と比較し、コンテンツライブラリ２２６内のマッチするコンテンツアイテムメタデータエントリを特定してもよい。コンテンツマネジャ２２２はマッチするコンテンツアイテムメタデータ内のポインタを用いて、コンテンツデータストア２３０に保持されるコンテンツアイテムデータブロックを探しだし、コンテンツアイテムデータを要求元のクライアントデバイスに返してもよい。
【００２１】
図３は、非管理コンテンツアイテムへのリンクを共有するための例示的なクライアントプロセス３００を示す。ある実施では、オンラインコンテンツ管理システム２２０のユーザ（例えば、加入者）は非管理コンテンツアイテムへのリンクを共有してもよい。例えば、ユーザは、コンテンツライブラリ２１０の外部に保持されるコンテンツアイテムへのリンクを共有してもよい。ユーザは、例えばコンテンツクライアント２０４およびコンテンツ管理システム２０２を用いて、クライアントデバイス２０２のファイルシステム２０６に保持される非管理コンテンツアイテムへのリンクを共有してもよい。
【００２２】
ステップ３０２において、クライアントデバイスは非管理コンテンツアイテムを共有するためのユーザ入力を受け付けてもよい。ある実施では、ユーザはクライアントデバイス２０２のファイルシステム２０６に保持される非管理コンテンツアイテム（例えば、ファイル、画像、ビデオ、音声等）を選択し、受領者と共有してもよい。例えば、ユーザは、図１Ａのグラフィカルユーザインタフェース１００を用いて、非管理コンテンツアイテムを選択し、共有リンクオプションを呼び出してもよい。
【００２３】
ステップ３０４において、クライアントデバイスは選択された非管理コンテンツアイテムのコピーをキャッシュに保存してもよい。例えば、非管理コンテンツアイテムの選択を受け付け、共有リンクオプションが呼び出されると、コンテンツクライアント２０４は選択されたコンテンツアイテムをクライアントデバイス２０２上のキャッシュ２０８（例えば、メモリ）にコピーしてもよい。ある実施では、コンテンツクライアント２０４はクライアントデバイス２０２が選択されたコンテンツアイテムをコピーするのに十分な量のメモリが利用可能か否かを判定してもよい。選択されたコンテンツアイテムをコピーするのに十分な量のメモリが利用可能でない場合、コンテンツクライアントは、操作を完了するのに十分な量のメモリが利用可能でないことを示す通知をユーザに提供してもよい。コンテンツアイテムをコピーするのに十分な量のメモリが利用可能である場合、コンテンツクライアント２０４はコンテンツアイテムをキャッシュ２０８にコピーしてもよい。非管理ファイルのコピーをキャッシュ２０８に保存することで、コンテンツクライアント２０４は、ユーザがそのコンテンツアイテムへのリンクを生成することを選択した時点でのそのコンテンツアイテムの状態を表す選択されたコンテンツアイテムのスナップショットを生成することができる。その後、ファイルシステム２０６においてコンテンツアイテムが変更された場合、キャッシュ２０８に保持されるコンテンツアイテムのスナップショットコピーは変更されないであろう。
【００２４】
ステップ３０６において、クライアントデバイスは選択されたコンテンツアイテムを記述する情報をコンテンツサーバに送信してもよい。例えば、コンテンツクライアント２０４は選択された非管理コンテンツアイテムの説明を生成してもよい。その説明は、とりわけ、ファイルシステム２０６内での非管理コンテンツアイテムのディレクトリ位置（例えば、コンテンツパス）を含む。
【００２５】
ステップ３０８では、クライアントデバイスは非管理コンテンツアイテムへのリンクをサーバから受け付けてもよい。例えば、コンテンツクライアント２０４は非管理コンテンツアイテムの説明をコンテンツ管理システム２２０のコンテンツマネジャ２２２に送信してもよい。コンテンツマネジャ２２２は外部のコンテンツメタストア２２８にメタデータエントリを生成してもよい。メタデータエントリは非管理コンテンツアイテムの説明からのデータを含む。例えば、コンテンツマネジャ２２２は外部のコンテンツメタストア２２８にエントリを生成してもよい。このエントリは、非管理コンテンツアイテムのディレクトリ位置を含み、該ディレクトリ位置のプレフィックスは隠された名前空間識別子（例えば「hidden_ns」）およびスナップショット識別子（例えば「snapshot1」）を有する。外部コンテンツアイテムのメタデータは、外部のコンテンツメタストア２２８において、例えば「hidden_ns:/snapshot/<snapshot id>/<content path>」と表現されてもよい。したがって、選択された非管理コンテンツアイテムがクライアントデバイス２０２において「/user/pics/smiley.jpg」にある場合、非管理コンテンツアイテムに対応する、外部のコンテンツメタストア２２８のエントリは例えば「hidden_ns:/snapshot/snapshot1/user/pics/smiley.jpg」となる。非管理コンテンツアイテムに対するエントリが外部のコンテンツメタストア２２８に生成されると、コンテンツマネジャ２２２は、外部のコンテンツメタストア２２８上で非管理コンテンツアイテムのエントリを参照するリンク（例えば、ＵＲＬ、コンテンツパスなど）を生成してもよい。コンテンツマネジャ２２２は次にそのリンクをコンテンツクライアント２０４に返してもよい。例えば、隠された名前空間（例えば、ユーザのコンテンツライブラリの名前空間でないもの）を用いることにより、コンテンツライブラリが同期されクライアントデバイス２０２に表示されるときに、非管理コンテンツアイテムはユーザのコンテンツライブラリには現れないであろう。これにより、ユーザのコンテンツライブラリの外部にあるという非管理コンテンツアイテムの外観を保つことができる。
【００２６】
ステップ３１０において、クライアントデバイスは受け付けたリンクをクライアントデバイスのキャッシュに格納してもよい。例えば、コンテンツクライアント２０４は非管理コンテンツリンクをキャッシュ２０８に格納してもよい。キャッシュ２０８にリンクが格納されると、図１ＢのＧＵＩ１５０を参照して上述された通り、ユーザはそのリンクを電子メッセージに挿入することができる。
【００２７】
ステップ３１２において、クライアントデバイスは、非管理コンテンツアイテムをコンテンツ管理システム２２０にアップロードすべきであると決定してもよい。例えば、コンテンツクライアント２０４は非管理コンテンツアイテムの内容に基づいてハッシュ値を生成してもよい。ある実施では、非管理コンテンツアイテムのデータはひとつ以上のデータブロックとして保持されてもよい。コンテンツクライアント２０４は各データブロックのハッシュ値を生成してもよい。コンテンツクライアント２０４はコンテンツマネジャ２２２にハッシュ値を送信してもよい。コンテンツマネジャ２２２はそのハッシュ値を、コンテンツストア２３０に保持されるデータブロックに対応するハッシュ値インデクスと比較してもよい。送信されたハッシュ値がハッシュ値インデクスとマッチする場合、非管理コンテンツアイテムのデータブロックをコンテンツ管理システム２２０にアップロードする必要はない。そのデータブロックはコンテンツストア２３０に既に存在するからである。送信されたハッシュ値がコンテンツストア２３０のハッシュ値インデクスとマッチしない場合、送信されたハッシュ値に対応するデータブロックをコンテンツ管理システム２２０にアップロードし、コンテンツストア２３０に格納すべきである。コンテンツマネジャ２２２は、コンテンツストア２３０に存在しないハッシュ値のリストを生成し、そのハッシュ値のリストをコンテンツクライアント２０４に送信し、コンテンツストア２３０にどのデータブロックがないかを示してもよい。
【００２８】
ステップ３１４において、クライアントデバイスは、非管理コンテンツアイテムをコンテンツ管理システム２２０にアップロードしてもよい。例えば、コンテンツクライアントは、ステップ３１６でコンテンツマネジャ２２２から受信したハッシュ値のそれぞれに関連付けられたコンテンツデータを、コンテンツマネジャ２２２に送信してもよい。ある実施では、リンクの生成に応じて開始されるコンテンツアイテムのアップロードは、他のコンテンツのアップロードや同期動作よりも高い優先度が与えられるであろう。例えば、コンテンツクライアント２０４は、他の（例えば、リンクされていない）コンテンツライブラリのアイテムをアップロードまたは同期させる前に、リンクに関連付けられたコンテンツアイテムのデータブロックをアップロードするであろう。非管理コンテンツアイテムに関連付けられた全てのデータがコンテンツ管理システム２２０にアップロードされると、コンテンツクライアント２２２はコンテンツマネジャ２２２に最終化メッセージを送信してもよい。例えば、最終化メッセージは、非管理コンテンツアイテムの全てのコンテンツデータがコンテンツ管理システム２２０にアップロードされたことをコンテンツマネジャ２２２に通知するよう構成されてもよい。
【００２９】
ある実施では、コンテンツクライアント２０４は、コンテンツクライアント２０４が非管理コンテンツアイテムをコンテンツ管理システム２２０にアップロードしている間に、そのリンクされた非管理コンテンツアイテムが変化したことを判定してもよい。例えば、コンテンツクライアント２０４が非管理コンテンツアイテムをコンテンツ管理システム２２０にアップロードしている間に、クライアントデバイス２０２のユーザはその非管理コンテンツアイテムの内容を変更してもよい。非管理コンテンツアイテムがコンテンツ管理システム２２０にアップロードされた後、コンテンツクライアント２０４はファイルシステム２０６に保持される非管理コンテンツアイテムのアップロード後ハッシュ値を生成し、そのアップロード後ハッシュ値をステップ３０６で生成されたハッシュ値と比較してもよい。それらのハッシュ値が異なる場合、ファイルシステム２０６に保持されるコンテンツアイテムは変更されたものである。コンテンツアイテムが変更されたとコンテンツクライアント２０４が判定する場合、コンテンツクライアント２０４は最終化メッセージにおいて、コンテンツアイテムが変更されたことを示してもよい。ある実施では、コンテンツクライアント２０４は、生成されたリンクに関連付けられているコンテンツアイテムがアップロードプロセス中に変更されたことを示す通知をユーザに提示してもよい。
【００３０】
ステップ３１６において、クライアントデバイスは電子文書にリンクを挿入するためのユーザ入力を受け付けてもよい。例えば、図１ＢのＧＵＩ１５０を参照して上述された通り、ユーザはそのリンクを電子メッセージに挿入することができる。
【００３１】
図４は、非管理コンテンツアイテムへのリンクを共有するための例示的なサーバプロセス４００を示す。例えば、サーバ（例えば、コンテンツ管理システム２２０）は管理されているコンテンツアイテムのメタデータとは別に、非管理コンテンツアイテムのメタデータを保持してもよい。その結果、コンテンツライブラリがクライアントデバイス２０２に表示されるときに、ユーザのコンテンツライブラリの外部にあるコンテンツアイテムはユーザのコンテンツライブラリに表示されない。
【００３２】
ステップ４０２において、サーバは非管理コンテンツアイテムについての情報を受け付けてもよい。例えば、コンテンツマネジャ２２２は、ユーザのコンテンツライブラリ（例えば、コンテンツライブラリ２１０）の一部ではないコンテンツアイテムへのリンクを生成するための要求を、コンテンツクライアント２０４から受け付けてもよい。要求は、非管理コンテンツアイテムについての情報（例えば、メタデータ）を含んでもよい。情報は、非管理コンテンツアイテムの位置および識別子に対応するディレクトリパスおよびファイル名を含んでもよい。
【００３３】
ステップ４０４において、サーバは、外部のコンテンツメタストア２２８において、非管理コンテンツアイテムの隠されたスナップショットエントリを生成してもよい。例えば、（例えば管理されているコンテンツアイテムのために使用される）コンテンツライブラリメタストア２２６にメタデータエントリを生成する代わりに、コンテンツマネジャ２２２は外部のコンテンツメタストア２２８に、非管理コンテンツアイテムのためのメタデータエントリを生成してもよい。メタデータエントリはディレクトリパスおよびコンテンツアイテムの識別子を含んでもよい。メタデータエントリはコンテンツデータストア２３０に保持される非管理コンテンツアイテムのデータのデータブロックへのポインタを含んでもよい。例えば、メタデータエントリは、エントリの名前空間（例えば、hidden_ns）と、エントリのスナップショット識別子（例えば、shapshot_id）と、クライアントデバイスのディレクトリ構造において非管理コンテンツアイテムがクライアントデバイス２０２上で配置される位置に対応するパスと、を特定するストリング（例えば、「hidden_ns:/snapshot/<snapshot_id>/<path>」）を保持してもよい。
【００３４】
ステップ４０６において、サーバはクライアントデバイスにスナップショットリンクを送信してもよい。例えば、コンテンツマネジャ２２２は、ステップ４０４で生成された非管理コンテンツアイテムのメタデータエントリへのリンク（例えば、ＵＲＬ、アドレスなど）を生成し、そのリンクをクライアントデバイス２０２のコンテンツクライアント２０４に送信してもよい。
【００３５】
ステップ４０８において、サーバは非管理コンテンツアイテムの内容を特定する情報を受け付けてもよい。例えば、コンテンツクライアント２０４はコンテンツアイテムのコンテンツデータに基づいてハッシュ値を生成してもよい。コンテンツクライアント２０４は非管理コンテンツアイテムのデータについて単一のハッシュ値を生成してもよい。コンテンツクライアント２０４は非管理コンテンツアイテムに関連付けられたデータの各ブロックについてハッシュ値を生成してもよい。ハッシュ値が生成されると、コンテンツクライアント２０４はコンテンツマネジャ２２２にハッシュ値を送信してもよい。
【００３６】
ステップ４１０において、サーバは、非管理コンテンツアイテムが現在サーバに保持されていないことを決定してもよい。例えば、コンテンツマネジャ２２２は受け付けたハッシュ値を、コンテンツストア２３０に保持されるコンテンツデータに対応するハッシュ値インデクスと比較してもよい。受け付けたハッシュ値がコンテンツストア２３０に既に存在する場合、コンテンツマネジャ２２２はハッシュ値の空のリストをコンテンツクライアント２０４に返してもよい。受け付けたハッシュ値のいずれかがコンテンツストア２３０に既に存在するものでない場合、コンテンツマネジャ２２２はコンテンツストア２３０に既に存在するものではないコンテンツデータのハッシュ値のリストを返してもよい。
【００３７】
ステップ４１２において、サーバは欠落しているコンテンツアイテムデータの識別子のリストをクライアントに送信してもよい。例えば、受け付けたハッシュ値のいずれかがコンテンツストア２３０に見出されない場合、コンテンツマネジャ２２２はコンテンツストア２３０に存在しないハッシュ値のリストをコンテンツクライアント２０４に返してもよい。
【００３８】
ステップ４１４において、サーバは非管理コンテンツアイテムのコンテンツデータを受け付けてもよい。例えば、コンテンツクライアント２０４はステップ４１２で送信されたハッシュ値に対応する非管理コンテンツアイテムのデータをコンテンツマネジャ２２２に送信してもよい。
【００３９】
ステップ４１６において、サーバは非管理コンテンツアイテムのコンテンツデータを格納してもよい。例えば、コンテンツマネジャ２２２は、受け付けられ、ハッシュ値によりインデクス化されたコンテンツデータをコンテンツストア２３０に格納し、ステップ４０４で生成された隠されたスナップショットメタデータエントリを、そのメタデータエントリに関連付けられている格納されたコンテンツデータへのポインタを追加することで、更新してもよい。非管理コンテンツアイテムに関連付けられたコンテンツデータがコンテンツストア２３０に追加される場合、ポインタは追加されたコンテンツデータを指し示すであろう。コンテンツデータがコンテンツストア２３０に既に存在する場合、ポインタはコンテンツデータストア２３０に既に存在するコンテンツデータを指し示すであろう。
【００４０】
ステップ４１８において、サーバはスナップショットを最終化してもよい。例えば、全てのコンテンツデータがコンテンツストア２３０に格納され、かつ、非管理コンテンツアイテムのメタデータエントリが外部のコンテンツメタストア２２８において更新されると、サーバはスナップショットを最終化し、非管理コンテンツアイテムへのリンクの受領者がそのスナップショットデータにアクセスすることを可能としてもよい。サーバは、例えばコンテンツクライアント２０４から最終化メッセージを受け付けることに応じて、スナップショットを最終化してもよい。
【００４１】
図５は、サーバに保持される非管理コンテンツアイテムにアクセスするための要求を処理するための例示的なサーバプロセス５００を示す。例えば、プロセス５００は、非管理コンテンツアイテムへのリンクの受領者によって、その受領者がそのリンクを用いて非管理コンテンツアイテムにアクセスするときに、開始されてもよい。
【００４２】
ステップ５０２において、サーバはクライアントデバイスから非管理コンテンツアイテムに対する要求を受け付けてもよい。例えば、受領者はリンクを含む電子メッセージ（例えば、インスタントメッセージ、テキストメッセージ、電子メール等）を受信してもよい。受領者は、そのリンクが選択可能アイテム（例えば、ハイパーリンク）である場合にはそのリンクを選択し、コンテンツ管理システム２２０に、そのリンクに関連付けられている非管理コンテンツアイテムを要求してもよい。受領者は、リンクをコピーしてウェブブラウザにそのリンク（例えば、ＵＲＬ）を貼り付けることで、ウェブブラウザに、コンテンツ管理システム２２０に対してそのリンクに関連付けられている非管理コンテンツアイテムを要求することを行わせてもよい。
【００４３】
ステップ５０４において、サーバはリンクに関連付けられているスナップショットが最終化されているか否かを判定してもよい。例えば、コンテンツマネジャ２２２は、リンクされている非管理コンテンツアイテムについてコンテンツクライアント２０４から最終化メッセージをコンテンツマネジャが受け付けたか否かを判定してもよい。ある実施では、非管理コンテンツアイテムに関連付けられているメタデータは最終化されたものであるとマークされてもよい（例えば、メタデータエントリにおける真／偽フラグによって）。例えば、スナップショットが最終化された場合、最終化フラグは真に設定されてもよい。スナップショットが最終化されていない場合、最終化フラグは偽に設定されてもよい。
【００４４】
ステップ５０６において、サーバはリンクに関連付けられているスナップショットが最終化されていない場合、クライアントデバイスにエラーを送信してもよい。例えば、受領者がリンクに関連付けられている非管理コンテンツアイテムにアクセスするためにウェブブラウザを用いている場合、コンテンツ管理システム２２０はスナップショットがまだ見られる状態にないことを示すウェブページをウェブブラウザに送信してもよい。ウェブページは、受領者が後で再度トライすべきであることを示してもよい。受領者がクライアントアプリケーション（例えば、コンテンツクライアント２０４）を用いている場合、コンテンツ管理システム２２０（例えば、コンテンツマネジャ２２２）は、スナップショットが最終化されていないことを示すエラーコードをコンテンツクライアントに返してもよい。
【００４５】
ステップ５０８において、サーバはリンクに関連付けられているスナップショットが最終化されている場合、クライアントデバイスに非管理コンテンツアイテムを送信してもよい。例えば、コンテンツ管理システム２２０（例えば、コンテンツマネジャ２２２）は、クライアントデバイスに、非管理コンテンツアイテム（例えば、コンテンツストア２３０に保持されるデータ）を送信してもよい。
【００４６】
図６Ａおよび図６Ｂは、例示的なシステムの実施の形態を示す。以下に説明されるシステムは、図１−５を参照して上述された動作を行うよう構成されてもよい。本技術を実施する場合に、より好適な実施の形態は当業者には明らかであろう。他のシステムの実施の形態が可能であることは、当業者には容易に理解されるであろう。
【００４７】
図６Ａは、通常のシステムバス計算システムアーキテクチャ６００を示す。システムのコンポーネントはバス６０５を使用して互いに電気的に通信可能となっている。例示的なシステム６００は、処理ユニット（ＣＰＵすなわちプロセッサ）６１０と、読み取り専用メモリ（ＲＯＭ）６２０やランダムアクセスメモリ（ＲＡＭ）６２５などのシステムメモリ６１５を含む各種のシステムコンポーネントをプロセッサ６１０に接続するシステムバス６０５と、を含む。システム６００は、プロセッサ６１０に直接接続されているか、近接しているか、あるいはその一部として統合されている高速メモリのキャッシュを含んでもよい。システム６００は、データをメモリ６１５および／またはストレージデバイス６３０からキャッシュ６１２へコピーして、プロセッサ６１０が高速でアクセスできるようにしてもよい。このようにして、キャッシュは、データを待っている間のプロセッサ６１０の遅延を回避するパフォーマンスブーストを提供してもよい。これらおよびその他のモジュールは、各種の動作を行うようにプロセッサ６１０を制御するか、または制御するように構成されてもよい。その他のシステムメモリ６１５が同様に使用可能であってもよい。メモリ６１５は、異なる性能特性を持つ複数の異なるタイプのメモリを含んでもよい。プロセッサ６１０は、いかなる汎用プロセッサを含んでもよいし、プロセッサ６１０を制御するように構成されたハードウエアモジュールまたはソフトウエアモジュール、例えばストレージデバイス６３０の中に格納されたモジュール１  ６３２、モジュール２  ６３４、モジュール３  ６３６を含んでもよいし、実際のプロセッサ設計の中にソフトウエアインストラクションが組み込まれている専用プロセッサを含んでもよい。プロセッサ６１０は本質的に、複数のコアまたはプロセッサ、バス、メモリコントローラ、キャッシュ等を含んでいる、完全に自己完結型のコンピュータシステムであってもよい。マルチコアプロセッサは対称的または非対称的であってもよい。
【００４８】
ユーザと計算デバイス６００との対話を可能にするため、入力デバイス６４５は、音声用マイクロフォン、ジェスチャまたはグラフィカル入力用のタッチセンシティブスクリーン、キーボード、マウス、動作入力、音声等、いくつもの入力メカニズムを表してもよい。出力デバイス６３５は、当業者には公知の複数の出力メカニズムのうちの１つ以上であってもよい。場合によっては、マルチモーダルシステムによって、ユーザが、計算デバイス６００と通信するための複数のタイプの入力を行うことが可能になる。通常、通信インタフェース６４０が、ユーザ入力とシステム出力とを管理してもよい。特定のハードウェア構成上で動作することについての制限はなく、従って、本明細書での基本的な特徴は、改良型のハードウェア構成やファームウェア構成が開発されれば、それらと容易に置き換わりうる。
【００４９】
ストレージデバイス６３０は不揮発性メモリである。ストレージデバイス４３０はハードディスクや、コンピュータによってアクセス可能でありかつデータを保持可能な他のタイプのコンピュータ可読媒体、例えば、磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタルバーサタイルディスク、カートリッジ、ランダムアクセスメモリ（ＲＡＭｓ）６２５、読み取り専用メモリ（ＲＯＭ）６２０、それらのハイブリッド、等であってもよい。
【００５０】
ストレージデバイス６３０は、プロセッサ６１０を制御するためのソフトウエアモジュール６３２、６３４、６３６を含んでいてもよい。その他のハードウエアモジュールやソフトウエアモジュールも考えられる。ストレージデバイス６３０は、システムバス６０５に接続されていてもよい。一態様では、或る機能を行うハードウエアモジュールは、プロセッサ６１０、バス６０５、ディスプレイ６３５等のような、その機能を実行するのに必要なハードウエアコンポーネントと関連してコンピュータ可読媒体の中に格納されたソフトウエアコンポーネントを含んでもよい。
【００５１】
図６Ｂは、説明された方法を実行したりグラフィカルユーザインタフェース（ＧＵＩ）を生成して表示したりする際に使用可能なチップセットアーキテクチャを有するコンピュータシステム６５０を示す。コンピュータシステム６５０は、開示された技術を実施するのに使用可能なコンピュータハードウエア、ソフトウエアおよびファームウエアの一例である。システム６５０はプロセッサ６５５を含んでもよい。プロセッサ６５５は、ソフトウエア、ファームウエアおよび特定された計算を行うよう構成されたハードウエアを実行可能な、任意の数の物理的および／または論理的に別個のリソースを表す。プロセッサ６５５は、プロセッサ６５５への入力およびプロセッサ６５５からの出力を制御可能なチップセット６６０と通信してもよい。本例では、チップセット６６０はディスプレイなどの出力６６５へ情報を出力し、ストレージデバイス６７０に対して情報の読み書きを行ってもよい。ストレージデバイス６７０は例えば磁気媒体やソリッドステート媒体を含んでもよい。チップセット６６０はまた、ＲＡＭ６７５からデータを読み出し、ＲＡＭ６７５へデータを書き込んでもよい。チップセット６６０とのインタフェースのために、種々のユーザインタフェースコンポーネント６８５とのインタフェースとなるブリッジ６８０が提供されてもよい。そのようなユーザインタフェースコンポーネント６８５は、キーボードやマイクロフォンやタッチ検出および処理回路やマウスなどのポインティングデバイスなどを含んでもよい。一般に、システム６５０への入力は種々のソースのうちの任意のものから来てもよく、または機械により生成されおよび／または人により生成されてもよい。
【００５２】
チップセット６６０は、異なる複数の物理的インタフェースを有しうるひとつ以上の通信インタフェース６９０と連結されてもよい。そのような通信インタフェースは、有線および無線ローカルエリアネットワークとのインタフェースと、ブロードバンド無線ネットワークとのインタフェースと、パーソナルエリアネットワークとのインタフェースと、を含んでもよい。本明細書で開示されるＧＵＩを生成し表示し使用する方法のいくつかの応用は、物理的なインタフェースを介して順序付けられたデータセットを受けること、または順序付けられたデータセットがプロセッサ６５５がストレージ６７０または６７５に保持されるデータを解析することで機械そのものにより生成されることを含んでもよい。さらに、機械はユーザインタフェースコンポーネント６８５を介してユーザから入力を受け、プロセッサ６５５を使用してこれらの入力を解釈することで、ブラウズ機能などの適切な機能を実行してもよい。
【００５３】
ある実施では、システム６００および６５０はひとつ以上のプロセッサ６１０を有してもよく、または処理能力を高めるためにネットワーク化された計算デバイスのグループまたはクラスタの一部であってもよいことは理解されるであろう。
【００５４】
説明の明確化のため、ある例では、本技術はデバイスやデバイスコンポーネントやソフトウエアで実施される方法のステップまたはルーチンやハードウエアとソフトウエアとの組み合わせを含む機能ブロックを含む個々の機能ブロックを含むものとして提示されてもよい。
【００５５】
ある実施の形態では、コンピュータ可読保持デバイス、媒体およびメモリは、ビットストリームを含むケーブルや無線信号などを含んでもよい。しかしながら、言及される場合、非一時的コンピュータ可読保持媒体は、エネルギやキャリア信号や電磁波や信号そのものなどの媒体を明示的に除外する。
【００５６】
上述の例に係る方法は、コンピュータ可読媒体に保持されるかそうでなければその媒体から利用可能なコンピュータ実行可能インストラクションを使用して実装されてもよい。そのようなインストラクションは、例えば、汎用コンピュータ、専用コンピュータ、または専用処理デバイスに所定の機能もしくは機能のグループを実行させるかそうでなければ実行するよう設定するインストラクションおよびデータを含んでもよい。使用されるコンピュータリソースの一部はネットワークを介してアクセス可能であってもよい。コンピュータ実行可能インストラクションは、例えば、バイナリや、アセンブリ言語などの中間フォーマットインストラクションや、ファームウエアや、ソースコードであってもよい。インストラクション、使用される情報、および／または説明された例に係る方法中に生成される情報を保持するのに使用されうるコンピュータ可読媒体の例は、磁気または光学ディスク、フラッシュメモリ、不揮発性メモリを備えるＵＳＢデバイス、ネットワークストレージデバイスなどを含む。
【００５７】
本開示に係る方法を実装するデバイスはハードウエア、ファームウエアおよび／またはソフトウエアを含んでもよく、種々の形状ファクタのうちの任意のものをとりうる。そのような形状ファクタの典型的な例は、ラップトップや、スマートフォンや、小さい形状ファクタのパーソナルコンピュータや、パーソナルデジタルアシスタントなどを含む。本明細書で説明される機能は周辺機器やアドインカードにおいて実現されてもよい。さらなる例として、そのような機能は回路基板上で異なる複数のチップの間でまたは単一デバイスで実行される異なる複数の処理の間で実現されてもよい。
【００５８】
インストラクション、そのようなインストラクションを運ぶための媒体、そのようなインストラクションを実行するための計算リソース、およびそのような計算リソースをサポートするための他の構成は、本開示で説明される機能を提供するための手段である。
【００５９】
添付の請求項の範囲内の態様を説明するために様々な例および他の情報が使用されたが、そのような例における特定の特徴や構成に基づくいかなる請求項の限定も暗示されてはならない。当業者であれば、これらの例を使用して多種多様な実装を導くことができるであろう。さらに、いくつかの主題が構造的特徴および／または方法ステップの例に特有の言語で記述されたかもしれないが、添付の請求項で規定される主題はこれらの記述された特徴や行為に限定される必要はないことは理解されるべきである。例えば、そのような機能は異なるように分散されてもよいし、本明細書で特定されたもの以外のコンポーネントで実行されてもよい。むしろ、記述された特徴およびステップは、添付の請求項の範囲内のシステムおよび方法のコンポーネントの例として開示される。
【図１Ａ】
0006385557.tif 000002
【図１Ｂ】
0006385557.tif 000003
【図１Ｃ】
0006385557.tif 000004
【図２】
0006385557.tif 000005
【図３】
0006385557.tif 000006
【図４】
0006385557.tif 000007
【図５】
0006385557.tif 000008
【図６Ａ】
0006385557.tif 000009
【図６Ｂ】
0006385557.tif 000010