(57)【要約】  【課題】  トランザクションの回数を削減しつつ、サーバ上で更新されたデータをクライアント上で最新状態に保つ。  【解決手段】  サーバ２０は、クライアント１０で最後に確認された内容を送付確認済リストとして記憶する送付確認済情報記憶部２６と、クライアント１０に保持させる更新後データセットを記憶する更新後データセット記憶部２７と、送付確認済リストで特定されるデータセットと更新後データセットとの差分を送信する更新情報送信部２４と、更新後データセットの内容を送付済リストとして送付済情報記憶部２５に記憶する送付済情報更新部２３と、クライアント１０からの更新要求を受信する更新要求受信部２１と、クライアント１０が保持するデータセットの内容が送付確認済リストで特定されるデータセットの内容と異なれば、送付確認済リストを送付済リストで置き換える送付確認済情報更新部２２とを備えた。  【選択図】  図１
2005174048.tif 000002
【特許請求の範囲】
【請求項１】
他のコンピュータが保持するデータセットを更新するための更新情報を当該他のコンピュータに送信する更新情報送信部と、
前記更新情報送信部により送信された前記更新情報を送付済情報として管理する送付済情報管理部と、
前記他のコンピュータが保持する前記データセットの更新状況を示す更新状況情報を含む更新要求を当該他のコンピュータから受信する更新要求受信部と、
前記更新要求受信部により受信された前記更新状況情報に基づき、前記他のコンピュータが前記更新情報による更新後のデータセットを保持していると判断されれば、前記送付済情報として記憶されていた当該更新情報を、当該他のコンピュータにおいて当該更新情報による前記データセットの更新が確認されたことを示す送付確認済情報として管理する送付確認済情報管理部と
を備えたことを特徴とするデータセット更新装置。
【請求項２】
前記更新要求受信部は、前記他のコンピュータが保持する前記データセットの更新に伴って値が変更されるトークンの値を、前記更新状況情報として受信し、
前記送付確認済情報管理部は、前記更新要求受信部により受信された前記トークンの値と、前記送付確認済情報の更新に伴って値が変更される送付確認済トークンの値とを比較することで、前記他のコンピュータが前記更新情報による更新後のデータセットを保持しているかどうかを判断することを特徴とする請求項１記載のデータセット更新装置。
【請求項３】
前記更新要求受信部は、前記他のコンピュータが保持する前記データセットの更新に伴って値が変更されるトークンの値を、前記更新状況情報として受信し、
前記送付確認済情報管理部は、前記更新要求受信部により受信された前記トークンの値と、前記送付確認済情報の更新に伴って値が変更される送付確認済トークンの値、および、前記送付済情報の更新に伴って値が変更される送付済トークンの値とを比較することで、前記他のコンピュータが前記更新情報による更新後のデータセットを保持しているかどうかを判断することを特徴とする請求項１載のデータセット更新装置。
【請求項４】
他のコンピュータへ送付したデータセットについて、当該他のコンピュータにおいて最後に確認された内容を特定する送付確認済データセット管理情報と、最後に送付された更新情報による更新後の内容を特定する送付済データセット管理情報とを記憶する管理情報記憶部と、
前記他のコンピュータが保持する前記データセットの更新状況を示す更新状況情報を含む更新要求を受信する更新要求受信部と、
前記更新要求受信部により受信された前記更新状況情報に基づき、前記他のコンピュータが保持する前記データセットの内容が前記送付確認済データセット管理情報により特定される前記データセットの内容と異なると判断されれば、前記管理情報記憶部に対し前記送付確認済データセット管理情報を前記送付済データセット管理情報で置き換える更新処理を行う管理情報更新部と
を備えたことを特徴とするデータセット更新装置。
【請求項５】
前記管理情報記憶部は、前記送付確認済データセット管理情報の更新状況を１ビットで示す送付確認済トークンを記憶し、
前記更新要求受信部は、前記更新状況情報として、前記他のコンピュータが保持する前記データセットの更新状況を１ビットで示すトークンを受信し、
前記管理情報更新部は、前記受信したトークンの値が前記送付確認済トークンの値と異なる場合に、前記他のコンピュータが保持する前記データセットの内容が前記送付確認済データセット管理情報により特定される前記データセットの内容と異なると判断することを特徴とする請求項４記載のデータセット更新装置。
【請求項６】
前記管理情報更新部は、前記更新要求受信部により受信された前記更新状況情報に基づき、前記他のコンピュータが保持する前記データセットの内容が前記送付済データセット管理情報により特定される前記データセットの内容と同じであると判断されれば、前記更新処理を行うことを特徴とする請求項４記載のデータセット更新装置。
【請求項７】
前記管理情報記憶部は、前記送付済データセット管理情報の更新状況を１ビットで示す送付済トークンを記憶し、
前記更新要求受信部は、前記更新状況情報として、前記他のコンピュータが保持する前記データセットの更新状況を１ビットで示すトークンを受信し、
前記管理情報更新部は、前記受信したトークンの値が前記送付済トークンの値と同じである場合に、前記他のコンピュータが保持する前記データセットの内容が前記送付済データセット管理情報により特定される前記データセットの内容と同じであると判断することを特徴とする請求項６記載のデータセット更新装置。
【請求項８】
前記管理情報更新部は、前記更新要求受信部により受信された前記更新状況情報に基づき、前記他のコンピュータが保持する前記データセットの内容が、前記送付済データセット管理情報により特定される前記データセットの内容と同じであると判断されれば、前記更新処理を行い、前記送付済データセット管理情報により特定される前記データセットの内容と異なると判断されれば、前記管理情報記憶部に対し前記送付確認済データセット管理情報を初期化する更新処理を行うことを特徴とする請求項４記載のデータセット更新装置。
【請求項９】
前記管理情報記憶部は、前記送付済データセット管理情報の更新状況を１ビットで示す送付済トークンを記憶し、
前記更新要求受信部は、前記更新状況情報として、前記他のコンピュータが保持する前記データセットの更新状況を１ビットで示すトークンを受信し、
前記管理情報更新部は、前記受信したトークンの値と前記送付済トークンの値とを比較することにより、前記他のコンピュータが保持するデータセットの内容と前記送付済データセット管理情報により特定される前記データセットの内容との異同を判断することを特徴とする請求項８記載のデータセット更新装置。
【請求項１０】
データセットを記憶するデータセット記憶部と、
他のコンピュータから更新情報を受信し、当該更新情報により、前記データセット記憶部に記憶された前記データセットの更新を行う更新処理部と、
前記データセットの更新が完了したことを示す情報を、当該更新後のデータセットに対する更なる更新の要求に含めて送信する更新要求送信部と
を備えたことを特徴とする端末装置。
【請求項１１】
他のコンピュータへ送付したデータセットについて、当該他のコンピュータにおいて最後に確認された内容を特定する送付確認済データセット管理情報と、最後に送付された更新情報による更新後の内容を特定する送付済データセット管理情報とを記憶するステップと、
前記他のコンピュータが保持する前記データセットの更新状況を示す更新状況情報を含む更新要求を受信するステップと、
受信された前記更新状況情報に基づき、前記他のコンピュータが保持する前記データセットの内容が前記送付確認済データセット管理情報により特定される前記データセットの内容と異なると判断されれば、前記送付確認済データセット管理情報を前記送付済データセット管理情報で置き換える更新処理を行うステップと
を含むことを特徴とするデータセット更新方法。
【請求項１２】
前記更新処理を行うステップでは、受信された前記更新状況情報に基づき、前記他のコンピュータが保持する前記データセットの内容が前記送付済データセット管理情報により特定される前記データセットの内容と同じであると判断されれば、当該更新処理を行うことを特徴とする請求項１１記載のデータセット更新方法。
【請求項１３】
前記更新処理を行うステップでは、受信された前記更新状況情報に基づき、前記他のコンピュータが保持する前記データセットの内容が、前記送付済データセット管理情報により特定される前記データセットの内容と同じであると判断されれば、前記更新処理を行い、前記送付済データセット管理情報により特定される前記データセットの内容と異なると判断されれば、前記送付確認済データセット管理情報を初期化する更新処理を行うことを特徴とする請求項１１記載のデータセット更新方法。
【請求項１４】
端末装置へ送付したデータセットについて、当該端末装置において最後に確認された内容を特定する送付確認済データセット管理情報と、最後に送付された更新情報による更新後の内容を特定する送付済データセット管理情報とを記憶するサーバコンピュータに、
前記端末装置が保持する前記データセットの更新状況を示す更新状況情報を含む更新要求を受信する機能と、
受信された前記更新状況情報に基づき、前記端末装置が保持する前記データセットの内容が前記送付確認済データセット管理情報により特定される前記データセットの内容と異なると判断されれば、前記送付確認済データセット管理情報を前記送付済データセット管理情報で置き換える更新処理を行う機能と
を実現させるためのプログラム。
【請求項１５】
前記更新要求を受信する機能では、前記更新状況情報として、前記端末装置が保持する前記データセットの更新状況を１ビットで示すトークンを受信し、
前記更新処理を行う機能では、前記受信したトークンの値が、前記送付確認済データセット管理情報の更新状況を１ビットで示す送付確認済トークンの値と異なる場合に、前記端末装置が保持する前記データセットの内容が前記送付確認済データセット管理情報により特定される前記データセットの内容と異なると判断することを特徴とする請求項１４記載のプログラム。
【請求項１６】
前記更新処理を行う機能では、受信された前記更新状況情報に基づき、前記端末装置が保持する前記データセットの内容が前記送付済データセット管理情報により特定される前記データセットの内容と同じであると判断されれば、前記更新処理を行うことを特徴とする請求項１４記載のプログラム。
【請求項１７】
前記更新要求を受信する機能では、前記更新状況情報として、前記端末装置が保持する前記データセットの更新状況を１ビットで示すトークンを受信し、
前記更新処理を行う機能では、前記受信したトークンの値が、前記送付済データセット管理情報の更新状況を１ビットで示す送付済トークンの値と同じである場合に、前記端末装置が保持する前記データセットの内容が前記送付済データセット管理情報により特定される前記データセットの内容と同じであると判断することを特徴とする請求項１６記載のプログラム。
【請求項１８】
前記更新処理を行う機能では、受信された前記更新状況情報に基づき、前記端末装置が保持する前記データセットの内容が、前記送付済データセット管理情報により特定される前記データセットの内容と同じであると判断されれば、前記更新処理を行い、前記送付済データセット管理情報により特定される前記データセットの内容と異なると判断されれば、前記送付確認済データセット管理情報を初期化する更新処理を行うことを特徴とする請求項１４記載のプログラム。
【請求項１９】
前記更新要求を受信する機能では、前記更新状況情報として、前記端末装置が保持する前記データセットの更新状況を１ビットで示すトークンを受信し、
前記更新処理を行う機能では、前記受信したトークンの値と、前記送付済データセット管理情報の更新状況を１ビットで示す送付済トークンの値とを比較することにより、前記端末装置が保持するデータセットの内容と前記送付済データセット管理情報により特定される前記データセットの内容との異同を判断することを特徴とする請求項１８記載のプログラム。
【請求項２０】
コンピュータに、
他のコンピュータから更新情報を受信し、当該更新情報によりデータセットの更新を行う機能と、
前記データセットの更新が完了したことを示す情報を、当該更新後のデータセットに対する更なる更新の要求に含めて送信する機能と
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバコンピュータ(以下、「サーバ」という)が、クライアントコンピュータ(以下、「クライアント」という)からの更新要求に応じて、クライアントが保持するデータセットを更新するデータセット更新装置等に関する。
【背景技術】
【０００２】
サーバとクライアントとの間でデータを共有する場合、データの同期について配慮する必要がある(例えば、特許文献１参照。)。特許文献１では、クライアントである携帯端末が最新のデータを保持し、サーバがその最新のデータを取得することを想定しており、クライアントがその保持するデータの更新をサーバに伝えるいわゆるＰＵＳＨ型の同期方式が採用されている。
【０００３】
一方で、サーバが最新のデータを保持し、クライアントがその最新のデータを取得して使用するようなシステムも考えられる。例えば、オンラインショッピングで用いる、購入者、希望商品、支払方法等を記入するためのフォーム等を、サーバとクライアントの双方が保持し、サーバで保持されるフォーム等に変更があった場合に、その変更後のフォーム等をクライアントが取得して使用するようなシステムである。
かかるシステムにおいて、クライアントとして携帯電話等の携帯情報端末を用いることとした場合、サーバからクライアントへ一方的にデータの更新を伝えても、クライアントが利用可能になっていないことがあり得る。その対策として、サーバが定期的にポーリングを行うことも考えられるが、通信トラフィックが過大になってしまうという問題があり、このような場合は、クライアントがその保持するデータの更新をサーバに要求することにより、サーバがそのデータに更新があればクライアントに更新情報を送信するいわゆるＰＵＬＬ型の同期方式が一般に採用される。
また、ＨＴＴＰをベース技術とした場合は、サーバからのＰＵＳＨ型の更新は行えないという事情もあり、かかる場合もＰＵＬＬ型の同期方式が採用される。
【０００４】
ところで、従来のＰＵＬＬ型の同期方式は、図１０に示すようなものであった。即ち、サーバ９０は、クライアント８０に送付したことが確認された送付確認済データセットのリストである送付確認済リストを保持し、クライアント８０からの更新要求に応じて、更新後データセットと送付確認済データセットとの差分を作成してクライアント８０に送付する。そして、クライアント８０からＡｃｋを受信すると、クライアント８０におけるデータセットの更新が正常に終了したものと判断し、送付確認済リストを更新するというものである。
【０００５】
【特許文献１】特開２０００−２９９６９８号公報(第６、７頁、第４、５図)
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、図１０に示した従来技術では、(1)クライアントからの更新要求とサーバからの更新内容の送付、(2)クライアントからの更新内容受信完了を示すＡｃｋとサーバからのそれに対するＡｃｋという２つのトランザクションが少なくとも必要であった。従って、トランザクション数が多く、特に、クライアントが携帯電話等の携帯情報端末の場合、１トランザクションあたりのオーバーヘッドが大きくなってしまうという問題点があった。
【０００７】
本発明は、以上のような技術的課題を解決するためになされたものであって、その目的は、トランザクション数を削減しつつ、サーバ上で更新されたデータをクライアント上で最新状態に保つことにある。
また、本発明の他の目的は、さらに通信データ量を削減しつつ、サーバ上で更新されたデータをクライアント上で最新状態に保つことにある。
【課題を解決するための手段】
【０００８】
かかる目的のもと、本発明は、クライアントにおけるデータセットの更新の完了を次の更新要求時に確認する構成としている。即ち、本発明のデータセット更新装置は、他のコンピュータが保持するデータセットを更新するための更新情報をそのコンピュータに送信する更新情報送信部と、この更新情報送信部により送信された更新情報を送付済情報として管理する送付済情報管理部(送付済情報記憶部および送付済情報更新部に対応)と、そのコンピュータが保持するデータセットの更新状況を示す更新状況情報を含む更新要求をそのコンピュータから受信する更新要求受信部と、この更新要求受信部により受信された更新状況情報に基づき、そのコンピュータが更新情報による更新後のデータセットを保持していると判断されれば、送付済情報として記憶されていた更新情報を、そのコンピュータにおいて更新情報によるデータセットの更新が確認されたことを示す送付確認済情報として管理する送付確認済情報管理部(送付確認済情報記憶部および送付確認済情報更新部に対応)とを備えている。
【０００９】
また、別の観点から捉えれば、本発明のデータセット更新装置は、他のコンピュータへ送付したデータセットについて、そのコンピュータにおいて最後に確認された内容を特定する送付確認済データセット管理情報(送付確認済リスト)と、最後に送付された更新情報による更新後の内容を特定する送付済データセット管理情報(送付済リスト)とを記憶する管理情報記憶部(送付済情報記憶部および送付確認済情報記憶部に対応)と、そのコンピュータが保持するデータセットの更新状況を示す更新状況情報を含む更新要求を受信する更新要求受信部と、この更新要求受信部により受信された更新状況情報に基づき、そのコンピュータが保持するデータセットの内容が送付確認済データセット管理情報により特定されるデータセットの内容と異なると判断されれば、管理情報記憶部に対し送付確認済データセット管理情報を送付済データセット管理情報で置き換える更新処理を行う管理情報更新部(送付済情報更新部および送付確認済情報更新部に対応)とを備えている。
【００１０】
また、本発明は、クライアントのデータセットの状態を、２値トークンを用いて管理しながらデータ同期を行うものである。本発明により、サーバ、クライアント双方で２値トークンの受け渡しのみを行うことにより、サーバが現在クライアント上に保持されているデータの状況を把握することが可能となる。また、クライアントからのリスト送付は行わないため、通信データ量が少なくすることができる。さらに、サーバではクライアントの状態を２値トークンで管理することにより、管理機構が単純になるという効果も得られる。
【００１１】
さらに、本発明は、データセットの更新の完了を次の更新要求時に確認させる端末装置として捉えることもできる。その場合、本発明の端末装置は、データセットを記憶するデータセット記憶部と、他のコンピュータから更新情報を受信し、その更新情報により、データセット記憶部に記憶されたデータセットの更新を行う更新処理部と、データセットの更新が完了したことを示す情報を、更新後のデータセットに対する更なる更新の要求に含めて送信する更新要求送信部とを備えている。
【００１２】
さらに、本発明は、一のコンピュータが、他のコンピュータが保持するデータセットを更新するデータセット更新方法として捉えることもできる。その場合、本発明のデータセット更新方法は、他のコンピュータへ送付したデータセットについて、そのコンピュータにおいて最後に確認された内容を特定する送付確認済データセット管理情報と、最後に送付された更新情報による更新後の内容を特定する送付済データセット管理情報とを記憶するステップと、そのコンピュータが保持するデータセットの更新状況を示す更新状況情報を含む更新要求を受信するステップと、受信された更新状況情報に基づき、そのコンピュータが保持するデータセットの内容が送付確認済データセット管理情報により特定されるデータセットの内容と異なると判断されれば、送付確認済データセット管理情報を送付済データセット管理情報で置き換える更新処理を行うステップとを含んでいる。
【００１３】
一方、本発明は、端末装置が保持するデータセットを更新するためにサーバにインストールされるプログラムとして捉えることもできる。その場合、本発明のプログラムは、端末装置へ送付したデータセットについて、その端末装置において最後に確認された内容を特定する送付確認済データセット管理情報と、最後に送付された更新情報による更新後の内容を特定する送付済データセット管理情報とを記憶するサーバに、端末装置が保持するデータセットの更新状況を示す更新状況情報を含む更新要求を受信する機能と、受信された更新状況情報に基づき、その端末装置が保持するデータセットの内容が送付確認済データセット管理情報により特定されるデータセットの内容と異なると判断されれば、送付確認済データセット管理情報を送付済データセット管理情報で置き換える更新処理を行う機能とを実現させるものである。
【００１４】
また、本発明は、データセットの更新の完了を次の更新要求時に確認させる端末装置にインストールされるプログラムとして捉えることもできる。その場合、本発明のプログラムは、コンピュータに、他のコンピュータから更新情報を受信し、その更新情報によりデータセットの更新を行う機能と、データセットの更新が完了したことを示す情報を、更新後のデータセットに対する更なる更新の要求に含めて送信する機能とを実現させるものである。
【発明の効果】
【００１５】
本発明によれば、トランザクション数を削減しつつ、サーバ上で更新されたデータをクライアント上で最新状態に保つことが可能となる。
また、さらに通信データ量を削減しつつ、サーバ上で更新されたデータをクライアント上で最新状態に保つことも可能となる。
【発明を実施するための最良の形態】
【００１６】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
図１は、本実施の形態におけるクライアントサーバシステムの全体構成を示す図である。
図１に示すように、このクライアントサーバシステムは、クライアント１０と、サーバ２０とから構成され、クライアント１０は、更新要求送信部１１と、トークン記憶部１２と、データセット記憶部１３と、更新処理部１４とを含み、サーバ２０は、更新要求受信部２１と、送付確認済情報更新部２２と、送付済情報更新部２３と、更新情報送信部２４と、送付済情報記憶部２５と、送付確認済情報記憶部２６と、更新後データセット記憶部２７とを含む。
【００１７】
データセット記憶部１３は、クライアント１０で使用するデータセットを記憶する手段であり、トークン記憶部１２は、データセット記憶部１３に記憶されたデータセットの更新状況を２値で示すトークンを記憶する手段である。また、更新要求送信部１１は、トークン記憶部１２に記憶されたトークンを更新要求としてサーバ２０に送信する手段であり、更新処理部１４は、サーバ２０から送られた更新情報に従いデータセット記憶部１３に記憶されたデータセットを更新する手段である。
【００１８】
送付済情報記憶部２５は、送付済リストおよび送付済トークンを記憶する手段(スロット)である。ここで、送付済リストとは、クライアント１０に送付したデータセットについて、最後に送付した更新情報による更新後の内容を特定するためのリストである。送付済リストに記録される情報としては、データセットを構成するコンポーネントの名称およびタイムスタンプが例示されるが、コンポーネントおよびそのバージョンの特定が可能な情報であれば、如何なるものを用いてもよい。また、送付済トークンとは、送付済リストの更新状況を２値で表すものである。
【００１９】
送付確認済情報記憶部２６は、送付確認済リストおよび送付確認済トークンを記憶する手段(スロット)である。ここで、送付確認済リストとは、クライアント１０に送付したデータセットについて、クライアント１０への送付が完了したことが最後に確認された時点における内容を特定するためのリストである。送付確認済リストに記録される情報としては、データセットを構成するコンポーネントの名称およびタイムスタンプが例示されるが、コンポーネントおよびそのバージョンの特定が可能な情報であれば、如何なるものを用いてもよい。また、送付確認済トークンとは、送付確認済リストの更新状況を２値で表すものである。
更新後データセット記憶部２７は、クライアント１０のデータセット記憶部１３に記憶されたデータセットを更新する場合に、その更新後のデータセットを記憶する手段である。
【００２０】
更新要求受信部２１は、クライアント１０から更新要求として送られたトークンを受信する手段である。また、送付確認済情報更新部２２は、更新要求受信部２１が受信したトークンと送付済情報記憶部２５に記憶された送付済トークンおよび送付確認済情報記憶部２６に記憶された送付確認済トークンとの比較結果に応じて、送付確認済情報記憶部２６に記憶された送付確認済トークンおよび送付確認済リストを更新する手段である。さらに、送付済情報更新部２３は、送付確認済情報記憶部２６に記憶された送付確認済リストにより特定されるデータセットと更新後データセット記憶部２７に記憶されたデータセットとの比較結果に応じて、送付済情報記憶部２５に記憶された送付済トークンおよび送付済リストを更新すると共に、クライアント１０に送信すべきトークンおよび更新情報を生成する手段である。さらにまた、更新要求送信部２４は、送付済情報更新部２３が生成したトークンおよび更新情報をクライアント１０に送信する手段である。
【００２１】
なお、クライアント１０およびサーバ２０のハードウェア構成としては、一般的なコンピュータと同様のものを採用することができる。即ち、中央処理装置(ＣＰＵ)と、メインメモリとを含み、これらがバスを介して補助記憶装置と接続されたようなものであってよい。ここで、補助記憶装置としては、ハードディスク、フレキシブルディスク、ＭＯ(Magneto Optical disk)、ＣＤ−ＲＯＭ等が想定される。
クライアント１０において、補助記憶装置には、更新要求送信部１１および更新処理部１４の機能を実現するコンピュータプログラムが記憶される。即ち、クライアント１０の図示しない中央処理装置(ＣＰＵ)がこのコンピュータプログラムをメインメモリに読み込んで実行することにより、更新要求送信部１１および更新処理部１４の機能を実現する。また、補助記憶装置は、トークン記憶部１２およびデータセット記憶部１３としても用いられる。なお、補助記憶装置に記憶されるコンピュータプログラムおよびデータは、図示しない記録媒体から直接、または、コンピュータネットワークを介してインストールされたものであってよい。
【００２２】
一方、サーバ２０において、補助記憶装置には、更新要求受信部２１、送付確認済情報更新部２２、送付済情報更新部２３、更新情報送信部２４の各機能を実現するコンピュータプログラムが記憶される。即ち、サーバ２０の図示しない中央処理装置(ＣＰＵ)がこのコンピュータプログラムをメインメモリに読み込んで実行することにより、更新要求受信部２１、送付確認済情報更新部２２、送付済情報更新部２３、更新情報送信部２４の各機能を実現する。また、補助記憶装置は、送付済情報記憶部２５、送付確認済情報記憶部２６、更新後データセット記憶部２７としても用いられる。なお、補助記憶装置に記憶されるコンピュータプログラムおよびデータは、図示しない記録媒体から直接、または、コンピュータネットワークを介してインストールされたものであってよい。
【００２３】
次に、本実施の形態の動作について詳細に説明する。なお、ここでは、クライアント１０が保持するトークンを「トークンｔｃ」、サーバ２０が保持する送付済トークンを「トークンｔｓ１」、サーバ２０が保持する送付確認済トークンを「トークンｔｓ２」とし、クライアント１０が保持するデータセットを「データセットＳｃ」、サーバ２０が保持する送付済リストにより特定されるデータセットを「データセットＳ１」、サーバ２０が保持する送付確認済リストにより特定されるデータセットを「データセットＳ２」、サーバ２０が保持する更新後データセットを「データセットＳｎ」とする。
【００２４】
まず、図２を参照しながら、クライアント１０の動作を説明する。
クライアント１０では、更新要求送信部１１が、トークン記憶部１２からトークンｔｃを取り出し、サーバ２０に送信することで、データセット記憶部１３に記憶されたデータセットＳｃの更新を要求する(ステップ１０１)。
これに対し、サーバ２０では後述する処理が行われ、クライアント１０では、更新処理部１４が応答を受信し(ステップ１０２)、その応答がトークンｔｓ１と差分(Ｓｎ−Ｓ２)であるかどうかを判断する(ステップ１０３)。そして、その応答がトークンｔｓ１と差分(Ｓｎ−Ｓ２)でなければ、何もせずに処理を終了するが、トークンｔｓ１と差分(Ｓｎ−Ｓ２)であれば、差分(Ｓｎ−Ｓ２)を用いて、データセット記憶部１３に記憶されたデータセットＳｃを更新すると共に、トークン記憶部１２に記憶されたトークンｔｃにトークンｔｓ１の値を設定し(ステップ１０４)、処理を終了する。
【００２５】
次に、図３を参照しながら、サーバ２０の動作を説明する。
サーバ２０では、更新要求受信部２１が、トークンｔｃを受信し(ステップ２０１)、送付確認済情報更新部２２に制御を渡す。
送付確認済情報更新部２２は、受信したトークンｔｃの値が送付確認済情報記憶部２６に記憶されたトークンｔｓ２の値と一致するかどうか判断する(ステップ２０２)。
この判断の結果、トークンｔｃの値がトークンｔｓ２の値と一致していれば、何もせずに処理はステップ２０７へ進む。一方、トークンｔｃの値がトークンｔｓ２の値と一致していなければ、トークンｔｃの値を送付確認済情報記憶部２６に記憶されたトークンｔｓ２に設定し(ステップ２０３)、トークンｔｃの値が送付済情報記憶部２５に記憶されたトークンｔｓ１の値と一致するかどうかを判断する(ステップ２０４)。
この判断の結果、トークンｔｃの値がトークンｔｓ１の値と一致していれば、送付確認済情報記憶部２６に記憶された送付確認済リストを送付済情報記憶部２５に記憶された送付済リストで置き換える(ステップ２０５)。即ち、送付確認済情報記憶部２６に記憶された送付確認済リストにより特定されていたデータセットＳ２を、それまで送付済情報記憶部２５に記憶された送付済リストにより特定されていたデータセットＳ１に変更する。一方、トークンｔｃの値がトークンｔｓ１の値と一致していなければ、送付確認済情報記憶部２６に記憶された送付確認済リストを初期化する(ステップ２０６)。即ち、送付確認済リストにより特定されるデータセットＳ２を空データに変更する。
【００２６】
その後、送付済情報更新部２３は、送付確認済情報記憶部２６に記憶された送付確認済リストにより特定されるデータセットＳ２が更新後データセット記憶部２７に記憶された更新後のデータセットＳｎと一致するかどうかを判断する(ステップ２０７)。
この判断の結果、データセットＳ２がデータセットＳｎと一致していれば、その旨の応答を送付する(ステップ２０８)。一方、データセットＳ２がデータセットＳｎと一致していなければ、送付確認済情報記憶部２６に記憶されたトークンｔｓ２の値と異なる値を送付済情報記憶部２５に記憶されたトークンｔｓ１に設定すると共に、送付済情報記憶部２５に記憶された送付済リストにより特定されるデータセットＳ１をデータセットＳｎに変更する(ステップ２０９)。
最後に、送付済情報更新部２３は、送付済情報記憶部２５に記憶されたトークンｔｓ１と、データセットＳｎとデータセットＳ２との差分(Ｓｎ−Ｓ２)とを、クライアント１０に送付する(ステップ２１０)。
【００２７】
以下、本実施の形態の動作について、具体例を用いて説明する。
まず、図４を参照して、更新のない状態(定常状態)における動作について説明する。
この例では、図４に示すように、クライアント１０が、トークンとして「０」を、データセットとして「Ａ」を保持し、サーバ２０が、送付済トークンとして「０」を、送付確認済トークンとして「０」を保持している。また、サーバ２０が保持する送付済リストにより特定されるデータセットは「Ａ」であり、サーバ２０が保持する送付確認済リストにより特定されるデータセットは「Ａ」であるとする。そして、更新後データセットとしては、「Ａ」が記憶されているものとする。
【００２８】
クライアント１０が、ステップ１０１で、トークン「０」を送信すると、サーバ２０は、ステップ２０１で、トークンを受信し、ステップ２０２で、受信したトークンの値と送付確認済トークンの値とを比較する。この場合、トークンはともに「０」で同じなので、ステップ２０７に進み、送付確認済リストにより特定されるデータセットと更新後データセットとを比較する。この場合、データセットはともに「Ａ」で同じなので、ステップ２０８に進み、更新無しを応答としてクライアント１０に送付する。なお、この場合は、クライアント１０ではトークンおよびデータセットの更新は行われない。
【００２９】
次に、図５を参照して、データセットを更新する場合の動作について説明する。
この例では、最初、図４における動作の終了時の状態であるとする。即ち、図５に示すように、クライアント１０が、トークンとして「０」を、データセットとして「Ａ」を保持し、サーバ２０が、送付済トークンとして「０」を、送付確認済トークンとして「０」を保持している。また、サーバ２０が保持する送付済リストにより特定されるデータセットは「Ａ」であり、サーバ２０が保持する送付確認済リストにより特定されるデータセットは「Ａ」であるとする。そして、更新後データセットとしては、「Ｂ」が記憶されているものとする。
【００３０】
クライアント１０が、ステップ１０１で、トークン「０」を送信すると、サーバ２０は、ステップ２０１で、トークンを受信し、ステップ２０２で、受信したトークンの値と送付確認済トークンの値とを比較する。この場合、トークンはともに「０」で同じなので、ステップ２０７に進み、送付確認済リストにより特定されるデータセットと更新後データセットとを比較する。この場合、前者のデータセットは「Ａ」であるのに対し、後者のデータセットは「Ｂ」であるので、ステップ２０９に進み、送付確認済トークンの「０」と異なる「１」を送付済トークンに設定すると共に、送付済リストにより特定されるデータセットを「Ａ」から更新後データセットである「Ｂ」に変更する。また、ステップ２１０で、送付済トークンである「１」と、送付確認済リストにより特定されるデータセットと更新後データセットとの差分である「Ｂ−Ａ」とを送付する。
これに対し、クライアント１０は、ステップ１０２で応答を受信し、ステップ１０３で、応答が送付済トークンおよび差分であるかどうかを判断する。ここでは、送付済トークンおよび差分なので、ステップ１０４に進み、受信した差分によりデータセットを更新して「Ｂ」とすると共に、受信したトークン「１」を自身のトークンに設定する。
【００３１】
本実施の形態では、この時、サーバ２０は、差分をクライアント１０に送付するだけで、その差分のクライアント１０への送付およびその差分に基づくクライアント１０での更新が正常に終了したかどうかについては、感知しない。これらの結果は、次の更新要求として、クライアント１０からサーバ２０に伝えられ、それに応じて、サーバ２０が送付確認済リストの更新等を行い、定常状態に戻る。この動作について、図６を参照して説明する。
この例では、最初、図５における動作の終了時の状態であるとする。即ち、図６に示すように、クライアント１０が、トークンとして「１」を、データセットとして「Ｂ」を保持し、サーバ２０が、送付済トークンとして「１」を、送付確認済トークンとして「０」を保持している。また、サーバ２０が保持する送付済リストにより特定されるデータセットは「Ｂ」であり、サーバ２０が保持する送付確認済リストにより特定されるデータセットは「Ａ」であるとする。そして、更新後データセットとしては、「Ｂ」が記憶されているものとする。
【００３２】
クライアント１０が、ステップ１０１で、トークン「１」を送信すると、サーバ２０は、ステップ２０１で、トークンを受信し、ステップ２０２で、受信したトークンの値と送付確認済トークンの値とを比較する。この場合、受信したトークンは「１」であるのに対し、送付確認済トークンは「０」なので、ステップ２０３に進み、受信したトークンの「１」を送付確認済トークンに設定する。次に、ステップ２０４で、受信したトークンの値と送付済トークンの値とを比較する。この場合、トークンはともに「１」で同じなので、ステップ２０５に進み、送付確認済リストにより特定されるデータセットを「Ａ」から「Ｂ」に変更する。その後、ステップ２０７で、送付確認済リストにより特定されるデータセットと更新後データセットとを比較する。この場合、データセットはともに「Ｂ」で同じなので、ステップ２０８に進み、更新無しを応答としてクライアント１０に送付する。なお、この場合は、クライアント１０ではトークンおよびデータセットの更新は行われない。
【００３３】
一方、図５で送信したトークンと差分とが何らかのエラーでクライアント１０に送付されないことも考えられる。本実施の形態では、このような場合、クライアント１０が通常と同じ更新要求を行うことにより、失われた更新情報がサーバ２０から再送されるようになっている。この動作について、図７を参照して説明する。
この例では、最初、図５においてクライアント１０での更新が行われなかった場合の状態であるとする。即ち、図７に示すように、クライアント１０が、トークンとして「０」を、データセットとして「Ａ」を保持し、サーバ２０が、送付済トークンとして「１」を、送付確認済トークンとして「０」を保持している。また、サーバ２０が保持する送付済リストにより特定されるデータセットは「Ｂ」であり、サーバ２０が保持する送付確認済リストにより特定されるデータセットは「Ａ」である。そして、更新後データセットとしては、「Ｂ」が記憶されているものとする。
【００３４】
クライアント１０が、ステップ１０１で、トークン「０」を送信すると、サーバ２０は、ステップ２０１で、トークンを受信し、ステップ２０２で、受信したトークンの値と送付確認済トークンの値とを比較する。この場合、トークンはともに「０」で同じなので、ステップ２０７に進み、送付確認済リストにより特定されるデータセットと更新後データセットとを比較する。この場合、前者のデータセットは「Ａ」であるのに対し、後者のデータセットは「Ｂ」であるので、ステップ２０９に進み、送付確認済トークンの「０」と異なる「１」を送付済トークンに設定すると共に、送付済リストにより特定されるデータセットを「Ａ」から更新後データセットである「Ｂ」に変更する。また、ステップ２１０で、送付済トークンである「１」と、送付確認済リストにより特定されるデータセットと更新後データセットとの差分である「Ｂ−Ａ」とを送付する。
これに対し、クライアント１０は、ステップ１０２で応答を受信し、ステップ１０３で、応答が送付済トークンおよび差分であるかどうかを判断する。ここでは、送付済トークンおよび差分なので、ステップ１０４に進み、受信した差分によりデータセットを更新して「Ｂ」とすると共に、受信したトークン「１」を自身のトークンに設定する。
【００３５】
また、図５で送信したトークンと差分とが何らかのエラーでクライアント１０に送付されなかった後、更新後データセットが変更になった場合の動作について、図８を参照して説明する。
最初、図８に示すように、クライアント１０が、トークンとして「０」を、データセットとして「Ａ」を保持し、サーバ２０が、送付済トークンとして「１」を、送付確認済トークンとして「０」を保持している。また、サーバ２０が保持する送付済リストにより特定されるデータセットは「Ｂ」であり、サーバ２０が保持する送付確認済リストにより特定されるデータセットは「Ａ」である。そして、更新後データセットとしては、「Ｃ」が記憶されているものとする。
【００３６】
クライアント１０が、ステップ１０１で、トークン「０」を送信すると、サーバ２０は、ステップ２０１で、トークンを受信し、ステップ２０２で、受信したトークンの値と送付確認済トークンの値とを比較する。この場合、トークンはともに「０」で同じなので、ステップ２０７に進み、送付確認済リストにより特定されるデータセットと更新後データセットとを比較する。この場合、前者のデータセットは「Ａ」であるのに対し、後者のデータセットは「Ｃ」であるので、ステップ２０９に進み、送付確認済トークンの「０」と異なる「１」を送付済トークンに設定すると共に、送付済リストにより特定されるデータセットを「Ｂ」から更新後データセットである「Ｃ」に変更する。また、ステップ２１０で、送付済トークンである「１」と、送付確認済リストにより特定されるデータセットと更新後データセットとの差分である「Ｃ−Ａ」とを送付する。
これに対し、クライアント１０は、ステップ１０２で応答を受信し、ステップ１０３で、応答が送付済トークンおよび差分であるかどうかを判断する。ここでは、送付済トークンおよび差分なので、ステップ１０４に進み、受信した差分によりデータセットを更新して「Ｃ」とすると共に、受信したトークン「１」を自身のトークンに設定する。
【００３７】
以上により、具体例の説明を終了する。
なお、これらは、本実施の形態において起こり得る動作の一部であるので、次に、図９を参照しながら、クライアント１０から送付されるトークン、送付済トークン(リスト)、送付確認済トークン(リスト)、更新後データセットの組み合わせに応じて、サーバ２０が如何なる動作を行うかを補足しておく。なお、ここでは、トークンとリストのセットを「トークン(リスト)」といった形式で表記することにする。
【００３８】
(１) 受信したトークン「０」、送付済トークン(リスト)「０(Ａ)」、送付確認済トークン(リスト)「０(Ａ)」、更新後データセット「Ａ」の場合
この場合は、図４を参照して説明したように、サーバ２０は、更新無しを返すだけであり、何もしない。
(２) 受信したトークン「０」、送付済トークン(リスト)「０(Ａ)」、送付確認済トークン(リスト)「０(Ａ)」、更新後データセット「Ｂ」の場合
この場合は、図５を参照して説明したように、サーバ２０は、トークン「１」と差分「Ｂ−Ａ」をクライアント１０に送付し、送付済トークン(リスト)を「１(Ｂ)」に更新する。
(３) 受信したトークン「０」、送付済トークン(リスト)「１(Ｂ)」、送付確認済トークン(リスト)「０(Ａ)」、更新後データセット「Ｂ」の場合
この場合は、図７を参照して説明したように、サーバ２０は、トークン「１」と差分「Ｂ−Ａ」をクライアント１０に送付し、送付済トークン(リスト)を「１(Ｂ)」に更新する。
(４) 受信したトークン「０」、送付済トークン(リスト)「１(Ｂ)」、送付確認済トークン(リスト)「０(Ａ)」、更新後データセット「Ｃ」の場合
この場合は、図８を参照して説明したように、サーバ２０は、トークン「１」と差分「Ｃ−Ａ」をクライアント１０に送付し、送付済トークン(リスト)を「１(Ｃ)」に更新する。
【００３９】
(５) 受信したトークン「１」、送付済トークン(リスト)「０(Ａ)」、送付確認済トークン(リスト)「０(Ａ)」、更新後データセット「Ａ」の場合
この場合については、図４〜図８で説明していないが、処理の途中で何らかの異常が生じた場合である。図３を参照すると、ステップ２０２での判断が「ＮＯ」となるので、ステップ２０３に進み、送付確認済トークンに「１」が設定される。そして、ステップ２０４での判断が「ＮＯ」となるので、ステップ２０６に進み、送付確認済リストにより特定されるデータセットを空データセットとする。従って、ステップ２０７での判断は「ＮＯ」となり、送付確認済トークンの「１」とは異なるトークン「０」と共に、更新後データセットと空データセットの差分、即ち、更新後データセット「Ａ」そのものをクライアント１０に送付する。また、ステップ２０９で、送付済トークン(リスト)を「０(Ａ)」に更新する。
【００４０】
(６) 受信したトークン「１」、送付済トークン(リスト)「０(Ａ)」、送付確認済トークン(リスト)「０(Ａ)」、更新後データセット「Ｂ」の場合
この場合についても、図４〜図８で説明していないが、処理の途中で何らかの異常が生じた場合である。図３を参照すると、ステップ２０２での判断が「ＮＯ」となるので、ステップ２０３に進み、送付確認済トークンに「１」が設定される。そして、ステップ２０４での判断が「ＮＯ」となるので、ステップ２０６に進み、送付確認済リストにより特定されるデータセットを空データセットとする。従って、ステップ２０７での判断は「ＮＯ」となり、送付確認済トークンの「１」とは異なるトークン「０」と共に、更新後データセットと空データセットの差分、即ち、更新後データセット「Ｂ」そのものをクライアント１０に送付する。また、ステップ２０９で、送付済トークン(リスト)を「０(Ｂ)」に更新する。
【００４１】
(７) 受信したトークン「１」、送付済トークン(リスト)「１(Ｂ)」、送付確認済トークン(リスト)「０(Ａ)」、更新後データセット「Ｂ」の場合
この場合は、図６を参照して説明したように、サーバ２０は、送付確認済トークン(リスト)を「１(Ｂ)」に更新する。
(８) 受信したトークン「１」、送付済トークン(リスト)「１(Ｂ)」、送付確認済トークン(リスト)「０(Ａ)」、更新後データセット「Ｃ」の場合
この場合は、図６で定常状態になる前に、更新後データセットが「Ｃ」に更新された場合である。サーバ２０は、送付確認済トークン(リスト)を「１(Ｂ)」に更新する。また、トークン「０」とともに、差分「Ｃ−Ｂ」を送付し、送付済トークン(リスト)を「０(Ｃ)」に更新する。
【００４２】
なお、図９のトークン(リスト)の組み合わせとサーバ２０の動作との関係は、トークンの値の「０」と「１」を入れ換えた場合でも同様に成立する。
また、トークンについては、「０」と「１」の２値からなるものだけではなく、３値以上のものを使用することも可能である。この場合は、図３のステップ２０９におけるｔｓ１にｔｓ２でない値を設定する処理を、ｔｓ１に(ｔｓ２＋１)を設定する処理等に変更し、トークンがとり得る最大値を決めてラウンドロビンにすれば実現可能である。
トークンが２値の場合、送付済トークン(リスト)または送付確認済トークン(リスト)は、「０(Ａ)」→「１(Ｂ)」→「０(Ｃ)」のように遷移していくが、これでは、何らかの理由により、クライアント１０が保持するトークン(リスト)が「０(Ａ)」に戻ってしまった場合は、その後、正常に動作が行われないことになる。
これに対し、トークンが３値以上の場合、送付済トークン(リスト)または送付確認済トークン(リスト)は、「０(Ａ)」→「１(Ｂ)」→「２(Ｃ)」のように遷移していき、クライアント１０が保持するトークン(リスト)が「０(Ａ)」に戻ってしまった場合であっても、その状態を救って正常な動作に戻すことが可能である。
【００４３】
なお、本実施の形態では、送付済情報記憶部２５および送付確認済情報記憶部２６に、データセットの内容を特定するための情報(コンポーネントのリスト)を記憶することとしたが、該当するデータセットそのものを記憶するようにしてもよい。
また、更新情報送信部２４がクライアント１０に送信した更新情報(更新データ、更新命令等)をそのまま送付済情報記憶部２５に記憶するようにしてもよい。その場合、ステップ２０５では、送付確認済情報記憶部２６により特定されるデータセットを、送付済情報記憶部２５に記憶された更新情報による更新後のものとする処理を行うことになる。
【００４４】
このように、本実施の形態では、更新後データセットに基づく更新情報をクライアントに送信すると共に更新後データセットは送付済リストで管理し、次に更新要求があった時にクライアントが更新後データセットを保持していることが確認できれば、更新後データセットを送付確認済リストで管理するようにしている。このような構成により、クライアントが保持するデータセットの更新を１トランザクションで行うことが可能となる。
また、クライアントが更新後データセットを保持しているかどうかの確認を、トークンを用いて行うこととし、トークンとしては、「０」、「１」の２値を用いた。このような構成により、データセットの更新に伴う同期管理に必要なデータ転送量を削減することが可能となる。
なお、本実施の形態では、クライアントサーバシステムへの適用例を説明してきたが、本発明は、互いに通信可能ないずれの２つのコンピュータに対しても適用することができる。
【図面の簡単な説明】
【００４５】
【図１】本実施の形態におけるクライアントサーバシステムの構成を示した図である。
【図２】本実施の形態におけるクライアントの動作を示すフローチャートである。
【図３】本実施の形態におけるサーバの動作を示すフローチャートである。
【図４】本実施の形態の動作を具体的に説明するための図である。
【図５】本実施の形態の動作を具体的に説明するための図である。
【図６】本実施の形態の動作を具体的に説明するための図である。
【図７】本実施の形態の動作を具体的に説明するための図である。
【図８】本実施の形態の動作を具体的に説明するための図である。
【図９】本実施の形態の動作をパターン別にまとめた図である。
【図１０】従来技術におけるクライアントサーバシステムの構成を示した図である。
【符号の説明】
【００４６】
１０…クライアント、１１…更新要求送信部、１２…トークン記憶部、１３…データセット記憶部、１４…更新処理部、２０…サーバ、２１…更新要求受信部、２２…送付確認済情報更新部、２３…送付済情報更新部、２４…更新情報送信部、２５…送付済情報記憶部、２６…送付確認済情報記憶部、２７…更新後データセット記憶部
【図１】
2005174048.tif 000003
【図２】
2005174048.tif 000004
【図３】
2005174048.tif 000005
【図４】
2005174048.tif 000006
【図５】
2005174048.tif 000007
【図６】
2005174048.tif 000008
【図７】
2005174048.tif 000009
【図８】
2005174048.tif 000010
【図９】
2005174048.tif 000011
【図１０】
2005174048.tif 000012