JP4685869B2 - 状態ベースの同期 - Google Patents
状態ベースの同期 Download PDFInfo
- Publication number
- JP4685869B2 JP4685869B2 JP2007520350A JP2007520350A JP4685869B2 JP 4685869 B2 JP4685869 B2 JP 4685869B2 JP 2007520350 A JP2007520350 A JP 2007520350A JP 2007520350 A JP2007520350 A JP 2007520350A JP 4685869 B2 JP4685869 B2 JP 4685869B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- history
- state
- data structure
- associating
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 claims description 95
- 230000008859 change Effects 0.000 claims description 45
- 230000015654 memory Effects 0.000 claims description 26
- 230000001360 synchronised effect Effects 0.000 claims description 25
- 235000014347 soups Nutrition 0.000 claims description 6
- 238000012217 deletion Methods 0.000 claims description 3
- 230000037430 deletion Effects 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 3
- 230000002596 correlated effect Effects 0.000 claims 1
- 230000003068 static effect Effects 0.000 claims 1
- 238000013507 mapping Methods 0.000 description 27
- 230000008569 process Effects 0.000 description 27
- 230000006870 function Effects 0.000 description 22
- 229920001690 polydopamine Polymers 0.000 description 12
- 230000009471 action Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 5
- 230000007704 transition Effects 0.000 description 5
- 230000037303 wrinkles Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000007547 defect Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000008570 general process Effects 0.000 description 2
- 238000010348 incorporation Methods 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011946 reduction process Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000031836 visual learning Effects 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1834—Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
- G06F16/1837—Management specially adapted to peer-to-peer storage networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Description
次の表に、参照として本明細書に組み込まれる、読み取り専用形式によるコンパクト・ディスクにリストされているコンピュータ・プログラム・リストとして提供される22のソース・コード・ファイルを示す。
本開示を通して、本発明者らは、同期技術と例示を検討するために、ある種の語彙を使用する。検討する説明の大部分は、同じPIMデータと同期に関するものである。しかし、本発明の多くの実施形態は、事実上いかなる種類のデータにも適用されることを明白に目的としている。本明細書で教示する技術を使用して同期することのできるいくつかのデータ例には、テキスト・ファイル、ワード・プロセッシング・ファイル、ファイル・システムからのファイル、jpeg、mp3、mpeg2、mpeg4、またはwavファイルなどのメディア・ファイル、データベースからの記録、または特定用途に関連するか否かに関わらない、いかなる他のデータ・ファイル・タイプがある。
本明細書に記載の技術は、事実上いかなる構造上の状況においても実施することができるが、ここでは、説明のためにいくつかの例示の構造上の実施形態について述べる。図2を参照すると、PDAまたは電話機などのサンプルの携帯型デバイスが示されている。上記のように、クライアント・デバイスは、ユーザに対してデータにアクセスし、またはデータを編集するのに役立つ十分な知能のある、いなかるアイテムでも実施することができる。したがって、図2のデバイスは、限定はしないが、あらゆるそのようなデバイスのサンプルをも説明することを目的としている。デバイス200の正面図201は、データを参照し、またはデータにアクセスするため、データを入力するために使用することのできる画面204を示す(タッチセンシティブな、または入力装備された画面例)。英数字などによるデータ入力のためにキーパッド205を使用することもでき、または電力および/またはデータ転送のために有線接続206を使用することもできる。無線ポート203は、赤外線、Bluetooth、802.11、またはデバイス200内外のデータを移動させるためのいかなる他の無線伝送であってもよい。次にデバイス200の内部202を検討すると、タスク処理を実行するためにプロセッサ209が存在すること分かる。本発明の実施形態は、プロセッサ209が、いかなるタイプのマイクロプロセッサまたはコントローラ、または1つまたは複数のデバイス機能を実施するための実行中のソフトウェア機能を実行する構成要素の集合体でもよいように、いかなるタイプのデバイスでも組み込むことができる。デバイス200は、メモリ207、208として示される、データとプログラムを記憶するための複数タイプのメモリを有している。これらのメモリは、磁気メモリ、光メモリなど、いかなるタイプであっても、またはSRAMやDRAMなどのシリコンベース・メモリの数あるタイプのうちのどれであってもよい。最後に、デバイス200は、場合によっては有線接続206と無線接続203とで実施されるようなI/O機能をサポートするための構成要素210を有することができる。
a.世代カウンティング
従来技術の問題点の多くは、各データ・セットまたはデータ・アイテムのためのデータ履歴情報を維持することにより解決策を見つけることができる。いくつかの実施形態で実現される1つの単純な形態では、世代カウントを維持することができる。具体的には、データが変更されるたびに、その変更を示すように世代カウントを増分することができる。さらに具体的には、世代カウントは、いかなるレベルのデータ・セットに対しても、すなわちPIMデータベースごと、データ・クラス・データベースごと、記録ごと、またはデータ・アイテムごとに維持することができる。世代カウントは、メタデータとして概念的に説明することができ、したがっていかなる周知の技術によりデータと関連付けることができる。例えば多くの実施形態では、世代カウントは、各データ・アイテムごとに維持され、データと共に記憶される。上記のように、他の実施形態は、データ・アイテムまたはデータ・アイテムのいくつかの集合体に関連付けられたデータ構造などの他の技術を使用することができる。
実際、単純な世代カウントより豊富な履歴の表示を維持するための重要な使用方法がある。例えば、本発明の多くの実施形態では、詳細な履歴データが維持される。図6を参照すると、より詳細な完全なデータ・アイテム履歴を使用するクライアントA、クライアントB、クライアントCを同期する態様を説明する表が示されている。具体的には、「ステップ」と名付けられた第1の欄は、混乱なく一連のアクションを参照することができるように説明の参照用であり、「アクション」と名付けられた第2の欄は、データ・アイテムの変更の原因となるアクションを示し、「データ」と名付けられた第3の欄は、全知の観点から対象となるデータ値を示し、第4、第5、第6の欄は、クライアントA、B、Cそれぞれの観点からそれぞれの列挙されたアクション後のデータのステータスと履歴情報とを示す。
以上、同期技術を改善し、強化するための、履歴ベースのメタデータの使用法について一般的に検討した。説明のために、構造の文脈にそれらの技術をおき、本発明の実施形態の一部のサンプルを検討することにする。これらの発明の実施形態の1つの利点は、以前の同期後にデータ・スナップショットの独立した維持を必ずしも必要としないということである。より具体的には、上記で説明したように、多くの既存の同期システムは、各同期の後にデータのスナップショットを保持する。このスナップショットは、どのデータが追加、変更、または削除されたかを特定するために、次の同期中に使用されるので、ユーザの編集とは独立して維持する必要がある。対照的に、本発明の多くの実施形態は、そのようなスナップショットの永続的な維持を必要とはしない。具体的には、システムが、履歴情報とデータ・アイテムの対応するメタデータとの両方を劇的に更新すると、別のスナップショットは必要なくなる。履歴データが、どのデータが本当に新しいかを判定する代替の、より包括的な方法を提供するので、これが可能となる。あるいは、本発明のいくつかの実施形態は、同期直前のスナップショットを単純に生成し、同期完了後にそのスナップショットを配置することにより、永続的なスナップショットを維持することを回避することができる。
上記のように、本発明の多くの実施形態は、状態ベースの同期技術を活用する。それにより、状態識別は各データ・アイテムまたはデータ・セットと関連付けられる。これらの実施形態では、データ・ストアで表示された状態は履歴ストアでも表示される。履歴ストア内で、状態は、限定はしないが、データ・アイテムの履歴に関する事実を含めてデータ・アイテムに関する事実と関連付けられる。マルチピア・システムでは、各クライアント・デバイスは、データ・ストアおよび/または履歴ストアを維持する。データ・アイテムが特定のデバイスに追加されるか、特定のデバイスで編集される場合(削除を含めて)、そのデータ・アイテムは新しい状態に割り当てられ、そのアイテムの状態変更を反映させるために、場合によっては1つの項目が履歴スペースに作られる。履歴スペースのその項目が「場合によって」だけである理由は、追加または編集されたデータ・アイテムの新しい状態が、別のデータ・アイテムの状態変更に対応して作成されたステートメントにより既に履歴ストアに反映されている可能性があるからである。したがって、履歴ストアの状態とそれらに付随するメタデータを、いくつかのデータ・アイテムに同時に適用できることは明らかである。さらに多くの実施形態では、履歴ストアの情報量を最低限に抑えることが望ましい。
上記のようにピア同期クライアントが動作すると仮定すると、最終的にそのような同期クライアントのどれか2つを同期させることが望ましい場合がある。いくつかの実施形態では、同期は非対称な形式で実行される。具体的には、第1のデバイスがそのデータ・ストアを第2のデバイスと同期し、次いで第2のデバイスがそのデータ・ストアを第1のデバイスと別個に同期する。多くの実施形態の場合、同期の実際のプロセスは、図7Aに示す2つの非常に一般的なステップを含む。第1のステップ701は、履歴ストアの情報(例えば、データ・アイテムの状態変更を述べるメタデータ)を同期させることである。第2のステップ702は、データ・ストアのデータ・アイテムを同期させることである。履歴情報が最初に同期されるので、データ・ストアの同期に役立てるために履歴ストアにある新しい履歴情報を使用することができる。
以上、履歴と履歴ステートメントの使用法について詳細に検討した。次に、履歴情報として使用するための、情報のタイプの例について検討する。履歴ステートメントの意味論を形成する際、多くの実施形態は、マシンの使用に向いたシンタックスを必要とする。したがって、これらの実施形態は、コンピュータに読み取りおよび/またはコンパイルを提供するためにソース・コード・タイプのフォーマットを使用することができる。いくつかの実施形態は、次の一般的なシンタックスを使用する。
図10は、本発明のいくつかの実施形態を実証し、テストするように書かれたプログラムから作成されたサンプルの集合体である。このプログラムは開発途上にあるが、これらの例は上記のシンタックス言語を使用して履歴ステートメントを作成することを説明している。参照のため、またより具体的な開示のために、実証プログラムのソース・コードを、本明細書の添付書類として添える。
以上、同期履歴ステートメントを一般的に検討したが、次に、既に紹介された履歴ステートメントの例を使用して同期技術の例を提供する。同期履歴ステートメントでは、多くの実施形態が一度に1方向に同期する。したがって図7Bを参照すると、デバイス704とデバイス703との間で履歴情報の2方向の同期の実行を試みる場合、まず(i)デバイス704の情報をデバイス703に組み込み、次に(ii)デバイス703の情報をデバイス704に組み込む。当然ながら、逆の順番も同様に機能する。それでもやはりそれらの実施形態は、1方向同期技術の適用を増大させることにより2方向同期を実行するので、ここでは1方向同期を検討することにする。
遠隔履歴ストアの履歴ステートメントをローカル履歴ストアに同期するための同期プロセスは、次の3ステップだけで簡単に述べることができる。(i)すべての遠隔状態に対応するように新しいローカル状態を作成する(外部または同等の状態タイプ・コマンドを使用して)、(ii)すべての遠隔履歴ステートメントをローカル履歴ステートメントに翻訳し、それをローカル・ストアに置き(ステップ(i)は、すべての必要な状態があることを保証する)、すべての遠隔履歴ステートメントを変換する、そして(iii)ローカル・ストアの複製を消去するよう試みる。しかしいくつかの実施形態では、履歴ステートメントの僅かにより複雑な5ステップ同期と比較した場合、この3ステップ・プロセスは比較的非効率的である。この5ステップについて、ターゲット(例えば、Beta履歴ストア)までに5つの段階を通過するものとして述べる。各段階は、履歴ステートメントの異なるタイプまたは異なる状況に対処するように設計されている。したがって各段階は、Alphaの履歴ストアに組み込むように新しい履歴ステートメントを作成することができる。しかし実質的な作業を開始する前に、動作環境に記号論理を提供する必要がある。例えば一般的なコンピュータ処理環境では、メモリを割り当てることができ、マッピング・テーブルまたは類似のデータ構造を作成することができる。このような「マッピング・テーブル」は、そのようなステートメントのリストが5段階を通して増加するかまたは変更されるので、新しいAlphaの新しい履歴ステートメントを維持するために使用される。さらに、テーブルなどの構造は、データ、他のメタデータまたはBeta起源履歴ステートメントなど、Alphaの新しい履歴ステートメントに対応する情報を維持するために使用される。
A1、外部、ベータ、B1
A2、外部、ベータ、B2
A3、外部、ベータ、B3。
上記のように、システム資源を消費する履歴ステートメント数を最低限に抑え、パフォーマンスを高めることが望ましい場合がある。したがって、いくつかの実施形態は、不要な履歴ステートメントを消去するために、不要部分の整理プロセスを使用する。不要部分の整理とは、削除できるものはあるか否か(それらがシステムの機能に不要なので)を判定するために履歴ストア内の履歴ステートメントを評価するプロセスである。一般に、不要部分の整理を有効にするには、それぞれのクライアントがすべての他のクライアントで使用中の状態と、すべての既知のクライアントで不要であるとされる不要部分の整理の状態だけとを追跡する。さらに具体的には、サンプル・プロセスを次に示す。
最初に、各クライアントは、それ自体とそれぞれの既知のピア同期クライアントとで使用中のすべての状態を追跡する。換言すれば、ある状態がデータ・ストアのオブジェクトを表すために使用されている場合、その状態は使用中である。例えば、図13Aを参照すると、データ・ストアに単一オブジェクト(Dog)1302がある。図の1301で示されるように、オブジェクトDogは状態5にある。これは、履歴ストア1303に示すように、このオブジェクトが作成され(第1の履歴ステートメントを生じて)、次いでユーザが4回編集したからである(各編集で新しい履歴ステートメントが生じる)。しかし、不要部分の整理のために、データ・ストア1305では状態5だけが使用中である。オブジェクトDog1302を、現在のところこの拡張システムの唯一のオブジェクトであると仮定すると(すべてのデータ、すべての同期クライアント)、次いで履歴ステートメント1310から1313が不要であることは直感的に分かる(他のクライアントにそれらの編集について伝えていない場合、オブジェクトDogを何回編集したかは問題ではない)。したがって、図13Bを参照すると、仮定したように、システムにおける13Aの同期クライアントの不要部分の整理の結果が示されている。図13Bを見ると分かるように、履歴ステートメント1310から1313は、ステートメント1314だけを残して削除されている(データ・ストアで使用される唯一のサブジェクト状態であるサブジェクト5と共に)。さらに、履歴ステートメント1315は、クライアント「Untitled」1320では状態5が使用中であり、Untitledに対する「user_edited」コマンドがその第1世代にあること(「1」)を記録するために追加される。
使用中の状態の追跡に加えて、指定された一組の使用中の状態があると仮定すると、どのクライアントに対してどの履歴ステートメントが必要かを理解するための機構である必要がある。所与のクライアントでデータ変更があるたびに、既知のクライアント1つ1つに対してどの履歴ステートメントが必須かを計算することができる。履歴ステートメントが既知のクライアントに対して必須の場合、次いでそれを保存する必要がある。例えば図14Aを参照すると、3つのクライアント1410、1430、1450を有する同期システムが示されている。図14Aと、図15のチャートの行1と2を参照すると、クライアント1410には作成された単一オブジェクトがあり、すべてのクライアント間で同期が行われている。次に図14Bと、図15の行3を参照すると、クライアント1410はデータ1411を編集し、その編集はデータ・ストアと履歴ストアとの両方に反映される(1410の状態2)。図15の(行3)コメントから分かるように、(状態2への)このデータ編集を維持する必要があるので、すべてのクライアントはそれについて知る必要がある。しかしクライアント1410は、もはや状態1履歴ステートメントは必要としないが、同じものを維持する必要がある。これは、クライアント1410は、クライアント1430と1450との存在については知っていても、それらがその変更を必要としていることは知らないからである。図14Cと、図15の行4を参照すると、データ・オブジェクト1411を再度編集し、それを状態3に移動し、対応する履歴ステートメントを作成する。次いで図15の行4のコメントを参照すると、すべてのクライアント1410、1430、1450はこの変更(状態3)を維持するために、この変更を要求する。しかし、クライアント1410は実際には、もはや、状態2は必要とせず(A’への変更)、関連する履歴ステートメントを維持する必要がある。これは、クライアント1430と1450とがそれを必要としているからである。次に図14Dと、図15の行5を参照すると、同期したクライアント1410と1430とがある。行5のコメントを参照すると、1410と1430とのどちらも、もはや、状態2または状態1を必要とはしていないが、1430が存在し、その状態を必要とする可能性があるという認識から、それを保存する。最後に、図14Eと図15の行6に移動し、次に3つすべてのクライアントを同期し、不要部分を整理する。次に状態1と2とが不要になったことは確かなので、サブジェクト状態1または2を有する履歴ステートメントを消去することができる。したがって、クライアントは、すべての他の既知のクライアントがその解放された状態を必要としないことを確信すると即座に、状態を解放することができることが分かる(その状態をサブジェクトとして有するいかなる履歴ステートメントでも)。
最後に、この情報を他のクライアントと共有するための機構(特定のクライアントがどのようにして、お互いクライアントが何を必要とする可能性があるかを知る)を有することができる。図14Aから14Eを見ると分かるように、この機構は、「in_use」コマンドを使用する履歴ステートメントである。上記のように、in_use履歴ステートメントは、次の情報のすべてを保持することができる。すなわち、サブジェクト状態インジケータ(常に「0」である)、in_useコマンド、最近のin_useコマンドだけが所与の同期クライアントと関連しているので、世代カウント(例では括弧内に示される)、そして最後に、使用中の状態リストである。それらの使用中のステートメントを維持し同期することにより、各クライアントは、他の既知のデバイスで使用中の状態は何か、最後に彼らが接続したのは何時か(恐らく、2方向に同期され、不要部分が整理される)を知ることができる。これは、デバイス1430と1450とのどちらもそれらの状態を必要としないことが検証されるまで、(上記の例では)クライアント1410がどのようにすれば状態1も2も破棄しないと知ることができるかということである。したがって、いくつかの実施形態では、それら他の同期クライアントが別のクライアントで必須の状態を処分しないように、in_use履歴ステートメントをそれら他の同期クライアントに同期する必要がある。
Claims (71)
- デバイスが、同期のためにデータと履歴データとの間の関連を維持する方法において、
前記デバイスの第1の作成手段が、第1のデータを作成するステップと、
前記デバイスの第2の作成手段が、前記第1のデータの前記作成に応答して、前記デバイスでデータが作成されたことを示す履歴データを作成するステップと、
前記デバイスの関連付け手段が、前記履歴データを前記第1のデータと関連付けるステップと、
前記デバイスの前記第1の作成手段が、前記第1のデータと同じ種類のデータであるが前記第1のデータとは異なる第2のデータを作成するステップと、そして
前記デバイスの前記関連付け手段が、前記履歴データを前記第2のデータと関連付けるステップと
を含む方法。 - 前記第1のデータが記録などのデータ・セットである請求項1に記載の方法。
- 前記第1のデータがデータ・アイテムである請求項1に記載の方法。
- 前記第1のデータが写真を表す請求項1に記載の方法。
- 前記第1のデータが音声を表す請求項1に記載の方法。
- 前記履歴データが、データを作成するデバイスの識別および性質に関する情報を含む請求項1に記載の方法。
- 前記デバイスの編集手段が、前記デバイス上で前記第1のデータを編集するステップと、
前記第2の作成手段が、前記第1のデータを編集したデバイスと、前記編集前の前記第1のデータについての情報とを含む、新しい履歴データを生成するステップと、
前記関連付け手段が、前記編集された第1のデータを前記新しい履歴データと関連付けるステップと
をさらに含む請求項1に記載の方法。 - データの同期を維持するためのデバイスにおいて、
第1のデータと、前記第1のデータと同じ種類の第2のデータとを作成するためのユーザ入力インタフェースと、
データが前記デバイスで作成されたことを示す第1の履歴ステートメントを作成し、また前記第1のデータ、前記第2のデータ、及び前記第1の履歴ステートメントを第1の状態に関連付けるためのプログラムされた命令を備えるプロセッサと、
前記第1のデータと前記第1の状態との間の前記関連付けと、前記第2のデータと前記第1の状態との間の前記関連付けとの両方を維持するための第1のデータ構造を記憶する第1のメモリと、
前記第1の履歴ステートメントと前記第1の状態との間の前記関連付けを維持するための第2のデータ構造を記憶する第2のメモリと
を含むデバイス。 - 前記第1のデータがデータ・アイテムである請求項8に記載のデバイス。
- 前記第1のデータが音声を表す請求項8に記載のデバイス。
- 前記第1のデータが写真を表す請求項8に記載のデバイス。
- 前記第1の履歴ステートメントが、前記デバイスの識別と、データを作成した性質とに関する情報を含む請求項8に記載のデバイス。
- 前記第1のメモリが磁気メモリである請求項8に記載のデバイス。
- 前記第1のメモリが動的メモリである請求項8に記載のデバイス。
- 前記第1のメモリがスタティック・メモリである請求項8に記載のデバイス。
- 前記第1のメモリと前記第2のメモリとは同じである請求項8に記載のデバイス。
- 前記第1のデータ構造と前記第2のデータ構造が、単一スープ・データ構造に組み込まれる請求項8に記載のデバイス。
- 前記第1のデータ構造と前記第2のデータ構造が、単一フラット・データ構造に組み込まれる請求項8に記載のデバイス。
- 前記第1のデータ構造と前記第2のデータ構造が別個のオブジェクトである請求項8に記載のデバイス。
- デバイスがデータベースを同期させる方法において、
前記デバイスの第1の関連付け手段が、第1のデータ構造において、第1の状態を複数の同じ種類のデータと関連付けるステップと、
前記デバイスの第2の関連付け手段が、第2のデータ構造において、前記第1の状態を、データの変更を行ったデバイスと前記変更前のデータの状態とについての情報を含む、データの変更履歴を示す情報に関連付けるステップと、
前記デバイスの変更手段が、前記複数のデータのうちの第1のデータを変更するステップと、
前記デバイスの前記第1の関連付け手段が、前記第1のデータ構造において、第2の状態を前記第1のデータに関連付けるステップと、
前記デバイスの前記第2の関連付け手段が、前記第1のデータの前記変更に関する変更履歴を示す前記情報が前記第2のデータ構造において前記第2の状態にまだ関連付けられていない場合、前記第2のデータ構造において、前記第2の状態を当該情報と関連付けるステップとを含む方法。 - 前記第1のデータ構造がスープ・データベースである請求項20に記載の方法。
- 前記第1のデータ構造がフラット・ファイルである請求項20に記載の方法。
- 前記第1のデータ構造が複数のサブ・データ構造を含む請求項20に記載の方法。
- 前記第2のデータ構造がスープ・データベースである請求項20に記載の方法。
- 前記第2のデータ構造がフラット・ファイルである請求項20に記載の方法。
- 前記第2のデータ構造が複数のサブ・データ構造を含む請求項20に記載の方法。
- 第3のデータ構造が、前記第1と第2のデータ構造の両方を含む請求項20に記載の方法。
- 前記データが記録である請求項20に記載の方法。
- 前記データがデータ・アイテムである請求項20に記載の方法。
- 前記変更が編集である請求項20に記載の方法。
- 前記変更が削除である請求項20に記載の方法。
- 情報を同期させるためのデバイスにおいて、
第1の状態を複数の同じ種類のデータと関連付けるための第1のデータ構造を記憶する第1のメモリと、
前記第1の状態を、データの変更を行ったデバイスと前記変更前のデータの状態とについての情報を含む、データの変更履歴を示す情報と関連付けるための第2のデータ構造を記憶するための第2のメモリと、
前記複数のデータの第1のデータを変更するためのユーザ入力インタフェースと、
前記第1のデータ構造において、第2の状態を前記第1のデータに関連付け、
前記第1のデータの前記変更に関する変更履歴を示す前記情報が前記第2のデータ構造において前記第2の状態にまだ関連付けられていない場合、前記第2のデータ構造において、前記第2の状態を前記第1のデータの前記変更に関する変更履歴を示す前記情報と関連付けるためのプログラムされた命令を備えるプロセッサと
を含むデバイス。 - 前記第1のメモリと前記第2のメモリが同じである請求項32に記載のデバイス。
- 前記第1のデータ構造がスープ・データベースである請求項32に記載のデバイス。
- 前記第1のデータ構造がフラット・ファイルである請求項32に記載のデバイス。
- 前記第1のデータ構造が複数のサブ・データ構造を含む請求項32に記載のデバイス。
- 前記データが記録である請求項32に記載のデバイス。
- 前記データがデータ・アイテムである請求項32に記載のデバイス。
- 前記データが音声を表す請求項38に記載のデバイス。
- 前記データが写真を表す請求項38に記載のデバイス。
- 前記変更が編集である請求項38に記載のデバイス。
- デバイスが、第1のデータ構造で維持された第1のデータを、第2のデータ構造で維持された、前記第1のデータと同じ種類の第2のデータと同期させる方法において、
デバイスの第1の関連付け手段が、前記第1のデータ構造において、第1のデータの各データ・アイテムを第1の状態と関連付けるステップと、
デバイスの第2の関連付け手段が、第3のデータ構造において、前記第1の状態を、データの変更を行ったデバイスと前記変更前のデータの状態とについての情報を含む、データの変更履歴を示す履歴ステートメントと関連付けるステップと、
デバイスの第3の関連付け手段が、前記第2のデータ構造において、第2のデータの各データ・アイテムを前記第2のデータ構造の第2の状態と関連付けるステップと、
デバイスの第4の関連付け手段が、第4のデータ構造において、前記第2の状態を、データの変更を行ったデバイスと前記変更前のデータの状態とについての情報を含む、データの変更履歴を示す履歴ステートメントに関連付けるステップと、
デバイスの第1の同期手段が、同期された第4のデータ構造を作成するために、前記第3のデータ構造からの履歴ステートメントを前記第4のデータ構造に同期するステップと、
デバイスの第2の同期手段が、前記同期した第4のデータ構造からの情報を使用して、前記第1のデータ構造からのデータを前記第2のデータ構造に同期するステップと
を含む方法。 - 前記第1と第3のデータ構造が同じである請求項42に記載の方法。
- 前記第1と第3のデータ構造が1つのデバイスに常駐し、前記第2と第4のデータ構造が別のデバイスに常駐する請求項42に記載の方法。
- 前記第3と第4のデータ構造のそれぞれにある前記履歴ステートメントの1つまたは複数の履歴ステートメントが、第1の状態と第2の状態の間の相関を含む請求項42に記載の方法。
- 前記第1のデータがN個のデータ・アイテムを含み、そのようなN個のデータ・アイテムがM個の状態に関連付けられており、M<Nである請求項42に記載の方法。
- 遠隔デバイスと同期するためのローカル・デバイスにおいて、
ローカル・データと、関連付けられたローカル・データ状態とを記憶するための第1のローカル・データ・ストアであって、複数の前記ローカル・データが前記遠隔デバイスに記憶された遠隔データと相関し、前記遠隔データが遠隔状態に関連付けられた、第1のローカル・データ・ストアと、
履歴ステートメントを記憶するための第2のローカル・データ・ストアであって、前記履歴ステートメントが
ローカル・データ状態を遠隔データ状態に関連付けるステートメントと、
データの変更を行ったデバイスと前記変更前のデータの状態とについての情報を含む、種類が同じである複数のローカル・データおよび1つまたは複数の遠隔データの編集に関するステートメントと
を含む、第2のローカル・データ・ストアとを含むデバイス。 - 前記編集は作成することである請求項47に記載のデバイス。
- 前記編集は削除することである請求項47に記載のデバイス。
- 前記編集は切り捨てることである請求項47に記載のデバイス。
- N個のローカル・データがあり、そのようなN個のローカル・データがM個のローカル状態に関連付けられており、M<Nである請求項47に記載のデバイス。
- デバイスが、複数のデータへの変更を追跡する方法において、
前記デバイスの第1の関連付け手段が、種類が同じである第1の複数のデータを第1の状態と関連付けるステップであって、前記第1の複数のデータのすべてが第1の履歴を有し、前記第1の履歴は前記第1の複数のデータのすべてに対して同一であり、前記第1の履歴にはデータの変更を行ったデバイスと前記変更前のデータの状態とについての情報が含まれる、ステップと、
前記デバイスの第2の関連付け手段が、前記第1の状態を前記第1の履歴を記述する第1の履歴ステートメントに関連付けるステップと
を含む方法。 - 前記第1の履歴が前記データの作成である請求項52に記載の方法。
- 前記第1の履歴ステートメントが、データが作成されたこと、およびどのようにデータが作成されたかを示す請求項53に記載の方法。
- 前記第1の履歴ステートメントが、データが作成されたこと、およびデータを作成するためにどのデバイスが使用されたかを示す請求項53に記載の方法。
- 前記第1の履歴ステートメントが、データが作成されたこと、および前記データ作成に関連付けられた同期クライアントを示す請求項53に記載の方法。
- 前記第1の履歴がデータの編集であり、前記編集がある同期クライアントに関連付けられた請求項52に記載の方法。
- 前記第1の複数のアイテムがアドレスと電話番号とを含む請求項52に記載の方法。
- 前記第1の複数のアイテムが2つのアドレスを含む請求項52に記載の方法。
- 前記デバイスの変更手段が、前記第1の複数のデータのうちの1つまたは複数のデータを含む、データの第1の部分集合に第1の変更を行うステップと、
前記デバイスの前記第1の関連付け手段が、第2の状態をデータの前記第1の部分集合と関連付けるステップと、
前記デバイスの前記第2の関連付け手段が、第2の履歴ステートメントを前記第2の状態に関連付けるステップと
をさらに含む請求項52に記載の方法。 - 第2の履歴ステートメントを前記第2の状態に関連付ける前記ステップが、前記第2の履歴ステートメントを作成することを含む請求項60に記載の方法。
- 前記第1の変更がデータの前記第1の部分集合を削除することである請求項60に記載の方法。
- 前記第1の変更が、データの前記第1の部分集合の前記データのそれぞれを独立して編集することである請求項60に記載の方法。
- 前記複数のデータおよびすべての関連付けられた履歴ステートメントが第1の共通データ構造で維持される請求項60に記載の方法。
- 第2の共通データ構造から前記第1の共通データ構造に履歴ステートメントを同期させるステップをさらに含む請求項64に記載の方法。
- 前記第1の共通データ構造が第1のデバイスに常駐しており、前記第2の共通データ構造が第2のデバイスに常駐している請求項65に記載の方法。
- 同期した第1の共通データ構造からの不要な履歴ステートメントを低減させるステップをさらに含む請求項64に記載の方法。
- 低減させる前記ステップが、使用中状態の子孫であるサブジェクト状態を履歴ステートメントが有するよう維持することを含む請求項67に記載の方法。
- 前記同期した第1の共通データ構造からの不要な履歴ステートメントを低減するステップをさらに含む請求項66に記載の方法。
- 低減する前記ステップが、前記第1のデバイスまたは前記第2のデバイスの使用中状態の子孫であるサブジェクト状態を履歴ステートメントが有するよう維持することを含む請求項69に記載の方法。
- コンピュータに、請求項1、20、42、又は52のどれか1つに記載の各ステップを実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/883,541 US7730026B2 (en) | 2004-07-01 | 2004-07-01 | Method and system using reusable state information for synchronization and maintenance of data |
PCT/US2005/022930 WO2006007498A1 (en) | 2004-07-01 | 2005-06-27 | State based synchronization |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008505419A JP2008505419A (ja) | 2008-02-21 |
JP4685869B2 true JP4685869B2 (ja) | 2011-05-18 |
Family
ID=35033662
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007520350A Active JP4685869B2 (ja) | 2004-07-01 | 2005-06-27 | 状態ベースの同期 |
Country Status (6)
Country | Link |
---|---|
US (3) | US7730026B2 (ja) |
EP (1) | EP1766543B1 (ja) |
JP (1) | JP4685869B2 (ja) |
CN (1) | CN1977265B (ja) |
HK (1) | HK1104099A1 (ja) |
WO (1) | WO2006007498A1 (ja) |
Families Citing this family (77)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6360100B1 (en) * | 1998-09-22 | 2002-03-19 | Qualcomm Incorporated | Method for robust handoff in wireless communication system |
US7668541B2 (en) | 2003-01-31 | 2010-02-23 | Qualcomm Incorporated | Enhanced techniques for using core based nodes for state transfer |
US6862446B2 (en) * | 2003-01-31 | 2005-03-01 | Flarion Technologies, Inc. | Methods and apparatus for the utilization of core based nodes for state transfer |
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 |
US7680835B2 (en) * | 2005-02-28 | 2010-03-16 | Microsoft Corporation | Online storage with metadata-based retrieval |
US7979468B2 (en) * | 2005-06-14 | 2011-07-12 | Enterprise Elements, Inc. | Database data dictionary |
US8495015B2 (en) | 2005-06-21 | 2013-07-23 | Apple Inc. | Peer-to-peer syncing in a decentralized environment |
US7523146B2 (en) * | 2005-06-21 | 2009-04-21 | Apple Inc. | Apparatus and method for peer-to-peer N-way synchronization in a decentralized environment |
US7970017B2 (en) * | 2005-07-13 | 2011-06-28 | At&T Intellectual Property I, L.P. | Peer-to-peer synchronization of data between devices |
US9066344B2 (en) * | 2005-09-19 | 2015-06-23 | Qualcomm Incorporated | State synchronization of access routers |
US8509799B2 (en) * | 2005-09-19 | 2013-08-13 | Qualcomm Incorporated | Provision of QoS treatment based upon multiple requests |
US8983468B2 (en) | 2005-12-22 | 2015-03-17 | Qualcomm Incorporated | Communications methods and apparatus using physical attachment point identifiers |
US9078084B2 (en) * | 2005-12-22 | 2015-07-07 | Qualcomm Incorporated | Method and apparatus for end node assisted neighbor discovery |
US9736752B2 (en) * | 2005-12-22 | 2017-08-15 | Qualcomm Incorporated | Communications methods and apparatus using physical attachment point identifiers which support dual communications links |
US20070064948A1 (en) * | 2005-09-19 | 2007-03-22 | George Tsirtsis | Methods and apparatus for the utilization of mobile nodes for state transfer |
US8982778B2 (en) * | 2005-09-19 | 2015-03-17 | Qualcomm Incorporated | Packet routing in a wireless communications environment |
US8982835B2 (en) * | 2005-09-19 | 2015-03-17 | Qualcomm Incorporated | Provision of a move indication to a resource requester |
TW200715108A (en) * | 2005-10-04 | 2007-04-16 | Carry Computer Eng Co Ltd | Storage apparatus and method with function of showing use history |
US9083355B2 (en) | 2006-02-24 | 2015-07-14 | Qualcomm Incorporated | Method and apparatus for end node assisted neighbor discovery |
US7725431B2 (en) * | 2006-06-30 | 2010-05-25 | Nokia Corporation | Method and apparatus for the synchronization and storage of metadata |
US7860826B2 (en) * | 2006-08-04 | 2010-12-28 | Apple Inc. | Method and system for using global equivalency sets to identify data during peer-to-peer synchronization |
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 |
US7760767B2 (en) * | 2007-01-05 | 2010-07-20 | Apple Inc. | Wide area peer-to-peer synching in a decentralized environment |
US7657769B2 (en) * | 2007-01-08 | 2010-02-02 | Marcy M Scott | N-way synchronization of data |
US8949339B2 (en) * | 2007-01-08 | 2015-02-03 | Apple Inc. | System and method for automatic opportunistic data and image sharing |
US8606854B2 (en) * | 2007-01-08 | 2013-12-10 | Apple Inc. | System and method for opportunistic image sharing |
US7738503B2 (en) * | 2007-02-02 | 2010-06-15 | Palm, Inc. | Multi-way, peer-to-peer synchronization |
US7715444B2 (en) * | 2007-02-02 | 2010-05-11 | Palm, Inc | Resuming a previously interrupted peer-to-peer synchronization operation |
US9155008B2 (en) * | 2007-03-26 | 2015-10-06 | Qualcomm Incorporated | Apparatus and method of performing a handoff in a communication network |
US8830818B2 (en) * | 2007-06-07 | 2014-09-09 | Qualcomm Incorporated | Forward handover under radio link failure |
US9094173B2 (en) * | 2007-06-25 | 2015-07-28 | Qualcomm Incorporated | Recovery from handoff error due to false detection of handoff completion signal at access terminal |
US8185494B2 (en) * | 2007-09-14 | 2012-05-22 | Microsoft Corporation | Data-driven synchronization |
US9614685B2 (en) * | 2009-03-09 | 2017-04-04 | Nokia Technologies Oy | Methods, apparatuses, and computer program products for facilitating synchronization of setting configurations |
US8650498B1 (en) | 2009-05-04 | 2014-02-11 | SugarSync, Inc. | User interface for managing and viewing synchronization settings in a synchronization system |
CN101924747A (zh) * | 2009-06-17 | 2010-12-22 | 华为终端有限公司 | 处理数据冲突的方法、装置、网络侧服务器及终端 |
KR101080532B1 (ko) * | 2010-01-29 | 2011-11-04 | 주식회사 팬택 | 통신단말 및 그의 데이터 전송 방법 |
WO2012001763A1 (ja) * | 2010-06-28 | 2012-01-05 | 株式会社日立製作所 | 計算機システムの管理方法及びクライアントコンピュータ |
US8615241B2 (en) | 2010-04-09 | 2013-12-24 | Qualcomm Incorporated | Methods and apparatus for facilitating robust forward handover in long term evolution (LTE) communication systems |
US8489775B2 (en) * | 2010-07-21 | 2013-07-16 | Dell Products L.P. | System-wide time synchronization across power management interfaces and sensor data |
US8996469B2 (en) * | 2010-08-30 | 2015-03-31 | Adobe Systems Incorporated | Methods and apparatus for job state tracking in cluster computing |
US8640137B1 (en) | 2010-08-30 | 2014-01-28 | Adobe Systems Incorporated | Methods and apparatus for resource management in cluster computing |
US9804889B2 (en) | 2010-08-30 | 2017-10-31 | Adobe Systems Incorporated | Methods and apparatus for state objects in cluster computing |
US8868500B2 (en) | 2011-01-14 | 2014-10-21 | Apple Inc. | Data synchronization |
US8738925B1 (en) * | 2013-01-07 | 2014-05-27 | Fitbit, Inc. | Wireless portable biometric device syncing |
US9760586B1 (en) | 2011-08-11 | 2017-09-12 | IVP Holdings III LLC | Multiple searcher use of search result snapshot histories |
US9846694B1 (en) | 2011-08-11 | 2017-12-19 | IVP Holdings III LLC | Patent related literature assisted user profiling, matching, and classification |
US9798753B1 (en) * | 2011-08-11 | 2017-10-24 | IVP Holding III, LLC | Search result snapshot histories |
US9195653B2 (en) * | 2011-10-24 | 2015-11-24 | Google Inc. | Identification of in-context resources that are not fully localized |
US8452814B1 (en) * | 2011-10-24 | 2013-05-28 | Google Inc. | Gathering context in action to support in-context localization |
US8965847B1 (en) * | 2011-10-28 | 2015-02-24 | Oxygen Cloud, Inc. | Independent synchronization of file data and file metadata |
US9031909B2 (en) | 2011-11-29 | 2015-05-12 | Microsoft Technology Licensing, Llc | Provisioning and/or synchronizing using common metadata |
KR101935357B1 (ko) * | 2012-05-21 | 2019-01-04 | 엘지전자 주식회사 | 홈 디바이스 웹 브라우저를 이용한 웹 페이지 제공 방법 및 이를 위한 홈 디바이스 |
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 |
US9124637B2 (en) | 2013-01-18 | 2015-09-01 | Apple Inc. | Data protection for keychain syncing |
US9197700B2 (en) * | 2013-01-18 | 2015-11-24 | Apple Inc. | Keychain syncing |
US9977820B1 (en) * | 2013-03-15 | 2018-05-22 | Tasktop Technologies, Incorporated | System and method for synchronizing states in associated data records |
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 |
US10171579B2 (en) | 2014-04-08 | 2019-01-01 | Dropbox, Inc. | Managing presence among devices accessing shared and synchronized content |
US10387451B2 (en) | 2014-05-30 | 2019-08-20 | Apple Inc. | Synchronization system for multiple client devices |
US9846528B2 (en) | 2015-03-02 | 2017-12-19 | Dropbox, Inc. | Native application collaboration |
US10303697B1 (en) * | 2015-06-25 | 2019-05-28 | National Technology & Engineering Solutions Of Sandia, Llc | Temporal data system |
US20170054790A1 (en) * | 2015-08-21 | 2017-02-23 | Neatly Co. | System and Method for Object Compression and State Synchronization |
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 |
US10382502B2 (en) | 2016-04-04 | 2019-08-13 | Dropbox, Inc. | Change comments for synchronized content items |
USD796542S1 (en) | 2016-04-20 | 2017-09-05 | E*Trade Financial Corporation | Display screen with a graphical user interface |
USD795921S1 (en) * | 2016-04-20 | 2017-08-29 | E*Trade Financial Corporation | Display screen with an animated graphical user interface |
US10565168B2 (en) | 2017-05-02 | 2020-02-18 | Oxygen Cloud, Inc. | Independent synchronization with state transformation |
US10021588B1 (en) | 2017-05-04 | 2018-07-10 | Motorola Solutions, Inc. | Methods and systems for reducing inbound request traffic in a wireless network |
US10706038B2 (en) | 2017-07-27 | 2020-07-07 | Cisco Technology, Inc. | System and method for state object data store |
FR3076034B1 (fr) * | 2017-12-22 | 2022-12-02 | Oberthur Technologies | Collecte de donnees d'historique de transaction sur un terminal |
US11334596B2 (en) | 2018-04-27 | 2022-05-17 | Dropbox, Inc. | Selectively identifying and recommending digital content items for synchronization |
CN109992628B (zh) * | 2019-04-15 | 2022-10-25 | 深圳市腾讯计算机系统有限公司 | 数据同步的方法、装置、服务器及计算机可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000122907A (ja) * | 1998-10-20 | 2000-04-28 | Mitsubishi Electric Corp | 更新履歴管理装置及び更新履歴管理方法 |
JP2000299698A (ja) * | 1999-04-13 | 2000-10-24 | Mitsubishi Electric Corp | データ通信装置 |
US20020049764A1 (en) * | 1997-09-11 | 2002-04-25 | Puma Technology, Inc., Delaware Corporation | Distributed synchronization of databases |
WO2003036541A1 (en) * | 2001-10-22 | 2003-05-01 | Apple Computer, Inc. | Intelligent synchronization for a media player |
JP2003330827A (ja) * | 2002-05-14 | 2003-11-21 | Sony Corp | コンテンツ再生機器、サーバ接続方法、サーバ接続プログラムおよび記録媒体 |
JP2004086800A (ja) * | 2002-08-29 | 2004-03-18 | Mitsubishi Electric Corp | データ同期システムおよびデータ同期方法 |
Family Cites Families (77)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US602415A (en) * | 1898-04-12 | Bicycle-stand | ||
US568370A (en) * | 1896-09-29 | Electric alarm for steam-gag es | ||
US606274A (en) * | 1898-06-28 | Seed-bag holder | ||
US650215A (en) * | 1899-07-24 | 1900-05-22 | Frank T Fletcher | Wall-paper trimming and pasting machine. |
US657262A (en) * | 1899-08-29 | 1900-09-04 | George Anderson | Method of setting diamonds, &c., in metal holders. |
US4792909A (en) | 1986-04-07 | 1988-12-20 | Xerox Corporation | Boolean logic layout generator |
US5287496A (en) | 1991-02-25 | 1994-02-15 | International Business Machines Corporation | Dynamic, finite versioning for concurrent transaction and query processing |
US5481721A (en) | 1991-07-17 | 1996-01-02 | Next Computer, Inc. | Method for providing automatic and dynamic translation of object oriented programming language-based message passing into operation system message passing using proxy objects |
US5355483A (en) | 1991-07-18 | 1994-10-11 | Next Computers | Asynchronous garbage collection |
DE69225544T2 (de) | 1991-08-13 | 1998-12-03 | Xerox Corp | Elektronische Bilderzeugung |
US5710922A (en) | 1993-06-02 | 1998-01-20 | Apple Computer, Inc. | Method for synchronizing and archiving information between computer systems |
US5806078A (en) | 1994-06-09 | 1998-09-08 | Softool Corporation | Version management system |
AUPM704194A0 (en) | 1994-07-25 | 1994-08-18 | Canon Information Systems Research Australia Pty Ltd | Efficient methods for the evaluation of a graphical programming language |
US5687370A (en) | 1995-01-31 | 1997-11-11 | Next Software, Inc. | Transparent local and distributed memory management system |
US6571262B2 (en) | 2000-02-14 | 2003-05-27 | Apple Computer, Inc. | Transparent local and distributed memory management system |
US5706509A (en) * | 1995-04-28 | 1998-01-06 | Intel Corporation | Application independent record level synchronization |
WO1997004389A1 (en) * | 1995-07-20 | 1997-02-06 | Novell, Inc. | Transaction synchronization in a disconnectable computer and network |
US5710900A (en) | 1995-10-12 | 1998-01-20 | Ncr Corporation | System and method for generating reports from a computer database |
US5884323A (en) | 1995-10-13 | 1999-03-16 | 3Com Corporation | Extendible method and apparatus for synchronizing files on two different computer systems |
US5727202A (en) | 1995-10-18 | 1998-03-10 | Palm Computing, Inc. | Method and apparatus for synchronizing information on two different computer systems |
US5765171A (en) | 1995-12-29 | 1998-06-09 | Lucent Technologies Inc. | Maintaining consistency of database replicas |
US5758358A (en) | 1996-01-29 | 1998-05-26 | Microsoft Corporation | Method and system for reconciling sections of documents |
US6006231A (en) | 1996-09-10 | 1999-12-21 | Warp 10 Technologies Inc. | File format for an image including multiple versions of an image, and related system and method |
AU5254698A (en) * | 1996-11-13 | 1998-06-03 | Puma Technology, Inc. | Synchronization of databases |
JPH10161916A (ja) | 1996-11-28 | 1998-06-19 | Hitachi Ltd | データベースの複製に伴う更新競合の検出方法 |
US6401112B1 (en) | 1997-01-29 | 2002-06-04 | Palm, Inc. | Method and apparatus for synchronizing an Email client on a portable computer system with an Email client on a desktop computer |
US6006274A (en) | 1997-01-30 | 1999-12-21 | 3Com Corporation | Method and apparatus using a pass through personal computer connected to both a local communication link and a computer network for indentifying and synchronizing a preferred computer with a portable computer |
US6021413A (en) | 1997-04-01 | 2000-02-01 | The University Of Illinois Board Of Trustees | Application-directed variable-granularity caching and consistency management |
WO1998045815A1 (en) | 1997-04-04 | 1998-10-15 | Intergraph Corporation | Apparatus and method for applying effects to graphical images |
US6188995B1 (en) | 1997-07-28 | 2001-02-13 | Apple Computer, Inc. | Method and apparatus for enforcing software licenses |
US6240414B1 (en) * | 1997-09-28 | 2001-05-29 | Eisolutions, Inc. | Method of resolving data conflicts in a shared data environment |
US6272558B1 (en) | 1997-10-06 | 2001-08-07 | Canon Kabushiki Kaisha | Application programming interface for manipulating flashpix files |
US6292803B1 (en) * | 1997-11-18 | 2001-09-18 | Honeywell International Inc. | Object state change and history management mechanism |
US6275831B1 (en) * | 1997-12-16 | 2001-08-14 | Starfish Software, Inc. | Data processing environment with methods providing contemporaneous synchronization of two or more clients |
US6295541B1 (en) | 1997-12-16 | 2001-09-25 | Starfish Software, Inc. | System and methods for synchronizing two or more datasets |
US6205448B1 (en) | 1998-01-30 | 2001-03-20 | 3Com Corporation | Method and apparatus of synchronizing two computer systems supporting multiple synchronization techniques |
US6925477B1 (en) * | 1998-03-31 | 2005-08-02 | Intellisync Corporation | Transferring records between two databases |
US6098079A (en) | 1998-04-02 | 2000-08-01 | Mitsubishi Electric Information Technology Center America, Inc. (Ita) | File version reconciliation using hash codes |
US6317754B1 (en) * | 1998-07-03 | 2001-11-13 | Mitsubishi Electric Research Laboratories, Inc | System for user control of version /Synchronization in mobile computing |
US6516327B1 (en) | 1998-12-24 | 2003-02-04 | International Business Machines Corporation | System and method for synchronizing data in multiple databases |
US6757896B1 (en) | 1999-01-29 | 2004-06-29 | International Business Machines Corporation | Method and apparatus for enabling partial replication of object stores |
US6457062B1 (en) | 1999-04-08 | 2002-09-24 | Palm, Inc. | System and method for synchronizing multiple calendars over wide area network |
US6553037B1 (en) | 1999-04-08 | 2003-04-22 | Palm, Inc. | System and method for synchronizing data among a plurality of users via an intermittently accessed network |
US6308201B1 (en) | 1999-04-08 | 2001-10-23 | Palm, Inc. | System and method for sharing data among a plurality of personal digital assistants |
US6539381B1 (en) * | 1999-04-21 | 2003-03-25 | Novell, Inc. | System and method for synchronizing database information |
US6360272B1 (en) | 1999-05-28 | 2002-03-19 | Palm, Inc. | Method and apparatus for maintaining a unified view of multiple mailboxes |
US6401104B1 (en) * | 1999-07-03 | 2002-06-04 | Starfish Software, Inc. | System and methods for synchronizing datasets using cooperation among multiple synchronization engines |
US6859821B1 (en) | 1999-07-19 | 2005-02-22 | Groove Networks, Inc. | Method and apparatus for prioritizing data change requests and maintaining data consistency in a distributed computer system equipped for activity-based collaboration |
US6717599B1 (en) | 2000-06-29 | 2004-04-06 | Microsoft Corporation | Method, system, and computer program product for implementing derivative operators with graphics hardware |
JP3750504B2 (ja) * | 2000-08-09 | 2006-03-01 | セイコーエプソン株式会社 | データ更新方法および情報処理装置 |
US7216289B2 (en) * | 2001-03-16 | 2007-05-08 | Microsoft Corporation | Method and apparatus for synchronizing multiple versions of digital data |
US6894093B2 (en) | 2001-05-10 | 2005-05-17 | George D. Bittner | Materials free of endorine disruptive chemicals |
JP2003006020A (ja) * | 2001-06-26 | 2003-01-10 | Hitachi Ltd | 複製データベースアクセス装置とそのアクセス方法 |
US7564460B2 (en) | 2001-07-16 | 2009-07-21 | Microsoft Corporation | Systems and methods for providing intermediate targets in a graphics system |
US7149761B2 (en) * | 2001-11-13 | 2006-12-12 | Tadpole Technology Plc | System and method for managing the synchronization of replicated version-managed databases |
US7085784B2 (en) * | 2002-01-10 | 2006-08-01 | International Business Machines Corporation | System and method for eliminating duplicate copies of activity history logs in bridging two or more backend database systems |
US20030161004A1 (en) * | 2002-02-28 | 2003-08-28 | Fernando Bolanos | Merging control panel images |
US7606881B2 (en) | 2002-04-25 | 2009-10-20 | Oracle International Corporation | System and method for synchronization of version annotated objects |
US7506007B2 (en) | 2003-03-03 | 2009-03-17 | Microsoft Corporation | Interval vector based knowledge synchronization for resource versioning |
US7290019B2 (en) | 2003-03-03 | 2007-10-30 | Microsoft Corporation | Garbage collection of tombstones for optimistic replication systems |
US7181521B2 (en) * | 2003-03-21 | 2007-02-20 | Intel Corporation | Method and system for selecting a local registry master from among networked mobile devices based at least in part on abilities of the mobile devices |
US20040193952A1 (en) * | 2003-03-27 | 2004-09-30 | Charumathy Narayanan | Consistency unit replication in application-defined systems |
US7406499B2 (en) | 2003-05-09 | 2008-07-29 | Microsoft Corporation | Architecture for partition computation and propagation of changes in data replication |
US7610387B1 (en) | 2003-11-12 | 2009-10-27 | Cisco Technology, Inc. | Method and apparatus for providing sticky bindings using version vectors |
FI20040697A (fi) | 2004-05-19 | 2005-11-20 | Nokia Corp | Menetelmä, laite ja ohjelmisto kannettavien laitteiden tietojen päivittämiseksi |
US7814231B2 (en) | 2004-05-24 | 2010-10-12 | Apple Inc. | Method of synchronizing between three or more devices |
US7809682B2 (en) * | 2004-05-24 | 2010-10-05 | Apple Inc. | Data synchronization between multiple devices |
US7680834B1 (en) * | 2004-06-08 | 2010-03-16 | Bakbone Software, Inc. | Method and system for no downtime resychronization for real-time, continuous data protection |
US7730026B2 (en) | 2004-07-01 | 2010-06-01 | Apple Inc. | Method and system using reusable state information for synchronization and maintenance of data |
US7728823B2 (en) | 2004-09-24 | 2010-06-01 | Apple Inc. | System and method for processing raw data of track pad device |
US7778963B2 (en) | 2005-04-26 | 2010-08-17 | Microsoft Corporation | Constraint-based conflict handling for synchronization |
US7523146B2 (en) | 2005-06-21 | 2009-04-21 | Apple Inc. | Apparatus and method for peer-to-peer N-way synchronization in a decentralized environment |
US20080005195A1 (en) | 2006-06-30 | 2008-01-03 | Microsoft Corporation | Versioning synchronization for mass p2p file sharing |
US7917471B2 (en) | 2006-07-14 | 2011-03-29 | Nokia Corporation | Method for obtaining information objects in a communication system |
US7860826B2 (en) | 2006-08-04 | 2010-12-28 | Apple Inc. | Method and system for using global equivalency sets to identify data during peer-to-peer synchronization |
US7760767B2 (en) | 2007-01-05 | 2010-07-20 | Apple Inc. | Wide area peer-to-peer synching in a decentralized environment |
US7657769B2 (en) | 2007-01-08 | 2010-02-02 | Marcy M Scott | N-way synchronization of data |
-
2004
- 2004-07-01 US US10/883,541 patent/US7730026B2/en active Active
-
2005
- 2005-06-27 EP EP05775809.6A patent/EP1766543B1/en not_active Not-in-force
- 2005-06-27 WO PCT/US2005/022930 patent/WO2006007498A1/en active Application Filing
- 2005-06-27 JP JP2007520350A patent/JP4685869B2/ja active Active
- 2005-06-27 CN CN2005800217934A patent/CN1977265B/zh not_active Expired - Fee Related
-
2007
- 2007-08-06 HK HK07108543.8A patent/HK1104099A1/zh not_active IP Right Cessation
-
2010
- 2010-04-13 US US12/759,463 patent/US8332352B2/en not_active Expired - Lifetime
-
2012
- 2012-11-19 US US13/680,467 patent/US8868493B2/en not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020049764A1 (en) * | 1997-09-11 | 2002-04-25 | Puma Technology, Inc., Delaware Corporation | Distributed synchronization of databases |
JP2000122907A (ja) * | 1998-10-20 | 2000-04-28 | Mitsubishi Electric Corp | 更新履歴管理装置及び更新履歴管理方法 |
JP2000299698A (ja) * | 1999-04-13 | 2000-10-24 | Mitsubishi Electric Corp | データ通信装置 |
WO2003036541A1 (en) * | 2001-10-22 | 2003-05-01 | Apple Computer, Inc. | Intelligent synchronization for a media player |
JP2005507130A (ja) * | 2001-10-22 | 2005-03-10 | アップル・コンピューター・インコーポレーテッド | メディアプレーヤーのためのインテリジェントなシンクロ操作 |
JP2003330827A (ja) * | 2002-05-14 | 2003-11-21 | Sony Corp | コンテンツ再生機器、サーバ接続方法、サーバ接続プログラムおよび記録媒体 |
JP2004086800A (ja) * | 2002-08-29 | 2004-03-18 | Mitsubishi Electric Corp | データ同期システムおよびデータ同期方法 |
Also Published As
Publication number | Publication date |
---|---|
US20130218839A1 (en) | 2013-08-22 |
US7730026B2 (en) | 2010-06-01 |
US20060069809A1 (en) | 2006-03-30 |
HK1104099A1 (zh) | 2008-01-04 |
US8332352B2 (en) | 2012-12-11 |
CN1977265A (zh) | 2007-06-06 |
US20100198784A1 (en) | 2010-08-05 |
US8868493B2 (en) | 2014-10-21 |
EP1766543A1 (en) | 2007-03-28 |
JP2008505419A (ja) | 2008-02-21 |
EP1766543B1 (en) | 2015-12-30 |
CN1977265B (zh) | 2011-06-22 |
WO2006007498A1 (en) | 2006-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4685869B2 (ja) | 状態ベースの同期 | |
US9026490B2 (en) | Peer-to-peer N-way syncing in a decentralized environment | |
US7640406B1 (en) | Detecting and managing orphan files between primary and secondary data stores for content addressed storage | |
JP5289063B2 (ja) | 同期ピア参加モデル | |
US7685177B1 (en) | Detecting and managing orphan files between primary and secondary data stores | |
CN1867911B (zh) | 用于文件转换的系统和方法 | |
US7483882B1 (en) | Dynamic management of multiple persistent data stores | |
US20050192973A1 (en) | Visual database management system and method | |
US20210271660A1 (en) | Method For Implementing Change Data Capture In Database Management System | |
CN1669027A (zh) | 用于扩展文件系统应用编程接口的方法和系统 | |
CN102272751B (zh) | 在数据库环境通过背景同步的数据完整性 | |
KR20070034916A (ko) | 버저닝 기반 트리거를 위한 시스템 및 방법 | |
US9922100B2 (en) | Systems and methods for facilitating the development of an application that accesses data | |
JP5241298B2 (ja) | 履歴上のファイル名およびロケーションをインデックス付きにすることによりファイル・サーチおよびファイル操作を支援するためのシステムおよび方法 | |
RU2525743C2 (ru) | Системы и способы для передачи файлов данных, независимо от платформы | |
WO2007099636A1 (ja) | ファイルシステム移行方法、ファイルシステム移行プログラム及びファイルシステム移行装置 | |
CN108140043B (zh) | 只附加分布式数据库的读写协议 | |
US20060004877A1 (en) | Method and system for data processing with data replication for the same | |
JP2007287147A (ja) | 高速ファイル属性検索 | |
US7693883B2 (en) | Online data volume deletion | |
EP0477173A1 (en) | APPARATUS FOR ANNOTATING AND HANDLING DOCUMENTS USING IMAGES FROM A WINDOW DISPLAY SOURCE. | |
KR102214697B1 (ko) | 데이터베이스 관리 시스템에서 데이터 저장을 위한 공간 관리를 제공하는 컴퓨터 프로그램 | |
JP2006146907A (ja) | 電子ファイルシステムにおけるリストおよびその他の項目の管理 | |
US20090177680A1 (en) | Generic Bijection With Graphs | |
KR20210013747A (ko) | 데이터베이스 관리 시스템에서 데이터 저장을 위한 공간 관리를 제공하는 컴퓨터 프로그램 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091013 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100113 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100525 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20100617 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20100621 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20100621 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100825 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100901 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100927 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20101004 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101020 |
|
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: 20110121 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110210 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140218 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4685869 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |