(57)【特許請求の範囲】
【請求項１】
選択的コンテンツアイテム同期を用いる共有ワークスペースを提供するための方法であって、前記方法は、
１つ以上のプロセッサと、前記方法を実行するために前記１つ以上のプロセッサによって実行される１つ以上のコンピュータプログラムを格納したストレージ媒体と、を備えるパーソナルコンピューティングデバイスにおいて、
コンテンツ管理システムで保持されているユーザアカウントによってアクセス可能な共有ワークスペースに前記パーソナルコンピューティングデバイスが参加することに応じて、前記コンテンツ管理システムの制御サーバから前記パーソナルコンピューティングデバイスへメタデータをダウンロードすることであって、前記メタデータは、前記共有ワークスペースに関連し、前記共有ワークスペースは、第１の１つ以上のコンテンツアイテムと関連付けられており、かつ、第２の複数のコンテンツアイテムと関連付けられており、前記メタデータは、前記第１の１つ以上のコンテンツアイテムがオフラインアクセス用に設定されていることを特定し、かつ、前記第２の複数のコンテンツアイテムがクラウドアクセス用に設定されていることを特定する、前記ダウンロードすることと、
前記共有ワークスペースに前記パーソナルコンピューティングデバイスが参加することに応じて、オフラインアクセス用に設定された前記第１の１つ以上のコンテンツアイテムの１つ以上のコンテンツアイテムブロックを、前記コンテンツ管理システムと関連付けられたコンテンツアイテムサーバから前記パーソナルコンピューティングデバイスにダウンロードすることと、
前記共有ワークスペースについてのアクション可能な共有ワークスペース・ランチャーアイコンの起動に応じて、前記パーソナルコンピューティングデバイスのオペレーティングシステムによって提供されるファイルシステムブラウザウィンドウ内に、前記第１の１つ以上のコンテンツアイテムのそれぞれについての、対応するアクション可能なファイルシステムブラウザアイコンと、前記第２の複数のコンテンツアイテムのそれぞれについての、対応するアクション可能なファイルシステムブラウザアイコンとを表示することであって、前記第１の１つ以上のコンテンツアイテムのそれぞれについての前記対応するアクション可能なファイルシステムブラウザアイコンは、前記コンテンツアイテムがオフラインアクセス用に設定されていることを視認可能に示し、前記第２の複数のコンテンツアイテムのそれぞれについての前記対応するアクション可能なファイルシステムブラウザアイコンは、前記コンテンツアイテムがクラウドアクセス用に設定されていることを視認可能に示す、前記表示することと、
前記第２の複数のコンテンツアイテムのうちの特定のコンテンツアイテムについての、前記対応するアクション可能なファイルシステムブラウザアイコンの起動であって、前記特定のコンテンツアイテムを開くための前記起動に応じて、（ａ）前記コンテンツ管理システムと関連付けられたコンテンツアイテムサーバから、前記特定のコンテンツアイテムの１つ以上のコンテンツアイテムブロックをダウンロードすることと、（ｂ）前記特定のコンテンツアイテムの前記１つ以上のコンテンツアイテムブロックを前記パーソナルコンピューティングデバイスにおいて格納することと、（ｃ）前記パーソナルコンピューティングデバイスにおいて前記特定のコンテンツアイテムがもはやクラウドアクセス用に設定されていないことを視認可能に示し、かつ、前記パーソナルコンピューティングデバイスにおいて前記特定のコンテンツアイテムが現在、オフラインアクセス用に設定されていることを視認可能に示すように、前記特定のコンテンツアイテムについての前記対応するアクション可能なファイルシステムブラウザアイコンの表示を更新することと、
オフラインアクセス用に設定されている前記共有ワークスペース内のコンテンツアイテムによって占有される、前記パーソナルコンピューティングデバイスのローカルストレージ空間の量が閾値を上回るとの判定に応じて、前記共有ワークスペース内の当該コンテンツアイテムの１つ以上をクラウドアクセス用に設定することを、前記パーソナルコンピューティングデバイスのユーザに促すことと、
前記ユーザが前記共有ワークスペース内の前記コンテンツアイテムの１つ以上をクラウドアクセス用に設定することに応じて、前記ユーザがクラウドアクセス用に設定した当該１つ以上のコンテンツアイテムを、前記パーソナルコンピューティングデバイスの前記ローカルストレージ空間から削除することと、
削除された前記１つ以上のコンテンツアイテムのそれぞれについての対応するアクション可能なファイルシステムブラウザアイコンの表示を更新することと、
を含む動作を実行することを含む、方法。
【請求項２】
請求項１に記載の方法であって、
前記メタデータは、オフラインアクセス用に設定された前記第１の１つ以上のコンテンツアイテムの、前記１つ以上のコンテンツアイテムブロックの１つ以上の識別子を更に含み、
オフラインアクセス用に設定された前記第１の１つ以上のコンテンツアイテムの前記１つ以上のコンテンツアイテムブロックを前記コンテンツアイテムサーバからダウンロードする動作は、前記コンテンツアイテムサーバのネットワーク要求で、オフラインアクセス用に設定された前記第１の１つ以上のコンテンツアイテムの、前記１つ以上のコンテンツアイテムブロックの前記１つ以上の識別子を、提供する動作を含む、方法。
【請求項３】
請求項１に記載の方法であって、
前記第２の複数のコンテンツアイテムのそれぞれは、コンテンツアイテムフォルダ又はコンテンツアイテムファイルであり、
前記第２の複数のコンテンツアイテムのそれぞれについての対応するアクション可能なファイルシステムブラウザアイコンを前記ファイルシステムブラウザウィンドウ内に表示する動作は、前記コンテンツアイテムがコンテンツアイテムフォルダであるかコンテンツアイテムファイルであるかを示す、前記第２の複数のコンテンツアイテムのそれぞれについての対応するアクション可能なファイルシステムブラウザアイコンを、前記ファイルシステムブラウザウィンドウ内に表示する動作を含む、方法。
【請求項４】
請求項１に記載の方法であって、
前記特定のコンテンツアイテムは、特定のコンテンツアイテムフォルダであり、
前記特定のコンテンツアイテムの前記１つ以上のコンテンツアイテムブロックは、前記特定のコンテンツアイテムフォルダに含まれる１つ以上のコンテンツアイテムファイルに属し、
前記メタデータは、前記特定のコンテンツアイテムフォルダに含まれる前記１つ以上のコンテンツアイテムファイルを示す、方法。
【請求項５】
請求項１に記載の方法であって、
前記特定のコンテンツアイテムに対応する、前記アクション可能なファイルシステムブラウザアイコンの前記起動は、前記特定のコンテンツアイテムに対応する、前記アクション可能なファイルシステムブラウザアイコンの第１の起動であり、
前記特定のコンテンツアイテムに対応する、前記アクション可能なファイルシステムブラウザアイコンの第２の起動に応じて、前記パーソナルコンピューティングデバイスから前記特定のコンテンツアイテムの前記１つ以上のコンテンツアイテムブロックを削除し、前記パーソナルコンピューティングデバイスにおいて前記コンテンツアイテムが現在、クラウドアクセス用に設定されていることを示すように、前記特定のコンテンツアイテムについての前記対応するアクション可能なファイルシステムブラウザアイコンの表示を更新する、方法。
【請求項６】
請求項１に記載の方法であって、更に、
前記特定のコンテンツアイテムの前記１つ以上のコンテンツアイテムブロックを前記コンテンツアイテムサーバからダウンロードする動作が実行されている間に、前記ダウンロードが現在実行されていることを示すように、前記特定のコンテンツアイテムについての前記対応するアクション可能なファイルシステムブラウザアイコンの表示を更新することを含む、方法。
【請求項７】
請求項１に記載の方法であって、前記共有ワークスペースに前記パーソナルコンピューティングデバイスを参加させることは、前記コンテンツ管理システムのクライアントアプリケーションの前記パーソナルコンピューティングデバイスへのインストールと、前記クライアントアプリケーションが前記パーソナルコンピューティングデバイスにインストールされた後に前記パーソナルコンピューティングデバイスから提供されるクレデンシャルに基づく、前記コンテンツ管理システムで保持されている前記ユーザアカウントに対する認証の成功と、に少なくとも部分的に基づいている、方法。
【請求項８】
請求項７に記載の方法であって、前記コンテンツ管理システムと関連付けられたコンテンツアイテムサーバから前記特定のコンテンツアイテムの前記１つ以上のコンテンツアイテムブロックをダウンロードすることは、前記パーソナルコンピューティングデバイスにインストールされた前記クライアントアプリケーションによって実行される、方法。
【請求項９】
１つ以上のコンピュータの１つ以上のプロセッサによって実行された場合に、請求項１から８のいずれか１項に記載の方法を実行させるためのプログラム。
【請求項１０】
コンピューティングシステムであって、
１つ以上のプロセッサと、
ストレージ媒体と、
前記１つ以上のプロセッサによる実行のために前記ストレージ媒体に格納されており、請求項１から８のいずれか１項に記載の方法を実行するよう構成される命令を含む１つ以上のプログラムと、
を備える、コンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、概して、オンラインコンテンツ管理システムに関するものであり、より具体的には、例えば、デジタルドキュメント及びデジタルファイルのようなデジタルコンテンツアイテムの格納、管理、共有、及び当該デジタルコンテンツアイテムへのアクセスのための、オンラインコンテンツ管理システムに関するものである。
【背景技術】
【０００２】
従来、企業及びその他の組織は、それらが所有及び運用しているネットワークファイルサーバに、デジタルコンテンツアイテム（例えば、ドキュメント、ファイル、及びその他のデジタル情報）を格納している。そのようなファイルサーバは、典型的には、ファイルサーバに格納されたコンテンツアイテムへの不正なネットワークを防ぐネットワークファイアウォールの内側にある施設内に設置される。この構成は、ファイルサーバへのネットワークアクセスの大部分又は全てが、例えば、当該ファイルサーバと同一のローカルエリアネットワーク（ＬＡＮ）に接続されたコンピュータのような、同様にネットワークファイアウォールの内側にあるコンピュータによって行われる場合に効果がある。場合によっては、（例えば、インターネットを介した）ファイアウォールの外部からファイルサーバへのネットワークアクセスは、仮想プライベートネットワーク（ＶＰＮ：Virtual Private Network）によって支援される。ＶＰＮは、実質的に、ファイアウォールの外側のコンピュータを、当該ファイアウォールの内側にいるかのようにファイルサーバが見えるようにする。
【０００３】
しかし、今日では、従業員は、よりグローバルであり、かつ、より移動性を有する。これは、大部分において、ブロードバンドインターネット接続の広範囲の利用可能性によって、及び、更には、例えば、デスクトップコンピュータ、携帯電話、ラップトップコンピュータ及びタブレットコンピュータのような、比較的安価で、とはいえパワフルなパーソナルコンピューティングデバイスの利用可能性によって、拍車を掛けられている。それにより、従業員は、事実上どこでも働くことができ、仕事をこなすために必ずしも物理的にオフィスにいる必要がない（例えば、遠隔で働くことができる）。
【０００４】
遠隔で働くために、従業員は、多くの場合、そのパーソナルコンピュータにローカルに（例えば、ローカルハードディスクに）、雇用主のファイルサーバからコピーされたコンテンツアイテムを格納しており、それにより、オフラインで、又はさもなければネットワークによってファイルサーバに接続されていない間に、コンテンツアイテムを用いて働くことができる。これは雇用主の観点からは理想的ではなく、それは、雇用主は、ファイルサーバに格納されているコンテンツアイテムと比較した場合に、ローカルに格納されたコンテンツアイテムに対するコントロールをほとんど有しないためである。コンテンツアイテムのローカルコピーを従業者のパーソナルコンピューティングデバイスに格納することから生じる、このコントロールの欠如は、例えば従業員のパーソナルコンピューティングデバイスが紛失、損傷、又は盗難された場合に、雇用主と従業員の両方に対してリスクをもたらす。
【０００５】
近頃では、オンラインコンテンツ管理サービスが、インターネット上でアクセス可能な「クラウドに」コンテンツアイテムを格納するために利用可能になっている。企業は、自らが所有するファイルサーバ上にコンテンツアイテムを格納するのに加えて、又はそれとともに、サービスによって運用されているサーバ上に自らのコンテンツアイテムを「ホスティングする（host）」ためにオンラインコンテンツ管理サービスを使用しうる。コンテンツアイテムのオンラインストレージは、企業及びその従業員に一様に多くの利点を提供できる。例えば、Ｄｒｏｐｂｏｘは、ホスティングされたコンテンツアイテムを、多数のデバイス及びユーザ間で同期及び共有する能力を提供している。エンドユーザデバイス及びＤｒｏｐｂｏｘサーバの両方にコンテンツアイテムを格納することから生じる、この柔軟性は、社内及び遠隔の様々な異なる勤務形態を後押しし、雇用主に利便性を提供し、かつ、従業員のための、雇用主の高い生産性を提供する。
【０００６】
オンラインコンテンツ管理サービスの利点にもかかわらず、現在のサービスでは、企業が望むコントロールを、従業員の生産性を不必要に妨げない方法で企業に提供されてはいない。以下の問題について考える。企業の従業員は、オンラインコンテンツ管理サービスに、数百ギガバイトかそれ以上のコンテンツアイテムをまとめてホスティングする場合がある。しかし、従業員は、数十ギガバイトのデータのみローカルに格納できるパーソナルコンピューティングデバイスを有している場合があり、これは、ホスティングされたコンテンツアイテムの全てを、どの１つのパーソナルコンピューティングデバイスにも格納できなくしている。このため、従業員は、自らのパーソナルコンピューティングデバイスにおいて、必要とするコンテンツアイテムのサブセットに対するローカルアクセスを得るために様々なアドホック・ソリューションを採用している場合がある。例えば、従業員のチームが、コンテンツアイテムのサブセットを含むオンラインコンテンツ管理サービスにアカウントを作成しうる。当該チームのメンバーは、それにより、サービスを利用してコンテンツアイテムにアクセスするために、共有クレデンシャルを使用しうる。多数の従業員による共有クレデンシャルの使用は、個別の従業員によるコンテンツアイテムへのアクセスを企業が追跡するのをより困難にし、コンテンツアイテムへのアクセスを有する従業員を企業がコントロールするのもより困難にする。これは、企業及びオンラインコンテンツ管理サービスのプロバイダに重大な管理上の挑戦をもたらす、大量データ管理の問題となる。
【０００７】
企業によって生成されるデジタル情報の量の増加を前提とすると、オンラインコンテンツ管理サービスへの企業によるコンテンツアイテムのホスティングは、増加することのみが予測されうる。この傾向は、そのようなサービスに企業がホスティングするコンテンツアイテムに対するコントロールのレベルを保持する、企業の要求と関連している。本発明は、このニーズ及び他のニーズを満たす。
【図面の簡単な説明】
【０００８】
本発明の前述の態様だけでなく追加の態様及び実施形態の理解をより良いものとするため、各図を通じて対応する部分に同様の参照番号を付す添付の図面と合わせて、以下に詳細な実施形態の説明を記載する。
【０００９】
【図１】図１は、本発明の実施形態に係る例示的な分散型コンピューティング環境を示すブロック図である。
【００１０】
【図２】図２は、本発明の実施形態の実装に適したコンピューティングデバイスの例を示すブロック図である。
【００１１】
【図３】図３は、図２のコンピューティングデバイスの動作を制御するために用いられうるソフトウェアシステムの例を示すブロック図である。
【００１２】
【図４Ａ】図４Ａは、本発明の実施形態に係るグラフィカルユーザインタフェースを図示している。
【００１３】
【図４Ｂ】図４Ｂは、本発明の実施形態に係るグラフィカルユーザインタフェースを図示している。
【００１４】
【図４Ｃ】図４Ｃは、本発明の実施形態に係るグラフィカルユーザインタフェースを図示している。
【００１５】
【図４Ｄ】図４Ｄは、本発明の実施形態に係るグラフィカルユーザインタフェースを図示している。
【発明を実施するための形態】
【００１６】
既存のオンラインコンテンツ管理サービスに関連する上記の欠点及び他の問題は、共有ワークスペース及び選択的コンテンツアイテム同期を提供する、開示したオンラインコンテンツ管理システムによって軽減又は取り除かれる。添付の図面に例が示されている、本発明の特定の実施形態を参照する。実施形態とともに本発明について説明するが、これらの具体的な実施形態のみに本発明を限定することは意図していないことが理解されよう。逆に、本発明は、本発明の精神及び範囲内にある代替、修正及び均等物をカバーすることが意図されている。
【００１７】
更に、以下の記載において、本発明の完全な理解を提供するために多くの具体的詳細が説明される。しかし、それらの具体的詳細なしで本発明が実施されうることが当業者には明らかであろう。当業者には周知である他のインスタンス方法、手順、コンポーネント及びネットワークについては、本発明の態様を分かりにくくすることを避けるために、詳細には説明していない。
【００１８】
＜クラウドコンピューティング環境の例＞
図１は、本発明の実施形態に係る例示的な分散型コンピュータシステム１００を示すブロック図である。図１は、以下の詳細な議論において参照される種々の機能コンポーネントを示している。システム１００は、１つ以上のクライアント１０２〜１０４を含みうる。クライアント１０２は、以下で説明するアクティビティを可能にするために使用される、任意の数のデバイス（例えば、コンピュータ、インターネットキオスク、パーソナル・デジタル・アシスタント、携帯電話、ゲームデバイス、デスクトップコンピュータ、ラップトップコンピュータ、又はタブレットコンピュータ）でありうる。クライアント１０２は、グラフィカルユーザインタフェース（ＧＵＩ）１１０、クライアントアプリケーション１１２、１つ以上の共有ワークスペース１１４、及び共有ワークスペース１１４に関連する共有ワークスペースメタデータ１１６を含む。クライアント１０２〜１０４は、通信ネットワーク１０６に接続されている。通信ネットワーク１０６は、クライアント１０２〜１０４を、オンラインコンテンツ管理システム１０８（以下では「クラウドシステム１０８」とも称される）に接続する。クラウドシステム１０８は、通信ネットワーク１０６に接続されたコンテンツアイテムサーバ１１８及び制御サーバ１２０と、コンテンツアイテムストレージサーバ１２２〜１２４と、ユーザアカウントデータベース１２６と、共有ワークスペースメタデータ・データベース１２８と、ユーザイベントログ１３０とを含む。
【００１９】
クラウドシステム１０８は、以下で説明する共有ワークスペース及び選択的コンテンツアイテム同期を含む、コンテンツアイテム管理サービスを、クライアント１０２〜１０４に提供する。クラウドシステム１０８のレイアウトは例示にすぎず、任意の他の適切なレイアウト又は構成を有してもよいことは理解されるべきである。クラウドシステム１０８は、現代のオンラインコンテンツ管理システムにホスティングされる数十億のファイル又はドキュメントのようなコンテンツアイテムを管理するために使用されうる。
【００２０】
クラウドシステム１０８によって管理されるコンテンツアイテムは、デジタルドキュメント、ファイル、又はデジタル情報のその他の論理コレクションを含むがそれらに限定されない、デジタル情報の論理コレクションでありうる。多くの場合、コンテンツアイテムは、例えば、画像（例えば、ＪＰＥＧ、ＴＩＦＦ、ＧＩＦ等）、音楽（例えば、ＭＰ３、ＡＩＦＦ、Ｍ４Ａ、ＷＡＶ等）、動画（例えば、ＭＯＶ、ＭＰ４、Ｍ４Ｖ等）、文書処理ドキュメント（例えば、ＤＯＣ、ＤＯＣＸ、ＰＡＧＥＳ等）、他のドキュメント（例えば、ＰＤＦ等）、スプレッドシートドキュメント（例えば、ＸＬＳ、ＸＬＳＸ、ＮＵＭＢＥＲＳ等）、プレゼンテーションドキュメント（例えば、ＰＰＴ、ＰＰＴＸ、ＫＥＹ等）、ウェブページ（例えば、ＨＴＭ、ＨＴＭＬＳ等）、又はテキストファイル（例えば、ＴＸＴ、ＲＴＦ等）のような、既知のメディアタイプに対応する。しかし、クラウドシステム１０８によって管理されるコンテンツアイテムは、特定のメディアタイプに限定されることはなく、コンテンツアイテムには、バイナリデータ、テキストデータ、又は他のデジタル情報を含む、デジタル情報の任意の論理コレクションが包含されうる。
【００２１】
クラウドシステム１０８は、インターネット又は他の公衆ネットワークを介してホスティングされるコンテンツアイテムを管理するためのインターネット・コンテンツ管理サービスとして、及び／又は、ローカルエリアネットワーク（ＬＡＮ）又は他のプライベートネットワークを介してホスティングされるコンテンツアイテムを管理するためのイントラネット・コンテンツ管理サービスとして使用されうることに留意されたい。
【００２２】
クラウドシステム１０８は、それぞれがバックエンドを収納する多数のデータセンタを含んでもよい。データセンタは、米国の州間のように地理的に互いに分散されうる。クライアント１０２〜１０４の１つからクラウドシステム１０８へのネットワーク要求は、例えば、要求のコンテンツ、特性若しくはタイプ、及び／又は、ネットワーク要求の地理的ロケーションを含む、種々の可能性のあるファクタに基づいて、適切なバックエンドへルーティングされる。
【００２３】
各バックエンドは、好ましくは、それぞれのネットワーク通信モジュール（例えば、１３２又は１３６）を介してそれぞれ通信ネットワーク１０６に接続される、制御サーバ１２０のような複数の制御サーバ、及び／又は、コンテンツアイテムサーバ１１８のような複数のコンテンツアイテムサーバを含む。通信ネットワーク１０６は、インターネットでありうるが、任意のローカルエリアネットワーク（ＬＡＮ）及び／又はワイドエリアネットワーク（ＷＡＮ）であってもよい。
【００２４】
いくつかの実施形態において、各コンテンツアイテムサーバ１１８及び各制御サーバ１２０は、ＨＴＴＰ、ＨＴＴＰＳ又は同じようなプロトコルを介して、ネットワーク要求をクライアントアプリケーション１１２から受信し、クライアントアプリケーション１１２へネットワーク応答を配信するＷｅｂサーバである。基本的には、コンテンツアイテムサーバ１１８のようなコンテンツアイテムサーバは、クライアントアプリケーション１１２によって要求されたとおりに、ストレージサーバ１２２〜１２４に格納されているコンテンツアイテムのブロックの格納及び取り出しを行うよう構成される。制御サーバ１２０のような制御サーバは、以下で説明するように、クライアントアプリケーション１１２に関連する、共有ワークスペース１１４の提供及びクラウドシステム１０８とクライアント１０２〜１０４との間のコンテンツアイテムの選択的な同期を含む、クライアントアプリケーション１１２に関連するコンテンツアイテム管理プロセスを制御するよう構成される。
【００２５】
コンテンツアイテムサーバ１１８は、典型的には、互いに接続された、ネットワーク通信モジュール１３２と、ブロック要求受信、処理及び応答モジュール１３４とを含む。ネットワーク通信モジュール１３２は、コンテンツアイテムサーバ１１８を通信ネットワーク１０６に接続し、通信ネットワーク１０６からの通信の受信と、クライアント１０２又は他の宛先に向かう、通信ネットワーク１０６への通信の提供とを可能にする。ブロック要求受信、処理及び応答モジュール１３４は、主として、コンテンツアイテムブロックの要求の受信と、それらの処理と、ネットワーク通信モジュール１３２を介した、要求されたブロックのクライアント１０２への返送とに関与する。
【００２６】
ストレージサーバ１２２〜１２４は、コンテンツアイテムブロックを格納する。各コンテンツアイテムブロックは、クラウドシステム１０８によって管理されるコンテンツアイテムの全体又は一部を含みうる。各コンテンツアイテムブロックは、例えば４メガバイト（ＭＢ）のような固定サイズであってもよい。コンテンツアイテムのサイズに依存して、コンテンツアイテムは、ストレージサーバ１２２〜１２４のうちの１つ以上のストレージサーバ上で、１つ以上のコンテンツアイテムブロック内に格納されてよく、最後のコンテンツアイテムブロックは固定サイズのデータ量より少ないデータ量を有する可能性がある。
【００２７】
ストレージサーバ１２２〜１２４内の各コンテンツアイテムブロックは、ブロックのコンテンツの暗号ハッシュ（例えば、ＳＨＡ−２５６）によって識別されてもよい。ストレージサーバ１２２〜１２４に格納されたコンテンツアイテムは、コンテンツアイテムのコンテンツを含む、ストレージサーバ１２２〜１２４のうちの１つ以上のストレージサーバ内の１つ以上のコンテンツアイテムブロックを識別する、１つ以上の暗号ハッシュのリストによって固有に識別されてもよい。以下では、このリストはコンテンツアイテムの「ブロックリスト」とも称される。
【００２８】
ブロック要求受信、処理及び応答モジュール１３４は、クライアントアプリケーション１１２からの少なくとも２つの異なるタイプの要求を受信し、処理し、かつ、当該要求に対して応答しうる。
【００２９】
第１のタイプの要求は、「ストア」要求と称される。ストア要求は、２つのリストを含む。第１のリストは、１つ以上の暗号ハッシュＨ1, Ｈ2, ... ＨNを含む。第２のリストは、１つ以上の対応するデータブロックＢ1, Ｂ2, ... ＢNを含む。即ち、第１のリスト内の暗号ハッシュＨi（１≦ｉ≦Ｎ）は、暗号又は一方向ハッシュ関数（例えば、ＳＨＡ−２５６等）を使用して、第２のリスト内の対応するデータブロックＢi（１≦ｉ≦Ｎ）から算出される。ストア要求の受信に応じて、第１のリスト内のハッシュＨiごとに、第２のリスト内のブロックＢiがストレージサーバ１２２上のコンテンツアイテムブロックに格納され、当該コンテンツアイテムブロック（又はそのストレージアドレス）が、コンテンツアイテムサーバ１１８によって保持されているキー・値マッピングのハッシュＨiと関連付けられる。新しいコンテンツアイテムを格納するために、又はストレージサーバ１２２〜１２４内の既存のコンテンツアイテムを更新するために、１つ以上のストア要求がクライアントアプリケーション１１２から発行されてもよい。
【００３０】
ブロック要求受信、処理及び応答モジュール１３４が受信及び処理する、第２のタイプの要求は、「取り出し」要求と称される。取り出し要求は、ストレージサーバ１２２〜１２４から取り出して通信ネットワーク１０６を介してクライアントアプリケーション１１２へ送信する１つ以上のコンテンツアイテムブロックを識別する、１つ以上の暗号ハッシュＨ1, Ｈ2, ... ＨNのリストを含みうる。取り出し要求の受信に応じて、当該要求内のハッシュ値Ｈiごとに、コンテンツアイテムサーバ１１８によって保持されているキー・値マッピングが、ハッシュ値Ｈiを用いて調べられることで、コンテンツアイテムブロック（又はそのストレージアドレス）が識別され、当該コンテンツアイテムブロックが、通信ネットワーク１０６を介して、要求中のクライアントアプリケーション１１２へ送信される。ストレージサーバ１２２〜１２４からコンテンツアイテムを取り出すために、１つ以上の取り出し要求がクライアントアプリケーション１１２から発行されてもよい。
【００３１】
制御サーバ１２０は、典型的には、全てが相互接続された、ネットワーク通信モジュール１３６、共有ワークスペースメタデータ管理モジュール１３８、同期モジュール１４０、イベントログモジュール１４２、及び通知モジュール１４４を含む。ネットワーク通信モジュール１３６は、制御サーバ１２０を通信ネットワーク１０６に接続し、通信ネットワーク１０６からの通信の受信と、クライアント１０２のクライアントアプリケーション１１２又は他の宛先に向かう、通信ネットワーク１０６への通信の提供とを可能にする。
【００３２】
共有ワークスペースメタデータ管理モジュール１３８（又は単に「管理モジュール１３８」）は、主として、共有ワークスペースメタデータ・データベース１２８内の共有ワークスペースメタデータを閲覧又は変更（即ち、追加、編集、又は削除）する要求を受信すること、当該要求を処理すること、及び要求中のクライアント１０２へ通信モジュール１３６を介して応答を返すことに関与する。
【００３３】
同期モジュール１４０は、主として、クライアント１０２〜１０４の共有ワークスペース１１４に格納されたコンテンツアイテム、及び／又はクライアント１０２〜１０４に格納された共有ワークスペースメタデータ１１６を、ストレージサーバ１２２〜１２４に格納されたコンテンツアイテム、及び／又は共有ワークスペースメタデータ・データベース１２８に格納された共有ワークスペースメタデータと、定期的に同期させることに関与する。
【００３４】
イベントログモジュール１４２は、クライアント１０２〜１０４における、共有ワークスペース１１４とのユーザ・インタラクション及びそのコンテンツアイテムを反映するイベントアイテムを収集し、当該イベントアイテムをイベントログ１３０に格納する。
【００３５】
通知モジュール１４４は、共有ワークスペース１１４内のコンテンツアイテム及び／又はクライアント１０２の共有ワークスペースメタデータ１１６について新たな同期更新が利用可能になった場合に、クライアント１０２のクライアントアプリケーション１１２に（例えば、ＨＴＴＰロングポーリングによって）通知する。
【００３６】
ユーザアカウントデータベース１２６は、クラウドシステム１０８のユーザについての情報を格納している。各ユーザは、アカウントデータベース１２６内にレコードを有しうる。いくつかの実施形態において、アカウントデータベース１２６内のアカウントについてのレコードは、以下の情報の全て又は当該情報のサブセット若しくは上位セットを含む：
【００３７】
アカウントＩＤ − アカウントデータベース１２６内のアカウントの固有の識別子。
【００３８】
認証クレデンシャル − アカウントのユーザを認証するために使用されうる、例えば、ユーザ名及びパスワードのような情報。
【００３９】
リンクされたデバイス［デバイスＩＤ1, デバイスＩＤ2, ... デバイスＩＤn］ − 当該アカウントにリンクされたクライアント１０２〜１０４の１つ以上の固有の識別子のリスト。このリストは、クライアント１０２〜１０４が現在、アカウントにリンクされていなければ、空であってもよい。クライアント１０２は、異なる種々の方法でアカウントにリンクされうる。１つの方法では、ユーザが、クライアントアプリケーション１１２をクライアント１０２にインストールすることに成功し、かつ、アカウントに対してクライアント１０２から認証することに成功することによって、当該アカウントにクライアント１０２をリンクさせうる。例えば、ユーザは、アカウントレコードの認証クレデンシャルをクライアント１０２から制御サーバ１２０へ提供することによって、当該アカウントに対する認証に成功しうる。場合によっては、ユーザがクライアント１０２からアカウントに対して認証に成功すること、及びクライアントアプリケーション１１２がクライアント１０２から制御サーバ１２０との通信に成功することの両方の後まで、クライアント１０２はアカウントにリンクされない。
【００４０】
デバイス‐共有ワークスペース｛デバイスＩＤi, ［共有ワークスペースＩＤ1, 共有ワークスペースＩＤ2, ... 共有ワークスペースＩＤn］｝ − ［デバイスＩＤ1, デバイスＩＤ2, ... デバイスＩＤN］におけるアカウントにリンクされたクライアント１０２（デバイスＩＤi）ごとの、クライアント１０２が参加している共有ワークスペース１１４についての１つ以上の識別子のリスト。クライアント１０２を共有ワークスペース１１４に参加させるためのプロセスについて以下で説明する。このように、共有ワークスペース１１４は、異なるユーザに属するクライアント１０２〜１０４を含む、複数のクライアント１０２〜１０４上に存在しうる。
【００４１】
共有ワークスペースメタデータ・データベース１２８は、共有ワークスペース１１４についての情報を格納している。いくつかの実施形態によれば、共有ワークスペースメタデータ・データベース１２８は、コンテンツアイテムジャーナルを含む。コンテンツアイテムジャーナル内の各レコードは、ストレージサーバ１２２〜１２４に格納されているコンテンツアイテムを表す。いくつかの実施形態において、コンテンツアイテムジャーナル内のジャーナルレコードは、以下の情報の全て又は当該情報のサブセット若しくは上位セットを含む：
【００４２】
共有ワークスペースＩＤ − コンテンツアイテムが属する共有ワークスペースの識別子。
【００４３】
共有ワークスペースパス − 共有ワークスペース内のコンテンツアイテムへの、ファイルシステムのようなパス。共有ワークスペースは、階層ツリーのような構成に従ってコンテンツアイテムを体系化しうる。当該ツリーは、単一のルートを有しうるとともに、１つ以上のノードから成り、その１つがルートを表す。ルート下の（ルートから派生する）ノードのそれぞれは、存在する場合、共有ワークスペース内のコンテンツアイテムフォルダ又はコンテンツアイテムを表す。コンテンツアイテムフォルダは、１つ以上のコンテンツアイテム及び／又は他のコンテンツアイテムフォルダのコレクションと名付けられる。しかし、コンテンツアイテムフォルダは空であってもよい。コンテンツアイテムフォルダは他のコンテンツアイテムフォルダと入れ子にされることが可能であるため、ツリーは複数のレベルを有しうる。ツリーの葉ノードは、空のコンテンツアイテムフォルダを表すか、コンテンツアイテムを表す。例えば、共有ワークスペースパス「/Design/icons.psd」は、当該ツリーが、少なくとも３つのノード、即ち、（パス内で第１のフォワードスラッシュで表される）ルートノードと、ルートノードから直接に派生する、「Design」と名付けられたコンテンツアイテムフォルダを表すノードと、そのノードから直接に派生する、「icon.psd」と名付けられたコンテンツアイテムを表すノードと、を有していることを意味する。
【００４４】
ブロックリスト［Ｈ1, Ｈ2, ... Ｈn］ − コンテンツアイテムのデータを含む、ストレージサーバ１２２〜１２４内のコンテンツアイテムブロックをそれぞれが識別する暗号ハッシュのリスト。
【００４５】
ジャーナルＩＤ − コンテンツアイテムが作成されたタイミング又はコンテンツアイテムが共有ワークスペース内の他のコンテンツアイテムと比べて最後に修正されたタイミングを表す、少なくとも共有ワークスペース内で固有の、増加し続ける値。
【００４６】
いくつかの実施形態によれば、共有ワークスペースメタデータ・データベース１２８は、共有ワークスペース１１４についてのアクセス制御情報を含む。アクセス制御情報は、複数のレコードを含みうる。各アクセス制御レコードは、共有ワークスペース１１４内のコンテンツアイテムフォルダ又はコンテンツアイテムに対するアクセス制御を表しうる。いくつかの実施形態において、データベース１２８内のアクセス制御レコードは、以下の情報の全て又は当該情報のサブセット若しくは上位セットを含む：
【００４７】
共有ワークスペースＩＤ − コンテンツアイテム又はコンテンツアイテムフォルダが属する共有ワークスペースの識別子。
【００４８】
共有ワークスペースパス − 共有ワークスペース内のコンテンツアイテムフォルダ又はコンテンツアイテムへの、ファイルシステムのようなパス。
【００４９】
アクセス制御リスト − １つ以上のアクセス制御アイテムのセット。リスト内の各アクセス制御アイテムは、ユーザ又はユーザのグループと、コンテンツアイテム又はコンテンツアイテムフォルダに対する当該ユーザ又はユーザのグループに適用される１つ以上のパーミッションとを特定する。いくつかの実施形態によれば、あるユーザは、１つ以上のパーミッションをユーザに与える、データベース１２８内のアクセス制御レコードが存在しない限り、共有ワークスペース内のコンテンツアイテムフォルダ又はコンテンツアイテムに対してパーミッションを有しない。いくつかの実施形態によれば、コンテンツアイテム・ネームスペース内のコンテンツアイテムフォルダ又はコンテンツアイテムに対する、ユーザ又はユーザのグループに与えられうるパーミッションは、以下のものの全て又は以下のもののサブセット若しくは上位セットを含む：
【００５０】
存在 − ユーザは、フォルダ又はアイテムの共有ワークスペースパスを通じて、
コンテンツアイテムフォルダ又はコンテンツアイテムの存在について知ることができるが、コンテンツアイテムのコンテンツにアクセスすることはできない。
【００５１】
閲覧 − ユーザは、コンテンツアイテムフォルダ又はコンテンツアイテムのコンテンツを開いてアクセスすることはできるが、当該コンテンツを修正することはできない。存在パーミッションを含む。
【００５２】
修正 − ユーザは、コンテンツアイテムフォルダ又はコンテンツアイテムのコンテンツを修正できるが、当該コンテンツアイテムフォルダ又はコンテンツアイテムを削除することはできない。閲覧パーミッションを含む。
【００５３】
削除 − ユーザは、コンテンツアイテムフォルダ又はコンテンツアイテムを共有ワークスペースから消去又は削除できる。修正パーミッションを含む。
【００５４】
イベントログ１３０は、イベントアイテムを格納している。各イベントアイテムは、共有ワークスペース１１４内のコンテンツアイテムフォルダ又はコンテンツアイテムに関してクライアント１０２において発生したユーザイベントを表す。イベントアイテムは、ユーザイベントの検出に応じて、クライアント１０２においてクライアントアプリケーション１１２によって生成されうる。生成されたイベントアイテムは、その後、イベントログモジュール１４２による処理のために、クライアントアプリケーション１１２によって制御サーバ１２０へ送信されうる。
【００５５】
検出されたユーザイベントは、クライアント１０２において共有ワークスペース１１４のコンテンツアイテムフォルダ又はコンテンツアイテムに対してユーザによって行われる、クライアント１０２におけるアクションに対応しうる。クライアントアプリケーション１１２は、クライアント１０２上のオペレーティングシステムによって提供されるアプリケーションプログラミングインタフェース（ＡＰＩ）を介して、ユーザイベントを検出しうる。そのようなアクションは、例えば、共有ワークスペース１１４においてコンテンツアイテムフォルダを作成すること、開くこと、修正すること、又は削除することを含みうる。また、コンテンツアイテムフォルダに関して、そのようなアクションは、共有ワークスペース１１４から、当該共有ワークスペース１１４内の他のロケーションへの、又はクライアント１０２における共有ワークスペース１１４の外部のロケーションへの、コンテンツアイテムフォルダのコピー又は移動であってもよい。同様に、クライアント１０２の共有ワークスペース１１４内のコンテンツアイテムに関して、イベントログ１３０内のイベントアイテムに対応する、クライアント１０２におけるユーザによるアクションは、クライアント１０２においてコンテンツアイテムを作成すること、開くこと、修正すること、削除すること、コピーすること、又は移動することを含んでもよい。
【００５６】
いくつかの実施形態において、より少ない及び／又は更なるモジュール、機能、又はデータベースが、クラウドシステム１０８に含まれていてもよい。図１においてクラウドシステム１０８の一部として示されるモジュールは、例示的な実施形態において実行される機能を表す。
【００５７】
図１では離散的なブロックを描いているが、同図は、機能エレメントの構造的な記載ではなく、本発明のいくつかの実施形態の機能的な記載を意図している。当業者は、実際の実装が、種々のコンポーネント間でグループ化又は分割された機能エレメントを有しうることを理解する。例えば、共有ワークスペースメタデータ・データベース１２８は、同期モジュール１４０及び通知モジュール１４４の組み合わせの一部であってもよい。同様に、共有ワークスペースメタデータ・データベース１２８に格納されるものとして上述したコンテンツアイテムジャーナル及びアクセス制御情報は、それに代えて、個別のデータベースに格納されてもよい。加えて、図１の１つ以上のブロックは、説明した機能を提供するように設計された１つ以上のサーバ上で実装されてもよい。更に、本明細書の説明では、クライアント１０２に実装される特定の特徴、及びクラウドシステム１０８に実装される特定の特徴に言及しているが、本発明の実施形態は、そのような特徴に限定されない。例えば、クラウドシステム１０８の一部として本明細書で説明した特徴は、その全体又はその一部がクライアント１０２に実装されうるし、その逆も同様でありうる。
【００５８】
いくつかの実施形態によれば、クライアント１０２〜１０４及びクラウドシステム１０８は、１つ以上の従来のコンピューティングデバイスに実装される。そのようなコンピューティングデバイスは、クライアントコンピュータ、サーバコンピュータ、ネットワークデバイス、モバイルコンピューティングデバイス、携帯電話、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーションコンピュータ、パーソナル・デジタル・アシスタント、ブレードサーバ、メインフォースコンピュータ、セットトップデバイス、ゲームコンソール、車載コンピュータ、又は他のタイプのコンピューティングデバイスを含むが、それらに限定されない、異なる種々の形態を取りうる。
【００５９】
＜基本ハードウェアの例＞
次に図２を参照すると、例示的なコンピューティングデバイス２００を示すブロック図である。コンピューティングデバイス２００及びその構成要素は、それらの接続、関係、及び機能を含め、例示のみが意図されており、本発明の実施を制限することは意図されていない。本発明の実施に適した他のコンピューティングデバイスは、種々の接続、関係、及び機能を有する構成要素を含む、種々の構成要素を有しうる。
【００６０】
コンピューティングデバイス２００は、メインメモリ２０６にアドレスするための、及びデバイス２００の種々の構成要素間でデータを転送するための、バス２０２又はその他の通信機構を含みうる。
【００６１】
コンピューティングデバイス２００は、情報を処理するためのバス２０２と接続された１つ以上のハードウェアプロセッサ２０４を更に含みうる。ハードウェアプロセッサ２０４は、本発明の実施に適した、汎用マイクロプロセッサ、システムオンチップ（ＳｏＣ）、又はその他のプロセッサでありうる。
【００６２】
ランダムアクセスメモリ（ＲＡＭ）又はその他の動的ストレージデバイス等のメインメモリ２０６も、情報又は（複数の）プロセッサ２０４によって実行される命令を格納するためにバス２０２に接続されうる。メインメモリ２０６は更に、（複数の）プロセッサ２０４によって実行されるソフトウェア命令の実行中に一時変数又はその他の中間情報を格納するために使用されてもよい。（複数の）プロセッサ２０４へアクセス可能な一時的でないストレージ媒体に格納される場合、そのようなソフトウェア命令は、コンピューティングデバイス２００を、命令に特定された動作を実行するようにカスタマイズされた特定用途のコンピューティングデバイスにする。「命令」、「ソフトウェア」、「ソフトウェア命令」、「プログラム」、「コンピュータプログラム」、「コンピュータで実行可能な命令」、及び「プロセッサで実行可能な命令」は、人間が読み取り可能であろうとなかろうと、特定の動作を実行するようコンピューティングデバイスに命令するための、機械で実行可能なあらゆる情報をカバーするよう広く解釈されるべきであり、アプリケーションソフトウェア、デスクトップアプリケーション、スクリプト、バイナリ、オペレーティングシステム、デバイスドライバ、ブートローダ、シェル、ユーティリティ、システムソフトウェア、Ｊａｖａｓｃｒｉｐｔ（登録商標）、ウェブページ、ウェブアプリケーション、プラグイン、組み込みソフトウェア、マイクロコード、コンパイラ、デバッガ、インタプリタ、仮想マシン、リンカー、及びテキストエディタを含むが、それらに限定されない。
【００６３】
コンピューティングデバイス２００は更に、静的情報及び（複数の）プロセッサ２０４への命令を格納するためにバス２０２に接続された、読み取り専用メモリ（ＲＯＭ）２０８又はその他の静的ストレージデバイスを含む。
【００６４】
１つ以上のマスストレージ２１０は、磁気、光学、ソリッドステート、光磁気、フラッシュメモリ、又はその他の利用可能なマスストレージ技術といった、固定メディア又はリムーバブルメディアに、情報及び命令を永続的に格納するためにバス２０２に接続されうる。マスストレージは、ネットワーク上で共有されてもよいし、又は専用のマスストレージであってもよい。典型的には、マスストレージデバイス２１０（例えば、デバイス用のメインハードディスク）の少なくとも１つは、他のあらゆる種類の他のデータファイルだけでなく、オペレーティングシステム、ユーザアプリケーションプログラム、ドライバ、及び他のサポートファイルを含む、コンピューティングデバイスの動作を命令するためのプログラム及びデータの本体を格納している。
【００６５】
コンピューティングデバイス２００は、バス２０２を介して、情報をコンピュータユーザに表示するための液晶ディスプレイ（ＬＣＤ）等のディスプレイ２１２と接続されうる。いくつかの構成では、タッチ検出技術（例えば、抵抗性、容量性等）を組み込んだタッチセンシティブ面が、タッチジェスチャ（例えば、指又はスライタス）入力を（複数の）プロセッサ２０４へ伝達するタッチセンシティブディスプレイを形成するために、ディスプレイ２１２に重ね合わせられうる。
【００６６】
入力デバイス２１４は、英数字キー又は他のキーを含み、情報及びコマンドの選択をプロセッサ２０４へ伝達するためにバス２０２に接続されうる。英数字キー又は他のキーに加えて、又はそれに代えて、入力デバイス２１４は、例えば、電源（オン／オフ）ボタン、「ホーム」ボタン、音量調節ボタン等の、１つ以上の物理ボタン又はスイッチを含んでもよい。
【００６７】
他のタイプのユーザ入力デバイスは、プロセッサ２０４へ方向情報やコマンドの選択を伝達し、ディスプレイ２１２上でのカーソルの移動を制御するための、マウス、トラックボール、カーソル方向キー等の、カーソルコントロール２１６であってもよい。当該入力デバイスは、通常、デバイスが平面上の位置を特定することが可能になる第１軸（例えば、ｘ）と第２軸（例えば、ｙ）の２つの軸の２つの自由度を有する。
【００６８】
図２に示す構成のようないくつかの構成では、１つ以上のディスプレイ２１２、入力デバイス２１４、及びカーソルコントロール２１６は、コンピューティングデバイス２００の外部コンポーネント（例えば、周辺機器）であるが、他の構成では、ディスプレイ２１２、入力デバイス２１４、及びカーソルコントロール２１６の１つ以上は、コンピューティングデバイス２００の形成要素の一部として統合される。
【００６９】
開示したシステム、方法及びモジュールの機能は、メインメモリ２０６に含まれるソフトウェア命令の１つ以上のプログラムを（複数の）プロセッサ２０４が実行することに応じて、コンピューティングデバイス２００によって実行されうる。そのような命令は、（複数の）ストレージデバイス２１０等の他のストレージ媒体からメインメモリ２０６へ読み込まれてもよい。メインメモリ２０６に含まれるソフトウェアプログラム命令の実行は、（複数の）プロセッサ２０４に、開示したシステム、方法及びモジュールの機能を実行させる。
【００７０】
いくつかの実施では、開示したシステム及び方法の機能は、全体がソフトウェア命令によって実施されるが、コンピューティングデバイス２００のハードワイヤード回路又はプログラム可能回路（例えば、ＡＳＩＣ、ＦＰＧＡ等）が、間近の具体的な実施の要件に従って機能を実行するために、ソフトウェア命令に代えて又はソフトウェア命令と組み合わせて使用されてもよい。
【００７１】
ここで使用される「ストレージ媒体」との用語は、特定の様式でコンピューティングデバイスを動作させるデータ及び／又は命令を格納する、非一時的な任意の媒体として参照される。そのようなストレージ媒体は、不揮発性の媒体及び／又は揮発性の媒体を備えてもよい。不揮発性の媒体は、例えば、ストレージデバイス２１０等の光学ディスク、磁気ディスク、又はソリッドステートドライブを含む。揮発性の媒体は、メインメモリ２０６等のダイナミックメモリを含む。ストレージ媒体の共通の形態は、例えば、フロッピーディスク、フレキシブルディスク、ハードディスク、ソリッドステートドライブ、磁気テープ、又は、他の任意の磁気データストレージ媒体、ＣＤ−ＲＯＭ、他の任意の光学データストレージ媒体、ホールのパターンを有する任意の物理媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＦＬＡＳＨ−ＥＰＲＯＭ、ＮＶＲＡＭ，他の任意のメモリチップ若しくはカートリッジを含む。
【００７２】
ストレージ媒体は、伝送媒体とは区別されるものの、伝送媒体とともに使用されてもよい。伝送媒体は、ストレージ媒体間で情報を転送することに使用されてもよい。例えば、伝送媒体は、バス２０２を備える有線を含む同軸ケーブル、銅線、及び光ファイバーを含む。伝送媒体は、電波及び赤外線のデータ通信中に生成されるような音波又は光波の形式をとることもできる。
【００７３】
種々の形式の媒体が、（複数の）プロセッサ２０４に対する、実行用の１つ以上の命令から成る１つ以上のシーケンスを担持することに関与しうる。例えば、当該命令は、初期的には、磁気ディスク又はリモートコンピュータのソリッドステートドライブ上に担持されうる。リモートコンピュータが、当該命令をダイナミックメモリにロードし、モデムを使用して電話線を介して当該命令を送信できる。コンピューティングデバイス２００に対してローカルなモデムが、電話線でデータを受信し、赤外線送信機を使用して当該データを赤外線信号に変換できる。赤外線検出器が、赤外線信号で運ばれるデータを受信でき、適切な回路が、当該データをバス２０２に入れることができる。バス２０２は、当該データをメインメモリ２０６へ運び、そこから（複数の）プロセッサ２０４が命令を取り出して実行する。メインメモリ２０６によって受信された命令は、オプションで、（複数の）プロセッサ２０４による実行の前又は後に（複数の）ストレージデバイス２１０に格納されてもよい。
【００７４】
コンピューティングデバイス２００は更に、バス２０２に接続された１つ以上の通信インタフェース２１８を含みうる。通信インタフェース２１８は、ローカルネットワーク２２２（例えば、イーサネット（登録商標）ネットワーク、無線ローカルエリアネットワーク、携帯電話ネットワーク、Ｂｌｕｅｔｏｏｔｈ（登録商標）無線ネットワーク等）に接続された有線又は無線のネットワークリンク２２０に結合している双方向のデータ通信を提供する。通信インタフェース２１８は、種々のタイプの情報を表すデジタルデータストリームを運ぶ電気信号、電磁気信号、又は光信号を送信及び受信する。例えば、通信インタフェース２１８は、有線ネットワークインタフェースカード、組み込み無線アンテナを有する無線ネットワークインタフェースカード、又はモデム（例えば、ＩＳＤＮ、ＤＳＬ、若しくはケーブルモデム）であってもよい。
【００７５】
（複数の）ネットワークリンク２２０は、典型的には、他のデータデバイスへの１つ以上のネットワークを介したデータ通信を提供する。例えば、ネットワークリンク２２０は、ローカルネットワーク２２２を通じて、ホストコンピュータ２２４へのコネクション、又はインターネットサービスプロバイダ（ＩＳＰ）２２６によって運用されるデータ機器へのコネクションを提供しうる。そして、ＩＳＰ２２６は、今日では一般に「インターネット」２２８と称される、世界的なパケットデータ通信ネットワークを通じて、データ通信サービスを提供する。（複数の）ローカルネットワーク２２２及びインターネット２２８は、デジタルデータストリームを運ぶ電気信号、電磁気信号、又は光信号を使用する。種々のネットワークを通る信号、並びに（複数の）ネットワークリンク２２０上の信号及び（複数の）通信インタフェース２１８を通る信号は、コンピューティングデバイス２００へのデジタルデータ及び当該デバイスからのデジタルデータを運び、伝送媒体の形態の例である。
【００７６】
コンピューティングデバイス２００は、（複数の）ネットワーク、（複数の）ネットワークリンク２２０、及び（複数の）通信インタフェース２１８を通じて、プログラムコードを含む、メッセージを送信し、データを受信することができる。インターネットの例では、サーバ２３０は、インターネット２２８、ＩＳＰ２２６、（複数の）ローカルネットワーク２２２、及び（複数の）通信インタフェース２１８を通じて、アプリケーションプログラムに対して要求されるコードを送信するかもしれない。
【００７７】
受信コードは、受信した際にプロセッサ２０４によって実行されてもよく、及び、後の実行のためにストレージデバイス２１０又は他の不揮発性のストレージに格納されてもよく、或いは、そのいずれもが行われてもよい。
【００７８】
＜基本ソフトウェアの例＞
図３は、コンピューティングデバイス２００の動作を制御するために用いられうるソフトウェアシステム３００の例のブロック図である。示されるように、コンピュータソフトウェアシステム３００は、コンピューティングデバイス２００の動作を命令するために提供される。ソフトウェアシステム３００は、システムメモリ（ＲＡＭ）２０６内に格納されてよく、また、固定ストレージ（例えば、ハードディスク）２１０に格納されてよく、カーネル又はオペレーティングシステム（ＯＳ）３１０を含む。Ｏｓ３１０は、プロセスの実行、メモリの割り当て、ファイルの入出力（Ｉ／Ｏ）、及びデバイスＩ／Ｏを含む、コンピュータ動作の低レベルの側面を管理する。図３において３０２Ａ，３０２Ｂ，３０２Ｃ，... ３０２Ｎとして表される、１つ以上のアプリケーションプログラム（例えば、図１のクライアントアプリケーション１１２）又はモジュール（例えば、図１の１３２，１３４，１３６，１３８，１４０，１４２及び１４４）は、システム４００による実行のために「ロード」されうる（即ち、固定ストレージ２１０からメモリ２０６へ転送されうる）。デバイス３００での使用が意図されたアプリケーション又は他のソフトウェアは更に、例えば、インターネットロケーション（例えば、Ｗｅｂサーバ）からのダウンロード及びインストールのために、ダウロード可能な、コンピュータで実行可能な命令のセットとして、格納されてもよい。
【００７９】
ソフトウェアシステム３００は、グラフィカルな（例えば、「ポイント・アンド・クリック」又は「タッチジェスチャ」）方法でユーザコマンド及びデータを受け付けるための、グラフィカルユーザインタフェース（ＧＵＩ）３１５を含みうる。そして、これらの入力は、オペレーティングシステム３１０及び／又は（複数の）クライアントアプリケーションモジュール３０２からの命令に従って、システム３００によって作用されうる。ＧＵＩ３１５は更に、ユーザが追加の入力を提供又はセッションを終了（例えば、ログオフ）すると、ＯＳ３１０及び（複数の）アプリケーション３０２からの動作の結果を表示する働きをする。
【００８０】
ＯＳ３１０は、デバイス２００のベア・ハードウェア（例えば、（複数の）プロセッサ２０４）３２０上で直接実行できる。あるいは、ハイパーバイザ又は仮想マシンモニタ（ＶＭＭ）３３０が、ベア・ハードウェア３２０とＯＳ３１０との間に介在してもよい。この構成では、ＶＭＭ３３０は、ＯＳ３１０とデバイス１００のベア・ハードウェア３２０との間のソフトウェア「クッション」又は仮想レイヤとして機能する。
【００８１】
ＶＭＭ３３０は、仮想マシン・インスタンス（「ゲストマシン」）を生成して実行する。各ゲストマシンは、ＯＳ３１０のような「ゲスト」オペレーティングシステムと、ゲスト・オペレーティングシステム上で実行するよう設計された、アプリケーション３０２のような１つ以上のアプリケーションとを備える。ＶＭＭ３３０は、ゲスト・オペレーティングシステムに仮想オペレーティングプラットフォームを与え、ゲスト・オペレーティングシステムの実行を管理する。
【００８２】
場合によっては、ＶＭＭ３３０は、ゲスト・オペレーティングシステムが、あたかもデバイス２００のベア・ハードウェア３２０上で直接動作しているかのうように動作することを可能にしうる。この場合、ベア・ハードウェア３２０上で実行するよう構成されたゲスト・オペレーティングシステムの同じバージョンも、直接、修正又は再構成なしでＶＭＭ３３０上で実行することが可能であってもよい。言い換えれば、ＶＭＭ３３０は、場合によってはゲスト・オペレーティングシステムに対してフル・ハードウェア及びＣＰＵ仮想化を提供しうる。
【００８３】
その他の場合において、ゲスト・オペレーティングシステムは、効率化のため、ＶＭＭ３３０上で実行するよう、特別に構成又は設計されてもよい。この場合には、ゲスト・オペレーティングシステムは、仮想マシンモニタ上で実行することを「知っている」。言い換えれば、ＶＭＭ３３０は、場合によってはゲスト・オペレーティングシステムに対して準仮想化（para-virtualization）を提供しうる。
【００８４】
上述のコンピュータハードウェア及びソフトウェアは、本発明の実施のために採用されうる、基礎となるコンピュータコンポーネントの例を説明する目的で与えられている。しかし、本発明は、任意の特定のコンピューティング環境又はコンピューティングデバイス構成に限定されない。その代わりに、本発明は、開示したシステム及び方法の特徴及び機能をサポートできる任意のタイプのシステム構成又は処理環境において実施されうる。
【００８５】
＜共有ワークスペース及び選択的コンテンツアイテム同期＞
歴史的には、既存のオンラインコンテンツ管理システムは、ユーザの複数のデバイス間で個人的なコンテンツアイテムの同期を保持するのに適している。例えば、既存のシステムでは、ユーザＡは、当該システムに関連付けられているラップトップデバイス上でドキュメントを作成又は修正でき、当該更新が、当該システムを通じてユーザＡの他の関連付けられたデバイスに対して自動的に複製され、それにより、デバイスとシステムとの間の同期動作の一部として他の関連付けられた全デバイスにおいて当該更新が適用された後に、関連付けられた全デバイスにおけるドキュメントのコピーの全てが一致する。
【００８６】
企業コンテキストでは、従業員によって作成されたコンテンツアイテムは、一般的には企業に属し、従業員自身には属しない。更に、歴史的に見て、企業は、当該企業のコンテンツアイテムが、多数のパーソナルコンピューティングデバイス間に分散されるのとは対照的に、ファイルサーバ等に集中化されるものと見なしている。このように行われる集中化の見方は、企業が、当該企業に属するコンテンツアイテムから個人的なコンテンツアイテムを区別するのを容易にする。例えば、企業のＩＴ管理者又はアドミニストレータは、ファイルサーバ上に格納された全てのコンテンツアイテムが当該企業に属するものと、安全に想定することができるであろう。更に、コンテンツアイテムの集中化の特性のおかげで、企業がコンテンツアイテムへのアクセスを制御することが容易になっていた。例えば、ＩＴ管理者又はアドミニストレータは、会社のファイルサーバ上に格納されているコンテンツアイテムに対してアクセス制御パーミッションを設定できる。また、多くの場合、企業に属するコンテンツアイテムの寿命は、ある任意の従業員の雇用期間を上回る。企業に属するコンテンツアイテムを集中型のファイルサーバに格納することによって、当該企業は、単に、当該ファイルサーバにおいてコンテンツアイテムに対して適切なアクセス制御パーミッションを設定することによって、コンテンツアイテムへのアクセスを新しい従業員に提供できる。同様に、企業は、単に、アクセスを無効にするようにアクセス制御パーミッションを変更することによって、離職した従業員からファイルサーバ上のコンテンツアイテムへのアクセスを無効にできる。企業の観点からすれば、ファイルサーバは、従業員が出入りするに従って時間とともに存在する、企業のコンテンツアイテムについての、集中型のリポジトリと見なされる。
【００８７】
いくつかの既存のオンラインコンテンツ管理システムでは、コンテンツアイテムのストレージモデルが、従来のファイルサーバモデルよりも集中化されていない。特に、これらのシステムでは、システムの各ユーザは、システムと同期させられるコンテンツアイテムが格納された、当該ユーザのパーソナルコンピューティングデバイス上に、独自の個人同期リポジトリを有している。更に、各ユーザは、互いに独立した個人同期リポジトリを保持している。例えば、既存のシステムでは、ユーザ・アリスの同期リポジトリは、固有の視認性を、ユーザ・ボブの同期リポジトリに提供しえない。特に、ユーザ・アリスは、どのコンテンツアイテムがユーザ・ボブの同期リポジトリに格納されているのか知りえず、その逆も同様である。いくつかの既存のシステムは、選択されたコンテンツアイテムを同期リポジトリ間で共有するための仕組みを提供する。例えば、いくつかの既存のシステムでは、ユーザ・アリスは、ボブが彼の同期リポジトリ内の共有フォルダに対して行う更新がアリスの同期リポジトリ内でアリスに見えるように、アリスの同期リポジトリ内のフォルダをユーザ・ボブと共有できる。しかし、既存のシステムでは、共有フォルダの所有者は、個人に関係している。これは、アリスが会社を辞め、彼女の同期リポジトリを廃止した、又は単に彼女の同期リポジトリから共有フォルダを削除した場合に問題がある。この場合、彼女がボブと共有していたフォルダに、もはやボブがアクセスできなくなりうる。最悪の場合、共有フォルダに蓄積されていた作業結果の全てが失われる。
【００８８】
既存のシステム上の共有フォルダに関する他の問題は、当該共有フォルダが他の人の同期リポジトリに組み込まれた場合に、共有フォルダに関連する階層情報が失われうることである。例えば、アリスが彼女の同期リポジトリ内に、パス/A/B/Cを有するフォルダを有していると仮定する。既存のシステムでは、ユーザ・アリスがフォルダ/A/B/Cをユーザ・ボブと共有する場合、当該フォルダは、親フォルダ「Ａ」及び「Ｂ」についての階層情報が失われたボブの同期リポジトリ内において/Cとして表れる。これは、とりわけ、共有フォルダ内に何が格納されているのかについての情報を親フォルダの名前が伝える場合に問題となる。全体としては、既存のオンラインコンテンツ管理システムは、同期リポジトリの個別化の特性及び分散化の特性に起因して、企業に属するコンテンツアイテムの管理及び格納に使用される場合に当該企業に対して調整コストを増加させる。
【００８９】
いくつかの実施形態によれば、クラウドシステム１０８及びクライアントアプリケーション１１２は、クライアント１０２〜１０４のユーザに対して共有ワークスペース１１４を提供する。最高レベルでは、共有ワークスペースは、ユーザによる共有ワークスペース内のコンテンツアイテムへのアクセスを制御するアクセス制御を用いて、コンテンツアイテムフォルダ階層構造（hierarchy）に従って配置されるコンテンツアイテムのコレクションと名付けられる。
【００９０】
いくつかの実施形態によれば、共有ワークスペース内のコンテンツアイテムのサブセットのみが、任意の時点においてクライアント１０２に格納される。
【００９１】
いくつかの実施形態によれば、ユーザは、クライアント１０２のオペレーティングシステムによって提供されるファイルシステムブラウザ（例えば、ＭＡＣ ＯＳデバイス上のｆｉｎｄｅｒ、又はＷＩＮＤＯＷＳ（登録商標）デバイス上のＷＩＮＤＯＷＳ ＥＸＰＬＯＲＥＲ）を用いて、クライアント１０２において共有ワークスペースのコンテンツアイテムフォルダ階層構造をブラウジングできる。
【００９２】
いくつかの実施形態によれば、クライアント１０２が共有ワークスペースに参加した後に、アクション可能アイコンが、クライアント１０２のＧＵＩ１１０に現れる。例えば、当該アイコンは、クライアント１０２上のオペレーティングシステムによって提供されるＧＵＩ１１０のデスクトップ上に現れうる。ユーザは、共有ワークスペースのコンテンツアイテム階層構造の、ファイルエクスプローラのようなビューを開くために、当該アイコンとのインタラクション（例えば、当該アイコンに対するダブルクリック）を行いうる。更に、共有ワークスペースのアイコン又は他のインジケーションも、クライアント１０２上のオペレーティングシステムによって提供されるインタフェースにおいて他の共有リソースとともに表示されうる。例えば、アクション可能アイコン又はテキストが、搭載ドライブ、共有ドライブ、ネットワークドライブ、又は他の接続されたリソースとともに、ＧＵＩ１１０内でリスト化されうる。そうすることにより、ユーザが、搭載ドライブ、外部ディスク、及びネットワークドライブといった、他の接続されたリソースにアクセスするために知っているなじみのあるロケーションから、共有ワークスペースにアクセスできる。
【００９３】
本発明のいくつかの実施形態によれば、共有ワークスペースメタデータ・データベース１２８内の共有ワークスペースメタデータによって特定されるような、共有ワークスペースは、以下のものの全て又は以下のもののサブセット若しくは上位セットを包含する：
【００９４】
ストレージサービス１２２〜１２４に格納された１つ以上のコンテンツアイテム。
【００９５】
共有ワークスペースに含まれるコンテンツアイテムへの共有ワークスペースパスを特定し、共有ワークスペースに含まれる任意の空のコンテンツアイテムフォルダへの共有ワークスペースパスを特定する、共有ワークスペース・コンテンツアイテム階層構造。
【００９６】
共有ワークスペースに含まれるコンテンツアイテム及びコンテンツアイテムフォルダについてのアクセス制御リスト。
【００９７】
本発明のいくつかの実施形態によれば、ユーザがクライアント１０２を共有ワークスペース１１４に参加させた場合、共有ワークスペース１１４についての共有ワークスペースメタデータ１１６のみが、クラウドシステム１０８から自動的にダウンロードされ、クライアント１０２に格納される。しかし、共有ワークスペース１１４に含まれるコンテンツアイテムの全てが、少なくとも共有ワークスペース１１４へクライアント１０２を参加させることに応答せずに、自動的にダウンロードされるとは限らない。そうすることにより、ユーザがより迅速にクライアント１０２を共有ワークスペース１１４に参加させることができ、これは、共有ワークスペース１１４内のコンテンツアイテムの少なくとも一部が、コンテンツアイテムサーバ１１８から通信ネットワーク１０６を介してクライアント１０２へダウンロードされないためである。更に、これにより、クライアント１０２において利用可能なストレージ空間の量が、共有ワークスペース１１４に属するコンテンツアイテムの大部分又は全てを格納するのに必要となるであろう量よりも少ない場合であっても、ユーザがクライアント１０２を共有ワークスペース１１４へ参加させることが可能になる。また、その時、クライアント１０２は、クライアント１０２において提示されるＧＵＩ１１０内で共有ワークスペース１１４の表現を提供するためにクライアント１０２のクライアントアプリケーション１１２が使用できる共有ワークスペースメタデータ１１６を、クラウドシステム１０８から取得する。いくつかの実施形態では、提示されるＧＵＩ１１０は、共有ワークスペース１１４のコンテンツアイテム階層構造の、ユーザがブラウジング可能なインタラクティブ表現を含む。
【００９８】
図４Ａは、クライアント１０２が、「Acme」と名付けられた共有ワークスペース１１４に参加することに成功した後にクライアント１０２において提示されるＧＵＩ１１０Ａの例を示す。ＧＵＩ１１０Ａは、デスクトップ４０２Ａと、コンテンツアイテムブラウザ４０４Ａと、共有ワークスペース・ランチャーアイコン４０６Ａとを含む。デスクトップ４０２Ａは、クライアント１０２のオペレーティングシステム（例えば、３１０）によって提示されうる。コンテンツアイテムブラウザ４０４Ａ及び共有ワークスペース・ランチャーアイコン４０６Ａは、オペレーティングシステムとクライアントアプリケーション１１２との組み合わせによって提示されうる。
【００９９】
いくつかの実施形態によれば、クライアント１０２が共有ワークスペースに参加すると、クライアント１０２上の共有ワークスペース１１４が、クライアント１０２のオペレーティングシステムによって提供されるファイルシステムブラウザ内に、搭載されたドライブ、ディスク若しくはディスク、又は共有リソースとして現れる。例えば、「Acme」共有ワークスペース１１４は、強調表示によって示されるように、現在選択されている、共有リソース４０８Ａとしてコンテンツアイテムブラウザ４０４Ａ内に現れる。そうすることによって、ファイルシステムブラウザにユーザが従前から慣れ親しんでいることに基づいて、デスクトップ４０２Ａ環境への共有ワークスペース１１４の統合は、よりシームレスになる。ユーザがクライアント１０２を１つ以上の共有ワークスペース１１４に参加させた場合、複数の共有ワークスペースが、（「Acme」共有ワークスペース１１４についての共有リソース４０８Ａのような）共有リソースとしてファイルシステムブラウザ４０４Ａ内に現れうる。
【０１００】
上述のように、いくつかの実施形態によれば、クライアント１０２が共有ワークスペース１１４に参加させられた際に、共有ワークスペース１１４に属するコンテンツアイテムの全てがコンテンツアイテムサーバ１１８からクライアント１０２へ自動的にダウンロードされうるとは限らない。しかし、共有ワークスペース１１４についての共有ワークスペースメタデータ１１６は、制御サーバ１２０からクライアント１０２へ自動的にダウンロードされうる。そうすることによって、クライアントアプリケーション１１２が、クライアント１０２において提示されるＧＵＩ１１０内に共有ワークスペース１１４の表現を提供することが可能である。
【０１０１】
例えば、コンテンツアイテムブラウザ４０４Ａは、複数のフォルダアイコンを含む。各フォルダアイコン（例えば、４１０Ａ）は、「Acme」共有ワークスペース１１４のコンテンツアイテム階層構造のルートの、又は当該階層構造の他のコンテンツアイテムフォルダに含まれる、コンテンツアイテムフォルダを表す。各フォルダアイコン（例えば、４１０Ａ）は、対応するコンテンツアイテムフォルダに対する現在の同期設定を示す、同期設定ステータスアイコンを含む。
【０１０２】
いくつかの実施形態によれば、２つの異なる同期設定に対応する、少なくとも２つの異なる同期設定ステータスアイコンが存在する。１つの設定ステータスアイコンは、コンテンツアイテムフォルダのコンテンツが現在、クラウドアクセスのみのために設定されていることを表す。即ち、コンテンツアイテムフォルダのコンテンツは、クライアント１０２においてローカルに格納されていない。図４Ａの例では、この設定を表す同期設定ステータスアイコンは、雲の外観を有している。例えば、雲アイコンは、そのコンテンツアイテムフォルダのコンテンツがクライアント１０２においてローカルに格納されていないことを示すように、「Accounting」コンテンツアイテムフォルダ４１０Ａと併せて現れている。他の設定ステータスアイコンは、コンテンツアイテムフォルダのコンテンツが現在、オフラインアクセスに使用可能であることを表す。即ち、コンテンツアイテムフォルダのコンテンツは、クライアント１０２においてローカルに格納されている。図４Ａの例では、この設定を表すアイコンは、チェックマークの外観を有している。例えば、チェックマークは、そのフォルダのコンテンツが、クライアント１０２においてローカルに格納されており、そのため、クライアント１０２が通信ネットワーク１０６に接続されていなくてもアクセスに使用可能であることを示すように、「Sam Jau」コンテンツアイテムフォルダ４１２Ａと併せて現れている。
【０１０３】
同期設定ステータスアイコンを見ることによって、ユーザは、対応するコンテンツアイテムフォルダのコンテンツが、クライアント１０２においてオフラインアクセスに使用可能であるかどうかを素早く認識することができる。コンテンツアイテムとは対照的に、コンテンツアイテムの現在の同期設定ステータスを表すためにも、同様の又は類似のアイコンが使用されうる。
【０１０４】
いくつかの実施形態では、共有ワークスペース１１４内のコンテンツアイテムフォルダ又はコンテンツアイテムの現在の同期設定ステータスは、クライアント１０２において共有ワークスペース１１４についての共有ワークスペースメタデータ１１６の一部として格納される。いくつかの実施形態によれば、ユーザは、選択されたコンテンツアイテムフォルダ又は選択されたコンテンツアイテムの現在の同期設定ステータスを変更するために、クライアント１０２においてＧＵＩ１１０とのインタラクションを行いうる。いくつかの実施形態によれば、コンテンツアイテムフォルダ又はコンテンツアイテムの同期設定ステータスが、クラウドアクセスからオフラインアクセスに変更された場合、クライアントアプリケーション１１２は、当該変更の検出に応じて、当該コンテンツアイテムフォルダ又はコンテンツアイテムを、コンテンツアイテムサーバ１１８からクライアント１０２へダウンロードする。その後、コンテンツアイテムフォルダ又はコンテンツアイテムの同期設定ステータスがオフラインアクセスであり続ける限り、クライアントアプリケーション１１２は、当該コンテンツアイテムフォルダ又はコンテンツアイテムを、クラウドシステム１０８内のコンテンツアイテムフォルダ又はコンテンツアイテムの現在のバージョンと同期させ続ける。しかし、クライアント１０２とクラウドシステム１０８との間のそのような同期は、非同期的に又は定期的に発生してもよい。したがって、コンテンツアイテムフォルダ又はコンテンツアイテムがクライアント１０２においてオフラインアクセスのために設定されているにもかかわらず、クライアント１０８における当該コンテンツアイテムフォルダ又はコンテンツアイテムが、クラウドシステム１０８における現在のコンテンツアイテムフォルダ又はコンテンツアイテムに対して同期していない、同期動作間の短い期間が存在することがある。
【０１０５】
例えば、図４Ｂにおいて、ユーザは、「Accounting」フォルダアイコン４１０Ｂを右クリックしている。それに応じて、ポップアップメニュー４１８Ｂが、ＧＵＩ１１０Ｂ内に表示されている。メニュー４１８Ｂは、「Accounting」コンテンツアイテムフォルダの現在の同期設定ステータスを、クラウドアクセスからオフラインアクセスに変更するためのオプション４１６Ｂを提供する。
【０１０６】
選択オプション４１６Ｂに応じて、「Accounting」コンテンツアイテムフォルダのコンテンツが、図４Ｃの４１０Ｃに示されるように、コンテンツアイテムサーバ１１８からクライアント１０２へダウンロードされる。「Accounting」コンテンツアイテムフォルダのコンテンツのクライアント１０２へのダウンロードが終了した後に、同期設定ステータスアイコンが、コンテンツが現在、オフラインアクセスに使用可能であることを示すように変化する。例えば、図４Ｄは、「Accounting」コンテンツアイテムフォルダのコンテンツが現在、オフラインアクセスのために設定されていることを示すためのチェックマークを現在有するフォルダアイコン４１０Ｄを示している。
【０１０７】
いくつかの実施形態によれば、共有ワークスペース内のコンテンツアイテムも、クラウドアクセス又はオフラインアクセス用に設定されることが可能である。コンテンツアイテムがクラウドアクセス用に設定され、ユーザが当該コンテンツアイテムを開く場合、当該コンテンツアイテムは、クライアント１０２において開かれる前にクライアント１０２へ自動的にダウンロードされてもよい。その後、当該コンテンツは、オフラインアクセス用に設定されてよく、その設定はＧＵＩ１１０内で（例えば、チェックマークによって）そのように示される。言い換えれば、クライアント１０２においてローカルでコンテンツアイテムを開くことを求める、ユーザの要求は、同期設定をクラウドアクセスからオフラインアクセスへ変更することを求める要求として解釈されうる。いくつかの実施形態では、同期設定ステータスは、ユーザがコンテンツアイテムを開くことに加えて他の何らかのアクションをとった場合にのみ変更される。例えば、同期設定ステータスは、ユーザが、コンテンツアイテムを開くこと及び当該コンテンツアイテムを編集することの両方を行った場合、又は閾値期間（例えば、２４時間）のうちのコンテンツアイテムを複数回、開いた場合に、クラウドアクセスからオフラインアクセスに自動的に変更されてもよい。ユーザがコンテンツアイテムを単に開いたときに同期設定ステータスがクラウドアクセスからオフラインアクセスへ変更されない場合、当該コンテンツアイテムはそれでもクライアント１０２にダウンロードされ、ユーザによる可能性のあるその後のアクセスを見越して、しばらくの間、クライアント１０２においてキャッシュされてもよい。しかし、ＧＵＩ１１０内のコンテンツアイテムの同期設定ステータスアイコンは、（例えば、雲アイコンによって）クラウドアクセスを示し続けてもよい。
【０１０８】
いくつかの実施形態によれば、クライアントアプリケーション１１２は、オフラインアクセス用に設定されている共有ワークスペース内のコンテンツアイテムによって占有される、クライアント１０２のローカルストレージ空間の量（例えば、ハードディスク空間）が、いつ閾値又は閾値割合を超えるかを検出する。閾値を超えることに応じて、クライアントアプリケーション１１２は、オフラインアクセス用に現在設定されている１つ以上のコンテンツアイテムの同期設定ステータスを、クラウドアクセスに変更するよう、ユーザに促してもよい。それと同時に、クライアントアプリケーション１１２は、ストレージリソースを解放するように、クライアント１０２においてコンテンツアイテムを削除してもよい。
【０１０９】
クライアント１０２における共有ワークスペース内のコンテンツアイテムに対してユーザがローカル変更を行った場合、クライアントアプリケーション１１２は、ストレージサーバ１２２〜１２４に格納されているコンテンツアイテムのコピーへの適用のために、クラウドシステム１０８に対して当該変更を自動的に複製する。
【０１１０】
いくつかの実施形態によれば、クラウドアクセス用に設定されているコンテンツアイテムフォルダをユーザが開いた場合に、当該コンテンツアイテムフォルダが開かれるが、当該コンテンツアイテムフォルダのコンテンツは、開かれたコンテンツアイテムのようにはクラウドシステム１０８から自動的にダウンロードされない。更に、開かれたコンテンツアイテムとは異なり、開かれたコンテンツアイテムフォルダの同期設定ステータスは、クラウドアクセスであり続ける。
【０１１１】
いくつかの実施形態によれば、共有ワークスペース内の１つ以上のコンテンツアイテムフォルダは、オフラインアクセス用に事前設定される。その結果、共有ワークスペースへの参加に応じて、これらのコンテンツアイテムフォルダのコンテンツがクライアント１０２へ自動的にダウンロードされる。
【０１１２】
いくつかの実施形態によれば、クライアント１０２のユーザは、ＧＵＩ１１０内のコンテンツアイテムフォルダ又はコンテンツアイテムに対して設定されたアクセス制御を見ることができる。例えば、ユーザは、ＧＵＩ１１０内に表示されたコンテンツアイテムフォルダ又はコンテンツアイテムを表すアイコンを右クリックしてもよいし、それによりポップアップメニューが表示されうる。当該ポップアップメニューから、ユーザは、対応するコンテンツアイテムフォルダ又はコンテンツアイテムに対して設定された現在のアクセス制御を表示するオプションを選択しうる。
【０１１３】
いくつかの実施形態によれば、ＧＵＩ１１０内に表示された共有ワークスペースのコンテンツアイテムフォルダ又はコンテンツアイテムを表すアイコンは、誰が当該コンテンツアイテムフォルダ又はコンテンツアイテムへのアクセスを有するかを示す。例えば、１つのアイコンが、ユーザの集合のサブセットがコンテンツアイテムフォルダ又はコンテンツアイテムに対してアクセスを有することを示してもよく、他のアイコンが、当該ユーザの集合に含まれていない少なくとも１ユーザが、コンテンツアイテムフォルダ又はコンテンツアイテムへのアクセスを有することを示してもよい。そうすることによって、ユーザは、アイコンが提示されたフォルダ又はコンテンツアイテムを見ることによって、コンテンツアイテムフォルダ又はコンテンツアイテムへのアクセスが、ユーザの集合のサブセットに制限されているか、当該ユーザの集合以外がアクセス可能であるかを、素早く得ることができる。
【０１１４】
他の実施形態によれば、コンテンツアイテムフォルダ又はコンテンツアイテムを表すアイコンは、コンテンツアイテムフォルダ又はコンテンツアイテムに対して設定されたアクセス制御に従って、当該コンテンツアイテムフォルダ又はコンテンツアイテムに対して誰がアクセスを有するのかに関して、３つの状態のうちの１つを伝えることが可能である。１つのアイコン状態は、ユーザの集合のサブセットが、コンテンツアイテムフォルダ又はコンテンツアイテムへのアクセスを有することを伝え、２つ目のアイコン状態は、ユーザの当該集合に含まれていない少なくとも１ユーザが、当該コンテンツアイテムフォルダ又はコンテンツアイテムへのアクセスを有することを伝え、３つ目のアイコン状態は、まさしくユーザの当該集合が、当該コンテンツアイテムフォルダ又はコンテンツアイテムへのアクセスを有することを伝える。当該ユーザの集合は、例えば、共有ワークスペースに参加するよう招待されているユーザの集合であってもよいし、又は少なくとも１つのデバイスを共有ワークスペースに参加させたユーザの集合であってもよい。
【０１１５】
いくつかの実施形態によれば、クライアント１０２においてストレージ空間が許容すると、クライアントアプリケーション１１２は、コンテンツアイテムが間もなくクライアント１０２においてアクセスされることを見越して、共有ワークスペース内のコンテンツアイテムをクラウドシステム１０８からクライアント１０２へ自動的にダウンロード（プリフェッチ）する。クライアントアプリケーション１１２は、コンテンツアイテムがクラウドアクセス用に設定されている場合でも、これを行ってもよい。クライアントアプリケーション１１２がコンテンツアイテムをプリフェッチしうる一部の理由は、コンテンツアイテム又は関連するコンテンツアイテムが、他のクライアント１０４において直近に修正されているためである。この場合、通知モジュール１４４は、コンテンツアイテム又は関連するコンテンツアイテムの修正の検出に応じて、当該コンテンツアイテム（又はその一部）をコンテンツアイテムサーバ１１８からクライアント１０２へダウンロードするよう、クライアント１０２のクライアントアプリケーション１１２に知らせてもよい。この場合、当該コンテンツアイテムについてＧＵＩ１１０内に表示されたアイコンは、当該コンテンツアイテムがその後にクライアント１０２のコンテンツアイテムキャッシュから削除された場合には、クラウドアクセスのままであってもよい。
【０１１６】
上述の記載は、説明を目的として特定の実施形態を参照して記載されている。しかし、上記の例示的な議論は、網羅的であることを意図していないし、開示したそのままの形態に本発明を限定することも意図していない。上述の教示を考慮して多くの修正及び変形が可能である。上記の実施形態は、予定される具体的な用途に当業者が結果として本発明を最良に利用することを可能にするために、本発明の原理及びその実用的な応用を最良に説明するために選択及び記載されている。
なお、本願の出願当初の特許請求の範囲に記載された発明を以下に付記する。
［Ｃ１］
共有コンテンツアイテムのワークスペースに選択的なコンテンツアイテム同期を提供するための方法であって、前記方法は、
パーソナルコンピューティングデバイスのオペレーティングシステムによって提供されるデスクトップグラフィカルユーザインタフェースに、共有ワークスペースについてのアクション可能な共有ワークスペース・ランチャーアイコンを表示する工程であって、前記共有ワークスペースは、コンテンツ管理システムで保持されているユーザアカウントと関連付けられている、前記工程と、
前記共有ワークスペースに関連するメタデータを前記コンテンツ管理システムの制御サーバからダウンロードする工程であって、前記メタデータは、前記共有ワークスペースに属する１つ以上のコンテンツアイテムのそれぞれの名前を含む、前記工程と、
前記共有ワークスペースについての前記アクション可能な共有ワークスペース・ランチャーアイコンの起動に応じて、前記デスクトップグラフィカルユーザインタフェースに表示されたウィンドウ内に、前記１つ以上のコンテンツアイテムのそれぞれについての対応するアクション可能なファイルシステムアイコンを表示する工程であって、前記１つ以上のコンテンツアイテムのそれぞれについての前記対応するアクション可能なファイルシステムアイコンは、前記コンテンツアイテムの前記名前を示し、かつ、前記コンテンツアイテムが現在、オフラインアクセス用に設定されていないことを示す、前記工程と、
前記１つ以上のコンテンツアイテムのうちの、特定のコンテンツアイテムについての１つ以上のコンテンツアイテムブロックを、前記コンテンツ管理システムのコンテンツアイテムサーバからダウンロードする工程と、
前記１つ以上のコンテンツアイテムブロックを、前記パーソナルコンピューティングデバイスにおいて格納する工程と、
前記特定のコンテンツアイテムに対応する前記アクション可能なファイルシステムアイコンの起動に応じて、前記特定のコンテンツアイテムが現在、オフラインアクセスに設定されていることを示すように、前記特定のコンテンツアイテムについての前記対応するアクション可能なファイルシステムアイコンの表示を更新する工程と、
を含む、方法。
［Ｃ２］
Ｃ１に記載の方法であって、
前記メタデータは、前記１つ以上のコンテンツアイテムブロックの１つ以上の識別子を更に含み、
前記１つ以上のコンテンツアイテムブロックを前記コンテンツアイテムサーバからダウンロードする工程は、前記コンテンツアイテムサーバのネットワーク要求で、前記１つ以上のコンテンツアイテムブロックの前記１つ以上の識別子を提供する工程を含む、方法。
［Ｃ３］
Ｃ１に記載の方法であって、
前記１つ以上のコンテンツアイテムのそれぞれは、コンテンツアイテムフォルダ又はコンテンツアイテムファイルであり、
前記１つ以上のコンテンツアイテムのそれぞれについての対応するアクション可能なファイルシステムアイコンを前記ウィンドウ内に表示する工程は、前記コンテンツアイテムがコンテンツアイテムフォルダであるかコンテンツアイテムファイルであるかを示す、前記１つ以上のコンテンツアイテムのそれぞれについての対応するアクション可能なファイルシステムアイコンを、前記ウィンドウ内に表示する工程を含む、方法。
［Ｃ４］
Ｃ１に記載の方法であって、
前記特定のコンテンツアイテムは、特定のコンテンツアイテムフォルダであり、
前記１つ以上のコンテンツアイテムブロックは、前記特定のコンテンツアイテムフォルダに含まれる１つ以上のコンテンツアイテムファイルに属し、
前記メタデータは、前記特定のコンテンツアイテムフォルダに含まれる前記１つ以上のコンテンツアイテムファイルを示す、方法。
［Ｃ５］
Ｃ１に記載の方法であって、前記１つ以上のコンテンツアイテムのうちの、前記特定のコンテンツアイテムに対応する前記アクション可能なファイルシステムアイコンの前記起動は、前記ウィンドウ内に表示された１つ以上の選択可能なアイテムのリストの、選択可能なアイテムをユーザにより選択することを含み、前記選択可能なアイテムは、前記特定のコンテンツアイテムをオフラインアクセス用に設定するためのオプションを表す、方法。 
［Ｃ６］
Ｃ１に記載の方法であって、
前記特定のコンテンツアイテムに対応する前記アクション可能なファイルシステムアイコンの前記起動は、前記特定のコンテンツアイテムに対応する前記アクション可能なファイルシステムアイコンの第１の起動であり、
前記方法は、前記特定のコンテンツアイテムに対応する前記アクション可能なファイルシステムアイコンの第２の起動に応じて、前記パーソナルコンピューティングデバイスから前記１つ以上のコンテンツアイテムブロックを削除する工程と、前記コンテンツアイテムが現在、オフラインアクセスに設定されていないことを示すように、前記特定のコンテンツアイテムについての前記対応するアクション可能なファイルシステムアイコンの表示を更新する工程と、を更に含む、方法。
［Ｃ７］
Ｃ１に記載の方法であって、更に、
前記１つ以上のコンテンツアイテムブロックを前記コンテンツアイテムサーバからダウンロードする工程が実行されている間に、前記ダウンロードする工程が現在実行されていることを示すように、前記特定のコンテンツアイテムについての前記対応するアクション可能なファイルシステムアイコンの表示を更新する工程を含む、方法。
［Ｃ８］
Ｃ１に記載の方法であって、前記特定のコンテンツアイテムについての前記１つ以上のコンテンツアイテムブロックを前記コンテンツアイテムサーバからダウンロードする工程と、前記１つ以上のコンテンツアイテムブロックを前記パーソナルコンピューティングデバイスにおいて格納する工程とが、前記特定のコンテンツアイテムに対応する前記アクション可能なファイルシステムアイコンの前記起動の前に実行される、方法。
［Ｃ９］
Ｃ１に記載の方法であって、前記特定のコンテンツアイテムについての前記１つ以上のコンテンツアイテムブロックを前記コンテンツアイテムサーバからダウンロードする工程と、前記１つ以上のコンテンツアイテムブロックを前記パーソナルコンピューティングデバイスにおいて格納する工程とが、前記特定のコンテンツアイテムに関連付けられ、かつ、前記パーソナルコンピューティングデバイスにおいて格納されているメタデータに従って、前記特定のコンテンツアイテムがオフラインアクセス用に設定されていない間に実行される、方法。
［Ｃ１０］
Ｃ１に記載の方法であって、更に、
前記パーソナルコンピューティングデバイスにおける使用可能なデータストレージ空間の量に関連するイベントの検出に応じて、前記特定のコンテンツアイテムの設定を（ａ）オフラインアクセス用の設定から（ｂ）オフラインアクセス用ではない設定に自動的に切り替える工程と、
前記特定のコンテンツアイテムの前記設定が（ａ）から（ｂ）へ切り替えられてから前記特定のコンテンツアイテムがアクセスされていないと判定することに応じて、前記１つ以上のコンテンツアイテムブロックを前記パーソナルコンピューティングデバイスから自動的に削除する工程と、を含む、方法。
［Ｃ１１］
１つ以上のプロセッサによる実行のための１つ以上のコンピュータプログラムであって、Ｃ１からＣ１０のいずれか１項に記載の方法を実行するための命令を含む前記１つ以上のコンピュータプログラムを格納したコンピュータで読み取り可能なストレージ媒体。
［Ｃ１２］
パーソナルコンピューティングデバイスであって、
前記パーソナルコンピューティングデバイスのオペレーティングシステムによって提供されるデスクトップグラフィカルユーザインタフェースに、共有ワークスペースについてのアクション可能な共有ワークスペース・ランチャーアイコンを表示する手段であって、前記共有ワークスペースは、コンテンツ管理システムで保持されているユーザアカウントと関連付けられている、前記手段と、
前記共有ワークスペースに関連するメタデータを前記コンテンツ管理システムの制御サーバからダウンロードする手段であって、前記メタデータは、前記共有ワークスペースに属する１つ以上のコンテンツアイテムのそれぞれの名前を含む、前記手段と、 
前記共有ワークスペースについての前記アクション可能な共有ワークスペース・ランチャーアイコンの起動に応じて、前記デスクトップグラフィカルユーザインタフェースに表示されたウィンドウ内に、前記１つ以上のコンテンツアイテムのそれぞれについての対応するアクション可能なファイルシステムアイコンを表示する手段であって、前記１つ以上のコンテンツアイテムのそれぞれについての前記対応するアクション可能なファイルシステムアイコンは、前記コンテンツアイテムの前記名前を示し、かつ、前記コンテンツアイテムが現在、オフラインアクセス用に設定されていないことを示す、前記手段と、
前記１つ以上のコンテンツアイテムのうちの、特定のコンテンツアイテムについての１つ以上のコンテンツアイテムブロックを、前記コンテンツ管理システムのコンテンツアイテムサーバからダウンロードする手段と、
前記１つ以上のコンテンツアイテムブロックを、前記パーソナルコンピューティングデバイスにおいて格納する手段と、
前記特定のコンテンツアイテムに対応する前記アクション可能なファイルシステムアイコンの起動に応じて、前記特定のコンテンツアイテムが現在、オフラインアクセスに設定されていることを示すように、前記特定のコンテンツアイテムについての前記対応するアクション可能なファイルシステムアイコンの表示を更新する手段と、
を備える、パーソナルコンピューティングデバイス。
［Ｃ１３］
Ｃ１２に記載のパーソナルコンピューティングデバイスであって、
前記メタデータは、前記１つ以上のコンテンツアイテムブロックの１つ以上の識別子を更に含み、
前記１つ以上のコンテンツアイテムブロックを前記コンテンツアイテムサーバからダウンロードする手段は、前記コンテンツアイテムサーバのネットワーク要求で、前記１つ以上のコンテンツアイテムブロックの前記１つ以上の識別子を提供する手段を含む、デバイス。
［Ｃ１４］
Ｃ１２に記載のパーソナルコンピューティングデバイスであって、
前記１つ以上のコンテンツアイテムのそれぞれは、コンテンツアイテムフォルダ又はコンテンツアイテムファイルであり、
前記１つ以上のコンテンツアイテムのそれぞれについての対応するアクション可能なファイルシステムアイコンを前記ウィンドウ内に表示する手段は、前記コンテンツアイテムがコンテンツアイテムフォルダであるかコンテンツアイテムファイルであるかを示す、前記１つ以上のコンテンツアイテムのそれぞれについての対応するアクション可能なファイルシステムアイコンを、前記ウィンドウ内に表示する手段を含む、デバイス。
［Ｃ１５］
Ｃ１２に記載のパーソナルコンピューティングデバイスであって、
前記特定のコンテンツアイテムは、特定のコンテンツアイテムフォルダであり、
前記１つ以上のコンテンツアイテムブロックは、前記特定のコンテンツアイテムフォルダに含まれる１つ以上のコンテンツアイテムファイルに属し、
前記メタデータは、前記特定のコンテンツアイテムフォルダに含まれる前記１つ以上のコンテンツアイテムファイルを示す、デバイス。
［Ｃ１６］
Ｃ１２に記載のパーソナルコンピューティングデバイスであって、前記１つ以上のコンテンツアイテムのうちの、前記特定のコンテンツアイテムに対応する前記アクション可能なファイルシステムアイコンの前記起動は、前記ウィンドウ内に表示された１つ以上の選択可能なアイテムのリストの、選択可能なアイテムをユーザにより選択することを含み、前記選択可能なアイテムは、前記特定のコンテンツアイテムをオフラインアクセス用に設定するためのオプションを表す、デバイス。 
［Ｃ１７］
Ｃ１２に記載のパーソナルコンピューティングデバイスであって、
前記特定のコンテンツアイテムに対応する前記アクション可能なファイルシステムアイコンの前記起動は、前記特定のコンテンツアイテムに対応する前記アクション可能なファイルシステムアイコンの第１の起動であり、
前記パーソナルコンピューティングデバイスは、前記特定のコンテンツアイテムに対応する前記アクション可能なファイルシステムアイコンの第２の起動に応じて、前記パーソナルコンピューティングデバイスから前記１つ以上のコンテンツアイテムブロックを削除する手段と、前記コンテンツアイテムが現在、オフラインアクセスに設定されていないことを示すように、前記特定のコンテンツアイテムについての前記対応するアクション可能なファイルシステムアイコンの表示を更新する手段と、を更に備える、デバイス。
［Ｃ１８］
Ｃ１２に記載のパーソナルコンピューティングデバイスであって、更に、
前記１つ以上のコンテンツアイテムブロックを前記コンテンツアイテムサーバからダウンロードしている間に、前記ダウンロードが現在実行されていることを示すように、前記特定のコンテンツアイテムについての前記対応するアクション可能なファイルシステムアイコンの表示を更新する手段を備える、デバイス。
［Ｃ１９］
Ｃ１２に記載のパーソナルコンピューティングデバイスであって、更に、
前記特定のコンテンツアイテムについての前記１つ以上のコンテンツアイテムブロックを前記コンテンツアイテムサーバからダウンロードする手段と、
前記特定のコンテンツアイテムに対応する前記アクション可能なファイルシステムアイコンの前記起動の前に、前記１つ以上のコンテンツアイテムブロックを前記パーソナルコンピューティングデバイスにおいて格納する手段と、を備える、デバイス。
［Ｃ２０］
Ｃ１２に記載のパーソナルコンピューティングデバイスであって、更に、
前記特定のコンテンツアイテムについての前記１つ以上のコンテンツアイテムブロックを前記コンテンツアイテムサーバからダウンロードする手段と、
前記特定のコンテンツアイテムに関連付けられ、かつ、前記パーソナルコンピューティングデバイスにおいて格納されているメタデータに従って、前記特定のコンテンツアイテムがオフラインアクセス用に設定されていない間に、前記１つ以上のコンテンツアイテムブロックを前記パーソナルコンピューティングデバイスにおいて格納する手段と、を備える、デバイス。
［Ｃ２１］
Ｃ１２に記載のパーソナルコンピューティングデバイスであって、更に、
前記パーソナルコンピューティングデバイスにおける使用可能なデータストレージ空間の量に関連するイベントの検出に応じて、前記特定のコンテンツアイテムの設定を（ａ）オフラインアクセス用の設定から（ｂ）オフラインアクセス用ではない設定に自動的に切り替える手段と、
前記特定のコンテンツアイテムの前記設定が（ａ）から（ｂ）へ切り替えられてから前記特定のコンテンツアイテムがアクセスされていないと判定することに応じて、前記１つ以上のコンテンツアイテムブロックを前記パーソナルコンピューティングデバイスから自動的に削除する手段と、を備える、デバイス。
【図１】
0006518338.tif 000002
【図２】
0006518338.tif 000003
【図３】
0006518338.tif 000004
【図４Ａ】
0006518338.tif 000005
【図４Ｂ】
0006518338.tif 000006
【図４Ｃ】
0006518338.tif 000007
【図４Ｄ】
0006518338.tif 000008