(57)【要約】      （修正有）【課題】複数のテーブルの同期処理により、同じ情報が複数の行に存在したり、情報の追加が、変更として処理されたりすることを防止する。【解決手段】複数のテーブルにおいて、ラベルの列と、値の列があるとする。情報源から送信された行について、以下の処理を行う。ラベルが等しく値が異なれば、値の更新とみなして同期対象テーブルの該当行におけるラベルに、情報源から与えられた値を上書きする。もし値が等しくラベルが異なれば、ラベルの変更と見なして同期対象テーブルの該当行における値に、送信されたラベルを上書きする。もし、ラベルと値の両方が等しければ、変更がないとみなして同期対象テーブルの該当行にはなにもしない。もし、同期対象テーブルのすべての行についてラベルも値も等しくなければ、新たな行の追加とみなして同期対象テーブルに新規の行を追加した上、送信されたラベルと値をコピーする。【選択図】図１３
2010191516.tif 000002
【特許請求の範囲】
【請求項１】
第１のテーブルと第２のテーブルとを記憶する記憶手段と、
前記第１のテーブルの有する第１の行を、前記第２のテーブルの有する第２の行にコピーする第１のコピー手段と、
情報端末より前記情報端末が記憶する第３のテーブルを受信する受信手段と、
前記第３のテーブルの有する第３の行の第１の列にある第１の情報と、前記第２の行に含まれ、前記第１の列と同じ属性を有する前記第２のテーブルの第２の列にある第２の情報と、を比較する比較手段と、
前記第１の情報と前記第２の情報が等しい場合に、前記第３の行の第４の列にある第３の情報を、前記第１の行の、前記第４の列と同じ属性を有する前記第１のテーブルの有する第５の列にコピーする第２のコピー手段と、
を有することを特徴とするサーバ装置。
【請求項２】
第１のテーブルと第２のテーブルとを記憶する記憶手段と、
前記第１のテーブルの有する第１の行を、前記第２のテーブルの有する第２の行に第１のコピーするコピー手段と、
外部情報源サーバ装置の記憶する第３のテーブルをネットワーク経由にて受信する受信手段と、
前記第３のテーブルの有する第３の行の第１の列にある第１の情報と、前記第２の行に含まれ、前記第１の列と同じ属性を有する前記第２のテーブルの第２の列にある第２の情報とを比較する比較手段と、
前記第１の情報と前記第２の情報が等しい場合に、前記第３の行の第４の列にある第３の情報を、前記第１の行の、前記第４の列と同じ属性を有する前記第１のテーブルの有する第５の列に第２のコピーするコピー手段と、
を有することを特徴とするサーバ装置。
【請求項３】
第１のテーブルと第２のテーブルとを記憶する記憶手段と、
前記第１のテーブルのすべての行を、前記第２のテーブルにコピーする第１のコピー手段と、
情報端末が記憶する第３のテーブルを受信する受信手段と、
前記コピーの後に、前記第３のテーブルの有する第１の行の第１の列にある第１の情報と、前記第３のテーブルの有する前記第１の行の第２の列にある第２の情報とにより形成される第１の情報対を、前記第２のテーブルの有する任意の行の前記第１の列と同じ属性を示す第３の列にある第３の情報と、前記第２のテーブルの有する前記任意の行の前記第２の列と同じ属性を示す第４の列にある第４の情報とにより形成される第２の情報対と比較する比較手段と、
前記第２のテーブルのすべての行について、前記比較手段により前記第１の情報と前記第３の情報が等しくなく、かつ前記第２の情報と前記第４の情報が等しくないことが検出された場合に、前記第１のテーブルに新たな行を追加し、さらに前記新たな行の前記第１の列と同じ属性を示す第５の列に前記第1の情報をコピーし、かつ前記新たな行の前記第２の列と同じ属性を示す第６の列に前記第２の情報をコピーする第２のコピー手段と、
を有することを特徴とするサーバ装置。
【請求項４】
第１のテーブルと第２のテーブルとを記憶する記憶手段と、
前記第１のテーブルのすべての行を、前記第２のテーブルにコピーする第１のコピー手段と、
外部情報源サーバ装置が記憶する第３のテーブルをネットワーク経由にて受信する受信手段と、
前記コピーの後に、前記第３のテーブルの有する第１の行の第１の列にある第１の情報と、前記第３のテーブルの有する前記第１の行の第２の列にある第２の情報とにより形成される第１の情報対を、前記第２のテーブルの有する任意の行の前記第１の列と同じ属性を示す第３の列にある第３の情報と、前記第２のテーブルの有する前記任意の行の前記第２の列と同じ属性を示す第４の列にある第４の情報とにより形成される第２の情報対と比較する比較手段と、
前記第２のテーブルのすべての行について、前記比較手段により前記第１の情報と前記第３の情報が等しくなく、かつ前記第２の情報と前記第４の情報が等しくないことが検出された場合に、前記第１のテーブルに新たな行を追加し、さらに前記新たな行の前記第１の列と同じ属性を示す第５の列に前記第1の情報をコピーし、かつ前記新たな行の前記第２の列と同じ属性を示す第６の列に前記第２の情報をコピーする第２のコピー手段と、
を有することを特徴とするサーバ装置。
【請求項５】
第１のテーブルを記憶する記憶手段と、
同期対象外部サーバ装置の記憶手段が記憶している第２のテーブルの第１の行を、前記第１のテーブルの有する第２の行にコピーする第１のコピー手段と、
情報端末が記憶している第３のテーブルを受信する受信手段と、
前記第３のテーブルの有する第３の行の第１の列にある第１の情報と、前記第２の行に含まれ、前記第１の列と同じ属性を有する前記第１のテーブルの第２の列にある第２の情報とを比較する比較手段と、
前記第１の情報と前記第２の情報が等しいと前記比較手段により検出された場合に、前記第３の行の第４の列にある第３の情報を、前記第１の行に含まれる、前記第４の列と同じ属性を有する前記第２のテーブルの有する第５の列にコピーする第２のコピー手段と、
を有することを特徴とするサーバ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のテーブルの同期処理に関する。
【背景技術】
【０００２】
近年のネットワークの普及により、１人の利用者が複数の情報端末を保有する場合が多い。また、１人の利用者が、複数のＷｅｂサービスを利用する場合も増えている。たとえば、多くの利用者は携帯電話とパーソナルコンピュータの両方を使っている。さらにまた多くの利用者は電子メール、チャット、音声通話、ＳＮＳ（Ｓｏｃｉａｌ  Ｎｅｔｗｏｒｋｉｎｇ  Ｓｅｒｖｉｃｅ）、情報共有など、やはり複数のＷｅｂサービスを使っている。
【０００３】
このような状況においては、複数の情報端末やサーバ装置（以下、「サーバ」という）に存在する複数のデータベースのテーブルを同期することが望まれている。たとえば、パーソナルコンピュータに記憶されているアドレス帳に記載されている知人の電話番号を変更した時には、携帯電話の電話帳に記憶されているその知人の電話番号も自動的に変更されることが望まれている。
【０００４】
また、利用者が複数のＷｅｂサービスの認識票を使い分けるのは煩雑である。そこで、あるＷｅｂサービスの上で、他のＷｅｂサービスの認識票を管理することも行われている。この場合には、各Ｗｅｂサービスの知人情報を管理する複数のテーブルを同期することに対する要求がある。複数の情報端末において、電子メールを送受信する場合も同じように、メールボックスを構成するデータベースを同期したいという要求がある。これらデータベースを構成する複数のテーブルは、同じサーバに存在することもあれば、異なるサーバに散在している場合もある。
【０００５】
このようなテーブル間の同期に対する要求は、広く認識されてきた。このため、テーブル間の同期の手法が幾つか知られている。そのほとんどは、データベース管理システムより、同期すべきテーブルに対して追加、変更または削除の要求があった場合に、同期対象のテーブルに対して新たな行の追加、指定された行の変更または削除を実行するものである。たとえば、特許文献１には複数の情報端末に存在するメールボックスの同期の方法が開示されている。またたとえば、特許文献２にはネットワークで接続されたパーソナルコンピュータ、サーバ、プリンタ、機能複合型複写機等などに存在する複数のアドレス帳を同期する方法が開示されている。さらに、特許文献３には、同期対象のテーブルにおいて、その内容が同一である複数の行が検出された場合には、これら複数の行を統合することで、同期時の利便性を高めるための方法が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−１６４０６７号公報
【特許文献２】特開２００１−２４９８８２号公報
【特許文献３】米国特許第７，０８０，１０４号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来の方法には次のような問題点がある。図１を参照して、複数のテーブルを同期する際の、従来の方法に関する問題点について説明する。いま図１に示すようにサーバに記憶されている利用者Ａの第１テーブル１１０および携帯端末に記憶されている利用者Ａの第２テーブル１２０が同期対象だったとする。このサーバと携帯端末はネットワークで接続されている。上記２つのテーブルは、利用者Ａによる書き換えや、他者からの情報開示に応じて同期する。図１の例では、これら２つのテーブルはユーザ名、ラベル、値、および行番号の４列を有する。
【０００８】
従来の方法では、同期は、各テーブルにおける行番号および列番号を基準として用いられて実行される。たとえば、図１において第１テーブルの利用者Ｂの電話番号「６５０−１１１−１１１１」が、利用者Ａの変更操作または利用者Ｂからの開示操作により、「６５０−９９９−９９９９」に変更された場合を考える。従来の方法では、サーバは行番号ｎ＝０の値１１３が「６５０−９９９−９９９９」であることを、通信手段やネットワークを通じて携帯端末に通知し、携帯端末は行番号ｎ＝０の値１２３を新しい「６５０−９９９−９９９９」に書き換える。すなわち、２つのテーブル間で同期を実行するには、変更後の情報に加えてテーブルのどの部分が変更されたのか、すなわちテーブルの行番号および列番号が変更されたのかも合わせて通知する必要がある。
【０００９】
しかし、テーブルに変更が加えられる際、行番号と列番号が指定できるとは限らない。たとえば、利用者Ａのテーブルが図１に示す初期状態にあるとして、「利用者Ｂの電話番号は６５０−９９９−９９９９である」という情報がサーバに対して通知されたとする。この時、変更を加えるべき行番号と列番号が指定されない場合がある。たとえば、利用者Ｂの情報端末は、図１に示すテーブルを持っておらず、この変更通知が、利用者Ｂの情報端末からの通知である場合を考える。この場合には、利用者Ｂの自宅の電話番号が、利用者Ａの第１および第２テーブルにおいて何行目の情報なのかが通知に含まれない。また、たとえば利用者Ａ自身が第１または第２テーブルに変更を加える場合にも、テーブルの行番号と列番号が明示的に指定されない場合もある。
【００１０】
このように、複数のテーブルを同期する際の問題点としては、少なくとも以下の２点を挙げることができる。すなわち、第１の問題は、同期の結果、同値情報が複数行に存在してしまう場合がある点である。第２の問題は、意図しない上書きが行われる場合がある点である。以下、これらの問題点について順次説明する。
【００１１】
第1の問題について説明する。第１の問題は、例えばテーブルの行番号と列番号が明示的に指定されない場合に発生する。今、図１に示す初期状態に対して、サーバが利用者Ｂの情報端末から「利用者Ｂの自宅電話番号は６５０−１１１−１１１１である」という情報を受信したとする。このとき、サーバはこれが利用者Ａの第１および第２テーブルのどの部分に対する変更なのかを検知することができず、新しい情報としてｎ＝２の行を追加した上、この行に受信した「利用者Ｂの自宅電話番号は６５０−１１１−１１１１」を加える。この時、利用者Ａの第１および第２テーブルは同期するが、同期後に「利用者Ｂの自宅電話番号は６５０−１１１−１１１１」という単一の情報がｎ＝０の行およびｎ＝２の２つの行に存在することになる。これは電話帳の利便性を著しく損なう。
【００１２】
次に第２の問題について説明する。第２の問題は逆にテーブルの行番号と列番号が明示的に指定された場合に起こる。たとえば今、図１に示す初期状態に対して、サーバが利用者Ｂの情報端末から「行番号ｎ＝０の行は、会社の電話番号が６５０−５５５−５５５５である」という情報を受信したとする。これはたとえば、利用者Ａが自分の電話帳にあらかじめ利用者Ｂの自宅電話番号を入力しておいた状態で、追加で利用者Ｂの会社の電話番号がサーバに対して開示されたような場合である。この通知を受信したサーバは、利用者Ａの第１および第２テーブルにおいて、行番号ｎ＝０の行を「利用者Ｂの会社の電話番号が６５０−５５５−５５５５である」という情報によって上書きする。しかし、利用者Ａにとって図１のように初期状態に存在した自宅電話番号は必要な情報であり、異なる情報である利用者Ｂの会社の電話番号による上書きを望まないかもしれない。このように、もし行番号と列番号が明示的に指定された場合には、意図しない上書きが実行されてしまう場合がある。これもやはり電話帳の利便性を著しく損なう。
【００１３】
上記第１および第２の問題は、サーバが利用者Ｂの情報端末から情報を受信した場合を用いて説明したが、たとえば利用者Ａの第１テーブルに利用者Ａが変更を加えた結果を、利用者Ａの第２テーブルに伝える場合にも全く同様である。つまり、複数のテーブル間の同期においては、行番号および列番号を指定した情報の追加または変更を用いても、行番号および列番号を指定しない情報の追加または変更を用いても、上記第１または第２のどちらかの問題が解決できない。
【００１４】
本願発明は、このような状況に鑑みてなされたものであり、複数のテーブルの同期に際し、同じ情報が複数箇所に発生したり、情報の追加を誤って変更として処理することで利用者にとって必要な情報が消去されたりしないような、複数テーブルの同期方法および装置を提供する。
【課題を解決するための手段】
【００１５】
本発明の一実施形態として、第１のテーブルと第２のテーブルとを記憶する記憶手段と、
前記第１のテーブルの有する第１の行を、前記第２のテーブルの有する第２の行にコピーする第１のコピー手段と、情報端末より前記情報端末が記憶する第３のテーブルを受信する受信手段と、前記第３のテーブルの有する第３の行の第１の列にある第１の情報と、前記第２の行に含まれ、前記第１の列と同じ属性を有する前記第２のテーブルの第２の列にある第２の情報と、を比較する比較手段と、前記第１の情報と前記第２の情報が等しい場合に、前記第３の行の第４の列にある第３の情報を、前記第１の行の、前記第４の列と同じ属性を有する前記第１のテーブルの有する第５の列にコピーする第２のコピー手段と、
を有することを特徴とするサーバ装置が提供される。
【００１６】
本発明の一実施形態として、第１のテーブルと第２のテーブルとを記憶する記憶手段と、
前記第１のテーブルの有する第１の行を、前記第２のテーブルの有する第２の行に第１のコピーするコピー手段と、外部情報源サーバ装置の記憶する第３のテーブルをネットワーク経由にて受信する受信手段と、前記第３のテーブルの有する第３の行の第１の列にある第１の情報と、前記第２の行に含まれ、前記第１の列と同じ属性を有する前記第２のテーブルの第２の列にある第２の情報とを比較する比較手段と、前記第１の情報と前記第２の情報が等しい場合に、前記第３の行の第４の列にある第３の情報を、前記第１の行の、前記第４の列と同じ属性を有する前記第１のテーブルの有する第５の列に第２のコピーするコピー手段と、を有することを特徴とするサーバ装置が提供される。
【００１７】
本発明の一実施形態として、第１のテーブルと第２のテーブルとを記憶する記憶手段と、
前記第１のテーブルのすべての行を、前記第２のテーブルにコピーする第１のコピー手段と、情報端末が記憶する第３のテーブルを受信する受信手段と、前記コピーの後に、前記第３のテーブルの有する第１の行の第１の列にある第１の情報と、前記第３のテーブルの有する前記第１の行の第２の列にある第２の情報とにより形成される第１の情報対を、前記第２のテーブルの有する任意の行の前記第１の列と同じ属性を示す第３の列にある第３の情報と、前記第２のテーブルの有する前記任意の行の前記第２の列と同じ属性を示す第４の列にある第４の情報とにより形成される第２の情報対と比較する比較手段と、前記第２のテーブルのすべての行について、前記比較手段により前記第１の情報と前記第３の情報が等しくなく、かつ前記第２の情報と前記第４の情報が等しくないことが検出された場合に、前記第１のテーブルに新たな行を追加し、さらに前記新たな行の前記第１の列と同じ属性を示す第５の列に前記第1の情報をコピーし、かつ前記新たな行の前記第２の列と同じ属性を示す第６の列に前記第２の情報をコピーする第２のコピー手段と、を有することを特徴とするサーバ装置が提供される
【００１８】
本発明の一実施形態として、第１のテーブルと第２のテーブルとを記憶する記憶手段と、前記第１のテーブルのすべての行を、前記第２のテーブルにコピーする第１のコピー手段と、外部情報源サーバ装置が記憶する第３のテーブルをネットワーク経由にて受信する受信手段と、前記コピーの後に、前記第３のテーブルの有する第１の行の第１の列にある第１の情報と、前記第３のテーブルの有する前記第１の行の第２の列にある第２の情報とにより形成される第１の情報対を、前記第２のテーブルの有する任意の行の前記第１の列と同じ属性を示す第３の列にある第３の情報と、前記第２のテーブルの有する前記任意の行の前記第２の列と同じ属性を示す第４の列にある第４の情報とにより形成される第２の情報対と比較する比較手段と、前記第２のテーブルのすべての行について、前記比較手段により前記第１の情報と前記第３の情報が等しくなく、かつ前記第２の情報と前記第４の情報が等しくないことが検出された場合に、前記第１のテーブルに新たな行を追加し、さらに前記新たな行の前記第１の列と同じ属性を示す第５の列に前記第1の情報をコピーし、かつ前記新たな行の前記第２の列と同じ属性を示す第６の列に前記第２の情報をコピーする第２のコピー手段と、を有することを特徴とするサーバ装置が提供される
【００１９】
本発明の一実施形態として、第１のテーブルを記憶する記憶手段と、同期対象外部サーバ装置の記憶手段が記憶している第２のテーブルの第１の行を、前記第１のテーブルの有する第２の行にコピーする第１のコピー手段と、情報端末が記憶している第３のテーブルを受信する受信手段と、前記第３のテーブルの有する第３の行の第１の列にある第１の情報と、前記第２の行に含まれ、前記第１の列と同じ属性を有する前記第１のテーブルの第２の列にある第２の情報とを比較する比較手段と、前記第１の情報と前記第２の情報が等しいと前記比較手段により検出された場合に、前記第３の行の第４の列にある第３の情報を、前記第１の行に含まれる、前記第４の列と同じ属性を有する前記第２のテーブルの有する第５の列にコピーする第２のコピー手段と、を有することを特徴とするサーバ装置が提供される。
【発明の効果】
【００２０】
本発明の方法、サーバ、情報端末、およびデータベースなどによれば、複数のテーブルの同期に際し、一つのテーブル内に同じ情報が複数箇所に発生したり、情報の追加を誤って変更として処理することで利用者にとって必要な情報が消去されたりすることを防止できる。
【図面の簡単な説明】
【００２１】
【図１】従来の方法による同期に係る課題を説明するためのテーブルの一例である。
【図２】本願発明に係る同期サービスのサーバの概略構成図の一例である。
【図３】本願発明に係るサーバおよび情報端末のシステム構成図の一例である。
【図４】本願発明に係る同期対象テーブルを参照する情報端末の概略構成図の一例である。
【図５】本願発明に係る同期対象テーブルを有する情報端末の概略構成図の一例である。
【図６】本願発明に係る同期対象テーブルを有するサーバの概略構成図の一例である。
【図７】本願発明に係る同期対象テーブルを参照する情報端末の概略構成図の一例である。
【図８】本願発明に係る同期の情報源テーブルを有する情報端末の概略構成図の一例である。
【図９】本願発明に係る同期の情報源テーブルの初期状態のデータ例を示す図である。
【図１０】本願発明に係る同期対象テーブル群の初期状態のデータ例を示す図である。
【図１１】本願発明に係る同期処理の概略を示すフロー図である。
【図１２】本願発明に係る同期の情報源テーブルの変更後のデータ例を示す図である。
【図１３】本願発明に係る同期処理の詳細を示すフロー図である。
【図１４】本願発明に係る同期対象テーブル群の同期後のデータ例を示す図である。
【図１５】本願発明に係る同期対象テーブル群の同期後のデータ例を示す図である。
【発明を実施するための形態】
【００２２】
以下に本発明を実施するための、形態について説明する。本発明の技術的範囲は、添付の特許請求の範囲によって明確に定義されているため、以下の説明は、単に本発明の一般原理を例示する目的で行われている。したがって、本発明は、以下の説明に限定して解釈されるべきではない。
【００２３】
図２は、本願発明による複数テーブルの情報同期を実行する同期サービスＮのサーバ２００の概略構成図の一例である。同期サービスＮのサーバ２００は、記憶手段２１０（例えば、揮発性メモリ、不揮発性メモリ）、送受信手段２２０（例えば、通信インターフェース）、比較手段２３０（例えば、ＣＰＵの演算回路）、検索手段２４０（例えば、データベース操作プログラム）、ＨＴＭＬ生成手段２５０（例えば、ＨＴＭＬ生成プログラム）、およびコピー手段２６０（例えば、コピープログラム）を有する。また記憶手段２１０は利用者Ａ第１テーブル２１１、利用者Ａ第２テーブル２１２、利用者Ａ第３テーブル２１３、利用者Ｂテーブル２１４、利用者Ａ第１差分テーブル２１５、利用者Ａ第２差分テーブル２１６、利用者Ａ第３差分テーブル２１７、利用者Ａ第２副差分テーブル２１８、および利用者Ａ第３副差分テーブル２１９を有する。
【００２４】
図３は、同期サービスＮのサーバ２００が、ネットワーク３０１を通じて情報同期サービスＮを利用する利用者の情報端末やサーバと接続されている状態の一例である。図３に示す一例では、利用者Ａが第１情報端末３１１、第２情報端末３２１、および第３情報端末３３１の３台の情報端末を通じて、情報同期サービスＮを利用している。利用者Ａの第３情報端末３３１は、ＷｅｂサービスＸのサーバ３３０を介して、同期サービスＮのサーバ２００と接続されている。同期サービスＮのサーバ２００とＷｅｂサービスＸのサーバ３３０の間にあるネットワーク３０１と、ＷｅｂサービスＸのサーバ３３０と利用者Ａの第３情報端末３３１の間にあるネットワーク３０２は、同じネットワークであっても、異なるネットワークであってもよい。さらに図３に示す一例では、利用者Ｂの情報端末３４１がネットワーク３０１を通じて同期サービスＮのサーバ２００に接続されている。
【００２５】
図４は、利用者Ａの第１情報端末３１１の概略構成図の一例である。利用者Ａの第１情報端末は、送受信手段４１０、ＨＴＭＬ解析手段４２０、表示手段４３０（例えば、ディプレし）、入力手段４４０（例えば、キーボード）、および記憶手段４５０を有する。
【００２６】
図５は、利用者Ａの第２情報端末３２１の概略構成図の一例である。利用者Ａの第２情報端末は、送受信手段５１０、ＨＴＭＬ解析手段５２０（例えば、ＨＴＭＬ構文解析プログラム）、表示手段５３０、入力手段５４０、および演算手段５５０（例えば、ＣＰＵの演算回路）、および記憶手段５６０を有する。記憶手段５６０は、利用者Ａ第２副テーブル５６１を有する。
【００２７】
図６は、ＷｅｂサービスＸのサーバ３３０の概略構成図の一例である。ＷｅｂサービスＸのサーバ３３０は、送受信手段６１０、ＨＴＭＬ生成手段６２０、演算手段６３０、および記憶手段６６０を有する。記憶手段６６０は、利用者Ａ第３副テーブル６６１を有する。
【００２８】
図７は、利用者Ａの第３情報端末３３１の概略構成図の一例である。利用者Ａの第３情報端末は、送受信手段７１０、ＨＴＭＬ解析手段７２０、表示手段７３０、入力手段７４０、および記憶手段７５０を有する。
【００２９】
図８は、利用者Ｂの情報端末３４１の概略構成図の一例である。利用者Ｂの情報端末は、送受信手段８１０、ＨＴＭＬ解析手段８２０、表示手段８３０、入力手段８４０、および演算手段８５０を有する。
【００３０】
同期サービスＮのサーバの利用者Ａ第１テーブル２１１に格納されている情報は、ＨＴＭＬ生成手段２５０によってＨＴＭＬコードに変換され、利用者Ａの第１情報端末３１１に送信される。利用者Ａの第１情報端末は、これを受信後、ＨＴＭＬ解析手段４２０で解析した上、表示手段４３０に表示する。なお、「ＨＴＭＬコード」は情報が送受信される際の一形態である。任意の構造化文書の形態を用いることができる。また、一定の構文規則にしたがって生成された文字列なども使用できる。以下の記述においても同様である。
【００３１】
同期サービスＮのサーバの利用者Ａ第２テーブル２１２の情報は、送受信手段２２０によって利用者Ａの第２情報端末３２１に送信される。利用者Ａの第２情報端末では、これを受信後、記憶手段５６０の利用者Ａ第２副テーブル５６１に記憶する。利用者Ａの第２情報端末は、利用者Ａ第２副テーブル５６１に記憶された情報を表示手段５３０に表示する。ここで同期サービスＮのサーバ２００から利用者Ａの第２情報端末に送信するデータ形式、および利用者Ａ第２副テーブル５６１に記憶するデータ形式は特に限定されない。任意のデータ形式を用いることができる。
【００３２】
同期サービスＮのサーバの利用者Ａ第３テーブル２１３の情報は、送受信手段２２０によってＷｅｂサービスＸのサーバ３３０に送信される。ＷｅｂサービスＸのサーバ３３０は、受信した情報を記憶手段６６０の利用者Ａ第３副テーブル６６１に記憶する。次にＷｅｂサービスＸのサーバのＨＴＭＬ生成手段６２０が利用者Ａ第３副テーブル６６１に記憶された情報をＨＴＭＬコードに変換し、送受信手段６１０が利用者Ａの第３情報端末３３１に送信する。利用者Ａの第３情報端末は、これを受信した後、ＨＴＭＬ解析手段７２０で解析した上、送受信手段７３０に表示する。
【００３３】
すなわち、同期サービスＮのサーバにおける利用者Ａ第１テーブル２１１は、利用者Ａが利用者Ａ第１情報端末３１１のＷｅｂブラウザを通じて情報を閲覧するために使う。同様に利用者Ａ第２テーブル２１２は、利用者Ａ第２情報端末の利用者Ａ第２副テーブル５６１と同期し、利用者Ａが第２情報端末３２１において、利用者Ａ第２副テーブル５６１の結果を表示して閲覧するために使う。さらに利用者Ａ第３テーブル２１３は、ＷｅｂサービスＸのサーバ３３０の利用者Ａ第３副テーブル６６１と同期するし、利用者Ａが利用者Ａ第３情報端末３３１のＷｅｂブラウザを通じてＷｅｂサービスＸのサーバの利用者Ａ第３副テーブル６６１の情報を閲覧するために使う。
【００３４】
上記のような構成が使われる一例を説明する。いまたとえば、利用者Ａの第１、第２、および第３テーブルは電話番号、電子メールアドレス、各種ＷｅｂサービスのＩＤなどを管理するアドレス帳を記憶するテーブルであるとする。さらに、利用者Ａの第１情報端末３１１はパーソナルコンピュータ、利用者Ａの第２情報端末３２１が携帯電話機であるとする。同期サービスＮの利用者Ａは、パーソナルコンピュータを通じてＷｅｂブラウザで閲覧するアドレス帳と、携帯電話機のアドレス帳を同期したいという要求を持っている。利用者Ａが、パーソナルコンピュータのＷｅｂブラウザを通じてアドレス帳を閲覧する際は、パーソナルコンピュータに同期すべきテーブルを持たずに、直接利用者Ａ第１テーブル２１１を参照する。しかし、携帯電話の場合にはその記憶手段に利用者Ａの第２テーブル２１２とは独立した、アドレス帳のテーブルを持っている。この独立したテーブルが上記利用者Ａの第２副テーブル５６１に相当する。
【００３５】
さらにたとえば、利用者ＡはＳＮＳ（Ｓｏｃｉａｌ  Ｎｅｔｗｏｒｋ  Ｓｅｒｖｉｃｅ）を使っていたとする。利用者ＡはＳＮＳにおける知人のＩＤを上記アドレス帳と同期したいという要求を持っている。ＳＮＳにおける知人のＩＤは、同期サービスＮとは別の事業者が、別のＷｅｂサービスＸのサーバ３３０にテーブルを持って管理している。この別のＷｅｂサービスＸのテーブルが、上記利用者Ａの第３副テーブル６６１に相当する。
【００３６】
つまり、図１から図７に示す構成では、利用者Ａが次の３つの方法で同期サービスＮのサーバにあるテーブルの情報を得る。第1が、同期サービスＮのサーバ上のテーブルを情報端末がＷｅｂブラウザを用いて直接閲覧する場合である。第２は、同期サービスＮのサーバ上のテーブルと利用者Ａの情報端末上のテーブルを同期した上で、情報端末上のテーブルを閲覧する場合である。第３は、同期サービスＮのサーバ上のテーブルと、他のＷｅｂサービスＸのサーバ上のテーブルを同期した上で、情報端末を通じてＷｅｂサービスＸのサーバ上のテーブルを閲覧する場合である。この構成は一例に過ぎず、たとえば利用者Ａが上記第３の方法によって、ＷｅｂサービスＸおよびＷｅｂサービスＹの２つのＷｅｂサービスのサーバを通じて、同期サービスＮのサーバ上のテーブル群の情報を利用していてもよい。
【００３７】
以下では、同期サービスＮのサーバにある利用者Ａ第1テーブル２１１、利用者Ａ第２テーブル２１２、利用者Ａ第３テーブル２１３、利用者Ａの第２情報端末にある利用者Ａ第２副テーブル５６１、およびＷｅｂサービスＸのサーバ３３０にある利用者Ａ第３副テーブル６６１が同期する方法の一例を説明する。
【００３８】
いま、初期状態として利用者Ｂテーブル２１４が図９に示す状態にあったとする。利用者Ｂテーブル２１４は、利用者９１０、ラベル９２０、値９３０、行番号９４０の４列を有する。図９に示す一例では、利用者Ｂの自宅の電話番号が６５０−１１１−１１１１であり、また利用者Ｂが仕事に用いる電子メールアドレスがｂｗ＠ｈｏｇｅ．ｃｏｍであることを表している。図９は、本実施形態の説明に必要な行およびを抜粋したものであり、これに加えて利用者Ｂの他の情報を格納する列があってもよいし、利用者Ｂの他の情報を表す行や、他の利用者の情報を表す行があってもよい。また図９では一例として、電話番号や電子メールアドレスを例として示したが、ラベル９２０および値９３０の列に格納される情報は、図９に例示した以外の情報であっても、以下の説明は同様に適用できる。
【００３９】
さらにいま、初期状態として、利用者Ａ第１テーブル２１１、利用者Ａ第２テーブル２１２、利用者Ａ第３テーブル２１３、利用者Ａ第２副テーブル５６１、および利用者Ａ第３副テーブル６６１が図１０に示す状態にあったとする。
【００４０】
なお、この一例では利用者Ａ第２テーブルのラベル１０２１および値１０２２、また利用者Ａ第２副テーブルのラベル１０５２および値１０５３は、他のテーブルの値が変更された時に同期の対象にならず、値が変更されない属性を有しているとする。以下では、簡単のために、テーブルの一部がこのような属性を有することを、非同期属性を有すると呼ぶ。たとえば、図１０に示す各テーブルが、図１０に示す列に加えて、非同期属性を表す追加の列を持ち、この列に１が格納されて入れば非同期属性とする、などの方法で各テーブルのどの情報が非同期属性であるかを表すことができる。非同期属性の指定方法は何でもよい。図１０では、網掛けの部分に格納されている値１０２１、１０２２、１０５２、１０５３が非同期属性を有していることを表している。たとえば、上の説明のように利用者Ａの第１情報端末３１１はパーソナルコンピュータ、利用者Ａの第２情報端末３２１が携帯電話機、ＷｅｂサービスＸのサーバ３３０はＳＮＳ事業者のサーバだったとする。この場合、携帯電話機の記憶手段にある利用者Ａ第２テーブルにある電話番号は、主として携帯電話機で利用者Ａが管理している情報であるため、他の利用者からの情報開示や、他のテーブルの書き換えなどによって、自動的に同期したくないという要求があるかもしれない。図１０の一例における非同期属性は、たとえば、このような要求を満たすために用いられる。
【００４１】
次に図１１を参照して、本願発明による方法で、利用者Ａ第1テーブル２１１、利用者Ａ第２テーブル２１２、利用者Ａ第３テーブル２１３、利用者Ａ第２副テーブル５６１、および利用者Ａ第３副テーブル６６１が同期する方法の概要を説明する。まず、同期サービスＮのサーバのコピー手段２６０は、図１０に示す利用者Ａ第１テーブル２１１、利用者Ａ第２テーブル２１２、および利用者Ａ第３テーブル２１３の情報を各々、利用者Ａ第１差分テーブル２１５、利用者Ａ第２差分テーブル２１６、および利用者Ａ第３差分テーブル２１７にコピーする（ステップＳ１１０１）。また、コピー手段２６０が送受信手段２２０を通じて利用者Ａの第２情報端末３２１に、利用者Ａ第２副テーブル５６１の内容取得の要求を送る。利用者Ａの第２情報端末の送受信手段がこの要求を受け取ると、記憶手段にある利用者Ａ第２副テーブル５６１の情報を、送受信手段５１０を通じて、同期サービスＮのサーバ２００に送信する。同期サービスＮのサーバの送受信手段２２０がこれを受信すると、コピー手段２６０はこれを利用者Ａ第２副差分テーブル２１８にコピーする（ステップＳ１１０２）。さらに、コピー手段２６０が送受信手段２２０を通じてＷｅｂサービスＸのサーバ３３０に、利用者Ａ第３副テーブル６６１の内容取得の要求を送る。ＷｅｂサービスＸのサーバの送受信手段６１０がこの要求を受け取ると、記憶手段にある利用者Ａ第３副テーブル６６１の情報を、送受信手段６１０を通じて、同期サービスＮのサーバ２００に送信する。同期サービスＮのサーバの送受信手段２２０がこれを受信すると、コピー手段２６０はこれを利用者Ａ第３副差分テーブル２１９にコピーする（ステップＳ１１０３）。
【００４２】
なお、利用者第２副テーブルから利用者第２副差分テーブルへのコピー（ステップＳ１１０２）、および利用者第３副テーブルから利用者第３副差分テーブルへのコピー（ステップＳ１１０３）は、同期サービスＮのサーバ２００の外部に存在する情報端末またはサーバ上のテーブルから記憶手段２１０内のテーブルへのコピーである。このため、コピー手段２６０および送受信手段２２０を介して、ネットワークを経由して外部の情報端末やサーバと通信した後に、記憶手段２１０内の差分テーブルへのコピーが実行される。一方で、たとえば利用者Ａ第１テーブルから利用者Ａ第1差分テーブルへのコピー（ステップＳ１１０１）のように、同期サービスサーバＮの記憶手段２１０内のテーブル間のコピーは、送受信手段２２０を経由しない。このように、同期サービスＮのサーバの外部に存在する副テーブルから記憶手段２１０にある差分テーブルへのコピーと、記憶手段２１０内におけるテーブルから差分テーブルへのコピーでは、処理が異なる。しかし、同期対象となる利用者Ａのテーブル群を、本発明の一実施形態に係る方法においては、同期のためのコピーという点では同じ操作である。このためこれ以後は簡単のために、コピー元またはコピー先のテーブルが、同期サービスのサーバＮの記憶手段２１０にあるか、外部にあるかを問わず、一括してテーブル間のコピーと呼ぶ。コピー元またはコピー先のテーブルが同期サービスのサーバＮの外部にある場合には、適宜に送受信手段２２０を介して、外部の情報端末またはサーバとの間でコピー操作をおこなうものとする。本発明によるテーブル間の同期は、そのテーブルが同期サービスのサーバＮの内部にあるか外部にあるかを問わず適用できる。
【００４３】
次に、同期サービスＮのサーバのＨＴＭＬ生成手段２５０が利用者Ｂテーブル２１４に格納されている情報からＨＴＭＬコードを生成し、送受信手段２２０が利用者Ｂの情報端末３４１に送信する。利用者Ｂの情報端末の送受信手段８１０がこれを受信し、ＨＴＭＬ解析手段８２０が解析した上、図９に示す利用者Ｂテーブル２１４の情報を表示手段８３０に表示する（ステップＳ１１０４）。次に、利用者Ｂが入力手段８４０を通じて、利用者Ｂが利用者Ｂテーブル２１４を、図１２に示すように変更し、さらに変更の結果を利用者Ａに開示する要求を入力する。図９と図１２を比較するとわかるように、ここでは、自宅の電話番号「６５０−１１１−１１１１」９３１が、「６５０−９９９−９９９９」１２３１に変更された。また、電子メールアドレスｂｗ＠ｈｏｇｅ．ｃｏｍに関連づけたラベル［ｗｏｒｋ  ｅｍａｉｌ］９２２が、「ｈｏｍｅ  ｅｍａｉｌ」１２２２に変更された。さらに、新たな行１２１３が追加され、ラベル「ＳＮＳ−Ｘ」１２２３、値「ｂｅｎｗｈｉｔｅ」１２３３が入力された。送受信手段８１０は、これらの変更情報を、同期サービスＮのサーバ２００に送る（ステップＳ１１０５）。同期サービスＮのサーバの送受信手段２２０はこれを受信し、利用者Ｂテーブル２１４を、受信した変更情報に従って図１２に示すテーブルと同じ情報が格納されるように更新する（ステップＳ１２０６）。この時点で、利用者Ａの５つのテーブルは未だすべて図１０に示す初期状態にある。
【００４４】
なお、前記ステップＳ１１０１からＳ１１０３のコピーは、ステップＳ１１０７より以前であれば、いつ実行されてもよい。
【００４５】
テーブル比較手段２３０（例えば、ＣＰＵの演算回路を動作させてテーブルを比較するプログラム）が、更新された利用者Ｂテーブル２１４と、利用者Ａの５つのテーブル、すなわち利用者Ａ第１テーブル２１１、利用者Ａ第２テーブル２１２、利用者Ａ第３テーブル２１３、利用者Ａ第２副テーブル５６１、および利用者Ａ第３副テーブル６６１とを、本発明の一実施形態に係る方法により各々同期させる（ステップＳ１１０７）。
【００４６】
次に、図１３のフロー図を参照して、上述のように更新された利用者Ｂテーブル２１４と、各利用者Ａテーブル群とが上記ステップＳ１１０７において同期する方法について詳しく説明する。
【００４７】
はじめに、更新された利用者Ｂテーブル２１４と、利用者Ａ第１テーブル２１１が同期する方法を説明する。ここでは、図１３における「新テーブル」とは、図１２に示す更新後の利用者Ｂテーブル２１４であり、図１３における「旧テーブル」とは、図１０に示す同期前の利用者Ａ第1テーブル２１１であり、図１３における「差分テーブル」とは、ステップＳ１１０１の操作によって情報がコピーされた後の利用者Ａ第1差分テーブル２１５である。このため、この説明では図１３の新テーブル、旧テーブル、差分テーブルを各々利用者Ｂテーブル、利用者Ａ第１テーブル、および利用者Ａ第１差分テーブルと各々読み替えて説明する。
【００４８】
まず、利用者Ａ第１テーブル２１１および利用者Ａ第１差分テーブル２１５の行番号を表す変数ｉに整数０をセットする。同様に、利用者Ｂテーブル２１４の行番号を表す変数ｊに整数０をセットする。さらに、変数ｆｌａｇに整数０をセットする（ステップＳ１３０１）。変数ｉは、利用者Ａ第１テーブルおよび利用者Ａ第１差分テーブルで共通である。図１３に示す方法で同期操作をする前は、前記ステップＳ１１０１によるコピー操作によって、利用者Ａ第１テーブルと、利用者Ａ第１差分テーブルに格納されている情報は等しいからである。
【００４９】
次に、利用者Ａ第１テーブル２１１の行ｉ＝０が非同期属性であるか否かを判断する（ステップＳ１３０２）。非同期属性ではないためｎｏとなり、ステップＳ１３０３に進む。次に、テーブル比較手段２３０が、利用者Ｂテーブルのｊ＝０の行と、利用者Ａ第１差分テーブルのｉ＝０の行を比較し、ラベルと値の両方が等しいか否かを判断する（ステップＳ１３０３）。図１２と図１０を参照すると、この一例では、ラベルは「ｈｏｍｅ  ｐｈｏｎｅ」で等しい。しかし、利用者第１差分テーブル２１５の値「６５０−１１１−１１１１」と、利用者Ｂテーブル２１４の値「６５０−９９９−９９９９」との間に不一致が検出される。これは、利用者Ｂがステップ１１０４において、利用者Ｂテーブルの該当する部分を変更したためである。したがって、ステップＳ１３０３、Ｓ１３０４、Ｓ１３０６の分岐はすべてｎｏとなるが、ステップＳ１３０８の分岐はｙｅｓとなり、ステップＳ１３０９に進む。ステップＳ１３０９では、コピー手段２６０が、利用者Ｂテーブルのｊ＝０の行の値「６５０−９９９−９９９９」１２３１を、利用者Ａ第１テーブル２１１のｉ＝０の行の値にコピーする。「６５０−１１１−１１１１」１０１１はこのコピー操作よって消去される。これによって、ステップＳ１１０６で利用者Ｂが更新した新しい電話番号が、利用者Ａ第１テーブル２１１に反映される。また、ステップＳ１３０９ではｆｌａｇに１がセットされる。次に利用者Ａ第１差分テーブルの行番号ｉを１増加させて（ステップＳ１３１０）ｉ＝１とした後、利用者Ａ第１差分テーブル２１５にｉ＝１なる行が存在するか否かを判断する（ステップＳ１３１１）。ここではｙｅｓとなり、ステップＳ１３０２に進む。
【００５０】
次に、テーブル比較手段２３０が、利用者Ｂテーブルの行ｊ＝０と、利用者Ａ第1差分テーブル２１５の行ｉ＝１を比較する。ここでは、ラベルと値との両方に不一致が検出されるので、ステップＳ１３０３はｎｏとなり、ステップＳ１３１０に進み、ｉ＝２がセットされる。しかし図１０に示す利用者Ａ第１テーブル２１１にこの行はないので、ステップＳ１３１１がｎｏとなり、ステップＳ１３１２に進む。ここでは上記ステップＳ１３０９でｆｌａｇ＝１がセットされているため、ステップＳ１３１２はｎｏとなり、ステップＳ１３１４に進む。ステップＳ１３１４では、ｊに１がセットされ、ｉおよびｆｌａｇには０が各々リセットされる。更新後の利用者Ｂテーブルには、ｊ＝１の行が存在するので、ステップＳ１３１５の分岐はｙｅｓとなり、ステップＳ１３０１に進む。ここまでは、更新後の利用者Ｂテーブルのｊ＝０の行を、利用者Ａ第１差分テーブルのすべての行と比較した上で、利用者Ｂテーブルの更新箇所を、利用者Ａ第１テーブルに反映させるステップである。
【００５１】
次に、利用者Ｂテーブルｊ＝１の行を利用者Ａ差分テーブルのすべての行と比較した上で、利用者Ｂテーブル２１４の更新箇所を利用者Ａ第1テーブル２１１に反映させる。この各ステップは上記と同様であるので、適宜省略して説明する。利用者Ｂテーブルのｊ＝１の行については、利用者Ａ第１差分テーブルのｉ＝０の行では、ステップＳ１３０３の分岐がｙｅｓとなるが、ｉ＝１の行ではステップＳ１３０６の分岐がｙｅｓとなる。ステップＳ１３０７では、コピー手段２６０が、利用者Ｂテーブルの行番号ｊ＝１のラベル「ｈｏｍｅ  ｅｍａｉｌ」１２２２を、利用者Ａ第１テーブル２１１のｉ＝１の行のラベルにコピーする。「ｗｏｒｋ  ｅｍａｉｌ」１０１２はこのコピー操作よって消去される。これによって、ステップＳ１１０６で利用者Ｂが更新した新しいラベルが、利用者Ａ第１テーブル２１１に反映される。また、ステップＳ１３０７ではｆｌａｇに１がセットされる。
【００５２】
利用者Ｂテーブルｊ＝１の行の、利用者Ａ第１差分テーブル２１５の各行との比較が終わると、ステップＳ１３１４でｊに２がセットされる。この後、ｊ＝２の行と利用者Ａ第１差分テーブル２１５の各行との比較が行われる。更新後の利用者Ｂテーブル２１４のｊ＝２の行は、前記ステップＳ１１０６で利用者Ｂによって追加された行である。ここでは利用者Ａ第１差分テーブル２１１のすべての行番号ｉについて、ステップＳ１３０３の分岐がｙｅｓとなる。このため、ｆｌａｇ＝０の状態でステップＳ１３１２へ進む。このため、ステップＳ１３１２の分岐はｎｏとなり、ステップＳ１３１３に進む。ステップＳ１３１３では、利用者Ａ第１テーブル２１１に行番号２を有する新たな行を追加し、コピー手段２６０がこの追加した行に更新後の利用者Ｂテーブルの行番号ｊ＝２の情報を追加する。ここでは、ラベルとして「ＳＮＳ−Ｘ」１２２３が、また値として「ｂｅｎｗｈｉｔｅ」１２３３が各々利用者Ａ第１テーブルに追加される。これによって、ステップＳ１１０６で利用者Ｂによって追加された新たな情報が、利用者Ａ第１テーブル２１１に反映される。
【００５３】
以上で更新された利用者Ｂテーブル２１４と、利用者Ａ第１テーブル２１１の間の同期が完了した。その結果を図１４の利用者Ａ第１テーブルに示す。なお、これまでの説明でわかるように、利用者Ａ第１差分テーブル２１５は、この同期操作以前の利用者Ａ第１テーブル２１１の内容を保持しておき、更新された利用者Ｂテーブル２１４との差分を検出するために用いる。
【００５４】
次に、ステップＳ１１０７において、更新された利用者Ｂテーブル２１４と、非同期属性を有する行を持つ利用者Ａ第２テーブル２１２および利用者Ａ第２副テーブル５６１との間での同期を説明する。詳細は上記利用者Ａ第１テーブルの同期と同様なので、適宜省略して説明する。
【００５５】
以下では図１３を参照して、ステップＳ１１０６で更新された利用者Ｂテーブル２１４の情報を、ステップＳ１１０７で利用者Ａ第２テーブル２１２、および利用者Ａ第２副テーブル５６１と同期するための処理を説明する。ここでは、図１３における新テーブルは、更新された利用者Ｂテーブル２１４、旧テーブルは利用者Ａ第２テーブル２１２および利用者Ａ第２副テーブル５６１、また差分テーブルは利用者Ａ第２差分テーブル２１６および利用者Ａ第２副差分テーブル２１８と読み替えて説明する。
【００５６】
まず、利用者Ａ第２テーブル２１２、利用者Ａ第２副テーブル５６１、利用者Ａ第２差分テーブル２１６、および利用者Ａ第２副差分テーブル２１８の行番号を表す変数ｉに整数０をセットする。同様に、利用者Ｂテーブル２１４の行番号を表す変数ｊに整数０をセットする。さらに、変数ｆｌａｇに整数０をセットする（ステップＳ１３０１）。行番号ｉは、利用者Ａ第２テーブル２１２、利用者Ａ第２副テーブル５６１、利用者Ａ第２差分テーブル２１６、および利用者Ａ第２副差分テーブル２１８で共通である。図１３に示す処理で同期操作をする前は、図１０に示すように前記ステップＳ１１０１およびＳ１１０２によるコピー処理によって、利用者Ａ第２テーブル２１２、利用者Ａ第２副テーブル５６１、利用者Ａ第２差分テーブル２１６、および利用者Ａ第２副差分テーブル２１８は等しい。
【００５７】
まず、利用者Ａ第２テーブル２１２および利用者Ａ第２副テーブル５６１の行番号ｉ＝０が非同期属性を有するか否かを判断する（ステップＳ１３０２）。行番号ｉ＝０はともに非同期属性を有するため、ステップＳ１３０２の分岐はｙｅｓとなり、ステップＳ１３１０に進む。すなわち、前記ステップＳ１１０６で利用者Ｂテーブル２１４の行番号ｊ＝０の値が変更されているにもかかわらず、利用者Ａ第２テーブル２１２および利用者Ａ第２副テーブル５６１のｉ＝０の行が非同期属性を有するために、利用者Ｂテーブルの変更を利用者Ａ第２テーブルおよび利用者Ａ第２副テーブルに反映させる処理をスキップすることになる。しかし次に、ステップＳ１３１０でｉ＝１がセットされ、テーブル比較手段２３０が、利用者Ｂテーブルのｊ＝０の行と、利用者Ａ第２差分テーブル２１６および利用者Ａ第２副テーブル差分テーブル２１８のｉ＝１の行を比較する。この結果ステップＳ１３０３の分岐がｙｅｓとなり、ステップＳ１３１０へ進む。ステップＳ１３１０ではｉ＝２となるが、利用者Ａ第２テーブル２１２および利用者Ａ第２副テーブル５６１にｉ＝２は存在しないため、ステップＳ１３１２に進む。ここでは、ｆｌａｇ＝０のままであるから、ステップＳ１３１３が実行される。ステップＳ１３１３では、利用者Ａ第２テーブル２１２および利用者Ａ第２副テーブル５６１に行番号ｉ＝２を有する新たな行を追加し、コピー手段２６０がこの追加したｉ＝２の行に更新後の利用者Ｂテーブルの行番号ｊ＝０の情報を追加する。ここでは、ラベルとして「ｈｏｍｅ  ｐｈｏｎｅ」１２３１が、また値として「６５０−９９９−９９９９」１２３３が各々利用者Ａ第２テーブルおよび利用者第２副テーブルのｉ＝２の行として追加される。
【００５８】
次にステップＳ１３１４でｊ＝１がセットされかつｉ＝０にリセットされた後、ステップＳ１３０２以降の処理を繰り返す。すると、ｉ＝０の行は非同期属性のためステップＳ１３０２がｙｅｓとなりステップＳ１３１０に進むが、ｉ＝１の行でステップＳ１３０６の分岐がｙｅｓとなる。ステップＳ１３０７では、コピー手段２６０が、利用者Ｂテーブル２１４の行番号ｊ＝１のラベル「ｈｏｍｅ  ｅｍａｉｌ」１２２２を、利用者Ａ第２テーブル２１２および利用者第２副テーブル５６１のｉ＝１の行のラベルにコピーする。利用者Ａ第２テーブル２１２の「ｗｏｒｋ  ｅｍａｉｌ」１０２３および利用者Ａ第２副テーブル５６１の「ｗｏｒｋ  ｅｍａｉｌ」１０５１はこのコピー操作よって消去される。
【００５９】
次に、ステップＳ１３１４でｊに２がセットされる。この後、ｊ＝２の行と利用者Ａ第２差分テーブル２１６および利用者Ａ第２副差分テーブル２１８の各行との比較が行われる。ここでもｉ＝０の行は非同期属性のためステップＳ１３０２がｙｅｓとなり、さらにｉ＝１の行ではステップＳ１３０３がｙｅｓとなる。このためｆｌａｇ＝０の状態でステップＳ１３１２へ進む。ステップＳ１３１３では、利用者Ａ第２テーブル２１２および利用者Ａ第２副テーブル５６１に行番号ｉ＝３を有する新たな行を追加し、コピー手段がこの追加した行に更新後の利用者Ｂテーブルの行番号ｊ＝２の情報を追加する。ここでは、ラベルとして「ＳＮＳ−Ｘ」１２２３が、また値として「ｂｅｎｗｈｉｔｅ」１２３３が各々利用者Ａ第２テーブル２１２および利用者Ａ第２副テーブル５６１のｉ＝３の行に追加される。これによって、ステップＳ１１０６で利用者Ｂによって追加された新たな情報が、利用者Ａ第２テーブル２１２および利用者Ａ第２副テーブル５６１に反映される。
【００６０】
以上で更新された利用者Ｂテーブル２１４と、一部非同期属性を有する利用者Ａ第２テーブル２１１および利用者Ａ第２副テーブル５６１の間の同期が完了した。その結果を図１４の同期サービスＮのサーバの利用者Ａ第２テーブル２１２、および利用者Ａの第２情報端末の利用者Ａ第２副テーブル５６１に各々示す。なお、この例では利用者Ａ副テーブル５６１は、利用者Ａの第２情報端末の記憶手段５６０にある。したがってたとえば、コピー手段２６０が利用者Ｂテーブルのｊ＝１の行のラベル「ｈｏｍｅ  ｅｍａｉｌ」を利用者Ａ副テーブル５６１のｉ＝１の行のラベルにコピーする場合には、同期サービスＮのサーバの送受信手段２２０、ネットワーク３０１、および利用者Ａの第２情報端末の送受信手段５１０を通じて行われる。図１３のフロー図では簡単のために、これらサーバと、外部の情報端末またはサーバとの間の情報の送受信に係わる処理は省略している。
【００６１】
なお、図１３に示したアルゴリズムでは、利用者Ａ第２テーブル２１２および利用者Ａ第２副テーブル５６１の非同期属性を有する行の処理では、ステップＳ１３０２の分岐でｙｅｓとなるため、ステップＳ１３０３、Ｓ１３０４、Ｓ１３０６およびＳ１３０８におけるラベルおよび値の同値判定を実行しない。この結果、図１４の利用者Ａ第２テーブル２１２および利用者Ａ第２副テーブル５６１には、ｉ＝２の行１４２３および１４４３が各々追加された。この追加の実用的な意味を説明する。たとえば、利用者Ａの第２情報端末３２１が携帯電話機であり、そのアドレス帳である利用者Ａ第２副テーブル５７１の電話番号は利用者Ａが自ら管理しているので、利用者Ｂからの情報開示によって変更されることを望まないために、非同期属性が付与されているものとする。ここで利用者Ｂから情報開示がなされたとする。ラベルまたは値が異なる場合には、利用者Ａが参照する可能性がある情報という仮定のもとに、利用者Ａが管理するｉ＝０の行とは別の行として利用者Ｂから開示された新たな電話番号を行ｉ＝２として携帯電話のアドレス帳に記憶する。この例で示した図１４のｉ＝２の行１４２３および１４４３の追加は、利用者Ａが自ら管理する情報１４２５と、利用者Ｂから開示された情報１４２２を別に保存しておきたいという要求に応えている。
【００６２】
この例では、利用者Ｂから開示された電話番号「６５０−９９９−９９９９」１４２２および１４４２のラベル「ｈｏｍｅ  ｐｈｏｎｅ」１４２１および１４４１が、非同期属性を持つｉ＝０の行のラベル「ｈｏｍｅ  ｐｈｏｎｅ」と等しい。この場合、利用者Ａが携帯電話機で記憶しているｉ＝０の行の情報と、利用者Ｂから開示されたｉ＝２の行を同じ情報と見なした上で、利用者Ｂから開示された情報を受け付けないという要求があることも考えられる。この場合には、ステップＳ１３０２に相当する非同期属性の判定を、ステップＳ１３０６またはステップＳ１３０８の後に実行する。その上で、非同期属性を持っている行については、ステップＳ１３０７またはステップＳ１３０９をスキップするという方法を用いてもよい。
【００６３】
次に、再び図１３を参照して、ステップＳ１１０７において、更新された利用者Ｂテーブル２１４と、利用者Ａ第３テーブル２１３および利用者Ａ第３副テーブル６６１を同期する方法を説明する。以下の説明では、図１３における新テーブルは図１２に示す更新後の利用者Ｂテーブル２１４であり、図１３における旧テーブルは図１０に示す同期前の利用者Ａ第３テーブル２１３および利用者Ａ第３副テーブル６６１であり、図１３における差分テーブルは、ステップＳ１１０１によって情報がコピーされた後の利用者Ａ第３差分テーブル２１７、およびステップＳ１１０３によって情報がコピーされた後の利用者Ａ第３差副差分テーブル２１９である。
【００６４】
詳細は、利用者Ａ第１テーブルの同期処理と同じなので、詳細のステップは適宜省略して説明する。同期前の利用者Ａ第３テーブル２１３と、利用者Ａ第３副テーブル６６１の初期状態が図１０である。前記利用者Ａ第２テーブル２１２の場合と異なるのは、初期状態において利用者Ａ第３テーブル２１３と利用者Ａ第３副テーブル６６１の内容が同じではない点である。すなわち、利用者Ａ第３テーブル２１３のｉ＝０の行のラベル１０３１が「ＳＮＳ−Ｘ」、値１０３２が「ｂｅｎｗｈｉｔｅ」であるのに対して、利用者Ａ第３副テーブル６６１のｉ＝０の行のラベル１０６１は「ｈｏｍｅ  ｐｈｏｎｅ」、値１０６２は「６５０−１１１−１１１１」である。本発明の一実施形態に係る方法による同期は、このように同期対象の複数のテーブルの初期状態が異なる場合においても有効である。
【００６５】
まず、利用者Ａ第３テーブル２１３、利用者Ａ第３差分テーブル２１７、利用者Ａ第３副テーブル６６１、および利用者Ａ第３副差分テーブル２１９の行番号を表す変数ｉに整数０をセットする。同様に、利用者Ｂテーブルの行番号を表す変数ｊに整数０をセットする。さらに、変数ｆｌａｇに整数０をセットする（ステップＳ１３０１）。行番号ｉは、利用者Ａ第３テーブル２１３、利用者Ａ第３副テーブル６６１、利用者Ａ第３差分テーブル２１７、および利用者Ａ第３副差分テーブル２１９で共通である。図１３に示す方法で同期処理をする前は、前記ステップＳ１１０１およびＳ１１０３によるコピー操作によって、利用者Ａ第３テーブル２１３と利用者Ａ第３差分テーブル２１７、また利用者Ａ第３副テーブル６６１と利用者Ａ第３副差分テーブル２１９は各々等しいからである。
【００６６】
この場合、利用者Ａ第３テーブル２１３および利用者Ａ第３副テーブル６６１に非同期属性を有する行はないので、以下の処理ではステップＳ１３０２はすべてｎｏとなる。図１３に示す処理において、まず更新後の利用者Ｂテーブル２１４のｊ＝０の行と、利用者Ａ第３差分テーブル２１７および利用者Ａ第３副差分テーブル２１９のｉ＝０の行との比較が行われる。利用者Ａ第３差分テーブル２１７においてはステップＳ１３０３がｙｅｓ、利用者Ａ第３副差分テーブル２１９においてはステップＳ１３０８がｙｅｓとなる。従って、利用者Ａ第３テーブル２１３のｉ＝０の行のラベル１０３１および値１０３２は変化しない。しかし、利用者Ａ第３副テーブル６６１においては、コピー手段２６０はｉ＝０の行の値「６５０−１１１−１１１１」１０６２を、更新後の利用者Ｂテーブル２１４に従い「６５０−９９９−９９９９」に書き換える。次にｊ＝０の行とｉ＝１の行の比較では、利用者Ａ第３テーブル２１３および利用者Ａ第３副テーブル６６１ともにステップＳ１３０３がｙｅｓとなる。利用者Ａ第３差分テーブル２１７および利用者Ａ第３副差分テーブル２１９にｉ＝２は存在しないので、ステップＳ１３１２に進む。ここで利用者Ａ第３差分テーブル２１７についてはｆｌａｇ＝０であるが、利用者Ａ第３副差分テーブル２１９の場合は、ｆｌａｇ＝１である。従って、コピー手段２６０が更新後の利用者Ｂテーブル２１４のｊ＝０の行を、利用者Ａ第３テーブル２１３のｉ＝２の行として追加するが、利用者Ａ第３副テーブル６６１には追加しない。
【００６７】
次に更新後の利用者Ｂテーブル２１４のｊ＝１の行と利用者Ａ第３差分テーブル２１７および利用者Ａ第３副差分テーブル２１９の各行との比較が実行される。利用者Ａ第３差分テーブル２１７および利用者Ａ第３副差分テーブル２１９で、ｉ＝１の行でステップＳ１３０６の分岐がｙｅｓとなるが、ｉ＝０およびｉ＝２の行ではＳ１３０３の分岐がｙｅｓとなる。したがって、コピー手段２６０はｉ＝１の行のラベル「ｗｏｒｋ  ｅｍａｉｌ」１０３３および１０６３を、ラベル「ｈｏｍｅ  ｅｍａｉｌ」１２２２に書き換える。
【００６８】
次に、更新後の利用者Ｂテーブル２１４のｊ＝２の行と、利用者Ａ第３差分テーブル２１７および利用者Ａ第３副差分テーブル２１９の各行との比較が実行される。利用者Ａ第３差分テーブル２１７においては、ｉ＝０の行ではステップＳ１３０４の分岐がｙｅｓに、ｉ＝１およびｉ＝２ではステップＳ１３０３の分岐がｙｅｓとなる。この結果、利用者Ａ第３差分テーブル２１７の各行についての上記のような処理の後、ｆｌａｇ＝１となるため、コピー手段２６０が利用者Ａ第３テーブル２１３に変更を加えない。しかし、利用者Ａ第３副差分テーブル６６１においては、この時点でｉ＝２は存在せず、なおかつｉ＝０およびｉ＝１の両方でステップＳ１３０３の分岐がｙｅｓとなる。したがって、ｆｌａｇ＝０の状態でステップＳ１３１２の分岐を徹。したがって、ステップＳ１３１３の処理によって、更新後の利用者Ｂテーブルのｊ＝２の行のラベル「ＳＮＳ−Ｘ」１２２３および値」「ｂｅｎｗｈｉｔｅ」１２３３が、利用者Ａ第３副テーブルのｊ＝２の行として追加される。
【００６９】
以上で、変更された利用者Ｂテーブル２１４と、利用者Ａ第３テーブル２１３および利用者Ａ第３副テーブル６６１の同期が完了した。これらの処理の結果を図１４の同期サービスＮのサーバの利用者Ａ第３テーブル２１３および、ＷｅｂサービスＸのサーバの利用者Ａ第３副テーブル６６１に示す。図１０に示すように、利用者Ａ第３テーブルと利用者Ａ第３副テーブルの初期状態は異なっているが、上に述べた本願発明の方法による同期によって、図１４に示すように利用者Ａ第３テーブル２１３と利用者Ａ第３副テーブル６６１との内容は、行の順番が異なるだけで、同じ状態となっている。以上で、図１１のステップＳ１１０７の処理が完了した。
【００７０】
図１１および図１３のフロー図を使った説明では、変更された利用者Ｂテーブル２１４を利用者Ａに開示し、利用者Ａの各テーブルが同期する例を用いた。利用者Ａ自身が、利用者Ａ第１テーブル２１１、利用者Ａ第２テーブル２１２、利用者Ａ第２副テーブル５６１、利用者Ａ第３テーブル２１３、または利用者Ａ第３副テーブル６６１のいずれかを書き換えた場合においても、同様の処理によって、各テーブルが同期する。
【００７１】
たとえばいま、図１１の処理が終了した状態の利用者Ａ第１テーブル２１１、利用者Ａ第２テーブル２１２、利用者Ａ第２副テーブル５６１、利用者Ａ第３テーブル２１３、および利用者Ａ第３副テーブル６６１は、図１４に示す状態にある。ここでたとえば、利用者Ａがその第１情報端末３１１の入力手段４４０を通じて利用者Ａ第１テーブル２１１のｉ＝２の行の値「ｂｅｎｗｈｉｔｅ」１４１３を「ｓｕｓａｎｂ」に変更したとする。ステップＳ１１０１からステップＳ１１０３のように、利用者Ａ第２テーブル２１２、利用者Ａ第２副テーブル５６１、利用者Ａ第３テーブル２１３、および利用者Ａ第３副テーブル６６１の内容を、各々利用者Ａ第２差分テーブル２１６、利用者Ａ第２副差分テーブル２１８、利用者Ａ第３差分テーブル２１７、または利用者Ａ第３副差分テーブル２１９にコピーする。そして、図１３に示す各ステップによって、変更された利用者Ａ第１テーブル２１１と、利用者Ａ第１テーブル２１１、利用者Ａ第２テーブル２１２、利用者Ａ第２副テーブル５６１、利用者Ａ第３テーブル２１３、および利用者Ａ第３副テーブル６６１を各々同期する。この場合は、図１３における旧テーブルは、利用者Ａ第２テーブル２１２、利用者Ａ第２副テーブル５６１、利用者Ａ第３テーブル２１３、および利用者Ａ第３副テーブル６６１である。また図１３における差分テーブルは、利用者Ａ第２差分テーブル２１６、利用者Ａ第２副差分テーブル２１８、利用者Ａ第３差分テーブル２１７、および利用者Ａ第３副差分テーブル２１９である。さらに図１３における新テーブルは、変更後の利用者Ａ第１テーブル２１１である。このように読み替えた上で、図１３に示す処理を利用者Ａ第２テーブル２１２、利用者Ａ第２副テーブル５６１、利用者Ａ第３テーブル２１３、および利用者Ａ第３副テーブル６６１の各々について実行すれば、図１５のような結果となり、利用者Ａの有するテーブル群の同期が完了する。
【００７２】
次に、本発明の一実施形態による作用効果について説明する。これまで述べたように、利用者の操作、または他者からの開示によって情報が変更または追加される際に、その情報がテーブルの何行目の何列目の情報に対する、変更または追加なのかを指定しないにもかかわらず、本願発明の方法では、複数のテーブルを同期させることができる。この点に係る本願発明の効果には以下４点がある。
【００７３】
第１の利点は、同期対象テーブルに与えられた新たな情報が、何行目の何列目の情報かという情報を与えられなくとも、複数の同期対象テーブルが正しく同期する点である。上記実施形態では、利用者Ｂが利用者Ａに開示した情報は、利用者Ａの有する複数のテーブルの何行目または何列目の情報であるかは、全く指定されていない。にもかかわらず、既に述べたように、利用者Ａの有する複数のテーブルは正しく同期している。
【００７４】
第２の利点は、上記のような本発明の一実施形態に係る方法によれば、新たな情報が同期対象テーブルの変更なのか、または追加なのかが明示的に指定されない場合においても、図１３に示した同値判定処理により、追加または変更の判断を自動的におこなえる点である。たとえば、上に示した実施形態における利用者Ａ第1テーブル２１１の同期処理では、利用者Ｂから利用者Ａに開示された情報のラベルおよび値の両方が、既に利用者Ａのテーブルに存在すれば、利用者Ａのテーブルに何ら変更を加えない。利用者Ｂから利用者Ａに開示された情報の、ラベルが等しいが値が異なる場合は、値が変更されたと判断して値のみを利用者Ｂから開示された情報で上書きする。逆に利用者Ｂから利用者Ａに開示された情報の、値が等しいがラベルが異なる場合には、ラベルが変更されたと判断してラベルのみを、利用者Ｂから開示された情報で上書きする。利用者Ｂから利用者Ａに開示された情報の、ラベルも値も等しくなければ利用者Ｂから追加された情報を新規情報として新たな行に追加する。
【００７５】
第３の利点は、テーブルの一部が非同期属性を持つ場合にも、上記第１の利点が有効である点である。たとえば、上記実施形態における利用者Ａ第２テーブル２１２および利用者Ａ第２副テーブル５６１の同期処理では、ｉ＝０の行が非同期属性を有するにもかかわらず、上記第１の利点がすべて有効である。
【００７６】
第４の利点は、同期対象のテーブルが複数あり、かつこの複数のテーブルの初期状態が同一でない場合においても、正しく同期する点である。たとえば、上記実施形態における利用者Ａ第３テーブル２１３および利用者Ａ第３副テーブル６６１の同期処理では、これら２つの利用者Ａのテーブルの初期状態は異なっている。しかし上記実施形態で述べたように、これら２つのテーブルは正しく同期する。
【図１】
2010191516.tif 000003
【図２】
2010191516.tif 000004
【図４】
2010191516.tif 000005
【図５】
2010191516.tif 000006
【図６】
2010191516.tif 000007
【図７】
2010191516.tif 000008
【図８】
2010191516.tif 000009
【図９】
2010191516.tif 000010
【図１０】
2010191516.tif 000011
【図１１】
2010191516.tif 000012
【図１２】
2010191516.tif 000013
【図１３】
2010191516.tif 000014
【図１４】
2010191516.tif 000015
【図１５】
2010191516.tif 000016
【図３】
2010191516.tif 000017