JP4142866B2 - データベース同期化装置及びプログラム - Google Patents

データベース同期化装置及びプログラム Download PDF

Info

Publication number
JP4142866B2
JP4142866B2 JP2001342092A JP2001342092A JP4142866B2 JP 4142866 B2 JP4142866 B2 JP 4142866B2 JP 2001342092 A JP2001342092 A JP 2001342092A JP 2001342092 A JP2001342092 A JP 2001342092A JP 4142866 B2 JP4142866 B2 JP 4142866B2
Authority
JP
Japan
Prior art keywords
record
database
terminal
processing
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2001342092A
Other languages
English (en)
Other versions
JP2003140950A (ja
Inventor
伸弘 勝本
俊毅 成嶋
和夫 杉山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2001342092A priority Critical patent/JP4142866B2/ja
Publication of JP2003140950A publication Critical patent/JP2003140950A/ja
Application granted granted Critical
Publication of JP4142866B2 publication Critical patent/JP4142866B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Calculators And Similar Devices (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、情報管理技術に関し、特に、複数のデータベースの内容を同期させる技術に関する。
【0002】
【従来の技術】
近年、情報処理端末は小型軽量化し、以前は据置型のパーソナルコンピュータを使用しなければ行なえなかったアドレス帳、スケジュールや仕事(タスク)などを管理するPIM(Personal Information Management :個人情報管理)を携帯可能な情報処理端末でも行なえるようになっている。このような携帯情報処理端末は最新の情報をいつでもどこでも使用可能とするものであるから、かかる携帯情報処理端末とホストとなるパーソナルコンピュータとの間で、互いに個々に有するデータベースの内容を同期させる(同一化する)必要がある。
【0003】
このような双方の有するデータベースの内容の同期化を行なう方法の例として、携帯情報処理端末が変更、若しくは追加されたデータを含む自己の保有するデータベースの全てをパーソナルコンピュータに送信するようにし、パーソナルコンピュータでは受信したデータベースと自己の保有するデータベースとの比較を行ない、その比較の結果、相違していたデータのみを自装置のデータベースに反映させる更新処理を行なうと共にその更新されたデータベースの全てを携帯情報処理端末に送信し、携帯情報処理端末がその更新データベースを受信すると、それまで保有していた元のデータベースを削除して代わりにその更新データベースを保存するという方法が知られている。
【0004】
【発明が解決しようとする課題】
上述した方法では、携帯情報処理端末のデータベースの内容を同期化する処理をホストのコンピュータで行ない、この処理によって更新されたデータベースの全ての内容を携帯情報処理端末へと送り戻すものであり、同期化処理の負荷をホストのコンピュータに負わせるので、携帯情報端末の負荷を減らすことが可能となる。しかし、携帯情報処理端末は、携帯情報端末自身の保有していたデータベースとホストのコンピュータが保有しているデータベースとの和集合となる更新データベースの全ての内容を受信するので、メモリ容量などが制限される携帯情報端末ではホストのコンピュータから送られてきた更新データベース内容を保存しきれない場合が生じ得る。
【0005】
以上の問題を鑑み、ホストシステム及び端末装置が各々保有するデータベースの同期化を行なうために端末装置に要求される記録容量の負担を軽減させることが本発明が解決しようとする課題である。
【0006】
【課題を解決するための手段】
本発明のデータベース同期化装置は、端末装置が有している第一のデータベースとホスト装置が有している第二のデータベースとの同期化を行なって両データベースに蓄積されているデータを一致させるようにするホスト装置におけるデータベース同期化装置であって、前回の同期化処理の終了時に前記端末装置より受信した更新済みの第一のデータベースを端末用前回履歴データベースとして記憶する端末用前回履歴データベース記憶手段と、同期化処理に際して、前記端末装置より受信した第一のデータベースを記憶する手段と、前記受信した第一のデータベースに存在しないレコードを前記端末用前回履歴データベースより読出し前記第一のデータベースへ追加し、このレコードに削除を示す更新処理情報を記憶する手段と、追加された前記第一のデータベースとホスト装置が有している第二のデータベースの各レコードを比較して変更若しくは追加されているレコードを判定し、判定結果に基づいて、前記第一のデータベースと第二のデータベースの各レコードの変更若しくは追加の処理を行うと共に、前記削除を示す更新処理情報が記憶されているレコードに対応する第二のデータベースのレコードを削除する処理手段と、前記処理された第一のデータベースの各レコードのうち、前記変更若しくは追加されたレコードとその変更若しくは追加を示す更新処理情報、および前記削除を示す更新情報が記憶されているレコードとその削除を示す更新処理情報を前記端末装置へ送信する送信手段と、前記更新処理情報を受けて前記端末装置で更新された第一のデータベースを端末用前回履歴データベースとして受信し、前記端末用前回履歴データベース記憶手段へ記憶する制御手段とを備える。
【0018】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて説明する。
図1は本発明を実施するシステムの構成を示す図である。同図に示すシステムは、本発明を実施するホストコンピュータ装置(以下、単に「ホスト」という)100と、携帯情報端末装置(以下、単に「端末」という)200とが通信媒体300で接続されて構成されており、ホスト100と端末200とは通信媒体300を介して各種のデータを授受することができる。
【0019】
まず、ホスト100の構成について説明する。
ホスト100の内部では、CPU110、ROM120、RAM130、入力部140、出力部150、データベース管理部160、外部記憶制御部190、及び通信制御部199がバス101によって接続されており、CPU110の管理の下で相互にデータの授受を行なうことができる。
【0020】
CPU(Central Processing Unit )110はホスト100全体の動作制御を行なう中央演算装置である。
ROM120はCPU110にホスト100全体の動作制御を行なわせるための基本制御プログラムが予め格納されている。
【0021】
RAM130はCPU110による各種処理のための作業用の記憶領域として使用されるメモリであり、後述する端末データベース270のデータが端末200から送られてきたときにはそのデータを一時的に記憶する端末データベースバッファ131がRAM130の記憶領域に確保される。
【0022】
入力部140はユーザによって操作される例えばキーボードやマウスなどの装置を備えて構成され、この装置への操作に対応するユーザからの指示やデータについての入力を取得する。
出力部150はCPU110による指示に応じた出力を行なうものであり、例えば各種の情報の表示を行なう表示装置を備えて構成される。
【0023】
データベース管理部160はホスト100の保有するデータベースの管理を行なうものであり、2つのデータベースの比較を行なうデータベース比較部161と、その比較結果に基づいてデータベースに対してどのようなデータ操作を行なうべきかを判定するデータ操作判定部162とを有している。
【0024】
ホスト100は大別してホストデータベース170と前回履歴データベース180との2種類のデータベースを保有している。
ホストデータベース170は本実施の形態においては前述したPIMで使用するデータベースであり、具体的には住所録機能を提供するためのアドレス帳データベース171、スケジュール管理機能を提供するためのスケジュールデータベース172、及びユーザが処理すべきタスク(仕事)の進捗管理機能を提供するためのタスクデータベース173を有している。
【0025】
前回履歴データベース180は、後述するデータベースの同期化処理が行なわれたことによって更新された直後のホスト100及び端末200それぞれのデータベースの内容が前回の同期化処理の履歴として保存されて得られるものであり、ホストデータベース170の履歴であるホスト用前回履歴データベース181と、後述する端末データベース270の履歴である端末用前回履歴データベースとを有している。
【0026】
外部記憶制御部190は記憶媒体191に対する情報の記憶・読み出し・消去の制御を行なう。
記憶媒体191は例えばハードディスク装置であり、外部記憶制御部190の制御の下で記憶された情報を保持する。なお、記憶媒体191には、後述する同期化処理をCPU110に行なわせるための制御プログラムを予め格納しておくようにする。
【0027】
通信制御部199は、通信媒体300を介して端末200との間でデータを授受するための通信の制御を行なう。
ホスト100は以上の各要素を備えて構成される。なお、ホスト100は例えばパーソナルコンピュータを使用することで構成可能である。
【0028】
次に端末200の構成について説明する。
端末200の内部では、CPU210、ROM220、RAM230、入力部240、出力部250、及びデータベース管理部260がバス201によって接続されており、CPU210の管理の下で相互にデータの授受を行なうことができる。
【0029】
CPU210は端末200全体の動作制御を行なう中央演算装置である。
ROM220はCPU210に端末200全体の動作制御を行なわせるための制御プログラムが予め格納されている。
RAM230はCPU210による各種処理のための作業用の記憶領域として使用されるメモリである。
【0030】
入力部240はユーザによって操作される例えばキーボードやタッチパネルなどの装置を備えて構成され、この装置への操作に対応するユーザからの指示やデータについての入力を取得する。
出力部250はCPU210による指示に応じた出力を行なうものであり、例えば各種の情報の表示を行なう表示装置を備えて構成される。
【0031】
データベース管理部260は端末200の保有する端末データベース270の管理を行なう。
端末データベース270は本実施の形態においては前述したPIMのために使用されるデータベースであり、ホスト100と同様に、アドレス帳データベース271、スケジュールデータベース272、及びタスクデータベース273を有している。後述する同期化処理では、ホスト100の保有するホストデータベース170と端末200の保有する端末データベース270とが同期化の対象となる。
【0032】
通信制御部299は、通信媒体300を介してホスト100との間でデータを授受するための通信の制御を行なう。
端末200は以上の各要素を備えて構成される。なお、端末200は例えば携帯電話機やPDA(Personal Digital Assistants :個人向け携帯型情報通信機器)などを使用することで構成可能である。
【0033】
なお、ホスト100と端末200とを接続する通信媒体300として、シリアルケーブル、USBケーブルなどを使用して有線接続を行なってもよく、また赤外線、Bluetooth(登録商標)などを使用して無線接続を行なうようにしてもよい。更に、通信媒体300の途中に公衆電話網やインターネット等のネットワークが介在するようにしてもよい。
【0034】
以下、ホスト100のCPU110が記憶媒体191に予め格納されている制御プログラムを読み出して実行することによってホスト100において行なわれる、ホストデータベース170と端末データベース270との同期化処理の詳細について説明する。
【0035】
なお、以降の説明においては具体例として同期化の対象をアドレス帳データベース171及び271とした場合について適宜言及することとする。また、以降の説明においてはデータベースを「DB」と略称することとする。
まず図2について説明する。同図は同期化処理の処理内容を示すフローチャートである。この同期化処理は、ユーザによる同期化処理の起動指示が入力部140に対して行なわれたことがCPU110で検出されると開始される。
【0036】
まず、S101では、ホスト100と端末200との各々において同期化の対象とするDBの名称と、レコード毎の同一性の判定を行なうため各DBからレコードを抽出するときにキーにする項目との指定がユーザによって行なわれ、その指定結果がCPU110で取得される。
【0037】
例えば、同期化対象DBとしてアドレス帳DB171及び271が指定されたときには、レコードを抽出するためのキー項目として名前が大概指定される。
なお、同期化対象DBの名称の指定は、例えばPIMのために使用されているDB名を出力部150の表示装置にメニュー表示させ、その中からユーザが選択したDB名をCPU110が取得するようにしておくと便利である。また、キー項目の指定は、例えばホストDB170であるDBと端末DB270であるDBとの間で同一化を行なうフィールドの対応関係を予め定義しておき、ユーザがまず同期化対象DBをひとつ選択するとその同期化対象DBにおいてその対応関係が定義されているフィールドの一覧が出力部150の表示装置にメニュー表示され、その中からユーザが選択したフィールドがキー項目としてCPU110によって取得されるようにしておくと便利である。
【0038】
S102では通信制御部199に指示が与えられ、前ステップで取得された同期化対象DBの送付要求が端末200に宛てて送信される。
端末200の通信制御部299においてこの送付要求が受信されると、端末データベース270において受信した送付要求の内容に該当するDBをDB管理部260に読み出させ、読み出されたDBをホスト100へ宛てて通信制御部299に送信させる制御がCPU210によって行なわれる。
【0039】
S103では端末200から送られてくる上述のDBの受信が終了したか否かが判別され、この結果がYesとなるまでこのS103の処理が繰り返される。S104では受信されたDBがRAM130における端末DBバッファ131である記憶領域に保存される。なお、以降の説明においては、端末200から送られてきたこのDBを「端末側同期化対象DB」と称することとする。
【0040】
S105では、S101の処理において指定された同期化対象DBについての前回の同期化処理の履歴であるDBが前回履歴DB180として存在しないか否かが判別される。そして、この判別処理の結果がYes、すなわち該当するものが前回履歴DB180として存在しないならば、現在指定されている同期化対象DBについては現在実行中のものが初めて行なわれる同期化処理であるとみなされ、S106において初回の同期化処理が実行され、その後は処理がS108へと進む。一方、このS105の判別処理の結果がNo、すなわち該当するものが前回履歴DB180として存在するならば、現在指定されている同期化対象DBについては現在実行中のものが初めてではなく、2回目以降の同期化処理の実行であるとみなされ、S107において2回目以降の同期化処理が実行される。
【0041】
このS106及びS107のどちらの処理によっても、端末DB270における同期化対象DBに対する蓄積データの更新情報を端末200へ宛てて通信制御部199に送信させる制御がCPU110によって行なわれる。そして、端末200では通信制御部299によるこの更新情報の受信処理とDB管理部260によるこの更新情報に基づく端末DB270の蓄積データの更新処理との制御処理がCPU210によって行なわれる。
【0042】
なお、このS106及びS107の詳細については後述する。
S106若しくはS107の処理が行なわれた後に実行されるS108では、通信制御部199に指示が与えられ、端末側同期対象DBの送付要求が端末200に宛てて送信される。
【0043】
端末200の通信制御部299においてこの送付要求が受信されると、端末データベース270において先に受信した更新情報に基づく更新が行なわれた後のDBをDB管理部260に読み出させ、読み出されたDBをホスト100へと送信させる通信制御部299への制御がCPU210によって行なわれる。
【0044】
S109では端末200から送られてくる上述の更新済みDBの受信が終了したか否かが判別され、この結果がYesとなるまでこのS109の処理が繰り返される。
S110ではデータベース管理部160が制御され、受信されたDBが前回履歴DB180のひとつである端末用前回履歴DB182として保存する処理が行なわれ、この処理を終えた後にはこの同期化処理が終了する。
【0045】
なお、このS109及びS110の処理を敢えて設け、前回履歴DB180としてホスト用前回履歴181とは別に端末用前回履歴DB182を保存するようにしているのは、以下の理由によるものである。
一般に携帯情報端末、その中でもとりわけ携帯電話機では小型軽量が重視されるため、据置型のコンピュータと比べて実装されるメモリ容量はわずかの量に制限されてしまっている。例えば、住所やメモ、インターネット上のWebサイトのURL(Uniform Resource Locator)アドレスなどのデータ項目は文字数が比較的長くなることがあるが、携帯情報端末では据置型コンピュータよりも極めて少ない文字数しか保存できない場合がある。また、携帯情報端末が備えているアドレス帳機能の仕様上の登録可能件数は500件までであっても、住所、メモやURLアドレスなどの文字列データは最初の100件までしか登録できないなどといった制限がなされている場合もある。
【0046】
このような、携帯情報端末に対するメモリ容量制限により、本実施形態の場合においては、ホスト100からの更新情報を端末200が受信しても、その更新情報の全ての内容を端末DB270に反映しきれない場合が生じ得る。このような場合が発生したときには、同期化処理を終了した直後であってもホスト100の保有する同期化対象DBと端末200の保有する同期化対象DBとが同一とはならなくなってしまう。
【0047】
この問題を解消するため、前述したS109及びS110の処理を設け、ホスト100が端末200に更新情報を送出した後、改めて端末200によって更新された更新済みのDBをホスト100が受信してそのDBを端末用前回履歴DB182として保存するようにする。その結果、端末200に対するメモリ容量制限のために更新されなかったデータは更新されないままの状態である履歴DBが端末200用として保存されるので、同期化処理が次に実行されたときに、前回の同期化処理以降に端末200で新たに操作されたデータと、前回の同期化処理において端末200が受け取った更新情報に基づく更新ができなかったデータとの両方に基づく適切な同期化の処理が行なえるようになるのである。
【0048】
なお、携帯情報端末に対するメモリ容量制限がそれほど厳しいものではない等の理由により、同期化処理を終了した直後のホスト100の保有する同期化対象DBと端末200の保有する同期化対象DBとが同一となることが保証されるならば、このS109及びS110の処理を設けずに、前回履歴DB180としてホスト用前回履歴181のみを保存するようにし、端末200における同期化対象DBの履歴はこのホスト用履歴DB181を複写したもので代用して後述の処理を行なうようにすることも可能である。
【0049】
以下、上述した同期化処理におけるS106及びS107の処理の詳細について説明する。
まず図3及び図4について説明する。同図は図2に示した同期化処理におけるS106の処理としてCPU110によって行なわれる初回の同期化処理の処理内容を示すフローチャートである。
【0050】
まず、図3のS201において、前述した同期化処理におけるS101(図2)の処理において指定されていたキー項目が取得される。
以降のS202からS211にかけての処理は、CPU110の管理の下でDB管理部160のDB比較部161によって行なわれる。
【0051】
S202では、ホスト側同期化対象DB、すなわち現在処理中の同期化処理での処理対象であるホスト100側のDBに蓄積されているレコードがレコードの格納順にひとつ参照され、そのレコードにおいて前述したキー項目で示されるフィールドに格納されているデータが抽出され、そしてそのデータをキーとしてRAM130の端末DBバッファ131に記憶されている端末側同期化対象DBが検索される。
【0052】
S203では、前ステップでの検索の結果、抽出されたデータと同一のキーの格納されているレコードが端末側同期化対象DBに存在するか否かが判別され、この判別の結果がYes、すなわちこの同一のキーが格納されているレコードが存在したならばS205に処理が進む。一方、S203の判別結果がNo、すなわちこの同一のキーが格納されているレコードが端末側同期化対象DBに存在しなかったならば、このレコードは同期化のためには端末側同期化対象DBに追加する必要のあるものであるとみなされ、S204において、ホスト側同期化対象DBのレコードに「処理区分」なるフィールドが新たに設けられ、端末側同期化対象DBに追加すべきレコードであることを示す値「2」がこのレコードの「処理区分」フィールドに格納される。この処理を終えた後にはS207に処理が進む。
【0053】
S205では、S202の処理において参照したホスト側同期化対象DBのレコードと、S203の処理においてそのレコードから抽出されたものと同一のキーが格納されていたと判別された端末側同期化対象DBのレコードとの間で、対応関係が予め定義されている各フィールドのデータが全て一致しているか否かが判別される。そして、この判別結果がYes、すなわち対応関係が定義されている各フィールドのデータが両レコード間で全て一致していたならば、S207に処理が進む。一方、S205の判別結果がNoならば、この両レコードを同期化させるためにはホスト側同期化対象DBのレコードに一致させるように端末側同期化対象DBに格納されていたレコードを変更する必要があるとみなされ、S206において、ホスト側同期化対象DBのレコードに「処理区分」なるフィールドが新たに設けられ、端末側同期化対象DB側のレコードを変更すべきものであることを示す値「1」がこのレコードの「処理区分」フィールドに格納される。
【0054】
なお、S205の判定結果がYesのときには、ホスト側同期化対象DBに格納されていたこのレコードの「処理区分」フィールドには初期値である「0」が格納されていることとなる。
S207では、ホスト側同期化対象DBの全てのレコードについてS202の処理である端末側同期化対象DBに対する検索を終えたか否かが判別され、この判別結果がYesならばS208に処理が進む。一方、S207の判別処理がNoならばS202へ処理が戻り、未処理のレコードについてS202以降の処理が行なわれる。
【0055】
図4に処理が進み、S208では、端末DBバッファ131に記憶されている端末側同期化対象DBに蓄積されているレコードがレコードの格納順にひとつ参照され、そのレコードにおいて前述したキー項目で示されるフィールドに格納されているデータが抽出され、そしてそのデータをキーとしてホスト側同期化対象DBが検索される。
【0056】
S209では、前ステップでの検索の結果、抽出されたデータと同一のキーの格納されているレコードがホスト側同期化対象DBに存在しないか否かが判別される。そして、この判別結果がYes、すなわちこの同一のキーが格納されているレコードがホスト側同期化対象DBに全く存在しなかったならば、このレコードは同期化のためにはホスト側同期化対象DBに追加する必要のあるものであるとみなされ、S210において、端末側同期化対象DBに「処理区分」なるフィールドが新たに設けられ、ホスト側同期化対象DBに追加すべきレコードであることを示す値「2」がこのレコードの「処理区分」フィールドに格納される。一方、S209の判別の結果がYes、すなわちこの同一のキーが格納されているレコードが存在したならばS211に処理が進む。
【0057】
S211では、端末側同期化対象DBの全てのレコードについてS208の処理であるホスト側同期化対象DBに対する検索を終えたか否かが判別され、この判別結果がYesならばS212に処理が進む。一方、S211の判別処理がNoならばS208へ処理が戻り、未処理のレコードについてS208以降の処理が行なわれる。
【0058】
S212では、ホスト側同期化対象DBから、前述したS204若しくはS206の処理によって「処理区分」フィールドに「1」又は「2」の値が格納されたレコードがDB管理部160によって全て選択され、続くS213において通信制御部199に指示が与えられ、その選択されたレコードが、各レコードに与えられた「処理区分」の値を伴って端末200へ宛てて送信される。
【0059】
端末200の通信制御部299においてこれらのレコードが受信されると、CPU210によってDB管理部260が制御され、その「処理区分」の値に応じたレコードの追加若しくは変更の処理が端末DB270における現在の同期化対象のDBに対して行なわれる。
【0060】
S214ではデータベース管理部160が制御され、端末DBバッファ131に記憶されている端末側同期化対象DBから、前述したS210の処理によって「処理区分」フィールドに「2」の値が格納されたレコードが全て選択され、続いてDB管理部160が制御されてその「処理区分」の値に応じたレコードの追加の処理がホストDB170における現在の同期化対象のDBに対して行なわれる。
【0061】
S215ではデータベース管理部160が制御され、ホスト側同期化対象DBを前回履歴DB180のひとつであるホスト用前回履歴DB181として保存させる処理が行なわれ、この処理を終えた後には図3及び図4に示した処理が終了し、以降は図2のS108へと処理が進む。
【0062】
なお、上述した処理においては、ホスト側同期化対象DBと端末側同期化対象DBとでキー項目は一致するものの対応関係が定義されている他のフィールドではデータの異なるものがあるレコードの組について、端末側同期化対象DBに格納されているレコードのデータを変更して両者を同期化させるようにしているが、これは初回の同期化処理においてはホスト100側のDBのレコードのデータがより最新の情報であるとみなして優先するようにしたものである。もちろん、両者の優先関係を逆にして端末200側のDBのレコードのデータがより最新の情報であるとみなし、ホスト側同期化対象DBに格納されているレコードのデータを変更して両者を同期化させるようにしてもよい。
【0063】
次に図5及び図6について説明する。これらの図は図2に示した同期化処理におけるS107の処理としてCPU110によって行なわれる2回目以降の同期化処理の処理内容を示すフローチャートである。
なお、図5及び図6の説明においては、図7、図8、図9、図10の各図を用いて各DBに対して施されるデータ操作の様子を具体的に説明する。
【0064】
図5及び図6に示す処理の実行が開始される前に、図2のS104までの処理によって、端末200から送られてきた同期化処理の対象であるDB、すなわち端末側同期化対象DBがRAM130における端末DBバッファ131に既に保存されている。この端末側同期化対象DBの例として、端末200が保有している同期化処理前のアドレス帳DB271を図7に(A1)として示している。
【0065】
また、同期化処理によってこの端末アドレス帳DB(A1)と同期化するホスト側同期化対象DBの例として、ホスト100が保有している同期化処理前のアドレス帳DB171を図8に(B1)として示している。
この(A1)と(B1)との間では、(A1)における「名前」、「電話番号1」、「電話番号2」、「電子メールアドレス」の各フィールドがそれぞれ(B1)における「名前」、「自宅電話」、「携帯電話」、「電子メール」の各フィールドと対応していることが予め定義されており、レコードの抽出のためのキー項目として「名前」が指定されているものとする。
【0066】
また、前回に実行されたこれらのアドレス帳DBに対する同期化処理により、前回履歴DB180として、図7の(A2)に示すホスト用前回履歴DB181と図8の(B2)に示す端末用前回履歴DB182とがホスト100に保存されているものとする。
【0067】
図5において、まず、S301では、前述した同期化処理におけるS101(図2)の処理において指定されていたキー項目、及び重複処理時に優先するDBについてのユーザによる指定を取得する。重複処理時に優先するDBについては後述する同期化手順テーブルの説明の際に詳述する。
【0068】
以降のS302からS313にかけての処理のうち、S304、S306、S310、及びS312の処理についてはCPU110の管理の下でDB管理部160のDB操作部162によって行なわれ、その他の処理ついてはCPU110の管理の下でDB管理部160のDB比較部161によって行なわれる。
【0069】
まず、S302からS307までの処理を説明する。
S302では、端末側同期化対象DBに蓄積されているレコードがレコードの格納順にひとつ参照され、そのレコードにおいて前述したキー項目で示されるフィールドに格納されているデータが抽出され、そしてそのデータをキーとして端末用前回履歴DB182が検索される。この検索によって同一のキー項目を有するレコードが端末用前回履歴DB182に存在したときには、続くS303において、両レコードに格納されているデータの比較が対応するフィールド毎に行なわれる。そして、S304において、端末側同期化対象DBのレコードに「操作区分」なるフィールドが新たに設けられると共に、S303での比較の結果に基づいた操作区分の判定が行なわれ、その判定結果を示す値が端末側同期化対象DBのそのレコードの「操作区分」フィールドに登録される。
【0070】
S305では、端末側同期化対象DBの全てのレコードの「操作区分」フィールドに値が登録されたか否かが判別され、この判別結果がYesならばS306に処理が進む。一方、S305の判別処理がNoならばS302へ処理が戻り、未処理のレコードについてS302以降の処理が行なわれる。
【0071】
S306では、端末用前回履歴DB182が参照されて端末側同期化対象DBには存在しないキー項目のデータを有しているレコードが抽出され、そのレコードが端末側同期化対象DBに追加され、更にそのレコードに「操作区分」フィールドが新たに設けられてそのフィールドにレコードの削除を示す値「3」が登録される。
【0072】
S307では、端末側同期化対象DBの各レコードに「処理区分」なるフィールドが新たに設けられ、これら全てのレコードの「処理区分」フィールドに初期値として値「0」が格納される。
以上のS302からS307にかけての処理によって行なわれるデータ操作を、図7のデータ例を用いて具体的に説明する。
【0073】
まず、S302の処理によって、図7に(A1)として示すアドレス帳DB(以降単に「(A1)」と称する)の第一レコードが参照され、この第一レコードからキー項目である「名前」フィールドのデータ「阿部 太郎」が抽出される。そして、図7に(A2)として示す端末用前回履歴DB(以降単に「(A2)」と称する)がこのデータ「阿部 太郎」をキーとして検索され、その結果このデータが「名前」フィールドに格納されている(A2)の第一レコードが発見される。
【0074】
ここで、S303の処理によって(A1)の第一レコードと(A2)の第一レコードとにおける各フィールドに格納されているデータの比較が行なわれ、この結果、両レコードは比較対象である全てのレコードが一致していることが判明する。この場合は、S304の処理により、(A1)の第一レコードに新たに設けられる「操作区分」フィールドへ、データの変更がなかったことを示す値「0」が登録される。
【0075】
続くS305の判別処理では、「操作区分」フィールドに値の登録されていないレコードがまだ(A1)に残されているので判別結果はNoとなり、S302へと処理が戻る。
次に実行されるS302の処理では、(A1)の第二レコードが参照され、ここからキー項目のデータ「加藤 一郎」が抽出される。そして、この抽出されたデータをキーとして(A2)が検索され、(A2)の第二レコードが発見される。
【0076】
ここで、S303の処理によって(A1)の第二レコードと(A2)の第二レコードとのデータの比較が行なわれる。このとき、(A1)の第二レコードの「電話番号1」フィールドの値は「0344445555」であるのに対し、(A2)の第二レコードの「電話番号1」フィールドの値は「0344446666」であり、両者は一致していない。この場合、「電話番号1」フィールドは前回実行された同期化処理以降に更新されているとみなされ、S304の処理により、(A1)の第二レコードの「操作区分」フィールドへ、データの変更があったことを示す値「1」が登録される。
【0077】
続くS305の判別処理の結果はNoとなり、再びS302の処理が実行される。ここでは(A1)の第三レコードが参照され、ここからキー項目のデータ「斎藤 恵子」が抽出される。そして、この抽出されたデータをキーとして(A2)が検索され、(A2)の第三レコードが発見される。
【0078】
ここで、S303の処理によって(A1)の第三レコードと(A2)の第三レコードとのデータの比較が行なわれ、「電話番号2」フィールドの値が「09011118888 」と「09011112222 」とであることによる不一致の判定が下される。その結果、S304の処理により(A1)の第三レコードの「操作区分」フィールドへ値「1」が登録される。
【0079】
続くS305の判別処理の結果はNoとなり、再びS302の処理が実行される。
S302の処理では(A1)の第四レコードが参照され、ここからキー項目のデータ「山田 進」が抽出される。そして、この抽出されたデータをキーとして(A2)が検索されるが、このデータが「名前」フィールドに格納されているレコードは(A2)から発見されない。そのためS303の項目データの比較は行なわれずに処理はS304へと進み、(A1)の第四レコードの「操作区分」フィールドへ、データの追加があったことを示す値「2」が登録される。
【0080】
ここまでの処理の実行によって(A1)の全てのレコードの「操作区分」フィールドに値が登録されたので、S305の判別処理の結果はYesとなり、S306に処理が進む。
このS306の処理によって(A2)が参照され、(A1)には存在しないキー項目のデータ「田口 信二」を有している(A2)の第四レコードが抽出され、このレコードが(A1)に第五レコードとして追加される。そして、この第五レコードの「操作区分」フィールドにはレコードの削除を示す値「3」が登録される。
【0081】
S307の処理では、(A1)の各レコードに「処理区分」なるフィールドが新たに設けられ、これら全てのレコードの「処理区分」フィールドに初期値として値「0」が格納される。
以上までのS302からS307までの処理が施された後の端末DBバッファ131内のアドレス帳DBの内容を示したものが図8に(A3)として示されているものである。
【0082】
次に、図5のS308からS313までの処理を説明する。
S308では、ホスト側同期化対象DBに蓄積されているレコードがレコードの格納順にひとつ参照され、そのレコードにおいて前述したキー項目で示されるフィールドに格納されているデータが抽出され、そしてそのデータをキーとしてホスト用前回履歴DB181が検索される。この検索によって同一のキー項目を有するレコードがホスト用前回履歴DB181に存在したときには、続くS309において、両レコードに格納されているデータの比較が対応するフィールド毎に行なわれる。そして、S310において、ホスト側同期化対象DBのレコードに「操作区分」フィールドが新たに設けられると共に、S309での比較の結果に基づいた操作区分の判定が行なわれ、その判定結果を示す値がホスト側同期化対象DBのそのレコードの「操作区分」フィールドに登録される。
【0083】
S311では、ホスト側同期化対象DBの全てのレコードの「操作区分」フィールドに値が登録されたか否かが判別され、この判別結果がYesならばS312に処理が進む。一方、S311の判別処理がNoならばS308へ処理が戻り、未処理のレコードについてS308以降の処理が行なわれる。
【0084】
S312では、ホスト用前回履歴DB181が参照されてホスト側同期化対象DBには存在しないキー項目のデータを有しているレコードが抽出され、そのレコードがホスト側同期化対象DBに追加され、更にそのレコードに「操作区分」フィールドが新たに設けられてそのフィールドにレコードの削除を示す値「3」が登録される。
【0085】
S313では、端末側同期化対象DBの各レコードに「処理区分」なるフィールドが新たに設けられ、これら全てのレコードの「処理区分」フィールドに初期値として値「0」が格納される。
以上のS308からS313にかけての処理によって行なわれるデータ操作を、図9のデータ例を用いて具体的に説明する。
【0086】
まず、S308の処理によって、図9に(B1)として示すアドレス帳DB(以降単に「(B1)」と称する)の第一レコードが参照され、この第一レコードからキー項目である「名前」フィールドのデータ「阿部 太郎」が抽出される。そして、図9に(B2)として示すホスト用前回履歴DB(以降単に「(B2)」と称する)がこのデータ「阿部 太郎」をキーとして検索され、その結果このデータが「名前」フィールドに格納されている(B2)の第一レコードが発見される。
【0087】
ここで、S309の処理によって(B1)の第一レコードと(B2)の第一レコードとにおける各フィールドに格納されているデータの比較が行なわれる。このとき、(B1)の第一レコードの「携帯電話」フィールドの値は「09022229999 」であるのに対し、(B2)の第一レコードの「携帯電話」フィールドの値は「09022223333 」であり、両者は一致していない。この場合、「携帯電話番号」フィールドは前回実行された同期化処理以降に更新されているとみなされ、S310の処理により、(B1)の第一レコードに新たに設けられる「操作区分」フィールドへ、データの変更があったことを示す値「1」が登録される。
【0088】
続くS311の判別処理では、「操作区分」フィールドに値の登録されていないレコードがまだ(B1)に残されているので判別結果はNoとなり、S308へと処理が戻る。
次に実行されるS308の処理では、(B1)の第二レコードが参照され、ここからキー項目のデータ「加藤 一郎」が抽出される。そして、この抽出されたデータをキーとして(B2)が検索され、(B2)の第二レコードが発見される。
【0089】
ここで、S309の処理によって(B1)の第二レコードと(B2)の第二レコードとにおける各フィールドに格納されているデータの比較が行なわれ、この結果、両レコードは比較対象である全てのレコードが一致していることが判明する。この場合は、S310の処理により、(B1)の第二レコードの「操作区分」フィールドへ、データの変更がなかったことを示す値「0」が登録される。
【0090】
続くS311の判別処理の結果はNoとなり、再びS308の処理が実行される。ここでは(B1)の第三レコードが参照され、ここからキー項目のデータ「斎藤 恵子」が抽出される。そして、この抽出されたデータをキーとして(B2)が検索され、(B2)の第三レコードが発見される。
【0091】
ここで、S309の処理によって(B1)の第三レコードと(B2)の第三レコードとのデータの比較が行なわれ、「自宅電話」フィールドの値が「0322225555」と「0322223333」とであることによる不一致の判定が下される。その結果、S310の処理により(B1)の第三レコードの「操作区分」フィールドへ値「1」が登録される。
【0092】
続くS311の判別処理の結果はNoとなり、再びS308の処理が実行される。ここでは、(B1)の第四レコードが参照され、ここからキー項目のデータ「田口 信二」が抽出される。そして、この抽出されたデータをキーとして(B2)が検索され、(B2)の第四レコードが発見される。
【0093】
ここで、S309の処理によって(B1)の第四レコードと(B2)の第四レコードとにおける各フィールドに格納されているデータの比較が行なわれ、この結果、両レコードは比較対象である全てのレコードが一致していることが判明する。この場合は、S310の処理により、(B1)の第四レコードの「操作区分」フィールドへ値「0」が登録される。
【0094】
続くS311の判別処理の結果はNoとなり、再びS308の処理が実行される。
このS308の処理では(B1)の第五レコードが参照され、ここからキー項目のデータ「中島 洋子」が抽出される。そして、この抽出されたデータをキーとして(B2)が検索されるが、このデータが「名前」フィールドに格納されているレコードは(B2)から発見されない。そのためS309の項目データの比較は行なわれずに処理はS310へと進み、(B1)の第五レコードの「操作区分」フィールドへ、データの追加があったことを示す値「2」が登録される。
【0095】
ここまでの処理の実行によって(B1)の全てのレコードの「操作区分」フィールドに値が登録されたので、S311の判別処理の結果はYesとなり、S312に処理が進む。
このS312の処理によって(B2)が参照され、(B1)には存在しないキー項目のデータを有しているレコードの抽出が行なわれるが、このようなレコードは(B2)には存在しないので、(B1)へのレコードの追加は行なわれない。
【0096】
その後、S313の処理により、(B1)の各レコードに「処理区分」なるフィールドが新たに設けられ、これら全てのレコードの「処理区分」フィールドに初期値として値「0」が格納される。
以上までのS308からS313までの処理が施された後のホスト100の保有するアドレス帳DB171の内容を示したものが図10に(B3)として示されているものである。
【0097】
次に、図5のS314からS318にかけての処理を説明する。
S314では、S302からS307にかけての処理によるデータ操作の行なわれた端末側同期化対象DBと、S308からS313にかけての処理によるデータ操作の行なわれたホスト側同期化対象DBとが有する各レコードの「操作区分」フィールドの値の比較が同期化手順テーブルに従って行なわれる。
【0098】
S315では、前ステップで行なわれた比較結果に基づいて、端末側同期化対象DBとホスト側同期化対象DBとが有する各レコードに関して行なうべきデータ操作の内容が、「データ変更」、「レコード追加」、又は「レコード削除」、若しくは「データ変更なし」のうちのいずれであるかが判定される。
【0099】
S316では前ステップでの判定結果が「データ変更」又は「レコード追加」であるレコードが端末側同期化対象DBとホスト側同期化対象DBから選択され、それらのレコードについてのみS317においてその判定結果に応じた「データ変更」又は「レコード追加」のデータ操作が端末側同期化対象DB及びホスト側同期化対象DBに対して施される。
【0100】
S318では、前述したS314の比較結果に基づき、同期化のために端末側同期化対象DBとホスト側同期化対象DBに対して行なうべき処理の内容が判定され、その判定結果を示す値が、端末側同期化対象DB及びホスト側同期化対象DBに改めて設けられる「処理区分」フィールドに登録される。
【0101】
以上のS314からS318にかけての処理によって行なわれるデータ操作を、図8に(A3)として示されている、S302からS307にかけての処理によるデータ操作の行なわれた端末DBバッファ131内のアドレス帳DBのデータ例(以降単に「(A3)」と称する)と、図10に(B3)として示されている、S308からS313にかけての処理によるデータ操作の行なわれたアドレス帳DB171のデータ例(以降単に「(B3)」と称する)とを用いて具体的に説明する。
【0102】
まず、S314の処理により、(A3)の第一レコードと、このレコードにおけるキー項目である「名前」フィールドのデータ「阿部 太郎」を同様に有している(B3)の第一レコードとのそれぞれの「操作区分」フィールドに登録されている値の比較が同期化手順テーブルに従って行なわれ、続くS315の処理によって各DBについて行なうべきデータ操作の内容が判定される。
【0103】
同期化手順テーブルの例を図11に示す。このテーブルは予め作成されておりホスト100の外部記憶媒体191に記憶されている。
今、(A3)の第一レコードの「操作区分」フィールドには「0」、すなわち「変更なし」を示す値が登録されており、一方、(B3)の第一レコードの「操作区分」フィールドには「1」、すなわち「変更」を示す値が登録されている。この場合には、前回の同期化処理から現在実行中の同期化処理が開始されるまでの期間に(A3)におけるこの第一レコードの内容に変更が加えられたと推定することができる。従って、この場合に両DBを同期化するためには(A3)の第一レコードのデータ内容を変更して(B3)の第一レコードのデータ内容と一致させるデータ操作を行なう必要がある。
【0104】
同期化手順テーブルは2つのDBの対応するレコードに各々登録されている「操作区分」フィールドの値と、これらの値が示すデータ操作の内容のうちこれらのDBに対して優先して行なうべきデータ操作の内容とを対応付けたものである。例えば、上述した場合、すなわち(A3)の第一レコードの「操作区分」が「変更なし」を示しており、(B3)の第一レコードの「操作区分」が「変更」を示している場合には、図11からは「端末DBを変更」なるデータ操作の内容が取得される。これはすなわち、(B3)の第一レコードの「操作区分」の「変更」を優先し、端末DB270の内容に対応している(A3)の第一レコードのデータ内容を変更して(B3)の第一レコードのデータ内容と一致させるデータ操作を行なうことを意味している。この同期化手順テーブルを予め定義して用意しておくことで、これらのDBの各々に対して行なうべきデータ操作の内容を両レコードの「操作区分」に基づいて簡単に素早く判定することができ、ホスト100に対する処理の負担が軽減される。
【0105】
S315の処理によって、このレコードに関しては「変更」のデータ操作を行なうべきであると判定されたのでS316の判別処理の結果はYesとなり、続くS317の処理によって、(A3)の第一レコードのデータ内容を変更して(B3)の第一レコードのデータ内容と一致させるデータ操作が行なわれる。
【0106】
その後、S318の処理により、(A3)の第一レコードにおける「処理区分」フィールドには同期化のためにレコードの有するデータの変更を要することを示す値「1」が登録され、(B3)の第一レコードにおける「処理区分」フィールドには同期化のためにはレコードに変更を要しないことを示す値「0」が登録される。
【0107】
次に、(A3)の第二レコードについて処理が行なわれる。
まず、S314の処理により、このレコードと、このレコードにおけるキー項目のデータ「加藤 一郎」を同様に有している(B3)の第二レコードとのそれぞれの「操作区分」に登録されている値の比較が同期化手順テーブルに従って行なわれ、続くS315の処理によって各DBについて行なうべきデータ操作の内容が判定される。
【0108】
ここで、(A3)の第二レコードの「操作区分」は「変更」を示しており、(B3)の第二レコードの「操作区分」は「変更なし」を示している。このとき、図11からは「ホストDBを変更」なるデータ操作の内容が取得される。これは、これはすなわち、(A3)の第二レコードの「操作区分」の「変更」を優先し、(B3)の第二レコードのデータ内容を変更して(A3)の第二レコードのデータ内容と一致させるデータ操作を行なうことを意味している。
【0109】
S315の処理によって、このレコードに関して「変更」のデータ操作を行なうべきであると判定されたのでS316の判別処理の結果はYesとなり、続くS317の処理によって、(B3)の第二レコードのデータ内容を変更して(A3)の第二レコードのデータ内容と一致させるデータ操作が行なわれる。
【0110】
その後、S318の処理により、(A3)の第二レコードにおける「処理区分」には値「0」が登録され、(B3)の第二レコードにおける「処理区分」には値「1」が登録される。
次に、(A3)の第三レコードについて処理が行なわれる。
【0111】
まず、S314の処理により、このレコードと、このレコードにおけるキー項目のデータ「斎藤 恵子」を同様に有している(B3)の第三レコードとのそれぞれの「操作区分」に登録されている値の比較が同期化手順テーブルに従って行なわれ、続くS315の処理によって各DBについて行なうべきデータ操作の内容が判定される。
【0112】
ここで、(A3)の第三レコードの「操作区分」は「変更」を示しており、(B3)の第三レコードの「操作区分」も「変更」を示している。このとき、図11からは「重複処理」なるデータ操作の内容が取得される。これは、両レコードの内容がどちらも前回の同期化処理から現在実行中の同期化処理が開始されるまでの期間に変更されており、同期化のためにどちらのデータを優先して採用すべきか単純に推定できない場合であることを示している。
【0113】
本実施形態においては、この場合には、前述したS301の処理において取得されていた、重複処理時に優先するDBについてのユーザによる指定に従い、両DBのうちどちらの有しているレコードのデータ内容を同期化のために存続させるかをこの指定内容に沿って決定するようにしている。なお、この他に、例えば各レコードに対するデータ変更が行なわれた日時を示す情報を各DBが有していれば、この日時情報に基づき、後にデータ変更が行なわれたレコードを優先して存続させるように処理してもよい。
【0114】
なお、ここでは、重複処理時に優先するDBについてのユーザによる指定が端末DB270であったものとして説明を続ける。
ユーザの指定に従うと、重複処理時には端末DB270の内容に対応している(A3)を優先することとなる。よって、この場合には、(B3)の第三レコードのデータ内容を変更して(A3)の第三レコードのデータ内容と一致させるデータ操作を行なうこととなる。
【0115】
以上のように、このレコードに関しては「変更」のデータ操作を行なうべきであると判定されるのでS316の判別処理の結果はYesとなり、続くS317の処理によって、(B3)の第三レコードのデータ内容を変更して(A3)の第三レコードのデータ内容と一致させるデータ操作が行なわれる。
【0116】
その後、S318の処理により、(A3)の第三レコードにおける「処理区分」には値「0」が登録され、(B3)の第三レコードにおける「処理区分」には値「1」が登録される。
次に、(A3)の第四レコードについて処理が行なわれる。
【0117】
まず、S314の処理により、このレコードと、このレコードにおけるキー項目のデータ「山田 進」を同様に有している(B3)のレコードの検索が行なわれるが、(B3)にはそのようなレコードが存在しない。この場合には、同期化手順テーブルに従うまでもなく、(A3)の第四レコードは前回の同期化処理から現在実行中の同期化処理が開始されるまでの期間に新たに追加されたものであり、DBの同期化のためには(B3)にこのレコードを追加する必要があるとS315の処理によって判定される。
【0118】
このレコードに関しては「追加」のデータ操作を行なうべきであると判定されたのでS316の判別処理の結果はYesとなり、続くS317の処理によって、(A3)の第四レコードを(B3)に第六レコードとして追加するデータ操作が行なわれる。
【0119】
その後、S318の処理により、(A3)の第四レコードにおける「処理区分」には値「0」が登録され、(B3)の第六レコードにおける「処理区分」には、同期化のためにはこのレコードの追加が必要であることを示す値「2」が登録される。
【0120】
次に、(A3)の第五レコードについて処理が行なわれる。
まず、S314の処理により、このレコードと、このレコードにおけるキー項目のデータ「田口 信二」を同様に有している(B3)の第四レコードとのそれぞれの「操作区分」に登録されている値の比較が同期化手順テーブルに従って行なわれ、続くS315の処理によって各DBについて行なうべきデータ操作の内容が判定される。
【0121】
ここで、(A3)の第五レコードの「操作区分」は「削除」を示しており、(B3)の第四レコードの「操作区分」は「変更なし」を示している。このとき、図11からは「ホストDBを削除」なるデータ操作の内容が取得される。これは、この(A3)の第五レコードは前回の同期化処理から現在実行中の同期化処理が開始されるまでの期間に削除されており、DBの同期化のためには、(A3)の第五レコードの「操作区分」の「削除」を優先し、(B3)の第四レコードを削除するデータ操作を行なうことを意味している。
【0122】
このレコードに関して「削除」のデータ操作を行なうべきであると判定されたのでS316の判別処理の結果はNoとなり、続くS318の処理により、(A3)の第五レコードにおける「処理区分」には値「0」が登録され、(B3)の第四レコードにおける「処理区分」には、同期化のためにはこのレコードの削除が必要であることを示す値「3」が登録される。
【0123】
以上までで(A3)の有するレコードについてのS314からS318の処理が完了し、次に、(B3)の有するレコードのうち「処理区分」には値が登録されていない第五レコードについて処理が行なわれる。
まず、S314の処理により、このレコードと、このレコードにおけるキー項目のデータ「中島 洋子」を同様に有している(A3)のレコードの検索が行なわれるが、(A3)にはそのようなレコードが存在しない。この場合には、DBの同期化のためには(A3)にこのレコードを追加する必要があるとS315の処理によって判定される。
【0124】
このレコードに関しては「追加」のデータ操作を行なうべきであると判定されたのでS316の判別処理の結果はYesとなり、続くS317の処理によって、(B3)の第五レコードを(A3)に第六レコードとして追加するデータ操作が行なわれる。
【0125】
その後、S318の処理により、(B3)の第五レコードにおける「処理区分」には値「0」が登録され、(A3)の第六レコードにおける「処理区分」には値「2」が登録される。
以上までのS314からS318までの処理が施された後の端末DBバッファ131内のアドレス帳DBの内容を示したものが図8に(A4)として示されているものであり、またこのときにホスト100の保有するアドレス帳DB171の内容を示したものが図10に(B4)として示されているものである。
【0126】
なお、図11に示す同期手順テーブルにおいて、両DBの対応するレコードの「操作区分」が共に「削除」を示していたときには、「無視」、すなわち同期化のために何らデータ操作を行なわなくてよいことが示されている。端末200が保有している端末側同期化対象DBについては該当するレコードが既に削除されてしまっているので、S318の処理において当該レコードの「処理区分」には「変更なし」を示す値「0」を登録すればよいが、ホスト側同期化対象DBについては、前述したS312の処理によって一旦削除していたレコードを追加しているので、S318の処理においては当該レコードの「処理区分」には「削除」を示す値「3」を登録するようにする。
【0127】
以下、図5のS319からS321にかけての処理を説明する。
S319では端末DBバッファ131に記憶されている端末側同期化対象DBにおいて、「処理区分」フィールドに登録されている値が「1」、「2」、「3」のいずれか、すなわち「変更」、「追加」、「削除」のデータ操作が示されているレコードが読み出され、更に通信制御部199に指示が与えられて、その読み出されたレコードが、各レコードに与えられた「処理区分」の値を伴って端末200に宛てて送信される。
【0128】
端末200の通信制御部299においてこれらのレコードが受信されると、CPU210によってDB管理部260が制御され、その「処理区分」の値に応じたレコードの追加、変更、若しくは削除の処理が端末DB270における現在の同期化対象のDBに対して行なわれる。
【0129】
このS319の処理によって通信制御部199により送信されるデータの構造を図12に示す。同図に示すように、この送信データには、端末側同期化対象DBの各レコードが有する「名前」、「電話番号1」、「電話番号2」、「電子メールアドレス」、「処理区分」の各フィールドのデータの内容が含まれる。なお、前述した図4のS213のデータ送信処理においても、通信制御部199はこの図12に示すデータ構造を有する送信データを送信する。
【0130】
S320では、ホスト側同期化対象DBの各レコードのうち、「処理区分」フィールドに登録されている値が「3」、すなわち「削除」のデータ操作が示されているレコードが削除される。
S321では、データベース管理部160が制御されてホスト側同期化対象DBをホスト用前回履歴DB181として保存させる処理が行なわれ、この処理を終えた後には図5及び図6に示した処理が終了し、以降は図2のS108へと処理が進む。
【0131】
以上までに説明した同期化処理がホスト100のCPU110で行われることによって、ホスト100の保有するホストDB170と端末200の保有する端末DB270とのデータ内容の同期化が実現される。
なお、以上までに説明した図1に示すシステムにおけるホスト100によって行なわれるDBの同期化処理を、標準的な構成を有するコンピュータ、すなわち、制御プログラムを実行することで各構成要素を制御するCPUと、ROMやRAM及び磁気記憶装置などからなり、CPUに各構成要素を制御させる制御プログラムの記憶やCPUが制御プログラムを実行する際のワークエリアあるいは各種データの記憶領域として使用される記憶部と、ユーザによる操作に対応する各種のデータが取得される入力部と、ディスプレイなどに各種のデータを提示してユーザに通知する出力部と、ネットワークに接続するためのインタフェース機能を提供するI/F部とを備えるコンピュータを用いて構成することもできる。そのためには、前述した同期化処理をコンピュータに行なわせるための制御プログラムを作成し、その制御プログラムをそのコンピュータに読み込ませて実行させることで実現できる。
【0132】
また、このような制御プログラムをコンピュータで読み取り可能な記録媒体に記録させ、そのプログラムを記録媒体からコンピュータに読み出させて実行させることによって本発明をコンピュータで実施することも可能である。
記録させた制御プログラムをコンピュータで読み取ることの可能な記録媒体の例を図13に示す。同図に示すように、記録媒体としては、例えば、コンピュータ301に内蔵若しくは外付けの付属装置として備えられるROMやハードディスク装置などの記憶装置302、あるいはフレキシブルディスク、MO(光磁気ディスク)、CD−ROM、DVD−ROMなどといった携帯可能記録媒体303等が利用できる。また、記録媒体はネットワーク304を介してコンピュータ301と接続される、プログラムサーバ305として機能するコンピュータが備えている記憶装置306であってもよい。この場合には、制御プログラムを表現するデータ信号で搬送波を変調して得られる伝送信号を、プログラムサーバ305から伝送媒体であるネットワーク304を通じて伝送するようにし、コンピュータ301では受信した伝送信号を復調して制御プログラムを再生することで当該制御プログラムを実行できるようになる。
【0133】
その他、本発明は、上述した実施形態に限定されることなく、種々の改良・変更が可能である。
【0134】
【発明の効果】
本発明によれば、ホスト装置がデータベースの同期化処理を行ない、この同期化処理においてホスト装置が端末装置に更新処理情報を送出して、この更新処理情報を受けて端末装置によって実際に更新された第一のデータベースを端末用前回履歴データベースとして受信して記憶しているので、同期化処理が次に実行されたときに、前回の同期化処理において、更新処理情報により端末装置で実際に更新されなかったレコードが有ったとしてもこのレコードと、前回の同期化処理以降に端末装置で操作されたレコードとの両方に基づく適切な同期化の処理が行なえる。
【図面の簡単な説明】
【図1】本発明を実施するシステムの構成を示す図である。
【図2】同期化処理の処理内容を示すフローチャートである。
【図3】初回の同期化処理の処理内容を示すフローチャート(その1)である。
【図4】初回の同期化処理の処理内容を示すフローチャート(その2)である。
【図5】2回目以降の同期化処理の処理内容を示すフローチャート(その1)である。
【図6】2回目以降の同期化処理の処理内容を示すフローチャート(その2)である。
【図7】図5及び図6の処理によって端末の保有していたデータベースに対してデータ操作が施される様子を説明する図(その1)である。
【図8】図5及び図6の処理によって端末の保有していたデータベースに対してデータ操作が施される様子を説明する図(その2)である。
【図9】図5及び図6の処理によってホストの保有していたデータベースに対してデータ操作が施される様子を説明する図(その1)である。
【図10】図5及び図6の処理によってホストの保有していたデータベースに対してデータ操作が施される様子を説明する図(その2)である。
【図11】同期化手順テーブルの例を示す図である。
【図12】端末へレコードを送信するときに用いられる送信データのデータ構造の例を示す図である。
【図13】記録させた制御プログラムをコンピュータで読み取り可能な記録媒体の例を示す図である。
【符号の説明】
100 ホストコンピュータ装置
101、201 バス
110、210 CPU
120、220 ROM
130、230 RAM
131 端末データベースバッファ
140、240 入力部
150、250 出力部
160、260 データベース管理部
161 データベース比較部
162 データ操作判定部
170 ホストデータベース
171、271 アドレス帳データベース
172、272 スケジュールデータベース
173、273 タスクデータベース
180 前回履歴データベース
181 ホスト用前回履歴データベース
182 端末用前回履歴データベース
190 外部記憶制御部
191 記憶媒体
199、299 通信制御部
200 携帯情報端末装置
270 端末データベース
300 通信媒体
301 コンピュータ
302、306 記憶装置
303 携帯可能記録媒体
304 ネットワーク
305 プログラムサーバ

Claims (2)

  1. 端末装置が有している第一のデータベースとホスト装置が有している第二のデータベースとの同期化を行なって両データベースに蓄積されているデータを一致させるようにするホスト装置におけるデータベース同期化装置であって、
    前回の同期化処理の終了時に前記端末装置より受信した更新済みの第一のデータベースを端末用前回履歴データベースとして記憶する端末用前回履歴データベース記憶手段と、
    同期化処理に際して、前記端末装置より受信した第一のデータベースを記憶する手段と、
    前記受信した第一のデータベースに存在しないレコードを前記端末用前回履歴データベースより読出し前記第一のデータベースへ追加し、このレコードに削除を示す更新処理情報を記憶する手段と、
    追加された前記第一のデータベースとホスト装置が有している第二のデータベースの各レコードを比較して変更若しくは追加されているレコードを判定し、判定結果に基づいて、前記第一のデータベースと第二のデータベースの各レコードの変更若しくは追加の処理を行うと共に、前記削除を示す更新処理情報が記憶されているレコードに対応する第二のデータベースのレコードを削除する処理手段と、
    前記処理された第一のデータベースの各レコードのうち、前記変更若しくは追加されたレコードとその変更若しくは追加を示す更新処理情報、および前記削除を示す更新情報が記憶されているレコードとその削除を示す更新処理情報を前記端末装置へ送信する送信手段と、
    前記更新処理情報を受けて前記端末装置で更新された第一のデータベースを端末用前回履歴データベースとして受信し、前記端末用前回履歴データベース記憶手段へ記憶する制御手段と
    を具備してなるデータベース同期化装置。
  2. 端末装置が有している第一のデータベースとホスト装置が有している第二のデータベースとの同期化を行なって両データベースに蓄積されているデータを一致させるようにするホスト装置のコンピュータを、
    前回の同期化処理の終了時に前記端末装置より受信した更新済みの第一のデータベースを端末用前回履歴データベースとして記憶する端末用前回履歴データベース記憶手段、
    同期化処理に際して、前記端末装置より受信した第一のデータベースを記憶する手段、
    前記受信した第一のデータベースに存在しないレコードを前記端末用前回履歴データベースより読出し前記第一のデータベースへ追加し、このレコードに削除を示す更新処理情報を記憶する手段、
    追加された前記第一のデータベースとホスト装置が有している第二のデータベースの各レコードを比較して変更若しくは追加されているレコードを判定し、判定結果に基づいて、前記第一のデータベースと第二のデータベースの各レコードの変更若しくは追加の処理を行うと共に、前記削除を示す更新処理情報が記憶されているレコードに対応する第二のデータベースのレコードを削除する処理手段、
    前記処理された第一のデータベースの各レコードのうち、前記変更若しくは追加されたレコードとその変更若しくは追加を示す更新処理情報、および前記削除を示す更新情報が記憶されているレコードとその削除を示す更新処理情報を前記端末装置へ送信する送信手段、
    前記更新処理情報を受けて前記端末装置で更新された第一のデータベースを端末用前回履歴データベースとして受信し、前記端末用前回履歴データベース記憶手段へ記憶する制御手段
    として機能させるためのプログラム。
JP2001342092A 2001-11-07 2001-11-07 データベース同期化装置及びプログラム Expired - Fee Related JP4142866B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001342092A JP4142866B2 (ja) 2001-11-07 2001-11-07 データベース同期化装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001342092A JP4142866B2 (ja) 2001-11-07 2001-11-07 データベース同期化装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2003140950A JP2003140950A (ja) 2003-05-16
JP4142866B2 true JP4142866B2 (ja) 2008-09-03

Family

ID=19156010

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001342092A Expired - Fee Related JP4142866B2 (ja) 2001-11-07 2001-11-07 データベース同期化装置及びプログラム

Country Status (1)

Country Link
JP (1) JP4142866B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1489862A1 (en) * 2003-06-20 2004-12-22 Axalto S.A. Database synchronization
US6944636B1 (en) * 2004-04-30 2005-09-13 Microsoft Corporation Maintaining time-date information for syncing low fidelity devices
KR100678921B1 (ko) * 2005-10-18 2007-02-05 삼성전자주식회사 다중 서버 환경에 적합한 디바이스를 클라이언트로 하여동기화를 수행하는 방법 및 장치
KR100694161B1 (ko) * 2006-02-10 2007-03-12 삼성전자주식회사 분산 컨텐츠 관리 방법 및 장치
JP4719243B2 (ja) * 2008-04-16 2011-07-06 株式会社エヌ・ティ・ティ・ドコモ データ同期方法および通信装置
JP2010191516A (ja) * 2009-02-16 2010-09-02 Ripplex Inc 情報同期装置
JP5634178B2 (ja) * 2010-09-09 2014-12-03 Kii株式会社 データ同期システムおよびデータ同期方法
CN102404338B (zh) * 2011-12-13 2014-08-20 华为技术有限公司 一种文件同步方法和装置
JP6473054B2 (ja) * 2015-07-09 2019-02-20 東芝メモリ株式会社 記憶装置、情報処理システム、及び、プログラム

Also Published As

Publication number Publication date
JP2003140950A (ja) 2003-05-16

Similar Documents

Publication Publication Date Title
JP4558945B2 (ja) 少なくとも2つのホスト・データベースとリモート・データベースを有するデータベース・システム、及びそのようなデータベースの同期方法
US6101505A (en) Method of managing files of a portable information terminal according to available memory
US6493743B2 (en) PDA workspace interface using application icons for downloading remote user file
EP2033411B1 (en) Method, apparatus and computer program product for providing automatic delivery of information to a terminal
KR100999267B1 (ko) 관리 서버들에 의해 업데이트된 온-디바이스 애플리케이션 카탈로그
US6925476B1 (en) Updating application data including adding first change log to aggreagate change log comprising summary of changes
JP2002132547A (ja) 電子情報管理サーバ、電子情報管理クライアントおよび電子情報管理方法ならびに電子情報管理プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2003256258A (ja) 情報処理装置
JP2006338669A (ja) ドキュメントの管理および検索システム、方法およびプログラム
US20040078370A1 (en) Method and apparatus for real time creation and modification of a change log for multi-server synchronization
JP4225729B2 (ja) 情報管理装置
US20040078393A1 (en) Method and apparatus for representing deleted data in a synchronizable database
CN113239004B (zh) 一种笔记同步方法及装置
CN102238223B (zh) 一种面向移动设备的网络化个人数据管理方法
JP4142866B2 (ja) データベース同期化装置及びプログラム
WO2006021841A2 (en) Efficient synchronisation of smart card data with data stored on an external server
JP2003196128A (ja) 携帯通信端末、外部記憶装置及び情報通信システム
US6973472B2 (en) Data synchronization system and method based on modification records and common formatting
JP2991698B1 (ja) 部分データ同期化方法および携帯型情報機器
JP2002278901A (ja) 携帯電話装置および携帯電話装置における受信ファイル管理方法
JP2000137643A (ja) 情報共有システム及び情報共有方法及びそのプログラムを記録した記録媒体
JP4071024B2 (ja) 情報転送システム、方法、およびプログラム
JPH11327989A (ja) データベース管理装置、および、そのプログラムが記録された記録媒体
JP6683042B2 (ja) データ処理装置、システムおよびプログラム
JPH11327987A (ja) データベース管理装置、および、そのプログラムが記録された記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040423

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071026

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071106

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080304

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080428

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080610

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080613

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110620

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110620

Year of fee payment: 3

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110620

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110620

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110620

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110620

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110620

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120620

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120620

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130620

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees