(57)【要約】【課題】適当なデータ送信量でのデータ同期を自動的に開始することにより、通信時間の増大やデータ同期中にエラーの起こる可能性を抑えることができるデータ同期システムを提供する。【解決手段】サーバ１０は、データベース２１１を有するクライアント２１とネットワーク３を介して接続され、自らが保有するデータベース１０１の更新内容を更新履歴として保存する更新履歴ＤＢ１０２と、更新履歴ＤＢ１０２にクライアント２１とデータ同期する更新履歴がいくつ保存されたらデータ同期を開始するかの閾値を記憶する記憶部１０５とを有し、データ同期が必要な更新履歴を更新履歴ＤＢ１０２より抽出し、この抽出した更新履歴の件数が前記閾値より大きい時に、データベース１０１とデータベース２１１のデータ同期を開始する。【選択図】　　　　図１
2004086800.tif 000002
【特許請求の範囲】
【請求項１】
第１のデータベースを有するクライアントと、
前記クライアントとネットワークを介して接続され、第２のデータベースと、前記第２のデータベースの更新内容を更新履歴として保存する更新履歴保存手段と、前記更新履歴保存手段に前記クライアントに送信する必要のある更新履歴が何件保存されたらデータ同期を開始するかの第１の閾値を記憶する記憶手段とを有し、前記クライアントに送信する必要のある更新履歴を前記更新履歴保存手段より抽出し、この抽出した更新履歴の件数が前記第１の閾値より大きい時に、前記第１のデータベースと前記第２のデータベースとのデータ同期を開始するサーバと、
を備えたことを特徴とするデータ同期システム。
【請求項２】
前記記憶手段は、前記クライアントに送信するメッセージサイズがいくつになったらデータ同期を開始するかの第２の閾値を記憶し、
前記サーバは、前記更新履歴保存手段より抽出した更新履歴から前記クライアントに送信するメッセージサイズを計算し、このメッセージサイズが前記第２の閾値より大きい時に、前記第１のデータベースと前記第２のデータベースとのデータ同期を開始することを特徴とする請求項１記載のデータ同期システム。
【請求項３】
前記記憶手段は、データ同期を開始しなくてもよい第１の時間間隔を第３の閾値として記憶し、
前記サーバは、前記更新履歴保存手段より抽出した更新履歴の中から一番古い更新日時と現在の日時との差を求め、この差が前記第３の閾値より大きい時に、前記第１のデータベースと前記第２のデータベースとのデータ同期を開始することを特徴とする請求項１記載のデータ同期システム。
【請求項４】
前記記憶手段は、データ同期を再開始する第２の時間間隔を記憶し、
前記サーバは、前記データ同期の開始ができなかった時には、前記記憶手段に記憶された前記第２の時間間隔に従って一定時間待機後、データ同期を開始することを特徴とする請求項１乃至請求項３のいずれかに記載のデータ同期システム。
【請求項５】
第１のデータベースを有するサーバと、
前記サーバとネットワークを介して接続され、第２のデータベースと、前記第２のデータベースの更新内容を更新履歴として保存する更新履歴保存手段と、前記更新履歴保存手段に前記サーバに送信する必要のある更新履歴が何件保存されたらデータ同期を開始するかの第１の閾値を記憶する記憶手段とを有し、前記サーバに送信する必要のある更新履歴を前記更新履歴保存手段より抽出し、この抽出した更新履歴の件数が前記第１の閾値より大きい時に、前記第１のデータベースと前記第２のデータベースとのデータ同期を開始するクライアントと、
を備えたことを特徴とするデータ同期システム。
【請求項６】
前記記憶手段は、前記サーバに送信するメッセージサイズがいくつになったらデータ同期を開始するかの第２の閾値を記憶し、
前記クライアントは、前記更新履歴保存手段より抽出した更新履歴から前記サーバに送信するメッセージサイズを計算し、このメッセージサイズが前記第２の閾値より大きい時に、前記第１のデータベースと前記第２のデータベースとのデータ同期を開始することを特徴とする請求項５記載のデータ同期システム。
【請求項７】
前記記憶手段は、データ同期を開始しなくてもよい第１の時間間隔を第３の閾値として記憶し、
前記クライアントは、前記更新履歴保存手段より抽出した更新履歴の中から一番古い更新日時と現在の日時との差を求め、この差が前記第３の閾値より大きい時に、前記第１のデータベースと前記第２のデータベースとのデータ同期を開始することを特徴とする請求項５記載のデータ同期システム。
【請求項８】
前記記憶手段は、前記データ同期を再開始する時間間隔を記憶し、
前記クライアントは、前記データ同期の開始ができなかった時には、前記記憶手段に記憶された時間間隔に従って一定時間待機後、データ同期を開始することを特徴とする請求項５乃至請求項７のいずれかに記載のデータ同期システム。
【請求項９】
第１のデータベースの更新内容を更新履歴として保存する更新履歴保存ステップと、
前記更新履歴の中からネットワークを介して接続された第２のデータベースに送信する必要のある更新履歴を抽出する抽出ステップと、
前記第２のデータベースに送信する必要のある更新履歴が前記更新履歴保存ステップで何件保存されたらデータ同期を開始するかの第１の閾値を記憶する記憶ステップと、
前記抽出ステップにより抽出された更新履歴の件数が、前記第１の閾値より大きい時に、前記第１のデータベースと前記第２のデータベースとのデータ同期を開始するデータ同期開始ステップと、
を備えたことを特徴とするデータ同期方法。
【請求項１０】
前記記憶ステップは、前記第２のデータベースに送信するメッセージサイズがいくつになったらデータ同期を開始するかの第２の閾値を記憶し、
前記データ同期開始ステップは、前記抽出ステップにより抽出された更新履歴から前記第２のデータベースに送信するメッセージサイズを計算し、このメッセージサイズが前記第２の閾値より大きい時に、前記第１のデータベースと前記第２のデータベースとのデータ同期を開始することを特徴とする請求項９記載のデータ同期方法。
【請求項１１】
前記記憶ステップは、データ同期を開始しなくてもよい第１の時間間隔を第３の閾値として記憶し、
前記データ同期開始ステップは、前記抽出ステップにより抽出された更新履歴の中から一番古い更新日時と現在の日時との差を求め、この差が前記第３の閾値より大きい時に、前記第１のデータベースと前記第２のデータベースとのデータ同期を開始することを特徴とする請求項９記載のデータ同期方法。
【請求項１２】
前記記憶ステップは、データ同期を再開始する時間間隔を記憶し、
前記データ同期開始ステップは、前記データ同期の開始ができなかった時には、前記記憶ステップにより記憶された時間間隔に従って一定時間待機後、データ同期を開始することを特徴とする請求項９乃至請求項１１のいずれかに記載のデータ同期方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ネットワークで接続されたサーバコンピュータと１台以上のクライアント端末との間のデータ同期を行うデータ同期システム及びデータ同期方法に関するものである。
【０００２】
【従来の技術】
データベースの内容を同一に保つためのデータの送受信（以下、データ同期）の手法としては、自身のデータベースの更新内容を更新履歴として更新履歴データベースに記憶しておき、その更新履歴をもとに相手に送信する必要のある情報を相手に送信することが考えられている。これにより、自身のデータベースの更新内容を相手のデータベースに反映させるとともに、相手から送信されてきた相手のデータベースの更新内容情報に基づいて自身のデータベースの内容更新をすることができ、自身のデータベースと相手のデータベースとの内容を同一に保つことができる。
【０００３】
また、従来のデータ同期の開始方法としては、ユーザが手動で行う方法の他に、例えば特開２０００−１３２６０３号公報に記載されているように、前もってデータ同期を開始する時刻を登録しておく方法や、特開２０００−３３０８８０号公報に記載されているように、クライアント端末がサーバコンピュータへの接続を確立したときに自動的にデータ同期を開始する方法が知られている。
【０００４】
【発明が解決しようとする課題】
以上のように従来のデータ同期方法では、長い期間ユーザがデータ同期を行わなかったり、登録したデータ同期開始時刻以前にデータベースに大量の変更がなされたような場合には、データ同期開始時に相手へ送信する情報の量、又は相手から受信する情報の量は多大なものとなってしまった。
【０００５】
また、クライアント端末が携帯電話のように記憶領域に制限のあるような機器である場合や、サーバコンピュータとクライアント端末をつなぐネットワークとして公衆網や無線等が用いられ信頼性や通信速度が十分でないような場合には、一度のデータ同期で大量の情報を送受信すると、データ同期をするにあたり通信時間が増大し、データ同期中にエラーの起こる可能性も高かった。
さらに、通信時間が増大することによってコストが増加する。また、エラーが発生することにより何度もデータ同期を行う必要があり、結果として通信時間が増大する、コストが増加するなどの課題があった。
【０００６】
また、携帯電話などでは、データ転送中には他の機能、例えば通話などをすることができない。さらに、処理速度が著しく低下するため一度のデータ同期に多くの時間がかかりその間に携帯電話の他の機能を使用できないという事態が発生し、ユーザに対してストレスを与えることがあった。このように、一度のデータ同期で大量の情報を送受信することは望ましくないものであった。
【０００７】
この発明は、上記のような課題を解決するためになされたものであり、一度のデータ同期で大量の情報を送受信することのないように、適当なデータ送信量でのデータ同期を自動的に開始することにより、通信時間の増大やデータ同期中にエラーの起こる可能性を抑えることができ、通信コストの削減やデータ同期プログラムによるクライアント端末の占有を回避することができるデータ同期システムを提供することを目的とする。
【０００８】
【課題を解決するための手段】
第１の発明は、第１のデータベースを有するクライアントと、
前記クライアントとネットワークを介して接続され、第２のデータベースと、前記第２のデータベースの更新内容を更新履歴として保存する更新履歴保存手段と、前記更新履歴保存手段に前記クライアントに送信する必要のある更新履歴が何件保存されたらデータ同期を開始するかの第１の閾値を記憶する記憶手段とを有し、前記クライアントに送信する必要のある更新履歴を前記更新履歴保存手段より抽出し、この抽出した更新履歴の件数が前記第１の閾値より大きい時に、前記第１のデータベースと前記第２のデータベースとのデータ同期を開始するサーバと、を備えたものである。
【０００９】
第２の発明は、前記クライアントに送信するメッセージサイズがいくつになったらデータ同期を開始するかの第２の閾値を記憶する記憶手段と、
前記更新履歴保存手段より抽出した更新履歴から前記クライアントに送信するメッセージサイズを計算し、このメッセージサイズが前記第２の閾値より大きい時に、前記第１のデータベースと前記第２のデータベースとのデータ同期を開始するサーバと、を備えたものである。
【００１０】
第３の発明は、データ同期を開始しなくてもよい第１の時間間隔を第３の閾値として記憶する記憶手段と、
前記更新履歴保存手段より抽出した更新履歴の中から一番古い更新日時と現在の日時との差を求め、この差が前記第３の閾値より大きい時に、前記第１のデータベースと前記第２のデータベースとのデータ同期を開始するサーバと、を備えたものである。
【００１１】
第４の発明は、データ同期を再開始する第２の時間間隔を記憶する記憶手段と、
前記データ同期の開始ができなかった時には、前記記憶手段に記憶された前記第２の時間間隔に従って一定時間待機後、データ同期を開始するサーバと、を備えたものである。
【００１２】
第５の発明は、第１のデータベースを有するサーバと、
前記サーバとネットワークを介して接続され、第２のデータベースと、前記第２のデータベースの更新内容を更新履歴として保存する更新履歴保存手段と、前記更新履歴保存手段に前記サーバに送信する必要のある更新履歴が何件保存されたらデータ同期を開始するかの第１の閾値を記憶する記憶手段とを有し、前記サーバに送信する必要のある更新履歴を前記更新履歴保存手段より抽出し、この抽出した更新履歴の件数が前記第１の閾値より大きい時に、前記第１のデータベースと前記第２のデータベースとのデータ同期を開始するクライアントと、を備えたものである。
【００１３】
第６の発明は、前記サーバに送信するメッセージサイズがいくつになったらデータ同期を開始するかの第２の閾値を記憶する記憶手段と、
前記更新履歴保存手段より抽出した更新履歴から前記サーバに送信するメッセージサイズを計算し、このメッセージサイズが前記第２の閾値より大きい時に、前記第１のデータベースと前記第２のデータベースとのデータ同期を開始するクライアントと、を備えたものである。
【００１４】
第７の発明は、データ同期を開始しなくてもよい第１の時間間隔を第３の閾値として記憶する記憶手段と、
前記更新履歴保存手段より抽出した更新履歴の中から一番古い更新日時と現在の日時との差を求め、この差が前記第３の閾値より大きい時に、前記第１のデータベースと前記第２のデータベースとのデータ同期を開始するクライアントと、を備えたものである。
【００１５】
第８の発明は、前記データ同期を再開始する時間間隔を記憶する記憶手段と、前記データ同期の開始ができなかった時には、前記記憶手段に記憶された時間間隔に従って一定時間待機後、データ同期を開始するクライアントと、を備えたものである。
【００１６】
第９の発明は、第１のデータベースの更新内容を更新履歴として保存する更新履歴保存ステップと、
前記更新履歴の中からネットワークを介して接続された第２のデータベースに送信する必要のある更新履歴を抽出する抽出ステップと、
前記第２のデータベースに送信する必要のある更新履歴が前記更新履歴保存ステップで何件保存されたらデータ同期を開始するかの第１の閾値を記憶する記憶ステップと、
前記抽出ステップにより抽出された更新履歴の件数が、前記第１の閾値より大きい時に、前記第１のデータベースと前記第２のデータベースとのデータ同期を開始するデータ同期開始ステップと、を備えたものである。
【００１７】
第１０の発明は、前記第２のデータベースに送信するメッセージサイズがいくつになったらデータ同期を開始するかの第２の閾値を記憶する記憶ステップと、
前記抽出ステップにより抽出された更新履歴から前記第２のデータベースに送信するメッセージサイズを計算し、このメッセージサイズが前記第２の閾値より大きい時に、前記第１のデータベースと前記第２のデータベースとのデータ同期を開始するデータ同期開始ステップと、を備えたものである。
【００１８】
第１１の発明は、データ同期を開始しなくてもよい第１の時間間隔を第３の閾値として記憶する記憶ステップと、
前記抽出ステップにより抽出された更新履歴の中から一番古い更新日時と現在の日時との差を求め、この差が前記第３の閾値より大きい時に、前記第１のデータベースと前記第２のデータベースとのデータ同期を開始するデータ同期開始ステップと、を備えたものである。
【００１９】
第１２の発明は、データ同期を再開始する時間間隔を記憶する記憶ステップと、
前記データ同期の開始ができなかった時には、前記記憶ステップにより記憶された時間間隔に従って一定時間待機後、データ同期を開始するデータ同期開始ステップと、を備えたものである。
【００２０】
【発明の実施の形態】
実施の形態１．
実施の形態１では、データ同期システムにおけるサーバコンピュータのデータ同期自動開始プログラム（以下、サーバプログラム）によるサーバの処理動作について説明する。
図１は、実施の形態１のデータ同期システムの構成図である。
図１において、１０はサーバコンピュータ、２１，２２はクライアント端末、３はサーバコンピュータ１０とクライアント端末２１，２２とを接続するネットワーク、１０１はサーバコンピュータ１０内のデータベース、２１１，２２１はそれぞれクライアント端末２１，２２内のデータベース、１０２はサーバコンピュータ１０内の更新履歴保存手段である更新履歴データベース、２１２，２２２はそれぞれクライアント端末２１，２２内の更新履歴保存手段である更新履歴データベース、１０３はサーバコンピュータ１０のＣＰＵ、２１３，２２３はそれぞれクライアント端末２１，２２のＣＰＵ、１０４はサーバコンピュータ１０のデータ同期自動開始プログラムを含むプログラム記憶部、２１４，２２４はそれぞれクライアント端末２１，２２のデータ同期自動開始プログラムを含むプログラム記憶部、１０５はサーバコンピュータのデータ同期自動開始プログラムの用いる閾値と再要求する時間間隔とを記憶する記憶部、２１５，２２５はそれぞれクライアント端末２１，２２のデータ同期自動開始プログラムの用いる閾値と再要求する時間間隔を記憶する記憶部である。
【００２１】
図２は、サーバ１０とクライアント２１との前回のデータ同期終了直後のサーバ１０のデータベース１０１の内容について示した図である。
図２に示すように、データベース１０１はデータの識別番号であるデータＩＤと、データの要素（ここでは名前と電話番号）からなっているものとする。また、サーバ１０とクライアント２１の前回のデータ同期は２００２年１月３日に行われたものとする。
【００２２】
図３は、２００２年１月４日にサーバ１０においてデータベース１０１の内容が変更された直後のデータベース１０１の内容について示した図である。図３では、データＩＤ３のデータが削除され、データＩＤ４のデータが変更され、データＩＤ５のデータが新たに追加されている。
【００２３】
図４は、２００２年１月４日にサーバ１０においてデータベース１０１の内容が変更された直後の更新履歴データベース１０２の内容について示した図である。更新履歴データベース１０２の内容は、編集日時、データＩＤ、編集内容という要素からなるものとする。
【００２４】
次に、サーバプログラムによるサーバ１０の処理動作について説明する。
図５は、サーバプログラムによるサーバ１０の処理動作を示すフローチャートである。
サーバ１０のデータベース１０１の内容が変更されると、ＣＰＵ１０３はサーバプログラムを呼び出す。ここでは、サーバプログラムは、２００２年１月４日にデータベース１０１の内容が変更された直後に呼び出される。サーバプログラムはその時点で既知であるクライアント全て（ここではクライアント２１，２２）に対してそれぞれ下記の手順を順に行う。
【００２５】
ここでは、クライアント２１に対する手順について説明する。
まず、対象のクライアント２１に対して必要な更新履歴を更新履歴データベース１０２から抽出する（ステップＳ１１）。ここで、クライアント２１に対しては２００２年１月３日に一度データ同期を行っているので、それ以前に登録された更新履歴は必要ない。よって、ステップＳ１１によって抽出される更新履歴は図６のようになる。
図６は、クライアント２１に対して必要な更新履歴を更新履歴データベース１０２から抽出した内容について示した図である。
【００２６】
次に、ステップＳ１１によって抽出された更新履歴件数Ｘと対象のクライアントに対する更新履歴件数の閾値Ｙを比較する（ステップＳ１２）。閾値Ｙの値は、更新履歴がいくつ溜まったらデータ同期開始を要求するかを示す閾値であり、任意のタイミング、任意の方法で記憶部１０５に登録されている。ここで、任意のタイミングについては、例えばクライアント２１がサーバ１０に登録された時に、また任意の方法については、例えば更新履歴データベース１０２の最大登録可能件数の半分を閾値Ｙの値とする方法により、閾値Ｙの値を記録部１０５に登録する。
なお、閾値Ｙの値は対象となるクライアントごとに独立に決定することができる。ここで、クライアント２１に対する閾値Ｙの値は１０であったとする。
【００２７】
ステップＳ１２での比較結果がＸ＞Ｙである場合、ＣＰＵ１０３に対して対象のクライアントとのデータ同期開始を要求することを命令する（ステップＳ１３）。ステップＳ１２での比較の結果がＸ≦Ｙである場合は何も行わずに終了する。図６に示すように、ここでは、クライアント２１に対しては更新履歴件数Ｘ＝３であり、Ｘ≦Ｙであるため、クライアント２１とのデータ同期開始は要求されない。
【００２８】
ステップＳ１２での比較の結果がＸ＞Ｙである場合には、クライアントとのデータ同期開始を要求することをＣＰＵ１０３に対して命令する（ステップＳ１３）。ＣＰＵ１０３が、クライアントに対してデータ同期開始を要求した場合に、ネットワークが切断されている等の理由で、データ同期を開始できなかった場合、記憶部１０５から再要求する時間間隔を読み出し、その時間間隔ごとにデータ同期開始を要求する（ステップＳ１４、ステップＳ１５）。すなわち、記憶部１０５から再要求する時間間隔を読み出し、この時間間隔の間一定時間待機後、再度データ同期開始を要求し、データ同期の開始を行う。
【００２９】
この繰り返しは、クライアントとのデータ同期が開始できるまで続けられる。ただし、その間に例えばユーザからデータ同期開始要求があれば、待機中（ステップＳ１５）であってもデータ同期開始をＣＰＵ１０５に要求することも考えられる。また、ユーザによってデータ同期要求の繰り返し手順を中止することも考えられる。
【００３０】
以上のように本実施の形態によれば、サーバはデータ同期対象の各クライアントに対して適当な（大きすぎない）データ送信量でのデータ同期を自動的に開始することができ、これによって通信時間の増大やデータ同期中にエラーの起こる可能性を抑えることができるので、通信コストの削減やデータ同期プログラムによるクライアント端末の占有を回避することができる。
【００３１】
実施の形態２．
実施の形態１ではサーバコンピュータの処理動作について説明したが、実施の形態２ではクライアントのデータ同期自動開始プログラム（以下、クライアントプログラム）によるクライアントの処理動作について説明する。
データ同期システムの構成は、実施の形態１の図１と同様であるので、説明を省略する。
【００３２】
次に、クライアントプログラムによるクライアントの処理動作について説明する。
クライアントの処理動作は、実施の形態１で説明した図５のサーバプログラムによるサーバ１０の処理動作と同様であるので、図５にしたがってクライアント２１の処理動作について説明を行う。
【００３３】
クライアント２１のデータベース２１１の内容が変更されると、ＣＰＵ２１３はクライアントプログラムを呼び出す。クライアントプログラムは、まず、必要な更新履歴を更新履歴データベース２１２から抽出する（ステップＳ１１）。
次に、ステップＳ１１によって抽出された更新履歴件数Ｘとサーバ１０４に対する更新履歴件数の閾値Ｙを比較する（ステップＳ１２）。閾値Ｙの値は、更新履歴がいくつ溜まったらデータ同期開始を要求するかを示す閾値であり、任意のタイミング、任意の方法で記憶部２１５に登録されている。ここで、任意のタイミングについては、例えばクライアント２１がサーバ１０と初めてデータ同期を行う直前に、また任意の方法については、例えば更新履歴データベース２１２の最大登録可能件数の半分を閾値Ｙの値とする方法により、閾値Ｙの値を記録部２１５に登録する。
【００３４】
ステップＳ１２の比較の結果がＸ＞Ｙである場合には、ＣＰＵ２１３に対してサーバとのデータ同期開始を要求することを命令する（ステップＳ１３）。ステップＳ１２の比較の結果がＸ≦Ｙである場合は何もせずに終了する。
【００３５】
ステップＳ１３でサーバとのデータ同期開始を要求することをＣＰＵ２１３に対して命令した時に、ネットワークが切断されている等の理由で、データ同期を開始できなかった場合には、記憶部２１５から再要求する時間間隔を読み出し、その時間間隔ごとにデータ同期開始を要求する（ステップＳ１４、ステップＳ１５）。すなわち、記憶部２１５から再要求する時間間隔を読み出し、この時間間隔の間一定時間待機後、再度データ同期開始を要求し、データ同期の開始を行う。
【００３６】
この繰り返しはサーバとのデータ同期が開始できるまで続けられる。ただし、その間に例えばユーザからデータ同期開始要求があれば、待機中（ステップＳ１５）であってもデータ同期開始をＣＰＵ２１５に要求することも考えられる。また、ユーザによってデータ同期再要求の繰り返し手順を中止することも考えられる。
【００３７】
以上のように本実施の形態によれば、クライアントはサーバに対して適当なデータ送信量でのデータ同期を自動的に開始することができ、これによって通信時間の増大やデータ同期中にエラーの起こる可能性を抑えることができるので、通信コストの削減やデータ同期プログラムによるクライアント端末の占有を回避することができる。
【００３８】
実施の形態３．
実施の形態３では、実施の形態１のサーバプログラムとは異なるサーバプログラムについて説明する。データ同期システムの構成は、実施の形態１の図１と同様であり、また、サーバ１０とクライアント２１との前回のデータ同期終了直後のサーバ１０のデータベース１０１の内容は図２と、２００２年１月４日にサーバ１０においてデータベース１０１の内容が変更された直後のデータベース１０１の内容は図３と、２００２年１月４日にサーバ１０においてデータベース１０１の内容が変更された直後の更新履歴データベース１０２の内容は図４と、クライアント２１に対して必要な更新履歴を更新履歴データベース１０２から抽出した内容は図６と同様である。
【００３９】
次に、サーバプログラムによるサーバ１０の処理動作について説明する。
図７は、サーバプログラムによるサーバ１０の処理動作を示すフローチャートである。
サーバ１０のデータベース１０１の内容が変更されると、ＣＰＵ１０３はサーバプログラムを呼び出す。ここでは、サーバプログラムは、２００２年１月４日にデータベース１０１の内容が変更された直後に呼び出される。サーバプログラムはその時点で既知であるクライアント全て（ここではクライアント２１，２２）に対してそれぞれ下記の手順を行う。
【００４０】
ここでは、クライアント２１に対する処理動作について説明する。
まず、対象のクライアント２１に対して必要な更新履歴を更新履歴データベース１０２から抽出する（ステップＳ２１）。ここで、クライアント２１に対しては２００２年１月３日に一度データ同期を行っているので、それ以前に登録された更新履歴は必要ない。よって、ステップＳ２１によって抽出される更新履歴は図６のようになる。
【００４１】
次に、ステップＳ２１によって抽出された更新履歴から対象のクライアントに対してパラメータＸ’を計算する（ステップＳ２２）。ここでは、パラメータＸ’をクライアントに対して送信する必要のあるメッセージのサイズとする。ここでのメッセージは、データ同期において用いられるプロトコルによって定められ、相手に送信する必要のあるデータストリームである。
【００４２】
例として、図８のように、各更新履歴ごとにデータＩＤ（２バイト）、編集内容（１バイト）、編集内容が「追加」、「変更」である場合には、データの内容（ここではデータベースの要素「名前」が１０バイト、「電話番号」が１１バイトとする）を連結し、さらにこれらを全ての更新履歴に対して連結したものをメッセージであるとすると、クライアント２１に対して送信するメッセージのサイズは５１バイトとなる。
【００４３】
次に、ステップＳ２２によって計算されたパラメータ（メッセージサイズ）Ｘ’と対象のクライアントに対するパラメータ（メッセージサイズ）の閾値Ｙ’を比較する（ステップＳ２３）。閾値Ｙ’の値は、クライアントに対して送信する必要のあるメッセージのサイズがいくつになったらデータ同期開始を要求するかを示す閾値であり、任意のタイミング、任意の方法で記憶部１０５に登録されている。ここで、任意のタイミングについては、例えばクライアント２１がサーバ１０に登録された時に、また任意の方法については、例えば対象クライアントがサーバから受信するメッセージを蓄えるためのバッファの最大サイズの半分又は全部を閾値Ｙ’の値とする方法により、閾値Ｙ’の値を記録部１０５に登録する。
また、閾値Ｙ’の値は対象となるクライアントごとに独立に決定することができる。ここでクライアント２１に対しては閾値Ｙ’の値は１００バイトであったとする。
【００４４】
ステップＳ２３の比較の結果がＸ’＞Ｙ’である場合には、ＣＰＵ１０３に対して対象のクライアントとのデータ同期開始を要求することを命令する（ステップＳ２４）。ステップＳ２３の比較の結果がＸ’≦Ｙ’である場合は何もせずに終了する。図６に示すように、ここではクライアント２１に対してはＸ’≦Ｙ’であるため、クライアント２１とのデータ同期は開始されない。
【００４５】
一方、クライアントに対してＸ’＞Ｙ’である場合には、クライアントとのデータ同期開始を要求することをＣＰＵ１０３に対して命令する（ステップＳ２４）。ＣＰＵ１０３がクライアント２２に対してデータ同期開始を要求した場合にネットワークが切断されている等の理由で、データ同期を開始できなかった場合、記憶部１０５から再要求する時間間隔を読み出し、その時間間隔ごとにデータ同期開始を要求する（ステップＳ２５、ステップＳ２６）。すなわち、記憶部１０５から再要求する時間間隔を読み出し、この時間間隔の間一定時間待機後、再度データ同期開始を要求し、データ同期の開始を行う。
【００４６】
この繰り返しはクライアント２２とのデータ同期が開始できるまで続けられる。ただし、その間に例えばユーザからデータ同期開始要求があれば、待機中（ステップＳ２６）であってもデータ同期開始をＣＰＵ１０５に要求することも考えられる。また、ユーザによってデータ同期要求の繰り返し手順を中止することも考えられる。
【００４７】
上記の方法とは別に、パラメータ（メッセージサイズ）の閾値Ｙ’の決定方法として、通信速度が動的に変化するようなネットワークの場合には、動的に閾値Ｙ’を更新して記憶部２１５に登録することも考えられる。
【００４８】
以上のように本実施の形態によれば、サーバはデータ同期対象の各クライアント端末に対して、クライアント端末のメモリ制約や、ネットワークの通信速度などを考慮したデータ送信量でのデータ同期を自動的に開始することができ、これによって通信時間の増大やデータ同期中にエラーの起こる可能性を抑えることができるので、通信コストの削減やデータ同期プログラムによるクライアント端末の占有を回避することができる。
【００４９】
実施の形態４．
実施の形態４では、実施の形態２のクライアントプログラムとは異なるクライアントプログラムについて説明する。データ同期システムの構成は、実施の形態１の図１と同様である。
【００５０】
次に、クライアントプログラムによるクライアントの処理動作について説明する。
図７は、クライアントプログラムによるクライアントの処理動作を示すフローチャートである。
ここでは、クライアント２１における動作について説明する。
クライアント２１のデータベース２１１の内容が変更されると、ＣＰＵ２１３はクライアントプログラムを呼び出す。クライアントプログラムは次の手順を行う。まず、必要な更新履歴を更新履歴データベース２１２から抽出する（Ｓ２１）。
【００５１】
次に、ステップＳ２１によって抽出された更新履歴からパラメータＸ’を計算する（ステップＳ２２）。ここでは、パラメータＸ’をサーバに対して送信する必要のあるメッセージのサイズとする。そしてステップＳ２２によって計算されたパラメータＸ’とパラメータの閾値Ｙ’を比較する（ステップＳ２３）。ここで閾値Ｙ’の値は、サーバに対して送信する必要のあるメッセージサイズがいくつになったらデータ同期開始を要求するかを示す閾値であり、任意のタイミング、任意の方法で記憶部２１５に登録されている。ここで、任意のタイミングについては、例えばクライアント２１がサーバ１０と初めてデータ同期を行う直前に、また任意の方法については、例えばサーバ１０とクライアント２１をつなぐネットワークの通信速度を参考に閾値Ｙ’の値を決定する方法により、閾値Ｙ’の値を記録部２１５に登録する。なお、通信速度を参考に閾値Ｙ’の値を決定する方法は、通信速度が遅い場合には多くのデータを送る時間が長くかかり、このために送信エラーの発生が多くなるっことから考えたものである。
【００５２】
ステップＳ２３の比較の結果がＸ’＞Ｙ’である場合、ＣＰＵ２１３に対してサーバとのデータ同期開始を命令する（Ｓ２４）。ステップＳ２３の比較の結果がＸ’≦Ｙ’である場合は何もせずに終了する。
【００５３】
ステップＳ２４でサーバとのデータ同期開始を要求することをＣＰＵ２１３に対して命令した場合に、ネットワークが切断されている等の理由で、データ同期を開始できなかった場合は、記憶部２１５から再要求する時間間隔を読み出し、その時間間隔ごとにデータ同期開始を要求する（ステップＳ２５、ステップＳ２６）。すなわち、記憶部２１５から再要求する時間間隔を読み出し、この時間間隔の間一定時間待機後、再度データ同期開始を要求し、データ同期の開始を行う。
【００５４】
この繰り返しはサーバとのデータ同期が開始できるまで続けられる。ただし、その間に例えばユーザからデータ同期開始要求があれば、待機中（ステップＳ２６）であってもデータ同期開始をＣＰＵ２１５に要求することも考えられる。また、ユーザによってデータ同期再要求の繰り返し手順を中止することも考えられる。
【００５５】
上記の方法とは別に、パラメータ（メッセージサイズ）の閾値Ｙ’の決定方法として、通信速度が動的に変化するようなネットワークの場合には、動的に閾値Ｙ’を更新して記憶部２１５に登録することも考えられる。
【００５６】
以上のように本実施の形態によれば、クライアントはサーバに対してネットワークの通信速度などを考慮したデータ転送量でのデータ同期を自動的に開始することができ、これによって通信時間の増大やデータ同期中にエラーの起こる可能性を抑えることができるので、通信コストの削減やデータ同期プログラムによるクライアント端末の占有を回避することができる。
【００５７】
なお、実施の形態３ではパラメータＸ’をクライアントに対して送信する必要のあるメッセージのサイズとし、実施の形態４ではパラメータＸ’をサーバに対して送信する必要のあるメッセージのサイズとしたが、以下の方法によりパラメータＸ’の設定を行うようにしても良い。すなわち、抽出した更新履歴のうち、更新履歴データベースに記録された日時（つまりデータベースの変更が発生した日時）が一番古いものの日時と、現在の日時との差をパラメータＸ’とする。このようにパラメータＸ’を設定すると、例えば、一番古い履歴が１週間前のものであり、現在の日時との差が７日と○○時間△△分××秒あり、閾値Ｙ’が５日ということであれば、全てデータ同期を自動開始する。
【００５８】
これにより、上記実施の形態と同様の効果を得ることができる。ここで、閾値Ｙ’は、ここまではデータ同期を開始しなくてもよい時間間隔を示すものである。
なお、この場合にも、データ同期を開始できなかった場合、記憶部１０５から再要求する時間間隔を読み出し、その時間間隔ごとにデータ同期開始を要求することにより、データ同期の開始を行うか、または、記憶部２１５から再要求する時間間隔を読み出し、その時間間隔ごとにデータ同期開始を要求することにより、データ同期の開始を行うことができる。
【００５９】
【発明の効果】
この発明は、以上説明したように構成されているので、以下に示すような効果を奏する。
【００６０】
この発明によれば、サーバが、第１のデータベースを有するクライアントとネットワークを介して接続され、第２のデータベースと、前記第２のデータベースの更新内容を更新履歴として保存する更新履歴保存手段と、前記更新履歴保存手段に前記クライアントに送信する必要のある更新履歴が何件保存されたらデータ同期を開始するかの第１の閾値を記憶する記憶手段とを有し、前記クライアントに送信する必要のある更新履歴を前記更新履歴保存手段より抽出し、この抽出した更新履歴の件数が前記第１の閾値より大きい時に、前記第１のデータベースと前記第２のデータベースとのデータ同期を開始することにより、通信時間の増大やデータ同期中にエラーの起こる可能性を抑えることができるので、通信コストの削減やデータ同期プログラムによるクライアント端末の占有を回避することができる。
【００６１】
また、クライアントが、第１のデータベースを有するサーバとネットワークを介して接続され、第２のデータベースと、前記第２のデータベースの更新内容を更新履歴として保存する更新履歴保存手段と、前記更新履歴保存手段に前記サーバに送信する必要のある更新履歴が何件保存されたらデータ同期を開始するかの第１の閾値を記憶する記憶手段とを有し、前記サーバに送信する必要のある更新履歴を前記更新履歴保存手段より抽出し、この抽出した更新履歴の件数が前記第１の閾値より大きい時に、前記第１のデータベースと前記第２のデータベースとのデータ同期を開始することにより、通信時間の増大やデータ同期中にエラーの起こる可能性を抑えることができるので、通信コストの削減やデータ同期プログラムによるクライアント端末の占有を回避することができる。
【図面の簡単な説明】
【図１】実施の形態１のデータ同期システムの構成図。
【図２】実施の形態１におけるデータベース１０１の内容について示した図。
【図３】実施の形態１におけるデータベース１０１の内容について示した図。
【図４】実施の形態１における更新履歴データベース１０２の内容について示した図。
【図５】実施の形態１におけるサーバ１０の処理動作を示すフローチャート。
【図６】実施の形態１において必要な更新履歴を更新履歴データベース１０２から抽出した内容について示した図。
【図７】実施の形態３におけるサーバ１０の処理動作を示すフローチャート。
【図８】実施の形態３における各更新履歴ごとのデータ内容を示した図。
【符号の説明】
１０　サーバコンピュータ、２１、２２　クライアント端末、３　ネットワーク、１０１　データベース、１０２　更新履歴データベース、１０３　ＣＰＵ、１０４　プログラム記憶部、１０５　記憶部、２１２、２２２　更新履歴データベース、２１３、２２３　ＣＰＵ、２１４、２２４　プログラム記憶部、２１５、２２５　記憶部。
【図１】
2004086800.tif 000003
【図２】
2004086800.tif 000004
【図３】
2004086800.tif 000005
【図４】
2004086800.tif 000006
【図５】
2004086800.tif 000007
【図６】
2004086800.tif 000008
【図７】
2004086800.tif 000009
【図８】
2004086800.tif 000010