(57)【要約】  データの同期処理方法において、サーバから伝送されるデータ項目を更新するための対応する更新処理を行うクライアントは、サーバから送信されるデータ項目の更新に対応するグローバル一意識別子（ＧＵＩＤ）を保存し、この同期処理が中断した場合、次の同期処理が再開した後に該クライアントは保存結果に応じて保存されたＧＵＩＤをサーバのメモリに通知し、サーバは自身の更新データベースの保存されていないＧＵＩＤ、及び対応する更新データ項目をクライアントに伝送して処理に戻る。同様に、本発明は、クライアント、サーバ及びデータ同期システムをも実現する。本発明は、たとえデータの同期処理が中断する場合でもデータの同期を正常に完了することを可能にする。
2009516273.tif 000002
【特許請求の範囲】
【請求項１】
クライアントが、サーバから送信された変更データ項目について、対応する変更を行う工程と、
上記クライアントが、上記変更データ項目に対応するグローバル一意識別子であって上記サーバから送信されたグローバル一意識別子をバッファリングする工程と、
現在の同期処理が中断した場合、次に当該同期処理が再開した後に、上記クライアントが、バッファリングされた上記グローバル一意識別子を上記サーバに通知する工程と、
上記サーバが、通知された情報を保存するとともに、自身の変更データベースに格納されているグローバル一意識別子であって保存されていないグローバル一意識別子、及び自身の変更データベースに格納されている対応する変更データ項目を上記クライアントに送信する工程と、
を含んでいるデータの同期処理方法。
【請求項２】
上記サーバが上記通知された情報の保存に成功した後に実行される工程として、
上記サーバが保存に成功したことを示す応答メッセージを上記クライアントに返却する工程と、
上記クライアントが、上記サーバから返却された保存に成功したことを示す上記応答メッセージを受信した直後に、バッファリングされた上記グローバル一意識別子を削除する工程とを、さらに含んでいることを特徴とする、
請求項１に記載の同期処理方法。
【請求項３】
上記サーバが上記通知された情報の保存に成功した後に実行される工程として、上記保存されていないグローバル一意識別子、及び対応する変更データ項目に対して上記サーバの変更データベースにインデックスを付けることが出来ない場合に上記データの同期処理を終了する工程を、さらに含んでいることを特徴とする、
請求項１に記載の同期処理方法。
【請求項４】
上記同期処理方法は、上記サーバから送信され、上記変更データ項目に対応するグローバル一意識別子をバッファリングするものであり、
上記クライアントが、上記サーバから送信された上記変更データ項目に対応するローカル一意識別子を割り当てる工程と、
上記クライアントが、上記ローカル一意識別子と上記サーバから送信され上記変更データ項目に対応する上記グローバル一意識別子との間のマッピング関係を作成する工程と、
上記クライアントが、作成された上記マッピング関係をバッファリングする工程と、を含んでいることを特徴とする、
請求項１に記載の同期処理方法。
【請求項５】
上記クライアントが、バッファリングされた上記マッピング関係を上記サーバに通知することによって、バッファリングされた上記グローバル一意識別子を上記サーバに通知することを特徴とする、
請求項４に記載の同期処理方法。
【請求項６】
上記同期処理方法は、上記サーバが上記通知された情報を保存するものであり、
上記サーバが、通知された上記マッピング関係に従ってマッピング情報テーブルを更新する工程を含んでいることを特徴とする、
請求項５に記載の同期処理方法。
【請求項７】
上記サーバが上記マッピング情報テーブルを更新した後に実行される工程として、
上記サーバが、マッピング情報の更新に成功したことを示す応答メッセージを上記クライアントに返却する工程と、
上記クライアントが、上記サーバから返却された上記応答メッセージであって上記マッピング情報の保存に成功したことを示す上記応答メッセージを受信した直後にバッファリングされた上記マッピング関係を削除する工程と、をさらに含んでいることを特徴とする、
請求項６に記載の同期処理方法。
【請求項８】
現在の同期処理が成功した場合、上記クライアントが、バッファリングされた上記マッピング関係を上記サーバに通知するとともに、バッファリングされた上記マッピング関係を当該クライアントから消去する工程をさらに含んでいることを特徴とする、
請求項４に記載の同期処理方法。
【請求項９】
上記変更データ項目は新規追加データ項目であることを特徴とする、
請求項１から８のいずれか１項に記載の同期処理方法。
【請求項１０】
サーバから送信される変更データ項目について、対応する変更を行うための変更処理ユニットと、
上記変更データ項目に対応するグローバル一意識別子であって上記サーバから送信されるグローバル一意識別子をバッファリングするための識別バッファリングユニットと、
現在の同期処理が中断した場合、次に上記同期処理を再開した後に上記識別バッファリングユニットによってバッファリングされた上記グローバル一意識別子を上記サーバに通知するための識別通知ユニットと、を備えているクライアント。
【請求項１１】
上記サーバから返却された応答メッセージであって保存に成功したことを示す応答メッセージを受信した直後に、上記識別バッファリングユニットにバッファリングされた上記グローバル一意識別子を削除するための識別削除ユニットをさらに備えていることを特徴とする、
請求項１０に記載のクライアント。
【請求項１２】
上記識別バッファリングユニットは、
上記サーバから送信される上記変更データ項目に対応するローカル一意識別子を割り当てるための識別割当サブユニットと、
上記識別割当サブユニットにより割り当てられた上記ローカル一意識別子と上記サーバから送信され上記変更データ項目に対応するグローバル一意識別子との間のマッピング関係を作成するためのマッピング関係作成サブユニットと、
上記マッピング関係作成サブユニットにより作成された上記マッピング関係をバッファリングするためのマッピング識別バッファリングサブユニットと、を備えていることを特徴とする、
請求項１０に記載のクライアント。
【請求項１３】
上記識別通知ユニットは、上記マッピング識別バッファリングサブユニットにバッファリングされた上記マッピング関係を上記サーバに通知するためのマッピング識別通知ユニットであることを特徴とする、
請求項１２に記載のクライアント。
【請求項１４】
クライアントから通知されたグローバル一意識別子を保存するための通知情報保存ユニットであって、当該サーバから送信されクライアントにより更新された変更データ項目に対応するグローバル一意識別子を保存するための通知情報保存ユニットと、
当該サーバが有する変更データベースに格納されているグローバル一意識別子であって上記通知情報保存ユニットに含まれていないグローバル一意識別子と対応する変更データ項目とを検索するための検索ユニットと、
上記検索ユニットにより検索された上記グローバル一意識別子と対応する上記変更データ項目とを上記クライアントに送信するための送信ユニットと、
を備えているサーバ。
【請求項１５】
上記通知情報保存ユニットが、上記グローバル一意識別子の保存に成功した直後に、保存に成功したことを示す応答メッセージを上記クライアントに返却するための保存応答ユニットをさらに備えていることを特徴とする、
請求項１４に記載のサーバ。
【請求項１６】
上記通知情報保存ユニットは、上記グローバル一意識別子と上記クライアントにより通知されるローカル一意識別子との間のマッピング関係に従って上記サーバに格納されているマッピング情報テーブルを更新するためのマッピング情報テーブル更新ユニットであることを特徴とする、
請求項１４に記載のサーバ。
【請求項１７】
クライアントとサーバとからなるデータ同期システムにおいて、
上記クライアントは、
上記サーバから送信される変更データ項目について対応する変更を行い、
上記サーバから送信された上記変更データ項目に対応するグローバル一意識別子をバッファリングし、
中断された同期処理を再開した直後に、バッファリングされた上記グローバル一意識別子を上記サーバに通知し、
上記サーバは、
通知された情報を保存し、
自身の変更データベースに格納されている上記グローバル一意識別子であって保存されていない上記グローバル一意識別子と対応する上記変更データ項目とを上記クライアントに送信することを特徴とするデータ同期システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同期マークアップ言語（ＳＹＮＣＭＬ）プロトコルの同期処理を行う技術、特に、データの同期処理を行う方法、並びにクライアント、サーバ、及びクライアントとサーバとのデータ同期システムに関する。
【背景技術】
【０００２】
現代社会は情報社会である。ユーザはいつでもどこでも端末上において様々なアプリケーションを実行するために情報の送受信を行う必要がある。情報通信の結果とアプリケーションの実行結果とは共に端末内部に保存されると共に他の通信デバイスの対応するデータと一貫性を保つ必要があると考えられる。例えば、通常は住所リストが携帯電話または携帯情報端末（ＰＤＡ）に保存されており、同一の住所リストがオフィスまたは自宅にあるコンピュータまたはラップトップにも保存されているかもしれない。ユーザは、これらの通信デバイスに格納された情報が互いに一貫性を保つことをいつも望んでいる。すなわち、複数の通信デバイスのうち１つの通信デバイスに格納されたデータ情報が変更されると、それに伴って残りの通信デバイスに格納された対応するデータ情報も更新される。これが異なる通信デバイス間のデータ同期処理である。
【０００３】
データの同期を実行する端末デバイスは、パームトップ、ＰＤＡ、携帯電話及びデスクトップコンピュータ等どのようなネットワークデバイスであってもよい。ネットワークはどのようなネットワークであってもよいし、同期処理が行われるデータはどのようなネットワークデータであってもよい。ユーザは異なる通信デバイスを通じて同一のひとまとまりのデータ情報にアクセスし、操作してもよい。ＳＹＮＣＭＬの技術は、上述のデータ同期処理を実装するために提案された新しい世界基準の技術である。
【０００４】
図１は、従来技術におけるＳＹＮＣＭＬプロトコルを用いたクライアントとサーバとの間のデータ同期処理を示す略図である。１回のＳＹＮＣＭＬ同期処理においてＰＫＧ１からＰＫＧ６の６つのデータパケットがクライアントとサーバとの間で交換される必要がある。主な処理は次の通りである。
【０００５】
１．クライアントとサーバのどちらによってＳＹＮＣＭＬ同期処理が開始されても、クライアントが最初に同期開始データパッケージＰＫＧ１をサーバに送信する。ＰＫＧ１は、主にクライアント認証情報やデバイスの容量などの情報を含んでいる。
【０００６】
２．サーバは、ＰＫＧ１を受信するとすぐにＰＫＧ１に含まれているクライアント認証情報に基づいてクライアントの認証を行い、クライアントのアカウント情報を確認する。確認の結果と指定された同期タイプに関する情報とが、同期開始応答データパケット（ＰＫＧ２）によりクライアントに送信される。
【０００７】
３．クライアントは、受信したＰＫＧ２において示された同期タイプを解析し、最後に同期を完了した後に変更されたローカルデータベース内の（追加、削除または変更されたデータを含む）すべてのデータをまとめてデータパケットＰＫＧ３に格納し、パケットＰＫＧ３をサーバに送信する。
【０００８】
クライアントは、通常ローカルデータベースの操作ログの中で、ログＩＤを通じて最後の同期処理が完了したときの操作ログの位置を識別する。通常アンカーが位置を識別するために使用される。従って、次に同期処理が実行されるときにサーバと同期する必要のあるデータは、ログのうちアンカー識別子の後に記録された情報である。クライアントによる参照のためのログ情報の形式を次の表１に示す。ここで、ＬＵＩＤはローカル一意識別子である。
【０００９】
【表１】
2009516273.tif 000003
【００１０】
４．サーバはＰＫＧ３を受信するとすぐに、ＰＫＧ３に格納された対応する操作指示を実行し、クライアントにて変更されたデータに対応する自身のデータベースのデータを順に更新する。
【００１１】
データパケットＰＫＧ４を通じて上記操作指示の実行に関する状態情報をクライアントに返却するときに、サーバは、最後に同期を完了してから変更された自身のデータベース内の（追加、削除または変更されたデータを含む）すべてのデータをまとめてデータパケットＰＫＧ４に格納し、パケットＰＫＧ４をクライアントに返却する。
【００１２】
５．クライアントは、ＰＫＧ４を受信するとすぐにＰＫＧ４に格納された対応する操作指示を実行し、サーバにおいて変更されたデータに対応する自身のデータベースのデータを順に更新する。
【００１３】
データパケットＰＫＧ５を通じて上記操作指示の実行に関する状態情報をサーバに返却するときには、受信したＰＫＧ４がローカルデータベースに新しいデータ項目を追加する追加指示を含む場合、クライアントはローカルデータベースに対する新しいデータ項目の追加に成功した後、対応するＩＤマッピング情報を生成してデータパケットＰＫＧ５を通じてサーバに通知する。図２は、ＩＤマッピング情報テーブルを生成し、サーバから送信されたデータを追加する追加指示に従ってサーバにＩＤマッピング情報テーブルを送信するクライアントの状態を示す略図である。図２において、ＧＵＩＤはグローバル一意識別子を表わし、ＬＵＩＤはローカル一意識別子を表わしている。同じ新規追加データ項目に関して、サーバ８２０はデータ項目を識別するためにサーバ側で一意に識別されるＧＵＩＤ値を生成し、一方クライアント８１０はデータ項目を識別するためにクライアント側において一意に識別されるＬＵＩＤ値を生成する。クライアントにより操作されるデータ項目に相当する同一のデータ項目がサーバにより操作されるようにするために、サーバ８２０側においてＩＤマッピング情報テーブルが保存される必要がある。図２において、“車”がサーバにおいて新規追加データ項目であるとすると、サーバ８２０はその新規追加データ項目と対応するＧＵＩＤ値“１０１０１０１”とをクライアント８１０に送信し、クライアント８１０は新規追加データ項目“車”をローカルデータベース８１１に追加すると共にＬＵＩＤ値“１１”をその新規追加データ項目に割り当てる。そしてクライアント８１０は、新規追加データ項目に割り当てられたＬＵＩＤ値“１１”とサーバによって新規追加データ項目に割り当てられたＧＵＩＤ値“１０１０１０１”とのマッピング関係を作成し、サーバ８２０に送信する。その後の新規追加データ項目に対しても同様に上記処理を行うことにより、サーバ８２０はＩＤマッピングテーブル“サーバマッピングテーブル”８２１を取得し、当該ＩＤマッピング情報テーブルを保存する。
【００１４】
６．サーバは、受信したＰＫＧ５に含まれているＩＤマッピング情報によりマッピング情報テーブルを保存するとすぐにデータパケットＰＫＧ６を通じて上記保存指示の実行に関する状態情報をクライアントに返却する。クライアントはデータパケットＰＫＧ６を受信すると、ＰＫＧ６に格納されているすべての状態コードが正常であれば、すぐにデータの同期処理が正常に完了したことを記録する。
【００１５】
上記ＳＹＮＣＭＬの同期処理に関して、ユーザが有線ネットワーク上において無線通信端末にインストールされたＳＹＮＣＭＬ同期ソフトウェアを通じてサーバと大量のデータの同期処理を行うときには、無線ネットワークの信号の品質が悪いこと、または通信端末のオペレーティングシステムに大きな負荷がかかることにより、データの同期速度がしばしば遅くなり多くの時間が消費される。そのような場合、データの同期処理が完了する前に、ユーザが長時間待つことに耐えられずにデータの同期処理を中断する可能性がある。さらに、他の理由、例えば通信端末の電源が突然オフになったり、ネットワーク信号が弱くなったり、電話の着信があったりするために、データの同期処理が完了する前に中断する可能性がある。
【００１６】
上記の理由により通信端末とサーバとの間のデータ同期処理が完了する前に中断すると、次に通信端末が新しい同期要求を開始するときに、変更されたすべてのデータを再度同期する必要がある。すなわち、次の同期処理の際に、中断前に同期処理が行われているデータを再度同期する必要がある。再同期処理の間に、上述したネットワークの状態、及び端末の現在の状態が再度変化するということが起こる可能性があり、上述の同じ理由により再度開始されたデータ同期処理が主導的または受動的に中断される可能性がある。中断が繰り返されることが、データの同期の実現に影響を及ぼす可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【００１７】
データの同期処理が中断する場合にも正常にデータの同期が完了するようなデータの同期処理方法、クライアント、サーバ、及びデータ同期システムを実現する。
【課題を解決するための手段】
【００１８】
本発明の一様態において、データの同期処理方法は、クライアントがサーバから送信された変更データ項目について対応する変更を行う工程、クライアントがサーバから送信された変更データ項目に対応するＧＵＩＤをバッファリングする工程、現在の同期処理が中断された場合に、次回同期処理を再開した後に、クライアントがサーバにバッファリングされたＧＵＩＤを通知する工程、並びに、サーバが通知された情報を保存するとともに、保存されていないＧＵＩＤであって自身の変更データベースに格納されているＧＵＩＤと自身の変更データベースに格納されている対応する変更データ項目とをクライアントに送信する工程、及びクライアントが対応する変更処理を行う工程を含んでいる。
【００１９】
本発明の一様態において、クライアントは、サーバから送信された変更データ項目について対応する変更を行うための変更処理ユニット、サーバから送信された変更データ項目に対応するＧＵＩＤをバッファリングするように適合した識別バッファリングユニット、及び、現在の同期処理が中断された場合に次回同期処理を再開した後に識別バッファリングユニットによってバッファリングされたＧＵＩＤをサーバに通知するように適合した識別通知ユニットから構成される。
【００２０】
本発明のさらに別の一様態において、サーバは、クライアントによって通知されたＧＵＩＤであって、サーバから送信されクライアントにより更新された変更データ項目に対応するＧＵＩＤを保存するように適合した通知情報保存ユニット、通知情報保存ユニットに含まれていないＧＵＩＤであって自身の変更データベースに格納されているＧＵＩＤ、及び自身の変更データベースに格納されている対応する変更データ項目を検索するように適合した検索ユニット、並びに、検索ユニットによって見つけられたＧＵＩＤ、及び対応する変更データ項目をクライアントに送信するように適合した送信ユニットから構成される。
【００２１】
本発明のさらに別の一様態において、データ同期システムはクライアント及びサーバから構成される。
【００２２】
クライアントは、サーバから送信された変更データ項目について対応する変更を行い、サーバから送信された変更データ項目に対応するＧＵＩＤをバッファリングし、現在の同期処理が中断された場合に次回同期処理を再開した後にバッファリングされたＧＵＩＤをサーバに通知するように適合している。
【００２３】
サーバは、通知された情報を保存し、保存されていないＧＵＩＤであって自身の変更データベースに格納されているＧＵＩＤと自身の変更データベースに格納されている対応する変更データ項目とをクライアントに送信するように適合している。
【００２４】
本発明の実施形態において、クライアントはサーバから送信された変更データ項目について対応する変更を行い、サーバから送信された変更データ項目に対応するＧＵＩＤをバッファリングし、現在の同期処理が中断される場合に、クライアントは次回に同期処理を再開した後にサーバにバッファリングされたＧＵＩＤを通知してもよい。そしてサーバは、保存されていないＧＵＩＤと変更データベースに格納されている対応する変更データ項目とを送信する。結果として、同期処理を再開した後にサーバによりクライアントに送信される変更データの量を削減し、同期処理にかかる時間を節約することができ、その結果、データ同期処理が中断された場合にも正常にデータの同期を完了することができる。
【発明を実施するための最良の形態】
【００２５】
図１は、従来技術におけるＳＹＮＣＭＬプロトコルを用いたクライアントとサーバとの間のデータ同期処理のプロセスを示す略図である。
【００２６】
図２は、従来技術におけるＩＤマッピング情報テーブルを生成するとともにサーバから送信されたデータを追加する追加指示に従ってサーバに返却するクライアントの状態を示す略図である。
【００２７】
図３は、クライアントとサーバとの間で変更されたデータの交換を行う従来技術の処理を示す略図である。
【００２８】
図４は、本発明の一実施形態に係るデータの同期処理方法を実装する主な原理を示すフローチャートである。
【００２９】
図５は、本発明の一実施形態に係るクライアントの主要構成を示すブロック図である。
【００３０】
図６は、本発明の一実施形態に係る識別削除ユニットを備えたクライアントの主要構成を示すブロック図である。
【００３１】
図７は、本発明の一実施形態に係るクライアントの識別バッファリングユニットの主要構成を示すブロック図である。
【００３２】
図８は、本発明の一実施形態に係るサーバの主要構成を示すブロック図である。
【００３３】
本発明の実施形態は、時間が長くかかるために主導的または能動的に中断されることにより、大量のデータに対してデータの同期処理を完了することができないという問題を解決することができる。
【００３４】
本発明の実施形態は、上述した従来技術のＳＹＮＣＭＬ同期処理を解析することにより次の考察をもとに作成されており、クライアントとサーバとの間で交換されるデータパケットＰＫＧ３及びＰＫＧ４が、実行時間においてもトラフィックにおいても同期処理全体の大部分を占めることがわかる。
【００３５】
データパケットＰＫＧ３は主にクライアントにおいて変更されたデータ項目をサーバに伝達するように適合しており、データパケットはサーバにおいて変更されたデータ項目をクライアントに伝達するように適合している。また両者は、相手から送信されたデータの変更操作指示を実行した結果を互いに返却する。従って、クライアントであってもサーバであっても、一度変更されたデータ項目の数が数百、さらには数千（たった１つの変更データ項目が数千バイト、さらには数メガバイトの空間を占有することがある）に達すると、クライアントとサーバとの間で交換される２つのデータパケットＰＫＧ３及びＰＫＧ４が、データ同期処理全体に対して非常の大きな時間の消費、及びトラフィックの消費を引き起こす可能性がある。
【００３６】
上述の大量のデータボリュームに対する同期処理において、パケットＰＫＧ３及びパケットＰＫＧ４のデータはともに、順に交換される複数のメッセージ部にそれぞれ分割される。交換する各メッセージは、要求を送信し応答を待つ処理を含んでいる。図３は、クライアントとサーバとの間で変更されたデータを交換する処理を明確に示す略図である。
【００３７】
図３において、送信のためにデータパケットＰＫＧ３が、第１のデータメッセージ（Ｓ３１）、第２のデータメッセージ（Ｓ３３）、及び第３のデータメッセージ（Ｓ３５）に分割されるとともに、送信のためにデータパケットＰＫＧ４が、第１のデータメッセージ（Ｓ３２），第２のデータメッセージ（Ｓ３４）に分割される。
【００３８】
リンク帯域幅が不十分であったり、無線ネットワークの信号を弱かったりする場合にこの方法が多大な時間を必要とすることは明らかである。従って、変更されたデータをそのように交換する回数をできるだけ減らす必要がある。
【００３９】
クライアントとサーバとの間で交換される各変更データメッセージに新規追加データ項目を入れると大きなメッセージ空間を占有する。特に、大きなボリュームをもつデータオブジェクト（例えば、画像や映像といったマルチメディアファイルの新規追加データ項目）の場合、新規追加データ項目を入れるためには、時々、そのデータ項目を複数のメッセージの分割して各々を送信する必要がある。さらに、通常、サーバは同期処理においてクライアントと比較してより多くのデータをクライアントと同期する必要がある。従って、本発明の一実施形態において、サーバからクライアントに送信される変更データ項目（特に新規追加データ項目）の数を減らすことを検討する。
【００４０】
本発明の一実施形態に係るデータの同期処理方法を実装する主な原理を示すフローチャートである。主な処理は次の通りである。
【００４１】
Ｓ１０において、クライアントが、サーバから送信された変更データ項目に従って対応する変更を行う。
【００４２】
Ｓ１２において、クライアントが、サーバから送信された上記変更データ項目に対応するＧＵＩＤをバッファリングする。
【００４３】
Ｓ１４において、現在の同期処理が中断した場合、クライアントは、次回同期プロセスが再開した後に保存するために、サーバに上記バッファリングされたＧＵＩＤを通知する。
【００４４】
Ｓ１６において、サーバは、保存されていないＧＵＩＤ、及び対応する変更データ項目に対して自身のデータベースにインデックスを付けることができるかを判定する。インデックスを付けることができる場合Ｓ１８が次に実行され、そうでなければＳ２０が次に実行される。
【００４５】
Ｓ１８において、サーバは、保存されていないＧＵＩＤと自身の変更データベースに格納されている対応する変更データ項目とを保存結果に従ってクライアントに送信し、Ｓ１０に戻って継続する。
【００４６】
Ｓ２０において、現在のデータ同期処理が完了する。
【００４７】
上記処理において、サーバは、クライアントにより通知されたＧＵＩＤの保存に成功するとすぐに、保存に成功したという応答メッセージをクライアントに返却する。クライアントは、サーバにより返却された保存に成功したという応答メッセージを受信すると、すぐにバッファリングされたＧＵＩＤを削除してもよい。
【００４８】
Ｓ１２におけるサーバから送信される変更データ項目に対応するＧＵＩＤをクライアントがバッファリングする処理は、次のように実装することができる。
【００４９】
クライアントは、サーバから送信された変更データ項目に対応するローカル一意識別子ＬＵＩＤを割り当てる。
【００５０】
割り当てられたＬＵＩＤとサーバから送信された変更データ項目のＧＵＩＤとの間にマッピング関係が作成される。
【００５１】
サーバから送信されるＧＵＩＤがバッファリングされるように、作成されたマッピング関係がバッファリングされる。
【００５２】
上記Ｓ１４において現在の同期処理が中断した場合、次回同期処理が再開するときに、バッファリングされたＧＵＩＤがサーバに通知されるように、クライアントはバッファリングされたＧＵＩＤとＬＵＩＤとの間のマッピング関係をサーバに通知してもよい。
【００５３】
上記方法は、変更データ項目が新規追加データ項目であるときに、より良好な技術的効果を示す。
【００５４】
本発明の上記実施形態に係るデータ同期処理の方法を実装する主要な技術的原理は、データパケットＰＫＧ４の受信処理中に異常中断が起こっても起こらなくてもデータ同期処理を実行する度に、クライアントが、クライアントにより新規に追加されたデータ項目と各変更データ項目に対してローカル変更操作が行われるとすぐにサーバから送信されるＧＵＩＤとを対応づけること、及びマッピング情報をファイルに保存することにある。従って、サーバが複数回の同期処理において繰り返し新規追加データ項目を送信する必要がなくなるように、次回同期処理を再開するときにサーバにマッピング情報を送信しても良い。
【００５５】
このように、サーバに格納されている大量の新規追加データ項目をクライアントと同期して同期処理が何度も中断される場合に、本発明はかなりの効果を有すると考えられる。
【００５６】
本発明の実施形態の具体的な実現方法は次の通りである。
【００５７】
最初にサーバに保存されているもの（例えば、図２に示されている従来技術の上記サーバマッピングテーブル）と同一のフォーマットのＩＤマッピング情報テーブルがクライアントにおいても作成される。作成されたＩＤマッピング情報テーブルは空になっている。
【００５８】
サーバから送信されたデータパケットＰＫＧ４の受信処理中に異常中断が起こっても起こらなくてもデータの同期処理を行う度に、クライアントはＬＵＩＤ（クライアントはローカル追加操作が完了するときに新規追加データ項目のＬＵＩＤを生成する）及びＧＵＩＤ（サーバから送信されるデータパケットＰＫＧ４は新規追加データ項目のＧＵＩＤを含んでいる）のマッピング情報をメモリに生成し、各新規追加データ項目に対してローカル追加操作が完了するときにローカルＩＤマッピング情報テーブルにマッピング情報を保存する。現在の同期処理が成功すると、クライアントはデータパケットＰＫＧ５内の上記生成されたＩＤマッピング情報をエンコードするとともにＰＫＧ５をサーバに送信し、送信が成功するとローカルＩＤマッピング情報テーブルを空にする。サーバから送信されるデータパケットＰＫＧ４の受信処理、またはそれに続く処理が異常に中断する場合、ローカルデータベースへの追加が成功した新規追加データ項目のＩＤマッピング情報は、クライアントのローカルＩＤマッピング情報テーブルにすでに保存されている。
【００５９】
次に同期処理を再開するときに、クライアントは最初にローカルＩＤマッピング情報テーブルに格納されている全ての情報を、データパケットＰＫＧ３を通じてサーバに送信する（低速同期の場合を除く。低速同期は、サーバの状態が異常になったときにサーバによって主に開始される特殊な同期である。その場合、クライアントとサーバとの両者のデータ項目が一貫するようにするために、クライアントはすべてのローカル変更データ項目をサーバに送信し、サーバはこれらのデータ項目とサーバに現在存在するデータ項目とを１つずつ比較するとともにサーバに含まれていないデータ項目を保存し、サーバに存在するがクライアントに存在しないデータ項目をそのクライアントに返却する）。データパケットＰＫＧ４をパッケージするときにＩＤマッピング情報テーブルに従ってすでにクライアントと同期がとれている新規追加データ項目を中断の前にクライアントに送信することを避けるために、クライアントから送信されたデータパケットＰＫＧ３を受信するとすぐに、サーバはＰＫＧ３に格納されているＩＤマッピング情報に従って自身のＩＤマッピング情報テーブルを最初に完成させる。このようにして、データパケットＰＫＧ４の伝送されるデータボリュームを減らすことができる。それに伴って、クライアントと交換するためにデータパケットＰＫＧ４を複数のメッセージに分割する回数を減らすことができ、最終的にデータの同期処理にかかる時間を減らすことができる。サーバは、ＩＰマッピング情報の保存が成功したことを示すクライアントに返却されるべきメッセージをクライアントに送信されるデータパケットＰＫＧ４に入れて伝達してもよい。このように、サーバから送信されるデータパケットＰＫＧ４を受信するとすぐに、クライアントはローカルＩＤマッピング情報テーブルから対応する情報を消去することができる。この時点で現在の同期処理が異常に中断すると、クライアントに格納されている現在の新規追加データ項目により、新しいＩＤマッピング情報が生成されるとともにクライアントのローカルＩＤマッピング情報テーブルにその情報が保存される。従って、次に新しい同期処理を開始するときにデータの伝送量を減らすことができる。
【００６０】
次に、本発明の一実施形態に係るデータの同期処理の具体的な実現方法について、簡潔な例を用いて詳細に説明する。
【００６１】
次の表２に示されている３つのデータ項目がサーバに新規に追加されるが、クライアントにはデータ項目の変更がないものとする。
【００６２】
【表２】
2009516273.tif 000004
【００６３】
このとき、データの同期処理が開始すると、サーバはデータパケットＰＫＧ４を通じて３つの新規追加データ項目をクライアントに送信する。それに応じてサーバから送信された新規追加データ項目を追加する処理において最初の新規追加データ項目のみがクライアントのローカルデータベースに追加されて３２というＬＵＩＤが割り当てられたときにクライアントの電源が突然遮断された場合、1つのＩＤマッピング情報［１００９３９０２，３２］がクライアントのローカルＩＤマッピング情報テーブルに生成されるが、他の２つの新規追加データ項目が処理されない。クライアントを次に再起動する時に、サーバとの新規データ鈍器処理が開始される。新たに開始された同期処理において、クライアントは最初に保存されたＩＤマッピング情報［１００９３９０２，３２］をデータパケットＰＫＧ３を通じてサーバに通知する。ＩＤマッピング情報を受信するとすぐに、サーバはＮｏ．１００９３９０２のデータ項目はクライアントとすでに同期がとれていると考える。従って、データパケットＰＫＧ４を送信するときに、クライアントと同期がとっていないあと２つの新規追加データ項目だけをパッケージにして現在のデータ同期処理における同期データのトラフィックを減らす。
【００６４】
本発明は、さらにクライアント装置を実現する。図５は、本発明の一実施形態に係るクライアントの主要構成を示すブロック図である。クライアント装置は、主に変更処理ユニット１０、識別バッファリングユニット２０、及び識別通知ユニット３０を備えている。各部材の主な機能は次の通りである。
【００６５】
変更処理ユニット１０は、主にサーバから送信される変更データ項目について対応する変更処理を行うように適合している。
【００６６】
識別バッファリングユニット２０は、主にサーバから送信される変更データ項目に対応するＧＵＩＤをバッファリングするように適合している。
【００６７】
識別通知ユニット３０は、主に、現在の同期処理が中断される場合に次に同期処理を再開するときに保存するために、上記識別バッファリングユニット２０によってバッファリングされたＧＵＩＤをサーバに通知するように適合している。
【００６８】
図６は、本発明の一実施形態に従って追加された識別削除ユニットを有するクライアントの主要構成を示すブロック図である。新しく追加された識別削除ユニット４０は、主に、サーバから返却された保存が成功したことを示す応答メッセージを受信するとすぐに上記識別バッファリングユニット２０にバッファリングされているＧＵＩＤを削除するように適合している。
【００６９】
図７は、本発明の一実施形態に係るクライアントの識別バッファリングユニットの主要構成を示すブロック図である。識別バッファリングユニットは、主に識別割当サブユニット２１０、マッピング関係作成サブユニット２２０、及びマッピング識別バッファリングサブユニット２３０を備えている。各部材の主な機能は次の通りである。
【００７０】
識別割当サブユニット２１０は、主に、サーバから送信される変更データ項目に対応するＬＵＩＤを割り当てるように適合している。
【００７１】
マッピング関係作成サブユニット２２０は、主に、識別割当サブユニット２１０によって割り当てられるＬＵＩＤとサーバから送信される変更データ項目に対応するＧＵＩＤとの間のマッピング関係を作成するように適合している。
【００７２】
マッピング識別バッファリングサブユニット２３０は、主に、サーバから送信されるＧＵＩＤをバッファリングするために、マッピング関係作成サブユニット２２０により作成されたマッピング関係をバッファリングするように適合している。
【００７３】
同様に、識別通知ユニット３０は、バッファリングされたＧＵＩＤをサーバに通知するために、マッピング識別バッファリングサブユニット２３０にバッファリングされたＬＵＩＤとＧＵＩＤとの間のマッピング関係をサーバに通知する。
【００７４】
図８は、本発明の一実施形態に係るサーバの主要構成を示すブロック図である。
【００７５】
本発明の一実施形態に係るサーバは、クライアントにより通知されたＧＵＩＤを保存するための通知情報保存ユニット３１０を備えている。ＧＵＩＤはサーバから送信され、クライアントにより更新される変更データ項目に対応する。
【００７６】
また、本発明の一実施形態に係るサーバは、変更データベースから通知情報保存ユニット３２０に含まれていないＧＵＩＤ、及び対応する変更データ項目を検索するための検索ユニット３２０を備えている。
【００７７】
また、本発明の一実施形態に係るサーバは、ＧＵＩＤと検索ユニットにより検索された対応する変更データ項目とをクライアントに送信するための送信ユニット３３０を備えている。
【００７８】
さらに、サーバは、通知情報保存ユニット３１０がＧＵＩＤの保存に成功する際に、保存に成功したことを示す応答メッセージをクライアントに送るための保存応答ユニット３４０を備えてもよい。
【００７９】
本発明の一実施形態の具体的な実現方法において、通知情報保存ユニットは、クライアントから通知されるＧＵＩＤ、及びＬＵＩＤのマッピング関係に従ってサーバのマッピング情報テーブルを更新するように適合しているマッピング情報テーブル更新ユニットである。
【００８０】
上記クライアント及びサーバに基づいて、本発明の一実施形態はさらにデータ同期システムを実現する。データ同期システムにおいて、クライアントは、サーバから送信される変更データ項目について対応する変更を行い、サーバから送信される変更データ項目に対応するＧＵＩＤをバッファリングし、中断した同期処理を再開した後にバッファリングされたＧＵＩＤをサーバに通知するように適合している。サーバは、通知された情報を保存し、保存されていないＧＵＩＤを送信し、自身の変更データベースに格納されている対応する変更データ項目をクライアントに送信するように適合している。
【００８１】
当業者は、本発明の範囲から逸脱しないような付加的利点、及び変更形態に容易に想到すると考えられる。従って、本発明に含まれるように意図されている様々な変更及び変形形態は、添付の特許請求の範囲及びその均等物の範囲に属する変更及び変形形態である。
【図面の簡単な説明】
【００８２】
【図１】図１は、従来技術におけるＳＹＮＣＭＬプロトコルを用いたクライアントとサーバとの間のデータ同期処理のプロセスを示す略図である。
【図２】図２は、従来技術におけるＩＤマッピング情報テーブルを生成するとともにサーバから送信されたデータを追加する追加指示に従ってサーバに返却するクライアントの状態を示す略図である。
【図３】図３は、クライアントとサーバとの間で変更されたデータの交換を行う従来技術の処理を示す略図である。
【図４】図４は、本発明の一実施形態に係るデータの同期処理方法を実装する主な原理を示すフローチャートである。
【図５】図５は、本発明の一実施形態に係るクライアントの主要構成を示すブロック図である。
【図６】図６は、本発明の一実施形態に係る識別削除ユニットを備えたクライアントの主要構成を示すブロック図である。
【図７】図７は、本発明の一実施形態に係るクライアントの識別バッファリングユニットの主要構成を示すブロック図である。
【図８】図８は、本発明の一実施形態に係るサーバの主要構成を示すブロック図である。
【符号の説明】
【００８３】
１０    変更処理ユニット
２０    識別バッファリングユニット
３０    識別通知ユニット
４０    識別削除ユニット
２１０  識別割当ユニット
２２０  マッピング関係作成サブユニット
２３０  マッピング識別バッファリングサブユニット
３１０  通知情報保存ユニット
３２０  検索ユニット
３３０  送信ユニット
３４０  保存応答ユニット
８１０  クライアント装置
８１１  クライアントデータベース
８２０  サーバ装置
８２１  サーバマッピングテーブル
【図１】
2009516273.tif 000005
【図２】
2009516273.tif 000006
【図３】
2009516273.tif 000007
【図４】
2009516273.tif 000008
【図５】
2009516273.tif 000009
【図６】
2009516273.tif 000010
【図７】
2009516273.tif 000011
【図８】
2009516273.tif 000012
【国際調査報告】
2009516273.tif 000013
2009516273.tif 000014
2009516273.tif 000015
2009516273.tif 000016