(57)【特許請求の範囲】
【請求項１】
第１の装置及び第２の装置が実施する同期法であって、
同期させるデータ・セットをそれぞれが有している前記第１の装置と前記第２の装置との間でデータ同期のための通信接続を確立する確立ステップと、
前記第１の装置と前記第２の装置との間で実行された過去の完全な同期セッションを表し、値が少なくとも前記第１の装置に記憶されている第１の更新識別子、及び前記第１の装置と前記第２の装置との間で開始された過去の不完全な同期セッションを表し、値が少なくとも前記第１の装置に記憶されている第２の更新識別子、を送信するステップと、
過去の不完全な同期セッションの間にうまく同期したデータの指標を取得または生成するステップと、
前記指標を用い、過去の不完全な同期セッションの間にうまく同期しなかったデータを同期させるステップと、
少なくとも前記第１の装置において、前記第１の更新識別子の値を前記第２の更新識別子の値で更新するステップと、
を含む方法。
【請求項２】
過去の不完全な同期セッションに関係していて過去の不完全な同期に関する情報群の中の少なくとも１つの情報を含む追加情報と、受信した同期関連情報に従ってうまく同期したデータに関する情報とを送信するステップを更に有する請求項１に記載の方法。
【請求項３】
前記第１の装置と前記第２の装置のうちの少なくとも一方において、
第１回目の比較では、前記第１の装置から送信された前記第１の更新識別子の値を、前記第２の装置に記憶されている前記第１の装置の前記第１の更新識別子の値と比較し、
第２回目の比較では、前記第１の装置から送信された前記第２の更新識別子の値を、前記第２の装置に記憶されている前記第１の装置の前記第２の更新識別子の値と比較するステップと、次に掲げる
前記第２回目の比較によって真の値が生成された場合には、過去の不完全な同期セッションの間に同期されなかったデータを前記第１の装置と前記第２の装置との間で同期させるステップ、
前記第２回目の比較によって偽の値が生成された場合には、過去の不完全な同期セッションの間に同期されたデータを前記第１の装置と前記第２の装置との間で同期させるステップ、
前記第１回目の比較によって偽の値が生成された場合には、過去の完全な同期セッションの間に同期されたデータを前記第１の装置と前記第２の装置との間で同期させるステップ、または
前記第１回目の比較によって真の値が生成された場合には、過去の完全な同期セッションの間に同期されなかったデータを前記第１の装置と前記第２の装置との間で同期させるステップ、
のうちいずれか１つを実施するステップと、
を更に有する請求項１に記載の方法。
【請求項４】
前記確立ステップが、
前記第１の装置と前記第２の装置のうちの少なくとも一方に対し、過去の不完全な同期を再開させる準備を指示する最初のメッセージを送信するステップを更に含む、請求項１に記載の方法。
【請求項５】
前記同期が、ＳｙｎｃＭＬ規格に従う同期プロトコルに基づいており、前記第１の更新識別子が最終同期アンカーである、請求項１に記載の方法。
【請求項６】
前記第２の更新識別子が、次の同期アンカーと休止同期アンカーのうちの少なくとも一方である、請求項５に記載の方法。
【請求項７】
過去の不完全な同期セッションに関する前記追加情報に、同期セッション識別子（セッションＩＤ）と、同期メッセージ識別子（メッセージＩＤ）と、肯定応答されたデータ及びそれに対応するそれぞれのデータ・ストアの１または複数の識別子と、からなるグループのうちの少なくとも１つの情報が含まれる、請求項５に記載の方法。
【請求項８】
前記追加情報が、前記第１の更新識別子及び前記第２の更新識別子を送信する前に少なくとも前記第１の装置に記憶されている、請求項７に記載の方法。
【請求項９】
データの肯定応答、または該データを含むメッセージの肯定応答がうまく受信された場合に、該データはうまく同期されており、前記肯定応答は、前記データまたは前記メッセージの同期がうまくいった状態またはいかない状態であることを示す、請求項１に記載の方法。
【請求項１０】
請求項１に記載した方法のステップを実行するためのプログラム・コード・セクション群を含む同期用のコンピュータ・プログラムであって、処理装置、端末機器、通信端末機器、ネットワーク装置のいずれかで実行されるコンピュータ・プログラム。
【請求項１１】
請求項１に記載の方法を実行するためのプログラム・コード・セクション群であって、処理装置、端末機器、通信端末機器、ネットワーク装置のいずれかで実行される同期用のプログラム・コード・セクション群を含むコンピュータ可読記憶媒体。
【請求項１２】
同期させる所定のデータ・セットを含む記憶媒体と、
ネットワーク内で使用される別のネットワーク装置にデータ同期のための通信接続を確立し、第１の更新識別子及び第２の更新識別子を前記第２のネットワーク装置へ伝送し、データを前記第２のネットワーク装置と交換する通信インターフェイスであって、前記第１の更新識別子は前記別のネットワーク装置との間で実行した過去の完全な同期セッションを表し、値が少なくとも前記ネットワーク装置に記憶されており、前記第２の更新識別子は、前記別のネットワーク装置との間で開始した過去の不完全な同期セッションを表し、値が少なくとも前記ネットワーク装置に記憶されている通信インターフェイスと、
を備え、
前記ネットワーク装置に記憶されている過去の不完全な同期セッションの間に同期されたデータの指標を取得する取得素子または生成する生成素子と、
前記指標に従ってデータを同期させるための同期素子と、
記憶されている前記第１の更新識別子の値を、記憶されている前記第２の更新識別子の値で更新するための更新素子と、
を備える装置。
【請求項１３】
前記通信インターフェイスが、過去の不完全な同期セッションに関する補足追加情報を送信する構成にされており、
前記補足追加情報は、過去の不完全な同期セッションに関する情報と、最後にうまくいった同期関連情報の交換に関する情報と、受信した同期関連情報に従ってうまく同期したデータに関する情報と、からなるグループのうちの少なくとも１つの情報を含む、請求項１２に記載の装置。
【請求項１４】
装置であって、
第１回目の比較では、前記装置から送信された第１の更新識別子の値を、別の装置に記憶されている前記装置の第１の更新識別子の値と比較し、
第２回目の比較では、前記装置から送信された第２の更新識別子の値を、前記別の装置に記憶されている前記装置の第２の更新識別子の値と比較する
素子を更に備え、該素子は
前記第２回目の比較によって真の値が生成された場合には、過去の不完全な同期セッションの間に同期されなかったデータを前記装置と前記別の装置との間で同期させる操作、
前記第２回目の比較によって偽の値が生成された場合には、過去の不完全な同期セッションの間に同期されたデータを前記装置と前記別の装置との間で同期させる操作、
前記第１回目の比較によって偽の値が生成された場合には、過去の完全な同期セッションの間に同期されたデータを前記装置と前記別の装置との間で同期させる操作、または
前記第１回目の比較によって真の値が生成された場合には、過去の完全な同期セッションの間に同期されなかったデータを前記装置と前記別の装置との間で同期させる操作、
のうちいずれか１つを実施する請求項１２に記載の装置。
【請求項１５】
第１のネットワーク装置と第２のネットワーク装置を備える同期用システムであって、前記第１のネットワーク装置が、
同期させる所定のデータ・セットを含む記憶媒体と、
ネットワーク内で使用される前記第２のネットワーク装置にデータ同期のための通信接続を確立し、第１の更新識別子及び第２の更新識別子を前記第２のネットワーク装置へ伝送し、データを前記第２のネットワーク装置と交換する通信インターフェイスと、
前記第１のネットワーク装置に記憶されている過去の不完全な同期セッションの間に同期されたデータの指標を取得する取得素子または生成する生成素子と、
前記指標に従ってデータを同期させるための同期素子と、
記憶されている前記第1の更新識別子の値を、記憶されている前記第２の更新識別子の値で更新するための更新素子と、
を備え、
前記第２のネットワーク装置が、
同期させる所定のデータ・セットを含む記憶媒体と、
ネットワーク内で使用される前記第１のネットワーク装置にデータ同期のための通信接続を確立し、記憶されている前記第１の更新識別子及び前記第２の更新識別子を前記第１のネットワーク装置へ伝送し、データを前記第１のネットワーク装置と交換する通信インターフェイスと、
前記指標に従ってデータを同期させるための同期素子と、
記憶されている前記第１の更新識別子の値を、記憶されている前記第２の更新識別子の値で更新するための更新素子と、
第１回目の比較では、前記第１の装置から送信された前記第１の更新識別子の値を、前記第２の装置に記憶されている前記第１の更新識別子の値と比較し、第２回目の比較では、前記第１の装置から送信された前記第２の更新識別子の値を、前記第２の装置に記憶されている前記第２の更新識別子の値と比較する素子と、
を備え、
前記第１の更新識別子は、前記第２のネットワーク装置との間で実行された過去の完全な同期セッションを表し、値が少なくとも１つのネットワーク装置に記憶されており、前記第２の更新識別子は、前記第２のネットワーク装置との間で開始された過去の不完全な同期セッションを表し、値が少なくとも１つのネットワーク装置に記憶されており、
前記の比較によって真の値が生成される場合には、前記データは、前記過去の完全な同期セッションの間に同期されなかったデータを少なくとも含んでおり、前記の交換されるデータは前記指標に基づいているシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同期させるクライアント装置と同期させるサーバー装置の間でデータを同期させる方法と装置、ならびに同期させる個々の装置に関する。さらに詳細には、本発明は、アクティブな同期プロセスの中断をよりよく処理することのできるデータ同期法とデータ処理装置に関する。
【背景技術】
【０００２】
データの同期は、少なくとも2つの電子装置を使用していて同じデータをこれらの電子装置で処理するユーザーによく知られている考え方または技術である。一般に、同期は端末装置（例えば携帯電話）とサーバー装置（例えばローカルPCのアプリケーションまたは専用同期サーバー）の間で行なわれる。端末（例えば携帯用コンピュータ、PDA端末（パーソナル・ディジタル・アシスタント）、携帯電話、移動ステーション、無線呼出端末）からのデータは、同期サーバーとして機能するネットワーク化された装置（例えばネットワーク化されたアプリケーションやデスクトップ・コンピュータのアプリケーション）によって、あるいは通信システムのデータ・ストアに含まれる他の管理アプリケーションによって同期させることができる。ここで“データ・ストア”という用語は、できるだけ広い意味に理解する必要がある。すなわちこの用語には、任意のデータ・セットが含まれる。一般に同期させるのは、特に、カレンダーのデータ、契約データ、eメール・アプリケーションのデータのほか、装置／アプリケーションの設定と構成に関するデータである。
【０００３】
同期は、メーカーごとに異なっていて互換性のない特別なプロトコルの使用に基づいてなされる。そのため使用する端末またはデータのタイプが制限され、ユーザーにとってトラブルの原因となる。特に移動体通信では、使用する端末やアプリケーションに関係なくデータを回収して更新できることが重要である。
【０００４】
アプリケーション・データの同期を改善するため、同期マークアップ言語として知られるSyncMLという名称の言語が設計された。これは、拡張可能なマークアップ言語（XML）に基づいている。SyncML形式のメッセージを使用するSyncML同期プロトコルを用いることにより、ネットワーク化された端末とあらゆるタイプのネットワーク・サーバーの間で、あらゆるアプリケーションのデータを同期させることができる。SyncML同期プロトコルは、無線ネットワークと固定ネットワークの両方で機能し、いくつかの送信プロトコルをサポートしている。上記のSyncML同期技術により、特にデータ・ストアまたはデータベースを同期させることができる。
【０００５】
通常は、データ記録の同期は、異なる記憶場所（すなわちその記憶場所を管理し利用している別々の同期装置）に記憶されている2つの異なる所定のデータ記録セットを調和させるため、すなわち対応状態にするため、ある決まった時刻に実行する。その結果、その時刻に両方の記憶場所に2つの同じデータ記録セットが得られる。ある時刻におけるデータ記録の同期は、同期セッションとも呼ばれる。データ記録セットの同期は、そのような同期セッションの間に情報交換によってなされる。両方の同期装置に対して命令やコマンドを送ることにより、そこに記憶されているデータ記録セットを変更し、それらを調和させる。このような変更操作には、データの追加、データの移動、現在のデータに対するデータ追加、データの更新などが含まれる。必要な情報やコマンドの交換は、実際的な目的のため、それぞれの同期装置で調和操作に必要なすべての情報、命令、コマンドが分散された形で含まれた1つ以上のメッセージを同期装置相互間でやりとりすることによって実現される。さらに、1つ以上のメッセージのそれぞれが肯定応答されると、その中に含まれるメッセージ情報に従って成功した操作がどれであるかがわかる。
【０００６】
基本的に、上記の同期プロセスは、完全同期プロセス（遅い同期とも呼ばれる）と増分同期プロセス（通常の同期、または速い同期とも呼ばれる）のいずれかによって取り扱って実行することができる。同期セッションで完全同期プロセスまたは遅い同期プロセスが実行されている間に、同期に関与している両方の装置の所定の全データ記録セットが調和状態になる。同期セッションで増分同期プロセスまたは速い同期プロセスが実行されている間に、関与している同期装置の両方に最後に終了した同期セッションの時刻が記録され、両方の同期装置に記録されているその時刻が一致するときには、その時刻以降に変更されたデータ記録だけが同期のために選択され、他のすべてのデータ記録は同期プロセスから除外される。したがって変更ログは、変更を記録し、データ記録の時刻を追加または削除する同期装置によって維持することができる。別の方法として、変更は、記録の変更がある場合にその記録の変更時刻のスタンプを調べることによって明らかにすることもできる。両方の同期プロセス、すなわちいわゆる遅い同期といわゆる速い（通常の）同期は、SyncML規格において規定され、使用される。さらに別のタイプの同期プロセスも利用可能で利用されているが、これら別のタイプの同期プロセスは、上記の基本的な同期プロセスに還元することができる。
【０００７】
1つの記録および／または記録群が他のデータベースと同期したとき、肯定応答がその記録の送り手に戻される。肯定応答を取り扱う2つの基本的な方法を同期アプリケーションで実現することができる。第1の実現法では、1つのデータ記録またはデータ記録群の成功したそれぞれの同期が、好ましくはそのことを示す1つ以上の変更ログとして同期装置によって肯定応答され、記録される。第2の実現法では、肯定応答は、同期セッションの終了時に（すなわち、同期セッションが適切に終了したことを両方の同期装置が示すとすぐに）処理され、利用されることになる対応する通信が接続される。さらに、同期セッション終了時の肯定応答の取り扱いと最後に終了した同期セッションを示す時刻の更新は、実質的に同時に処理される。同期セッションが遅い同期の方法で実行される場合には、最後に終了した同期セッションを示す時刻の考慮は、明らかに不要である。
【０００８】
第1の実現法では、主として、例えば分散データベースを互いに高速で接続して同期させるのに用いられる同期アプリケーションを利用して、データの完全性を維持・確保する。このような実現法では、それぞれのデータ記録のための変更ログを記録し維持するのに必要な容量も、変更ログを処理するのに必要な処理能力も、必要な肯定応答を交換するのに必要なネットワーク帯域幅も、あまり重要ではない。小さな電子機器（例えば携帯電話、携帯コンピュータ、PDA、コミュニケータなど）に記憶されているデータの同期を考えると、記憶容量と処理能力は限られているため、それぞれのデータ記録のための変更ログを記録、維持、処理する操作は、重荷であり、不十分にしかできず、ときには不可能になる。さらに、必要な肯定応答によって生じるネットワーク・トラフィックは受け入れられない。というのも、携帯通信環境ではコストと時間もかかるからである。
【０００９】
時刻スタンプの更新と項目の肯定応答の取り扱いがセッションの終了時に行なわれる第2の実現法は、小さな電子機器で利用するのに適しており、SyncML規格によってサポートされている。しかしこの実現法には、現在実行中の同期セッションの中断が示されないという問題がある。一部が実行された同期セッションの間に交換された同期情報を維持することはできない。というのも、同期セッションの終了時に行なわれる時刻スタンプ（同期アンカー）の更新と肯定応答の取り扱いは、中断のために実施されないからである。たとえデータ項目の肯定応答がセッション中に取り扱われたとしても、時刻スタンプはセッションの終了時にしか更新されないため、遅い同期の中断により、すでに処理された同期情報が失われる。上記の両方の場合に、同期セッションを繰り返してデータの完全性を保証する必要がある。同期に関係する情報の量に応じ、すなわち同期させるデータ記録の数に応じ、通常はいくつかの同期メッセージしか含まれていない1回の同期セッションの間に巨大な数のメッセージが交換されることさえある。例えば500個のデータ記録のうちの400個を1回の同期セッションの間に同期させることができて、そこで中断が起こったとする。以後の同期セッションでは、同期を速い同期プロセスで実施するか遅い同期プロセスで実施するかに関係なく、500個のデータ記録すべてを再び同期させねばならない。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】国際公開第００／２９９９８号
【発明の概要】
【課題を解決するための手段】
【００１１】
本発明の目的は、中断された同期セッションの全体を繰り返すことを避けるため、その中断された同期セッションを再開させることのできる方法を提供することである。中断された同期セッションを再開させるための設備は、大きな記憶容量も、大きな処理能力も、交換される多数の肯定応答も必要なく、広い通信帯域幅も必要ないように構成する。この方法は、小さな電子機器を経済的に実現するのに適している。
【００１２】
本発明の一実施態様では、操作中に中断された過去の不完全な同期セッションを再開させることのできる方法が提供される。過去の不完全な同期セッションの再開は、以下の操作によって実現される。
【００１３】
第1の装置と第2の装置の間でデータを同期させるために通信接続が確立される。第1の装置と第2の装置は、同期させるデータ記録セットをそれぞれ備えている。通常は、データ記録は、対応するアプリケーションによってデータ記憶装置またはデータベースの中に収容されている。
【００１４】
本発明の一実施態様では、2つの装置間でのデータ交換に関して中断された過去の不完全な同期を再開させる方法が提供される。この方法は、過去の不完全な同期セッションの再開要求に関する情報を含む再開警告信号を第1の装置から第2の装置に送るステップを特徴とする。再開警告信号は、少なくとも、再開セッションを直接示す直接警告コードまたはサーバーによる推定が可能な信号（例えばそのセッションで使用される時刻スタンプを示すもの、またはそれ以外でそのセッションを特定する何らかのもの）にすることができる。この方法は、警告信号の状態として、実行する同期のタイプに関する情報を第2の装置から第1の装置に送るステップも特徴とする。再開警告信号の状態に関する情報は、過去の不完全な同期セッションの同期のタイプを無効にする情報を含むことができる。
【００１５】
本発明による別の一実施態様では、第1の更新識別子と第2の識別子が、第1の装置から第2の装置へ、あるいは第2の装置から第1の装置へと送られる。送信の方向は、どの装置が過去の不完全な同期セッションの再開を要求しているかと、同期の方向に依存する。再開を要求している装置は、両方の識別子を他方の装置に送る。第1の更新識別子は、1の装置と第2の装置の間で実行された過去の完全な同期セッションを特定する。第1の更新識別子は、過去の完全な同期セッションを初期化している間に第1の装置と第2の装置に記憶されている。さらに詳しく説明すると、識別子の値は記憶されているが、その値の名称または記憶場所は、実現法によって異なる可能性がある。一般に、第1の更新識別子は、過去の完全な同期セッションの開始時刻を記録するのに用いられる時刻スタンプである。あるいは識別子は、任意の数値でもよい。例えば、単調に増加する整数ストリング、テキスト・ストリング、あるいはこれらの混合物が、順序よく生成されたもの、あるいは少なくともある程度が、すなわち一部がランダムに生成されたものが可能である。本発明によれば、第2の更新識別子は、第1の装置と第2の装置の間で実行された過去の不完全な同期セッションを特定する。第2の更新識別子は、過去の不完全な同期セッションを初期化している間に第1の装置と第2の装置に記憶されている。一般に、第2の更新識別子も、中断された過去の不完全な同期セッションの開始時刻を示すのに用いられる時刻スタンプなどである。しかし従来技術では、第2の更新識別子の挙動と使用は、同期セッションの間だけについて規定されていて、セッションの中断または終了の後は規定されていない。
【００１６】
本発明の方法は、4つの同期ステップを含んでいる。第1のステップは、同期させるデータ・セットをそれぞれが備えている第1の装置と第2の装置の間でデータを同期させるために通信接続を確立する操作を含んでいる。第2のステップは、第1の更新識別子と第2の更新識別子を送信する操作を含んでいる。第1の更新識別子は、第1の装置と第2の装置の間で実行された過去の完全な同期セッションを表わしていて値が少なくとも第1の装置に記憶されている。第2の更新識別子は、第1の装置と第2の装置の間で開始された過去の不完全な同期セッションを表わしていて値が少なくとも第1の装置に記憶されている。第3のステップは、過去の不完全な同期セッションの間にうまく同期したデータの指標を取得または生成する操作を含んでいる。第4のステップは、この指標を用い、過去の不完全な同期セッションの間にうまく同期しなかったデータを同期させ；（4）少なくとも第1の装置において、第1の更新識別子の値を第2の更新識別子の値で更新する操作を含んでいる。
【００１７】
この方法は、過去の不完全な同期セッションに関係していて過去のその不完全な同期に関する情報群の中の少なくとも1つの情報を含む追加情報と、受信した同期関連情報に従ってうまく同期したデータに関する情報を送信するステップも含んでいる。
【００１８】
この方法は、第1の装置と第2の装置のうちの少なくとも一方において、第1回目の比較では、第1の装置から送信された第1の更新識別子の値を、第2の装置に記憶されている第1の装置の第1の更新識別子の値と比較し；第2回目の比較では、第1の装置から送信された第2の更新識別子の値を、第2の装置に記憶されている第1の装置の第2の更新識別子の値と比較し、以下に示す選択肢：
1）第2回目の比較によって真の値が生成された場合には、過去の不完全な同期セッションの間に交換されなかったデータを含むデータを第1の装置と第2の装置の間で同期させるステップ；
2）第2回目の比較によって偽の値が生成された場合には、過去の不完全な同期セッションの間に同期されたデータを少なくとも含むデータを第1の装置と第2の装置の間で同期させるステップ；
3）第1回目の比較によって偽の値が生成された場合には、過去の完全な同期セッションの間に同期されたデータを含むデータを第1の装置と第2の装置の間で同期させるステップ；
4）第1回目の比較によって真の値が生成された場合には、過去の完全な同期セッションの間に同期されなかったデータを第1の装置と第2の装置の間で同期させるステップのうちの少なくとも1つを実施するステップも含んでいる。
【００１９】
同期のために通信接続を確立する操作は、第1の装置と第2の装置のうちの少なくとも一方に対し、過去の不完全な同期を再開させる準備を指示する最初のメッセージを送信するステップを含むことができる。
【００２０】
同期は、SyncML規格に従う同期プロトコルに基づいており、第1の更新識別子はLAST同期アンカーである。第2の更新識別子は、次の同期アンカーと休止同期アンカーのうちの少なくとも一方である。さらに、過去の不完全な同期セッションに関する追加情報は、同期セッション識別子（セッションID）と、同期メッセージ識別子（メッセージID）と、肯定応答されたデータとそれに対応するそれぞれのデータ・ストアの1つ以上の識別子とからなるグループのうちの少なくとも1つの情報を含むことができる。さらに、追加情報は、第1の更新識別子と第2の更新識別子を送信する前に少なくとも第1の装置に記憶されている。
【００２１】
この方法では、データの肯定応答、またはそのデータを含むメッセージの肯定応答がうまく受信された場合にデータがうまく同期され、その肯定応答は、データまたはメッセージの同期がうまくいった状態またはいかない状態であることを示している。
【００２２】
本発明により、上記の方法の全ステップを実行するための部分プログラム群を含む同期用のソフトウエア・ツールであって、処理装置、端末機器、通信端末機器、ネットワーク装置のいずれかで実行されるコンピュータ・プログラムとして実現されるソフトウエア・ツールと、同期用のコンピュータ・プログラムまたはコンピュータ・プログラム製品も提供される。
【００２３】
本発明により、ネットワークで使用されてデータを同期させることのできる装置であって、記憶媒体と、通信インターフェイスと、取得素子または生成素子と、同期素子と、更新素子を備える装置も提供される。記憶媒体は、互いに同期させる所定のデータ・セットを含んでいる。通信インターフェイスは、ネットワーク内で使用される別の装置においてデータを同期させることを目的として通信接続を確立し、第1の更新識別子と第2の更新識別子の通信をその別のネットワーク装置との間で行ない、データをその別のネットワーク装置と交換する。第1の更新識別子は、他のネットワーク装置を用いて実行された過去の完全な同期セッションを表わしていて少なくともこのネットワーク装置に記憶されている。第2の更新識別子は、過去の不完全な同期セッションを表わしていて少なくともこのネットワーク装置に記憶されている。データは、過去の不完全な同期セッションの間に同期された少なくとも1つのデータを含んでいる。取得素子または生成素子は、過去の不完全な同期セッションの間に同期されたデータに関してネットワーク装置に記憶されている指標を取得または生成する。同期素子は、その指標に従ってデータを同期させる。更新素子は、記憶されている第1の更新識別子の内容を、記憶されている第2の更新識別子の内容で更新する。
【００２４】
通信インターフェイスは、過去の不完全な同期セッションに関する補足追加情報を送信できる構成にすることができる。この補足追加情報は、過去の不完全な同期セッションに関する情報と、最後にうまくいった同期関連情報の交換に関する情報と、受信した同期関連情報に従ってうまく同期したデータに関する情報からなるグループのうち少なくとも1つの情報を含むことができる。
【００２５】
装置は、第1回目の比較では、第1の装置から送信された第1の更新識別子の値を、第2の装置に記憶されている第1の装置の第1の更新識別子の値と比較し、第2回目の比較では、第1の装置から送信された第2の更新識別子の値を、第2の装置に記憶されている第1の装置の第2の更新識別子の値と比較する素子も備えることができる。この素子は、本発明の方法に関して上に説明した選択肢のうちの少なくとも1つを実行する。
【００２６】
本発明により、第1のネットワーク装置と第2のネットワーク装置を備えていて、それぞれの装置は、本発明の方法と装置の全体に関して上に説明したのと同様のステップを実行するための素子を含んでいる同期システムも提供される。
【００２７】
添付の図面を参照した実施態様により、本発明をさらに詳しく説明する。
【図面の簡単な説明】
【００２８】
【図１】情報を互いに同期させることのできる具体的な電子機器群の概略図である。
【図２】本発明の一実施態様による同期プロセスの時間シーケンス・ダイヤグラムであり、同期させるクライアント装置と同期させるサーバー装置の間で交換されるいくつかのメッセージが示されている。
【図３ａ】図2と同様の本発明の一実施態様による同期プロセスの時間シーケンス・ダイヤグラムであり、中断または停止がある。
【図３ｂ】図3aの中断または停止した同期プロセスを再開させる本発明の一実施態様による同期プロセスの時間シーケンス・ダイヤグラムである。
【図４】図3bに示した本発明の一実施態様による同期プロセスにおけるXMLコード化された同期メッセージの抜粋である。
【図５】本発明の一実施態様による同期させるクライアント装置と同期させるサーバー装置に含まれる要素の概略ブロック・ダイヤグラムである。
【図６】図3aの中断または停止した同期プロセスを再開させる本発明の一実施態様による同期プロセスの時間シーケンス・ダイヤグラムである。
【図７】図3aの中断または停止した同期プロセスを再開させる本発明の一実施態様による同期プロセスの時間シーケンス・ダイヤグラムである。
【図８】図3aの中断または停止した同期プロセスを再開させる本発明の一実施態様による同期プロセスの時間シーケンス・ダイヤグラムである。
【発明を実施するための形態】
【００２９】
以下に、SyncML同期規格をサポートするシステムに関して本発明の実施態様を記述するが、本発明がそのようなシステムに限定されることはない。SyncML規格に関する情報は、全規格文書を公開しているSyncMLイニシアティブから得ることができる。図示した同じか同等な部分、および／または素子、および／または操作には、同じ参照番号を用いる。
【００３０】
図1は、情報を互いに同期させる具体的な電子機器群の概略図である。例えば携帯端末のデータ・ストアの所定の内容が、指定された装置（例えば、別のいくつかの携帯端末および／またはデータ・ストアの内容を記憶していて固定端末からアクセスできる中央記憶装置）から提供されるデータ・ストアの内容と調和されることになる。従来は、携帯端末が同期クライアントとして機能し、その同期クライアント上を走っている所定のアプリケーションに関するデータを、そのアプリケーションに関するデータを主に記憶している専用サーバー装置から提供される1つまたは複数のデータ・ストアの内容と、調和または同期させる。図1には、互いに同期させることが可能な複数のクライアント装置とサーバー装置を示してある。一般にクライアント装置は移動局であり、例えば、携帯電話17、パーソナル・ディジタル・アシスタント（PDA）、ノート型パソコン15などの携帯用コンピュータ、ディジタル・データを記憶するディジタル・カメラ16などの電子機器、デスクトップ・コンピュータ（PC）などの固定端末が挙げられる。さらに、専用同期サーバー装置としては、固定端末（デスクトップ・コンピュータ10、専用ネットワーク・サーバー11（例えばその同期化能力をネットワーク化された同期アプリケーションとして利用する）が可能であり、携帯用コンピュータ（例えば同期サーバー・アプリケーションが走っているノート型パソコン12など）さえ可能である。同期に関しての考え方を専用サーバー装置に接続された携帯端末で説明したが、クライアント装置の機能が上記の移動端末に限られることはない。
【００３１】
SyncMLプロトコル規格に従う対応する同期プロセスは、適切な通信接続を通じて確立される。論理通信接続は、任意の通信網において、同期プロトコルに適合したトランスポート・プロトコルを利用することによって実現される。適切な通信網としては、インターネットと社内イントラネットを含むことのできるローカル・エリア・ネットワーク（LAN）や広域ネットワーク（WAN）だけでなく、無線に基づいたシリアル・ネットワーク（例えば、汎用シリアル・バス（USB）や標準化されたシリアル通信（例えばRS-232）が可能である。関与する同期装置は、無線通信網を通じて接続することもできる。無線通信網としては、例えば、移動体網をサポートする移動通信用グローバル・システム（GSM）サービスおよび／または汎用パケット・ラジオ・サービス（GPRS）、第3世代の移動体通信網（例えば、汎用移動通信システム（UMTS）ネットワーク）、無線ローカル・エリア・ネットワーク（WLAN）、狭い範囲の無線通信網（例えば、ブルートゥース網、無線ローカル・ループ（WLL）、赤外線ネットワーク（IrDA））などがある。関与する同期装置同士の論理通信接続は、上記のタイプの単一の通信網から提供できるだけでなく、通信網を互いに接続し、必要な場合には、利用するそれぞれの通信網のデータ・プロトコル間の翻訳を行なう専用ネットワーク・ルーティング装置によって互いに接続された上記のタイプのいくつかの通信網からも提供することができる。
【００３２】
SyncMLプロトコル規格とSyncML同期プロトコル規格に関しては、したがってSyncML装置管理プロトコル規格に関しても、SyncML装置管理プロトコルは、使用する通信網のタイプに応じた適切なプロトコルの先頭部で実現される。先頭部でSyncML同期プロトコルを実現できる適切なプロトコルは、ハイパーテキスト転送プロトコル（HTTP）、無線アプリケーション・プロトコル（WAP）規格の無線セッション・プロトコル（WSP）、ケーブル接続（例えば汎用シリアル・バス（USB）またはRS-232）で使用される、あるいは狭い範囲の無線通信接続（ブルートゥース）で使用される、あるいは赤外線接続（IrDA）で使用されるオブジェクト交換プロトコル（OBEX）、トランスポート層サービスの先頭にあってeメール・プロトコル（例えば簡易メール転送プロトコル、SMTP）によって提供されるトランスポート制御プロトコル／インターネット・プロトコル（TCP/IP）スタックである。
【００３３】
より下位の層での転送は、例えば短いメッセージSMS（短いメッセージ・サービス）または他の信号伝達方式の送信法（例えばUSSD；非構造化補足サービスデータ）、回線交換データ呼び出し、パケット交換データ転送サービス、無線呼出端末・メッセージ・サービス、セル放送を通じたメッセージなどを利用した下位ネットワークに従って実行することができる。
【００３４】
今後は、データ・ストアという用語はできるだけ広い意味に理解するものとする。すなわち、アクセスされるデータ記憶装置から提供されるあらゆるデータ・セットがこの用語に含まれるものとする。特に、データ・セットは、特定のアプリケーションに関係し、アプリケーション特異的な条件（例えばカレンダー・アプリケーション、ディレクトリー・アプリケーション、コンタクト・アプリケーション（例えばvcardアプリケーション）、eメール・アプリケーションなどのデータ）に合うように構成するとよい。さらに、どのデータ・セットも、アクセスされるデータを提供するデータ記録が含まれた1つ以上のデータベースの構成にすることができる。さらに、データ・ストアという用語には、ネットワーク・データ・サービスまたはネットワーク化されたサービスが含まれるものとする。すなわち、データ・ストアと同様、アクセスされるネットワーク化されたサービスから提供されるすべてのデータ・セットが含まれるものとする。通常は、ネットワーク・サービスは、特定のサービスに関係するデータ・ストアの内容を含むデータ・ストアに基づいている。
【００３５】
以下のシーケンス・ダイヤグラムは、本発明の実施態様による操作シーケンスを示している。ここに示した操作シーケンスは単なる例示であり、それだけに限定されることはない。同様の操作シーケンスまたは関連した操作シーケンスに基づいた別の態様も可能である。
【００３６】
図2は、本発明の一実施態様による同期プロセスの時間シーケンス・ダイヤグラムであり、同期させるクライアント装置と同期させるサーバー装置の間で交換されるいくつかのメッセージが示してある。
【００３７】
SyncML同期セッションは、概念的にいわゆるSyncMLパッケージに分割されている。SyncMLパッケージは、単に、同期させる装置間で物理的に交換され、同期情報とコマンドの集合を伝送するのに必要とされる1つ以上のSyncMLメッセージのための概念的枠組みである。SyncML規格によって与えられる任意のタイプの同期に必ずしもすべてのSyncMLパッケージが関与するわけではない。SyncMLメッセージの正確な数は、伝送される情報の量に依存する。
【００３８】
SyncMLパッケージの大まかな全体像を以下のリストにおいて記述する。詳細な記述は、SyncML規格文書から得ることができる。
【００３９】
パッケージ0 - 同期メッセージの開始。クライアント装置は、要求されていないのに与えられたメッセージ（いわゆる“通知”または“警告”）を受信し、受信装置に同期セッションを開始させるための逆方向の接続の確立を指示することができる。通知を受信するのと同じ効果は別の方法でも実現できることに注意されたい。
【００４０】
パッケージ1 - クライアント装置からサーバー装置への初期化。1つ以上の初期化メッセージが送信される。初期化メッセージとしては、例えば、クライアント装置の情報（装置識別子など）、クライアント装置のプロパティ、クライアントの認証、同期のタイプ、データ記録を同期させるデータベースの同定、記憶されている最終アンカー、新しい次のアンカーなどが挙げられる。
【００４１】
パッケージ2 - サーバー装置からクライアント装置への初期化。1つ以上の初期化メッセージが送信される。初期化メッセージとしては、例えば、サーバー装置の情報（装置識別子など）、サーバー装置のプロパティ、サーバーの認証、1つ以上のクライアント初期化メッセージに含まれる情報に関する応答情報と状態情報などが挙げられる。
【００４２】
パッケージ1と2は、初期化段階の一部である。以下のパケージ3〜6は、同期メッセージの同期段階の一部である。
【００４３】
パッケージ3 - クライアントからサーバーへの同期。1つ以上のクライアント同期メッセージが送信される。クライアント同期メッセージとしては、例えば、クライアント・データの変更（すなわち同期初期化において同定されたクライアント・データベースのデータに対する何らかの変更）がある。速い同期プロセスの場合には、過去の同期セッション（最終（LAST）アンカー）以降に変更されたデータ記録だけが報告される。遅い同期プロセスの場合には、すべてのデータ記録が報告される。
【００４４】
パッケージ4 - サーバーからクライアントへの同期。1つ以上のサーバー同期メッセージが送信される。サーバー同期メッセージとしては、例えば、送信されたクライアント・データの変更をサーバーが分析したことに関する情報と、サーバー・データの変更（すなわち同期初期化において同定されたサーバー・データベースのデータに対する何らかの変更）がある。速い同期プロセスの場合には、過去の同期セッション（最終アンカー）以降に変更されたデータ記録だけが報告される。遅い同期プロセスの場合には、すべてのデータ記録が報告される。
【００４５】
パッケージ5 - データ更新状態、マップ操作。1つ以上のデータ更新状態メッセージが送信される。データ更新状態メッセージとしては、例えば、データ更新（サーバーの変更に起因する同期）結果に関する情報、ローカル・ユニーク識別子（LUID）とグローバル・ユニーク識別子（GUID）をマッピングするためのマップ操作（表）が挙げられる。ローカル・ユニーク識別子は、データ記録に割り当てられる識別子であり、クライアント側において（すなわち1つの装置と1つのアプリケーションについて）局所的に唯一のものである。ローカル・ユニーク識別子により、データ記録を同定することができる。グローバル・ユニーク識別子は、データ記録に割り当てられる識別子であり、サーバー側において局所的に唯一のものである。
【００４６】
パッケージ6 - マップ肯定応答。1つ以上のマップ肯定応答メッセージが送信される。マップ肯定応答メッセージとしては、例えば、クライアント装置に対してサーバーからの1つ以上のデータ更新状態メッセージを通知する肯定応答が挙げられる。
【００４７】
クライアント・メッセージまたはサーバー・メッセージに含まれる同期情報とコマンドが何であるかに応じ、パッケージ3に従うクライアント・メッセージは、パッケージ4に従うサーバー応答メッセージを発生させることができ、逆も可能である。
【００４８】
同期メッセージの各メッセージはセッション識別子（セッションID）を含んでいるため、メッセージを1つの独立した同期セッションと関係づけることができる。各メッセージはメッセージ識別子（メッセージID）を含んでいるため、交換されたメッセージがクライアント装置とサーバー装置において間違った並び方をすることが防止される。さらに、それぞれのパッケージ・タイプの最後のメッセージは、それが最後のものであることを示す最終インディケータを含んでいる。
【００４９】
同期プロセスは、どのような情報（どのデータ記録）を同期させるか（遅い同期か速い同期か、すなわち所定の時刻以降のデータ記録の合計数か変更だけか）、どの装置（クライアント装置、サーバー装置、両方の装置のどれ）で同期を実行するか、どの装置から同期を開始するかによっても区別される。同期のタイプとしては、例えば双方向同期、遅い同期、クライアントだけからの一方向同期、クライアントだけからのリフレッシュ同期、サーバーだけからの一方向同期、サーバーだけからのリフレッシュ同期、サーバーが警告する同期が可能である。
【００５０】
列挙した同期のタイプの名称そのものが同期プロセスを記述しているため、容易に理解できる。より詳しい説明は、SyncML規格文書になされている。
【００５１】
例えば図2に示した時間シーケンス・ダイヤグラムと同期プロセスは、速い双方向同期タイプに基づいているが、本発明には別のタイプの同期も含まれる。クライアント100がサーバー110と同期する。パッケージ・シーケンスに関する上記の説明によると、図示した同期セッションは、初期化段階210の後に同期段階が続く構成になっており、それぞれの段階にはいくつかの同期メッセージが含まれている。どの同期メッセージにも同じセッションIDが含まれている（図示せず）。
【００５２】
クライアント100とサーバー110の初期化段階210では、両方の装置が、装置の情報（装置識別子など）、装置のプロパティ、装置の認証情報を交換する。クライアント100はさらに、同期のタイプ（ここでは、速い双方向同期タイプ）を規定し、記憶されている最終（LAST）アンカーと新しく規定された次の（NEXT）アンカーをサーバー110に報告する。サーバー110は、クライアント100から送信された最終アンカーを、サーバー110に記憶されている対応する値と比較し、受信した最終アンカーと記憶されている最終アンカーが一致して速い同期が可能になる場合には、最終アンカーと次のアンカーを一致させる。次のアンカーの状態（内容）は、クライアント100がこの新しく規定された状態を送信するまでサーバー110内では規定されない（“？”記号で示す）（従来技術の場合。すなわち従来の双方向同期プロセスによってその状態に特別な値が与えられることはない）。アンカー同士が一致しない場合には、遅い同期にする警告がクライアント100に送られる。初期化段階210における情報交換は、パッケージ1型メッセージに対応するクライアント初期化メッセージを意味する第1の操作200と、パッケージ2型メッセージに対応するサーバー初期化メッセージを意味する第1の操作201によって示してある。操作200と201で表わした両方のメッセージに同じメッセージID1が含まれている。
【００５３】
初期化段階210が終了した後、クライアント100は同期の準備211をする。すなわち、受信した最終アンカーに従って変更されたデータ記録を同定する。操作203で示したクライアント同期メッセージ（パッケージ3型メッセージ）は、クライアント変更事項に関する第1のバッチ（ここでは、同定された合計10個の変更のうちの5個）を含んでいる。クライアント変更事項には、コマンドおよび／またはデータの内容が含まれることに注意されたい。コマンドは、特に追加、更新、削除などを含んでいる。これらがデータ内容と合わさって、それぞれのデータ記録の同期が行なわれる。さらに、このメッセージは、過去のサーバー初期化メッセージに関する状態情報をさらに含んでいる。サーバー110はこの第1のクライアント同期メッセージを受信し、受信したクライアント変更事項を分析し、クライアント変更事項から生じる可能性のある衝突を解決し、クライアント変更事項を処理する（操作212）。操作204で示した対応するサーバー同期メッセージ（パッケージ4型メッセージ）は、クライアント変更事項の肯定応答と、分析・同期プロセスの状態に関する情報とを含んでおり、クライアントに送信される。操作203で示したクライアント同期メッセージと操作204で示したサーバー同期メッセージの両方とも、共通のメッセージID（ここではメッセージID2）によって同定することができる。しかしメッセージの番号は上に示したのと異なる可能性があることを理解されたい。実際、メッセージに番号を付けることの唯一の目的は、それぞれの装置に一貫性のあるメッセージ番号を持たせるためである。すなわち、クライアントとサーバーでの番号付けは、一致している必要さえない。
【００５４】
操作206で示した次のクライアント同期メッセージ（パッケージ3型メッセージ）は、クライアント変更事項に関する第2のバッチ（ここでは、同定された合計10個の変更のうちの残りの5個）を含んでいる。このクライアント同期メッセージは、クライアント変更事項を含む最後のクライアント同期メッセージであることを示す最終インディケータをさらに含んでいる。サーバー110はこの最終クライアント同期メッセージを受信し、受信したクライアント変更事項を分析し、クライアント変更事項から生じる可能性のある衝突を解決し、クライアント変更事項を処理し、最終インディケータが含まれているため、クライアント100に送信される（サーバーの最終アンカーを考慮して同定された）サーバー変更事項を用意する（操作212）。操作207で示した対応するサーバー同期メッセージ（パッケージ4型メッセージ）は、サーバー変更事項と、クライアント変更事項の肯定応答と、分析・同期プロセスの状態に関する情報とを含んでおり、クライアントに送信される。図2に示した同期セッションによると、同定されたサーバー変更をすべてクライアントに送信するには単一のサーバー同期メッセージで十分であり、このメッセージには最終インディケータも含まれている。操作214では、クライアント100が受信したサーバー変更事項を処理する。操作206と207で示した両方のメッセージに同じメッセージID3が含まれている。
【００５５】
次に、操作208で示したクライアント更新状態メッセージ（パッケージ5型メッセージ）がサーバー110に送られる。このクライアント更新状態メッセージは、サーバー変更事項があるために肯定応答情報と同期状態情報を含んでいる。そして必要な場合には、ローカル・ユニーク識別子とグローバル・ユニーク識別子を割り当てるデータ記録マップ表を処理するマップ操作も、サーバー110に送られる。最後に、図示していないが、1つ以上のマップ肯定応答メッセージ（パッケージ6型メッセージ）を含むクライアント更新状態メッセージに対してサーバー110が応答する可能性がある。
【００５６】
最後に、同期セッションと、このセッションの同期メッセージが通信される通信接続が閉じる。同期セッションと通信接続の終了に関してエラーが検出されない場合には、同期セッションの最初に規定された次のアンカーの内容が記憶される。この割り当ては、クライアント100の側では操作215において実行され、サーバー側では操作216において実行される（実際にはサーバーが最終アンカーを呼び出さない可能性があるが、アンカーに記憶されている値は、クライアントが送った次のアンカーの値である）。したがって次の速い同期プロセスが可能になる。
【００５７】
同期セッションの冒頭で次のアンカーを規定することと、同期セッションが適切に終了した後に次のアンカーの内容を最終アンカーに割り当てることにより、同期プロセス中にクライアント側またはサーバー側で行なわれるデータ記録変更による衝突が防止されることに注意されたい。図示した最終アンカーと次のアンカーの内容が、その利用法をまさに明らかにしていることにも注目されたい。実用上の理由で、最終アンカーと次のアンカーは、通常は日付の値と時刻の値で構成されているか、あるいはこれらの値に由来する。このような構成にすることにより、あいまいさのない最終アンカーと次のアンカーを生成させることができる。
【００５８】
図3aは、図2と同様の本発明の一実施態様による同期プロセスの時間シーケンス・ダイヤグラムであり、中断または停止がある。図3aに示した同期セッションは、図2に示したのと同じものである。すなわち、初期条件、操作200〜204、操作210〜212が、同様にして実行される。それに対応して、図3aに示した操作で図2と共通するそれぞれの操作には、同じ参照番号が付けてある。
【００５９】
図3aでは、初期化段階と、クライアント100とサーバー110の対応する初期化メッセージが省略されている。10個あるクライアント変更事項のうちの最初の5個を含む第1のクライアント同期メッセージ（パッケージ3型）に関する操作203と、クライアント変更事項に対応する状態情報を含む第1のサーバー同期メッセージ（パッケージ4型メッセージ）に関する操作204が示してある。
【００６０】
操作205では、同期が中断または停止する。中断または停止は、いくつかの理由によって起こる可能性がある。そのうちのほんのいくつかを挙げると、同期セッションが停止するのは、ユーザーの相互作用、ユーザーのイニシアティブ、クライアント100またはサーバー110の電力不足（例えば電池またはアキュムレータの容量不足による）、通信接続の失敗（例えば無線通信網におけるカバー範囲の不足、または通信接続における干渉による）などによる。
【００６１】
本発明の一実施態様により同期セッションを再開できるようにするため、クライアント100とサーバー110は、不完全な同期セッションに関する情報を記録する。不完全な同期セッションを再開させるこの情報は、少なくともクライアント100の最終アンカーと次のアンカーを少なくとも含んでおり、その最終アンカーと次のアンカーがクライアント100とサーバー110の両方に記録される。さらに、この情報は、不完全な同期セッションのセッションIDと、適切に送信されてクライアント100が肯定応答を受け取った最後のメッセージIDと、1つ以上のユニーク・データ記録識別子を含むこともできる。すなわち、不完全な同期セッションの間にこのような変更によるデータ記録のローカル・ユニーク識別子またはグローバル・ユニーク識別子が送信され、その送信が肯定応答される。
【００６２】
不完全な同期セッションが始まった時刻を記録するために次のアンカーを用いる代わりに、新しいアンカー（例えば休止（PAUSE）アンカー）を規定し、不完全な同期セッションを再開させるのに特に使用する。以下に次のアンカーを参照して本発明の考え方を説明するが、本発明の考え方がそれに限定されることはない。以下の説明を新しい休止アンカーに合わせるためには、次のアンカーという用語を単に休止アンカーに置き換えるだけでよい。
【００６３】
図3bは、中断または停止した図3aの同期プロセスを再開させる本発明の一実施態様による同期プロセスの時間シーケンス・ダイヤグラムである。
【００６４】
同期セッションの再開は、図3aを参照して説明した過去の不完全な同期セッションを再開させるためにクライアント100からサーバー110に送る警告コマンドを含む新しい初期化メッセージ（パッケージ1型）操作250によって開始される。この新しい初期化メッセージは、過去の不完全な同期セッションが中断されたことによって記録された少なくとも1つの最終アンカーと次のアンカーを含んでいる（図3aの操作205）。サーバーは、クライアントからこれら最終アンカーと次のアンカーを受信し、サーバー自身が記録している最終アンカーと次のアンカーと比較する。図2に示した同期セッションならびに図3aに示したその対応物と比較すると、次のアンカーがサーバー側で明確に定義された状態と内容を持っていることに注意されたい。
【００６５】
クライアント100とサーバー110の少なくとも一方は、最終アンカーが一致するか次のアンカーが一致するかに応じ、以下に示す4つの選択肢のうちの任意の1つを命令、または開始、または実行することができる。
【００６６】
1）受信され記録された最終アンカーが一致し、受信され記録された次のアンカーも一致する場合、サーバー110は、肯定応答のための少なくとも1つの最終アンカーと次のアンカーを含む操作251で示したサーバー初期化メッセージ（パッケージ2型）を送信することによって不完全な同期セッションの再開（速い同期の再開）を確認する。再開を可能にするこの確認は、（図3aの操作205によって示した）再開させる不完全な同期セッションに関するさらに別の情報に基づいて行なうことも可能である。例えば不完全な同期セッションについて記録されている上記セッションIDおよび／または適切に送信された最後のメッセージについて記録されている上記メッセージIDが、記録されたアンカーの検証操作中に参照される。
【００６７】
2）受信され記録された最終アンカーは一致するが、受信され記録された次のアンカーは一致しない場合には、図2に示したタイプの（通常の）速い同期セッションがサーバーによって命令される。次のアンカーの不一致により、図3aを参照して説明した不完全な同期セッションの再開が阻止される。
【００６８】
3）受信され記録された最終アンカーは一致しないが、受信され記録された次のアンカーが一致する場合には、遅い同期セッションの再開がサーバによって命令される。この遅い同期セッションの再開は、図3bには示していない。要するに、遅い同期セッションの再開によって同期関連情報が交換され、同期させる所定の全データ記録を同期させることが可能になる。しかし図3aに示した不完全な同期セッションの間に交換が成功して同期している同期関連情報は、遅い再開同期セッションから除外される。
【００６９】
4）受信され記録された最終アンカーが一致せず、受信され記録された次のアンカーも一致しない場合には、速い同期セッションも、遅い同期セッションも再開させることができない。また、速い同期は不可能である。関与する両方の装置間が適切に同期した状態を確立するためには、同期させるすべてのデータ記録を含む完全版の遅い同期セッション（すでに説明したもの；図3bには図示せず）を実行する必要がある。
【００７０】
以下の説明は、第1のケース（受信され記録された最終アンカーと受信され記録された次のアンカーが一致するケース）が正しいという仮定に基づいている。このケースは、クライアント100とサーバー110の両方の記録された最終アンカーと次のアンカーの状態（値）を示した図3bにも示してある。サーバー110は、肯定応答のための少なくとも最終アンカーと次のアンカーを含む、操作251で示したサーバー初期化メッセージ（パッケージ2型）を送信する。
【００７１】
図3aの操作205に関して説明したように、不完全な同期セッションに関する別のログ情報が中断時に記憶される。すでに説明したように、この情報は、不完全な同期セッションに関する少なくとも1つのセッションIDと、適切に送信された最後のメッセージに関するメッセージIDと、1つ以上のユニーク・データ記録識別子を含むことができる。すなわち、不完全な同期セッションの間にこのような変更によるデータ記録のローカル・ユニーク識別子またはグローバル・ユニーク識別子が送信され、その送信が肯定応答される。ローカル・ユニーク識別子によって提供される情報は十分でない可能性があるため、ローカル・ユニーク識別子に加えてデータベース識別子を記憶させねばならない可能性がある。ローカル・ユニーク識別子とそれに付随するデータベース識別子を組み合わせることにより、ローカル・ユニーク識別子によって参照される対応するデータ記録が（あいまいさなく）決まる。データベース識別子は、従来技術で知られているような一様リソース・ロケーター（URI）にすることができる。
【００７２】
不完全な同期セッションに関して記憶されている最終アンカーと次のアンカーと情報により、過去の不完全な同期セッションが中断したときの状態を回復（再確立）することができる。このタイプの再構成により、今や、完全な同期セッションを表わす図2では操作206〜208で示してあるが、同じ同期セッションでも操作204（図2と図3a）による同期メッセージの送信後に中断があるため不完全な図3aには欠けているメッセージを生成させることができる。
【００７３】
操作250と251で示した新しいクライアント初期化メッセージとサーバー初期化メッセージは、図2に示した操作200と201を参照して説明した同期セッションを確立するのに必要な情報も含んでいる。
【００７４】
この明細書では、不完全な同期セッションを再開させるための条件が満たされ、不完全な同期セッションが再構成されていてクライアント100が本発明の一実施態様による方法を実施できることを仮定している。操作252で示したクライアント同期メッセージ（パッケージ3型）は、図2に操作206で示した第2のクライアント同期メッセージに対応する。したがってクライアント同期メッセージは、10個の変更のうちの最後の5個と、このメッセージが現在の同期セッションの最後のクライアント同期メッセージであることを示す最終インディケータを含んでいる。さらに、メッセージの番号、すなわちメッセージIDは、現在の再開同期セッションに合わせてあるため、図3bのクライアント同期メッセージは、（操作250と操作251で示した）初期化メッセージに関する過去のメッセージID1に続くメッセージID2である。（本発明の範囲に他のタイプのメッセージ番号を付けたセッションも含まれることに注意することが重要である。）
【００７５】
サーバー110はクライアント同期装置に応答し、操作253（これは、図2に操作206で示した第2のクライアント同期メッセージに対応する）で示したサーバー同期メッセージ（パッケージ3型）を送信する。このサーバー同期メッセージには、サーバー変更事項と、クライアント変更事項の肯定応答と、分析・同期プロセスの状態に関する情報とが含まれる。図2に示した同期セッションによると、同定されたサーバー変更事項をすべてクライアントに送信するには単一のサーバー同期メッセージで十分であり、このメッセージは最終インディケータも含んでいる。操作252と253で示した両方のメッセージに同じメッセージID2が含まれている。
【００７６】
次に、操作254で示したクライアント更新状態メッセージ（パッケージ5型メッセージ）がサーバー110に送られる。このクライアント更新状態メッセージは、サーバー変更事項があるために肯定応答情報と同期状態情報を含んでいる。そして必要な場合には、マップ操作もサーバー110に送られ、そこでデータ記録マップ表が処理されてローカル・ユニーク識別子とグローバル・ユニーク識別子が割り当てられる。このクライアント更新状態メッセージは、図2を参照して説明した操作208で示したクライアント更新状態メッセージに対応する。最後に、図示していないが、1つ以上のマップ肯定応答メッセージ（パッケージ6型メッセージ）を含むクライアント更新状態メッセージに対してサーバー110が応答する可能性がある。
【００７７】
最後に、同期セッションが終了し、このセッションの同期メッセージが通信される通信接続も終了する。同期セッションと通信接続の終了に関してエラーが検出されない場合には、同期セッションの最初に規定された次のアンカーの内容が最終アンカーに割り当てられる。この割り当ては、クライアント100の側では操作260において実行され、サーバー110側では操作261において実行される。したがって次の速い同期プロセスが可能になる。同期セッションの最初に次のアンカーを規定し、同期セッションが適切に終了した後に次のアンカーの内容を最終アンカーに割り当てると、同期プロセス中にクライアント側またはサーバー側でのデータ記録の変更に起因する衝突が防止されることに注意されたい。図示した最終アンカーと次のアンカーの内容が、その利用法をまさに明らかにしていることにも注目されたい。実用上の理由で、最終アンカーと次のアンカーは、通常は日付の値と時刻の値で構成されているか、あるいはこれらの値に由来する。このような構成にすることにより、あいまいさのない最終アンカーと次のアンカーを生成させることができる。
【００７８】
不完全な同期セッションの後かつ同期セッションの再開前のデータ記録に関する変更は、不完全な同期セッションを再開している間は考慮されないことにも注意されたい。再開同期セッションは、データ記録の状態またはそのデータ記録を含むデータ・ストアの状態を、不完全な同期セッションがうまく終了したかのような状態にする。そのため、同期セッションの時刻スタンプを表わす次のアンカーは、再開同期セッションを初期化している間は更新されない。不完全な同期セッションの後に発生した変更は、うまくいった再開同期セッションを開始した後に同期セッションを開始することによって同期させることができる。特に、クライアント100とサーバー110に記憶されている最終アンカーが更新されて有効になっているために速い同期セッションを開始させることができる。
【００７９】
本発明の実施態様の文脈で説明してきた肯定応答とは、他方の装置から受信したデータに対するあらゆるタイプの応答のことであると解釈すべきであり、その応答には、データまたはメッセージの同期がうまくいった状態といかない状態が含まれる。一般に、肯定応答によって記録の更新が確認されるが、肯定応答には、例えば見つからなかった記録によって起こるうまくいかなかった操作の情報も含めることができる。しかしそのようなエラーの取り扱いは本発明の課題ではなく、エラーを何らかの形で処理する方法に任される。しかしエラーの発生によってセッションの再開が妨げられてはならない。すなわちセッションは、データ・アイテムが最初に否定応答されたとき、それ以前にデータ・アイテムにエラーがあったかどうかには関係なく再開されねばならない。
【００８０】
図4は、図3bに示した本発明の一実施態様による同期プロセスにおけるXMLコード化された同期メッセージの抜粋である。
【００８１】
簡単で相互使用が可能になるようにするため、装置とアプリケーションを同期させる同期メッセージを指定するのに工業規格の拡張可能マークアップ言語（XML）を選択する（平文または無線バイナリーXML（無線アプリケーション・プロトコルで用いられるバイナリー技術）を用いる）。SyncMLは、静的コードと実行時実行空間の両方で一般的なすべての携帯装置のメモリ容量に収まるように設計してある。メッセージを記憶するのに必要なメモリを少なくし、データを処理して送るのに必要なリソースを減らすため、特に二進コード化された拡張可能マークアップ言語（WBXML）を一般に用いてそのデータをコード化する。
【００８２】
SyncMLは、XML文書または多目的インターネット・メール拡張（MIME）エンティティとして表わされる（上に示したような）よく定義されたメッセージのセットを含んでいる。表示仕様は、同期を実行するのに必要なすべての情報（データ、メタデータ、コマンド）の表示を可能にするXML文書型記述（DTD）を規定する。同期仕様は、SyncMLクライアントとSyncMLサーバーが追加情報、削除情報、更新情報、あるいは他の状態情報を交換できるようにするため、DTDに合致したSyncMLメッセージを規定する。
【００８３】
他のDTDは、装置に関する情報（例えばメモリ容量）の表示とさまざまなタイプのメタ情報（例えばセキュリティ証明）の表示を規定する。SyncMLメッセージは、表示プロトコルによって規定されるコンテナ概念に基づいている。それぞれのSyncMLメッセージは、SyncMLヘッダ・セクションと、SyncML本体セクションを含んでいる。SyncMLヘッダ・セクションは、ルーティング、セッション、認証、メッセージ情報を含んでいるのに対し、SyncML本体セクションは、それぞれがサブコンテナを形成するよく定義されたさまざまな同期データ（例えば状態情報、同期コマンド）を含んでいる。
【００８４】
図4に示したXMLに基づくコード化は、図3bを参照して説明した操作252のクライアント同期メッセージであるSyncMLメッセージを平文コード化した一例の抜粋である。図示したXMLに基づくコードは、第3行〜第9行にわたるSyncMLヘッダ・セクションと、第10行〜第57行にわたるSyncML本体セクションを含んでいる。
【００８５】
第1行と第2行は、使用するXMLコード化に関する共通情報と、テキスト表示に使用するキャラクター・コード化に関する共通情報と、SyncMLバージョン情報を含んでいる。
【００８６】
それぞれのSyncMLヘッダは、文書型定義バージョン情報（VerDTD、第4行）と、SyncMLプロトコル・バージョン情報（VerProto、第5行）と、1つの同期セッションの間を通じて有効でその同期セッションに属するあいまいさのないすべての同期メッセージに割り当てられるセッション識別子（セッションID、第6行）と、受信するそれぞれの同期装置が次に受信する同期メッセージのメッセージ識別子は番号が大きくなるよう、数値が増大していくメッセージ識別子（MsgID、第7行）を含んでいる。具体例として説明したSyncMLヘッダーの上記の要素に加え、オプションの要素や必須の要素もSyncMLヘッダーに含まれる。
【００８７】
SyncML本体セクションは、独立な論理サブセクションをいくつか含んでいる。第1の状態情報サブセクションは、第11行〜第19行にわたっている。この第1の状態情報サブセクションは、同期させるデータ記録がアドレスする参照先と関係している。特に、目的参照先（TargetRef、第16行）は、クライアント（ここでは携帯通信装置）がアドレスする国際携帯装置識別子（IMEI）を規定しているのに対し、ソース参照先（SourceRef、第17行）は、サーバー（ここでは、HTTP（ハイパーテキスト転送プロトコル）を通じてアクセスできるネットワーク化されたサーバー装置）がアドレスするユニフォーム・リソース識別子（URI）を規定している。個々のデータ記録とデータ記憶装置へのさらなるアクセスは、この参照アドレス情報に基づいている。さらに別の状態情報サブセクションが任意の数含まれていてもよい。それを、第20行〜第22行にわたる第2の状態情報サブセクションによって示した。例えば肯定応答が状態情報としてコード化される。
【００８８】
SyncML本体セクションは、さらに同期サブセクションを含んでいる。この同期サブセクションは、さらに分割されている。一例として、コンタクトの追加に関してクライアントが指示した変更が含まれる。第26行には、クライアントのコンタクト・データベースの相対的アドレス経路が含まれているのに対し、第29行には、サーバーのコンタクト・データベースの相対的アドレス経路が含まれている。相対的アドレス経路は、上記の参照先へのアドレスに関係する。第31行〜第36行にわたるメタサブセクションには、サーバー内のコンタクト・データベースに追加されるデータ記録（コンタクト）に関する追加メタ情報が含まれる。第37行〜第51行にわたるサブセクションには、追加命令と、対応するコンタクト・データの内容が含まれる。第40行には、第46行〜第48行のデータの内容に関するデータ形式がx-vcardメタタイプとして規定されていて、対応するデータの内容は、第46行〜第48行に含まれている。クライアント内でこのコンタクトを独自に参照するのに用いるローカル・ユニーク識別子（LUID）は、第44行に含まれている。さらに別の同期情報サブセクションが任意の数含まれていてもよい。それを、第52行〜第54行にわたる別の同期情報サブセクションによって示した。
【００８９】
第56行に含まれるFinal命令は、この実施例のクライアント同期メッセージが、同期のためにサーバーに報告すべきクライアント変更事項を含む最後のメッセージであることをサーバーに知らせる。
【００９０】
過去の不完全な同期セッションを再開させるための本発明の一実施態様による上記の方法は、クライアント装置とサーバー装置においてさまざまな方法で実現することができる。以下に示す具体例は、SyncML規格に基づいていて、本発明の一実施態様に従って動作するよう、各要素が増強された機能と能力を持っている場合の例である。
【００９１】
図5は、同期させるクライアント装置と同期させるサーバー装置に含まれる要素に関する本発明の一実施態様による概略ブロック・ダイヤグラムである。図5には、ネットワーク化された同期サービスを提供するネットワーク装置を表わすサーバー110が示されている。ネットワーク化された同期サービスは、1つ以上のサーバー・アプリケーション112と、対応する付随した1つ以上のデータ記憶素子111によって表わされる。1つ以上のサーバー・アプリケーション112は、ネットワーク化された装置であるクライアント100の1つ以上のクライアント・アプリケーション102によって表わされる他のアプリケーションとのデータ同期を行なわせる。1つ以上のデータ記憶素子111（例えば1個または数個のデータベース）にはデータ記録が記憶されており、そのデータ記録を1つ以上のサーバー・アプリケーション112が取り扱い、クライアントと同期させる。サーバー110とクライアント100は、通信網トランスポートを通じて接続される。クライアント100とサーバー110を接続するのに適した通信網の選択は、すでに図1に図示して説明した。
【００９２】
1つ以上のサーバー・アプリケーション112は、サーバー110上の素子またはプロセスである同期サーバー・エンジン113として具体化したデータ同期プロトコルを利用する。データ同期プロトコルは、提供される同期サーバー・ネットワーク・サービスとリソースにアクセスするクライアント・アプリケーションが通信網に提示する。同期サーバー・エージェント115は、同期サーバー・エンジン113がネットワークにアクセスして通信するためのインターフェイスになると同時にそのアクセスと通信の管理を行ない、クライアント100および1つ以上のクライアント・アプリケーション102とのデータ同期操作を可能にする。同期エージェント115は、同期インターフェイス116（例えば同期アダプタ117に対するアプリケーション・プログラム・インターフェイス（API））と同期アダプタ117を関与させることによってインターフェイス機能と通信を実行する。同期アダプタ117は、サーバー110上の素子またはプロセスであり、理論的にはクライアント側の相手である同期アダプタ107と通信する。要するに同期アダプタ117は、サーバー110とクライアント100の間、すなわちデータ同期サービスを提供する1つ以上のサーバー・アプリケーション112と、このデータ同期サービスにアクセスして利用する1つ以上のクライアント・アプリケーション102の間にネットワーク通信接続を確立して維持するのに重要な役割を担っている。
【００９３】
クライアント側では、1つ以上のクライアント・アプリケーション102は、その1つ以上のクライアント・アプリケーション102がアクセスできるデータ記録を記憶している1つ以上のデータ記憶素子101を備えており、同期クライアント・エージェント105、同期インターフェイス106、同期アダプタ107を利用して、提供されるサーバー同期サービスにアクセスする。同期クライアント・エージェント105は、サーバー110および1つ以上のサーバー・アプリケーション112とのデータ同期操作を行なう通信を可能にする。同期インターフェイス106は、例えば、上記の場合と同様、同期アダプタ107に対するアプリケーション・プログラム・インターフェイス（API）である。
【００９４】
本発明の一実施態様による上記の方法は、サーバー110とクライアント100に関して上に示した概念的要素の枠組みに含まれる。そのためには、例えば、不完全な同期セッションを再開させる方法の一実施態様を実行する命令を含む1個または数個のコード・セクションを同期クライアント・エージェント105と同期サーバー・エージェント115の中で実現する。この具体化法により、同期セッションが中断した場合にその中断した同期セッションを再開させるのに必要な情報がクライアント100とサーバー110に記録または記憶される。
【００９５】
図6〜図8は、2つの装置間でのデータ交換が中断した過去の不完全な同期セッションを再開させる本発明の方法の別の実施態様を示している。この方法は、第1の装置から第2の装置に、過去の不完全な同期セッションの再開要求に関する情報を含む再開警告信号を送ることを特徴としている。具体的に示してあるように、第1の装置はクライアントであり、第2の装置はサーバーである。この方法は、第2の装置から第1の装置に、警告信号の状態として、実行する同期のタイプに関する情報を送ることも特徴としている。再開警告信号の状態に関する情報には、再開セッションを受け入れるための情報、または過去の不完全な同期セッションのタイプを無効にする情報を含めることができる。過去の同期のタイプが無効にされると、サーバーはクライアントに対して別の同期タイプを利用するコマンドを送る。“次の”アンカーまたは第2の更新識別子は、同期が中断された場合には、更新されてもされなくてもよい。中断後または休止の間に“次の”アンカーが更新された場合には、おそらく変更されたデータ・アイテムを中断中に同期させることが可能になり、したがってユーザーにとってより使いやすくなる。
【００９６】
図6では、ステップ302において、クライアントが再開警告信号をサーバーに送る。ステップ304では、サーバーが警告信号の状態に応答し、セッションの再開が可能であることを示す指示をクライアントに戻す。ステップ306では、クライアントが中断された過去の同期セッションのタイプ（例えば速い同期または遅い同期）を利用し、残ったクライアント・データを交換する。図3bに関して上に説明したステップ253、254と同様のステップ308と310により同期セッションが終了する。これらのステップには、同期セッションの再開と、中断された過去の同期セッションの同期タイプの決定の両方が含まれる。クライアントが再開警告コードを送ると、サーバーはセッションの再開を承認し、サーバー側の対応するデータ・ストアのための警告要素に含まれている適切な警告コードを送る。クライアントは、同期セッションを再開するにはこの警告コードを用いなくてはならない。このようにすると、セッションが中断されたときにクライアント側の同期のタイプを記憶せずに済む。
【００９７】
さらに、本発明の範囲には、中断が起こったときにはいつでもクライアントが再開のための警告を送れるような実施態様が含まれる。これは、たとえクライアントが全アイテムの状態を受信していて、再開セッション中に送るべき新しいアイテムまたは変更されたアイテムがもはやない場合に適用できる。言い換えるならば、トランスポートがエレガントな形または適切な形で中断されなかった場合には、クライアントは、新しい同期セッションを開始させるのではなく再開を要求する必要がある。そうすることにより、サーバーは、状態を得られなかったアイテムだけを送ることができる。
【００９８】
図7は、サーバーによる再開セッションの取り消しを示している。この場合には、ステップ302におけるクライアントの再開要求がサーバーによって受け入れられないため、サーバーは例えばステップ320において状態508（リフレッシュ同期）、または状態509（別の同期タイプ）、または同じ目的の適切な他の任意のコードを送り、その後、適切な同期タイプを警告コード201（遅い同期）または2XX（別の同期タイプの場合）の形で送ることによって過去の同期タイプを無効にすることができる。ステップ322では、クライアントは、サーバーによって指定された同期タイプを利用し、残っている5個のデータ・アイテムだけでなく、すべてのアイテムを送る。本発明の範囲が、状態コードの数が特定の値である場合に限定されることはない。状態コードが別の値である実施態様も考えられる。
【００９９】
図8は、遅い同期セッションの再開を示している。クライアントの再開要求がサーバーに警告として送られて再開がサーバーによって受け入れられた場合、“再開のための警告”により、状態200（OK）がステップ330において送られる。サーバーは、サーバー側の対応するデータ・ストアのための警告要素に含まれている警告201も送る。これは、図6において同期タイプの決定に関して説明したことと似ている。しかし警告201はここでは遅い同期を意味しており、クライアントは完全版の遅い同期を開始させることになるため、遅い同期の再開と強制的な完全版の遅い同期の再開をどのようにして区別するかに注意することが大切である。クライアントは、ステップ330において“再開のための警告”を受けて送られる状態コードを見ることによって遅い同期の再開と完全版の遅い同期の再開を区別することができる。コード200は、遅い同期の再開（別の方法は、例えば再開セッションがOKであることを肯定応答する200のではなく、異なるすべての同期タイプの状態コードを送る220ことである）を意味し、コード508は完全版の遅い同期を意味する。完全版の遅い同期は、再開のための警告の後に上記の警告201を受けて状態（要求されたリフレッシュ）508を送ることによって実現できる。このようにすると、クライアントは、以前に中断された遅い同期を再開させることができず、完全版の遅い同期を利用して最初から開始せねばならないことがわかる。これは、新しい同期セッションの開始を意味してはいないが、必要な場合にはそうすることになる可能性がある。
【０１００】
別の一実施態様によると、“休止のための警告”を示す追加警告コードを備えることが可能である。このようにすると、同期セッションをエレガントに中断する方法が得られる。再開は、この明細書の最初の部分に記載したステップに従う。この警告コードは、通常はユーザーが開始させる同期セッション中断のエレガントな手段を実現することだけに役立つ。このような警告を第2の装置が受信すると、状態コードによってその警告に応答することができる。すると第1の装置は、“休止モード”にも行けるかどうかを推論することができる。当然、“最後の”更新識別子は更新されない。第1の装置と第2の装置のいずれかが、のちに、他方の装置に対し、休止状態の同期セッションを再開させる指示を送ることができる。例えば第1の装置が再開警告信号を含むメッセージを第2の装置に送ることができ、そのことによって両方の装置は休止していた同期を再開することができる。
【０１０１】
当業者にとって、技術が進歩するにつれて本発明の考え方を別のより多数の方法で実現できるようになることは明らかであろう。したがって本発明とその実施態様が上記に実施例に限定されることはなく、請求項の範囲内での変更が可能である。
【図１】
0004829316.tif 000002
【図２】
0004829316.tif 000003
【図３ａ】
0004829316.tif 000004
【図３ｂ】
0004829316.tif 000005
【図４】
0004829316.tif 000006
【図５】
0004829316.tif 000007
【図６】
0004829316.tif 000008
【図７】
0004829316.tif 000009
【図８】
0004829316.tif 000010