JP2004265418A - ピアコンピューティングデバイスの間で共用されるデータを同期させるための方法およびシステム - Google Patents

ピアコンピューティングデバイスの間で共用されるデータを同期させるための方法およびシステム Download PDF

Info

Publication number
JP2004265418A
JP2004265418A JP2004056908A JP2004056908A JP2004265418A JP 2004265418 A JP2004265418 A JP 2004265418A JP 2004056908 A JP2004056908 A JP 2004056908A JP 2004056908 A JP2004056908 A JP 2004056908A JP 2004265418 A JP2004265418 A JP 2004265418A
Authority
JP
Japan
Prior art keywords
data object
computing device
change
data
folder
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.)
Pending
Application number
JP2004056908A
Other languages
English (en)
Other versions
JP2004265418A5 (ja
Inventor
Shaun A Kaasten
エー.カーステン ショーン
Jason F Moore
エフ.ムーア ジェーソン
Balan Sethu Raman
セス ラマン バラン
Chris J Guzak
ジェイ.ガザク クリス
David A Orbits
エー.オービッツ デビッド
Sudarshan A Chitre
エー.チトレ スダーシャン
Eric R Flo
アール.フロ エリック
Jeffrey M Saathoff
エム.サートフ ジェフリー
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2004265418A publication Critical patent/JP2004265418A/ja
Publication of JP2004265418A5 publication Critical patent/JP2004265418A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • EFIXED CONSTRUCTIONS
    • E05LOCKS; KEYS; WINDOW OR DOOR FITTINGS; SAFES
    • E05BLOCKS; ACCESSORIES THEREFOR; HANDCUFFS
    • E05B47/00Operating or controlling locks or other fastening devices by electric or magnetic means
    • E05B47/02Movement of the bolt by electromagnetic means; Adaptation of locks, latches, or parts thereof, for movement of the bolt by electromagnetic means
    • E05B47/026Movement of the bolt by electromagnetic means; Adaptation of locks, latches, or parts thereof, for movement of the bolt by electromagnetic means the bolt moving rectilinearly
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • G06F16/1787Details of non-transparently synchronising file systems
    • EFIXED CONSTRUCTIONS
    • E05LOCKS; KEYS; WINDOW OR DOOR FITTINGS; SAFES
    • E05BLOCKS; ACCESSORIES THEREFOR; HANDCUFFS
    • E05B47/00Operating or controlling locks or other fastening devices by electric or magnetic means
    • E05B47/0001Operating or controlling locks or other fastening devices by electric or magnetic means with electric actuators; Constructional features thereof
    • E05B2047/0014Constructional features of actuators or power transmissions therefor
    • E05B2047/0018Details of actuator transmissions
    • E05B2047/002Geared transmissions
    • EFIXED CONSTRUCTIONS
    • E05LOCKS; KEYS; WINDOW OR DOOR FITTINGS; SAFES
    • E05BLOCKS; ACCESSORIES THEREFOR; HANDCUFFS
    • E05B63/00Locks or fastenings with special structural characteristics
    • E05B63/08Mortise locks
    • EFIXED CONSTRUCTIONS
    • E05LOCKS; KEYS; WINDOW OR DOOR FITTINGS; SAFES
    • E05BLOCKS; ACCESSORIES THEREFOR; HANDCUFFS
    • E05B9/00Lock casings or latch-mechanism casings ; Fastening locks or fasteners or parts thereof to the wing
    • E05B9/02Casings of latch-bolt or deadbolt locks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Electromagnetism (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】ピアツーピアコンピューティング環境におけるデータ同期サービスの提供。
【解決手段】選択されたデータオブジェクトが、選択されたコンピューティングデバイス上にコピーされる。各デバイス上のサービスが、変更に関してデータオブジェクトを監視する。変更が検出された場合、サービスは、変更通知をその他のデバイスに送信して、その他のデバイスがデータオブジェクトの自らのコピーを更新することができるようにする。ユーザは、データオブジェクトの最新バージョンを取得することが分かっていて、任意のデバイスからデータオブジェクトにアクセスすることができる。ユーザは大きいファイルをすべてのデバイス上に記憶する費用を被るの代わりに、いくつかのデバイス上のファイルを「ゴースト化」し、ファイル全体ではなく、メタデータだけを記憶する。ユーザは、ゴーストを介してファイルにアクセスする。
【選択図】図1b

Description

本発明は、一般に、コンピューティングデバイスの間でデータを共用することに関し、より詳細には、ピアコンピューティングデバイスの間で共用されるデータを同期させることに関する。
今日の活動的な生活様式において、人々は、しばしば、複数のコンピュータを使用している。中小企業、ならびに多くの家庭さえ、敷地の全体に配置され、ローカルエリアネットワーク(LAN)を介して互いに接続されたコンピュータを有している。ラップトップ、ならびにパーソナルデジタルアシスタントなどのより小さいコンピューティングデバイスが、一日に通常の個人が使用する可能性があるコンピュータの数を増やしている。
コンピューティングデバイスのこの普及は、疑いのない利点を提供する一方で、特定のデータファイルに対するアクセスを求めている個人を苛立たせる可能性がある。例えば、世帯は、利便性のために複数のコンピュータを有しているが、一部のファイルが、あるコンピュータだけからアクセス可能であり、他のファイルが、別のコンピュータだけからアクセス可能である場合、利便性が失われる。また、個人は、同一ファイルの複数のバージョンに直面した場合、すぐに混乱させられる。例えば、中小企業の従業員が、自分のデスクトップコンピュータから自分のラップトップにドキュメントをコピーする。従業員は、移動している間、ラップトップ上でドキュメントを更新する。他の従業員は、そのドキュメントの最新バージョンをどこで見付けるかを知らない。実際、数名の従業員が自分たちの作業を協調させることなくドキュメントを更新するにつれ、ドキュメントの複数の矛盾するバージョンが、その企業全体に広がる可能性がある。通常、個人は、ファイルがどこにあるかに関わらず、またその時点でどのコンピュータを自分が使用しているかに関わらず、特定のデータファイルの最新バージョンにアクセスすることを望む。
より大きな企業は、この問題に対処しはじめている。データファイルが、中央サーバ上に記憶される。許可されたユーザ自身のコンピューティングデバイスが、マイクロソフトの「クライアントサイドキャッシング(CLIENT−SIED CASHING)」のようなサービスを使用することにより、中央サーバ上に存在するデータファイルに対するアクセスを要求する。セキュリティをより高くするため、企業は、重要なデータファイルのコピーをそれぞれが記憶するいくつかの中央サーバを有することが可能である。中央サーバは、互いの間で協調して、1つのサーバが保守の理由でアクセス不可能である場合でも、データファイルが常に利用可能であることを確実にする。管理の点からは、集中データストレージにより、データアクセスセキュリティを実施する仕事、大量のデータを記憶するのに十分なハードウェアを提供する仕事、およびデータを定期的にバックアップする仕事が軽減される。ユーザの視点では、集中ストレージは、ユーザが、データファイルをどこで見付けるかを常に知っていること、データファイルが基本的に常に利用可能であること、およびファイルの最新バージョンがユーザに提示されるファイルであることを意味する。
ただし、集中データストレージには費用がともなう。中央サーバは、ユーザ自身のコンピュータの費用に加えての費用に相当する(represent)。中央サーバ環境を構成し、管理することは、通常、中小企業において、または世帯主の間では、しばしば、見られない特殊な専門技術を必要とする。これらのより小型の環境における人々は、費用の考慮を理由に、または送風機の雑音を理由に、サーバが常時、稼動されていることにしばしば反対する。
以上に鑑みて、本発明は、中央サーバの財務上および管理上の費用を被ることなく集中データストレージの利点を提供する。ピアツーピアコンピューティング環境では、コンピューティングデバイスは、互いに通信してデータに対するアクセスを提供し、データに対する変更を同期させて、最新バージョンがユーザに提示されるようにする。
選択されたデータオブジェクト(ファイルまたはフォルダ)が、選択されたコンピューティングデバイス上にコピーされる。それぞれの選択されたデバイス上で実行されているデータ同期サービスが、一部の実施形態では、デバイスのファイルシステムに対する呼出しを代行受信することにより、選択されたデータオブジェクトを変更に関して監視する。変更が検出された場合、データ同期サービスは、その変更の通知をその他のデバイスに送り、その他のデバイスが、そのデータオブジェクトの自らのコピーを更新することができるようにする。したがって、データオブジェクトのコピーが、すべての選択されたデバイス上で同期しているように保たれる。ユーザは、自分がデータオブジェクトの最新バージョンを取得することを知っており、選択されたデバイスのいずれからもデータオブジェクトにアクセスすることができる。あるデバイスが一時的に利用できない場合、それでも別のデバイスから最新バージョンにアクセスすることができる。
選択されたデバイスが、更新通知を送受信するのに常に利用できるわけではない可能性がある。そうである場合、他のデバイスは、自らの更新通知を記憶し、そのデバイスが利用可能になるのを待つ。ユーザが自分のラップトップを自宅LANに接続した場合など、そのデバイスがグループに再び加わった際、そのデバイスは、その他のデバイス上に記憶されているデータオブジェクトと同期していないデータオブジェクトのバージョンを保持している可能性がある。データ同期サービスは、選択されたデータオブジェクトの最新バージョンがどこに記憶されているかを自動的に判定する。次に、そのバージョンが、古いバージョンを有するデバイスに送信される。
音声クリップまたはビデオクリップなどの一部のファイルは、非常に大きい可能性がある。すべてのコンピューティングデバイス上にそのようなファイルを記憶する費用を負う代わりに、ユーザは、いくつかのデバイス上でそのファイルを「ゴースト化する(ghost)」ことを選択することができる。ゴースト化デバイス(ghosting device)は、そのファイル全体ではなく、そのファイルに関するメタデータ(ファイルの名前およびバージョン日付などの)だけを記憶する。それでも、ユーザは、ゴーストを介してそのファイルにアクセスすることができる。すなわち、アクセス要求は、実際のコンテンツを保持するデバイスに送られ、次に、そのコンテンツが、あたかもローカルで記憶されているかのようにユーザに提供される。
特許請求の範囲が、本発明の特徴を詳細に記載しているが、本発明、ならびに本発明の目的および利点は、添付の図面と併せて受け取られるべき以下の詳細な説明からよく理解することができる。
同様の符号が同様の要素を指している図面を参照すると、本発明が、適切なコンピューティング環境において実施されているのが示されている。以下の説明は、本発明の実施形態に基づいており、本明細書で明示的に説明しない代替の実施形態に関して方法を限定するものと受け止めてはならない。
以下の説明では、本発明は、特に明記しない限り、1つまたは複数のコンピューティングデバイスによって行われる作用(act)、ならびに動作の記号表現に関連して説明する。このため、ときとして、コンピュータによって実行されるものとして述べるそのような作用および動作には、データを構造化された形態で表わす電気信号のコンピューティングデバイスの処理ユニットによる操作が含まれる。この操作は、データを変換し、またはコンピューティングデバイスのメモリシステム内の場所でデータを保持し、これにより、当分野の技術者にはよく理解されている仕方でデバイスの動作が再構成されるか、または別の形で変更される。データが保持されるデータ構造は、データのフォーマットによって定義される特定の特性を有するメモリの物理域である。ただし、本発明を以上の文脈で説明するが、以下に説明する様々な作用および動作は、ハードウェアでも実施することが可能であることが当分野の技術者には認められるとおり、限定することを意図するものではない。
本発明は、ピアコンピューティングデバイス間でデータ同期サービスを提供する。図1aは、例示的な環境100を示している。通常、環境100は、自宅または中小企業を表わす。環境100には、3つのコンピューティングデバイスA102、コンピューティングデバイスB104、およびラップトップ106が存在する。ラップトップ106は、可搬であるので、環境100を容易に離れ、後に戻ることができる。この可能性により、以下に説明するデータ同期に関するある厄介な問題がもたらされる。本発明では、以上3つのデバイス102、104、および106は、これらのデバイスのいずれも他のデバイスに対して制御を行使しないということで、「ピア」である。代わりに、以上のデバイスは、以下に説明するような技術を使用して、協調して共用データが同期しているように保つ。
図1aの3つのピアコンピューティングデバイス102、104、および106は、LAN108を介して互いに通信する。共用環境100においてコンピューティングデバイス間でデータ同期情報をトランスポートするための標準の通信プロトコルが存在する。コンピューティングデバイスB104は、3つすべてのコンピューティングデバイス102、104、および106によって共用されるインターネット110に対するリンクも提供する。インターネット110は、本発明のデータ同期サービスが、遠隔で接続されたデバイス間でも行われることが可能であることを示すために図1aに示している。遠隔データ同期は完全に可能であるが、一部の状況では、同期を行うのに必要とされる通信時間が増大することが、同期環境100に遠隔デバイスを含めることをユーザに思いとどまらせる可能性がある。
本発明は、環境100においてデバイス間のデータ同期を容易にするが、環境100の外部のデバイスがデータ同期情報にアクセスすることを防止することも重要である。LAN108が無線である場合、または環境100が、インターネット100に対する遠隔接続などの遠隔接続を含む場合、セキュリティの問題は、より差し迫ったものとなる。これらの場合、許可されていないデバイスがデータ同期情報を聴取しているかどうかを知ることは困難である。
図1bは、図1aのデータ同期環境100の例示的な実施形態の構造上の詳細を示している。コンピューティングデバイスA102のファイルシステム112内には、2つのフォルダ、A1114およびA2116が存在する。フォルダA1114のコンテンツ全部が、コンピューティングデバイスB104のファイルシステム112内で対応する(counterpart)フォルダB1124と同期され、ラップトップ106のファイルシステム130内で対応するフォルダC1132と同期される。同期とは、対応するフォルダA1114、B1124、およびC1132のいずれか1つの内部のデータオブジェクト(ファイルまたはフォルダ、あるいはデータベース内のテーブルなどのファイルの一部分でも)に対するあらゆる変更が、その他のフォルダの中で反復されることを意味する。例えば、コンピューティングデバイスB104のユーザが、ローカルのサブフォルダ126の1つの中で新しいファイルを生成する。新しいフォルダのコピーが、次に、コンピューティングデバイスA102上、およびラップトップ106上の対応するサブフォルダの中で自動的に生成される。別の例として、ラップトップ106のユーザが、ファイルC1136を更新し、その変更が、対応するファイルA1118およびB1128に自動的に伝播する。したがって、ユーザは、以上3つのコンピューティングデバイスのいずれかにログインし、データが最後に更新された時点でユーザがどこでログインしていたかに関わらず、同期されたデータオブジェクトの最新バージョンを常に取得することができる。
三叉の(three−headed)データ接続138により、3つのコンピューティングデバイス102、104、および106のいずれも、データ同期サービスに対して排他的な制御を行使しないことが示されている。逆に、各デバイスが、自らのローカルファイルに行われた変更を他の2つのデバイス上の対応するファイルに行われた変更と同期させる。
2つの異なる趣のデータ同期が存在する。「フルコピー(full−copy)同期」と呼ばれる第1のデータ同期では、協調するそれぞれのコンピューティングデバイス上に同期されたファイルの完全なコピーが存在する。図1bでは、異なるコンピューティングデバイス上のファイルおよびフォルダには、異なる符号が付けられていることに留意されたい。例えば、コンピューティングデバイスA102上のファイルA1118が、ラップトップ106上のファイルC1136と同期される。同期により、これら2つのファイルが、いくつかの点で、あたかも1つのファイルであるかのように振舞うようになる。しかし、これらのファイルは、現実には別個のファイルであり、まるごと別々のコンピューティングデバイス上に記憶される。これらのファイルは、各コンピューティングデバイス上で記憶スペースをとり、他方のコンピューティングデバイスがアクセス可能ではない場合でも、一方のコンピューティングデバイス上でアクセスされることが可能である。もちろん、他方のデバイスがアクセス可能ではないシナリオでは、他方のデバイスが再びアクセス可能になるまで、ファイルに対する変更を同期させることは、可能ではない。(そのようなアクセス不可能である期間などの後に同期をセットアップすることについては、図3aのステップ308に関連して以下に説明している。)
以上に説明した状況は、「ゴースト化された同期」と呼ばれる第2の趣のデータ同期には当てはまらない。コンピューティングデバイスA102上のフォルダA2116内の非常に大きいファイル140を考慮されたい。この非常に大きいファイル140は、ビデオクリップまたは大きいデータベースであることが可能である。ユーザは、ラップトップ106にログインした際にその非常に大きいファイル140にアクセスすることを所望するが、そのファイルのコピーをローカルで記憶することの並外れた費用を負うことを望まない。代わりに、「ゴースト」ファイル142がラップトップ106上で生成される。このゴースト142は、非常に大きいファイル140の完全なコンテンツを含まない。最低限では、ゴーストファイル142は、ホストコンピューティングデバイスA102上の非常に大きいファイル140に対するリファレンスだけを含む。ただし、ゴーストファイル142は、非常に大きいファイル140と同期され、したがって、ラップトップ106上のユーザは、ゴーストファイル142を介して非常に大きいファイル140にアクセスすることができる。ユーザは、非常に大きいファイル140のコンテンツを変更することを所望する場合、あたかも非常に大きいファイル140に対して直接に作業を行っているかのように、ラップトップ106上でその変更を行うことができる。すると、変更は、ゴーストファイル142を介してコンピューティングデバイス102に送られ、非常に大きいファイル140自体に適用される。したがって、ラップトップ106のユーザは、非常に大きいファイル140の同期されたコピーがラップトップ106上に存在するかのように、非常に大きいファイル140を読み取り、変更することができる。
フルコピー同期の場合とは異なり、ホストコンピューティングデバイスA102が一時的にアクセス不可能である場合、ラップトップ106のユーザは、ゴーストファイル142を介して非常に大きいファイル140にアクセスすることができない。このゴースト化のケースでも、二又の(two−headed)データ接続144により、各コンピューティングデバイスA102およびラップトップ106が、ローカルで行われた変更、非常に大きいファイル140またはゴーストファイル142のどちらかに行われた変更をそれぞれ、他方のコンピューティングデバイスと同期させることが示されている。
以上2つの趣のデータ同期、フルコピー同期とゴースト化同期は、いくつかの仕方で混ぜ合わせることができる。フルコピー同期のためにフォルダがセットアップされる一方で、そのフォルダ内のファイルがフルコピーから除外され、代わりにゴースト化される。フォルダが、2つのコンピューティングデバイスの間でフルコピー同期され、第3のコンピューティングデバイスに対してゴースト化されることが可能である。ゴーストは、ファイルの名前、ファイルのサムネール表示などの遠隔ファイルのいくつかの属性またはメタデータのコピーをローカルで含むことが可能である。次に、それらの属性に対する変更が、フルコピーのファイルに対する変更が同期されるのと同じやり方で同期され、他方、ファイルの大部分に対する変更は、ゴースト化によって同期される。
図1a,図1bのコンピューティングデバイスA102、コンピューティングデバイスB104、およびラップトップ106は、任意のアーキテクチャであることが可能である。図2は、本発明をサポートする例示的なコンピュータシステムを全体的に示すブロック図である。図2のコンピュータシステムは、適切な環境の一例に過ぎず、本発明の使用または機能の範囲に関して何ら限定を示唆するものではない。また、コンピューティングデバイス102が、図2に例示した構成要素のいずれか1つ、またはいずれかの組合せに関連する依存性、または要件を有していると解釈すべきでもない。本発明は、多数の他の汎用または特殊目的のコンピューティング環境またはコンピューティング構成で機能する。本発明で使用するのに適した周知のコンピューティングシステム、コンピューティング環境、およびコンピューティング構成の例には、パーソナルコンピュータ、サーバ、ハンドヘルドデバイスまたはラップトップデバイス、タブレットデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブル家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、ならびに以上のシステムまたはデバイスのいずれかを含む分散コンピューティング環境が含まれるが、以上には限定されない。最も基本的な構成では、コンピューティングデバイス102は、通常、少なくとも1つの処理ユニット200、およびメモリ202を含む。メモリ202は、揮発性(RAMなどの)、不揮発性(ROMまたはフラッシュメモリなどの)、あるいはこの2つの何らかの組合せであることが可能である。この最も基本的な構成を図2に破線204で示している。コンピューティングデバイス102は、追加の機構および機能を有することが可能である。例えば、コンピューティングデバイス102は、磁気ディスクおよび磁気テープ、ならびに光ディスクおよび光テープを含むが、以上には限定されない追加のストレージ(取外し可能なストレージおよび取外し不可能なストレージ)を含むことが可能である。そのような追加のストレージを図2に取外し可能なストレージ206および取外し不可能なストレージ208で示している。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するために任意の方法または技術で実装された揮発性の媒体および不揮発性の媒体、取外し可能な媒体および取外し不可能な媒体が含まれる。メモリ202、取外し可能なストレージ206、および取外し不可能なストレージ208はすべて、コンピュータ記憶媒体の例である。コンピュータ記憶媒体には、RAM、ROM、EEPROM、フラッシュメモリ、他のメモリ技術、CD−ROM、デジタルバーサタイルディスク、他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、他の磁気記憶デバイス、ならびに所望の情報を記憶するのに使用することができ、デバイス102がアクセスすることができる任意の他の媒体が含まれるが、以上には限定されない。任意のそのようなコンピュータ記憶媒体が、デバイス102の一部であることが可能である。デバイス102は、デバイスが他のデバイスと通信することを可能にする通信チャネル210も含むことが可能である。通信チャネル210は、通信媒体の例である。通信媒体は、通常、搬送波などの変調されたデータ信号で、または他のトランスポート媒体でコンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを実現し、あらゆる情報配信媒体が含まれる。「変調されたデータ信号」という用語は、信号内に情報を符号化するように特性の1つまたは複数が設定された、または変更された信号を意味する。例として、限定としてではなく、通信媒体には、有線ネットワークまたは直接配線接続などの有線媒体、ならびに音響媒体、RF媒体、赤外線媒体、およびその他の無線媒体などの無線媒体が含まれる。本明細書で使用する「コンピュータ可読媒体」という用語には、記憶媒体と通信媒体がともに含まれる。コンピューティングデバイス102は、キーボード、マウス、ペン、音声入力デバイス、タブレット、タッチ入力デバイスなどの入力デバイス212も有することが可能である。また、ディスプレイ(タッチ入力デバイスと一体になっていることが可能な)、スピーカ、およびプリンタなどの出力デバイス214も含まれることが可能である。以上すべてのデバイスは、当技術分野で周知であり、本明細書で詳述する必要はない。
図3aおよび3bは、ピアツーピアコンピューティング環境100におけるデバイスA102、デバイスB104、およびラップトップ106が、互いの間でデータを同期させるために従う手続きの例を示している。この流れ図は、データ同期サービスのすべての実施形態に含められる必要はないオプションを含んでいる。
実際の同期が開始する前に、同期が、図3aのステップ300で構成される。ステップ302で許可が調べられる。いくつかのデバイスだけが環境100に加わるように招かれ、それらのデバイスは、自らの身元を証明するようにさせられなければならない。環境100内部でも、いくつかのデバイスは、他のデバイスとは異なる特権を有する。データ同期が完全に対称的になることを防止する特権をセットアップすることができる。例えば、1つのデバイス上のユーザが、ファイルに変更を入力することができないようにされるが、そのユーザのデバイスは、他のデバイス上で行われた変更を受け入れる。別の例として、セキュリティのために、フォルダの構造に影響を与える変更が、ローカルコンピューティングデバイスのユーザだけから受け入れられることが可能である。
ステップ304で、同期情報を伝送する通信に関するパラメータがセットアップされる。例えば、同期情報は、他の通信が不当に遅延されることがないように、可用な総帯域幅のあるパーセンテージに制限されることが可能である。
ステップ306はオプションである。最も単純なケースでは、同期のための厳密なスケジュールは存在しない。すなわち、同期されたデータオブジェクトに対する変更が検出された時点で、その変更の通知が、すべての対応するコンピューティングデバイスに即時に送られる。この単純な方法によって生成されるデータトラフィックの量は、複数のコンピューティングデバイスが一斉に使用中である場合、同期環境100内で利用できる通信帯域幅を圧倒する可能性がある。これを防止するため、ローカルのコンピューティングデバイス上で変更を待ち行列に入れて、スケジュールどおりにだけ送信することができる。この種のスケジュール設定により、情報伝送速度の変動が均一にされる。さらに、送信する前に変更通知の待ち行列を検査して、ある変更により、待ち行列の中の別の変更が無効化される場合、そのより早期の通知を待ち行列から除去して、伝送される変更情報の総量を減らすことができる。簡明にするため、図3aおよび3bの流れ図は、通知の待ち行列化について述べていない。
最後に、ステップ308が、継続した同期サービスを開始する前に、同期されるべきデータオブジェクトを同一の状態にする。このステップは、特に、1つのコンピューティングデバイスが同期環境100のその他のメンバからアクセス不可能であった場合に、重要である。例えば、ユーザが、出張にラップトップ106を携行して、ラップトップ106上に記憶されている自身の仕事ファイルを更新する。出張中、ラップトップ106は、その他のコンピューティングデバイスA102およびコンピューティングデバイスB104と通信していない。ユーザが出かけている間、そのユーザの夫が、コンピューティングデバイスA102上で夫婦の社交カレンダ(social calender)を更新する。ユーザは、戻ってくると、自分のラップトップ106をデータ同期環境100に再接続する。ラップトップ106上のユーザの仕事ファイルは、その他のコンピューティングデバイス上の対応するファイルよりも新しいため、ステップ308で、その対応するファイルが、ラップトップ106のファイルから更新される。同様に、ラップトップ106上の社交カレンダのコピーも、コンピューティングデバイスA102から更新される。ステップ308は、コンピューティングデバイス全体がアクセス可能になるには至らない場合でも、呼び出されることが可能である。例えば、ユーザが、ラップトップ106を携行する代わりに、単にコンピューティングデバイスの1つから取外し可能なディスクを持っていくことを決める。ディスクが戻され、再びデータ同期環境100の一部になった際、ステップ308により、ディスク上のデータオブジェクトが、環境100のその他の部分と同期される。ステップ308が完了した時点で、環境100におけるすべてのアクセス可能なデバイス上の同期されたデータオブジェクトが最新になっている。
ステップ308は、図3aおよび3bに描いた実施形態において非常に役立つ。その例示的なサービスは、変更が見られた際にはいつでもトリガされる(以下に説明する図3aのステップ312、および図3bのステップ320参照)。したがって、前述した移動中のラップトップ106の例を使用すると、ステップ308なしでは、同期されていない社交カレンダは、ラップトップ106が環境100に再び加わった際に自動的に同期するようにされない。代わりに、その社交カレンダは、ラップトップ106が環境100の一部であるときに、ユーザが社交カレンダにさらなる変更を行った際に、また変更を行った場合にだけ同期される。
ただし、他の実施形態では、ステップ308の作業は、継続したデータ同期サービスから分離されない。一部の実施形態は、同期されたデータオブジェクトの最新の変更の時刻を監視する。その時刻が、対応するデータオブジェクトの最新の変更時刻から大幅に異なる場合、より新しいバージョンにより、古いバージョンが置き換えられなければならない。この実施形態では、前述した例を使用すると、ラップトップ106の仕事ファイルと、コンピューティングデバイスA102上およびコンピューティングデバイスB104上の対応するファイルの間における不一致、ならびにコンピューティングデバイスA102の社交カレンダとラップトップ106上の社交カレンダの間における不一致が、通常の事の成り行きで気付かれる。特別なステップ308は必要ない。この代替の実施形態を理解すること、または実施することは、図3aおよび3bの変更によってトリガされる実施形態の場合よりも決して難しいことではない。ただし、複数の代替の実施形態を混ぜ合わせることによって混乱の可能性が高まるのを避けるため、以下の説明は、変更によってトリガされる実施形態を中心に扱う。
構成が完了すると、継続したデータ同期サービスは、次の2つの主な部分から構成される。すなわち、第1に、ローカルの変更を捕捉し、変更を遠隔デバイスに送ること、第2に、遠隔の変更の通知を受信し、その変更をローカルで適用することである。例示のため、図3aおよび3bは、以上2つの部分が、1回の処理ループ内で順次に行われるのを示しているが、多くの他の実施形態が可能である。例えば、各部分が、別個のプロセスであること、または1つのプロセスの中のスレッドであることが可能である。また、各部分は、常時、実行されること、イベントトリガ時に実行されること、明示的なユーザ呼出し時に実行されること、またはタイマから周期的に行われることも可能である。以上の代替の実施形態のすべてをセットアップするのに使用される方法は、当技術分野で周知であり、さらに説明することはしない。
ステップ312が、同期のために構成されているデータオブジェクトであるローカルのデータオブジェクトの変更を探すことにより、継続したデータ同期サービスの第1の主な部分を開始する。変更が見られた場合、その変更の通知が、図3bのステップ314で対応するコンピューティングデバイスに送られる。一部の実施形態では、コンピューティングデバイスの1つが、「変更通知クリアリングハウス(clearing house)」としてセットアップされる。その他のデバイスは、自らの変更をクリアリングハウスに送るだけであり、クリアリングハウスにより、通知がすべての他のデバイスに転送されることが確実にされる。前述した着想(ステップ306に関連する)の変更形態では、クリアリングハウスが、受信された変更通知を比較し、同期されたデータオブジェクトの最終状態に対して全く効果を有さない変更通知を選んで除くことが可能である。クリアリングハウスにより、通信がより効率的になることが可能であるが、クリアリングハウスは、データ同期環境100のマスタにはならないことに留意されたい。データ同期は、ピアツーピアプロセスであることに変わりない。
変更通知自体、いくつかの形態をとることが可能である。小さいファイルに関して完全に十分である変更通知の単純な実施形態は、ファイルの識別子、および変更されたファイルのコンテンツ全部を含む。より大きいファイルに関しては、変更通知により、単に最終結果だけではなく、ファイルにどのように変更が行われるべきかが特定されるより高度なクリアリングハウスシステムを使用することができる。
一部の実施形態では、最低限のゴーストファイルは、削除された場合、移動された場合、または名前が変更された場合にだけ変更を生じさせる。他のあらゆる変更は、ユーザがゴーストファイルにローカルでアクセスすることによって生じるにしても、遠隔のホストファイル上で生じる。
ステップ316により、ユーザ、またはデータ同期サービス自体が、伝送された変更のステータスを調べることが可能になる。ステータス情報は、鈍い応答の問題をデバッグする際に、また同期パラメータをリセットするために役立つ可能性がある。ユーザがコンピューティングデバイスをシャットダウンさせること、またはそれ以外でコンピューティングデバイスをデータ同期環境100から取り去ることを選択した場合、ステータス情報を検査し、同期が完了するまでシャットダウンを一時停止させることができる。
一部の変更は、警報をトリガする可能性がある。例として、図1bに描いたファイルシステムレイアウトを考慮されたい。コンピューティングデバイスA102が、ファイルA1118をフォルダA1114からフォルダA2116に移動するものと想定する。他の2つのコンピューティングデバイスとのフォルダA2116の同期が全くセットアップされていないため(フォルダA2116内の非常に大きいファイル140は、ラップトップ106上のゴーストファイル142と同期されているが、これは、フォルダA2自体を同期させることとは異なる)、データ同期サービスには、この移動はファイルA1118の削除に見える。変更通知が送信された場合、A1の対応するファイル、コンピューティングデバイスB104上のファイルB1128、およびラップトップ106上のファイルC1136の削除がもたらされる。これは、ユーザが意図していたことではない可能性があり、したがって、移動が完了する前に、コンピューティングデバイスA102上のユーザに警報が送られ、以上の可能な不測の結果をユーザに知らせ、それが意図されていることであるかどうかを尋ねる。
ステップ318ないし324は、継続したデータ同期サービスの第2の主な部分を表わしている。遠隔の同期されたデータオブジェクトに対する変更の通知が、ステップ318および320で受信される。ステップ322で、その変更が適切である場合、遠隔データオブジェクトのローカルの対応物にその変更が適用される。この最後の条件には、いくつかの理由が存在する。例えば、遠隔デバイスのユーザが、データオブジェクトに対して読取り専用アクセスを有し、したがって、変更は無効であり、適用されるべきではない。別の例として、ローカルのデータオブジェクトが遠隔の変更されたデータオブジェクトのゴーストである場合、多くの可能な変更が適用されるべきではない。変更がゴースト化されたファイルのコンテンツに対するものであったとすると、その変更をローカルで適用することにより、遠隔のホストファイルのコンテンツに対する別の変更が実際に生じさせられることになる。その変更が、遠隔ホスト上で認識されることが可能であり、通知が、ゴースト化デバイスに再び送信されることになる。結果は、よくても、無用なトラフィックであり、場合により、変更通知の永久ループである。ただし、通常のフルコピーのシナリオでは、ほとんどの変更は適切であり、受信されたとおり適用される。
受信された変更のステータスが、ステップ316のステータス検査の対応物として作用するステップ324で送られる。
複数のユーザが、変更のためにデータオブジェクトに同時にアクセスすることができる場合、そのユーザが、矛盾する更新を行う可能性がある。1つの解決策は、単に、このシナリオが生じるのを許さないことである。一度に1名のユーザだけが、データオブジェクトに書込みアクセスを有することを許すための周知の技術が存在する。その技術は、一度に1名のユーザだけが、対応する1組の同期されたデータオブジェクトのいずれか1つに書込みアクセスを有することを許すように容易に変更される。他の解決策も存在する。ファイルに関して、最後の書き手の変更だけが、すべての対応するデータオブジェクトに対して実施され、あるいは、矛盾が検出された場合、その変更が一時中止状態に(in abeyance)に保たれ、いずれの変更が実施されるべきかがユーザに尋ねられる。2つのフォルダが競合する名前で生成されている場合、一方が要求されたとおりに生成され、他方に固有サフィックスが与えられることが可能である。ほとんどのケースでは、ユーザが矛盾を解決することができるように、矛盾がユーザに知らされる。
図4は、図3aおよび3bに関連して前述したデータ同期サービスの実施形態をサポートする例示的なシステムを示している。図4で名前の付いた機能のいくつかは、通常のオペレーティングシステムによって一般的に提供されるサービスを表わすことを意図している。特定の名称は重要ではなく、本発明は、いずれの特定のオペレーティングシステムにも限定されない。
コンピューティングデバイス102のユーザモードにおいて、1つまたは複数のアプリケーションプログラム400が実行されている。ユーザの指示の下で、これらのアプリケーションプログラム400が、同期されたデータオブジェクトを変更する。変更は、ファイル名変更を実施する、または新しいフォルダを生成するファイルシステムマネージャなどのオペレーティングシステムユーティリティから来ることも可能である。簡明にするため、それらのユーティリティは図示していない。データ同期サービス402は、アプリケーションプログラム400に対して動作するのと同じ仕方でユーティリティに対しても動作する。
変更がフルコピーの同期されたデータオブジェクトに向けられている場合、その変更は、ローカルデータオブジェクトに対して実施される。これが、アプリケーションプログラム400と、入力/出力マネージャ408と、ファイルドライバ410と、ローカルストレージドライバ412と、ファイルシステムA112と、そして最後にファイルシステムA112内の目標データオブジェクトとを結ぶデータフローによって示されている。データフロー406を介して、データ同期サービス402が変更に気付く。サービス402は、適宜、変更されたデータオブジェクトに対応するデータオブジェクトをホストするコンピューティングデバイスに送る変更通知を生成する。データ同期サービス402は、入力/出力マネージャ408、ファイルシステムドライバ410、および通信チャネル210などのオペレーティングシステムの機構を使用してメッセージを送信する。図4では、通信チャネル210が、遠隔デバイスとの通信のためにインターネット110に接続しているのが示されている。図1aに描いたシナリオでは、通信チャネル210は、コンピューティングデバイスB104およびラップトップ106と通信するためにLAN108にも接続している。
ローカルの同期されたデータオブジェクトがゴーストファイルである場合、アプリケーションプログラム400を起点とする多くの変更は、入力/出力マネージャ408を経由するデータフローを辿って、例えば、ファイルシステムA112に行くことがない。代わりに、それらの変更は、データ同期サービス402へのデータフロー406をだけを辿り、通信チャネル210から送出される。
遠隔デバイスから変更通知を受信するデータ同期サービス402の反対の方向も、同じ要素を使用する。変更通知は、通信チャネル210を介して受信され、データ同期サービス402まで転送される。その変更を実施することが適切であるとサービス402が判定した場合、変更は、アプリケーションプログラム400によって使用されるのと同じデータフローを辿る。すなわち、入力/出力マネージャ408を経由してファイルシステムドライバ410に行き、次にローカルストレージドライバ412に行き、最後にファイルシステムA112および目標データオブジェクトに行く。
図3aのステップ308に関連して前述したのは、変更時にトリガされないデータ同期サービス402の実施形態である。代わりに、この実施形態は、同期されたデータオブジェクトの変更時刻を監視する。この場合、データフロー406は必要なく、データ同期サービス402は、タイマ、または他のイベントによって呼び出される。サービス402は、呼び出されると、コンピューティングデバイスA102上の同期されたデータオブジェクトの変更時刻をデータ同期環境100内の他のコンピューティングデバイス上の対応するデータオブジェクトの時刻と比較し、前述したとおり、図示したオペレーティングシステムユーティリティを使用して適切な処置を行う。
図5aおよび5bの流れ図は、データ同期を開始するための例示的な方法を示している。コンピューティングデバイスA102上のユーザが、コンピューティングデバイスB104を使用して自分のローカルフォルダA2116の同期を開始することを所望する。図5aのステップ500で、API(アプリケーションプログラムインターフェース)IFileReplicationManager−>FindReplicaByPath(フォルダA2のパス名,...)により、フォルダA2116が既に同期されているかどうかが調べられる。既に同期されている場合、APIは、同期を表わすセットに対するポインタを戻す。この例では、フォルダA2116は、まだ同期されていないものと想定する。
ステップ502のAPI IFileReplicationManager−>CreateReplicaSet(「マイピクチャ(My Pictures)」,...)が、同期セットオブジェクトを生成する。このオブジェクトをコンピューティングデバイスA102上で使用してフォルダA2116の同期を管理する。同期セットオブジェクトには、固有識別子(GUID)と、GUIDよりもユーザフレンドリな名前、すなわち、「マイピクチャ」がともに割り当てられる。図3aのステップ304および306に関連して前述したような同期パラメータが、デフォルトに設定される。APIは、後続のステップで使用されるIFileReplicaSetインターフェースに対するポインタを戻す。
ステップ504で、API IFileReplicaSet−>AddMember(コンピューティングデバイスA102,...)が呼び出されて、コンピューティングデバイスA102が、「マイピクチャ」同期セット、および対応するフォルダを保持するデバイスのセットに追加される。いくつかの検査が最初に行われる。すなわち、ユーザは同期をセットアップすることを許可されているか、フォルダA2116は存在するか、ユーザは、フォルダA2116に対して必要な読取り許可および書込み許可を有するか、「マイピクチャ」同期セットは、既存の同期セットと矛盾するか、同期をサポートするのに十分なディスクスペースが利用可能であるかの検査が行われる。以上の検査のすべてに合格した場合、APIは、同期サービス402によって内部で使用される(変更通知のデバッグを行うためや変更通知を記憶するためなどに)フォルダをセットアップし、FileReplicaMemberを初期設定し、データ同期サービス402を初期設定する(サービス402が、別の同期セットのために既に実行されているのでない限り)。
次に、ステップ506で、API IFileReplicaSet−>AddMember(コンピューティングデバイスB104,...)が呼び出される。これにより、コンピューティングデバイスB104上でステップ508が開始され、このステップは、そのデバイス上でデータ同期サービス402を初期設定することから始まる(サービス402が既に実行されていない限り)。APIは、コンピューティングデバイスB104にクエリを行い(場合により、遠隔手続き呼出しを使用することにより)、許可について調べ、コンピューティングデバイスB104上のフォルダA2116の対応物が既に同期されているかどうかを確かめる。許可は、コンピューティングデバイスA102のユーザを詐称する(impersonate)ことにより、ユーザが、コンピューティングデバイスB104上で適切な許可を有するかどうかを確かめることによって調べられる。すべての検査に合格した場合、別のFileReplicaMemberオブジェクトが初期設定される。
ステップ506および508は、フォルダA2116の同期された共有に加わるあらゆる他のコンピューティングデバイスに対して繰り返される。このプロセスが1つのデバイス上で失敗した場合、コンピューティングデバイスA102上の初期設定プロセスは、ステップ510で、API IFileReplicaSet−>RemoveMember(MemberGUID,...)を呼び出して、同期セットに既に成功裡に入れられているあらゆる遠隔デバイスを除去することにより、プロセス全体を中途終了させることを選択することができる。
ステップ512で、API IFileReplicaSet−>PublishConfiguration(...)が、「マイピクチャ」の同期されたコピーをホストするデバイスのすべてに構成情報を送る。ステップ514で受信されるこの情報は、コンピューティングデバイスA102のユーザを再び詐称することによって記憶される。
最後に、ステップ516で、「マイピクチャ」に対する変更が同期される。図3aおよび3bが、ステップ516の一実施形態の詳細を提示している。
図5aおよび5bの流れ図は、データ同期を初期設定ための内部動作を提示している。図6は、この初期設定をセットアップするためにユーザが呼び出す外部インターフェースを提示している。例示的なスクリーンショット600は、ここで「foo」と呼ばれるローカルコンピューティングデバイス上のフォルダのプロパティを構成するためのタブを有する。このフォルダを他のデバイス上の対応するフォルダと同期させるために、選択されたタブが使用される。ユーザが、このフォルダを同期させるラジオボタンを選択された際、図5aのステップ500ないし504(または等価のステップ)が呼び出されることが可能である。対応するデバイスのリスト602が示され、ユーザは、このリストにデバイスを追加すること(図5aのステップ506に対応する)、またはデバイスを除去すること(ステップ510)ができる。
本発明の原理を適用することができる多くの可能な実施形態に鑑みて、図面に関連して本明細書で説明した実施形態は、例示することだけを意図し、本発明の範囲を限定するものと受け取られるべきでないことを認識されたい。例えば、本発明の趣旨を逸脱することなく、例示した実施形態の構成および詳細を変更できることが、当分野の技術者には認められよう。本発明は、ソフトウェアモジュール、またはソフトウェア構成要素に関して説明したが、これらは、ハードウェア構成要素によって等価に置き換えることが可能であることが、当分野の技術者には認められよう。したがって、本明細書で説明する本発明は、特許請求の範囲の範囲に含まれる可能性があるすべてのそのような実施形態、および等価形態を企図している。
LANを介してデータを共用する3つのピアコンピューティングデバイスを示すブロック図である。 図1aのコンピューティングデバイス間で共用される同期されたデータオブジェクトを示すブロック図である。 本発明をサポートする例示的なコンピュータシステムを全体的に示す概略図である。 本発明によるデータ同期サービスのための例示的な方法を示す流れ図である。 本発明によるデータ同期サービスのための例示的な方法を示す流れ図である。 本発明によるデータ同期サービスを提供する例示的なシステムを示す概略図である。 2つのコンピューティングデバイス間で同期を構成し、開始するための例示的な方法を示す流れ図である。 2つのコンピューティングデバイス間で同期を構成し、開始するための例示的な方法を示す流れ図である。 データ同期サービスを構成するための例示的なユーザインターフェースを示すスクリーンショットである。
符号の説明
100 コンピューティング環境
102、104、106 コンピューティングデバイス
112 ファイルシステム
114、116、124、132 フォルダ
118、128、136、140 ファイル
120、126、134 サブフォルダ
122、130 ファイルシステム
142 ゴーストファイル

Claims (29)

  1. 第1のコンピューティングデバイス上で前記第1のコンピューティングデバイス上の第1のデータオブジェクトに対する変更を第2のコンピューティングデバイス上の第2のデータオブジェクトに対する変更と同期させるための方法であって、
    前記第1のデータオブジェクトと前記第2のデータオブジェクトの間で同期を構成するステップと、
    変更に関して前記第1のデータオブジェクトを監視するステップと、
    前記第1のデータオブジェクトが変更された場合、前記第1のデータオブジェクトに対する前記変更の通知を前記第2のコンピューティングデバイスに伝送するステップと、
    前記第2のデータオブジェクトに対する変更の通知を聴取するステップと、
    前記第2のデータオブジェクトに対する変更の通知が受信され、かつ前記受信された変更が前記第1のデータオブジェクトに対して適切である場合、前記受信された変更を前記第1のデータオブジェクトに適用するステップとを含むことを特徴とする方法。
  2. 同期を構成するステップは、前記第1のコンピューティングデバイスと同期させる許可に関して前記第2のコンピューティングデバイスを調べるステップを含むことを特徴とする請求項1に記載の方法。
  3. 同期を構成するステップは、前記第1のコンピューティングデバイスと前記第2のコンピューティングデバイスの間における通信のための暗号化パラメータをセットアップするステップを含むことを特徴とする請求項1に記載の方法。
  4. 前記第1のデータオブジェクトと前記第2のデータオブジェクトの間で同期を構成するステップは、前記第1のデータオブジェクトと前記第2のデータオブジェクトを同一の状態にするステップを含むことを特徴とする請求項1に記載の方法。
  5. 前記第1のデータオブジェクトと前記第2のデータオブジェクトを同一の状態にするステップは、
    前記第1のデータオブジェクトのデータが前記第2のデータオブジェクトのデータより新しい場合、または前記第2のデータオブジェクトが存在しない場合、前記第1のデータオブジェクトのコピーを前記第2のコンピューティングデバイスに伝送するステップと、
    前記第2のデータオブジェクトのデータが前記第1のデータオブジェクトのデータより新しい場合、または前記第1のデータオブジェクトが存在しない場合、前記第2のコンピューティングデバイスから前記第2のデータオブジェクトのコピーを受信し、前記第2のデータオブジェクトの前記受信されたコピーから前記第1のデータオブジェクトを更新するステップとを含むことを特徴とする請求項4に記載の方法。
  6. 前記第1のデータオブジェクトは、第1のフォルダであり、
    前記第2のデータオブジェクトは、第2のフォルダであり、
    前記第1のデータオブジェクトと前記第2のデータオブジェクトを同一の状態にするステップは、
    前記第1のフォルダ内に含まれる各第3のデータオブジェクトに関して、前記第3のデータオブジェクトを前記第2のフォルダ内の対応する第4のデータオブジェクトと同一の状態にするステップと、
    前記第2のコンピューティングデバイスからデータオブジェクトのコピーを受信し、前記第1のフォルダ内で対応するデータオブジェクトが存在しないそれぞれの受信されたコピーに関して、前記受信されたコピーから前記第1のデータフォルダ内で新しいデータオブジェクトを生成するステップとを含むことを特徴とする請求項4に記載の方法。
  7. 変更に関して前記第1のデータオブジェクトを監視するステップは、前記第1のコンピューティングデバイス上でファイルシステムに対する呼出しを代行受信するステップを含むことを特徴とする請求項1に記載の方法。
  8. 変更に関して前記第1のデータオブジェクトを監視するステップは、第1のファイルの属性が変更されたこと、前記第1のファイル内のデータが変更されたこと、前記第1のファイルが移動されたこと、および前記第1のファイルが削除されたことから成るグループから選択された変更に関して前記第1のファイルを監視するステップを含むことを特徴とする請求項1に記載の方法。
  9. 変更に関して前記第1のデータオブジェクトを監視するステップは、第1のフォルダが変更されたこと、前記第1のフォルダ内で第3のデータオブジェクトが生成されたこと、前記第1のフォルダが移動されたこと、および前記第1のフォルダが削除されたことから成るグループから選択された変更に関して前記第1のフォルダを監視するステップを含むことを特徴とする請求項1に記載の方法。
  10. 変更に関して前記第1のフォルダ内の第3のデータオブジェクトを監視するステップをさらに含むことを特徴とする請求項9に記載の方法。
  11. 変更に関して第3のデータオブジェクトを監視するステップは、前記第3のデータオブジェクトの属性が変更されたこと、前記第3のデータオブジェクト内のデータが変更されたこと、前記第3のデータオブジェクト内で第4のオブジェクトが生成されたこと、前記第3のデータオブジェクトが移動されたこと、および前記第3のデータオブジェクトが削除されたことから成るグループから選択された変更に関して前記第3のデータオブジェクトを監視するステップを含むことを特徴とする請求項10に記載の方法。
  12. 前記第3のデータオブジェクトが変更された場合、前記第3のデータオブジェクトに対する前記変更の通知を前記第2のコンピューティングデバイスに伝送するステップをさらに含むことを特徴とする請求項10に記載の方法。
  13. 前記第3のデータオブジェクトが変更された場合、前記第3のデータオブジェクトに対する変更が前記第2のコンピューティングデバイス上の変更と同期させられるべきかどうかを調べ、前記第3のデータオブジェクトに対する変更が同期させられるべき場合、前記第3のデータオブジェクトに対する前記変更の通知を前記第2のコンピューティングデバイスに伝送するステップをさらに含むことを特徴とする請求項10に記載の方法。
  14. 前記第1のデータオブジェクトを監視するステップは、第1のゴーストを監視するステップを含み、
    前記受信された変更は、前記受信された変更が、前記第2のデータオブジェクトの属性が変更されたこと、前記第2のデータオブジェクトが移動されたこと、および前記第2のデータオブジェクトが削除されたことから成るグループから選択されている場合、前記第1のゴーストに対して適切であることを特徴とする請求項1に記載の方法。
  15. 前記第1のデータオブジェクトを監視するステップは、前記第1のデータオブジェクトの変更時刻を前記第2のデータオブジェクトの変更時刻と比べるステップを含むことを特徴とする請求項1に記載の方法。
  16. 前記第2のコンピューティングデバイスに伝送するステップは、シリアル通信線、パラレル通信線、ローカルエリアネットワーク、イントラネット、モデムリンク、およびインターネットから成るグループから選択された通信媒体を介して伝送するステップを含むことを特徴とする請求項1に記載の方法。
  17. 前記変更の通知を伝送するステップは、XML形式に設定された通知を伝送するステップを含むことを特徴とする請求項1に記載の方法。
  18. 前記第1のデータオブジェクトに対する変更の通知が伝送された場合、前記伝送された変更を前記第2のデータオブジェクトに適用することに関して前記第2のコンピューティングデバイスからのステータス情報を調べるステップと、
    前記第2のデータオブジェクトに対する変更の通知が受信された場合、前記受信された変更を前記第1のデータオブジェクトに適用することに関してステータス情報を前記第2のコンピューティングデバイスに提供するステップとをさらに含むことを特徴とする請求項1に記載の方法。
  19. 前記第1のデータオブジェクトに対する提案の変更を代行受信するステップと、
    前記提案の変更が前記第2のコンピューティングデバイスに対して不測の効果をもたらす可能性がある場合、前記可能な不測の効果について前記第1のコンピューティングデバイスのユーザに警報を出すステップとをさらに含むことを特徴とする請求項1に記載の方法。
  20. 前記第1のデータオブジェクトは、第1のフォルダであり、
    前記第2のデータオブジェクトは、第2のフォルダであり、
    前記提案の変更は、第3のデータオブジェクトを前記第1のフォルダ内から前記第1のフォルダの外部の第1の場所に移動することを含み、
    ユーザに警報を出すステップは、前記提案の変更が、前記第2のコンピューティングデバイス上で前記第1のコンピューティングデバイスの前記第1の場所に対応する第2の場所に新しいデータオブジェクトを生成することなく、前記第2のフォルダ内の前記第3のデータオブジェクトに対応する第4のデータオブジェクトを削除することになるという警報を出すステップを含むことを特徴とする請求項19に記載の方法。
  21. 前記第1のデータオブジェクトは、第1のフォルダであり、
    前記第2のデータオブジェクトは、第2のフォルダであり、
    前記提案の変更は、第3のデータオブジェクトを前記第1のフォルダの外部の場所から前記第1のフォルダ内に移動することを含み、
    ユーザに警報を出すステップは、前記提案の変更が、前記第1のコンピューティングデバイス上の前記第1の場所に対応する前記第2のコンピューティングデバイス上の第2の場所で第4のデータオブジェクトを削除することなく、前記第2のフォルダ内で前記第3のデータオブジェクトに対応する新しいデータオブジェクトを生成することになるという警報を出すステップを含むことを特徴とする請求項19に記載の方法。
  22. 前記第1のデータオブジェクトに対する変更の通知を収集するステップと、
    スケジュール、通知を伝送するための前記第1のコンピューティングデバイスの可用性、および通知を受信するための前記第2のコンピューティングデバイスの可用性から成るグループから選択された基準により前記収集された通知を前記第2のコンピューティングデバイスに伝送するステップとをさらに含むことを特徴とする請求項1に記載の方法。
  23. 前記第2のコンピューティングデバイスとの同期を一時停止するコマンドを受信すると、前記第1のデータオブジェクトに対する変更の通知を収集し、同期を再開するコマンドが受信されるまで前記第2のコンピューティングデバイスに前記通知を伝送しないステップをさらに含むことを特徴とする請求項1に記載の方法。
  24. 前記第1のデータオブジェクトと第3のコンピューティングデバイス上の第3のデータオブジェクトの間の同期を構成するステップと、
    前記第1のデータオブジェクトが変更された場合、前記第1のデータオブジェクトに対する前記変更の通知を前記第3のコンピューティングデバイスに伝送するステップと、
    前記第3のデータオブジェクトに対する変更の通知を聴取するステップと、
    前記第3のデータオブジェクトに対する変更の通知が受信された場合、前記受信された変更を前記第1のデータオブジェクトに適用するステップとをさらに含むことを特徴とする請求項1に記載の方法。
  25. 第1のコンピューティングデバイス上の第1のデータオブジェクトに対する変更を第2のコンピューティングデバイス上の第2のデータオブジェクトに対する変更と同期させるための方法を前記第1のコンピューティングデバイス上で行うための命令を含むコンピュータ可読媒体であって、
    方法は、
    前記第1のデータオブジェクトと前記第2のデータオブジェクトの間で同期を構成するステップと、
    変更に関して前記第1のデータオブジェクトを監視するステップと、
    前記第1のデータオブジェクトが変更された場合、前記第1のデータオブジェクトに対する前記変更の通知を前記第2のコンピューティングデバイスに伝送するステップと、
    前記第2のデータオブジェクトに対する変更の通知を聴取するステップと、
    前記第2のデータオブジェクトに対する変更の通知が受信され、かつ前記受信された変更が前記第1のデータオブジェクトに対して適切である場合、前記受信された変更を前記第1のデータオブジェクトに適用するステップとを含むことを特徴とする媒体。
  26. 第1のコンピューティングデバイス上で前記第1のコンピューティングデバイス上の第1のデータオブジェクトに対する変更を第2のコンピューティングデバイス上の第2のデータオブジェクトに対する変更と同期させるための方法であって、
    前記第1のデータオブジェクトと前記第2のデータオブジェクトの間で同期を構成するステップと、
    変更に関して前記第1のデータオブジェクトを監視するステップと、
    前記第1のデータオブジェクトが変更され、かつ前記変更が前記第2のデータオブジェクトに対して適切である場合、前記第1のデータオブジェクトに対する前記変更の通知を前記第2のコンピューティングデバイスに伝送するステップと、
    前記第2のデータオブジェクトに対する変更の通知を聴取するステップと、
    前記第2のデータオブジェクトに対する変更の通知が受信され、かつ前記受信された変更が前記第1のデータオブジェクトに対して適切である場合、前記受信された変更を前記第1のデータオブジェクトに適用するステップとを含むことを特徴とする方法。
  27. 前記第2のデータオブジェクトは、ゴーストであり、
    前記第1のデータオブジェクトに対する前記変更は、前記変更が、前記第1のデータオブジェクトの属性が変更されたこと、前記第1のデータオブジェクトが移動されたこと、および前記第1のデータオブジェクトが削除されたことから成るグループから選択されている場合、前記ゴーストに対して適切であることを特徴とする請求項26に記載の方法。
  28. 第1のコンピューティングデバイス上の第1のデータオブジェクトに対する変更を第2のコンピューティングデバイス上の第2のデータオブジェクトに対する変更と同期させるための方法を前記第1のコンピューティングデバイス上で行うための命令を含むコンピュータ可読媒体であって、
    方法は、
    前記第1のデータオブジェクトと前記第2のデータオブジェクトの間で同期を構成するステップと、
    変更に関して前記第1のデータオブジェクトを監視するステップと、
    前記第1のデータオブジェクトが変更され、前記変更が前記第2のデータオブジェクトに対して適切である場合、前記第1のデータオブジェクトに対する前記変更の通知を前記第2のコンピューティングデバイスに伝送するステップと、
    前記第2のデータオブジェクトに対する変更の通知を聴取するステップと、
    前記第2のデータオブジェクトに対する変更の通知が受信され、かつ前記受信された変更が前記第1のデータオブジェクトに対して適切である場合、前記受信された変更を前記第1のデータオブジェクトに適用するステップとを含むことを特徴とする媒体。
  29. データオブジェクト同期を構成するためのシステムであって、
    同期のためのデータオブジェクトを選択すること、データオブジェクトの選択を解除すること、同期のための第2のコンピューティングデバイスを選択すること、第2のコンピューティングデバイスの選択を解除すること、第2のコンピューティングデバイスとの同期のためのスケジュールを設定すること、第2のコンピューティングデバイスとの同期を一時停止すること、第2のコンピューティングデバイスとの同期を再開すること、およびデータオブジェクトの同期ステータスを報告することから成るグループから選択されたオプションを第1のコンピューティングデバイスのユーザに提示するインターフェースと、
    前記ユーザのデータオブジェクト同期選択を実施するためのデータオブジェクトシンクロナイザと、
    選択された第2のコンピューティングデバイスに同期情報を通信するための通信機構とを含むことを特徴とするシステム。
JP2004056908A 2003-02-28 2004-03-01 ピアコンピューティングデバイスの間で共用されるデータを同期させるための方法およびシステム Pending JP2004265418A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/376,430 US7743022B2 (en) 2003-02-28 2003-02-28 Method and system for synchronizing data shared among peer computing devices

Publications (2)

Publication Number Publication Date
JP2004265418A true JP2004265418A (ja) 2004-09-24
JP2004265418A5 JP2004265418A5 (ja) 2007-04-19

Family

ID=32771491

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004056908A Pending JP2004265418A (ja) 2003-02-28 2004-03-01 ピアコンピューティングデバイスの間で共用されるデータを同期させるための方法およびシステム

Country Status (5)

Country Link
US (1) US7743022B2 (ja)
EP (1) EP1452978A3 (ja)
JP (1) JP2004265418A (ja)
KR (1) KR20040077566A (ja)
CN (1) CN1542637B (ja)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006236350A (ja) * 2005-02-22 2006-09-07 Microsoft Corp ゴースト化による同期
JP2007087318A (ja) * 2005-09-26 2007-04-05 Sharp Corp 通信プログラム、記録媒体、通信方法および通信端末装置
JP2007114998A (ja) * 2005-10-20 2007-05-10 Sony Corp 中継装置、記憶装置及び記憶システム
JP2009501396A (ja) * 2005-07-14 2009-01-15 マイクロソフト コーポレーション ストレージボリューム上のファイルから空きスペースの代替ロケーションへのデータの移動
JP2009501390A (ja) * 2005-07-14 2009-01-15 マイクロソフト コーポレーション 領域を解放するための、ストレージボリューム上のファイルから代替ロケーションへのデータの移動
JP2009508231A (ja) * 2005-09-09 2009-02-26 マイクロソフト コーポレーション アプリケーション間でのxmlデータのリアルタイム同期
US7882168B2 (en) 2006-01-20 2011-02-01 Brother Kogyo Kabushiki Kaisha Contents distribution system, node apparatus and information processing method thereof, as well as recording medium on which program thereof is recorded
JP4635615B2 (ja) * 2005-01-17 2011-02-23 富士ゼロックス株式会社 情報処理装置、システム、データ同期方法及びプログラム
JP2011090158A (ja) * 2009-10-22 2011-05-06 Funai Electric Co Ltd 画像表示装置および画像表示システム
KR20140117421A (ko) * 2012-01-19 2014-10-07 마이크로소프트 코포레이션 클라우드 콘텐츠 인식 기법
JP2015084243A (ja) * 2006-08-22 2015-04-30 アマゾン テクノロジーズ インコーポレイテッド 高可用性データを提供するためのシステム及び方法
US9110877B2 (en) 2004-09-30 2015-08-18 Microsoft Technology Licensing, Llc Method and apparatus for utilizing an extensible markup language schema for managing specific types of content in an electronic document

Families Citing this family (143)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4323853B2 (ja) * 2003-04-11 2009-09-02 キヤノン株式会社 更新通知装置及び方法、並びにプログラム及び記憶媒体
US7640324B2 (en) * 2003-04-15 2009-12-29 Microsoft Corporation Small-scale secured computer network group without centralized management
US7650563B2 (en) * 2003-07-18 2010-01-19 Microsoft Corporation Aggregating metadata for media content from multiple devices
US8200775B2 (en) 2005-02-01 2012-06-12 Newsilike Media Group, Inc Enhanced syndication
US20050218739A1 (en) * 2004-04-01 2005-10-06 Microsoft Corporation System and method for sharing objects between computers over a network
US8316088B2 (en) 2004-07-06 2012-11-20 Nokia Corporation Peer-to-peer engine for object sharing in communication devices
WO2006018843A2 (en) * 2004-08-16 2006-02-23 Beinsync Ltd. A system and method for the synchronization of data across multiple computing devices
US7552238B2 (en) * 2004-09-30 2009-06-23 Hewlett-Packard Development Company, L.P. Method and apparatus for maintaining network device configurations
WO2006053019A2 (en) * 2004-11-08 2006-05-18 Sharpcast, Inc. Method and apparatus for a file sharing and synchronization system
US7801854B2 (en) * 2004-11-15 2010-09-21 Microsoft Corporation Managing lists and other items in an electronic file system
US8856467B2 (en) * 2004-11-18 2014-10-07 International Business Machines Corporation Management of metadata in a storage subsystem
US7788237B2 (en) * 2004-12-17 2010-08-31 Microsoft Corporation Method and system for tracking changes in a document
WO2006069228A2 (en) * 2004-12-22 2006-06-29 Musicgiants, Inc. Unified media collection system
US8700738B2 (en) 2005-02-01 2014-04-15 Newsilike Media Group, Inc. Dynamic feed generation
US8347088B2 (en) 2005-02-01 2013-01-01 Newsilike Media Group, Inc Security systems and methods for use with structured and unstructured data
US9202084B2 (en) 2006-02-01 2015-12-01 Newsilike Media Group, Inc. Security facility for maintaining health care data pools
US8140482B2 (en) 2007-09-19 2012-03-20 Moore James F Using RSS archives
US20070050446A1 (en) 2005-02-01 2007-03-01 Moore James F Managing network-accessible resources
US8010498B2 (en) * 2005-04-08 2011-08-30 Microsoft Corporation Virtually infinite reliable storage across multiple storage devices and storage services
US20060242206A1 (en) * 2005-04-22 2006-10-26 Microsoft Corporation System and method for peer to peer synchronization of files
US7970017B2 (en) * 2005-07-13 2011-06-28 At&T Intellectual Property I, L.P. Peer-to-peer synchronization of data between devices
US7506004B2 (en) * 2005-07-14 2009-03-17 Microsoft Corporation Moving data from file on storage volume to alternate location to free space
US7505986B2 (en) * 2005-07-14 2009-03-17 Microsoft Corporation Moving data from file on storage volume to alternate location to free space
US7873681B2 (en) * 2005-07-14 2011-01-18 Microsoft Corporation Moving data from file on storage volume to alternate location to free space
US7383292B2 (en) * 2005-07-14 2008-06-03 Microsoft Corporation Moving data from file on storage volume to alternate location to free space
KR100739729B1 (ko) * 2005-09-03 2007-07-13 삼성전자주식회사 디지털 방송 네트워크에서 서버와 클라이언트 간 epg정보를 동기화시키기 위한 방법 및 장치
US20070143446A1 (en) * 2005-12-21 2007-06-21 Morris Robert P Methods, systems, and computer program products for installing an application from one peer to another including application configuration settings and data
US20070162594A1 (en) * 2006-01-12 2007-07-12 Microsoft Corporation Controlled disconnection of a network device
US8510404B2 (en) * 2006-04-03 2013-08-13 Kinglite Holdings Inc. Peer to peer Synchronization system and method
GB0607294D0 (en) 2006-04-11 2006-05-24 Nokia Corp A node
US9898517B2 (en) * 2006-04-21 2018-02-20 Adobe Systems Incorporated Declarative synchronization of shared data
TW200743028A (en) * 2006-05-12 2007-11-16 Benq Corp State synchronization apparatuses and methods
US20070283050A1 (en) * 2006-06-05 2007-12-06 Seagate Technology, Llc Scheduling reporting of synchronization states
US7861005B2 (en) * 2006-06-12 2010-12-28 Research In Motion Limited Method and apparatus for folder synchronization and management
US8370423B2 (en) 2006-06-16 2013-02-05 Microsoft Corporation Data synchronization and sharing relationships
US20080046437A1 (en) * 2006-07-27 2008-02-21 Wood Charles B Manual Conflict Resolution for Background Synchronization
US20080027996A1 (en) * 2006-07-31 2008-01-31 Morris Robert P Method and system for synchronizing data using a presence service
US8020112B2 (en) * 2006-11-06 2011-09-13 Microsoft Corporation Clipboard augmentation
US20080109464A1 (en) * 2006-11-06 2008-05-08 Microsoft Corporation Extending Clipboard Augmentation
US8453066B2 (en) 2006-11-06 2013-05-28 Microsoft Corporation Clipboard augmentation with references
US7921189B2 (en) * 2006-11-20 2011-04-05 Microsoft Corporation Single virtual client for multiple client access and equivalency
US7805420B2 (en) * 2006-11-20 2010-09-28 Microsoft Corporation Versioning and concurrency control for multiple client access of data
GB2444344A (en) * 2006-12-01 2008-06-04 David Irvine File storage and recovery in a Peer to Peer network
US7548923B2 (en) * 2007-01-05 2009-06-16 Microsoft Corporation Sync configuration and discovery support
US8266706B2 (en) * 2007-01-26 2012-09-11 Microsoft Corporation Cryptographically controlling access to documents
US8751442B2 (en) 2007-02-12 2014-06-10 Microsoft Corporation Synchronization associated duplicate data resolution
US7930270B2 (en) * 2007-02-26 2011-04-19 Microsoft Corporation Managing files on multiple computing devices
US7933296B2 (en) * 2007-03-02 2011-04-26 Microsoft Corporation Services for data sharing and synchronization
US7756995B1 (en) * 2007-03-28 2010-07-13 Amazon Technologies, Inc. Regulating transmission rates
US7900203B2 (en) * 2007-04-24 2011-03-01 Microsoft Corporation Data sharing and synchronization with relay endpoint and sync data element
US7725456B2 (en) * 2007-04-27 2010-05-25 Microsoft Corporation Item management with data sharing and synchronization
US8677270B2 (en) 2007-05-04 2014-03-18 Microsoft Corporation Live companion user interface
US7831558B2 (en) * 2007-06-22 2010-11-09 Microsoft Corporation Bi-directional data modification with synchronization
US8954507B2 (en) * 2007-06-22 2015-02-10 Microsoft Corporation Gathering and using awareness information
US8239479B2 (en) 2007-06-22 2012-08-07 Microsoft Corporation Server-assisted and peer-to-peer synchronization
US7720920B2 (en) * 2007-06-27 2010-05-18 Microsoft Corporation Client side based data synchronization and storage
US8887298B2 (en) * 2007-07-13 2014-11-11 Microsoft Corporation Updating and validating documents secured cryptographically
US8887297B2 (en) * 2007-07-13 2014-11-11 Microsoft Corporation Creating and validating cryptographically secured documents
CN100501744C (zh) * 2007-09-29 2009-06-17 腾讯科技(深圳)有限公司 一种文档同步方法及系统
US20090112870A1 (en) * 2007-10-31 2009-04-30 Microsoft Corporation Management of distributed storage
WO2009062182A1 (en) * 2007-11-09 2009-05-14 Topia Technology Architecture for management of digital files across distributed network
CN101471845B (zh) * 2007-12-27 2011-06-15 中国移动通信集团公司 数据块副本数量调整方法及元数据服务器节点
JP4416035B2 (ja) * 2007-12-28 2010-02-17 村田機械株式会社 中継サーバ及び中継通信システム
JP4549396B2 (ja) * 2008-01-18 2010-09-22 日立オートモティブシステムズ株式会社 車両制御装置
US8086565B2 (en) * 2008-02-18 2011-12-27 Microsoft Corporation File system watcher in the presence of different file systems
US20090234872A1 (en) * 2008-03-11 2009-09-17 Microsoft Corporation Synchronization of disconnected/offline data processing/entry
US9213699B2 (en) * 2008-04-30 2015-12-15 Aspect Software Inc. Super-object in administering system
US8296671B2 (en) 2008-05-01 2012-10-23 Microsoft Corporation Enabling access to rich data by intercepting paste operations
US8244681B2 (en) * 2008-06-09 2012-08-14 Symantec Operating Corporation Creating synthetic backup images on a remote computer system
US8090681B2 (en) * 2008-06-26 2012-01-03 Microsoft Corporation Resolving conflicts in content management systems
US8649276B2 (en) * 2008-07-31 2014-02-11 Microsoft Corporation Content transfer
US8103718B2 (en) 2008-07-31 2012-01-24 Microsoft Corporation Content discovery and transfer between mobile communications nodes
US8458128B2 (en) * 2008-08-26 2013-06-04 Microsoft Corporation Minimal extensions required for multi-master offline and collaboration for devices and web services
US8799214B2 (en) * 2008-11-21 2014-08-05 At&T Intellectual Property I, L.P. Methods, computer program products, and systems for automatically synchronizing directory structures across different applications
CN101459697B (zh) * 2009-01-07 2012-01-04 清华大学 一种共享文件的访问方法和装置
US9065868B2 (en) 2009-04-08 2015-06-23 Blackberry Limited System and method for sharing data in a group of mobile devices
EP2528303B1 (en) * 2009-04-08 2014-07-02 BlackBerry Limited System and method for sharing data in a group of mobile devices
US9917702B2 (en) * 2009-04-08 2018-03-13 Blackberry Limited System and method for managing items in a list shared by a group of mobile devices
US8694578B2 (en) * 2009-05-29 2014-04-08 Microsoft Corporation Swarm-based synchronization over a network of object stores
US20110149086A1 (en) * 2009-12-23 2011-06-23 Winbush Iii Amos Camera user content synchronization with central web-based records and information sharing system
US8503984B2 (en) * 2009-12-23 2013-08-06 Amos Winbush, III Mobile communication device user content synchronization with central web-based records and information sharing system
US8606889B2 (en) * 2010-01-21 2013-12-10 Microsoft Corporation Roaming application settings across multiple computing devices
US9418071B2 (en) * 2010-03-19 2016-08-16 Seagate Technology Llc Method and system for automatically initiating a file aggregation process between communicatively coupled devices
US20110231424A1 (en) * 2010-03-19 2011-09-22 Seagate Technology Llc Method and system for automated file aggregation on a storage device
US8719845B2 (en) * 2010-05-19 2014-05-06 Microsoft Corporation Sharing and synchronization of objects
US20120066590A1 (en) * 2010-09-10 2012-03-15 Jeffrey Harris Systems and Methods for Enhanced Font Management
US8983907B2 (en) * 2010-12-08 2015-03-17 Microsoft Technology Licensing, Llc Change notifications from an updated data representation
US8666997B2 (en) 2010-12-08 2014-03-04 Microsoft Corporation Placeholders returned for data representation items
CN102567388B (zh) * 2010-12-17 2013-10-09 日电(中国)有限公司 数据更新设备和方法
US8635187B2 (en) 2011-01-07 2014-01-21 Symantec Corporation Method and system of performing incremental SQL server database backups
US8700986B1 (en) 2011-03-18 2014-04-15 Google Inc. System and method for displaying a document containing footnotes
US9069829B2 (en) * 2011-01-21 2015-06-30 Microsoft Technology Licensing, Llc Data items manager
JP5652480B2 (ja) * 2011-02-10 2015-01-14 日本電気株式会社 データベース更新通知方法
US8510266B1 (en) 2011-03-03 2013-08-13 Google Inc. System and method for providing online data management services
EP2707810A1 (en) 2011-05-10 2014-03-19 Thomson Licensing Technique for synchronized content sharing
US8838533B2 (en) 2011-05-20 2014-09-16 Microsoft Corporation Optimistic application of data edits
US9049176B2 (en) 2011-06-22 2015-06-02 Dropbox, Inc. File sharing via link generation
CN103095769B (zh) * 2011-11-04 2015-12-09 阿里巴巴集团控股有限公司 跨机房的数据同步方法以及系统
US9355115B2 (en) * 2011-11-21 2016-05-31 Microsoft Technology Licensing, Llc Client application file access
US9141634B2 (en) * 2012-01-21 2015-09-22 Huawei Technologies Co., Ltd. Method for automatic data replication and terminal
CN102662901A (zh) * 2012-04-11 2012-09-12 南方电网科学研究院有限责任公司 一种一体化电力信息总线参数同步的实现方法
US10057318B1 (en) 2012-08-10 2018-08-21 Dropbox, Inc. System, method, and computer program for enabling a user to access and edit via a virtual drive objects synchronized to a plurality of synchronization clients
CH706996A1 (en) * 2012-09-20 2014-03-31 Ferag Ag Operating unit with applications for operating production systems.
US9632771B2 (en) * 2012-12-13 2017-04-25 Microsoft Technology Licensing, Llc Association of metadata with source code and applications and services premised thereon
CN103873451B (zh) * 2012-12-17 2017-03-29 中国移动通信集团公司 一种数据同步的方法、设备和系统
US9338403B2 (en) 2013-01-23 2016-05-10 Google Inc. Persistent conversations
US9253223B1 (en) 2013-01-23 2016-02-02 Google Inc. Live interaction in persistent conversations
US9270630B1 (en) 2013-01-23 2016-02-23 Google Inc. Integrating communication modes in persistent conversations
US9369517B2 (en) 2013-03-01 2016-06-14 International Business Machines Corporation Synchronized data changes
US20140259005A1 (en) * 2013-03-08 2014-09-11 Air Computing, Inc. Systems and methods for managing files in a cloud-based computing environment
US9189533B2 (en) * 2013-05-29 2015-11-17 Microsoft Technology Licensing, Llc Sync framework extensibility
US10061836B2 (en) * 2013-06-04 2018-08-28 Varonis Systems, Ltd. Delegating resembling data of an organization to a linked device
US9930132B2 (en) * 2014-01-10 2018-03-27 Facebook, Inc. Content specific router caching
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
CN103944709A (zh) * 2014-03-26 2014-07-23 小米科技有限责任公司 一种数据同步方法及装置
US10140309B2 (en) * 2014-06-10 2018-11-27 Alfresco Software, Inc. File tracking on client machines synchronized with a content management system repository
US9626367B1 (en) 2014-06-18 2017-04-18 Veritas Technologies Llc Managing a backup procedure
US10291735B2 (en) 2014-07-23 2019-05-14 Facebook, Inc. Residential cache appliance utilizing a social network
US10397357B2 (en) 2014-07-23 2019-08-27 Facebook, Inc. Rural area network device
FR3024869B1 (fr) * 2014-08-14 2016-08-26 Zodiac Aero Electric Systeme de distribution electrique pour un aeronef et procede de commande correspondant
US10616328B2 (en) 2014-08-27 2020-04-07 Hewlett-Packard Development Company, L.P. Updating files between computing devices via a wireless connection
US10205797B2 (en) 2014-12-29 2019-02-12 Facebook, Inc. Application service delivery through an application service avatar
CA2977696C (en) * 2015-01-30 2018-01-02 Dropbox, Inc. Storage constrained synchronization of shared content items
US9185164B1 (en) 2015-01-30 2015-11-10 Dropbox, Inc. Idle state triggered constrained synchronization of shared content items
US9563638B2 (en) 2015-01-30 2017-02-07 Dropbox, Inc. Selective downloading of shared content items in a constrained synchronization system
US10831715B2 (en) 2015-01-30 2020-11-10 Dropbox, Inc. Selective downloading of shared content items in a constrained synchronization system
US10248705B2 (en) 2015-01-30 2019-04-02 Dropbox, Inc. Storage constrained synchronization of shared content items
US9413824B1 (en) 2015-01-30 2016-08-09 Dropbox, Inc. Storage constrained synchronization of content items based on predicted user access to shared content items using retention scoring
US9361349B1 (en) 2015-01-30 2016-06-07 Dropbox, Inc. Storage constrained synchronization of shared content items
US10719532B2 (en) 2016-04-25 2020-07-21 Dropbox, Inc. Storage constrained synchronization engine
US10049145B2 (en) 2016-04-25 2018-08-14 Dropbox, Inc. Storage constrained synchronization engine
US11003632B2 (en) * 2016-11-28 2021-05-11 Open Text Sa Ulc System and method for content synchronization
US10057269B1 (en) 2017-04-21 2018-08-21 InfoSci, LLC Systems and methods for device verification and authentication
US10546139B2 (en) * 2017-04-21 2020-01-28 Ntropy Llc Systems and methods for securely transmitting large data files
US11463439B2 (en) 2017-04-21 2022-10-04 Qwerx Inc. Systems and methods for device authentication and protection of communication on a system on chip
US10565168B2 (en) 2017-05-02 2020-02-18 Oxygen Cloud, Inc. Independent synchronization with state transformation
US11301431B2 (en) 2017-06-02 2022-04-12 Open Text Sa Ulc System and method for selective synchronization
US10678809B2 (en) 2017-09-11 2020-06-09 Microsoft Technology Licensing, Llc Synchronizing non-file content stored on a collaborative workspace environment
US11334596B2 (en) 2018-04-27 2022-05-17 Dropbox, Inc. Selectively identifying and recommending digital content items for synchronization
US11237692B2 (en) * 2019-04-29 2022-02-01 Slack Technologies, Llc Method, apparatus and computer program product for providing a member calendar in a group-based communication system
CN114521256A (zh) * 2019-09-16 2022-05-20 阿韦瓦软件有限责任公司 用于在网络上和通过网络进行双向文件共享和同步的计算机化的系统和方法
US11550732B2 (en) 2020-02-22 2023-01-10 International Business Machines Corporation Calculating and adjusting ghost cache size based on data access frequency
US11281594B2 (en) 2020-02-22 2022-03-22 International Business Machines Corporation Maintaining ghost cache statistics for demoted data elements

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020120785A1 (en) * 2001-02-28 2002-08-29 Mobiliti, Inc. Application independent write monitoring method for fast backup and synchronization of files
WO2002075539A2 (en) * 2001-03-16 2002-09-26 Novell, Inc. Client-server model for synchronization of files

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US19857A (en) * 1858-04-06 Henry a
US99728A (en) * 1870-02-08 Improved process op treating petroleum
US95497A (en) * 1869-10-05 James r
US194171A (en) * 1877-08-14 Improvement in wringing-machines
US3086A (en) * 1843-05-12 Seth lamb
US4780821A (en) 1986-07-29 1988-10-25 International Business Machines Corp. Method for multiple programs management within a network having a server computer and a plurality of remote computers
US4887204A (en) 1987-02-13 1989-12-12 International Business Machines Corporation System and method for accessing remote files in a distributed networking environment
DE69024753T2 (de) 1989-10-31 1996-05-30 Hewlett Packard Co Tragbarer, Ressourcen teilender Datei-Server, der gemeinsame Routines benutzt
GB2272312A (en) 1992-11-10 1994-05-11 Ibm Collaborative working in a network.
US5844553A (en) 1993-08-30 1998-12-01 Hewlett-Packard Company Mechanism to control and use window events among applications in concurrent computing
US5603019A (en) 1994-07-25 1997-02-11 International Business Machines Corporation Takeover technique for networked virtual filesystems
US5684984A (en) * 1994-09-29 1997-11-04 Apple Computer, Inc. Synchronization and replication of object databases
US5729682A (en) 1995-06-07 1998-03-17 International Business Machines Corporation System for prompting parameters required by a network application and using data structure to establish connections between local computer, application and resources required by application
US6147773A (en) * 1995-09-05 2000-11-14 Hewlett-Packard Company System and method for a communication system
US5708812A (en) 1996-01-18 1998-01-13 Microsoft Corporation Method and apparatus for Migrating from a source domain network controller to a target domain network controller
US6049809A (en) 1996-10-30 2000-04-11 Microsoft Corporation Replication optimization system and method
US5968121A (en) 1997-08-13 1999-10-19 Microsoft Corporation Method and apparatus for representing and applying network topological data
US6085199A (en) 1997-11-24 2000-07-04 International Business Machines Corporation Method for distributing a file in a plurality of different file formats
US6295541B1 (en) * 1997-12-16 2001-09-25 Starfish Software, Inc. System and methods for synchronizing two or more datasets
US6119116A (en) 1997-12-18 2000-09-12 International Business Machines Corp. System and method for accessing and distributing audio CD data over a network
US5950203A (en) * 1997-12-31 1999-09-07 Mercury Computer Systems, Inc. Method and apparatus for high-speed access to and sharing of storage devices on a networked digital data processing system
US6397192B1 (en) * 1998-06-05 2002-05-28 I2 Technologies Us, Inc. Synchronizing one or more workflows using one or more synchronization-join activities that include synchronization logic
US6381627B1 (en) 1998-09-21 2002-04-30 Microsoft Corporation Method and computer readable medium for discovering master DNS server computers for a given domain name in multiple master and multiple namespace configurations
US6324571B1 (en) 1998-09-21 2001-11-27 Microsoft Corporation Floating single master operation
US7076476B2 (en) 1999-03-02 2006-07-11 Microsoft Corporation Method and system for integrated service administration via a directory service
US6654771B1 (en) 1999-07-19 2003-11-25 Microsoft Corporation Method and system for network data replication
US6549916B1 (en) * 1999-08-05 2003-04-15 Oracle Corporation Event notification system tied to a file system
US6751634B1 (en) 1999-08-26 2004-06-15 Microsoft Corporation Method and system for detecting object inconsistency in a loosely consistent replicated directory service
US6505214B1 (en) 1999-09-28 2003-01-07 Microsoft Corporation Selective information synchronization based on implicit user designation
US7162499B2 (en) 2000-06-21 2007-01-09 Microsoft Corporation Linked value replication
US6938095B2 (en) * 2000-06-28 2005-08-30 Pluris, Inc. Method and apparatus for establishing and sharing a virtual change notification list among a plurality of peer nodes
US20050055382A1 (en) * 2000-06-28 2005-03-10 Lounas Ferrat Universal synchronization
US6954778B2 (en) 2000-07-12 2005-10-11 Microsoft Corporation System and method for accessing directory service via an HTTP URL
US7085833B2 (en) 2001-01-17 2006-08-01 Microsoft Corporation Caching user network access information within a network
US7275102B2 (en) * 2001-01-22 2007-09-25 Sun Microsystems, Inc. Trust mechanisms for a peer-to-peer network computing platform
US6643670B2 (en) 2001-02-27 2003-11-04 Microsoft Corporation Efficient replication of an expanded partial database
US6879564B2 (en) 2001-02-28 2005-04-12 Microsoft Corp. Method for designating communication paths in a network
US7103586B2 (en) * 2001-03-16 2006-09-05 Gravic, Inc. Collision avoidance in database replication systems
US6718352B1 (en) * 2001-03-20 2004-04-06 Emc Corporation Methods and apparatus for managing a data set stored on a data storage device
WO2002077862A1 (en) 2001-03-27 2002-10-03 British Telecommunications Public Limited Company File synchronisation
US7774307B2 (en) * 2001-07-24 2010-08-10 Siebel Systems, Inc. Method and apparatus for synchronizing a database with a third party database
US7203948B2 (en) * 2001-09-29 2007-04-10 Siebel Systems, Inc. Method, apparatus, and system for implementing caching of view custom options in a framework to support web-based applications
US7177935B2 (en) * 2001-10-05 2007-02-13 International Business Machines Corporation Storage area network methods and apparatus with hierarchical file system extension policy
IL162008A0 (en) * 2001-11-15 2005-11-20 Visto Corp System and methods for asychronous synchronization
US20030172070A1 (en) * 2002-03-06 2003-09-11 Sawadsky Nicholas Justin Synchronous peer-to-peer multipoint database synchronization
US6938042B2 (en) * 2002-04-03 2005-08-30 Laplink Software Inc. Peer-to-peer file sharing
US8037181B2 (en) 2002-06-28 2011-10-11 Microsoft Corporation Re-partitioning directories
US7668885B2 (en) * 2002-09-25 2010-02-23 MindAgent, LLC System for timely delivery of personalized aggregations of, including currently-generated, knowledge
US7640324B2 (en) 2003-04-15 2009-12-29 Microsoft Corporation Small-scale secured computer network group without centralized management

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020120785A1 (en) * 2001-02-28 2002-08-29 Mobiliti, Inc. Application independent write monitoring method for fast backup and synchronization of files
WO2002075539A2 (en) * 2001-03-16 2002-09-26 Novell, Inc. Client-server model for synchronization of files

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9110877B2 (en) 2004-09-30 2015-08-18 Microsoft Technology Licensing, Llc Method and apparatus for utilizing an extensible markup language schema for managing specific types of content in an electronic document
JP4635615B2 (ja) * 2005-01-17 2011-02-23 富士ゼロックス株式会社 情報処理装置、システム、データ同期方法及びプログラム
JP2006236350A (ja) * 2005-02-22 2006-09-07 Microsoft Corp ゴースト化による同期
JP2009501396A (ja) * 2005-07-14 2009-01-15 マイクロソフト コーポレーション ストレージボリューム上のファイルから空きスペースの代替ロケーションへのデータの移動
JP2009501390A (ja) * 2005-07-14 2009-01-15 マイクロソフト コーポレーション 領域を解放するための、ストレージボリューム上のファイルから代替ロケーションへのデータの移動
JP2009508231A (ja) * 2005-09-09 2009-02-26 マイクロソフト コーポレーション アプリケーション間でのxmlデータのリアルタイム同期
JP2007087318A (ja) * 2005-09-26 2007-04-05 Sharp Corp 通信プログラム、記録媒体、通信方法および通信端末装置
JP2007114998A (ja) * 2005-10-20 2007-05-10 Sony Corp 中継装置、記憶装置及び記憶システム
US7882168B2 (en) 2006-01-20 2011-02-01 Brother Kogyo Kabushiki Kaisha Contents distribution system, node apparatus and information processing method thereof, as well as recording medium on which program thereof is recorded
JP2015084243A (ja) * 2006-08-22 2015-04-30 アマゾン テクノロジーズ インコーポレイテッド 高可用性データを提供するためのシステム及び方法
US8775680B2 (en) 2009-10-22 2014-07-08 Funai Electric Co., Ltd. Image display and image display system
JP2011090158A (ja) * 2009-10-22 2011-05-06 Funai Electric Co Ltd 画像表示装置および画像表示システム
KR20140117421A (ko) * 2012-01-19 2014-10-07 마이크로소프트 코포레이션 클라우드 콘텐츠 인식 기법
JP2015505627A (ja) * 2012-01-19 2015-02-23 マイクロソフト コーポレーション クラウドコンテンツの認識
KR102030864B1 (ko) 2012-01-19 2019-10-10 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 클라우드 콘텐츠 인식 기법
KR20190116540A (ko) * 2012-01-19 2019-10-14 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 클라우드 콘텐츠 인식 기법
KR102120604B1 (ko) 2012-01-19 2020-06-08 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 클라우드 콘텐츠 인식 기법

Also Published As

Publication number Publication date
KR20040077566A (ko) 2004-09-04
CN1542637A (zh) 2004-11-03
US7743022B2 (en) 2010-06-22
US20040172423A1 (en) 2004-09-02
CN1542637B (zh) 2012-11-28
EP1452978A2 (en) 2004-09-01
EP1452978A3 (en) 2006-01-25

Similar Documents

Publication Publication Date Title
JP2004265418A (ja) ピアコンピューティングデバイスの間で共用されるデータを同期させるための方法およびシステム
US11803516B2 (en) System and method for selective synchronization
US20230315690A1 (en) System and method for content synchronization
US10848557B2 (en) Server-side selective synchronization
US10805389B2 (en) System, method, and computer program for enabling a user to access and edit via a virtual drive objects synchronized to a plurality of synchronization clients
US9396216B2 (en) Repository redundancy implementation of a system which incrementally updates clients with events that occurred via a cloud-enabled platform
US10110656B2 (en) Systems and methods for providing shell communication in a cloud-based platform
US20140337491A1 (en) Repository redundancy implementation of a system which incrementally updates clients with events that occurred via a cloud-enabled platform
US20150199414A1 (en) Locally cached file system
US20040143836A1 (en) System and method for sharing objects among two or more electronic devices
JP2008537255A (ja) ファイルのピアツーピア同期用システム及び方法
JP2009296578A (ja) 複数のソースから利用可能なメディアファイルの同期
TW200424868A (en) Method for managing file replication in applications
JP2020537212A (ja) クライアントデバイスによって実施されるコンテンツ管理システムのワークフロー機能
JP7355964B2 (ja) 外部ロケーションの同期
US20210294467A1 (en) Contact cards with dynamic interaction information
EP1480130A2 (en) Method and apparatus for moving data between storage devices
JP2011511362A (ja) マルチマスター同期環境のための知識ベース・フレームワークにおけるオブジェクトの起動および終了
US11070500B2 (en) Third-party integration in activity feeds
JP2005321922A (ja) 情報共有システムおよび情報共有用プログラム
JP7355959B2 (ja) 外部ロケーションの同期
US20240211351A1 (en) Resume backup of external storage device using multi-root system
US20240211445A1 (en) Identifying changes at each root namespace of a multi-root system
US20240211444A1 (en) Multi-root content management system
US20240211446A1 (en) Implementing different synchronization processes using a multi-root system

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070301

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070301

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091215

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100511