本技術の様々な例を以下で詳細に説明する。特定の実装について説明するが、これは例示目的でのみ行うことを理解されたい。当業者は、本技術の精神および範囲から逸脱することなく、他のコンポーネントおよび構成を使用できることを認識するであろう。
開示された技術は、ユーザがファイルを格納しアクセスする場所に関する、およびユーザがコンテンツアイテムとどのように関わるかに関する現代の日々の現実を説明するために最適化されたファイルエクスプローラアプリケーションに対する当技術分野における必要性に対処する。さらに、開示された技術は、過去にファイルエクスプローラアプリケーションによって公開されていない種類の情報を表示する必要性に対処するが、これらの種類の情報は、ユーザがコンテンツアイテム、またはユーザの注意が必要であり得るコンテンツアイテムを識別するのを支援する際に重要である。ユーザがアクセスできる保存されたデータの量が増え続ける中で、コンテンツアイテムを識別することはこれまで以上に重要である。
多くのユーザがコンテンツ管理システム、およびクラウドでホストされたドキュメントサービス、ならびにクライアントデバイスのローカルストレージおよびネットワークアクセス可能なドライブにコンテンツアイテムを保存するため、改善されたファイルエクスプローラは、保存場所に関係なくすべてのコンテンツアイテムに関する情報を表示できるはずである。いくつかの実施形態では、改善されたファイルエクスプローラは、異なるソースからのコンテンツアイテムを同時に含むコンテンツアイテムのリストを表示できなければならない。
コンテンツアイテムが格納され得るいくつかのソースは、異なる特徴を含み得るか、またはコンテンツアイテムに関連する異なるメタデータを格納し得るので、改善されたファイルエクスプローラは、様々なソースから利用可能な新しい種類の情報を表示しなければならない。
多くのコンテンツアイテムは現在他のユーザと共有されているか、複数のユーザがコンテンツアイテムを編集してコメントできる共同コンテンツアイテムでさえあり得るので、改善されたファイルエクスプローラはコンテンツアイテムに関連する最近の活動に関する情報を提示するべきである。
一部のユーザは、マイナーな変更を行うため、またはコンテンツアイテムで行われたマイナーな更新またはコメントを表示するためだけに多くのファイルにアクセスする必要があるため、ファイルエクスプローラは、拡張プレビューからおよびドキュメントを完全に開く必要なくいくつかのアクションを可能にする拡張プレビューを提供する必要がある。
本技術は、従来のファイルエクスプローラの述べられた欠陥の1つ以上を満たすファイルエクスプローラを提供する。上記のニーズを満たすことにより、本技術は、複数の多様なソースからのコンテンツアイテムに関するより有用な情報を表示することに関連する問題を解決するだけでなく、いくつかの効率も提供する。より有用な情報が1か所にあるので、ユーザは、現在の技術がファイルエクスプローラに提示できるすべてのデータに公開される多くの追加画面をナビゲートするためにコンピューティングデバイスを操作する必要はない。さらに、コンテンツアイテムを完全に開かずに、またコンテンツアイテムを開くときに使用されるデフォルトのアプリケーションを開かずに実行できるアクションもあるため、これらのアクションによってコンピューティングリソースを節約することもできる。さらに、関連ファイルの検索、関連情報の学習、一部のタスクの実行をすべてファイルエクスプローラで実行できるため、ユーザ自身もより効率的になる。
いくつかの実施形態では、開示された技術は、とりわけ、コンテンツアイテム同期機能およびコラボレーション機能を有するコンテンツ管理システムのコンテキストで展開される。
collaboration features, among others.例示的なシステム構成100が図1に示されており、これは、クライアントデバイス150と対話するコンテンツ管理システム110を示している。
アカウント
コンテンツ管理システム110は、アカウントに関連するコンテンツアイテムを格納することができるほか、コンテンツアイテムを検索、修正、閲覧、および/または共有するなどの様々なコンテンツアイテム管理タスクを実行することができる。さらに、コンテンツ管理システム110は、アカウントが複数のクライアントデバイスからコンテンツアイテムにアクセスできるようにすることができる。
コンテンツ管理システム110は、複数のアカウントをサポートする。エンティティ(ユーザ、ユーザのグループ、チーム、会社など)は、コンテンツ管理システム110でアカウントを作成でき、アカウントの詳細はアカウントデータベース140に保存できる。アカウントデータベース140は、登録されたエンティティのプロファイル情報を格納することができる。場合によっては、登録されたエンティティのプロファイル情報にユーザ名および/または電子メールアドレスが含まれる。アカウントデータベース140は、アカウントタイプ(例えば、様々な階層の無料または有料アカウント)、割り当てられたストレージスペース、使用されたストレージスペース、登録されたコンテンツ管理クライアントアプリケーション152が常駐するクライアントデバイス150、セキュリティ設定、個人構成設定などのアカウント管理情報を含むことができる。
アカウントデータベース140は、エンティティに関連するアカウントのグループを格納することができる。グループは、グループポリシーおよび/またはアクセスコントロールリストに基づいて権限を持つことができ、グループのメンバーは権限を継承できる。たとえば、マーケティンググループは1つのコンテンツアイテムのセットにアクセスでき、エンジニアリンググループは別のコンテンツアイテムのセットにアクセスできる。管理者グループは、グループの変更、ユーザアカウントの変更などを行うことができる。
コンテンツアイテムストレージ
コンテンツ管理システム110の1つの特徴は、コンテンツストレージ142に格納することができるコンテンツアイテムのストレージである。コンテンツアイテムは、ドキュメント、コラボレーションコンテンツアイテム、テキストファイル、オーディオファイル、画像ファイル、ビデオファイル、ウェブページ、実行可能ファイル、バイナリファイルなどの任意のデジタルデータであってよい。コンテンツアイテムには、フォルダ、zipファイル、プレイリスト、アルバムなどのさまざまな動作を伴うコンテンツアイテムをグループ化するためのコレクションやその他のメカニズムを含めることもできる。コレクションは、フォルダまたは共通の属性に関連するか、またはそれによってグループ化される複数のコンテンツアイテムを参照することができる。一部の実施形態では、コンテンツストレージ142は、特定の機能を処理するために他の種類のストレージまたはデータベースと組み合わされる。コンテンツストレージ142はコンテンツアイテムを格納することができ、コンテンツアイテムに関するメタデータはメタデータデータベース146に格納することができる。同様に、コンテンツアイテムがコンテンツストレージ142に格納される場所に関するデータは、コンテンツディレクトリ144に格納することができる。さらに、変更、アクセスなどに関するデータは、サーバファイルジャーナル148に保存できる。コンテンツストレージ142、コンテンツディレクトリ144、サーバファイルジャーナル148、およびメタデータデータベース146などの様々なストレージ/データベースのそれぞれは、複数のそのようなストレージまたはデータベースで構成でき、多くのデバイスおよび場所に分散できる。他の構成も可能である。例えば、コンテンツストレージ142、コンテンツディレクトリ144、サーバファイルジャーナル148、および/またはメタデータデータベース146からのデータは、1つまたは複数のコンテンツストレージあるいはデータベースに組み合わされ得るか、または追加のコンテンツストレージまたはデータベースにさらにセグメント化され得る。したがって、コンテンツ管理システム110は、図1に示されるよりも多いかまたは少ないストレージおよび/またはデータベースを含み得る。
いくつかの実施形態では、コンテンツストレージ142は、ストレージのコンテンツアイテムの受信、ストレージのコンテンツアイテムの準備、コンテンツアイテムの記憶場所の選択、ストレージからのコンテンツアイテムの受信を含むがこれらに限定されないコンテンツアイテムのストレージを管理するためのソフトウェアまたは他のプロセッサ実行可能命令を含む少なくとも1つのコンテンツストレージサービス116に関連付けられる。いくつかの実施形態では、コンテンツストレージサービス116は、コンテンツストレージ142での記憶のために、コンテンツアイテムをより小さなチャンクに分割することができる。コンテンツアイテムを構成する各チャンクの場所は、コンテンツディレクトリ144に記録できる。コンテンツディレクトリ144は、コンテンツストレージ142に格納された各コンテンツアイテムのコンテンツエントリを含むことができる。コンテンツエントリは、コンテンツアイテムを識別する一意のIDに関連付けることができる。
いくつかの実施形態では、コンテンツディレクトリ144内のコンテンツアイテムを識別する一意のIDは、画定的ハッシュ関数から導出することができる。確定的ハッシュ関数は同じコンテンツアイテムのすべてのコピーに同じ識別子を出力するが、異なるコンテンツには異なる識別子を出力するため、コンテンツアイテムの一意のIDを導出するこの方法により、コンテンツアイテムの重複がそのように確実に認識され得る。この方法論を使用して、コンテンツストレージサービス116は、各コンテンツアイテムの一意のIDを出力することができる。
コンテンツストレージサービス116はまた、メタデータデータベース146内のコンテンツアイテムのコンテンツパスを指定または記録することができる。コンテンツパスには、
コンテンツアイテムの名前および/またはコンテンツアイテムに関連付けられたフォルダ階層が含まれてもよい。たとえば、コンテンツパスには、コンテンツアイテムがクライアントデバイスのローカルファイルシステムに格納されているフォルダまたはフォルダのパスを含めることができる。コンテンツアイテムは、コンテンツストレージ142にブロックで格納され、ディレクトリ構造のようなツリーの下に格納されない場合があるが、そのようなディレクトリ構造は、ユーザにとって快適なナビゲーション構造である。コンテンツストレージサービス116は、ディレクトリ構造の「ルート」ノードは、各アカウントのネームスペースであることができるコンテンツアイテムのコンテンツパスを定義または記録することができる。ネームスペース内には、アカウントおよび/またはコンテンツストレージサービス116のユーザによって定義されたディレクトリ構造がある。メタデータデータベース146は、各コンテンツアイテムのコンテンツパスをコンテンツエントリの一部として格納することができる。
いくつかの実施形態では、ネームスペースは、あたかもルートノード内に格納されているかのように、ディレクトリ構造にネストされた追加のネームスペースを含むことができる。これは、アカウントが共有コレクションにアクセスできる場合に発生する可能性がある。共有コレクションには、コンテンツ管理システム110内で独自のネームスペースを割り当てることができる。一部の共有コレクションは実際には共有コレクションのルートノードであるが、ディレクトリ構造ではアカウントのネームスペースの下位にあり、アカウントのフォルダ内のフォルダとして表示できる。上記で述べたように、ディレクトリ構造は、ユーザにとって快適なナビゲーション構造にすぎず、コンテンツストレージ142内のコンテンツアイテムの記憶場所とは相関していない。
アカウントがコンテンツアイテムを閲覧するディレクトリ構造は、コンテンツ管理システム110での記憶場所に相関しないが、ディレクトリ構造は、クライアントデバイス150によって使用されるファイルシステムに応じて、クライアントデバイス150のローカルコンテンツストレージ154上の記憶場所に関連付けることができる。
上述のように、コンテンツディレクトリ144のコンテンツエントリはまた、コンテンツアイテムを構成する各チャンクの場所を含むことができる。より具体的には、コンテンツエントリは、コンテンツアイテムを構成するチャンクのコンテンツストレージ142内の場所を識別するコンテンツポインタを含むことができる。
コンテンツパスおよびコンテンツポインタに加えて、コンテンツディレクトリ144のコンテンツエントリはまた、コンテンツアイテムへのアクセス権を有するユーザアカウントを識別するユーザアカウント識別子および/またはコンテンツアイテムおよび/またはコンテンツエントリが属するネームスペースへのアクセスを有するグループを識別するグループ識別子を含み得る。
コンテンツストレージサービス116は、コンテンツアイテムまたはコンテンツアイテムのバージョンを構成する複製コンテンツアイテムまたは複製ブロックを識別することによって必要とされるストレージスペースの量を減らすことができる。複数のコピーを格納する代わりに、コンテンツストレージ142は、コンテンツアイテムの単一のコピーまたはコンテンツアイテムのブロックを格納することができ、コンテンツディレクトリ144は、複製を単一のコピーにリンクするためのポインタまたは他のメカニズムを含むことができる。
コンテンツストレージサービス116は、コンテンツアイテム、コンテンツアイテムタイプ、フォルダ、ファイルパス、および/またはコンテンツアイテムとコンテンツアイテムの一意のIDと関連する様々なアカウント、コレクション、またはメタデータデータベース146のグループを記述するメタデータも格納できる。
コンテンツ保存サービス116は、変更、アクセスなどに関するデータのログをサーバファイルジャーナル148に保存することもできる。サーバファイルジャーナル148は、タイムスタンプまたはバージョン番号および任意の他の関連データとともに、コンテンツアイテムの一意のIDおよび変更またはアクセスアクションの記述を含むことができる。サーバファイルジャーナル148はまた、変更またはコンテンツアイテムアクセスにより影響を受けるブロックへのポインタを含むことができる。コンテンツストレージサービス116は、コンテンツアイテムの変更、コンテンツアイテムの異なるバージョン(バージョンツリーの分岐を含む)、およびサーバファイルジャーナル148から取得できる変更履歴を追跡するコンテンツアイテムバージョンコントロールを使用して、操作を元に戻す機能を提供できる。
コンテンツアイテム同期
コンテンツ管理システム110の別の特徴は、コンテンツアイテムを少なくとも1つのクライアントデバイス150と同期させることである。クライアントデバイスは、異なる形式を取り、異なる機能を持つことができる。例えば、クライアントデバイス1501は、そこに常駐する複数のアプリケーションによってアクセス可能なローカルファイルシステムを有するコンピューティングデバイスである。クライアントデバイス1502は、コンテンツアイテムが特定のアプリケーションまたは特定のアプリケーションによって与えられた許可によってのみアクセス可能であり、コンテンツアイテムは通常、アプリケーション固有のスペースまたはクラウドに格納されるコンピューティングデバイスである。クライアントデバイス1503は、Webブラウザ経由でコンテンツ管理システム110にアクセスし、ウェブインタフェース経由でコンテンツアイテムにアクセスする任意のクライアントデバイスである。例示的なクライアントデバイス1501、1502、および1503は、ラップトップ、モバイルデバイス、またはウェブブラウザなどのフォームファクタで表されているが、その説明はこれらの例示的なフォームファクタのデバイスに限定されないことを理解されたい。例えば、クライアント1502などのモバイルデバイスは、そこに常駐する複数のアプリケーションからアクセスできるローカルコンテンツストレージ154内にローカルファイルシステムを持つことができるか、または、クライアント1502は、ウェブブラウザを介してコンテンツ管理システム110にアクセスできる。そのため、クライアントデバイス150の機能を検討する場合、フォームファクタは制限と見なされるべきではない。クライアントデバイス150に関して本明細書で説明する1つまたは複数の機能は、デバイスの特定の機能に応じて、すべてのクライアントデバイスで利用できる場合と利用できない場合がある。ファイルアクセスモデルはそのような機能の1つである。
多くの実施形態では、クライアントデバイスは、コンテンツ管理システム110のアカウントに関連付けられるが、いくつかの実施形態では、クライアントデバイスは、共有リンクを使用してコンテンツにアクセスでき、アカウントを必要としない。
上記のように、いくつかのクライアントデバイスは、ウェブブラウザを使用してコンテンツ管理システム110にアクセスすることができる。しかしながら、クライアントデバイスはまた、クライアントデバイス150上に格納されて実行されているクライアントアプリケーション152を使用してコンテンツ管理システム110にアクセスすることができる。クライアントアプリケーション152は、クライアント同期サービス156を含むことができる。
クライアント同期サービス156は、サーバ同期サービス112と通信して、クライアントデバイス150とコンテンツ管理システム110との間のコンテンツアイテムへの変更を同期させることができる。
クライアントデバイス150は、クライアント同期サービス156を介してコンテンツをコンテンツ管理システム110と同期させることができる。同期はプラットフォームに依存しない場合がある。つまり、コンテンツは、さまざまなタイプ、機能、オペレーティングシステムなどの複数のクライアントデバイスにわたって同期できる。クライアント同期サービス156は、任意の変更(新規、削除、変更、コピー、または移動されたコンテンツアイテム)をクライアントデバイス150のファイルシステムの指定された場所のコンテンツアイテムに同期できる。
コンテンツアイテムは、クライアントデバイス150からコンテンツ管理システム110に、およびその逆に同期させることができる。同期がクライアントデバイス150からコンテンツ管理システム110への実施形態では、ユーザは、クライアントデバイス150のファイルシステムから直接コンテンツアイテムを操作することができ、同時にクライアント同期サービス156は、監視フォルダ内のファイルに対する変更に対し、クライアントデバイス150上のディレクトリ内のファイルの変更を監視することができる。
クライアント同期サービス156が、監視するディレクトリ内のコンテンツの書き込み、移動、コピー、または削除を検出すると、クライアント同期サービス156は、変更をコンテンツストレージサービス116に同期させることができる。いくつかの実施形態では、クライアント同期サービス156は、コンテンツアイテムをブロックに分割する、コンテンツアイテムをハッシュして一意の識別子を生成するなどの上記の機能を含むコンテンツストレージサービス116のいくつかの機能を実行できる。クライアント同期サービス156は、クライアントストレージインデックス164内のコンテンツにインデックスを付け、結果をストレージインデックス164に保存することができる。インデックス作成には、パスの保存、一意のサーバ識別子、および各コンテンツアイテムの一意のクライアント識別子を含めることができる。いくつかの実施形態では、クライアント同期サービス156は、サーバ同期サービス112から一意のサーバ識別子を学習し、クライアントデバイス150のオペレーティングシステムから一意のクライアント識別子を学習する。
クライアント同期サービス156は、ストレージインデックス164を使用して、クライアントストレージ内のコンテンツの少なくとも一部と、コンテンツ管理システム110上のユーザアカウントに関連付けられたコンテンツとの同期を容易にすることができる。例えば、クライアント同期サービス156は、ストレージインデックス164をコンテンツ管理システム110と比較し、クライアントストレージ上のコンテンツとコンテンツ管理システム110上のユーザアカウントに関連付けられたコンテンツとの間の差異を検出することができる。次に、クライアント同期サービス156は、必要に応じて、クライアントストレージ上のコンテンツをアップロード、ダウンロード、変更、および削除することにより、差異を調整することを試みることができる。コンテンツストレージサービス116は、必要に応じて、コンテンツアイテムの変更されたまたは新しいブロックを格納し、サーバファイルジャーナル148、メタデータデータベース146、コンテンツディレクトリ144、コンテンツストレージ142、アカウントデータベース140などを更新することができる。
コンテンツ管理システム110からクライアントデバイス150に同期するとき、サーバファイルジャーナル148に記録されたコンテンツアイテムのマウント、変更、追加、削除、移動は、通知サービス117を使用してクライアントデバイス150に送信される通知をトリガーすることができる。クライアントデバイス150に変更が通知されると、クライアントデバイスが知っている最後の同期点以降にサーバファイルジャーナル148にリストされた変更の要求が行われる。クライアントデバイス150がコンテンツ管理システム110と同期していないと判断すると、クライアント同期サービス156は、変更を含むコンテンツアイテムブロックを要求し、変更されたコンテンツアイテムのローカルコピーを更新する。
いくつかの実施形態において、ストレージインデックス164は、一方のツリーは、サーバ同期サービス112によるディレクトリの最新の表示を反映するが、別のツリーは、クライアント同期サービス156によるディレクトリの最新の表示を反映するツリーデータ構造を格納する。クライアント同期サービスは、サーバ同期サービス112にデータを要求するか、クライアントデバイス150の変更をコンテンツ管理システム110にコミットすることにより、ツリー構造が確実に一致するように機能する。
時には、クライアントデバイス150は、利用可能なネットワーク接続を有さない場合がある。このシナリオでは、クライアント同期サービス156は、ネットワーク接続が利用可能なときに、コンテンツアイテムの変更に対するリンクされたコレクションを監視し、コンテンツ管理システム110に後で同期するためにそれらの変更をキューに入れることができる。同様に、ユーザは、コンテンツ管理システム110との同期を手動で開始、停止、一時停止、または再開することができる。
クライアント同期サービス156は、コンテンツ管理システム110上の特定のユーザアカウントに関連するすべてのコンテンツを同期することができる。あるいは、クライアント同期サービス156は、コンテンツ管理システム110上の特定のユーザアカウントに関連する全コンテンツのコンテンツの一部を選択的に同期することができる。コンテンツの一部のみを選択的に同期することで、クライアントデバイス150上のスペースを維持し、帯域幅を節約できる。
いくつかの実施形態では、クライアント同期サービス156は、特定のユーザアカウントに関連するコンテンツの一部を選択的に格納し、コンテンツの残りの部分のためにプレースホルダーコンテンツアイテムをクライアントストレージに格納する。例えば、クライアント同期サービス156は、コンテンツ管理システム110上のそれぞれの完全なコンテンツアイテムの同じファイル名、パス、拡張子、メタデータを有するが、完全なコンテンツアイテムのデータを欠くプレースホルダーコンテンツアイテムを格納することができる。プレースホルダーコンテンツアイテムのサイズは数バイト以下にすることができるが、それぞれの完全なコンテンツアイテムはかなり大きくなる可能性がある。クライアントデバイス150がコンテンツアイテムへのアクセスを試みた後、クライアント同期サービス156は、コンテンツ管理システム110からコンテンツアイテムのデータを検索し、完全なコンテンツアイテムをアクセスするクライアントデバイス150に提供することができる。このアプローチは、コンテンツ管理システム110上のユーザのコンテンツへのフルアクセスを提供しながら、スペースと帯域幅を大幅に節約できる。
コラボレーション機能
コンテンツ管理システム110の別の特徴は、ユーザ間のコラボレーションを容易にすることである。コラボレーション機能には、コンテンツアイテムの共有、コンテンツアイテムへのコメント、コンテンツアイテムの共同作業、インスタントメッセージング、コンテンツアイテムに関するプレゼンスと被閲覧状態の情報の提供などが含まれる。
共有
コンテンツ管理システム110は、共有サービス128を介して共有コンテンツを管理することができる。コンテンツへのリンクを提供することによってコンテンツを共有することは、コンテンツ管理システム110とネットワーク通信する任意のコンピューティングデバイスからコンテンツアイテムにアクセス可能にすることを含むことができる。しかしながら、いくつかの実施形態では、リンクは、コンテンツ管理システム110およびアクセス制御リスト145によって実施されるアクセス制限に関連付けることができる。コンテンツの共有には、共有サービス128を使用してコンテンツをリンクし、コンテンツ管理システム110内のコンテンツを(コンテンツアイテムに関連付けられた元のユーザアカウントに加えて)少なくとも1つの追加ユーザアカウントと共有して、各ユーザアカウントがコンテンツにアクセスできるようにすることもできる。追加のユーザアカウントは、コンテンツを受け入れることでコンテンツにアクセスできる。コンテンツは、ウェブインタフェースサービス124を介して、またはクライアントデバイス150のアカウントに関連付けられたディレクトリ構造内から直接アクセスできる。共有は、プラットフォームに依存しない方法で実行できる。すなわち、コンテンツは、様々なタイプ、機能、オペレーティングシステムなどの複数のクライアントデバイス150にわたって共有することができる。コンテンツは、様々なタイプのユーザアカウントにわたって共有することもできる。
コンテンツ管理システム110内でコンテンツアイテムを共有するために、共有サービス128は、ユーザアカウント識別子または複数のユーザアカウント識別子を、コンテンツアイテムに関連付けられたアクセス制御リストデータベース145のコンテンツエントリに追加して、追加されたユーザーアカウントアクセスをコンテンツアイテムに許可することができる。共有サービス128は、コンテンツエントリからユーザアカウント識別子を削除して、コンテンツアイテムへのユーザアカウントのアクセスを制限することもできる。共有サービス128は、コンテンツアイテム識別子、コンテンツアイテムへのアクセスが与えられたユーザアカウント識別子、およびアクセス制御リストデータベース145内のアクセスレベルを記録することができる。例えば、いくつかの実施形態では、単一のコンテンツエントリに関連付けられたユーザアカウント識別子は、関連付けられたコンテンツアイテムに関してそれぞれのユーザアカウント識別子に異なる許可を指定することができる。
コンテンツ管理システム110の外部でコンテンツアイテムを共有するために、共有サービス128は、任意のウェブブラウザが認証なしでコンテンツ管理システム110内のコンテンツアイテムまたはコレクションにアクセスすることを可能にするユニフォームリソースロケータ(URL)などのカスタムネットワークアドレスを生成することができる。これを達成するために、共有サービス128は、生成されたURLにコンテンツ識別データを含むことができ、後でこれを使用して、要求されたコンテンツアイテムを適切に識別して返すことができる。例えば、共有サービス128は、生成されたURLにアカウント識別子およびコンテンツパスまたはコンテンツアイテム識別コードを含めることができる。URLを選択すると、URLに含まれるコンテンツ識別データをコンテンツ管理システム110に送信することができ、コンテンツ管理システム110は、受信したコンテンツ識別データを使用して、適切なコンテンツアイテムを識別し、コンテンツアイテムを返すことができる。
URLを生成することに加えて、共有サービス128は、コンテンツアイテムへのURLが作成されたことをアクセス制御リストデータベース145に記録するように構成することもできる。一部の実施形態では、コンテンツアイテムに関連付けられたコンテンツエントリは、コンテンツアイテムへのURLが作成されたかどうかを示すURLフラグを含むことができる。たとえば、URLフラグは、コンテンツアイテムへのURLが作成されていないことを示すために、最初は0またはfalseに設定されたブール値にすることができる。共有サービス128は、コンテンツアイテムへのURLを生成した後、フラグの値を1またはtrueに変更できる。
いくつかの実施形態では、共有サービス128は、コンテンツアイテムのURLに1組の許可を関連付けることができる。例えば、ユーザがURLを介してコンテンツアイテムにアクセスしようと試みた場合、共有サービス128は、コンテンツアイテムに限定された許可のセットを提供することができる。制限付きのアクセス許可の例には、ユーザがコンテンツアイテムをダウンロード、コンテンツアイテムを保存、コンテンツアイテムをコピー、コンテンツアイテムを変更できないなどの制限が含まれる。一部の実施形態では、制限付きアクセス許可には、指定されたドメインから、つまり企業ネットワークドメイン内から、または指定されたドメインに関連付けられたアカウント(企業アカウントに関連付けられたアカウントなど)(例:@ acme.com)によるコンテンツアイテムへのアクセスのみを許可する制限が含まれる。
いくつかの実施形態では、共有サービス128は、生成されたURLを非アクティブ化するように構成することもできる。たとえば、各コンテンツエントリには、生成されたURLからの要求に応答してコンテンツを返すかどうかを示すURLアクティブフラグを含めることもできる。たとえば、共有サービス128は、URLアクティブフラグが1またはtrueに設定されている場合に、生成されたリンクによって要求されたコンテンツアイテムのみを返すことができる。このように、URLアクティブフラグの値を変更することにより、URLが生成されたコンテンツへのアクセスを容易に制限することができる。これにより、ユーザは、コンテンツアイテムを移動したり、生成されたURLを削除したりすることなく、共有コンテンツアイテムへのアクセスを制限できる。同様に、共有サービス128は、URLアクティブフラグの値を再び1またはtrueに変更することにより、URLを再度アクティブにすることができる。したがって、ユーザは、新しいURLを生成する必要なく、コンテンツアイテムへのアクセスを簡単に復元できる。
いくつかの実施形態では、コンテンツ管理システム110は、コンテンツアイテムをアップロードするためのURLを指定することができる。たとえば、ユーザアカウントを持つ最初のユーザはそのようなURLを要求し、URLを提供ユーザに提供し、提供ユーザはURLを使用してコンテンツアイテムを最初のユーザのユーザアカウントにアップロードできる。
チームサービス
いくつかの実施形態では、コンテンツ管理システム110は、チームサービス130を含む。チームサービス130は、ユーザアカウントの定義されたチームを作成および管理するための機能を提供することができる。チームは、サブチーム(ビジネスユニット、プロジェクトチームなど)を使用して会社用に作成でき、チームとサブチームに割り当てられたユーザアカウント、またはチームを、ユーザアカウントの定義済みグループ用に作成できる。チームサービス130は、チームのための共通の共有スペース、プライベートユーザアカウントフォルダ、およびアクセスの制限された共有フォルダを提供することができる。チームサービスはまた、管理者がチーム内のコレクションとコンテンツアイテムを管理するための管理インタフェースを提供し、チームに関連付けられているユーザアカウントを管理することができる。
認可サービス
いくつかの実施形態では、コンテンツ管理システム110は、認可サービス132を含む。認可サービス132は、ネームスペースにアクセスしようとするユーザアカウントがネームスペースにアクセスするための適切な権利を持っていることを保証する。認可サービス132は、ネームスペースにアクセスするための要求に続くトークンをクライアントアプリケーション152から受信することができ、ユーザアカウントに許可された機能を返すことができる。複数レベルのアクセス権を持つユーザアカウント(たとえば、ユーザ権限と管理者権限を持つユーザアカウント)の場合、認可サービス132は、管理者による意図しないアクションを回避するために、明示的な特権昇格を要求することもできる。
プレゼンスおよび被閲覧状態
いくつかの実施形態では、コンテンツ管理システムは、コンテンツアイテムが共有されているユーザがコンテンツアイテムとどのように対話しているか、または対話してきたかに関する情報を提供することができる。一部の実施形態では、コンテンツ管理システム110は、コンテンツアイテムが共有されているユーザが現在コンテンツアイテムを閲覧していることを報告することができる。例えば、クライアントコラボレーションサービス160は、クライアントデバイス150がコンテンツアイテムにアクセスしているときに通知サービス117に通知することができる。次に、通知サービス117は、同じコンテンツアイテムにアクセスする他のユーザのすべてのクライアントデバイスに、コンテンツアイテムに関してクライアントデバイス150のユーザの存在を通知することができる。
いくつかの実施形態では、コンテンツ管理システム110は、共有コンテンツアイテムとのユーザ対話の履歴を報告することができる。コラボレーションサービス126は、メタデータデータベース146やサーバファイルジャーナル148などのデータソースにクエリを実行して、ユーザがコンテンツアイテムを保存したか、ユーザがまだコンテンツアイテムを閲覧していないかなどを判断し、通知サービス117を使用して他のユーザにこのステータス情報を配布でき、それにより、コンテンツアイテムを現在誰が閲覧しているか、誰が閲覧したか、または誰がコンテンツアイテムを変更したかを知ることができる。
コラボレーションサービス126は、たとえコンテンツアイテムがコメント機能をネイティブにサポートしていない場合でも、コンテンツに関連付けられたコメントを容易にすることができる。このようなコメントは、メタデータデータベース146に保存できる。
コラボレーションサービス126は、ユーザのための通知を発信および送信することができる。例えば、ユーザはコメントで別のユーザに言及することができ、コラボレーションサービス126は、彼がコメントで言及されたという通知をそのユーザに送信することができる。他のさまざまなコンテンツアイテムイベントは、コンテンツアイテムの削除、コンテンツアイテムの共有など、通知をトリガーできる。
コラボレーションサービス126は、メッセージングプラットフォームを提供することができ、それにより、ユーザは、インスタントメッセージ、音声通話、電子メールなどを送受信することができる。
コラボレーションコンテンツアイテム
一部の実施形態では、コンテンツ管理サービスは、ユーザがコラボレーションコンテンツアイテムを同時に作成し、コラボレーションコンテンツアイテムにコメントし、コラボレーションコンテンツアイテム内のタスクを管理できるインタラクティブコンテンツアイテムコラボレーションプラットフォームを提供できるコラボレーションドキュメントサービス134も含むことができる。コラボレーションコンテンツアイテムは、ユーザがコラボレーションコンテンツアイテムエディタを使用して作成および編集できるファイルであり、コラボレーションコンテンツアイテムの要素を含むことができる。コラボレーションコンテンツアイテム要素には、コラボレーションコンテンツアイテム識別子、1つ以上の作成者識別子、コラボレーションコンテンツアイテムテキスト、コラボレーションコンテンツアイテム属性、対話情報、コメント、共有ユーザなどが含まれる。コラボレーションコンテンツアイテム要素は、コラボレーションコンテンツアイテムを検索および取得できるデータベースエンティティとして保存できる。複数のユーザが、コラボレーションコンテンツアイテムに同時にまたは異なるときに、アクセスしたり、表示したり、編集したり、コラボレーションしたりできる。いくつかの実施形態では、これは2人のユーザがウェブインタフェースを介してコンテンツアイテムにアクセスすることを要求することで管理され、そこでコンテンツアイテムの同じコピーで同時に作業できる。
コラボレーションコンパニオンインタフェース
いくつかの実施形態では、クライアントコラボレーションサービス160は、クライアントデバイス150上に提示されているコンテンツアイテムに関連する情報を表示する目的で、ネイティブアプリケーションコンパニオンインタフェースを提供することができる。コンテンツアイテムがクライアントデバイス150に格納され実行されるネイティブアプリケーションによってアクセスされる実施形態において、コンテンツアイテムは、コンテンツアイテムがコンテンツアプリケーション152によって管理されるようにクライアントデバイス150のファイルシステムの指定された場所にある。ネイティブアプリケーションでは、上記のコラボレーションデータを表示するネイティブな方法が提供されない場合がある。そのような実施形態では、クライアントコラボレーションサービス160は、ユーザがコンテンツアイテムを開いたことを検出でき、コラボレーションデータなどのコンテンツアイテムの追加情報をオーバーレイに提供できる。たとえば、追加情報には、コンテンツアイテムのコメント、コンテンツアイテムのステータス、コンテンツアイテムを以前または現在閲覧している他のユーザのアクティビティを含めることができる。そのようなオーバーレイは、別のユーザが現在コンテンツアイテムを編集しているために変更が失われる可能性があることをユーザに警告できる。
いくつかの実施形態では、上述のサービスまたはストレージ/データベースの1つ以上は、パブリックまたはプライベートのアプリケーションプログラミングインタフェースを使用してアクセスすることができる。
特定のソフトウェアアプリケーションは、ユーザに代わってAPIを介してコンテンツストレージ142にアクセスすることができる。例えば、クライアントデバイス150上で実行中のアプリケーションなどのソフトウェアパッケージは、ユーザが認証資格情報を提供するとき、プログラムでコンテンツ管理システム110に直接API呼び出しを行い、コンテンツを読み取り、書き込み、作成、削除、共有、またはその他の方法で操作することができる。
ユーザは、ウェブインタフェースサービス124によって生成され、提供されるウェブインタフェースを介して、ユーザアカウントに格納されたコンテンツを閲覧または操作することができる。例えば、ユーザは、ウェブブラウザ内で、コンテンツ管理システム110によって提供されたウェブアドレスにナビゲートすることができる。コンテンツアイテムの新しいバージョンのアップロードなど、ウェブインタフェースを介して行われたコンテンツストレージ142のコンテンツの変更または更新は、ユーザのアカウントに関連付けられている他のクライアントデバイスに反映させることができる。たとえば、それぞれが独自のクライアントソフトウェアを備えた複数のクライアントデバイスは、単一のアカウントに関連付けられ、アカウント内のコンテンツアイテムは、複数のクライアントデバイス間で同期できる。
クライアントデバイス150は、ユーザに代わってコンテンツ管理システム110に接続することができる。ユーザは、例えば、クライアントデバイス150がデスクトップまたはラップトップコンピュータ、電話、テレビ、モノのインターネットデバイスなどである場合、クライアントデバイス150と直接対話することができる。代替的または追加的に、クライアントデバイス150は、例えばクライアントデバイス150がサーバである場合、クライアントデバイス150への物理的アクセスを有さないユーザの代わりに行動することができる。
クライアントデバイス150のいくつかの機能は、クライアントデバイス150にインストールされたアプリケーションによって可能になる。一部の実施形態では、アプリケーションは、コンテンツ管理システム固有のコンポーネントを含むことができる。例えば、コンテンツ管理システム固有のコンポーネントは、スタンドアロンアプリケーション152、1つまたは複数のアプリケーションプラグイン、および/またはブラウザ拡張であり得る。しかしながら、ユーザは、クライアントデバイス150上に常駐し、コンテンツ管理システム110と通信するように構成されている、ウェブブラウザなどのサードパーティアプリケーションを介してコンテンツ管理システム110と対話することもできる。様々な実装において、クライアント側アプリケーション152は、ユーザがコンテンツ管理システム110と対話するためのユーザインタフェース(UI)を提示することができる。例えば、ユーザは、ファイルシステムと統合されたファイルシステムエクスプローラを介して、またはウェブブラウザアプリケーションを使用して表示されるウェブページを介して、コンテンツ管理システム110と対話することができる。
いくつかの実施形態では、クライアントアプリケーション152は、コンテンツ管理システム110の2つ以上のアカウントのコンテンツを管理および同期するように構成され得る。そのような実施形態では、クライアントアプリケーション152は、複数のアカウントにログインしたままであり、複数のアカウントに通常のサービスを提供することができる。いくつかの実施形態では、各アカウントは、ファイルシステム内のフォルダとして現れることができ、そのフォルダ内のすべてのコンテンツアイテムは、コンテンツ管理システム110と同期することができる。いくつかの実施形態では、クライアントアプリケーション152は、複数のアカウントのうちの1つをプライマリアカウントまたはデフォルトアカウントとして選択するためのセレクタを含むことができる。
コンテンツ管理システム110には特定のコンポーネントが提示されているが、システム100のアーキテクチャ構成は単に1つの可能な構成であり、コンポーネントの数が多いまたは少ない他の構成が可能であることが当業者によって理解されるべきである。さらに、サービスには多かれ少なかれ機能があり、別のサービスにあると説明されている機能さえ含む。さらに、実施形態に関して本明細書で説明される特徴は、別の実施形態に関して説明される特徴と組み合わせることができる。
システム100には特定のコンポーネントが提示されているが、システム100のアーキテクチャ構成は単に1つの可能な構成であり、コンポーネントの数が多いか少ない他の構成が可能であることは当業者には理解されよう。
図2は、本技術のいくつかの態様によるクライアントアプリケーション152のファイルブラウザインタフェース200を示す。ファイルブラウザインタフェース200は、コンテンツアイテムリストセクション204および詳細ペイン202を含む。いくつかの実施形態では、ファイルブラウザインタフェース200は、ローカルコンテンツストレージ154ならびにコンテンツ管理システム110のサービスおよびデータベースへのアクセスを有するクライアントデバイス150上に格納および実行されるアプリケーションによって提示され得る。一部の実施形態では、ファイルブラウザインタフェース200は、コンテンツ管理システム110からダウンロードされた、またはクライアントデバイス150に格納されたコードを解釈して、本明細書に記載されている他の機能の中でコンテンツアイテムリストセクション204および詳細ペイン202などのファイルブラウザインタフェースの機能をレンダリングするウェブブラウザによって提示され得る。ファイルブラウザインタフェース200をレンダリングするウェブブラウザによって解釈されるコードのソースに関係なく、ファイルブラウザインタフェース200は、本明細書で説明する機能に従って、ローカルコンテンツストレージ154ならびにコンテンツ管理システム110のサービスおよびデータベースにアクセスすることができる。
詳細ペイン202は、詳細ペインサービス162によって投入および維持され得る。本明細書でさらに説明するように、詳細ペインサービス162は、詳細ペイン202に表示されるデータの要求と投入を担当する。一部の実施形態では、詳細ペインサービス162はまた、クライアントアプリケーション152またはクライアントデバイス150上のウェブブラウザと組み合わせて詳細ペイン202を表示することを担当し得る。
コンテンツアイテムリストセクション204は、それらのコンテンツアイテムの記憶場所に関係なく、グルーピング内に含まれるすべてのコンテンツアイテムをリストするように構成される。例えば、図2に示されるように、コンテンツアイテムリストセクション204は、グルーピング205「Dropbox」内に含まれるすべてのコンテンツアイテムを示す。当技術分野で知られているように、Dropboxは、クラウドストレージにコンテンツアイテムを格納するコンテンツ管理サービス(本明細書で説明するコンテンツ管理システム110によって管理されるサービスなど)であり、多くのタイプのファイルについて、クラウドに保存されているコンテンツアイテムと、クライアントデバイスのローカルストレージに保存されているコピーとの同期コピーを維持できる。ただし、Dropboxは、クラウドにのみ保存されているコンテンツアイテムを維持することもできる。コンテンツアイテムリストセクション204は、クライアントデバイス150のローカルコンテンツストレージ154に格納されたコンテンツアイテムおよびコンテンツ管理システム110のコンテンツストレージ142に格納されたコンテンツアイテムの両方を含む、コンテンツ管理システム110によって格納されたすべてのコンテンツアイテムの表現を表示することができる。ローカルコンテンツストレージ154およびコンテンツストレージ142の両方に保存されたコピーを有するコンテンツアイテムの表現を使用して、ローカルコンテンツストレージ154からそのようなコンテンツアイテムを直接開くことができる。
グルーピング205のようなグルーピングは、単一のソースに限定される必要はない。たとえば、グルーピングは、さまざまなコンテンツ管理システムサービス(Dropbox、Box、SugarSync、iCloud、OneDriveなど)、さまざまなオンラインドキュメント編集サービス(Googleドキュメント、Dropbox Paper、Microsoft Office Online、iCloudなど)など)、およびローカルコンテンツストレージ154などの複数のさまざまなソースにリンクできる。図1に示すようないくつかの実施形態では、ファイルブラウザインタフェース200および詳細ペイン202は、コンテンツ管理システム110に関連するクライアントアプリケーション152の一部である。そのような実施形態では、コンテンツ管理システム110は一次サービスであり、上にリストされた代表的なサービスのいずれかなどの他のサービスは二次サービス170と見なされる。一部の実施形態では、二次サービスは、サードパーティサービス、例えば、ファイルブラウザインタフェース200および詳細ペイン202のプロバイダではないサービスによって提供され得る。
詳細ペイン202は、コンテンツアイテムリストセクション204に示されるコンテンツアイテムに関係するコメント、アクティビティ、プレビューなどの情報を表示するように構成される。
図2は、コンテンツアイテムリストセクション204において特定のコンテンツアイテムが選択されていないときの詳細ペイン202の実施形態を示す。特定のコンテンツアイテムが選択されていない場合に詳細ペイン202に表示される情報は、コンテンツアイテムリストセクション204に表示されるコンテンツアイテムのいずれかまたは複数に関連している。詳細ペイン202に表示される情報は、コンテンツアイテムリストセクション204で表されるコンテンツアイテムの1つを格納する任意のサービスから取得できる。したがって、詳細ペイン202に表示される情報は、複数のソースからのものであり得る。
図2は、詳細ペイン202に示されるアクティビティセクション206を示す。アクティビティセクション206は、コンテンツアイテムリストセクション204内のコンテンツアイテムに関して発生するアクティビティに関する情報をリストする。コンテンツアイテムに関して発生するアクティビティは、コンテンツアイテムが開かれた、編集された、共有された、コメントされた、等の情報を含み得る。いくつかの実施形態において、特定のコンテンツアイテムに関して発生したアクティビティは、さらに本明細書で説明されるように集約され得る。アクティビティセクションのアクティビティは、通知サービス117によってクライアントアプリケーション152に送信できる。
いくつかの実施形態では、コンテンツアイテムリストセクション204にリストされたコンテンツアイテムは、共有コンテンツアイテム209であり、ファイルブラウザインタフェース200は、グルーピング内のコンテンツアイテムが共有されるユーザアカウント208を表すアイコンを表示することができる。いくつかの実施形態では、ユーザアカウント208を表すアイコンは、現在コンテンツアイテムを見ている、または以前にコンテンツアイテムを見たユーザアカウントを反映する。いくつかの実施形態では、ユーザアカウント208を表すアイコンは、コンテンツアイテムの最近の閲覧から最も過去のものに並べることができ、コンテンツアイテムを最近閲覧したユーザアカウントがアイコンの左側に表示され、コンテンツアイテムを以前閲覧したユーザアカウントを表すアイコンが、右側に表示され得る。いくつかの実施形態では、特定の期間内に、またはコンテンツアイテムが最後に改訂されてからコンテンツアイテムを閲覧したユーザアカウントのみが、ユーザアカウント208を表すアイコンで表示される。
図3は、ファイルブラウザインタフェース200の別のビューを示す。図3では、ファイルブラウザインタフェース200は、より大きなコレクション内のサブフォルダであるグルーピング215「デザインアセット」を表示する。図示のように、グルーピング215のタイトルは、グルーピング215のコンテンツの簡単な説明201を伴う。一部の実施形態では、簡単な説明201は、フォルダ215に対する十分な特権を有するユーザによって編集することができる。図2と同様に、図3のファイルブラウザインタフェース200は、コンテンツアイテムリストセクション204、詳細ペイン202、およびユーザアカウント208を表すアイコンも含む。図3は、アクティビティセクション206とともにコメントセクション210を含む詳細ペイン202を示す。コメントセクション210は、サブフォルダ「デザインアセット」215にコメントが提供されていないことを反映しているが、アクティビティセクション206に反映されているように、サブフォルダ「デザインアセット」215内の少なくとも1つのコンテンツアイテムがコメントを受信している(たとえば、アクティビティ207は、コンテンツアイテム203に関してコメントが作成されたことを反映する)。アクティビティセクション206にリストされている他のアクティビティは、サブフォルダ「デザインアセット」215内の追加、編集、または共有されたコンテンツアイテムを反映している。コメントセクション210は、任意の詳細ペインビューに表示できる。一部の実施形態では、コメントセクション210は、コンテンツアイテムリストセクション204に表示されるコンテンツアイテム(図3に示されるような)のコレクション全体のコメントを表示することができるか、または特定の選択されたコンテンツアイテム(図4に示されるような)に対するコメントを表示することができる。
コメントセクション210は、コンテンツアイテムリストセクション204にリストされた任意のコンテンツアイテムに関するコメントを表示するように構成される。一部の実施形態では、コメントセクション210はまた、以前のコメントへの返信を含むことができ、会話スレッドを形成することができる。コメントセクション210は、コメントを受け取るためのインタフェースも含む。一部の実施形態では、コメントは一般にグルーピング215に関係することがある。いくつかの実施形態では、コメントは前のコメントに応答することができ、それによりリンクされたコメントの会話スレッドを作成することができる(図9および図15Aに示されるように)。コメントは、通知サービス117によってクライアントアプリケーション152に送信できる。
図4に示されるようないくつかの実施形態では、特定のコンテンツアイテムがコンテンツアイテムビュー204で選択されると、詳細ペイン202は、選択したコンテンツアイテムに対して特定の詳細(例えば、アクティビティ、コメント、プレビューなど)を表示することができる。図4は、グルーピング215を再び示す、ファイルブラウザインタフェース200の別のビューを示す。しかしながら、図4では、特定のコンテンツアイテムであるコンテンツアイテム203が選択され、詳細ペイン202に、選択されたコンテンツアイテム203に関連する情報のみを反映させる。ここで詳細ペイン202は、選択されたコンテンツアイテム203のプレビュー213を示すプレビューセクション216を含む。コメントセクション210は、選択されたコンテンツアイテム203に与えられたコメント219を示し、選択されたコンテンツアイテムに関する新しいコメントを提供するためのインタフェース223を提供する。アクティビティセクション206は、選択されたコンテンツアイテムに関連するアクティビティのみを示す。
図5Aは、コンテンツアイテムリストセクション204に表示されたコンテンツアイテムに関連する情報を詳細ペイン202に投入する例示的な方法を示す。ファイルブラウザアプリケーションは、ローカルコンテンツストレージのクライアントデバイス150にローカルに格納されたコンテンツアイテムを示す、および/またはコンテンツ管理システム110または二次サービス170などのオンラインサービスに格納されたコンテンツアイテムを示すコンテンツアイテムリストセクション204を含み得る。ファイルブラウザアプリケーションはまた、詳細ペインサービス162によってデータが投入された詳細ペイン202を含む。詳細ペインサービス162は、コンテンツアイテムリストセクション204のコンテンツアイテムに関連する情報を詳細ペイン202に投入し、詳細ペイン202内で受け取った入力に反応する。
詳細ペインサービス162は、コンテンツアイテムリストセクション204に表示されたコンテンツアイテム(またはファイルブラウザアプリケーションで開かれているディレクトリ内のすべてのコンテンツアイテム)を識別し(302)、クライアントデバイス150のキャッシュからのコンテンツアイテムリストセクション204内のコンテンツアイテムの既存の詳細を取得する(304)ことができる。一部の実施形態では、キャッシュは、ストレージインデックス164の一部であり得る。キャッシュは、以前に表示された、またはファイルブラウザインタフェース200に表示され得るコンテンツアイテムに関する以前に受信された情報の集まりである。いくつかの実施形態では、詳細ペインサービス162が1つまたは複数のソースからのコンテンツアイテムに関する情報を要求するときに、キャッシュが投入されてもよい。いくつかの実施形態では、通知サービス117がコンテンツアイテムに関する通知をクライアントアプリケーション152に送信するときに、キャッシュが投入されてもよい。
上記で紹介したように、通知サービス117は、コンテンツアイテムの詳細に関する情報を受信し、クライアントデバイス150に通知することができる。いくつかの実施形態では、通知サービス117は、生のイベントデータを受け取り、生のイベントデータをユーザにとってより意味のある詳細に変換するか、または詳細を集約してより良いユーザ体験を提供するように構成される。本明細書に記載されるように、通知サービス117は、コンテンツアイテムに関する任意のファイルレベルのイベントに関する情報を収集することができる。通知サービス117は、コンテンツアイテムに関してコンテンツアイテムが共有されている協力者によって行われたアクションに関する情報にアクセスすることもできる。通知サービス117は、コンテンツアイテムに関して行われたコメントに関する情報、コンテンツアイテムが最後に開かれた、作成された、変更された日時に関するタイムスタンプに関する情報にもアクセスできる。この情報へのアクセスに加えて、通知サービス117は通知を変換し、かつ/またはコンテンツアイテムまたはコンテンツアイテムのコレクションに関連する通知を集約して、ユーザにより多くの意味またはより良いユーザエクスペリエンスを提供できる。たとえば、コンテンツアイテムのコレクションが新たに共有された場合に発生する可能性があるように、クライアントデバイス150に通知を送信しすぎると、ユーザエクスペリエンスが低下する可能性がある。このような例では、また一部の実装では、コレクション内のすべてのコンテンツアイテムに関する通知が送信される可能性があり、多くの通知が発生する可能性がある。他の例では、通知サービス117は、共有されたコレクションに関する単一の通知を送信するか、または多くのコンテンツアイテムが共有されたことを示す通知を送信することができる。通知サービス117は、クライアントデバイス150に通知を送信する前に通知を集約することができるが、一部の実施形態では、詳細ペインサービス162は、詳細ペインサービス162が生データに基づいて独自の集約決定を行うことができるように、キャッシュ内の記憶のための(集約されていない)生データを要求することができる。
キャッシュから詳細を取得する(304)ことに加えて、詳細ペインサービス162は、コンテンツアイテムリストセクション204内のコンテンツアイテムの新しい詳細(306)を要求することができる。これらの詳細は、アクティビティと、キャッシュに保存された最後に記録されたアクティビティの詳細の後に発生したコメントに関するものであり得る。
上述のように、通知サービス117は、集約機能を実行することができる。いくつかの実施形態では、詳細ペインサービス162は、キャッシュに格納された詳細および/または新しい詳細の要求(306)に応答して受信された詳細をさらに組み合わせることにより、詳細をさらに集約する(308)ことができる。通知サービス117は、通知がクライアントデバイス150に送信される時点で詳細を含む通知のみを集約するが、詳細ペインサービス162は、特定の期間内に受信されたすべての詳細を、単一の通知で受信されたか、別の時間に複数の通知で受信されたかに関係なく、集約できる。
例えば、詳細ペインサービス162は、ある期間内、例えば、先週、過去3日間、今日などに受信された詳細を集約することができる。集約される詳細は、キャッシュに格納されるか、要求に応じてコンテンツ管理システム110から受信される。詳細はすでに部分的に集約された形式である可能性がある。たとえば、詳細は以前に受け取った2つの通知の形式である場合があり、初めての最初の通知は「5アイテムを追加しました」と述べ、2回目の通知は「2アイテムを追加しました」と述べる。これらの部分的に集約された通知は、詳細ペインサービス162によって「7個のアイテムを追加しました」という詳細に完全に集約できる。
詳細ペインサービス162は、任意の共通の基準に基づいて詳細を集約することができる。たとえば、詳細は、俳優、つまりアクションを実行する人物に基づいて集約できる。そのような詳細は、「Dropboxの9つのアイテムにコメントした」244(図6A)である。詳細は、「アセット(292アイテムを有するフォルダが追加された。」などの共通のフォルダまたはコンテンツアイテムに基づいて集約できる。246(図2)、または「DCSl7043_JPGはあなた、トム、他3人がコメントしました」207(図3)。詳細は、「月曜日以降、312アイテムがDropboxに追加された、246(図6A)など、時間ごとに集約できる。246 (Figure 6A).
詳細ペインサービス162は、いくつかのタイプの集約を実行することができる。第1のタイプの集約は、同じ基準に関連するすべての詳細をグループ化できる真の集約である。真の集約の例は、「Dropbox内の9つのアイテムに関してあなたがコメントした」244(図6A)であり、「コメントした」ファイルの数が合計されている。第2のタイプの集約は、同じまたは類似のアクションが繰り返し実行された場合のデバウンスである。たとえば、ユーザが複数の編集を行い、同じコンテンツアイテムに保存した場合、詳細は、「毎週のto-doリストが編集された」などの単一のアクティビティの詳細として表示できる248(図2)。ユーザ(「あなた」)はいくつかの編集を行った可能性があるが、アクティビティの詳細にはファイルが編集されたことが示される。第3のタイプの集約は再分類で、コンテンツアイテムに関連する生のイベントは、ユーザのアクションの印象を反映しない。共通の種類の再分類は、コンテンツアイテムの削除と、それに続くコンテンツアイテムの追加に関係する。同じコンテンツアイテムの削除と追加のシーケンスがあり、2つのイベントが近い時間に発生した場合、ユーザがコンテンツアイテムを移動した可能性が高くなる。したがって、再分類では、詳細ペインサービス162は削除を再分類し、イベントを追加して移動イベントにすることができる。
いくつかの実施形態では、詳細ペインサービス162は、詳細ペイン202に詳細を表示する(310)ための順序(308)を選択することもできる。詳細ペインサービス162は、関連性機能に従って、表示のために詳細を順序付けることができる。たとえば、アクティビティまたはコメントは、アクティビティまたはコメントを含む詳細が受信されたとき、コンテンツアイテムが、コンテンツアイテムのアクティビティまたはコメントの数、協力者の数、コンテンツアイテムへの関心を示す明示的なユーザ入力などと最後に対話したとき(表示、編集、コメントなど)など、1つ以上の要因に基づいて順序付けることができる。
詳細ペインサービス162がキャッシュされ、受信された詳細を集約し、順序付けた(308)後、詳細ペインサービス162は、詳細ペイン202に詳細を表示(310)させることができる。
いくつかの実施形態では、同じイベントに関する詳細は、選択されたフォルダのコンテキストに基づいて集約することができる。たとえば、図5Bは、選択されたフォルダの関連するコンテキストに従ってアクティビティの詳細を表示する例示的な方法を示す。この方法は、詳細ペインサービス162がフォルダが提示されたと判断し(314)、提示されたフォルダおよびサブフォルダ内のコンテンツアイテムの集約された詳細を提示する(316)ときに開始する(図5 Aのステップ304、306、308、310に記述するように)。
例えば、図6Aは、ファイルブラウザインタフェース200におけるルートフォルダ205を示す実施形態を図示する。詳細ペインサービス162は、コンテンツアイテムセクション204に表示されるコンテンツアイテムに付随する詳細244および246を含む集約された詳細を詳細ペイン202に投入している。(図6Aは詳細ペイン202に集約された詳細のみを示すが、これは簡略化された例のみを提供するものであり、詳細ペイン202は特定のコンテンツアイテムの特定のイベントに固有の詳細など、集約されていない詳細を含むことができることを理解する必要がある。)図6Aは、ルートフォルダ205を示すファイルブラウザインタフェース200を示すので、詳細ペイン202は、ディレクトリ全体に関係する集約された詳細を含む。詳細は、任意の共通の特性に従ってグループ化できる。例えば、集約された詳細244は、「あなた」によってコメントされたコンテンツアイテムに基づいてグループ化され、集約された詳細246は、月曜日以降にルートフォルダ205(またはそのサブフォルダ)に追加されたコンテンツアイテムに基づいてグループ化される。
詳細ペイン202の集約された詳細を選択することができる。図5Bに示すように、いくつかの実施形態では、詳細ペインサービス162は、集約された詳細が選択されていると判断することができる(315)。詳細ペインサービス162が、集約された詳細が選択されたと判断した後(315)、詳細ペインサービス162は、選択された集約された詳細に関連するコンテンツアイテムを強調表示する(317)ことができる。例えば、図6Bは、選択されたものとして集約された詳細244を示す例示的なファイルブラウザインタフェース200を示す。図5Bのステップ315に従って、集約された詳細244によって参照されるコンテンツアイテムが強調表示されたフォルダ内にあることを反映するために、コンテンツアイテム229および209が強調表示される(図6Bを参照)。いくつかの実施形態では、集約された詳細244によって参照されたコンテンツアイテムがルートディレクトリ205に直接格納された場合、コンテンツアイテム自体も強調表示される。
上記のように、集約された詳細は、ファイルブラウザインタフェース200に提示されるフォルダに従ってコンテキスト化することができる。図5Bでは、詳細ペインサービス162は、別のフォルダが選択されていることを判断することができ(318)、選択されたフォルダに対してコンテキスト化された詳細を提示することができる(320)。このコンテキスト化は、図6Aと図6Cを比較することで示される。図6Aは、Dropboxルートフォルダ205を示し、図6Cは、Dropboxルートフォルダ205のサブフォルダであるフォルダデザインライブラリ209を示す。したがって、図6Aは、Dropboxルートフォルダ205内のすべてのコンテンツアイテムに関する集約された詳細を含み、図6Cは、デザインライブラリ209またはそのサブフォルダ内のコンテンツアイテムに関する集約された詳細を含む。たとえば、図6Aでは、集約された詳細244は「あなた」がコメントした9つのコンテンツアイテムに関係するが、図6Cでは、集約された詳細249は「あなた」が「デザインライブラリ」でコメントした3つのアイテムだけに関係する。「あなた」がコメントしたコンテンツアイテムに関連する集約された詳細のコンテキストは、図6Aから図6Cに変更され、デザインライブラリ209にあるコンテンツアイテムのみに関連するようになった。具体的には、集約された詳細244は9つのコンテンツアイテムを参照し、集約された詳細249は9つのコンテンツアイテムのうち3つを参照する。集約された詳細249は、2つのコンテンツアイテムのみが表示されている場合(241、243)、3つのコンテンツアイテムを参照する。というのも、3つのコンテンツアイテムの一部/全部は、フォルダ「デジタル」241内に配置されているからである。
同様に集約された詳細251は、(図6Aの集約された詳細246の312のアイテムと比較して)294のアイテムを参照し、サブフォルダ「デジタル」241(図6Aの集約された詳細246のパス「デザインライブラリ->デジタル」と比較)を直接参照することにより図6Cのデザインライブラリ209の提示のためコンテキスト化された。
詳細ペイン202は、(例えば、フォルダが選択された後)オンデマンドで集約された詳細のコンテキスト化を決定するか、または各(サブ)ディレクトリのコンテキスト化を作成および格納することによってコンテキスト化を前処理し、この表をキャッシュに格納することができる。
いくつかの実施形態では、ファイルブラウザインタフェース200に表示されるフォルダに従って集約された詳細をコンテキスト化することに加えて、詳細ペインサービス162は、ファイルブラウザインタフェース200に表示されたフォルダに基づいて、異なる詳細、詳細の代替グルーピング、および詳細を編成および詳細と対話するための代替セクションなどを提示することができる。詳細ペインサービス162はさらに、コンテンツアイテムリストセクション204がルートフォルダまたはサブフォルダを表示しているかどうか、または特定のコンテンツアイテムが選択されているかどうかを判断することができる。コンテンツアイテムリストセクション204がルートフォルダを表示しているとき、詳細ペインサービス162は、ルートフォルダ内のコンテンツアイテムに関係するアクティビティの詳細のみを表示してもよい。例えば、図2に見られるように、ファイルブラウザアプリケーション200はルートフォルダ205を表示しており、詳細ペイン202はアクティビティセクション206のみを表示している。図2は別個のコメントセクション210(図3に見られる)またはプレビューセクション216(図4に見られる)を表示しないが、アクティビティセクション206はコメントを含み、アクティビティの隣にサムネイル画像を表示する。詳細セクションを少なく表示することにより、詳細ペイン202は混雑しすぎないようにすることができる。
いくつかの実施形態では、詳細ペインサービス162は、コンテンツアイテムリストセクション204に表示されたディレクトリが多すぎるコンテンツアイテムを含むと判断し、特定の詳細セクション(例えば、アクティビティ、コメント、プレビューなど)のみを表示することができる。表示されているルートフォルダの決定と同様に、詳細セクションを少なく表示することにより、詳細ペイン202は混雑しすぎないようにすることができる。
いくつかの実施形態では、コンテンツアイテムリストセクション204がサブフォルダを表示している、または閾値数未満のコンテンツアイテムを表示している、または表示されるべき合計アクティビティの閾値数未満がある場合、詳細ペインサービス162は、追加のタイプの情報を表示できる。例えば、詳細ペインサービス162は、コメントセクション210またはコンテンツアイテムのプレビューセクション216またはコンテンツアイテムリストセクション204に表示されたコンテンツアイテムのコレクションを表示することができる。
例えば、図7は、コンテンツアイテムの選択またはコンテンツアイテムに関する詳細を受信し、詳細ペイン202をコンテンツアイテムに固有の詳細で更新するための例を示す。詳細ペインサービス162は、コンテンツアイテムリストセクション204内の個々のコンテンツアイテムまたはコンテンツアイテムに関連する詳細セクション202の詳細が選択されたことを判断することができる(322)。コンテンツアイテムの選択またはコンテンツアイテムの詳細の両方を、コンテンツアイテムの選択として扱うことができる。個々のコンテンツアイテム(たとえば、図4のコンテンツアイテム203など)が選択されると、詳細ペインサービス162は、選択された個々のコンテンツアイテムのコメントおよびアクティビティと共に選択された個々のコンテンツアイテム(コンテンツアイテム203のプレビュー213など)のプレビューを表示するアクションを実行できる。したがって、詳細ペインサービス162は、選択された個々のコンテンツアイテムのコンテンツアイテムプレビューを要求し(324)、(例えば、図4に示されるように)プレビューセクション216にコンテンツアイテムプレビューを表示する(326)ことができる。一部の実施形態では、コンテンツアイテムプレビューは、(図5Aのステップ304で説明されるように)ローカルキャッシュから利用可能であり得る。いくつかの実施形態では、プレビューは、(図5Aのステップ306で説明されるように)コンテンツ管理システム110から利用可能であり得る。いくつかの実施形態では、プレビューは、(図10に関してさらに説明されるように)詳細ペインサービス162によって動的にレンダリングされ得る。さらに、詳細ペインサービス162は、例えば、図4で選択された個々のコンテンツアイテム203に関連するコメント219およびアクティビティを有するのが見られるように、コメントペイン210やアクティビティセクション206などのコンテンツアイテムに固有の詳細ペイン202の他のセクションを提示(328)できる。
図8は、ファイルブラウザインタフェース200の別の例を示す。図8では、ファイルブラウザインタフェース200は、ディレクトリパス224に見られるように、サブフォルダ「2017年秋号」のコンテンツを表示する。図8はさらに、コンテンツアイテムリストセクション204内の2つの追加のサブフォルダを示している。それらのサブフォルダの最初はサブフォルダ220「作業中」であり、第2のサブフォルダはサブフォルダ225「リソース」である。サブフォルダ220とサブフォルダ225のそれぞれの中に、追加のコンテンツアイテムがリストされる。そのような追加のコンテンツアイテムの1つは、選択されたフォルダ211「フォント」である。フォルダ211の選択に応答して、詳細ペインサービス162は、フォルダ211のプレビュー227を示すプレビューセクション216を示す詳細ペイン202を提示する。詳細ペイン202には、フォルダ211のコメントとアクティビティをリストしたコメントセクション210とアクティビティセクション206も含まれる。
図9は、ファイルブラウザインタフェース200の別の例を示す。図9では、ファイルブラウザインタフェース200は、サブフォルダ230の「2017年秋号」のコンテンツを表示し、さらに、コンテンツアイテムリストセクション204内の2つの追加のサブフォルダを示す。これらのサブフォルダの最初はサブフォルダ235「最新」で、第2はサブフォルダ220「作業中」である。図9では、コンテンツアイテム217が選択されており、詳細ペインサービス162は、コンテンツアイテム217のプレビューを示すプレビューセクション216を示す詳細ペイン202を表示する。このプレビューは動的プレビューであり、プレビューセクション216はコンテンツアイテム217の編集可能なコンテンツをレンダリングしている。例えば、図9に示すように、プレビューセクション216は、コンテンツアイテム217を開くために通常使用されるデフォルトアプリケーションでコンテンツアイテム217を開かずに、詳細ペイン202から直接操作できるto-doリストを示す。詳細ペイン202のプレビューセクション216に表示されるコンテンツとの対話は、図11に関してさらに詳細に説明される。
図10Aおよび図10Bは、分離された詳細ペイン222の例を示す。これらの実施形態では、詳細ペイン222は、ファイルブラウザインタフェース200の一部として表示される詳細ペイン202とは対照的に、それ自体の別個のウィンドウとして表示される。分離された詳細ペイン222は、それ自体の別個のウィンドウとして表示されるが、詳細ペイン202と同じように機能し、ファイルブラウザインタフェース200と連携して機能することができる。同様に、図10Aおよび図10Bに示される任意の特徴は、他の図に示される詳細ペイン202の添付ビューのいずれにも存在することができる。
図10Aは、コンテンツアイテムのプレビューを示すプレビューセクション216を図示する。プレビューセクション216はまた、コンテンツアイテムに関連するメタデータを示す。具体的には、プレビューセクション216は、コンテンツアイテムが開かれた回数226に関する情報の隣に、コンテンツアイテムが最後に編集されたとき228を示す。この情報を並べて表示することは、ユニークで便利である。最初にコンテンツアイテムがどのくらい最近編集されたかに関する情報を表示すること228は有用であるが、ファイルが開かれた頻度に関する情報226と組み合わせると、重要な追加のコンテキストを提供する。この情報をまとめると、コンテンツアイテムが現在関連していることを示すだけでなく、繰り返し開かれたために繰り返し関連していたことも示している。また、コンテンツアイテムが開かれた回数が多い場合は、コンテンツアイテムが共有されている可能性が高いことを示している。これは、誰がコンテンツアイテムを開いたかについてより多くのコンテキストを提供する閲覧アクティビティセクション206によって確認できる。
コンテンツアイテムオープンカウント226の隣に最後に編集された情報228を表示することの1つの独特な態様は、このデータが多様なソースから得られ得るということである。例えば、最後に編集された情報228は、クライアントデバイス150のオペレーティングシステムから導出され得、コンテンツアイテムオープンカウント226は、コンテンツ管理システム110または共有コンテンツアイテムを管理する他のプラットフォームから供給され得る。
図10Aに示す別の特徴は、活動セクション206内に表示されるバージョン情報である。例えば、いくつかの実施形態では、コンテンツアイテムに関するアクティビティは、コンテンツアイテムの異なるバージョンに関係するアクティビティに分割することができる。図10Aに示すように、アクティビティセクション206は、第1のバージョン234のアクティビティおよび第2のバージョン236のアクティビティを表示する。いくつかの実施形態では、コンテンツアイテムは、それが新しいバージョンとして指定されるべきであると宣言された入力に関連付けられ得る。いくつかの実施形態では、コンテンツアイテムは、コンテンツアイテムが編集および保存された後に新しいバージョンとして指定されてもよい。
図10Bはまた、分離された詳細ペイン222の例を示す。図10Bでは、コメントセクション210は、プレビューセクション216に示されたコンテンツアイテムに関するコメントを反映している。コメントセクション210に示されるコメントは、コメントスレッドが分離された詳細ペイン222全体、または他のコメントスレッドを追い越さないように折りたたまれて示されている。一部の実施形態では、コメントスレッドが折りたたまれているとき、詳細ペインサービス162は、コメントスレッドの最初と最後のコメントなどのコメントのサブセットを表示し、追加のコメント242の存在に関する情報を提供することができる。
いくつかの実施形態では、追加のコメント242の存在に関する情報は、入力を受け取り、折りたたまれたコメントの1つ以上を表示するため拡張するように実行可能であり得る。
図11は、ファイルブラウザインタフェース200が特定のコンテンツアイテムに固有のコメントの選択を受信する(350)ときに、詳細ペインサービス162によってコンテンツアイテムのプレビューを表示することに関係する例示的な方法を示す。いくつかの実施形態では、詳細ペイン202がコメントセクション210を含むビューを表示しているとき、詳細ペイン202は、そのコンテンツアイテムがサブフォルダであるかファイルであるかにかかわらず、特定のコンテンツアイテムに固有のビューを表示している。一部の実施形態では、詳細ペイン202が特定のコンテンツアイテムに固有のビューを表示しているとき、詳細ペイン202はまた、特定のコンテンツアイテムのプレビューを含む。プレビューは、コンテンツアイテムを表すプレビューまたはコンテンツアイテムの一部のプレビューを含むことができる。いくつかの例では、特定のコメントまたはコンテンツアイテムの選択が受信されると(350)、詳細ペインサービス162は、コンテンツアイテム内のコメントの場所を示すプレビューを提示することができる。いくつかの実施形態では、コメントがコンテンツアイテム内にアンカーされる場所を示すプレビューは、プレビューセクション216内のコンテンツアイテム全体を表すプレビューを置き換えることができる。一部の実施形態では、コメントがコンテンツアイテム内にアンカーされている場所を示すプレビューは、コメントセクション210に、または別のポップアウトボックスもしくはウィンドウに表示できる(図12A、図12B、および図13に示すように)。一部の実施形態では、コメントアンカーは、強調表示されたテキスト、または選択された点、またはコンテンツアイテム内の選択された領域であり得る。
詳細ペインサービス162は、コンテンツアイテムが、以下でより詳細に説明されるように動的にレンダリング可能なタイプであるかどうかを判断することができる(356)。したがって、詳細ペインサービス162がプレビューが動的にレンダリング可能であると判断すると(356)、詳細ペインサービス162は、コンテンツアイテムで選択したコメントの場所を示すコンテンツアイテム(ローカルに保存されているかまたはクラウドストレージに保存されているか)のコピーからプレビューを動的にレンダリングする(361)。動的プレビューは、詳細ペインサービス162の一部であるか、詳細ペインサービス162に関連付けられているコンテンツオーサリングアプレットによってレンダリングできる。一部の実施形態では、コンテンツオーサリングアプレットは、コンテンツアイテムのコンテンツを読み取り、コンテンツアイテム内のコメントを見つけ、コンテンツアイテムの適切な部分をプレビューとしてレンダリングすることができる。一部の実施形態では、コンテンツオーサリングアプレットは、コンテンツオーサリングアプレットがコンテンツ管理システム110に格納されたコンテンツアイテムのコピーからプレビューをレンダリングできるウェブビューを提供することができる。コンテンツアイテムのローカルコピーがクライアントデバイス150上で利用可能であり得る一方で、ウェブビューは、コンテンツアイテムのコンテンツ管理システムコピーに基づいてプレビューを依然としてレンダリングできることに留意されたい。
いくつかの実施形態では、動的プレビューは、プレビューで直接編集を受け取ることができる。いくつかの実施形態では、動的プレビューは、コンテンツアイテム内をナビゲートするための入力を受け取り、それに応答することができる。
一部の実施形態では、詳細ペインサービス162は、一部のコンテンツアイテムの動的プレビューをレンダリングできない場合がある。詳細ペインサービス162は、プレビューを動的にレンダリングできないと判断した場合(356)、詳細ペインサービス162は、コンテンツアイテムの一部を示す静的プレビューを要求(358)し、選択したコメントがアンカーされているコンテンツアイテム内の場所を示すコンテンツアイテムのプレビューを表示(360)できる。動的プレビューについては、以下の図16に関連してさらに説明する。
静的プレビューは、コンテンツアイテムを開き、コンテンツアイテム内の選択されたコメントを囲むコンテンツアイテムのプレビューを作成するサービスを提供することができるコンテンツ管理システム110から受け取ることができる。いくつかの実施形態では、この機能は事前に実行することができ、前処理されたプレビューをクライアントデバイス150に送信してキャッシュすることができる。いくつかの実施形態では、プレビューは、オンデマンドで、および詳細ペインサービス162の要求時に、作成および/またはデバイス150に送信することができる。
一部の実施形態では、コンテンツアイテム内のコメントを示すプレビューは、コメントセクション210に自動的に含まれ得る。
一部の実施形態では、コンテンツアイテム内のコメントの場所を示すコンテンツアイテムのプレビューが表示されている間、詳細ペインサービス162は、コンテンツアイテム内の別のコメントの場所を示す別のプレビュー(360、361)の提示をもたらす別のコメントを選択する入力を受け取ることができる(350)。
図12Aおよび図12Bは、コンテンツアイテム内のコメントの場所を示す例示的なプレビューを示す詳細ペイン222の2つの例を示す。図12Aおよび図12Bは、分離された詳細ペイン222を示すが、そこに示される機能のすべてが、詳細ペイン202などの他のフォームファクタの詳細ペインに等しく適用されることを理解されたい。
図12Aおよび図12Bに示されるように、分離された詳細ペイン222は、コンテンツアイテム217に適用可能な一般的なプレビューを示すプレビューセクション216を含む。コメントセクション210は、コンテンツアイテム217に関するコメントの場所を示すプレビューを表示する。
図12Aおよび図12Bはまた、拡張可能なプレビューセクション216を示す。ユーザインタフェースコントロール232は、図12Aに示されるようにプレビューセクション216を拡張して、コンテンツアイテム217に関するメタデータを明らかにするためにアクティブ化され得る。プレビューセクション216が拡張されると、ユーザインタフェースコントロール232を選択して、プレビューセクション216を折りたたんで、追加のメタデータの詳細を隠すことができる。
図13は、コンテンツアイテム221に関する詳細を示す詳細ペイン202を含むファイルブラウザインタフェース200を示す。プレビューペイン216は、コンテンツアイテム221のプレビューを表示し、コメントセクション210は、コンテンツアイテム221に関するコメントを示す。図13では、個々のコメント、コメント256が選択されており、それに応答して、詳細ペインサービス162は、コメント256がアンカーされているコンテンツアイテム221の部分258のプレビューを表示するポップアウトウィンドウ262を表示している。
図14は、ネイティブまたはデフォルトのアプリケーションで開かれたコンテンツアイテム221の例を示す。図13に示すように、コメント256は、それがアンカーされているドキュメントの部分258と共に示されている。
図15は、サブフォルダ230「2017年秋号」のアクティビティを示す詳細ペイン202を有するファイルブラウザインタフェース200の例を示す。図15に示されるように、アクティビティセクション206は、アクティビティが記録された日に基づいてカテゴリにグループ化されたコメントを含む。具体的には、「今日」と記録されたコメントについて264をグループ化し、「昨日」と記録されたコメントについて266をグループ化する。
さらに、図15は、選択されたコンテンツアイテム217に関連するアクティビティ233を示す。詳細ペインサービス162は、アクティビティ233の選択を受信し、プレビューセクション216のコンテンツアイテムプレビューとコメントセクション210のコメントがコンテンツアイテム217内にアンカーされている場所を示すプレビュー252を含む、コンテンツアイテム217に固有の詳細を示す詳細ペインポップアウトウィンドウ268を表示できる。
上記で紹介したように、いくつかのコンテンツアイテムは、これらのコンテンツアイテムの動的プレビューを提示するのに役立つ場合がある。たとえば、マークアップ言語で記述されたコンテンツアイテム、またはオンラインドキュメントサービスに格納されているコンテンツアイテム(Dropbox Inc.によるPaperドキュメント、またはGoogle Inc.によるGoogle Docなど)などのクラウドコンテンツアイテムは、詳細ペインサービス162によって直接レンダリングされてもよい。他のコンテンツアイテムは、APIを介してアクセス可能なサービスの支援によって動的にレンダリング可能になる場合があります。一部のコンテンツアイテムは、コンテンツ管理システムで開かれたコンテンツアイテムの一部を表示するウェブビューを提供することにより、動的にレンダリング可能であってよい。動的にレンダリング可能なプレビューはプレビューペインで直接操作できるため、コンテンツアイテムの編集に使用されるデフォルトのアプリケーションでコンテンツアイテムを開かずに編集や追加コメントを行うことができる。
図16は、動的にレンダリングされたプレビューをレンダリングし、それと相互作用するための例示的な方法を示す。詳細ペインサービス162がプレビューが動的にレンダリング可能なコンテンツアイテムのプレビューを提示する必要がある場合、詳細ペインサービス162は、コンテンツアイテムのコピーからプレビューを動的にレンダリング(362)できる。
上記のように、動的にレンダリング可能なプレビューは、対話を受け取り、プレビューで直接編集することができる。したがって、詳細ペインサービス162は、詳細ペイン202(262または268)に表示された動的にレンダリングされたプレビューへのユーザ入力を受け取ることによって、動的にレンダリングされたプレビューとの対話を受け取る(364)ことができる。詳細ペインサービス162は、受信した(364)対話に応答して、プレビューおよびコンテンツアイテム自体を更新することができる(366)。このようにして、デフォルトのアプリケーションでコンテンツアイテムを開かなくても、コンテンツアイテムをすばやく変更できる。変更はプレビューに直接反映でき、プレビューは、ユーザがネイティブアプリケーションでコンテンツアイテムを開くか、別のコンテンツアイテムを選択するか、ファイルブラウザインタフェース200を閉じるまで、引き続き対話に利用できる。
図17Aおよび図17Bは、プレビューセクション216に示される動的にレンダリングされたコンテンツアイテムプレビューの例を示す例示的詳細ペイン222を示す。図17Aの例では、動的にレンダリングされたドキュメントのプレビューが折りたたまれたプレビューセクション216に示され、図17Bでは、動的にレンダリングされたプレビューが拡張されたプレビューセクション216に示されている。図12Aおよび図12Bに関して述べたように、プレビューセクション216は、ユーザインタフェースコントロール232の選択を通じて、折りたたまれたビューから拡張されたビューに切り替えることができる。
動的にレンダリングされたプレビューは、図15に関して説明されるように、プレビューおよび基礎となるコンテンツアイテムの両方に更新を提供するために対話することができるチェックリストを示す。一部の実施形態では、プレビューは、コンテンツアイテムと共に格納されたメタデータから取得することができる。たとえば、一部のコンテンツアイテムは、to-doリストなどのワークフロー情報と共に格納できる。そのような実施形態では、可能なプレビューは、to-doリストを表示することを含む。いくつかの実施形態では、to-doリストはコンテンツアイテム自体の一部である。一部の実施形態では、to-doリストは、付随するメタデータファイルに格納することができる。
プレビューが動的にレンダリングされるプレビューであるいくつかの実施形態では、プレビューセクション216に示されるコンテンツアイテムの部分に変更を加えることが可能であるだけでなく、ドキュメントの他のセクションにナビゲートすることも可能であり得る。コンテンツアイテムがウェブページなどのウェブドキュメントである場合、コンテンツアイテム内のリンクをクリックしてインターネットコンテンツをナビゲートできる場合がある。
動的にレンダリングされたプレビューは、詳細ペインサービス162内にまたはそれに関連付けられた1つまたは複数のコンテンツオーサリングアプレットを含めることによって提供することができる。コンテンツオーサリングアプレットは、特定のドキュメントタイプ、または詳細ペイン202のプレビューセクション216内の特定のドキュメントタイプの少なくとも一部をレンダリングするのに十分なコードを含むことができる。一部の実施形態では、動的にレンダリングされるプレビューは、コンテンツオーサリングアプレットの制御下でフレーム内に表示することができる。
いくつかの実施形態では、コンテンツオーサリングアプレットは、コンテンツアイテム全体をレンダリングするコードを含むことができ、コンテンツアイテムをレンダリングするとき、プレビューセクション216内に表示するためにコンテンツアイテムのコンテンツをフォーマットすることができる。さらに、アプレットはコンテンツアイテムのコンテンツをスクロールすることを許可できる。
いくつかの実施形態では、コンテンツオーサリングアプレットは、コンテンツアイテムのタイプを閲覧および編集するために通常使用されるデフォルトのアプリケーションと比較して、限られた機能のみを含むことができる。たとえば、基本的な編集機能とコメント機能だけが使用できる場合がある。
いくつかの実施形態では、コンテンツオーサリングアプレットは、コンテンツアイテムの限られた部分のみをレンダリングするように構成することができる。たとえば、コメントが添付されているコンテンツアイテムの一部のみ、またはチェックリストが含まれている部分のみをレンダリング可能にすることができる。一部の実施形態では、コンテンツアイテムの一部にタグを付けて、動的にレンダリング可能なプレビューとして表示するために利用できるようにすることができる。
いくつかの実施形態では、コンテンツオーサリングアプレットは、ウェブインタフェースサービス124との通信を通じてウェブビューをレンダリングするように構成することができる。このような実施形態は、コンテンツ管理システム110に依存して、ウェブビューで多様なコンテンツアイテムをレンダリングする能力を有するのに有用であり得る。例えば、コンテンツ管理システム110は、特定のドキュメントエディタ、または特定の画像エディタ、または特定のスプレッドシートアプリケーションに固有のファイルを開く能力を有し得、ウェブインタフェースサービス124を使用してコンテンツアイテムのウェブビューを提供し得る。このような実施形態では、クライアントデバイス150でコンテンツアイテムが選択されており、そのバージョンがローカルに格納されていても、動的プレビューを生成および動的プレビューと対話する目的で開かれるのは、コンテンツ管理システム110に格納されたコンテンツアイテムのバージョンである。コンテンツアイテムに加えられた変更は、コンテンツ管理システム110に保存され、クライアントデバイス150に格納されたコピーに同期される。
同様に、コンテンツアイテムが協調コンテンツアイテムである実施形態では、コンテンツオーサリングアプレットは、コンテンツアイテムをサポートするオンラインサービスのウェブビューをレンダリングするように構成することができる。例えば、協調的コンテンツアイテムは、協調的ドキュメントサービス134と通信しているコンテンツオーサリングアプレットによってレンダリングすることができる。
コンテンツアイテムのウェブビューをホストするコンテンツオーサリングアプレットによって動的コンテンツアイテムプレビューをレンダリングすることは、多くの状況で有用であり得るが、クライアントデバイス150がインターネットに接続されていない場合、それほど有用ではない。そのような実施形態では、コンテンツオーサリングアプレットのデフォルトの動作がウェブサーバーと連携してウェブビューをホストすることであっても、コンテンツオーサリングアプレットはローカルコンテンツアイテムをウェブサーバーと連携せずにレンダリングできるようにするのに有効なローカルリソースライブラリを含むことができる。いくつかの実施形態では、ドキュメントがこの方法でレンダリングされると、ドキュメントのフォーマット、または利用可能な機能が制限される場合がある。
動的にレンダリング可能なプレビューが編集を受け取ると、その編集をコンテンツアイテム自体(動的プレビューがローカルに格納されたバージョンからレンダリングされる場合はローカルに格納されたバージョン、または動的プレビューがウェブビューで提供される場合、コンテンツ管理システムが格納した場合)に保存することができる)。
いくつかの実施形態では、コンテンツアイテムは、同期されたコンテンツ管理サービス110によって管理され、コンテンツアイテムのバージョンへの変更が上記のように保存されると、これらの変更は、コンテンツ管理システム110または他のクライアントデバイス150で保存された他のコピーと同期することができる。
いくつかの実施形態では、詳細ペイン202に提供されるアクティビティおよびコメントが必要になる前にキャッシュされるか、またはプリフェッチされ、アクティビティおよびコメントをより迅速に提供できる場合、より良いユーザ体験を提供できる。図18は、詳細ペイン202に表示されるアクティビティおよびコメントをプリフェッチするための例示的な方法を示す。詳細ペインサービス162は、フォルダまたはフォルダ内のコンテンツアイテムの詳細ペイン202を表示する(402)。詳細ペインサービス162は、詳細ペイン202に現在情報が表示されているフォルダよりも下位のサブフォルダに格納されているコンテンツアイテムのアクティビティおよび/またはコメントの更新をプリフェッチ(404)できる。詳細ペインサービス162がファイルブラウザインタフェース200内で入力(406)を受信して、別のサブフォルダにナビゲートすると、詳細ペインサービス162は、以前にキャッシュに格納されたアクティビティおよび/またはコメントを表示(408)できる。詳細ペインサービス162は、詳細ペイン202およびキャッシュを更新するために、アクティビティおよび/またはコメントの更新を要求し、受信し続ける(410)ことができる。いくつかの実施形態では、通知サービス117は、新しいアクティビティおよび新しいコメントをクライアントデバイス150にプッシュすることができ、これらもキャッシュに格納することができる。
上記のようにアクティビティおよびコメントがプリフェッチされる実施形態では、次に低いレベルのサブフォルダ内のすべてのコンテンツアイテムのすべてのアクティビティおよびコメントを単に要求およびダウンロードするよりも、よりインテリジェントなシステムを利用することが有益であり得る。一部のフォルダは、次のレベルのサブフォルダにまだ多くのコンテンツアイテムを含んでいる可能性があるため、これらのコンテンツアイテムのアクティビティやコメントのダウンロードには時間がかかり、多くの帯域幅が必要になる場合がある。さらに、ユーザは、コメントやアクティビティをプリフェッチするよりも速くディレクトリ構造をナビゲートできる。したがって、いくつかの実施形態では、図18に示す方法は、プリフェッチ優先順位スコアに従ってアクティビティおよびコメントをプリフェッチするように変更することができる。
コンテンツアイテムのコメントおよびアクティビティをプリフェッチするための相対的な優先順位を確認するために、各コンテンツアイテムについてプリフェッチ優先順位スコアを判断することができる。いくつかの実施形態では、プリフェッチ優先順位スコアは、プリフェッチ優先順位スコアの変化を判断することに関連する要因として動的に更新することができる。プリフェッチ優先順位スコアは、ユーザがクライアントデバイス150の特定の各コンテンツアイテムへのアクセスを希望する確率の推定値とすることができる。
いくつかの実施形態では、プリフェッチ優先順位スコアは、クライアントデバイスで最後に開いた日付、別のデバイスで最後に開いた日付、最後に変更されたメタデータ値、最後に共有された日付、コンテンツアイテムが共有されている別のユーザがコンテンツアイテムを最近開いた、または編集した日付などを調べるなどの最新基準に基づく。
いくつかの実施形態では、プリフェッチ優先度スコアは、ユーザがコンテンツアイテムを主観的に重要であるとして、お気に入りアイテムとしてなど、明示的にマークする度合いを表すかどうかを表す値に基づく。
いくつかの実施形態では、プリフェッチ優先順位スコアは、コンテンツ管理システムにおいてコンテンツアイテムが変更またはアクセスされる頻度を表す値に基づく。
いくつかの実施形態では、プリフェッチ優先順位スコアは、ある期間にわたっていくつのユーザアカウントがコンテンツアイテムと対話しているかを表す値に基づく。
プリフェッチ優先スコアは、上記または他の要因の任意の組み合わせに基づくことができる。
図19は、例えば、クライアントデバイス150、コンテンツ管理システム110、またはシステムのコンポーネントが接続505を使用して互いに通信するそれらの任意のコンポーネントを構成する任意のコンピューティングデバイスであり得るコンピューティングシステム500の例を示す。接続505は、バスを介した物理的接続、またはチップセットアーキテクチャなどにおけるプロセッサ510への直接接続であり得る。接続505はまた、仮想接続、ネットワーク接続、または論理接続であり得る。
いくつかの実施形態では、コンピューティングシステム500は、本開示で説明される機能がデータセンター、複数のデータセンター、ピアネットワーク内などで分散され得る分散システムである。いくつかの実施形態では、説明されるシステムコンポーネントの1つ以上がコンポーネントが説明されている機能の一部またはすべてをそれぞれ実行する多くのそのようなコンポーネントを表す。一部の実施形態では、コンポーネントは、物理デバイスまたは仮想デバイスであり得る。
例示的なシステム500は、読み取り専用メモリ(ROM)520およびランダムアクセスメモリ(RAM)525などのシステムメモリ515を含む様々なシステムコンポーネントをプロセッサ510に結合する少なくとも1つの処理ユニット(CPUまたはプロセッサ)510および接続505を含む。コンピューティングシステム500は、プロセッサ510に直接接続されているか、近接しているか、またはプロセッサ510の一部として統合されている高速メモリ512のキャッシュを含むことができる。
プロセッサ510は、プロセッサ510を制御するように構成された、ストレージデバイス530に格納されたサービス532、534、および536などの任意の汎用プロセッサおよびハードウェアサービスまたはソフトウェアサービス、ならびにソフトウェア命令が実際のプロセッサ設計に組み込まれている専用プロセッサを含むことができる。プロセッサ510は、本質的に、複数のコアまたはプロセッサ、バス、メモリコントローラ、キャッシュなどを含む、完全に自己完結型のコンピューティングシステムであり得る。マルチコアプロセッサは、対称または非対称であり得る。
ユーザ対話を可能にするために、コンピューティングシステム500は、音声用のマイク、ジェスチャまたはグラフィカル入力用のタッチセンシティブスクリーン、キーボード、マウス、モーション入力、スピーチなど、任意の数の入力メカニズムを表すことができる入力デバイス545を含む。コンピューティングシステム500はまた、当業者に知られているいくつかの出力メカニズムのうちの1つ以上であり得る出力デバイス535を含むことができる。場合によっては、マルチモーダルシステムは、ユーザが複数のタイプの入力/出力を提供してコンピューティングシステム500と通信できるようにすることができる。コンピューティングシステム500は、通信インタフェース540を含むことができ、通信インタフェース540は、一般に、ユーザ入力とシステム出力を運営および管理する。特定のハードウェア構成での動作に制限はないため、ここでの基本的な機能は、改良されたハードウェアまたは開発された通りのファームウェア構成で簡単に置き換えることができる。
ストレージデバイス530は、不揮発性メモリ装置とすることができ、磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタル多用途ディスク、カートリッジ、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、および/またはこれらのデバイスの組み合わせなど、コンピュータによってアクセス可能なデータを格納できるハードディスクまたは他のタイプのコンピュータ可読媒体とすることができる。
ストレージデバイス530は、ソフトウェアサービス、サーバ、サービスなどを含むことができ、そのようなソフトウェアを定義するコードがプロセッサ510によって実行されると、システムに機能を実行させる。いくつかの実施形態では、特定の機能を実行するハードウェアサービスは、機能を実行するためにプロセッサ510、接続505、出力デバイス535などの必要なハードウェアコンポーネントに関連してコンピュータ可読媒体に格納されたソフトウェアコンポーネントを含むことができる。
説明を明確にするために、いくつかの例では、本技術は、ソフトウェア、またはハードウェアとソフトウェアの組み合わせで実施される方法のデバイス、デバイスコンポーネント、ステップまたはルーチンを含む機能ブロックを含む個々の機能ブロックを含むものとして提示され得る。
本明細書で説明されるステップ、動作、機能、またはプロセスのいずれかは、ハードウェアおよびソフトウェアのサービスまたはサービスの組み合わせによって、単独で、または他のデバイスと組み合わせて、実行または実装され得る。一部の実施形態では、サービスは、クライアントデバイスのメモリおよび/またはコンテンツ管理システムの1つ以上のサーバに常駐し、プロセッサがサービスに関連するソフトウェアを実行するときに1つまたは複数の機能を実行するソフトウェアであり得る。一部の実施形態では、サービスは、特定の機能を実行するプログラムまたはプログラムの集まりである。いくつかの実施形態では、サービスはサーバと見なすことができる。メモリは、非一時的なコンピュータ可読媒体であり得る。
いくつかの実施形態では、コンピュータ可読ストレージデバイス、媒体、およびメモリは、ビットストリームなどを含むケーブルまたはワイヤレス信号を含むことができる。しかしながら、言及される場合、非一時的なコンピュータ可読記憶媒体は、エネルギー、キャリア信号、電磁波、および信号自体などの媒体を明示的に除外する。
上述の例による方法は、コンピュータ可読媒体から格納されるか、そうでなければコンピュータ可読媒体から入手可能なコンピュータ実行可能命令を使用して実装することができる。そのような命令は、例えば、特定の機能または機能のグループを実行するように汎用コンピュータ、専用コンピュータ、または専用処理デバイスにさせるか、そうでなければ構成する命令およびデータを含むことができる。使用されるコンピュータリソースの一部には、ネットワーク経由でアクセスできる。コンピュータ実行可能命令は、例えば、バイナリ、アセンブリ言語などの中間フォーマット命令、ファームウェア、またはソースコードであり得る。説明された例による方法の間に作成された命令、使用される情報、および/または情報を格納するために使用され得るコンピュータ可読媒体の例には、磁気または光ディスク、ソリッドステートメモリデバイス、フラッシュメモリ、不揮発性メモリを備えたUSBデバイス、ネットワークストレージデバイスなどが含まれる。
これらの開示による方法を実施するデバイスは、ハードウェア、ファームウェアおよび/またはソフトウェアを含むことができ、様々なフォームファクタのうちのいずれかを取ることができる。このようなフォームファクタの典型的な例には、サーバ、ラップトップ、スマートフォン、スモールフォームファクタのパーソナルコンピュータ、携帯情報端末などがある。本明細書に記載されている機能は、周辺機器またはアドインカードに組み込むこともできる。そのような機能はまた、さらなる例として、単一のデバイスで実行される異なるチップまたは異なるプロセス間の回路基板上に実装することもできる。
命令、そのような命令を伝えるための媒体、それらを実行するためのコンピューティングリソース、およびそのようなコンピューティングリソースをサポートするための他の構造は、これらの開示で説明される機能を提供するための手段である。
添付の特許請求の範囲内の態様を説明するために様々な例および他の情報が使用されたが、当業者がこれらの例を使用して、さまざまな実装を導出することが可能であるように、そのような例における特定の特徴または配置に基づいて、特許請求の範囲の限定を暗示するべきではない。さらに、いくつかの主題は、構造的特徴および/または方法ステップの例に固有の言語で説明された場合があるが、添付の特許請求の範囲で定義される主題は、必ずしもこれらの説明された特徴または行為に限定されないことを理解されたい。例えば、そのような機能は、本明細書で識別されたもの以外のコンポーネントで異なるように分散されるか、または実行されることができる。むしろ、記載された特徴およびステップは、添付の特許請求の範囲内のシステムおよび方法のコンポーネントの例として開示されている。