JP2019153326A - 共有され同期されたコンテンツにアクセスする装置間でプレゼンスを管理すること - Google Patents

共有され同期されたコンテンツにアクセスする装置間でプレゼンスを管理すること Download PDF

Info

Publication number
JP2019153326A
JP2019153326A JP2019080438A JP2019080438A JP2019153326A JP 2019153326 A JP2019153326 A JP 2019153326A JP 2019080438 A JP2019080438 A JP 2019080438A JP 2019080438 A JP2019080438 A JP 2019080438A JP 2019153326 A JP2019153326 A JP 2019153326A
Authority
JP
Japan
Prior art keywords
content item
content
user
presence information
devices
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019080438A
Other languages
English (en)
Other versions
JP6727373B2 (ja
Inventor
マクシム ララビー−ベランガー,
Larabie-Belanger Maxime
マクシム ララビー−ベランガー,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dropbox Inc
Original Assignee
Dropbox Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dropbox Inc filed Critical Dropbox Inc
Publication of JP2019153326A publication Critical patent/JP2019153326A/ja
Priority to JP2020113157A priority Critical patent/JP6980062B2/ja
Application granted granted Critical
Publication of JP6727373B2 publication Critical patent/JP6727373B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06311Scheduling, planning or task assignment for a person or group
    • G06Q10/063114Status monitoring or status determination for a person or group
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/101Collaborative creation, e.g. joint development of products or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • H04L51/046Interoperability with other network applications or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/403Arrangements for multi-party communication, e.g. for conferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/54Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users

Abstract

【課題】コンテンツ管理システムを介してコンテンツアイテムを共有する一群のユーザが、そのそれぞれの装置においてこの共有されたアイテムとのお互いのインタラクションに気づくことを可能にする。【解決手段】コンテンツ管理システムは、クライアントアプリケーションから、コンテンツ管理システムに同期されたコンテンツアイテムに関するユーザのインタラクション情報を示すプレゼンス情報を受信する。プレゼンス情報は、ネイティブアプリケーションがコンテンツアイテムを開いたか、閲覧しているか、又は、編集しているかを示す。コンテンツ管理システムは、プレゼンス情報を記述するプレゼンスレコードを記憶し、ユーザと関連付けられたプレゼンス状態を生成して伝送する。装置は、他のユーザのコンテンツアイテムに関するプレゼンス情報を、コンテンツアイテムを表示するアプリケーションのユーザインタフェースとともに表示する。【選択図】図9

Description

関連出願の相互参照
本出願は2014年4月8日に出願された米国特許出願第14/248,149号を基礎とする優先権を主張するものであり、その内容は全体として参照によりここに組み込まれる。
背景
本開示は一般には装置間で情報を共有することに関し、特に、共有され同期されたコンテンツアイテムを伴うネイティブアプリケーションのインタラクションについての情報を装置間で共有することに関する。
コンテンツ管理システムは、装置がコンテンツアイテムをコンテンツ管理システムや他の装置と同期することを可能にする。装置は、コンテンツアイテムのローカルコピーを記憶する。装置上でコンテンツアイテムが追加、削除、及び、編集された場合、これらの修正は記憶と他の装置との同期のために、コンテンツ管理システムへ送信される。コンテンツアイテムとのインタラクションを行うために、ユーザは装置上でネイティブアプリケーションを実行してコンテンツアイテムを閲覧して修正するのが一般的である。コンテンツアイテムへの修正は、ネイティブアプリケーションの実行とは別個にコンテンツ管理システムと同期してもよい。したがって、複数の装置が特定のコンテンツアイテムを別個に閲覧し編集してもよい。複数のユーザがそれぞれ同一のコンテンツアイテムを修正した場合、編集の衝突からバージョニングの問題が生じうる。このような衝突が生じる原因の1つは、他のユーザがコンテンツアイテムを並列的に修正していることをユーザが気づかないためである。
概要
以下に説明する実施形態は、コンテンツ管理システムを介してコンテンツアイテムを共有する一群の装置のユーザが、そのそれぞれの装置においてこの共有されたアイテムとのお互いのインタラクションに気づくことを可能にする。様々な実施形態において、共有コンテンツアイテムが1つ以上の他の装置上で閲覧又は編集されていることを示すグラフィックおよびテキストの情報が、そのそれぞれの装置のユーザに提供される。さらに、様々な実施形態において、ユーザは、そのそれぞれの装置を介してそのコメントを通信し、共有コンテンツアイテムに関する通知の受信を登録することができる。
様々な実施形態に係る装置は、コンテンツ管理システムにより装置間で維持され同期された、共有コンテンツアイテムのローカルコピーを記憶する。装置は、ワードプロセッサ、メディアビューワ、メディアエディタ等のコンテンツアイテムにアクセスするために用いることが可能なネイティブアプリケーションを有する。ネイティブアプリケーションは、ウィンドウ等のユーザインタフェース要素内のコンテンツアイテムに関する情報を表示する。装置は、また、コンテンツアイテムとのインタラクションを監視し、このようなインタラクションについての情報を、直接またはコンテンツ管理システムを介してコンテンツアイテムを共有している他の装置と通信するクライアントアプリケーションを有する。クライアントアプリケーションは、コンテンツアイテムとのユーザインタラクションを記載するデータを含むインタラクション情報を生成する。インタラクション情報は、クライアントアプリケーションとのインタラクションと、ネイティブアプリケーションとのインタラクションを含む。インタラクション情報は、ネイティブアプリケーションにおいて生じたプログラムのイベントから判定してもよい。ネイティブアプリケーションのイベントから判定したインタラクション情報はプレゼンス情報と呼ぶ。ネイティブアプリケーションのインタラクションにおいて生じたイベントはプレゼンスイベントと呼び、コンテンツアイテムのオープン(開くこと)、コンテンツアイテムの編集、コンテンツアイテムの保存、コンテンツアイテムの名称変更、コンテンツアイテムの移動、及び、コンテンツアイテムの削除を含むことができる。プレゼンスイベントは、また、フォーカスを取得し又は失ったユーザインタフェース要素等の、ネイティブアプリケーションのユーザインタフェース要素とのインタラクションをも含む。フォーカスされたユーザインタフェース要素は、装置上でユーザ入力を受けたユーザインタフェース要素である。例えば、フォーカスを有するユーザインタフェース要素は、ユーザがユーザインタフェース要素を介してコンテンツアイテムを「閲覧中」であることのプレゼンス情報を判定するために用いられる。一実施形態において、プレゼンスイベントは、コンテンツアイテムとのインタラクションを行っているネイティブアプリケーションとは別個のクライアントアプリケーションにより収集される。すなわち、この実施形態では、コンテンツアイテムにアクセスしているネイティブアプリケーションに統合されていない他のアプリケーション又はプロセスによってプレゼンスイベントは収集される。
さらなる種類のインタラクション情報には、クライアントアプリケーションによって受信されてもよい、コンテンツアイテムに関するノート、メッセージ、及び、通知要求が含まれる。メッセージには、他の装置へのチャットメッセージや、コンテンツアイテムとの(例えば、編集のような)インタラクションを行うというユーザの意図を示すメッセージが含まれてもよい。インタラクション情報には、また、バージョニングノート等のメタデータ修正、又は、バージョニング情報ないし以前のコンテンツアイテムのバージョンの閲覧要求等の、コンテンツ管理システムに記憶されたコンテンツアイテムについてのさらなる情報に対する要求をも含まれる。インタラクション情報は装置により交換されて、コンテンツアイテムとの他者のインタラクションに関する情報をユーザに提供する。
クライアントアプリケーションは装置上のイベントを監視して、ユーザがいつ同期されたコンテンツアイテムとのインタラクションを行うためにネイティブアプリケーションを使用しているかを判定する。イベントを監視する1つの方法において、クライアントアプリケーションは、ユーザインタフェース要素又はオペレーティングシステムを制御するプロセスを登録して、ユーザインタフェース要素に関連するイベントを受信する。クライアントアプリケーションは、そのような全てのイベントを監視してもよいし、同期されたコンテンツアイテムを開くことと関連付けられたあるユーザインタフェース要素のみを監視するようにしてもよい。プレゼンスイベントが発生した場合、クライアントアプリケーションは、ネイティブアプリケーション又はオペレーティングシステムからプレゼンスイベントを受信する。クライアントアプリケーションはイベントと関連付けられたユーザインタフェース要素を識別し、そのイベントと関連付けられたプレゼンス情報を判定する。クライアントアプリケーションは、コンテンツアイテムに対するインタラクションが行われていること又は行われたことをコンテンツ管理システムに通知し、プレゼンス情報をコンテンツ管理システムへ送信する。プレゼンス情報(又は他のインタラクション情報)は直接他の装置へ送信してもよい。
コンテンツ管理システムはインタラクション情報を受信し、そのインタラクション情報に応答し、あるいは、インタラクション情報の種類に基づき他の装置へそのインタラクション情報を送信してもよい。メッセージに関するインタラクション情報は、コンテンツアイテムと同期された他の装置へ送信される。プレゼンス情報はプレゼンスレコードとして記憶され、プレゼンスレコードは、一実施形態において、コンテンツアイテム、装置、プロセス、ユーザインタフェース要素、及びプレゼンスの種類(例えば、コンテンツアイテムが開かれていること、閲覧されていること、あるいは、編集されていること)を示す。インタラクションの順序付けに係るインタラクションの優先度を示すユーザプレゼンスが判定されてもよい。順序付けの一例において、コンテンツアイテムの編集はコンテンツアイテムの閲覧よりも高い優先度を有し、コンテンツアイテムの閲覧はコンテンツアイテムを開くことよりも高い優先度を有する。ユーザプレゼンスはコンテンツアイテムに関するユーザのプレゼンスを記述し、いかなる特定の装置、プロセス、又はユーザインタフェース要素への参照を伴わないようにしてもよい。コンテンツ管理システムは、コンテンツアイテムに関して同期された全ての装置へ情報を送信してもよいし、あるいは、コンテンツアイテムに関するアクティブなプレゼンスレコードと関連付けられた装置へのみ情報を送信してもよい。一実施形態において、装置は、通知のトリガ(契機)となる特定のインタラクションを指定してもよい、コンテンツアイテムについてのインタラクション情報を受信するためにコンテンツ管理システムに登録する。インタラクションが発生した場合、インタラクショントリガ情報が通知と関連付けられた装置へ送信される。
一実施形態において、コンテンツ管理システムでコンテンツアイテムへの修正が受信された場合、装置は、クライアント装置と関連付けられたインタラクション情報に依存したアクションを実行するように命令される。例えば、プレゼンスレコードと関連付けられた装置はコンテンツアイテムが修正されたことを通知され、コンテンツ管理システムはその装置に、コンテンツアイテムの編集を破棄するか、あるいは、コンテンツアイテムの新バージョンを作成するかをユーザが選択するためのプロンプトを表示するように命令する。
ネイティブアプリケーションにより開かれたコンテンツアイテムに関する、他のクライアント装置に対するプレゼンス情報が受信された場合、クライアントアプリケーションは、ネイティブアプリケーションのユーザインタフェース要素の近傍のプレゼンスインジケータ内にプレゼンス情報を表示する。プレゼンスインジケータは、受信したプレゼンス情報と関連付けられたユーザの画像であってもよく、特定の種類のプレゼンス情報や、その種類のプレゼンスを表しているユーザ数を示してもよい。プレゼンスインジケータを表示するために、クライアント装置は、ネイティブアプリケーションのユーザインタフェース要素の境界を判定し、そのユーザインタフェース要素の境界か、あるいは、ユーザインタフェース要素を隠さない他の適した位置にプレゼンスインジケータを表示する。例えば、プレゼンスインジケータは、コンテンツアイテムを含むウィンドウの縁に並んで表示された、共有コンテンツアイテムを修正しているユーザのサムネイル画像であってもよい。プレゼンスインジケータはまた、ツールバー又はディスプレイの他の部分に表示してもよい。プレゼンス情報に加えて、他の種類のインタラクション情報を提示してもよい。例えば、チャットメッセージ、ユーザのプレゼンスについての要求された通知、バージョニング情報、及び、他のインタラクション情報を表示してもよい。コンテンツアイテムの新バージョンがコンテンツ管理システムと同期された場合、インタフェースはまた、コンテンツアイテムの更新をユーザに知らせ、例えば、コンテンツアイテムの以前のバージョンへの変更の保存または破棄を行うためのオプションをユーザに提供して、ユーザインタフェース要素のプレゼンス情報に基づくオプションを提供する情報を表示してもよい。
装置は、他のユーザのコンテンツアイテムとのインタラクションに関するプレゼンス情報を、コンテンツアイテムを表示するアプリケーションのユーザインタフェースとともに表示する。これにより、ユーザは、コンテンツアイテムに関する他のユーザのアクティビティを、本質的にリアルタイム又はほぼリアルタイムに閲覧することが可能となる。さらに一実施形態において、プレゼンス情報は、コンテンツアイテムを表示又は修正するネイティブアプリケーションに対する修正又はアドオンに頼ることなく収集される。さらに、コンテンツ管理システムと通信するためのインタフェースをアプリケーションのユーザインタフェースとともに提示することにより、ユーザは、コンテンツアイテムが表示されている間、チャット情報を便利に交換し、コンテンツアイテムについてのデータを取得することが可能になる。
様々な実施形態において、クライアントアプリケーションはさらに、フォルダ又は他のコンテンツアイテムを収集したもの(コレクション)を閲覧するためのコンテンツアイテムブラウザ(「ブラウザ」)においてプレゼンス情報を表示する。コンテンツアイテムのコレクションには、ネイティブアプリケーションとのインタラクションが行われてもよいコンテンツアイテムが含まれてもよく、また、コレクション内のコレクションを含んでもよい。したがって、コンテンツアイテムのコレクションは階層的に配置してもよい(例えば、フォルダ内のフォルダ)ように、各コレクションはそれ自体コンテンツアイテムのコレクションであってもよい。特定のコンテンツアイテムのインタラクション情報は、コンテンツアイテムを含むコンテンツアイテムの各コレクションと関連付けられる。
説明を明確にするために、ブラウザがコレクションを含むコレクションを表示する場合(すなわち、フォルダ内のフォルダ)、他のコレクションに含まれるコレクションは編成要素と呼ぶ。すなわち、ブラウザがコレクションを表示する場合、表示されたコレクションであるコンテンツアイテムは編成要素と呼ばれる。
ユーザがブラウザ内のコンテンツアイテムのコレクションを閲覧する場合、ブラウザは、コンテンツアイテムに関するインタラクション情報を反映する状態インジケータを表示する。ブラウザに表示された各編成要素は、その編成要素内の、さらなる編成要素等の、コンテンツアイテムのインタラクション情報を反映したインジケータをも表示する。例えばブラウザは、2つのコンテンツアイテムと1つの編成要素のコレクション(例えば、3つのコンテンツアイテムを含むフォルダ)を表示してもよい。2つのコンテンツアイテムの各々について状態インジケータが表示されてコンテンツアイテムに関するインタラクション情報が示され、状態インジケータが、そのコンテンツアイテム(例えば、フォルダ内の3つのコンテンツアイテム)とのインタラクションを示す編成要素とともに表示される。さらなる情報を得るために、ユーザは、コンテンツアイテム又は編成要素を選択し、あるいは、その上にカーソルを置いてもよい。あるいはユーザは、ブラウザを制御して、編成要素により記載されたコンテンツアイテムのコレクションを表示してもよい。ブラウザの表示を生成するために、クライアントアプリケーションは、インタラクション情報をフィルタリングして、ユーザに表示されるコンテンツアイテムの編成に関連するインタラクション情報を表示する。これによりユーザは、コンテンツアイテムブラウザ内で、コンテンツアイテムの編成と関連付けられたコンテンツアイテムに対するインタラクション情報を閲覧し、様々な編成要素及びコンテンツアイテムに関する他のユーザのインタラクションを一目で閲覧することが可能となる。
また、コレクションに関するインタラクション情報と他のメタデータは、アクティビティフィードにおいて閲覧しているユーザへ表示してもよい。インタラクション情報と他のメタデータは、クライアントと同期され表示コレクションを含む共有フォルダと関連付けられてもよい。アクティビティフィードは、ブラウザに現在表示されているコンテンツアイテムのコレクションと関連付けられたインタラクション情報及び他の情報を表示する。アクティビティフィードは、現在アクティブなユーザ(例えば、「閲覧中」等のアクティブなプレゼンス情報を有するユーザ)を、そのユーザにより実行されたアクションや、コンテンツアイテムのコレクションに関する通知と合わせて表示してもよい。これらのアクション及び通知は、プレゼンス情報における変更や、あるいは、前述のインタラクション情報のような、インタラクション情報に関する他の通知を含んでもよい。特に、これは、チャットメッセージ又は通知すべき要求等の、ネイティブアプリケーションとともに表示されるインタフェース要素を用いてユーザにより入力されたインタラクション情報を含んでもよい。インタラクション情報に加えて、アクティビティフィードはまた、コンテンツアイテム、コレクション、又は(適用可能ならば)共有フォルダへの変更を反映した情報を表示してもよい。例えば、共有フォルダに対する変更は共有フォルダに追加された新ユーザでもよく、あるいは、コンテンツアイテムへの変更は利用可能になるコンテンツアイテムの新バージョンでもよい。ユーザはまた、(例えば、ユーザがプレゼンス情報と関連付いている、編成要素を含むコンテンツアイテムを識別するために)特定のユーザのためにフィルタリングしたり、ユーザがコンテンツアイテムに最後にインタラクションを行ったのはいつであるのかを識別したり、あるいは、編成要素それ自体に関するインタラクション情報(例えば、チャットメッセージ)を追加したりするためにブラウザとインタラクションを行ってもよい。
図面の簡単な説明
図1は、インタラクション情報の通信を含むコンテンツアイテムの同期のための環境の一実施形態を示す図である。 図2は、一実施形態に係る装置の様々なモジュール及びコンポーネントを示す図である。 図3A、図3Bは、装置のデスクトップ表示上におけるユーザインタフェース要素のフォーカスの変化を示す図である。 図4は、一実施形態に係るコンテンツアイテムと関連付けられたプレゼンス情報を判定するプロセスの一例を示す図である。 図5A−図5Dは、インタラクション情報を表示するユーザインタフェースの例を示す図である。 図6は、一実施形態に係る、コンテンツ管理システムのコンポーネントを示す図である。 図7は、一実施形態に係るユーザプレゼンスの順序付けを示す図である。 図8は、一実施形態に係るコンテンツアイテムに関するプレゼンステーブルにおけるプレゼンスレコードを示す図である。 図9は、一実施形態に係るプレゼンスレコードの修正とユーザプレゼンスの装置の更新を行うプロセスを示す図である。 図10は、プレゼンス情報を使用してコンテンツアイテムに対する修正を同期させるプロセスのフローチャートを示す図である。 図11は、一実施形態に係るインタラクション情報のフォルダレベル表示を示す図である。
各図は本発明の様々な実施形態を例示の目的で示しているにすぎない。本明細書に記載の発明の原理から離れることなく本明細書に示す構造及び方法の代替的な実施形態を採用してもよいことを、当業者は以下の議論から容易に理解するだろう。
詳細な説明
図1は、インタラクション情報の通信を含むコンテンツアイテムの同期のための環境の一実施形態を示す図である。図1は、装置100A、100B、100C(広くは装置100として参照する)、コンテンツ管理システム110、及び、ネットワーク120を含んでいる。3つの装置は例示目的のために示しているにすぎない。実際には、本環境においては任意の数の装置が存在してもよい。同様に、全体にわたり記載ないし説明されている他のモジュール又はコンポーネントは、実装者の必要に応じて適宜かつ一般性を失うことなく、1つまたは複数のインスタンスを含んでもよい。
装置100は、コンテンツアイテムをローカルに記憶、閲覧するとともに、コンテンツアイテムをコンテンツ管理システム110と同期させる任意の適切なコンピュータ装置であってもよい。装置の例には、デスクトップないしラップトップのコンピュータ、ハンドヘルドのモバイル装置、タブレットコンピュータ、及び、他のコンピュータ装置が含まれる。以下、様々な実施形態における装置100の動作をさらに説明する。
各装置100は、ネットワーク120を介してコンテンツ管理システム110と通信する。ネットワーク120は任意の適切なネットワークであり、ローカルネットワーク、企業ネットワーク、グローバルネットワーク、及び、これらの任意の組み合わせを含んでもよい。典型的な構成において、装置100は、有線または無線の通信ネットワークを介してローカルネットワークのサービスプロバイダと通信し、インターネットを介してコンテンツ管理システム110と通信する。図1に点線で示すように、ある構成では、装置100A、100B、及び100Cは、ネットワーク120を経由せずに互いに直接通信する。例えば、装置100は、Bluetooth接続を介した無線、あるいは、ユニバーサル・シリアス・バス(USB)を介した有線接続等の、有線又は無線の接続を介して通信してもよい。
コンテンツ管理システム110は、装置100のユーザに対して、コンテンツの共有及び同期のサービスを提供する。これらのサービスは、ユーザが、他の装置100のユーザとコンテンツを共有することを可能にする。コンテンツ共有に加えて、コンテンツ管理システム110は、変更に応じて共有コンテンツを更新し、複数の装置100の間でコンテンツアイテムへの同期された変更を可能にする。ユーザは、そのユーザが所有しユーザのアカウントと関連付けられた複数の装置100にわたってコンテンツを同期してもよく、ユーザは他のユーザのアカウントと関連付けられた装置と同期されたコンテンツを共有してもよい。コンテンツ管理システム110に記憶されたコンテンツは、デジタルデータ、文書、メディア(例えば、画像、写真、動画、音声、ストリーミングコンテンツ)、データファイル及びデータベース、ソースコード及びオブジェクトコード、レコーディング、及び、他の任意の種類のデータまたはファイル等の、任意の種類のデータを含むことができ、ここではこれらをまとめて「コンテンツアイテム」と称する。コンテンツ管理システム110に記憶されたコンテンツアイテムはまた、フォルダ、テーブル、コレクション、アルバム、プレイリスト等の他のコンテンツアイテムを編成するために、あるいは、他のデータベース構造において(例えば、オブジェクト指向、キー/バリュー等)用いてもよい。実際には、ユーザアソシエーション、パーミッション、コンテンツ共有パーミッションその他に基づいて、様々な装置100が異なるグループのコンテンツアイテムを同期させてもよい。以下、様々な実施形態におけるコンテンツ管理システム110の動作をさらに説明する。
図2は、一実施形態に係る装置100の様々なモジュール及びコンポーネントを示す図である。装置100は、ユーザに情報を提供するディスプレイ220を有し、あるクライアント装置100においては、タッチスクリーンを有する。装置100はまた、ネットワーク120を介してコンテンツ管理システム110と通信するためのネットワークインタフェース225を有する。例えば、1つ以上のコンピュータプロセッサ、ローカル固定メモリ(RAM及びROM)、並びに、任意に着脱可能なメモリ(例えば、SDカード)、電源、及び、音声・ビデオ出力のような、マテリアルではないクライアント装置100の他の従来のコンポーネントは図示していない。
ソフトウェアモジュールには、オペレーティングシステム245及び1つ以上のネイティブアプリケーション255が含まれる。ネイティブアプリケーション255はクライアント装置に基づき変化し、コンテンツ管理システム110上に記憶されたコンテンツを作成、閲覧、消費、及び、修正するための様々なアプリケーションを含んでもよい。例えば、ワードプロセッサ、スプレッドシート、データベース管理システム、コードエディタ、画像・動画エディタ、電子ブックリーダ、音声・動画プレイヤー、その他等はこれにあたる。各装置上のオペレーティングシステム245は、ローカルファイル管理システムを提供し、コンテンツ管理システムのクライアントアプリケーション200やネイティブアプリケーション255等の様々なソフトウェアモジュールを実行する。コンタクトディレクトリ240は、例えば、名前、ピクチャ、電話番号、会社、電子メールアドレス、実在住所、ウェブサイトURL等の、ユーザのコンタクトについての情報を記憶する。ネイティブアプリケーション255、オペレーティングシステム245、及び、コンテンツ管理システムのクライアントアプリケーション200のさらなる動作は、以下に説明する。
ある実施形態において、装置100は、カメラ230、ロケーションモジュール235等の付加的なコンポーネントを有する。カメラ230は、オンラインのコンテンツ管理システム110へアップロードする画像又は動画を撮影するために用いてもよい。ロケーションモジュール235は、例えば、グローバル・ポジショニング・サテライト信号、セルラ基地局三角測量法、あるいは、他の方法を用いて、装置100の位置(ロケーション)を判定する。ロケーションモジュール235は、ロケーションデータを取得し、そのロケーションデータを、例えばカメラ230が撮影した画像等のコンテンツアイテムについてのメタデータに追加するために、クライアントアプリケーション200が使用してもよい。
クライアント装置100は、様々な手法によりコンテンツ管理システム110にアクセスする。クライアントアプリケーション200は、ユーザインタフェースを介した共有ファイルへのユーザアクセスと他のアプリケーションのためのプログラム的なアクセスの両方を提供する、コンテンツ管理システム110のサービスへのアクセスを提供する専用のアプリケーション又はモジュールとすることができる。クライアント装置100はまた、ウェブブラウザ250を介してコンテンツ管理システム110にアクセスしてもよい。これに代えて、クライアントアプリケーション200は、オペレーティングシステム245が提供するローカルファイル管理システムにコンテンツ管理システム110へのアクセスを統合してもよい。コンテンツ管理システム110へのアクセスがローカルファイル管理システムに統合された場合、コンテンツ管理システム110において維持されたファイル編成方式は、クライアントアプリケーション200と連携してオペレーティングシステム245によりローカルファイル構造として示される。クライアントアプリケーション200は、スタンドアロン・アプリケーション、アプリケーション・プラグイン、あるいは、ブラウザ拡張等の、様々な形態をとってもよい。クライアントアプリケーション200は、ユーザインタフェースモジュール202、インタラクション管理モジュール204、コンテンツアクセスモジュール206、ローカルコンテンツデータストア208、及び、監視プレゼンスデータストア210を有する。
他の装置のタスクのハンドリング(取り扱い)に加えて、オペレーティングシステム245は、装置100上で実行しているアプリケーションからの情報を、1つ以上のユーザインタフェース要素を有してもよいディスプレイ220を介してユーザへ表示する。そのようなユーザインタフェース要素は、特定の装置及び構成に基づいて変化してもよい。ユーザインタフェース要素には、デスクトップインタフェース上のウィンドウやモバイル装置上のインタフェース要素が含まれる。ウィンドウ等のユーザインタフェース要素を採用しているオペレーティングシステムの例は、ワシントン州レドモンドのマイクロソフト社のMicrosoft Windows8や、カリフォルニア州クパチーノのアップル社のOS Xである。さらに、オペレーティングシステム245は、同時に実行してもよい複数のネイティブアプリケーション255の制御を管理する。ユーザインタフェース要素は、ある層が他の層に重なり合うように階層化されてもよい。いくつかのオペレーティングシステム及び構成においては、単一のユーザインタフェース要素のみが所与の時間に表示される。1つのユーザインタフェース要素は典型的にはアクティブなユーザインタフェース要素であり、これは、例えば、キーボード入力、カーソル移動、タッチセンサ、タッチジェスチャその他のようなユーザ入力を、オペレーティングシステム245が伝えるユーザインタフェース要素であることを意味する。当業者が理解するように、特定の時間にアクティブなウィンドウまたは他のユーザインタフェース要素はフォーカスを有するといわれることが多い。ユーザは他のユーザインタフェース要素を選択してあるユーザインタフェース要素から他のものへフォーカスを変更してもよく、いくつかの場合には、オペレーティングシステム245がユーザ入力なしにフォーカスを変更してもよい。
典型的には、例えば、ネイティブアプリケーション255と関連付けられたウィンドウのようなユーザインタフェース要素はオペレーティングシステム245により管理され、オペレーティングシステム245は、実行中のネイティブアプリケーション255のプロセス識別子とユーザインタフェース要素のユーザインタフェース要素識別子との間の関連付け(アソシエーション)を維持する。例えば、特定のアプリケーションはプロセスID「2587」と関連付けられてよく、このプロセスIDは、ユーザインタフェース要素識別子4、8、10を有する複数のユーザインタフェース要素を管理してもよい。各ユーザインタフェース要素識別子はそのネイティブアプリケーション255により開かれた特定のコンテンツアイテムと別個に関連付けられてもよく、複数のユーザインタフェース要素識別子とプロセス識別子は同一のコンテンツアイテムと関連付けられてもよい。
オペレーティングシステム245はまた、様々なイベントをハンドルし、認識する。そのようなイベントには、コンテンツアイテムを閉じる又は開くためのネイティブアプリケーション255からの要求、ウィンドウ又は他のユーザインタフェース要素を閉じるためのネイティブアプリケーション255からの要求、及び、ユーザインタフェース要素のフォーカスを多数の他のものの間で変更するための要求が含まれる。以下に記載するように、これらのイベントは、インタラクション管理モジュール204が、コンテンツアイテムに関連するプレゼンスにおける変化を認識するために用いられてもよい。
クライアントアプリケーション200は、例えば、ユーザが装置上でコンテンツアイテムを開き、閉じ、又は、編集した場合のように、コンテンツアイテムに関して生じたインタラクションを識別する。これらのインタラクションは、コンテンツアイテムとのインタラクションを記述するインタラクション情報を生成するために、クライアントアプリケーション200により識別される。インタラクション情報は、クライアントアプリケーション200とのインタラクションと、ネイティブアプリケーション255とのインタラクションを含む。ネイティブアプリケーション255のアクションから判定されたインタラクション情報はプレゼンス情報と呼ぶ。インタラクション情報とプレゼンス情報を判定する、クライアントアプリケーション200等のアプリケーションは、プレゼンスアプリケーションと呼ぶ。さらなる種類の(プレゼンス情報に加えて)インタラクション情報には、クライアントアプリケーション200によって受信されてもよい、コンテンツアイテムに関するノート、メッセージ、及び、通知要求が含まれる。メッセージには、他の装置へのチャットメッセージや、コンテンツアイテムとの(例えば、編集のような)インタラクションを行うというユーザの意図を示すメッセージが含まれてもよい。通知要求には、他のユーザのインタラクション情報が変更された場合に通知される要求が含まれてもよい。インタラクション情報には、また、バージョニングノート等のメタデータ修正、又は、バージョニング情報ないし以前のコンテンツアイテムのバージョンの閲覧要求等の、コンテンツ管理システム110に記憶されたコンテンツアイテムについてのさらなる情報に対する要求をも含まれる。インタラクション情報のさらなる例を以下に説明する。
このインタラクション情報は、コンテンツアイテムに関して同期された他の装置100へ伝送される。目的の指標は、例えば、第1のユーザがコンテンツアイテムを編集したい他の装置上のコンテンツアイテムの第2のユーザに警告してもよい。ユーザがネイティブアプリケーション255を使用してコンテンツアイテムとインタラクションをお粉いている場合にクライアントアプリケーション200は識別し、また、ユーザからチャット又は目的情報を受信する。以下にさらに説明するように、様々な実施形態において、装置100は、コンテンツアイテムにおけるユーザのプレゼンス(すなわち、ユーザがコンテンツアイテムを開いているか、あるいは、コンテンツアイテムを編集していること)をオペレーティングシステム245とのインタラクションを介して識別する。
装置100はコンテンツ管理システム110からコンテンツアイテムを受信し、ユーザが、装置100に記憶された様々なネイティブアプリケーション255を用いてそのコンテンツアイテムの閲覧、修正、及び、インタラクションを行うことを可能にする。例えば、装置100は、画像コンテンツアイテムを操作するフォト編集アプリケーション、又は、テキストコンテンツアイテムの修正を可能にするワードプロセッサアプリケーションを有してもよい。以下にさらに説明するように、インタラクション情報はユーザインタラクションアプリケーションを用いて装置100により判定され、インタラクション情報は他の装置100へ送信される。さらに、装置100が他の装置100に関するインタラクション情報を受信した場合、装置100はそのインタラクション情報を表示する。
一実施形態において、コンテンツアイテムに関するインタラクション情報を検出するアプリケーションは、コンテンツアイテムを閲覧又は操作するアプリケーションと区別される。例えば、インタラクション情報を検出するクライアントアプリケーションは、画像コンテンツアイテムを操作又は表示するフォト編集アプリケーションと区別される。様々な実施形態において、インタラクション情報を検出するアプリケーションはまた、コンテンツ管理システム110とコンテンツアイテムを同期させることも担う。プレゼンス情報を検出するアプリケーションはプレゼンスが検出されたアプリケーションから区別されてよいため、プレゼンスは、多くのアプリケーションやコンテンツアイテムに対して、同時かつプレゼンスの監視を各種のコンテンツアイテムビューワに統合することを要さずに、監視されてもよいすなわち、特別なプレゼンス監視のアドオンやアプリケーションの修正は、例えば、フォト編集アプリケーション、ワードプロセッサアプリケーション、及び、プレイリスト編集アプリケーションの各々に対して全く必要ない。
図3A、図3Bは、装置100のディスプレイ220上に表示されたデスクトップ300におけるユーザインタフェース要素のフォーカスの変化の例を示す図である。図3Aにおいて、ウィンドウ310A、310B、310Cがデスクトップ300上に表示され、ユーザにより閲覧可能である。この実施形態において、デスクトップ300はオペレーティングシステム245により維持される汎用のコンテナ又はフレームであり、ディスプレイ220上でユーザインタフェース要素を取り囲む。図3A、図3Bにおいて、ユーザインタフェース要素はデスクトップコンピュータ環境におけるウィンドウ310である。例えばモバイル装置や他の領域が限られたディスプレイのような他の構成においては、単一のユーザインタフェース要素のみが一度に表示されうるだろう。図3Aに示すように、ウィンドウ310Aはフロントウィンドウとして示されたアクティブウィンドウであり、ウィンドウ310B、310Cを部分的に覆い隠している。図3Bでは、フォーカスがウィンドウ310Bへ変化し、ここではこれがフロントウィンドウでアクティブウィンドウである。フォーカスは、ウィンドウ310Bとのユーザインタラクションか、あるいは、そのウィンドウがアクティブウィンドウになることを要求するプロセスに起因して変化してもよい。あるオペレーティングシステム及び構成においては、ユーザインタフェース要素はフロントのユーザインタフェース要素とならずにフォーカスを有する(すなわち、ユーザ入力を受信する)。
再度図2を参照すると、コンテンツアイテムを開くために、ネイティブアプリケーション255はオペレーティングシステム245からのコンテンツアイテムを要求し、コンテンツアイテムに対するオペレーティングシステム245からのコンテンツアイテムのハンドルを受信する。いくつかの場合、ネイティブアプリケーション255がコンテンツアイテムからのデータの使用を継続し、あるいは、ユーザがコンテンツアイテムへの編集を入力していたとしても、アプリケーション245はハンドルを維持せず、コンテンツアイテムデータをメモリにロードし、続いてコンテンツアイテムハンドルを閉じてもよい。したがって、オープンコンテンツアイテムハンドルは、アプリケーションが特定のコンテンツアイテムとインタラクションを行っているか否かを判定するための信頼できる手法でないことが多い。そのようなものとして、ある実施形態では、ネイティブアプリケーション255により示されるさらなる挙動は、アプリケーションがコンテンツアイテムを編集しているか否かを判定するために用いられる。
ネイティブアプリケーション255はまた、ユーザがコンテンツアイテムを修正した場合に、ユーザがそのコンテンツアイテムを保存する前に様々な挙動を行う。これらの挙動はアプリケーションやオペレーティングシステム245に基づいて変化する。例えば、いくつかのネイティブアプリケーション255は、例えばティルデ又は他の見分けのつくマークを有するコンテンツアイテムの一時的なファイル名を導いて、オープン(開かれた)コンテンツアイテムと異なるファイル名で一時的なコンテンツアイテムを作成する。他の例では、ネイティブアプリケーション255は、コンテンツアイテムと関連付けられたユーザインタフェース要素のタイトルを変更し、それはユーザから直接閲覧できてもよいしできなくてもよい。さらに他の例では、ネイティブアプリケーション255は、コンテンツアイテムが修正されたことを示すフラグを設定する。ネイティブアプリケーション255はまた、他のアプリケーション又はオペレーティングシステムからの要求に応じて、コンテンツアイテムの修正に関する情報を提供してもよい。例えば、前述のOS XオペレーティングシステムにおけるアクセシビリティAPIは、ユーザインタフェース要素と関連付けられたコンテンツアイテムに関する情報を提供する。オープンコンテンツアイテムのハンドルは、コンテンツアイテムがネイティブアプリケーション255によって編集されているか否かを確実に判定するものではないかもしれないため、以下にさらに説明するように、これらの挙動は、プレゼンス管理モジュール204がコンテンツアイテムの編集又は修正に関するプレゼンスを判定するために用いられる。
ネイティブアプリケーション255は典型的には互いに独立に装置上100上で実行されてもよく、装置100上で実行しているアプリケーションと他のアプリケーションまたはプロセスとの通信を可能にしてもよい。ネイティブアプリケーション255は典型的には、アプリケーションが実行中のプロセスからの情報を要求することを可能にする、アプリケーションプログラミングインタフェース(API)を用いてプロセスへ情報を提供する。例えば、ネイティブアプリケーション255は、アプリケーションにより制御されたユーザインタフェース要素に対する要求を可能にし、ユーザインタフェース要素のタイトルを示し、又は、ネイティブアプリケーション255により開かれたコンテンツアイテムと関連付けられたファイルシステムにおけるパスを要求するための、APIを提示する。同様に、オペレーティングシステム245は、特定のユーザインタフェース要素を制御するプロセスについての情報を要求するなどの、要求プロセスに対して同様のAPIを提供してもよい。
クライアントアプリケーション200はコンテンツ管理システム110へのアクセスを管理する。クライアントアプリケーション200は、ここで様々に説明するように、クライアントアプリケーション200によりアクセスされたコンテンツへのインタフェースを生成し、この機能を実行する1つの手段である、ユーザインタフェースモジュール202を有する。生成されたインタフェースはディスプレイ220によりユーザに提供される。クライアントアプリケーション200は、コンテンツ管理システム110のコンテンツストレージからアクセスされたコンテンツをローカルコンテンツデータストア208に記憶してもよい。ここではクライアントアプリケーション200内について示しているが、ローカルコンテンツデータストア208は、不揮発性ストレージにおいてクライアント装置100に対する他のデータとともに記憶されてもよい。ローカルコンテンツデータストア208がこのように記憶された場合、クライアントアプリケーション200がコンテンツ管理システム110と通信していなくても、コンテンツは、ユーザや、ネイティブアプリケーション255等の他のアプリケーション又はモジュールに利用可能である。コンテンツアクセスモジュール206はローカルコンテンツデータストア208への更新を管理し、コンテンツ管理システム110と通信するための同期ロジックを使用して、クライアント装置100により修正されたコンテンツをコンテンツ管理システム110上で維持されたコンテンツと同期させる。そのような同期の一例が、2013年9月27日に出願された米国特許出願第14/040,584号に提供されており、その内容は全体として参照によりここに組み込まれる。クライアントアプリケーション200は、スタンドアロン・アプリケーション、アプリケーション・プラグイン、あるいは、ブラウザ拡張等の、様々な形態をとってもよい。
コンテンツ管理システム110は、例えば、コンテンツアイテムが削除されたこと、あるいは、装置100がコンテンツアイテムの旧式のバージョンを閲覧又は編集してもよいことを指定する情報等の、コンテンツアイテムを同期するための付加的なデータを提供してもよい。
インタラクション管理モジュール204は、ユーザの同期されたコンテンツアイテムに関するインタラクション情報を取得して管理する。前述のように、インタラクション管理モジュール204は、典型的には、プレゼンス情報のためにインタラクション管理モジュール204により監視されるネイティブアプリケーション255から区別されたモジュールであり、別個のプロセスとして実行する。インタラクション管理モジュール204は、装置100と同期されているコンテンツアイテムについて判定されたインタラクション情報を、コンテンツ管理システム110へ送信する。インタラクション管理モジュール204はまた、他のユーザに関するインタラクション情報を、ユーザへの表示のために、コンテンツ管理システム110から受信する。以下にさらに説明するように、一実施形態において、インタラクション管理モジュール204は、同期されたコンテンツアイテムと関連付けられたユーザインタフェース要素にプレゼンスインジケータを添付して、他のユーザに関するプレゼンス情報を表示する。さらなるインタラクション情報もまたプレゼンスインジケータとともに表示される。
以下にさらに説明するように、多くの種類のインタラクション情報を判定するために、インタラクション管理モジュール204は、ユーザインタフェース要素を介してインタラクション情報を受信する。同期されたコンテンツアイテムに関するプレゼンス情報を判定するために、インタラクション管理モジュール204は、ネイティブアプリケーション255と関連付けられたユーザインタフェース要素を監視する。インタラクション管理モジュール204は、全てのユーザインタフェース要素を監視することができ、またそれに代えて、ユーザインタフェース要素がコンテンツアイテムと関連付けられた後にあるユーザインタフェース要素のみを監視することもできる。監視プレゼンスデータストア210は、同期されたコンテンツアイテムに関するアクションを判定するために特定のユーザインタフェース要素が監視されることを示す、インタラクション管理モジュール204により維持された情報を有する。
ここではクライアントアプリケーション200の一部として示しているが、様々な実装では、コンテンツアクセスモジュール206とインタラクション管理モジュール204とはそれぞれの機能を実行する区別されたモジュールに分離される。同様に、本明細書を通して様々なモジュールとデータストアを便宜上分けて記載しているが、様々な実装においては望む態様で、これらは組み合わせてもよいし、あるいは、さらに別個のコンポーネントに分離してもよい。
図4は、一実施形態に係るコンテンツアイテムと関連付けられたプレゼンス情報を判定するプロセスの一例を示す図である。このプロセスは典型的にはインタラクション管理モジュール204により実行される。ユーザインタフェース要素がコンテンツアイテムと関連付けられた後にのみ監視された場合、インタラクション管理モジュール204は、ユーザインタフェース要素を監視するか否かを判定するために、コンテンツアイテムがアプリケーション又はユーザインタフェース要素により開かれていることを示すイベントを使用する。これは、ユーザインタフェース要素の監視を開始するためにコンテンツアイテムをユーザインタフェース要素と関連付けてもよいイベントの一例であり、監視イベントと呼ぶ。他の実施形態において、監視のユーザインタフェース要素の選択は他の手法で判定され、あるいは、全てのユーザインタフェース要素が監視され、そこではインタラクション管理モジュール204は監視イベントを使用しなくてもよい。
オペレーティングシステム245により有効化された場合、インタラクション管理モジュール204は、一定のアプリケーションに対する監視イベントを受信するためにオペレーティングシステム245に登録してもよい。これらの実施形態において、オペレーティングシステム245がコンテンツアイテムを開く要求を受信した場合に、オペレーティングシステム245はインタラクション管理モジュール204に通知する。本実施形態において、インタラクション管理モジュール204は、ウィンドウ又は他のユーザインタフェース要素が、コンテンツアイテムとインタラクションを行っていることを示す監視イベントを受信する(400)。ここで、コンテンツアイテムは同期されたコンテンツアイテム(すなわち、プロセスは特定のユーザインタフェース要素においてコンテンツアイテムとのインタラクションを行っている)であってもよい。監視イベントは、監視イベントをトリガしたユーザインタフェース要素を少なくとも指定する。他の実施形態では、インタラクション管理モジュール204は、ユーザインタフェース要素と関連付けられたイベントを時々(例えば、5分間隔で)監視し、ユーザインタフェース要素が何らかの開かれたコンテンツアイテムと関連付けられているか否かを問い合わせる。オペレーティングシステム245及びネイティブアプリケーション255の構成によれば、この問合せはオペレーティングシステム245又はネイティブアプリケーション255に向けられてもよい。ユーザインタフェース要素が新たに開かれたコンテンツアイテムと関連付けられた場合、この新たに開かれたコンテンツアイテムは、その新たに開かれたコンテンツアイテムがコンテンツ管理システム110と同期されたコンテンツアイテムであるか否かを判定するための監視イベントとして扱われ、そのプレゼンス情報は新たに開かれたコンテンツアイテムに対して判定される。
監視イベントが受信された場合、インタラクション管理モジュール204は、どのプロセスが、監視イベントと関連付けられたユーザインタフェース要素を担っているかを判定する(410)。インタラクション管理モジュール204は、典型的には、オペレーティングシステム245からのユーザインタフェース要素と関連付けられたプロセスIDを要求することによりプロセスを判定する。いくつかの実施形態において、インタラクション管理モジュール204は、ユーザインタフェース要素その自体からのプロセスの識別を要求することによりプロセスを識別する。
プロセスとユーザインタフェース要素が互いに正しく関連付けられていることと、ユーザインタフェース要素がまだアクティブであることを確認するために、インタラクション管理モジュール204はまた、現在アクティブなユーザインタフェース要素のアイデンティティをもプロセスから要求する。インタラクション管理モジュール204は、プロセスから受信した現在アクティブなユーザインタフェース要素が監視イベントと関連付けられたユーザインタフェース要素に適合することを確認する。
プロセス識別子を用いて、インタラクション管理モジュール204は、コンテンツアイテムに対する関連付けられたディレクトリパスを取得するために、プロセスからの任意の開かれたコンテンツアイテムを要求する(420)。インタラクション管理モジュール204は、開かれたコンテンツアイテムのパスに対する要求とともに、監視イベントと関連付けられたユーザインタフェース要素を指定してもよい。インタラクション管理モジュール204は、プロセス又はオペレーティングシステムへの利用可能なインタフェースを用いて、プロセス又はオペレーティングシステムからのオープン(開く)アイテムを要求する。一例として、当該分野では公知のように、OS Xオペレーティングシステムでは、コンテンツアイテムとユーザインタフェース要素に対するコンテンツアイテムパスに関する情報へアクセスするためにアクセシビリティAPIが用いられてもよい。プロセスにより提供されたコンテンツアイテムパスを使用して、インタラクション管理モジュール204は、開かれたコンテンツアイテムパスが任意の同期されたコンテンツアイテムに対応するか否かを判定する。そのようならば、インタラクション管理モジュール204は、プロセスによりアクセスされたコンテンツアイテムはコンテンツ管理システム110と同期されたコンテンツアイテムであると判定し、そのプロセスとユーザインタフェース要素をコンテンツアイテムと関連付ける。他の実施形態では、プロセスによりアクセスされたコンテンツアイテムが同期されたコンテンツアイテムであるか否かを判定するために他の方法を用いてもよい。
コンテンツアイテムがコンテンツ管理システム110と同期されている場合(430)、インタラクション管理モジュール204は、コンテンツアイテム、プロセス、及び、ユーザインタフェース要素に関する情報を記憶して、イベントに対するユーザインタフェース要素を監視する(440)。監視イベントと関連付けられたコンテンツアイテムが同期されていない場合、プロセスは終了し、コンテンツアイテムは監視されない。この監視情報は、監視プレゼンスデータストア210に記憶される。ユーザインタフェース要素に関するプレゼンスイベントを監視し、続いて受信するために、インタラクション管理モジュール204は、ユーザインタフェース要素と関連付けられたイベントを受信するために登録する。インタラクション管理モジュール204による登録プロセスは、装置100の構成に従い変化する。典型的には、インタラクション管理モジュール204は、オペレーティングシステム245から、又は、適用可能なプロセスあるいはユーザインタフェース要素からのプレゼンスイベントを受信するための要求を登録する。ユーザインタフェース要素とプロセスとのいずれが同期されたコンテンツアイテムとのインタラクションを行っているかを監視イベントが判定した一方で、プレゼンスイベントは、コンテンツアイテムと関連付けられたユーザインタフェース要素又はプロセスに関するユーザのプレゼンスの状態における変化を示してもよいイベントである。プレゼンスイベントの例には、インタラクション管理モジュール204により認識されたプレゼンスの種類に基づいて、ユーザインタフェース要素のフォーカスの変化、ユーザインタフェース要素を閉じること、コンテンツアイテムを閉じること、コンテンツアイテムを開くこと等が含まれる。様々な構成において、インタラクション管理モジュール204により用いられるプレゼンスイベントは、オペレーティングシステム245及びネイティブアプリケーション255が、インタラクション管理モジュール204による受信に対して利用可能にするイベントに依存する。
プレゼンスイベントは、そのプレゼンスイベントが関係するコンテンツアイテムと関連付けられたプレゼンス情報を判定するために用いられる。例えば、コンテンツアイテムと関連付けられたユーザインタフェース要素がフォーカスを有することを示すプレゼンスイベントは、ユーザがそのコンテンツアイテムを閲覧していることを示すだろう。したがって、そのコンテンツアイテムに対するプレゼンス情報は状態を示す。同様に、コンテンツアイテムに関係のないユーザインタフェース要素がフォーカスを得たことを示すプレゼンスイベントは、以前フォーカスされたユーザインタフェース要素と関連付けられたコンテンツアイテムはフォーカスを失ったことを示し、よって、ユーザはもはやそのコンテンツアイテムを閲覧していないことを示している。したがって、プレゼンス情報は、基礎をなすプレゼンスイベントそれ自体のあのレベルの意味解釈を提供する。
インタラクション管理モジュール204が登録されたというプレゼンスイベントを受信するのに加えて、プレゼンスイベントはまた、プレゼンス情報が監視されたユーザインタフェース要素に対して変更されていないことを確認するために、インタラクション管理モジュール204により開始されてもよい。これらのプレゼンスイベントは、特定のユーザインタフェース要素又はプロセスに対する最後のプレゼンスイベントから閾値量の時間が経過した場合に、あるいは、例えば5分ごとのような特定の時間間隔に、開始してもよい。
イベントに対する登録に加えて、インタラクション管理モジュール204は他の手法でインタラクションイベントを受信してもよい。一実施形態において、ユーザはユーザインタフェース要素を介してインタラクション情報を明示的に示してもよい。ユーザインタフェース要素は、ユーザが、例えば、そのユーザがコンテンツアイテムを改訂する意図を有していることを示したり、あるいは、そのコンテンツアイテムを編集又は閲覧している他のユーザに対して、例えば、特定の意図を示すメニューアイテム又はアイコンの選択により、その意図を示すことができるように構成することが可能である。ユーザインタフェース要素はまた、ユーザが、例えば、コンテンツアイテムをもう閲覧しないというユーザの意図などのユーザの他の意図を示したり、あるいは、ユーザはコンテンツアイテムにプレゼントでない(関与しない)又はこれからプレゼントでないことを明示的に示すことができるように構成することも可能である。他のユーザは、そのような「プレゼントでない」という意図を用いてそのコンテンツアイテムは編集が自由であることを知ってもよい。例えば、他の装置上でコンテンツアイテムを現在閲覧している他のユーザへメッセージを伝送するために、ユーザ入力のインタラクションイベントは、コンテンツアイテムと関連付けられた他のユーザへ広められるべきメッセージ又はチャットの特徴を含んでもよい。
プレゼンスイベントが受信されると(450)、インタラクション管理モジュール204は、監視されたユーザインタフェース要素に関する最後のプレゼンスイベント以降、何らかのプレゼンス情報が変更されたか否かを判定する。ユーザ開始のインタラクション情報に対して、インタラクション情報は、例えば、ユーザがコンテンツアイテム又はユーザのチャットメッセージを修正する意図を有していることを示すユーザインタフェース要素のユーザの選択のような、ユーザにより提供された情報であってもよい。プレゼンスイベントに対して、インタラクション管理モジュール204は、監視されたユーザインタフェース要素の状態を判定するために監視プロセスを問い合わせる。特に、インタラクション管理モジュール204は、監視されたユーザインタフェース要素がアクティブなユーザインタフェース要素であるか否かを藩邸すくためにプロセスに問い合わせる。監視されたユーザインタフェース要素がアクティブなユーザインタフェース要素である場合、コンテンツアイテムはユーザにより閲覧されている。
いくつかの実施形態において、コンテンツアイテムに関するユーザプレゼンスを削除することに加えて、インタラクション管理モジュール204はまた、コンテンツアイテムがユーザにより修正されているか又は修正されたか否かの判定も行う。このさらなる側面は、例えば、ユーザは閲覧者ではなく編集者としてコンテンツアイテムに関するプレゼンスを有しているというインジケーションにより、より高い粒度でプレゼンス情報を報告することを可能にする。前述のように、コンテンツアイテムが修正されている場合にアプリケーションにより実行される特定のアクションは変化してもよいため、インタラクション管理モジュール204によりこれらのアクションの1つを検出したことは、プロセスがコンテンツアイテムを編集したことを示すものである。例えば、コンテンツアイテムが編集された場合にプロセスにより予期されたアクションの種類に従い、インタラクション管理モジュール204は、プロセスはコンテンツアイテムが修正済とフラグされていることを示しているか、ユーザインタフェース要素のタイトル情報が変更されているか、一時ファイルが保存又はキャッシュされているか、あるいは、他の何らかのデータがコンテンツアイテムが修正されたことを示しているかを判定するために、プロセスに問い合わせてもよい。インタラクション管理モジュール204はまた、例えば、コンテンツアイテムに類似のファイル名を有するが、ファイル名のティルダ又は他の特定の変形を有するコンテンツアイテムのような、一時コンテンツアイテムフォーマットに適合するコンテンツアイテムが保存されているか否かを判定するためにオペレーティングシステムに問い合わせてもよい。そのような修正は、コンテンツアイテムと関連付けられたプレゼンス情報は、ユーザがコンテンツアイテムを編集中であることを反映しなければならないことを示す。
プレゼンス情報を判定(460)した後、ユーザインタフェース要素に対するあらゆる新たなプレゼンス情報は、監視プレゼンスデータストア210として記憶される。一実施形態において、このプレゼンス情報は、1つのプロセスによる複数のユーザインタフェース要素が同一のコンテンツアイテムと関連付けられ、プレゼンス情報が個別に管理されてもよいように、ユーザインタフェース要素ごとに記憶される。一実施形態において、プレゼンス情報は現在のプレゼンス状態に基づいて変化してもよい。例えば、コンテンツアイテムに対するプレゼンス情報がコンテンツアイテムが編集中であることを反映した場合、一実施形態において、ユーザインタフェース要素におけるコンテンツアイテムに対するプレゼンスは、ユーザが他のユーザインタフェース要素へフォーカスを変更した場合に変更されない。代わりに、ユーザインタフェース要素は閉じられたことをプレゼンスイベントがユーザインタフェースに知らせるまで、編集状態はそのユーザインタフェース要素に関して維持される。他の実施形態では、編集はコンテンツアイテムへの修正を導びく可能性を有しているため、一実施形態において、コンテンツアイテムに対する修正はコミットされたか、又は、修正は破棄されたという通知をインタラクション管理モジュール204が受け取るまで、編集済文書に対するプレゼンス情報は変更されない。
閲覧されていることを示すプレゼンス情報を有するコンテンツアイテムは、ユーザインタフェース要素がフォーカスを失ったり、あるいは、閾値時間フォーカスを失ったような場合に、その状態を変化させてもよい。これは、コンテンツアイテムと関連付けられたユーザインタフェース要素がまだ開かれている場合にも、同様にしてよい。一実施形態において、「閲覧されている」のプレゼンス情報は、コンテンツアイテムがアクティブなユーザインタフェース要素と関連付けられているか否かを示す。一実施形態において、「閲覧されている」のプレゼンス情報は、ユーザインタフェース要素が閾値時間よりも長くアクティブでなくなる(あるいは、フォーカスを失う)まで保持される。一実施形態において、コンテンツアイテムは、コンテンツアイテムがアプリケーションにより開かれている間、「閲覧されている」と考えられる。
インタラクション情報に変化があった場合、インタラクション管理モジュール204は、インタラクション情報をコンテンツ管理システム110へ送信する。一実施形態において、送信されるプレゼンス情報には、コンテンツアイテムの識別子、プロセスID、ユーザインタフェース要素ID、及び、プレゼンス状態が含まれる。
図5A−図5Dは、インタラクション情報を表示するユーザインタフェースの例を示す図である。様々なユーザインタフェース要素は図3A及び図3Bに示したものと同様である。図5Aにおいて、ユーザインタフェースの例はプレゼンス情報を表示している。プレゼンス情報を表示するために、インタラクション管理モジュール204は、コンテンツアイテムと関連付けられたウィンドウの境界又は縁に合わせてプレゼンスインジケータ500を提供する。この例では、インタラクション管理モジュール204は、ユーザのジェフがコンテンツアイテム2を編集中であり、4人のユーザがコンテンツアイテム2を閲覧中であることを示すプレゼンス情報を受信している。インタラクション管理モジュール204は、ジェフが文書を編集していることを示すプレゼンスインジケータ500Aと、ユーザがその文書を閲覧していることを示すプレゼンスインジケータ500Bを表示している。一実施形態において、プレゼンスインジケータ500は、プレゼンスインジケータと関連付けられたユーザのアイコンまたはピクチャを表示する。アイコンやピクチャは、インタラクション管理モジュール204がコンタクトディレクトリ240から取得してもよいし、あるいは、コンテンツ管理システム110から受信してもよい。プレゼンスインジケータが表示する個別のユーザは実施形態により変化してもよく、また、例えば、特定のプレゼンスを有する最初のユーザ(例えば、最初の閲覧者)や最も新しくコンテンツアイテムを開いたユーザを表示してもよい。
プレゼンスインジケータ500はコンテンツアイテムと関連付けられたウィンドウに合わせて表示されてもよく、一実施形態において、インタラクション管理モジュール204は、ウィンドウの位置を追跡し、例えば、ウィンドウの縁または境界のような、ウィンドウに隣接して又は近傍にプレゼンスインジケータ500を表示する。ユーザがプレゼンスインジケータ500上に静止した場合、ユーザに対しさらなる情報やインタフェースを提供するための補助的なプレゼンスインジケータ510が現れてもよい。図5Aに示す例では、補助的なプレゼンスインジケータ510は、プレゼンスインジケータ500Aを、具体的には、ジェフがコンテンツアイテム2の編集中のプレゼンスと関連付けられていることを説明している。補助的なプレゼンスインジケータ510はまた、プレゼンスが変化した場合に現れて、例えば、新たなユーザが文書を閲覧又は編集していることを示してもよい。
プレゼンスインジケータ500及び補助的なプレゼンスインジケータ510は、ディスプレイ220の任意の都合のよい領域に位置づけられてもよい。一実施形態において、プレゼンスインジケータと一定のコンテンツアイテムとの間の関係をユーザに視覚的に示すために、プレゼンスインジケータは、コンテンツアイテムの関連付けられたユーザインタフェース要素に近接して表示される。さらに、ウィンドウの境界又は縁に合わせたプレゼンスインジケータの表示は、ユーザがプレゼンスインジケータに気づく見込みを増大させる。一実施形態において、プレゼンスインジケータ500は、コンテンツアイテムを含むウィンドウの垂直縁(例えば、図5Aに示す右の縁)の上またはそれに並べて表示される。
それに代えて、プレゼンスインジケータは、例えばタスクバーやトレイアイコン等の、ディスプレイの別の領域に示してもよく、あるいは、コンテンツアイテムのユーザインタフェース要素とインタラクションを行わない別個のユーザインタフェース要素としてもよい。ここではプレゼンスの種類(編集または閲覧)の各々に対して単一のプレゼンスインジケータ500を示しているが、任意の個数のプレゼンスインジケータ500をコンテンツアイテムに関連して示してもよい。例えば、円形インジケータはコンテンツアイテムを閲覧しているユーザのカウントを含んでもよく、他の円形インジケータはコンテンツアイテムを編集しているユーザのカウントを含んでもよい。あるいは、複数のプレゼンスインジケータ500が表示される場合、これらは最上位から最下位に順序付けてよく、この順序づけは、最も最近のものから最も長く使われていないものまで、最も優先度の高いものから最も優先度の低いものまで、あるいは、これらの組み合わせ(例えば、優先度による順序付けと、同一の優先度のプレゼンスインジケータについて、最近であることによる順序付け)とすることができる。図に示すように、プレゼンスインジケータはまた、他のユーザと関連付けられたアイコン又はピクチャを示してもよい。インジケータはまた、ユーザが他のユーザによる編集へ影響を及ぼすリスクを示すように色分けされてもよい。例えば、プレゼンスインジケータは、他のユーザが編集中の場合は赤色としてよく(あるいは、プレゼンスインジケータは赤色に変わってもよい)、あらゆる所望の修正をそのユーザの変化に調和させることをユーザに知らせてもよい。同様に、編集インジケータは、他のユーザがコンテンツアイテムを閲覧しているときは黄色、現在のユーザがコンテンツアイテムを閲覧している唯一のユーザであるときは緑色としてもよい。
図5Bは、ユーザがインタラクション管理モジュール204へインタラクション情報を入力してもよいユーザインタフェースを示している。このインタフェースは、プレゼンスインジケータ500に加えてさらなるユーザインタフェース要素を有している。このインタフェースは、図5Aの例の代わりに提示されてもよく、あるいは、コンテンツアイテムに関する付加的なデータを提供する補助的なプレゼンスインジケータとして提示されてもよい。
このユーザインタフェースは、他のユーザに関するプレゼンスの変化が発生した場合に通知してほしいというユーザの希望を示すことをユーザに可能にする、通知要素520を提供する。通知要素520を選択する際に、ユーザは、例えば、特定のユーザのプレゼンスが変化した(例えば、ジェフはもう編集していない)場合に、全てのユーザが特定のプレゼンスを停止した(例えば、誰も編集していない)こと、あるいは、アクティブなプレゼンスを有するユーザはいないこと(例えば、他の誰もコンテンツアイテム2にアクセスしていないこと)が通知される、一定の通知オプションをさらに選択してもよい。ユーザの通知プリファレンスは、要求されたプレゼンスが変化した場合にコンテンツ管理システム110又は通知を要求する適用ユーザへ送信される。
このインタフェースはまた、ユーザが、コンテンツアイテムにプレゼンスを有する他のユーザと通信するためのチャットインタフェースを提供する。チャットインタフェースは、ユーザが他のユーザに参加してメッセージを受信することを可能にする。プレゼンスの変化はまた、例えば、アマンダが今コンテンツアイテムを閲覧しているという、チャットウィンドウにおいて示すこともできる。チャットウィンドウは、ユーザがアイテムの編集を終えることを予期している場合などに、そのコンテンツアイテムに関する情報についてユーザが具体的に議論することを可能にしてもよい。これらのチャットメッセージは、インタラクション管理モジュール204によりインタラクション情報として受信され、そのコンテンツアイテムと同期された他のクライアントへ送信される。これにより、ネイティブアプリケーションがチャットの機能性を提供していない場合であっても、コンテンツアイテムについてユーザは直接チャットをすることができる。
ノートユーザインタフェース540は、ユーザが、コンテンツアイテムと関連付けられて記憶されたノートを取得し、参加することを可能にする。ノートインタフェース540が選択された場合、インタラクション管理モジュール204は、コンテンツアイテムに関するコンテンツ管理システム110からの任意のノート又は他の持続情報を要求し、他の同期された装置及びコンテンツ管理システム110へ送信される付加的なノートを入力するためのインタフェースと合わせて、任意のそのようなノートをユーザに表示する。チャットウィンドウと同様に、これにより、コンテンツアイテムや、ノートの機能性をもともと提供していないかもしれないユーザインタフェースを提供するアプリケーションに対して、付加的なノートを入力することが可能になる。ノート要素540はまた、コンテンツアイテム内に他のユーザがプレゼントしていない場合にも用いてもよく、コンテンツアイテムについての他のユーザに対するメッセージを残すために用いてもよい。
コンテンツデータ要素550は、任意の関連するメタデータ、ユーザパーミッションその他のような、コンテンツアイテムについての付加的なデータをユーザが要求することを可能にする。これにより、ユーザは、コンテンツアイテムと関連付けられたユーザインタフェース要素に近いインタフェースから直接コンテンツ管理システムからのコンテンツアイテムの詳細を要求することができる。
同様に、バージョン要素560は、バージョン情報に対する要求を示す。インタラクション管理モジュール204は、コンテンツアイテムに関するインタラクション情報として、バージョン情報に対する要求をコンテンツ管理システム110へ伝送する。これに応じて、コンテンツ管理システム110は、そのコンテンツアイテムの関連するバージョン情報を識別する。一実施形態において、以前のバージョンは、ユーザインタフェース要素に表示されたコンテンツアイテムのバージョンと対象比較される。他の実施形態において、以前のバージョンは、ユーザインタフェース要素においてインラインで比較される。
図5Cは、他のコンテンツアイテムに関するプレゼンスにおける変化についてユーザが通知されているユーザインタフェースを示している。この事例では、ユーザは、ユーザのジェフがコンテンツアイテム2の編集を終えた場合に通知されることを、前もって通知要素520を用いて選択している。通知を要求した後、ユーザはコンテンツアイテム2に関するウィンドウ310Bを閉じるために進み、現在はコンテンツアイテム1を閲覧している。本実施形態において、プレゼンスインジケータ500Dは、ユーザがこのコンテンツアイテムに関するプレゼンスを有する唯一のユーザであることを示している。これは図示したように明確に示してもよいし(「他の誰もこのファイルを閲覧していない」)、あるいは、ユーザがプレゼンスインジケータ500Dとインタラクションを行った場合に提供してもよい。インタラクション管理モジュール204は、ジェフがコンテンツアイテム2の編集を終えたことの通知を受信する。通知570はユーザに表示される。この通知は、その通知が関係するコンテンツアイテムとは異なる他のアプリケーション又はコンテンツアイテムとユーザがインタラクションを行っているかもしれないとしても提供される。
図5Dは、コンテンツアイテムが修正されたという通知をユーザが受信したユーザインタフェースを示している。この例では、ユーザが閲覧しているコンテンツアイテム2の新バージョンが他のユーザのジェフにより保存されている。インタラクション管理モジュール204は、コンテンツアイテム2が修正され、新バージョンが利用可能であることを示すメッセージをコンテンツ管理システム110から受信する。典型的には、ユーザの編集をコンテンツ管理システム110と同期させることをユーザが試みた場合、そのユーザの編集がコンテンツ管理システム110により維持されたバージョンに関して旧式であることからユーザの編集は失われるかもしれない。ユーザがコンテンツアイテムを編集していることを示すプレゼンス情報を使用して、ユーザは、ジェフからの任意の編集をユーザの編集に組み込むことを支援するための選択を提供されることができる。バージョン通知580は、新バージョンに応じるための選択と合わせて、ユーザに提示される。この例ではユーザは、新バージョンをロードすること、ユーザの編集を破棄すること、又は、ユーザの編集を新ファイルとして保存することを選択してもよい。以下にさらに説明するように、ユーザが利用可能な特定の選択は、コンテンツ管理システム110が有する装置のプレゼンス100の記録に基づいて、コンテンツ管理システム110により提供されてもよい。他の実施形態では、インタラクション管理モジュール204がユーザに表示するオプションを判定する。
インタラクション管理モジュール204がウィンドウ310Bのネイティブアプリケーション255とは別個のアプリケーションである実施形態においては、プレゼンスインジケータ500は、インタラクション管理モジュール204により提供される。そこで、インタラクション管理モジュール204は、アプリケーションと関連付けられたプレゼンス情報を監視し、アプリケーションと関連付けられたコンテンツアイテムに対する他のユーザに関するプレゼンス情報を表示する。他のウィンドウが有効化された場合、同一のインタラクション管理モジュール204は、有効化されたウィンドウに関するプレゼンス情報を表示する。
プレゼンスインジケータを表示するために、インタラクション管理モジュール204は、他の装置に対するプレゼンス情報を、典型的にはコンテンツ管理システム110から受信する。インタラクション管理モジュール204は、同期されたコンテンツアイテムがウィンドウ又はプロセスにより使用中であること、及び、ウィンドウがユーザに表示されていることを判定する。例えば前述のように、インタラクション管理モジュール204は、監視されているウィンドウ又はプロセスからプレゼンスイベントを受信してもよい。ウィンドウがフォーカスを有することをプレゼンスイベントが示す場合、インタラクション管理モジュール204はプレゼンスインジケータを表示に追加する。一実施形態におけるインタラクション管理モジュール204はまた、デスクトップにおけるウィンドウの移動を追跡し、プレゼンスインジケータを移動させて、そのウィンドウに関するプレゼンスインジケータの位置を維持する。
一実施形態において、プレゼンスインジケータを表示に追加するために、インタラクション管理モジュール204は、フォーカスされているウィンドウとその境界の位置を判定し、ウィンドウの境界に隣接するプレゼンスインジケータを追加する。フォーカスされているウィンドウが変更されたことをインタラクション管理モジュール204が識別した場合、そのコンテンツアイテムに対するプレゼンスインジケータは、そのウィンドウが再度フォーカスされるまで除去されてもよい。
図6は、一実施形態に係る図1のコンテンツ管理システム110のコンポーネントを示している。1つの構成において、コンテンツ管理システム110を参照して以下に説明するコンポーネントは、コンテンツ管理システム110による管理がなしにコンテンツアイテムを共有及び同期する装置100に組み込まれる。これらの装置100は、ネットワーク120越しに、あるいは、前述のように直接接続を介して、コンテンツを同期化し、インタラクション情報を共有してもよい。この構成において、装置100は、同期モジュール612、衝突管理モジュール614、インタラクション同期モジュール616、及び他のモジュール、並びに、データストアの機能性を組み込んでもよく、これらはコンテンツ管理システム110により提供されるものとして以下に説明する機能性を組み込む。したがって、この構成の装置100は、ピア・ツー・ピアの構成において動作し、コンテンツ管理システム110あるいはネットワーク120がなくてもそのように動作してもよい。
様々なコンテンツ管理サービスを促進するためにコンテンツ管理システム110を使用する場合、ユーザは、コンテンツ管理システム110のアカウントを作成することができる。アカウント情報はユーザアカウントデータベース618に維持することが可能であり、この機能を実行する1つの手段である。ユーザアカウントデータベース618は登録されたユーザのプロフィール情報を記憶することができる。いくつかの場合、ユーザプロファイルの個人情報を、ユーザ名及び電子メールアドレスの少なくともいずれかのみとすることができる。もっとも、コンテンツ管理システム110はまた、例えば、パスワード回復情報、デモグラフィックス情報、支払情報、及び他の詳細情報等の、付加的なユーザ情報を許容するように構成することもできる。各ユーザは、ユーザIDやユーザ名等の識別子と関連付けられる。
ユーザアカウントデータベース618はまた、例えば無料又は支払済みのようなアカウントの種類、例えばファイル編集履歴のような各ユーザの使用情報、認可された最大ストレージ空間、使用済みストレージ空間、コンテンツストレージの場所、セキュリティ設定、個人コンフィギュレーション設定、コンテンツ共有データ等の、アカウント管理情報を含むこともできる。アカウント管理モジュール604は、ユーザアカウントデータベース618のユーザアカウントの詳細の更新及び取得の少なくともいずれかを行うように構成することができる。アカウント管理モジュール604は、コンテンツ管理システム110の任意の個数の他のモジュールとインタラクションを行うように構成することができる。
アカウントは複数の装置100と関連付けることができ、コンテンツアイテムはアカウントと関連付けて記憶することができる。記憶されたコンテンツはまた、異なる挙動を有する様々な種類のフォルダや、他のコンテンツアイテムのグルーピング法を有することができる。例えば、アカウントは、任意のユーザがアクセス可能なパブリックフォルダを有することができる。パブリックフォルダはWebアクセス可能なアドレスを割り当てることができる。Webアクセス可能なアドレスへのリンクは、パブリックフォルダのコンテンツにアクセスするために使用することができる。他の例では、アカウントは、写真コンテンツアイテムを対象とし写真に適合した一定の属性及びアクションを提供する写真フォルダと、音声ファイルコンテンツアイテムを再生し他の音声関連アクションを実行する能力を提供する音声フォルダと、他の特定用途フォルダとを有することができる。アカウントはまた、複数のユーザアカウントにリンクされて利用可能な共有フォルダ又はグループフォルダを有することもできる。複数のユーザに対するパーミッションは共有フォルダに対して異なってもよい。一実施形態において、アカウントは数人のユーザと関連付けられてもよい名前空間であり、数人のユーザの各々は名前空間とのインタラクションを行うためのパーミッションと関連付けられてもよい。
コンテンツは、この機能を実行する1つの手段であるコンテンツストレージ620に記憶されてもよい。コンテンツストレージ620は、1つのストレージ装置、複数のストレージ装置、又は、サーバとすることができる。あるいは、コンテンツストレージ620は、1つ以上の通信ネットワークを介してアクセス可能なクラウドストレージプロバイダ又はネットワークストレージとすることができる。1つの構成において、コンテンツ管理システム110は、コンテンツアイテムを、それが装置で見えるのと同じ編成構造で記憶する。もっとも、コンテンツ管理システム110は、コンテンツアイテムを独自の順序、配列、又は、階層で記憶することもできる。
コンテンツストレージ620はまた、コンテンツアイテムを説明するメタデータ、コンテンツアイテムの種類、及び、様々なアカウント、フォルダ、あるいは、グループに対するコンテンツアイテムの関係を記憶することもできる。コンテンツアイテムのメタデータは、コンテンツアイテムの一部と記憶することもできるし、あるいは、別個に記憶することもできる。1つの構成において、コンテンツストレージ620に記憶された各コンテンツアイテムは、システム内の固有の識別子を割り当てることができる。
コンテンツストレージ620は、重複するコンテンツアイテム又はコンテンツアイテムの重複するセグメントを識別することにより、必要なストレージ空間の量を低減させることができる。一実施形態において、例えば、コンテンツアイテムの所有者メタデータ(例えば、所有者リスト)内にユーザの識別子を含めることにより、コンテンツアイテムのコピーを1つだけ記憶し、1つのコピーの複製をリンクするポインタ又は他の機構を使用しつつ、異なるユーザ間でコンテンツアイテムを共有してもよい。同様に、コンテンツストレージ620は、コンテンツアイテムへの変更、コンテンツアイテムの異なるバージョン(分岐バージョン木等)、及び、変更履歴を追跡するバージョン制御機構を使用して、コンテンツアイテムを記憶する。変更履歴は、オリジナルのコンテンツアイテムのバージョンに適用された場合に変更済みのコンテンツアイテムのバージョンを作成する、変更の集合を含む。
コンテンツ管理システム110は、同期モジュール612を使用して1つ以上の装置からのコンテンツアイテムを自動的に同期し、同期モジュール612はこの機能を実行する1つの手段である。同期はプラットフォームにとらわれない。すなわち、コンテンツアイテムは、様々な種類、性能、オペレーティングシステム等の複数の装置100をまたがって同期される。例えば、クライアントアプリケーション200は、コンテンツ管理システム110の同期モジュール612を介して、装置100のファイルシステムのコンテンツを、システム110の関連付けられたユーザアカウントのコンテンツアイテムと同期させる。クライアントアプリケーション200は、指定フォルダ及びそのサブフォルダ内のコンテンツアイテムに対するあらゆる変更を同期モジュール612と同期させる。そのような変更には、ファイル又はフォルダの新規作成、削除、修正、コピー、又は、移動が含まれる。同期モジュール612はまた、装置100と関連付けられたコンテンツへのあらゆる変更をクライアントアプリケーション200に提供する。これは装置100のローカルコンテンツをコンテンツ管理システム110のコンテンツアイテムと同期させるものである。
衝突管理モジュール614は、異なる装置100に位置するコンテンツアイテムのバージョン間において何らかの不一致があるか否かを判定する。例えば、ある装置と第2の装置においてコンテンツアイテムが修正された場合、各装置にコンテンツアイテムの異なるバージョンが存在するかもしれない。同期モジュール612はそのようなバージョニングの衝突を、例えば、コンテンツアイテム修正の修正時刻を識別することによって判定する。衝突管理モジュール614は、例えば、バージョンをマージしたり、あるいは、後に提出されたバージョンを装置に通知するなどの任意の適切な手段により、バージョン間の衝突を解決する。
ユーザはまた、ユーザインタフェースモジュール602により生成されたウェブインタフェースを介してコンテンツを閲覧又は操作することもできる。例えば、ユーザは、ウェブブラウザ250の中で、コンテンツ管理システム110により提供されたウェブアドレスへナビゲートすることができる。ファイルの新バージョンのアップロード等の、コンテンツストレージ620のコンテンツに対するウェブインタフェースを介してなされた変更又は更新は、ユーザのアカウントと関連付けられた他の装置100にも同期により反映される。複数の装置100は単一のアカウントと関連付けられてもよく、そのアカウント内のファイルは複数の装置100の各々の間で同期される。
コンテンツ管理システム110は、アプリケーションプログラミングインタフェース(API)を介して、様々な装置100や、他のコンテンツ及び/又はサービスのプロバイダとの間のインタフェースとなる通信インタフェース600を有し、これはこの機能を実行する1つの手段である。あるソフトウェアアプリケーションは、APIを介してユーザに代わってコンテンツストレージ620にアクセスする。例えば、スマートフォン又はタブレット型コンピュータ装置のアプリのようなソフトウェアパッケージは、ユーザがコンテンツの読出し、書込み、作成、削除、共有、あるいは他の操作についてのクレデンシャルを提供した場合に、プログラムにより直接コンテンツ管理システム110の呼出しを行うことができる。同様に、APIは、ユーザがウェブサイトを介してコンテンツストレージ620の全部又は一部にアクセスすることを可能にする。
コンテンツ管理システム110はまた、ユーザのクレデンシャル、セキュリティトークン、APIコール、専用装置等を検証して、要求されたコンテンツアイテムへのアクセスが認可されたものか否かを判定する認証モジュール606を有し、これはこの機能を実行する1つの手段である。認証モジュール406は、ユーザアカウントに対してワンタイム使用の認証トークンを生成することができる。認証モジュール406は、各認証トークンに対して有効期間又は有効期限を割り当てる。認証トークンを要求装置へ送信することに加えて、認証モジュール606は、生成した認証トークンを認証トークンデータベース622に記憶することができる。認証トークンの正当性検証の要求を受信すると、認証モジュール606は、ユーザに割り当てられた適合認証トークンを求めて認証トークンデータベース622をチェックする。認証モジュール606が適合認証トークンを識別するとすぐに、認証モジュール606は、適合認証トークンがまだ有効か否かを判定する。例えば、認証モジュール606は、認証トークンが失効していないか、あるいは、使用済み又は無効なものとしてマークされていないかを検証する。認証トークンの正当性検証の後、認証モジュール606は、使い捨てトークン等の適合認証トークンを無効化してもよい。例えば、認証モジュール606は、適合認証トークンを使用済み又は無効なものとしてマークしたり、あるいは、適合認証トークンを認証トークンデータベース622から削除することができる。
コンテンツ管理システム110は、コンテンツを公開又は非公開で共有する共有モジュール610を有する。コンテンツを公開で共有することには、コンテンツ管理システム110とのネットワーク通信において任意のコンピュータ装置からコンテンツアイテムをアクセス可能にすることが含まれうる。コンテンツを非公開で共有することには、コンテンツストレージ620のコンテンツアイテムを2つ以上のユーザアカウントとリンクづけすることで、各ユーザアカウントがコンテンツアイテムへのアクセスを有するようにすることを含めることができる。コンテンツはまた、各種のユーザアカウントをまたがって共有することもできる。
いくつかの実施形態において、コンテンツ管理システム110は、コンテンツストレージ620の各コンテンツアイテムの位置を識別し、クライアントアプリケーションがストレージ620内のコンテンツアイテムへのアクセスを要求することを可能にするコンテンツディレクトリを維持するコンテンツ管理モジュール608を有し、これはこの機能を実行する1つの手段である。コンテンツディレクトリのコンテンツエントリはまた、コンテンツストレージ620のコンテンツアイテムの位置を識別するコンテンツポインタを有することができる。例えば、コンテンツエントリは、メモリ内のコンテンツアイテムのストレージアドレスを指定するコンテンツポインタを有することができる。いくつかの実施形態において、コンテンツエントリは、それぞれコンテンツアイテムの一部を含む、複数の位置を指す複数のコンテンツポインタを有する。
コンテンツパス及びコンテンツポインタに加えて、いくつかの構成におけるコンテンツエントリはまた、コンテンツアイテムへのアクセスを有するユーザアカウントを識別するユーザアカウント識別子を有する。いくつかの実施形態において、複数のユーザアカウント識別子は、コンテンツアイテムが複数のユーザアカウントによる共有アクセスを有することを示す単一のコンテンツエントリと関連付けることができる。
コンテンツアイテムを非公開で共有するために、共有モジュール610は、コンテンツアイテムと関連付けられたコンテンツエントリにユーザアカウント識別子を追加し、これにより追加されたユーザアカウントのコンテンツアイテムへのアクセスを許可する。共有モジュール610はまた、コンテンツアイテムへのユーザアカウントのアクセスを制限するために、コンテンツエントリからのユーザアカウント識別子を削除するように構成することもできる。
コンテンツを公開で共有するために、共有モジュール610は、あらゆるウェブブラウザが認証なしにコンテンツ管理システム110のコンテンツにアクセスすることを可能にする、URL等のカスタムネットワークアドレスを生成する。共有モジュール610は、生成されたURLのコンテンツ識別データを有し、これは後に、コンテンツ管理システム110が要求されたコンテンツアイテムを正しく識別して返すために使用することができる。例えば、共有モジュール610は、生成されたURLにユーザアカウント識別子とコンテンツパスを有するように構成することができる。URLに含まれるコンテンツ識別データは、装置がコンテンツアイテムにアクセスするために、コンテンツ管理システム110へ伝送することができる。URLを生成することに加えて、共有モジュール610はまた、コンテンツアイテムへのURLが作成されたことを記録するように構成することもできる。いくつかの実施形態において、コンテンツアイテムと関連付けられたコンテンツエントリは、コンテンツアイテムへのURLが作成されたか否かを示すURLフラグを有することができる。
コンテンツ管理システム110は、単一のコンピュータ、又は、クラウドベースのコンピュータ実装を含む、コンピュータのネットワークを用いて実装してもよい。本明細書の目的のために、コンピュータは、1つ以上のプロセッサ、メモリ、ストレージ装置、及び、ネットワークリソースを有する装置である。コンピュータは、好適には、1つ以上の高性能CPU、及び、1G以上のメインメモリ、並びに、500Gbから2Tbのコンピュータ可読持続ストレージを有し、LINUX又はその変形等のオペレーティングシステムを実行する、サーバクラスのコンピュータである。ここに記載のコンテンツ管理システム110の動作は、ここに記載の機能を実行するために、ハードウェア、又は、コンピュータストレージにインストールされ、そのようなサーバのプロセッサにより実行されるコンピュータプログラムを介して制御することができる。これらのシステムは、ネットワークインタフェース及びプロトコル、データ入力のための入力装置、データの表示、印刷、あるいは他の提示のための出力装置を含む、ここに記載の動作に必要な他のハードウェア要素を有するが、ここには記載していない。同様に、例えば、ファイアウォール、負荷分散装置、フェイルオーバーサーバ、ネットワーク管理ツールその他のような従来要素は、システムの特徴を不明瞭にしないためにここには示していない。最後に、コンテンツ管理システム110の機能及び動作は、コンピュータシステム上での実装を要するほど十分複雑であり、人間の精神における単なる知的ステップにより実行することができるものではない。
インタラクション同期モジュール616は、装置100をまたがったインタラクション情報の同期を管理する。装置100は、インタラクション同期モジュール616へインタラクション情報を提供する。インタラクション同期モジュール616は、受信したインタラクション情報の種類に基づいて、インタラクション情報に応答する。インタラクション同期モジュール616がプレゼンス情報を使用してある種類のインタラクション情報に対する応答を判定した場合、受信したプレゼンス情報の取り扱いが、以下にさらに説明するインタラクション情報の追加的な種類の取り扱いとともに、まず記載される。
インタラクション同期モジュール616は、装置からプレゼンス情報を受信し、プレゼンスデータストア624内のプレゼンスレコードの一部としてそれを記憶し、コンテンツアイテムに関してユーザプレゼンスを判定する。各ユーザは、コンテンツアイテムに関するそのユーザと関連付けられたプレゼンスレコードを記述するユーザプレゼンスと関連付けられてもよく、それは、何らの特定ユーザの装置、プロセス、又は、ユーザインタフェース要素に対する参照を伴わなくてもよい。プレゼンス情報が特定のユーザインタフェース要素又はプロセスに関するプレゼンスを記述してもよい一方で、ユーザと関連付けられたこのプレゼンスはユーザプレゼンスと呼ぶ。ユーザプレゼンスの例には、編集中、閲覧中、オープン、及び、プレゼンスなしが含まれる。この例では、「編集中」のユーザプレゼンスは、コンテンツアイテムがそのコンテンツアイテムを修正したユーザインタフェース要素と関連付けられていることを示し、「閲覧中」のユーザプレゼンスは、コンテンツアイテムが装置100上のアクティブなユーザインタフェース要素と関連付けられていることを示す一方で、「オープン」のユーザプレゼンスは、ユーザインタフェース要素がコンテンツアイテムと関連付けられ、コンテンツアイテムを開いたが、まだコンテンツアイテムを閉じていないことを示す。様々な実施形態は、より多く又はより少ないユーザプレゼンスを使用してもよい。例えば、一実施形態は、「編集中」、「閲覧中」、及び、「プレゼンスなし」のみを有してもよく、その場合、コンテンツアイテムを開いたがアクティブなユーザインタフェース要素ではないユーザインタフェース要素は、システムの構成に従い、閲覧中またはプレゼンスなしとして扱われてもよい。
図7は、一実施形態に係るユーザプレゼンスの順序付けを示す図である。図7に示す順序付けは、各ユーザプレゼンスと関連付けられたコンテンツアイテムとのインタラクションの優先度を記載している。この例では、ユーザがコンテンツアイテムを編集中の場合、ユーザは、コンテンツアイテムを閲覧中の場合よりも、より高い優先度のコンテンツアイテムとのインタラクションを有し、同様に、アクティブなユーザインタフェース要素においてコンテンツアイテムを閲覧中であることは、開いた(オープンな)コンテンツアイテムを有するユーザインタフェース要素よりも高い優先度のインタラクションである。
ユーザは、数個の装置にまたがって、並びに、数個のプロセス及びユーザインタフェース要素にまたがってコンテンツアイテムを開いてもよいため、順序付けは、そのユーザのユーザインタラクションの最も高い優先度を判定するために用いられる。これにより、ユーザプレゼンスは、ユーザと関連付けられた様々な可能な装置及びユーザインタフェース要素と関連付けられたユーザプレゼンスの最も高い優先度を反映することができる。このユーザプレゼンスは図5Aに示すように表示のために装置100へ送信され、最も高い優先度のユーザインタラクションを示す単一のユーザプレゼンスが示されることを可能にする。
図8は、コンテンツアイテムに関するプレゼンステーブル800におけるプレゼンスレコードを示す図である。プレゼンステーブル800は、例えば、プレゼンスデータストア624に記憶されてもよい。インタラクション同期モジュール616により受信されたプレゼンス情報は、プレゼンスデータストア624における記憶のためにプレゼンスレコードへ変換される。プレゼンスレコードがプレゼンスデータストア624に記憶された場合、プレゼンスレコードは、例えば、コンテンツアイテムの識別子を鍵として使用して、キー値ストレージに記憶してもよい。プレゼンステーブル800は、プレゼンスデータストア624により記憶されてもよいし、あるいは、インタラクション同期モジュール616がプレゼンスデータストア624から取得した情報を概念的に表してもよい。
この例では、プレゼンスレコードは、コンテンツアイテム、装置ID、ユーザID(便宜上ここでは名前として表す)、ユーザインタフェース要素ID、プロセスID、及び、プレゼンス情報を識別する。各固有の装置ID、ユーザインタフェース要素ID、及び、プロセスIDの組み合わせは、プレゼンス情報と関連付けられている。この例では、プレゼンステーブル800において「プレゼンスなし」の装置は表されていない。プレゼンステーブル800に示すように、個々のユーザ(ジム)及び装置(例えば、装置ID 36abe87)は、複数のプレゼンスレコードと関連付けられてもよい。この実施形態のプレゼンステーブルは、インタラクション管理モジュール204により提供される様々なユーザ及び装置により動作される個別のプロセス及びユーザインタフェース要素に関する情報を記述する。
プレゼンス情報がインタラクション同期モジュール616により受信された場合、インタラクション同期モジュール616は、プレゼンスデータストア624にアクセスして、既存のプレゼンスレコードが受信したプレゼンス情報の装置ID、プロセスID、及びユーザインタフェース要素IDに適合するか否かを識別する。この情報に適合するレコードが存在しない場合、新たなプレゼンスレコードが生成される。新たなユーザプレゼンスレコードの「ユーザID」は受信した情報に含まれてもよいし、あるいは、インタラクション同期モジュール616が他のモジュール又はデータストアに問い合わせて装置IDと関連付けられたユーザを識別してもよい。新たなプレゼンスレコードはプレゼンスデータストア624に記憶される。適合プレゼンスレコードがプレゼンスデータストア624において識別された場合、既存のプレゼンスレコードは、受信した情報に基づいて更新される。(例えば、関連するウィンドウが閉じられたために)コンテンツアイテムはユーザインタフェース要素にもう関連付けられていないことを受信した情報が識別する場合、プレゼンスレコードはプレゼンスデータストア624から削除されてもよい。
この例では、インタラクション同期モジュール616はまた、プレゼンステーブル800にプレゼンスレコードを記憶し、特定のプレゼンスイベントが発生した場合に通知されるユーザの要求を反映する。様々な実施形態において、ユーザの通知要求は任意の適切な手法により記憶してもよい。通知要求は、インタラクション同期モジュール616によってインタラクション情報入力として通知要素520を介して受信され、その通知要求を受信する装置によりインタラクション同期モジュール616へ送信される。通知要求は、例えば、要求している装置や通知を要求するユーザ等の、通知要求を記述する十分な情報とともに記憶してもよい。要求を提供した装置をユーザがもう使用していない場合、ユーザは、代わりの装置を識別し、通知するために使用されてもよい。
インタラクション同期モジュール616は、ユーザプレゼンステーブル810を生成して、コンテンツアイテムに関する現在のユーザプレゼンスを維持してもよい。他の実施形態において、現在のユーザプレゼンスは、ユーザプレゼンステーブル810を使用せずに記憶される。ユーザプレゼンステーブル810は、ユーザのユーザ装置と関連付けられたプレゼンスレコードを反映する、ユーザのプレゼンスを示す。ユーザプレゼンスは、例えば、プレゼンスインジケータ500に表示するために、装置100により用いられる。このようにして、ユーザは、数個の装置、プロセス、及び、ユーザインタフェース要素を用いてコンテンツアイテムとのインタラクションを行ってもよいが、最も高い優先度のインタラクションを反映するプレゼンスのみが他の装置100へ配信される。
ユーザプレゼンスを判定するために、ユーザと関連付けられた各プレゼンスレコードからのプレゼンス情報が識別される。次に、最も高い優先度の順序付けを判定するために、ユーザプレゼンスの順序付けに対してプレゼンス情報が適合させられる。一例としてユーザのジョンについて、ジョンは3つのユーザプレゼンスと関連付けられている。プレゼンスレコードは、ジョンは1つのユーザ装置(ユーザインタフェース要素IDが1の装置9d7523c)のフォーカスされたウィンドウでコンテンツアイテムを閲覧中であり、装置36abe87の2つのユーザインタフェース要素では、コンテンツアイテムが1つ目では編集中であり、2つ目では「オープン」であることを示している。図7に示す順序付けを適用すると、「編集中」がジョンと関連付けられている最も高い順序のプレゼンスジョンのユーザプレゼンスは、ユーザプレゼンステーブル810において「編集中」と設定されている。
プレゼンスレコードが修正された場合、ユーザプレゼンスはユーザプレゼンスにおけるあらゆる変更を反映するように更新される。例えば、ジョンの「閲覧中」のプレゼンスレコードが削除された場合、「編集中」のプレゼンスレコードが残存しているため、ジョンのユーザプレゼンスは変更されない。同様に、ジョンの「編集中」のプレゼンスレコードが「オープン」に変化した場合、ジョンと関連付けられたプレゼンスレコードの次に高い優先度のプレゼンスが反映されて、ジョンのプレゼンス状態は「閲覧中」に変化する。なお、「閲覧中」のプレゼンスレコードは、他の装置ID(9d7523c)と関連付けられていることに留意されたい。したがって、ジョンのプレゼンスは、数個の装置、プロセス、及び、ユーザインタフェース要素をまたがって正確に反映されている。
図9は、一実施形態に係るプレゼンスレコードの修正とユーザプレゼンスの装置100の更新を行うプロセスを示す図である。一実施形態において、このプロセスは、インタラクション同期モジュール616によって行われてもよい。プレゼンス情報は、インタラクション同期モジュール616によって受信される(900)。インタラクション同期モジュール616は、前述のように、既存のプレゼンスレコードを修正し、あるいは、新たなプレゼンスレコードを追加して、プレゼンステーブル800のプレゼンスレコードを更新する(910)。次に、インタラクション同期モジュール616は、更新されたプレゼンスレコードと関連付けられたユーザのユーザプレゼンスを判定し、ユーザプレゼンスが更新されたプレゼンスレコードによって変更されたか否かを判定する(920)。例えば、ユーザプレゼンスにおける変化は、新たなユーザプレゼンスを判定し、その新たなユーザプレゼンスをユーザプレゼンステーブル810に記憶されたユーザプレゼンスと比較することにより判定してもよい。ユーザプレゼンスが変更されていない場合、一実施形態において、プロセスは終了する。ユーザプレゼンスが変化した場合、ユーザプレゼンステーブル810において、ユーザプレゼンスは更新される(930)。
一実施形態において、インタラクション同期モジュール616は、装置のユーザインタフェース要素が閾値時間内にプレゼンス情報を提供したか否かを判定する。ユーザインタフェース要素がプレゼンス情報を提供しなかった場合、インタラクション同期モジュール616は、装置からプレゼンス情報を要求するか、又は、関連するユーザインタフェース要素はのプレゼンスは終了した(「プレゼンスなし」)と考えてもよい。したがって、インタラクション同期モジュール616は、最近のプレゼンス情報を提供した各ユーザインタフェース要素に関する心拍を「予期」してもよい。閾値時間内にプレゼンス情報が全く受信されなかった場合は、「プレゼンスなし」のプレゼンスがそのユーザインタフェース要素に対して生成されてもよい。
次に、インタラクション同期モジュール616は、変更されたユーザプレゼンスに関して更新する装置を識別する。一実施形態において、コンテンツアイテムと同期されるあらゆる装置が更新される。他の実施形態において、プレゼンステーブル810は、コンテンツアイテムと関連付けられたプレゼンスを有する装置を判定するために参照される。さらに、インタラクション同期モジュール616は、ユーザプレゼンスにおける変化により何らかの通知がトリガされたか否かを判定する。記憶された通知がアクセスされ、通知に対する状態がコンテンツアイテムに関する変更されたプレゼンスと比較される。識別された装置を用いて、インタラクション同期モジュール616は、更新されたプレゼンス情報を識別された装置へ送信する(950)。1つの構成において、ユーザプレゼンスは、識別された装置へ提供される。他の構成において、付加的な情報もまた提供されてもよい。このようにして、ユーザプレゼンス情報は、例えば、プレゼンスインジケータにおいて、あるいは、通知要求に応じて、ユーザに実際に表示されてもよいユーザプレゼンスに作用する場合にのみプレゼンス情報を配信するように、コンテンツ管理システム110によって管理される。
装置100によって提供される付加的なインタラクション情報もまた、インタラクション同期モジュール616によって処理される。そのようなインタラクション情報には、図5Bを参照して説明したように、ユーザのプレゼンスが変化した婆に通知される要求、バージン又はメタデータの情報の要求、チャットメッセージ、その他が含まれる。前述のように、通知要求は記憶され、プレゼンス状態が変化した場合に通知する装置を判定するために使用されてもよい。バージョンまたはメタデータが要求されると、インタラクション同期モジュール616は、そのようなバージョン及びメタデータの情報をコンテンツストレージ620から取得する。コンテンツストレージ620に関して説明したように、インタラクション同期モジュール616はバージョン情報を提供してもよく、様々なコンテンツアイテムのバージョンに関して変更する。コンテンツアイテムに対するチャットメッセージが受信された場合、インタラクション同期モジュール616は、プレゼンスデータストア624に問い合わせて、コンテンツアイテムに対する記憶されたプレゼンスレコードと関連付けられた装置IDを識別し、これらの識別された装置へチャットメッセージを配信する。
コンテンツアイテムへの変更が装置によってなされた場合、プレゼンスレコードは、コンテンツアイテムとインタラクションを行っている個別のユーザインタフェース要素を知的かつ円滑に更新するために用いられてもよい。コンテンツアイテムに対するそのような変化には、(例えば、他のフォルダまたはディレクトリへの)コンテンツアイテムの移動、コンテンツアイテムの削除、及び、コンテンツアイテムの新バージョンのコミットが含まれる。
図10は、プレゼンス情報を使用してコンテンツアイテムに対する修正を同期させるプロセスのフローチャートを示す図である。様々な実施形態に従い、このプロセスは、インタラクション同期モジュール616又はクライアントアプリケーション200によって実行されてもよい。コンテンツアイテムに対する変更が受信された場合(1000)、影響を受けたコンテンツアイテムに対するプレゼンスレコードがアクセスされて(1010)、各ユーザインタフェース要素と関連付けられたプレゼンス情報が判定される(1020)。ユーザインタフェース要素のプレゼンスとコンテンツアイテムへの変更に依存して、アクションが実行するユーザインタフェース要素に対するクライアントアプリケーションへ送信され、ユーザインタフェース要素をコンテンツアイテムへの変更に調和させる。
ユーザインタフェース要素が「オープン(開く)」プレゼンスと関連付けられていた場合(すなわち、ユーザインタフェース要素はコンテンツアイテムとのインタラクションを行ったが、ディスプレイにおいてアクティブなユーザインタフェース要素ではない)、ユーザインタフェース要素を制御するプロセスへ送信されたアクションは、典型的には、コンテンツアイテムの変化をシームレスに統合するようにプロセスに命令する(1030)。例えば、コンテンツアイテムの新バージョンがコミットされた場合、プロセスは、閉じて(クローズ)、自動的に新たな変更されたコンテンツアイテムを再度開くように命令される。コンテンツアイテムが移動された場合、プロセスは、そのコンテンツアイテムを閉じて、新たな位置でコンテンツアイテムを再度開くように命令されてもよい。コンテンツアイテムが削除された場合、プロセスはコンテンツアイテムを閉じるように命令されてもよい。プレゼンスレコードがユーザインタフェース要素は閲覧中であることを識別した場合(例えば、装置上で現在アクティブなユーザインタフェース要素)、ユーザは、「オープン」のプレゼンス情報について説明したアクションを実行する前に通知されてもよい(1040)。さらに、ユーザはコンテンツアイテムに対する一定の変化が通知され、さらなるアクションを実行することが促されてもよい。ユーザは、コンテンツアイテムが他のフォルダに移動されたかどうかを気にしないかもしれないが、ユーザは、コンテンツアイテムの削除又は修正を同期する前にコンテンツアイテムの現バージョンを保存するオプションを好むかもしれない。このような状況におけるアクションには、例えば、補助的なユーザインタフェースを介して、修正の同期を継続するか否か、現在のコンテンツアイテムを保存するか否か、あるいは、変更せずに現在のコンテンツアイテムの閲覧を継続するか否かの指示をユーザに求めることが含まれてもよい。
ユーザインタフェース要素がコンテンツアイテムの編集中と関連付けられていることをプレゼンスレコードが示した場合(例えば、ユーザインタフェース要素がコンテンツアイテムの未保存の修正と関連付けられている場合)、アクションは、ユーザが行った全ての編集を含むコンテンツアイテムを保存するか、あるいは、コンテンツアイテムの未編集のバージョンを保存するためのオプションをユーザに提示してもよい(1050)。例えば、変更によりコンテンツアイテムが削除された場合、アクションには、修正されたコンテンツアイテムを保存するオプションの提示を含む。変更によりコンテンツアイテムが移動された場合、アクションは、編集済のコンテンツアイテムをコンテンツアイテムの新たな位置と同期することを支援してもよい。例えば、アクションは、コンテンツアイテムのあらゆる修正を保存するようにクライアントアプリケーション200に対して命令してもよい。
変更によりコンテンツアイテムの新バージョンがコミットされてユーザインタフェース要素がコンテンツアイテムの修正と関連付けられた場合(例えば、編集中プレゼンス)、アクションは、新バージョンをユーザに通知し、(既存のコンテンツアイテムとのバージョニングの衝突を避けるために)他の文書へのユーザ変更の保存又はユーザ変更の破棄をユーザに促してもよい。アクションはまた、新たにコミットされたバーションを、ユーザインタフェース要素においてなされた修正とマージすることを試みてもよい。そのようなマージには、コンテンツアイテムへのコミットされた変更を識別し、コミットされた変更をユーザインタフェース要素のコンテンツアイテムに組み込むことを試みるようにユーザ装置に命令することが含まれてもよい。
図11は、一実施形態に係るインタラクション情報のフォルダレベル表示を示す図である。図11に示す実施形態において、装置100のユーザインタフェースモジュール202は、同期されたコンテンツアイテムをナビゲートするためのブラウザ1100をユーザに表示する。前述のように、同期されたコンテンツアイテムは、同期されたコンテンツアイテムは、個別のフォルダ又は共有フォルダと関連付けられてもよい。ブラウザ1100はコンテンツ管理システム110と同期されたコンテンツアイテムを表示し、同期されたコンテンツアイテムとそのようなコンテンツアイテムの編成をユーザがナビゲートすることを可能にする。図11に示す例において、ブラウザ1100は、共有フォルダに対するコンテンツアイテムのコレクションを示している。このコレクションのビュー(例えば、フォルダ)はまた、ブラウザ1100により表示されるコンテンツアイテムの一定の「編成」とも呼ばれる。共有フォルダの編成は階層的であってもよく、例えば、コレクション内の数個の編成要素を含んでもよい。各編成要素は、編成内のコンテンツアイテムをさらに編成するコンテンツアイテムである。例えば、編成要素の1つの種類はフォルダであり、フォルダは、そのフォルダ内に1つ以上のフォルダを含んでもよい。例えば、コレクション、集合、プレイリスト、あるいはコンテンツアイテムを編成及び管理する他の任意の好適なグルーピングなどの、他の編成要素を用いてもよい。ユーザは、編成要素を選択し、編成構造をナビゲートすることにより、コンテンツアイテムの編成を階層的にナビゲートしてもよい。ブラウザ1100は、ブラウザ1100に示されたコンテンツアイテムに関するインタラクション情報を表示する。このようにして、ユーザは共有ないし同期フォルダをナビゲートして、ユーザはコンテンツアイテムとのインタラクションを閲覧してもよい。以下にさらに説明するように、これによりユーザは、共有フォルダ及びコンテンツアイテムとの現在及び最近のインタラクションを識別することができる。
一実施形態において、インタラクション情報がクライアントにより受信された場合、クライアントは受信したインタラクション情報を共有フォルダ、任意の関連する編成、及び、編成要素と関連付ける。例えば、コンテンツアイテムは、特定の共有フォルダ内のフォルダAと関連付けられてもよい。インタラクション情報は、コンテンツアイテム、共有フォルダ、及び、フォルダAと関連付けられてもよい。図11に示すように、ブラウザ1100は、編成要素を含む数個のコンテンツアイテムを表示してもよい。この例では、ブラウザ1100は、数個のフォルダ編成要素、並びに、「プロジェクトタスクリスト」及び「第1四半期レベニューレポート」のコンテンツアイテムを示している。
共有コンテンツアイテムについてのインタラクション情報及び他の情報は、編成要素を含む各コンテンツアイテムに対して状態インジケータ(具体的には、状態インジケータ1110A〜1110F、一般に、状態インジケータ1110)を生成するために解析される。状態インジケータは、コンテンツアイテム又は編成要素に対するインタラクション情報又は同期状態を表示する視覚情報を提供する。この例では、状態インジケータ1110は、関連アイテム(コンテンツアイテム又は編成要素)が最新版であること、現在更新又は修正を受けていること、あるいは、プレゼンス情報と関連付けられていることを示してもよい。編成要素と関連付けられた状態インジケータは、編成要素に包含されるコンテンツアイテム及びさらなる編成要素を識別し、編成要素に包含されるアイテムの状態を表示することにより、判定されてもよい。
この例では、状態インジケータ1110Aは、フォルダ「納税申告書」がコンテンツ管理システム110と現在同期されていることを示している。フォルダ「納税申告書」は、他のユーザに共有されていない編成要素である。
状態インジケータ1110Bは、フォルダ「ミュージック」が修正を現在受信しており、この編成要素内のコンテンツアイテムの状態をコンテンツ管理システム110と同期中であることを示している。
状態インジケータ1110Cは、フォルダ「共有家計費」がコンテンツ管理システム110と現在同期されていることを示している。このフォルダは、「共有フォルダ」の指定により示されているように、他のユーザにより共有され、同期されている。
状態インジケータ1110Dは、「+8」により示されるように、フォルダ「四半期レベニューレポート」が、8人の他のユーザに関するプレゼンス情報と現在関連付けられていることを示している。この実施形態では、編成要素又はコンテンツアイテムに関するプレゼンス情報を有するユーザ数が、カウンタにより指定される。「四半期レベニューレポート」に関するプレゼンス情報は、編成アイテムにより編成されたコンテンツアイテム及び他の編成アイテムと関連付けられる。例えば、6人のユーザが、「四半期レベニューレポート」のコンテンツアイテムに関するプレゼンス情報と関連付けられてもよい一方で、2人のユーザが「四半期レベニューレポート」のさらなる編成要素と関連付けられてもよい。すなわち、2人のユーザがコンテンツアイテムとのインタラクションを行っていてもよい「四半期レベニューレポート」の中に、さらなるフォルダが存在してもよい。ユーザは「四半期レベニューレポート」を(ブラウザにより表示された編成としてではなく)1つの編成要素として閲覧しているため、ブラウザは、「四半期レベニューレポート」内のコンテンツアイテムと関連付けられた連結されたインタラクション情報の情報を表示する。ユーザは、編成要素それ自体をブラウズするために、さらには、他のユーザにより閲覧さもなくばインタラクション(例えば、編集)が行われているコンテンツアイテムを識別するために、編成要素を選択してもよい。
同様に、状態インジケータ1110Eは、「+2」により示されるように、フォルダ「効率改善プロジェクト」が、2人の他のユーザに関するプレゼンス情報と現在関連付けられていることを示している。
状態インジケータ1110Fは、コンテンツアイテム「プロジェクトタスクリスト」が、アイコンが表示されているユーザに対するプレゼンス情報と関連付けられていることを示している。そのような情報を表示する様々な方法において、ユーザのアイコンが表示されてもよいし、又は、状態インジケータが+1あるいは他の個別化されていないインジケータを示してもよい。このようにして、ブラウザ1100において、ユーザは、ブラウザのビューと関連付けられた様々なコンテンツアイテム及び編成要素に関するインタラクション情報を閲覧してもよく、これにより、ユーザは、どのアイテム又は編成要素が他のユーザによりインタラクションを行われているかを一見して把握することができる。
状態インジケータ1110に加えて、ブラウザ1100はまた、様々な状態インジケータ1110と関連付けられたアクティブユーザリスト1120を表示してもよい。閲覧する個別のユーザを選択するために、ユーザは、フィルタアイコン1150とともに、アクティブユーザリスト1120とインタラクションを行ってもよい。例えば、ユーザは、アクティブユーザリスト1120のユーザ「ジョン」はアクティブであり、プレゼンス情報と関連付けられていることを理解する。ユーザは、「ジョン」を選択するためにフィルタ1150を選択してもよく、ユーザインタフェースモジュール202により管理されたブラウザは、表示されているインタラクション情報を「ジョン」のみに関係する情報にフィルタリングする。
加えて(あるいは、さもなければ)、ユーザは、アクティブユーザリスト1120のユーザを選択して、ユーザがインタラクションを行っている一定のコンテンツアイテムを識別してもよい。具体的には、そのユーザと関連付けられているプレゼンス情報が識別され、結果生じるコンテンツアイテムが表示される。これにより、たとえ他のユーザが、編成階層においてサブ・サブ・サブフォルダ又は他の深い編成要素におけるコンテンツアイテムについてアクティブである場合であっても、そのユーザがアクティブなコンテンツアイテムをユーザが素早く識別することが可能となるようにしてもよい。したがって、閲覧中のユーザは、コンテンツアイテムの編成内のどこで他のユーザがアクティブであるかを素早く「発見」してもよい。
ブラウザ1100はまた、ユーザに表示されているビュー、及び、現在表示されている編成と関連付けられている様々なコンテンツアイテム及び編成要素に関するアクティビティフィード1130をも表示する。アクティビティフィードは、図5A〜図5Dに関して議論したコンテンツアイテムのユーザのビューに関して説明したように、あらゆるインタラクション情報を表示してもよい。例えば、アクティビティフィード1130Aは、いつユーザのプレゼンスが変化したか(例えば、コンテンツアイテムを開いた又は閉じた)を表示する。アクティビティフィードアイテム1130Bは、ユーザがファイルの新バージョンを保存したことを示し、図10に関して前述したように、応答を選択するようにユーザに促している。ブラウザ1100において、コンテンツアイテムへの修正は、その修正がローカルコンテンツデータストア208への同期に成功するまで、アクティビティフィード1130に表示されなくてもよい。
アクティビティフィードアイテム1130Cにより示されているように、一定の編成アイテム(例えば、フォルダ「効率改善プロジェクト」)又は一定のコンテンツアイテム(例えば、コンテンツアイテム「Project Goals.txt」)に関するチャットメッセージがアクティビティフィード1130に表示されている。同様に、アクティビティフィードアイテム1130D、1130Eに示すように、編成アイテム内のコンテンツアイテムに関するユーザのプレゼンスアクティビティにおける変化もまた表示されてもよい。
最後に、アクティビティフィード1130はまた、共有フォルダ、コンテンツアイテム、又は、編成アイテムに関するメタデータに対する様々な変化をユーザに通知してもよい。例えば、コンテンツアイテムへの修正、削除、若しくは、追加、あるいは、共有フォルダへの新ユーザの追加(1130F)などである。ユーザはまた、チャット要素1140において、チャットメッセージ、又は、他のインタラクション情報を入力してもよい。このメッセージはユーザの編成ビューと関連付けられており、この例では、「マイワークスペース」共有フォルダと関連付けられている。これにより、ユーザは、コンテンツアイテム若しくはフォルダ、あるいは、ブラウザ1100それ自身からの共有フォルダについて通信することができる。
このようにして、ブラウザ1100は、コンテンツアイテムのネイティブアプリケーションの入力をユーザに強いることなく、様々なコンテンツアイテム及び編成要素に関する詳細なプレゼンス及びインタラクションの情報を表示し、ユーザがコンテンツアイテムについての変化及びデータを一見して閲覧することを可能にする。
したがって、各ユーザインタフェース要素と関連付けられたプレゼンスは、コンテンツアイテムが修正された場合のユーザ体験を円滑にするために用いられる。そこで、ユーザがユーザインタフェース要素を閉じる前に、ユーザはコンテンツアイテム通知を通知されてもよく、これにより、ユーザがそれを閉じた直後の同期によってコンテンツアイテムが変化又は削除された場合にユーザが驚く可能性を低減する。
前述の本発明の実施形態は例示の目的のために提示されたものであり、網羅的であることや、本発明を開示されたとおりの形態に限定することを目的とするものではない。関連分野の当業者は、上記開示を踏まえて多数の修正及び変形が可能であることを理解することができる。
本明細書のいくつかの部分は、情報に対する動作のアルゴリズム及び記号表現の観点から本発明の実施形態を説明している。これらのアルゴリズム的な記述及び表現は、データ処理分野の当業者により、その業績を他の当業者に効率的に伝えるために一般に用いられている。これらの動作は、機能的、計算的、あるいは、論理的に記述される一方で、コンピュータプログラム、あるいは、同等の電子回路、マイクロコードその他によって実装されることが理解される。さらに、これらの動作の配置をモジュールとして参照することは、一般性を失わずに、便利な場合があることも証明されている。上述の動作及び関連付けられたモジュールは、ソフトウェア、ファームウェア、ハードウェア、又は、これらの任意の組み合わせにより実施してもよい。
本明細書に記載の任意のステップ、動作、あるいは、プロセスは、1つ以上のハードウェアまたはソフトウェアのモジュールの、単独、又は、他の装置との組み合わせを用いて、実行ないし実装してもよい。一実施形態において、ソフトウェアモジュールは、コンピュータにより実行可能な、コンピュータプログラムコードを含むコンピュータ可読記憶媒体を備えたコンピュータプログラム製品を用いて実装される。
本発明の実施形態はまた、上述の動作を実行する装置にも関連してもよい。この装置は、所要の目的に合わせて特別に構成してもよいし、コンピュータに記憶されたコンピュータプログラムによって選択的に起動ないし再構成される汎用コンピュータ装置を備えてもよいし、あるいは、これらの両方でもよい。このようなコンピュータプログラムは、コンピュータシステムバスに結合してもよい、一時的でない有形のコンピュータ可読記憶媒体、又は、電子命令を記憶するのに適した任意の種類のメディアに記憶してもよい。さらに、本明細書で参照された任意のコンピュータシステムは、単一のプロセッサを含んでもよいか、あるいは、計算性能の増大のために複数プロセッサのデザインを採用しているアーキテクチャであってもよい。
本発明の実施形態はまた、前述のコンピュータプロセスによって製作された製品に関してもよい。このような製品は計算プロセスの結果として生じた情報を備えてもよく、その情報は一時的でない有形のコンピュータ可読記憶媒体に記憶され、本明細書に記載のコンピュータプログラム製品又は他のデータの組み合わせの任意の実施形態を含んでもよい。
最後に、本明細書の使用言語は、主に可読性や教育上の目的のために選択されたものであり、発明対象を描写ないし制限するために選択されたものではない。したがって、発明の技術的範囲は、発明の詳細な説明ではなく、むしろ本明細書が基づく特許出願において発行されている任意の請求項によって定められることが意図されている。そのため、発明の実施形態の開示は実例であることが意図されており、以下の特許請求の範囲に記載の発明の技術的範囲を制限することを意図したものではない。
ネイティブアプリケーション255はまた、ユーザがコンテンツアイテムを修正した場合に、ユーザがそのコンテンツアイテムを保存する前に様々な挙動を行う。これらの挙動はアプリケーションやオペレーティングシステム245に基づいて変化する。例えば、いくつかのネイティブアプリケーション255は、例えばティルデ又は他の見分けのつくマークを有するコンテンツアイテムの一時的なファイル名を導いて、オープン(開かれた)コンテンツアイテムと異なるファイル名で一時的なコンテンツアイテムを作成する。他の例では、ネイティブアプリケーション255は、コンテンツアイテムと関連付けられたユーザインタフェース要素のタイトルを変更し、それはユーザから直接閲覧できてもよいしできなくてもよい。さらに他の例では、ネイティブアプリケーション255は、コンテンツアイテムが修正されたことを示すフラグを設定する。ネイティブアプリケーション255はまた、他のアプリケーション又はオペレーティングシステムからの要求に応じて、コンテンツアイテムの修正に関する情報を提供してもよい。例えば、前述のOS XオペレーティングシステムにおけるアクセシビリティAPIは、ユーザインタフェース要素と関連付けられたコンテンツアイテムに関する情報を提供する。オープンコンテンツアイテムのハンドルは、コンテンツアイテムがネイティブアプリケーション255によって編集されているか否かを確実に判定するものではないかもしれないため、以下にさらに説明するように、これらの挙動は、インタラクション管理モジュール204がコンテンツアイテムの編集又は修正に関するプレゼンスを判定するために用いられる。
インタラクション情報に変化があった場合、インタラクション管理モジュール204は、インタラクション情報をコンテンツ管理システム110へ送信する(470)。一実施形態において、送信されるプレゼンス情報には、コンテンツアイテムの識別子、プロセスID、ユーザインタフェース要素ID、及び、プレゼンス状態が含まれる。
このインタフェースはまた、ユーザが、コンテンツアイテムにプレゼンスを有する他のユーザと通信するためのチャットインタフェース530を提供する。チャットインタフェース530は、ユーザが他のユーザに参加してメッセージを受信することを可能にする。プレゼンスの変化はまた、例えば、アマンダが今コンテンツアイテムを閲覧しているという、チャットインタフェース530において示すこともできる。チャットインタフェース530は、ユーザがアイテムの編集を終えることを予期している場合などに、そのコンテンツアイテムに関する情報についてユーザが具体的に議論することを可能にしてもよい。これらのチャットメッセージは、インタラクション管理モジュール204によりインタラクション情報として受信され、そのコンテンツアイテムと同期された他のクライアントへ送信される。これにより、ネイティブアプリケーションがチャットの機能性を提供していない場合であっても、コンテンツアイテムについてユーザは直接チャットをすることができる。
コンテンツ管理システム110はまた、ユーザのクレデンシャル、セキュリティトークン、APIコール、専用装置等を検証して、要求されたコンテンツアイテムへのアクセスが認可されたものか否かを判定する認証モジュール606を有し、これはこの機能を実行する1つの手段である。認証モジュール606は、ユーザアカウントに対してワンタイム使用の認証トークンを生成することができる。認証モジュール606は、各認証トークンに対して有効期間又は有効期限を割り当てる。認証トークンを要求装置へ送信することに加えて、認証モジュール606は、生成した認証トークンを認証トークンデータベース622に記憶することができる。認証トークンの正当性検証の要求を受信すると、認証モジュール606は、ユーザに割り当てられた適合認証トークンを求めて認証トークンデータベース622をチェックする。認証モジュール606が適合認証トークンを識別するとすぐに、認証モジュール606は、適合認証トークンがまだ有効か否かを判定する。例えば、認証モジュール606は、認証トークンが失効していないか、あるいは、使用済み又は無効なものとしてマークされていないかを検証する。認証トークンの正当性検証の後、認証モジュール606は、使い捨てトークン等の適合認証トークンを無効化してもよい。例えば、認証モジュール606は、適合認証トークンを使用済み又は無効なものとしてマークしたり、あるいは、適合認証トークンを認証トークンデータベース622から削除することができる。
いくつかの実施形態において、コンテンツ管理システム110は、コンテンツストレージ620の各コンテンツアイテムの位置を識別し、クライアントアプリケーションがストレージ620内のコンテンツアイテムへのアクセスを要求することを可能にするコンテンツディレクトリを維持するコンテンツアイテム管理モジュール608を有し、これはこの機能を実行する1つの手段である。コンテンツディレクトリのコンテンツエントリはまた、コンテンツストレージ620のコンテンツアイテムの位置を識別するコンテンツポインタを有することができる。例えば、コンテンツエントリは、メモリ内のコンテンツアイテムのストレージアドレスを指定するコンテンツポインタを有することができる。いくつかの実施形態において、コンテンツエントリは、それぞれコンテンツアイテムの一部を含む、複数の位置を指す複数のコンテンツポインタを有する。
次に、インタラクション同期モジュール616は、変更されたユーザプレゼンスに関して更新する装置を識別する(940)。一実施形態において、コンテンツアイテムと同期されるあらゆる装置が更新される。他の実施形態において、プレゼンステーブル810は、コンテンツアイテムと関連付けられたプレゼンスを有する装置を判定するために参照される。さらに、インタラクション同期モジュール616は、ユーザプレゼンスにおける変化により何らかの通知がトリガされたか否かを判定する。記憶された通知がアクセスされ、通知に対する状態がコンテンツアイテムに関する変更されたプレゼンスと比較される。識別された装置を用いて、インタラクション同期モジュール616は、更新されたプレゼンス情報を識別された装置へ送信する(950)。1つの構成において、ユーザプレゼンスは、識別された装置へ提供される。他の構成において、付加的な情報もまた提供されてもよい。このようにして、ユーザプレゼンス情報は、例えば、プレゼンスインジケータにおいて、あるいは、通知要求に応じて、ユーザに実際に表示されてもよいユーザプレゼンスに作用する場合にのみプレゼンス情報を配信するように、コンテンツ管理システム110によって管理される。

Claims (28)

  1. コンテンツ管理システムが、装置のプレゼンスアプリケーションから、該装置に記憶され該コンテンツ管理システムと同期されたコンテンツアイテムと関連付けられたネイティブプロセスと関連付けられたユーザインタフェース要素とのユーザインタラクションを記述するプレゼンス情報を受信する工程と、
    前記コンテンツアイテムを同期させる装置の集合であって、当該装置の集合の各装置は、該コンテンツアイテムのローカルコピーを維持し、該ローカルコピーを前記コンテンツ管理システムに記憶された前記コンテンツアイテムと同期させる、装置の集合を判定する工程と、
    前記装置の集合に前記プレゼンス情報を通知する工程と
    を有することを特徴とする方法。
  2. 前記コンテンツアイテムを同期させる前記装置の集合における複数の装置に対して、各装置が該コンテンツアイテムを閲覧しているか否かを記述する記憶されたプレゼンス情報を維持する工程と、
    前記受信したプレゼンス情報に基づいて、前記記憶されたプレゼンス情報を更新する工程と
    をさらに有することを特徴とする請求項1に記載の方法。
  3. 前記記憶されたプレゼンス情報は、各装置が前記コンテンツアイテムを編集しているか否かをさらに記述することを特徴とする請求項2に記載の方法。
  4. 前記記憶されたプレゼンス情報は、前記プレゼンス情報と関連付けられたユーザインタフェース要素をさらに記述することを特徴とする請求項2又は3に記載の方法。
  5. 前記コンテンツアイテムを同期させる前記判定される装置の集合は、装置が前記コンテンツアイテムを閲覧していることを記述する記憶されたプレゼンス情報と関連付けられた装置から判定されることを特徴とする請求項1から4のいずれか1項に記載の方法。
  6. 前記受信したプレゼンス情報に基づいて、前記装置のプレゼンス状態が変化したか否かを判定する工程をさらに有することを特徴とする請求項1から5のいずれか1項に記載の方法。
  7. 前記コンテンツアイテムに関する他のプレゼンス情報が、該コンテンツアイテムが編集されていることを示す場合、前記プレゼンス状態は変えられないことを特徴とする請求項6に記載の方法。
  8. 前記受信されるプレゼンス情報にはチャットメッセージが含まれることを特徴とする請求項1から7のいずれか1項に記載の方法。
  9. コンテンツ管理システムと同期されたコンテンツアイテムとのユーザインタラクションを記述するプレゼンス情報を維持する工程と、
    前記コンテンツ管理システムと同期された装置からコンテンツアイテムの修正を受信する工程と、
    前記コンテンツアイテムを同期させる装置の集合の各々に対して、プレゼンス情報を判定する工程と、
    前記コンテンツアイテムと同期された前記装置の集合へアクションを伝送する工程であって、当該各装置へ伝送されるアクションは、前記装置と関連付けられた前記プレゼンス情報に基く、工程と
    をプロセッサに実行させるコンピュータプログラムコードを含むコンピュータ可読記憶媒体を有するコンピュータプログラム製品。
  10. 装置に対する前記プレゼンス情報は前記装置のユーザが前記コンテンツアイテムを閲覧していないことを示し、前記アクションは、前記装置に、前記コンテンツアイテムを前記コンテンツアイテムの修正に自動的に同期させることを特徴とする請求項9に記載のコンピュータプログラム製品。
  11. 装置に対する前記プレゼンス情報は前記装置のウィンドウが前記コンテンツアイテムを開いていることを示し、前記アクションは、前記ウィンドウに、修正された前記コンテンツアイテムを開かせることを特徴とする請求項9に記載のコンピュータプログラム製品。
  12. 装置に対する前記プレゼンス情報は前記装置のウィンドウが前記コンテンツアイテムを編集していることを示し、前記アクションは、前記装置に、修正されたコンテンツアイテムが利用可能であることをユーザに通知させる特徴とする請求項9に記載のコンピュータプログラム製品。
  13. 前記コンテンツアイテムとのユーザインタラクションを記述する前記プレゼンス情報は、アクティブなユーザインタフェースウィンドウが前記コンテンツアイテムを閲覧していることを示す情報を含むことを特徴とする請求項9に記載のコンピュータプログラム製品。
  14. 前記コンテンツアイテムとのユーザインタラクションを記述する前記プレゼンス情報は、ユーザインタフェースウィンドウが前記コンテンツアイテムを編集していることを示す情報を含むことを特徴とする請求項9に記載のコンピュータプログラム製品。
  15. 命令を実行するプロセッサと、
    命令を含む、一時的でない不揮発性の記憶媒体と
    を備えたシステムであって、
    前記記憶媒体が含む命令は、前記プロセッサにより実行された場合に、前記プロセッサに、
    装置から、コンテンツ管理システムと同期されたコンテンツアイテムと関連付けられたユーザインタフェース要素とのユーザインタラクションを記述するプレゼンス情報を受信する工程と、
    前記コンテンツアイテムを同期させる装置の集合であって、当該装置の集合の各装置は、該コンテンツアイテムのローカルコピーを維持し、該ローカルコピーを前記コンテンツ管理システムに記憶された前記コンテンツアイテムと同期させる、装置の集合を判定する工程と、
    前記装置の集合に前記プレゼンス情報を通知する工程と
    を実行させることを特徴とするシステム。
  16. 前記命令は、前記プロセッサに、
    前記コンテンツアイテムと関連付けられた複数の装置に対して、前記装置の各々が該コンテンツアイテムを閲覧しているか否かを記述する記憶されたプレゼンス情報を維持する工程と、
    前記受信したプレゼンス情報に基づいて、前記装置に対して記憶されたプレゼンス情報を更新する工程と
    をさらに実行させることを特徴とする請求項15に記載のシステム。
  17. 前記コンテンツアイテムを同期させる前記判定される装置の集合は、装置が前記コンテンツアイテムを閲覧していることを記述するプレゼンス情報と関連付けられた装置から判定されることを特徴とする請求項16に記載のシステム。
  18. 前記記憶されたプレゼンス情報は、各装置が前記コンテンツアイテムを編集しているか否かをさらに記述することを特徴とする請求項16又は17に記載の方法。
  19. 前記命令は、前記受信したプレゼンス情報に基づいて、前記装置のプレゼンス状態が変化したか否かを判定する工程を前記プロセッサにさらに実行させることを特徴とする請求項15から18のいずれか1項に記載の方法。
  20. 前記受信されるプレゼンス情報にはチャットメッセージが含まれることを特徴とする請求項19に記載の方法。
  21. 装置に記憶されコンテンツ管理システムと同期されたコンテンツアイテムと関連付けられたネイティブプロセスと関連付けられたユーザインタフェース要素とのユーザインタラクションを記述するプレゼンス情報を受信する手段と、
    前記コンテンツアイテムを同期させる装置の集合であって、当該装置の集合の各装置は、該コンテンツアイテムのローカルコピーを維持し、該ローカルコピーを前記コンテンツ管理システムに記憶された前記コンテンツアイテムと同期させる、装置の集合を判定する手段と、
    前記装置の集合に前記プレゼンス情報を通知する手段と
    を備えることを特徴とするシステム。
  22. 前記コンテンツアイテムを同期させる前記装置の集合における複数の装置に対して、各装置が該コンテンツアイテムを閲覧しているか否かを記述する記憶されたプレゼンス情報を維持する手段と、
    前記受信したプレゼンス情報に基づいて、前記記憶されたプレゼンス情報を更新する手段と
    をさらに備えることを特徴とする請求項21に記載のシステム。
  23. 前記記憶されたプレゼンス情報は、各装置が前記コンテンツアイテムを編集しているか否かをさらに記述することを特徴とする請求項22に記載のシステム。
  24. 前記記憶されたプレゼンス情報は、前記プレゼンス情報と関連付けられたユーザインタフェース要素をさらに記述することを特徴とする請求項22又は23に記載のシステム。
  25. 前記コンテンツアイテムを同期させる前記判定される装置の集合は、装置が前記コンテンツアイテムを閲覧していることを記述する記憶されたプレゼンス情報と関連付けられた装置から判定されることを特徴とする請求項21から24のいずれか1項に記載のシステム。
  26. 前記受信したプレゼンス情報に基づいて、前記装置のプレゼンス状態が変化したか否かを判定する工程をさらに有することを特徴とする請求項21から25のいずれか1項に記載のシステム。
  27. 前記コンテンツアイテムに関する他のプレゼンス情報が、該コンテンツアイテムが編集されていることを示す場合、前記プレゼンス状態は変えられないことを特徴とする請求項26に記載のシステム。
  28. 前記受信されるプレゼンス情報にはチャットメッセージが含まれることを特徴とする請求項21から27のいずれか1項に記載のシステム。
JP2019080438A 2014-04-08 2019-04-19 共有され同期されたコンテンツにアクセスする装置間でプレゼンスを管理すること Active JP6727373B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020113157A JP6980062B2 (ja) 2014-04-08 2020-06-30 共有され同期されたコンテンツにアクセスする装置間でプレゼンスを管理すること

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/248,149 US10171579B2 (en) 2014-04-08 2014-04-08 Managing presence among devices accessing shared and synchronized content
US14/248,149 2014-04-08

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2016553454A Division JP6518261B2 (ja) 2014-04-08 2015-04-08 共有され同期されたコンテンツにアクセスする装置間でプレゼンスを管理すること

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2020113157A Division JP6980062B2 (ja) 2014-04-08 2020-06-30 共有され同期されたコンテンツにアクセスする装置間でプレゼンスを管理すること

Publications (2)

Publication Number Publication Date
JP2019153326A true JP2019153326A (ja) 2019-09-12
JP6727373B2 JP6727373B2 (ja) 2020-07-22

Family

ID=53540790

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2016553454A Active JP6518261B2 (ja) 2014-04-08 2015-04-08 共有され同期されたコンテンツにアクセスする装置間でプレゼンスを管理すること
JP2019080438A Active JP6727373B2 (ja) 2014-04-08 2019-04-19 共有され同期されたコンテンツにアクセスする装置間でプレゼンスを管理すること
JP2020113157A Active JP6980062B2 (ja) 2014-04-08 2020-06-30 共有され同期されたコンテンツにアクセスする装置間でプレゼンスを管理すること

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2016553454A Active JP6518261B2 (ja) 2014-04-08 2015-04-08 共有され同期されたコンテンツにアクセスする装置間でプレゼンスを管理すること

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2020113157A Active JP6980062B2 (ja) 2014-04-08 2020-06-30 共有され同期されたコンテンツにアクセスする装置間でプレゼンスを管理すること

Country Status (5)

Country Link
US (3) US10171579B2 (ja)
EP (1) EP3129882A1 (ja)
JP (3) JP6518261B2 (ja)
AU (2) AU2015246020B2 (ja)
WO (1) WO2015155693A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10171579B2 (en) 2014-04-08 2019-01-01 Dropbox, Inc. Managing presence among devices accessing shared and synchronized content
US9998555B2 (en) 2014-04-08 2018-06-12 Dropbox, Inc. Displaying presence in an application accessing shared and synchronized content
US10270871B2 (en) 2014-04-08 2019-04-23 Dropbox, Inc. Browser display of native application presence and interaction data
US10091287B2 (en) 2014-04-08 2018-10-02 Dropbox, Inc. Determining presence in an application accessing shared and synchronized content
US9846528B2 (en) 2015-03-02 2017-12-19 Dropbox, Inc. Native application collaboration
US9898172B2 (en) 2015-09-25 2018-02-20 Dropbox, Inc. Content item activity feed for presenting events associated with content items
US10248933B2 (en) 2015-12-29 2019-04-02 Dropbox, Inc. Content item activity feed for presenting events associated with content items
US10620811B2 (en) 2015-12-30 2020-04-14 Dropbox, Inc. Native application collaboration
US9413708B1 (en) * 2015-12-31 2016-08-09 Dropbox, Inc. User notifications for interaction information
US10382502B2 (en) 2016-04-04 2019-08-13 Dropbox, Inc. Change comments for synchronized content items
CN107346253A (zh) * 2016-05-06 2017-11-14 中兴通讯股份有限公司 应用同步方法及装置
US10402375B2 (en) * 2016-07-18 2019-09-03 Microsoft Technology Licensing, Llc Cloud content states framework
CN107809517B (zh) * 2016-09-08 2020-07-10 阿里巴巴集团控股有限公司 事件展示方法及装置
US20180189521A1 (en) * 2017-01-05 2018-07-05 Microsoft Technology Licensing, Llc Analyzing data to determine an upload account
US10929407B2 (en) 2017-11-30 2021-02-23 International Business Machines Corporation Dynamic and adaptive content processing in cloud based content hub
US11372522B2 (en) * 2017-12-13 2022-06-28 Google Llc Intelligent people-centric predictions in a collaborative environment
US20190294659A1 (en) * 2018-03-20 2019-09-26 Dropbox, Inc. Embedding a portion of a source content item
US11258834B2 (en) * 2018-10-05 2022-02-22 Explain Everything, Inc. System and method for recording online collaboration

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003157225A (ja) * 2002-07-25 2003-05-30 Fujitsu Hokuriku Systems:Kk サーバ
JP2012150647A (ja) * 2011-01-19 2012-08-09 Konica Minolta Business Technologies Inc 文書データ処理装置、文書データ処理システムおよびコンピュータプログラム
JP2012209614A (ja) * 2011-03-29 2012-10-25 Brother Ind Ltd 会議システム、会議端末、および会議プログラム
US20130212250A1 (en) * 2009-05-26 2013-08-15 Adobe Systems Incorporated User presence data for web-based document collaboration
JP2014095960A (ja) * 2012-11-08 2014-05-22 Fujitsu Ltd 文書編集通知方法,そのサーバ,プログラム及びシステム

Family Cites Families (187)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5337407A (en) 1991-12-31 1994-08-09 International Business Machines Corporation Method and system for identifying users in a collaborative computer-based system
JPH06214743A (ja) 1993-01-14 1994-08-05 Hitachi Ltd 共同情報処理システム
US5960173A (en) 1995-12-22 1999-09-28 Sun Microsystems, Inc. System and method enabling awareness of others working on similar tasks in a computer work environment
JPH10187619A (ja) 1996-12-26 1998-07-21 Toshiba Corp 共同作業システム
US6065026A (en) 1997-01-09 2000-05-16 Document.Com, Inc. Multi-user electronic document authoring system with prompted updating of shared language
US6088707A (en) 1997-10-06 2000-07-11 International Business Machines Corporation Computer system and method of displaying update status of linked hypertext documents
US6260040B1 (en) 1998-01-05 2001-07-10 International Business Machines Corporation Shared file system for digital content
WO2000052886A1 (en) 1999-03-02 2000-09-08 Microsoft Corporation Scalable multiparty conferencing and collaboration system and method of dynamically allocating system resources
US6725281B1 (en) 1999-06-11 2004-04-20 Microsoft Corporation Synchronization of controlled device state using state table and eventing in data-driven remote device control model
US6405219B2 (en) 1999-06-22 2002-06-11 F5 Networks, Inc. Method and system for automatically updating the version of a set of files stored on content servers
US6578054B1 (en) 1999-10-04 2003-06-10 Microsoft Corporation Method and system for supporting off-line mode of operation and synchronization using resource state information
CA2397762A1 (en) 2000-01-25 2001-08-02 Autodesk, Inc. Method and apparatus for providing access to and working with architectural drawings on the internet
US6820088B1 (en) 2000-04-10 2004-11-16 Research In Motion Limited System and method for synchronizing data records between multiple databases
US7013316B1 (en) 2000-07-13 2006-03-14 Microsoft Corporation System and method for synchronizing multiple database files
US8117281B2 (en) 2006-11-02 2012-02-14 Addnclick, Inc. Using internet content as a means to establish live social networks by linking internet users to each other who are simultaneously engaged in the same and/or similar content
US20030018719A1 (en) 2000-12-27 2003-01-23 Ruths Derek Augustus Samuel Data-centric collaborative computing platform
US20040058710A1 (en) 2001-05-25 2004-03-25 Timmins Timothy A. Technique for synchronizing data in user devices through an information service
US7761535B2 (en) 2001-09-28 2010-07-20 Siebel Systems, Inc. Method and system for server synchronization with a computing device
JP3876702B2 (ja) 2001-12-11 2007-02-07 ソニー株式会社 サービス提供システム、情報提供装置および方法、情報処理装置および方法、並びにプログラム
US20030112273A1 (en) 2001-12-17 2003-06-19 Workshare Technology, Ltd. Document collaboration suite using a common database
US7972632B2 (en) * 2003-02-28 2011-07-05 Unigen Pharmaceuticals, Inc. Identification of Free-B-Ring flavonoids as potent COX-2 inhibitors
US7328225B1 (en) 2002-03-27 2008-02-05 Swsoft Holdings, Ltd. System, method and computer program product for multi-level file-sharing by concurrent users
US6938042B2 (en) 2002-04-03 2005-08-30 Laplink Software Inc. Peer-to-peer file sharing
US20040021686A1 (en) 2002-07-30 2004-02-05 Barberis Romain P. Method and system for collaborative interaction on a document
US7386531B2 (en) 2002-12-19 2008-06-10 Mathon Systems, Inc. System and method for managing content
US20040199514A1 (en) 2003-04-02 2004-10-07 Ira Rosenblatt Techniques for facilitating item sharing
US7051282B2 (en) 2003-06-13 2006-05-23 Microsoft Corporation Multi-layer graphical user interface
US7640506B2 (en) 2003-06-27 2009-12-29 Microsoft Corporation Method and apparatus for viewing and managing collaboration data from within the context of a shared document
EP1492307A1 (en) * 2003-06-27 2004-12-29 Hewlett-Packard Development Company, L.P. Method and apparatus for automatically determining a presence status
US7512638B2 (en) 2003-08-21 2009-03-31 Microsoft Corporation Systems and methods for providing conflict handling for peer-to-peer synchronization of units of information manageable by a hardware/software interface system
US7401104B2 (en) 2003-08-21 2008-07-15 Microsoft Corporation Systems and methods for synchronizing computer systems through an intermediary file system share or device
US7734690B2 (en) 2003-09-05 2010-06-08 Microsoft Corporation Method and apparatus for providing attributes of a collaboration system in an operating system folder-based file system
EP1692602A4 (en) 2003-10-31 2007-10-24 Landmark Technology Partners I INTELLIGENT CLIENT ARCHITECTURE COMPUTER SYSTEM AND METHOD
US7822711B1 (en) 2003-12-31 2010-10-26 Symantec Operating Corporation Conflict resolution for a distributed file sharing system
US7526768B2 (en) 2004-02-04 2009-04-28 Microsoft Corporation Cross-pollination of multiple sync sources
US7533134B2 (en) 2004-04-01 2009-05-12 Microsoft Corporation Systems and methods for the propagation of conflict resolution to enforce item convergence (i.e., data convergence)
US7496633B2 (en) 2004-04-23 2009-02-24 Yahoo! Inc. System and method facilitating a shared content experience using enhanced messaging including a displayable status indicator
US7437566B2 (en) 2004-05-01 2008-10-14 Microsoft Corporation System and method for identity confirmation of a contact published on a network
WO2005114383A2 (en) * 2004-05-20 2005-12-01 Bea Systems, Inc. Systems and methods for enterprise collaboration
US7603357B1 (en) 2004-06-01 2009-10-13 Adobe Systems Incorporated Collaborative asset management
US7444379B2 (en) * 2004-06-30 2008-10-28 International Business Machines Corporation Method for automatically setting chat status based on user activity in local environment
US7730026B2 (en) 2004-07-01 2010-06-01 Apple Inc. Method and system using reusable state information for synchronization and maintenance of data
WO2006053019A2 (en) 2004-11-08 2006-05-18 Sharpcast, Inc. Method and apparatus for a file sharing and synchronization system
US7584268B2 (en) 2005-02-01 2009-09-01 Google Inc. Collaborative web page authoring
US7752633B1 (en) 2005-03-14 2010-07-06 Seven Networks, Inc. Cross-platform event engine
US7631007B2 (en) 2005-04-12 2009-12-08 Scenera Technologies, Llc System and method for tracking user activity related to network resources using a browser
US7610280B2 (en) 2005-05-05 2009-10-27 Cisco Technology, Inc. Method and system for dynamically pre-positioning content in a network based detecting or predicting user presence
US7523146B2 (en) 2005-06-21 2009-04-21 Apple Inc. Apparatus and method for peer-to-peer N-way synchronization in a decentralized environment
US8495015B2 (en) 2005-06-21 2013-07-23 Apple Inc. Peer-to-peer syncing in a decentralized environment
US7512596B2 (en) 2005-08-01 2009-03-31 Business Objects Americas Processor for fast phrase searching
US8543637B2 (en) 2006-01-18 2013-09-24 At&T Intellectual Property I, L.P. Distributed web publishing
KR100678967B1 (ko) 2006-01-25 2007-02-06 삼성전자주식회사 공유 정보를 기초로 사용자별 연관 관계를 제공하는 장치및 그 방법
GB0610116D0 (en) 2006-05-20 2006-06-28 Ibm A method, apparatus and computer program for collaborative editing of a document
US7912916B2 (en) 2006-06-02 2011-03-22 Google Inc. Resolving conflicts while synchronizing configuration information among multiple clients
US8086698B2 (en) 2006-06-02 2011-12-27 Google Inc. Synchronizing configuration information among multiple clients
WO2007147495A2 (en) 2006-06-21 2007-12-27 Wibu-Systems Ag Method and system for intrusion detection
US20080005235A1 (en) * 2006-06-30 2008-01-03 Microsoft Corporation Collaborative integrated development environment using presence information
US7953785B2 (en) 2006-06-30 2011-05-31 Microsoft Corporation Content synchronization in a file sharing environment
US7558797B2 (en) 2006-06-30 2009-07-07 Microsoft Corporation Metadata structures for mass P2P file sharing
US8041807B2 (en) 2006-11-02 2011-10-18 International Business Machines Corporation Method, system and program product for determining a number of concurrent users accessing a system
US20080147727A1 (en) 2006-12-14 2008-06-19 Nortel Networks Limited Media context information
US7617220B2 (en) 2006-12-21 2009-11-10 Palm, Inc. Sharing access to content items using group information and item information
US8700759B2 (en) 2007-01-19 2014-04-15 International Business Machines Corporation Autonomic optimization of presence server performance
US8205150B2 (en) 2007-01-22 2012-06-19 Cfph, Llc Document changes
US7620659B2 (en) 2007-02-09 2009-11-17 Microsoft Corporation Efficient knowledge representation in data synchronization systems
JP5023736B2 (ja) 2007-02-27 2012-09-12 富士ゼロックス株式会社 端末装置、及びプログラム
US20080222296A1 (en) 2007-03-07 2008-09-11 Lisa Ellen Lippincott Distributed server architecture
US20080244418A1 (en) 2007-03-30 2008-10-02 Microsoft Corporation Distributed multi-party software construction for a collaborative work environment
US7818419B1 (en) * 2007-03-30 2010-10-19 Amazon Technologies, Inc. Monitoring user consumption of content
US7769810B1 (en) 2007-04-26 2010-08-03 Adobe Systems Incorporated Method and system for collaborative editing
US20080307102A1 (en) * 2007-06-08 2008-12-11 Galloway Curtis C Techniques for communicating data between a host device and an intermittently attached mobile device
US8484578B2 (en) 2007-06-29 2013-07-09 Microsoft Corporation Communication between a document editor in-space user interface and a document editor out-space user interface
CN101355524B (zh) 2007-07-24 2013-10-09 华为技术有限公司 一种消息处理方法、系统、服务器和终端
US8954526B2 (en) 2007-09-28 2015-02-10 Xcerion Aktiebolag Network operating system
US20090113412A1 (en) 2007-10-29 2009-04-30 Sap Portals Israel Ltd. Method and apparatus for enhanced synchronization protocol
US8326814B2 (en) 2007-12-05 2012-12-04 Box, Inc. Web-based file management system and service
WO2009096658A1 (en) * 2008-01-31 2009-08-06 Lg Electronics Inc. Method for determining transport block size and signal transmission method using the same
US7917521B2 (en) 2008-03-10 2011-03-29 International Business Machines Corporation User/browser state information sharing between browser applications
US20090249224A1 (en) 2008-03-31 2009-10-01 Microsoft Corporation Simultaneous collaborative review of a document
US9740293B2 (en) 2009-04-02 2017-08-22 Oblong Industries, Inc. Operating environment with gestural control and multiple client devices, displays, and users
US8230348B2 (en) 2008-04-28 2012-07-24 Roger Peters Collaboration software with real-time synchronization
US8352870B2 (en) 2008-04-28 2013-01-08 Microsoft Corporation Conflict resolution
US8387122B2 (en) 2008-05-16 2013-02-26 University Of Washington Access control by testing for shared knowledge
US8521732B2 (en) 2008-05-23 2013-08-27 Solera Networks, Inc. Presentation of an extracted artifact based on an indexing technique
US8301593B2 (en) 2008-06-12 2012-10-30 Gravic, Inc. Mixed mode synchronous and asynchronous replication system
US7962458B2 (en) 2008-06-12 2011-06-14 Gravic, Inc. Method for replicating explicit locks in a data replication engine
US8090681B2 (en) 2008-06-26 2012-01-03 Microsoft Corporation Resolving conflicts in content management systems
GB2464948A (en) 2008-10-29 2010-05-05 Quolos Limited Online collaboration
US20100131868A1 (en) 2008-11-26 2010-05-27 Cisco Technology, Inc. Limitedly sharing application windows in application sharing sessions
US8655840B2 (en) 2008-12-03 2014-02-18 Nokia Corporation Method, apparatus and computer program product for sub-file level synchronization
JP5430164B2 (ja) 2009-01-30 2014-02-26 キヤノン株式会社 データ管理方法及び装置
EP2222106A1 (en) 2009-02-24 2010-08-25 Research In Motion Limited Method and system for registering a presence user with a presence service
FR2942928B1 (fr) 2009-03-03 2011-04-01 Alcatel Lucent Procede et systeme de gestion multicriteres de notifications de presence
JP2010211569A (ja) * 2009-03-11 2010-09-24 Fuji Xerox Co Ltd 評価装置、プログラム及び情報処理システム
JP5428428B2 (ja) 2009-03-18 2014-02-26 株式会社リコー 情報処理装置、システム、方法、プログラムおよび記憶媒体
US8683554B2 (en) 2009-03-27 2014-03-25 Wavemarket, Inc. System and method for managing third party application program access to user information via a native application program interface (API)
US20100257457A1 (en) 2009-04-07 2010-10-07 De Goes John A Real-time content collaboration
US8555177B1 (en) 2009-04-22 2013-10-08 Google, Inc. Real-time interaction during video viewing
US8943408B2 (en) 2009-05-27 2015-01-27 Adobe Systems Incorporated Text image review process
US8825597B1 (en) 2009-08-13 2014-09-02 Dropbox, Inc. Network folder synchronization
US20110055177A1 (en) 2009-08-26 2011-03-03 International Business Machines Corporation Collaborative content retrieval using calendar task lists
US8341224B2 (en) 2010-02-24 2012-12-25 Microsoft Corporation Multi-master text synchronization using deltas
US8572022B2 (en) 2010-03-02 2013-10-29 Microsoft Corporation Automatic synchronization conflict resolution
US9621958B2 (en) 2010-05-05 2017-04-11 Adobe Systems Incorporated Deferred, on-demand loading of user presence within a real-time collaborative service
WO2011147030A1 (en) * 2010-05-27 2011-12-01 Exfo Inc. Multiple-acquisition otdr method and device
WO2012003504A2 (en) 2010-07-02 2012-01-05 Air Computing, Inc. A system and method for cloud file management
JP2012038210A (ja) 2010-08-10 2012-02-23 Sony Corp 情報処理装置、情報処理方法、コンピュータプログラム及びコンテンツ表示システム
US8615552B2 (en) 2010-08-25 2013-12-24 International Business Machines Corporation Sharing cloud data resources with social network associates
US20120101980A1 (en) 2010-10-26 2012-04-26 Microsoft Corporation Synchronizing online document edits
US9009726B2 (en) 2010-12-10 2015-04-14 Microsoft Technology Licensing, Llc Deterministic sharing of data among concurrent tasks using pre-defined deterministic conflict resolution policies
US8468132B1 (en) 2010-12-28 2013-06-18 Amazon Technologies, Inc. Data replication framework
US8868500B2 (en) 2011-01-14 2014-10-21 Apple Inc. Data synchronization
US20120233543A1 (en) 2011-03-08 2012-09-13 Google, Inc. Collaborative Electronic Document Editing
US20120278127A1 (en) 2011-04-28 2012-11-01 Rawllin International Inc. Generating product recommendations based on dynamic product context data and/or social activity data related to a product
US10963584B2 (en) 2011-06-08 2021-03-30 Workshare Ltd. Method and system for collaborative editing of a remotely stored document
US8832284B1 (en) 2011-06-16 2014-09-09 Google Inc. Virtual socializing
US9021113B2 (en) 2011-06-17 2015-04-28 International Business Machines Corporation Inter-service sharing of content between users from different social networks
US9049176B2 (en) 2011-06-22 2015-06-02 Dropbox, Inc. File sharing via link generation
US8533165B2 (en) 2011-07-03 2013-09-10 Microsoft Corporation Conflict resolution via metadata examination
US9652741B2 (en) 2011-07-08 2017-05-16 Box, Inc. Desktop application for access and interaction with workspaces in a cloud-based content management system and synchronization mechanisms thereof
US9177267B2 (en) * 2011-08-31 2015-11-03 Accenture Global Services Limited Extended collaboration event monitoring system
US8682973B2 (en) * 2011-10-05 2014-03-25 Microsoft Corporation Multi-user and multi-device collaboration
US9606972B2 (en) 2011-11-09 2017-03-28 Microsoft Technology Licensing, Llc Document collaboration with collaboration context data
US10482638B2 (en) 2011-11-11 2019-11-19 Microsoft Technology Licensing, Llc Collaborative commenting in a drawing tool
US8990307B2 (en) * 2011-11-16 2015-03-24 Box, Inc. Resource effective incremental updating of a remote client with events which occurred via a cloud-enabled platform
GB2500152A (en) 2011-11-29 2013-09-11 Box Inc Mobile platform file and folder selection functionalities for offline access and synchronization
WO2013102227A1 (en) 2011-12-29 2013-07-04 Vmware, Inc. N-way synchronization of desktop images
US8719225B1 (en) 2012-01-17 2014-05-06 Amazon Technologies, Inc. System and method for log conflict detection and resolution in a data store
US8930312B1 (en) 2012-01-17 2015-01-06 Amazon Technologies, Inc. System and method for splitting a replicated data partition
US8843441B1 (en) 2012-01-17 2014-09-23 Amazon Technologies, Inc. System and method for maintaining a master replica for reads and writes in a data store
US20130185651A1 (en) 2012-01-18 2013-07-18 Microsoft Corporation People presence detection in a multidocument knowledge base
US20130191451A1 (en) * 2012-01-19 2013-07-25 Microsoft Corporation Presence-based Synchronization
US9164997B2 (en) 2012-01-19 2015-10-20 Microsoft Technology Licensing, Llc Recognizing cloud content
KR101295209B1 (ko) 2012-02-01 2013-09-12 엔에이치엔(주) 클라우드 서버와의 양방향 연동을 통해 파일 공유를 제공하는 그룹 메시징 시스템, 방법 및 컴퓨터 판독 가능한 기록 매체
US9286162B2 (en) 2012-02-02 2016-03-15 Netapp, Inc. System and method for guaranteeing consistent data synchronization from a volatile data source
JP2013196233A (ja) * 2012-03-19 2013-09-30 Konica Minolta Inc オブジェクト共有システム及びオブジェクト管理プログラム
US9928226B2 (en) 2012-03-20 2018-03-27 Adobe Systems Incorporated Local authoring and editing of cloud-based electronic content
US9575981B2 (en) 2012-04-11 2017-02-21 Box, Inc. Cloud service enabled to handle a set of files depicted to a user as a single file in a native operating system
US9307006B2 (en) 2012-04-11 2016-04-05 Salesforce.Com, Inc. System and method for synchronizing data objects in a cloud based social networking environment
US9413587B2 (en) 2012-05-02 2016-08-09 Box, Inc. System and method for a third-party application to access content within a cloud-based platform
US8914900B2 (en) 2012-05-23 2014-12-16 Box, Inc. Methods, architectures and security mechanisms for a third-party application to access content in a cloud-based platform
US8886836B2 (en) 2012-06-12 2014-11-11 Facebook, Inc. Providing a multi-column newsfeed of content on a social networking system
CN104737197B (zh) 2012-06-29 2019-12-06 高通股份有限公司 经由共享空间共享用户接口对象
US20150106750A1 (en) 2012-07-12 2015-04-16 Sony Corporation Display control apparatus, display control method, program, and communication system
US9344458B2 (en) 2012-07-16 2016-05-17 eZuce, Inc. Providing unified communications services
US20150101064A1 (en) 2012-07-31 2015-04-09 Sony Corporation Information processing apparatus, information processing method and program
US20140101310A1 (en) 2012-10-04 2014-04-10 Box, Inc. Seamless access, editing, and creation of files in a web interface or mobile interface to a collaborative cloud platform
US10373202B2 (en) 2012-12-05 2019-08-06 Facebook, Inc. Selection of region-specific brand pages based on location information of social networking system users
US10235383B2 (en) 2012-12-19 2019-03-19 Box, Inc. Method and apparatus for synchronization of items with read-only permissions in a cloud-based environment
US9300492B2 (en) 2013-01-14 2016-03-29 Dropbox, Inc. Notification feed across multiple client devices
US9471556B2 (en) 2013-01-30 2016-10-18 Microsoft Technology Licensing, Llc Collaboration using multiple editors or versions of a feature
WO2014121143A1 (en) 2013-02-01 2014-08-07 Parlor Labs, Inc. System and method for assessing reader activity
US10146394B2 (en) 2013-02-21 2018-12-04 Atlassian Pty Ltd Event listening integration in a collaborative electronic information system
CN104008104A (zh) 2013-02-22 2014-08-27 纬创资通股份有限公司 处理文件变更的方法及电子装置
US10318492B2 (en) 2013-02-25 2019-06-11 Amazon Technologies, Inc. Predictive storage service
US9646023B1 (en) 2013-03-13 2017-05-09 Western Digital Technologies, Inc. Devices and methods configured for automated duplication of network shared folders
US8856256B1 (en) 2013-03-13 2014-10-07 CoralTree Inc. System and method for file sharing and updating
US20140280377A1 (en) 2013-03-14 2014-09-18 Scribestar Ltd. Systems and methods for collaborative document review
US20140280603A1 (en) 2013-03-14 2014-09-18 Endemic Mobile Inc. User attention and activity in chat systems
US9565232B2 (en) 2013-05-03 2017-02-07 Dropbox, Inc. Importing content items
US10133720B2 (en) * 2013-06-15 2018-11-20 Microsoft Technology Licensing, Llc Showing presence of multiple authors in a spreadsheet
US9053165B2 (en) 2013-07-08 2015-06-09 Dropbox, Inc. Structured content item synchronization
US20150032686A1 (en) 2013-07-23 2015-01-29 Salesforce.Com, Inc. Application sharing functionality in an information networking environment
US9773010B1 (en) 2013-07-24 2017-09-26 Veritas Technologies Llc Information-driven file system navigation
US9432457B2 (en) 2013-08-30 2016-08-30 Citrix Systems, Inc. Redirecting local storage to cloud storage
US9338242B1 (en) 2013-09-09 2016-05-10 Amazon Technologies, Inc. Processes for generating content sharing recommendations
US9704137B2 (en) 2013-09-13 2017-07-11 Box, Inc. Simultaneous editing/accessing of content by collaborator invitation through a web-based or mobile application to a cloud-based collaboration platform
US10866931B2 (en) 2013-10-22 2020-12-15 Box, Inc. Desktop application for accessing a cloud collaboration platform
US9614880B1 (en) 2013-11-12 2017-04-04 Google Inc. Methods for real-time notifications in an activity stream
US20150142765A1 (en) 2013-11-17 2015-05-21 Zhen-Chao HONG System and method for enabling remote file access via a reference file stored at a local device that references the content of the file
US9832237B2 (en) 2013-11-27 2017-11-28 Getgo, Inc. Collaborative online document editing
KR101591462B1 (ko) 2013-12-13 2016-02-18 신정호 온라인 아이디어 회의 제공방법
CN104488199B (zh) 2014-03-17 2016-11-02 华为终端有限公司 一种终端间同步内容的方法和终端
US20150261411A1 (en) 2014-03-17 2015-09-17 Microsoft Corporation Displaying collaboration icons for collaboration states
US9898520B2 (en) 2014-03-25 2018-02-20 Open Text Sa Ulc Systems and methods for seamless access to remotely managed documents using synchronization of locally stored documents
US20150281869A1 (en) 2014-03-31 2015-10-01 Google Inc. Native web-based application
US10091287B2 (en) 2014-04-08 2018-10-02 Dropbox, Inc. Determining presence in an application accessing shared and synchronized content
US10171579B2 (en) 2014-04-08 2019-01-01 Dropbox, Inc. Managing presence among devices accessing shared and synchronized content
US10270871B2 (en) 2014-04-08 2019-04-23 Dropbox, Inc. Browser display of native application presence and interaction data
US9998555B2 (en) 2014-04-08 2018-06-12 Dropbox, Inc. Displaying presence in an application accessing shared and synchronized content
EP3161663A1 (en) 2014-06-24 2017-05-03 Google, Inc. Systems and methods for managing suggested edits in a collaborative document editing environment
WO2016036288A1 (en) 2014-09-02 2016-03-10 Telefonaktiebolaget L M Ericsson (Publ) A method, cloud synchronization function means and file system for handling files and directories in a cloud storage service
US9792452B2 (en) 2014-09-12 2017-10-17 Anthony Tan Pervasive intermediate network attached storage application
US20180113862A1 (en) 2014-12-29 2018-04-26 Workshare, Ltd. Method and System for Electronic Document Version Tracking and Comparison
US9846528B2 (en) 2015-03-02 2017-12-19 Dropbox, Inc. Native application collaboration
US10997188B2 (en) 2015-03-23 2021-05-04 Dropbox, Inc. Commenting in shared folder backed integrated workspaces
US10356157B2 (en) 2015-04-16 2019-07-16 Google Llc Systems and methods for notifying users of changes to files in cloud-based file-storage systems

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003157225A (ja) * 2002-07-25 2003-05-30 Fujitsu Hokuriku Systems:Kk サーバ
US20130212250A1 (en) * 2009-05-26 2013-08-15 Adobe Systems Incorporated User presence data for web-based document collaboration
JP2012150647A (ja) * 2011-01-19 2012-08-09 Konica Minolta Business Technologies Inc 文書データ処理装置、文書データ処理システムおよびコンピュータプログラム
JP2012209614A (ja) * 2011-03-29 2012-10-25 Brother Ind Ltd 会議システム、会議端末、および会議プログラム
JP2014095960A (ja) * 2012-11-08 2014-05-22 Fujitsu Ltd 文書編集通知方法,そのサーバ,プログラム及びシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition

Also Published As

Publication number Publication date
AU2015246020B2 (en) 2019-09-19
US20190394270A1 (en) 2019-12-26
AU2019257465A1 (en) 2019-11-21
JP2020187759A (ja) 2020-11-19
EP3129882A1 (en) 2017-02-15
US10440110B2 (en) 2019-10-08
WO2015155693A1 (en) 2015-10-15
JP2017514201A (ja) 2017-06-01
US20190089783A1 (en) 2019-03-21
JP6727373B2 (ja) 2020-07-22
JP6518261B2 (ja) 2019-05-22
US10171579B2 (en) 2019-01-01
US20150288757A1 (en) 2015-10-08
JP6980062B2 (ja) 2021-12-15
US10887388B2 (en) 2021-01-05
AU2015246020A1 (en) 2016-09-08
AU2019257465B2 (en) 2021-07-01

Similar Documents

Publication Publication Date Title
JP6725715B2 (ja) 共有され同期されたコンテンツにアクセスするアプリケーションにおいてプレゼンスを判定すること
JP6785920B2 (ja) ネイティブアプリケーションプレゼンスとインタラクションデータのブラウザ表示
JP6793766B2 (ja) 共有され同期されたコンテンツにアクセスするアプリケーションにおいてプレゼンスを表示すること
JP6980062B2 (ja) 共有され同期されたコンテンツにアクセスする装置間でプレゼンスを管理すること
US11526260B2 (en) Native application collaboration

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190520

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190520

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200526

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200601

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200630

R150 Certificate of patent or registration of utility model

Ref document number: 6727373

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250