JP4792505B2 - データの同期処理方法、クライアント、サーバ、及びクライアントとサーバとのデータ同期システム - Google Patents

データの同期処理方法、クライアント、サーバ、及びクライアントとサーバとのデータ同期システム Download PDF

Info

Publication number
JP4792505B2
JP4792505B2 JP2008540433A JP2008540433A JP4792505B2 JP 4792505 B2 JP4792505 B2 JP 4792505B2 JP 2008540433 A JP2008540433 A JP 2008540433A JP 2008540433 A JP2008540433 A JP 2008540433A JP 4792505 B2 JP4792505 B2 JP 4792505B2
Authority
JP
Japan
Prior art keywords
server
client
unique identifier
data item
data
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
Application number
JP2008540433A
Other languages
English (en)
Other versions
JP2009516273A (ja
Inventor
▲ゆ▼宏▲びん▼
陳春▲ろん▼
周英軍
高偉
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2009516273A publication Critical patent/JP2009516273A/ja
Application granted granted Critical
Publication of JP4792505B2 publication Critical patent/JP4792505B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2082Data synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/457Network directories; Name-to-address mapping containing identifiers of data entities on a computer, e.g. file names

Landscapes

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

Description

本発明は、同期マークアップ言語(SYNCML)プロトコルの同期処理を行う技術、特に、データの同期処理を行う方法、並びにクライアント、サーバ、及びクライアントとサーバとのデータ同期システムに関する。
現代社会は情報社会である。ユーザはいつでもどこでも端末上において様々なアプリケーションを実行するために情報の送受信を行う必要がある。情報通信の結果とアプリケーションの実行結果とは共に端末内部に保存されると共に他の通信デバイスの対応するデータと一貫性を保つ必要があると考えられる。例えば、通常は住所リストが携帯電話または携帯情報端末(PDA)に保存されており、同一の住所リストがオフィスまたは自宅にあるコンピュータまたはラップトップにも保存されているかもしれない。ユーザは、これらの通信デバイスに格納された情報が互いに一貫性を保つことをいつも望んでいる。すなわち、複数の通信デバイスのうち1つの通信デバイスに格納されたデータ情報が変更されると、それに伴って残りの通信デバイスに格納された対応するデータ情報も更新される。これが異なる通信デバイス間のデータ同期処理である。
データの同期を実行する端末デバイスは、パームトップ、PDA、携帯電話及びデスクトップコンピュータ等どのようなネットワークデバイスであってもよい。ネットワークはどのようなネットワークであってもよいし、同期処理が行われるデータはどのようなネットワークデータであってもよい。ユーザは異なる通信デバイスを通じて同一のひとまとまりのデータ情報にアクセスし、操作してもよい。SYNCMLの技術は、上述のデータ同期処理を実装するために提案された新しい世界基準の技術である。
図1は、従来技術におけるSYNCMLプロトコルを用いたクライアントとサーバとの間のデータ同期処理を示す略図である。1回のSYNCML同期処理においてPKG1からPKG6の6つのデータパケットがクライアントとサーバとの間で交換される必要がある。主な処理は次の通りである。
1.クライアントとサーバのどちらによってSYNCML同期処理が開始されても、クライアントが最初に同期開始データパッケージPKG1をサーバに送信する。PKG1は、主にクライアント認証情報やデバイスの容量などの情報を含んでいる。
2.サーバは、PKG1を受信するとすぐにPKG1に含まれているクライアント認証情報に基づいてクライアントの認証を行い、クライアントのアカウント情報を確認する。確認の結果と指定された同期タイプに関する情報とが、同期開始応答データパケット(PKG2)によりクライアントに送信される。
3.クライアントは、受信したPKG2において示された同期タイプを解析し、最後に同期を完了した後に変更されたローカルデータベース内の(追加、削除または変更されたデータを含む)すべてのデータをまとめてデータパケットPKG3に格納し、パケットPKG3をサーバに送信する。
クライアントは、通常ローカルデータベースの操作ログの中で、ログIDを通じて最後の同期処理が完了したときの操作ログの位置を識別する。通常アンカーが位置を識別するために使用される。従って、次に同期処理が実行されるときにサーバと同期する必要のあるデータは、ログのうちアンカー識別子の後に記録された情報である。クライアントによる参照のためのログ情報の形式を次の表1に示す。ここで、LUIDはローカル一意識別子である。
Figure 0004792505
4.サーバはPKG3を受信するとすぐに、PKG3に格納された対応する操作指示を実行し、クライアントにて変更されたデータに対応する自身のデータベースのデータを順に更新する。
データパケットPKG4を通じて上記操作指示の実行に関する状態情報をクライアントに返却するときに、サーバは、最後に同期を完了してから変更された自身のデータベース内の(追加、削除または変更されたデータを含む)すべてのデータをまとめてデータパケットPKG4に格納し、パケットPKG4をクライアントに返却する。
5.クライアントは、PKG4を受信するとすぐにPKG4に格納された対応する操作指示を実行し、サーバにおいて変更されたデータに対応する自身のデータベースのデータを順に更新する。
データパケットPKG5を通じて上記操作指示の実行に関する状態情報をサーバに返却するときには、受信したPKG4がローカルデータベースに新しいデータ項目を追加する追加指示を含む場合、クライアントはローカルデータベースに対する新しいデータ項目の追加に成功した後、対応するIDマッピング情報を生成してデータパケットPKG5を通じてサーバに通知する。図2は、IDマッピング情報テーブルを生成し、サーバから送信されたデータを追加する追加指示に従ってサーバにIDマッピング情報テーブルを送信するクライアントの状態を示す略図である。図2において、GUIDはグローバル一意識別子を表わし、LUIDはローカル一意識別子を表わしている。同じ新規追加データ項目に関して、サーバ820はデータ項目を識別するためにサーバ側で一意に識別されるGUID値を生成し、一方クライアント810はデータ項目を識別するためにクライアント側において一意に識別されるLUID値を生成する。クライアントにより操作されるデータ項目に相当する同一のデータ項目がサーバにより操作されるようにするために、サーバ820側においてIDマッピング情報テーブルが保存される必要がある。図2において、“車”がサーバにおいて新規追加データ項目であるとすると、サーバ820はその新規追加データ項目と対応するGUID値“1010101”とをクライアント810に送信し、クライアント810は新規追加データ項目“車”をローカルデータベース811に追加すると共にLUID値“11”をその新規追加データ項目に割り当てる。そしてクライアント810は、新規追加データ項目に割り当てられたLUID値“11”とサーバによって新規追加データ項目に割り当てられたGUID値“1010101”とのマッピング関係を作成し、サーバ820に送信する。その後の新規追加データ項目に対しても同様に上記処理を行うことにより、サーバ820はIDマッピングテーブル“サーバマッピングテーブル”821を取得し、当該IDマッピング情報テーブルを保存する。
6.サーバは、受信したPKG5に含まれているIDマッピング情報によりマッピング情報テーブルを保存するとすぐにデータパケットPKG6を通じて上記保存指示の実行に関する状態情報をクライアントに返却する。クライアントはデータパケットPKG6を受信すると、PKG6に格納されているすべての状態コードが正常であれば、すぐにデータの同期処理が正常に完了したことを記録する。
上記SYNCMLの同期処理に関して、ユーザが有線ネットワーク上において無線通信端末にインストールされたSYNCML同期ソフトウェアを通じてサーバと大量のデータの同期処理を行うときには、無線ネットワークの信号の品質が悪いこと、または通信端末のオペレーティングシステムに大きな負荷がかかることにより、データの同期速度がしばしば遅くなり多くの時間が消費される。そのような場合、データの同期処理が完了する前に、ユーザが長時間待つことに耐えられずにデータの同期処理を中断する可能性がある。さらに、他の理由、例えば通信端末の電源が突然オフになったり、ネットワーク信号が弱くなったり、電話の着信があったりするために、データの同期処理が完了する前に中断する可能性がある。
上記の理由により通信端末とサーバとの間のデータ同期処理が完了する前に中断すると、次に通信端末が新しい同期要求を開始するときに、変更されたすべてのデータを再度同期する必要がある。すなわち、次の同期処理の際に、中断前に同期処理が行われているデータを再度同期する必要がある。再同期処理の間に、上述したネットワークの状態、及び端末の現在の状態が再度変化するということが起こる可能性があり、上述の同じ理由により再度開始されたデータ同期処理が主導的または受動的に中断される可能性がある。中断が繰り返されることが、データの同期の実現に影響を及ぼす可能性がある。
データの同期処理が中断する場合にも正常にデータの同期が完了するようなデータの同期処理方法、クライアント、サーバ、及びデータ同期システムを実現する。
本発明の一様態において、データの同期処理方法は、クライアントがサーバから送信された変更データ項目について対応する変更を行う工程、クライアントがサーバから送信された変更データ項目に対応するGUIDをバッファリングする工程、現在の同期処理が中断された場合に、次回同期処理を再開した後に、クライアントがサーバにバッファリングされたGUIDを通知する工程、並びに、サーバが通知された情報を保存するとともに、保存されていないGUIDであって自身の変更データベースに格納されているGUIDと自身の変更データベースに格納されている対応する変更データ項目とをクライアントに送信する工程、及びクライアントが対応する変更処理を行う工程を含んでいる。
本発明の一様態において、クライアントは、サーバから送信された変更データ項目について対応する変更を行うための変更処理ユニット、サーバから送信された変更データ項目に対応するGUIDをバッファリングするように適合した識別バッファリングユニット、及び、現在の同期処理が中断された場合に次回同期処理を再開した後に識別バッファリングユニットによってバッファリングされたGUIDをサーバに通知するように適合した識別通知ユニットから構成される。
本発明のさらに別の一様態において、サーバは、クライアントによって通知されたGUIDであって、サーバから送信されクライアントにより更新された変更データ項目に対応するGUIDを保存するように適合した通知情報保存ユニット、通知情報保存ユニットに含まれていないGUIDであって自身の変更データベースに格納されているGUID、及び自身の変更データベースに格納されている対応する変更データ項目を検索するように適合した検索ユニット、並びに、検索ユニットによって見つけられたGUID、及び対応する変更データ項目をクライアントに送信するように適合した送信ユニットから構成される。
本発明のさらに別の一様態において、データ同期システムはクライアント及びサーバから構成される。
クライアントは、サーバから送信された変更データ項目について対応する変更を行い、サーバから送信された変更データ項目に対応するGUIDをバッファリングし、現在の同期処理が中断された場合に次回同期処理を再開した後にバッファリングされたGUIDをサーバに通知するように適合している。
サーバは、通知された情報を保存し、保存されていないGUIDであって自身の変更データベースに格納されているGUIDと自身の変更データベースに格納されている対応する変更データ項目とをクライアントに送信するように適合している。
本発明の実施形態において、クライアントはサーバから送信された変更データ項目について対応する変更を行い、サーバから送信された変更データ項目に対応するGUIDをバッファリングし、現在の同期処理が中断される場合に、クライアントは次回に同期処理を再開した後にサーバにバッファリングされたGUIDを通知してもよい。そしてサーバは、保存されていないGUIDと変更データベースに格納されている対応する変更データ項目とを送信する。結果として、同期処理を再開した後にサーバによりクライアントに送信される変更データの量を削減し、同期処理にかかる時間を節約することができ、その結果、データ同期処理が中断された場合にも正常にデータの同期を完了することができる。
図1は、従来技術におけるSYNCMLプロトコルを用いたクライアントとサーバとの間のデータ同期処理のプロセスを示す略図である。
図2は、従来技術におけるIDマッピング情報テーブルを生成するとともにサーバから送信されたデータを追加する追加指示に従ってサーバに返却するクライアントの状態を示す略図である。
図3は、クライアントとサーバとの間で変更されたデータの交換を行う従来技術の処理を示す略図である。
図4は、本発明の一実施形態に係るデータの同期処理方法を実装する主な原理を示すフローチャートである。
図5は、本発明の一実施形態に係るクライアントの主要構成を示すブロック図である。
図6は、本発明の一実施形態に係る識別削除ユニットを備えたクライアントの主要構成を示すブロック図である。
図7は、本発明の一実施形態に係るクライアントの識別バッファリングユニットの主要構成を示すブロック図である。
図8は、本発明の一実施形態に係るサーバの主要構成を示すブロック図である。
本発明の実施形態は、時間が長くかかるために主導的または能動的に中断されることにより、大量のデータに対してデータの同期処理を完了することができないという問題を解決することができる。
本発明の実施形態は、上述した従来技術のSYNCML同期処理を解析することにより次の考察をもとに作成されており、クライアントとサーバとの間で交換されるデータパケットPKG3及びPKG4が、実行時間においてもトラフィックにおいても同期処理全体の大部分を占めることがわかる。
データパケットPKG3は主にクライアントにおいて変更されたデータ項目をサーバに伝達するように適合しており、データパケットはサーバにおいて変更されたデータ項目をクライアントに伝達するように適合している。また両者は、相手から送信されたデータの変更操作指示を実行した結果を互いに返却する。従って、クライアントであってもサーバであっても、一度変更されたデータ項目の数が数百、さらには数千(たった1つの変更データ項目が数千バイト、さらには数メガバイトの空間を占有することがある)に達すると、クライアントとサーバとの間で交換される2つのデータパケットPKG3及びPKG4が、データ同期処理全体に対して非常の大きな時間の消費、及びトラフィックの消費を引き起こす可能性がある。
上述の大量のデータボリュームに対する同期処理において、パケットPKG3及びパケットPKG4のデータはともに、順に交換される複数のメッセージ部にそれぞれ分割される。交換する各メッセージは、要求を送信し応答を待つ処理を含んでいる。図3は、クライアントとサーバとの間で変更されたデータを交換する処理を明確に示す略図である。
図3において、送信のためにデータパケットPKG3が、第1のデータメッセージ(S31)、第2のデータメッセージ(S33)、及び第3のデータメッセージ(S35)に分割されるとともに、送信のためにデータパケットPKG4が、第1のデータメッセージ(S32),第2のデータメッセージ(S34)に分割される。
リンク帯域幅が不十分であったり、無線ネットワークの信号を弱かったりする場合にこの方法が多大な時間を必要とすることは明らかである。従って、変更されたデータをそのように交換する回数をできるだけ減らす必要がある。
クライアントとサーバとの間で交換される各変更データメッセージに新規追加データ項目を入れると大きなメッセージ空間を占有する。特に、大きなボリュームをもつデータオブジェクト(例えば、画像や映像といったマルチメディアファイルの新規追加データ項目)の場合、新規追加データ項目を入れるためには、時々、そのデータ項目を複数のメッセージの分割して各々を送信する必要がある。さらに、通常、サーバは同期処理においてクライアントと比較してより多くのデータをクライアントと同期する必要がある。従って、本発明の一実施形態において、サーバからクライアントに送信される変更データ項目(特に新規追加データ項目)の数を減らすことを検討する。
本発明の一実施形態に係るデータの同期処理方法を実装する主な原理を示すフローチャートである。主な処理は次の通りである。
S10において、クライアントが、サーバから送信された変更データ項目に従って対応する変更を行う。
S12において、クライアントが、サーバから送信された上記変更データ項目に対応するGUIDをバッファリングする。
S14において、現在の同期処理が中断した場合、クライアントは、次回同期プロセスが再開した後に保存するために、サーバに上記バッファリングされたGUIDを通知する。
S16において、サーバは、保存されていないGUID、及び対応する変更データ項目に対して自身のデータベースにインデックスを付けることができるかを判定する。インデックスを付けることができる場合S18が次に実行され、そうでなければS20が次に実行される。
S18において、サーバは、保存されていないGUIDと自身の変更データベースに格納されている対応する変更データ項目とを保存結果に従ってクライアントに送信し、S10に戻って継続する。
S20において、現在のデータ同期処理が完了する。
上記処理において、サーバは、クライアントにより通知されたGUIDの保存に成功するとすぐに、保存に成功したという応答メッセージをクライアントに返却する。クライアントは、サーバにより返却された保存に成功したという応答メッセージを受信すると、すぐにバッファリングされたGUIDを削除してもよい。
S12におけるサーバから送信される変更データ項目に対応するGUIDをクライアントがバッファリングする処理は、次のように実装することができる。
クライアントは、サーバから送信された変更データ項目に対応するローカル一意識別子LUIDを割り当てる。
割り当てられたLUIDとサーバから送信された変更データ項目のGUIDとの間にマッピング関係が作成される。
サーバから送信されるGUIDがバッファリングされるように、作成されたマッピング関係がバッファリングされる。
上記S14において現在の同期処理が中断した場合、次回同期処理が再開するときに、バッファリングされたGUIDがサーバに通知されるように、クライアントはバッファリングされたGUIDとLUIDとの間のマッピング関係をサーバに通知してもよい。
上記方法は、変更データ項目が新規追加データ項目であるときに、より良好な技術的効果を示す。
本発明の上記実施形態に係るデータ同期処理の方法を実装する主要な技術的原理は、データパケットPKG4の受信処理中に異常中断が起こっても起こらなくてもデータ同期処理を実行する度に、クライアントが、クライアントにより新規に追加されたデータ項目と各変更データ項目に対してローカル変更操作が行われるとすぐにサーバから送信されるGUIDとを対応づけること、及びマッピング情報をファイルに保存することにある。従って、サーバが複数回の同期処理において繰り返し新規追加データ項目を送信する必要がなくなるように、次回同期処理を再開するときにサーバにマッピング情報を送信しても良い。
このように、サーバに格納されている大量の新規追加データ項目をクライアントと同期して同期処理が何度も中断される場合に、本発明はかなりの効果を有すると考えられる。
本発明の実施形態の具体的な実現方法は次の通りである。
最初にサーバに保存されているもの(例えば、図2に示されている従来技術の上記サーバマッピングテーブル)と同一のフォーマットのIDマッピング情報テーブルがクライアントにおいても作成される。作成されたIDマッピング情報テーブルは空になっている。
サーバから送信されたデータパケットPKG4の受信処理中に異常中断が起こっても起こらなくてもデータの同期処理を行う度に、クライアントはLUID(クライアントはローカル追加操作が完了するときに新規追加データ項目のLUIDを生成する)及びGUID(サーバから送信されるデータパケットPKG4は新規追加データ項目のGUIDを含んでいる)のマッピング情報をメモリに生成し、各新規追加データ項目に対してローカル追加操作が完了するときにローカルIDマッピング情報テーブルにマッピング情報を保存する。現在の同期処理が成功すると、クライアントはデータパケットPKG5内の上記生成されたIDマッピング情報をエンコードするとともにPKG5をサーバに送信し、送信が成功するとローカルIDマッピング情報テーブルを空にする。サーバから送信されるデータパケットPKG4の受信処理、またはそれに続く処理が異常に中断する場合、ローカルデータベースへの追加が成功した新規追加データ項目のIDマッピング情報は、クライアントのローカルIDマッピング情報テーブルにすでに保存されている。
次に同期処理を再開するときに、クライアントは最初にローカルIDマッピング情報テーブルに格納されている全ての情報を、データパケットPKG3を通じてサーバに送信する(低速同期の場合を除く。低速同期は、サーバの状態が異常になったときにサーバによって主に開始される特殊な同期である。その場合、クライアントとサーバとの両者のデータ項目が一貫するようにするために、クライアントはすべてのローカル変更データ項目をサーバに送信し、サーバはこれらのデータ項目とサーバに現在存在するデータ項目とを1つずつ比較するとともにサーバに含まれていないデータ項目を保存し、サーバに存在するがクライアントに存在しないデータ項目をそのクライアントに返却する)。データパケットPKG4をパッケージするときにIDマッピング情報テーブルに従ってすでにクライアントと同期がとれている新規追加データ項目を中断の前にクライアントに送信することを避けるために、クライアントから送信されたデータパケットPKG3を受信するとすぐに、サーバはPKG3に格納されているIDマッピング情報に従って自身のIDマッピング情報テーブルを最初に完成させる。このようにして、データパケットPKG4の伝送されるデータボリュームを減らすことができる。それに伴って、クライアントと交換するためにデータパケットPKG4を複数のメッセージに分割する回数を減らすことができ、最終的にデータの同期処理にかかる時間を減らすことができる。サーバは、IPマッピング情報の保存が成功したことを示すクライアントに返却されるべきメッセージをクライアントに送信されるデータパケットPKG4に入れて伝達してもよい。このように、サーバから送信されるデータパケットPKG4を受信するとすぐに、クライアントはローカルIDマッピング情報テーブルから対応する情報を消去することができる。この時点で現在の同期処理が異常に中断すると、クライアントに格納されている現在の新規追加データ項目により、新しいIDマッピング情報が生成されるとともにクライアントのローカルIDマッピング情報テーブルにその情報が保存される。従って、次に新しい同期処理を開始するときにデータの伝送量を減らすことができる。
次に、本発明の一実施形態に係るデータの同期処理の具体的な実現方法について、簡潔な例を用いて詳細に説明する。
次の表2に示されている3つのデータ項目がサーバに新規に追加されるが、クライアントにはデータ項目の変更がないものとする。
Figure 0004792505
このとき、データの同期処理が開始すると、サーバはデータパケットPKG4を通じて3つの新規追加データ項目をクライアントに送信する。それに応じてサーバから送信された新規追加データ項目を追加する処理において最初の新規追加データ項目のみがクライアントのローカルデータベースに追加されて32というLUIDが割り当てられたときにクライアントの電源が突然遮断された場合、1つのIDマッピング情報[10093902,32]がクライアントのローカルIDマッピング情報テーブルに生成されるが、他の2つの新規追加データ項目が処理されない。クライアントを次に再起動する時に、サーバとの新規データ鈍器処理が開始される。新たに開始された同期処理において、クライアントは最初に保存されたIDマッピング情報[10093902,32]をデータパケットPKG3を通じてサーバに通知する。IDマッピング情報を受信するとすぐに、サーバはNo.10093902のデータ項目はクライアントとすでに同期がとれていると考える。従って、データパケットPKG4を送信するときに、クライアントと同期がとっていないあと2つの新規追加データ項目だけをパッケージにして現在のデータ同期処理における同期データのトラフィックを減らす。
本発明は、さらにクライアント装置を実現する。図5は、本発明の一実施形態に係るクライアントの主要構成を示すブロック図である。クライアント装置は、主に変更処理ユニット10、識別バッファリングユニット20、及び識別通知ユニット30を備えている。各部材の主な機能は次の通りである。
変更処理ユニット10は、主にサーバから送信される変更データ項目について対応する変更処理を行うように適合している。
識別バッファリングユニット20は、主にサーバから送信される変更データ項目に対応するGUIDをバッファリングするように適合している。
識別通知ユニット30は、主に、現在の同期処理が中断される場合に次に同期処理を再開するときに保存するために、上記識別バッファリングユニット20によってバッファリングされたGUIDをサーバに通知するように適合している。
図6は、本発明の一実施形態に従って追加された識別削除ユニットを有するクライアントの主要構成を示すブロック図である。新しく追加された識別削除ユニット40は、主に、サーバから返却された保存が成功したことを示す応答メッセージを受信するとすぐに上記識別バッファリングユニット20にバッファリングされているGUIDを削除するように適合している。
図7は、本発明の一実施形態に係るクライアントの識別バッファリングユニットの主要構成を示すブロック図である。識別バッファリングユニットは、主に識別割当サブユニット210、マッピング関係作成サブユニット220、及びマッピング識別バッファリングサブユニット230を備えている。各部材の主な機能は次の通りである。
識別割当サブユニット210は、主に、サーバから送信される変更データ項目に対応するLUIDを割り当てるように適合している。
マッピング関係作成サブユニット220は、主に、識別割当サブユニット210によって割り当てられるLUIDとサーバから送信される変更データ項目に対応するGUIDとの間のマッピング関係を作成するように適合している。
マッピング識別バッファリングサブユニット230は、主に、サーバから送信されるGUIDをバッファリングするために、マッピング関係作成サブユニット220により作成されたマッピング関係をバッファリングするように適合している。
同様に、識別通知ユニット30は、バッファリングされたGUIDをサーバに通知するために、マッピング識別バッファリングサブユニット230にバッファリングされたLUIDとGUIDとの間のマッピング関係をサーバに通知する。
図8は、本発明の一実施形態に係るサーバの主要構成を示すブロック図である。
本発明の一実施形態に係るサーバは、クライアントにより通知されたGUIDを保存するための通知情報保存ユニット310を備えている。GUIDはサーバから送信され、クライアントにより更新される変更データ項目に対応する。
また、本発明の一実施形態に係るサーバは、変更データベースから通知情報保存ユニット320に含まれていないGUID、及び対応する変更データ項目を検索するための検索ユニット320を備えている。
また、本発明の一実施形態に係るサーバは、GUIDと検索ユニットにより検索された対応する変更データ項目とをクライアントに送信するための送信ユニット330を備えている。
さらに、サーバは、通知情報保存ユニット310がGUIDの保存に成功する際に、保存に成功したことを示す応答メッセージをクライアントに送るための保存応答ユニット340を備えてもよい。
本発明の一実施形態の具体的な実現方法において、通知情報保存ユニットは、クライアントから通知されるGUID、及びLUIDのマッピング関係に従ってサーバのマッピング情報テーブルを更新するように適合しているマッピング情報テーブル更新ユニットである。
上記クライアント及びサーバに基づいて、本発明の一実施形態はさらにデータ同期システムを実現する。データ同期システムにおいて、クライアントは、サーバから送信される変更データ項目について対応する変更を行い、サーバから送信される変更データ項目に対応するGUIDをバッファリングし、中断した同期処理を再開した後にバッファリングされたGUIDをサーバに通知するように適合している。サーバは、通知された情報を保存し、保存されていないGUIDを送信し、自身の変更データベースに格納されている対応する変更データ項目をクライアントに送信するように適合している。
当業者は、本発明の範囲から逸脱しないような付加的利点、及び変更形態に容易に想到すると考えられる。従って、本発明に含まれるように意図されている様々な変更及び変形形態は、添付の特許請求の範囲及びその均等物の範囲に属する変更及び変形形態である。
図1は、従来技術におけるSYNCMLプロトコルを用いたクライアントとサーバとの間のデータ同期処理のプロセスを示す略図である。 図2は、従来技術におけるIDマッピング情報テーブルを生成するとともにサーバから送信されたデータを追加する追加指示に従ってサーバに返却するクライアントの状態を示す略図である。 図3は、クライアントとサーバとの間で変更されたデータの交換を行う従来技術の処理を示す略図である。 図4は、本発明の一実施形態に係るデータの同期処理方法を実装する主な原理を示すフローチャートである。 図5は、本発明の一実施形態に係るクライアントの主要構成を示すブロック図である。 図6は、本発明の一実施形態に係る識別削除ユニットを備えたクライアントの主要構成を示すブロック図である。 図7は、本発明の一実施形態に係るクライアントの識別バッファリングユニットの主要構成を示すブロック図である。 図8は、本発明の一実施形態に係るサーバの主要構成を示すブロック図である。
符号の説明
10 変更処理ユニット
20 識別バッファリングユニット
30 識別通知ユニット
40 識別削除ユニット
210 識別割当ユニット
220 マッピング関係作成サブユニット
230 マッピング識別バッファリングサブユニット
310 通知情報保存ユニット
320 検索ユニット
330 送信ユニット
340 保存応答ユニット
810 クライアント装置
811 クライアントデータベース
820 サーバ装置
821 サーバマッピングテーブル

Claims (17)

  1. クライアントが、サーバから送信された変更データ項目について、対応する変更を行う工程と、
    上記クライアントが、上記変更データ項目に対応するグローバル一意識別子であって上記サーバから送信されたグローバル一意識別子をバッファリングする工程と、
    現在の同期処理が中断した場合、次に当該同期処理が再開した後に、上記クライアントが、バッファリングされた上記グローバル一意識別子を上記サーバに通知する工程と、
    上記サーバが、通知された情報を保存するとともに、自身の変更データベースに格納されているグローバル一意識別子であって上記通知された情報に含まれていないグローバル一意識別子と当該自身の変更データベースに格納されている対応する変更データ項目を上記クライアントに送信する工程と、
    を含んでいるデータの同期処理方法。
  2. 上記サーバが上記通知された情報の保存に成功した後に実行される工程として、
    上記サーバが保存に成功したことを示す応答メッセージを上記クライアントに返却する工程と、
    上記クライアントが、上記サーバから返却された保存に成功したことを示す上記応答メッセージを受信した直後に、バッファリングされた上記グローバル一意識別子を削除する工程とを、さらに含んでいることを特徴とする、
    請求項1に記載の同期処理方法。
  3. 上記サーバが上記通知された情報の保存に成功した後に実行される工程として、上記通知された情報に含まれていないグローバル一意識別子、及び対応する変更データ項目に対して上記サーバの変更データベースにインデックスを付けることが出来ない場合に上記データの同期処理を終了する工程を、さらに含んでいることを特徴とする、
    請求項1に記載の同期処理方法。
  4. 上記同期処理方法は、上記サーバから送信され、上記変更データ項目に対応するグローバル一意識別子をバッファリングするものであり、
    上記クライアントが、上記サーバから送信された上記変更データ項目に対応するローカル一意識別子を割り当てる工程と、
    上記クライアントが、上記ローカル一意識別子と上記サーバから送信され上記変更データ項目に対応する上記グローバル一意識別子との間のマッピング関係を作成する工程と、
    上記クライアントが、作成された上記マッピング関係をバッファリングする工程と、を含んでいることを特徴とする、
    請求項1に記載の同期処理方法。
  5. 上記クライアントが、バッファリングされた上記マッピング関係を上記サーバに通知することによって、バッファリングされた上記グローバル一意識別子を上記サーバに通知することを特徴とする、
    請求項4に記載の同期処理方法。
  6. 上記同期処理方法は、上記サーバが上記通知された情報を保存するものであり、
    上記サーバが、通知された上記マッピング関係に従ってマッピング情報テーブルを更新する工程を含んでいることを特徴とする、
    請求項5に記載の同期処理方法。
  7. 上記サーバが上記マッピング情報テーブルを更新した後に実行される工程として、
    上記サーバが、マッピング情報の更新に成功したことを示す応答メッセージを上記クライアントに返却する工程と、
    上記クライアントが、上記サーバから返却された上記応答メッセージであって上記マッピング情報の保存に成功したことを示す上記応答メッセージを受信した直後にバッファリングされた上記マッピング関係を削除する工程と、をさらに含んでいることを特徴とする、
    請求項6に記載の同期処理方法。
  8. 現在の同期処理が成功した場合、上記クライアントが、バッファリングされた上記マッピング関係を上記サーバに通知するとともに、バッファリングされた上記マッピング関係を当該クライアントから消去する工程をさらに含んでいることを特徴とする、
    請求項4に記載の同期処理方法。
  9. 上記変更データ項目は新規追加データ項目であることを特徴とする、
    請求項1から8のいずれか1項に記載の同期処理方法。
  10. サーバから送信される変更データ項目について、対応する変更を行うための変更処理ユニットと、
    上記変更データ項目に対応するグローバル一意識別子であって上記サーバから送信されるグローバル一意識別子をバッファリングするための識別バッファリングユニットと、
    現在の同期処理が中断した場合、次に上記同期処理を再開した後に上記識別バッファリングユニットによってバッファリングされた上記グローバル一意識別子を上記サーバに通知するための識別通知ユニットと、を備えているクライアント。
  11. 上記サーバから返却された応答メッセージであって保存に成功したことを示す応答メッセージを受信した直後に、上記識別バッファリングユニットにバッファリングされた上記グローバル一意識別子を削除するための識別削除ユニットをさらに備えていることを特徴とする、
    請求項10に記載のクライアント。
  12. 上記識別バッファリングユニットは、
    上記サーバから送信される上記変更データ項目に対応するローカル一意識別子を割り当てるための識別割当サブユニットと、
    上記識別割当サブユニットにより割り当てられた上記ローカル一意識別子と上記サーバから送信され上記変更データ項目に対応するグローバル一意識別子との間のマッピング関係を作成するためのマッピング関係作成サブユニットと、
    上記マッピング関係作成サブユニットにより作成された上記マッピング関係をバッファリングするためのマッピング識別バッファリングサブユニットと、を備えていることを特徴とする、
    請求項10に記載のクライアント。
  13. 上記識別通知ユニットは、上記マッピング識別バッファリングサブユニットにバッファリングされた上記マッピング関係を上記サーバに通知するためのマッピング識別通知ユニットであることを特徴とする、
    請求項12に記載のクライアント。
  14. クライアントから通知されたグローバル一意識別子を保存するための通知情報保存ユニットであって、当該サーバから送信されクライアントにより更新された変更データ項目に対応するグローバル一意識別子を保存するための通知情報保存ユニットと、
    当該サーバが有する変更データベースに格納されているグローバル一意識別子であって上記通知情報保存ユニットに含まれていないグローバル一意識別子と対応する変更データ項目とを検索するための検索ユニットと、
    上記検索ユニットにより検索された上記グローバル一意識別子と対応する上記変更データ項目とを上記クライアントに送信するための送信ユニットと、
    を備えているサーバ。
  15. 上記通知情報保存ユニットが、上記グローバル一意識別子の保存に成功した直後に、保存に成功したことを示す応答メッセージを上記クライアントに返却するための保存応答ユニットをさらに備えていることを特徴とする、
    請求項14に記載のサーバ。
  16. 上記通知情報保存ユニットは、上記グローバル一意識別子と上記クライアントにより通知されるローカル一意識別子との間のマッピング関係に従って上記サーバに格納されているマッピング情報テーブルを更新するためのマッピング情報テーブル更新ユニットであることを特徴とする、
    請求項14に記載のサーバ。
  17. クライアントとサーバとからなるデータ同期システムにおいて、
    上記クライアントは、
    上記サーバから送信される変更データ項目について対応する変更を行い、
    上記サーバから送信された上記変更データ項目に対応するグローバル一意識別子をバッファリングし、
    中断された同期処理を再開した直後に、バッファリングされた上記グローバル一意識別子を上記サーバに通知し、
    上記サーバは、
    通知された情報を保存し、
    自身の変更データベースに格納されている上記グローバル一意識別子であって上記通知された情報に含まれていない上記グローバル一意識別子と当該自身の変更データベースに格納されている対応する上記変更データ項目とを上記クライアントに送信することを特徴とするデータ同期システム。
JP2008540433A 2005-11-16 2006-11-16 データの同期処理方法、クライアント、サーバ、及びクライアントとサーバとのデータ同期システム Active JP4792505B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN200510115392.7 2005-11-16
CNA2005101153927A CN1852309A (zh) 2005-11-16 2005-11-16 数据同步处理方法及其客户端
PCT/CN2006/003092 WO2007056954A1 (en) 2005-11-16 2006-11-16 A method for processing data synchronization and client terminal, server and data synchronization system thereof

Publications (2)

Publication Number Publication Date
JP2009516273A JP2009516273A (ja) 2009-04-16
JP4792505B2 true JP4792505B2 (ja) 2011-10-12

Family

ID=37133777

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008540433A Active JP4792505B2 (ja) 2005-11-16 2006-11-16 データの同期処理方法、クライアント、サーバ、及びクライアントとサーバとのデータ同期システム

Country Status (6)

Country Link
US (1) US20080270485A1 (ja)
EP (1) EP1940107A4 (ja)
JP (1) JP4792505B2 (ja)
KR (1) KR20080068110A (ja)
CN (2) CN1852309A (ja)
WO (1) WO2007056954A1 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9134989B2 (en) 2002-01-31 2015-09-15 Qualcomm Incorporated System and method for updating dataset versions resident on a wireless device
US20040068724A1 (en) * 2002-08-30 2004-04-08 Gardner Richard Wayne Server processing for updating dataset versions resident on a wireless device
US9092286B2 (en) 2002-12-20 2015-07-28 Qualcomm Incorporated System to automatically process components on a device
US8626146B2 (en) 2003-10-29 2014-01-07 Qualcomm Incorporated Method, software and apparatus for performing actions on a wireless device using action lists and versioning
CN101192229B (zh) * 2006-12-01 2010-09-22 阿里巴巴集团控股有限公司 一种同步数据的方法及系统
EP2163075A2 (en) 2007-06-19 2010-03-17 Qualcomm Incorporated Methods and apparatus for dataset synchronization in a wireless environment
US7991740B2 (en) * 2008-03-04 2011-08-02 Apple Inc. Synchronization server process
CN102594874B (zh) * 2008-06-20 2014-12-17 华为技术有限公司 一种同步处理方法和装置
CN101610225B (zh) * 2008-06-20 2012-01-25 华为技术有限公司 一种同步处理方法、系统和装置
US20100268784A1 (en) * 2009-04-17 2010-10-21 Marc Henness Data synchronization system and method
CN101883419A (zh) * 2009-05-06 2010-11-10 中兴通讯股份有限公司 客户端信息的同步方法和系统
CN101997829A (zh) * 2009-08-18 2011-03-30 华为终端有限公司 一种分级数据同步的方法和设备
CN102238223B (zh) * 2010-05-06 2012-10-10 清华大学 一种面向移动设备的网络化个人数据管理方法
CN102594598A (zh) * 2012-02-16 2012-07-18 浪潮(北京)电子信息产业有限公司 一种日志管理系统及其实现方法
CN102724319B (zh) * 2012-06-20 2015-03-18 新浪网技术(中国)有限公司 一种数据同步方法、相关存储服务器及系统
CN103338144B (zh) * 2013-05-30 2016-06-22 华为软件技术有限公司 一种会话数据同步方法和装置
CN103347005B (zh) * 2013-06-19 2016-08-10 北京奇虎科技有限公司 一种控制数据上报的方法以及客户端设备和服务器设备
CN103475721B (zh) * 2013-09-12 2016-09-14 广东电子工业研究院有限公司 一种数字资产更新系统的数字资产更新方法
CN105337996B (zh) * 2015-11-30 2018-08-03 北京奇艺世纪科技有限公司 一种数据处理方法及系统
US10311082B2 (en) * 2015-12-21 2019-06-04 Sap Se Synchronization of offline instances
CN112231324B (zh) 2019-06-26 2023-03-24 金篆信科有限责任公司 一种实现增量数据比对的系统及方法
CN110324760B (zh) * 2019-06-28 2020-10-27 安徽威斯贝尔智能科技有限公司 一种音频处理器及其控制方法
CN111460028A (zh) * 2020-03-09 2020-07-28 拉扎斯网络科技(上海)有限公司 数据传输方法、数据传输装置、存储介质和电子设备
CN115082228A (zh) * 2021-03-10 2022-09-20 上海子午线新荣科技有限公司 一种初次镜像和增量传输的数据方式
WO2024092661A1 (zh) * 2022-11-03 2024-05-10 北京小米移动软件有限公司 模型的标识方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001117801A (ja) * 1999-10-22 2001-04-27 Sharp Corp データベース同期処理装置及びデータベース同期処理プログラムを記録した記録媒体
WO2004023233A2 (en) * 2002-09-03 2004-03-18 Nokia Corporation Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6680952B1 (en) * 1999-06-01 2004-01-20 Cisco Technology, Inc. Method and apparatus for backhaul of telecommunications signaling protocols over packet-switching networks
JP2002152821A (ja) * 2000-11-08 2002-05-24 Nec Saitama Ltd 携帯端末装置のプログラム更新方法および携帯端末装置
US6941326B2 (en) * 2001-01-24 2005-09-06 Microsoft Corporation Accounting for update notifications in synchronizing data that may be represented by different data structures
CN1469244A (zh) * 2002-07-19 2004-01-21 文化传信科技(澳门)有限公司 文件下载方法及系统
KR100557192B1 (ko) * 2004-04-06 2006-03-03 삼성전자주식회사 서버와 클라이언트간에 데이터 동기화 시 비정상 종료된경우 데이터 전송 방법 및 그 시스템.

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001117801A (ja) * 1999-10-22 2001-04-27 Sharp Corp データベース同期処理装置及びデータベース同期処理プログラムを記録した記録媒体
WO2004023233A2 (en) * 2002-09-03 2004-03-18 Nokia Corporation Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process
JP2005537579A (ja) * 2002-09-03 2005-12-08 ノキア コーポレイション 中断された同期プロセスに対処してデータを同期させる方法、装置、システム

Also Published As

Publication number Publication date
US20080270485A1 (en) 2008-10-30
EP1940107A4 (en) 2009-03-11
CN101160908A (zh) 2008-04-09
CN1852309A (zh) 2006-10-25
WO2007056954A1 (en) 2007-05-24
KR20080068110A (ko) 2008-07-22
EP1940107A1 (en) 2008-07-02
JP2009516273A (ja) 2009-04-16

Similar Documents

Publication Publication Date Title
JP4792505B2 (ja) データの同期処理方法、クライアント、サーバ、及びクライアントとサーバとのデータ同期システム
US7139569B2 (en) Service searching system
US10831612B2 (en) Primary node-standby node data transmission method, control node, and database system
EP2204964A1 (en) Method and device for realizing data synchronization
CN103514173B (zh) 数据处理的方法和节点设备
CN105338078A (zh) 用于存储系统的数据存储方法和装置
US7716522B2 (en) Information processing system and method for executing process during communication error
JP2005509979A (ja) 非同期型同期のシステムおよび方法
CN101506807B (zh) 无线通信系统中的数据库管理
CN114710549B (zh) 一种容器平台中网卡的动态管理方法、系统及业务节点
WO2018040168A1 (zh) 分布式缓存同步方法、装置及系统
JP7097427B2 (ja) データ処理システム、及びデータ処理方法
US20070288548A1 (en) Protocol optimization for client and server synchronization
JP4872698B2 (ja) 通信システム、携帯端末装置、サーバ装置及び通信方法
JP2011008484A (ja) データ処理装置、データ処理プログラムおよびデータ処理方法
JP6289879B2 (ja) 通信端末、通信方法及びプログラム
CN112052104B (zh) 基于多机房实现的消息队列的管理方法及电子设备
JP2005534099A (ja) データベースの同期
CN114143730B (zh) 信令处理方法、通信系统、电子设备和存储介质
JP2005284395A (ja) 通信機器、通信システムの情報同期方法、通信機器の制御プログラム、記録媒体
JP2015041146A (ja) サーバ装置、クライアント装置、システム、情報処理方法及びプログラム
JP2010079462A (ja) サーバ装置、クライアント装置、サーバベースコンピューティングシステムおよびプログラム
CN101711064B (zh) 修改信息的管理方法及终端
CN113810266B (zh) 针对消息对象的重试操作方法、装置、设备及存储介质
KR102275765B1 (ko) 소프트웨어 정의 네트워크에서 플로우 룰 트랜잭션을 처리하는 방법, 장치 및 컴퓨터 프로그램

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110315

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110603

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: 20110705

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: 20110725

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140729

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4792505

Country of ref document: JP

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

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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