(57)【要約】存在ベースの同期は、コラボレーション環境の共有文書内における各コラボレーターの存在情報に基づいて、同時コラボレーター間の更新を管理する。共有文書のページに対するコラボレーターの編集を、他のコラボレーターが同じページにアクセスしているときには、より頻繁に同期させることができる。対照的に、共有文書のページに対するコラボレーターの編集は、他のコラボレーターがそのページにアクセスしていないときには、少ない頻度で同期させることができる。更に、共有文書におけるコラボレーターの存在の態様(manner)が、同期率に影響を及ぼすこともできる。オンライン・ミーティング内におけるコラボレーション・ユーザーは、他のユーザーとアクティブにコラボレートしていない１人のユーザーよりも頻繁に同期することができる。一実現例では、共有文書における他の保守活動（例えば、ガベージ・コレクション）が、コラボレーション環境内におけるコラボレーターの存在情報によって影響を受けることもできる。【選択図】図４
2015513713.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
共有文書の少なくとも２人の同時コラボレーター間における更新通信頻度を決定する動作であって、前記更新通信頻度が、前記少なくとも２人の同時コラボレーターの存在情報に基づく、動作と、
前記決定した更新通信頻度にしたがって、前記同時コラボレーターの内少なくとも１人と更新通信を通信する動作であって、各更新通信が、前記同時コラボレーターの内少なくとも１人について前記コラボレーション環境における存在情報を示す、動作と、
を含む、方法。
【請求項２】
請求項１記載の方法において、前記少なくとも２人の同時コラボレーターの存在情報が存在条件を満たすとき、前記少なくとも２人の同時コラボレーター間における存在情報が、前記存在条件を満たさないときとは異なる更新通信頻度となる、方法。
【請求項３】
請求項１記載の方法において、前記決定する動作が、
存在情報が、前記少なくとも２人の同時コラボレーターが前記共有文書における同じページにいることを示す場合、前記少なくとも２人の同時コラボレーターが前記共有文書の異なるページにいる場合よりも高い更新通信頻度を決定する動作を含む、方法。
【請求項４】
請求項１記載の方法において、前記少なくとも２人の同時コラボレーターの存在情報が、前記共有文書内における前記少なくとも２人の同時コラボレーターの行動またはステータスの内少なくとも１つを示す、方法。
【請求項５】
システムであって、
共有文書の同時コラボレーター間における共有文書の編集を同期させるための更新通信を、前記同時コラボレーターについての存在情報に基づいて、異なる更新通信頻度で通信するように構成された同期サービス・コントローラーを含む、システム。
【請求項６】
請求項５記載のシステムにおいて、前記同期サービス・コントローラーが、更に、存在条件を満たす相対的存在情報を有する前記少なくとも２人のコラボレーター間において、前記存在条件を満たさない相対的存在情報を有する少なくとも２人の同時コラボレーター間における更新通信頻度と比較して、より高い更新通信頻度を決定するように構成される、システム。
【請求項７】
請求項５記載のシステムにおいて、前記少なくとも２人の同時コラボレーターの存在情報が、前記共有文書内における前記少なくとも２人の同時コラボレーターによるアクセスの相対的位置を示す、システム。
【請求項８】
請求項５記載のシステムにおいて、前記少なくとも２人の同時コラボレーターの存在情報が、前記共有文書内における前記少なくとも２人の同時コラボレーターの活動を示す、システム。
【請求項９】
請求項５記載のシステムであって、更に、
前記少なくとも２人の同時コラボレーター間における相対的存在条件を評価するように構成された存在評価器を含む、システム。
【請求項１０】
コンピューター・システムにおいてコンピューター・プロセスを実行するためのコンピューター実行可能命令をエンコードした１つ以上のコンピューター読み取り可能記憶媒体であって、前記コンピューター・プロセスが、
共有文書の同時コラボレーター間における共有文書の編集を、前記同時コラボレーターについての存在情報に基づいて、異なる更新通信頻度で同期させるために更新通信を通信する動作を含む、１つ以上のコンピューター読み取り可能記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]  オンライン・コラボレーション・ツール(online collaboration tool)は、コラボレーション環境内における他のユーザーのステータスまたは「存在」(presence)についてユーザーに知らせることができることが多い。例えば、インスタント・メッセージング・ツールは、他のユーザーがログインしているか、コラボレーション環境内で他の誰かとのオンライン通信にアクティブに関与しているか、長時間にわたって彼または彼女のコンピューターにおいてインアクティブになっているか否か示すことができる。このような「存在」の指示は、１人のユーザーが、他のユーザーがオンライン通信に参加可能か(available)否か知ることを可能にするときに役に立つことができる。
【発明の概要】
【０００２】
[0002]  更に、オンライン・コラボレーション・ツールには、複数のユーザーが共有文書を同時に編集することを可能にするものもある。環境の中には、例えば、共有文書が、開発グループのプロジェクトに関する全ての情報の非常に大きなデーター・レポジトリを表すこともある。このようなオンライン・コラボレーション・ツールは、複数のユーザー間において編集活動を同期させることができる。しかしながら、このような同期は、「十分リアル・タイム」な(real-time-enough)コラボレーション体験を達成し損ねる可能性がある（例えば、ユーザーが、共有文書における他のユーザーによる編集が、同期されるのが遅すぎると判断する）。あるいは、このような同期は、必要なよりもまたは望ましいよりも多くのネットワーク活動をコラボレーション環境において生成する可能性がある（例えば、ネットワークおよびサーバーの負荷に重大な影響を及ぼし、コラボレーション環境内における流れ(currency)の意味を損なう可能性がある。
【０００３】
[0003]  本明細書において説明し特許請求する実現例は、コラボレーション環境の共有文書内における各コラボレーター(collaborator)の存在情報に基づいて、同時コラボレーター間で更新を同期させることによって、以上の問題に取り組む。共有文書のページに対するコラボレーターの編集を、他のコラボレーターが同じページにアクセスしているときには、より頻繁に同期させることができる。対照的に、共有文書のページに対するコラボレーターの編集は、他のコラボレーターがそのページにアクセスしていないときには、少ない頻度で同期させることができる。更に、共有文書におけるコラボレーターの存在の態様(manner)が、同期率(synchronization rate)に影響を及ぼすこともできる。オンライン・ミーティング内におけるコラボレート・ユーザーは、他のユーザーとアクティブにコラボレートしていない１人のユーザーよりも頻繁に同期することができる。一実現例では、共有文書における他の保守活動（例えば、ガベージ・コレクション）が、コラボレーション環境内におけるコラボレーターの存在情報によって影響を受けることもできる。
【０００４】
[0004]  他の実現例についても本明細書において説明し特許請求の範囲に記載する。
【図面の簡単な説明】
【０００５】
【図１】図１は、存在ベースの同期を提供するコラボレーション環境の一例を示す。
【図２】図２は、存在ベースの同期を提供するコラボレーション環境の一例からのスクリーンショットを示す。
【図３】図３は、基準同期率で存在ベースの同期を提供するコラボレーション環境の一例を示す。
【図４】図４は、種々の同期率で存在ベースの同期を提供するコラボレーション環境の一例を示す。
【図５】図５は、存在ベースの同期について単一ユーザー・モードと多ユーザー・モードとの間で判定を行う動作の一例を示す。
【図６】図６は、存在ベースの同期に対して多ユーザー・モードを実行し、標準同期モードから高速同期モードに移る動作の一例を示す。
【図７】図７は、存在ベースの同期に対して多ユーザー・モードを実行し、高速同期モードから標準同期モードに移る動作の一例を示す。
【図８】図８は、本明細書において説明する技術を実現するときに有用であると考えられるシステムの一例を示す。
【発明を実施するための形態】
【０００６】
[0013]  図１は、存在ベースの同期を提供するコラボレーション環境の一例１００を示す。コラボレーション環境１００は、コラボレーション・サーバー１０４、複数のクライアント・デバイス１０６、１０８、１１０等、およびデーターストア１１２を通信可能に結合する通信ネットワーク１０２を含む。データーストア１１２は、コラボレーション環境１００内部においてアクセス可能な共有文書を格納し、これに対するアクセスは、コラボレーション・サーバー１０４によって管理される。コラボレーター（例えば、共有文書１１４に同時にアクセスするユーザー）は、クライアント・デバイス１０６、１０８、および１１０を使用して、コラボレーション・サーバー１０４を介して、データーストア１２２に格納された共有文書にアクセスする。この接続を介して、ユーザーは共有文書１１４内において他のユーザーとコラボレートする(collaborate)ことができる。共有文書１１４は、１つの文書ファイル、または種々のレベルの再分割（例えば、ノート、副文書、章、ページ、節、章等）がある文書ファイルの集合体であってもよい。一実現例では、例えば、共有文書１１４は、特定のプロジェクトに関する情報の大きな集合体を含むことができ、人事データー、要求仕様、機能仕様、設計仕様、発表予定、オンライン議論記録、電子メール、プロジェクト計画、青写真、ソース・コード、アートワーク、メモ等を含む。したがって、共有文書は、１つの文書ファイルに限定される必要はない。
【０００７】
[0014]  コラボレーション環境１００では、コラボレーターのクライアント・デバイスが、コラボレーション環境１００内部における他のコラボレーターの相対的存在情報に基づいて決定される頻度で、共有文書１１４へのアクセスを反映する更新通信を供給および受信する。例えば、コラボレーターが共有文書１１４の同じページ１１６に同時にアクセスしている場合、他のページにおける他のコラボレーターよりも、そのページにおける他のコラボレーターと高い頻度で同期させることができる。このように、同じページにおけるコラボレーターは、そのページにおける他のコラボレーターによる編集の迅速な同期を体験し、これらの編集が非常に速くまたはリアル・タイムでそのページ上に現れるようにする。対照的に、同じページ１１６上にいないコラボレーターは、彼らがそのページにナビゲートするまで、そのページに対する編集を見ないであろう。したがって、そのページの編集は、これらの「離れた」コラボレーターに対しては低い頻度で同期させることができ、これによってコラボレーション環境１００内における平均同期トラフィックを低減する。
【０００８】
[0015]  更新通信は、コラボレーション環境１００内におけるユーザー・存在情報の指示を供給する。この指示は、限定ではなく、ユーザーの行動、ユーザーのステータス、編集行為、アクティブ／インアクティブ・ステータスまたは他のステータス・インディケータ（例えば、暗示的または明示的なステータス）、共有文書内の位置、アクティブな編集の頻度、ユーザーがオンライン・ミーティングに出ているか否か、コラボレーターが通信している他のユーザーの識別、ユーザーがコラボレーション環境内でアクティブか否かまたはユーザーが背景において実行しているコラボレーション環境を有するか否か、地理的位置（ＧＰＳ）データー、ユーザーの識別（連合識別）等を含む。
【０００９】
[0016]  図２は、存在ベースの同期を提供するコラボレーション環境の一例からのスクリーンショット２００を示す。 スクリーンショット２００におけるコールアウト(callout)２０２は、アイコン２０３の上でホバリングするかまたはアイコン２０３を選択することによって表示される。コールアウト２０２は、「仕様議論」と呼ばれる共有文書、更に具体的には、「プロジェクト・ノート」と呼ばれるノート内におけるコラボレーターの名前を表示し、１１人が「プロジェクト・ノート」ノートにいて、６人がプロジェクト・ノートの設計／アイスド・フュージョン・ページ(Iced Fusion page)というページにいる。左サイドバーに沿ったリスト２０４は、共有文書内において利用可能な複数のノートを示す。スクリーンショット２００の上辺に沿ったタブは、このノート内にある種々の章を示す。右サイドバーに沿ったリスト２０８は、ノート内にある複数のページを示し、現在のページ２１０がサイドバーにおいて強調される。
【００１０】
[0017]  「プロジェクト・ノート」ノートにアクセスしている１１人のコラボレーターの内、その中の６人が、スクリーンショットに表示された現在のページにアクセスしている。同じページにおける存在は、他のページにいるコラボレーターよりも、コラボレーター間において一層アクティブなコラボレーション活動を示唆することができ、したがってこれら６人のコラボレーターは、他のページに現在存在する他の５人のコラボレーターよりも頻繁に互いに同期する。
【００１１】
[0018]  図３は、基準同期率で存在ベースの同期を提供するコラボレーション環境の一例３００を示す。コラボレーター３０２は、共有文書３０４に同時にアクセスしている。ニコルおよびジェーンは、ページ１００に同時にアクセスしており、一方スコットはページ１０２にアクセスしており、アレックス、デビット、ダニエル、ならびにその他はページ７８９にアクセスしている。他のコラボレーター（図示せず）も、共有文書３０４にアクセスしていてもよい。１人のコラボレーターだけが現在共有文書３０４にアクセスしているのであったら、存在ベースの同期は単一ユーザー・モードになるであろう。しかしながら、複数のコラボレーターが同時に共有文書３０４にアクセスしているので、共有文書３０４内部の種々の位置においてではあるが、存在ベースの同期動作は、多ユーザー・モードになる。
【００１２】
[0019]  多ユーザー・モードにおいて、他のコラボレーターが同時にアクセスしていないページ（即ち、ページ１０２）にスコットがアクセスすると、スコットのそのページに対するアクセス動作（例えば、編集）が、基準更新通信頻度で、コラボレーション・サーバー３０６に更新される。したがって、スコットのクライアント・デバイスは、矢印３０８で示される基準更新通信頻度で彼の編集を記述する更新通信を送る。同様に、共有文書３０４内における他のページ上での他のコラボレーターによる編集更新（図示せず）をスコットが受信することも、基準更新通信頻度でスケジューリングされる。尚、コラボレーション・サーバー３０６へおよびからの基準更新頻度は、コラボレーション環境３００の構成に依存して異なるのでもよいことは、理解されてしかるべきである。
【００１３】
[0020]  図３に示すように、他のコラボレーターも基準更新通信頻度でスコットの編集更新を受信する（矢印３１０、３１２、３１４、３１６、および３１８で示すように）。何故なら、これらのコラボレーターはスコットと同じページ（ページ１０２）上に存在しない、即ち、アクセスしていないからである。尚、基準更新頻度は、サーバーへなのかサーバーからなのかには関係なく、ユーザー毎にカスタム化できることは理解されてしかるべきである。
【００１４】
[0021]  一実現例では、コラボレーション・サーバー３０６が他のメタデーター・データーストア３２０を含むか、またはこれにアクセスすることができる。メタデーター・データーストア３２０は、コラボレーター毎に文書または文書再分割毎に著者メタデーター（限定ではなく、位置データー、活動ステータス、通信能力データー等を含む）を格納することができる。位置データーは、共有文書内におけるコラボレーターによるアクセスの場所を示すことができる。活動ステータスは、コラボレーターが、文書を背景プロセスにおいて開いたままにしているのではなく、アクティブに共有文書にアクセスしているか否かを示す。通信能力データーは、コラボレーション・サーバーとクライアント・デバイスとの間で利用可能な通信帯域幅を示すことができる。他の著者メタデーターも採用することができる。
【００１５】
[0022]  存在評価器３２２は、存在条件が、現在のコラボレーターに対する１人以上の他のコラボレーターによって満たされているか否か判断する。基準同期モード・コントローラー３２４は、基準同期モード中における同時コラボレーターのクライアント・デバイスとの更新通信を管理し、高同期モード・コントローラー３２６は、高同期モード中における同時コラボレーターのクライアント・デバイスとの更新通信を管理する。同期サービス・コントローラー３２８は、基準同期モードかまたは高同期モードかには関係なく、更新通信の受信および送信を扱う。
【００１６】
[0023]  尚、図３は存在評価器３２２、基準同期モード・コントローラー３２４、高同期モード・コントローラー３２６、および同期サービス・コントローラー３２８を、コラボレーション・サーバー３０６のコンポーネントとして示すが、これらのコンポーネントの内１つ以上がクライアント・デバイスの１つ以上に分散されてもよいことは理解されてしかるべきである。例えば、コラボレーション・サーバー３０６は、スマートフォン・クライアント・デバイスのためにこれらのコンポーネントを実行することができ、一方他のコラボレーターのクライアント・ワークステーションは、コラボレーション環境３００内部においてこれらのコンポーネントを実行することができる。
【００１７】
[0024]  図４は、種々の同期率で存在ベースの同期を提供するコラボレーション環境の一例を示す。コラボレーター４０２が共有文書４０４に同時にアクセスしている。図３と同様、ニコルおよびジェーンは同時にページ１００にアクセスしており、一方スコットはページ１０２にアクセスしており、アレックス、デビッド、ダニエル、およびその他はページ７８９にアクセスしている。他のコラボレーター（図示せず）も、共有文書４０４にアクセスしていてもよい。複数のコラボレーターが共有文書４０４に同時にアクセスしているので、共有文書４０４内の種々の場所ではあるが、存在ベースの同期動作は多ユーザー・モードになる。
【００１８】
[0025]  多ユーザー・モード内では、ダニエルが他のコラボレーター（例えば、デビッドおよびアレックス）によって現在アクセスされているページ（即ち、ページ７８９）にアクセスすると、そのページに対するダニエルの編集が、高更新通信頻度でコラボレーション・サーバー４０６に更新される。したがって、ダニエルのクライアント・デバイスは、彼の編集を記述する更新通信を、矢印４１８）によって示されるコラボレーション更新通信頻度で送る。同様に、共有文書４０４内の同じページ上における他のコラボレーター（例えば、デビッドおよびアレックス）による編集更新（図示せず）をダニエルが受信することも、矢印４１４および４１６によって示されるように、コラボレーション更新通信頻度でスケジューリングされる。尚、コラボレーション・サーバー４０６へのおよびからのコラボレーション更新頻度は、コラボレーション環境４００の構成に依存して異なってもよいことは理解されてしかるべきである。加えて、ダニエルは、基準更新通信頻度（または、共有文書４０４内におけるダニエルのこれら他のコラボレーターに対する相対的な存在に依存する何らかの他の更新頻度）で、共有文書４０４内の他のページ上でも他のコラボレーターからの更新を受信することもできる。
【００１９】
[0026]  図４に示すように、他のコラボレーターも、他の各コラボレーターのダニエルに対する相対的な存在に依存する更新通信頻度（矢印４０８、４１０、および４１２で示すように）でスコットの編集更新を受信する。これらのコラボレーターはスコットと同じページ（ページ１０２）にいるのでもこのページにアクセスしているのでもないので、一実現例では、これらのコラボレーターは、ダニエルのアクセスに関する更新通信を、デビッドおよびアレックスよりも低い率で受信する（例えば、基準更新通信頻度）。尚、基準更新頻度は、サーバーへかサーバーからかには関係なく、矢印４０８および４１０に対する異なる矢印の種類によって示されるように、ユーザー毎にカスタム化できることは理解されてしかるべきである。
【００２０】
[0027]  一実現例では、コラボレーション・サーバー４０６が著者メタデーター・データーストア４２０を含むか、またはこれにアクセスすることができる。著者メタデーター・データーストア４２０は、コラボレーター毎に、文書毎または文書再分割毎に著者メタデーターを格納することができる（限定ではなく、位置データー、活動ステータス、通信能力データー等）。存在評価器４２２は、存在条件が、現在のコラボレーターに対する１人以上の他のコラボレーターによって満たされるか否か判断する。基準同期モード・コントローラー４２４は、基準同期モード中における同時コラボレーターのクライアント・デバイスとの更新通信を管理し、高同期モード・コントローラー４２６は、高同期モード中における同期コラボレーターのクライアント・デバイスとの更新通信を管理する。同期サービス・コントローラー４２８は、基準同期モードか高同期モードかには関係なく、更新通信の受信および送信を扱う。
【００２１】
[0028]  尚、図４は存在評価器４２２、基準同期モード・コントローラー４２４、高同期モード・コントローラー４２６、および同期サービス・コントローラー４２８をコラボレーション・サーバー４０６のコンポーネントとして示すが、これらのコンポーネントの内１つ以上がクライアント・デバイスの１つ以上に分散されてもよいことは理解されてしかるべきである。例えば、コラボレーション・サーバー４０６は、スマートフォン・クライアント・デバイスのためにこれらのコンポーネントを実行することができ、一方他のコラボレーターのクライアント・ワークステーションは、コラボレーション環境４００内部においてこれらのコンポーネントを実行することができる。
【００２２】
[0029]  図５は、存在ベースの同期について単一ユーザー・モードと多ユーザー・モードとの間で判定を行う動作５００の一例を示す。あるコラボレーターが共有（または共有可能）文書に存在する唯一のコラボレーターである場合、コラボレーション環境は単一ユーザー・モードに留まることができる。一実現例では、単一ユーザー・モードは１人のコラボレーターのアクセス動作をキャッシュするか、あるいは基準以下の更新通信頻度を採用することができる。例えば、単一ユーザー・モードは、他のユーザーが共有文書に来るまで、１人のコラボレーターが共有文書をセーブするまたは終了するまで、あるいは他の条件が満たされるまで、コラボレーション・サーバーへの更新通信を遅らせることができる。
【００２３】
[0030]  ナビゲーション動作５０２は、共有文書内のアクセス位置までコラボレーターをナビゲートする。例えば、コラボレーターがコラボレーション環境内で文書を開き、共有文書のノートにおけるページまでナビゲートして、そのページ内のテキストまたは他のオブジェクトを読み取りまたは書き込む（例えば、編集する）ことができる。文書にアクセスすることの一部として、施錠動作(locking operation)５０４が共有文書内の共通オブジェクトに共有施錠を得る。一実現例では、コラボレーターは、施錠動作５０４の一部として、共有文書に関連する著者メタデーターに著者エントリーを追加する。
【００２４】
[0031]  存在動作５０６は、他のコラボレーターが共有文書内に存在するか否か判断する。共有文書内に他のコラボレーターがいない場合、判断動作５０８は、共有文書内における他のコラボレーターの存在を周期的に再チェックする処理を行わせる。判断動作５０８が、他のユーザーが共有文書内に存在すると判断した場合、多ユーザー動作５１０は多ユーザー同期モードに入る。
【００２５】
[0032]  図６は、存在ベースの同期に対して多ユーザー・モードを実行し、標準同期モードから高速同期モードに移る動作の一例を示す。著者動作６０２が、共有文書にアクセスし、この共有文書に関連する著者メタデーター構造に書き込む。各コラボレーターが共有文書内において位置を変更するに連れて、著者動作６０２は正しい存在情報を反映するために、共有文書内における現在のコラボレーターの位置を含む、著者メタデーターを更新する。一実現例では、著者メタデーター構造は、コラボレーション・サーバーによってアクセス可能なデーターストアに格納され、共有文書と関連付けられる。著者メタデーター構造は、以下で示すメタデーター・アクセス・メソッド例によってアクセスすることができるが、代わりにＡＰＩを採用してもよい。
【００２６】
【表１】
2015513713.tif 000003
【００２７】
[0033]  フェッチング動作６０４は、共有文書内における他のコラボレーターの著者メタデーターを読み出す。位置検出動作６０６は、著者メタデーターに基づいて、共有文書内におけるこのようなコラボレーターの位置を判定する。判断動作６０８は、存在条件を評価して、１人以上の他のコラボレーターが、共有文書（例えば、同じページ上）内における現在のコラボレーターに対する存在条件を満たすと判断した場合、存在ベースの同期はコラボレーション動作６１０において高同期モードを実行する。そうでない場合、存在ベースの同期は、基準動作６１２において基準同期モードを実行する。
【００２８】
[0034]  一実現例では、基準同期頻度（即ち、更新通信頻度）は、所定のデーターに基づくことができ、または共有環境状態にアルゴリズム的に基づくことができる。同様に、高同期頻度（即ち、他の更新通信頻度）は、所定のデーター（例えば、高同期モード・コントローラーによってアクセス可能な更新通信頻度の表）に基づいて設定する、またはアルゴリズム的に設定することができる。一実現例では、高同期頻度は、共有文書内のコラボレーター数、被監視期間内における更新通信の回数、ネットワークにおけるトラフィック輻輳等に基づいて計算することができる。
【００２９】
[0035]  尚、存在条件は、様々な形態を成すことができ、近接条件に限定される必要はないことは理解されてしかるべきである。一実現例では、存在条件は、他のコラボレーターが、現在のコラボレーターと同じページにアクセスしているか否か検査する。しかしながら、他の実現例では、存在条件は、限定ではなく、以下を含む他の条件に関係する。（１）他のコラボレーターが同じページを読んでいるまたは書き込んでいるか否か。（２）他のコラボレーターが同じパラグラフ、文章、文書の章、画像、ビデオ等にアクセスしているか否か。（３）他のコラボレーターが共有文書内においてアクティブかまたはインアクティブか。（４）共有文書において現在のコラボレーターから論理「距離」以内に他のコラボレーターがいるか否か等。また、存在条件は、これら種々の条件の組み合わせであってもよい。
【００３０】
[0036]  一実現例では、基準および高同期モード間の差は、基準同期モードの更新通信頻度が、高同期モードの更新通信頻度よりも低いことである。しかしながら、他の実現例では、存在状態が、高同期モードにおける更新通信頻度が、基準同期モードにおけるよりも低いことを示唆するのでもよい（例えば、存在条件が、他のコラボレーターが同じページに存在するがこのコラボレーターが他のアプリケーションにおいてアクティブであり、共有文書へのアクセスが背景において実行されているようなとき）。更に他の実現例では、高同期モードが、１回の更新通信において伝えられるデーター量を増減することもできる。例えば、複数のコラボレーターが共有文書の同じページに存在しアクティブにこのページを編集しているとき、更新通信のシーケンスは、テキスト編集、省略または遅延フォーマット編集のみを伝えることもできる。
【００３１】
[0037]  更に、既に説明したように、高同期モードが、コラボレーターからおよび／またはコラボレーターへの更新通信の同期行動を調節することもできる。例えば、更新頻度は、アクティブに編集しているコラボレーターからであれば増大させることができるが、このコラボレーターが他のコラボレーターから受信する更新は増大させない。
【００３２】
[0038]  更に他の実現例では、高同期モードが他のコラボレーション動作の頻度に影響を及ぼすのでもよい。例えば、ガベージ・コレクションのようなある種の保守動作は、コラボレーターが基準同期モードまたは高同期モードのどちらで同期されているかを含む、存在情報に基づいて、個々のコラボレーターに対してはより多いまたは少ない頻度でスケジューリングすることができる。したがって、ネットワークおよびＣＰＵ負荷は、維持動作を遅らせるが、ネットワークにわたってアクセス動作をより高い率で同期させることによって、バランスを取ることができる。
【００３３】
[0039]  図７は、存在ベースの同期に対して多ユーザー・モードを実行し、高速同期モードから標準同期モードに移る動作の一例７００を示す。著者動作７０２は、共有文書にアクセスし、この共有文書に関連する著者メタデーター構造に書き込む。一実現例では、著者メタデーター構造は、コラボレーション・サーバーによってアクセス可能なデーターストアに格納され、共有文書と関連付けられる。
【００３４】
[0040]  フェッチング動作７０４は、共有文書内における他のコラボレーターの著者メタデーターを読み出す。位置検出動作７０６は、著者メタデーターに基づいて、共有文書内におけるこのようなコラボレーターの位置を判定する。判断動作６０８が、存在条件を評価して、１人以上の他のコラボレーターが、共有文書（例えば、同じページ上）内における現在のコラボレーターに対する存在条件を満たすと判断した場合、存在ベースの同期はコラボレーション動作７１２において高同期モードを実行する。そうでない場合、存在ベースの同期は、基準動作７１０において基準同期モードを実行する。
【００３５】
[0041]  図８は、本明細書において説明した技術を実現するときに有用であると考えられるシステムの一例を示す。図８は、説明した技術を実現するときに有用であると考えられるシステムの一例を示す。説明した技術を実現するための図８のハードウェアおよび動作環境例は、ゲーミング・コンソールまたはコンピューター２０の形態とした汎用計算デバイスのような計算デバイス、移動体電話機、パーソナル・データー・アシスタント（ＰＤＡ）、セット・トップ・ボックス、または他のタイプの計算デバイスを含む。例えば、図８の実現例では、コンピューター２０は、処理ユニット２１、システム・メモリー２２、およびシステム・メモリーから処理ユニット２１までを含む種々のシステム・コンポーネントを動作的に結合するシステム・バス２３を含む。コンピューター２０のプロセッサーが１つの中央処理ユニット（ＣＰＵ）または並列処理環境と一般に呼ばれる複数の処理ユニットを含むように、１つのみまたは１つよりも多い処理ユニット２１があってもよい。コンピューター２０は、通常のコンピューター、分散型コンピューター、または任意の他のタイプのコンピューターであってもよく、本発明はこれに限定されない。
【００３６】
[0042]  システム・バス２３は、メモリー・バスまたはメモリー・コントローラー、周辺バス、切り替えファブリック（switched fabric)、二点間接続、および種々のバス構造の内任意のものを使用するローカル・バスを含む、様々なタイプのバス構造の内任意のものでよい。また、システム・メモリーは、単にメモリーと呼ばれてもよく、リード・オンリー・メモリー（ＲＯＭ）２４およびランダム・アクセス・メモリー（ＲＡＭ）２５を含む。起動中におけるように、コンピューター２０内部のエレメント間で情報を移すのに役立つ基本ルーチンを含む基本入力／出力システム（ＢＩＯＳ）２６が、ＲＯＭ２４に格納される。更に、コンピューター２０は、図示しないハード・ディスクに対する読み出しおよび書き込みを行うハード・ディスク・ドライブ２７、リムーバブル磁気ディスク２９に対する読み出しおよび書き込みを行う磁気ディスク・ドライブ２８、ならびにＣＤ  ＲＯＭ、ＤＶＤ、または他の光媒体のようなリムーバブル光ディスク３１に対する読み出しおよび書き込みを行う光ディスク・ドライブ３０も含む。
【００３７】
[0043]  ハード・ディスク・ドライブ２７、磁気ディスク・ドライブ２８、および光ディスク・ドライブ３０は、それぞれ、ハード・ディスク・ドライブ・インターフェース３２、磁気ディスク・ドライブ・インターフェース３３、および光ディスク・ドライブ・インターフェース３４によって、システム・バス２３に接続される。これらのドライブおよび付随する記憶媒体は、コンピューター読み取り可能命令、データー構造、プログラム・エンジン、およびコンピューター２０の他のデーターの不揮発性記憶を設ける。尚、磁気カセット、フラッシュ・メモリー・カード、ディジタル・ビデオ・ディスク、ランダム・アクセス・メモリー（ＲＡＭ）、リード・オンリー・メモリー（ＲＯＭ）等のような、コンピューターによってアクセス可能なデーターを格納することができる任意のタイプのコンピューター読み取り可能記憶媒体が、この動作環境例において使用されてもよいことは、当業者には認められよう。
【００３８】
[0044]  複数のプログラム・エンジンが、ハード・ディスク、磁気ディスク２９、光ディスク３１、ＲＯＭ２４、またはＲＡＭ２５に格納され、プログラム・エンジンにはオペレーティング・システム３５、１つ以上のアプリケーション・プログラム３６、他のプログラム・エンジン３７、およびプログラム・データー３８が含まれる。ユーザーは、キーボード４０およびポインティング・デバイス４２のような入力デバイスを介して、コマンドおよび情報をパーソナル・コンピューター２０に入力することができる。他の入力デバイス（図示せず）は、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星ディッシュ、スキャナー、ジェスチャー入力、タッチ入力、音声入力等を含むことができる。これらおよび他の入力デバイスは、多くの場合、システム・バスに結合されたシリアル・ポート・インターフェース４６を介して処理ユニット２１に接続されるが、パラレル・ポート、ゲーム・ポート、またはユニバーサル・シリアル・バス（ＵＳＢ）というような他のインターフェースを介して接続することもできる。モニター４７または他のタイプのディスプレイ・デバイスも、ビデオ・アダプター４８のようなインターフェースを介してシステム・バス２３に接続される。モニターに加えて、コンピューターは、通例、スピーカーおよびプリンターのような、他の周辺出力デバイス（図示せず）も含む。
【００３９】
[0045]  コンピューター２０は、論理接続を使用して、リモート・コンピューター４９のような１つ以上のリモート・コンピューターへの論理接続を使用して、ネットワーク接続環境において動作することができる。これらの論理接続は、コンピューター２０に結合されたまたはその一部である通信デバイスによって行われる。本発明は、特定のタイプの通信デバイスには限定されない。リモート・コンピューター４９は、他のコンピューター、サーバー、ルーター、ネットワークＰＣ、クライアント、ピア・デバイスまたは他の共通ネットワーク・ノードとすることができ、通例、コンピューター２０に関して説明したエレメントの多くまたは全てを含むが、図４ではメモリー／記憶デバイス５０のみを示す。図４に示す論理接続は、ローカル・エリア・ネットワーク（ＬＡＮ）５１およびワイド・エリア・ネットワーク（ＷＡＮ）５２を含む。このようなネットワーク接続環境は、オフィス・ネットワーク、企業規模のコンピューター・ネットワーク、イントラネット、およびインターネットでは極普通であり、これらは全てネットワークの種類である。
【００４０】
[0046]  ＬＡＮネットワーク接続環境において使用されるとき、コンピューター２０は、ネットワーク・インターフェースあるいはアダプター５３を介して、ローカル・ネットワーク５１に接続される。アダプター５３は、一種の通信デバイスである。ＷＡＮネットワーク接続環境において使用されるとき、コンピューター２０は、通例、モデム５４、ネットワーク・アダプタ、一種の通信デバイス、またはワイド・エリア・ネットワーク５２において通信を作るための任意の他のタイプの通信デバイスを含む。モデム５４は、内蔵型でも外付けでもよく、シリアル・ポート・インターフェース４６を介してシステム・バス２３に接続される。ネットワーク接続環境では、パーソナル・コンピューター２０に関して図示したプログラム・エンジンまたはその一部は、リモート・メモリー記憶デバイスに格納することができる。尚、図示したネットワーク接続は例であり、コンピューター間に通信リンクを作る他の手段および通信デバイスを使用できることは認められよう。
【００４１】
[0047]  一実現例では、同期サービス・コントローラー、存在評価器、基準同期モード・コントローラー、高同期モード・コントローラー、ならびに他の動作(operator)およびサービスは、メモリー２２および／または記憶デバイス２９または３１に格納され処理ユニット２１によって処理される命令によって具体化することができる。著者メタデーター、文書データー、同期モード・パラメーター、および他のデーターは、メモリー２２および／または記憶デバイス２９または３１に永続データーベースとして格納することができる。更に、同期サービスのようなサービスは、ネットワーク接続システムにサービス機能を提供するように構成されたハードウェアおよび／またはソフトウェアを表す。このようなサービスは、汎用コンピューターおよび特殊ソフトウェア（サービス・ソフトウェアを実行するサーバーのような）、特殊目的計算システムおよび特殊ソフトウェア（サービス・ソフトウェアを実行する移動体デバイスまたはネットワーク・アプライアンスのような）、または他の計算構成を使用して実現することができる。
【００４２】
[0048]  本明細書において説明して本発明の実施形態は、１つ以上のコンピューター・システムにおける論理ステップとして実現される。本発明の論理動作は、（１）１つ以上の計算システムにおいて実行するプロセッサー実施ステップのシーケンスとして、（２）１つ以上の計算システム内において相互接続された機械または回路モジュールとして実現される。実施態様は、本発明を実現する計算システムの性能要件に依存する選択事項である。したがって、本明細書において記載された発明の実施形態を構成する論理動作は、動作、ステップ、オブジェクト、またはモジュールと様々に呼ばれる。更に、別段明示的に特許請求されないなら、または特定の順序が請求項の文言によって本質的に必要とされないなら、論理動作はいずれの順序で実行してもよいことは、理解されてしかるべきである。
【００４３】
[0049]  以上の明細書、例、およびデーターは、本発明の実施形態例の構造および使用の完全な説明に考慮している。本発明の主旨および範囲から逸脱することなく、本発明の多くの実施形態を形成することができるので、本発明は、以下に添付する特許請求の範囲に存在するものとする。更に、特許請求の範囲の記載から逸脱することなく、異なる実施形態の構造的特徴が更に他の実施形態において組み合わされてもよい。
【図１】
2015513713.tif 000004
【図２】
2015513713.tif 000005
【図３】
2015513713.tif 000006
【図４】
2015513713.tif 000007
【図５】
2015513713.tif 000008
【図６】
2015513713.tif 000009
【図７】
2015513713.tif 000010
【図８】
2015513713.tif 000011
【国際調査報告】
2015513713.tif 000012
2015513713.tif 000013