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

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

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

特許7074745共有コンテンツアイテムに関連するプレゼンス情報を提供するグラフィカルユーザインタフェースの提示
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-05-16
(45)【発行日】2022-05-24
(54)【発明の名称】共有コンテンツアイテムに関連するプレゼンス情報を提供するグラフィカルユーザインタフェースの提示
(51)【国際特許分類】
   G06F 16/176 20190101AFI20220517BHJP
   G06F 16/9038 20190101ALI20220517BHJP
   G06F 16/9035 20190101ALI20220517BHJP
   G06Q 10/10 20120101ALI20220517BHJP
   G06F 3/0481 20220101ALI20220517BHJP
【FI】
G06F16/176
G06F16/9038
G06F16/9035
G06Q10/10 310
G06F3/0481
【請求項の数】 15
(21)【出願番号】P 2019512897
(86)(22)【出願日】2017-10-26
(65)【公表番号】
(43)【公表日】2020-01-16
(86)【国際出願番号】 US2017058481
(87)【国際公開番号】W WO2018125372
(87)【国際公開日】2018-07-05
【審査請求日】2019-06-06
(31)【優先権主張番号】15/395,088
(32)【優先日】2016-12-30
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】509117964
【氏名又は名称】ドロップボックス, インコーポレイテッド
(74)【代理人】
【識別番号】110003281
【氏名又は名称】特許業務法人大塚国際特許事務所
(74)【代理人】
【識別番号】100076428
【弁理士】
【氏名又は名称】大塚 康徳
(74)【代理人】
【識別番号】100115071
【弁理士】
【氏名又は名称】大塚 康弘
(74)【代理人】
【識別番号】100112508
【弁理士】
【氏名又は名称】高柳 司郎
(74)【代理人】
【識別番号】100116894
【弁理士】
【氏名又は名称】木村 秀二
(74)【代理人】
【識別番号】100130409
【弁理士】
【氏名又は名称】下山 治
(74)【代理人】
【識別番号】100177390
【弁理士】
【氏名又は名称】大出 純哉
(72)【発明者】
【氏名】ジ, エリカ
(72)【発明者】
【氏名】シェン, エリック
(72)【発明者】
【氏名】ヒラー, マット
(72)【発明者】
【氏名】キム, マット
(72)【発明者】
【氏名】フア, ピーター
(72)【発明者】
【氏名】スピッツ, マシュー
(72)【発明者】
【氏名】ワトキンス, キンバリー
【審査官】北村 学
(56)【参考文献】
【文献】特表2016-537746(JP,A)
【文献】特開2005-346494(JP,A)
【文献】特開2007-272492(JP,A)
【文献】特開2002-297599(JP,A)
【文献】国際公開第2009/125571(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
IPC G06F 3/048 - 3/0489
G06F 16/00 - 16/958
G06Q 10/00 - 10/10
(57)【特許請求の範囲】
【請求項1】
コンテンツ管理システムにより各ステップが実行される方法であって、前記方法は、
前記コンテンツ管理システムの外部の第2のクライアントデバイスが共有コンテンツアイテムにアクセスしたことに応答して生成されたコンテンツアイテム閲覧メッセージを受信することであって、前記コンテンツアイテム閲覧メッセージは、コンテンツアイテムIDと、前記共有コンテンツアイテムにアクセスする前記第2のクライアントデバイスと関連するアカウント識別子と、タイムスタンプとを含む、受信することと、
前記コンテンツ管理システムの有する第1のアカウントに関連する第1のクライアントデバイスから、前記共有コンテンツアイテムの1以上の閲覧についての情報に対する要求を受信することと、
前記第1のアカウントに対するチームのメンバーシップ情報を判定することであって、前記チームのメンバーシップ情報は、前記第1のアカウントがメンバーであるチームと、前記第1のアカウントが関連する前記チームにおける役割とを特定する、判定することと、
前記共有コンテンツアイテムにアクセスする前記第2のクライアントデバイスに関連する前記アカウント識別子についての識別情報を選択することであって、前記識別情報は、前記第1のアカウントに対する前記チームのメンバーシップ情報に基づく詳細なレベルの情報である、選択することと、
前記第1のアカウントに関連する前記第1のクライアントデバイスに、前記共有コンテンツアイテムに関連するグラフィカルユーザインタフェースにおける提示のために前記共有コンテンツアイテムの前記1以上の閲覧についての前記情報を送信することとを含み、前記共有コンテンツアイテムの前記1以上の閲覧についての前記情報は、前記共有コンテンツアイテムにアクセスする前記第2のクライアントデバイスに関連する前記アカウント識別子についての識別情報を含み、前記識別情報は、前記1以上の閲覧についての情報に対する前記要求に関連付けられた、前記第1のアカウントに対する前記チームのメンバーシップ情報に基づく詳細なレベルの情報である、方法。
【請求項2】
請求項1に記載の方法であって、前記グラフィカルユーザインタフェースは、前記共有コンテンツアイテムにアクセス可能なユーザのリストを提示し、提示された前記ユーザに対して、前記グラフィカルユーザインタフェースはまた、前記コンテンツアイテムに対する各ユーザの最後の閲覧についての情報を提示する、方法。
【請求項3】
請求項2に記載の方法であって、
前記コンテンツ管理システムによって、プレゼンス通知を受信することであって、前記プレゼンス通知は、前記共有コンテンツアイテムにアクセス可能なユーザの前記リストから少なくとも1人のそれぞれのユーザを識別する、受信することを含み、前記少なくとも1人のそれぞれのユーザに対して、前記コンテンツアイテムに対する前記最後の閲覧はそれぞれのユーザが前記コンテンツアイテムを現在閲覧していることを反映する、方法。
【請求項4】
請求項1から3のいずれか1項に記載の方法であって、前記共有コンテンツアイテムに関連する前記グラフィカルユーザインタフェースは、前記第1のクライアントデバイスのネイティブアプリケーション内で開かれた前記コンテンツアイテムのコピーとともに提示される、方法。
【請求項5】
請求項1から3のいずれか1項に記載の方法であって、前記共有コンテンツアイテムに関連する前記グラフィカルユーザインタフェースは、ファイルシステムブラウザにおける開かれていないコンテンツアイテムのコピーの選択とともに提示される、方法。
【請求項6】
請求項1から5のいずれか1項に記載の方法であって、アクセスされた前記共有コンテンツアイテムが、少なくとも前記第2のクライアントデバイスによるアクセスの時点において、リンクを用いて前記第2のクライアントデバイスによってアクセスされ、前記第2のクライアントデバイスは前記コンテンツ管理システムのアカウントにログインしていない、方法。
【請求項7】
請求項1から6のいずれか1項に記載の方法であって、更に、
サービスを受ける要求に応答して、クライアントデバイスのユーザを前記コンテンツアイテムと関連するアクセス制御リストに登録することを含む、方法。
【請求項8】
共有コンテンツアイテムに対する被閲覧状態情報を、コンテンツ管理システムの第1のアカウントに関連する第1のクライアントデバイスに提供するコンテンツ管理システムであって、前記コンテンツ管理システムは、
共有コンテンツアイテムの第1のコピーを格納するように構成されたコンテンツアイテム格納手段であって、前記共有コンテンツアイテムの前記第1のコピーは、前記コンテンツ管理システムの外部の、自身のファイルシステムを有する第2のクライアントデバイス上に格納される前記共有コンテンツアイテムの第2のコピーと同期され、前記第2のクライアントデバイスは、前記コンテンツ管理システムの第2のアカウントに関連付けられる、コンテンツアイテム格納手段と、
コンテンツアイテム閲覧ログであって、前記コンテンツアイテム閲覧ログは、前記共有コンテンツアイテムにアクセスする前記コンテンツ管理システムの外部の少なくとも1つのデバイスに応答して生成されたコンテンツアイテム閲覧メッセージに含まれる情報を受信し、格納するように構成され、前記情報は、前記共有コンテンツアイテムのコンテンツアイテムID、前記共有コンテンツアイテムのアクセスのタイムスタンプ、および前記共有コンテンツアイテムのアクセスを実行した前記コンテンツ管理システムの前記第2のアカウントのアカウントIDを含む、コンテンツアイテム閲覧ログと、
前記共有コンテンツアイテムの1以上の閲覧についての情報に対する要求を受信する手段であって、前記要求は、前記コンテンツ管理システムの有する前記第1のアカウントと関連する、受信する手段と、
前記第1のアカウントに対するチームのメンバーシップ情報を判定する手段であって、前記チームのメンバーシップ情報は、前記第1のアカウントがメンバーであるチームと、前記第1のアカウントが関連する前記チームにおける役割とを特定する、判定する手段と、
前記コンテンツアイテム閲覧ログから、前記共有コンテンツアイテムの前記1以上の閲覧についての前記情報を検索する手段と、
前記共有コンテンツアイテムにアクセスする前記第2のクライアントデバイスに関連する前記アカウントIDについての識別情報を選択する手段であって、前記識別情報は、前記第1のアカウントに対する前記チームのメンバーシップ情報に基づく詳細なレベルの情報である、選択する手段と、
前記第1のクライアントデバイスに、前記第1のクライアントデバイスの前記ファイルシステムによって格納された前記コンテンツアイテムの前記第2のコピーと関連する提示のために前記共有コンテンツアイテムの前記1以上の閲覧についての前記情報を送信する少なくとも1つの通信インタフェースとを含み、前記共有コンテンツアイテムの前記1以上の閲覧についての前記情報は、前記共有コンテンツアイテムにアクセスする前記第2のクライアントデバイスに関連する前記アカウントIDについての識別情報を含み、前記識別情報は、前記1以上の閲覧についての情報に対する前記要求に関連付けられた、前記第1のアカウントに対する前記チームのメンバーシップ情報に基づく詳細なレベルの情報である、コンテンツ管理システム。
【請求項9】
請求項8に記載のコンテンツ管理システムであって、
前記コンテンツアイテムにアクセスする各アカウントのレコードを格納するように構成されるアクセス制御リストデータベースと、
前記コンテンツアイテムID、前記共有コンテンツアイテムの前記アクセスの前記タイムスタンプ、および前記アカウントIDと共に前記コンテンツアイテムにアクセスする各アカウントを識別する情報を、前記第1のクライアントデバイスの前記ファイルシステムによって格納された前記コンテンツアイテムの前記第2のコピーに関連する提示のために前記第1のクライアントデバイスへ送信するように構成される前記少なくとも1つの通信インタフェースと、を含むコンテンツ管理システム。
【請求項10】
請求項8または9に記載のコンテンツ管理システムであって、
通知手段を含み、前記通知手段は、前記共有コンテンツアイテムがアクセスされたという報告を受信するように構成され、且つ、前記コンテンツ管理システムの前記第1のアカウントまたは前記第2のアカウントが前記共有コンテンツアイテムにアクセスしていることを示す通知を前記第1のクライアントデバイスに送信するように構成される、コンテンツ管理システム。
【請求項11】
請求項8又は10に記載のコンテンツ管理システムであって、
アクセス制御リストサービスであって、前記共有コンテンツアイテムへのアクセスを有する前記コンテンツ管理システムの前記第1のアカウントを含むアクセス制御リスト情報を記録するように構成され、且つ、前記第2のアカウントへアクセスを提供する共有リンクの存在を記録するように構成される、アクセス制御リストサービスと、
前記アクセス制御リスト情報を共有するための前記コンテンツアイテムに関連するポリシーを決定するように構成された、被閲覧状態/アクセスサービスと、
前記ポリシーに従う前記アクセス制御リスト情報と、複数のアカウントおよび前記共有リンクのそれぞれに関連付けられるコンテンツアイテム閲覧情報とを、前記ポリシーに従う前記第1のクライアントデバイスによる表示のために、前記第1のクライアントデバイスに送信するように構成される前記通信インタフェースとを含む、コンテンツ管理システム。
【請求項12】
命令を含むコンピュータプログラムであって、前記命令が実行されると、少なくとも1つのプロセッサに、
コンテンツ管理システムにより、前記コンテンツ管理システムの外部の少なくとも1つのデバイスが共有コンテンツアイテムにアクセスしたことに応答して生成されたコンテンツアイテム閲覧メッセージを受信することであって、前記コンテンツアイテム閲覧メッセージは、コンテンツアイテムIDと、前記共有コンテンツアイテムにアクセスする前記少なくとも1つのデバイスと関連するアカウント識別子と、タイムスタンプとを含む、受信することと、
前記共有コンテンツアイテムの1以上の閲覧についての情報に対する要求を受信することであって、前記要求は、前記コンテンツ管理システムの有する第1のアカウントと関連する、受信することと、
前記第1のアカウントに対するチームのメンバーシップ情報を判定することであって、前記チームのメンバーシップ情報は、前記第1のアカウントがメンバーであるチームと、前記第1のアカウントが関連する前記チームにおける役割とを特定する、判定することと、
前記共有コンテンツアイテムにアクセスする前記少なくとも1つのデバイスに関連する前記アカウント識別子についての識別情報を選択することであって、前記識別情報は、前記第1のアカウントに対する前記チームのメンバーシップ情報に基づく詳細なレベルの情報である、選択することと、
前記第1のアカウントに関連するデバイスに、前記共有コンテンツアイテムの前記1以上の閲覧についての前記情報を送信することと、を行わせ、前記共有コンテンツアイテムの前記1以上の閲覧についての前記情報は、前記共有コンテンツアイテムにアクセスする前記少なくとも1つのデバイスに関連する前記アカウント識別子についての識別情報を含み、前記識別情報は、前記1以上の閲覧についての情報に対する前記要求に関連付けられた、前記第1のアカウントに対する前記チームのメンバーシップ情報に基づく詳細なレベルの情報である、コンピュータプログラム。
【請求項13】
請求項12に記載のコンピュータプログラムであって、前記コンテンツアイテム閲覧メッセージは、前記共有コンテンツアイテムを閲覧するために使用される第2のアカウントを識別する、コンピュータプログラム。
【請求項14】
請求項12または13に記載のコンピュータプログラムであって、前記コンテンツアイテム閲覧メッセージは、いつ前記コンテンツアイテムが共有リンクを使用して閲覧されたかを識別する、コンピュータプログラム。
【請求項15】
請求項12から14のいずれか1項に記載のコンピュータプログラムであって、前記共有コンテンツアイテムの前記1以上の閲覧についての情報を提示する前記命令は、前記1以上の閲覧についての情報と組み合わせてアクセス情報を提示する命令を含み、これにより、前記共有コンテンツアイテムへの最後の閲覧は、前記共有コンテンツアイテムにアクセスする各アカウントに関連して閲覧されることができる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願へのクロスリファレンス]
本出願は、2016年12月30日に出願された「共有コンテンツアイテムのローカルコピーのプレゼンス、アクセスおよび被閲覧状態」と題する米国特許出願第15/395088号の優先権を主張するものであり、その全体および全目的のために、参照により本明細書に組み込まれる。
【背景技術】
【0002】
コラボレーションは、これまで、常にほとんどの組織にとって中心的な活動であった。今日、チームがほぼあらゆるタイプのプロジェクトで共同作業するのを助ける多くのツールが存在する。多くのプロジェクトの中心には、チームメンバおよびコラボレータがアクセス、共有、修正などを行う必要があるドキュメントがある。
【0003】
しかし、これらのツールを用いるチームメンバ、さらにはドキュメント作成者でさえ、他のチームメンバが自分のワークプロダクトを閲覧したかどうかをたびたび尋ねるか、またはどのチームメンバがプロジェクトに参加しているかをたびたび尋ねるかもしれない。
【図面の簡単な説明】
【0004】
本開示についての上述の及び他の利点及び特徴は、添付の図面に示されるそれらの具体的な実施形態を参照することによって明らかになる。これらの図面は、本開示の例示の実施形態を示しているだけであり、それゆえ、本開示の範囲を限定しているとみなされてはならないことを理解した上で、添付の図面を用いてさらに具体的かつ詳細に本明細書の原理を記述して説明する。
【0005】
図1図1は、コンテンツ管理システム及びクライアントデバイスのシステム構成例を示す。
【0006】
図2図2は、コンテンツ管理システム及びクライアントデバイスのシステム構成例を示す。
【0007】
図3図3は、クライアントデバイス上のコンテンツアイテムビューから被閲覧状態情報を記録する例示的な方法を示す。
【0008】
図4図4は、クライアントデバイス上のコンテンツアイテムに関連して、被閲覧状態情報を提供する例示的な方法を示す。
【0009】
図5図5は、クライアントデバイスからプレゼンス情報を受信する例示的な方法を示す。
【0010】
図6図6は、クライアントデバイス上でコンテンツアイテムに関連してプレゼンス情報を送信し、表示する例示的な方法を示す。
【0011】
図7図7は、コンテンツアイテムに関連して被閲覧状態情報を可能にするための例示的なグラフィカルユーザインタフェースを示す。
【0012】
図8図8は、クライアントデバイス上のコンテンツアイテムに関連して、被閲覧状態情報を表示するための例示的なグラフィカルユーザインタフェースを示す。
【0013】
図9A図9Aは、コンテンツアイテムのためのアクセス制御リストのメンバーに、プレゼンスおよび被閲覧状態情報を有するアクセス制御リストを表示する例示的なグラフィカルユーザインタフェースを示す。
【0014】
図9B図9Bは、リンクを使用してコンテンツアイテムにアクセスするメンバー及びアクセス制御リストのメンバーに、プレゼンス及び被閲覧状態情報を有するアクセス制御リストを表示するための例示的なグラフィカルユーザインタフェースを示す。
【0015】
図9C図9Cは、プレゼンスおよび被閲覧状態情報にアクセスするための他の例示的なビューを示す。
【0016】
図9D図9Dは、プレゼンスおよび被閲覧状態情報にアクセスするための他の例示的なビューを示す。
【0017】
図10A図10Aは、被閲覧状態の表示を有効または無効にするための例示的なグラフィカルユーザインタフェースを示す。
【0018】
図10B図10Bは、コレクションの許可された閲覧者の閲覧を有効または無効にするための例示的なグラフィカルユーザインタフェースを示す。
【0019】
図10C図10Cは、コンテンツアイテムの許可された閲覧者の閲覧を有効又は無効にするための例示的なグラフィカルユーザインタフェースを示す。
【0020】
図11図11は、例示的なシステム実施形態を示す。
【発明を実施するための形態】
【0021】
本開示のさまざまな実施の形態について、以下に詳しく説明する。具体的な実施形態について議論するものの、これは例示のみを目的として行われていると理解されるべきである。当業者であれば、本開示の精神及び範囲を逸脱せずに他の構成要素及び構成が使用されうることを理解するであろう。
【0022】
開示された技術は、コラボレータのワークプロダクトへアクセスする者に対するより良好な可視性と、コラボレータのワークプロダクトをいつコラボレータのいずれか1人が最後に見たかに対する可視性とを、コラボレータに与えるためのこの分野における必要性に対処する。具体的には、チームを悩ませる1つの問題は、チームメンバが、他のチームメンバがコンテンツアイテムをレビューしたかどうかを知らない場合である。一般的なシナリオは、第1のチームメンバがコンテンツアイテムに作業を行って、そのコンテンツアイテムを電子メールを介して他のチームメンバに送信するものである。しかし、第1のチームメンバは応答を取得しない。第1のチームメンバは、他のチームメンバがコンテンツアイテムを閲覧したうえで単にコメントがないのか、或るは、誰がコンテンツアイテムをレビューすべきかチームメンバが分からないのかが分からない。
【0023】
本技術は、コンテンツ管理システムによって格納され管理されるコンテンツアイテムのアクセスリスト及び被閲覧状態情報を表示することによって、上記及び他の問題を解決することができる。有利なことに、本技術は、チームメンバがコンテンツ管理システム内のコンテンツアイテムを閲覧または作業することを必要とせず、チームメンバは、自身のコンピューティングデバイス上でネイティブにコンテンツアイテムに対して作業することができる。
【0024】
いくつかの実施形態では、開示される技術は、とりわけ、コンテンツアイテムの同期機能およびコラボレーション機能を有するコンテンツ管理システムのコンテキストで展開される。例示的なシステム構成100が図1に示されており、図1は、コンテンツ管理システム110がクライアントデバイス150と対話することを示している。
【0025】
アカウント
【0026】
コンテンツ管理システム110は、アカウントに関連してコンテンツアイテムを格納することができ、コンテンツアイテムの検索、修正、ブラウズ、および/または共有などの様々なコンテンツアイテム管理タスクを実行することができる。さらに、コンテンツ管理システム110は、アカウントが複数のクライアントデバイスからコンテンツアイテムにアクセスすることを可能にすることができる。
【0027】
コンテンツ管理システム110は、複数のアカウントをサポートする。エンティティ(ユーザ、ユーザのグループ、会社など)は、コンテンツ管理システムでアカウントを作成することができ、アカウントデータベース140はアカウント詳細を格納することができる。アカウントデータベース140は、登録エンティティについてのプロファイル情報を格納することができる。場合によっては、登録エンティティのプロファイル情報は、ユーザ名および/または電子メールアドレスを含む。アカウントデータベース140は、アカウントタイプ(例えば、様々な階層(tier)の無料アカウントまたは有料アカウント)、割り当てられたストレージスペース、使用ストレージスペース、常駐する登録コンテンツ管理クライアントアプリケーション152を有するクライアントデバイス150、セキュリティ設定、個人構成設定などのアカウント管理情報を含むことができる。
【0028】
アカウントデータベース140は、エンティティに関連付けられたアカウントのグループを格納することができる。グループは、グループポリシーおよび/またはアクセス制御リストに基づく許可を有することができ、グループのメンバは、許可を継承することができる。例えば、マーケティンググループは、1組のコンテンツアイテムへのアクセスを有することができる一方、エンジニアリンググループは、別の組のコンテンツアイテムへのアクセスを有することができる。管理者グループは、グループの変更、ユーザアカウントの変更などを行うことができる。
【0029】
コンテンツアイテムストレージ
【0030】
コンテンツ管理システム110の特徴は、コンテンツアイテムの格納であり、コンテンツアイテムはコンテンツストレージ142に格納され得る。コンテンツアイテムは、ドキュメント、コラボレーションコンテンツアイテム、テキストファイル、オーディオファイル、画像ファイル、ビデオファイル、ウェブページ、実行可能ファイル、バイナリファイルなどの任意のデジタルデータであり得る。コンテンツアイテムは、フォルダ、zipファイル、プレイリスト、アルバムなど、異なる振る舞いを有するコンテンツアイテムをグループ化するためのコレクションまたは他の機構も含むことができる。コレクションは、フォルダ、または共通の属性によって関連付けまたはグループ化された複数のコンテンツアイテムを参照することができる。いくつかの実施形態では、コンテンツストレージ142は、特定の機能を処理するために、他のタイプのストレージまたはデータベースと組み合わされる。コンテンツストレージ142は、コンテンツアイテムを格納することができ、一方、メタデータデータベース146は、コンテンツアイテムに関するメタデータを格納することができる。同様に、コンテンツアイテムがコンテンツストレージ142のどこに格納されているかに関するデータは、コンテンツディレクトリ144に格納され得る。さらに、変更、アクセスなどに関するデータはサーバファイルジャーナル148に格納され得る。 コンテンツストレージ142、コンテンツディレクトリ144、サーバファイルジャーナル148、およびメタデータデータベース146などの様々なストレージ/データベースのそれぞれは、複数のそのようなストレージまたはデータベースから構成され得、多数のデバイスおよびロケーションに分散され得る。その他の構成も可能である。例えば、コンテンツストレージ142、コンテンツディレクトリ144、サーバファイルジャーナル148、および/またはメタデータデータベース146からのデータは、1つ以上のコンテンツストレージまたはデータベースに組み合わされてもよく、あるいは、さらなるコンテンツストレージまたはデータベースにさらにセグメント化されてもよい。従って、コンテンツ管理システム110は、図1に示されるよりもより多い又はより少ないストレージおよび/またはデータベースを含んでよい。
【0031】
いくつかの実施形態では、コンテンツストレージ142は、少なくとも1つのコンテンツ管理サービス116に関連付けられ、少なくとも1つのコンテンツ管理サービス116は、格納のためのコンテンツアイテムを受信し、格納のためにコンテンツアイテムを準備し、コンテンツアイテムの格納場所を選択し、ストレージからコンテンツアイテムを検索することを含むが、これらに限定されない、コンテンツアイテムの格納を管理するためのソフトウェアまたは他の実行可能な命令を含む。いくつかの実施形態では、コンテンツ管理サービス116は、コンテンツストレージ142に格納するために、コンテンツアイテムをより小さなチャンクに分割することができる。コンテンツアイテムを構成する各チャンクの位置は、コンテンツディレクトリ144に記録することができる。 コンテンツディレクトリ144は、コンテンツストレージ142に格納された各コンテンツアイテムのコンテンツエントリを含むことができる。コンテンツエントリは、コンテンツアイテムを識別する一意のIDに関連付けることができる。
【0032】
いくつかの実施形態では、コンテンツディレクトリ144内のコンテンツアイテムを識別する一意のIDは、決定論的ハッシュ関数から導出することができる。決定論的ハッシュ関数は、同じコンテンツアイテムのすべてのコピーに対して同じ識別子を出力するが、異なるコンテンツアイテムに対して異なる識別子を出力するので、コンテンツアイテムに対する一意のIDを導出するこの方法は、コンテンツアイテムの複製がそのように認識されることを保証することができる。この方法を使用して、コンテンツ管理サービス116は、各コンテンツアイテムに対して一意のIDを出力することができる。
【0033】
コンテンツ管理サービス116は、コンテンツアイテムのコンテンツパスを指定または記録することもできる。コンテンツパスはコンテンツアイテムの名前及び/又はコンテンツアイテムに関連するフォルダ階層とを含み得る。例えば、コンテンツパスは、コンテンツアイテムがクライアントデバイス上のローカルファイルシステムに格納される、フォルダまたはフォルダのパスを含むことができる。コンテンツ管理サービス116は、コンテンツパスを使用して、ツリー状のディレクトリ構造などの適切なフォルダ階層内にコンテンツアイテムを提示することができる。コンテンツアイテムは、コンテンツストレージ142にブロック単位で格納され、ツリー状のディレクトリ構造の下に格納されないであろうが、そのようなディレクトリ構造は、ユーザにとって快適なナビゲーション構造であり、コンテンツ管理サービス116は、コンテンツアイテムのコンテンツパスを定義または記録することができ、ディレクトリ構造の「ルート」ノードは各アカウントに対するネームスペースであり得る。ネームスペース内には、アカウントおよび/またはコンテンツ管理サービス116のユーザによって定義されたディレクトリ構造を設けることができる。コンテンツディレクトリ144は、コンテンツエントリの一部として、各コンテンツアイテムに対するコンテンツパスを格納することができる。
【0034】
いくつかの実施形態では、ネームスペースは、ルートノード内に格納されているかのように、ディレクトリ構造内に現れる追加のネームスペースを含むことができる。これは、アカウントが共有コレクションへのアクセスを有するときに起こり得る。共有コレクションには、コンテンツ管理システム110内でそれ自体のネームスペースを割り当てることができる。共有コレクションは、実際には共有コレクションのルートノードであるが、ディレクトリ構造内のユーザアカウントのネームスペースに従属して配置され、ユーザアカウントのフォルダ内のフォルダとして現れることができる。上述したように、ディレクトリ構造は、ユーザにとって快適なナビゲーション構造に過ぎず、コンテンツストレージ142におけるコンテンツアイテムの格納位置に相関しない。
【0035】
アカウントがコンテンツアイテムを閲覧するディレクトリ構造は、コンテンツ管理システム110における格納位置に相関しないが、ディレクトリ構造は、クライアントデバイス150により使用されるファイルシステムに基づいて、クライアントデバイス150における格納位置に相関することができる。
【0036】
上述したように、コンテンツディレクトリ144内のコンテンツエントリは、コンテンツアイテムを構成する各チャンクの位置を含むこともできる。より具体的には、コンテンツエントリは、コンテンツアイテムを構成するチャンクのコンテンツストレージ142内の位置を識別するコンテンツポインタを含むことができる。
【0037】
コンテンツパスおよびコンテンツポインタに加えて、コンテンツディレクトリ144内のコンテンツエントリはまた、コンテンツアイテムへのアクセスを有するユーザアカウントを識別するユーザアカウント識別子、および/またはコンテンツアイテムへのアクセスを有するグループを識別するグループ識別子を含むことができる。いくつかの実施形態では、複数のユーザアカウント識別子が、コンテンツアイテムが複数のユーザアカウントによる共有アクセスを有することを示す単一のコンテンツエントリに関連付けられることができる。いくつかの実施形態では、単一のコンテンツエントリに関連付けられたユーザアカウント識別子は、関連付けられたコンテンツアイテムに対して異なる許可(permission)を指定することができる。いくつかの実施形態では、コンテンツディレクトリ144は、ユーザアカウントに関連するコンテンツアイテムの階層構造を記述することができ、階層構造は、ユーザアカウントに固有である。
【0038】
コンテンツ管理サービス116は、重複するコンテンツアイテム、または、コンテンツアイテムまたはコンテンツアイテムの複数のバージョンを構成する重複するブロックを識別することによって、必要とされるストレージスペースの量を減らすことができる。複数のコピーを格納する代わりに、コンテンツストレージ142は、コンテンツアイテムまたはコンテンツアイテムのブロックの単一のコピーを格納することができ、コンテンツディレクトリ144は、複製を単一のコピーにリンクするためのポインタまたは他の機構を含むことができる。
【0039】
コンテンツ管理サービス116は、コンテンツアイテムの一意のIDに関連して、コンテンツアイテム、コンテンツアイテムタイプ、フォルダ、ファイルパス、および/または様々なアカウント、コレクション、またはグループへのコンテンツアイテムの関係を記述するメタデータを、メタデータデータベース146に記憶することもできる。
【0040】
コンテンツ管理サービス116は、変更、アクセスなどに関するデータのログをサーバファイルジャーナル148に格納することもできる。サーバファイルジャーナル148は、コンテンツアイテムの一意のIDと、変更またはアクセス行為の記述とを、タイムスタンプまたはバージョン番号、および任意の他の関連データと共に含むことができる。サーバファイルジャーナル148はまた、変更またはコンテンツアイテムアクセスによって影響を受けるブロックへのポインタを含むことができる。コンテンツ管理サービスは、コンテンツアイテムと、コンテンツアイテムの異なるバージョン(分岐バージョンツリーを含む)と、サーバファイルジャーナル148から取得できる変更履歴とへの変更を追跡するコンテンツアイテムバージョンコントロールを使用することにより、オペレーションを取り消す能力を与えることができる。変更履歴は、元のコンテンツアイテムのバージョンに適用された場合、変更後のコンテンツアイテムのバージョンを生成する一組の変更を含み得る。
【0041】
コンテンツアイテムの同期
【0042】
コンテンツ管理システム110の別の特徴は、コンテンツアイテムを少なくとも1つのクライアントデバイス150と同期させることである。クライアントデバイスは、異なる形態をとることができ、異なる能力を有することができる。例えば、クライアントデバイス170は、その上に常駐する複数のアプリケーションによってアクセス可能なローカルファイルシステムを有するコンピューティングデバイスである。クライアントデバイス172は、コンテンツアイテムが、特定のアプリケーションにのみアクセス可能、または特定のアプリケーションによって与えられる許可によってのみアクセス可能であり、コンテンツアイテムが、アプリケーション固有の空間またはクラウドのいずれかに格納されるコンピューティングデバイスである。クライアントデバイス174は、ウェブブラウザを介してコンテンツ管理システム110にアクセスし、ウェブインタフェースを介してコンテンツアイテムにアクセスする任意のクライアントデバイスである。例示的なクライアントデバイス170、172、および174は、ラップトップ、モバイル装置、またはウェブブラウザなどのフォームファクタで示されているが、その説明は、これらの例示的なフォームファクタの装置に限定されないことを理解されたい。例えば、クライアント172などのモバイルデバイスは、その上に常駐する複数のアプリケーションによってアクセス可能なローカルファイルシステムを有する、或いはクライアント172は、ウェブブラウザを介してコンテンツ管理システム110にアクセスするであろう。したがって、フォームファクタは、クライアント150の能力を考慮するときに制限的であるとみなされるべきではない。クライアントデバイス150に関して本明細書で説明される1つまたは複数の機能は、デバイスの特定の能力に応じて、すべてのクライアントデバイス上で利用可能であってもよく、または利用可能でなくてもよく、ファイルアクセスモデルは、そのような能力の1つである。
【0043】
多くの実施形態では、クライアントデバイスは、コンテンツ管理システム110のアカウントに関連付けられるが、いくつかの実施形態では、クライアントデバイスは、共有リンクを使用してコンテンツにアクセスすることができ、アカウントを必要としない。
【0044】
上述したように、いくつかのクライアントデバイスは、ウェブブラウザを使用してコンテンツ管理システム110にアクセスすることができる。しかしながら、クライアントデバイスは、クライアントデバイス150に格納されて実行されるクライアントアプリケーション152を使用してコンテンツ管理システム110にアクセスすることもできる。クライアントアプリケーション152は、コンテンツアイテム同期サービス156を含むことができる。
【0045】
コンテンツアイテム同期サービス156は、コンテンツ管理サービス116と通信して、クライアントデバイス150とコンテンツ管理システム110との間でコンテンツアイテムに対する変更を同期させることができる。
【0046】
クライアントデバイス150は、コンテンツ同期サービス156を介してコンテンツをコンテンツ管理システム110と同期させることができる。同期はプラットフォーム非依存であってもよい。すなわち、コンテンツは、種々のタイプや能力やオペレーティングシステムなどを有する複数のクライアントデバイスに亘って同期され得る。 コンテンツ同期サービス156は、クライアントデバイス150のファイルシステムの指定された場所のコンテンツアイテムに対する任意の変更(新規の、削除された、修正された、コピーされた、または移動されたコンテンツアイテム)を同期させることができる。
【0047】
コンテンツアイテムは、クライアントデバイス150からコンテンツ管理システム110に同期させることができ、その逆も可能である。同期がクライアントデバイス150からコンテンツ管理システム110へのものである実施形態では、ユーザは、クライアントデバイス150のファイルシステムから直接コンテンツアイテムを操作することができ、一方、ファイルシステム拡張153(これは、ローカルファイルシステム又はオペレーティングシステムカーネルと一体化され得る)は、クライアントデバイス150のファイルシステムの指定位置におけるコンテンツアイテムに対する読み取り、書き込み、コピー、移動、削除コマンドをインターセプトすることができる。
【0048】
ファイルシステム拡張153は、書き込み、移動、コピー、または削除コマンドを発見すると、コンテンツアイテム同期サービス156に通知することができ、コンテンツアイテム同期サービス156は、変更をコンテンツ管理システムサービス116に同期させることができる。いくつかの実施形態では、コンテンツアイテム同期サービス156は、コンテンツアイテムをブロックに分割すること、一意の識別子を生成するためにコンテンツアイテムをハッシュ化することなど、上述した機能を含む、コンテンツ管理システムサービス116のいくつかの機能を実行することができる。コンテンツ同期サービス156は、クライアントストレージインデックス164内のコンテンツにインデックスを付与し、その結果をストレージインデックス164に保存することができる。インデックスを付与することは、各コンテンツアイテムの一意の識別子を作成することを含むことができる。いくつかの実施形態では、コンテンツ同期サービス156は、ハッシュ関数を介してコンテンツアイテムのデータ(例えば、ファイル名および/または他のメタデータを除く)を配置することによって、この一意の識別子を作成し、上述したように、コンテンツ管理システムは、同様のプロセスを使用して、コンテンツ管理システム110上のコンテンツに識別子を提供することができる。コンテンツ同期サービス156は、ストレージインデックス164を使用して、クライアントストレージ内のコンテンツの少なくとも一部と、コンテンツ管理システム110上のユーザアカウントに関連付けられたコンテンツとの同期を容易にすることができる。例えば、コンテンツ同期サービス156は、ストレージインデックス164をコンテンツ管理システム110と比較し、クライアントストレージ上のコンテンツと、コンテンツマネジメントシステム110上のユーザアカウントに関連付けられたコンテンツとの間の差を検出することができる。次いで、コンテンツ同期サービス156は、クライアントストレージ上のコンテンツを適宜、アップロード、ダウンロード、修正、および削除することによって、差を調停しようと試みることができる。コンテンツ管理サービス116は、コンテンツアイテムのための変更されたブロックまたは新しいブロックを格納し、適宜、サーバファイルジャーナル148、メタデータデータベース146、コンテンツディレクトリ144、コンテンツストレージ142、アカウントデータベース140などを更新することができる。
【0049】
コンテンツ管理システム110からクライアントデバイス150に同期する場合、サーバファイルジャーナル148に記録されたコンテンツアイテムの修正、追加、削除、移動は、通知サービス117を使用してクライアントデバイス150に送信されるべき通知をトリガすることができる。クライアントデバイス150がサーバファイルジャーナル148への変更を通知されると、クライアントデバイスは、ストレージインデックス164をチェックして、最後の同期以降にタイムスタンプの変更が発生したかどうか、または特定の変更が同期化されたかどうかを判定することができる。クライアントデバイス150が、コンテンツ管理システム110と同期していないと判断した場合、コンテンツアイテム同期サービス156は、変更を含むコンテンツアイテムブロックを要求し、変更されたコンテンツアイテムのローカルコピーを更新する。いくつかの実施形態では、通知サービスは、サーバファイルジャーナル148などのコンテンツ管理システム110の他のサービスまたはデータベースに問い合わせて、通知のためのより多くのコンテキストを得ることができ、通知を別の通知と一括することができるかどうか、または通知を補足することができるかどうかを判定することができる。
【0050】
クライアントデバイス150が利用可能なネットワーク接続を有さない場合がある。このシナリオでは、コンテンツ同期サービス156は、コンテンツアイテムの変更に対してリンクされたコレクションを監視し、ネットワーク接続が可能になった際のコンテンツマネージメントシステム110への後の同期のために、これらの変更をキューに入れ得る。同様に、ユーザは、コンテンツ管理システム110との同期を手動で開始、終了、一時停止又は再開し得る。
【0051】
コンテンツアイテム同期サービス156は、コンテンツ管理システム110上の特定のユーザアカウントに関連するすべてのコンテンツを同期させることができる。あるいは、コンテンツアイテム同期サービス156は、コンテンツ管理システム110上の特定のユーザアカウントに関連付けられたコンテンツ全体のうちのコンテンツの一部を選択的に同期させることができる。コンテンツの一部のみを選択的に同期させることは、クライアントデバイス150上のスペースを保ち、帯域幅を節約することができる。
【0052】
いくつかの実施形態では、コンテンツアイテム同期サービス156は、特定のユーザアカウントに関連付けられたコンテンツの一部を選択的に保存し、コンテンツの残りの部分のためにプレースホルダコンテンツアイテムをクライアントストレージに格納する。例えば、コンテンツアイテム同期サービス156は、コンテンツ管理システム110上のそれぞれの完全なコンテンツアイテムと同じファイル名、パス、拡張子、メタデータを有するが、完全なコンテンツアイテムのデータを欠いているプレースホルダコンテンツアイテムを格納することができる。プレースホルダコンテンツアイテムは、数キロバイト以下のサイズとすることができ、一方、それぞれの完全なコンテンツアイテムは、著しく大きくなり得る。クライアントデバイス150がコンテンツアイテムにアクセスしようと試みた後、コンテンツアイテム同期サービス156は、コンテンツ管理システム110からコンテンツアイテムのデータを検索し、完全なコンテンツアイテムを、アクセスしているクライアントデバイス150に提供することができる。このアプローチは、コンテンツ管理システム110上のユーザのコンテンツへの完全なアクセスを依然として提供しながら、かなりのスペースおよび帯域幅の節約を提供することができる。
【0053】
コラボレーション機能
【0054】
コンテンツ管理システム110の別の特徴は、ユーザ間のコラボレーションを容易にすることである。コラボレーション機能には、コンテンツアイテムの共有、コンテンツアイテムに関するコメント、コンテンツアイテムに関する共働、インスタントメッセージング、コンテンツアイテムに関するプレゼンスおよび被閲覧状態情報の提供などが含まれる。
【0055】
共有
【0056】
コンテンツ管理システム110は、共有サービス128を介してコンテンツの共有を管理することができる。コンテンツへのリンクを提供することによってコンテンツを共有することは、コンテンツアイテムを、コンテンツ管理システム110とネットワーク通信可能な任意の計算デバイスからアクセス可能とすることを含み得る。しかしながら、いくつかの実施形態では、リンクは、コンテンツ管理システム110によって実施されるアクセス制限に関連付けることができる。コンテンツを共有することはまた、各ユーザアカウントがコンテンツアイテムへのアクセスを有するように、コンテンツ管理システム110内のコンテンツを少なくとも1つの追加のユーザアカウント(コンテンツアイテムに関連付けられた元のユーザアカウントに加えて)と共有するように、共有サービス128を使用してコンテンツをリンクすることを含むことができる。追加のユーザアカウントは、コンテンツを受け入れることによってコンテンツへのアクセスを得ることができ、そうすると、コンテンツは、ウェブインタフェースサービス124を介して、またはクライアントデバイス150上のアカウントに関連付けられたディレクトリ構造内から、直接アクセス可能になる。当該共有は、プラットフォームに非依存の態様で実行され得る。つまり、コンテンツは種々の種別、性能、オペレーティングシステムなどの複数のクライアントデバイス150に渡って共有されてもよい。当該コンテンツはまた、ユーザアカウントの種々の種別に渡って共有され得る。
【0057】
コンテンツ管理システム110内でコンテンツアイテムを共有するために、共有サービス128は、コンテンツアイテムに関連付けられたアクセス制御リストデータベース145内のコンテンツエントリにユーザアカウント識別子を追加することができ、したがって、追加されたユーザアカウントのコンテンツアイテムへのアクセスを許可する。いくつかの実施形態では、ユーザアカウントは、コンテンツアイテムへのアクセスを有するチームなどのグループ内のメンバーシップを有するので、ユーザアカウント識別子は、コンテンツアイテムに関連付けられたアクセス制御リストデータベースに自動的に追加され得る。共有サービス128はまた、ユーザアカウントのコンテンツアイテムへのアクセスを制限するために、コンテンツエントリからユーザアカウント識別子を除き得る。共有サービス128は、コンテンツアイテム識別子、コンテンツアイテムへのアクセスが与えられたユーザアカウント識別子、及びアクセスレベル(例えば、読み取り専用、読み取り・書き込み、コメント専用、等)をアクセス制御リストデータベース145に記録することができる。
【0058】
コンテンツマネジメントシステム110の外部でコンテンツアイテムを共有するために、共有サービス128は、ユニフォームリソースロケータ(URL)などのカスタムネットワークアドレスを生成することができ、これにより、任意のウェブブラウザが、認証なしにコンテンツマネジメントシステム110内のコンテンツアイテムまたはコレクションにアクセスすることが可能になる。これを達成するために、共有サービス128は生成されるURLにコンテンツ識別データを含め得る。コンテンツ識別データは、後に、要求されたコンテンツアイテムを適切に識別して返すために使用され得る。例えば、共有サービス128は、アカウント識別子と、生成されたURL内のコンテンツパスまたはコンテンツアイテム識別コードとを含むことができる。URLが選択されると、URLに含まれるコンテンツ識別データはコンテンツ管理システム110に送信され得る。コンテンツ管理システム106は受信したコンテンツ識別データを使用して適切なコンテンツアイテムを識別し、コンテンツアイテムを返し得る。
【0059】
URLを生成することに加えて、共有サービス128は、コンテンツアイテムへのURLが作成されたことをアクセス制御リストデータベース145に記録するように構成することもできる。いくつかの実施形態では、コンテンツアイテムに関連付けられたコンテンツエントリは、そのコンテンツアイテムへのURLが生成されたか否かを示すURLフラグを含み得る。例えば、URLフラグは、コンテンツアイテムへのURLがまだ生成されていないことを示すために最初に0または偽に設定されるブール値であり得る。共有モジュール128は、コンテンツアイテムへのURLを生成した後はフラグの値を1または真に変更し得る。
【0060】
いくつかの実施形態では、共有サービス128は、1組の許可(パーミッション:permission)をコンテンツアイテムのURLに関連付けることができる。例えば、ユーザがURLを介してコンテンツアイテムにアクセスしようと試みる場合、共有サービス128は、コンテンツアイテムに対して制限された許可のセットを提供することができる。制限された許可の例は、ユーザがコンテンツアイテムをダウンロードすること、コンテンツアイテムを保存すること、コンテンツアイテムをコピーすること、コンテンツアイテムを修正することなどができない制限を含む。いくつかの実施形態では、制限された許可は、コンテンツアイテムが、特定のドメインから、すなわち、企業ネットワークドメイン内から、または特定のドメインに関連付けられたアカウント、例えば、会社アカウント(例えば、@acme.com)に関連付けられたアカウントによってのみアクセスされることを許可する制限を含む。
【0061】
いくつかの実施形態では、共有サービス128は生成されたURLを非活性化するよう構成され得る。例えば、各コンテンツエントリは、要求に応じて生成されたURLからコンテンツが返されるべきか否かを示すURLアクティブフラグを含み得る。例えば、共有サービス128は、URLアクティブフラグが1または真に設定されている場合にのみ、生成されたリンクによって要求されるコンテンツアイテムを返し得る。したがって、URLが既に生成されたコンテンツアイテムへのアクセスは、URLアクティブフラグの値を変更することにより、容易に制限され得る。これにより、ユーザが、コンテンツアイテムを移動させたり生成されたURLを削除したりすることなく、共有コンテンツへのアクセスを制限することが可能になる。同様に、共有サービス128は、URLアクティブフラグの値を1または真に変えることでURLを再活性化し得る。このため、ユーザは、新たなURLを生成する必要なくコンテンツアイテムへのアクセスを容易に復元できる。
【0062】
いくつかの実施形態では、コンテンツ管理システム110は、コンテンツアイテムをアップロードするためのURLを指定することができる。例えば、ユーザアカウントを有する第1のユーザは、そのようなURLを要求し、そのURLを貢献ユーザに提供し、貢献ユーザは、そのURLを使用して第1のユーザのユーザアカウントにコンテンツアイテムをアップロードすることができる。
【0063】
プレゼンスと被閲覧状態
【0064】
いくつかの実施形態では、コンテンツ管理システムは、コンテンツアイテムが共有されるユーザがどのようにコンテンツアイテムと対話しているか、または対話したかに関する情報を提供することができる。いくつかの実施形態では、コンテンツ管理システム110は、コンテンツアイテムが共有されているユーザが、現在コンテンツアイテムを視聴していることを報告することができる。例えば、クライアントデバイス150がコンテンツアイテムにアクセスしているときに、クライアントコラボレーションサービス160は、通知サービス117に通知することができる。次いで、通知サービス117は、コンテンツアイテムに関してクライアントデバイス150のユーザのプレゼンスを、同じコンテンツアイテムへのアクセスを有する他のユーザのすべてのクライアントデバイスに通知することができる。
【0065】
いくつかの実施形態では、コンテンツ管理システム110は、共有コンテンツアイテムとのユーザの対話の履歴を報告することができる。コラボレーションサービス126は、メタデータデータベース146およびサーバファイルジャーナル148などのデータソースに照会して、ユーザがコンテンツアイテムを保存したこと、ユーザがコンテンツアイテムをまだ閲覧していないことなどを判定し、通知サービス117を使用して他のユーザにこのステータス情報を広めて、現在誰がそのコンテンツアイテムを見ている又はを見たのか、またはそのコンテンツ項目を修正したのかを知ることができる。
【0066】
コラボレーションサービス126は、コンテンツアイテムがコメント機能をネイティブにサポートしない場合であっても、コンテンツに関連するコメントを容易にすることができる。このようなコメントは、メタデータデータベース146に格納することができる。いくつかの実施形態では、そのようなコメントの格納は、被閲覧状態情報とは別個に格納され得る。
【0067】
コラボレーションサービス126は、ユーザに対して通知を発信および送信することができる。例えば、ユーザは、コメントにおいて別のユーザに言及することができ、コラボレーションサービス126は、コメントにおいて言及されたという通知をそのユーザに送信することができる。様々な他のコンテンツアイテムイベントは、コンテンツアイテムの削除、コンテンツアイテムの共有などを含む通知をトリガすることができる。
【0068】
コラボレーションサービス126は、ユーザがインスタントメッセージ、音声呼、電子メールなどを送受信することができるメッセージングプラットフォームを提供することができる。
【0069】
コラボレーションコンテンツアイテム
【0070】
コラボレーションサービス126は、ユーザがコラボレーションコンテンツアイテムを同時に作成し、コラボレーションコンテンツアイテムにコメントを付け、コラボレーションコンテンツアイテム内のタスクを管理することができる、対話型コンテンツアイテムコラボレーションプラットフォームを提供することもできる。コラボレーションコンテンツアイテムは、ユーザがコラボレーションコンテンツアイテムエディタを使用して作成および編集することができるファイルとすることができ、コラボレーションコンテンツアイテム要素を含むことができる。コラボレーションコンテンツアイテム要素は、コラボレーションコンテンツアイテム識別子、1つ以上の著者識別子、コラボレーションコンテンツアイテムテキスト、コラボレーションコンテンツアイテム属性、対話情報、コメント、共有ユーザなどを含むことができる。コラボレーションコンテンツアイテム要素は、データベースエンティティとして記憶することができ、これは、コラボレーションコンテンツアイテムを検索し検索することを可能にする。複数のユーザは、コラボレーションコンテンツアイテムに同時に又は異なる時間に、アクセスし、閲覧し、編集し、コラボレーションしてよい。いくつかの実施形態では、これは、2人のユーザがウェブインタフェースを介してコンテンツアイテムにアクセスすることを要求することによって処理され、2人のユーザは、コンテンツアイテムの同じコピーに対して同時に作業することができる。
【0071】
コラボレーション・コンパニオン・インタフェース
【0072】
いくつかの実施形態では、クライアントコラボレーションサービス160は、クライアントデバイス150上に提示されているコンテンツアイテムに関連する情報を表示するための、ネイティブアプリケーション・コンパニオン・インタフェースを提供することができる。コンテンツアイテムがコンテンツアプリケーション152によって管理されるように、コンテンツアイテムは、クライアントデバイス150のファイルシステムの指定された位置にあり、コンテンツアイテムがクライアントデバイス150上に格納され実行されるネイティブアプリケーションによってアクセスされる実施形態では、ネイティブアプリケーションは、上記のアドレス指定されたコラボレーションデータを表示するための任意のネイティブな方法を提供しないだろう。そのような実施形態では、クライアントコラボレーションサービス160は、ユーザがコンテンツアイテムを開いたことを検出することができ、コラボレーションデータなどのコンテンツアイテムの追加情報を有するオーバーレイを提供することができる。例えば、追加情報は、コンテンツアイテムに対するコメント、コンテンツアイテムのステータス、コンテンツアイテムを以前または現在閲覧している他のユーザのアクティビティを含むことができる。そのようなオーバーレイは、別のユーザが現在コンテンツアイテムを編集しているために変更が失われる可能性があることをユーザに警告することができる。
【0073】
いくつかの実施形態では、上述のサービスまたはストレージ/データベースのうちの1つ以上は、パブリックまたはプライベートのアプリケーションプログラミングインタフェースを使用してアクセスすることができる。
【0074】
特定のソフトウェアアプリケーションは、ユーザの代わりにAPIを介してコンテンツストレージ142にアクセスすることができる。例えば、クライアントデバイス150上で実行されるアプリケーションなどのソフトウェアパッケージは、ユーザが認証証明書を提供し、コンテンツを読み取り、書き込み、作成し、削除し、共有し、または他の方法で操作する場合に、コンテンツ管理システム110に直接APIコールをプログラムで行うことができる。
【0075】
ユーザは、ウェブインタフェースサービス124によって生成され、提供されるウェブインタフェースを介して、ユーザアカウントに格納されたコンテンツを閲覧または操作することができる。例えば、ユーザは、ウェブブラウザ内で、コンテンツ管理システム110によって提供されるウェブアドレスに対して誘導できる。コンテンツアイテムの新たなバージョンのアップロードのように、ウェブインタフェースを通じてなされたコンテンツストレージ142のコンテンツへの変更や更新は、ユーザのアカウントに関連する他のクライアントデバイスへと伝搬されてもよい。例えば、それぞれが自身のクライアントソフトウエアを有する複数のクライアントデバイスは単一のアカウントと関連付けられていてもよく、そのアカウントのコンテンツアイテムは複数のクライアントデバイスのそれぞれの間で同期されてもよい。
【0076】
クライアントデバイス150は、ユーザに代わってコンテンツ管理システム110に接続することができる。ユーザは、例えば、クライアントデバイス150がデスクトップ又はラップトップコンピュータ、電話、テレビ、インターネット・オブ・シングスのデバイス等である場合に、クライアントデバイス150と直接対話することができる。代替的または追加的に、クライアントデバイス150は、例えばクライアントデバイス150がサーバである場合、ユーザがクライアントデバイス150に物理的にアクセスすることなく、ユーザの代わりに動作することができる。
【0077】
クライアントデバイス150の幾つかの特徴は、クライアントデバイス150にインストールされたアプリケーションにより有効化される。いくつかの実施形態では、アプリケーションはコンテンツ管理システム特有のコンポーネントを含み得る。例えば、コンテンツ管理システム特有のコンポーネントは、スタンドアローンアプリケーションや1つ以上のアプリケーションプラグインやブラウザエクステンションであり得る。しかしながら、クライアントデバイス150に存在しコンテンツ管理システム110と通信するよう構成されたウェブブラウザなどの第3者アプリケーションを介して、ユーザはコンテンツ管理システム110と対話してもよい。様々な実装において、クライアント側アプリケーション152は、ユーザがコンテンツ管理システム110と対話するためのユーザインタフェース(UI)を提供し得る。例えば、ファイルシステムと統合されたファイルシステム拡張153を介して、またはウェブブラウザアプリケーションを使用して表示されたウェブページを介して、ユーザはコンテンツ管理システム110と対話してもよい。
【0078】
いくつかの実施形態では、クライアントアプリケーション152は、コンテンツ管理システム110の2つ以上のアカウントのコンテンツを管理し、同期させるように構成されることができる。そのような実施形態では、クライアントアプリケーション152は、複数のアカウントにログインしたままで、複数のアカウントに通常のサービスを提供することができる。いくつかの実施形態では、各アカウントは、ファイルシステム内のフォルダとして現れることができ、そのフォルダ内のすべてのコンテンツアイテムは、コンテンツ管理システム110と同期されることができる。いくつかの実施形態では、クライアントアプリケーション152は、複数のアカウントのうちの1つを主アカウントまたはデフォルトアカウントとして選択するためのセレクタを含むことができる。
【0079】
コンテンツ管理システム110は、特定のコンポーネントを与えられて示されているものの、当業者は、システム100の構造上の構成が単に1つの可能性のある構成であること、及び、多少のコンポーネントが与えられた他の構成も可能であることを理解すべきである。さらに、サービスは、多かれ少なかれ機能性を有することができ、別のサービスと一緒であると説明された機能性さえも含む。さらに、実施形態に関して本明細書で説明される特徴は、別の実施形態に関して説明される特徴と組み合わせることができる。
【0080】
いくつかの実施形態では、システム100を使用して、コンテンツアイテムに関連してプレゼンス、アクセス、および被閲覧状態情報を提供することができる。プレゼンスは、第1のアカウントに、第2のアカウントが、第1のアカウントが現在アクセスしているのと同じ共有コンテンツアイテムに現在アクセスしていることを通知することを指す。被閲覧状態は、共有コンテンツアイテムの他のアカウントによる閲覧の履歴を第1のアカウントに通知することを指す。アクセスは、共有コンテンツアイテムへのアクセスを有する他のアカウントによって保持されるアクセス権を第1のアカウントに通知することを指す。
【0081】
図2は、コンテンツアイテムのプレゼンス、アクセス、および被閲覧状態情報を記録し、提供するための例示的なシステムの実施形態を示す。図2は、システム100を示しているが、より詳細には、コンテンツアイテムのプレゼンス、アクセス、および被閲覧状態情報を記録し、提供するのに有用な追加の要素を示している。
【0082】
被閲覧状態
【0083】
図3は、被閲覧状態情報を記録するための例示的な方法を示す。いくつかの実施形態では、第1のクライアントデバイス150aは、自身のローカルストレージに格納され、自身のファイルシステムを使用してアクセス可能な第1のコンテンツアイテムにアクセスし、それを開く(250)。第1のコンテンツアイテムはまた、クライアントアプリケーション152によって管理され、コンテンツ管理システム110においてコンテンツストレージ142に格納された第1のコンテンツアイテムのコピーと同期される。
【0084】
第1のクライアントデバイス150aが第1のコンテンツアイテムを開いた後(それによって、第1のコンテンツアイテムが第1のクライアントデバイス150aのユーザによって提示され(閲覧され))、プレゼンス、アクセス、および被閲覧状態(PASS)サービス202は、第1のコンテンツアイテムがPASS機能に参加しているかどうかを判定する(252)。コンテンツアイテムがPASSに参加しているかどうかについてのさらなる詳細は、以下で説明されるが、いくつかの要素は、コンテンツアイテムが共有コンテンツアイテムであるかどうか、およびコンテンツアイテムに関連するアクセスポリシーである。
【0085】
PASSサービス202が、第1のコンテンツアイテムがPASSに適格であると判定した後、PASSサービス202は、コンテンツ管理システム110を用いて第1のコンテンツアイテムの閲覧を記録する(254)。いくつかの実施形態では、PASSサービス202は、第1のコンテンツアイテムが閲覧されたことを示すコンテンツアイテム閲覧メッセージを、コンテンツ管理システム110の被閲覧状態/アクセスサービス208に送信することができる。被閲覧状態/アクセスサービス208は、少なくとも第1のコンテンツアイテムのコンテンツアイテムIDと、コンテンツアイテムの閲覧が第1のクライアントデバイス150a上でいつ生じたかのタイムスタンプとを含むコンテンツアイテム閲覧メッセージを受信し、コンテンツアイテム閲覧ログ204にコンテンツアイテムの閲覧に関するデータを記録することができる。
【0086】
いくつかの実施形態では、例えば、アカウント識別子、クライアントデバイス識別子、クライアントアイテム150aがコンテンツアイテムにどのようにアクセスしたか(すなわち、共有リンクからダウンロードされたコンテンツアイテムを介して、またはクライアントデバイス150aのファイルシステムを介した第1のコンテンツアイテムへの直接アクセスによって)などを含む追加情報をコンテンツアイテム閲覧メッセージに含めることができる。
【0087】
いくつかの実施形態では、クライアントデバイス150a上のコンテンツアイテムの閲覧に関するいくつかの情報も、メタデータデータベース146に格納することができる。いくつかの実施形態では、コンテンツアイテムの閲覧に関する情報は、コンテンツアイテム閲覧ログ204から、または、被閲覧状態/アクセスサービス208から送信することができる。いくつかの実施形態では、メタデータデータベース146は、コンテンツアイテム閲覧ログ204に格納されたコンテンツアイテムの閲覧に関する情報へのポインタまたは参照を格納することができる。
【0088】
図3は、ローカルストレージに格納されそれ自体のファイルシステムを使用してアクセス可能なコンテンツアイテムにアクセスするクライアントデバイス150aに関して説明されたが、図3は、ウェブインタフェースサービス124と通信するウェブブラウザを使用してコンテンツアイテムにアクセスする実施形態にも適用可能である。このような実施形態では、アクセスされるコンテンツアイテムのコピーは、コンテンツストレージ142に格納された、コンテンツ管理システム110のコピーである。被閲覧状態/アクセスサービス208は、(クライアントデバイス150上のPASSサービスからではなく)ウェブインタフェースサービス124(図2には示されていない)からコンテンツアイテム閲覧メッセージを受信することができる。
【0089】
図4は、コンテンツアイテムの1つ以上の過去の閲覧に関する情報を提示する例示的な方法を示す。いくつかの実施形態では、コンテンツアイテムは、共有コンテンツアイテムである。クライアントデバイス150bは、そのローカルストレージに格納されそれ自体のファイルシステムを使用してアクセス可能なコンテンツアイテムにアクセスすることができる。PASSサービス202は、コンテンツ管理システム110の被閲覧状態/アクセスサービス208からの被閲覧状態データを要求することができる(262)。いくつかの実施形態では、要求262は、コンテンツアイテム識別子、アカウント識別子、クライアントデバイス識別子、コンテンツアイテムへのアクセスの方法などのいずれかを識別することができる。
【0090】
被閲覧状態/アクセスサービス208は、アクセス制御リスト145および/またはメタデータデータベース146の一方または両方からアクセス権情報を要求することによって、被閲覧状態情報(以下でさらに説明する)を要求するアカウントに対するアクセス特権を決定することができる(264)。アクセス特権を決定した(264)後、被閲覧状態/アクセスサービス 208は、メタデータデータベース146から被閲覧状態情報を受信し(266)、被閲覧状態情報をクライアントデバイス150bのPASSサービス202に提示する(268)。被閲覧状態情報は、クライアントデバイス150bによって表示されるように被閲覧状態情報をPASSサービス202に送信することによって、またはクライアントデバイス150b上で閲覧されるウェブページに表示するためにウェブインタフェースサービス124を介してこの情報を送信することによって、提示され得る(268)。
【0091】
いくつかの実施形態では、被閲覧状態情報は、少なくとも2つのアカウント間で共有されるコンテンツアイテムにのみ関連する。一例では、被閲覧状態は、第1のアカウントの使用に関連して共有コンテンツアイテムにアクセスする第1のユーザに、第2のアカウントを介して共有コンテンツアイテムにアクセスする第2のユーザが共有コンテンツアイテムを閲覧したか否かを知らせることができる。例えば、第1のアカウントに関連付けられたクライアントデバイス150bは、第2のアカウントに関連付けられたクライアントデバイス150aが共有コンテンツアイテムを閲覧したという情報を受信することができる。
【0092】
いくつかの実施形態では、共有されていないコンテンツアイテムに対して、被閲覧状態情報を提供することができる。そのような実施形態では、被閲覧状態情報は、共有されていないコンテンツアイテムにアクセスするアカウントによる過去のコンテンツアイテムの閲覧の記録である。また、コンテンツアイテムが共有されるようになり、ファイルとの対話を事前共有で反映することができるため、共有されないコンテンツアイテムの被閲覧状態情報を格納することも有用であり得る。
【0093】
プレゼンス
【0094】
図5は、クライアントデバイスからコンテンツ管理システム110の通知サービス117にプレゼンス情報を送信するための例示的な方法を示す。 クライアントデバイス150は、共有コンテンツアイテムを開くことができ(302)、PASSサービス202は、コンテンツアイテムがプレゼンス共有に参加するかどうかを判定することができる(304)。 コンテンツアイテムがプレゼンス共有に参加するときに関する詳細については、以下でさらに説明する。しかしながら、一例では、コンテンツアイテムが共有コンテンツアイテムである場合、コンテンツアイテムはプレゼンス共有に参加する。PASSサービス202が、コンテンツアイテムがプレゼンス共有に参加すると判定する(304)と、PASSサービス202は、プレゼンスメッセージを通知サービス117に送信する(306)。いくつかの実施形態では、プレゼンスメッセージは、アカウント識別子およびコンテンツアイテム識別子を含む。プレゼンスメッセージは、コンテンツアイテムメタデータを含むコンテンツアイテムに関する他の情報と、クライアントデバイスによるコンテンツアイテムへのアクセス方法に関する情報とを含むこともできる。
【0095】
通知サービス117は、アカウントが現在コンテンツアイテムにアクセスしていることを追跡するために、プレゼンスメッセージを記録することができる。コンテンツアイテムが閉じられる(308)と、クライアントデバイス150は、プレゼンス終了310メッセージを通知サービス117に送信する。 プレゼンス終了メッセージを受信した後、通知サービス117は、アカウントが現在コンテンツアイテムにアクセスしていることを示す以前の記録を閉じることができ、したがって、現在コンテンツアイテムにアクセスしているアカウントの任意の記録を削除することができる。
【0096】
いくつかの実施形態では、ウェブブラウザを介してコンテンツアイテムにアクセスするクライアントデバイス150上でコンテンツアイテムが閲覧されるときなど、コンテンツアイテムが閉じられたことを記録することは、ブラウザベースのサービスワーカーAPIの使用を必要とし得る。サービスワーカーAPIは、開いているタブが、タブが閉じられた後に完了するように、タスクをウェブブラウザに渡すことを可能にする。この例では、ウェブインタフェースサービス124からドキュメントにアクセスするタブは、タブが閉じられた後にコンテンツアイテムがもはや閲覧されていないことを通知サービス117に通知するように、サービスワーカーAPIに命令することができる。
【0097】
いくつかの実施形態では、被閲覧状態レコードは、コンテンツアイテムが閉じられたときを反映するように更新されることができる。一般に、コンテンツアイテムの閲覧は、コンテンツアイテムが開かれたときに記録される(254)。コンテンツアイテムが開かれている間、PASS情報はプレゼンス情報を反映することができる。コンテンツアイテムが閉じられると、コンテンツアイテムの閲覧のタイムスタンプは、コンテンツアイテムがいつ閉じられたかを反映するように更新され得る。
【0098】
いくつかの実施形態では、アカウントがコンテンツアイテムに存在するが、アカウントがアイドルであることを反映することが可能であり得る。コンテンツアイテムに関連するプレゼンス情報を表示することの1つの効果は、他のユーザが、競合するバージョンを作成するおそれからコンテンツアイテムを編集することを思いとどまる可能性があることである。しかしながら、他のユーザは、クライアントデバイスにより報告されるように、ドキュメントが第1のユーザのクライアントデバイスで開かれたが、現在フォーカスされているウインドウにはないこと、又はユーザがある時間周期でコンテンツアイテムをスクロール、セーブ、又は他のやり方で対話しなかったことを理解した場合には、異なるアクションをとることがある。このような実施形態では、プレゼンス情報を表示して、存在するがアイドル状態であることを示すことができる。
【0099】
いくつかの実施形態では、単一のユーザアカウントが、複数の同時のセッションで開かれたコンテンツアイテムを有することができる。コンテンツアイテムが同時のセッションのうちのいずれか1つにおいて開かれている場合、セッションの最後が閉じられるまで、その存在を終了したことは報告されない。
【0100】
図6は、記録されたプレゼンス情報を1つ以上のエンドポイントに送信する例示的な方法を示す。例えば、通知サービス117は、プレゼンス通知トリガを受信することができる(322)。通知トリガは、通知サービス117によって受信される任意の情報とすることができ、或いは、いくつかの実施形態では、トリガは、通知の要求とすることができる。例えば、通知サービス117が、共有コンテンツアイテムへのアクセスを有するアカウントに送信される情報を受信すると、通知サービス117は、受信した情報を、コンテンツアイテムへのアクセスを有するアカウントに関連付けられたクライアントデバイスにプッシュすることができる。
【0101】
いくつかの実施形態では、いくつかのタイプのクライアントデバイス150のみがプッシュ通知を受信し、いくつかのクライアントデバイスは、条件付きで通知サービス117からプッシュ通知を受信し得る。例えば、いくつかの実施形態では、クライアントアプリケーション152を現在実行しているクライアントデバイスのみが、プッシュ通知を受信する。ラップトップおよびデスクトップなどのデバイスは、クライアントアプリケーション152を永続的に(バックグラウンドであろうとフォアグラウンドであろうと)実行することができる。これらのデバイスは、多くの場合、このタイプのクライアントデバイスのすべてのアプリケーションによってアクセスされ得るファイルシステムを有することを特徴とする。対照的に、ウェブブラウザを使用してコンテンツ管理システム110にアクセスするクライアントデバイスは、コンテンツ管理システム110にログインしたときにのみ通知を受信する。いくつかの実施形態では、ウェブブラウザを使用してコンテンツ管理システム110にログインしたクライアントデバイスは、共有コンテンツアイテムにアクセスしているときに、それ自体を通知サービス117に登録することができ、その結果、コンテンツアイテムに関する通知を受信するように登録することができる。いくつかの実施形態では、クライアントデバイスは、格納されたクライアントアプリケーション152を特徴とするモバイルコンピューティングデバイスであるが、アクティブな使用状態にないときは、クライアントアプリケーション152は、オペレーティングシステムによって提供されるメッセージングサービスとの統合を介して通知が受信されない限り、休止し、通知を受信するために利用可能でないことがあることが多い。したがって、通知をモバイルコンピューティングデバイスに送信すべきかどうかは、クライアントアプリケーション152およびクライアントデバイスのオペレーティングシステムのポリシに依存する。しかしながら、本開示の目的のために、通知は、ラップトップおよびデスクトップコンピューティングデバイスに類似したモデル、またはウェブアクセスに類似したモバイル、または両方のモデルのハイブリッドのいずれかを使用して、クライアントデバイスによって受信され得る。
【0102】
通知サービス117は、アクセス制御リスト145から、共有コンテンツアイテムおよびアカウントに関連付けられたクライアントデバイスへのアクセスを有するすべてのアカウントを要求することによって、すべてのエンドポイントをルックアップして(324)、コンテンツアイテムのプレゼンス通知を受信することができる。いくつかの実施形態では、通知サービスは、コンテンツ管理システム110内の別のソースからアカウントおよびクライアントデバイス情報を要求することができる。
【0103】
どのクライアントデバイスが通知を受信すべきかを決定した後、通知サービス117は、プレゼンス通知326をクライアントデバイスに送信する。プレゼンス通知は、共有コンテンツアイテムが少なくとも1つのクライアントデバイス150上で開いていることを示すことができる。
【0104】
ひとたびクライアントデバイス150によって受信されると、それぞれのクライアントデバイス150は、プレゼンス情報を提示するかどうかを決定することができる。いくつかの実施形態では、プレゼンス情報は、プレゼンス情報が関係するコンテンツアイテムがそれぞれのクライアントデバイス150上でも開かれているときに、それぞれのクライアントデバイス150によって表示される(328)。
【0105】
このようにして、それぞれが異なるアカウントに関連付けられる、それぞれが同じ共有コンテンツアイテムを閲覧する2つのクライアントデバイスは、別のアカウントが共有コンテンツアイテムにアクセス/閲覧している間に、共有コンテンツアイテムに関連付けられた通知を提示することができる(328)。
【0106】
アクセス
【0107】
アクセスは、少なくとも2つの方法で本技術に関連する。第1に、本技術は、被閲覧状態及びプレゼンス情報と共に表示及び閲覧される共有コンテンツアイテムに関するアクセス制御リスト145を提供する。第2に、アクセスは、どれだけの量の情報が誰にアクセス可能であるべきかに関する。
【0108】
コンテンツアイテムは、プレゼンス、アクセス、および被閲覧状態(PASS)の特徴を利用するために、適格であり、かつ登録されていなければならない。いくつかの実施形態では、コンテンツアイテムは、コンテンツアイテムレベル、コレクションレベル、またはチームレベルのいずれかで、少なくとも共有されなければならない。被閲覧状態およびアクセスに関する情報は、複数の場所に格納され得る。例えば、被閲覧状態情報は、コンテンツアイテム閲覧ログ204及び/又はメタデータデータベース146に格納され得る。アクセス情報は、アクセス制御リスト145および/またはメタデータデータベース146に格納され得る。本技術の以下の説明における、被閲覧状態またはアクセス特権情報を格納することへの言及は、コンテンツアイテム閲覧ログ204、メタデータデータベース146、アクセス制御リスト145、またはコンテンツ管理システム110内の任意の他のデータベースデータ構造のいずれかにデータを格納することを参照することができる。以下のこれらのデータベースまたはデータ構造のうちの1つ以上の基準は排他的であると考えるべきではなく、データは、代替として、または冗長的に異なるデータベースに格納することができる。
【0109】
コンテンツアイテム(又はコンテンツアイテム)がチームレベルでPASSに登録されると、コンテンツ管理システム110は、チームレベルでPASS状態をメタデータデータベース146に記録することができる。チームレベルでのPASS状態は、制限されていないチームアクセスまたはエディタのみのチームアクセス、または他の何らかのアクセスポリシーのいずれかを示すことができる。いくつかの実施形態では、チームに関連付けられたすべてのコンテンツアイテムは、チームレベルのアクセス権を継承する。
【0110】
いくつかの実施形態では、チーム管理者のみが、PASSチームレベルの権利を修正することができる。管理者は、コンテンツ管理システム110の管理者コンソールでPASS設定を見ることができる。チームのPASS設定は、例えば、「無制限のチームアクセス」、「エディタのみのアクセス」、「PASS無効」などを含むことができる。
【0111】
共用ネームスペースレベルでのPASS状態は、メタデータデータベース146に記録することもできる。いくつかの実施形態では、ネームスペースレベルでのPASS状態は、フラグを設定することによって「有効」または「無効」にすることができる。すべてのサブフォルダおよびすべてのコンテンツアイテムは、ネームスペースのpass状態のプロパティを継承することができる。いくつかの実施形態では、共有ネームスペースは、デフォルトで有効にされたPASSを有する。いくつかの実施形態では、十分なアクセス特権を有するユーザのみが、ネームスペースを作成したユーザ(所有者)、または編集権を有するユーザなど、PASS設定を編集することができる。
【0112】
コンテンツアイテムレベルで、コンテンツアイテムからの登録がチームに関連付けられているために、または共有ネームスペース内にあるために、PASSがまだ有効化されていない場合、PASSは、コンテンツアイテムのためのメタデータデータベース146内に有効化されたステータスフラグを格納することによって有効化され得る。いくつかの実施形態では、ネームスペースを作成したユーザ(所有者)または編集権を有するユーザなどの、十分なアクセス特権を有するユーザのみが、PASS設定を編集することができる。
【0113】
図7は、コンテンツアイテムまたはフォルダのためのPASSを有効にする例示的なユーザインタフェースを示す。グラフィカルユーザインタフェース402は、コンテンツアイテム「File Name.docx」を共有するためのコンテンツアイテムの共有インタフェースを示す。トグルスイッチ404は、PASSをオンまたはオフにトグルするために、インタフェース402内に提示され得る。同様に、グラフィカルユーザインタフェース410は、コレクション「ドキュメント」を共有するためのネームスペースまたはコレクションアイテムの共有インタフェースを示す。トグルスイッチ412は、PASSをオンまたはオフにトグルするために、インタフェース410内に提示され得る。
【0114】
当業者であれば、特定のアクセスポリシーには任意の数のバリエーションが存在し得ることを理解するであろう。このように、それぞれの可能な変形例は、ここでは扱わない。しかしながら、PASSのための例示的なアクセスポリシーは、チームメンバ、アクセス制御リスト(ACL)エディタ、ACLコメンタ、ACL閲覧者、リンクアクセスのエディタ、リンクアクセスのコメンタ、およびリンクアクセスの閲覧者の役割を有するアカウントを含むことができる。
【0115】
チームメンバは、チームの作業ネームスペースの1つに格納されたコンテンツアイテムについて、互いのアクセス状態、被閲覧状態、およびプレゼンス状態を見ることができる。ネームスペース、コレクション、またはコンテンツアイテムにアクセスするチームメンバを、ACLに自動的に追加することができる。
【0116】
ACLエディタ、およびACLコメンタは、ネームスペース、コレクション、またはコンテンツアイテムのACL に宣言的に追加され、アクセスロールが付与されたアカウントを持つユーザである。ACLエディタとACLコメンタは、ACLが関係するネームスペース、コレクション、またはコンテンツアイテムのすべてのチームメンバ、ACLエディタ、およびACLコメンタのアクセス状態、表示状態、およびプレゼンス状態を確認することができる。
【0117】
ACL閲覧者は、任意のPASS情報を見ることができないが、ACLが関係するネームスペース、コレクション、またはコンテンツアイテムのすべてのチームメンバ、ACLエディタ、およびACLコメンタからアクセス/被閲覧/プレゼンス状態を確認できる。
【0118】
リンクアクセスのエディタ、リンクアクセスのコメンタ、リンクアクセス閲覧者は、PASS情報を見ることができず、チームメンバ、ACLエディタ、およびACLコメンタは、アクセス/被閲覧/プレゼンス状態を匿名アクティビティとして見ることしかできない。
【0119】
図8は、被閲覧状態情報を提示する例示的なユーザインタフェースを示す。ユーザ502a、b、c、d、e、fは、それぞれ、関連するコンテンツアイテムを最後に閲覧した時間を示すそれぞれの視聴状態504と共にリストされる。さらに、例示的なユーザインタフェースは、コンテンツアイテムの閲覧総数506を示すこともできる。
【0120】
図9Aは、異なるアクセス権を有するアカウントまたはユーザのビューを示す、プレゼンス、アクセス、および表示状態(PASS)のグラフィカルユーザインタフェースの例を示す。図9Aに示す例では、アリス(Alice)はチームにおり、且つコンテンツアイテム(Acme C Promo Video.mov)の所有者である。ボブ(Bob)はチームにおり、エディタである。クリスチン(Christine)はチームにおり、コメンタでもあり、イブ(Eve)もコメンタであるが、チームにはいない。イブのアクセス権は、コンテンツアイテムのアクセス制御リスト(ACL)に追加されることから生じる。
【0121】
例示的なグラフィカルユーザインタフェース602は、アリス(またはボブ)が見るであろうPASSのビューを表す。アリスは、現在コンテンツアイテムを閲覧しているユーザを見ることができる。例えば、アリスおよびボブは、両方とも「存在する」とみなされ、彼女らのプレゼンス情報610が表示される。 グラフィカルユーザインタフェース602は、以前に閲覧したが存在しないユーザ/アカウントの被閲覧状態情報612も示す。グラフィカルユーザインタフェース602はまた、コンテンツアイテムへのアクセスを有するすべてのユーザのリストを表示するという点でアクセス情報を提供し、また、この例ではクリスチン(Christine)であるリンク614を介してどのユーザがアクセスしたかを区別する。また、アクセス情報は、ユーザがチーム616外であるときも区別する。
【0122】
例示的なグラフィカルユーザインタフェース604は、クリスチンもチームにいるコメンタとして見えるPASSビューを提示する。グラフィカルユーザインタフェース604は、グラフィカルユーザインタフェース602と同じ情報の大部分を表示するが、クリスチンはイブの識別子622を見ることができない点で異なる。イブはクリスチンのチームにはおらず、そしてクリスチンはコンテンツアイテムの所有者ではないので、クリスチンはイブを知らず、そのようなイブのアイデンティティはグラフィカルユーザインタフェース604において抑制される(622)と仮定することはできない。グラフィカルユーザインタフェース604は、クリスチンのプレゼンス620の情報を示し、クリスチンに、彼女のアクセス特権に従ってコメントする能力618を提供する。
【0123】
例示的なグラフィカルユーザインタフェース606は、イブが、コンテンツアイテムのためのACLを介してアクセスを与えられたコメンタとして見えるPASSビューを提示する。クリスチンがイブのアイデンティティを見ることができなかったグラフィカルユーザインタフェース604と同様に、イブはクリスチンのアイデンティティ624を見ることができない。
【0124】
図9Bは、異なるアクセス権を有するアカウントまたはユーザのビューを示す、例示的なPASSグラフィカルユーザインタフェース656を示す。この例では、アリスはコンテンツアイテムの所有者であってチームにおり、ボブは編集者特権を有し且つチームにいる。クリスチンはコメンタ特権を有し且つチームにおり、一方、フランは閲覧者であり、共有リンクを介してアクセスを得ている。
【0125】
例示的なグラフィカルインタフェース652および654は、それぞれ、図9AのアリスのPASSビュー602および図9AのクリスチンのPASSビュー604と一致する。しかしながら、図9Bは、フラン(Fran)がリンクアクセスを有するので、フランがACL情報を有するPASSインタフェースを有さないことを示す。
【0126】
いくつかの実施形態では、リンクアクセスのみを有するアカウント、または外部コメンテータは、異なるように表され得る。例えば、いくつかの実施形態では、リンクアクセスまたはコメンタアクセスのみを有するアカウントを含むすべてのアカウントは、名前によってすべてのユーザに示され得る。そのような実施形態では、ユーザに、ユーザの名前および被閲覧状態がコンテンツアイテムに関連して示されることを通知することができる。いくつかの実施形態では、共有リンクを使用してコンテンツアイテムにアクセスするユーザは、そのアイデンティティおよび被閲覧状態を記録および表示することができるように、自分自身をACLに登録するためのアクセスを与えられることができ、これは、コンテンツ管理システム110へのアカウントを有さないユーザにとって特に有用である。
【0127】
図9Cは、PASS情報にアクセスするための別の例示的なビューを示す。図9Cは、クライアントデバイス150上のネイティブアプリケーション661において開かれ、閲覧されたコンテンツアイテム660を示す。例えば、これは、ワードプロセッサアプリケーションで開かれたワードプロセッサドキュメント、またはpdfビューアで閲覧されるpdfファイルなどとすることができる。アプリケーション661は、クライアントデバイス150上のアプリケーションランチャから、或いはアプリケーション661を自動的に起動するクライアントデバイス150上のファイルエクスプローラ内のコンテンツアイテムを選択することによって、起動することができるアプリケーションである。アプリケーション661は、コンテンツ管理システム110とネイティブに統合されなくてもよいが、コンテンツ管理システム110は、アプリケーション661に関連するグラフィカルユーザインタフェース機能を表面化することができるコラボレーションコンパニオンアプリケーション662に関連付けられてもよい。コラボレーションコンパニオンアプリケーション662は、APIの使用を介してまたはファイルシステム拡張153を介して、アプリケーション661内で行われているアクションを知ることができる。コラボレーションコンパニオンアプリケーション662は、コンテンツアイテム660に関連してPASS情報を表示することができるコラボレーション・コンパニオン・インタフェース664を提示することができる。
【0128】
図9Dは、PASS情報にアクセスするための別の例示的なビューを示す。図9Dは、ファイルエクスプローラ675を示す。いくつかの実施形態では、ファイルエクスプローラ675は、クライアントデバイス150上にローカルに格納されたコンテンツアイテムをブラウズするクライアントデバイス150上のネイティブアプリケーションであり、いくつかの実施形態では、コンテンツ管理システム110に格納されたコンテンツアイテムをブラウズするウェブインタフェースにおけるファイルエクスプローラビューであり得る。コンテンツアイテムまたはコレクションは、ファイルエクスプローラ675を使用して選択することができ、ユーザは、コンテキストメニュー677を開くようにファイルエクスプローラ675に命令することができる。コンテキストメニュー677は、PASS情報を要求し、コンテキストメニュー677に情報を表示することができる。
【0129】
上記の図は、PASS情報のアクセスおよび表示に関する1組のポリシーを示しているが、これらは単なる例であり、他のポリシーを使用することができる。
【0130】
上記の図は、コンテンツアイテムに関連するPASS情報のみを示しているが、PASS情報は、コレクションに関連して示すこともできることを理解されたい。
【0131】
図10Aは、コンテンツアイテム702またはコレクション704の可視性オプションを変更するための例示的なグラフィカルユーザインタフェースを示す。一般に、「file name.docx」のACLを表示するグラフィカルユーザインタフェースには、可視性オプションリンク706が提示される。同様に、コレクション「Documents」704のACLを示すグラフィカルユーザインタフェースには、可視性オプションリンク708が提示される。ユーザがクライアントデバイス150を使用してリンク706又は708を選択すると、ユーザインタフェース710を提示することができ、これは、コンテンツアイテム又はコレクションに関連する被閲覧状態情報を提供するかどうかのオプションを提示する。
【0132】
図10Bは、コレクション704のオプションを修正するための例示的なグラフィカルユーザインタフェースを示す。グラフィカルユーザインタフェースは、クライアントデバイス150に、選択可能なコレクション設定を提示するグラフィカルユーザインタフェース715を開かせるリンク714を提供する。具体的には、グラフィカルユーザインタフェース715は、「このフォルダ内のファイルにアクセスした人を表示」オプション716を提示する。オプション716は、コレクション所有者またはエディタがACLを利用可能にするか否かを可能にする。
【0133】
図10Cは、コンテンツアイテム702に対するオプションを修正するための例示的なグラフィカルユーザインタフェースを示す。グラフィカルユーザインタフェースは、クライアントデバイス150に、選択可能なコンテンツアイテム設定を提示するグラフィカルユーザインタフェース720を開かせるリンク712を提供する。具体的には、グラフィカルユーザインタフェース720は、「このファイルにアクセスした人を表示」オプションを提示する。このオプションは、コンテンツアイテム所有者またはエディタが、コンテンツアイテムに対してACLを利用可能にするか否かを可能にする。
【0134】
PASSは、一般に、コレクションレベル、チーム、ネームスペース、フォルダなどで使用可能にされる。しかしながら、いくつかの例では、ユーザは、特定のコンテンツアイテムに対して異なる設定を提供することを望む場合がある。そのような場合、PASS設定は、必要に応じて、コンテンツアイテムレベルで記録され得る。他のすべてのコンテンツアイテムは、それらのPASS設定をコレクションから継承することができる。いくつかの実施形態では、コレクションのPASS設定が変更された場合、コレクションに従属するコンテンツアイテムまたはサブコレクションのすべてのPASS設定を変更する。
【0135】
いくつかの実施形態では、コンテンツアイテムのPASS情報は、コンテンツ管理システム110が既に把握している別のコンテンツアイテムから継承することができる。例えば、新しいコンテンツアイテムがコンテンツ管理システム110に追加されると、コンテンツ管理サービス116は、上述したように、コンテンツアイテムに対して決定論的ハッシュ関数を実行して、コンテンツアイテムに対する一意の識別番号を生成することができる。いくつかの実施形態では、コンテンツアイテムは、コンテンツストレージ142に既にあるコンテンツアイテムのコピー、または新しいバージョンであると決定され得る。このような実施形態では、コンテンツアイテムは、既にコンテンツストレージ142にあるコンテンツアイテムのPASS情報に関連付けることができ、これにより、以前の被閲覧状態情報及びアクセス情報を保存することができる。いくつかの実施形態では、別のコンテンツアイテムまたはバージョンからのPASS情報がアップロードされたファイルに適用されるべきかどうかを尋ねるために、コンテンツアイテムをアップロードするアカウントにプロンプトが提供される。
【0136】
いくつかの実施形態では、被閲覧履歴/アクセスサービス 208は、サードパーティの製品がPASS情報を受信し、表示することを可能にするAPIを提供することができる。
【0137】
図11は、例示的なコンピューティングシステムアーキテクチャ1100を示し、システムのコンポーネントは、接続1105を使用して互いに通信する。接続1105は、バスを介した物理的接続、またはチップセットアーキテクチャなどにおけるプロセッサ1110への直接接続であり得る。接続1105は、仮想接続、ネットワーク接続、または論理接続とすることもできる。
【0138】
いくつかの実施形態では、1100は、分散システムであり、本明細書の構成要素に関して説明される機能は、データセンタ内、複数のデータセンタ内、地理的などに分散することができる。いくつかの実施形態では、説明されるシステム構成要素のうちの1つ以上は、それぞれが説明される構成要素の機能のいくつかまたはすべてを実行する、多くのそのような構成要素を表す。いくつかの実施形態では、本明細書で説明する構成要素は、物理デバイスまたは仮想デバイスであり得る。
【0139】
例示的なシステム1110は、少なくとも1つの処理ユニット(CPU又はプロセッサ)1110と、読み取り専用メモリ(ROM)やランダムアクセスメモリ(RAM)などのシステムメモリ1115を含む各種のシステム構成要素をプロセッサ1110に接続する接続1105と、を含む。システム1100は、プロセッサ1110に直接接続された、プロセッサ1110に近接した、またはプロセッサ1110の一部として統合された高速メモリのキャッシュを備える。
【0140】
プロセッサ1110は、任意の汎用プロセッサを含んでもよいし、プロセッサ1110を制御するように構成されたハードウエアサービスまたはソフトウエアサービス、例えばストレージデバイス1130の中に格納されたサービス1 1132、サービス2 1134、サービス3 1136を含み得、実際のプロセッサ設計の中にソフトウエア命令が組み込まれている専用プロセッサを含み得る。プロセッサ1110は本質的に、複数のコアまたはプロセッサ、バス、メモリコントローラ、キャッシュ等を含んでいる、完全に自己完結型のコンピュータシステムであってもよい。複数のコアプロセッサは対称又は非対称であってもよい。
【0141】
ユーザとコンピューティングデバイス1100との対話を可能にするために、入力デバイス1145は、通話用のマイクロフォン、ジェスチャまたはグラフィカル入力用のタッチセンサ式スクリーン、キーボード、マウス、モーション入力、スピーチ等の、任意の数の入力メカニズムを表しうる。出力デバイス1135は、当業者には公知の複数の出力機構のうちの1つ以上であり得る。場合によっては、マルチモーダルシステムによって、ユーザが、計算デバイス1100と通信するための複数のタイプの入力を行うことが可能になる。通常、通信インタフェース1140が、ユーザ入力とシステム出力とを管理し得る。特定のハードウェア構成上で動作することについての制限はなく、従って、本明細書での基本的な特徴は、改良型のハードウェア構成やファームウェア構成が開発されれば、それらと容易に置き換わってよい。
【0142】
ストレージデバイス1130は不揮発性メモリであり、ハードディスクや、コンピュータによってアクセス可能でありかつデータを保持可能な他のタイプのコンピュータ可読媒体、例えば、磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタルバーサタイルディスク、カートリッジ、ランダムアクセスメモリ(RAMs)1125、読み取り専用メモリ(ROM)1120、それらのハイブリッド、等であり得る。
【0143】
ストレージデバイス1130は、ソフトウェアサービス、サーバ、サービスなどを含むことができ、そのようなソフトウェアを定義するコードがプロセッサ1110によって実行されると、ストレージデバイス1130は、システムに機能を実行させる。いくつかの実施形態では、或る機能を行うハードウエアサービスは、プロセッサ1110、接続1105、ディスプレイ1135等のような、その機能を実行するのに必要なハードウエアコンポーネントと関連してコンピュータ可読媒体の中に格納されたソフトウエアコンポーネントを含み得る。
【0144】
説明の明確化のため、ある例では、本技術はデバイスやデバイスコンポーネントやソフトウェアで実施される方法のステップまたはルーチンやハードウェアとソフトウェアとの組み合わせを含む機能ブロックを含む個々の機能ブロックを含むものとして提示されてもよい。
【0145】
本明細書で説明されるステップ、操作、機能、またはプロセスのいずれも、ハードウェアおよびソフトウェアのサービスまたは複数のサービスの組み合わせによって、単独で、または他のデバイスと組み合わせて、実行または実装され得る。ある実施形態では、サービスは、クライアントデバイス及び/又はコンテンツ管理システムの1つ以上のサーバーのメモリに常駐し、プロセッサがサービスに関連したソフトウェアを実行するときに1つ以上の機能を実行するソフトウェアである。いくつかの実施形態では、サービスは、プログラム、または特定の機能を実行するプログラムの集合である。いくつかの実施形態では、サービスはサーバとみなすことができる。メモリは、非一時的なコンピュータ可読媒体とすることができる。
【0146】
ある実施の形態では、コンピュータ可読保持デバイス、媒体およびメモリは、ビットストリームを含むケーブルや無線信号などを含み得る。しかし、言及される場合、非一時的なコンピュータ読み取り可能ストレージ媒体は、エネルギー、キャリア信号、電磁波、及び信号それ自体を、明示的に除外する。
【0147】
上述の例に従った方法は、コンピュータ読み取り可能媒体に格納された、またはさもなければコンピュータ読み取り可能媒体から利用可能な、コンピュータで実行可能な命令を使用して実施されうる。そのような命令は、例えば、汎用コンピュータ、専用コンピュータ、専用処理デバイス、命令及びデータに、特定の機能または機能のグループを実行させるか、さもなければ実行するよう設定する、命令及びデータを含みうる。使用されるコンピュータリソースの一部はネットワークを介してアクセス可能であり得る。コンピュータ実行可能命令は、例えば、バイナリや、アセンブリ言語などの中間フォーマット命令や、ファームウェアや、ソースコードであってもよい。命令、使用される情報、および/または説明された例に係る方法中に生成される情報を格納するのに使用されうるコンピュータ可読媒体の例は、磁気または光学ディスク、半導体メモリデバイス、フラッシュメモリ、不揮発性メモリを備えるUSBデバイス、ネットワークストレージデバイスなどを含む。
【0148】
これらの開示に従った方法を実施するデバイスは、ハードウェア、ファームウェア及び/またはソフトウェアを備えうるとともに、種々のフォームファクタのいずれかを取りうる。そのような形状ファクタの典型的な例は、サーバ、ラップトップや、スマートフォンや、小さい形状ファクタのパーソナルコンピュータや、パーソナルデジタルアシスタントなどを含む。本明細書で説明される機能は周辺機器やアドインカードにおいても実現され得る。そのような機能は、更なる例として、単一のデバイスで達成する異なるチップ間または異なるプロセス間の回路ボードでも実施されうる。
【0149】
命令、そのような命令を搬送するメディア、それらを実行するコンピューティングリソース、及びそのようなコンピューティングリソースをサポートする他の構成は、これらの開示において説明された機能を提供する手段である。
【0150】
種々の例及び他の情報が、添付の請求項の範囲内の態様を説明するために使用されたが、当業者であれば多種多様な実施を導くためにこれらの例を使用できるため、そのような例における具体的な特徴または構成に基づいて請求項が限定されてはならない。更には、構造的な特徴及び/または方法のステップの例に特有の表現で主題が説明されているが、添付の請求項に規定された手段は、それらの説明された特徴または動作に必ずしも限定されないことが理解される。例えば、そのような機能は、別々に分散されてもよいし、本明細書で特定したコンポーネントと異なるコンポーネントで実行されてもよい。むしろ、上述の特徴及びステップは、添付の請求項の範囲内のシステム及び方法のコンポーネントの例として説明されている。
図1
図2
図3
図4
図5
図6
図7
図8
図9A
図9B
図9C
図9D
図10A
図10B
図10C
図11