(57)【特許請求の範囲】
【請求項１】
端末装置が有している第一のデータベースとホスト装置が有している第二のデータベースとの同期化を行なって両データベースに蓄積されているデータを一致させるようにするホスト装置におけるデータベース同期化装置であって、
前回の同期化処理の終了時に前記端末装置より受信した更新済みの第一のデータベースを端末用前回履歴データベースとして記憶する端末用前回履歴データベース記憶手段と、
同期化処理に際して、前記端末装置より受信した第一のデータベースを記憶する手段と、
前記受信した第一のデータベースに存在しないレコードを前記端末用前回履歴データベースより読出し前記第一のデータベースへ追加し、このレコードに削除を示す更新処理情報を記憶する手段と、
追加された前記第一のデータベースとホスト装置が有している第二のデータベースの各レコードを比較して変更若しくは追加されているレコードを判定し、判定結果に基づいて、前記第一のデータベースと第二のデータベースの各レコードの変更若しくは追加の処理を行うと共に、前記削除を示す更新処理情報が記憶されているレコードに対応する第二のデータベースのレコードを削除する処理手段と、
前記処理された第一のデータベースの各レコードのうち、前記変更若しくは追加されたレコードとその変更若しくは追加を示す更新処理情報、および前記削除を示す更新情報が記憶されているレコードとその削除を示す更新処理情報を前記端末装置へ送信する送信手段と、
前記更新処理情報を受けて前記端末装置で更新された第一のデータベースを端末用前回履歴データベースとして受信し、前記端末用前回履歴データベース記憶手段へ記憶する制御手段と
を具備してなるデータベース同期化装置。
【請求項２】
端末装置が有している第一のデータベースとホスト装置が有している第二のデータベースとの同期化を行なって両データベースに蓄積されているデータを一致させるようにするホスト装置のコンピュータを、
前回の同期化処理の終了時に前記端末装置より受信した更新済みの第一のデータベースを端末用前回履歴データベースとして記憶する端末用前回履歴データベース記憶手段、
同期化処理に際して、前記端末装置より受信した第一のデータベースを記憶する手段、
前記受信した第一のデータベースに存在しないレコードを前記端末用前回履歴データベースより読出し前記第一のデータベースへ追加し、このレコードに削除を示す更新処理情報を記憶する手段、
追加された前記第一のデータベースとホスト装置が有している第二のデータベースの各レコードを比較して変更若しくは追加されているレコードを判定し、判定結果に基づいて、前記第一のデータベースと第二のデータベースの各レコードの変更若しくは追加の処理を行うと共に、前記削除を示す更新処理情報が記憶されているレコードに対応する第二のデータベースのレコードを削除する処理手段、
前記処理された第一のデータベースの各レコードのうち、前記変更若しくは追加されたレコードとその変更若しくは追加を示す更新処理情報、および前記削除を示す更新情報が記憶されているレコードとその削除を示す更新処理情報を前記端末装置へ送信する送信手段、
前記更新処理情報を受けて前記端末装置で更新された第一のデータベースを端末用前回履歴データベースとして受信し、前記端末用前回履歴データベース記憶手段へ記憶する制御手段
として機能させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報管理技術に関し、特に、複数のデータベースの内容を同期させる技術に関する。
【０００２】
【従来の技術】
近年、情報処理端末は小型軽量化し、以前は据置型のパーソナルコンピュータを使用しなければ行なえなかったアドレス帳、スケジュールや仕事（タスク）などを管理するＰＩＭ（Personal Information Management ：個人情報管理）を携帯可能な情報処理端末でも行なえるようになっている。このような携帯情報処理端末は最新の情報をいつでもどこでも使用可能とするものであるから、かかる携帯情報処理端末とホストとなるパーソナルコンピュータとの間で、互いに個々に有するデータベースの内容を同期させる（同一化する）必要がある。
【０００３】
このような双方の有するデータベースの内容の同期化を行なう方法の例として、携帯情報処理端末が変更、若しくは追加されたデータを含む自己の保有するデータベースの全てをパーソナルコンピュータに送信するようにし、パーソナルコンピュータでは受信したデータベースと自己の保有するデータベースとの比較を行ない、その比較の結果、相違していたデータのみを自装置のデータベースに反映させる更新処理を行なうと共にその更新されたデータベースの全てを携帯情報処理端末に送信し、携帯情報処理端末がその更新データベースを受信すると、それまで保有していた元のデータベースを削除して代わりにその更新データベースを保存するという方法が知られている。
【０００４】
【発明が解決しようとする課題】
上述した方法では、携帯情報処理端末のデータベースの内容を同期化する処理をホストのコンピュータで行ない、この処理によって更新されたデータベースの全ての内容を携帯情報処理端末へと送り戻すものであり、同期化処理の負荷をホストのコンピュータに負わせるので、携帯情報端末の負荷を減らすことが可能となる。しかし、携帯情報処理端末は、携帯情報端末自身の保有していたデータベースとホストのコンピュータが保有しているデータベースとの和集合となる更新データベースの全ての内容を受信するので、メモリ容量などが制限される携帯情報端末ではホストのコンピュータから送られてきた更新データベース内容を保存しきれない場合が生じ得る。
【０００５】
以上の問題を鑑み、ホストシステム及び端末装置が各々保有するデータベースの同期化を行なうために端末装置に要求される記録容量の負担を軽減させることが本発明が解決しようとする課題である。
【０００６】
【課題を解決するための手段】
本発明のデータベース同期化装置は、端末装置が有している第一のデータベースとホスト装置が有している第二のデータベースとの同期化を行なって両データベースに蓄積されているデータを一致させるようにするホスト装置におけるデータベース同期化装置であって、前回の同期化処理の終了時に前記端末装置より受信した更新済みの第一のデータベースを端末用前回履歴データベースとして記憶する端末用前回履歴データベース記憶手段と、同期化処理に際して、前記端末装置より受信した第一のデータベースを記憶する手段と、前記受信した第一のデータベースに存在しないレコードを前記端末用前回履歴データベースより読出し前記第一のデータベースへ追加し、このレコードに削除を示す更新処理情報を記憶する手段と、追加された前記第一のデータベースとホスト装置が有している第二のデータベースの各レコードを比較して変更若しくは追加されているレコードを判定し、判定結果に基づいて、前記第一のデータベースと第二のデータベースの各レコードの変更若しくは追加の処理を行うと共に、前記削除を示す更新処理情報が記憶されているレコードに対応する第二のデータベースのレコードを削除する処理手段と、前記処理された第一のデータベースの各レコードのうち、前記変更若しくは追加されたレコードとその変更若しくは追加を示す更新処理情報、および前記削除を示す更新情報が記憶されているレコードとその削除を示す更新処理情報を前記端末装置へ送信する送信手段と、前記更新処理情報を受けて前記端末装置で更新された第一のデータベースを端末用前回履歴データベースとして受信し、前記端末用前回履歴データベース記憶手段へ記憶する制御手段とを備える。
【００１８】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて説明する。
図１は本発明を実施するシステムの構成を示す図である。同図に示すシステムは、本発明を実施するホストコンピュータ装置（以下、単に「ホスト」という）１００と、携帯情報端末装置（以下、単に「端末」という）２００とが通信媒体３００で接続されて構成されており、ホスト１００と端末２００とは通信媒体３００を介して各種のデータを授受することができる。
【００１９】
まず、ホスト１００の構成について説明する。
ホスト１００の内部では、ＣＰＵ１１０、ＲＯＭ１２０、ＲＡＭ１３０、入力部１４０、出力部１５０、データベース管理部１６０、外部記憶制御部１９０、及び通信制御部１９９がバス１０１によって接続されており、ＣＰＵ１１０の管理の下で相互にデータの授受を行なうことができる。
【００２０】
ＣＰＵ（Central Processing Unit ）１１０はホスト１００全体の動作制御を行なう中央演算装置である。
ＲＯＭ１２０はＣＰＵ１１０にホスト１００全体の動作制御を行なわせるための基本制御プログラムが予め格納されている。
【００２１】
ＲＡＭ１３０はＣＰＵ１１０による各種処理のための作業用の記憶領域として使用されるメモリであり、後述する端末データベース２７０のデータが端末２００から送られてきたときにはそのデータを一時的に記憶する端末データベースバッファ１３１がＲＡＭ１３０の記憶領域に確保される。
【００２２】
入力部１４０はユーザによって操作される例えばキーボードやマウスなどの装置を備えて構成され、この装置への操作に対応するユーザからの指示やデータについての入力を取得する。
出力部１５０はＣＰＵ１１０による指示に応じた出力を行なうものであり、例えば各種の情報の表示を行なう表示装置を備えて構成される。
【００２３】
データベース管理部１６０はホスト１００の保有するデータベースの管理を行なうものであり、２つのデータベースの比較を行なうデータベース比較部１６１と、その比較結果に基づいてデータベースに対してどのようなデータ操作を行なうべきかを判定するデータ操作判定部１６２とを有している。
【００２４】
ホスト１００は大別してホストデータベース１７０と前回履歴データベース１８０との２種類のデータベースを保有している。
ホストデータベース１７０は本実施の形態においては前述したＰＩＭで使用するデータベースであり、具体的には住所録機能を提供するためのアドレス帳データベース１７１、スケジュール管理機能を提供するためのスケジュールデータベース１７２、及びユーザが処理すべきタスク（仕事）の進捗管理機能を提供するためのタスクデータベース１７３を有している。
【００２５】
前回履歴データベース１８０は、後述するデータベースの同期化処理が行なわれたことによって更新された直後のホスト１００及び端末２００それぞれのデータベースの内容が前回の同期化処理の履歴として保存されて得られるものであり、ホストデータベース１７０の履歴であるホスト用前回履歴データベース１８１と、後述する端末データベース２７０の履歴である端末用前回履歴データベースとを有している。
【００２６】
外部記憶制御部１９０は記憶媒体１９１に対する情報の記憶・読み出し・消去の制御を行なう。
記憶媒体１９１は例えばハードディスク装置であり、外部記憶制御部１９０の制御の下で記憶された情報を保持する。なお、記憶媒体１９１には、後述する同期化処理をＣＰＵ１１０に行なわせるための制御プログラムを予め格納しておくようにする。
【００２７】
通信制御部１９９は、通信媒体３００を介して端末２００との間でデータを授受するための通信の制御を行なう。
ホスト１００は以上の各要素を備えて構成される。なお、ホスト１００は例えばパーソナルコンピュータを使用することで構成可能である。
【００２８】
次に端末２００の構成について説明する。
端末２００の内部では、ＣＰＵ２１０、ＲＯＭ２２０、ＲＡＭ２３０、入力部２４０、出力部２５０、及びデータベース管理部２６０がバス２０１によって接続されており、ＣＰＵ２１０の管理の下で相互にデータの授受を行なうことができる。
【００２９】
ＣＰＵ２１０は端末２００全体の動作制御を行なう中央演算装置である。
ＲＯＭ２２０はＣＰＵ２１０に端末２００全体の動作制御を行なわせるための制御プログラムが予め格納されている。
ＲＡＭ２３０はＣＰＵ２１０による各種処理のための作業用の記憶領域として使用されるメモリである。
【００３０】
入力部２４０はユーザによって操作される例えばキーボードやタッチパネルなどの装置を備えて構成され、この装置への操作に対応するユーザからの指示やデータについての入力を取得する。
出力部２５０はＣＰＵ２１０による指示に応じた出力を行なうものであり、例えば各種の情報の表示を行なう表示装置を備えて構成される。
【００３１】
データベース管理部２６０は端末２００の保有する端末データベース２７０の管理を行なう。
端末データベース２７０は本実施の形態においては前述したＰＩＭのために使用されるデータベースであり、ホスト１００と同様に、アドレス帳データベース２７１、スケジュールデータベース２７２、及びタスクデータベース２７３を有している。後述する同期化処理では、ホスト１００の保有するホストデータベース１７０と端末２００の保有する端末データベース２７０とが同期化の対象となる。
【００３２】
通信制御部２９９は、通信媒体３００を介してホスト１００との間でデータを授受するための通信の制御を行なう。
端末２００は以上の各要素を備えて構成される。なお、端末２００は例えば携帯電話機やＰＤＡ（Personal Digital Assistants ：個人向け携帯型情報通信機器）などを使用することで構成可能である。
【００３３】
なお、ホスト１００と端末２００とを接続する通信媒体３００として、シリアルケーブル、ＵＳＢケーブルなどを使用して有線接続を行なってもよく、また赤外線、Bluetooth（登録商標）などを使用して無線接続を行なうようにしてもよい。更に、通信媒体３００の途中に公衆電話網やインターネット等のネットワークが介在するようにしてもよい。
【００３４】
以下、ホスト１００のＣＰＵ１１０が記憶媒体１９１に予め格納されている制御プログラムを読み出して実行することによってホスト１００において行なわれる、ホストデータベース１７０と端末データベース２７０との同期化処理の詳細について説明する。
【００３５】
なお、以降の説明においては具体例として同期化の対象をアドレス帳データベース１７１及び２７１とした場合について適宜言及することとする。また、以降の説明においてはデータベースを「ＤＢ」と略称することとする。
まず図２について説明する。同図は同期化処理の処理内容を示すフローチャートである。この同期化処理は、ユーザによる同期化処理の起動指示が入力部１４０に対して行なわれたことがＣＰＵ１１０で検出されると開始される。
【００３６】
まず、Ｓ１０１では、ホスト１００と端末２００との各々において同期化の対象とするＤＢの名称と、レコード毎の同一性の判定を行なうため各ＤＢからレコードを抽出するときにキーにする項目との指定がユーザによって行なわれ、その指定結果がＣＰＵ１１０で取得される。
【００３７】
例えば、同期化対象ＤＢとしてアドレス帳ＤＢ１７１及び２７１が指定されたときには、レコードを抽出するためのキー項目として名前が大概指定される。
なお、同期化対象ＤＢの名称の指定は、例えばＰＩＭのために使用されているＤＢ名を出力部１５０の表示装置にメニュー表示させ、その中からユーザが選択したＤＢ名をＣＰＵ１１０が取得するようにしておくと便利である。また、キー項目の指定は、例えばホストＤＢ１７０であるＤＢと端末ＤＢ２７０であるＤＢとの間で同一化を行なうフィールドの対応関係を予め定義しておき、ユーザがまず同期化対象ＤＢをひとつ選択するとその同期化対象ＤＢにおいてその対応関係が定義されているフィールドの一覧が出力部１５０の表示装置にメニュー表示され、その中からユーザが選択したフィールドがキー項目としてＣＰＵ１１０によって取得されるようにしておくと便利である。
【００３８】
Ｓ１０２では通信制御部１９９に指示が与えられ、前ステップで取得された同期化対象ＤＢの送付要求が端末２００に宛てて送信される。
端末２００の通信制御部２９９においてこの送付要求が受信されると、端末データベース２７０において受信した送付要求の内容に該当するＤＢをＤＢ管理部２６０に読み出させ、読み出されたＤＢをホスト１００へ宛てて通信制御部２９９に送信させる制御がＣＰＵ２１０によって行なわれる。
【００３９】
Ｓ１０３では端末２００から送られてくる上述のＤＢの受信が終了したか否かが判別され、この結果がＹｅｓとなるまでこのＳ１０３の処理が繰り返される。Ｓ１０４では受信されたＤＢがＲＡＭ１３０における端末ＤＢバッファ１３１である記憶領域に保存される。なお、以降の説明においては、端末２００から送られてきたこのＤＢを「端末側同期化対象ＤＢ」と称することとする。
【００４０】
Ｓ１０５では、Ｓ１０１の処理において指定された同期化対象ＤＢについての前回の同期化処理の履歴であるＤＢが前回履歴ＤＢ１８０として存在しないか否かが判別される。そして、この判別処理の結果がＹｅｓ、すなわち該当するものが前回履歴ＤＢ１８０として存在しないならば、現在指定されている同期化対象ＤＢについては現在実行中のものが初めて行なわれる同期化処理であるとみなされ、Ｓ１０６において初回の同期化処理が実行され、その後は処理がＳ１０８へと進む。一方、このＳ１０５の判別処理の結果がＮｏ、すなわち該当するものが前回履歴ＤＢ１８０として存在するならば、現在指定されている同期化対象ＤＢについては現在実行中のものが初めてではなく、２回目以降の同期化処理の実行であるとみなされ、Ｓ１０７において２回目以降の同期化処理が実行される。
【００４１】
このＳ１０６及びＳ１０７のどちらの処理によっても、端末ＤＢ２７０における同期化対象ＤＢに対する蓄積データの更新情報を端末２００へ宛てて通信制御部１９９に送信させる制御がＣＰＵ１１０によって行なわれる。そして、端末２００では通信制御部２９９によるこの更新情報の受信処理とＤＢ管理部２６０によるこの更新情報に基づく端末ＤＢ２７０の蓄積データの更新処理との制御処理がＣＰＵ２１０によって行なわれる。
【００４２】
なお、このＳ１０６及びＳ１０７の詳細については後述する。
Ｓ１０６若しくはＳ１０７の処理が行なわれた後に実行されるＳ１０８では、通信制御部１９９に指示が与えられ、端末側同期対象ＤＢの送付要求が端末２００に宛てて送信される。
【００４３】
端末２００の通信制御部２９９においてこの送付要求が受信されると、端末データベース２７０において先に受信した更新情報に基づく更新が行なわれた後のＤＢをＤＢ管理部２６０に読み出させ、読み出されたＤＢをホスト１００へと送信させる通信制御部２９９への制御がＣＰＵ２１０によって行なわれる。
【００４４】
Ｓ１０９では端末２００から送られてくる上述の更新済みＤＢの受信が終了したか否かが判別され、この結果がＹｅｓとなるまでこのＳ１０９の処理が繰り返される。
Ｓ１１０ではデータベース管理部１６０が制御され、受信されたＤＢが前回履歴ＤＢ１８０のひとつである端末用前回履歴ＤＢ１８２として保存する処理が行なわれ、この処理を終えた後にはこの同期化処理が終了する。
【００４５】
なお、このＳ１０９及びＳ１１０の処理を敢えて設け、前回履歴ＤＢ１８０としてホスト用前回履歴１８１とは別に端末用前回履歴ＤＢ１８２を保存するようにしているのは、以下の理由によるものである。
一般に携帯情報端末、その中でもとりわけ携帯電話機では小型軽量が重視されるため、据置型のコンピュータと比べて実装されるメモリ容量はわずかの量に制限されてしまっている。例えば、住所やメモ、インターネット上のＷｅｂサイトのＵＲＬ（Uniform Resource Locator）アドレスなどのデータ項目は文字数が比較的長くなることがあるが、携帯情報端末では据置型コンピュータよりも極めて少ない文字数しか保存できない場合がある。また、携帯情報端末が備えているアドレス帳機能の仕様上の登録可能件数は５００件までであっても、住所、メモやＵＲＬアドレスなどの文字列データは最初の１００件までしか登録できないなどといった制限がなされている場合もある。
【００４６】
このような、携帯情報端末に対するメモリ容量制限により、本実施形態の場合においては、ホスト１００からの更新情報を端末２００が受信しても、その更新情報の全ての内容を端末ＤＢ２７０に反映しきれない場合が生じ得る。このような場合が発生したときには、同期化処理を終了した直後であってもホスト１００の保有する同期化対象ＤＢと端末２００の保有する同期化対象ＤＢとが同一とはならなくなってしまう。
【００４７】
この問題を解消するため、前述したＳ１０９及びＳ１１０の処理を設け、ホスト１００が端末２００に更新情報を送出した後、改めて端末２００によって更新された更新済みのＤＢをホスト１００が受信してそのＤＢを端末用前回履歴ＤＢ１８２として保存するようにする。その結果、端末２００に対するメモリ容量制限のために更新されなかったデータは更新されないままの状態である履歴ＤＢが端末２００用として保存されるので、同期化処理が次に実行されたときに、前回の同期化処理以降に端末２００で新たに操作されたデータと、前回の同期化処理において端末２００が受け取った更新情報に基づく更新ができなかったデータとの両方に基づく適切な同期化の処理が行なえるようになるのである。
【００４８】
なお、携帯情報端末に対するメモリ容量制限がそれほど厳しいものではない等の理由により、同期化処理を終了した直後のホスト１００の保有する同期化対象ＤＢと端末２００の保有する同期化対象ＤＢとが同一となることが保証されるならば、このＳ１０９及びＳ１１０の処理を設けずに、前回履歴ＤＢ１８０としてホスト用前回履歴１８１のみを保存するようにし、端末２００における同期化対象ＤＢの履歴はこのホスト用履歴ＤＢ１８１を複写したもので代用して後述の処理を行なうようにすることも可能である。
【００４９】
以下、上述した同期化処理におけるＳ１０６及びＳ１０７の処理の詳細について説明する。
まず図３及び図４について説明する。同図は図２に示した同期化処理におけるＳ１０６の処理としてＣＰＵ１１０によって行なわれる初回の同期化処理の処理内容を示すフローチャートである。
【００５０】
まず、図３のＳ２０１において、前述した同期化処理におけるＳ１０１（図２）の処理において指定されていたキー項目が取得される。
以降のＳ２０２からＳ２１１にかけての処理は、ＣＰＵ１１０の管理の下でＤＢ管理部１６０のＤＢ比較部１６１によって行なわれる。
【００５１】
Ｓ２０２では、ホスト側同期化対象ＤＢ、すなわち現在処理中の同期化処理での処理対象であるホスト１００側のＤＢに蓄積されているレコードがレコードの格納順にひとつ参照され、そのレコードにおいて前述したキー項目で示されるフィールドに格納されているデータが抽出され、そしてそのデータをキーとしてＲＡＭ１３０の端末ＤＢバッファ１３１に記憶されている端末側同期化対象ＤＢが検索される。
【００５２】
Ｓ２０３では、前ステップでの検索の結果、抽出されたデータと同一のキーの格納されているレコードが端末側同期化対象ＤＢに存在するか否かが判別され、この判別の結果がＹｅｓ、すなわちこの同一のキーが格納されているレコードが存在したならばＳ２０５に処理が進む。一方、Ｓ２０３の判別結果がＮｏ、すなわちこの同一のキーが格納されているレコードが端末側同期化対象ＤＢに存在しなかったならば、このレコードは同期化のためには端末側同期化対象ＤＢに追加する必要のあるものであるとみなされ、Ｓ２０４において、ホスト側同期化対象ＤＢのレコードに「処理区分」なるフィールドが新たに設けられ、端末側同期化対象ＤＢに追加すべきレコードであることを示す値「２」がこのレコードの「処理区分」フィールドに格納される。この処理を終えた後にはＳ２０７に処理が進む。
【００５３】
Ｓ２０５では、Ｓ２０２の処理において参照したホスト側同期化対象ＤＢのレコードと、Ｓ２０３の処理においてそのレコードから抽出されたものと同一のキーが格納されていたと判別された端末側同期化対象ＤＢのレコードとの間で、対応関係が予め定義されている各フィールドのデータが全て一致しているか否かが判別される。そして、この判別結果がＹｅｓ、すなわち対応関係が定義されている各フィールドのデータが両レコード間で全て一致していたならば、Ｓ２０７に処理が進む。一方、Ｓ２０５の判別結果がＮｏならば、この両レコードを同期化させるためにはホスト側同期化対象ＤＢのレコードに一致させるように端末側同期化対象ＤＢに格納されていたレコードを変更する必要があるとみなされ、Ｓ２０６において、ホスト側同期化対象ＤＢのレコードに「処理区分」なるフィールドが新たに設けられ、端末側同期化対象ＤＢ側のレコードを変更すべきものであることを示す値「１」がこのレコードの「処理区分」フィールドに格納される。
【００５４】
なお、Ｓ２０５の判定結果がＹｅｓのときには、ホスト側同期化対象ＤＢに格納されていたこのレコードの「処理区分」フィールドには初期値である「０」が格納されていることとなる。
Ｓ２０７では、ホスト側同期化対象ＤＢの全てのレコードについてＳ２０２の処理である端末側同期化対象ＤＢに対する検索を終えたか否かが判別され、この判別結果がＹｅｓならばＳ２０８に処理が進む。一方、Ｓ２０７の判別処理がＮｏならばＳ２０２へ処理が戻り、未処理のレコードについてＳ２０２以降の処理が行なわれる。
【００５５】
図４に処理が進み、Ｓ２０８では、端末ＤＢバッファ１３１に記憶されている端末側同期化対象ＤＢに蓄積されているレコードがレコードの格納順にひとつ参照され、そのレコードにおいて前述したキー項目で示されるフィールドに格納されているデータが抽出され、そしてそのデータをキーとしてホスト側同期化対象ＤＢが検索される。
【００５６】
Ｓ２０９では、前ステップでの検索の結果、抽出されたデータと同一のキーの格納されているレコードがホスト側同期化対象ＤＢに存在しないか否かが判別される。そして、この判別結果がＹｅｓ、すなわちこの同一のキーが格納されているレコードがホスト側同期化対象ＤＢに全く存在しなかったならば、このレコードは同期化のためにはホスト側同期化対象ＤＢに追加する必要のあるものであるとみなされ、Ｓ２１０において、端末側同期化対象ＤＢに「処理区分」なるフィールドが新たに設けられ、ホスト側同期化対象ＤＢに追加すべきレコードであることを示す値「２」がこのレコードの「処理区分」フィールドに格納される。一方、Ｓ２０９の判別の結果がＹｅｓ、すなわちこの同一のキーが格納されているレコードが存在したならばＳ２１１に処理が進む。
【００５７】
Ｓ２１１では、端末側同期化対象ＤＢの全てのレコードについてＳ２０８の処理であるホスト側同期化対象ＤＢに対する検索を終えたか否かが判別され、この判別結果がＹｅｓならばＳ２１２に処理が進む。一方、Ｓ２１１の判別処理がＮｏならばＳ２０８へ処理が戻り、未処理のレコードについてＳ２０８以降の処理が行なわれる。
【００５８】
Ｓ２１２では、ホスト側同期化対象ＤＢから、前述したＳ２０４若しくはＳ２０６の処理によって「処理区分」フィールドに「１」又は「２」の値が格納されたレコードがＤＢ管理部１６０によって全て選択され、続くＳ２１３において通信制御部１９９に指示が与えられ、その選択されたレコードが、各レコードに与えられた「処理区分」の値を伴って端末２００へ宛てて送信される。
【００５９】
端末２００の通信制御部２９９においてこれらのレコードが受信されると、ＣＰＵ２１０によってＤＢ管理部２６０が制御され、その「処理区分」の値に応じたレコードの追加若しくは変更の処理が端末ＤＢ２７０における現在の同期化対象のＤＢに対して行なわれる。
【００６０】
Ｓ２１４ではデータベース管理部１６０が制御され、端末ＤＢバッファ１３１に記憶されている端末側同期化対象ＤＢから、前述したＳ２１０の処理によって「処理区分」フィールドに「２」の値が格納されたレコードが全て選択され、続いてＤＢ管理部１６０が制御されてその「処理区分」の値に応じたレコードの追加の処理がホストＤＢ１７０における現在の同期化対象のＤＢに対して行なわれる。
【００６１】
Ｓ２１５ではデータベース管理部１６０が制御され、ホスト側同期化対象ＤＢを前回履歴ＤＢ１８０のひとつであるホスト用前回履歴ＤＢ１８１として保存させる処理が行なわれ、この処理を終えた後には図３及び図４に示した処理が終了し、以降は図２のＳ１０８へと処理が進む。
【００６２】
なお、上述した処理においては、ホスト側同期化対象ＤＢと端末側同期化対象ＤＢとでキー項目は一致するものの対応関係が定義されている他のフィールドではデータの異なるものがあるレコードの組について、端末側同期化対象ＤＢに格納されているレコードのデータを変更して両者を同期化させるようにしているが、これは初回の同期化処理においてはホスト１００側のＤＢのレコードのデータがより最新の情報であるとみなして優先するようにしたものである。もちろん、両者の優先関係を逆にして端末２００側のＤＢのレコードのデータがより最新の情報であるとみなし、ホスト側同期化対象ＤＢに格納されているレコードのデータを変更して両者を同期化させるようにしてもよい。
【００６３】
次に図５及び図６について説明する。これらの図は図２に示した同期化処理におけるＳ１０７の処理としてＣＰＵ１１０によって行なわれる２回目以降の同期化処理の処理内容を示すフローチャートである。
なお、図５及び図６の説明においては、図７、図８、図９、図１０の各図を用いて各ＤＢに対して施されるデータ操作の様子を具体的に説明する。
【００６４】
図５及び図６に示す処理の実行が開始される前に、図２のＳ１０４までの処理によって、端末２００から送られてきた同期化処理の対象であるＤＢ、すなわち端末側同期化対象ＤＢがＲＡＭ１３０における端末ＤＢバッファ１３１に既に保存されている。この端末側同期化対象ＤＢの例として、端末２００が保有している同期化処理前のアドレス帳ＤＢ２７１を図７に（Ａ１）として示している。
【００６５】
また、同期化処理によってこの端末アドレス帳ＤＢ（Ａ１）と同期化するホスト側同期化対象ＤＢの例として、ホスト１００が保有している同期化処理前のアドレス帳ＤＢ１７１を図８に（Ｂ１）として示している。
この（Ａ１）と（Ｂ１）との間では、（Ａ１）における「名前」、「電話番号１」、「電話番号２」、「電子メールアドレス」の各フィールドがそれぞれ（Ｂ１）における「名前」、「自宅電話」、「携帯電話」、「電子メール」の各フィールドと対応していることが予め定義されており、レコードの抽出のためのキー項目として「名前」が指定されているものとする。
【００６６】
また、前回に実行されたこれらのアドレス帳ＤＢに対する同期化処理により、前回履歴ＤＢ１８０として、図７の（Ａ２）に示すホスト用前回履歴ＤＢ１８１と図８の（Ｂ２）に示す端末用前回履歴ＤＢ１８２とがホスト１００に保存されているものとする。
【００６７】
図５において、まず、Ｓ３０１では、前述した同期化処理におけるＳ１０１（図２）の処理において指定されていたキー項目、及び重複処理時に優先するＤＢについてのユーザによる指定を取得する。重複処理時に優先するＤＢについては後述する同期化手順テーブルの説明の際に詳述する。
【００６８】
以降のＳ３０２からＳ３１３にかけての処理のうち、Ｓ３０４、Ｓ３０６、Ｓ３１０、及びＳ３１２の処理についてはＣＰＵ１１０の管理の下でＤＢ管理部１６０のＤＢ操作部１６２によって行なわれ、その他の処理ついてはＣＰＵ１１０の管理の下でＤＢ管理部１６０のＤＢ比較部１６１によって行なわれる。
【００６９】
まず、Ｓ３０２からＳ３０７までの処理を説明する。
Ｓ３０２では、端末側同期化対象ＤＢに蓄積されているレコードがレコードの格納順にひとつ参照され、そのレコードにおいて前述したキー項目で示されるフィールドに格納されているデータが抽出され、そしてそのデータをキーとして端末用前回履歴ＤＢ１８２が検索される。この検索によって同一のキー項目を有するレコードが端末用前回履歴ＤＢ１８２に存在したときには、続くＳ３０３において、両レコードに格納されているデータの比較が対応するフィールド毎に行なわれる。そして、Ｓ３０４において、端末側同期化対象ＤＢのレコードに「操作区分」なるフィールドが新たに設けられると共に、Ｓ３０３での比較の結果に基づいた操作区分の判定が行なわれ、その判定結果を示す値が端末側同期化対象ＤＢのそのレコードの「操作区分」フィールドに登録される。
【００７０】
Ｓ３０５では、端末側同期化対象ＤＢの全てのレコードの「操作区分」フィールドに値が登録されたか否かが判別され、この判別結果がＹｅｓならばＳ３０６に処理が進む。一方、Ｓ３０５の判別処理がＮｏならばＳ３０２へ処理が戻り、未処理のレコードについてＳ３０２以降の処理が行なわれる。
【００７１】
Ｓ３０６では、端末用前回履歴ＤＢ１８２が参照されて端末側同期化対象ＤＢには存在しないキー項目のデータを有しているレコードが抽出され、そのレコードが端末側同期化対象ＤＢに追加され、更にそのレコードに「操作区分」フィールドが新たに設けられてそのフィールドにレコードの削除を示す値「３」が登録される。
【００７２】
Ｓ３０７では、端末側同期化対象ＤＢの各レコードに「処理区分」なるフィールドが新たに設けられ、これら全てのレコードの「処理区分」フィールドに初期値として値「０」が格納される。
以上のＳ３０２からＳ３０７にかけての処理によって行なわれるデータ操作を、図７のデータ例を用いて具体的に説明する。
【００７３】
まず、Ｓ３０２の処理によって、図７に（Ａ１）として示すアドレス帳ＤＢ（以降単に「（Ａ１）」と称する）の第一レコードが参照され、この第一レコードからキー項目である「名前」フィールドのデータ「阿部  太郎」が抽出される。そして、図７に（Ａ２）として示す端末用前回履歴ＤＢ（以降単に「（Ａ２）」と称する）がこのデータ「阿部  太郎」をキーとして検索され、その結果このデータが「名前」フィールドに格納されている（Ａ２）の第一レコードが発見される。
【００７４】
ここで、Ｓ３０３の処理によって（Ａ１）の第一レコードと（Ａ２）の第一レコードとにおける各フィールドに格納されているデータの比較が行なわれ、この結果、両レコードは比較対象である全てのレコードが一致していることが判明する。この場合は、Ｓ３０４の処理により、（Ａ１）の第一レコードに新たに設けられる「操作区分」フィールドへ、データの変更がなかったことを示す値「０」が登録される。
【００７５】
続くＳ３０５の判別処理では、「操作区分」フィールドに値の登録されていないレコードがまだ（Ａ１）に残されているので判別結果はＮｏとなり、Ｓ３０２へと処理が戻る。
次に実行されるＳ３０２の処理では、（Ａ１）の第二レコードが参照され、ここからキー項目のデータ「加藤  一郎」が抽出される。そして、この抽出されたデータをキーとして（Ａ２）が検索され、（Ａ２）の第二レコードが発見される。
【００７６】
ここで、Ｓ３０３の処理によって（Ａ１）の第二レコードと（Ａ２）の第二レコードとのデータの比較が行なわれる。このとき、（Ａ１）の第二レコードの「電話番号１」フィールドの値は「0344445555」であるのに対し、（Ａ２）の第二レコードの「電話番号１」フィールドの値は「0344446666」であり、両者は一致していない。この場合、「電話番号１」フィールドは前回実行された同期化処理以降に更新されているとみなされ、Ｓ３０４の処理により、（Ａ１）の第二レコードの「操作区分」フィールドへ、データの変更があったことを示す値「１」が登録される。
【００７７】
続くＳ３０５の判別処理の結果はＮｏとなり、再びＳ３０２の処理が実行される。ここでは（Ａ１）の第三レコードが参照され、ここからキー項目のデータ「斎藤  恵子」が抽出される。そして、この抽出されたデータをキーとして（Ａ２）が検索され、（Ａ２）の第三レコードが発見される。
【００７８】
ここで、Ｓ３０３の処理によって（Ａ１）の第三レコードと（Ａ２）の第三レコードとのデータの比較が行なわれ、「電話番号２」フィールドの値が「09011118888 」と「09011112222 」とであることによる不一致の判定が下される。その結果、Ｓ３０４の処理により（Ａ１）の第三レコードの「操作区分」フィールドへ値「１」が登録される。
【００７９】
続くＳ３０５の判別処理の結果はＮｏとなり、再びＳ３０２の処理が実行される。
Ｓ３０２の処理では（Ａ１）の第四レコードが参照され、ここからキー項目のデータ「山田  進」が抽出される。そして、この抽出されたデータをキーとして（Ａ２）が検索されるが、このデータが「名前」フィールドに格納されているレコードは（Ａ２）から発見されない。そのためＳ３０３の項目データの比較は行なわれずに処理はＳ３０４へと進み、（Ａ１）の第四レコードの「操作区分」フィールドへ、データの追加があったことを示す値「２」が登録される。
【００８０】
ここまでの処理の実行によって（Ａ１）の全てのレコードの「操作区分」フィールドに値が登録されたので、Ｓ３０５の判別処理の結果はＹｅｓとなり、Ｓ３０６に処理が進む。
このＳ３０６の処理によって（Ａ２）が参照され、（Ａ１）には存在しないキー項目のデータ「田口  信二」を有している（Ａ２）の第四レコードが抽出され、このレコードが（Ａ１）に第五レコードとして追加される。そして、この第五レコードの「操作区分」フィールドにはレコードの削除を示す値「３」が登録される。
【００８１】
Ｓ３０７の処理では、（Ａ１）の各レコードに「処理区分」なるフィールドが新たに設けられ、これら全てのレコードの「処理区分」フィールドに初期値として値「０」が格納される。
以上までのＳ３０２からＳ３０７までの処理が施された後の端末ＤＢバッファ１３１内のアドレス帳ＤＢの内容を示したものが図８に（Ａ３）として示されているものである。
【００８２】
次に、図５のＳ３０８からＳ３１３までの処理を説明する。
Ｓ３０８では、ホスト側同期化対象ＤＢに蓄積されているレコードがレコードの格納順にひとつ参照され、そのレコードにおいて前述したキー項目で示されるフィールドに格納されているデータが抽出され、そしてそのデータをキーとしてホスト用前回履歴ＤＢ１８１が検索される。この検索によって同一のキー項目を有するレコードがホスト用前回履歴ＤＢ１８１に存在したときには、続くＳ３０９において、両レコードに格納されているデータの比較が対応するフィールド毎に行なわれる。そして、Ｓ３１０において、ホスト側同期化対象ＤＢのレコードに「操作区分」フィールドが新たに設けられると共に、Ｓ３０９での比較の結果に基づいた操作区分の判定が行なわれ、その判定結果を示す値がホスト側同期化対象ＤＢのそのレコードの「操作区分」フィールドに登録される。
【００８３】
Ｓ３１１では、ホスト側同期化対象ＤＢの全てのレコードの「操作区分」フィールドに値が登録されたか否かが判別され、この判別結果がＹｅｓならばＳ３１２に処理が進む。一方、Ｓ３１１の判別処理がＮｏならばＳ３０８へ処理が戻り、未処理のレコードについてＳ３０８以降の処理が行なわれる。
【００８４】
Ｓ３１２では、ホスト用前回履歴ＤＢ１８１が参照されてホスト側同期化対象ＤＢには存在しないキー項目のデータを有しているレコードが抽出され、そのレコードがホスト側同期化対象ＤＢに追加され、更にそのレコードに「操作区分」フィールドが新たに設けられてそのフィールドにレコードの削除を示す値「３」が登録される。
【００８５】
Ｓ３１３では、端末側同期化対象ＤＢの各レコードに「処理区分」なるフィールドが新たに設けられ、これら全てのレコードの「処理区分」フィールドに初期値として値「０」が格納される。
以上のＳ３０８からＳ３１３にかけての処理によって行なわれるデータ操作を、図９のデータ例を用いて具体的に説明する。
【００８６】
まず、Ｓ３０８の処理によって、図９に（Ｂ１）として示すアドレス帳ＤＢ（以降単に「（Ｂ１）」と称する）の第一レコードが参照され、この第一レコードからキー項目である「名前」フィールドのデータ「阿部  太郎」が抽出される。そして、図９に（Ｂ２）として示すホスト用前回履歴ＤＢ（以降単に「（Ｂ２）」と称する）がこのデータ「阿部  太郎」をキーとして検索され、その結果このデータが「名前」フィールドに格納されている（Ｂ２）の第一レコードが発見される。
【００８７】
ここで、Ｓ３０９の処理によって（Ｂ１）の第一レコードと（Ｂ２）の第一レコードとにおける各フィールドに格納されているデータの比較が行なわれる。このとき、（Ｂ１）の第一レコードの「携帯電話」フィールドの値は「09022229999 」であるのに対し、（Ｂ２）の第一レコードの「携帯電話」フィールドの値は「09022223333 」であり、両者は一致していない。この場合、「携帯電話番号」フィールドは前回実行された同期化処理以降に更新されているとみなされ、Ｓ３１０の処理により、（Ｂ１）の第一レコードに新たに設けられる「操作区分」フィールドへ、データの変更があったことを示す値「１」が登録される。
【００８８】
続くＳ３１１の判別処理では、「操作区分」フィールドに値の登録されていないレコードがまだ（Ｂ１）に残されているので判別結果はＮｏとなり、Ｓ３０８へと処理が戻る。
次に実行されるＳ３０８の処理では、（Ｂ１）の第二レコードが参照され、ここからキー項目のデータ「加藤  一郎」が抽出される。そして、この抽出されたデータをキーとして（Ｂ２）が検索され、（Ｂ２）の第二レコードが発見される。
【００８９】
ここで、Ｓ３０９の処理によって（Ｂ１）の第二レコードと（Ｂ２）の第二レコードとにおける各フィールドに格納されているデータの比較が行なわれ、この結果、両レコードは比較対象である全てのレコードが一致していることが判明する。この場合は、Ｓ３１０の処理により、（Ｂ１）の第二レコードの「操作区分」フィールドへ、データの変更がなかったことを示す値「０」が登録される。
【００９０】
続くＳ３１１の判別処理の結果はＮｏとなり、再びＳ３０８の処理が実行される。ここでは（Ｂ１）の第三レコードが参照され、ここからキー項目のデータ「斎藤  恵子」が抽出される。そして、この抽出されたデータをキーとして（Ｂ２）が検索され、（Ｂ２）の第三レコードが発見される。
【００９１】
ここで、Ｓ３０９の処理によって（Ｂ１）の第三レコードと（Ｂ２）の第三レコードとのデータの比較が行なわれ、「自宅電話」フィールドの値が「0322225555」と「0322223333」とであることによる不一致の判定が下される。その結果、Ｓ３１０の処理により（Ｂ１）の第三レコードの「操作区分」フィールドへ値「１」が登録される。
【００９２】
続くＳ３１１の判別処理の結果はＮｏとなり、再びＳ３０８の処理が実行される。ここでは、（Ｂ１）の第四レコードが参照され、ここからキー項目のデータ「田口  信二」が抽出される。そして、この抽出されたデータをキーとして（Ｂ２）が検索され、（Ｂ２）の第四レコードが発見される。
【００９３】
ここで、Ｓ３０９の処理によって（Ｂ１）の第四レコードと（Ｂ２）の第四レコードとにおける各フィールドに格納されているデータの比較が行なわれ、この結果、両レコードは比較対象である全てのレコードが一致していることが判明する。この場合は、Ｓ３１０の処理により、（Ｂ１）の第四レコードの「操作区分」フィールドへ値「０」が登録される。
【００９４】
続くＳ３１１の判別処理の結果はＮｏとなり、再びＳ３０８の処理が実行される。
このＳ３０８の処理では（Ｂ１）の第五レコードが参照され、ここからキー項目のデータ「中島  洋子」が抽出される。そして、この抽出されたデータをキーとして（Ｂ２）が検索されるが、このデータが「名前」フィールドに格納されているレコードは（Ｂ２）から発見されない。そのためＳ３０９の項目データの比較は行なわれずに処理はＳ３１０へと進み、（Ｂ１）の第五レコードの「操作区分」フィールドへ、データの追加があったことを示す値「２」が登録される。
【００９５】
ここまでの処理の実行によって（Ｂ１）の全てのレコードの「操作区分」フィールドに値が登録されたので、Ｓ３１１の判別処理の結果はＹｅｓとなり、Ｓ３１２に処理が進む。
このＳ３１２の処理によって（Ｂ２）が参照され、（Ｂ１）には存在しないキー項目のデータを有しているレコードの抽出が行なわれるが、このようなレコードは（Ｂ２）には存在しないので、（Ｂ１）へのレコードの追加は行なわれない。
【００９６】
その後、Ｓ３１３の処理により、（Ｂ１）の各レコードに「処理区分」なるフィールドが新たに設けられ、これら全てのレコードの「処理区分」フィールドに初期値として値「０」が格納される。
以上までのＳ３０８からＳ３１３までの処理が施された後のホスト１００の保有するアドレス帳ＤＢ１７１の内容を示したものが図１０に（Ｂ３）として示されているものである。
【００９７】
次に、図５のＳ３１４からＳ３１８にかけての処理を説明する。
Ｓ３１４では、Ｓ３０２からＳ３０７にかけての処理によるデータ操作の行なわれた端末側同期化対象ＤＢと、Ｓ３０８からＳ３１３にかけての処理によるデータ操作の行なわれたホスト側同期化対象ＤＢとが有する各レコードの「操作区分」フィールドの値の比較が同期化手順テーブルに従って行なわれる。
【００９８】
Ｓ３１５では、前ステップで行なわれた比較結果に基づいて、端末側同期化対象ＤＢとホスト側同期化対象ＤＢとが有する各レコードに関して行なうべきデータ操作の内容が、「データ変更」、「レコード追加」、又は「レコード削除」、若しくは「データ変更なし」のうちのいずれであるかが判定される。
【００９９】
Ｓ３１６では前ステップでの判定結果が「データ変更」又は「レコード追加」であるレコードが端末側同期化対象ＤＢとホスト側同期化対象ＤＢから選択され、それらのレコードについてのみＳ３１７においてその判定結果に応じた「データ変更」又は「レコード追加」のデータ操作が端末側同期化対象ＤＢ及びホスト側同期化対象ＤＢに対して施される。
【０１００】
Ｓ３１８では、前述したＳ３１４の比較結果に基づき、同期化のために端末側同期化対象ＤＢとホスト側同期化対象ＤＢに対して行なうべき処理の内容が判定され、その判定結果を示す値が、端末側同期化対象ＤＢ及びホスト側同期化対象ＤＢに改めて設けられる「処理区分」フィールドに登録される。
【０１０１】
以上のＳ３１４からＳ３１８にかけての処理によって行なわれるデータ操作を、図８に（Ａ３）として示されている、Ｓ３０２からＳ３０７にかけての処理によるデータ操作の行なわれた端末ＤＢバッファ１３１内のアドレス帳ＤＢのデータ例（以降単に「（Ａ３）」と称する）と、図１０に（Ｂ３）として示されている、Ｓ３０８からＳ３１３にかけての処理によるデータ操作の行なわれたアドレス帳ＤＢ１７１のデータ例（以降単に「（Ｂ３）」と称する）とを用いて具体的に説明する。
【０１０２】
まず、Ｓ３１４の処理により、（Ａ３）の第一レコードと、このレコードにおけるキー項目である「名前」フィールドのデータ「阿部  太郎」を同様に有している（Ｂ３）の第一レコードとのそれぞれの「操作区分」フィールドに登録されている値の比較が同期化手順テーブルに従って行なわれ、続くＳ３１５の処理によって各ＤＢについて行なうべきデータ操作の内容が判定される。
【０１０３】
同期化手順テーブルの例を図１１に示す。このテーブルは予め作成されておりホスト１００の外部記憶媒体１９１に記憶されている。
今、（Ａ３）の第一レコードの「操作区分」フィールドには「０」、すなわち「変更なし」を示す値が登録されており、一方、（Ｂ３）の第一レコードの「操作区分」フィールドには「１」、すなわち「変更」を示す値が登録されている。この場合には、前回の同期化処理から現在実行中の同期化処理が開始されるまでの期間に（Ａ３）におけるこの第一レコードの内容に変更が加えられたと推定することができる。従って、この場合に両ＤＢを同期化するためには（Ａ３）の第一レコードのデータ内容を変更して（Ｂ３）の第一レコードのデータ内容と一致させるデータ操作を行なう必要がある。
【０１０４】
同期化手順テーブルは２つのＤＢの対応するレコードに各々登録されている「操作区分」フィールドの値と、これらの値が示すデータ操作の内容のうちこれらのＤＢに対して優先して行なうべきデータ操作の内容とを対応付けたものである。例えば、上述した場合、すなわち（Ａ３）の第一レコードの「操作区分」が「変更なし」を示しており、（Ｂ３）の第一レコードの「操作区分」が「変更」を示している場合には、図１１からは「端末ＤＢを変更」なるデータ操作の内容が取得される。これはすなわち、（Ｂ３）の第一レコードの「操作区分」の「変更」を優先し、端末ＤＢ２７０の内容に対応している（Ａ３）の第一レコードのデータ内容を変更して（Ｂ３）の第一レコードのデータ内容と一致させるデータ操作を行なうことを意味している。この同期化手順テーブルを予め定義して用意しておくことで、これらのＤＢの各々に対して行なうべきデータ操作の内容を両レコードの「操作区分」に基づいて簡単に素早く判定することができ、ホスト１００に対する処理の負担が軽減される。
【０１０５】
Ｓ３１５の処理によって、このレコードに関しては「変更」のデータ操作を行なうべきであると判定されたのでＳ３１６の判別処理の結果はＹｅｓとなり、続くＳ３１７の処理によって、（Ａ３）の第一レコードのデータ内容を変更して（Ｂ３）の第一レコードのデータ内容と一致させるデータ操作が行なわれる。
【０１０６】
その後、Ｓ３１８の処理により、（Ａ３）の第一レコードにおける「処理区分」フィールドには同期化のためにレコードの有するデータの変更を要することを示す値「１」が登録され、（Ｂ３）の第一レコードにおける「処理区分」フィールドには同期化のためにはレコードに変更を要しないことを示す値「０」が登録される。
【０１０７】
次に、（Ａ３）の第二レコードについて処理が行なわれる。
まず、Ｓ３１４の処理により、このレコードと、このレコードにおけるキー項目のデータ「加藤  一郎」を同様に有している（Ｂ３）の第二レコードとのそれぞれの「操作区分」に登録されている値の比較が同期化手順テーブルに従って行なわれ、続くＳ３１５の処理によって各ＤＢについて行なうべきデータ操作の内容が判定される。
【０１０８】
ここで、（Ａ３）の第二レコードの「操作区分」は「変更」を示しており、（Ｂ３）の第二レコードの「操作区分」は「変更なし」を示している。このとき、図１１からは「ホストＤＢを変更」なるデータ操作の内容が取得される。これは、これはすなわち、（Ａ３）の第二レコードの「操作区分」の「変更」を優先し、（Ｂ３）の第二レコードのデータ内容を変更して（Ａ３）の第二レコードのデータ内容と一致させるデータ操作を行なうことを意味している。
【０１０９】
Ｓ３１５の処理によって、このレコードに関して「変更」のデータ操作を行なうべきであると判定されたのでＳ３１６の判別処理の結果はＹｅｓとなり、続くＳ３１７の処理によって、（Ｂ３）の第二レコードのデータ内容を変更して（Ａ３）の第二レコードのデータ内容と一致させるデータ操作が行なわれる。
【０１１０】
その後、Ｓ３１８の処理により、（Ａ３）の第二レコードにおける「処理区分」には値「０」が登録され、（Ｂ３）の第二レコードにおける「処理区分」には値「１」が登録される。
次に、（Ａ３）の第三レコードについて処理が行なわれる。
【０１１１】
まず、Ｓ３１４の処理により、このレコードと、このレコードにおけるキー項目のデータ「斎藤  恵子」を同様に有している（Ｂ３）の第三レコードとのそれぞれの「操作区分」に登録されている値の比較が同期化手順テーブルに従って行なわれ、続くＳ３１５の処理によって各ＤＢについて行なうべきデータ操作の内容が判定される。
【０１１２】
ここで、（Ａ３）の第三レコードの「操作区分」は「変更」を示しており、（Ｂ３）の第三レコードの「操作区分」も「変更」を示している。このとき、図１１からは「重複処理」なるデータ操作の内容が取得される。これは、両レコードの内容がどちらも前回の同期化処理から現在実行中の同期化処理が開始されるまでの期間に変更されており、同期化のためにどちらのデータを優先して採用すべきか単純に推定できない場合であることを示している。
【０１１３】
本実施形態においては、この場合には、前述したＳ３０１の処理において取得されていた、重複処理時に優先するＤＢについてのユーザによる指定に従い、両ＤＢのうちどちらの有しているレコードのデータ内容を同期化のために存続させるかをこの指定内容に沿って決定するようにしている。なお、この他に、例えば各レコードに対するデータ変更が行なわれた日時を示す情報を各ＤＢが有していれば、この日時情報に基づき、後にデータ変更が行なわれたレコードを優先して存続させるように処理してもよい。
【０１１４】
なお、ここでは、重複処理時に優先するＤＢについてのユーザによる指定が端末ＤＢ２７０であったものとして説明を続ける。
ユーザの指定に従うと、重複処理時には端末ＤＢ２７０の内容に対応している（Ａ３）を優先することとなる。よって、この場合には、（Ｂ３）の第三レコードのデータ内容を変更して（Ａ３）の第三レコードのデータ内容と一致させるデータ操作を行なうこととなる。
【０１１５】
以上のように、このレコードに関しては「変更」のデータ操作を行なうべきであると判定されるのでＳ３１６の判別処理の結果はＹｅｓとなり、続くＳ３１７の処理によって、（Ｂ３）の第三レコードのデータ内容を変更して（Ａ３）の第三レコードのデータ内容と一致させるデータ操作が行なわれる。
【０１１６】
その後、Ｓ３１８の処理により、（Ａ３）の第三レコードにおける「処理区分」には値「０」が登録され、（Ｂ３）の第三レコードにおける「処理区分」には値「１」が登録される。
次に、（Ａ３）の第四レコードについて処理が行なわれる。
【０１１７】
まず、Ｓ３１４の処理により、このレコードと、このレコードにおけるキー項目のデータ「山田  進」を同様に有している（Ｂ３）のレコードの検索が行なわれるが、（Ｂ３）にはそのようなレコードが存在しない。この場合には、同期化手順テーブルに従うまでもなく、（Ａ３）の第四レコードは前回の同期化処理から現在実行中の同期化処理が開始されるまでの期間に新たに追加されたものであり、ＤＢの同期化のためには（Ｂ３）にこのレコードを追加する必要があるとＳ３１５の処理によって判定される。
【０１１８】
このレコードに関しては「追加」のデータ操作を行なうべきであると判定されたのでＳ３１６の判別処理の結果はＹｅｓとなり、続くＳ３１７の処理によって、（Ａ３）の第四レコードを（Ｂ３）に第六レコードとして追加するデータ操作が行なわれる。
【０１１９】
その後、Ｓ３１８の処理により、（Ａ３）の第四レコードにおける「処理区分」には値「０」が登録され、（Ｂ３）の第六レコードにおける「処理区分」には、同期化のためにはこのレコードの追加が必要であることを示す値「２」が登録される。
【０１２０】
次に、（Ａ３）の第五レコードについて処理が行なわれる。
まず、Ｓ３１４の処理により、このレコードと、このレコードにおけるキー項目のデータ「田口  信二」を同様に有している（Ｂ３）の第四レコードとのそれぞれの「操作区分」に登録されている値の比較が同期化手順テーブルに従って行なわれ、続くＳ３１５の処理によって各ＤＢについて行なうべきデータ操作の内容が判定される。
【０１２１】
ここで、（Ａ３）の第五レコードの「操作区分」は「削除」を示しており、（Ｂ３）の第四レコードの「操作区分」は「変更なし」を示している。このとき、図１１からは「ホストＤＢを削除」なるデータ操作の内容が取得される。これは、この（Ａ３）の第五レコードは前回の同期化処理から現在実行中の同期化処理が開始されるまでの期間に削除されており、ＤＢの同期化のためには、（Ａ３）の第五レコードの「操作区分」の「削除」を優先し、（Ｂ３）の第四レコードを削除するデータ操作を行なうことを意味している。
【０１２２】
このレコードに関して「削除」のデータ操作を行なうべきであると判定されたのでＳ３１６の判別処理の結果はＮｏとなり、続くＳ３１８の処理により、（Ａ３）の第五レコードにおける「処理区分」には値「０」が登録され、（Ｂ３）の第四レコードにおける「処理区分」には、同期化のためにはこのレコードの削除が必要であることを示す値「３」が登録される。
【０１２３】
以上までで（Ａ３）の有するレコードについてのＳ３１４からＳ３１８の処理が完了し、次に、（Ｂ３）の有するレコードのうち「処理区分」には値が登録されていない第五レコードについて処理が行なわれる。
まず、Ｓ３１４の処理により、このレコードと、このレコードにおけるキー項目のデータ「中島  洋子」を同様に有している（Ａ３）のレコードの検索が行なわれるが、（Ａ３）にはそのようなレコードが存在しない。この場合には、ＤＢの同期化のためには（Ａ３）にこのレコードを追加する必要があるとＳ３１５の処理によって判定される。
【０１２４】
このレコードに関しては「追加」のデータ操作を行なうべきであると判定されたのでＳ３１６の判別処理の結果はＹｅｓとなり、続くＳ３１７の処理によって、（Ｂ３）の第五レコードを（Ａ３）に第六レコードとして追加するデータ操作が行なわれる。
【０１２５】
その後、Ｓ３１８の処理により、（Ｂ３）の第五レコードにおける「処理区分」には値「０」が登録され、（Ａ３）の第六レコードにおける「処理区分」には値「２」が登録される。
以上までのＳ３１４からＳ３１８までの処理が施された後の端末ＤＢバッファ１３１内のアドレス帳ＤＢの内容を示したものが図８に（Ａ４）として示されているものであり、またこのときにホスト１００の保有するアドレス帳ＤＢ１７１の内容を示したものが図１０に（Ｂ４）として示されているものである。
【０１２６】
なお、図１１に示す同期手順テーブルにおいて、両ＤＢの対応するレコードの「操作区分」が共に「削除」を示していたときには、「無視」、すなわち同期化のために何らデータ操作を行なわなくてよいことが示されている。端末２００が保有している端末側同期化対象ＤＢについては該当するレコードが既に削除されてしまっているので、Ｓ３１８の処理において当該レコードの「処理区分」には「変更なし」を示す値「０」を登録すればよいが、ホスト側同期化対象ＤＢについては、前述したＳ３１２の処理によって一旦削除していたレコードを追加しているので、Ｓ３１８の処理においては当該レコードの「処理区分」には「削除」を示す値「３」を登録するようにする。
【０１２７】
以下、図５のＳ３１９からＳ３２１にかけての処理を説明する。
Ｓ３１９では端末ＤＢバッファ１３１に記憶されている端末側同期化対象ＤＢにおいて、「処理区分」フィールドに登録されている値が「１」、「２」、「３」のいずれか、すなわち「変更」、「追加」、「削除」のデータ操作が示されているレコードが読み出され、更に通信制御部１９９に指示が与えられて、その読み出されたレコードが、各レコードに与えられた「処理区分」の値を伴って端末２００に宛てて送信される。
【０１２８】
端末２００の通信制御部２９９においてこれらのレコードが受信されると、ＣＰＵ２１０によってＤＢ管理部２６０が制御され、その「処理区分」の値に応じたレコードの追加、変更、若しくは削除の処理が端末ＤＢ２７０における現在の同期化対象のＤＢに対して行なわれる。
【０１２９】
このＳ３１９の処理によって通信制御部１９９により送信されるデータの構造を図１２に示す。同図に示すように、この送信データには、端末側同期化対象ＤＢの各レコードが有する「名前」、「電話番号１」、「電話番号２」、「電子メールアドレス」、「処理区分」の各フィールドのデータの内容が含まれる。なお、前述した図４のＳ２１３のデータ送信処理においても、通信制御部１９９はこの図１２に示すデータ構造を有する送信データを送信する。
【０１３０】
Ｓ３２０では、ホスト側同期化対象ＤＢの各レコードのうち、「処理区分」フィールドに登録されている値が「３」、すなわち「削除」のデータ操作が示されているレコードが削除される。
Ｓ３２１では、データベース管理部１６０が制御されてホスト側同期化対象ＤＢをホスト用前回履歴ＤＢ１８１として保存させる処理が行なわれ、この処理を終えた後には図５及び図６に示した処理が終了し、以降は図２のＳ１０８へと処理が進む。
【０１３１】
以上までに説明した同期化処理がホスト１００のＣＰＵ１１０で行われることによって、ホスト１００の保有するホストＤＢ１７０と端末２００の保有する端末ＤＢ２７０とのデータ内容の同期化が実現される。
なお、以上までに説明した図１に示すシステムにおけるホスト１００によって行なわれるＤＢの同期化処理を、標準的な構成を有するコンピュータ、すなわち、制御プログラムを実行することで各構成要素を制御するＣＰＵと、ＲＯＭやＲＡＭ及び磁気記憶装置などからなり、ＣＰＵに各構成要素を制御させる制御プログラムの記憶やＣＰＵが制御プログラムを実行する際のワークエリアあるいは各種データの記憶領域として使用される記憶部と、ユーザによる操作に対応する各種のデータが取得される入力部と、ディスプレイなどに各種のデータを提示してユーザに通知する出力部と、ネットワークに接続するためのインタフェース機能を提供するＩ／Ｆ部とを備えるコンピュータを用いて構成することもできる。そのためには、前述した同期化処理をコンピュータに行なわせるための制御プログラムを作成し、その制御プログラムをそのコンピュータに読み込ませて実行させることで実現できる。
【０１３２】
また、このような制御プログラムをコンピュータで読み取り可能な記録媒体に記録させ、そのプログラムを記録媒体からコンピュータに読み出させて実行させることによって本発明をコンピュータで実施することも可能である。
記録させた制御プログラムをコンピュータで読み取ることの可能な記録媒体の例を図１３に示す。同図に示すように、記録媒体としては、例えば、コンピュータ３０１に内蔵若しくは外付けの付属装置として備えられるＲＯＭやハードディスク装置などの記憶装置３０２、あるいはフレキシブルディスク、ＭＯ（光磁気ディスク）、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなどといった携帯可能記録媒体３０３等が利用できる。また、記録媒体はネットワーク３０４を介してコンピュータ３０１と接続される、プログラムサーバ３０５として機能するコンピュータが備えている記憶装置３０６であってもよい。この場合には、制御プログラムを表現するデータ信号で搬送波を変調して得られる伝送信号を、プログラムサーバ３０５から伝送媒体であるネットワーク３０４を通じて伝送するようにし、コンピュータ３０１では受信した伝送信号を復調して制御プログラムを再生することで当該制御プログラムを実行できるようになる。
【０１３３】
その他、本発明は、上述した実施形態に限定されることなく、種々の改良・変更が可能である。
【０１３４】
【発明の効果】
本発明によれば、ホスト装置がデータベースの同期化処理を行ない、この同期化処理においてホスト装置が端末装置に更新処理情報を送出して、この更新処理情報を受けて端末装置によって実際に更新された第一のデータベースを端末用前回履歴データベースとして受信して記憶しているので、同期化処理が次に実行されたときに、前回の同期化処理において、更新処理情報により端末装置で実際に更新されなかったレコードが有ったとしてもこのレコードと、前回の同期化処理以降に端末装置で操作されたレコードとの両方に基づく適切な同期化の処理が行なえる。
【図面の簡単な説明】
【図１】本発明を実施するシステムの構成を示す図である。
【図２】同期化処理の処理内容を示すフローチャートである。
【図３】初回の同期化処理の処理内容を示すフローチャート（その１）である。
【図４】初回の同期化処理の処理内容を示すフローチャート（その２）である。
【図５】２回目以降の同期化処理の処理内容を示すフローチャート（その１）である。
【図６】２回目以降の同期化処理の処理内容を示すフローチャート（その２）である。
【図７】図５及び図６の処理によって端末の保有していたデータベースに対してデータ操作が施される様子を説明する図（その１）である。
【図８】図５及び図６の処理によって端末の保有していたデータベースに対してデータ操作が施される様子を説明する図（その２）である。
【図９】図５及び図６の処理によってホストの保有していたデータベースに対してデータ操作が施される様子を説明する図（その１）である。
【図１０】図５及び図６の処理によってホストの保有していたデータベースに対してデータ操作が施される様子を説明する図（その２）である。
【図１１】同期化手順テーブルの例を示す図である。
【図１２】端末へレコードを送信するときに用いられる送信データのデータ構造の例を示す図である。
【図１３】記録させた制御プログラムをコンピュータで読み取り可能な記録媒体の例を示す図である。
【符号の説明】
１００  ホストコンピュータ装置
１０１、２０１  バス
１１０、２１０  ＣＰＵ
１２０、２２０  ＲＯＭ
１３０、２３０  ＲＡＭ
１３１  端末データベースバッファ
１４０、２４０  入力部
１５０、２５０  出力部
１６０、２６０  データベース管理部
１６１  データベース比較部
１６２  データ操作判定部
１７０  ホストデータベース
１７１、２７１  アドレス帳データベース
１７２、２７２  スケジュールデータベース
１７３、２７３  タスクデータベース
１８０  前回履歴データベース
１８１  ホスト用前回履歴データベース
１８２  端末用前回履歴データベース
１９０  外部記憶制御部
１９１  記憶媒体
１９９、２９９  通信制御部
２００  携帯情報端末装置
２７０  端末データベース
３００  通信媒体
３０１  コンピュータ
３０２、３０６  記憶装置
３０３  携帯可能記録媒体
３０４  ネットワーク
３０５  プログラムサーバ
【図１】
0004142866.tif 000002
【図２】
0004142866.tif 000003
【図３】
0004142866.tif 000004
【図４】
0004142866.tif 000005
【図５】
0004142866.tif 000006
【図６】
0004142866.tif 000007
【図７】
0004142866.tif 000008
【図８】
0004142866.tif 000009
【図９】
0004142866.tif 000010
【図１０】
0004142866.tif 000011
【図１１】
0004142866.tif 000012
【図１２】
0004142866.tif 000013
【図１３】
0004142866.tif 000014