(57)【特許請求の範囲】
【請求項１】
クライアントデバイス上でコンテンツアイテムを取り扱う、または提示するための命令を実行するためのシステムであって、前記コンテンツアイテムの同期されたコピーは、ユーザアカウントと関連付けて、コンテンツ管理システムサーバと、前記コンテンツ管理システムサーバにおける前記ユーザアカウントにアクセスすることが許可された前記クライアントデバイスの少なくとも１つのストレージとに格納され、前記システムは、
オペレーティングシステム、コンテンツ管理システムクライアントアプリケーション、コンテンツ管理システムクライアントアプリケーションのカーネル拡張、及びコンテンツアイテムアプリケーションのためのソフトウェアコードを含む少なくとも１つのストレージと、前記ソフトウェアコードを実行するように構成された少なくとも１つのプロセッサとを含む前記クライアントデバイスを備え、前記カーネル拡張のための前記ソフトウェアコードは、実行されると、前記少なくとも１つのプロセッサに、
前記クライアントデバイスの前記少なくとも１つのストレージ内の前記コンテンツアイテムのための、前記オペレーティングシステムのローカルファイルシステムへのインタフェースに由来するカーネルレベルファイルイベントを検出させ、
前記クライアントデバイスの前記少なくとも１つのストレージ内のコンテンツアイテムのための前記カーネルレベルファイルイベントを中断させ、
前記カーネルレベルファイルイベントを前記中断することに応じて、前記少なくとも１つのストレージから、前記コンテンツ管理システムサーバと連携して前記コンテンツアイテムを取り扱う、または提示するための前記コンテンツアイテムに特有の命令を取得させ、
前記クライアントアプリケーションは、前記命令に従って前記コンテンツ管理システムサーバにコンタクトさせ、
前記命令は、更なるファイルイベント命令を有する前記コンテンツ管理システムサーバにおける位置を含む、システム。
【請求項２】
請求項１に記載のシステムであって、
前記命令に従って前記コンテンツアイテムを開くためのソフトウェアコードを含むコンテンツアイテムアプリケーションを備える、システム。
【請求項３】
請求項１に記載のシステムであって、前記命令は、前記コンテンツ管理システムサーバにおいて生成され、前記クライアントアプリケーションに、前記クライアントデバイスの前記少なくとも１つのストレージに格納されている前記コンテンツアイテムの前記コピーを制限アクセスモードで開かせる、システム。 
【請求項４】
請求項１に記載のシステムであって、前記ソフトウェアコードは前記少なくとも１つのプロセッサに、
前記クライアントアプリケーションにより、前記クライアントデバイスの前記少なくとも１つのストレージに格納された前記コンテンツアイテムの前記コピーの代替バージョンを受け取るオプションを提示させ、
前記クライアントデバイスの前記少なくとも１つのストレージに格納された前記コンテンツアイテムの前記コピーの前記代替バージョンを受け取る前記オプションの選択を受け付けさせ、 
前記コンテンツ管理システムサーバからの前記クライアントデバイスの前記少なくとも１つのストレージに格納された前記コンテンツアイテムの前記コピーの前記代替バージョンを要求させ、
前記コンテンツ管理システムサーバから、前記コンテンツアイテムの変更バージョンである前記代替バージョンを受信させる、システム。
【請求項５】
請求項１に記載のシステムであって、協調データは前記コンテンツアイテムと関連付けられたタスクを含むワークフローデータである、システム。
【請求項６】
請求項１に記載のシステムであって、前記命令は前記クライアントアプリケーションに、前記コンテンツアイテムが前記コンテンツ管理システムサーバと通信することにより別ユーザにより開かれているかどうかを判定させ、前記コンテンツアイテムが別ユーザにより開かれていると判定されると、前記コンテンツアイテムを読取専用で開かせる、システム。
【請求項７】
方法であって、
クライアントデバイスの少なくとも１つのストレージ内のコンテンツアイテムのための、前記クライアントデバイスのオペレーティングシステムのローカルファイルシステムへのインタフェースに由来するカーネルレベルファイルイベントを検出することであって、前記コンテンツアイテムのコピーはコンテンツ管理システムサーバと、前記クライアントデバイスのコンピュータ可読ストレージ内に存在して、互いに同期し合っている、検出することと、
前記クライアントデバイスの前記ストレージ内のコンテンツアイテムのための前記カーネルレベルファイルイベントを中断することと、
前記カーネルレベルファイルイベントを前記中断することに応じて、前記クライアントデバイスの前記ストレージから、前記コンテンツ管理システムサーバと連携して前記コンテンツアイテムを取り扱う、または提示するための命令を取得することと、
前記命令に従って前記コンテンツ管理システムサーバにコンタクトすることと、を含み、
前記命令は、更なるファイルイベント命令を有する前記コンテンツ管理システムサーバにおける位置を含む、方法。
【請求項８】
請求項７に記載の方法であって、
前記命令に従って前記コンテンツアイテムを開くこと、を含む方法。
【請求項９】
請求項７に記載の方法であって、
前記クライアントデバイスの前記少なくとも１つのストレージに格納された前記コンテンツアイテムの前記コピーを制限アクセスモードで開くこと、を含む方法。 
【請求項１０】
請求項７に記載の方法であって、前記命令は前記コンテンツ管理システムサーバにおいて生成され、前記方法は、
前記命令に基づいて、前記クライアントデバイスの前記少なくとも１つのストレージに格納された前記コンテンツアイテムの前記コピーを復号すること、を含む方法。
【請求項１１】
命令群を格納したコンピュータ可読記憶媒体であって、前記命令群は実行されると、コンピューティングデバイスに、
クライアントデバイスの少なくとも１つのストレージ内のコンテンツアイテムのための、前記クライアントデバイスのオペレーティングシステムのローカルファイルシステムへのインタフェースに由来するカーネルレベルファイルイベントを検出することであって、前記コンテンツアイテムのコピーはコンテンツ管理システムサーバと、前記クライアントデバイスのコンピュータ可読ストレージ内に存在して、互いに同期し合っている、検出することと、
前記クライアントデバイスの前記ストレージ内のコンテンツアイテムのための前記カーネルレベルファイルイベントを中断することと、
前記カーネルレベルファイルイベントの前記中断に応じて、前記クライアントデバイスの前記ストレージから、前記コンテンツ管理システムサーバと連携して前記コンテンツアイテムを取り扱う、または提示するための命令を取得することと、
前記命令に従って前記コンテンツ管理システムサーバにコンタクトすることと、を実行させる、のに有効であり、
前記命令は、更なるファイルイベント命令を有する前記コンテンツ管理システムサーバにおける位置を含む、コンピュータ可読記憶媒体。
【請求項１２】
請求項１１に記載のコンピュータ可読記憶媒体であって、前記命令群は、
前記コンテンツアイテムを編集するように構成されたコンテンツアイテムアプリケーションを利用して、前記命令に従って前記コンテンツアイテムを開くのに有効である、コンピュータ可読記憶媒体。
【請求項１３】
請求項１１に記載のコンピュータ可読記憶媒体であって、前記命令群は、
クライアントアプリケーションにより、前記クライアントデバイスの前記少なくとも１つのストレージに格納された前記コンテンツアイテムの前記コピーの代替バージョンを受け取るオプションを提示させ、
前記クライアントデバイスの前記少なくとも１つのストレージに格納された前記コンテンツアイテムの前記コピーの前記代替バージョンを受け取る前記オプションの選択を受け付させ、
前記コンテンツ管理システムサーバからの前記クライアントデバイスの前記少なくとも１つのストレージに格納された前記コンテンツアイテムの前記コピーの前記代替バージョンを要求させ、
前記コンテンツ管理システムサーバから、前記コンテンツアイテムの変更バージョンである前記代替バージョンを受信させる、のに有効であるコンピュータ可読記憶媒体。  
【請求項１４】
請求項１１に記載のコンピュータ可読記憶媒体であって、前記インタフェースはローカルファイルシステムブラウジングアプリケーションである、コンピュータ可読記憶媒体。
【請求項１５】
請求項１１に記載のコンピュータ可読記憶媒体であって、前記命令群はクライアントアプリケーションに、前記コンテンツアイテムが前記コンテンツ管理システムサーバと通信することにより別ユーザにより開かれているかどうかを判定させ、前記コンテンツアイテムが別ユーザにより開かれていると判定されると、前記コンテンツアイテムを読取専用で開かせる、コンピュータ可読記憶媒体。
【請求項１６】
請求項１１に記載のコンピュータ可読記憶媒体であって、前記命令群はクライアントアプリケーションに、前記コンテンツアイテムを開くのに先立って条件の受諾を受け取らせる、コンピュータ可読記憶媒体。
【請求項１７】
請求項１１に記載のコンピュータ可読記憶媒体であって、前記命令は、前記コンテンツ管理システムサーバで生成され、クライアントアプリケーションに前記コンテンツアイテムと関連する協調データを提示した後に前記コンテンツアイテムの前記コピーを開かせる、コンピュータ可読記憶媒体。
【請求項１８】
請求項１７に記載のコンピュータ可読記憶媒体であって、前記協調データは前記コンテンツアイテムと関連付けられたタスクを含むワークフローデータである、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カーネルイベントトリガに関する。
【０００２】
［関連出願の相互参照］
本出願は２０１７年３月３１日に出願された米国特許出願第１５/４７５,５０８号、および２０１６年１２月２７日に出願された米国仮出願第６２/４３９,３７３号の利益を主張するものであり、それらの両件は、参照により本明細書に明示的に援用される。
【背景技術】
【０００３】
協調ワークフローが普及することにつれて、システムは、同時に編集、コメント、メッセージングなどを可能にするように開発されてきた。これらの実装は、コンテンツアイテムのタイプ、システム、およびアプリケーションの間で異なる。
【０００４】
様々なコンテンツアイテムタイプ、システム、およびアプリケーションを使用するコラボレータは、分離されたコラボレーティブワークフローを維持することが困難である。これらの制限のために、コラボレータは通常、並列ワークフロー、すなわち、コンテンツアイテム操作のための１つのワークフローと、通信のための別のワークフローとを使用する。例えば、コラボレータは文書管理システムを使用して、コンテンツアイテムを格納し、電子メールを使用して、それらのコンテンツアイテムについて通信することができる。これらの制限の多くは、従来のデスクトップ・ファイル管理パラダイムおよびレガシーアプリケーションの結果として、協調環境に保持される。
【発明の概要】
【０００５】
本開示のさらなる特徴および利点は以下の説明に記載され、一部は本説明から明らかになるか、または本明細書に開示された原理の実施によって知ることができる。本開示の特徴および利点は、添付の特許請求の範囲において特に指摘される機器および組み合わせによって実現および獲得され得る。本開示のこれらの特徴および他の特徴は、以下の説明および添付の特許請求の範囲からより完全に明らかになるか、または本明細書に記載の原理の実施によって理解することができる。
【０００６】
カーネルイベントトリガのためのシステム、方法、および非一時的なコンピュータ可読記憶媒体が開示される。
【０００７】
カーネル・レベル・ファイル・イベントに応答して命令を実行するための例示的なコンピュータ実施方法は、コンテンツアイテムのカーネル・レベル・ファイル・イベントを検出することを含む。これは、コンテンツ管理システムとネットワーク接続されたクライアントデバイス上のカーネル拡張を使用して達成することができる。次いで、クライアントデバイスは、コンテンツアイテムを処理または提示するための命令を含む、コンテンツアイテムに関連するデータを取得できる。次いで、クライアントデバイスは、命令を実行することができる。この命令はコンテンツ管理システムから協調データを取り出し、協調データを提示し、ファイルへのアクセスまたは権利を制限することなどであり得る。
【図面の簡単な説明】
【０００８】
本開示の上記および他の利点および特徴は、添付の図面に示されるその特定の実施形態を参照することによって明らかになるのであろう。これらの図面は本開示の例示的な実施形態のみを示し、したがって、その範囲を限定すると考えられるべきではないことを理解すると、本明細書の原理は、添付の図面を使用することによって、さらなる特異性および詳細を伴って記述され、説明される:
【図１】いくつかの実施形態に従う、装置およびネットワークの例示的な構成を示す。
【図２】様々な実施形態に従うカーネルレベルファイルイベントを検出するための例示的な方法を示す。
【図３】様々な実施形態に従うイベント命令を実行するための例示的な方法を示す。
【図４】様々な実施形態に従う、コンテンツアイテムを復号するための例示的な方法を示す。
【図５】様々な実施形態に従う、コンテンツアイテムの提示を適応させるための例示的な方法を示す。
【図６】様々な実施形態に従う、コンテンツアイテムを動的に変換するための例示的な方法を示す。
【図７】様々な実施形態に従う例示的なファイルイベントウィンドウを示す。
【図８】様々な実施形態に従う、復号のために使用される例示的なファイルイベントウィンドウを示す。
【図９】様々な実施形態に従う、データ紛失防止のために使用される例示的なファイルイベントウィンドウを示す。
【図１０】様々な実施形態に従う、署名取得のために使用される例示的なファイルイベントウィンドウを示す。
【図１１】様々な実施形態に従う、バジェットを追跡するために使用される例示的なファイルイベントウィンドウを示す。
【図１２】様々な実施形態に従う、コンテンツアイテムを購入するために使用される例示的なファイルイベントウィンドウを示す。
【図１３】様々な実施形態に従う、コンテンツアイテムのフォーマット選択のために使用される例示的なファイルイベントウィンドウを示す。
【図１４】様々な実施形態に従う、コンテンツアイテムの代替バージョンを選択するために使用される例示的なファイルイベントウィンドウを示す。
【図１５】様々な実施形態に従う、コンテンツアイテムに関連する変更を記録するために使用される例示的なファイルイベントウィンドウを示す。
【図１６】は、様々な実施形態に従う、コンテンツアイテムエクスポートのために使用される例示的なファイルイベントウィンドウを示す。
【図１７Ａ】は本技術の各種実施形態を実装するための例示的な可能なシステム実施形態を示す。
【図１７Ｂ】本技術の各種実施形態を実装するための例示的な可能なシステム実施形態を示す。
【発明を実施するための形態】
【０００９】
本開示の様々な実施形態が、以下で詳細に説明される。特定の実施形態が説明されているが、これは例示の目的のためだけに行われていることを理解されたい。当業者は、本開示の精神および範囲から逸脱することなく、他の構成要素および構成が使用され得ることを認識するのであろう。
【００１０】
開示された技術の様々な実施形態を実装することに関して、例示的なシステム構成１００が図１に示され、電子デバイスは、コンテンツおよび他のデータを交換する目的でネットワークを介して通信する。本システムは、図１に示すような広域ネットワーク上で使用するように構成することができる。しかし、本原理は、電子デバイスの相互通信を容易にする多種多様なネットワーク構成に適用可能である。例えば、図１のシステム１００の構成要素の各々は、ネットワークにおいてローカライズされたまたは分散された様式で実装され得る。
【００１１】
システム１００では、ユーザが直接および/または間接通信によってネットワーク１０４に接続されたクライアントデバイス１０２１、１０２２、..., １０２n(集合的に「１０２」)を介して、コンテンツ管理システム１０６(例えば、オンライン同期コンテンツ管理システム、またはコンテンツ管理システムサーバ)と対話することができる。コンテンツ管理システム１０６はデスクトップコンピュータ、モバイルコンピュータ、モバイル通信デバイス、例えば、モバイル電話、スマートフォン、タブレット、スマートテレビ、セットトップボックス、および／または任意の他のネットワーク対応コンピューティングデバイスなどの様々な異なるクライアントデバイスからの接続をサポートすることができる。クライアントデバイス１０２は、様々なタイプ、機能、オペレーティングシステム等のものとすることができる。さらに、コンテンツ管理システム１０６は、複数のクライアントデバイス１０２からの接続を同時に受け入れ、複数のクライアントデバイス１０２とインタラクトすることができる。
【００１２】
ユーザは、クライアントデバイス１０２iにインストールされたネットワーク化されたコンテンツアイテムクライアント側アプリケーションを介して、コンテンツ管理システム１０６とインタラクトすることができる。いくつかの実施形態では、クライアント側アプリケーションがコンテンツ管理システム特有のコンポーネントを含むことができる。例えば、当該コンポーネントは、スタンドアロンアプリケーション、１つ以上のアプリケーションプラグイン、および／またはブラウザ拡張とすることができる。しかし、ユーザはクライアントデバイス１０２i上に常駐し、コンテンツ管理システム１０６と通信するように構成されたウェブブラウザなどのサードパーティアプリケーションを介して、コンテンツ管理システム１０６とインタラクトすることもできる。いずれの場合も、クライアント側アプリケーションは、ユーザがコンテンツ管理システム１０６とインタラクトするためのユーザインターフェース(UI)を提示することができる。例えば、ユーザは、ファイルシステムと統合されたクライアント側アプリケーションを介して、またはウェブブラウザアプリケーションを使用して表示されるウェブページを介して、コンテンツ管理システム１０６とインタラクトすることができる。
【００１３】
コンテンツ管理システム１０６は、ユーザがコンテンツを格納すること、ならびにコンテンツを取得、変更、ブラウジング、および／または共有するなど、様々なコンテンツ管理タスクを実行することを可能にすることができる。さらに、コンテンツ管理システム１０６は、ユーザが複数のクライアントデバイス１０２からコンテンツにアクセスすることを可能にすることができる。例えば、クライアントデバイス１０２iは、ネットワーク１０４を介してコンテンツ管理システム１０６にコンテンツをアップロードすることができる。その後、同じクライアントデバイス１０２iまたは他の何らかのクライアントデバイス１０２jが、コンテンツ管理システム１０６からコンテンツを取得することができる。
【００１４】
様々なコンテンツ管理サービスを容易にするために、ユーザは、コンテンツ管理システム１０６を用いてアカウントを作成することができる。ユーザアカウントデータベース１５０は、アカウント情報を維持することができる。ユーザアカウントデータベース１５０は、登録ユーザのプロファイル情報を格納することができる。場合によっては、ユーザプロファイル内の唯一の個人情報をユーザ名および／または電子メールアドレスとすることができる。しかし、コンテンツ管理システム１０６は、誕生日、住所、課金情報などの追加のユーザ情報を受け入れるように構成することもできる。
【００１５】
ユーザアカウントデータベース１５０はアカウントタイプ(例えば、無料または有料)、使用情報(例えば、ファイル編集履歴)、許可された最大保存スペース、使用された保存スペース、コンテンツ保存場所、セキュリティ設定、個人コンフィグレーション設定、コンテンツ共有データなどのアカウント管理情報を含むことができる。アカウント管理モジュール１２４は、ユーザアカウントデータベース１５０内のユーザアカウント詳細を更新および／または取得するように構成することができる。アカウント管理モジュール１２４は、コンテンツ管理システム１０６内の任意の数の他のモジュールとインタラクトするように構成することができる。
【００１６】
アカウントはアカウント上で許可された１つまたは複数のクライアントデバイス１０２から、デジタルデータ、ドキュメント、テキストファイル、オーディオファイル、ビデオファイルなどのコンテンツを格納するために使用することができる。また、コンテンツは、フォルダ、プレイリスト、アルバムなどの異なる挙動と共にコンテンツアイテムをグループ化するためのコレクションを含むことができる。例えば、アカウントは、任意のユーザがアクセス可能なパブリックフォルダを含むことができる。公開フォルダには、webアクセス可能なアドレスを割り当てることができる。ウェブアクセス可能な宛先へのリンクは、パブリックフォルダのコンテンツにアクセスするために使用することができる。別の例では、アカウントは、写真用に意図され、写真用に調整された特定の属性およびアクションを提供する写真コレクション、オーディオファイルを再生し、他のオーディオ関連アクションを実行する能力を提供するオーディオコレクション、または他の特殊目的コレクションを含むことができる。アカウントはまた、複数のユーザアカウントにリンクされ、利用可能な共有コレクションまたはグループコレクションを含むことができる。複数のユーザに対する許可は、共有コレクションに対して異なっていてもよい。
【００１７】
コンテンツは、コンテンツストレージ１６０に記憶することができる。コンテンツストレージ１６０は、記憶装置、複数の記憶装置、またはサーバとすることができる。代替として、コンテンツストレージ１６０は、１つ以上の通信ネットワークを介してアクセス可能なクラウド・ストレージ・プロバイダまたはネットワーク・ストレージとすることができる。コンテンツ管理システム１０６はクライアントデバイス１０２がコンテンツ管理システム１０６によってコンテンツアイテムがどこに、またはどのように格納されているかを正確に知る必要がないように、クライアントデバイス１０２から複雑さおよび詳細を隠すことができる。いくつかの実施形態では、コンテンツ管理システム１０６がコンテンツアイテムがクライアントデバイス１０２i上に現れるのと同じコレクション階層内にコンテンツアイテムを格納することができる。しかし、コンテンツ管理システム１０６は、コンテンツアイテムをそれ自体の順序、配置、または階層で格納することができる。
【００１８】
コンテンツ管理システム１０６は、コンテンツアイテムを、NAS(ネットワークアクセス可能ストレージ)装置、RAID(独立ディスクの冗長アレイ)などに格納することができる。コンテンツストレージ１６０は、FAT、FAT３２、NTFS、EXT２、EXT３、EXT４、HFS／HFS+、BTRFSなどの１つ以上のパーティションタイプを使用してコンテンツアイテムを格納することができる。
【００１９】
コンテンツストレージ１６０はまた、コンテンツアイテム、コンテンツアイテムタイプ、および様々なアカウント、コレクション、またはグループに対するコンテンツアイテムの関係を記述するメタデータを格納することができる。コンテンツアイテムのメタデータはコンテンツアイテムの一部として格納することができ、または別々に格納することができる。一変形例では、コンテンツストレージ１６０に格納された各コンテンツアイテムに、システム全体にわたる一意の識別子を割り当てることができる。
【００２０】
コンテンツストレージ１６０は、重複コンテンツアイテムまたはコンテンツアイテムの重複セグメントを識別することによって必要とされるストレージスペースの量を低減することができる。複数のコピーを格納する代わりに、コンテンツストレージ１６０は単一のコピーを格納し、次いで、ポインタまたは他のメカニズムを使用して、複製を単一のコピーにリンクすることができる。同様に、コンテンツストレージ１６０はコンテンツアイテムへの変更、コンテンツアイテムの異なるバージョン(分岐バージョンツリーを含む)、および変更履歴を追跡するコンテンツアイテムバージョンコントロールを使用することによって、コンテンツアイテムをより効率的に格納することができ、また、アンドゥ動作の能力を提供することができる。変更履歴は、元のコンテンツアイテムバージョンに適用されると、変更されたコンテンツアイテムバージョンを生成する１組の変更を含むことができる。
【００２１】
コンテンツ管理システム１０６は、１つ以上のクライアントデバイス１０２からのコンテンツの自動同期をサポートするように構成することができる。同期は、プラットフォーム非依存とすることができる。すなわち、コンテンツは、様々なタイプ、機能、オペレーティングシステムなどの複数のクライアントデバイス１０２にわたって同期させることができる。例えば、クライアントデバイス１０２iはクライアントソフトウェアを含むことができ、クライアントソフトウェアは、コンテンツ管理システム１０６の同期モジュール１３２を介して、クライアントデバイス１０２iのファイルシステム内のコンテンツを、関連するユーザアカウント内のコンテンツと同期させる。場合によっては、クライアントソフトウェアが新しい、削除された、変更された、コピーされた、または移動されたコンテンツアイテムまたはコレクションなど、指定されたコレクションおよびそのサブコレクション内のコンテンツに対する任意の変更を同期させることができる。クライアントソフトウェアは別個のソフトウェアアプリケーションとすることができ、オペレーティングシステム内の既存のコンテンツ管理アプリケーションと統合することができ、またはそれらの何らかの組合せとすることができる。既存のコンテンツ管理アプリケーションと統合するクライアントソフトウェアの一例では、ユーザがローカルコレクション内のコンテンツアイテムを直接操作することができ、一方、バックグラウンドプロセスは変更についてローカルコレクションを監視し、それらの変更をコンテンツ管理システム１０６に同期させる。逆に、バックグラウンドプロセスはコンテンツ管理システム１０６で更新されたコンテンツを識別し、それらの変更をローカルコレクションに同期させることができる。クライアントソフトウェアは同期動作の通知を提供することができ、コンテンツ管理アプリケーション内でコンテンツ状態の指示を直接提供することができる。場合によっては、クライアントデバイス１０２iが利用可能なネットワーク接続を有さなくてもよい。このシナリオでは、クライアントソフトウェアがコンテンツアイテムの変更についてリンクされたコレクションを監視し、ネットワーク接続が利用可能であるときに、コンテンツ管理システム１０６への後の同期のために、これらの変更をキューに入れることができる。同様に、ユーザは、コンテンツ管理システム１０６との同期を手動で開始、停止、一時停止、または再開することができる。
【００２２】
ユーザは、ユーザインターフェース部１２２によって生成され、提供されるウェブインターフェースを介して、コンテンツを閲覧または操作することができる。例えば、ユーザは、ウェブブラウザにおいて、コンテンツ管理システム１０６によって提供されるウェブアドレスにナビゲートすることができる。コンテンツアイテムの新しいバージョンをアップロードするなど、ウェブインターフェースを介して行われるコンテンツストレージ１６０内のコンテンツの変更または更新は、ユーザのアカウントに関連付けられた他のクライアントデバイス１０２に戻るように伝播することができる。例えば、それぞれが独自のクライアントソフトウェアを有する複数のクライアントデバイス１０２を単一のアカウントに関連付けることができ、アカウント内のコンテンツアイテムを複数のクライアントデバイス１０２のそれぞれの間で同期させることができる。
【００２３】
コンテンツ管理システム１０６は様々なクライアントデバイス１０２とインタフェースするための通信インタフェース１２０を含むことができ、アプリケーションプログラムインターフェース(API)を介して他のコンテンツおよび／またはサービスプロバイダ１０９１、１０９２、...,１０９n(集合的に「１０９」)とインタラクトすることができる。特定のソフトウェアアプリケーションは、ユーザの代わりにAPIを介してコンテンツストレージ１６０にアクセスすることができる。例えば、スマートフォンまたはタブレットコンピューティングデバイス上で実行されるアプリなどのソフトウェアパッケージはユーザが認証情報(credentials)を提供するときに、コンテンツ管理システム１０６に直接呼び出しをプログラム的に行って、コンテンツを読み取り、書き込み、作成、削除、共有、または他の方法で操作することができる。同様に、APIは、ユーザがウェブサイトを介してコンテンツストレージ１６０の全部または一部にアクセスすることを可能にすることができる。
【００２４】
コンテンツ管理システム１０６はまた、認証モジュール１２６を含むことができ、認証モジュール１２６は許可されたクライアントおよびユーザのみがコンテンツアイテムにアクセスできることを確実にするために、ユーザ信用情報、セキュリティトークン、API呼び出し、特定のクライアントデバイスなどを検証することができる。さらに、コンテンツ管理システム１０６は、集合ファイル操作、ユーザアクション、ネットワーク使用量、使用される全格納スペース、ならびに他の技術、使用量、またはビジネスメトリックについて追跡し、報告することができる分析モジュール１３４を含むことができる。プライバシーおよび／またはセキュリティポリシーは、コンテンツ管理システム１０６に格納されたユーザデータへの不正アクセスを防止することができる。
【００２５】
コンテンツ管理システム１０６は、公的にまたは私的にコンテンツを共有することを管理するための共有モジュール１３０を含むことができる。コンテンツを公に共有することは、コンテンツ管理システム１０６とネットワーク通信する任意のコンピューティングデバイスからコンテンツアイテムにアクセス可能とすることを含むことができる。コンテンツを私的に共有することは、各ユーザアカウントがコンテンツアイテムにアクセスできるように、コンテンツストレージ１６０内のコンテンツアイテムを２つ以上のユーザアカウントにリンクすることを含むことができる。共有は、プラットフォーム非依存の手法で実行することができる。すなわち、コンテンツは、様々なタイプ、機能、オペレーティングシステムなどの複数のクライアントデバイス１０２にわたって共有することができる。コンテンツは、様々なタイプのユーザアカウントにわたって共有することもできる。
【００２６】
いくつかの実施形態では、コンテンツ管理システム１０６がコンテンツストレージ１６０内の各コンテンツアイテムの位置を識別するコンテンツディレクトリを維持するように構成することができる。コンテンツディレクトリは、コンテンツストレージに格納された各コンテンツアイテムについての一意のコンテンツエントリを含むことができる。
【００２７】
コンテンツエントリは、コンテンツ管理システム内のコンテンツアイテムの位置を識別するために使用することができるコンテンツパスを含むことができる。例えば、コンテンツパスは、コンテンツアイテムの名前と、コンテンツアイテムに関連するフォルダ階層とを含むことができる。例えば、コンテンツパスは、コンテンツアイテムが配置されるフォルダまたはフォルダのパス、ならびにコンテンツアイテムの名前を含むことができる。コンテンツ管理システム１０６は、コンテンツパスを使用して、適切なフォルダ階層内にコンテンツアイテムを提示することができる。
【００２８】
コンテンツエントリはまた、コンテンツストレージ１６０内のコンテンツアイテムの位置を識別するコンテンツポインタを含むことができる。例えば、コンテンツポインタは、メモリ内のコンテンツアイテムの正確な格納アドレスを含むことができる。いくつかの実施形態では、コンテンツポインタはそれぞれがコンテンツアイテムの一部を含む複数のロケーションを指し示すことができる。
【００２９】
コンテンツパスおよびコンテンツポインタに加えて、コンテンツエントリは、コンテンツアイテムへのアクセスを有するユーザアカウントを識別するユーザアカウント識別子も含むことができる。いくつかの実施形態では、複数のユーザアカウント識別子を、コンテンツアイテムが複数のユーザアカウントによる共有アクセスを有することを示す単一のコンテンツエントリに関連付けることができる。
【００３０】
コンテンツアイテムを私的に共有するために、共有モジュール１３０を、コンテンツアイテムに関連するコンテンツエントリにユーザアカウント識別子を追加し、したがって、追加されたユーザアカウントにコンテンツアイテムへのアクセスを許可するように構成することができる。共有モジュール１３０はまた、コンテンツアイテムへのユーザアカウントのアクセスを制限するために、コンテンツエントリからユーザアカウント識別子を除去するように構成され得る。
【００３１】
コンテンツを公に共有するために、共有モジュール１３０をユニフォーム・リソース・ロケータ(URL)などのカスタム・ネットワーク・アドレスを生成するように構成することができ、これにより、任意のウェブブラウザが、認証なしにコンテンツ管理システム１０６内のコンテンツにアクセスすることが可能になる。これを達成するために、共有モジュール１３０は生成されたURLにコンテンツ識別データを含めるように構成することができ、これは、後に、要求されたコンテンツアイテムを適切に識別し、返すために使用することができる。例えば、共有モジュール１３０は、生成されたURL内にユーザアカウント識別子およびコンテンツパスを含むように構成することができる。URLを選択すると、URLに含まれるコンテンツ識別データをコンテンツ管理システム１０６に送信することができ、コンテンツ管理システム１０６は受信したコンテンツ識別データを使用して、適切なコンテンツエントリを識別し、コンテンツエントリに関連するコンテンツアイテムを返すことができる。
【００３２】
URLを生成することに加えて、共有モジュール１３０は、コンテンツアイテムに対するURLが作成されたことを記録するように構成することもできる。いくつかの実施形態では、コンテンツアイテムに関連するコンテンツエントリが、コンテンツアイテムに対するURLが作成されたかどうかを示すURLフラグを含むことができる。例えば、URLフラグはコンテンツアイテムに対するURLが作成されていないことを示すために、最初に０または偽に設定されたブール値とすることができる。共有モジュール１３０は、コンテンツアイテムへのURLを生成した後、フラグの値を１または真に変更するように構成することができる。
【００３３】
いくつかの実施形態では、共有モジュール１３０が生成されたURLを非アクティブ化するように構成することもできる。例えば、各コンテンツエントリは、生成されたURLからの要求に応答してコンテンツを返すべきかどうかを示すURLアクティブフラグを含むこともできる。例えば、共有モジュール１３０はURLアクティブフラグが１または真に設定されている場合にのみ、生成されたリンクによって要求されたコンテンツアイテムを返すように構成することができる。このように、URLアクティブフラグの値を変更することにより、URLが生成されたコンテンツへのアクセスを容易に制限することができる。これにより、ユーザはコンテンツアイテムを移動したり、生成されたURLを削除したりすることなく、共有コンテンツアイテムへのアクセスを制限することができる。同様に、共用モジュール１３０はURLアクティブフラグの値を再び１または真に変更することにより、URLを再活性化することができる。したがって、ユーザは、新しいURLを生成する必要なく、コンテンツアイテムへのアクセスを容易に復元することができる。
【００３４】
コンテンツ管理システム１０６には特定のコンポーネントが提示されているが、当業者であれば、システム１０６のアーキテクチャ上の構成は単に１つの可能性のある構成であり、より多くのまたはより少ないコンポーネントを有する他の構成も可能であることを理解されたい。
【００３５】
図２は、様々な実施形態に従う、コンテンツアイテムのカーネルレベルファイルイベントを検出するための例示的な方法２００を示す。例示的な方法２００を実行するシステム(例えば、クライアントデバイス１０２)は、開始すると、コンテンツアイテムのカーネルレベルファイルイベントを検出することができる(ステップ２０２)。コンテンツ管理システムクライアントアプリケーションは例示的な方法２００の少なくともいくつかを実行するために、クライアントデバイス１０２上のオペレーティングシステムのためのカーネル拡張を有することができる。本明細書で使用される「カーネル」は、ハードウェアとインタフェースするタスクを管理するオペレーティングシステムの中心部分である。「ハードウェア」は物理ハードウェア、シミュレートされたハードウェア(例えば、仮想マシン、ネットワークリソース、ドライブのパーティション、バッファ、RAMなどにおける。)、またはハードウェアコンポーネントの同様の機能を有する任意のシステムを意味し得ることを理解されたい。同様に、「カーネル・レベル・ファイル・イベント」は、ファイル、コンテンツアイテム、またはハードウェア(または同様の)レベルのリソースを扱う任意のイベントとすることができる。例えば、ファイルのロード(例えば、ファイルのオープンまたはアクセス)、ファイルの保存、ファイルの変更、ファイルプロパティへのアクセス、ファイルプロパティの変更、ファイルの移動、ファイルの複製、ファイルのデフラグなどである。カーネル・レベル・ファイル・イベントはたとえそれが達成されなくても(例えば、もはや存在しないファイルにアクセスしようと試みること、十分な許可なしにファイルを開こうと試みることなど)、前述のいずれか１つを行う試みとすることができることを理解されたい。カーネル・レベル・ファイル・イベントは、クライアントデバイス１０２のオペレーティングシステムのカーネルにインストールされた、クライアントデバイス１０２のカーネル拡張を使用して検出することができる。
【００３６】
いくつかの実施形態ではカーネル・レベル・ファイル・イベントがステップ２０２を直接トリガすることができ、あるいはシステムがカーネル・レベル・ファイル・イベントを(例えば、ログを参照することによって)監視し、そのようなイベントがログ内で検出されたときにステップ２０２を開始することができる。いくつかの実施形態ではステップ２０２がカーネル・レベル・ファイル・イベントに対するデフォルトのオペレーティングシステムの動作を一時停止または中断する(例えば、プログラムがファイルを開くようにオペレーティングシステムに指示した場合、ステップ２０２はファイルの開きを一時的に停止するか、または少なくとも一時的に防止する)、或いは、カーネル・レベル・ファイル・イベントに対するデフォルトの動作は例示の方法２００と並行して実行することができる。カーネル・レベル・ファイル・イベントはローカル・ファイル・システム(例えば、ファイルブラウザ)へのグラフィカル・ユーザ・インターフェースによってトリガすることができる。いくつかの実施形態では、カーネル・レベル・ファイル・イベントがローカル・ファイル・システムへのインタフェース(例えば、アプリケーション・プログラミング・インターフェース)によってトリガされる。
【００３７】
システムはコンテンツアイテムのためのファイルイベント命令を継続し、取り出すことができる(ステップ２０４)。ファイルイベント命令は、コンテンツアイテムに関連する命令を含む、任意のタイプの命令とすることができる。例えば、命令はグラフィカルユーザインタフェースオブジェクトを表示すること、カーネルレベルファイルイベントを遅延させること、(例えば、コンテンツ管理システム１０６、別のクライアントデバイス１０２、クライアントデバイス１０２上のモジュール、コンテンツアイテムに関連するユーザアカウントなどへ)コンテンツアイテムについてのメッセージを送信すること、コンテンツアイテムを復号／暗号化すること、コンテンツアイテムについての警告を表示すること、コンテンツアイテムを変更すること、コンテンツアイテムをスキャンすること、コンテンツアイテムを複製すること、コンテンツアイテムについての協調(collaboration)情報を取り出すこと、（例えば、もしファイルイベントがコンテンツアイテムスタブに対応する場合に）コンテンツアイテムの完全なバージョンを取り出すこと、を含むことができる。
【００３８】
ファイルイベント命令は、コンテンツ管理システム１０６および／またはクライアントデバイス１０２から取り出すことができる。例えば、ファイルイベント命令は、コンテンツ管理システム１０６に格納され、クライアントデバイス１０２によって取り出され得る。ファイルイベント命令は、コンテンツアイテムに関連するか、またはコンテンツアイテム内に位置するメタデータから取り出すことができる。いくつかの実施形態では、メタデータがファイルイベント命令の位置を識別するアドレスまたはポインタを含む。いくつかの実施形態では、(例えば、コンテンツアイテムを開く前に協調画面を開くための)一般的な命令は複数のコンテンツアイテムに適用することができ、一般的な命令の実装はコンテンツアイテムの特性(例えば、ファイルタイプ、タグ、許可、メタデータなど)に基づいて、コンテンツアイテムに特有であり得る。これは、例えば、コンテンツアイテム識別子を使用して、一般的なファイルイベント命令をコンテンツアイテムに特有に適応させることによって達成することができる。
【００３９】
次いで、システムは、ファイルイベント命令を実行することができる(ステップ２０６)。本明細書では、様々な実施形態、例えば、ステップ２０６のための従属的方法が開示される。いくつかの実施形態では、クライアントデバイス１０２がステップ２０２、２０４、および／または２０６のいずれか１つのレポートをコンテンツ管理システム１０６に送信することができる。
【００４０】
ステップ２０６の例示的な命令は、コンテンツ管理システム１０６と協働してコンテンツアイテムを処理または提示するための命令を含むことができる。例えば、コンテンツ管理システム１０６はクライアントデバイス１０２にアクセス命令(例えば、読み出し専用モード、フルアクセスモード、または限定アクセスモードでコンテンツアイテムを開くため)を送信することができ、コンテンツアイテムを開くアプリケーションは、アクセス命令に従ってコンテンツアイテムを開くことができる。
【００４１】
図３は、様々な実施形態に従う例示的な方法３００を示す。例えば、例示的な方法３００は、(ステップ２０６の)イベント命令を実行する例とすることができる。クライアントデバイス１０２は開始すると、コンテンツアイテム(すなわち、例示的な方法２００のコンテンツアイテム)に関する協調データを要求することができる(ステップ３０２)。協調データの要求は、コンテンツ管理システム１０６に送信することができる。いくつかの実施形態では、要求がコンテンツアイテム識別子(例えば、ファイル名、パス、ハッシュなど)を含む。要求は、コンテンツ管理システム１０６上のユーザアカウントに関連するアカウント識別子を使用して認証することができる。
【００４２】
次いで、コンテンツ管理システム１０６は、コンテンツアイテムに関する協調データを送信することができる(ステップ３０４)。例えば、ステップ３０４はコンテンツアイテムに関連するコメント、変更履歴(例えば、変更ログ)、タスク／割り当て、ステータス(例えば、１人以上のユーザが現在文書を編集または閲覧しているかどうか、コンテンツアイテムがアクセス可能であるかどうか)などを送信することを含むことができる。いくつかの実施形態では、協調データが主にコンテンツアイテムに向けられ、特定のユーザアカウントに向けられない。代替的にまたは追加的に、協調データは要求に関連するユーザアカウントに基づくことができる(例えば、協調データをフィルタリングすることができる)。例えば、ユーザはコンテンツアイテムに関連する制限的な許可を有し、コンテンツアイテムに関連する全てのコメントにアクセスすることが許可されない場合がある。
【００４３】
協調データはコンテンツアイテムに関連する複数のユーザ(例えば、ユーザアカウント)間の調整を容易にすることができる。例えば、ジョイントワークフローは、ユーザにタグ付けすること、ユーザにタスクを割り当てること、コンテンツアイテムについてコメントすること、コンテンツアイテムを共有することなどを含むことができる。
【００４４】
コンテンツ管理システム１０６は、多くの異なる形式で協調データを送信することができる。例えば、ステップ３０４はクライアントデバイス上でレンダリングするためのレンダリング可能なウェブページ(例えば、HTML)を生成することを含むことができる。あるいは、コンテンツ管理システム１０６が協調データをデータオブジェクト(例えば、JSONファイル、XMLデータ、または任意の他のタイプのデータオブジェクト)として送信することができる。
【００４５】
いくつかの実施形態では、ステップ３０４がステップ３０２の前に(例えば、同期処理中に)実行される。
【００４６】
クライアントデバイス１０２はコンテンツ管理システム１０６から協調データを継続し、受信することができる。次いで、クライアントデバイス１０２は、コンテンツアイテムに関する協調データを提示することができる(ステップ３０６)。いくつかの実施形態では、ステップ３０６がコンテンツ管理システム１０６によって生成されたウェブサイトのウェブビューを提示することを含む。コンテンツアイテムに関連する協調データは、コンテンツアイテムをオープンするアプリケーションとは異なるアプリケーションによって提示することができる。
【００４７】
クライアントデバイス１０２はコンテンツアイテムを継続し、提示することができる(ステップ３０８)。ステップ３０８はコンテンツアイテムアプリケーション、すなわち、コンテンツアイテムを開くアプリケーションによって実行することができる。クライアントデバイス１０２は、協調データのプレゼンテーションの横、後ろ、前などにコンテンツアイテムを提示することができる。コンテンツアイテムに関連する協調データの提示はコンテンツアイテムを開き続けるためのオプションを含むことができ、いくつかの実施形態では、クライアントデバイス１０２がユーザがそのオプションを選択することに応答してステップ３０８を実行することができる。クライアントデバイス１０２は、協調データの提示がクローズされるか、または他の方法でデフォーカスされた後にステップ３０８を実行することができる。
【００４８】
いくつかの実施形態では、コンテンツアイテムのメタデータをワークフローデータと呼ぶことができ、コンテンツ管理システム１０６をワークフローサーバと呼ぶことができる。
【００４９】
いくつかの実施形態では、クライアントデバイス１０２がコンテンツアイテムのプレゼンテーション内で協調データを提示する。例えば、協調データがコメントを含む場合、クライアントデバイス１０２は、コンテンツアイテム内にコメントを挿入することができる。
【００５０】
図４は、様々な実施形態に従う例示的な方法４００を示す。例示的な方法４００は、ステップ２０６の従属的方法とすることができる。いくつかの実施形態では、コンテンツアイテムが暗号化された形式でクライアントデバイス１０２上に配置されてもよい。例示的な方法４００は、コンテンツアイテムが開かれる前に「ジャストインタイム」でコンテンツアイテムを復号するために使用することができる。いくつかの実施形態では、コンテンツアイテムがファイルタイプがネイティブに暗号化をサポートしない(またはファイルタイプのネイティブ暗号化が利用されない)場合であっても、そのレガシー拡張子(例えば、テキストファイルの場合は「txt」)を保持する。クライアントデバイス１０２は、開始すると、ユーザに認証情報を要求することができる(ステップ４０２)。ステップ４０２は、コンテンツアイテムが暗号化されていること、およびユーザが関連する認証情報を供給できることを示すグラフィカルユーザインターフェースウィンドウを提示することを含むことができる。例えば、ユーザは、アカウント識別子及びパスワードをコンテンツ管理システム１０６上のアカウントに供給することができる。
【００５１】
次に、クライアントデバイス１０２は、認証情報をコンテンツ管理システム１０６に送信することができる(ステップ４０４)。いくつかの実施形態では、ステップ４０４がデバイス記述子(例えば、クライアントデバイス１０２が電話、タブレット、ラップトップ、デスクトップなどであることを示す)、デバイス識別子(例えば、クライアントデバイス１０２のシリアル番号、MACアドレスなど)、クライアントデバイス１０２の地理的位置情報などの追加情報を送信することを含む。この追加情報はコンテンツ管理システム１０６に、コンテンツアイテムのロック解除を許可するかどうかを通知することができる。例えば、データ紛失防止システムでは、ユーザが認可されており、ユーザが認可されたデバイスを使用していることが重要であり得る。
【００５２】
次いで、コンテンツ管理システム１０６は、認証情報をアクセス制御リストと比較することができる(４０６)。アクセス制御リストは、コンテンツアイテム、コンテンツアイテムを含むフォルダ、要求ユーザ、および／またはユーザグループに関連付けることができる。アクセス制御リストは、どのユーザ、ロケーション、デバイス、時間などがコンテンツアイテムにアクセスできるかを指定することができる。
【００５３】
次に、コンテンツ管理システム１０６は、認証情報が有効であるかどうかを判定することができる(ステップ４０８)。それらが有効でない場合、コンテンツ管理システム１０６は、認証情報が無効であることをクライアントデバイス１０２に通知することができる。クライアントデバイス１０２はステップ４０２に戻り、ユーザに認証を要求することができる。適切な認証情報なしでは、クライアントデバイス１０２は、コンテンツアイテムへのアクセスを拒否することができる。
【００５４】
ステップ４０８において、コンテンツ管理システム１０６が認証情報が有効であると判定した場合、コンテンツ管理システム１０６は、クライアントデバイス１０２にコンテンツアイテムを復号することを許可することができる(ステップ４１０)。例えば、コンテンツアイテムを復号するための命令を送信することができ、および／またはコンテンツアイテムを復号するための復号鍵を送信することができる。
【００５５】
次に、クライアントデバイス１０２は、コンテンツアイテムを開くことができる(ステップ４１２)。これは、様々な手段によって達成することができる。例えば、クライアントデバイス１０２はファイルシステム内で、コンテンツアイテムの暗号化されたバージョンをコンテンツアイテムの復号されたバージョンで置き換えることができる。別の例は、(コンテンツアイテムの暗号化されたバージョンをそのままにしておきつつ)コンテンツアイテムの復号されたバージョンを一時的な場所に保存すること、および、一時的な保存場所から復号されたバージョンを開くこととを含む。別の例は、コンテンツアイテムを復号することと開くことの両方を行うアプリケーションに復号鍵を渡すことを含む。いくつかの実施形態では、元のファイルイベントが例示的な方法４００のステップが実行されるまで一時停止される。これにより、クライアントデバイス１０２はオペレーティングシステムまたはイベント生成プログラムの余分な設定を必要とせずに、コンテンツアイテムをジャストインタイムで変更する(例えば、記憶媒体上のコンテンツアイテムを置換する)ことができる。この技法は本明細書で開示される複数の概念に適用することができ、例示的な方法４００に限定されるべきではない。
【００５６】
いくつかの実施形態では、ステップ４０６および４０８がクライアントデバイス１０２上で実行される。例えば、セキュリティアプリケーションは、認証情報を検証することができる。いくつかの実施形態では、認証情報により復号鍵を直接生成する(例えば、認証情報のハッシュが鍵であってもよい)。
【００５７】
図５は、様々な実施形態に従う例示的な方法５００を示す。例示的な方法５００は、コンテンツアイテムのアクセス状態に基づいてコンテンツアイテムの提示を適応させるための従属的方法、またはステップ２０６の代替ステップとすることができる。例えば、別のクライアントデバイス１０２の別のユーザがコンテンツアイテムに現在アクセスしている場合、コンテンツアイテムはコンテンツアイテムにアクセスしようとしているユーザ(すなわち、そのトリガされた例示的な方法５００)に対して「ロック」され、そのユーザがコンテンツアイテムを変更することを防止することができる。
【００５８】
クライアントデバイス１０２は、開始すると、コンテンツ管理システム１０６にコンテンツアイテムアクセス状態を要求することができる(ステップ５０２)。アクセス状態は、コンテンツアイテムがユーザ(例えば、ユーザアカウント)によって、現在開かれているか、変更されているか、または予約されているという指示を含むことができる。アクセス状態は、アクセス状態に起因する１以上のユーザの指示を含むことができる。例えば、ユーザXは、現在、コンテンツアイテムを視聴している。
【００５９】
次いで、コンテンツ管理システム１０６は、別のユーザが別のデバイス上でコンテンツアイテムに現在アクセスしているかどうかを判定することによって、コンテンツアイテムアクセス状態を判定することができる(ステップ５０４)。ステップ５０４における「別の装置」は、別のクライアントデバイス１０２であってもよい。いくつかの実施形態では、ステップ５０４はコンテンツ管理システム１０６上のアクセスログを読み取ることを含む。ステップ５０４は、コンテンツアイテムにアクセスしている可能性がある任意のクライアントデバイス１０２に問い合わせることを含むことができる。次いで、コンテンツ管理システム１０６は、コンテンツアイテムアクセス状態をクライアントデバイスに送信することができる(ステップ５０５)。
【００６０】
アクセス状態(ステップ５０６)が「フルアクセス」または同様のものである場合、クライアントデバイス１０２は、フルアクセスモードでコンテンツアイテムを開くことができる(ステップ５１０)。例えば、コンテンツアイテムには、読み取りおよび書き込み許可を割り当てることができる。アクセス状態(ステップ５０６)が「読み取り専用」または同様のものである場合、クライアントデバイス１０２は、読み取り専用モードでコンテンツアイテムを開くことができる(ステップ５０８)。例えば、コンテンツアイテムを保存する機能なしに、コンテンツアイテムを開くことができる。他のアクセス状態も考えられることを理解されたい。例えば、「チェックアウト」アクセス状態は、ユーザがある時間内にコンテンツアイテムを戻すことを要求することができる。
【００６１】
いくつかの実施形態では、コンテンツ管理システム１０６が例示的な方法５００を使用して、コンテンツアイテムのファイルアクセス制限を決定することができる。例えば、ステップ５０４及び５０５は、コンテンツアイテムに対するファイルアクセス制限を決定することを含むことができる。これは、コンテンツアイテム、要求側ユーザ(例えば、クライアントデバイス１０２に関連するユーザアカウント)、クライアントデバイス詳細(例えば、クライアントデバイス１０２の識別子)、クライアントデバイス１０２のデバイスタイプ(例えば、電話、タブレット、またはラップトップ)、および／またはクライアントデバイス１０２のロケーション(例えば、地理的位置情報、IPアドレス、またはサブネット)を、コンテンツアイテムのアクセス制御リストと比較することを含むことができる。ファイルアクセス制限は、コンテンツアイテムに現在関連付けられている他のユーザの現在のアクティビティ状態を参照することによって(例えば、コンテンツアイテムが開いているかどうか、コンテンツアイテムに対する保存されていない変更を有しているかどうか等)、追加的にまたは代替的に決定することができる。次いで、コンテンツ管理システム１０６は、要求に対するファイルアクセス制限を決定することができる。クライアントデバイス１０２は、ファイルアクセス制限を実施することができる。ファイルアクセス制限は、コンテンツアイテムが読み取り専用、フル、時間制限、または他の制限されたアクセス許可を有するべきであることを示すことを含むことができる。いくつかの実施形態では、ファイルアクセス制限が(例えば、別のユーザアカウントが現在コンテンツアイテムにアクセスしている場合に)コンテンツ管理システム１０６に保存または同期されるコンテンツアイテムの能力を制限する。いくつかの実施形態では、ファイルアクセス制限がコンテンツアイテムの一部(例えば、文、段落、ページ、行、列、セル、セクションなど)に適用される。いくつかの実施形態では、クライアントデバイス１０２がファイルアクセス制限を実施せず、単に、ファイルアクセス制限を示す通知を提示するだけである。
【００６２】
図６は、様々な実施形態に従う例示的な方法６００を示す。例示的な方法６００は、ステップ２０６の従属的方法とすることができる。例示的な方法６００はコンテンツアイテムを別の形態で開くことができるように、コンテンツアイテムの動的変換を容易にすることができる。クライアントデバイス１０２は、ユーザがコンテンツアイテムの代替バージョンまたはローカルバージョンを開くことを望むかどうかをユーザに促すことができる(ステップ６０２)。「ローカルバージョン」はファイルイベントに関連するコンテンツアイテムのバージョン(すなわち、本明細書で開示される方法が無視されなかった場合に開かれるコンテンツアイテムのバージョン)を意味することができる。「代替バージョン」は、ローカルバージョンから導出することができるコンテンツアイテムの代替表現を意味することができる。例えば、コンテンツアイテムのローカルバージョンは編集可能なテキストドキュメントとすることができ、代替バージョンはポータブルドキュメントフォーマット(例えば、「pdf」)、ピクチャ(例えば、「jpg」)とすることができる。いくつかの実施形態ではコンテンツアイテムの代替バージョンをローカルバージョンとは異なる形式とすることができる。例えば、ローカルコンテンツアイテムがテキストドキュメントである場合、代替バージョンはテキストドキュメントの音声読み上げとすることができる。コンテンツアイテムの代替バージョンは、ローカルバージョンと比較して、より多くのまたはより少ない情報を含むことができる。例えば、代替バージョンは、インラインコメントを含むか、または除外することができる。コンテンツアイテムのローカルバージョンおよびそれぞれの代替バージョンの他の例には以下が含まれる：縮小プログラムコード(ローカル)をフルフォームプログラムコード(代替)として開くことができ、フルドキュメント(ローカル)を要約(代替)として開くことができ、ムービーファイル(ローカル)を、異なるコンテンツフィルタ／解像度／オーディオトラック／サブタイトル／等を利用して開くことができる。(代替)、３D CADモデル(ローカル)はモデルのピクチャまたはビデオツアーとして開くことができ(代替)、プログラム(ローカル)は悪意のあるコードを防止するために保護されたサンドボックス環境で開くことができ(代替)、１つのフォーマット(ローカル)のドキュメントはウェブベースのエディタを使用して開くことができ(代替)、曲サンプル(ローカル)は、有料フルソングとして開くことができ(代替)、ローカルの草案文書（ローカル）は、文書の更新バージョンとして開くことができる(代替)。本明細書で開示されるローカルおよび代替の関係は逆にすることができる。すなわち、「ローカル」バージョンとして参照されるものは、「代替」バージョンとすることができ、逆もまた同様であることを理解されたい。
【００６３】
ユーザが代替バージョンを選択した場合、クライアントデバイス１０２は、コンテンツアイテムをコンテンツ管理システムに送信することができる(ステップ６０６)。いくつかの実施形態では、クライアントデバイス１０２が単にコンテンツアイテム識別子をコンテンツ管理システム１０６に送信することができる。
【００６４】
次いで、コンテンツ管理システム１０６は、コンテンツの代替バージョンを生成することができる(ステップ６０８)。いくつかの実施形態では、これはコンテンツアイテムを変更すること、またはコンテンツアイテムの代替バージョンを取り出すことを含むことができる。
【００６５】
次いで、コンテンツ管理システム１０６は、コンテンツアイテムの代替バージョンをクライアントデバイスに送信することができる(ステップ６１０)。いくつかの実施形態では、これはクライアントデバイス１０２上で提示するためのウェブページコードを送信することを含む。例えば、オリジナルバージョンはテキストドキュメントであってもよく、代替バージョンは、ローカルテキスト編集アプリケーションよりも多くのまたは少ない機能を有するテキストドキュメントのウェブプレゼンテーションであってもよい。
【００６６】
次に、クライアントデバイスは、コンテンツアイテムの代替バージョンを提示することができる(ステップ６１２)。これは、コンテンツアイテムの代替バージョンを含むウェブサイトをレンダリングすることを含むことができる。ステップ６０２において、ユーザがコンテンツアイテムのローカルバージョンを開くことを選択した場合、クライアントデバイスは、コンテンツアイテムを提示することができる(ステップ６０４)。いくつかの実施形態では、クライアントデバイス１０２がコンテンツアイテムのローカルバージョンとコンテンツアイテムの代替バージョンとを同時に提示することができる。
【００６７】
いくつかの実施形態では、「ローカル」バージョンはスタブコンテンツアイテムであり、「代替」バージョンは完全なコンテンツアイテムである。用語「スタブ（stub）」はプレースホルダのことであってもよく、当該プレースホルダはファイルブラウザ内の完全なコンテンツアイテムであるように見えるが、実際のコンテンツアイテムは他の場所に位置する。例えば、スタブは、たとえスタブがコンテンツアイテムのコンテンツ(すなわち、実体)の多くを欠いていても、同じ名前、拡張子、メタデータなどを有するファイルとすることができる。スタブはコンテンツアイテムの完全なバージョンであるように、クライアントデバイス１０２のファイルインターフェース内に現れることができる。クライアントデバイス１０２はスタブコンテンツアイテムのカーネルレベルイベントを検出し、コンテンツ管理システム１０６に完全なコンテンツアイテムを要求することができる。次いで、コンテンツ管理システム１０６はプレゼンテーションのために、完全なコンテンツアイテムをクライアントデバイス１０２に提供することができる。例えば、完全なバージョンは、ファイルシステム内のスタブを置き換えることができる。代替的に又は追加的に、完全なバージョンは一時的な場所に保存することができ、カーネルレベルファイルイベントは(例えば、コンテンツアイテムのパスを変更することによって)完全なバージョンを指すように変更することができる。コンテンツアイテムを提示する(オープンまたはロードすることを含む)ためのアプリケーションは、スタブが最初に識別されたにもかかわらず、フルバージョンをオープンすることができる。コンテンツアイテムの提示が終了すると(例えば、関連するアプリケーションがコンテンツアイテムを閉じるか、またはコンテンツアイテムを保存すると)、クライアントデバイス１０２はスタブコンテンツアイテムを更新し、必要であれば、完全なコンテンツアイテムの更新されたバージョンをコンテンツ管理システム１０６に送信することができる。
【００６８】
図７は、様々な実施形態による例示的なファイルイベントウィンドウ７００を示す。ファイルブラウザ７０２からコンテンツアイテム(例えば、コンテンツアイテム７０４)が選択されると、ファイルイベントウィンドウ７００を提示することができる。例えば、ファイルブラウザ７０２は、コンテンツアイテムにアクセスするための選択を受信すると、コンテンツアイテムのカーネルレベルファイルイベントをトリガすることができる。ファイルイベントウィンドウ７００は、前述の方法のステップ２０６、３０６、４０２、および／または６０２で作成することができる。いくつかの実施形態では、ファイルイベントウィンドウ７００は、コンテンツ管理システム１０６によって生成されたウェブページのレンダリングである。ファイルイベントウィンドウ７００は、インタラクティブであってもよく、動的に更新されてもよい。
【００６９】
様々なカーネル・レベル・ファイル・イベントが、ファイルイベントウィンドウ７００をトリガすることができることを理解されたい。例えば、オープン、(例えば、ネットワークロケーションからの)リクエスト、セーブ、クローズ、リリース、コミット(例えば、変更のコミット)、または関連するアイテムとのアクティビティの開始または完了をシグナリングするためのカーネルレベルファイルイベントは、ファイルイベントウィンドウ７００をトリガすることができる。
【００７０】
図７では、ファイルイベントウィンドウ７００がコンテンツアイテム７０４の履歴７０６、タスク７０８、およびオプション７１０を含むことができる。いくつかの実施形態では履歴７０６、タスク７０８、および／またはオプション７１０はコンテンツ管理システム１０６から生成され、さらに、または代替として、それらはコンテンツアイテム７０４のメタデータによって通知され得る。履歴７０６はファイル操作履歴(例えば、ファイルが作成、名付け、移動、共有されたとき)、ファイルコンテンツ履歴(例えば、コンテンツアイテム７０４に対して行われた変更および編集)、コメント履歴(例えば、コンテンツアイテム７０４に対してユーザが提出したコメント)、閲覧履歴などを含むことができる。
【００７１】
タスク７０８はファイルイベント要求に関連するユーザアカウント(例えば、クライアントデバイス１０２に関連するユーザアカウント)に割り当てられたタスクを含むことができる。タスク７０８は、他のユーザアカウントに割り当てられたタスクも含むことができる。いくつかの実施形態では、関連タスクのみが提示される。例えば、(例えば、ファイルイベントをトリガしたユーザによって)行われるべき次のタスクである。タスク７０８はユーザがタスクの状態(例えば、開始されていない、進行中、または完了)を変更することができるように、変更可能な要素を含むことができる。コンテンツ管理システム１０６はタスクが完了したかどうかを自動的に判定するために、コンテンツアイテムに対して行われた変更を分析することができる。例えば、タスクが変更履歴付きファイル内の編集をレビューすることである場合、コンテンツ管理システム１０６は、変更履歴のそれぞれが「受け入れられた」か、さもなくば承認されたことを検出することができる。いくつかの実施形態では、コンテンツ管理システム１０６は、タスクを完了したものとしてマークする命令を受信することができる。
【００７２】
オプション７１０は、コンテンツアイテムを開くためのオプションを含むことができる。例えば、他のユーザがコンテンツアイテムを開くことを防止することができる。別の例は、現ユーザがコンテンツアイテムを開いていることを、コンテンツアイテムに加入した他人に通知することを含む。選択可能なオプションは、コンテンツアイテムに関連するメッセージを含むチャットウィンドウを開くことができる。
【００７３】
ファイルイベントウィンドウ７００は、コンテンツアイテムを開き続ける(ボタン７１２)、ウェブを介してコンテンツアイテムを開く(ボタン７１４)、またはコンテンツアイテムをキャンセルして開かない(ボタン７１６)ための選択可能なオプションを含むことができる。ボタン７１４は(例えば、例示的な方法６００と同様に)コンテンツアイテムの代替バージョンを開くことができる。
【００７４】
図８は、暗号復号のために使用されるファイルイベントウィンドウ７００を示す。例えば、クライアントデバイス１０２はユーザが暗号化されたコンテンツアイテムを開こうとするときに、ファイルイベントウィンドウ７００を提示することができる。次に、ユーザは、自分の認証情報をログイン８０２に入力することができる。次いで、クライアントデバイス１０２はコンテンツアイテムを復号するために使用することができる復号鍵を返すことができるコンテンツ管理システム１０６に認証情報を送信することができ、あるいは、クライアントデバイス１０２が認証情報から復号を生成することができる。
【００７５】
ファイルイベントウィンドウ７００は保存またはクローズ時に、ユーザがコンテンツを暗号化することを可能にすることができることを理解されたい。例えば、コンテンツアイテムの保存またはクローズは、カーネルレベルファイルイベントをトリガすることができる。保存時に、ファイルイベントウィンドウ７００は、コンテンツアイテムを暗号化する能力をユーザに提供することができる。
【００７６】
いくつかの実施形態では、コンテンツアイテムがデジタル著作権管理(DRM)を使用して制御される。例えば、コンテンツアイテムは、鍵を使用して暗号化することができる。カーネル・レベル・ファイル・イベントはコンテンツアイテムをどのように開き、復号するかについての命令をコンピュータに指示することができる。命令はコンピュータをDRMサーバ(例えば、コンテンツ管理システム１０６または別のサーバ)に向けることができ、DRMサーバは、コンテンツアイテムを復号するための鍵を提供することができる。これは、カーネル・レベル・ファイル・イベントまたはコンピュータに関連するユーザアカウントを検証することを含むことができる。  いくつかの実施形態ではコンテンツアイテムにアクセスする(または開く)ための命令(例えば、DRMデータ)はDRMサーバから取り出される。いくつかの実施形態ではコンテンツアイテムはスタブであり、命令は完全なコンテンツアイテムが位置する場所にコンピュータを導く。新しい位置にあるコンテンツアイテムは、暗号化されていても、暗号化されていなくてもよい。
【００７７】
図９は、データ紛失防止のために使用されるファイルイベントウィンドウ７００を示す。例えば、コンテンツアイテムは、機密情報を含むように識別することができる。これは、ジャストインタイムまたは前のタイムで起こることができる。コンテンツアイテムが機密情報を含む場合、編集されたバージョンをクライアントデバイス１０２にローカルに格納することができ、その一方でオリジナルバージョンをコンテンツ管理システム１０６に格納することができる。オリジナルバージョンを取り出すために、ユーザは自分の認証情報を提供することができ、その結果、オリジナルバージョンを取り出すことができる。いくつかの実施形態ではスタブコンテンツアイテムがクライアント１０２に格納され、ユーザが認証された後、コンテンツ管理システム１０６はコンテンツアイテム(またはコンテンツアイテムの適切に編集されたバージョン)をクライアントデバイス１０２に送信することができる。
【００７８】
いくつかの実施形態では、クライアントデバイス１０２がコンテンツアイテムが保存またはクローズされていることを検出することができる。保存またはクローズのカーネルレベルファイルイベントを検出した後、クライアントデバイス１０２またはコンテンツ管理システム１０６は、コンテンツアイテムがおそらく秘密情報を含むことを検出することができる。いくつかの実施形態では、コンテンツアイテムをコミット(例えば、保存)するために、ユーザは認証情報を提供しなければならない。
【００７９】
図１０は、署名を取得するために使用されるファイルイベントウィンドウ７００を示す。例えば、コンテンツアイテムを開くとき、ユーザは、コンテンツアイテムにアクセスするための特定の条項(または条件)に同意すること、またはコンテンツアイテムの受信を承認することを示す署名を提供することができる。例えば、ファイルイベントウィンドウ７００は、エンドユーザライセンス契約、著作権通知、非開示契約などを含むことができる。ファイルイベントウィンドウ７００はコンテンツアイテムが閉じられたときに提示することができ、ユーザは、コンテンツアイテムのコンテンツに同意したこと、またはそのコンテンツを承認したことを表すことができる。いくつかの実施形態では、ユーザがファイルイベントウィンドウに署名を適用することによって、ユーザ許可を提供することができる。
【００８０】
いくつかの実施形態では、クライアントデバイス１０２が関連するコンテンツアイテムを保存または閉じた後に、署名要求のためのファイルイベントウィンドウ７００を提示することができる。そのような署名要求はコンテンツアイテムを許可するためのものであってもよいし、コンテンツアイテムの条項に同意するためのものであってもよい。例えば、マネージャは、コンテンツアイテム内の条項を有効(sign off)にすることができる。
【００８１】
クライアントデバイスは、ファイルイベントウィンドウ７００によって提供される署名を、コンテンツアイテムのメタデータとして、またはコンテンツアイテムに関連する別個のコンテンツアイテムとして保存することができる。
【００８２】
図１１は、コンテンツアイテムに関連する予算を追跡するために使用されるファイルイベントウィンドウ７００を示す。法律専門家、会計、クリエイティブ・デザインなどの特定の専門家では、プロジェクトのために一定の時間または金額を予算に入れることができる。プロジェクトは例えば契約を作成すること、または絵を描くことなど、コンテンツアイテムに結び付けることができる。ファイルイベントウィンドウ７００はコンテンツアイテムに費やされた時間／金額を示し、追跡するために使用することができる。例えば、コンテンツアイテムが開かれたときに、タイマを自動的に開始することができ、コンテンツアイテムが閉じられたときに、タイマを停止することができる。オプションは、コンテンツアイテムが開かれている間に費やされた時間を記録しないように提示することができる。
【００８３】
クライアントデバイス１０２はコンテンツアイテムが開かれ、保存され、または閉じられたというカーネルレベルファイルイベントを受信した後に、タイマウィンドウを提示することができる。いくつかの実施形態では、ファイルイベント命令がファイルイベントウィンドウ７００に通知または提示することができるアプリケーションを指す。例えば、図１１では、アプリケーションはタイムキーパアプリケーションであってもよい。他のアプリケーションが、APIまたは同様のものを介して、ファイルイベントウィンドウ７００に通知または提示することができることを理解されたい。
【００８４】
図１２は、映画の購入画面を表示するために使用されるファイルイベントウィンドウ７００を示す。例えば、映画コンテンツアイテムはクライアントデバイス１０２上に常駐することができ、ユーザが映画を開こうとするとき、ファイルイベントウィンドウ７００が提示されてユーザは映画を購入またはレンタルすることが可能になる。あるいは、スタブコンテンツアイテムをクライアントデバイス１０２上に配置することができる。ファイルイベントウィンドウ７００は映画の様々なオプション、例えば、「HD」モード、「SD」モード、２４時間レンタル、または予告編のみを提示することができる。選択を行った後、支払情報を提供することができ、コンテンツアイテム(例えば、映画)を選択された形式で開くことができる。コンテンツアイテムを開くオペレーティングシステムもアプリケーション(例えば、ムービー・プレーヤ)も、イベントウィンドウ７００および本明細書で開示される手順を知覚する必要がないことを認識することが重要である。例えば、映画ファイルは本質的に空であり(例えば、スタブコンテンツアイテム)、予告編のみを含み、低解像度コピー等である「movie.mp４」であり得る。カーネルがコンテンツアイテムを開く命令を送ると、命令を傍受することができ、クライアントデバイスはファイルイベントウィンドウ７００を提示することができ、次いで、適切なコンテンツアイテムをダウンロードすることができ、コンテンツアイテムを完全なものに置き換えることができ、コンテンツアイテムを開く命令を再開できる。したがって、コンテンツアイテムを開くアプリケーションは、この追加された機能に適応するように特別に構成される必要はない。
【００８５】
図１３は、コンテンツアイテムのフォーマット選択オプションを提示するために使用されるファイルイベントウィンドウ７００を示す。例えば、ユーザは、映画用のフォーマット、解像度、およびコンテンツフィルタリングを選択することができる。ファイルイベントウィンドウ７００のいくつかのオプションは、自動充填することができる。いくつかの実施形態では、ファイルイベントウィンドウ７００は提示されず、代わりに、クライアントデバイス１０２はユーザの嗜好、ユーザの許可、クライアントデバイス１０２の仕様などに基づいて、コンテンツアイテムの最適なバージョンを自動的に提供することができる。
【００８６】
図１４は、コンテンツアイテムおよび関連アプリケーションの代替バージョンを提案するために使用されるファイルイベントウィンドウ７００を示す。例えば、クライアントデバイス１０２は、コンテンツアイテムを開くための適切なソフトウェアを有していない場合がある。ファイルイベントウィンドウ７００は、クライアントデバイス１０２上に存在するアプリケーションに対応する代替フォーマットを提案することができる。次いで、クライアントデバイス１０２またはコンテンツ管理システム１０６は、選択されたアプリケーションにより開くために、コンテンツアイテムを別のファイル(すなわち、別のファイルフォーマット)に変換することができる。いくつかの実施形態ではユーザがウェブインターフェースを介してコンテンツアイテムを開くために開くオプションを選択することができ、次いで、クライアントデバイス１０２はコンテンツアイテムをコンテンツ管理システム１０６に送信することができ、コンテンツ管理システム１０６はウェブベースのプレゼンテーションのためにコンテンツアイテムを変換することができる。次いで、クライアントデバイス１０２はコンテンツ管理システム１０６からウェブURLを受信し、ウェブブラウザを適切なURLに向けることができる。
【００８７】
図１５は、コンテンツアイテムが保存されるときに変更を記録するために使用されるファイルイベントウィンドウ７００を示す。例えば、クライアントデバイス１０２は、コンテンツアイテムが保存されると、イベントウィンドウ７００を提示することができる。ユーザは、コメントボックス１２０２にコメントを提供することができる。コメントは、保存されている変更を記述することができる。クライアントデバイス１０２は他のイベントウィンドウ７００にコメントを提示することができる(例えば、別のユーザがコンテンツアイテムを開くと、イベントウィンドウ７００は、コメントボックス１２０２からのコメントを示すことができる)。コメントボックス１２０２からのコメントは、コンテンツ管理システム１０６と同期させることができる。図１５では、イベントウィンドウ７００が他の寄稿者に変更を通知すること、ドキュメントのバージョン番号を増分すること、および／または編集特権を別のユーザに渡すことを含むことができる保存オプション１２０４を提示することができる。編集特権を渡すことは、コンテンツアイテムを「チェックアウト」する形態とすることができる。編集特権が別のユーザに渡されると、そのユーザだけがコンテンツアイテムを変更することができる。
【００８８】
いくつかの実施形態では、アプリケーションがコンテンツアイテムを開いている間に、クライアントデバイス１０２はコンテンツアイテムの変更を検出することができる。例えば、ユーザはドキュメントの一部を編集することができ、クライアントデバイス１０２は、変更を検出することができる。次いで、クライアントデバイス１０２は、コメントボックス１２０２と同様のグラフィカルユーザインターフェースオブジェクトを提示して、行われたばかりの変更の要約または説明を要求することができる。いくつかの実施形態では、ユーザが特定の変更を行うことを許可されない(例えば、ユーザはコンテンツアイテムの特定の部分のみを変更することができ、および／または特定のタイプの変更のみを行うことができる)。次いで、クライアントデバイス１０２は、変更が許可されないことをユーザに警告することができる。クライアントデバイス１０２は変更を取り消し、変更が保存されるのを防止する(例えば、変更の保存を防止する、または変更の同期を防止する)ことができる。
【００８９】
コンテンツアイテムが開かれ、保存され、および／または閉じられるときに協調機会を提供することは、レガシーファイルおよびアプリケーションのための協調ワークフローを可能にすることができる。例えば、会社は現代の協調パラダイム(例えば、コメント、通知、タグなど)をサポートしない特定のレガシーアプリケーション、オペレーティングシステム、環境などを使用する必要があり得る。本明細書で開示される原理は、レガシーアプリケーションを破壊することなく、これらおよび他の協調的機能を可能にすることができる。重要なことはこれらの協調的機能をサポートするアプリケーションでさえ、これらの機能のための最適なプレゼンテーションフローを有さない場合があり、例えば、コメントおよびタグはアプリケーション内で見つけることが困難である場合があることである。コンテンツアイテムが開かれる前およびコンテンツアイテムが保存または閉じられた後に協調要素を提示することは、コンテンツアイテムまたはコンテンツアイテムにアクセスするアプリケーションからの気を散らすことなく、ユーザの注意を最大にすることができる。言い換えると、ファイルイベントウィンドウ７００はファイルイベント遷移(例えば、開く、セーブ、または閉じる)において(いくつかの実施形態では)提示されるので、ユーザは、アプリケーション内ソリューションよりもファイルイベントウィンドウ７００により注意を払うことになる。
【００９０】
図１６は、コンテンツアイテムエクスポートオプションを提示するために使用されるファイルイベントウィンドウ７００を示す。例えば、特定のコンテンツアイテムは別のフォーマットまたはプレゼンテーションにエクスポートされることから利益を得ることができ、ソフトウェアをコンパイルすることができ、３D画像をレンダリングすることができ、ビデオを符号化し、レンダリングすることができ、ドキュメントをポータブル形式で保存することができ、電子メールを送信することができ、ウェブサイトを公開すること等ができる。
【００９１】
図１７Aおよび図１７Bは、可能性のあるシステム実施形態の例を示す。より適切な実施形態は、本技術を実施する場合、当業者には明らかであろう。当業者はまた、他のシステム実施形態が可能であることを容易に理解するのであろう。
【００９２】
図１７Aは従来のシステム・バス・コンピューティング・システム構成１７００を示し、システムの構成要素は、バス１７０５を使用して互いに電気通信する。例示的なシステム１７００は、処理ユニット(CPUまたはプロセッサ)１７１０と、読取専用メモリ(ROM)１７２０およびランダムアクセスメモリ(RAM)１７２５などのシステムメモリ１７１５を含む様々なシステム構成要素をプロセッサ１７１０に結合するシステムバス１７０５とを含む。システム１７００は、プロセッサ１７１０に直接接続されるか、近接して接続されるか、またはプロセッサ１７１０の一部として統合される高速メモリのキャッシュを含むことができる。システム１７００はプロセッサ１７１０による迅速なアクセスのために、メモリ１７１５および／または記憶装置１７３０からキャッシュ１７１２にデータをコピーすることができる。このようにして、キャッシュは、データを待つ間のプロセッサ１７１０の遅延を回避して性能向上を提供することができる。これらおよび他のモジュールは、様々なアクションを実行するようにプロセッサ１７１０を制御するか、または制御するように構成することができる。他のシステムメモリ１７１５も同様に使用可能である。メモリ１７１５は、異なる性能特性を有する複数の異なるタイプのメモリを含むことができる。プロセッサ１７１０は、任意の汎用プロセッサと、プロセッサ１７１０を制御するように構成された、記憶装置１７３０に格納されたモジュール１(１７３２)、モジュール２(１７３４)、およびモジュール３(１７３６)などのハードウェアモジュールまたはソフトウェアモジュールと、ソフトウェア命令が実際のプロセッサ設計に組み込まれた専用プロセッサとを含むことができる。プロセッサ１７１０は本質的に、複数のコアまたはプロセッサ、バス、メモリコントローラ、キャッシュなどを含む、完全に自己完結型のコンピューティングシステムであってもよい。マルチコアプロセッサは、対称であっても非対称であってもよい。
【００９３】
コンピューティングデバイス１７００とのユーザインタラクションを可能にするために、入力装置１７４５は、スピーチのためのマイク、ジェスチャまたはグラフィカル入力のためのタッチ感知面、キーボード、マウス、モーション入力、スピーチなど、任意の数の入力機構を表すことができる。出力装置１７３５は、当業者に知られている多数の出力機構のうちの１つ以上であってもよい。場合によっては、マルチモーダルシステムがユーザがコンピューティングデバイス１７００と通信するために複数のタイプの入力を提供可能にすることができる。通信インタフェース１７４０は一般に、ユーザ入力およびシステム出力を支配および管理することができる。いかなる特定のハードウェア構成に対する動作にも制限はなく、したがって、ここでの基本的な特徴は、改良されたハードウェアまたはファームウェア構成が開発されるにつれて、それらに容易に置き換えることができる。
【００９４】
記憶装置１７３０は不揮発性メモリであり、磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタル多用途ディスク、カートリッジ、ランダムアクセスメモリ(RAM)１７２５、読取専用メモリ(ROM)１７２０、およびそれらのハイブリッドなど、コンピュータによってアクセス可能なデータを記憶することができるハードディスクまたは他のタイプのコンピュータ可読媒体とすることができる。
【００９５】
記憶装置１７３０は、プロセッサ１７１０を制御するためのソフトウェアモジュール１７３２、１７３４、１７３６を含むことができる。他のハードウェアまたはソフトウェアモジュールも考えられる。ストレージデバイス１７３０は、システムバス１７０５に接続することができる。一態様では、特定の機能を実行するハードウェアモジュールがその機能を実行するために、プロセッサ１７１０、バス１７０５、表示部１７３５などの必要なハードウェアコンポーネントと関連してコンピュータ可読媒体に格納されたソフトウェアコンポーネントを含むことができる。
【００９６】
図１７Bは説明した方法を実行し、グラフィカル・ユーザ・インターフェース(GUI)を生成し、表示する際に使用することができるチップセット構成を有するコンピュータシステム１７５０を示す。コンピュータシステム１７５０は、開示された技術を実施するために使用することができるコンピュータハードウェア、ソフトウェア、およびファームウェアの一例である。システム１７５０は、識別された計算を実行するように構成されたソフトウェア、ファームウェア、およびハードウェアを実行することができる任意の数の物理的および／または論理的に異なるリソースを表すプロセッサ１７５５を含むことができる。プロセッサ１７５５は、プロセッサ１７５５への入力およびプロセッサ１７５５からの出力を制御することができるチップセット１７６０と通信することができる。この例では、チップセット１７６０がディスプレイなどの出力デバイス１７６５に情報を出力し、たとえば、磁気媒体および半導体媒体を含むことができる記憶装置１７７０から情報を読み取り、記憶装置１７７０に情報を書き込むことができる。チップセット１７６０はRAM１７７５からデータを読み取り、RAM１７７５にデータを書き込むこともできる。様々なユーザインターフェースコンポーネント１７８５とインタフェースするためのブリッジ１７８０が、チップセット１７６０とインタフェースするために提供され得る。そのようなユーザインターフェースコンポーネント１７８５は、キーボード、マイク、タッチ検出および処理回路、マウスなどのポインティングデバイスを含むことができる。一般に、システム１７５０への入力は、様々なソース、機械生成、および／または人間生成のいずれかから来ることができる。
【００９７】
チップセット１７６０は、異なる物理インタフェースを有することができる１つ以上の通信インタフェース１７９０とインタフェースすることもできる。そのような通信インタフェースは、有線および無線ローカルエリアネットワーク、ブロードバンド無線ネットワーク、ならびにパーソナルエリアネットワークのためのインタフェースを含むことができる。本明細書で開示されるGUIを生成し、表示し、使用するための方法のいくつかのアプリケーションは、物理インタフェースを介して順序付けられたデータセットを受信すること、またはプロセッサ１７５５が記憶装置１７７０または１７７５に記憶されたデータを分析することによって機械自体によって生成されることを含むことができる。さらに、マシンはユーザインターフェースコンポーネント１７８５を介してユーザから入力を受け取り、プロセッサ１７５５を使用してこれらの入力を解釈することによって、ブラウジング機能などの適切な機能を実行することができる。
【００９８】
例示的なシステム１７００および１７５０は１つ以上のプロセッサ１７１０を有することができ、または、より大きな処理能力を提供するためにネットワーク化されたコンピュータデバイスのグループまたはクラスタの一部であり得ることが理解されよう。
【００９９】
説明を明確にするために、いくつかの例では、本技術が装置、装置コンポーネント、ソフトウェアで実施される方法におけるステップまたはルーチン、またはハードウェアとソフトウェアの組合せを含む機能ブロックを含む個々の機能ブロックを含むものとして提示されてもよい。
【０１００】
本明細書で説明されるステップ、動作、機能、またはプロセスのいずれも、ハードウェアおよびソフトウェアモジュールの組み合わせによって、単独で、または他のデバイスと組み合わせて、実行または実装され得る。一実施形態では、ソフトウェアモジュールがクライアントデバイスのメモリおよび／またはコンテンツ管理システムの１つまたは複数のサーバに常駐し、プロセッサがモジュールに関連するソフトウェアを実行するときに１つまたは複数の機能を実行するソフトウェアとすることができる。メモリは、非一時的なコンピュータ可読媒体とすることができる。
【０１０１】
いくつかの実施形態ではコンピュータ可読記憶装置、媒体、およびメモリはビットストリームなどを含むケーブル信号または無線信号を含むことができる。しかし、言及される場合、非一時的なコンピュータ可読記憶媒体は、エネルギー、搬送波信号、電磁波、および信号自体などの媒体を明示的に除外する。
【０１０２】
上述の例による方法は、記憶されているか、またはコンピュータ可読媒体から利用可能なコンピュータ実行可能命令を使用して実施することができる。そのような命令は例えば、汎用コンピュータ、専用コンピュータ、または専用処理デバイスに、特定の機能または機能のグループを実行させるか、さもなければ構成させる命令およびデータを含むことができる。使用されるコンピュータリソースの部分は、ネットワークを介してアクセス可能であり得る。コンピュータ実行可能命令は例えば、バイナリ、アセンブリ言語などの中間フォーマット命令、ファームウェア、またはソースコードであってもよい。命令、使用される情報、および／または、説明される例に従った方法の間に生成される情報を格納するために利用されてもよいコンピュータ可読媒体の例は、磁気または光ディスク、フラッシュメモリ、不揮発性メモリを備えたUSBデバイス、ネットワーク化された記憶装置などを含む。
【０１０３】
これらの開示による方法を実装する装置はハードウェア、ファームウェア、および／またはソフトウェアを備えることができ、様々なフォームファクタのうちの任意のものをとることができる。そのようなフォームファクタの典型的な例には、ラップトップ、スマートフォン、スモールフォームファクタパーソナルコンピュータ、パーソナルデジタルアシスタントなどが含まれる。本明細書で説明する機能は、周辺装置またはアドインカードで実施することもできる。そのような機能は、さらなる例として、異なるチップ間の回路基板上で、または単一のデバイス内で実行される異なるプロセス上で実装することもできる。
【０１０４】
命令、当該命令を搬送するための媒体、それらを実行するためのコンピューティングリソース、およびそのようなコンピューティングリソースをサポートするための他の構造は、これらの開示に記載された機能を提供するための手段である。
【０１０５】
添付の特許請求の範囲内の態様を説明するために、様々な例および他の情報が使用されたが、当業者はこれらの例を使用して、様々な実装形態を導出することができるので、特許請求の範囲の限定はそのような例における特定の特徴または構成に基づいて暗示されるべきではない。さらに、いくつかの主題は構造的特徴および／または方法ステップの例に特有の言葉で説明されているが、添付の特許請求の範囲で定義される主題は必ずしもこれらの説明された特徴または動作に限定されないことを理解されたい。例えば、そのような機能は、本明細書で識別されたもの以外のコンポーネントにおいて、異なって分散されるか、または実行されることが可能である。むしろ、記載された特徴およびステップは、添付の特許請求の範囲内のシステムおよび方法の構成要素の例として開示される。
【図１】
0006796194.tif 000002
【図２】
0006796194.tif 000003
【図３】
0006796194.tif 000004
【図４】
0006796194.tif 000005
【図５】
0006796194.tif 000006
【図６】
0006796194.tif 000007
【図７】
0006796194.tif 000008
【図８】
0006796194.tif 000009
【図９】
0006796194.tif 000010
【図１０】
0006796194.tif 000011
【図１１】
0006796194.tif 000012
【図１２】
0006796194.tif 000013
【図１３】
0006796194.tif 000014
【図１４】
0006796194.tif 000015
【図１５】
0006796194.tif 000016
【図１６】
0006796194.tif 000017
【図１７Ａ】
0006796194.tif 000018
【図１７Ｂ】
0006796194.tif 000019