(57)【要約】当分野の課題を解決する本開示の技術は、クライアントデバイス上に格納された共有コンテンツアイテムにワークフロー制御を提供し、クライアントデバイス上に格納されアクセスされる共有コンテンツアイテムに対してコンテンツアイテムのチェックアウト又はコンテンツアイテムのロックを強制する。本技術はさらに、他のチームメンバがコンテンツアイテムを修正できないように、クライアントデバイス上で編集される共有コンテンツアイテムを自動的にロックすることを含む。したがって、本技術はユーザがそれらのクライアントデバイスのファイルシステムから直接コンテンツアイテムにアクセスすることを許容し、自動チェックアウト及びチェックイン機能を提供することによって、ファイルチェックイン及びチェックアウト機能などのワークフロー制御を提供する既存のシステムを改善する。
2020537212.tif 000002
【特許請求の範囲】
【請求項１】
格納された命令を含む非一時的コンピュータ可読記憶媒体であって、前記命令はクライアントデバイスに、
前記クライアントデバイスのファイルシステムのブラウザに共有コンテンツアイテムを表すアイコンを表示させ、前記共有コンテンツアイテムの少なくとも一部は前記クライアントデバイスの前記ファイルシステムに格納され、前記共有コンテンツアイテムはコンテンツ管理システムサーバと通信する前記クライアントデバイス上のコンテンツ管理アプリケーションを含むコンテンツ管理システムの管理下にあり、前記コンテンツ管理システムの複数のユーザアカウントは共有コンテンツアイテムに対する書き込み権限を有し、
前記共有コンテンツアイテムに対する前記クライアントデバイス上のファイルオープンイベントを検出させ、前記クライアントデバイスは前記複数のユーザアカウントのうち第１のユーザアカウントに関連付けられ、
前記ファイルオープンイベントの前記検出に基づき、前記クライアントデバイスの前記第１のユーザアカウントによって前記共有コンテンツアイテムがチェックアウトされたことを前記コンテンツ管理システムサーバに通知させ、前記共有コンテンツアイテムがチェックアウトされたことの前記通知は前記第１のユーザアカウント以外の書き込み権限を有する前記複数のユーザアカウントに対して、前記共有コンテンツアイテムがチェックインして戻されるまでの間、前記共有コンテンツアイテムが読み出し専用となる、非一時的コンピュータ可読記憶媒体。
【請求項２】
請求項１に記載の非一時的コンピュータ可読記憶媒体であって、前記命令は、前記クライアントデバイスに、
前記クライアントデバイスに関連付けられた前記第１のユーザアカウントによって前記共有コンテンツアイテムがチェックアウトされていることを示すように、前記共有コンテンツアイテムを表すアイコンの外観を変更させる、非一時的コンピュータ可読記憶媒体。
【請求項３】
請求項１に記載の非一時的コンピュータ可読記憶媒体であって、前記ファイルオープンイベントを検出させる前記命令は、前記クライアントデバイスに、前記共有コンテンツアイテムがオープンされていることを前記コンテンツ管理システムのアプリケーションに知らせるメッセージをカーネルプロセスから受信させる命令を含む、非一時的コンピュータ可読記憶媒体。
【請求項４】
請求項１に記載の非一時的コンピュータ可読記憶媒体であって、前記ファイルオープンイベントを検出させるための前記命令は、前記クライアントデバイスに、
前記クライアントデバイス上でオープンしているコンテンツアイテムのコンテンツアイテム名をユーザインタフェースウォッチャアプリケーションから受信させ、
前記共有コンテンツアイテムの前記コンテンツアイテム名が前記オープンしているコンテンツアイテムに含まれることを判定させる、命令を含む、非一時的コンピュータ可読記憶媒体。
【請求項５】
請求項１に記載の非一時的コンピュータ可読記憶媒体であって、
前記ファイルオープンイベントを検出させる前記命令は、前記クライアントデバイスに、前記共有コンテンツアイテムがオープンであることを前記コンテンツ管理システムのアプリケーションに知らせる、プラグインから文書編集アプリケーションへのメッセージを受信させる、命令を含む、非一時的コンピュータ可読記憶媒体。
【請求項６】
請求項１に記載の非一時的コンピュータ可読記憶媒体であって、
前記ファイルオープンイベントを検出させるための命令は、前記クライアントデバイスに、前記共有コンテンツアイテムの編集を検出させるための命令を含み、
前記通知を前記コンテンツ管理システムサーバに送信させるための命令は、前記共有コンテンツアイテムの前記編集を検出した後に発生する、非一時的コンピュータ可読記憶媒体。
【請求項７】
請求項１に記載の非一時的コンピュータ可読記憶媒体であって、
前記命令は、前記クライアントデバイスに、
前記共有コンテンツアイテムのファイルクローズイベントを検出させ、
前記共有コンテンツアイテムを自動的にチェックインする必要があることを判定させ、
前記クライアントデバイスの前記第１のユーザアカウントによって前記共有コンテンツアイテムがチェックインされたとの通知を前記コンテンツ管理システムサーバに送信させる、非一時的コンピュータ可読記憶媒体。
【請求項８】
請求項１に記載の非一時的コンピュータ可読記憶媒体であって、
前記クライアントデバイスは前記クライアントデバイスの前記ファイルシステムに格納され、前記コンテンツ管理システムの管理下にある他の共有コンテンツアイテムを有し、前記命令は前記クライアントデバイスに、
前記コンテンツ管理システムサーバからの同期通信を受信させ、前記同期通信は前記他の共有コンテンツアイテムが前記複数のユーザアカウントの第２のユーザアカウントによってチェックアウトされることを示し、
前記第１のユーザアカウントの前記クライアントデバイス上で、前記他の共有コンテンツアイテムに対するアクセス許可を読み出し専用に変更させる、非一時的コンピュータ可読記憶媒体。
【請求項９】
請求項８に記載の非一時的コンピュータ可読記憶媒体であって、前記命令は、前記クライアントデバイスに、
前記クライアントデバイスに関連付けられた前記第１のユーザアカウントではないユーザアカウントによって前記他の共有コンテンツアイテムがチェックアウトされていることを示すように、前記他の共有コンテンツアイテムを表す前記アイコンの外観を変更させる、非一時的コンピュータ可読記憶媒体。
【請求項１０】
共有コンテンツアイテムの少なくとも一部がクライアントデバイス、コンテンツ管理システムサーバ、及び第２のクライアントデバイスの間で同期され、共有コンテンツアイテムの少なくとも一部が前記クライアントデバイス、コンテンツ管理システム、及び前記第２のクライアントデバイス上に格納されている環境において、前記クライアントデバイス上でワークフローコマンドを強制するシステムであって、前記システムは、
少なくとも１つのプロセッサ、オペレーティングシステム、ストレージ、及びコンテンツ管理システムクのライアントアプリケーションを含む前記クライアントデバイスを備え、共有コンテンツアイテムの少なくとも一部が前記クライアントデバイスのストレージに格納され、前記コンテンツ管理システムのクライアントアプリケーションは前記少なくとも１つのプロセッサに、
前記共有コンテンツアイテムに関連する前記コンテンツ管理システムサーバからの同期通信を受信し、ワークフローコマンドと書き込み権限を有するユーザアカウント識別子を含む同期通信を受信させ、
前記ユーザアカウント識別子が前記クライアントデバイス上の前記コンテンツ管理システムのクライアントアプリケーションにログインしているユーザアカウントのユーザ識別子と一致しないことを判定させ、
前記クライアントデバイス上の前記共有コンテンツアイテムのアクセス許可を読み取り専用に変更させる、効果的な命令を含む、システム。
【請求項１１】
請求項１０に記載のシステムであって、前記同期通信は、前記ワークフローコマンドの有効期限を含み、前記命令は前記少なくとも１つのプロセッサに、
前記ワークフローコマンドの前記有効期限を、前記共有コンテンツアイテムに関連付けられたメタデータに格納させる、システム。
【請求項１２】
請求項１１に記載のシステムであって、前記命令は、前記少なくとも１つのプロセッサに、
読み取り専用のアクセス許可を有する前記共有コンテンツアイテムがオープンされていることを判定させ、
書き込み権限を有する前記ユーザ識別子を表示し、前記ワークフローコマンドの前記有効期限を表示する、対話式通知ウィンドウを表示させる、システム。
【請求項１３】
請求項１２に記載のシステムであって、前記対話式通知ウィンドウはメッセージングインタフェースを含み、前記命令は前記少なくとも１つのプロセッサに、
前記クライアントデバイスの前記ユーザから書き込み権限を有する前記ユーザ識別子へのメッセージを受信させ、
前記コンテンツ管理システムサーバへ前記メッセージを送信させて、書き込み権限を有する前記ユーザ識別子への配信を行わせる、システム。
【請求項１４】
請求項１２に記載のシステムであって、前記対話式通知ウィンドウは通知オプションを含み、前記クライアントデバイスの前記ユーザによる前記通知オプションの選択は、書き込み権限を有する前記ユーザ識別子が前記共有コンテンツアイテムをクローズしたときに、前記ユーザアカウントに通知する通知トリガを設定する、システム。
【請求項１５】
請求項１０に記載のシステムであって、前記ワークフローコマンドと、書き込み権限を有する前記ユーザアカウント識別子とが、前記共有コンテンツアイテムのメタデータ属性に含まれる、システム。
【請求項１６】
請求項１０に記載のシステムであって、前記クライアントデバイス上の前記共有コンテンツアイテムに対する前記アクセス許可を変更する前記命令は、前記クライアントデバイスのファイルシステムにロックを設定する命令を含む、システム。
【請求項１７】
請求項１０に記載のシステムであって、前記クライアントデバイスは前記クライアントデバイスの前記ストレージに格納された他の共有コンテンツアイテムの少なくとも一部を有し、前記命令は前記少なくとも１つのプロセッサに、
前記コンテンツ管理システムサーバから同期通信を受信させ、前記同期通信はワークフローコマンドと、書き込み権限を有するユーザアカウント識別子とを含み、
前記ユーザアカウント識別子が前記クライアントデバイス上の前記コンテンツ管理システムのクライアントアプリケーションにログインしたユーザアカウントの前記ユーザ識別子と一致することを判定させ、
前記クライアントデバイスに関連付けられた前記ユーザアカウントによって前記コンテンツアイテムがチェックアウトされたことを示すように、前記共有コンテンツアイテムを表すアイコンの外観を変更させる、システム。
【請求項１８】
方法であって、
第１のクライアントデバイスにログインしたコンテンツ管理システムの第１のユーザアカウントによって共有コンテンツアイテムがチェックアウトされたという通知を受信することであって、前記共有コンテンツアイテムのコピーが前記第１のクライアントデバイスのストレージに格納され、前記共有コンテンツアイテムのコピーが前記コンテンツ管理システムの少なくとも１つの第２のユーザアカウントによってアクセス可能な他のデバイスのストレージに格納され、前記共有コンテンツアイテムは前記第１のユーザアカウントと前記少なくとも１つの第２のユーザアカウントとの間で共有され、前記共有コンテンツアイテムは前記コンテンツ管理システムによって前記第１のクライアントデバイスと前記他のデバイスとの間で同期される、ことと、
書き込み権限を有する前記第１のユーザアカウントによるチェックアウト状態をログに記録することと、
前記少なくとも１つの第２のユーザアカウントに関連付けられた複数のクライアントデバイスに同期通知を送信することであって、前記同期通知は、前記ログに記憶された前記第１のユーザアカウントによる前記チェックアウト状態を含み、前記少なくとも１つの第２のユーザアカウントに関連付けられた前記複数のクライアントデバイスによる前記共有コンテンツアイテムをロックする、ことと
を含む、方法。
【請求項１９】
請求項１８に記載の方法であって、
前記共有コンテンツアイテムが前記第１のユーザアカウントによってチェックインされたという通知を受信することと、
前記第１のユーザアカウントによるチェックイン状態を前記ログに記録することと、
前記少なくとも１つの第２のユーザアカウントに関連付けられた複数のクライアントデバイスに同期通知を送信することであって、前記同期通知は前記ログに記録された前記第１のユーザアカウントによる前記チェックイン状態を含み、前記少なくとも１つの第２のユーザアカウントに関連付けられた前記複数のクライアントデバイスは前記共有コンテンツアイテムのロックを解除する、ことと
を含む、方法。
【請求項２０】
請求項１８に記載の方法であって、
前記共有コンテンツアイテムがロックされている前記少なくとも１つの第２のユーザアカウントに関連付けられた第２のクライアントデバイスから同期通知を受信することであって、前記同期通知は前記共有コンテンツアイテムへの変更を含む、ことと、前記共有コンテンツアイテムへの変更を拒否することと、
を含む、方法。
【請求項２１】
請求項２０に記載の方法であって、
前記共有コンテンツアイテムのコピーを作成し、前記共有コンテンツアイテムの前記コピーを前記第２のクライアントデバイスへ送信することと、
前記共有コンテンツアイテムへの前記変更に優先して、前記共有コンテンツアイテムのバージョンを含む同期通知を前記第２のクライアントデバイスへ送信することと
を含む、方法。
【発明の詳細な説明】
【関連出願へのクロスリファレンス】
【０００１】
本出願は２０１７年１０月１６日に出願された「WORKFLOW FUNCTIONS OF CONTENT MANAGEMENT SYSTEM EN FORCED BY CLIENT DEVICE」という名称の米国非仮出願第１５／７８５，１７８号、及び２０１７年１０月１６日に出願された「WORKFLOW FUNCTIONS OF CONTENT MANAGEMENT SYSTEM EN FORCED BY CLIENT DEVICE」という名称の米国非仮出願第１５／７８５，２１６号からの優先権を主張し、これらは、すべての汎用のために、基準によりその全体が本明細書に組み込まれる。
【技術分野】
【０００２】
本発明は、コンテンツアイテムコレクションの管理に関する。
【背景技術】
【０００３】
多くのコンテンツ管理システムは、ファイルチェックイン及びチェックアウト機能を提供する。この機能は、特定のファイルへのアクセスを共有するチーム間で頻繁に使用され、ファイルの重複作業や競合コピーを回避する。この機能は便利であるが、当該機能を使用すると、従来はユーザのワークフローに追加の手順が必要であった。たとえば、この機能を提供するシステムでは、通常、ユーザがファイルを取得できるサーバにファイルを保存する必要がある。これは、各デバイスが更新されたコピーを持つように、クライアントデバイスとサーバとの間でファイルを同期することができる最近の技術の観点から、特に不便であると見なすことができる。ファイルをチェックインすることは、サーバにナビゲートして、ファイルを確実にチェックインする必要があるため、さらに不便となりうる。ユーザは頻繁にファイルを確認的にチェックインすることを忘れることがあり、これは、ユーザがファイルの編集を完了した後もファイルがロックアウトされたままであるため、当該ファイル上で作業する他のユーザの能力を損なう可能性がある。実際、チェックイン及びチェックアウト機能を提供する現行のシステムは、不便であるため、一部のユーザはコンテンツ管理システムの外側で作業し、プロジェクトが完了したときにのみファイルをチェックインしている。このようなふるまいは、ファイル共有や協働して作業することの利益を排除している。従って、ファイルチェックイン及びチェックアウト機能に関連するユーザエクスペリエンスを改善する必要がある。
【発明の概要】
【０００４】
本開示の上記及びその他の利点及び特徴は、添付の図面に示す特定の実施の形態を参照することにより明らかになるであろう。これらの図面は、本開示の例示の実施形態を示しているだけであり、それゆえ、本開示の範囲を限定しているとみなされてはならないことを理解した上で、添付の図面を用いてさらに具体的かつ詳細に本明細書の原理を記述して説明する。
【図面の簡単な説明】
【０００５】
【図１】図１は、いくつかの実施形態に係るデバイス及びネットワークの例示の構成を示す。
【図２】図２は、いくつかのワークフローサービスの実施形態に係るデバイス及びネットワークの構成例を示す。
【図３】図３は、いくつかの実施形態に係るワークフローサービスを有効にするための例示の方法を示す。
【図４Ａ】、
【図４Ｂ】図４Ａ及び図４Ｂは、いくつかの実施形態に係るワークフローサービス機能と対話するための例示の管理者画面を示す。
【図５】図５はいくつかの実施形態に係るコンテンツアイテムにワークフロー制御を設定し、クライアントデバイスとコンテンツ管理システムとの間でワークフロー制御を同期させるための例示の方法を示す。
【図６】図６は、いくつかの実施形態に係るワークフロー制御が有効にされたコンテンツアイテムを示す例示のユーザインタフェースを示す。
【図７】図７は、いくつかの実施形態に係るクライアントデバイス上でワークフロー制御を実施するための例示の方法を示す。
【図８Ａ】、
【図８Ｂ】図８Ａ及び図８Ｂは、いくつかの実施形態に係るチェックアウトされたコンテンツアイテムに関する例示のプロンプトを示す。
【図９】図９は、いくつかの実施形態に係るコンテンツアイテムを自動的にチェックアウトするための例示の方法を示す。
【図１０Ａ】、
【図１０Ｂ】図１０Ａ及び図１０Ｂは、いくつかの実施形態に係るコンテンツアイテムのチェックアウトに関する例示のプロンプトを示す。
【図１１】図１１は、いくつかの実施形態に係るコンテンツアイテムを自動的にチェックインするための例示の方法を示す。
【図１２Ａ】、
【図１２Ｂ】図１２Ａ及び図１２Ｂは、いくつかの実施形態に係る、コンテンツアイテムのチェックインに関する例示のプロンプトを示す。
【図１３】図１３は、いくつかの実施形態に係るカーネルレベルのファイルイベントを検出するための例示の方法を示す。
【図１４】図１４は、いくつかの実施形態に係るコンテンツアイテムを自動的にチェックインするための例示の方法を示す。
【図１５】図１５は、いくつかの実施形態に係る本技術の種々の実施形態を実施する例示の可能なシステム形態を示す。
【発明を実施するための形態】
【０００６】
本開示のさまざまな実施の形態について、以下で詳細に説明する。具体的な実施形態について説明するが、これは説明目的でのみ行われることを理解されたい。当業者は、本開示の趣旨及び範囲から逸脱することなく他のコンポーネントや構成が用いられうることを認識するであろう。
【０００７】
開示された技術は、クライアントデバイス上に格納された共有コンテンツアイテムのためのワークフロー制御を提供し、クライアントデバイス上に格納されアクセスされる共有コンテンツアイテムのためのコンテンツアイテムチェックアウト又はコンテンツアイテムロックを強制する当技術でのニーズを解決する。本技術はさらに、他のチームメンバがファイルを修正できないように、クライアントデバイス上で編集される共有コンテンツアイテムを自動的にロックすることを含む。したがって、本技術はユーザがクライアントデバイスのファイルシステムから直接ファイルにアクセスすることを許可し、自動チェックアウト及びチェックイン機能を提供することによって、ファイルチェックイン及びチェックアウト機能などのワークフロー制御を提供する既存のシステムを改善する。
【０００８】
いくつかの実施形態では、開示された技術が、とりわけコンテンツアイテム同期機能及び協働（コラボレーション）機能を有するコンテンツ管理システムのコンテキストで展開される。例示のシステム構成１００が図１に示されており、図１は、クライアントデバイス１５０と対話するコンテンツ管理システム１１０を示している。
【０００９】
＜アカウント＞
コンテンツ管理システム１１０はコンテンツアイテムをアカウントに関連付けて記憶することができ、さらに、コンテンツアイテムを検索（取得）、修正、閲覧、及び／又は共有するなど、様々なコンテンツアイテム管理タスクを実行することができる。さらに、コンテンツ管理システム１１０は、アカウントが複数のクライアントデバイスからコンテンツアイテムにアクセスできるようにすることができる。
【００１０】
コンテンツ管理システム１１０は、複数のアカウントをサポートする。エンティティ（ユーザ、ユーザのグループ、会社など）はコンテンツ管理システムを用いてアカウントを作成することができ、アカウントの詳細は、アカウントデータベース１４０に格納することができる。アカウントデータベース１４０は、登録されたエンティティのプロファイル情報を記憶することができる。場合によっては、登録されたエンティティのプロファイル情報にユーザ名及び／又は電子メールアドレスが含まれることがある。アカウントデータベース１４０はアカウントタイプ（例えば、様々な段階での無料又は有料アカウント）、割り当てられたストレージスペース、使用されるストレージスペース、常駐する登録されたコンテンツ管理クライアントアプリケーション１５２を有するクライアントデバイス１５０、セキュリティ設定、個人構成設定などのアカウント管理情報を含むことができる。
【００１１】
アカウントデータベース１４０は、エンティティに関連付けられたアカウントのグループを格納することができる。グループはグループポリシー及び／又はアクセスコントロールリストに基づく権限を持つことができ、グループのメンバーはその権限を継承できる。例えば、マーケティンググループはコンテンツアイテムの１つのセットへのアクセスを有することができ、一方でエンジニアリンググループはコンテンツアイテムの別のセットへのアクセスを有することができる。管理者グループは、グループの修正、ユーザアカウントの修正などを行うことができる。
【００１２】
＜コンテンツアイテムストレージ＞
コンテンツ管理システム１１０の１つの特徴は、コンテンツストレージ１４２に記憶することができるコンテンツアイテムの格納である。コンテンツアイテムは、文書、コラボレーションコンテンツアイテム、テキストファイル、オーディオファイル、画像ファイル、ビデオファイル、ウェブページ、実行可能ファイル、バイナリファイルなどの任意のデジタルデータであることができる。コンテンツアイテムには、フォルダ、ｚｉｐファイル、プレイリスト、アルバムなど、さまざまな性質でコンテンツアイテムをグループ化するためのコレクションやその他の機構を含めることもできる。コレクションは、共通の属性によって関連付けられた又はグループ化されたフォルダ又は複数のコンテンツアイテムを参照することができる。ある実施形態では、コンテンツストレージ１４２が特定の機能を処理するために、他のタイプのストレージ又はデータベースと組み合わせられる。コンテンツストレージ１４２はコンテンツアイテムを記憶することができ、コンテンツアイテムに関するメタデータはメタデータデータベース１４６に記憶することができる。同様に、コンテンツストレージ１４２にコンテンツアイテムが格納される場所に関するデータを、コンテンツディレクトリ１４４に格納することができる。加えて、変更、アクセス等に関するデータをサーバファイルジャーナル１４８に格納することができる。コンテンツストレージ１４２、コンテンツディレクトリ１４４、サーバファイルジャーナル１４８、及びメタデータデータベース１４６などの様々なストレージ／データベースの各々は複数のそのようなストレージ又はデータベースから構成され、多くのデバイス及びロケーションに分散させることができる。その他の構成も可能である。例えば、コンテンツストレージ１４２、コンテンツディレクトリ１４４、サーバファイルジャーナル１４８、及び／又はメタデータデータベース１４６からのデータは、１つ以上のコンテンツストレージ又はデータベースに結合されるか、追加のコンテンツストレージ又はデータベースにさらにセグメント化される。したがって、コンテンツ管理システム１１０は、図１に示すものよりも多い又は少ないストレージ及び／又はデータベースを含むことができる。
【００１３】
いくつかの実施形態ではコンテンツストレージ１４２が少なくとも１つのコンテンツ管理サービス１１６に関連付けられており、これは格納のためのコンテンツアイテムの受信、格納のためのコンテンツアイテムの準備、コンテンツアイテムの格納場所の選択、ストレージからのコンテンツアイテムの検索などを含むが、これらに限定されない、コンテンツアイテムのストレージを管理するためのソフトウェア又は他のプロセッサで実行可能な命令を含む。いくつかの実施形態では、コンテンツ管理サービス１１６はコンテンツアイテムを、コンテンツストレージ１４２に記憶するために、より小さなチャンクに分割することができる。コンテンツアイテムを構成する各チャンクの位置は、コンテンツディレクトリ１４４に記録することができる。コンテンツディレクトリ１４４は、コンテンツストレージ１４２に格納された各コンテンツアイテムに対するコンテンツエントリを含むことができる。コンテンツエントリは、コンテンツアイテムを識別する固有のＩＤ に関連付けることができる。
【００１４】
いくつかの実施形態では、コンテンツディレクトリ１４４内のコンテンツアイテムを識別する固有ＩＤは決定論的ハッシュ関数から導出されうる。コンテンツアイテムの固有ＩＤを導出するこの方法は、決定論的ハッシュ関数によって、同じコンテンツアイテムのすべてのコピーに対して同じ識別子が出力されるものの、異なるコンテンツアイテムに対しては異なる識別子が出力されるため、そのようなコンテンツアイテムの重複が認識されることを保証できる。この方法論を使用して、コンテンツ管理サービス１１６は、コンテンツアイテムごとに固有のＩＤを出力することができる。
【００１５】
コンテンツ管理サービス１１６は、コンテンツアイテムのコンテンツパスを指定又は記録することもできる。コンテンツパスには、コンテンツアイテムの名前、及び／又はコンテンツアイテムに関連付けられたフォルダ階層を含めることができる。たとえば、コンテンツパスには、コンテンツアイテムがクライアントデバイスのローカルファイルシステムに保存されているフォルダ又はフォルダのパスを含めることができる。コンテンツ管理サービス１１６は、コンテンツパスを使用して、ツリーのようなディレクトリ構造などの適切なフォルダ階層内にコンテンツアイテムを提示することができる。コンテンツアイテムはブロック単位でコンテンツストレージ１４２に格納され、ツリー状のディレクトリ構造下に格納されない場合があるが、このようなディレクトリ構造はユーザにとって快適なナビゲーション構造である。コンテンツ管理サービス１１６は、ディレクトリ構造の「ルート」ノードが各アカウントのネームスペースであることができるコンテンツアイテムのコンテンツパスを定義又は記録することができる。ネームスペース内には、アカウントのユーザ及び／又はコンテンツ管理サービス１１６によって定義されたディレクトリ構造であってもよい。コンテンツディレクトリ１４４は、コンテンツエントリの一部として、各コンテンツアイテムのコンテンツパスを格納することができる。
【００１６】
ある実施形態では、ネームスペースがルートノード内に格納されているかのように、ディレクトリ構造内に現れる追加のネームスペースを含むことができる。これは、アカウントが共有コレクションにアクセスする際に発生する可能性がある。共有コレクションには、コンテンツ管理システム１１０内で独自のネームスペースを割り当てることができる。共有コレクションは実際には共有コレクションのルートノードであるが、ディレクトリ構造のユーザアカウントネームスペースの下位に位置し、ユーザアカウントのフォルダ内のフォルダとして表すことができる。上述したように、ディレクトリ構造は単にユーザにとって快適なナビゲーション構造であるが、コンテンツストレージ１４２内のコンテンツアイテムの記憶位置とは相関しない。
【００１７】
アカウントがコンテンツアイテムを見せるディレクトリ構造はコンテンツ管理システム１１０の記憶位置と相関しないが、クライアントデバイス１５０によって使用されるファイルシステムによっては、ディレクトリ構造はクライアントデバイス１５０上の記憶位置と相関することもありうる。
【００１８】
上述したように、コンテンツディレクトリ１４４内のコンテンツエントリは、コンテンツアイテムを構成する各チャンクの位置を含むこともできる。より具体的には、コンテンツエントリがコンテンツアイテムを構成するチャンクのコンテンツストレージ１４２内の位置を識別するコンテンツポインタを含むことができる。
【００１９】
コンテンツパス及びコンテンツポインタに加えて、コンテンツディレクトリ１４４内のコンテンツエントリは、コンテンツアイテムへのアクセスを有するユーザアカウントを識別するユーザアカウント識別子及び／又はコンテンツアイテムへのアクセスを有するグループを識別するグループ識別子を含むこともできる。いくつかの実施形態では、複数のユーザアカウント識別子を、コンテンツアイテムが複数のユーザアカウントによって共有アクセスを有することを示す単一のコンテンツエントリに関連付けることができる。ある実施形態では、単一のコンテンツエントリに関連するユーザアカウント識別子が関連するコンテンツアイテムに対して異なる許可を指定することができる。ある実施形態ではコンテンツディレクトリ１４４がユーザアカウントに関連付けられたコンテンツアイテムの階層構造を記述することができ、当該階層構造はユーザアカウントに固有である。
【００２０】
コンテンツ管理サービス１１６は、コンテンツアイテム又はコンテンツアイテムのバージョンを構成する重複コンテンツアイテム又は重複ブロックを識別することによって、必要とされるストレージスペースの量を減らすことができる。複数のコピーを格納する代わりに、コンテンツストレージ１４２は、コンテンツアイテムの単一のコピー又はコンテンツアイテムのブロックを記憶することができ、コンテンツディレクトリ１４４は、単一のコピーに複製をリンクするポインタ又は他の機構を含むことができる。
【００２１】
コンテンツ管理サービス１１６は、コンテンツアイテム、コンテンツアイテムタイプ、フォルダ、ファイルパス、及び／又はコンテンツアイテムと様々なアカウント、コレクション若しくはグループとの関係を記述するメタデータを、コンテンツアイテムの固有ＩＤと関連付けて、メタデータデータベース１４６に格納することもできる。
【００２２】
コンテンツ管理サービス１１６は、変更、アクセス等に関するデータのログをサーバファイルジャーナル１４８に格納することもできる。サーバファイルジャーナル１４８はタイムスタンプ又はバージョン番号及びその他の関連データと共に、コンテンツアイテムの固有ＩＤ及び変更又はアクセス動作の説明を含むことができる。サーバファイルジャーナル１４８はまた、変更又はコンテンツアイテムのアクセスによって影響を受けるブロックへのポインタを含むことができる。コンテンツ管理サービスは、コンテンツアイテムへの変更、コンテンツアイテムの異なるバージョン（分岐しているバージョンツリーを含む）、及びサーバファイルジャーナル１４８から取得可能な変更履歴を追跡するコンテンツアイテムバージョン制御を使用することによって、操作を取り消す能力を提供することができる。変更履歴には、元のコンテンツアイテムバージョンに適用されたときに、変更されたコンテンツアイテムバージョンを生成する一連の変更を含めることができる。
【００２３】
＜コンテンツアイテムの同期＞
コンテンツ管理システム１１０の他の特徴は、コンテンツアイテムを少なくとも１つのクライアントデバイス１５０と同期させることである。クライアントデバイスは異なる形態をとることができ、異なる能力を有することができる。例えば、クライアントデバイス１７０は、そこに常駐する複数のアプリケーションによってアクセス可能なローカルファイルシステムを有するコンピューティングデバイスである。クライアントデバイス１７２は、コンテンツアイテムが特定のアプリケーションにのみ又は特定のアプリケーションによって与えられた許可によってのみアクセス可能であり、コンテンツアイテムがアプリケーション固有のスペース又はクラウドのいずれかに格納されるコンピューティングデバイスである。クライアントデバイス１７４はウェブブラウザを介してコンテンツ管理システム１１０にアクセスし、ウェブインタフェースを介してコンテンツアイテムにアクセスする任意のクライアントデバイスである。例示のクライアントデバイス１７０、１７２、及び１７４はラップトップ、モバイルデバイス、又はウェブブラウザなどのフォームファクタで示されているが、それらの説明はこれらの例示のフォームファクタのデバイスに限定されないことを理解されたい。例えば、クライアント１７２のようなモバイルデバイスはそこに常駐する複数のアプリケーションによってアクセス可能なローカルファイルシステムを有してもよく、或いは、クライアント１７２はウェブブラウザを介してコンテンツ管理システム１１０にアクセスしてもよい。したがって、フォームファクタは、クライアント１５０の能力を考慮する際に限定的に考えられるべきではない。クライアントデバイス１５０に関して本明細書で説明される１つ又は複数の機能はデバイスの特定の能力に応じて、すべてのクライアントデバイス上で利用可能であってもよいし、利用可能でなくてもよく、ファイルアクセスモデルは、そのような能力の１つである。
【００２４】
多くの実施形態では、クライアントデバイスはコンテンツ管理システム１１０のアカウントに関連付けられるが、いくつかの実施形態ではクライアントデバイスは共有リンクを使用してコンテンツにアクセスすることができ、アカウントを必要としない。
【００２５】
上述したように、一部のクライアントデバイスは、ウェブブラウザを使用してコンテンツ管理システム１１０にアクセスすることができる。しかしながら、クライアントデバイスはまた、クライアントデバイス１５０上に格納され実行されているクライアントアプリケーション１５２を使用して、コンテンツ管理システム１１０にアクセスすることもできる。クライアントアプリケーション１５２は、コンテンツアイテムの同期サービス１５６を含むことができる。
【００２６】
コンテンツアイテムの同期サービス１５６は、コンテンツ管理サービス１１６と通信して、クライアントデバイス１５０とコンテンツ管理システム１１０との間のコンテンツアイテムへの変更を同期させることができる。
【００２７】
クライアントデバイス１５０は、コンテンツ同期サービス１５６を介してコンテンツ管理システム１１０とコンテンツを同期することができる。同期は、プラットフォームに依存しないものとすることができる。つまり、コンテンツは種々の種別、性能、オペレーティングシステム等の複数のクライアントデバイスに渡って同期させることができる。コンテンツ同期サービス１５６は、任意の変更（新規、削除、修正、コピー、又は移動されたコンテンツアイテム）を、クライアントデバイス１５０のファイルシステムの指定された位置にあるコンテンツアイテムに同期することができる。
【００２８】
コンテンツアイテムはクライアントデバイス１５０からコンテンツ管理システム１１０に同期することができ、その逆もまた可能である。クライアントデバイス１５０からコンテンツ管理システム１１０への同期が行われる実施形態では、ユーザがクライアントデバイス１５０のファイルシステムから直接コンテンツアイテムを操作することができ、一方で、ファイルシステム拡張１５３（ローカルファイルシステム又はオペレーティングシステムカーネルとも統合することができる）はクライアントデバイス１５０のファイルシステムの指定された位置にあるコンテンツアイテムに対する読み取り、書き込み、コピー、移動、削除コマンドをインターセプトすることができる。
【００２９】
ファイルシステム拡張１５３が書き込み、移動、コピー、又は削除コマンドを通知すると、コンテンツアイテムの同期サービス１５６に通知して、コンテンツ管理システムサービス１１６への変更を同期させることができる。いくつかの実施形態では、コンテンツアイテムの同期サービス１５６がコンテンツアイテムをブロックに分割し、コンテンツアイテムのハッシュ値を計算して固有の識別子を生成するなど、上述した機能を含むコンテンツ管理システムサービス１１６のいくつかの機能を実行することができる。コンテンツ同期サービス１５６はクライアントのストレージインデックス１６４内でコンテンツをインデックス化し、ストレージインデックス１６４に結果を保存することができる。インデックス化には、コンテンツアイテムごとに固有の識別子を作成することも含みうる。いくつかの実施形態では、コンテンツ同期サービス１５６がコンテンツアイテムのデータ（例えば、ファイル名及び／又は他のメタデータを除外する）をハッシュ関数へ入れることによって、この固有の識別子を作成する。上述のように、コンテンツ管理システムはコンテンツ管理システム１１０上のコンテンツに識別子を提供するために、同様のプロセスを使用することができる。コンテンツ同期サービス１５６は、ストレージインデックス１６４を使用して、クライアントストレージ内のコンテンツの少なくとも一部と、コンテンツ管理システム１１０上のユーザアカウントに関連付けられたコンテンツとの同期を容易にすることができる。例えば、コンテンツ同期サービス１５６はストレージインデックス１６４をコンテンツ管理システム１１０と比較し、クライアントストレージ上のコンテンツと、コンテンツ管理システム１１０上のユーザアカウントに関連付けられたコンテンツとの間の差異を検出することができる。その後、コンテンツ同期サービス１５６は、必要に応じてクライアントストレージ上のコンテンツをアップロード、ダウンロード、修正、及び削除することによって、差異の調整を試みることができる。コンテンツ管理サービス１１６は必要に応じて、コンテンツアイテムについて変更されたブロック又は新たなブロックを格納し、サーバファイルジャーナル１４８、メタデータデータベース１４６、コンテンツディレクトリ１４４、コンテンツストレージ１４２、アカウントデータベース１４０を更新することができる。
【００３０】
コンテンツ管理システム１１０からクライアントデバイス１５０に同期する場合、サーバファイルジャーナル１４８に記録されたコンテンツアイテムの修正、追加、削除、移動は、通知サービス１１６を使用してクライアントデバイス１５０に送信される通知をトリガとすることができる。クライアントデバイス１５０がサーバファイルジャーナル１４８への変更を通知されると、クライアントデバイスは、ストレージインデックス１６４をチェックして、最後の同期以降に変更のタイムスタンプが発生したかどうかを判断するか、或いは、特定の変更が同期されたかどうかを判断することができる。クライアントデバイス１５０がコンテンツ管理システム１１０と同期していないと判断した場合、コンテンツアイテムの同期サービス１５６は変更を含むコンテンツアイテムブロックを要求し、変更されたコンテンツアイテムのローカルコピーを更新する。ある実施形態では、通知サービスは、サーバファイルジャーナル１４８などのコンテンツ管理システム１１０の他のサービス又はデータベースに問い合わせて、通知のためのより多くのコンテキストを獲得し、通知が他の通知でバッチ処理できるかどうか、又は通知を補足することができるかどうかを判断する。
【００３１】
時には、クライアントデバイス１５０が利用可能なネットワーク接続を有していないことがある。このシナリオでは、コンテンツアイテムの同期サービス１５６がコンテンツアイテムの変更についてリンクされたコレクションを監視し、ネットワーク接続が利用可能であるときにコンテンツ管理システム１１０へ後で同期するために、それらの変更をキューに入れることができる。同様に、ユーザは、コンテンツ管理システム１１０との同期を手動で開始、停止、一時停止、又は再開することができる。
【００３２】
コンテンツアイテムの同期サービス１５６は、コンテンツ管理システム１１０上の特定のユーザアカウントに関連付けられたすべてのコンテンツを同期することができる。或いは、コンテンツアイテムの同期サービス１５６は、コンテンツ管理システム１１０上の特定のユーザアカウントに関連付けられた全コンテンツのコンテンツの一部を選択的に同期することができる。コンテンツの一部のみを選択的に同期することにより、クライアントデバイス１５０上のスペースを維持することができ、帯域幅（通信容量）を節約することができる。
【００３３】
ある実施形態では、コンテンツアイテムの同期サービス１５６が特定のユーザアカウントに関連付けられたコンテンツの一部を選択的に格納し、コンテンツの残りの部分に対するプレースホルダコンテンツアイテムをクライアントストレージに格納する。例えば、コンテンツアイテムの同期サービス１５６はコンテンツ管理システム１１０上に、それぞれの完全なコンテンツアイテムの同一のファイル名、パス、拡張子、メタデータを有するが、完全なコンテンツアイテムのデータを欠いているプレースホルダコンテンツアイテムを記憶することができる。プレースホルダコンテンツアイテムのサイズは数キロバイト以下にすることができるが、それぞれの完全なコンテンツアイテムのサイズは大幅に大きくなる可能性がある。クライアントデバイス１５０がコンテンツアイテムにアクセスしようとすると、コンテンツアイテム同期サービス１５６はコンテンツ管理システム１１０からコンテンツアイテムのデータを検索し、完全なコンテンツアイテムをアクセスしたクライアントデバイス１５０に提供することができる。このアプローチはコンテンツ管理システム１１０上のユーザのコンテンツへの完全なアクセスを依然として提供しながら、かなりのスペース及び帯域幅の節約を提供することができる。
【００３４】
＜コラボレーション機能＞
コンテンツ管理システム１１０の他の機能は、ユーザ間のコラボレーションを容易にすることである。コラボレーション機能には、コンテンツアイテムの共有、コンテンツアイテム上でのコメント付け、コンテンツアイテム上での共同作業、インスタントメッセージング、コンテンツアイテムに関するプレゼンスや表示状態の情報の提供などがある。
【００３５】
＜共有＞
コンテンツ管理システム１１０は、共有サービス１２８を介してコンテンツの共有を管理することができる。コンテンツへのリンクを提供することによってコンテンツを共有することは、コンテンツ管理システム１１０とのネットワーク通信において、任意のコンピューティングデバイスからコンテンツアイテムにアクセス可能にすることを含むことができる。しかしながら、いくつかの実施形態では、リンクをコンテンツ管理システム１１０によって強制されるアクセス制限に関連付けることができる。コンテンツを共有することはまた、コンテンツ管理システム１１０内のコンテンツを（コンテンツアイテムに関連付けられた元のユーザアカウントに加えて）少なくとも１つの追加ユーザアカウントと共有するために、共有サービス１２８を使用してコンテンツをリンクすることを含むこともでき、これにより、各ユーザアカウントはコンテンツアイテムにアクセスできる。追加のユーザアカウントはコンテンツを受け入れることによってコンテンツへのアクセスを得ることができ、当該コンテンツは、その後、ウェブインタフェースサービス１２４を介して、又はクライアントデバイス１５０上のそれらのアカウントに関連付けられたディレクトリ構造内から直接アクセス可能となる。共有は、プラットフォームに依存しない方法で実行することができる。つまり、コンテンツは種々の種別、性能、オペレーティングシステムなどの複数のクライアントデバイス150に渡って共有されてもよい。当該コンテンツはまた、ユーザアカウントの種々の種別に渡って共有されてもよい。
【００３６】
コンテンツ管理システム１１０内でコンテンツアイテムを共有するために、共有サービス１２８はコンテンツアイテムに関連付けられたアクセス制御リストデータベース１４５内のコンテンツエントリにユーザアカウント識別子を追加することができ、これにより、追加されたユーザアカウントにコンテンツアイテムへのアクセス権を付与することができる。共有サービス１２８はまた、コンテンツエントリからユーザアカウント識別子を削除して、ユーザアカウントのコンテンツアイテムへのアクセスを制限することもできる。共有サービス１２８は、コンテンツアイテム識別子、コンテンツアイテムにアクセス権を与えられたユーザアカウント識別子、及びアクセスレベルをアクセス制御リストデータベース１４５に記録することができる。
【００３７】
コンテンツ管理システム１１０の外部でコンテンツアイテムを共有するために、共有サービス１２８はユニフォームリソースロケータのようなカスタムネットワークアドレスを生成することができ、これにより、どのウェブブラウザも、認証なしにコンテンツ管理システム１１０内のコンテンツアイテム又はコレクションにアクセスすることができる。これを達成するために、共有サービス１２８は生成されたＵＲＬ中にコンテンツ識別データを含むことができ、これは、後に、要求されたコンテンツアイテムを適切に識別し、返すために使用することができる。例えば、共有サービス１２８は、アカウント識別子と、生成されたＵＲＬ内のコンテンツパス又はコンテンツアイテム識別コードとを含むことができる。ＵＲＬを選択すると、ＵＲＬに含まれるコンテンツ識別データをコンテンツ管理システム１１０に送信することができ、受信したコンテンツ識別データを用いて適切なコンテンツアイテムを特定し、当該コンテンツアイテムを返却することができる。
【００３８】
ＵＲＬを生成することに加えて、共有サービス１２８はまた、コンテンツアイテムへのＵＲＬが作成されたことをアクセス制御リストデータベース１４５に記録するように構成されてもよい。ある実施形態では、コンテンツアイテムに関連付けられたコンテンツエントリがコンテンツアイテムへのＵＲＬが作成されたかどうかを示すＵＲＬフラグを含むことができる。例えば、ＵＲＬフラグはコンテンツアイテムへのＵＲＬが作成されていないことを示すために、最初に０又はｆａｌｓｅ に設定されたブール値であってもよい。共有サービス１２８は、コンテンツアイテムへのＵＲＬを生成した後、フラグの値を１又はｔｒｕｅに変更することができる。
【００３９】
いくつかの実施形態では、共有サービス１２８が一連の許可をコンテンツアイテムのＵＲＬに関連付けることができる。例えば、ユーザがＵＲＬを介してコンテンツアイテムにアクセスしようとする場合、共有サービス１２８は、当該コンテンツアイテムに限定した一連の許可を提供することができる。制限付き許可の例としては、ユーザがコンテンツアイテムをダウンロードできない制限、コンテンツアイテムを保存できない制限、コンテンツアイテムをコピーできない制限、コンテンツアイテムを変更できない制限などを含む。いくつかの実施形態では制限された許可が特定のドメイン、すなわち、企業ネットワークドメイン内から、又は特定のドメインに関連付けられたアカウント、例えば、企業アカウント（例えば、＠ａｃｍｅ．ｃｏｍ）に関連付けられたアカウントによってのみ、コンテンツアイテムがアクセスされることを許可する制限を含む。
【００４０】
いくつかの実施形態では、共有サービス１２８はまた、生成されたＵＲＬを非活性化するように構成することもできる。例えば、各コンテンツエントリにはまた、生成されたＵＲＬからの要求に応答してコンテンツを返す必要があるかどうかを示すＵＲＬアクティブフラグを含めることもできる。例えば、共有サービス１２８はＵＲＬアクティブフラグが１又はｔｒｕｅに設定されている場合にのみ、生成されたリンクによって要求されたコンテンツアイテムを返すことができる。このように、ＵＲＬアクティブフラグの値を変更することで、ＵＲＬが生成されたコンテンツアイテムへのアクセスを簡単に制限することができる。これにより、ユーザはコンテンツアイテムを移動したり、生成されたＵＲＬを削除したりすることなく、共有コンテンツアイテムへのアクセスを制限できる。同様に、共有サービス１２８ は、ＵＲＬアクティブフラグの値を再び１又はｔｒｕｅに変更することで、ＵＲＬを再活性化することができる。したがって、ユーザは、新しいＵＲＬを生成する必要なく、コンテンツアイテムへのアクセスを簡単に復元できる。
【００４１】
いくつかの実施形態では、コンテンツ管理システム１１０がコンテンツアイテムをアップロードするためのＵＲＬを指定することができる。例えば、ユーザアカウントを持つ第１のユーザはそのようなＵＲＬを要求して、そのＵＲＬを寄与ユーザに提供することができ、寄与ユーザはそのＵＲＬを使用して第１のユーザのユーザアカウントにコンテンツアイテムをアップロードできる。
【００４２】
＜プレゼンス及び表示状態＞
いくつかの実施形態では、コンテンツ管理システムは、コンテンツアイテムが共有されているユーザがどのように対話しているか、又はどのようにコンテンツアイテムと相互作用しているかに関する情報を提供することができる。いくつかの実施形態では、コンテンツ管理システム１１０は、コンテンツアイテムを共有しているユーザが現在コンテンツアイテムを閲覧していることを報告することができる。例えば、クライアントコラボレーションサービス１６０はクライアントデバイス１５０がコンテンツアイテムにアクセスしているときに、通知サービス１１７に通知することができる。その後、通知サービス１１７は、コンテンツアイテムに関してクライアントデバイス１５０のユーザの存在（プレゼンス）について、同じコンテンツアイテムへのアクセスを有する他のユーザのすべてのクライアントデバイスに通知することができる。
【００４３】
いくつかの実施形態では、コンテンツ管理システム１１０が共有されたコンテンツアイテムとのユーザのやり取りの履歴を報告することができる。コラボレーションサービス１２６はメタデータデータベース１４６及びサーバファイルジャーナル１４８などのデータソースを問い合わせて、ユーザがコンテンツアイテムを保存したことや、ユーザがコンテンツアイテムをまだ閲覧していないことなどを判断し、このステータス情報を通知サービス１１７を使用して他のユーザに配信して、コンテンツアイテムを現在閲覧又は変更しているユーザを知ることができるようにすることができる。
【００４４】
コラボレーションサービス１２６は、コンテンツアイテムがコメント機能をもともとサポートしていなくても、コンテンツに関連するコメントを容易にすることができる。このようなコメントは、メタデータデータベース１４６に格納することができる。
【００４５】
コラボレーションサービス１２６はユーザに対して通知を発信し、送信することができる。例えば、ユーザはコメント内で別のユーザにメンション（言及）することができ、コラボレーションサービス１２６は、コメント内でユーザがメンションされたという通知をそのユーザに送信することができる。コンテンツアイテムの削除、コンテンツアイテムの共有など、その他のさまざまなコンテンツアイテムのイベントによって通知をトリガできる。
【００４６】
コラボレーションサービス１２６はユーザがインスタントメッセージ、音声呼出し、電子メールなどを送受信することができるメッセージプラットフォームを提供することができる。
【００４７】
＜コラボレーションコンテンツアイテム＞
コラボレーションサービス１２６はまた、複数のユーザが同時にコラボレーションコンテンツアイテムを作成し、コラボレーションコンテンツアイテムにコメントを付け、コラボレーションコンテンツアイテム内のタスクを管理することができるインタラクティブなコンテンツアイテムコラボレーションプラットフォームを提供することができる。コラボレーションコンテンツアイテムはユーザがコラボレーションコンテンツアイテムエディタを使用して作成及び編集できるファイルであり、コラボレーションコンテンツアイテム要素を含めることができる。コラボレーションコンテンツアイテム要素は、コラボレーションコンテンツアイテム識別子、１以上の作成者識別子、コラボレーションコンテンツアイテムテキスト、コラボレーションコンテンツアイテム属性、対話情報、コメント、及び共有ユーザなどを含むことができる。コラボレーションコンテンツアイテム要素は、コラボレーションコンテンツアイテムの検索及び取り出しを可能にするデータベースエンティティとして格納されうる。複数のユーザが、コラボレーションコンテンツアイテムに同時に又は異なる時間にアクセス、閲覧、編集、及びコラボレーションすることができる。いくつかの実施形態では、これはウェブインタフェースを通じてコンテンツアイテムにアクセスすることを２人のユーザに要求することによって管理することができ、そこで、彼らはコンテンツアイテムの同じコピー上で同時に作業することができる。
【００４８】
＜コラボレーション・コンパニオン・インタフェース＞
いくつかの実施形態では、クライアントコラボレーションサービス１６０がクライアントデバイス１５０上に提示されるコンテンツアイテムに関連する情報を表示する目的で、ネイティブアプリケーションのコンパニオンインタフェースを提供することができる。コンテンツアイテムがクライアントデバイス１５０上に格納され実行されるネイティブアプリケーションによってアクセスされ、コンテンツアイテムがクライアントデバイス１５０のファイルシステムの指定された場所にあり、コンテンツアイテムがコンテンツアプリケーション１５２によって管理される実施形態では、ネイティブアプリケーションは、上記のアドレス指定されたコラボレーションデータを表示するための任意のネイティブな方法を提供しなくてもよい。このような実施形態では、クライアントコラボレーションサービス１６０がユーザがコンテンツアイテムを開いたことを検出することができ、コラボレーションデータのようなコンテンツアイテムのための追加情報をオーバレイで提供することができる。例えば、追加情報は、コンテンツアイテムに対するコメント、コンテンツアイテムの状態、以前又は現在コンテンツアイテムを閲覧している他のユーザのアクティビティを含むことができる。このようなオーバーレイは、他のユーザがコンテンツアイテムを現在編集しているために変更が失われる可能性があることをユーザに警告することができる。
【００４９】
いくつかの実施形態では、上述したサービス又はストレージ／データベースの１つ以上がパブリック又はプライベートのアプリケーションプログラミングインタフェースを使用してアクセスすることができる。
【００５０】
特定のソフトウェアアプリケーションは、ユーザに代わってＡＰＩを介してコンテンツストレージ１４２にアクセスすることができる。例えば、クライアントデバイス１５０上で実行されるアプリケーションのようなソフトウェアパッケージは、コンテンツの読み取り、書き込み、作成、削除、共有又はその他の方法で操作するためにユーザが認証情報を提供するときに、プログラムによって直接コンテンツ管理システム１１０にＡＰＩコールを行うことができる。
【００５１】
ユーザはウェブインタフェースサービス１２４によって生成され、扱われるウェブインタフェースを介して、ユーザアカウントに格納されたコンテンツを閲覧したり、操作したりすることができる。例えば、ユーザは、ウェブブラウザ内で、コンテンツ管理システム１１０によって提供されるウェブアドレスにナビゲートすることができる。コンテンツアイテムの新しいバージョンをアップロードするなど、ウェブインタフェースを介して行われたコンテンツストレージ１４２内のコンテンツに対する変更又は更新は、ユーザのアカウントに関連付けられた他のクライアントデバイスに伝播することができる。例えば、それぞれが独自のクライアントソフトウェアを持つ複数のクライアントデバイスを１つのアカウントに関連付けることができ、アカウント内のコンテンツアイテムを複数のクライアントデバイス間で同期することができる。
【００５２】
クライアントデバイス１５０は、ユーザに代わってコンテンツ管理システム１１０に接続することができる。ユーザは、例えばクライアントデバイス１５０がデスクトップ又はラップトップコンピュータ、電話機、テレビ、インターネットオブシングスデバイスなどである場合に、クライアントデバイス１５０と直接対話することができる。代替的又は追加的に、クライアントデバイス１５０は、例えばクライアントデバイス１５０がサーバである場合、ユーザがクライアントデバイス１５０への物理的アクセスを行うことなく、ユーザの代わりに動作することができる。
【００５３】
クライアントデバイス１５０のいくつかの機能は、クライアントデバイス１５０にインストールされたアプリケーションによって有効にされる。いくつかの実施形態では、アプリケーションがコンテンツ管理システム固有のコンポーネントを含むことができる。例えば、コンテンツ管理システム固有のコンポーネントは、スタンドアロンのアプリケーション１５２、１つ以上のアプリケーションプラグイン、及び／又はブラウザ拡張であり得る。しかしながら、ユーザはまた、クライアントデバイス１５０上に存在し、コンテンツ管理システム１１０と通信するように構成されている、ウェブブラウザのようなサードパーティアプリケーションを介して、コンテンツ管理システム１１０と対話することもできる。様々な実施形態において、クライアント側アプリケーション１５２は、ユーザがコンテンツ管理システム１１０と対話するためのユーザインタフェース（ＵＩ）を提示することができる。例えば、ユーザは、ファイルシステムと統合されたファイルシステム拡張１５３を介して、又はウェブブラウザアプリケーションを用いて表示されるウェブページを介して、コンテンツ管理システム１１０と対話することができる。
【００５４】
いくつかの実施形態では、クライアントアプリケーション１５２は、コンテンツ管理システム１１０の複数のアカウントのコンテンツを管理し、同期するように構成されてもよい。そのような実施形態において、クライアントアプリケーション１５２が複数のアカウントにログインしたままであり、複数のアカウントに対して通常のサービスを提供することができる。いくつかの実施形態では、各アカウントがファイルシステム内のフォルダとして現れることができ、そのフォルダ内のすべてのコンテンツアイテムはコンテンツ管理システム１１０と同期することができる。いくつかの実施形態では、クライアントアプリケーション１５２は、複数のアカウントのうちの１つをプライマリアカウント又はデフォルトアカウントに選択するセレクタを含むことができる。
【００５５】
コンテンツ管理システム１１０には特定のコンポーネントが提示される一方で、当業者には、システム１００のアーキテクチャ構成が単に１つの可能な構成であり、より多くの又はより少ないコンポーネントを有する他の構成も可能であることが理解されるべきである。さらに、サービスは、多かれ少なかれ機能を有することができ、他のサービスにあると説明した機能を含んでもよい。また、実施形態に関して本明細書で説明される機能は、他の実施形態に関して説明される機能と組み合わせることができる。
【００５６】
システム１００には特定のコンポーネントが提示されているが、当業者には、システム１００のアーキテクチャ構成は単に１つの可能な構成であり、より多くの又はより少ないコンポーネントを有する他の構成も可能であることが理解されるべきである。
いくつかの実施形態において、システム１００は本技術を実施するのに有用である。
【００５７】
具体的には、本技術は、クライアントデバイス上に格納された共有コンテンツアイテムにワークフロー制御を提供し、クライアントデバイス上に格納されアクセスされる共有コンテンツアイテムに対してコンテンツアイテムチェックアウト又はコンテンツアイテムロックを強制することに関する。本技術はさらに、他のチームメンバがコンテンツアイテムを変更できないように、クライアントデバイス上で編集される共有コンテンツアイテムを自動的にロックすることを含む。従って、本技術は、ユーザがクライアントデバイスのファイルシステムからコンテンツアイテムへ直接アクセスすることを許可することによって、及び、自動チェックアウト、自動チェックイン機能を提供することによって、コンテンツアイテムのチェックイン及びチェックアウト機能のようなワークフロー制御を提供する既存のシステムを改善し、これにより、ユーザのワークフローから不要なステップを除去し、ストレージ及びワークフローポリシーの順守をより可能にする。
【００５８】
図２は、本技術のワークフロー制御を提供するのに有用ないくつかの追加のコンポーネントを示す、システム１００の追加図を示す。
【００５９】
具体的には、図２はコンテンツ管理システム１１０上のワークフローサービス１３０を示す。以下でより詳細に説明するように、ワークフローサービス１３０はコンテンツ管理システム１１０に複数のワークフロー機能を提供し、サーバファイルジャーナル１４８及びメタデータデータベース１４６とやり取りして、個々のコンテンツアイテムのワークフローステータスを記録する。
【００６０】
管理制御サービス１３２は管理者に、コンテンツアイテムに対するワークフロー制御を有効又は無効にする機能を提供する。以下でより詳細に説明するように、クライアントデバイス１５０は、コンテンツアイテムの同期サービス１５６を通じてこれらのワークフロー制御を利用することができる。さらに、ユーザは、アプリケーションプログラミングインタフェース（ＡＰＩ）を介してワークフローサービス１３０と対話することができるウェブブラウザ１６６及びサードパーティアプリケーション１８０を使用する対話を通じて、これらのワークフロー制御を利用することができる。
【００６１】
図３は、管理者が共有コンテンツアイテムに対してワークフローサービス１３０を有効にする例示の方法を示す。いくつかの実施形態では、管理者は、チームのアカウント及び設定、チームに関連付けられたユーザアカウント、ならびにチームによってアクセス可能なコレクション及びコンテンツアイテムを管理することを許可され得る。いくつかの実施形態において、管理者は単に、少なくとも１つのコンテンツアイテムを共有しているユーザであってもよい。
【００６２】
図３に示す方法は、共有コンテンツアイテムの管理者がコンテンツアイテムのコレクションに対してワークフローサービス１３０を有効にすると（２０２）、開始される。これは、図４Ａに示されているウィンドウ２２５のような管理者ユーザインタフェースを介して実行することができる。図４Ａは、コンテンツアイテムのコレクションのためのワークフローサービス１３０を有効にするために管理者がオプション２２７を選択した、コンテンツアイテムの共有コレクションを示す。いくつかの実施形態では、管理者は、コレクション内で開かれるか又は編集される任意のコンテンツアイテムがオプション２２９を使用してチェックアウトされなければならないことを要求することができる。
【００６３】
共有コンテンツアイテムの管理者がコンテンツアイテムのコレクションに対してワークフローサービス１３０を有効にすると（２０２）、ワークフローサービス１３０は、コンテンツアイテムのコレクションがメタデータデータベース１４６内のワークフローサービスにサブスクライブ（予約）されているとして注意することができる。コンテンツアイテムの同期サービス１５６による同期に際して、クライアントデバイス１５０はワークフローサービス１３０に現在予約されているコンテンツアイテムのコレクションに関する情報を受信し、クライアントデバイス１５０は、コンテンツアイテムのコレクションにワークフロー機能を追加することができる（２０４）。コンテンツアイテムのコレクションにワークフロー機能を追加する（２０４）一部として、クライアントデバイス１５０はまた、適切なコレクション及びコンテンツアイテムへのワークフローコンテキストメニューを有効にする（２０６）こともできる。いくつかの実施形態では、コンテキストメニューは、コレクション又はコンテンツアイテムを表すアイコン上で「右クリック」することによって利用可能となる。
【００６４】
いくつかの実施形態では、ワークフロー機能が追加されるコンテンツアイテムのコレクションは、クライアントデバイス１５０にログインしたユーザアカウントがアクセスするコンテンツアイテム又はコレクションのサブセットのみである。
【００６５】
コンテンツアイテムのコレクションに対してワークフローサービス１３０を有効化及び無効化することに加えて、管理者は、個々のコンテンツアイテムのワークフローステータスを管理することもできる。例えば、図４Ｂは、ワークフローサービス１３０に登録されたコンテンツアイテムのコレクション又はサブコレクションのための管理者インタフェース２３０を示す。コンテンツアイテム”strategy review”は、管理者インタフェース２３０の権限に対する制御を使用して管理者によって管理され得るチェックアウト２３２の状態を有する。例えば、そのような制御の１つは、選択されたコンテンツアイテムのチェックイン２３４を強制することである。
【００６６】
図５はコンテンツアイテム又はコレクションに対するユーザアカウントによるワークフロー制御の有効化を示し、さらに、ワークフロー制御がどのようにクライアントデバイス１５０に伝播されるかを示す。図５では、所定のステップが破線で示されている。これらのステップは、ユーザアカウントとコンテンツ管理システム１１０との間の特定のやり取りに依存して行われる場合も行われない場合もある。
【００６７】
図５に示す方法は、コンテンツアイテム又はコレクションのユーザアカウントによってワークフロー制御が設定されたときに開始される。ワークフロー制御は、コンテンツアイテム「ロック」（コンテンツアイテムが現在ユーザアカウントによって開かれている間にユーザアカウントがコンテンツアイテムにロックをかける。当該コンテンツアイテムは他のすべてのユーザアカウントに対して読み取り専用となる。）、コンテンツアイテム「チェックアウト」（ユーザアカウントがしばらくの間、コンテンツアイテムにロックをかける。当該コンテンツアイテムはしばらくの間、他のすべてのユーザアカウントに対して読み取り専用となる）、コンテンツアイテム「承認」（コンテンツアイテムをレビューするために指定されたユーザアカウントを必要とするコンテンツアイテムに対してワークフローが確立及び追跡される。当該コンテンツアイテムはコンテンツアイテムのマークが完了した後に指定された名前のユーザアカウント以外の全てのユーザに対して読み取り専用となる。）、コンテンツアイテムを「レビュー要」（コンテンツアイテムをレビューするために特定のユーザアカウント又はチーム内で指定された数のユーザアカウントを必要とするコンテンツアイテムに対してワークフローが確立及び追跡される。当該コンテンツアイテムは少なくとも必要な数のレビューが達成されるまではチーム全体で読み書き可能である。）を含むことができる。この説明全体で、少なくとも１人のユーザにコンテンツアイテムを読み取り専用にすることになるワークフロー制御は、説明を簡単にするために、コンテンツアイテムチェックアウト又はロックされたコンテンツアイテムとして参照し得るが、上述したように、ファイルロック、チェックアウト、承認、レビュー要などの間でいくつかの区別があり得る。
【００６８】
ユーザアカウントは、クライアントアプリケーション１５２を実行するクライアントデバイス上のコンテンツアイテムと対話することによって、ワークフロー制御（３０２）を設定することができる。後述するように、ワークフロー制御は、クライアントデバイス１５０を使用して自動的に又は手動で設定することができる。ユーザアカウントはまた、ウェブブラウザ１６６を使用してコンテンツ管理システム１１０のウェブインタフェースサービス１２４と対話する入力を提供することによって、ワークフロー制御３０４を設定することもできる。
ユーザアカウントがコンテンツアイテム又はコレクションのワークフロー制御を設定すると、ワークフロー制御はサーバファイルジャーナル１４８に通信して、ワークフロー制御を持つコンテンツアイテム又はコレクションのエントリ（３０６）を追加することができる。コンテンツ管理システム１１０は、（１つ又は複数の）クライアントデバイス１５０に同期通知を発行することができる（３０８）。コンテンツアイテム同期サービス１５６はコンテンツ管理システムサーバ１１０から、コンテンツアイテム又はコレクションのワークフロー制御を示す同期データを受信することができる（３１０）。
【００６９】
この同期化プロセスは、任意のクライアントデバイス上のコンテンツアイテム又はコレクションに対する変更、又は、コンテンツ管理システム１１０のウェブインタフェースサービス１２４を使用してコンテンツアイテムと対話することによって行われるコンテンツアイテム又はコレクションに対する変更が、コンテンツ管理システム１１０と、コンテンツアイテムへのアクセスを有するデバイス上のコンテンツ管理システム１１０にログインしているユーザアカウントを有する他のすべてのデバイスとの間で同期化され得る、上述の他の任意の同期化と同じように発生しうる。ワークフロー制御を同期する場合は、コンテンツアイテムのメタデータが同期される。いくつかの実施形態では、このメタデータは、コンテンツアイテムをロックされ、いずれの所有者によって、例えば｛ロックしたユーザＩＤ｝によってラベル付けする属性から構成される。いくつかの実施形態では、他の属性を、他のワークフロー制御のために含めることもできる（例えば、レビュー要など）。いくつかの実施形態では、属性は、制御が有効にされたときのタイムスタンプ及び継続時間など、ワークフロー制御に関する追加のメタデータを含むこともできる。しかしながら、いくつかの実施形態では、このような追加データはメタデータデータベース１４６に格納され、要求に応じてクライアントデバイス１５０によって検索される。
【００７０】
何れのユーザアカウントが同期データを受信しているかにかかわらず、どのコンテンツアイテムに対するワークフロー制御メタデータも同じであるため、各クライアントデバイス１５０は、各ユーザアカウントに対する適切なアクセス権を判定する必要がある。例えば、各クライアントデバイス１５０は、ワークフロー制御に関連するメタデータ内のユーザＩＤがそれぞれのクライアントデバイス１５０にログインしているユーザアカウントのユーザＩＤと一致するか否かを判定し（３１２）、各クライアントデバイス１５０のファイルシステム内のコンテンツアイテムへのアクセスプロパティを変更する（３１４）。コンテンツアイテムロックの例を使用すると、同期データはメタデータ{ロックしたユーザ ID}を含めることができる。クライアントデバイス１５０は、クライアントデバイス１５０にログインしたユーザアカウントがメタデータ内のユーザＩＤと一致するか否かを判定し、一致する場合にはコンテンツアイテムをクライアントデバイス１５０上のユーザによってロックされたものとしてマーク（３１６）するが、クライアントデバイス１５０にログインしたユーザアカウントはコンテンツアイテムが他のユーザアカウントによって編集されないようにロックしたユーザアカウントであるため、コンテンツアイテムへのアクセス許可を読み書きとして設定する。代替的に、クライアントデバイス１５０がクライアントデバイス１５０にログインしているユーザアカウントが同期されたメタデータで指定されたユーザアカウントと異なると判定した場合、クライアントデバイス１５０はコンテンツアイテムを別のユーザによってロックされているものとしてマーク（３１６）し、クライアントデバイス１５０のファイルシステム内のコンテンツアイテムに対して読み取り専用のアクセス許可を設定する。重要なことに、アクセス許可はクライアントデバイス１５０のオペレーティングシステム内で設定することができ、これにより、アクセス許可は、クライアントデバイス１５０上のファイルシステムによってローカルに強制（実施）される。これは重要な利点を提供する。クライアントデバイス１５０がコンテンツ管理システム１１０に接続されていない場合であっても、コンテンツアイテムを利用することができ、クライアントデバイス１５０がオフラインであっても、クライアントデバイス１５０のファイルシステムはコンテンツアイテムに対するユーザアカウントの権限を強制する。
【００７１】
図６は、ステップ３１６に関して説明されているようなコンテンツアイテムに適用されるワークフロー制御を反映するアイコン上に配置されうるバッジの例示を示す。図６において、アイコン３５２は、当該クライアントデバイスにログインしたユーザアカウント以外のユーザアカウントがコンテンツアイテムをチェックアウトしたことを反映している。したがって、アイコン３５２でマークされたコンテンツアイテムは、読み取り専用アクセスで利用可能である。アイコン３５６でマークされたコンテンツアイテムはクライアントデバイスにログインしたユーザアカウントがコンテンツアイテムをチェックアウトしたユーザアカウントと同じであることを反映しており、従って、当該コンテンツアイテムは読み書きのアクセス権限で利用可能である。
【００７２】
図６はさらに、コンテンツアイテムのワークフロー状態を反映するコンテキストメニューの更新例を示している。例えば、図６のメニュー項目３６０は、コンテンツアイテムがチェックアウトされたことを示す。メニュー項目３６０を選択することは、コンテンツアイテムの現在のワークフロー状態に関連する１つ以上のインタフェースを開くことができる。例えば、クライアントデバイス１５０は、コンテンツアイテムをチェックアウトしたユーザアカウント、コンテンツアイテムがチェックアウトされる期間、コンテンツアイテムをチェックインするための制御の提供を表示することができる。そのような情報の例示は、図８Ａ、図１０Ｂ、及び図１２Ｂに示される。
【００７３】
図７は、クライアントデバイス１５０上でコンテンツアイテムのアクセス権限を強制するための例示の方法を示す。少なくともチェックイン及びチェックアウト機能を提供する既知のコンテンツ管理システムの制限は、そのようなシステムがコンテンツアイテムのロックをサーバでのみ強制することである。したがって、これらのシステムではコンテンツアイテムのロックがユーザがコンテンツアイテムへのアクセス又は保存を試みた場合にのみ強制され、この場合、ユーザは全てのそのようなイベントについてサーバにアクセスする必要がある。しかしながら、クライアントデバイス１５０のファイルシステムから直接クライアントデバイス１５０に格納されたコンテンツアイテムにアクセスできるようにすることはユーザにとって好ましいことであるため、したがって、本技術は、クライアントデバイス１５０上のコンテンツ管理システム１１０のワークフロー制御を強制する必要がある。上述したように、クライアントデバイス１５０上のコンテンツ管理システム１１０のワークフロー制御を強制するための１つの仕組みは、クライアントデバイス１５０のオペレーティングシステム内でコンテンツアイテムのアクセス権限を直接変更することである。この点に関して、ユーザアカウントがクライアントデバイス１５０上で読み取り専用であるコンテンツアイテムにアクセスしようと試みるとき、クライアントデバイス１５０のオペレーティングシステムは、読み取り専用であるクライアントデバイス１５０上に格納された任意のコンテンツアイテムの場合と同様に動作することができる。
【００７４】
しかし、図７に示すように、さらに、クライアントアプリケーション１５２はユーザアカウントがコンテンツ管理システム１１０との同期のために、クライアントデバイス１５０上でロックされたコンテンツアイテムにアクセスしようとしたこと（４０２）を通知されることが望ましい。クライアントデバイス１５０及びクライアントアプリケーション１５２の構成に依存して、クライアントアプリケーション１５２がユーザアカウントがロックされたコンテンツアイテムにアクセスしようとしたことを知るための少なくとも３つのオプションが存在する。第１のオプションはクライアントアプリケーション１５２がオペレーティングシステム・カーネルレベルのファイルイベントを検出又はインターセプトすることができ、そのようなイベントをクライアントアプリケーション１５２に通知することができるファイルシステム拡張１５３を含む場合に行うことができる。ファイルシステム拡張子１５３で構成されたクライアントデバイス１５０において、試みられたコンテンツアイテムを開く（オープンする）カーネルレベルイベントが検出されうる（４０４）。しかしながら、すべてのシステムがファイルシステム拡張１５３のソフトウェアを許容するわけではなく、従って、ファイルシステム拡張１５３が許容されないか、又は実用的でないこのようなシステムにおいて、図７は、クライアントアプリケーション１５２がコンテンツアイテムのオープン要求を知るための２つの追加の方法を示す。２つ目のオプションは、ユーザインタフェースウォッチャを利用することである。このようなツールは、クライアントデバイス１５０のユーザによって許可され得るオペレーティングシステムのアクセシビリティオプションに対する調整を必要としうる。ＵＩウォッチャツールはクライアントデバイス１５０上で開いているウィンドウ又はアプリケーションや、アプリケーション内で開いているこれらのコンテンツアイテムのコンテンツアイテム名及びパスを検出することができる。このようなＵＩウォッチャアプリケーションはクライアントアプリケーション１５２の管理下にあるコンテンツアイテムがオープンされたことを検出し、報告する（４０６）ように構成することができる。第三のオプションはクライアントアプリケーション１５２の管理下にあるコンテンツアイテムがオープンされていることを報告するために、一般的に使用されるアプリケーションについてのプラグインを利用することである。例えば、MICROSOFT CORP(Microsoft Office)及びAPPLE INC(Apple iWork)によって提供されるプロダクティビティ・スイートのアプリケーション、ならびに他の一般的に使用されるアプリケーションは、コンテンツ管理システム１１０によって提供されるプラグインとともに構成されうる。これらのプラグインは、クライアントアプリケーション１５２の管理下にあるコンテンツアイテムがオープンされているときはいつでもレポート（４０８）することができる。ＵＩウォッチャもプラグインも、クライアントアプリケーション１５２がコンテンツアイテムがオープンされた後にのみコンテンツアイテムのオープン要求について知ることができるという制限を有しているが、これは編集されるべきではないコンテンツアイテムが編集されるリスクを生じさせない。なぜならば、クライアントデバイス１５０のデフォルトのファイルシステムは依然としてコンテンツアイテムの読み取り専用のアクセス権限を強制するからである。
【００７５】
ユーザアカウントがロックされたコンテンツアイテムをクライアントデバイス１５０上でオープンすることを要求したことを知ると、クライアントアプリケーション１５２はコンテンツアイテムの状態に関する追加情報と共に、読み取り専用のプロンプト４２０を表示（４１０）することができる。プロンプト４２０の一例を図８Ａに示す。クライアントアプリケーション１５２はメタデータデータベース１４６と通信して、ロックされたコンテンツアイテムのワークフロー状態に関する追加情報を取得し、特定のユーザ（アリス）によってコンテンツアイテムがチェックアウトされたこと、チェックアウトの期間があるかどうか（残り３時間ある）、及びコンテンツアイテムをチェックアウトしたユーザアカウントによって提供されたその他のメッセージを含む情報４２２をプロンプト４２０に追加することができる。プロンプト４２０はまた、ユーザアカウントが編集可能なコンテンツアイテムのコピーを作成し、ウェブビューでコンテンツアイテムを閲覧し、コンテンツアイテムをチェックアウトしたユーザアカウントにメッセージを通知し、コンテンツアイテムがチェックインされたときに通知を受信し（図８Ｂを参照）、コンテンツアイテムについてコメントし、コンテンツアイテムに適用されたリビジョン及びワークフロー制御の履歴を閲覧することを可能にする、選択可能なオプションを提供することもできる。図８Ｂは、コンテンツアイテムがチェックインされたという通知をユーザアカウントが受信することを望む場合に表示されうるインタフェース４３０を示す。インタフェース４３０は、通知を適用したい期間を設定するオプションを含む。
【００７６】
クライアントアプリケーション１５２がコンテンツアイテムをチェックアウトしていないユーザアカウントのために、クライアントデバイス１５２のローカルファイルシステム内のコンテンツアイテムに対するアクセスプロパティを変更することができる上記のセーフガードに加えて、本技術は、サーバのセーフガードも提供する。クライアントデバイス１５０のユーザはコンテンツアイテムのアクセスプロパティを読み取り専用から読み／書きに手動で変更することが可能であるため、ユーザはクライアントアプリケーション１５２によって設定されたファイルシステムのロックを取り消すことが可能である。このような実施形態では、ユーザがコンテンツアイテムを編集し、変更をローカルファイルシステムに保存することができる。上述したように、クライアントデバイス上でコンテンツアイテムが修正されると、クライアントアプリケーション１５２は、コンテンツアイテムのローカルコピーに対して行われた変更を、コンテンツ管理システム１１０においてコンテンツアイテムのバージョンと同期させる。
【００７７】
いくつかの実施形態ではクライアントアプリケーション１５２が変化を有するコンテンツアイテムがロックされたファイルであることを認識することができ、或いはコンテンツ管理システム１１０はコンテンツアイテムが異なるユーザアカウントによってチェックアウトされていることを判定することができる。ロックされたコンテンツアイテムが同期されようとしていると判定した場合、クライアントアプリケーション１５２はコンテンツアイテムの同期を拒否するか、又はコンテンツ管理システム１１０はコンテンツアイテムの新しいバージョンを受け入れない。さらに、コンテンツ管理システム１１０は変更を含む新たなコンテンツアイテムを作成し、その新たなコンテンツアイテムをコンテンツ管理システム１１０に保存し、その新たなコンテンツアイテムをクライアントデバイス１５０に同期することができる。さらに、コンテンツ管理システム１１０はロックされたコンテンツアイテムをクライアントデバイス１５０に同期し手戻し、コンテンツアイテムをクライアントデバイス１５０のローカルファイルシステムで読み取り専用として設定することができる。
【００７８】
このようにして、コンテンツアイテムの読み取り専用又はロック状態が保持される。すべてのユーザは同じバージョンのコンテンツアイテムとなり、読み出し専用のプロパティをバイパスしたユーザによって試行されたすべての変更も保持されるが、当該コンテンツアイテムのコピーに保存される。
【００７９】
図９は、ユーザアカウントによるコンテンツアイテムのチェックアウトの例示の方法を示す。図９では、いくつかのオプションのステップが破線で示されている。ある実施形態では、本技術がクライアントデバイス１５０のネイティブファイルシステムからコンテンツアイテムをオープンする（５０２）ことによって、ユーザアカウントがコンテンツアイテムを自動的にチェックアウトすることを許容にする。すでにチェックアウトされているコンテンツアイテムをオープンすることに関する図７と同様に、図９では、クライアントアプリケーション１５２がコンテンツアイテムがいくつかの異なる方法によってオープンされた（又はオープンするように要求された）ことを知ることができる。第１のオプションでは、クライアントアプリケーション１５２はファイルシステム拡張１５３から、ユーザアカウントがコンテンツアイテムのオープンを要求したことを知ることができる。ファイルシステム拡張１５３は、コンテンツアイテムをオープンすることを要求するオペレーティングシステムカーネルレベルイベントを検出（５０６）することができる。いくつかの実施形態では、ファイルシステム拡張１５３がユーザアカウントがコンテンツアイテムへの変更を保存しようとしていることを検出することができる（５１２）。コンテンツアイテムのオープンイベント（５０６）又はコンテンツアイテムの保存イベント（５１２）のいずれかを検出した後、クライアントアプリケーション１５２は、ワークフローサービス１３０にコンテンツアイテムのロック（５１４）を設定するように通知することができる。図７のように、クライアントアプリケーション１５２は、ＵＩウォッチャサービス（５０８）又はプラグイン（５１０）を使用して、コンテンツアイテムがオープンされたことを知ることもできる。プラグインオプションを使用すると場合、当該プラグインはコンテンツアイテムの編集（５１２）を検出でき、これは、オプションで、コンテンツアイテムのロックを設定するようにワークフローサービス１３０に通知（５１４）するトリガとすることができる。
【００８０】
上述のコンテンツアイテムの自動ロックに加えて、本技術はまた、コンテンツアイテムの手動ロック（５０４）も可能にする。このような実施形態では、ユーザアカウントがクライアントデバイス１５０上で又はコンテンツ管理システム１１０との対話を介して、コンテンツアイテムと対話して、コンテンツアイテムをチェックアウトするためのメニューオプションを選択することができる。例えば、図１０Ａはコンテンツアイテム「strategy review.pdf」をチェックアウトするオプション５３０を有するコンテキストメニューの例を示す。図１０Ａは例示のクライアントデバイス１５０上のユーザインタフェースを示すが、ウェブインタフェースサービス１２４と通信するウェブブラウザ１６６を使用してコンテンツ管理システム１１０と対話するときに、同様のメニューを提供することができる。
【００８１】
ユーザアカウントがコンテンツアイテムを手動でチェックアウト（５０４）した後、クライアントデバイス１５０又はウェブインタフェースサービス１２４は、コンテンツアイテムのロックを設定するようにワークフローサービス１３０に通知（５１４）することができる。
【００８２】
いくつかの実施形態では、クライアントアプリケーション１５２がワークフローサービス１３０に登録されたコンテンツアイテムがオープンされたと判定すると、図１０Ｂに示すように、クライアントアプリケーション１５２はコンテンツアイテムがチェックアウトを必要とし、一定期間コンテンツアイテムをチェックアウトするためのオプションをユーザアカウントに提供することができ、共有コンテンツアイテムへのアクセス権を有する他のユーザアカウントにメッセージを残すオプションを提供することができること、をユーザアカウントに知らせるプロンプト５３２を提供することができる。プロンプト５３２を通して提供される任意の追加情報は、ワークフローサービス１３０へ送信することもできる。
【００８３】
ワークフローサービス１３０はコンテンツアイテムがロックされていることと、ロックを適用したユーザアカウントをサーバファイルジャーナル１４８に記録することができ、また、この情報を、チェックアウト期間又はコンテンツアイテムのチェックアウトに関連付けられたコメントなどの追加情報と共にメタデータデータベース１４６に記録することもできる。その後、コンテンツ管理システム１１０は、コンテンツアイテム同期サービス１５０と連携して、コンテンツアイテムに対するワークフロー変更に関連するメタデータをクライアントデバイス１５０に同期（５１８）することができる。
【００８４】
図１１は、コンテンツアイテムをチェックインする例の方法を示す。チェックイン及びチェックアウト機能を提供する既知のコンテンツ管理システムの主な欠点はコンテンツアイテムがクライアントデバイスにローカルに保存されるときに、そのようなシステムが自動チェックイン機能を提供しないことである。場合によっては、既知のコンテンツ管理システムの中にはコンテンツアイテムがクローズされてコンテンツ管理システムサーバに直接保存されたときに、コンテンツアイテムを自動的にチェックインしないものもある。既知のコンテンツ管理システムのこの制限はしばしばユーザがコンテンツアイテムの作業を終えたが、コンテンツアイテムが他のすべてのチームメンバにロックされたままであるという望ましくない結果をもたらす。
【００８５】
本技術は、いくつかのオプションを通じてこれらの欠点を回避することができる。まず、いくつかの実施形態において、クライアントアプリケーション１５２はコンテンツアイテムがクローズされたことを判定することができ、コンテンツアイテム上のロックを解除するようにワークフローサービス１３０に自動的に指示することができる。いくつかの実施形態では、コンテンツアイテムのロックが自動的に満了することができるように、定義された期間にわたってコンテンツアイテムをチェックアウトすることができる。
【００８６】
図７及び図９と同様に、図１１は、コンテンツアイテムがクローズされたことを判定するための代替の方法を利用することができることを示す。この方法は、ユーザアカウントがクライアントデバイス１５０上のコンテンツアイテムをクローズする（６０２）際に開始される。クライアントアプリケーション１５２は、カーネルレベルイベント（６０６）の検出を通じて、ＵＩウォッチャツール（６０８）からのレポートの受信を通じて、又はコンテンツアイテムの編集に使用されていたプラグインからアプリケーション（６１０）へのレポートの受信によって、コンテンツアイテムがクローズされたことを知ることができる。これらのオプションのそれぞれは、上述のように機能する。
【００８７】
クライアントアプリケーション１５２は、コンテンツアイテムがクローズされたことを知ると、コンテンツアイテムがチェックインされるべきであることを自動的に決定することができる（６１２）。いくつかの実施形態では、クライアントアプリケーションはコンテンツアイテムを自動的にチェックインすることがいつ適切であるかを決定するためのルールの集合を含むことができる。例えば、チェックアウトのためのタイマがコンテンツアイテムがクローズされた時点で期限切れになっていない場合、クライアントアプリケーション１５２は、チェックアウト期間が期限切れになっていないので、何もしないことを決定することができる。或いは、チェックアウト期間が終了した場合、又はチェックアウト期間が設定されていないがコンテンツアイテムがクローズされた場合、クライアントアプリケーション１５２はコンテンツアイテムをチェックインすべきであると判定することができる。いくつかの実施形態では、コンテンツアイテムがチェックインされることが適切であると判定した後に、クライアントアプリケーション１５２はコンテンツアイテムのクローズが意図しないものではなかったことを保証するために、所定の期間待機することができる。
【００８８】
いくつかの実施形態では、クライアントアプリケーション１５２は、ユーザが宣言したコンテンツアイテムチェックインのデータセットについて学習した機械学習機能を有することができ、クライアントアプリケーション１５２は機械学習機能を適用して、コンテンツアイテムが自動的にチェックされるべきかどうかを判定することができる。
【００８９】
クライアントアプリケーション１５２がコンテンツアイテムをチェックインする準備ができていると自動的に判定すると、クライアントアプリケーション１５２は、コンテンツアイテムのチェックインをワークフローサービス１３０に通知する（６１４）ことができる。次に、ワークフローサービス１３０は、当該チェックインをサーバファイルジャーナル１４８及びメタデータデータベース１４６に記録（６１６）することができる。
【００９０】
いくつかの実施形態では、クライアントアプリケーション１５２がコンテンツアイテムがチェックインされるべきであると判定したとき、クライアントアプリケーション１５２は図１２Ａに示されるように、コンテンツアイテムがチェックインされるべきであることを確認するためのプロンプト６３０を提示することができる。例えば、プロンプト６３０は、コンテンツアイテムをチェックインし直す必要があるかどうかをユーザアカウントに問い合わせ、コンテンツアイテムをチェックインし直すか、又はコンテンツアイテムをチェックアウトしたままにするための選択可能なオプションを提供することができる。
【００９１】
クライアントアプリケーション１５２がコンテンツアイテムがチェックインされるべきであることを自動的に判定することに加えて、ユーザアカウントはまたメニューとの対話を通じてコンテンツアイテムを手動でチェックインすることもできる。図１２Ｂは、チェックインオプション６３２を有するコンテキストメニューを示す。図１２Ｂはクライアントデバイス１５０上に提示されるメニューを示すが、同様のメニューはウェブインタフェースサービス１２４を通じてウェブブラウザ１６６上に提示することができる。クライアントデバイス１５０又はウェブインタフェースサービス１２４が手動チェックインオプションを受信すると（６０４）、それぞれのデバイスは、ワークフローサービス１３０に対して、コンテンツアイテムのチェックインを通知することができる（６１４）。次に、ワークフローサービス１３０は、当該チェックインを、サーバファイルジャーナル１４８及びメタデータデータベース１４６に記録（６１６）することができる。
【００９２】
本技術はクライアントアプリケーション１５２がインストールされているクライアントデバイス１５０を通じて、又はウェブインタフェースサービス１２４を介してコンテンツアイテムと対話するユーザアカウントを通じて、コンテンツアイテムと対話するユーザアカウントに関して主に議論してきたが、本技術はまたサードパーティのアプリケーション１８０によっても利用することができる。このようなアプリケーションは、アプリケーション・プログラミング・インタフェース（ＡＰＩ）を介してワークフローサービス１３０と対話することによって、ワークフローサービス１３０を使用してコンテンツアイテムをチェックイン及びチェックアウトすることができる。たとえば、プロジェクトによっては、特定のプロジェクトを管理するために専用のアプリケーションを使用する場合がある。プロジェクトには、複数のコンテンツアイテムと、これらのコンテンツアイテムについて作業するチームを含めることができる。この例では、専用のアプリケーションがＡＰＩを介してワークフローサービス１３０と通信し、特定のプロジェクトに関与する個々のコンテンツアイテムをチェックアウト及びチェックインすることができる。
【００９３】
図５、図７、図９、及び図１１に示すように、いくつかの実施形態では、本技術がコンテンツアイテムを自動的にチェックアウト又はチェックインするために、又はデバイス１５０のユーザアカウントにプロンプトを提供するために、ファイルシステム拡張１５３を使用して、クライアントアプリケーション１５２に、その管理下にあるコンテンツアイテムで行われるイベントを通知することができる。図１３及び図１４は、ファイルシステム拡張子１５３を使用する、可能性のある操作に関する追加の詳細な例示の方法を示す。
【００９４】
図１３は、様々な実施形態に係る、コンテンツアイテムのカーネルレベルのファイルイベントを検出するための例示の方法７００を示す。例示の方法７００を実行するシステム（例えば、クライアントデバイス１５０）はコンテンツアイテムのカーネルレベルのファイルイベントを開始し、検出することができる（７０２）。コンテンツ管理システムのクライアントアプリケーションは、クライアントデバイス１５０上のオペレーティングシステムが少なくともいくつかの例示の方法７００を実行するためのファイルシステム拡張１５３を有することができる。
【００９５】
本明細書では「カーネル」とはハードウェアとインタフェースするタスクを管理するオペレーティングシステムの中心的な部分である。「「ハードウェア」が物理的なハードウェア、シミュレートされたハードウェア（例えば、仮想マシン内、ネットワークリソース内、ドライブのパーティション、バッファ、ＲＡＭなど）、又はハードウェアコンポーネントの同様の機能を有する任意のシステムを意味しうることを理解されたい。同様に、「カーネルレベルのファイルイベント」はコンテンツアイテム又はコレクション、又はハードウェア（又は同様の）レベルのリソースを扱う任意のイベントでありうる。例えば、コンテンツアイテムをロードする（例えば、コンテンツアイテムを開く、又はアクセスする）、コンテンツアイテムを保存する、コンテンツアイテム又はコレクションを修正する、コンテンツアイテム又はコレクションのプロパティにアクセスする、コンテンツアイテム又はコレクションのプロパティを修正する、コンテンツアイテム又はコレクションを移動する、コンテンツアイテム又はコレクションを複製する、コンテンツアイテム又はコレクションをデフラグするなどである。カーネルレベルのファイルイベントはそれが達成されない（例えば、もはや存在しないコンテンツアイテム又はコレクションにアクセスしようと試みる、十分な許可なしにコンテンツアイテムを開こうと試みるなど）場合であっても、前述のいずれか１つを行う試みとすることができることを理解されたい。カーネルレベルファイルイベントは、クライアントデバイス１５０のオペレーティングシステムのカーネルにインストールされたクライアントデバイス１５０のファイルシステム拡張１５３を使用して検出することができる。
【００９６】
いくつかの実施形態ではカーネルレベルのファイルイベントがステップ７０２を直接トリガすることができ、或いはシステムが（例えば、ログを参照することによって）カーネルレベルのファイルイベントを監視し、そのようなイベントがログ内で検出されたときにステップ７０２を開始することができる。いくつかの実施形態ではステップ７０２がカーネルレベルのファイルイベントのためのデフォルトのオペレーティングシステム動作を一時停止さもなければ中断し（例えば、プログラムがオペレーティングシステムにコンテンツアイテムをオープンするように指示した場合、ステップ７０２は一時停止又は少なくとも一時的にコンテンツアイテムのオープンを防止する）、代替的に、カーネルレベルのファイルイベントについてのデフォルト動作は例示の方法７００と並行して実行することができる。カーネルレベルのファイルイベントは、ローカルファイルシステム（例えば、ファイルブラウザ）へのグラフィカルユーザインタフェースによってトリガすることができる。いくつかの実施形態では、カーネルレベルのファイルイベントは、ローカルファイルシステムへのインタフェース（例えば、アプリケーションプログラミングインタフェース）によってトリガされる。
【００９７】
システムは継続して、コンテンツアイテムに対するファイルイベント命令を検索（取得）することができる（ステップ７０４）。ファイルイベント命令には、コンテンツアイテムに関連付けられた命令を含む、任意のタイプの命令であってもよい。例えば、当該命令はグラフィカルユーザインタフェース・プロンプトの表示、カーネルレベルのファイルイベントの遅延、コンテンツアイテムに関するメッセージの送信（例えば、コンテンツ管理システム１１０、別のクライアントデバイス１５０、クライアントデバイス１５０上のサービス、コンテンツアイテムに関連付けられたユーザアカウントなどへ）、コンテンツアイテムの復号／暗号化、コンテンツアイテムに関する警告の表示、コンテンツアイテムの修正、コンテンツアイテムのスキャン、コンテンツアイテムの複製、コンテンツアイテムに関するコラボレーション情報の検索、コンテンツアイテムの完全なバージョンの検索（例えば、ファイルイベントがコンテンツアイテム・スタブに対応する場合）などを含むことができる。
【００９８】
ファイルイベント命令は、コンテンツ管理システム１１０及び／又はクライアントデバイス１５０から検索することができる。例えば、ファイルイベント命令は、コンテンツ管理システム１１０上に格納され、クライアントデバイス１５０によって検索されうる。ファイルイベント命令は、コンテンツアイテムに関連付けられた、又はコンテンツアイテム内にあるメタデータから検索できる。いくつかの実施形態では、メタデータはファイルイベント命令の位置を識別するアドレス又はポインタを含む。いくつかの実施形態では、一般的な命令（例えば、コンテンツアイテムをオープンする前にコラボレーション画面を開くための）は複数のコンテンツアイテムに適用することができ、一般的な命令の実施はコンテンツアイテムの特性（例えば、コンテンツアイテムタイプ、タグ、権限、メタデータなど）に基づいてコンテンツアイテムに対して特有であってもよい。これは、例えば、コンテンツアイテム識別子を使用して、コンテンツアイテムに対して特有であるように一般ファイルイベント命令を適合させることによって達成することができる。
【００９９】
その後、システムは、ファイルイベント命令を実行することができる（ステップ７０６）。本明細書では、様々な実施形態が例えば、ステップ７０６のためのサブ方法として開示される。いくつかの実施形態では、クライアントデバイス１５０がステップ７０２、７０４、及び／又は７０６のうちのいずれか１つのレポートをコンテンツ管理システム１１０に送信することができる。
【０１００】
ステップ７０６の例示の命令は、コンテンツ管理システム１１０と協働してコンテンツアイテムを処理又は提示するための命令を含むことができる。例えば、コンテンツ管理システム１１０はクライアントデバイス１５０にアクセス命令（例えば、コンテンツアイテムを読み取り専用、フルアクセス、又は限定アクセスモードでオープンするための）を送信することができ、コンテンツアイテムをオープンするアプリケーションは、アクセス命令に従ってコンテンツアイテムをオープンすることができる。
【０１０１】
図１４は、様々な実施形態による例示の方法７５０を示す。例示の方法７５０は、コンテンツアイテムのアクセス状態に基づいてコンテンツアイテムのプレゼンテーションを適応させるためのサブメソッド又はステップ７０６の代替処理とすることができる。例えば、別のクライアントデバイス１５０のユーザがコンテンツアイテムに現在アクセスしている場合、コンテンツアイテムにアクセスしようとしているユーザ（すなわち、そのトリガされた例示の方法７５０）に関してコンテンツアイテムが「ロック」され、そのユーザがコンテンツアイテムを修正できないようにしてもよい。
【０１０２】
クライアントデバイス１５０は処理を開始し、コンテンツ管理システム１１０からコンテンツアイテムのアクセス状態を要求することができる（ステップ７５２）。アクセス状態は、コンテンツアイテムがユーザによって現在開かれている、ユーザによって修正されている、又はユーザによって予約されているという表示を含むことができる。アクセス状態には、アクセス状態に起因する一人のユーザ又は複数のユーザの表示を含めることができる。たとえば、ユーザＸが現在コンテンツアイテムを閲覧しているものとする。
【０１０３】
次いで、コンテンツ管理システム１１０は、別のユーザが別のデバイス上のコンテンツアイテムに現在アクセスしているかどうかを判定することによって、コンテンツアイテムのアクセス状態を判定することができる（ステップ７５４）。ステップ７５４における「別のデバイス」は、別のクライアントデバイス１５０であってもよい。いくつかの実施形態では、ステップ７５４はコンテンツ管理システム１１０上のアクセスログを読むことを含む。ステップ７５４は、コンテンツアイテムにアクセスしている可能性がある任意のクライアントデバイス１５０に問い合わせることを含むことができる。次いで、コンテンツ管理システム１１０は、コンテンツアイテムのアクセス状態をクライアントデバイスに送信することができる（ステップ７５５）。
【０１０４】
アクセス状態（ステップ７５６）が「フルアクセス」又は同様のものである場合、クライアントデバイス１５０はコンテンツアイテムをフルアクセスモードでオープンすることができる（ステップ７６０）。例えば、コンテンツアイテムに読み取り及び書き込み許可を割り当てることができる。アクセス状態（ステップ７５６）が「読み取り専用」又は同様のものである場合、クライアントデバイス１５０はコンテンツアイテムを読み取り専用モードで開くことができる（ステップ７５８）。例えば、コンテンツアイテムは当該コンテンツアイテムについて保存する能力なしでオープンすることができる。他のアクセス状態が考えられることも理解されるべきである。例えば、「チェックアウト」のアクセス状態は、特定の時間内にコンテンツアイテムを戻すことをユーザに要求しうる。
【０１０５】
いくつかの実施形態では、コンテンツ管理システム１１０が例示の方法７５０を使用して、コンテンツアイテムに対するコンテンツアイテムのアクセス制限を決定することができる。例えば、ステップ７５４及び７５５は、コンテンツアイテムに対するコンテンツアイテムのアクセス制限を決定することを含むことができる。これには、コンテンツアイテム、要求ユーザ（例えば、クライアントデバイス１５０に関連付けられたユーザアカウント）、クライアントデバイスの詳細（例えば、クライアントデバイス１５０の識別子）、クライアントデバイス１５０のデバイスタイプ（例えば、電話機、タブレット、又はラップトップ）、及び／又はクライアントデバイス１５０の位置（例えば、地理的位置、ＩＰアドレス、又はサブネット）を、コンテンツアイテムのアクセス制御リストと比較することが含まれる。コンテンツアイテムのアクセス制限は、コンテンツアイテムに現在関連付けられている他のユーザの現在のアクティビティ状態を参照することによって（例えば、コンテンツアイテムがオープンされている場合、コンテンツアイテムに保存されていない変更がある場合など）、追加的又は代替的に決定されうる。次いで、コンテンツ管理システム１１０は、要求に対するコンテンツアイテムのアクセス制限を決定することができる。クライアントデバイス１５０は、コンテンツアイテムアクセス制限を強制することができる。コンテンツアイテムのアクセス制限には、コンテンツアイテムが読み取り専用、フルアクセス、時間制限付き、又はその他の制限付きのアクセス許可を持つ必要があることを示すことを含みうる。いくつかの実施形態では、コンテンツアイテムのアクセス制限は、コンテンツアイテムに対して保存する能力又はコンテンツ管理システム１１０と同期する能力を制限する（例えば、別のユーザアカウントがコンテンツアイテムに現在アクセスしている場合）。いくつかの実施形態では、コンテンツアイテムのアクセス制限がコンテンツアイテムの一部（例えば、文、段落、ページ、行、列、セル、セクションなど）に適用される。いくつかの実施形態では、クライアントデバイス１５０がコンテンツアイテムのアクセス制限を強制せず、単に、コンテンツアイテムのアクセス制限を示す通知を提示するものであってもよい。
【０１０６】
いくつかの実施形態において、「ローカル」バージョンはスタブコンテンツアイテムであり、「代替」バージョンは完全なコンテンツアイテムである。「スタブ」という用語がファイルブラウザ内の完全なコンテンツアイテムであるように見えるが、実際のコンテンツアイテムは別の場所にあるプレースホルダを指すことができる。例えば、スタブがコンテンツアイテムのコンテンツ（すなわち、内容）の多くを欠いていても、スタブは同じ名前、拡張子、メタデータなどを有するコンテンツアイテムであってもよい。スタブはコンテンツアイテムの完全なバージョンであるように、クライアントデバイス１５０のファイルインタフェース内に現れることができる。クライアントデバイス１５０はスタブコンテンツアイテムに対するカーネルレベルイベントを検出し、コンテンツ管理システム１１０から完全なコンテンツアイテムを要求することができる。次いで、コンテンツ管理システム１１０は、提示のために完全なコンテンツアイテムをクライアントデバイス１５０に提供することができる。たとえば、完全なバージョンは、ファイルシステムのスタブと置き換えられうる。代替的に又は追加的に、完全なバージョンは、一時的な場所に保存され、カーネルレベルのファイルイベントは、完全なバージョンを指すように修正されうる（例えば、コンテンツアイテムのパスを変更することによって）。コンテンツアイテムを提示する（オープン又はロードすることを含む）ためのアプリケーションは、スタブが最初に識別されたにもかかわらず、フルバージョンをオープンすることができる。コンテンツアイテムの提示が終了すると（例えば、関連するアプリケーションがコンテンツアイテムをクローズするか、又はコンテンツアイテムを保存すると）、クライアントデバイス１５０はスタブコンテンツアイテムを更新し、必要に応じて、完全なコンテンツアイテムの更新されたバージョンをコンテンツ管理システム１１０に送信することができる。
【０１０７】
図１５は、コンピューティングシステム８００の一例を示す。コンピューティングシステム８００は例えば、クライアントデバイス１５０又はコンテンツ管理システム１１０のコンピューティングシステムであってもよい。これらのデバイスはコンピューティングシステム８００に示されているものなど、いくつかのコンポーネントを共通に有するが、ペイメント（payment）クライアントデバイス１５０又はコンテンツ管理システム１１０のそれぞれは、それらの特定の目的のために構成された専用デバイスであることを理解されたい。
【０１０８】
コンピューティングシステム８００では、システムのコンポーネントが接続８０５を使用して互いに通信する。接続８０５は、バスを介した物理的接続、又はチップセットアーキテクチャのようなプロセッサ８１０への直接接続であってもよい。接続８０５は、仮想接続、ネットワーク接続、又は論理接続であってもよい。
【０１０９】
いくつかの実施形態では、コンピューティングシステム８００が本開示で説明した機能がデータセンタ、複数のデータセンタ、ピアネットワークなどの中で分散可能な分散システムである。いくつかの実施形態では記載されたシステムコンポーネントのうちの１つ又は複数のそれぞれが、当該コンポーネントについて記載した機能の一部又はすべてを実行する、多くのそのようなコンポーネントを表す。いくつかの実施形態では、当該コンポーネントは物理デバイス又は仮想デバイスであってもよい。
【０１１０】
例示のシステム８００は、少なくとも１つの処理ユニット（ＣＰＵ又はプロセッサ）８１０と、リードオンリーメモリ（ＲＯＭ）及びランダムアクセスメモリ（ＲＡＭ）などのシステムメモリ８１５を含む種々のシステムコンポーネントをプロセッサ８１０に結合する接続８０５とを含む。コンピューティングシステム８００は、プロセッサ８１０に直接、近接して、又はその一部として一体化された、高速メモリのキャッシュを含むことができる。
【０１１１】
プロセッサ８１０は、プロセッサ８１０を制御するように構成された、ストレージ８３０内に記憶されたサービス８３２、８３４、８３６のような任意の汎用プロセッサ及びハードウェアサービス又はソフトウェアサービス、ならびにソフトウェア命令が実際のプロセッサ設計に組み込まれる専用プロセッサを含むことができる。プロセッサ810は本質的に、複数のコア又はプロセッサ、バス、メモリコントローラ、キャッシュ等を含む、完全に自己完結型のコンピュータシステムであってもよい。複数のコアプロセッサは対称型又は非対称型であってもよい。
【０１１２】
ユーザインタラクションを可能にするために、コンピューティングシステム８００は、音声用のマイクロフォン、ジェスチャ又はグラフィック入力用のタッチ式スクリーン、キーボード、マウス、モーション入力、音声などの任意の数の入力機構を表すことができる入力デバイス８４５を含む。コンピューティングシステム８００はまた、当業者に知られているいくつかの出力機構のうちの１つ又は複数の出力デバイス８３５も含むことができる。いくつかの例では、マルチモーダルシステムがユーザがコンピューティングシステム８００と通信するために複数のタイプの入力／出力を提供することを可能にすることができる。コンピューティングシステム８００は、一般にユーザ入力及びシステム出力を制御及び管理することができる通信インタフェース８４０を含むことができる。特定のハードウェア構成上での動作に制限はなく、したがって、ここでの基本的な機能は、それらが開発されるように、改良されたハードウェア又はファームウェア構成に容易に代わることができる。
【０１１３】
ストレージデバイス８３０は、不揮発性メモリデバイスでありえ、磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタル多用途ディスク、カートリッジ、ランダムアクセスメモリ（RAM）、リードオンリーメモリ（ROM）、及び／又はこれらのデバイスのいくつかの組合せのような、コンピュータによってアクセス可能なデータを格納することができるハードディスク又は他のタイプのコンピュータ可読記憶媒体でありうる。
【０１１４】
ストレージ８３０はソフトウェアサービス、サーバ、サービスなどを含むことができ、このようなソフトウェアを定義するコードがプロセッサ８１０によって実行されると、システムに機能を実行させる。いくつかの実施形態では、特定の機能を実行するハードウェアサービスは、機能を実行するために、プロセッサ８１０、接続８０５、出力デバイス８３５などの必要なハードウェアコンポーネントに接続して、コンピュータ可読記憶媒体に格納されたソフトウェアコンポーネントを含むことができる。
【０１１５】
説明を明確にするために、いくつかの例では、本技術は複数のデバイス、デバイスコンポーネント、ソフトウェアで具体化された方法におけるステップ又はルーチンを含む機能ブロック、又はハードウェアとソフトウェアの組合せを含む個々の機能ブロックを含むものとして提示されうる。
【０１１６】
本明細書で説明されるステップ、動作、機能、又は処理のいずれも、ハードウェア及びソフトウェアサービス又はサービスの組合せによって、単独で、又は他のデバイスと組合せて、実行又は実装されうる。いくつかの実施形態では、サービスは、クライアントデバイス及び／又はコンテンツ管理システムの１つ又は複数のサーバのメモリ内に存在し、プロセッサがサービスに関連するソフトウェアを実行するときに１つ又は複数の機能を実行するソフトウェアであってもよい。いくつかの実施形態では、サービスは、特定の機能を実行するプログラム又はプログラムの集合である。いくつかの実施形態では、サービスはサーバと見なすことができる。メモリは、非一時的コンピュータ可読記憶媒体であってもよい。
【０１１７】
いくつかの実施の形態では、コンピュータ可読記憶デバイス、媒体およびメモリは、ビットストリームを含むケーブルや無線信号などを含んでもよい。しかしながら、言及した場合、非一時的なコンピュータ可読記憶媒体は、エネルギー、キャリア信号、電磁波、及び信号自体などの媒体を明示的に除外する。
【０１１８】
上述の例に従った方法は、コンピュータ可読記憶媒体に格納された、またはさもなければコンピュータ可読記憶媒体から利用可能な、コンピュータで実行可能な命令を使用して実施されうる。このような命令は例えば、汎用コンピュータ、専用コンピュータ、又は専用処理デバイスに、所定の機能又は機能のグループを実行させる、又は別の方法で構成する命令及びデータを含むことができる。使用されるコンピュータリソースの一部は、ネットワークを介してアクセス可能である。コンピュータで実行可能な命令は例えば、バイナリ、アセンブリ言語、ファームウェア、又はソースコードのような中間フォーマット命令であってもよい。記述された例に従った方法の中での命令、使用された情報、及び／又は作成された情報を格納するために使用され得るコンピュータ可読記憶媒体の例は、磁気又は光ディスク、ソリッドステートメモリデバイス、フラッシュメモリ、不揮発性メモリを備えたＵＳＢデバイス、ネットワークストレージデバイスなどを含む。
【０１１９】
これらの開示に従った方法を実施するデバイスは、ハードウェア、ファームウェア及び／またはソフトウェアを備えうるとともに、種々のフォームファクタのいずれかをとりうる。このようなフォームファクタの典型的な例は、サーバ、ラップトップ、スマートフォン、スモールフォームファクタパーソナルコンピュータ、携帯情報端末アシスタントなどを含む。本明細書で説明される機能は、周辺機器又はアドインカードで実施することもできる。そのような機能は、さらなる例示として、異なるチップ間の回路基板上で、又は単一のデバイス内で実行される異なるプロセス上で実施することもできる。
【０１２０】
命令、そのような命令を運ぶための媒体、そのような命令を実行するためのコンピューティングリソース、およびそのようなコンピューティングリソースをサポートするための他の構成は、本開示で説明される機能を提供するための手段である。
【０１２１】
様々な例及び他の情報が添付の特許請求の範囲内の態様を説明するために使用されたが、当業者はこれらの例を使用して、多種多様な実装を導出することができるので、特許請求の範囲の限定はそのような例における特定の特徴又は構成に基づいて暗示されるべきではない。さらに、いくつかの主題を、構造的特徴及び／又は方法ステップの例に特有の言語で説明してきたが、添付の特許請求の範囲で定義される主題は必ずしもこれらの説明された特徴又は動作に限定されないことを理解されたい。例えば、そのような機能は、本明細書で識別されるもの以外のコンポーネントにおいて、異なるように分散されるか、又は実行され得る。むしろ、記載された特徴及びステップは、添付の特許請求の範囲内のシステム及び方法のコンポーネントの例示として開示される。
【図１】
2020537212.tif 000003
【図２】
2020537212.tif 000004
【図３】
2020537212.tif 000005
【図４Ａ】
2020537212.tif 000006
【図４Ｂ】
2020537212.tif 000007
【図５】
2020537212.tif 000008
【図６】
2020537212.tif 000009
【図７】
2020537212.tif 000010
【図８Ａ】
2020537212.tif 000011
【図８Ｂ】
2020537212.tif 000012
【図９】
2020537212.tif 000013
【図１０Ａ】
2020537212.tif 000014
【図１０Ｂ】
2020537212.tif 000015
【図１１】
2020537212.tif 000016
【図１２Ａ】
2020537212.tif 000017
【図１２Ｂ】
2020537212.tif 000018
【図１３】
2020537212.tif 000019
【図１４】
2020537212.tif 000020
【図１５】
2020537212.tif 000021
【手続補正書】
【提出日】令和2年5月13日(2020.5.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
方法であって、
クライアントデバイス上のファイルシステムのブラウザに共有コンテンツアイテムの表現を表示することであって、前記共有コンテンツアイテムの少なくとも一部は前記クライアントデバイスのファイルシステムに格納される、ことと、
前記共有コンテンツアイテムに対する第１のユーザアカウントに関連付けられた前記クライアントデバイス上でファイルオープンイベントを検出することであって、前記ファイルオープンイベントは前記ファイルシステムのブラウザに前記共有コンテンツアイテムの前記表現の選択の結果である、ことと、
前記ファイルオープンイベントの前記検出に基づき、前記共有コンテンツアイテムが前記第１のユーザアカウントによってチェックアウトされたことをコンテンツ管理システムのサーバに通知することであって、前記共有コンテンツアイテムがチェックアウトされたことの前記通知は、前記共有コンテンツアイテムがチェックインして戻されるまでの間、前記第１のユーザアカウント以外の少なくとも１つの他のユーザアカウントに対して前記共有コンテンツアイテムが読み出し専用となる、ことと
を含む、方法。
【請求項２】
請求項１に記載の方法であって、
前記クライアントデバイスに関連付けられた前記第１のユーザアカウントによって前記共有コンテンツアイテムがチェックアウトされていることを示すように、前記共有コンテンツアイテムの前記表現の外観を変更させる、方法。
【請求項３】
請求項１又は２に記載の方法であって、前記ファイルオープンイベントを検出することは、前記共有コンテンツアイテムがオープンされていることを前記コンテンツ管理システムのアプリケーションに知らせるメッセージをカーネルプロセスから受信することを含む、方法。
【請求項４】
請求項１乃至３の何れか１項に記載の方法であって、前記ファイルオープンイベントを検出することは、
前記クライアントデバイス上でオープンしているコンテンツアイテムのコンテンツアイテム名をユーザインタフェースウォッチャアプリケーションから受信することと、
前記共有コンテンツアイテムの前記コンテンツアイテム名が前記オープンしているコンテンツアイテムに含まれることを判定することと
を含む、方法。
【請求項５】
請求項１乃至４の何れか１項に記載の方法であって、
前記ファイルオープンイベントを検出することは、前記クライアントデバイスに、前記共有コンテンツアイテムがオープンであることを前記コンテンツ管理システムのアプリケーションに知らせる、プラグインから文書編集アプリケーションへのメッセージを受信させることを含む、方法。
【請求項６】
請求項１乃至５の何れか１項に記載の方法であって、
前記ファイルオープンイベントを検出することは、前記クライアントデバイスに、前記共有コンテンツアイテムの編集を検出させることを含み、前記通知を前記コンテンツ管理システムのサーバに送信することは、前記共有コンテンツアイテムの前記編集を検出した後に発生する、方法。
【請求項７】
請求項１乃至６の何れか１項に記載の方法であって、
前記共有コンテンツアイテムのファイルクローズイベントを検出することと、
前記共有コンテンツアイテムが自動的にチェックインされる必要があることを判定することと、
前記クライアントデバイスの前記第１のユーザアカウントによって前記共有コンテンツアイテムがチェックインされたことの通知を前記コンテンツ管理システムのサーバに送信することと
を含む、方法。
【請求項８】
請求項１乃至７の何れか１項に記載の方法であって、
前記クライアントデバイスは前記クライアントデバイスの前記ファイルシステムに格納され、前記コンテンツ管理システムの管理下にある他の共有コンテンツアイテムを有し、前記方法は、
前記コンテンツ管理システムのサーバからの同期通信を受信することであって、前記同期通信は前記他の共有コンテンツアイテムが前記少なくとも１つの他のユーザアカウントによってチェックアウトされたことを示す、ことと、
前記第１のユーザアカウントの前記クライアントデバイス上で、前記他の共有コンテンツアイテムに対するアクセス許可を読み出し専用に変更することと
を含む、方法。
【請求項９】
請求項８に記載の方法であって、
前記少なくとも１つの他のユーザアカウントによって前記他の共有コンテンツアイテムがチェックアウトされていることを示すように、前記他の共有コンテンツアイテムの前記表現の外観を変更することを含む、方法。
【請求項１０】
請求項１乃至９の何れか１項に記載の方法であって、
前記共有コンテンツアイテムはコンテンツ管理システムのサーバと通信する前記クライアントデバイス上のコンテンツ管理アプリケーションを含むコンテンツ管理システムの管理下にあり、前記コンテンツ管理アプリケーションは、前記コンテンツ管理システムの少なくとも１つの他のユーザアカウントが前記共有コンテンツアイテムの同期したコピーへの書き込み権限を有するように、前記共有コンテンツアイテムを、前記少なくとも１つの他のユーザアカウントと同期する、方法。
【請求項１１】
請求項１乃至１０の何れか１項に記載の方法であって、前記ファイルシステムのブラウザの前記共有コンテンツアイテムの前記表現は、スタブコンテンツアイテムを表し、前記スタブコンテンツアイテムは前記コンテンツ管理システムから前記共有コンテンツアイテムの完全なコンテンツをダウンロードするリンクを含む、方法。
【請求項１２】
請求項７に記載の方法であって、前記共有コンテンツアイテムが自動的にチェックインされる必要があることを判定することは、機械学習アルゴリズムの出力に基づく、方法。
【請求項１３】
請求項７に記載の方法であって、前記共有コンテンツアイテムが自動的にチェックインされる必要があることを判定することは、前記共有コンテンツアイテムが現在クローズされていることと、前記共有コンテンツアイテムのチェックアウトの継続期間の有効期限が満了したこととの判定の少なくとも一部に基づく、方法。
【請求項１４】
請求項１３に記載の方法であって、
前記共有コンテンツアイテムにおける前記チェックアウトの前記継続期間は、前記共有コンテンツアイテムに関連付けられた前記第１のユーザアカウントのメタデータに格納される、方法。
【請求項１５】
格納された命令を含むコンピュータプログラムであって、前記命令は、コンテンツ管理システムの第１のユーザアカウントに関連付けられたクライアントデバイスに、
前記クライアントデバイスのファイルシステムのブラウザに共有コンテンツアイテムを表すアイコンを表示させ、前記共有コンテンツアイテムの少なくとも一部は前記クライアントデバイスの前記ファイルシステムに格納され、
前記共有コンテンツアイテムに対する前記第１のユーザアカウントに関連付けられた前記クライアントデバイス上でファイルオープンイベントを検出させ、
前記ファイルオープンイベントの前記検出に基づき、前記共有コンテンツアイテムが前記第１のユーザアカウントによってチェックアウトされたことの通知をコンテンツ管理システムのサーバに送信させ、前記共有コンテンツアイテムがチェックアウトされたことの前記通知は、前記共有コンテンツアイテムがチェックインして戻されるまでの間、前記第１のユーザアカウント以外の少なくとも１つの他のユーザアカウントに対して前記共有コンテンツアイテムが読み出し専用となる、コンピュータプログラム。
【請求項１６】
請求項１５に記載のコンピュータプログラムであって、
前記ファイルオープンイベントを検出させる前記命令は、前記クライアントデバイスに、前記共有コンテンツアイテムがオープンされていることを前記コンテンツ管理システムのアプリケーションに知らせる、カーネルプロセスからのメッセージを受信させる命令を含む、コンピュータプログラム。
【請求項１７】
請求項１５又は１６に記載のコンピュータプログラムであって、前記ファイルオープンイベントを検出させる前記命令は、前記クライアントデバイスに、
前記クライアントデバイス上でオープンしているコンテンツアイテムのコンテンツアイテム名をユーザインタフェースウォッチャアプリケーションから受信させ、
前記共有コンテンツアイテムの前記コンテンツアイテム名が前記オープンしているコンテンツアイテムに含まれることを判定させる、命令を含む、コンピュータプログラム。
【請求項１８】
請求項１５乃至１７の何れか１項に記載のコンピュータプログラムであって、前記ファイルオープンイベントを検出させる前記命令は、前記クライアントデバイスに、前記共有コンテンツアイテムがオープンであることを前記コンテンツ管理システムのアプリケーションに知らせる、プラグインから文書編集アプリケーションへのメッセージを受信させる命令を含む、コンピュータプログラム。
【請求項１９】
請求項１５乃至１８の何れか１項に記載のコンピュータプログラムであって、前記ファイルオープンイベントを検出させる前記命令は、前記クライアントデバイスに、前記共有コンテンツアイテムの編集を検出させる命令を含み、前記通知を前記コンテンツ管理システムのサーバに送信する前記命令は、前記共有コンテンツアイテムの前記編集を検出した後に発生する、コンピュータプログラム。
【請求項２０】
請求項１５乃至１９の何れか１項に記載のコンピュータプログラムであって、前記共有コンテンツアイテムはコンテンツ管理システムのサーバと通信する前記クライアントデバイス上のコンテンツ管理アプリケーションを含むコンテンツ管理システムの管理下にあり、前記コンテンツ管理アプリケーションは、前記コンテンツ管理システムの少なくとも１つの他のユーザアカウントが前記共有コンテンツアイテムの同期したコピーへの書き込み権限を有するように、前記共有コンテンツアイテムを、前記少なくとも１つの他のユーザアカウントと同期する、コンピュータプログラム。
【国際調査報告】
2020537212.tif 000022
2020537212.tif 000023
2020537212.tif 000024