IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ドロップボックス, インコーポレイテッドの特許一覧

特許7407275同期のためのローカルデバイスフォルダのコンテンツ管理システムへのバインディング
<>
  • 特許-同期のためのローカルデバイスフォルダのコンテンツ管理システムへのバインディング 図1
  • 特許-同期のためのローカルデバイスフォルダのコンテンツ管理システムへのバインディング 図2
  • 特許-同期のためのローカルデバイスフォルダのコンテンツ管理システムへのバインディング 図3
  • 特許-同期のためのローカルデバイスフォルダのコンテンツ管理システムへのバインディング 図4
  • 特許-同期のためのローカルデバイスフォルダのコンテンツ管理システムへのバインディング 図5
  • 特許-同期のためのローカルデバイスフォルダのコンテンツ管理システムへのバインディング 図6
  • 特許-同期のためのローカルデバイスフォルダのコンテンツ管理システムへのバインディング 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-20
(45)【発行日】2023-12-28
(54)【発明の名称】同期のためのローカルデバイスフォルダのコンテンツ管理システムへのバインディング
(51)【国際特許分類】
   G06F 16/178 20190101AFI20231221BHJP
【FI】
G06F16/178
【請求項の数】 12
(21)【出願番号】P 2022513366
(86)(22)【出願日】2020-07-27
(65)【公表番号】
(43)【公表日】2022-11-24
(86)【国際出願番号】 US2020043737
(87)【国際公開番号】W WO2021137895
(87)【国際公開日】2021-07-08
【審査請求日】2022-03-22
(31)【優先権主張番号】16/731,355
(32)【優先日】2019-12-31
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】509117964
【氏名又は名称】ドロップボックス, インコーポレイテッド
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】ラマバドラン, プラナフ ヴィシュヌ
(72)【発明者】
【氏名】ララビー-ベランジャー, マクシム
(72)【発明者】
【氏名】コーラパティ, ニプーン
(72)【発明者】
【氏名】アルブリー, アダム
(72)【発明者】
【氏名】ジェイン, リシャブ
(72)【発明者】
【氏名】ジョージ, ハイネス
【審査官】早川 学
(56)【参考文献】
【文献】米国特許出願公開第2018/0336196(US,A1)
【文献】米国特許出願公開第2018/0349408(US,A1)
【文献】Part3 災害や非常事態に備えてクラウドにもバックアップ,日経パソコン,日経BP,2019年07月08日,No.821,pp.22-25
【文献】原如宏,スマホも組み合わせた徹底活用の便利ワザ 最終回 オンラインストレージを使いこなす,日経パソコン,日経BP社,2016年03月28日,No.742,pp.58-61
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
コンテンツ管理システムと関連付けられたクライアントアプリケーションによって実行される方法であって、
前記クライアントアプリケーションによって、前記コンテンツ管理システムを使用してどのローカルデバイスフォルダを同期するかに関するユーザー選択を受信することであって、前記ローカルデバイスフォルダは、同期フォルダの外側にある第一の場所におけるクライアントデバイス上に格納され、前記クライアントアプリケーションは、前記コンテンツ管理システム上のユーザーアカウントと関連付けられる、ことと、
前記ユーザー選択の後、コンテンツアイテムを、前記第一の場所における前記ローカルデバイスフォルダから、前記同期フォルダ内の第二の場所へ移動させることと、
前記クライアントデバイス上のメモリ内に読み込まれたオペレーティングシステム内に、前記第二の場所へのポインターを作成することと、
前記第二の場所において前記ローカルデバイスフォルダを特別な属性と関連付けることであって、前記特別な属性が少なくとも前記ローカルデバイスフォルダを削除不可能として識別する、ことと、
前記クライアントデバイスおよび前記第一の場所と関連付けられたオペレーティングシステムを識別することであって、前記特別な属性が、前記ローカルデバイスフォルダに対してカスタマイズされた同期挙動およびカスタマイズされた表示挙動を定義する、ことと、を含み、
前記ローカルデバイスフォルダがオペレーティングシステムフォルダである、方法。
【請求項2】
前記ローカルデバイスフォルダが、前記オペレーティングシステムによって必要とされる、請求項1に記載の方法。
【請求項3】
前記ポインターを前記作成することが、前記第一の場所における前記ローカルデバイスフォルダへの参照を、前記オペレーティングシステム内の前記第二の場所における前記ローカルデバイスフォルダへの参照と置き換えることを伴う、請求項1に記載の方法。
【請求項4】
前記ローカルデバイスフォルダ内の少なくとも一つのコンテンツアイテムを特別な属性に関連付けることであって、前記特別な属性が、前記少なくとも一つのコンテンツアイテムに対してカスタマイズされた同期挙動およびカスタマイズされた表示挙動を定義する、関連付けること、を含む、請求項に記載の方法。
【請求項5】
コンテンツ管理システムと関連付けられたクライアントアプリケーションによって実行される方法であって、
前記クライアントアプリケーションによって、前記コンテンツ管理システムを使用してどのローカルデバイスフォルダを同期するかに関するユーザー選択を受信することであって、前記ローカルデバイスフォルダは、同期フォルダの外側にある第一の場所におけるクライアントデバイス上に格納され、前記クライアントアプリケーションは、前記コンテンツ管理システム上のユーザーアカウントと関連付けられる、ことと、
前記ユーザー選択の後、コンテンツアイテムを、前記第一の場所における前記ローカルデバイスフォルダから、前記同期フォルダ内の第二の場所へ移動させることと、
前記クライアントデバイス上のメモリ内に読み込まれたオペレーティングシステム内に、前記第二の場所へのポインターを作成することと、
前記ローカルデバイスフォルダの現在の状態のコンテンツ管理システムレコードを、前記ローカルデバイスフォルダの現在の状態のクライアントアプリケーションレコードおよび前記ローカルデバイスフォルダの現在の状態のオペレーティングシステムの現在の状態と比較することを含む、インバリアントチェックを実行することと、を含み、
前記ローカルデバイスフォルダがオペレーティングシステムフォルダである、方法。
【請求項6】
前記インバリアントチェックが、前記ローカルデバイスフォルダに対して、前記第二の場所とは異なるフォルダの場所を指す前記オペレーティングシステムによって引き起こされた、前記ローカルデバイスフォルダの前記現在の状態の前記コンテンツ管理システムレコードと、前記ローカルデバイスフォルダの前記現在の状態の前記クライアントアプリケーションレコードと、前記ローカルデバイスフォルダの前記オペレーティングシステムの前記現在の状態と、のいずれかの間の不一致を識別し、前記ローカルデバイスフォルダを前記第一の場所に復元する、請求項に記載の方法。
【請求項7】
命令を含む非一時的コンピュータ可読媒体と、
少なくとも一つのプロセッサであって、
コンテンツ管理システムと関連付けられたクライアントアプリケーションによって、前記コンテンツ管理システムを使用してどのローカルデバイスフォルダを同期するかに関するユーザー選択を受信し、前記ローカルデバイスフォルダは、同期フォルダの外側の第一の場所においてクライアントデバイス上に格納され、前記クライアントアプリケーションは、前記コンテンツ管理システム上のユーザーアカウントと関連付けられ、
前記ユーザー選択の後、コンテンツアイテムを、前記第一の場所における前記ローカルデバイスフォルダから、前記同期フォルダ内の第二の場所へ移動し、
前記クライアントデバイス上のメモリ内に読み込まれたオペレーティングシステム内で、前記第二の場所へのポインターを作成し、
前記第二の場所において前記ローカルデバイスフォルダを特別な属性と関連付け、ここで、前記特別な属性が、少なくとも前記ローカルデバイスフォルダを削除不可能として識別し、
前記クライアントデバイスおよび前記第一の場所と関連付けられたオペレーティングシステムを識別し、ここで、前記特別な属性が、前記ローカルデバイスフォルダに対してカスタマイズされた同期挙動およびカスタマイズされた表示挙動を定義する前記命令を実行するプロセッサとを備え、
前記ローカルデバイスフォルダがオペレーティングシステムフォルダである、システム。
【請求項8】
前記ローカルデバイスフォルダが、前記オペレーティングシステムによって必要とされる、請求項に記載のシステム。
【請求項9】
前記ポインターを前記作成することが、前記第一の場所における前記ローカルデバイスフォルダへの参照を、前記オペレーティングシステム内の前記第二の場所における前記ローカルデバイスフォルダへの参照と置き換えることを伴う、請求項に記載のシステム。
【請求項10】
前記ローカルデバイスフォルダ内の少なくとも一つのコンテンツアイテムを特別な属性に関連付け、前記特別な属性が、前記少なくとも一つのコンテンツアイテムに対してカスタマイズされた同期挙動およびカスタマイズされた表示挙動を定義する、請求項に記載のシステム。
【請求項11】
命令を含む非一時的コンピュータ可読媒体と、
少なくとも一つのプロセッサであって、
コンテンツ管理システムと関連付けられたクライアントアプリケーションによって、前記コンテンツ管理システムを使用してどのローカルデバイスフォルダを同期するかに関するユーザー選択を受信し、前記ローカルデバイスフォルダは、同期フォルダの外側の第一の場所においてクライアントデバイス上に格納され、前記クライアントアプリケーションは、前記コンテンツ管理システム上のユーザーアカウントと関連付けられ、
前記ユーザー選択の後、コンテンツアイテムを、前記第一の場所における前記ローカルデバイスフォルダから、前記同期フォルダ内の第二の場所へ移動し、
前記クライアントデバイス上のメモリ内に読み込まれたオペレーティングシステム内で、前記第二の場所へのポインターを作成し、
前記ローカルデバイスフォルダの現在の状態のコンテンツ管理システムレコードを、前記ローカルデバイスフォルダの現在の状態のクライアントアプリケーションレコードおよび前記ローカルデバイスフォルダのオペレーティングシステムの現在の状態と比較することを含む、インバリアントチェックを行う、前記命令を実行するプロセッサとを備え、
前記ローカルデバイスフォルダがオペレーティングシステムフォルダである、システム。
【請求項12】
前記インバリアントチェックが、前記ローカルデバイスフォルダに対して、前記第二の場所とは異なるフォルダの場所を指す前記オペレーティングシステムによって引き起こされた、前記ローカルデバイスフォルダの前記現在の状態の前記コンテンツ管理システムレコードと、前記ローカルデバイスフォルダの前記現在の状態の前記クライアントアプリケーションレコードと、前記ローカルデバイスフォルダの前記オペレーティングシステムの前記現在の状態と、のいずれかの間の不一致を識別し、前記ローカルデバイスフォルダを前記第一の場所に復元する、請求項11に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本技術は、ローカルデバイスフォルダの同期に関連し、より具体的には、同期のためにコンテンツ管理システムの制御下にある同期ディレクトリへのローカルデバイスフォルダの移行に関連する。
【背景技術】
【0002】
ユーザーは、コンテンツ管理システム、特に、自身のファイルを任意のデバイス上のネイティブファイルシステムブラウザを介してアクセス可能にすることができる、クロスプラットフォームコンテンツ管理システム(いずれかのオペレーティングシステムに特異的ではない)を理解し、かつこれに頼るようになった。こうしたサービスは、典型的に、コンテンツ管理システムクライアントを実行している各デバイス上の同期フォルダをモニターし、かつ同期フォルダ内のコンテンツを、クラウド、ならびに独自の同期フォルダおよびコンテンツ管理システムクライアントを有する他のクライアントデバイスと同期することができる。このサービスは有用で、かつ使用が簡単であるが、ユーザーがクラウドと、およびクライアントデバイスにわたって同期させたいコンテンツアイテムを確実に同期フォルダの中へと入れる必要がある。その一方で、クライアントデバイス上のオペレーティングシステムおよびこれらのオペレーティングシステム上で実行することが意図されているアプリケーションは、オペレーティングシステム(OS)フォルダ内のコンテンツアイテム(「デスクトップ」フォルダ、「ドキュメント」フォルダもしくは「マイドキュメント」フォルダ、「フォト」フォルダ、または「ミュージック」フォルダなど)の格納およびアクセスが最も便利になるように設計されている。これらのフォルダは、同期フォルダの外側にあるため、これらのフォルダのコンテンツはコンテンツ管理システムによって同期されない。
【0003】
本技術の上記に列挙した利点および他の利点および特徴は、添付の図面に例示される特定の実装を参照することによって、明らかになるであろう。当業者であれば、これらの図面は、本技術の一部の実施例のみを示し、本技術の範囲をこれらの実施例に限定しないことを理解するであろう。さらに、当業者は、以下の添付図面の使用を通して、追加の特異性および詳細とともに記述および説明される本技術の原理を理解するであろう。
【図面の簡単な説明】
【0004】
図1図1は、本技術の一部の態様による、コンテンツ管理システムおよびクライアントデバイスの実施例を示す。
図2図2は、本技術の一部の態様に従って、同期のために、ローカルデバイスフォルダを、コンテンツ管理システムの制御下で同期ディレクトリに移行する方法の実施例を示す。
図3図3は、本技術の一部の態様に従って、同期のためのコンテンツ管理システムの制御下で、ローカルデバイスフォルダの同期ディレクトリへの移行を開始するための例示的なユーザーインターフェースを示す。
図4図4は、本技術の一部の態様による、同期のためのコンテンツ管理システムの制御下にある、ローカルデバイスフォルダの同期ディレクトリへの移行前および移行後のクライアントデバイス上のディレクトリの実施例を示す。
図5図5は、本技術の一部の態様に従って、クライアントデバイスの状態、クライアントアプリケーションの状態、およびサーバーの状態の間のインバリアンスを確保するための例示的な方法を示す。
図6図6は、本技術の一部の態様に従って、第一のクライアントデバイス上の第一のオペレーティングシステム機能フォルダ内のコンテンツアイテムを、第二のクライアントデバイス上の第二のオペレーティングシステム機能フォルダ内のコンテンツアイテムと同期する例示的な方法を示す。
図7図7は、本技術のある特定の態様を実施するためのシステムの実施例を示す。
【発明を実施するための形態】
【0005】
本技術の様々な実施例を以下で詳細に考察する。特定の実装について考察しているが、当然のことながら、これは例示のみを目的として行われる。当業者は、他の構成要素および構成が、本技術の趣旨および範囲からの分割を有することなく使用されてもよいことを認識するであろう。
【0006】
開示された技術は、クロスプラットフォームシステムにおいてオペレーティングシステムフォルダを同期することができる技術に対する当技術分野のニーズに対処する。ユーザーは、コンテンツ管理システム、特に、自身のファイルを任意のデバイス上のネイティブファイルシステムブラウザを介してアクセス可能にすることができる、クロスプラットフォームコンテンツ管理システム(いずれかのオペレーティングシステムに特異的ではない)を理解し、かつこれに頼るようになった。こうしたサービスは、典型的に、コンテンツ管理システムクライアントを実行している各デバイス上の同期フォルダをモニターし、かつ同期フォルダ内のコンテンツを、クラウド、ならびに独自の同期フォルダおよびコンテンツ管理システムクライアントを有する他のクライアントデバイスと同期することができる。このサービスは有用で、かつ使用が簡単であるが、ユーザーがクラウドと、およびクライアントデバイスにわたって同期させたいコンテンツアイテムを確実に同期フォルダの中へと入れることを必要とする。その一方で、クライアントデバイス上のオペレーティングシステムおよびこれらのオペレーティングシステム上で実行することが意図されているアプリケーションは、オペレーティングシステム(OS)フォルダ内のコンテンツアイテム(「デスクトップ」フォルダ、「ドキュメント」フォルダもしくは「マイドキュメント」フォルダ、「フォト」フォルダ、または「ミュージック」フォルダなど)の格納およびアクセスが最も便利になるように設計されている。これらのフォルダは、同期フォルダの外側にあるため、これらのフォルダのコンテンツはコンテンツ管理システムによって同期されない。
【0007】
本技術は、オペレーティングシステムフォルダをクロスプラットフォームコンテンツ管理システムの同期フォルダへと移動し、またオペレーティングシステムをリダイレクトして同期フォルダ内のOSフォルダを探することによって当技術分野におけるニーズに対処する。しかしながら、OSフォルダを同期フォルダへと移動することは、他のいくつかの可能性のある技術的な問題を引き起こし、また他の機会も作成し、そして本技術はこれらにも対処する。例えば、コンテンツ管理システムがOSフォルダを移動することができるのとまさに同じように、他のアプリケーションも移動することができる。本技術は、同期フォルダ内に置かれた後、別のアプリケーションがOSフォルダを移動していないことを確認するインバリアントチェッカーを提供し、そしてOSフォルダがコンテンツ管理システムの同期フォルダの外へ移動されたときに解決策を提供する。加えて、複数のクライアントデバイス用のOSフォルダがコンテンツ管理システム上の同期フォルダ内にあるとき、本技術は、第一のクライアントデバイス上のOSフォルダ内のコンテンツアイテムを第二のクライアントデバイス上のOSフォルダにも同期させる機構を提供することができる。
【0008】
一部の実施形態では、開示された技術は、とりわけ、コンテンツアイテム同期能力およびコラボレーション特性を有するコンテンツ管理システムの文脈において展開される。クライアントデバイス150と相互作用するコンテンツ管理システム110を図示する、例示的なシステム構成100が図1に示される。
【0009】
アカウント
【0010】
コンテンツ管理システム110は、アカウントに関連してコンテンツアイテムを格納することができるだけでなく、またコンテンツアイテム(複数可)の取得、修正、閲覧、および/または共有などの様々なコンテンツアイテム管理タスクを実施することもできる。さらに、コンテンツ管理システム110は、アカウントが、複数のクライアントデバイスからコンテンツアイテム(複数可)へとアクセスできるようにすることができる。
【0011】
コンテンツ管理システム110は、複数のアカウントをサポートする。エンティティ(ユーザー、ユーザーのグループ、チーム、会社等)は、コンテンツ管理システムを用いてアカウントを作成することができ、またアカウントの詳細をアカウントデータベース140内に格納することができる。アカウントデータベース140は、登録されたエンティティのプロファイル情報を格納することができる。一部の事例では、登録されたエンティティに対するプロファイル情報には、ユーザー名および/または電子メールアドレスが含まれる。アカウントデータベース140は、アカウントタイプ(例えば、無料または有料アカウントの様々な層)、割り当てられたストレージスペース、使用されているストレージスペース、登録されたコンテンツ管理クライアントアプリケーション152がその上に常駐するクライアントデバイス150、セキュリティ設定、個人構成設定などのアカウント管理情報を含むことができる。
【0012】
アカウントデータベース140は、エンティティに関連付けられたアカウントのグループを格納することができる。グループは、グループポリシーおよび/またはアクセス制御リストに基づいて権限を持つことができ、またグループのメンバーは権限を継承することができる。例えば、マーケティンググループは、コンテンツアイテムの一つのセットに対するアクセスを有することができ、一方でエンジニアリンググループは、コンテンツアイテムの別のセットにアクセスを有することができる。管理者グループは、グループの修正、ユーザーアカウントの修正等を行うことができる。
【0013】
コンテンツアイテムストレージ
【0014】
コンテンツ管理システム110の特徴は、コンテンツアイテムの格納であり、これはコンテンツストレージ142内に格納することができる。コンテンツアイテムは、ドキュメント、コラボレーションコンテンツアイテム、テキストファイル、音声ファイル、画像ファイル、ビデオファイル、ウェブページ、実行可能ファイル、バイナリファイルなどの任意のデジタルデータとすることができる。コンテンツアイテムには、フォルダ、zipファイル、プレイリスト、アルバムなどの、異なる挙動を用いてコンテンツアイテムをグループ化するためのコレクションまたは他の機構も含むことができる。コレクションは、フォルダ、または共通の属性によって関連する、またはグループ化された複数のコンテンツアイテムを指すことができる。一部の実施形態では、コンテンツストレージ142は、特定の機能を取り扱うために、他のタイプのストレージまたはデータベースと組み合わされる。コンテンツストレージ142は、コンテンツアイテムを格納することができ、一方でコンテンツアイテムに関するメタデータは、メタデータデータベース146内に格納することができる。同様に、コンテンツアイテムがコンテンツストレージ142内に格納される場所に関するデータは、コンテンツディレクトリ144内に格納することができる。加えて、変更、アクセス等に関するデータは、サーバーファイルジャーナル148内に格納することができる。コンテンツストレージ142、コンテンツディレクトリ144、サーバーファイルジャーナル148、およびメタデータデータベース146などの様々なストレージ/データベースの各々は、二つ以上のこうしたストレージまたはデータベースから成ることができ、また多くのデバイスおよび場所にわたって分散することができる。他の構成も可能である。例えば、コンテンツストレージ142、コンテンツディレクトリ144、サーバーファイルジャーナル148、および/またはメタデータデータベース146からのデータは、一つ以上のコンテンツストレージまたはデータベースへと組み合わされてもよく、またはさらなる追加のコンテンツストレージまたはデータベースへとセグメント化されてもよい。それゆえに、コンテンツ管理システム110は、多かれ少なかれ図1に示すような数のストレージおよび/またはデータベースを含んでもよい。
【0015】
一部の実施形態では、コンテンツストレージ142は、少なくとも一つのコンテンツストレージサービス116と関連付けられ、これはコンテンツアイテムのストレージを管理するためのソフトウェアまたは他のプロセッサ実行可能命令を含み、これには、ストレージのためのコンテンツアイテムの受信、ストレージのためのコンテンツアイテムの準備、コンテンツアイテムのストレージ場所の選択、ストレージからのコンテンツアイテムの取得等が挙げられるがこれらに限定されない。一部の実施形態では、コンテンツストレージサービス116は、コンテンツアイテムを、コンテンツストレージ142におけるストレージのために、より小さいチャンクへと分割することができる。コンテンツアイテムを構成する各チャンクの場所を、コンテンツディレクトリ144内に記録することができる。コンテンツディレクトリ144は、コンテンツストレージ142内に格納された各コンテンツアイテムに対するコンテンツエントリを含むことができる。コンテンツエントリは、コンテンツアイテムを識別する一意のIDと関連付けることができる。
【0016】
一部の実施形態では、コンテンツディレクトリ144内のコンテンツアイテムを識別する一意のIDは、決定論的ハッシュ関数から導出することができる。決定論的ハッシュ関数は、同じコンテンツアイテムのあらゆるコピーに対して同じ識別子を出力するが、異なるコンテンツアイテムに対しては異なる識別子を出力するため、コンテンツアイテムに対する一意のIDを導出するこの方法は、コンテンツアイテムの重複を認識することを確保することができる。この方法を使用して、コンテンツストレージサービス116は、各コンテンツアイテムに対して一意のIDを出力することができる。
【0017】
コンテンツストレージサービス116はまた、メタデータデータベース146内のコンテンツアイテムに対するコンテンツパスを指定または記録することもできる。コンテンツパスは、コンテンツアイテムおよび/またはコンテンツアイテムに関連付けられたフォルダ階層の名前を含むことができる。例えば、コンテンツパスは、コンテンツアイテムがクライアントデバイス上のローカルファイルシステム内に格納されているフォルダまたはフォルダのパスを含むことができる。一方でコンテンツアイテムは、コンテンツストレージ142内にブロックで格納され、またディレクトリ構造のようなツリーの下に格納されない場合があるが、こうしたディレクトリ構造は、ユーザーにとって快適なナビゲーション構造である。コンテンツストレージサービス116は、ディレクトリ構造の「ルート」ノードを各アカウント用のネームスペースとすることができる、コンテンツアイテムに対するコンテンツパスを定義または記録することができる。ネームスペース内では、アカウントおよび/またはコンテンツストレージサービス116のユーザーによって定義されるディレクトリ構造とすることができる。メタデータデータベース146は、コンテンツエントリの一部として、各コンテンツアイテムに対するコンテンツパスを格納することができる。
【0018】
一部の実施形態では、ネームスペースは、ルートノード内に格納されているかのように、ディレクトリ構造内にネストされた追加的なネームスペースを含むことができる。これは、アカウントが共有コレクションにアクセスを有する場合に生じる可能性がある。共有コレクションは、コンテンツ管理システム110内の独自のネームスペースに割り当てることができる。一部の共有コレクションは、実際には共有コレクションに対するルートノードであるが、これらはディレクトリ構造内のアカウントネームスペースの下位に位置付けられ、アカウントに対するフォルダ内のフォルダとして見えることがある。上記で取り上げたように、ディレクトリ構造は、ユーザーにとって快適なナビゲーション構造に過ぎないが、コンテンツストレージ142内のコンテンツアイテムのストレージ場所とは相関しない。
【0019】
アカウントがコンテンツアイテムを表示するディレクトリ構造は、コンテンツ管理システム110におけるストレージ場所と相関しないが、ディレクトリ構造は、クライアントデバイス150によって使用されるファイルシステムに応じて、クライアントデバイス150上のストレージ場所と相関することがある。
【0020】
上記で取り上げたように、コンテンツディレクトリ144内のコンテンツエントリはまた、コンテンツアイテムを構成する各チャンクの場所も含むことができる。より具体的には、コンテンツエントリは、コンテンツアイテムを構成するチャンクのコンテンツストレージ142内の場祖を識別するコンテンツポインターを含むことができる。
【0021】
コンテンツパスおよびコンテンツポインターに加えて、コンテンツディレクトリ144内のコンテンツエントリは、コンテンツアイテムへのアクセスを有するユーザーアカウントを識別するユーザーアカウント識別子、および/またはコンテンツエントリが属するコンテンツアイテムおよび/またはネームスペースへのアクセスを有するグループを識別するグループ識別子も含むことができる。
【0022】
コンテンツストレージサービス116は、コンテンツアイテムまたはコンテンツアイテムのバージョンを構成する重複コンテンツアイテムまたは重複ブロックを識別することによって、必要とされるストレージスペースの量を減少させることができる。複数のコピーを格納する代わりに、コンテンツストレージ142は、コンテンツアイテムまたはコンテンツアイテムのブロックの単一のコピーを格納することができ、またコンテンツディレクトリ144は、重複を単一のコピーにリンクするためのポインターまたは他の機構を含むことができる。
【0023】
また、コンテンツストレージサービス116は、コンテンツアイテムの一意のIDに関連付けられた、コンテンツアイテム、コンテンツアイテムタイプ、フォルダ、ファイルパス、および/または様々なアカウント、コレクション、またはメタデータデータベース146内のグループに対するコンテンツアイテムとの関係を記述するメタデータも格納してもよい。
【0024】
また、コンテンツストレージサービス116は、変更、アクセスなどに関するデータのログをサーバーファイルジャーナル148内に格納することもできる。サーバーファイルジャーナル148は、コンテンツアイテムの一意のID、および変更またはアクセスアクションの記述を、タイムスタンプまたはバージョン番号および任意の他の関連データとともに含むことができる。サーバーファイルジャーナル148はまた、変更またはコンテンツアイテムアクセスによって影響を受けるブロックへのポインターも含むことができる。コンテンツストレージサービスは、コンテンツアイテムに対する変更を追跡するコンテンツアイテムバージョン管理、コンテンツアイテムの異なるバージョン(バージョンツリーの分岐を含む)、およびサーバーファイルジャーナル148から取得することができる変更履歴を使用することによって、操作を取り消す能力を提供することができる。
【0025】
コンテンツアイテム同期
【0026】
コンテンツ管理システム110の別の特徴は、コンテンツアイテムの少なくとも一つのクライアントデバイス150との同期である。クライアントデバイス(複数可)は、異なる形式を取ることができ、また異なる能力を有することができる。例えば、クライアントデバイス150は、その上に常駐する複数のアプリケーションによってアクセス可能なローカルファイルシステムを有するコンピューティングデバイスである。クライアントデバイス150は、コンテンツアイテムが、特定のアプリケーションのみに対して、または特定のアプリケーションによって与えられた権限によってのみアクセス可能であり、またコンテンツアイテムが典型的に、特定用途向けスペース内またはクラウド内のいずれかに格納される、コンピューティングデバイスである。クライアントデバイス150は、ウェブブラウザを介してコンテンツ管理システム110にアクセスし、かつウェブインターフェースを介してコンテンツアイテムにアクセスする、任意のクライアントデバイスである。例示的なクライアントデバイス150、150、および150は、ラップトップ、モバイルデバイス、またはウェブブラウザなどのフォームファクターで図示されているが、当然のことながら、その記述は、これらの実施例のフォームファクターのデバイスに限定されない。例えば、クライアント150などのモバイルデバイスは、その上に常駐する複数のアプリケーションによってアクセス可能なローカルファイルシステムを有してもよく、またはクライアント150は、ウェブブラウザを介してコンテンツ管理システム110にアクセスしてもよい。そのため、クライアント150の能力を考慮するとき、フォームファクターは、限定的であると見なされるべきではない。クライアントデバイス150に関して本明細書に記述される一つ以上の機能は、デバイスの特定の能力に応じて、あらゆるクライアントデバイス上で利用可能であってもよく、または利用可能ではなくてもよく、ファイルアクセスモデルは、一つのこうした能力である。
【0027】
数多くの実施形態では、クライアントデバイスは、コンテンツ管理システム110のアカウントと関連付けられるが、一部の実施形態では、クライアントデバイスは、共有リンクを使用してコンテンツにアクセスすることができ、アカウントを必要としない。
【0028】
上記のように、一部のクライアントデバイスは、ウェブブラウザを使用してコンテンツ管理システム110にアクセスすることができる。しかしながら、クライアントデバイスは、クライアントデバイス150上で格納され実行されるクライアントアプリケーション152を使用して、コンテンツ管理システム110にアクセスすることもできる。クライアントアプリケーション152は、クライアント同期サービス156を含むことができる。
【0029】
クライアント同期サービス156は、サーバー同期サービス112と通信して、クライアントデバイス150とコンテンツ管理システム110との間のコンテンツアイテムへの変更を同期することができる。
【0030】
クライアントデバイス150は、クライアント同期サービス156を介して、コンテンツをコンテンツ管理システム110と同期させることができる。同期は、プラットフォームに依存しないようにすることができる。すなわち、コンテンツは、様々なタイプ、能力、オペレーティングシステム等の複数のクライアントデバイスにわたって同期することができる。クライアント同期サービス156は、クライアントデバイス150のファイルシステムの指定された場所における、コンテンツアイテムに対する任意の変更(新規の、削除された、修正された、コピーされた、または移動したコンテンツアイテム)を同期することができる。
【0031】
コンテンツアイテムは、クライアントデバイス150からコンテンツ管理システム110に同期することができ、またはその逆もできる。同期がクライアント装置150からコンテンツ管理システム110へのものである実施形態では、ユーザーは、クライアントデバイス150のファイルシステムからコンテンツアイテムを直接的に操作することができ、一方でクライアント同期サービス156は、モニターされているフォルダ内のファイルに対する変更についてクライアントデバイス150上でディレクトリをモニターすることができる。
【0032】
クライアント同期サービス156が、モニターしているディレクトリ内のコンテンツの書き込み、移動、コピー、または削除を検出すると、クライアント同期サービス156は、コンテンツ管理ストレージサービス116への変更を同期することができる。一部の実施形態では、クライアント同期サービス156は、コンテンツアイテムをブロックへと分割すること、コンテンツアイテムをハッシュして一意の識別子を生成することなど、上記に取り上げた機能を含む、コンテンツ管理ストレージサービス116の一部の機能を実施することができる。クライアント同期サービス156は、クライアントストレージインデックス164内のコンテンツにインデックス付けし、結果をストレージインデックス164内に保存することができる。インデックス付けは、パスに加えて一意のサーバー識別子、および各コンテンツアイテムに対する一意のクライアント識別子を格納することを含むことができる。一部の実施形態では、クライアント同期サービス156は、サーバー同期サービス112から一意のサーバー識別子を学習し、またクライアントデバイス150のオペレーティングシステムから一意のクライアント識別子を学習する。
【0033】
クライアント同期サービス156は、ストレージインデックス164を使用して、クライアントストレージ内のコンテンツの少なくとも一部分の、コンテンツ管理システム110上のユーザーアカウントと関連付けられたコンテンツとの同期を容易にすることができる。例えば、クライアント同期サービス156は、ストレージインデックス164をコンテンツ管理システム110と比較し、またクライアントストレージ上のコンテンツとコンテンツ管理システム110上のユーザーアカウントと関連付けられたコンテンツとの差異を検出することができる。次いで、クライアント同期サービス156は、適宜に、クライアントストレージ上のコンテンツをアップロード、ダウンロード、修正、および削除することによって、差異の調整を試みることができる。コンテンツストレージサービス116は、コンテンツアイテムに対して変更されたブロックまたは新規のブロックを格納し、かつ適宜にサーバーファイルジャーナル148、メタデータデータベース146、コンテンツディレクトリ144、コンテンツストレージ142、アカウントデータベース140等を更新することができる。
【0034】
コンテンツ管理システム110からクライアントデバイス150へと同期するとき、サーバーファイルジャーナル148内に記録されたコンテンツアイテムのマウント、修正、追加、削除、移動は、通知サービス117を使用してクライアントデバイス150へ送信される通知をトリガすることができる。クライアントデバイス150が、変更を通知されるとき、クライアントデバイスに対して既知の最後の同期ポイントなので、サーバーファイルジャーナル148内でリクエスト変更がリストされる。クライアントデバイス150が、コンテンツ管理システム110と同期していないと判定した場合、クライアント同期サービス156は、変更を含むコンテンツアイテムブロックをリクエストし、そして変更されたコンテンツアイテムのローカルコピーを更新する。
【0035】
一部の実施形態では、ストレージインデックス164は、一つのツリーがサーバー同期サービス112によるディレクトリの最新の表現を反映し、一方で、別のツリーがクライアント同期サービス156によるディレクトリの最新の表現を反映する、ツリーデータ構造を格納する。クライアント同期サービスは、サーバー同期サービス112からデータをリクエストするか、またはクライアントデバイス150上の変更をコンテンツ管理システム110にコミットすることによって、ツリー構造が一致することを確保するように動作することができる。
【0036】
クライアントデバイス150は、時として利用可能なネットワーク接続を有しない場合がある。このシナリオでは、クライアント同期サービス156は、コンテンツアイテムの変更についてリンクされたコレクションをモニターし、そしてネットワーク接続が利用可能なときに、コンテンツ管理システム110への後続の同期のためにそれらの変更をキューに入れることができる。同様に、ユーザーは、コンテンツ管理システム110との同期を手動で開始、停止、一時停止、または再開することができる。
【0037】
クライアント同期サービス156は、コンテンツ管理システム110上の特定のユーザーアカウントに関連付けられたすべてのコンテンツを同期することができる。別の方法として、クライアント同期サービス156は、コンテンツ管理システム110上の特定のユーザーアカウントに関連付けられた総コンテンツのうちコンテンツの一部分を選択的に同期することができる。コンテンツの一部分のみを選択的に同期させることで、クライアントデバイス150上のスペースを保つことができ、また帯域幅を節約することができる。
【0038】
一部の実施形態では、クライアント同期サービス156は、特定のユーザーアカウントに関連付けられたコンテンツの一部分を選択的に格納し、またコンテンツの残りの部分について、プレースホルダーコンテンツアイテムをクライアントストレージに格納する。例えば、クライアント同期サービス156は、コンテンツ管理システム110上のそのそれぞれの完全なコンテンツアイテムと同じファイル名、パス、拡張子、メタデータを有するが、完全なコンテンツアイテムのデータを欠くプレースホルダーコンテンツアイテムを格納することができる。プレースホルダーコンテンツアイテムは数バイト以下のサイズとすることができるが、それぞれの完全なコンテンツアイテムはそれよりも著しく大きい場合がある。クライアントデバイス150がコンテンツアイテムへのアクセスを試みた後、クライアント同期サービス156は、コンテンツ管理システム110からコンテンツアイテムのデータを取得し、そしてクライアントデバイス150にアクセスするための完全なコンテンツアイテムを提供することができる。このアプローチは、コンテンツ管理システム110上のユーザーのコンテンツへのフルアクセスを依然として提供しながら、著しいスペースおよび帯域幅の節約を提供することができる。
【0039】
コラボレーション機能
【0040】
コンテンツ管理システム110の別の特徴は、ユーザー間のコラボレーションを容易にすることである。コラボレーション機能としては、コンテンツアイテムの共有、コンテンツアイテムへのコメント付け、コンテンツアイテムへの協働、インスタントメッセージング、コンテンツアイテムに関してプレゼンスおよび既読の状態に関する情報等が挙げられる。
【0041】
共有
【0042】
コンテンツ管理システム110は、共有サービス128を介してコンテンツの共有を管理することができる。コンテンツへのリンクを提供することによってコンテンツの共有は、コンテンツアイテムをコンテンツ管理システム110とネットワーク通信している任意のコンピューティングデバイスからアクセス可能にすることを含むことができる。しかしながら、一部の実施形態では、リンクは、コンテンツ管理システム110およびアクセス制御リスト145によって強制されるアクセス制限と関連付けることができる。コンテンツの共有はまた、コンテンツ管理システム110内のコンテンツを共有するために、共有サービス128を使用してコンテンツを(コンテンツアイテムに関連付けられた元のユーザーアカウントに加えて)、少なくとも一つの追加のユーザーアカウントとリンクさせることも含むことができ、そのため、各ユーザーアカウントはコンテンツアイテムにアクセスを有する。追加のユーザーアカウントは、コンテンツを許容することによってコンテンツへのアクセスを得ることができ、コンテンツは、次いでウェブインターフェースサービス124を通して、またはクライアントデバイス150上の自身のアカウントに関連付けられたディレクトリ構造内から直接的にアクセス可能になる。共有は、プラットフォームに依存しない様態で実施することができる。すなわち、コンテンツは、様々なタイプ、能力、オペレーティングシステム等の複数のクライアントデバイス150をまたいで共有することができる。コンテンツは、様々なタイプのユーザーアカウントをまたいで共有することもできる。
【0043】
コンテンツ管理システム110内のコンテンツアイテムを共有するために、共有サービス128は、ユーザーアカウント識別子または複数のユーザーアカウント識別子を、コンテンツアイテムと関連付けられたアクセス制御リストデータベース145内のコンテンツエントリに追加し、それゆえに、コンテンツアイテムへの追加されたユーザーアカウントアクセスを許諾することができる。共有サービス128はまた、コンテンツアイテムへのユーザーアカウントのアクセスを制限するために、ユーザーアカウント識別子をコンテンツエントリから削除することもできる。共有サービス128は、コンテンツアイテム識別子、コンテンツアイテムへのアクセスを与えられたユーザーアカウント識別子、およびアクセス制御リストデータベース145のアクセスレベルを記録することができる。例えば、一部の実施形態では、単一のコンテンツエントリに関連付けられたユーザーアカウント識別子は、関連するコンテンツアイテムに対するそれぞれのユーザーアカウント識別子に対して異なる権限を指定することができる。
【0044】
コンテンツ管理システム110の外側でコンテンツアイテムを共有するために、共有サービス128は、任意のウェブブラウザが、いかなる認証も有しないでコンテンツ管理システム110内のコンテンツアイテムまたはコレクションにアクセスできるようにする、ユニフォームリソースロケータ(URL)などのカスタムネットワークアドレスを生成することができる。これを達成するために、共有サービス128は、生成されたURLにコンテンツ識別データを含むことができ、これは後でリクエストされたコンテンツアイテムを適切に識別し、そして戻すために使用することができる。例えば、共有サービス128は、生成されたURL内にアカウント識別子およびコンテンツパス、またはコンテンツアイテム識別コードを含むことができる。URLの選択に伴い、URL内に含まれるコンテンツ識別データをコンテンツ管理システム110へと送信することができ、このシステムは、受信したコンテンツ識別データを使用して適切なコンテンツアイテムを識別し、そしてコンテンツアイテムを返すことができる。
【0045】
URLを生成することに加えて、共有サービス128は、コンテンツアイテムへのURLが作成されたことをアクセス制御リストデータベース145内にも記録するように構成されてもよい。一部の実施形態では、コンテンツアイテムに関連付けられたコンテンツエントリは、コンテンツアイテムへのURLが作成されたかどうかを示すURLフラグを含むことができる。例えば、URLフラグは、コンテンツアイテムに対するURLが作成されていないことを示すために、当初0または偽に設定されるブール値とすることができる。共有サービス128は、コンテンツアイテムに対するURLを作り出した後、フラグの値を1または真に変更することができる。
【0046】
一部の実施形態では、共有サービス128は、コンテンツアイテムに対するURLに権限の組を関連付けることができる。例えば、ユーザーがURLを介してコンテンツアイテムにアクセスを試みる場合、共有サービス128は、コンテンツアイテムに対する限定された権限のセットを提供することができる。限定された権限の例としては、ユーザーがコンテンツアイテムをダウンロードすること、コンテンツアイテムを保存すること、コンテンツアイテムをコピーすること、コンテンツアイテムを修正すること等ができない制限などが挙げられる。一部の実施形態では、限定された権限としては、コンテンツアイテムに、指定されたドメインから、すなわち、企業ネットワークドメイン内から、または指定されたドメインに関連付けられたアカウントによって、例えば、会社のアカウントに関連付けられたアカウント(例えば、@acme.com)からアクセスすることのみを許容する制限が挙げられる。
【0047】
一部の実施形態では、共有サービス128はまた、生成されたURLを無効化するように構成されてもよい。例えば、各コンテンツエントリはまた、生成されたURLからのリクエストに応答して、コンテンツを返すべきかどうかを示すURLアクティブフラグも含むことができる。例えば、共有サービス128は、URLアクティブフラグが1または真に設定されている場合、生成されたリンクによってリクエストされたコンテンツアイテムのみを返すことができる。それゆえに、URLが生成されたコンテンツアイテムへのアクセスは、URLアクティブフラグの値を変更することによって簡単に制限することができる。これは、ユーザーが、コンテンツアイテムを移動する、または生成されたURLを削除する必要なく、共有されたコンテンツアイテムへのアクセスを制限することを可能にする。同様に、共有サービス128は、URLアクティブフラグの値を1または真に再度変更することによって、URLを再アクティブ化することができる。それゆえに、ユーザーは、新規のURLを生成する必要なく、コンテンツアイテムへのアクセスを簡単に復元することができる。
【0048】
一部の実施形態では、コンテンツ管理システム110は、コンテンツアイテムをアップロードするためのURLを指定することができる。例えば、ユーザーアカウントを有する第一のユーザーは、こうしたURLをリクエストし、貢献するユーザーにURLを提供し、そして貢献するユーザーは、URLを使用して、第一のユーザーのユーザーアカウントへコンテンツアイテムをアップロードすることができる。
【0049】
チームサービス
【0050】
一部の実施形態では、コンテンツ管理システム110は、チームサービス130を含む。チームサービス130は、ユーザーアカウントの定義されたチームを作成し、かつ管理するための機能を提供することができる。チームは、サブチーム(例えば、ビジネスユニット、またはプロジェクトチーム等)、およびチームおよびサブチームに割り当てられたユーザーアカウントを用いて、会社のために作成することができ、または任意の定義されたユーザーアカウントのグループのためにチームを作成することができる。チームサービス130は、チーム、プライベートユーザーアカウントフォルダ、およびアクセスが限定された共有フォルダのための共通の共有スペースを提供することができる。チームサービスは、管理者がチーム内のコレクションおよびコンテンツアイテムを管理する管理インターフェースも提供することができ、チームに関連付けられているユーザーアカウントを管理することができる。
【0051】
認証サービス
【0052】
一部の実施形態では、コンテンツ管理システム110は、認証サービス132を含む。認証サービス132は、ネームスペースへのアクセスを試みているユーザーアカウントが、そのネームスペースにアクセスする適切な権利を有することを確保する。認証サービス132は、ネームスペースへのアクセスのリクエストに続くクライアントアプリケーション152からトークンを受信し、そしてユーザーアカウントに許容された能力を返すことができる。複数のレベルのアクセス(例えば、ユーザーの権利および管理者の権利を有するユーザーアカウント)を有するユーザーアカウントについては、認証サービス132はまた、管理者による意図的でないアクションを避けるために、明示的な特権のエスカレーションも要求することができる。
【0053】
プレゼンスおよび既読の状態
【0054】
一部の実施形態では、コンテンツ管理システムは、コンテンツアイテムを共有しているユーザーがどのようにコンテンツアイテムと相互作用しているか、またはコンテンツアイテムと相互作用していたかについての情報を提供することができる。一部の実施形態では、コンテンツ管理システム110は、コンテンツアイテムを共有されているユーザーがコンテンツアイテムを現在閲覧中であることを報告することができる。例えば、クライアントコラボレーションサービス160は、クライアントデバイス150がコンテンツアイテムにアクセスしているときに通知サービス117に通知することができる。通知サービス117は、次いで、コンテンツアイテムに関して、クライアントデバイス150のユーザーの存在について、同じコンテンツアイテムへのアクセスを有する他のユーザーのすべてのクライアントデバイスに通知することができる。
【0055】
一部の実施形態では、コンテンツ管理システム110は、共有されたコンテンツアイテムとのユーザーインタラクションの履歴を報告することができる。コラボレーションサービス126は、メタデータデータベース146およびサーバーファイルジャーナル148などのデータソースに問い合わせて、ユーザーがコンテンツアイテムを保存したこと、ユーザーがコンテンツアイテムをまだ閲覧していないこと等を判定し、そして通知サービス117を使用してこのステータス情報を他のユーザーに広めることができ、そのためユーザーは、だれがコンテンツアイテムを現在閲覧しているか、もしくは閲覧していたが、または修正したかを知ることができる。
【0056】
コラボレーションサービス126は、コンテンツアイテムがコメント付け機能をネイティブにサポートしていない場合でさえも、コンテンツに関連付けられたコメントを容易にすることができる。こうしたコメントは、メタデータデータベース146内に格納することができる。
【0057】
コラボレーションサービス126は、ユーザーに対する通知を創出および送信することができる。例えば、ユーザーは、コメントで別のユーザーに言及することができ、またコラボレーションサービス126は、コメントで言及があったことについてそのユーザーに通知を送信することができる。コンテンツアイテムを削除すること、コンテンツアイテムを共有すること等を含む、様々な他のコンテンツアイテムイベントは、通知をトリガすることができる。
【0058】
コラボレーションサービス126は、ユーザーがインスタントメッセージ、音声通話、電子メール等を送信および受信することができるメッセージングプラットフォームを提供することができる。
【0059】
コラボレーションコンテンツアイテム
【0060】
一部の実施形態では、コンテンツ管理サービスは、インタラクティブコンテンツアイテムコラボレーションプラットフォームを提供することができる、コラボレーションドキュメントサービス134も含むことができ、これによってユーザーは、同時に、コラボレーションコンテンツアイテムを作成し、コラボレーションコンテンツアイテムにコメントを付け、かつコラボレーションコンテンツアイテム内のタスクを管理することができる。コラボレーションコンテンツアイテムは、ユーザーがコラボレーションコンテンツアイテムエディタを使用して作成し、かつ編集することできるファイルであり、またコラボレーションコンテンツアイテム要素を包含することができる。コラボレーションコンテンツアイテム要素は、コラボレーションコンテンツアイテム識別子、一つ以上の著者識別子、コラボレーションコンテンツアイテムテキスト、コラボレーションコンテンツアイテム属性、インタラクション情報、コメント、共有ユーザー等を含んでもよい。コラボレーションコンテンツアイテム要素は、データベースエンティティとして格納することができ、これは、コラボレーションコンテンツアイテムの検索および取得を可能にする。複数のユーザーが、同時に、または異なる時間に、コラボレーションコンテンツアイテムにアクセス、閲覧、編集、およびコラボレーションしてもよい。一部の実施形態では、これは、2人のユーザーにウェブインターフェースを通してコンテンツアイテムへのアクセスすることを要求し、そしてそこで彼らがコンテンツアイテムの同じコピーに同時に作業できるようにすることによって、管理することができる。
【0061】
コラボレーションコンパニオンインターフェース
【0062】
一部の実施形態では、クライアントコラボレーションサービス160は、クライアントデバイス150上に提示されるコンテンツアイテムに関連する情報を表示する目的のために、ネイティブアプリケーションコンパニオンインターフェースを提供することができる。コンテンツアイテムがクライアントデバイス150のファイルシステムの指定された場所にある場合、コンテンツアイテムがコンテンツアプリケーション152によって管理されるように、コンテンツアイテムがクライアントデバイス150上で格納され実行されるネイティブアプリケーションによってアクセスされる実施形態では、ネイティブアプリケーションには、上記で取り上げたコラボレーションデータを表示するいかなるネイティブなやり方も提供しない場合がある。こうした実施形態では、クライアントコラボレーションサービス160は、ユーザーがコンテンツアイテムを開いたことを検出することができ、かつコラボレーションデータなどのコンテンツアイテムに対する追加情報を有するオーバーレイを提供することができる。例えば、追加情報は、コンテンツアイテムに対するコメント、コンテンツアイテムのステータス、コンテンツアイテムを前に閲覧した、または現在閲覧中の他のユーザーのアクティビティを含むことができる。こうしたオーバーレイは、別のユーザーがコンテンツアイテムを編集中であるため、変更が失われる場合があることをユーザーに警告することができる。
【0063】
一部の実施形態では、上記で考察したサービスまたはストレージ/データベースのうちの一つ以上は、パブリックまたはプライベートのアプリケーションプログラミングインターフェースを使用してアクセスすることができる。
【0064】
ある特定のソフトウェアアプリケーションは、ユーザーの代わりにAPIを介してコンテンツストレージ142にアクセスすることができる。例えば、クライアントデバイス150上で実行するアプリケーションなどのソフトウェアパッケージは、コンテンツを読み取り、書き込み、作成し、削除し、共有し、または別の方法で操作するために、ユーザーが認証クレデンシャルを提供するとき、コンテンツ管理システム110に直接的にAPI呼び出しをプログラムで作成することができる。
【0065】
ユーザーは、ウェブインターフェースサービス124によって生成され、かつ提供されるウェブインターフェースを介して、ユーザーアカウント内に格納されたコンテンツを閲覧または操作することができる。例えば、ユーザーは、ウェブブラウザ内で、コンテンツ管理システム110によって提供されるウェブアドレスにナビゲートすることができる。コンテンツアイテムの新規のバージョンのアップロードなど、ウェブインターフェースを通して行われたコンテンツストレージ142内のコンテンツの変更または更新は、ユーザーのアカウントに関連付けられた他のクライアントデバイスに戻すように伝播することができる。例えば、各々が独自のクライアントソフトウェアを有する複数のクライアントデバイスを、単一のアカウントと関連付けることができ、またアカウント内のコンテンツアイテムは、複数のクライアントデバイスの各々の間で同期することができる。
【0066】
クライアントデバイス150は、ユーザーの代わりにコンテンツ管理システム110に接続することができる。ユーザーは、例えば、クライアントデバイス150がデスクトップまたはラップトップコンピュータ、電話、テレビ、モノのインターネットデバイス等であるとき、クライアントデバイス150と直接的に相互作用することができる。別の方法として、または追加的に、クライアントデバイス150は、例えば、クライアントデバイス150がサーバーである場合に、クライアントデバイス150への物理的アクセスをユーザーが有することなく、ユーザーの代わりに動作することができる。
【0067】
クライアントデバイス150の一部の機能は、クライアントデバイス150上にインストールされたアプリケーションによって有効化される。一部の実施形態では、アプリケーションは、コンテンツ管理システム特有の構成要素を含むことができる。例えば、コンテンツ管理システム特有の構成要素は、スタンドアローンアプリケーション152、一つ以上のアプリケーションプラグイン、および/またはブラウザ拡張機能とすることができる。しかしながら、ユーザーはまた、クライアントデバイス150上に常駐し、かつコンテンツ管理システム110と通信するように構成される、ウェブブラウザなどのサードパーティアプリケーションを介して、コンテンツ管理システム110と相互作用することもできる。様々な実装では、クライアント側アプリケーション152は、ユーザーがコンテンツ管理システム110と相互作用するためのユーザーインターフェース(UI)を提示することができる。例えば、ユーザーは、ファイルシステムと統合されたファイルシステムエクスプローラを介して、またはウェブブラウザアプリケーションを使用して表示されたウェブページを介して、コンテンツ管理システム110と相互作用することができる。
【0068】
一部の実施形態では、クライアントアプリケーション152は、コンテンツ管理システム110の二つ以上のアカウントのコンテンツを管理および同期するように構成することができる。こうした実施形態では、クライアントアプリケーション152は、複数のアカウントにログインしたままで、複数のアカウントに対して通常のサービスを提供することができる。一部の実施形態では、各アカウントは、ファイルシステム内のフォルダとして表示することができ、そのフォルダ内のすべてのコンテンツアイテムは、コンテンツ管理システム110と同期することができる。一部の実施形態では、クライアントアプリケーション152は、プライマリアカウントまたはデフォルトアカウントとなる複数のアカウントのうちの一つを選択するためのセレクタを含むことができる。
【0069】
ローカルデバイスフォルダのリダイレクト
【0070】
一部の実施形態では、クライアントアプリケーション152は、クライアントデバイス150のオペレーティングシステムとインターフェース接続することによって、クライアントアプリケーション152によって管理される同期フォルダの外側の場所に格納されたOSフォルダまたは他のフォルダを含むローカルデバイスフォルダを同期するために使用することができる。異なるオペレーティングシステムは、フォルダへの参照をリダイレクトするための異なるOSフォルダリダイレクト機構151を有する。例えば、MICROSOFTによるオペレーティングシステムのWINDOWSは、公知のフォルダマネージャーAPIを含み、WINDOWSオペレーティングシステムが、そのローカルデバイスフォルダを探す場所をリダイレクトするために使用できる。これには、その「デスクトップ」、「ドキュメント」、「ダウンロード」、「フォト」、および「ミュージック」フォルダなどのOSフォルダが含まれる。APPLEによるオペレーティングシステムのMACOSでは、シンボリックリンクまたはシムリンクとして知られる機能を使用して、MACOSが、そのローカルデバイスフォルダ(その「デスクトップ」、「ドキュメント」、「ダウンロード」、「フォト」、および「ミュージック」フォルダなど)のそのOSフォルダを含む、そのローカルデバイスフォルダを探す場所をリダイレクトすることができる。
【0071】
クライアントアプリケーション152は、クライアントデバイス150上で実行されるオペレーティングシステム用のOSフォルダリダイレクト機構151を使用して、ローカルデバイスフォルダをクライアントアプリケーション152によって管理される同期場所へとリダイレクトすることができる。ローカルデバイスフォルダが、クライアントアプリケーション152によって管理される同期場所内になると、これらのローカルデバイスフォルダ内のコンテンツアイテムは、コンテンツ管理システム110と同期することができる。
【0072】
クライアントアプリケーション152はまた、インバリアントサービス170も含む。クライアントアプリケーション152がOSフォルダリダイレクト機構151を利用してローカルデバイスフォルダの場所をリダイレクトすることができるのと同じように、他のアプリケーションも同じことができる。したがって、クライアントアプリケーション152は、OSフォルダリダイレクト機構151がクライアントアプリケーション152の同期フォルダを指し続けるか、またはOSフォルダリダイレクト機構151がローカルデバイスフォルダの異なる場所を指すかを判定するために使用することができるインバリアントサービス170を含む。OSフォルダは必要とされるフォルダであり、これを有しないでそのオペレーティングシステム用に作成されたオペレーティングシステムおよびアプリケーションは機能することができないため、インバリアントサービス170は、他の目的よりもオペレーティングシステムの完全性を優先するように構成することができる。
【0073】
特定の構成要素を有するコンテンツ管理システム110が提示されるが、システム100のアーキテクチャ構成は、単に一つの可能な構成であり、そして構成要素がより多い、またはより少ない他の構成も可能であることを当然のことながら当業者は理解する。さらに、サービスは、別のサービスとともにあると記述された機能を含む場合であっても、より多くの、またはより少ない機能を有することができる。さらに、実施形態に関して本明細書に記述される特徴は、別の実施形態に関して記述される特徴と組み合わせることができる。
【0074】
特定の構成要素を有するシステム100が提示されるが、システム100のアーキテクチャ構成は、単に一つの可能な構成であり、そして構成要素がより多い、またはより少ない他の構成も可能であることを当然のことながら当業者は理解する。
【0075】
図2は、ローカルデバイスフォルダを、その元の場所(第一の場所)からクライアントアプリケーション152の同期フォルダ内の場所(第二の場所)へとリダイレクトするための例示的な方法を例示する。
【0076】
図2は、クライアントアプリケーション152が、コンテンツ管理システム110を使用してローカルデバイスフォルダを同期するためのユーザー選択を受信するとき(202)に開始する。図3は、ローカルデバイスフォルダを同期するためのユーザー選択を受信する(202)ためのユーザーインターフェース300を例示する。例えば、ユーザーインターフェース300は、ローカルデバイスフォルダをコンテンツ管理システムにバインドするようにリクエストする選択可能なオプション302(DROPBOX)を含む。ユーザーインターフェース300はまた、OSフォルダ304も示し、そしてコンテンツ管理システムにバインドする特定のローカルデバイスフォルダを選択するためのオプション306を提供する。
【0077】
クライアントアプリケーション152が、ローカルデバイスフォルダをコンテンツ管理システムと同期させるためのユーザー選択を受信した(202)後、クライアントアプリケーション152は、まず、特定のデバイスを表す新しいフォルダを作成し、次いで、クライアントアプリケーション152は、ローカルデバイスフォルダから、そのデフォルトの場所(第一の場所)から、同期フォルダ内の第二の場所へとコンテンツアイテムを移動(204)することができる。第二の場所は、同期ディレクトリルートの下位にあるパス内の同期ディレクトリ内の場所であり、またローカルデバイスフォルダが創出された特定のクライアントデバイスを表すフォルダの下位にある。ローカルデバイスフォルダの第二の場所を、それが創出された特定のクライアントデバイスのフォルダの下に置くことによって、コンテンツが特定のクライアントデバイスから創出されたものとして識別可能なままであることを確保し、かつ同じ名前の二つの異なるデバイスのフォルダからのディレクトリの競合がないことを確保する。
【0078】
また、クライアントアプリケーション152は、オペレーティングシステムによって提供されるフォルダリダイレクト機構151を利用して、オペレーティングシステム内の参照を提供し(206)、ローカルデバイスフォルダに対するフォルダ操作をリダイレクトして、第二の場所にあるローカルデバイスフォルダを見つけることもできる。一部の実施形態では、フォルダリダイレクト機構151は、第一の場所のローカルデバイスフォルダへの参照を、第二の場所のローカルデバイスフォルダへの参照と置き換えることができる。
【0079】
図4は、ローカルデバイスフォルダが、同期フォルダ内でその第一の場所から第二の場所へと移動される(204)前と移動された後との例示的なディレクトリ構造を例示する。
【0080】
左側では、図4は、ローカルデバイスフォルダが移動される(204)前410の例示的なクライアントデバイスディレクトリを示す。前410のディレクトリの実施例の一番上には、ユーザーのLenovoコンピュータ上のユーザーディレクトリ412がある。このディレクトリの次のレベルには、ローカルデバイスフォルダ、414「デスクトップ」と415「ドキュメント」と同期ディレクトリ416「ドロップボックス」がある。同期ディレクトリ416内には、同期ディレクトリ418がある。
【0081】
右側では、図4は、ローカルデバイスフォルダが移動された(204)後の例示的なディレクトリ構造430を示す。後430のディレクトリ構造では、ユーザーディレクトリ412は、ディレクトリの一番上のままであるが、AdamのLenovo用の新規のフォルダ432が、同期ディレクトリ416内に作成されている。フォルダ432は、このフォルダの下に同期したすべてのコンテンツがAdamのLenovoコンピュータから創出されたことがユーザーに対して明らかになるように、AdamのLenovoと名付けられている。フォルダ432の下には、ローカルデバイスフォルダ414および415、それぞれ「デスクトップ」および「ドキュメント」がある。全体として、フォルダ432、フォルダ414、およびフォルダ415は、これらすべてがコンテンツ管理システム110の管理下にあるため、同期ディレクトリ418にすべて繋がる。
【0082】
図4はまた、後430の状態において、別のフォルダの存在も例示する。図4は、別のユーザーのコンピュータに対するフォルダである「AdamのDell」435を例示する。フォルダ435のディレクトリパス内にある任意のフォルダは、コンピュータの「AdamのLenovo」ではなく、コンピュータ「AdamのDell」に由来するコンテンツアイテムを有するフォルダである。
【0083】
図2に戻ると、ローカルデバイスフォルダが移動した後(204)、クライアントアプリケーション152は、ローカルデバイスフォルダを第二の場所で特別な属性と関連付けることができる(208)。これらの特別な属性はメタデータで定義することができ、またローカルデバイスフォルダとしてフォルダにフラグを付けることができる。クライアントアプリケーション152およびコンテンツ管理システム110は、ローカルデバイスフォルダが削除することができないフォルダであるため、フラグが付けられた任意のフォルダを認識することになる。加えて、OSフォルダである任意のローカルデバイスフォルダは、クライアントデバイス150のオペレーティングシステムによって使用されるのと同じ図像と関連付けることができる。例えば、WINDOWSオペレーティングシステムのデスクトップフォルダは、デスクトップフォルダが移動される前に特別なアイコンを有することができ、そしてデスクトップフォルダが第二の場所に移動された後、そのアイコンを維持することができる。表示されるアイコンは、特別な属性によって定義することができる。そのため、特別な属性は、カスタマイズされた表示挙動を定義することができる。
【0084】
また、ローカルデバイスフォルダ内のコンテンツアイテムは、特別な属性と関連付けることもできる。例えば、特別な属性は、同期から除外される特定のコンテンツアイテムを識別することができる。別の特別な属性は、コンテンツ管理システム110とのみ同期される特定のコンテンツアイテムを識別し、そして他のクライアントデバイスとは同期されない。一部のコンテンツアイテムは移動した後、有効でなくなるため、こうした制御は重要である。例えば、特定のデバイス上のインデックスは、別のデバイスに移動された場合、そのインデックスは破損したインデックスと見なされる場合がある。したがって、こうしたインデックスは、インデックスを作成したデバイスとコンテンツ管理システム110との間で同期することが許容されるべきであるが、いかなる他のクライアントデバイスとも同期されるべきではない。そのため、特別な属性は、各クライアントデバイスに対して、またはサーバーに対して異なるカスタマイズされた同期挙動を定義することができる。
【0085】
ローカルデバイスフォルダが第二の場所に移動されると、ローカルデバイスフォルダをコンテンツ管理システムと同期させることができる。コンテンツ管理システム110、クライアントアプリケーション152、およびオペレーティングシステムの各々は、すべてローカルデバイスフォルダへのディレクトリパスを記録することができる。コンテンツ管理システム110、クライアントアプリケーション152、およびオペレーティングシステムのすべてが、ローカルデバイスフォルダへのディレクトリパスをすべて反映するとき、システムは適正な状態である。しかしながら、情報源のいずれかが異なるディレクトリパスを反映する場合、エラーが発生する可能性がある。OSフォルダはオペレーティングシステムによって必要とされるため、エラーが発生すると常に、クライアントアプリケーション152は、あらゆるOSフォルダの完全性を保持または復元しなければならない。
【0086】
こうしたクライアントアプリケーション152は、ローカルデバイスフォルダの現在の状態のコンテンツ管理システムレコードと、ローカルデバイスフォルダの現在の状態のクライアントアプリケーションレコードと、ローカルデバイスフォルダのオペレーティングシステムの現在の状態と、を比較するインバリアントチェック(210)を繰り返し実行することができる。
【0087】
図5は、インバリアントチェック(210)の実施例を例示する。インバリアントチェックは、定期的に、または少なくとも、ローカルデバイスフォルダ上の任意の同期操作がインバリアントチェッカー170によって行われる前に、実施することができる。インバリアントチェックは、ローカルデバイスフォルダのうちの一つで、いずれかのアクティブな操作が進行中かどうかを判定すること(502)によって開始する。アクティブな操作が進行中である場合、インバリアントチェックは一時停止し、再度試行する。
【0088】
ローカルデバイスフォルダのいずれにもアクティブな操作がなかったと仮定すると(502)、インバリアントチェッカー170は、ローカルデバイスフォルダの現在の状態のコンテンツ管理システムレコードを、ローカルデバイスフォルダの現在の状態に関するクライアントアプリケーションレコードと、モバイルデバイスフォルダの場所に対するオペレーティングシステムの状態と比較(504)することができる。三つの状態がすべて一致すると仮定すると、コンテンツ管理システム、クライアントアプリケーションおよびオペレーティングシステムが、ローカルデバイスフォルダを除いてすべての間に変動はないと判定することができ、クライアント同期サービス156は、ローカルデバイスフォルダをコンテンツ管理システム110と同期することができる(506)。
【0089】
しかしながら、三つの状態のうちのいずれかが一致しない場合、状態のうちの少なくとも一つが誤っていると判定することができる。次いで、インバリアントチェッカー170は、ユーザーの意図が、ローカルデバイスフォルダをコンテンツ管理システムの管理下にするか(510)、またはユーザーの意図が、ローカルデバイスフォルダをコンテンツ管理システムの外側に位置付けさせるか(530)、またはインバリアントチェッカー170がユーザーの可能性のある意図を知らないか(520)を判定するか、を継続することができる。
【0090】
インバリアントチェッカー170は、最初に、クライアントデバイスフォルダが以前にコンテンツ管理システムにバインドされていたことを構成が示すかどうか(510)を判定することができる。これは、クライアントアプリケーション152が、ユーザーがローカルデバイスフォルダを同期フォルダへと移行することを選んだことを示すレコードを有するときに判定することができる。クライアントデバイスフォルダが以前にコンテンツ管理システムにバインドされていたことが判定されたとき(510)、インバリアントチェッカー170は、オペレーティングシステムが現在、クライアントデバイスフォルダの場所が、第二の場所(すなわち、同期フォルダ内)にあると識別しているかどうかを判定する(512)ことができる。オペレーティングシステムにおいて現在、同期フォルダがクライアントデバイスフォルダの適切な場所にあると識別されると判定されたとき、ユーザーは、コンテンツ管理システム110の管理下にクライアントデバイスフォルダを有することを意図しており、かつインバリアントチェッカー170は同期状態への復元を試みることができると結論付けることができる(514)。インバリアントチェッカーを同期状態に復元することができない場合、インバリアントチェッカーは、ユーザーに、フォルダをコンテンツ管理システムへと再バインドするようにプロンプト(514)することができる。
【0091】
しかしながら、オペレーティングシステムが現在、同期フォルダをクライアントデバイスフォルダの場所として識別しないと判定(512)された場合、クライアントアプリケーション152は、コンテンツ管理システムからのクライアントデバイスフォルダのバインド解除が意図的であり、かつ応答に基づいて適切なアクションを取ることができることを確認するようにユーザーにプロンプト(516)することができる。
【0092】
一部の実施形態では、構成情報は、クライアントデバイスフォルダが意図的にバインドされていないことを示す。こうした実施形態では、判定510は否定的であり、またインバリアントチェッカー170は、構成情報が過去の結合が終了したことを示すかどうかを判定することができる(520)。インバリアントチェッカー170が、ユーザーがコンテンツ管理システムからのクライアントデバイスフォルダのバインド解除を試みたと判定した場合(520)、インバリアントチェッカーは、ユーザーがクライアントデバイスフォルダを同期フォルダの外側に置くことを意図していると結論付けることができる530。
【0093】
別の方法として、インバリアントチェッカー170は、ユーザーの意図が何であるかを知らず、またインバリアントチェッカー170は、未知の意図を、あたかもユーザーの意図が、クライアントデバイスフォルダをそのデフォルト(元の)の場所に有することであるのと同じ様態で取り扱うことができると判定(520)することができる。
【0094】
したがって、インバリアントチェッカー170は、オペレーティングシステムが現在、クライアントデバイスフォルダの場所を第二の場所(同期フォルダ内)として識別するかどうかを判定することができる(522)。オペレーティングシステムが現在、同期フォルダ内にあるクライアントデバイスフォルダの場所を識別する場合、クライアントアプリケーション152は、ユーザーに対し、フォルダをコンテンツ管理システムに再バインドするようプロンプト(524)することができる。オペレーティングシステムが現在、クライアントデバイスフォルダの任意の他の場所を識別する場合、クライアントアプリケーション152は、コンテンツ管理システムからのクライアントデバイスフォルダのバインド解除を確認および完了するようユーザーにプロンプト(526)することができる。
【0095】
インバリアントチェッカー170の主な目的は、オペレーティングシステムが、いかなるデータ損失もなしに、クライアントデバイスフォルダがその場所にあるクライアントデバイスフォルダに対してどの場所を指すかを確認することである。いかなる疑わしい状況においても、インバリアントチェッカー170は、クライアントデバイスフォルダ、特にOSフォルダを、自身のデフォルト(第一の)場所に復元し、そしてプロンプトを用いてユーザーに通知する。
【0096】
本技術は、上述のように、ローカルデバイスフォルダが創出された特定のクライアントデバイスに関連する同期フォルダで表される任意のローカルデバイスフォルダの実施形態を参照しているが、一部の実施形態では、その中のコンテンツアイテムが同期されるように、二つの異なるデバイス上に同じ機能を提供する二つのフォルダを有することが有用である可能性があることも意図されている。例えば、二つの異なるクライアントデバイスはデスクトップフォルダを有することができ、そこで一つのデスクトップフォルダに追加された任意のコンテンツアイテムを他のデスクトップフォルダと同期することができる。それゆえに、コンテンツ管理システムは、二つの別個のデスクトップを、各デバイス間で単一の統合されたデスクトップへとマージすることができる。統合されたデスクトップは、多様なオペレーティングシステム(例えば、WINDOWS(登録商標)デバイスおよびMAC OSデバイス)を有するデバイスにわたって提供することができる。
【0097】
本明細書で使用される場合、「機能」フォルダという用語は、意味論的意味を有する機能または名前を有するクライアントデバイス上のフォルダを指し、これらの機能フォルダは複数のクライアントデバイス上で発生することができる。機能フォルダの実施例は、一般的に、上述のOSフォルダを追跡するが、他のユーザー指定フォルダも含むことができる。ユーザーが指定した機能フォルダの実施例としては、ユーザーが所有している各クライアントデバイス上で定義するレシートフォルダであってもよい。
【0098】
図6は、機能フォルダに対するこの統合された経験を提供するための方法を例示する。コンテンツ管理システム110は、第一のクライアントデバイス上の第一のオペレーティングシステム機能フォルダを、機能フォルダのコンテンツ管理システムコピーと同期(602)することができる。また、コンテンツ管理システム110は、第二のクライアントデバイス上の第二の機能フォルダも、機能フォルダのコンテンツ管理システムコピーと同期(604)することができる。第一のクライアントデバイス上の第一の機能フォルダと第二のクライアントデバイス上の第二の機能フォルダの両方が、コンテンツ管理システムにおける機能フォルダの同じバージョンと同期するため、両方のクライアントデバイスは、機能フォルダ内の実質的に同じコンテンツアイテムを維持することができる。
【0099】
しかしながら、二つの別個のフォルダが共通のフォルダと同期しているため、統合された経験を設定するときは、バージョン競合がないことを確認することが重要である。一部の実施形態では、複数のファイルは同一のファイル名を有してもよく、またデータの損失がないことを確保するために、一つのバージョンまたは別のバージョンは名称変更が必要となることになる。
【0100】
複数のクライアントデバイスにわたって統合された経験を提供する上での別の複雑さは、一部のフォルダ内のコンテンツアイテムが別のデバイスに同期するのに適切でないことである。例えば、機能フォルダが、メディアプレーヤーによって使用されるフォルダ内のすべての音楽のインデックスを含むミュージックフォルダである場合、そのインデックスはデバイスの特定のものである場合があり、そして任意の他のデバイスに対しては破損しているように見えることになる。こうした実施形態では、コンテンツ管理システム110は、第一のクライアントデバイス上の第一のオペレーティングシステム機能フォルダと同期するのには適切ではない、機能フォルダのコンテンツ管理システムバージョン内の少なくとも一つのコンテンツアイテムを識別する(606)ことができる。コンテンツエンジンシステム110は、少なくとも一つのコンテンツアイテムを、第一のクライアントデバイス上の第一のオペレーティングシステム機能フォルダとの同期から少なくとも一つのコンテンツアイテムを除外する属性を有する、少なくとも一つのコンテンツアイテムにラベル付け(608)することができる。しかしながら、そのコンテンツアイテムは、依然として第二のクライアントデバイス上の第二のオペレーティングシステム機能フォルダと同期することができる。
【0101】
一部の実施形態では、一部のコンテンツアイテムは、一つのクライアントデバイスのみがそのローカルデバイスフォルダをコンテンツ管理システムと同期しているときでさえも、同期することができない。言い換えれば、単に一部のコンテンツアイテムは同期することができない。こうした実施形態では、これらのコンテンツアイテムは、ローカルデバイスフォルダがコンテンツ管理システムにバインドされているとき、依然として移動することができるが、コンテンツアイテムは同期されないことになる。ユーザーは、同期エラーに関する通知を受信する可能性があり、またコンテンツアイテムは、コンテンツアイテムが同期されていないことを示すアイコンでマーキングされる。
【0102】
上述の本技術は、特定のフォルダの場所に対してオペレーティングシステムの参照をリダイレクトして、コンテンツ番号システムクライアントアプリケーション152の管理下にある単一のディレクトリを参照するという文脈で考察されてきたが、同じ結果を達成する別のやり方は、コンテンツ管理システムに、その典型的な単一のディレクトリの外側にある特定の選択されたディレクトリを同期するよう命令することになる。こうした実施形態では、コンテンツ管理システムクライアントアプリケーション152は、特定のディレクトリ内のコンテンツアイテムへのアクセスを有するためのオペレーティングシステムからの権限をリクエストすることができる。次に、コンテンツ管理システムは、そのディレクトリをコンテンツ管理システム内のユーザーアカウントの下にマウントしながら、そのディレクトリを現在の場所に表示することができる。このようにして、コンテンツシステムクライアントアプリケーション152は、ローカルデバイスフォルダをクライアントアプリケーション152によって管理される同期ディレクトリへと移動させる必要を有しないで、ローカルデバイスフォルダを同期することができる。
【0103】
図7は、コンピューティングシステム700の実施例を示しており、これは、例えば、クライアントデバイス150、コンテンツ管理システム110、またはシステムの構成要素が接続705を使用して互いに通信している、その任意の構成要素を構成する任意のコンピューティングデバイスであってもよい。接続705は、バスを介した物理的接続、またはチップセットアーキテクチャにおけるものなどの、プロセッサ710への直接接続であってもよい。接続705はまた、仮想接続、ネットワーク接続、または論理接続とすることもできる。
【0104】
一部の実施形態では、コンピューティングシステム700は、本開示に記述される機能を、データセンター、複数のデータセンター、ピアネットワーク等の中に分散することができる、分散システムである。一部の実施形態では、記述されるシステム構成要素のうちの一つ以上は、数多くのこうした構成要素を表し、各々構成要素が記述されている機能の一部またはすべてを実施する。一部の実施形態では、構成要素は、物理的デバイスまたは仮想デバイスとすることができる。
【0105】
実施例なシステム700は、少なくとも一つの処理ユニット(CPUまたはプロセッサ)710と、読み出し専用メモリ(ROM)720およびランダムアクセスメモリ(RAM)725などのシステムメモリ715を含む様々なシステム構成要素をプロセッサ710に連結する接続705と、を含む。コンピューティングシステム700は、プロセッサ710と直接的に接続された、それに近接した、またはその一部として統合された高速メモリ712のキャッシュを含むことができる。
【0106】
プロセッサ710は、ストレージデバイス730に格納され、プロセッサ710を制御するように構成されたサービス732、734、および736などの任意の汎用プロセッサおよびハードウェアサービスまたはソフトウェアサービスだけでなく、ソフトウェア命令が実際のプロセッサ設計へと組み込まれる専用プロセッサも含むことができる。プロセッサ710は、本質的に、複数のコアまたはプロセッサ、バス、メモリコントローラ、キャッシュ等を包含する、完全に自己完結型のコンピューティングシステムであってもよい。マルチコアプロセッサは、対称であっても、または非対称であってもよい。
【0107】
ユーザーインタラクションを可能にするために、コンピューティングシステム700は、スピーチ用のマイク、ジェスチャまたはグラフィカル入力用のタッチ式画面、キーボード、マウス、動き入力、スピーチ等の任意の数の入力機構を表すことができる入力デバイス745を含む。コンピューティングシステム700はまた、当業者に公知の多数の出力機構のうちの一つ以上とすることができる出力デバイス735も含むことができる。一部の例では、マルチモーダルシステムは、ユーザーがコンピューティングシステム700と通信するための複数のタイプの入力/出力を提供することを可能にすることができる。コンピューティングシステム700は、通信インターフェース740を含むことができ、これは一般的に、ユーザー入力およびシステム出力を制御および管理することができる。任意の特定のハードウェア配置の上での操作には制限がなく、したがって本明細書の基本的な機能は、開発時に改善されたハードウェアまたはファームウェア配置に簡単に置き換えられてもよい。
【0108】
ストレージデバイス730は、不揮発性メモリデバイスとすることができ、また磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタル多用途ディスク、カートリッジ、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、および/またはこれらのデバイスの何らかの組み合わせなどの、コンピュータによってアクセス可能なデータを格納することができる、ハードディスクまたは他のタイプのコンピュータ可読媒体とすることができる。
【0109】
ストレージデバイス730は、こうしたソフトウェアを定義するコードがプロセッサ710によって実行されるとき、システムに機能を実施させる、ソフトウェアサービス、サーバー、サービス等を含むことができる。一部の実施形態では、特定の機能を実施するハードウェアサービスは、プロセッサ710、接続705、出力デバイス735などの必要なハードウェア構成要素と接続して、コンピュータ可読媒体内に格納されたソフトウェア構成要素を含むことができる。
【0110】
説明の明瞭のために、一部の例では、本技術は、デバイス、デバイス構成要素、ソフトウェア内で具現化された方法におけるステップまたはルーチン、またはハードウェアおよびソフトウェアの組み合わせを備える機能ブロックを含む、個々の機能ブロックとして提示される場合がある。
【0111】
本明細書に記述されるステップ、操作、機能、またはプロセスのいずれかは、ハードウェアサービスおよびソフトウェアサービスもしくはサービスの組み合わせによって、単独で、または他のデバイスと組み合わせて、実施または実装されてもよい。一部の実施形態では、サービスは、クライアントデバイスおよび/またはコンテンツ管理システムの一つ以上のサーバーのメモリ内に常駐し、かつプロセッサがサービスに関連付けられたソフトウェアを実行するときに一つ以上の機能を実施するソフトウェアとすることができる。一部の実施形態では、サービスは、特定の機能を実行するプログラム、またはプログラムの集合体である。一部の実施形態では、サービスは、サーバーと見なすことができる。メモリは、非一時的コンピュータ可読媒体とすることができる。
【0112】
一部の実施形態では、コンピュータ可読ストレージデバイス、媒体、およびメモリは、ビットストリームおよびこれに類するものを含むケーブルまたは無線信号を含むことができる。しかしながら、非一時的コンピュータ可読ストレージ媒体といえば、エネルギー、キャリア信号、電磁波、および信号自体などの媒体を明示的に除外する。
【0113】
上述の実施例による方法は、コンピュータ可読媒体に格納されるか、またはコンピュータ可読媒体から他の方法で利用可能である、コンピュータ実行可能命令を使用して実施することができる。こうした命令は、例えば、ある特定の機能または機能の群を、汎用コンピュータ、専用コンピュータ、または専用処理デバイスに実施させる、またはそうでなければ構成する命令およびデータを含むことができる。使用されるコンピュータリソースの部分は、ネットワーク上でアクセス可能にすることができる。コンピュータ実行可能命令は、例えば、バイナリ、アセンブリ言語、ファームウェア、またはソースコードなどの中間フォーマット命令であってもよい。記述された実施例による命令、使用された情報、および/または方法中に作成された情報を格納するために使用され得るコンピュータ可読媒体の実施例としては、磁気または光ディスク、ソリッドステートメモリデバイス、フラッシュメモリ、不揮発性メモリが提供されているUSBデバイス、ネットワーク化されたストレージデバイスなどが挙げられる。
【0114】
これらの開示による方法を実施するデバイスは、ハードウェア、ファームウェア、および/またはソフトウェアを含んでもよく、また様々なフォームファクターのうちのいずれかを取ることができる。こうしたフォームファクターの典型的な実施例としては、サーバー、ラップトップ、スマートフォン、フォームファクターが小さいパーソナルコンピュータ、パーソナルデジタルアシスタントなどが挙げられる。本明細書に記述される機能はまた、周辺機器またはアドインカード内で具現化することもできる。こうした機能性は、さらなる例として、単一のデバイスで実行される異なるチップまたは異なるプロセス間の回路基板上にも実装することができる。
【0115】
命令、こうした命令を伝達するための媒体、それらを実行するためのコンピューティングリソース、およびこうしたコンピューティングリソースをサポートするためのその他の構造は、これらの開示に記述される機能を提供するための手段である。
【0116】
添付の特許請求の範囲の範囲内で態様を説明するために様々な実施例およびその他の情報を使用したが、当業者は、これらの実施例を使用して、幅広く様々な実施を導出することができることになるので、特許請求の範囲の限定は、こうした実施例における特定の特徴または配置に基づいて暗示されるべきではない。さらに、一部の主題は、構造的特徴および/または方法ステップの実施例に特有の言語で記述されている場合があるが、当然のことながら、添付の特許請求の範囲に定義される主題は、必ずしもこれらの記述された特徴または作用に限定されない。例えば、こうした機能性は、異なるように分配することができ、または本明細書で特定される構成要素以外の構成要素で実施することができる。むしろ、記述された特徴およびステップは、添付の特許請求の範囲の範囲内のシステムおよび方法の構成要素の実施例として開示されている。
図1
図2
図3
図4
図5
図6
図7