JP2007164523A - Information processor, distributed synchronous information system, information synchronization method and program - Google Patents

Information processor, distributed synchronous information system, information synchronization method and program Download PDF

Info

Publication number
JP2007164523A
JP2007164523A JP2005360713A JP2005360713A JP2007164523A JP 2007164523 A JP2007164523 A JP 2007164523A JP 2005360713 A JP2005360713 A JP 2005360713A JP 2005360713 A JP2005360713 A JP 2005360713A JP 2007164523 A JP2007164523 A JP 2007164523A
Authority
JP
Japan
Prior art keywords
update
information
synchronization
database
machine
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.)
Granted
Application number
JP2005360713A
Other languages
Japanese (ja)
Other versions
JP5092234B2 (en
Inventor
Takuya Araki
拓也 荒木
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2005360713A priority Critical patent/JP5092234B2/en
Publication of JP2007164523A publication Critical patent/JP2007164523A/en
Application granted granted Critical
Publication of JP5092234B2 publication Critical patent/JP5092234B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

<P>PROBLEM TO BE SOLVED: To provide a distributed synchronous information system capable of efficiently synchronizing data stored by respective apparatuses without requiring a lot of storage area. <P>SOLUTION: A relational database 102 stores an updater updating a line and an event number for deciding whether it is before or after the update in each the updater correspondingly to data of each the line. An update information transmission requirement means 106 of a machine A 100 retrieves a maximum event number in each the updater in reference to the relational database 102, and transmits update information transmission requirement including it to a machine B 110. An update information transmission means 107 of the machine B 110 extracts the update on and after the maximum event number in each the updater included in the update information transmission requirement from the relational database 102, transmits it to the machine A 100, and makes the relational database 102 of the machine A be updated. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は、情報処理装置、分散同期型情報システム、情報同期方法、及び、プログラムに関し、更に詳しくは、データベースを有する複数の情報装置間でデータベースのデータを同期する情報処理装置、分散同期型情報システム、情報同期方法、及び、プログラムに関する。   The present invention relates to an information processing device, a distributed synchronization information system, an information synchronization method, and a program, and more particularly, an information processing device that synchronizes database data among a plurality of information devices having a database, and distributed synchronization information. The present invention relates to a system, an information synchronization method, and a program.

従来、情報システムとして用いられているものには、LDAPやSun Microsystems社によるNISがある。これらの情報システムは、サーバ・クライアント方式のシステムとして構成されており、クライアントの端末を、ネットワークから切断した状態で持ち運ぶ場合には、端末側からデータベースにアクセスすることができない。端末を、ネットワークから切断した状態で使用する方法としては、サーバ上のデータベースを、端末にコピーして持ち運ぶ方法が考えられる。しかし、この場合には、ネットワークから切断された状態でもデータベースを参照することはできるものの、複数の端末でデータベースの更新が行われた場合には、データベース内のデータを複数の端末間で同期することができない。   Conventionally used information systems include LDAP and NIS by Sun Microsystems. These information systems are configured as a server / client system, and when a client terminal is carried while disconnected from the network, the database cannot be accessed from the terminal side. As a method of using the terminal while disconnected from the network, a method of copying the database on the server to the terminal and carrying it can be considered. However, in this case, the database can be referred to even when disconnected from the network. However, when the database is updated at a plurality of terminals, the data in the database is synchronized between the plurality of terminals. I can't.

端末をネットワークから切断してデータ更新を行った場合には、ネットワーク再接続時に、端末間でデータベース内の全てのデータを送受信し、双方のデータを比較することで、各端末のデータベースを同期することができる。しかし、その場合には、送受信データ量が膨大になるという問題がある。このような問題を解決する従来技術としては、例えば特許文献1に記載された技術がある。特許文献1では、サーバ上のデータベースをマスターとし、クライアント上のデータベースを非マスターとする。クライアントは、ネットワークから切断された後の更新を、差分情報としてテーブルに記憶する。ネットワーク再接続時には、サーバとの間で差分情報を送受信し、マスターと非マスターとで同期を取る。   When data is updated after the terminal is disconnected from the network, all data in the database is transmitted and received between the terminals when the network is reconnected, and the databases of each terminal are synchronized by comparing both data. be able to. However, in that case, there is a problem that the amount of transmitted / received data becomes enormous. As a conventional technique for solving such a problem, there is a technique described in Patent Document 1, for example. In Patent Document 1, a database on a server is a master and a database on a client is a non-master. The client stores the update after being disconnected from the network in the table as difference information. When the network is reconnected, difference information is transmitted to and received from the server, and the master and the non-master are synchronized.

複数の情報機器(情報処理装置)間で情報を同期する技術としては、非特許文献1に記載された技術がある。非特許文献1では、各情報機器を対等に扱い、ネットワーク接続時に、それぞれが持つ更新情報を同期する。図21は、非特許文献1に記載の技術における情報同期の様子を示している。各情報機器は、データベース2101のデータに対して、更新情報のログ2102を保持する。ログ2102には、データベース2101について、どの部分をどのような値に更新したかを示す情報に加え、その更新を行った機器のIDと、更新を行った時刻とが含まれる。   As a technique for synchronizing information among a plurality of information devices (information processing apparatuses), there is a technique described in Non-Patent Document 1. In Non-Patent Document 1, each information device is treated equally, and the update information held by each is synchronized when connected to the network. FIG. 21 shows a state of information synchronization in the technique described in Non-Patent Document 1. Each information device holds an update information log 2102 for the data in the database 2101. The log 2102 includes information indicating which part of the database 2101 has been updated to what value, and the ID of the device that performed the update, and the time when the update was performed.

非特許文献1では、2つの情報機器間で情報同期を行い、これを繰り返すことにより、複数の情報機器間で情報同期を行う。2つの情報機器間での情報同期では、一方の情報機器(受信側)は、自装置が持つログ2102を走査し、各機器IDについて、最も遅い更新時刻を求め、これを、他方の情報機器(送信側)に送信する。送信側機器は、ログ2102を走査し、各機器IDについて、受信側機器から通知された更新時刻以降に行われた更新を、受信側機器に渡す。これにより、送信側機器が保持していて、受信側機器が保持していない情報を、受信側機器に伝えることができる。受信側機器と送信側機器との立場を入れ替え、同様の操作を行うことにより、両者の情報を同期させることができる。   In Non-Patent Document 1, information synchronization is performed between two information devices, and information synchronization is performed between a plurality of information devices by repeating this. In information synchronization between two information devices, one information device (reception side) scans the log 2102 of its own device, finds the latest update time for each device ID, and uses this as the other information device. Send to (sender). The transmission side device scans the log 2102, and for each device ID, passes the update performed after the update time notified from the reception side device to the reception side device. As a result, information held by the transmitting device and not held by the receiving device can be transmitted to the receiving device. By exchanging the positions of the receiving device and the transmitting device and performing the same operation, the information of both can be synchronized.

特開2001−142766号公報(図6、図7、段落0038〜0050など)JP 2001-142766 A (FIG. 6, FIG. 7, paragraphs 0038 to 0050, etc.) Karin Petersen, Mike J. Spreitzer, Douglas B. Terry著、 Flexible Update Propagation for Weakly Consistent Replication、Proceedings of the 16th ACM Symposium on Operating Systems Principles (SOSP-16)、1997年、288〜301頁Karin Petersen, Mike J. Spreitzer, Douglas B. Terry, Flexible Update Propagation for Weakly Consistent Replication, Proceedings of the 16th ACM Symposium on Operating Systems Principles (SOSP-16), 1997, pp. 288-301

特許文献1では、マスターとなるデータベースはただ一つであり、全ての同期は、マスターとの間で1対1で行う必要がある。非マスターのクライアント同士が更新の同期を行う場合について考えると、クライアントが持っている情報は、マスターとの差分のみであるため、互いが未知の情報を交換することはできず、非マスターのクライアント同士では、同期を行うことができない。例えば、家庭内の機器群やPDAなど携帯型情報機器の同期を考える場合、特許文献1では、携帯する情報機器相互間で同期を行うことができない。また、マスターとなる情報機器は、同期時には常にネットワークに接続され、電源が投入されていなければならないという問題がある。   In Patent Document 1, there is only one database serving as a master, and all synchronization needs to be performed on a one-to-one basis with the master. Considering the case where non-master clients synchronize updates, the information held by the clients is only the difference from the master, so they cannot exchange unknown information. They cannot synchronize with each other. For example, when considering synchronization of a portable information device such as a household device group or a PDA, Patent Document 1 cannot perform synchronization between portable information devices. In addition, there is a problem that the information device as a master must be always connected to the network and powered on at the time of synchronization.

非特許文献1に記載の技術では、全ての更新情報をログ2102に保存する必要があり、ログ情報が膨大となるため、実装に際して、多量の記憶領域が必要になるという問題がある。ログ2102のどの部分が不要であるかを、何らかの手法で判断することも考えられるが、その場合には、アルゴリズムが複雑となる。また、非特許文献1では、更新情報をログ形式で管理しているため、ログ走査に時間がかかり、情報同期時の効率が悪い。更に、特許文献1を含め、従来技術では、情報同期が2つの情報機器間での同期のみに限定されており、複数の情報機器間で同期を行う場合には、2つの情報機器間での情報同期を繰り返し行う必要があり、情報同期時に、多数回の通信が必要であるという問題がある。   In the technique described in Non-Patent Document 1, all update information needs to be stored in the log 2102. Since the log information becomes enormous, there is a problem that a large amount of storage area is required for mounting. It may be possible to determine which part of the log 2102 is unnecessary by some method, but in that case, the algorithm becomes complicated. In Non-Patent Document 1, since update information is managed in a log format, log scanning takes time, and the efficiency at the time of information synchronization is poor. Furthermore, in the prior art including Patent Document 1, information synchronization is limited only to synchronization between two information devices, and when synchronization is performed between a plurality of information devices, There is a problem that it is necessary to repeatedly perform information synchronization, and communication is required many times during information synchronization.

本発明は、上記従来技術の問題点を解消し、多量の記憶領域を必要とせずに、各機器が記憶するデータを効率よく同期できる情報処理装置、分散同期型情報システム、情報同期方法、及び、プログラムを提供することを目的とする。   The present invention solves the above-mentioned problems of the prior art, an information processing apparatus capable of efficiently synchronizing data stored in each device without requiring a large amount of storage area, a distributed synchronization information system, an information synchronization method, and The purpose is to provide a program.

上記目的を達成するために、本発明の分散同期型情報システムは、それぞれがデータベースを有する複数の情報処理装置を備え、該情報処理装置の間で前記データベースを同期させる分散同期型情報システムにおいて、前記情報処理装置のそれぞれが、前記データベースの各データと、データ更新を行った情報処理装置を示す更新者、及び、情報処理装置内での更新の前後を判断するための情報を含む同期情報とを対応付けて記憶する記憶装置を検索し、前記更新者ごとの最新の更新を示す情報を含む更新情報送信要求を他の情報処理装置に送信する更新情報送信要求手段と、前記更新情報送信要求を受信した他の情報処理装置から、前記更新情報送信要求に含まれる更新者ごとの最新の更新よりも新しい更新により更新された更新データ及び該更新データに対応する同期情報を含む更新情報を受信し、自装置内の前記データベース及び同期情報を更新する第1のデータベース同期手段とを備えたことを特徴とする。   In order to achieve the above object, a distributed synchronous information system according to the present invention includes a plurality of information processing apparatuses each having a database, and the distributed synchronous information system synchronizes the database among the information processing apparatuses. Each of the information processing devices includes each data of the database, an updater indicating the information processing device that performed the data update, and synchronization information including information for determining before and after the update in the information processing device The update information transmission request means for searching for a storage device that stores the information in association with each other and transmitting an update information transmission request including information indicating the latest update for each updater to another information processing device, and the update information transmission request Update data updated by a newer update than the latest update for each updater included in the update information transmission request from another information processing apparatus that has received It receives the update information including the synchronization information corresponding to the update data, characterized by comprising a first database synchronization means for updating the database and synchronization information in its own device.

本発明のデータベース同期方法は、それぞれがデータベースを有する複数の情報処理装置を備え、該情報処理装置の間で前記データベースを同期させる分散同期型情報システムにおけるデータベース同期方法おいて、前記情報処理装置が、データベース更新時に、更新データと、データ更新を行った情報処理装置を示す更新者、及び、情報処理装置内での更新の前後を判断するための情報を含む同期情報とを対応付けて記憶するステップと、
前記情報処理装置が、前記同期情報を検索し、前記更新者ごとの最新の更新を示す情報を含む更新情報送信要求を他の情報処理装置に送信するステップと、
前記情報処理装置が、前記更新情報送信要求を受信した他の情報処理装置から、前記更新情報送信要求に含まれる更新者ごとの最新の更新よりも新しい更新により更新された更新データ及び該更新データに対応する同期情報を含む更新情報を受信するステップと、
前記情報処理装置が、受信した更新情報に基づいて、自装置内の前記データベース及び同期情報を更新するステップとを有することを特徴とする。
The database synchronization method of the present invention includes a plurality of information processing apparatuses each having a database, and the information processing apparatus includes: a database synchronization method in a distributed synchronization information system that synchronizes the database among the information processing apparatuses; When updating the database, update data, an updater indicating the information processing apparatus that performed the data update, and synchronization information including information for determining before and after the update in the information processing apparatus are stored in association with each other. Steps,
The information processing device searches the synchronization information, and transmits an update information transmission request including information indicating the latest update for each updater to another information processing device;
Update data updated by a newer update than the latest update for each updater included in the update information transmission request from another information processing apparatus that has received the update information transmission request, and the update data Receiving update information including synchronization information corresponding to
The information processing apparatus includes a step of updating the database and the synchronization information in the own apparatus based on the received update information.

本発明の情報処理装置は、データベースを有し、ネットワークを介して接続される他の情報処理装置との間で前記データベースを同期する情報処理装置において、前記データベースの各データと、データ更新を行った情報処理装置を示す更新者、及び、情報処理装置内での更新の前後を判断するための情報を含む同期情報とを対応付けて記憶する記憶装置を検索し、前記更新者ごとの最新の更新を示す情報を含む更新情報送信要求を他の情報処理装置に送信する更新情報送信要求手段と、前記更新情報送信要求を受信した他の情報処理装置から、前記更新情報送信要求に含まれる更新者ごとの最新の更新よりも新しい更新により更新された更新データ及び該更新データに対応する同期情報を含む更新情報を受信し、自装置内の前記データベース及び同期情報を更新する第1のデータベース同期手段を備えたことを特徴とする。   An information processing apparatus according to the present invention includes a database and updates data with each data of the database in an information processing apparatus that synchronizes the database with another information processing apparatus connected via a network. Search for a storage device that associates and stores update information indicating the information processing device and synchronization information including information for determining before and after update in the information processing device, and updates the latest information for each updater. Update information transmission request means for transmitting an update information transmission request including information indicating update to another information processing apparatus, and an update included in the update information transmission request from another information processing apparatus that has received the update information transmission request Update information including update data updated by a newer update than the latest update for each user and synchronization information corresponding to the update data is received, and the database in the own device is received. And characterized by comprising a first database synchronization means for updating the synchronization information.

本発明のプログラムは、コンピュータが有するデータベースを、ネットワークを介して接続される他のコンピュータのデータベースと同期させるプログラムであって、前記コンピュータに、データベース更新時に、更新データと、データ更新を行ったコンピュータを示す更新者、及び、コンピュータ内での更新の前後を判断するための情報を含む同期情報とを対応付けて記憶するステップと、前記同期情報を検索し、前記更新者ごとの最新の更新を示す情報を含む更新情報送信要求を他のコンピュータに送信するステップと、前記更新情報送信要求を受信した他のコンピュータから、前記更新情報送信要求に含まれる更新者ごとの最新の更新よりも新しい更新により更新された更新データ及び該更新データに対応する同期情報を含む更新情報を受信するステップと、受信した更新情報に基づいて、自装置内の前記データベース及び同期情報を更新するステップとを実行させることを特徴とする。   The program according to the present invention is a program for synchronizing a database of a computer with a database of another computer connected via a network, wherein the computer performs update data and data update when updating the database. And a step of storing in association with synchronization information including information for determining before and after the update in the computer, searching for the synchronization information, and updating the latest update for each of the updaters An update information transmission request including information to be transmitted to another computer, and an update that is newer than the latest update for each updater included in the update information transmission request from another computer that has received the update information transmission request. Update information including update data updated by the method and synchronization information corresponding to the update data Receiving, based on the received update information, characterized in that and a step of updating the database and synchronization information in its own device.

本発明の分散同期型情報システム、情報処理装置、データベース同期方法、及び、プログラムでは、データベースの各データに対応して、そのデータを更新した更新者と、情報処理装置(コンピュータ)ごとの更新の前後を判断するための情報とを含む同期情報を記憶する。この同期情報を参照することで、自装置内のデータベース内において、各更新者について、最新の更新が何であるかを知ることができる。他の情報処理装置との同期時には、同期情報を参照して、各更新者についての最新の更新を示す情報を取得し、これを他の情報処理装置に送信し、その他の情報処理装置から、自装置のデータベースにおける更新者ごとの最新の更新よりも新しい更新によって更新されたデータを受信して、データベースを更新する。このようにすることにより、データベース内の全てのデータを比較しなくても、自装置のデータベースでされていない更新を取得することができ、データベース内の全データを送受信して比較する場合に比して、送受信されるデータ量を少なくすることができる。また、更新ログを保存する場合には、更新が行われるたびに更新ログの行が増えていき、更新回数の増加に伴って更新ログのサイズが増大するが、本発明では、データベースの各データに対応して同期情報を記憶するため、更新回数が増えても同期情報のサイズは増大せず、更新ログを保存する場合に比して、必要な記録領域が少なくて済む。   In the distributed synchronous information system, information processing apparatus, database synchronization method, and program according to the present invention, an updater who has updated the data corresponding to each data in the database, and an update for each information processing apparatus (computer) Synchronization information including information for determining before and after is stored. By referring to this synchronization information, it is possible to know what the latest update is for each updater in the database in the own apparatus. When synchronizing with other information processing devices, refer to the synchronization information to obtain information indicating the latest update for each updater, send this to other information processing devices, from other information processing devices, Data updated by a newer update than the latest update for each updater in the database of the own device is received, and the database is updated. By doing so, it is possible to obtain updates that are not made in the database of the own device without comparing all the data in the database, compared with the case where all the data in the database is transmitted and received and compared. Thus, the amount of data transmitted and received can be reduced. In addition, when an update log is stored, the number of update log lines increases each time an update is performed, and the size of the update log increases as the number of updates increases. Therefore, the size of the synchronization information does not increase even if the number of updates increases, and a smaller recording area is required than when an update log is stored.

本発明の分散同期型情報システムは、自装置内で更新者として前記データベースを更新すると、自装置内での更新の前後を判断するための情報を作成し、当該更新データに対応させて同期情報を更新する同期情報更新手段を更に備える構成を採用できる。本発明のデータベース同期方法は、前記同期情報を記憶するステップでは、前記情報処理装置は、自装置内で更新者として前記データベースを更新すると、自装置内での更新の前後を判断するための情報を作成し、当該更新データに対応させて同期情報を更新する構成を採用できる。   The distributed synchronous information system according to the present invention creates information for determining before and after update in the own device when the database is updated as an updater in the own device, and synchronizes information corresponding to the update data. It is possible to employ a configuration that further includes synchronization information updating means for updating. In the database synchronization method of the present invention, in the step of storing the synchronization information, when the information processing apparatus updates the database as an updater in the own apparatus, information for determining before and after the update in the own apparatus Can be created, and the synchronization information can be updated in correspondence with the update data.

本発明の分散同期型情報システム及びデータベース同期方法では、前記情報処理装置内での更新の前後を判断するための情報が、前記情報処理装置内で前記データベースを更新するたびにインクリメントされる情報処理装置ごとのイベント番号である構成を採用できる。また、本発明のプログラムでは、前記コンピュータ内での更新の前後を判断するための情報が、前記コンピュータ内で前記データベースを更新するたびにインクリメントされるコンピュータごとのイベント番号である構成を採用できる。この場合、イベント番号の大小を比較することにより、データベースを更新した更新者ごとに、更新の前後を判断することができる。更新の前後を判断する情報としては、更新時刻を用いることもできる。その場合には、更新時刻の前後により、更新者ごとに、更新の前後を判断できる。   In the distributed synchronization type information system and database synchronization method of the present invention, information for determining before and after updating in the information processing apparatus is incremented each time the database is updated in the information processing apparatus. A configuration that is an event number for each device can be adopted. In the program of the present invention, it is possible to adopt a configuration in which the information for determining before and after updating in the computer is an event number for each computer that is incremented each time the database is updated in the computer. In this case, by comparing the magnitudes of the event numbers, it is possible to determine before and after updating for each updater who has updated the database. The update time can also be used as information for determining before and after the update. In that case, before and after the update time, the update before and after can be determined for each updater.

本発明の分散同期型情報システムでは、前記同期情報が更新時刻を含み、前記第1のデータベース同期手段は、前記更新情報に含まれる同期情報の更新時刻が、自装置が記憶する同期情報の更新時刻よりも新しいと、前記データベース及び同期情報を更新する構成を採用できる。本発明のデータベース同期方法では、前記同期情報が更新時刻を含み、前記データベース及び同期情報を更新するステップでは、前記情報処理装置は、前記更新情報に含まれる同期情報の更新時刻が、自装置が記憶する同期情報の更新時刻よりも新しいと、前記データベース及び同期情報を更新する構成を採用できる。本発明のプログラムでは、前記同期情報が更新時刻を含み、前記データベース及び同期情報を更新するステップでは、前記更新情報に含まれる同期情報の更新時刻が、自装置が記憶する同期情報の更新時刻よりも新しいと、前記データベース及び同期情報を更新する構成を採用できる。この場合、新しいデータが、古いデータによって更新されることを防ぐことができる。更新時刻は、更新者ごとの更新の前後を判断するための情報に付加する形で同期情報に含めることができ、或いは、更新者ごとの更新の前後を判断するための情報として更新時刻を用いる場合には、これと共用してもよい。   In the distributed synchronous information system according to the present invention, the synchronization information includes an update time, and the first database synchronization means is configured to update the synchronization information stored in the own device, with the update time of the synchronization information included in the update information. If it is newer than the time, a configuration for updating the database and the synchronization information can be adopted. In the database synchronization method of the present invention, the synchronization information includes an update time, and in the step of updating the database and the synchronization information, the information processing apparatus determines that the update time of the synchronization information included in the update information is A configuration in which the database and the synchronization information are updated when the update time of the stored synchronization information is newer can be employed. In the program of the present invention, the synchronization information includes an update time, and in the step of updating the database and the synchronization information, the update time of the synchronization information included in the update information is greater than the update time of the synchronization information stored in the own device. If it is new, a configuration for updating the database and the synchronization information can be adopted. In this case, new data can be prevented from being updated by old data. The update time can be included in the synchronization information in a form added to the information for determining before and after the update for each updater, or the update time is used as information for determining before and after the update for each updater. In some cases, this may be shared.

本発明の分散同期型情報システム及びデータベース同期方法では、前記同期情報が、現時点までに更新を行った情報処理装置と、情報処理装置内での更新の前後を判断するための情報との組を含む更新履歴を更に含む構成を採用できる。本発明のプログラムでは、前記同期情報が、更新を行ったコンピュータと、コンピュータ内での更新の前後を判断するための情報との組を含む更新履歴を更に含む構成を採用できる。この場合、更新履歴を参照することで、どのような経路で更新が行われたかを知ることができる。   In the distributed synchronization type information system and the database synchronization method of the present invention, the synchronization information includes a pair of an information processing apparatus that has been updated so far and information for determining before and after the update in the information processing apparatus. It is possible to employ a configuration that further includes an update history. In the program of the present invention, a configuration can be adopted in which the synchronization information further includes an update history including a set of a computer that has been updated and information for determining before and after the update in the computer. In this case, by referring to the update history, it is possible to know what route is used for the update.

本発明の分散同期型情報システムでは、前記第1のデータベース同期手段は、受信した更新情報に含まれる更新履歴と、自装置が記憶する更新履歴とを比較し、受信した更新情報に含まれる更新履歴が、自装置が記憶する更新履歴を含むと判断すると、前記データベース及び対応する同期情報を更新する構成を採用できる。本発明のデータベース同期方法は、前記情報処理装置が、受信した更新情報に含まれる更新履歴と、自装置が記憶する更新履歴とを比較するステップを更に有し、前記情報処理装置は、受信した更新情報に含まれる更新履歴が、自装置が記憶する更新履歴を含むと判断すると、前記データベース及び対応する同期情報を更新する構成を採用できる。本発明のプログラムでは、前記コンピュータに、受信した更新情報に含まれる更新履歴と、自装置が記憶する更新履歴とを比較するステップを更に実行させ、前記データベース及び同期情報を更新するステップでは、更新履歴を比較するステップで、受信した更新情報に含まれる更新履歴が、自装置が記憶する更新履歴を含むと判断されると、前記データベース及び対応する同期情報を更新する構成を採用できる。受信した更新情報の同期情報に含まれる更新履歴が、自装置が記憶する同期情報の更新履歴を含む場合には、途中の更新までは同じ経路で更新されており、その後、自装置以外の情報処理装置において、新たな更新がされたことを示している。このような場合には、受信した更新情報で、データベース及び同期情報を更新しても問題はなく、受信した更新情報でデータベースを更新することにより、他の情報処理装置との間でデータベースを同期することができる。   In the distributed synchronization type information system of the present invention, the first database synchronization unit compares the update history included in the received update information with the update history stored in the own device, and updates included in the received update information. When it is determined that the history includes an update history stored in the device itself, a configuration for updating the database and the corresponding synchronization information can be employed. In the database synchronization method of the present invention, the information processing apparatus further includes a step of comparing an update history included in the received update information with an update history stored in the own apparatus. When it is determined that the update history included in the update information includes the update history stored in the device itself, a configuration for updating the database and the corresponding synchronization information can be employed. In the program of the present invention, the computer further executes a step of comparing the update history included in the received update information with the update history stored in the own device, and in the step of updating the database and the synchronization information, the update is performed. In the step of comparing the histories, when it is determined that the update history included in the received update information includes the update history stored in the device itself, a configuration of updating the database and the corresponding synchronization information can be employed. When the update history included in the synchronization information of the received update information includes the update history of the synchronization information stored in the own device, it is updated on the same route until the update in the middle, and then information other than the own device This indicates that a new update has been made in the processing device. In such a case, there is no problem in updating the database and synchronization information with the received update information, and the database is synchronized with other information processing apparatuses by updating the database with the received update information. can do.

本発明の分散同期型情報システムは、各情報処理装置のデータベースに反映された更新について、更新者ごとに最新の更新を示す情報を記憶する更新伝播情報を参照して、前記更新履歴から、全ての情報処理装置のデータベースで反映されている更新以前の履歴を削除する履歴削除手段を更に備える構成を採用できる。本発明のデータベース同期方法は、前記情報処理装置が、各情報処理装置のデータベースに反映された更新について、更新者ごとに最新の更新を示す情報を記憶する更新伝播情報を参照して、前記更新履歴から、全ての情報処理装置のデータベースで反映されている更新以前の履歴を削除するステップを更に有する構成を採用できる。本発明のプログラムは、前記コンピュータに、各コンピュータのデータベースに反映された更新について、更新者ごとに最新の更新を示す情報を記憶する更新伝播情報を参照して、前記更新履歴から、全てのコンピュータのデータベースで反映されている更新以前の履歴を削除するステップを更に実行させる構成を採用できる。各情報処理装置は、更新伝播情報により、各情報処理装置について、各情報処理装置内のデータベースでどの時点の更新までの更新が行われたかを更新者ごとに管理する。この更新伝播情報を調べることにより、更新者ごとに、最低限、どの時点までの更新が全ての情報処理装置内のデータベースでされたかを特定することができる。例えば、更新の前後を判断するための情報としてイベント番号を用いる場合、ある更新者について、各情報処理装置での、その更新者の最新の更新を示す情報のうちで最も古い更新を示す情報(イベント番号の最小値)がイベント番号「8」であれば、イベント番号「8」までの更新は、全ての情報処理装置内のデータベースでされていると特定できる。この場合には、その更新者によるイベント番号「8」以前の更新履歴は、既に全ての情報処理装置内のデータベースで更新されているので不要であると判定できる。このような不要な更新履歴を削除することにより、更新回数の増加に伴って更新履歴が増大することを避けることができる。   The distributed synchronous information system of the present invention refers to update propagation information that stores information indicating the latest update for each updater for updates reflected in the database of each information processing apparatus. It is possible to adopt a configuration further comprising history deletion means for deleting the history before update reflected in the database of the information processing apparatus. In the database synchronization method of the present invention, the information processing apparatus refers to the update propagation information that stores information indicating the latest update for each updater with respect to the update reflected in the database of each information processing apparatus. A configuration that further includes a step of deleting the history before update reflected in the database of all information processing apparatuses from the history can be adopted. The program according to the present invention refers to update propagation information that stores information indicating the latest update for each updater, and updates all the computers from the update history. It is possible to adopt a configuration in which the step of deleting the history before the update reflected in the database is further executed. Each information processing apparatus manages, for each updater, the update up to which point in time in the database in each information processing apparatus has been updated for each information processing apparatus based on the update propagation information. By examining this update propagation information, for each updater, it is possible to specify at least what point in time the update has been performed in the databases in all the information processing apparatuses. For example, when an event number is used as information for determining before and after the update, for an updater, information indicating the oldest update among information indicating the latest update of the updater in each information processing apparatus ( If the event number (minimum value) is the event number “8”, it can be specified that the update up to the event number “8” is performed in the databases in all the information processing apparatuses. In this case, it can be determined that the update history before the event number “8” by the updater is unnecessary because it has already been updated in the databases in all the information processing apparatuses. By deleting such an unnecessary update history, it is possible to avoid an increase in the update history as the number of updates increases.

本発明の分散同期型情報システムは、自装置内で前記データベースを更新すると、ネットワーク接続中の他の情報処理装置に、更新データと、該更新データに対応する同期情報とを送信する更新伝播手段と、他の情報処理装置の更新伝播手段によって送信された更新データ及び同期情報を受信し、前記データベース及び同期情報を更新する第2のデータベース同期手段とを更に備える構成を採用できる。本発明のデータベース同期方法は、前記情報処理装置が、自装置内で前記データベースを更新すると、ネットワーク接続中の他の情報処理装置に、更新データと、該更新データに対応する同期情報とを送信するステップと、前記情報処理装置が、前記更新データ及び該更新データに対応する同期情報を送信するステップで送信された更新データ及び同期情報を受信し、前記データベース及び同期情報を更新するステップとを更に有する構成を採用できる。本発明のプログラムは、前記コンピュータに、自装置内で前記データベースを更新すると、ネットワーク接続中の他のコンピュータに、更新データと、該更新データに対応する同期情報とを送信するステップと、前記更新データ及び該更新データに対応する同期情報を送信するステップで送信された更新データ及び該更新データに対応する同期情報を受信し、前記データベース及び同期情報を更新するステップとを更に実行させる構成を採用できる。この場合、ある情報処理装置で行われたデータベースの更新が、ネットワーク接続中の他の情報処理装置に反映されることで、ネットワーク接続中の情報処理装置間で、データベースを同期させることができる。   The distributed synchronous information system of the present invention updates the database in its own device, and updates update means for transmitting update data and synchronization information corresponding to the update data to other information processing devices connected to the network And a second database synchronization unit that receives the update data and the synchronization information transmitted by the update propagation unit of the other information processing apparatus and updates the database and the synchronization information. In the database synchronization method of the present invention, when the information processing apparatus updates the database in its own apparatus, it transmits update data and synchronization information corresponding to the update data to another information processing apparatus connected to the network. And receiving the update data and the synchronization information transmitted in the step of transmitting the update data and the synchronization information corresponding to the update data, and updating the database and the synchronization information. Furthermore, the structure which has is employable. The program according to the present invention includes a step of transmitting update data and synchronization information corresponding to the update data to another computer connected to the network when the database is updated in the computer. A configuration is adopted in which the update data transmitted in the step of transmitting the data and the synchronization information corresponding to the update data and the synchronization information corresponding to the update data are received and the database and the synchronization information are updated. it can. In this case, the database update performed by a certain information processing apparatus is reflected on other information processing apparatuses connected to the network, so that the databases can be synchronized between the information processing apparatuses connected to the network.

本発明の分散同期型情報システムでは、他の情報処理装置から更新情報送信要求を受信すると、自装置が記憶する同期情報を参照して、受信した更新情報送信要求に含まれる更新者ごとの最新の更新よりも新しい更新を検索し、該検索により抽出された更新の更新データと、該更新データに対応する同期情報とを含む更新情報を、前記更新情報送信要求を送信した情報処理装置に向けて送信する更新情報送信手段を更に備える構成を採用できる。本発明のデータベース同期方法は、前記情報処理装置が、他の情報処理装置から更新情報送信要求を受信すると、自装置が記憶する同期情報を参照して、受信した更新情報送信要求に含まれる更新者ごとの最新の更新よりも新しい更新を検索するステップと、前記情報処理装置が、前記検索により抽出された更新の更新データと、該更新データに対応する同期情報とを含む更新情報を、前記更新情報送信要求を送信した情報処理装置に向けて送信するステップとを更に有する構成を採用できる。本発明のプログラムは、前記コンピュータに、他のコンピュータから更新情報送信要求を受信すると、自装置が記憶する同期情報を参照して、受信した更新情報送信要求に含まれる更新者ごとの最新の更新よりも新しい更新を検索するステップと、前記検索により抽出された更新の更新データと、該更新データに対応する同期情報とを含む更新情報を、前記更新情報送信要求を送信したコンピュータに向けて送信するステップとを更に実行させる構成を採用できる。更新情報送信要求を受信した側の情報処理装置は、自装置内の同期情報を参照することで、受信した更新情報送信要求に含まれる更新者ごとの最新の更新よりも新しい更新、つまり、更新情報送信要求を送信した側のマシンでされておらず、更新情報送信要求を受信した側のマシンでされている更新を抽出できる。このように抽出した更新データを含む更新情報を、更新情報送信要求を送信した側の情報処理装置に送信することで、少ないデータ量で、データベースを同期させることができる。また、ログ情報に比して情報量が少ない同期情報を検索することで更新情報の抽出するため、ログ情報を用いる場合に比して、検索を高速に行うことができる。   In the distributed synchronous information system of the present invention, when an update information transmission request is received from another information processing apparatus, the update information for each updater included in the received update information transmission request is referred to by referring to the synchronization information stored in the own apparatus. Update information including the update data extracted by the search and the synchronization information corresponding to the update data is sent to the information processing apparatus that has transmitted the update information transmission request. It is possible to employ a configuration further comprising update information transmitting means for transmitting the information. In the database synchronization method of the present invention, when the information processing apparatus receives an update information transmission request from another information processing apparatus, the update information included in the received update information transmission request is referred to by referring to the synchronization information stored in the own apparatus. Searching for an update that is newer than the latest update for each person, and the information processing device includes update information including update data extracted by the search and synchronization information corresponding to the update data, It is possible to employ a configuration further comprising a step of transmitting the update information transmission request to the information processing apparatus that has transmitted the update information transmission request. When the program of the present invention receives an update information transmission request from another computer to the computer, the program updates the latest update for each updater included in the received update information transmission request with reference to the synchronization information stored in the device. The update information including the step of searching for a newer update, the update data of the update extracted by the search, and the synchronization information corresponding to the update data is transmitted to the computer that has transmitted the update information transmission request. It is possible to adopt a configuration that further executes the step of performing. The information processing device on the receiving side of the update information transmission request refers to the synchronization information in its own device, so that the update that is newer than the latest update for each updater included in the received update information transmission request, that is, update It is possible to extract updates that are not performed by the machine that has transmitted the information transmission request but are performed by the machine that has received the update information transmission request. By transmitting the update information including the update data extracted in this way to the information processing apparatus on the side that transmitted the update information transmission request, the database can be synchronized with a small amount of data. Further, since update information is extracted by searching for synchronous information having a smaller amount of information than log information, the search can be performed at a higher speed than when log information is used.

本発明の分散同期型情報システムでは、ネットワークに再接続された情報処理装置が、ネットワークに接続されている他の情報処理装置のうちの1つから更新情報送信要求を受信すると、該再接続された情報処理装置の前記更新情報送信手段は、前記更新情報をネットワークに接続された他の情報処理装置に向けてマルチキャスト送信する構成を採用できる。本発明のデータベース同期方法は、ネットワークに再接続された情報処理装置が、ネットワークに接続されている他の情報処理装置のうちの1つから更新情報送信要求を受信すると、前記更新情報を、ネットワークに接続された他の情報処理装置に向けてマルチキャスト送信するステップを更に有する構成を採用できる。本発明のプログラムは、前記コンピュータに、前記コンピュータがネットワークに再接続した後に、ネットワークに接続された他のコンピュータのうちの1つから更新情報送信要求を受信すると、前記更新情報を、ネットワークに接続された他のコンピュータに向けてマルチキャスト送信するステップを更に実行させる構成を採用できる。この場合、ネットワーク接続中の他の情報処理装置のデータベース間の同期が取れているときには、ネットワークに接続した情報処理装置と、ネットワーク接続中の他の情報処理装置のそれぞれとの間で更新情報送信要求及び更新情報の送受信を行わなくても、各情報処理装置のデータベースを同期させることができる。従って、1対1の通信を繰り返してデータベースを同期させる場合に比して、効率よくデータベースを同期させることができる。   In the distributed synchronous information system of the present invention, when an information processing apparatus reconnected to the network receives an update information transmission request from one of the other information processing apparatuses connected to the network, the reconnection is performed. The update information transmitting means of the information processing apparatus can employ a configuration in which the update information is multicast transmitted to another information processing apparatus connected to the network. When the information processing apparatus reconnected to the network receives an update information transmission request from one of the other information processing apparatuses connected to the network, the database synchronization method of the present invention transmits the update information to the network It is possible to adopt a configuration further including a step of multicast transmission to another information processing apparatus connected to the. When the program of the present invention receives an update information transmission request from one of the other computers connected to the network after the computer is reconnected to the network, the program of the present invention connects the update information to the network. It is possible to adopt a configuration that further executes a step of multicast transmission to another computer. In this case, when the databases of the other information processing apparatuses connected to the network are synchronized, update information is transmitted between the information processing apparatus connected to the network and each of the other information processing apparatuses connected to the network. The database of each information processing apparatus can be synchronized without transmitting / receiving request and update information. Therefore, the database can be synchronized more efficiently than when the one-to-one communication is repeated to synchronize the database.

本発明の分散同期型情報システム、情報処理装置、データベース同期方法、及び、プログラムでは、データベースの各データに対応して、そのデータを更新した更新者と、情報処理装置(コンピュータ)ごとの更新の前後を判断するための情報とを含む同期情報を記憶する。この同期情報を参照して、自装置内のデータベース内における各更新者の最新の更新を示す情報を調べて、これを含む更新情報送信要求を他の情報処理装置に送信し、その他の情報装置から、自装置内のデータベース内における各更新者の最新の更新よりの新しい更新により更新されたデータ及びそのデータに対応する同期情報を受信して、データベース及び同期情報を更新する。このようにすることにより、データベース内の全てのデータを比較しなくても、自装置のデータベースでされていない更新を取得することができ、データベース内の全データを送受信して比較する場合に比して、送受信されるデータ量を少なくすることができる。また、データベースの各データに対応して同期情報を記憶するため、更新回数が増えても同期情報のサイズは増大せず、更新ログを保存する場合に比して、必要な記録領域が少なくて済む。   In the distributed synchronous information system, information processing apparatus, database synchronization method, and program according to the present invention, an updater who has updated the data corresponding to each data in the database, and an update for each information processing apparatus (computer) Synchronization information including information for determining before and after is stored. With reference to this synchronization information, information indicating the latest update of each updater in the database in the own apparatus is checked, an update information transmission request including this is transmitted to another information processing apparatus, and other information apparatus The data updated by the new update from the latest update of each updater in the database in the own device and the synchronization information corresponding to the data are received, and the database and the synchronization information are updated. By doing so, it is possible to obtain updates that are not made in the database of the own device without comparing all the data in the database, compared with the case where all the data in the database is transmitted and received and compared. Thus, the amount of data transmitted and received can be reduced. In addition, since synchronization information is stored corresponding to each data in the database, the size of the synchronization information does not increase even if the number of updates increases, and the required recording area is less than when an update log is saved. That's it.

以下、図面を参照し、本発明の実施の形態を詳細に説明する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.

第1実施形態
図1は、本発明の第1実施形態の分散同期型情報システムの構成を示している。分散同期型情報システム10は、情報の同期を行う任意の数の情報機器で構成されており、同図の例では、マシンA100、マシンB110、及び、マシンC120の3台の情報機器により構成される。マシンA100は、アプリケーション101、関係データベース102、データベース内同期情報更新手段103、再接続時同期手段(第1のデータベース同期手段)104、及び、接続中同期手段(第2のデータベース同期手段)105を備える。同図では、図示を省略しているが、マシンB110及びマシンC120は、それぞれマシンA100と同様な構成を有する。各マシンは、例えば、関係データベース102のデータを利用して処理を行う携帯型端末装置として構成される。
First Embodiment FIG. 1 shows the configuration of a distributed synchronous information system according to a first embodiment of the present invention. The distributed synchronization type information system 10 is composed of an arbitrary number of information devices that synchronize information. In the example of the figure, the distributed synchronization information system 10 is composed of three information devices: a machine A100, a machine B110, and a machine C120. The The machine A 100 includes an application 101, a relational database 102, an in-database synchronization information updating unit 103, a reconnection synchronization unit (first database synchronization unit) 104, and a connected synchronization unit (second database synchronization unit) 105. Prepare. Although not shown in the drawing, the machine B110 and the machine C120 each have the same configuration as the machine A100. Each machine is configured as a portable terminal device that performs processing using data in the relational database 102, for example.

マシンA100、マシンB110、及び、マシンC120は、それぞれ任意のタイミングで、図示しないネットワークから切断され、或いは、ネットワークに再接続される。マシンA100、マシンB110、及び、マシンC120は、アプリケーション101により、関係データベース102を更新する。関係データベース102の更新には、既存の行(データ)の変更、新たな行の挿入、及び、既存の行の削除が含まれる。各マシンは、関係データベース102を更新すると、その更新を他のマシンに伝播し、各マシンの関係データベース102を同期させる。   The machine A100, the machine B110, and the machine C120 are each disconnected from a network (not shown) or reconnected to the network at an arbitrary timing. The machine A100, the machine B110, and the machine C120 update the relational database 102 with the application 101. Updating the relational database 102 includes changing an existing line (data), inserting a new line, and deleting an existing line. When each machine updates the relational database 102, the update is propagated to other machines, and the relational database 102 of each machine is synchronized.

関係データベース102の更新は、任意のタイミングで行われ、マシンがネットワークに接続されている状態、及び、マシンがネットワークから切断された状態の双方で行われる。接続中同期手段105は、更新伝播手段108を有し、マシンがネットワークに接続された状態で、関係データベース102で行われた更新を、ネットワーク接続中の他のマシンに伝播し、各マシンの関係データベース102の記憶内容を同期させる。再接続時同期手段104は、更新情報送信要求手段106と、更新情報送信手段107とを有し、マシンがネットワークに切断された状態からネットワークに再接続した際に、再接続したマシン及びネットワーク接続中の他のマシンで行われた更新をそれぞれ伝播し、関係データベース102の記憶内容を同期させる。   The relational database 102 is updated at an arbitrary timing, both in a state where the machine is connected to the network and in a state where the machine is disconnected from the network. The connected synchronization unit 105 includes an update propagation unit 108, which propagates updates performed in the relational database 102 to other machines connected to the network while the machine is connected to the network. The stored contents of the database 102 are synchronized. The reconnection synchronization unit 104 includes an update information transmission request unit 106 and an update information transmission unit 107. When the machine is reconnected to the network after being disconnected from the network, the reconnected machine and the network connection Updates made on other machines are propagated to synchronize the stored contents of the relational database 102.

図2は、関係データベース102のデータ構造の具体例を示している。関係データベース102は、通常のデータ(「主キー」、「データ」)に加え、各データに対応して付加された同期情報を記憶する。同図では、点線で囲んだ部分201が、同期情報に相当する。付加される同期情報には、データ(行)を更新した更新者、及び、更新の前後関係を判断するための情報が含まれる。また、削除フラグ、及び、更新時刻が含まれる。データベース内同期情報更新手段103(図1)は、アプリケーション101が関係データベース102を更新すると、更新されたデータ(行)に対応した同期情報を更新する。   FIG. 2 shows a specific example of the data structure of the relational database 102. The relational database 102 stores, in addition to normal data (“primary key”, “data”), synchronization information added corresponding to each data. In the figure, a portion 201 surrounded by a dotted line corresponds to the synchronization information. The added synchronization information includes an updater who updated the data (row) and information for determining the context of the update. In addition, a deletion flag and an update time are included. When the application 101 updates the relational database 102, the in-database synchronization information update unit 103 (FIG. 1) updates the synchronization information corresponding to the updated data (row).

同期情報の「更新の前後を判断するための情報」としては、例えば、更新が行われた時刻、或いは、更新処理が起こるたびに各マシンで順番に振られた番号(イベント番号)を用いることができる。更新の前後を判断する情報としては、イベント番号を用いることが望ましい。これは、更新の前後を判断するための情報として更新時刻を用いると、システムの時刻が変更されることで前後関係が狂う可能性があるためである。図2の例では、更新の前後を判断するための情報として、イベント番号を用いている。   As the “information for determining before and after update” of the synchronization information, for example, the time at which the update was performed or a number (event number) assigned in order at each machine every time update processing occurs is used. Can do. As information for determining before and after the update, it is desirable to use an event number. This is because if the update time is used as information for determining before and after the update, the context may be out of order by changing the system time. In the example of FIG. 2, event numbers are used as information for determining before and after the update.

更新者及びイベント番号について説明する。更新者は、データ更新を行ったマシンを示す。イベント番号は、各マシンにおける更新の順序を示している。例えば、マシンA100で、関係データベース102が初めて更新される場合には、その更新に対して、イベント番号「1」が割り当てられる。その後、マシンA100で、関係データベース102が更新される場合には、イベント番号「2」が割り当てられる。このイベント番号は、マシンごとに管理され、他のマシンにおける更新とは無関係に、各マシン内で順次に割り当てられる。例えば、マシンA100でイベント番号「2」に対応する更新が行われた後に、マシンB110で関係データベース102が更新され、その後、更にマシンA100で関係データベース102が更新される場合には、その更新には、イベント番号「3」が割り当てられる。   The updater and the event number will be described. The updater indicates the machine that has updated the data. The event number indicates the update order in each machine. For example, when the relational database 102 is updated for the first time on the machine A100, an event number “1” is assigned to the update. Thereafter, when the relational database 102 is updated in the machine A100, an event number “2” is assigned. This event number is managed for each machine, and is sequentially assigned in each machine regardless of updates in other machines. For example, after the update corresponding to the event number “2” is performed in the machine A100, the relational database 102 is updated in the machine B110, and then the relational database 102 is further updated in the machine A100. Is assigned an event number “3”.

削除フラグは、その行が削除されたか否かを示す。アプリケーション101は、データを削除する際には、実際にはその行を削除せずに削除フラグを「Y」に変更する。削除フラグが「Y」に設定された行は、関係データベース102から削除されたものとして取り扱われる。このように、実際には行を削除せずに、削除フラグを用いて削除されたものとして取り扱うのは、再接続時同期手段104による同期において、何れかのマシンの関係データベース102にある行が存在し、他のマシンの関係データベース102にその行が存在しない場合に、その行がネットワークから切断している間に削除されたものであるのか、或いは、他のマシンにおいて追加されたかを区別する必要があるためである。   The deletion flag indicates whether or not the line has been deleted. When deleting data, the application 101 changes the deletion flag to “Y” without actually deleting the line. A row in which the deletion flag is set to “Y” is handled as being deleted from the relational database 102. As described above, the rows that are deleted by using the deletion flag without actually deleting the rows are handled in the synchronization by the synchronization unit 104 at the time of reconnection. If it exists and the row does not exist in the relational database 102 of another machine, it is distinguished whether the row was deleted while disconnected from the network or added on another machine This is necessary.

ここで、あるマシンがネットワークから切断されている間に、その切断中のマシンと、ネットワーク接続中のマシンとが、それぞれの関係データベース102の同じ行に対して更新を行った場合について考える。この場合、切断中のマシンがネットワークに再接続し、関係データベース102を同期しようとすると、同じ行が別々に更新されたことにより、その行について、矛盾が生じることになる。この矛盾の解決方法としては、ユーザにどちらを優先するかを選択させる方法、特定のマシンを優先する方法、更新時間が新しい方を優先する方法などが考えられる。本実施形態では、同期情報に、更新時刻を含め、同一行に対して2つのマシンで更新があったときは、更新時刻が新しいものを優先する。   Here, consider a case where a machine that is disconnected and a machine that is connected to the network update the same row of each relational database 102 while a machine is disconnected from the network. In this case, when the disconnected machine reconnects to the network and tries to synchronize the relational database 102, the same row is updated separately, which causes inconsistency for that row. As a method for resolving the contradiction, there are a method for allowing the user to select which one is to be given priority, a method for giving priority to a specific machine, a method for giving priority to a new update time, and the like. In the present embodiment, when the synchronization information includes the update time and is updated by two machines with respect to the same row, priority is given to the new update time.

同期情報は、図2に示したように、関係データベース102内のデータと同一行に含めることができる他、図3に示すように、データ部分と分離して、別のテーブルで管理することもできる。図3では、関係データベース102が、アプリケーション101が使用するデータを含む表301と、同期情報部分(図2の201)を含む表302とに分離されている。このように分離する場合、表301の行と、表302の行とは、各行に一意のキー、例えば主キーを用いて対応させればよい。データと同期情報とを分離する場合には、もともと関係データベースが有していたデータの表の構成を変更する必要がないため、既存の関係データベースに、同期情報の表を追加することで、分散型情報同期システムを構築できる。   The synchronization information can be included in the same row as the data in the relational database 102 as shown in FIG. 2, and can also be managed in a separate table separately from the data portion as shown in FIG. it can. In FIG. 3, the relational database 102 is separated into a table 301 including data used by the application 101 and a table 302 including a synchronization information part (201 in FIG. 2). When separating in this way, the rows of the table 301 and the rows of the table 302 may be associated with each row using a unique key, for example, a primary key. When data and synchronization information are separated, there is no need to change the data table configuration that the relational database originally had. Therefore, by adding the synchronization information table to the existing relational database, it is distributed. A type information synchronization system can be constructed.

図4は、データベース内同期情報更新手段103の動作手順を示している。アプリケーション101は、SQLなどを用いて、関係データベース102を更新する(ステップS401)。この関係データベース102の更新において、新たに行を挿入(追加)する際には、ネットワークから切断されたマシンにおいて、新たに挿入された行の主キーと重複しないようにする。例えばマシン名を主キーに含め、或いは、新たに挿入する主キーとして利用できる値の範囲をマシンごとに設定しておけばよい。   FIG. 4 shows an operation procedure of the in-database synchronization information updating unit 103. The application 101 updates the relational database 102 using SQL or the like (step S401). In the update of the relational database 102, when a new row is inserted (added), the machine is disconnected from the network so that it does not overlap with the primary key of the newly inserted row. For example, the machine name may be included in the primary key, or a range of values that can be used as a newly inserted primary key may be set for each machine.

データベース内同期情報更新手段103は、関係データベース102が更新されると、更新内容が、行の挿入、行の書き換え、又は、行の削除の何れであるかを判断する(ステップS402)。更新の内容が行の書き換えであるときには、同期情報(図2の201、図3の302)の更新者、イベント番号、及び、更新時刻を更新する(ステップS406)。例えば、マシンA100で、アプリケーション101が関係データベース102の行を書き換えた場合には、マシンA内のデータベース内同期情報更新手段103は、同期情報の更新者を、「マシンA」とする。イベント番号については、マシンA内で既に割り当てた最大イベント番号を記憶しておき、その値に1を加えた値とする。また、更新時刻には、現在時刻を設定する。ここで、各マシンが持つ時刻情報は、何らかの手段で同期が取れていると仮定する。   When the relational database 102 is updated, the in-database synchronization information updating unit 103 determines whether the update content is a row insertion, a row rewrite, or a row deletion (step S402). When the content of the update is a line rewrite, the updater, event number, and update time of the synchronization information (201 in FIG. 2, 302 in FIG. 3) are updated (step S406). For example, when the application 101 rewrites the row of the relational database 102 in the machine A100, the in-database synchronization information update unit 103 in the machine A sets the updater of the synchronization information as “machine A”. For the event number, the maximum event number already assigned in the machine A is stored, and a value obtained by adding 1 to the value is stored. The current time is set as the update time. Here, it is assumed that the time information held by each machine is synchronized by some means.

更新内容が行の挿入の場合、同期情報が、図3に示すようにデータと分離されているときには、同期情報の表302に新たに行を挿入する(ステップS403)。その際、例えば、挿入されたデータの表301の行の主キーと同じキーを、同期情報の主キーとして設定し、挿入されたデータの行との対応をとる。その後、ステップS406で、同期情報(図2の201、図3の302)の更新者、イベント番号、及び、更新時刻を更新する。更新内容が行の削除の場合、同期情報が図3に示すようにデータと分離されているときには、データの表301から該当する行を削除する(ステップS404)。同期情報(図2の201、図3の302)については、同期情報自体は削除せずに、削除フラグを「Y」にする(ステップS405)。その後、ステップS406へ進み、同期情報を更新する。   If the update content is a row insertion and the synchronization information is separated from the data as shown in FIG. 3, a new row is inserted into the synchronization information table 302 (step S403). At this time, for example, the same key as the primary key of the row of the inserted data table 301 is set as the primary key of the synchronization information, and the correspondence with the inserted data row is taken. Thereafter, in step S406, the updater, the event number, and the update time of the synchronization information (201 in FIG. 2 and 302 in FIG. 3) are updated. When the update content is deletion of a row, if the synchronization information is separated from the data as shown in FIG. 3, the corresponding row is deleted from the data table 301 (step S404). For the synchronization information (201 in FIG. 2 and 302 in FIG. 3), the deletion information is set to “Y” without deleting the synchronization information itself (step S405). Then, it progresses to step S406 and updates synchronous information.

図5は、接続中同期手段105の動作手順を示している。データベース内同期情報更新手段103が、同期情報を更新すると、接続中同期手段105の更新伝播手段108は、更新されたデータを、「主キー」等を利用して検索し、伝播すべき関係データベース102上のデータ、及び、同期情報を取得する(ステップS501)。その後、更新伝播手段108は、ステップS501で取得したデータを、伝播に適した形にエンコードする(ステップS502)。このエンコードには、例えば、XMLなどの形式を用いることができる。   FIG. 5 shows an operation procedure of the connecting synchronization means 105. When the in-database synchronization information updating unit 103 updates the synchronization information, the update propagation unit 108 of the connected synchronization unit 105 searches for the updated data using the “primary key” or the like, and is a relational database to be propagated. Data on 102 and synchronization information are acquired (step S501). Thereafter, the update propagation unit 108 encodes the data acquired in step S501 into a form suitable for propagation (step S502). For this encoding, for example, a format such as XML can be used.

更新伝播手段108は、現在ネットワークに接続中のマシンに対して、ステップS502でエンコードしたデータを送信する(ステップS503)。ステップS503では、関係データベース102が更新されたマシンは、ネットワーク接続中の他のマシンとの間で1対1の通信を行い、エンコードしたデータを送信する。或いは、マルチキャストを用い、ネットワーク接続中の全てのマシンに向けて、エンコードされたデータを送信する。ネットワーク接続中のマシンの接続中同期手段105は、他のマシンからエンコードされたデータを受信すると、受信データをデコードし、その内容に従って、自身のマシン内の関係データベース102を更新する(ステップS504)。このような動作により、ネットワーク接続中の各マシンの関係データベース102が同期される。   The update propagation unit 108 transmits the data encoded in step S502 to the machine currently connected to the network (step S503). In step S503, the machine whose relational database 102 has been updated performs one-to-one communication with another machine connected to the network, and transmits the encoded data. Alternatively, the encoded data is transmitted to all machines connected to the network using multicast. When receiving the encoded data from the other machine, the connecting synchronization means 105 of the machine connected to the network decodes the received data and updates the relational database 102 in its own machine according to the content (step S504). . By such an operation, the relational database 102 of each machine connected to the network is synchronized.

図6は、再接続時同期手段104の動作手順を示している。ネットワークに新たに接続したマシンがあると、再接続時同期手段104は、ネットワーク内に、新たに通信可能になったマシンを発見する(ステップS601)。ステップS601では、新たにネットワークに接続(再接続)したマシンの再接続時同期手段104は、既にネットワークに接続していた各マシンを、新たに通信可能になったマシンとして発見する。一方、既にネットワークに接続していたマシンの再接続時同期手段104は、新たにネットワークに接続したマシンを、新たに通信可能になったマシンとして発見する。新たに通信可能になったマシンの発見は、例えばUPnPなどが持つ機能を利用することで実現できる。   FIG. 6 shows an operation procedure of the reconnection synchronization means 104. When there is a machine newly connected to the network, the reconnection synchronization means 104 finds a machine that is newly communicable in the network (step S601). In step S601, the reconnection synchronization unit 104 of a machine newly connected (reconnected) to the network discovers each machine that has already been connected to the network as a newly communicable machine. On the other hand, the reconnection synchronization means 104 for a machine that has already been connected to the network finds a machine that is newly connected to the network as a machine that is newly communicable. Discovery of a newly communicable machine can be realized by using a function of UPnP, for example.

再接続時同期手段104の更新情報送信要求手段106は、ステップS601で発見した各マシンに対し、自らを「更新情報受信側マシン」、発見したマシンを「更新情報送信側マシン」として、更新情報の送信を要求する。この要求を受けた更新情報送信側マシンの更新情報送信手段107は、更新情報受信側マシンでされていない関係データベース102の更新を含む更新情報を、更新情報受信側マシンに送信する。更新情報送信側マシンの再接続時同期手段104は、受信した更新情報に基づいて、関係データベース102を更新する(ステップS602)。再接続時同期手段104は、ステップS601で発見したマシンが複数あるときには、その発見した各マシンに対して、ステップS602を実行する。   The update information transmission request unit 106 of the reconnection synchronization unit 104 sets the update information to each of the machines discovered in step S601 as “update information reception side machine” and the discovered machine as “update information transmission side machine”. Request to send The update information transmitting unit 107 of the update information transmitting machine that has received this request transmits update information including an update of the relational database 102 that is not performed by the update information receiving machine to the update information receiving machine. The reconnection synchronization unit 104 of the update information transmission side machine updates the relational database 102 based on the received update information (step S602). When there are a plurality of machines found in step S601, the reconnection synchronization means 104 executes step S602 for each discovered machine.

図7は、ネットワーク再接続時の関係データベース102の更新の様子を示している。ここでは、マシンA100及びマシンC120は既にネットワークに接続しており、マシンB110がネットワークに再接続した場合について考える。この場合、ネットワークに再接続したマシンB110は、図6のステップS601で、既にネットワークに接続しているマシンA100及びマシンC120を、新たに通信可能になったマシンとして発見する。一方、マシンA100及びマシンC120は、それぞれ、再接続したマシンB110を、新たに通信可能になったマシンとして発見する。   FIG. 7 shows how the relational database 102 is updated when the network is reconnected. Here, consider a case where the machine A100 and the machine C120 are already connected to the network and the machine B110 is reconnected to the network. In this case, the machine B110 reconnected to the network discovers the machine A100 and the machine C120 that are already connected to the network as newly communicable machines in step S601 in FIG. On the other hand, each of the machine A100 and the machine C120 finds the reconnected machine B110 as a machine that can newly communicate.

マシンB110は、ステップS602で、自身を「更新情報受信側マシン」とし、発見したマシンA100及びマシンC120を「更新情報送信側マシン」として、マシンA100及びマシンC120に対し、それぞれ更新情報の送信を要求する。マシンA100及びマシンC120は、この要求を受け取ると、それぞれ、自装置の関係データベース102(図1)でされており、マシンB110の関係データベース102でされていない更新の情報をマシンB110に送信する。マシンB110は、マシンA100及びマシンC120から受信した情報に基づいて、関係データベース102を更新する。この更新により、マシンB110がネットワークから切断している間にマシンA100又はマシンC120で行われた更新が、マシンB110の関係データベース102に反映される。   In step S602, the machine B110 sets itself as the “update information receiving machine” and the discovered machines A100 and C120 as the “update information transmitting machine”, and transmits update information to the machine A100 and the machine C120, respectively. Request. Upon receipt of this request, the machine A 100 and the machine C 120 respectively transmit update information that is stored in the relational database 102 (FIG. 1) of the own device and not in the relational database 102 of the machine B110 to the machine B110. The machine B110 updates the relational database 102 based on the information received from the machine A100 and the machine C120. By this update, the update performed in the machine A100 or the machine C120 while the machine B110 is disconnected from the network is reflected in the relational database 102 of the machine B110.

一方、マシンA100及びマシンC120は、それぞれ、ステップS602で、自身を「更新情報受信側マシン」とし、発見したマシンB110を「更新情報送信側マシン」として、マシンB110に対して更新情報の送信を要求する。マシンB110は、自装置の関係データベース102ではされており、マシンA100及びマシンC120ではされていない更新を含む更新情報を、マシンA100及びマシンC120にそれぞれ送信する。マシンA100及びマシンC120は、それぞれ、マシンB110から受信した情報に基づいて、関係データベース102を更新する。この更新により、マシンB110がネットワークから切断している間にマシンB110で行われた更新が、マシンA100及びマシンC120の関係データベース102に反映される。   On the other hand, in step S602, each of the machine A100 and the machine C120 sets itself as an “update information receiving machine” and sets the discovered machine B110 as an “update information transmitting machine” to transmit update information to the machine B110. Request. The machine B 110 transmits update information including updates that are performed in the relational database 102 of the own device and not performed in the machines A 100 and C 120 to the machines A 100 and C 120, respectively. Each of the machine A100 and the machine C120 updates the relational database 102 based on the information received from the machine B110. By this update, the update performed in the machine B110 while the machine B110 is disconnected from the network is reflected in the relational database 102 of the machine A100 and the machine C120.

図8及び図9は、それぞれ、図6のステップS602のネットワーク再接続時の更新処理の詳細な手順を示すもので、図8は、更新情報受信側マシンの動作手順を示し、図9は、更新情報送信側マシンの動作手順を示している。更新情報受信側マシンの再接続時同期手段104の更新情報送信要求手段106は、同期情報(図2又は図3)を参照し、各更新者について、イベント番号が最大である行を検索して(ステップS801)、各更新者の最大のイベント番号を取得する。イベント番号は、更新者ごとの更新の順序を示しており、ステップS801の検索は、「更新者ごとに最も近い更新は何か」を検索することに等しい。   8 and 9 show the detailed procedure of the update process at the time of network reconnection in step S602 of FIG. 6, respectively. FIG. 8 shows the operation procedure of the update information receiving machine, and FIG. The operation procedure of the update information transmission side machine is shown. The update information transmission request unit 106 of the reconnection synchronization unit 104 of the update information receiving machine refers to the synchronization information (FIG. 2 or FIG. 3) and searches for a row with the largest event number for each updater. (Step S801), the maximum event number of each updater is acquired. The event number indicates the update order for each updater, and the search in step S801 is equivalent to searching for “what is the closest update for each updater”.

ステップS801の検索は、関係データベース102のインデックス機能などを用いることで、表のサイズに依存しない時間で高速に行うことが可能である。また、各更新者について、最大のイベント番号を保持するテーブルを用意しておき、データベース更新の際に、データベース内同期情報更新手段103によって、そのテーブルを更新することで、同期情報の検索を省略することも可能である。更新情報送信要求手段106は、各更新者について、イベント番号が最大の行を検索すると、マシンごとの最大イベント番号の情報を含む更新情報送信要求を、更新情報送信側マシンに送信する(ステップS802)。   The search in step S801 can be performed at high speed in a time independent of the table size by using the index function of the relational database 102 or the like. For each updater, a table holding the maximum event number is prepared, and when the database is updated, the table is updated by the synchronization information updating unit 103 in the database, thereby omitting the search for the synchronization information. It is also possible to do. When the update information transmission request unit 106 searches for a row having the largest event number for each updater, the update information transmission request unit 106 transmits an update information transmission request including information on the maximum event number for each machine to the update information transmission side machine (step S802). ).

図10は、ネットワーク再接続時の更新処理において、2つのマシン間でやり取りされる情報の具体例を示している。マシンB110が更新情報送信側マシンである場合、マシンB110の関係データベース102が記憶するテーブル1011から、更新者「マシンA」について、最大イベント番号を検索すると、イベント番号「11」が得られる。同様に、更新者「マシンB」及び「マシンC」について、最大イベント番号を検索すると、マシンBについてはイベント番号「8」、マシンCについてはイベント番号「5」が得られる。マシンB110の更新情報送信要求手段106は、「マシンA、最大イベント番号11」、「マシンB、最大イベント番号8」、「マシンC、最大イベント番号5」を含む更新情報送信要求1020を、更新情報送信側マシンであるマシンA100に送信し、マシンAに、更新者ごとの最大イベント番号を通知する。   FIG. 10 shows a specific example of information exchanged between two machines in the update process at the time of network reconnection. When the machine B110 is an update information transmission side machine, an event number “11” is obtained by searching the maximum event number for the updater “machine A” from the table 1011 stored in the relational database 102 of the machine B110. Similarly, when the maximum event numbers are searched for the updaters “Machine B” and “Machine C”, the event number “8” for the machine B and the event number “5” for the machine C are obtained. The update information transmission request means 106 of the machine B 110 updates the update information transmission request 1020 including “Machine A, maximum event number 11”, “Machine B, maximum event number 8”, “Machine C, maximum event number 5”. The information is transmitted to the machine A100 that is the information transmission side machine, and the maximum event number for each updater is notified to the machine A.

更新情報送信側マシンでは、更新情報受信側マシンから、更新情報送信要求を受信して、各更新者についての最大イベント番号の通知を受ける(図9のステップS901)。更新情報送信手段107は、自装置の関係データベース102のテーブル1001を検索し、各更新者について、イベント番号が、更新情報受信側マシンから通知された最大イベント番号よりも大きなイベント番号の行を抽出する(ステップS902)。その後、抽出した行をエンコードし、これを更新情報(差分情報)として、更新情報受信側マシンに送信する(ステップS903)。ステップS902で、複数の行が抽出された場合には、抽出された各行を、更新情報受信側マシンに送信する。   The update information transmission side machine receives an update information transmission request from the update information reception side machine and receives notification of the maximum event number for each updater (step S901 in FIG. 9). The update information transmitting unit 107 searches the table 1001 of the relational database 102 of the own device, and extracts a row having an event number larger than the maximum event number notified from the update information receiving machine for each updater. (Step S902). Thereafter, the extracted line is encoded, and this is transmitted as update information (difference information) to the update information receiving machine (step S903). If a plurality of lines are extracted in step S902, the extracted lines are transmitted to the update information receiving machine.

図10の例では、マシンA100の関係データベース102のテーブル1001を検索し、マシンB110から通知された各更新者の最大イベント番号を超えるイベント番号の行を抽出すると、主キー「3」の行(更新者「マシンC」、イベント番号「6」)が抽出される。この行は、最初にマシンC120において更新され、その後、マシンA100に伝播されて、マシンA100の関係データベース102においても更新された行である。このように、ステップS902では、更新情報送信側マシン(マシンA)とは異なるマシンによって更新された行が抽出されることがある。マシンA100の再接続時同期手段104は、抽出した主キー「3」の行を、更新情報1021としてマシンBに送信する。   In the example of FIG. 10, when the table 1001 of the relational database 102 of the machine A100 is searched and an event number row exceeding the maximum event number of each updater notified from the machine B110 is extracted, the row of the primary key “3” ( Updater “machine C”, event number “6”) is extracted. This row is a row that is first updated in the machine C120, then propagated to the machine A100, and updated in the relational database 102 of the machine A100. As described above, in step S902, a row updated by a machine different from the update information transmitting machine (machine A) may be extracted. The reconnection synchronization means 104 of the machine A100 transmits the extracted row of the primary key “3” to the machine B as the update information 1021.

図8に戻り、更新情報受信側マシンの再接続時同期手段104は、更新情報送信側マシンから送信された更新情報を取得する(ステップS803)。再接続時同期手段104は、受信した更新情報をデコードし、更新情報送信側マシンにおいて、更新情報受信側マシンにおける最大イベント番号よりも大きなイベント番号の行として抽出された行に対応する行が、自身の関係データベース102に存在するか否かを判断する(ステップS804)。対応する行が存在するか否かは、例えば主キーを用いて判断する。存在しない場合には、取得した行を、同期情報を含め関係データベース102に挿入する(ステップS808)。   Returning to FIG. 8, the reconnection synchronization unit 104 of the update information receiving machine acquires the update information transmitted from the update information transmitting machine (step S803). The reconnection synchronization means 104 decodes the received update information, and the row corresponding to the row extracted as the row of the event number larger than the maximum event number in the update information receiving side machine in the update information sending side machine is It is determined whether or not it exists in its own relational database 102 (step S804). Whether there is a corresponding row is determined using, for example, a primary key. If it does not exist, the acquired row is inserted into the relational database 102 including the synchronization information (step S808).

対応する行が存在する場合、取得した行の「更新時刻」と、関係データベース102の対応する行の「更新時刻」とを比較し、取得した行の「更新時刻」が、関係データベース102の「更新時刻」よりも時間的に後であるか否かを判断する(ステップS805)。取得した行の「更新時刻」が時間的に前であれば、更新時刻が新しい方を優先して、取得した行を破棄する(ステップS809)。   When the corresponding row exists, the “update time” of the acquired row is compared with the “update time” of the corresponding row in the relational database 102, and the “update time” of the acquired row is “ It is determined whether or not it is later than the “update time” (step S805). If the “update time” of the acquired row is earlier in time, the one with the newest update time is prioritized and the acquired row is discarded (step S809).

取得した行の「更新時刻」が時間的に後であれば、再接続時同期手段104は、更新情報が行の削除を示すか否かを判断する(ステップS806)。更新情報が削除を示す場合には、対応する行の削除フラグを「Y」にする(ステップS807)。このとき、同期情報が図3に示すように、データと分離されているときには、データ側の表から、対応する行を削除する。行の削除を示していないときには、取得した行の内容で、関係データベース102の対応する行を更新する(ステップS810)。   If the “update time” of the acquired row is later in time, the reconnection synchronization means 104 determines whether or not the update information indicates deletion of the row (step S806). If the update information indicates deletion, the deletion flag of the corresponding row is set to “Y” (step S807). At this time, as shown in FIG. 3, when the synchronization information is separated from the data, the corresponding row is deleted from the data-side table. If deletion of a row is not indicated, the corresponding row in the relational database 102 is updated with the contents of the acquired row (step S810).

図10の例では、マシンB110の関係データベース102が記憶するテーブル1011には、マシンA100から送信された更新情報1021(主キー「3」の行)に対応する行が存在する。これら行の更新時刻を比較すると、マシンA100から受信した行の方が、新しい。このため、マシンB110は、マシンA100から受信した更新情報1021に従って、主キー「3」のデータを、「データ11」から「データ17」に更新する。また、この行に対応する同期情報を、更新情報1021の同期情報で上書きする。このような動作により、マシンB110がネットワークから切断されている間に、ネットワーク接続中のマシンで行われた更新の内容が、マシンB110の関係データベース102に反映される。   In the example of FIG. 10, the table 1011 stored in the relational database 102 of the machine B110 includes a row corresponding to the update information 1021 (the row of the primary key “3”) transmitted from the machine A100. When the update times of these rows are compared, the row received from the machine A100 is newer. Therefore, the machine B110 updates the data of the primary key “3” from “data 11” to “data 17” according to the update information 1021 received from the machine A100. In addition, the synchronization information corresponding to this row is overwritten with the synchronization information of the update information 1021. By such an operation, while the machine B110 is disconnected from the network, the contents of the update performed on the machine connected to the network are reflected in the relational database 102 of the machine B110.

再接続時同期手段104は、ステップS803で、複数の行を含む更新情報を取得した場合には、その含まれる各行について、ステップS804〜S810の処理を実行する。その場合、処理の順序は、更新者とは無関係にイベント番号同士を比較し、イベント番号が小さい順に行うことが望ましい。これは、イベント番号が大きな行について更新を行っている間に障害が発生した場合、イベント番号が小さな行を再取得することができなくなることも考えられるからである。   When the reconnection synchronization unit 104 acquires update information including a plurality of rows in step S803, the reconnection synchronization unit 104 performs the processing of steps S804 to S810 for each of the included rows. In that case, it is desirable that the processing order be performed in ascending order of event numbers by comparing event numbers regardless of the updater. This is because if a failure occurs while updating a row with a large event number, it may be impossible to reacquire a row with a small event number.

図10の例では、上記した、更新情報受信側マシンをマシンB110とし、更新情報送信側マシンをマシンA100としたネットワーク再接続時の同期に加えて、更新情報受信側マシンをマシンA100とし、更新情報送信側マシンをマシンB110としたネットワーク再接続時の同期も行われる。マシンA100を更新情報受信側マシンとしたネットワーク再接続時の同期では、マシンA100は、関係データベース102のテーブル1001を検索し、各更新者について最大イベント番号(「マシンA、最大イベント番号11」、「マシンB、最大イベント番号7」、「マシンC、最大イベント番号6」)を含む更新情報送信要求1030をマシンB110に送信する。   In the example of FIG. 10, in addition to the synchronization at the time of network reconnection with the update information receiving machine as machine B110 and the update information transmitting machine as machine A100, the update information receiving machine is set as machine A100 and updated. Synchronization at the time of network reconnection using the information transmission machine as the machine B110 is also performed. In synchronization at the time of network reconnection using the machine A100 as the update information receiving machine, the machine A100 searches the table 1001 of the relational database 102, and determines the maximum event number (“machine A, maximum event number 11”, Update information transmission request 1030 including “Machine B, maximum event number 7”, “Machine C, maximum event number 6”) is transmitted to Machine B110.

マシンB110は、関係データベース102を参照し、更新者ごとに、マシンA100から通知された最大イベント番号を超える行を抽出して、これをマシンA100に送信する。図10では、マシンB110は、主キー「1」の行(更新者「マシンB」、イベント番号「11」)を、マシンAから通知された最大イベント番号を超える行として抽出する。この行は、マシンB110がネットワークから切断されている間に、マシンB110のアプリケーション101によって更新された行である。マシンB110は、抽出した主キー「1」の行をエンコードして、更新情報1031としてマシンA100に送信する。   The machine B110 refers to the relational database 102, extracts a row exceeding the maximum event number notified from the machine A100 for each updater, and transmits this to the machine A100. In FIG. 10, the machine B110 extracts the row of the primary key “1” (updater “machine B”, event number “11”) as a row exceeding the maximum event number notified from the machine A. This line is a line updated by the application 101 of the machine B110 while the machine B110 is disconnected from the network. The machine B110 encodes the extracted row of the primary key “1” and transmits it as update information 1031 to the machine A100.

マシンA100は、更新情報1031を受信すると、受信した更新情報1031に従って、関係データベース102を更新する。より詳細には、主キー「1」のデータを、「データ5」から「データ9」に更新する。また、この行に対応する同期情報を、受信した更新情報1031の同期情報で上書きする。これにより、ネットワーク切断中にマシンB110で行われた更新の内容が、マシンA100の関係データベース102に反映される。以上のように、ネットワーク上に新たに通信可能になったマシンが発見されたとき、複数のマシン間で、お互いが知らない更新情報の授受を行うことで、ネットワークに新たに接続(再接続した)したマシンについても、既にネットワークに接続しているマシンについても、同様な手順で、関係データベース102の内容を同期させることができる。   When the machine A 100 receives the update information 1031, it updates the relational database 102 according to the received update information 1031. More specifically, the data of the primary key “1” is updated from “data 5” to “data 9”. In addition, the synchronization information corresponding to this row is overwritten with the synchronization information of the received update information 1031. As a result, the contents of the update performed by the machine B110 during the network disconnection are reflected in the relational database 102 of the machine A100. As described above, when a newly communicable machine is discovered on the network, it is newly connected (reconnected) to the network by exchanging update information that each other does not know. ) And the machines already connected to the network can synchronize the contents of the relational database 102 in the same procedure.

本実施形態では、関係データベース102の各行(各データ)に対応して、データを更新した更新者と、更新者ごとの更新の順序を判断するための情報とを含む同期情報を付加する。各マシンは、ネットワーク接続中は、接続中同期手段105により、関係データベース102の内容を同期する。ネットワーク再接続時は、再接続時同期手段104により、新たに通信可能になったマシンに対し、更新者ごとの最新の更新を示す情報を通知し、更新情報の送信を要求し、相手側から、通知した最新の更新以後の更新の内容を受信して、関係データベース102を更新する。このようにすることで、マシン間で受け渡される情報は、そのマシンが実際に知らない情報のみとなり、冗長な情報の授受は行われない。従って、例えばデータベース内の全ての情報を授受する場合に比して、効率よく関係データベース102を同期させることができる。また、従来技術がログを用いているのとは異なり、行に同期情報を対応付けることで、同期の際に用いる情報の容量を少なくし、かつ、検索のコストを抑制することができる。   In the present embodiment, in correspondence with each row (each data) of the relational database 102, synchronization information including an updater who has updated the data and information for determining the update order for each updater is added. Each machine synchronizes the contents of the relational database 102 by the connecting synchronization means 105 during network connection. When reconnecting to the network, the reconnection synchronization means 104 notifies the machine that is newly communicable to the information indicating the latest update for each updater, requests transmission of update information, The contents of the update after the notified latest update are received, and the relational database 102 is updated. By doing so, the information passed between the machines is only information that the machines do not actually know, and redundant information is not exchanged. Therefore, for example, the relational database 102 can be synchronized more efficiently than when all information in the database is exchanged. Further, unlike the case where the prior art uses a log, by associating synchronization information with a row, it is possible to reduce the capacity of information used at the time of synchronization and to suppress the search cost.

ここで、同期情報として「更新時刻」のみを付加し、各マシンが、「以前、何れかのマシンと同期を行った時刻」を記憶する場合について考える。この場合、「以前、何れかのマシンと同期を行った時刻」以後に更新された情報を要求することで、本実施形態と同様に差分情報のみを取得できるようにも考えられる。しかし、例えば、マシンCがネットワークから切断された状態で、マシンCで「1:00」に更新が起こり、その後、マシンAとマシンBとが「2:00」に同期を行った後にマシンCがネットワークに再接続し、マシンAとマシンCとが同期を行う場合には、マシンAは「2:00」に同期を行っているため、「1:00」に行われた更新が、マシンCからマシンAに送信されないという問題が起こる。本実施形態では、上記手順に従って、更新情報の送信を要求するため、マシン間で、確実に更新情報が伝達されることが保証される。   Here, consider a case where only “update time” is added as the synchronization information, and each machine stores “the time when synchronization was performed with any machine before”. In this case, it may be considered that only the difference information can be acquired by requesting information updated after “time when synchronization with any machine was performed before” as in the present embodiment. However, for example, in the state where the machine C is disconnected from the network, the update occurs at “1:00” in the machine C, and after that, the machine C and the machine B synchronize at “2:00”. Reconnects to the network and machine A and machine C synchronize, machine A is synchronized to “2:00”, so the update made at “1:00” A problem arises that C is not sent to machine A. In the present embodiment, since transmission of update information is requested according to the above procedure, it is ensured that update information is reliably transmitted between machines.

第2実施形態
図11は、本発明の第2実施形態の分散同期型情報システムにおけるネットワーク接続中の同期の動作手順を示している。本実施形態の分散同期型情報システムは、図1に示す分散同期型情報システムと同様な構成を有しており、接続中同期手段105(図1)が、図5に示す手順に代えて、図11に示す手順で、ネットワーク接続中のマシンとの間で関係データベース102を同期する点で、第1実施形態と相違する。本実施形態では、接続中同期手段105は、再接続時同期手段104を利用して、関係データベース102の同期を取る。
Second Embodiment FIG. 11 shows an operation procedure of synchronization during network connection in the distributed synchronous information system according to the second embodiment of the present invention. The distributed synchronization type information system of this embodiment has the same configuration as the distributed synchronization type information system shown in FIG. 1, and the connecting synchronization means 105 (FIG. 1) replaces the procedure shown in FIG. The procedure shown in FIG. 11 is different from the first embodiment in that the relational database 102 is synchronized with a machine connected to the network. In the present embodiment, the connecting synchronization unit 105 synchronizes the relational database 102 using the reconnection synchronization unit 104.

アプリケーション101が、関係データベース102を更新すると、更新があったマシンの接続中同期手段105は、ネットワーク接続中の各マシンに対し、データ更新があった旨を通知する(ステップS1101)。その際、接続中同期手段105は、データ更新を行ったマシン名を、データ更新があった旨の通知に含める。この通知を受け取った他のマシンの接続中同期手段105は、再接続時同期手段104の更新情報送信要求手段106により、自装置を「更新情報受信側マシン」、更新があったマシンを「更新情報送信側マシン」として、更新情報の送信を要求する(ステップS1102)。更新情報の送信要求を受け取ったマシンは、更新情報送信手段107により、その要求に応答して、更新情報を更新情報受信側マシンに送信する(ステップS1103)。更新情報受信側マシンは、受信した更新情報に従って、関係データベース102を更新する。   When the application 101 updates the relational database 102, the connected synchronization means 105 of the updated machine notifies each machine connected to the network that the data has been updated (step S1101). At that time, the connecting synchronization means 105 includes the name of the machine that has updated the data in the notification that the data has been updated. Receiving this notification, the connecting synchronization means 105 of the other machines uses the update information transmission request means 106 of the reconnection synchronization means 104 to update its own device as an “update information receiving machine” and update the machine that has been updated. The information transmission side machine is requested to transmit update information (step S1102). In response to the request, the machine that has received the update information transmission request transmits the update information to the update information receiving machine in response to the request (step S1103). The update information receiving machine updates the relational database 102 according to the received update information.

ステップS1102及びステップS1103の更新情報送信要求及び更新情報の送信は、図8及び図9に示す、ネットワーク再接続時の同期と同様な手順に従って行われる。このように、本実施形態では、ネットワーク接続中の同期とネットワーク再接続時の同期とを、同様な手順で行うことにより、システム構成を単純化できる。   The update information transmission request and the transmission of update information in steps S1102 and S1103 are performed according to the same procedure as the synchronization at the time of network reconnection shown in FIGS. Thus, in the present embodiment, the system configuration can be simplified by performing synchronization during network connection and synchronization during network reconnection in the same procedure.

第3実施形態
図12は、本発明の第3実施形態の分散同期型情報システムにおけるネットワーク再接続時の同期の動作手順を示している。本実施形態の分散同期型情報システムは、図1に示す分散同期型情報システムと同様な構成を有しており、再接続時同期手段104(図1)が、図6に示す手順に代えて、図12に示す手順で、ネットワーク接続中のマシンとの間で関係データベース102を同期する点で、第1実施形態と相違する。
Third Embodiment FIG. 12 shows an operation procedure of synchronization at the time of network reconnection in the distributed synchronous information system according to the third embodiment of the present invention. The distributed synchronous information system of this embodiment has the same configuration as the distributed synchronous information system shown in FIG. 1, and the reconnection synchronization means 104 (FIG. 1) replaces the procedure shown in FIG. 12 is different from the first embodiment in that the relational database 102 is synchronized with a machine connected to the network in the procedure shown in FIG.

ネットワークに再接続した(新たに接続した)マシンの再接続時同期手段104は、既にネットワークに接続しているマシンの中から任意の1つを選び、そのマシンを「更新情報送信側マシン」、自身を「更新情報受信側マシン」として更新情報送信要求を送信し、図8及び図9に示す手順により、関係データベース102を更新する(ステップS1201)。既にネットワーク接続しているマシン間で、データの同期が取られていると仮定すると、ステップS1201により、ネットワークに再接続したマシンは、ネットワーク接続中の他のマシンでされ、自装置でされていない更新を、自装置の関係データベース102に反映できる。   The reconnection synchronization means 104 of the machine reconnected to the network (newly connected) selects any one of the machines already connected to the network, and designates the machine as “update information transmission side machine”, An update information transmission request is transmitted with itself as the “update information receiving machine”, and the relational database 102 is updated by the procedure shown in FIGS. 8 and 9 (step S1201). Assuming that data is synchronized between machines already connected to the network, the machine reconnected to the network in step S1201 is another machine that is connected to the network and is not its own device. The update can be reflected in the relational database 102 of the own device.

ネットワークに再接続したマシンの再接続時同期手段104は、自装置の関係データベース102を更新すると、ネットワーク接続中のマシンから任意の1つを選び、そのマシンに対し、各更新者についての最大イベント番号を送信するように指示する(ステップS1202)。この指示を受けたマシンの更新情報送信要求手段106は、そのマシン内の同期情報(関係データベース102)を検索して、更新者ごとの最大イベント番号を取得し、これを含む更新情報送信要求を、ネットワークに再接続したマシンに送信する。   When the reconnection synchronization means 104 of the machine reconnected to the network updates the relation database 102 of its own device, it selects an arbitrary one from the machines connected to the network, and the maximum event for each updater for that machine. It is instructed to transmit a number (step S1202). Upon receiving this instruction, the update information transmission request means 106 of the machine searches the synchronization information (relational database 102) in the machine, acquires the maximum event number for each updater, and issues an update information transmission request including this. , Send to a machine reconnected to the network.

ネットワークに再接続したマシンの更新情報送信手段107は、更新者ごとの最大イベント番号を受け取り(ステップS1203)、関係データベース102を検索して、受け取った更新者ごとの最大イベント番号を超えるイベント番号の行を抽出する(ステップS1204)。このステップは、図9のステップS902に相当する。その後、抽出した行をエンコードし、これを更新情報として、ネットワーク接続中の全てのマシンに対してマルチキャスト送信する(ステップS1205)。ネットワーク接続中の各マシンは、更新情報を受信し、図8のステップS803〜S810と同様な手順により、関係データベース102を更新する。この更新により、既にネットワークに接続していた各マシンは、ネットワークに再接続したマシンでされ、自装置でされていない更新を、自装置の関係データベース102に反映できる。   The update information transmission unit 107 of the machine reconnected to the network receives the maximum event number for each updater (step S1203), searches the relational database 102, and receives an event number exceeding the maximum event number for each received updater. A row is extracted (step S1204). This step corresponds to step S902 in FIG. Thereafter, the extracted row is encoded, and this is updated as update information and multicast transmitted to all machines connected to the network (step S1205). Each machine connected to the network receives the update information, and updates the relational database 102 by the same procedure as steps S803 to S810 in FIG. By this update, each machine that has already been connected to the network is a machine that has been reconnected to the network, and updates that are not made by the own apparatus can be reflected in the relation database 102 of the own apparatus.

第1実施形態では、ネットワークに再接続したマシンと、ネットワーク接続中の各マシンとの間で、1対1の通信を行い、各マシンの関係データベース102を更新するため、ネットワーク接続中のマシン間で、情報の同期が取れている場合には、無駄な通信が行われることになる。本実施形態では、ネットワークに再接続したマシンは、ネットワーク接続中のマシンのうちの何れかとの間で通信を行い、更新情報を受信して関係データベース102を更新する。また、ネットワーク接続中のマシンの何れかから、更新者ごとの最大イベント番号を受信し、ネットワーク接続中の各マシンに向けて、更新情報をマルチキャスト送信する。このようにすることで、通信の回数及び通信料を削減し、無駄な通信を抑制することができる。   In the first embodiment, one-to-one communication is performed between a machine reconnected to the network and each machine connected to the network, and the relation database 102 of each machine is updated. Thus, when information is synchronized, useless communication is performed. In this embodiment, a machine reconnected to the network communicates with any of the machines connected to the network, receives update information, and updates the relational database 102. Also, the maximum event number for each updater is received from any of the machines connected to the network, and the update information is multicast-transmitted toward each machine connected to the network. By doing in this way, the frequency | count of communication and a communication fee can be reduced, and useless communication can be suppressed.

第4実施形態
本発明の第4実施形態の分散同期型情報システムは、図1に示す分散同期型情報システム10と同様な構成を有している。本実施形態では、同期情報(図2)に、「更新時刻」に代えて、「更新履歴」を含める。更新履歴は、更新を行った更新者、及び、その際のイベント番号の組を含み、どのマシンにおいて、いつ(どのイベント番号のときに)データが更新されたかの履歴を示している。本実施形態では、このような更新履歴を用いて、ネットワークからの切断時に、複数のマシンで同じ行が更新された際の矛盾を解決する。
Fourth Embodiment A distributed synchronization information system according to a fourth embodiment of the present invention has the same configuration as the distributed synchronization information system 10 shown in FIG. In the present embodiment, “update history” is included in the synchronization information (FIG. 2) instead of “update time”. The update history includes a set of updaters who performed the update and a set of event numbers at that time, and shows a history of when the data was updated on which machine (at which event number). In this embodiment, such an update history is used to resolve inconsistencies when the same row is updated on a plurality of machines when disconnected from the network.

図13は、更新履歴の更新の様子を示している。データベース内同期情報更新手段103は、データベースの更新時に、図4のステップS406で、更新時刻に代えて、更新履歴の更新を行う。同図において、「A3」、「B5」等は、更新を行ったマシン名、及び、その際のイベント番号を示している。図13の行1301の更新履歴は、対応する主キー「10」の行が、マシンAにおいてイベント番号「3」のときに挿入され、その後、マシンBにおいてイベント番号「5」のとき更新され、更に、マシンCにおいてイベント番号「7」のときに更新されたことを示している。マシンA及びマシンBがそれぞれ行1301を有するとき、マシンBがネットワークから切断し、主キー「10」の行を更新すると、マシンBのデータベース内同期情報更新手段103は、図13に行1302として示すように、行1301の更新履歴に、マシンBにおいてイベント番号「8」のときに更新されたことを示す「B8」を追加する。   FIG. 13 shows how the update history is updated. The in-database synchronization information updating unit 103 updates the update history instead of the update time in step S406 of FIG. 4 when updating the database. In the figure, “A3”, “B5”, and the like indicate the name of the machine that performed the update and the event number at that time. The update history of the row 1301 in FIG. 13 is updated when the row of the corresponding primary key “10” is the event number “3” in the machine A, and is updated thereafter when the event number is “5” in the machine B. Further, it is shown that the event number “7” is updated in the machine C. When machine A and machine B each have a row 1301 and machine B disconnects from the network and updates the row of the primary key “10”, the in-database synchronization information updating means 103 of machine B will change to row 1302 in FIG. As shown, “B8” indicating that the event has been updated at the event number “8” in the machine B is added to the update history of the row 1301.

マシンAは、マシンBがネットワークに再接続すると、ネットワーク再接続時の同期の動作により、マシンBから、行1302を更新情報として受信する。この更新情報の更新履歴と、マシンAが持つ行1301の更新履歴とを比較すると、取得した更新情報の同期情報の更新履歴(A3、B5、C7、B8)は、マシンAが有する行の更新履歴(A3、B5、C7)を含んでいる。このことは、行1301と行1302とは、ネットワークからの切断時に、別々に更新されたわけではなく、もともと同じ情報を持っており、それがネットワークから切断されている間にマシンBによって更新されたということを意味している。このように、取得した更新情報の更新履歴が、自身の更新履歴を含んでいる場合には、更新は、図13の順序1303に示すように直線状に行われている。このような場合には、矛盾は存在せず、また、行1302のデータが、行1301のデータよりも新しいとわかるため、マシンAは、行1301を行1302で更新すればよい。   When the machine B reconnects to the network, the machine A receives the row 1302 as update information from the machine B by the synchronization operation at the time of the network reconnection. When the update history of this update information is compared with the update history of the row 1301 held by the machine A, the update history (A3, B5, C7, B8) of the synchronization information of the acquired update information is the row update of the machine A. The history (A3, B5, C7) is included. This means that row 1301 and row 1302 were not updated separately when disconnected from the network, but originally had the same information and were updated by machine B while it was disconnected from the network. It means that. As described above, when the update history of the acquired update information includes its own update history, the update is performed in a straight line as shown in an order 1303 in FIG. In such a case, there is no contradiction, and since the data in the row 1302 is found to be newer than the data in the row 1301, the machine A may update the row 1301 with the row 1302.

図14は、更新履歴の更新の様子の別の例を示している。同図に示す行1401の更新履歴は、「A3、B5、C7、A5、A7」であり、行1402の更新履歴は、「A3、B5、C7、B8」となっている。両者の更新履歴を比較すると、図14に順序1403として示すように、「C7」までの更新は同じであり、その後の更新が相違する。これは、ネットワーク切断後に、ネットワーク接続中のマシンとネットワークから切断したマシンとにおいて、又は、共にネットワークから切断したマシンにおいて、別々に更新が行われたことを意味している。この場合、マシンA及びマシンBがネットワークに再接続した際には、何らかの矛盾解決が必要になる。矛盾解決の方法としては、特定のマシンを優先する、或いは、ユーザに選択させるなどの方法がある   FIG. 14 shows another example of how the update history is updated. The update history of the row 1401 shown in the figure is “A3, B5, C7, A5, A7”, and the update history of the row 1402 is “A3, B5, C7, B8”. Comparing both update histories, the update up to “C7” is the same as shown in the order 1403 in FIG. 14, and the subsequent updates are different. This means that after the network disconnection, the update is performed separately in the machine connected to the network and the machine disconnected from the network, or in the machine disconnected from the network. In this case, when the machine A and the machine B are reconnected to the network, some contradiction must be resolved. As a method for resolving inconsistencies, there are methods such as giving priority to a specific machine or letting the user select it.

矛盾解決により、何れかの行を優先した場合には、マシン内でその行を新たに更新したものとして取り扱う。例えば、マシンCが行1402を有し、行1401と行1402について、「B8」の更新を「A5、A7」の更新に優先させる、つまり、行1402を優先する場合には、行1402の「データ9」はそのままで、更新者を「マシンC」、イベント番号を新たに割り当てた「11」として、関係データベース102を更新したものとする。その際、更新履歴に、「C11」を追加すると共に、「C11」が「A5、A7」の更新に優先してされたことを示す優先指示として、「優先:A5、A7」を付加する。このように優先指示を付加する理由は、例えばユーザにどちらかの更新を優先するかを選択させた場合に、その選択結果を保持することで、再度ユーザに選択を要求しないようにするためである。   If any line is prioritized due to conflict resolution, it is treated as a newly updated line in the machine. For example, when the machine C has a row 1402 and the update of “B8” is given priority over the update of “A5, A7” for the rows 1401 and 1402, that is, when the row 1402 is given priority, “ Assume that the relational database 102 has been updated with the data 9 "as it is, the updater being" machine C "and the event number newly assigned to" 11 ". At this time, “C11” is added to the update history, and “priority: A5, A7” is added as a priority instruction indicating that “C11” is prioritized over the update of “A5, A7”. The reason why the priority instruction is added in this way is to prevent the user from requesting the selection again by holding the selection result when, for example, the user selects which update to give priority to. is there.

次に、マシンDが行1401を有しており、このマシンDがネットワークに再接続した場合について考える。この場合、マシンDは、マシンCから、行1404を更新情報として受信する。行1401の更新履歴と、行1404の更新履歴とを比較すると、先頭「A3」から「C7」までは同じである。また、行1401の更新履歴から、行1404の更新履歴との共通部分を除いた部分は「A5、A7」であり、行1404の更新履歴には、「優先A5、A7」が含まれている。このように、更新情報受信側マシンの行の更新履歴の途中までが更新情報の更新履歴と同じであり、それ以降の部分が、更新情報の更新履歴において優先指示されているときには、取得した更新情報の更新履歴が、自身の更新履歴を含んでいるものとして取り扱う。このようにすることで、更新履歴に「A5、A7」を含む行についても、「C11」によって更新された行で更新することができる。   Next, consider a case where machine D has row 1401 and this machine D is reconnected to the network. In this case, the machine D receives the row 1404 from the machine C as update information. When the update history of the row 1401 and the update history of the row 1404 are compared, the heads “A3” to “C7” are the same. Further, the part excluding the common part with the update history of the row 1404 from the update history of the row 1401 is “A5, A7”, and the update history of the row 1404 includes “priority A5, A7”. . Thus, when the update history of the row of the update information receiving side machine is the same as the update history of the update information, and the subsequent part is prioritized in the update history of the update information, the acquired update The information update history is treated as including its own update history. By doing in this way, the line including “A5, A7” in the update history can be updated with the line updated by “C11”.

図15は、ネットワーク再接続したマシンの動作手順を示している。同図に示す手順は、図8のステップS805がステップS1501に置き換わり、ステップS1502が追加されている点で、第1実施系におけるネットワークに再接続したマシンの動作手順と相違する。更新情報受信側マシンの再接続時同期手段104の更新情報送信要求手段106は、ステップS801で、更新マシンごとの最大イベント番号を検索する。その際、更新情報送信要求手段106は、同期情報201(図2)のイベント番号に加えて、更新履歴を含めて、各更新マシンについて最大のイベント番号を検索する。   FIG. 15 shows an operation procedure of the machine reconnected to the network. The procedure shown in the figure is different from the operation procedure of the machine reconnected to the network in the first embodiment in that step S805 of FIG. 8 is replaced with step S1501 and step S1502 is added. In step S801, the update information transmission request unit 106 of the reconnection synchronization unit 104 of the update information receiving machine searches for the maximum event number for each update machine. At that time, the update information transmission request means 106 searches for the maximum event number for each update machine including the update history in addition to the event number of the synchronization information 201 (FIG. 2).

再接続時同期手段104は、ステップS804で、関係データベース102に、更新情報送信側マシンから受信した更新情報に対応する行が存在すると判断すると、更新情報の同期情報に含まれる更新履歴と、関係データベース102の対応する行の同期情報の更新履歴とを比較する(ステップS1501)。比較の結果、取得した更新履歴の更新履歴が、自身の関係データベース102の対応する行の更新履歴を含む、或いは、優先指示によって、対応する行の更新履歴を含むとみなせる場合には、矛盾は起きていないので、ステップS806へ進んで、関係データベース102の対応する行を、取得した更新履歴の行で更新する。   When the reconnection synchronization unit 104 determines in step S804 that a row corresponding to the update information received from the update information transmitting machine exists in the relational database 102, the update history included in the synchronization information of the update information, The update history of the synchronization information of the corresponding row in the database 102 is compared (step S1501). If, as a result of the comparison, the update history of the acquired update history includes the update history of the corresponding row in its own relational database 102 or can be regarded as including the update history of the corresponding row by priority instruction, the contradiction is Since it has not occurred, the process proceeds to step S806, and the corresponding row in the relational database 102 is updated with the acquired update history row.

例えば、更新情報受信側マシンが図13に示す行1301を有し、更新情報として行1302を受信した場合には、ステップS1501では、行1301の更新履歴は、行1302の更新履歴に含まれると判断される。この場合、更新情報を受信した更新情報受信側マシンは、ステップS806からS807へと進み、取得した行1302で、関係データベース102を更新する。また、更新情報受信側マシンが図14に示す行1401を有し、更新情報として行1404を受信した場合には、行1401の更新履歴は、行1404の更新履歴には含まれないものの、更新履歴の共通部分「A3、B5、C7」の後ろが、行1404の更新履歴の優先指示で指定される「A5、A7」となっているため、ステップS1501では、行1401の更新履歴は、行1402の更新履歴に含まれるものとして取り扱われる。このため、関係データベース102の行1401は、更新情報の行1404により更新される。   For example, if the update information receiving machine has the row 1301 shown in FIG. 13 and receives the row 1302 as the update information, the update history of the row 1301 is included in the update history of the row 1302 in step S1501. To be judged. In this case, the update information receiving machine that has received the update information proceeds from step S806 to step S807, and updates the relational database 102 in the acquired row 1302. Further, when the update information receiving machine has the row 1401 shown in FIG. 14 and receives the row 1404 as the update information, the update history of the row 1401 is not included in the update history of the row 1404. Since the common part “A3, B5, C7” of the history is “A5, A7” specified by the update history priority instruction in the row 1404, in step S1501, the update history in the row 1401 is It is handled as being included in the update history 1402. Therefore, the row 1401 of the relational database 102 is updated by the update information row 1404.

取得した更新情報の更新履歴と関係データベース102の対応する行の更新履歴とが、包含関係にないとき、又は、更新履歴の優先指示を参照しても更新履歴の包含関係がないときには、同じ行が複数のマシンで別々に更新されており、矛盾が発生している。この場合には、矛盾を解決するように、行を更新する(ステップS1502)。ステップS1502では、例えばユーザに矛盾する行のうちの何れを優先するかを選択させ、選択された行で、関係データベース102を更新する。或いは、更新時刻が遅い方を優先して、その行で更新しても良い。   When the update history of the acquired update information and the update history of the corresponding row in the relational database 102 are not in an inclusive relationship, or when there is no inclusive relationship of the update history even if the update history priority instruction is referenced, the same row Has been updated separately on multiple machines, causing inconsistencies. In this case, the row is updated so as to resolve the contradiction (step S1502). In step S1502, for example, the user is allowed to select which of the contradicting rows is prioritized, and the relational database 102 is updated with the selected row. Alternatively, the update with the latest update time may be prioritized and updated in that row.

ステップS1502の更新では、優先する側の行について、更新者を自装置、イベント番号を新たに割り当てたイベント番号として、更新履歴に、今回更新分の情報を追加する。その際、選択されなかった行の更新履歴のうちで、選択された行の更新履歴との共通部分を除く部分を、優先指示として、更新された行の更新履歴に含める。例えば、図14の行1401と行1402について、行1402を優先させる場合には、行1401の更新履歴のうちで、行1402の更新履歴との共通部分を除く「A5、A7」を、行1404に示すように、今回更新分の履歴「C11」の優先指示として付加する。更新情報受信側マシンは、ステップS1502で関係データベース102を更新すると、接続中同期手段105により、ネットワーク接続中の各マシンに、更新した行を送信する。   In the update in step S1502, information for the current update is added to the update history with the updater as the own device and the event number newly assigned the event number for the priority row. At that time, a part of the update history of the unselected row excluding the common part with the update history of the selected row is included in the update history of the updated row as a priority instruction. For example, when priority is given to the row 1402 for the rows 1401 and 1402 in FIG. 14, “A5, A7” excluding the common portion with the update history of the row 1402 in the update history of the row 1401 As shown in FIG. 4, the history update “C11” for the current update is added as a priority instruction. When the update information receiving machine updates the relational database 102 in step S1502, the connected synchronization unit 105 transmits the updated row to each machine connected to the network.

本実施形態では、同期情報に、どのような順序(経路)で更新が行われたかを示す更新履歴を含める。この更新情報を用い、ネットワーク再接続時の同期の動作において取得した更新情報の更新履歴が、自身の更新履歴を含むか否かを調べることにより、矛盾が発生しているか否か、つまり、受信した更新情報と、自装置の関係データベース102の対応する行とが、ネットワーク切断後に同時に更新されたものであるか、或いは、一方でのみ更新されたものであるかを、判別できる。また、矛盾を解決した際には、その結果を更新履歴に含めることで、ネットワーク接続中の他のマシンに矛盾解決の際にどちらの更新を優先したかを伝播することができ、再度、矛盾解決の判断を行うことを避けることができる。   In the present embodiment, the synchronization information includes an update history indicating in what order (route) the update is performed. By using this update information, whether or not there is a contradiction by checking whether the update history of the update information acquired in the synchronization operation at the time of network reconnection includes its own update history, that is, receiving It can be determined whether the updated information and the corresponding row in the relational database 102 of the own device are updated at the same time after the network disconnection, or updated only on one side. In addition, when conflicts are resolved, the result is included in the update history, so that which update is prioritized when conflicts are resolved can be propagated to other machines connected to the network. Avoid making resolution decisions.

ここで、第1又は第2実施形態の動作と、本実施形態の動作とを組み合わせる場合には、図6を参照して説明したように、各マシンが新たに通信可能になったマシンを発見すると、おのおのが「更新情報受信側マシン」として同期を行う。従って、複数のマシンが既にネットワークに接続している状態で、あるマシンがネットワークイン再接続すると、更新情報の受信が同時に全マシンで行われ、全てのマシンで矛盾解決の動作が必要となる可能性がある。これに対し、第3実施形態の動作と本実施形態の動作とを組み合わせる場合には、第3実施形態では、更新情報をネットワーク接続中のマシンに対してマルチキャスト送信するため、矛盾解決の際に優先した更新の情報をネットワーク接続中の各マシンに伝播することができ、矛盾解決の動作は1回で済む。従って、本実施形態の動作は、第3実施形態の動作と組み合わせることが好ましい。   Here, when the operation of the first or second embodiment and the operation of the present embodiment are combined, as described with reference to FIG. 6, each machine discovers a new communicable machine. Then, each performs synchronization as an “update information receiving machine”. Therefore, when a machine is already connected to the network and a machine is reconnected to the network, update information is received on all machines at the same time, and all machines need to perform conflict resolution. There is sex. On the other hand, when combining the operation of the third embodiment and the operation of the present embodiment, in the third embodiment, update information is multicast-transmitted to machines connected to the network. The priority update information can be propagated to each machine connected to the network, and the conflict resolution operation can be performed only once. Therefore, the operation of the present embodiment is preferably combined with the operation of the third embodiment.

第5実施形態
本発明の第5実施形態の分散同期型情報システムは、図1に示す分散同期型情報システムと同様な構成に加え、履歴削除手段を有している。第4実施形態では、同期情報に更新履歴を含めたが、この更新履歴は、更新を行うたびに増大する。本実施形態では、各マシンにおいて、どの時点までの更新が伝播したかを管理し、更新履歴の不要部分を削除する。また、本実施形態では、各マシンにおいて、どの時点までの更新が伝播したかを管理して、同期情報の削除フラグが「Y」の行を削除する。
Fifth Embodiment A distributed synchronization information system according to a fifth embodiment of the present invention has a history deletion means in addition to the same configuration as the distributed synchronization information system shown in FIG. In the fourth embodiment, the update history is included in the synchronization information, but this update history increases each time an update is performed. In this embodiment, each machine manages how far the update has been propagated, and deletes unnecessary portions of the update history. Further, in this embodiment, in each machine, it is managed up to which point the update has been propagated, and the row whose synchronization information deletion flag is “Y” is deleted.

本実施形態では、各マシンは、各マシンにおいてどの時点の更新までが伝播したかを示す情報として、各マシンが持つ更新者ごとの最大イベント番号の情報を記憶する。図16は、各マシンが記憶する、各マシンが持つ更新者ごとの最大イベント番号の具体例を示している。例えば、マシンAが同図に示す表1601を記憶している場合には、マシンAは、自装置の関係データベース102については、更新者「マシンA」はイベント番号「20」まで、更新者「マシンB」はイベント番号「11」まで、更新者「マシンC」はイベント番号「15」の更新までが行われていることを認識(把握)している。また、マシンAは、マシンBの関係データベース102では、更新者「マシンA」はイベント番号「15」まで、更新者「マシンB」はイベント番号「11」まで、更新者「マシンC」はイベント番号「7」の更新までが行われていることを認識している。   In the present embodiment, each machine stores information on the maximum event number for each updater possessed by each machine as information indicating at what point in time the update has propagated in each machine. FIG. 16 shows a specific example of the maximum event number stored in each machine for each updater possessed by each machine. For example, when the machine A stores the table 1601 shown in the figure, the machine A can update the updater “machine A” up to the event number “20” and the updater “ Machine B ”recognizes (understands) that up to event number“ 11 ”and updater“ machine C ”have updated up to event number“ 15 ”. In the relational database 102 of the machine B, the updater “machine A” is up to the event number “15”, the updater “machine B” is up to the event number “11”, and the updater “machine C” is the event. It is recognized that the number "7" has been updated.

各マシンが記憶する各マシンが持つ更新者ごとの最大イベント番号の表の作成について説明する。システム運用開始時の表1601における最大イベント番号の初期値は0である。各マシンは、自装置の関係データベース102を更新すると、自装置が記憶する各マシンが持つ更新者ごとの最大イベント番号の表1601の「自装置が持つ最大イベント番号」の行の更新者「自装置」の値を、データベース内同期情報更新手段103により新たに割り当てられたイベント番号に書き換える。例えば、マシンA内で、関係データベース102が更新された場合には、マシンAは、自装置が記憶する最大イベント番号の表1601の「マシンAが持つ最大イベント番号」の行の更新者「マシンA」の値を、新たに割り当てられたイベント番号に書き換える。   Creation of a table of maximum event numbers for each updater possessed by each machine stored in each machine will be described. The initial value of the maximum event number in the table 1601 at the start of system operation is 0. When each machine updates its own device relational database 102, the updater “self” of the row “maximum event number of own device” in the table 1601 of the maximum event number for each updater possessed by each machine stored in the own device. The value of “device” is rewritten to the event number newly assigned by the in-database synchronization information updating unit 103. For example, when the relational database 102 is updated in the machine A, the machine A updates the “Machine A Maximum Event Number” row updater “Machine A” in the table 1601 of the maximum event numbers stored in its own device. Rewrite the value of “A” to the newly assigned event number.

マシンAでデータが更新された場合、その更新は、接続中同期手段105により、ネットワーク接続中のマシンに伝播される。各マシンは、他のマシンにおける更新が伝播されると、自装置が記憶する最大イベント番号の表1601の「自装置が持つ最大イベント番号」の行の更新者「マシンA」の値を、更新内容と共に伝播されたイベント番号に書き換える。その際、ネットワーク接続中のマシンを判断し、「ネットワーク接続中の各マシンがもつ最大イベント番号」の行の更新者「マシンA」の値を、伝播されたイベント番号に書き換える。これは、ネットワーク接続中の各マシンに、マシンAでの更新が伝播されるためである。ネットワーク接続中のマシンは、例えば、データを送信した際に応答があるか否かによって判断することができる。或いは、死活信号を用いて、周期的に死活信号を受信できたマシンを、ネットワーク接続中のマシンと判断しても良い。   When the data is updated on the machine A, the update is propagated to the machine connected to the network by the connecting synchronization means 105. When an update in another machine is propagated, each machine updates the value of the updater “machine A” in the row “maximum event number held by own device” in the table 1601 of the maximum event number stored in the own device. Rewrite with the event number propagated with the content. At that time, the machine connected to the network is determined, and the value of the updater “machine A” in the row of “the maximum event number of each machine connected to the network” is rewritten to the propagated event number. This is because the update on the machine A is propagated to each machine connected to the network. For example, a machine connected to the network can determine whether or not there is a response when data is transmitted. Alternatively, a machine that can periodically receive the life / death signal using the life / death signal may be determined as a machine connected to the network.

例えば、マシンBは、マシンAから、ネットワーク接続中の同期の動作により、マシンAでの更新内容を受け取り、更新者を「マシンA」として、関係データベース102を更新する。その際、マシンBは、自装置が記憶する最大イベント番号の表1601の「マシンBが持つ最大イベント番号の行の更新者「マシンA」の値を、マシンAから伝播されたイベント番号に書き換える。また、マシンCがネットワークに接続していた場合には、マシンAにおける更新はマシンCにも伝播するため、マシンBが記憶する最大イベント番号の表1601の「マシンCが持つ最大イベント番号」の行の更新者「マシンA」の値を、マシンAから伝播されたイベント番号に書き換える。マシンCがネットワークから切断されていた場合には、マシンAにおける更新はマシンCには伝播されないため、「マシンCが持つ最大イベント番号」の値は書き換えない。   For example, the machine B receives the update contents in the machine A from the machine A through a synchronization operation during network connection, and updates the relational database 102 with the updater as “machine A”. At this time, the machine B rewrites the value of the “updater“ machine A ”in the row of the maximum event number held by the machine B” in the table 1601 of the maximum event number stored in its own device to the event number propagated from the machine A. . Further, when the machine C is connected to the network, the update in the machine A is also propagated to the machine C. Therefore, the “maximum event number of the machine C” in the table 1601 of the maximum event number stored in the machine B is stored. The value of the updater “machine A” in the row is rewritten to the event number propagated from the machine A. When the machine C is disconnected from the network, the update in the machine A is not propagated to the machine C, so the value of “maximum event number held by the machine C” is not rewritten.

ネットワーク再接続時の動作では、更新情報送信側マシンは、ステップS903(図9)で抽出した行をエンコードして送信する際に、記憶する各マシンの更新者ごとの最大イベント番号の表1601をエンコードして、抽出した行と共に、更新情報受信側マシンに送信する。更新情報受信側マシンは、ステップS803(図8)で更新情報を取得すると、更新情報送信側マシンから受信した各マシンが持つ最大イベント番号の表と、自装置が記憶する各マシンが持つ更新者ごとの最大イベント番号の表とを組み合わせて、記憶する最大イベント番号の表を更新する。その後、再接続時の同期の動作により、関係データベース102を更新し、その更新に伴って、最大イベント番号の表の自装置が持つ最大イベント番号の行を更新する。   In the operation at the time of network reconnection, when the update information transmission side machine encodes and transmits the row extracted in step S903 (FIG. 9), the table 1601 of the maximum event number for each updater of each machine stored is stored. Encode and send to the update information receiving machine along with the extracted lines. When the update information receiving machine acquires the update information in step S803 (FIG. 8), a table of the maximum event numbers of each machine received from the update information transmitting machine and the updater of each machine stored in its own device. The table of maximum event numbers to be stored is updated in combination with the table of maximum event numbers for each. Thereafter, the relational database 102 is updated by the synchronization operation at the time of reconnection, and the row of the maximum event number held by the own device in the table of maximum event numbers is updated along with the update.

図17は、再接続時の同期の動作における、各マシンが持つ最大イベント番号の表の更新の様子を示している。例えば、マシンAが表1701を記憶し、マシンBが表1702を記憶していたとする。マシンBを更新情報受信側マシンとし、マシンAを更新情報送信側マシンとすると、再接続時の同期では、マシンBは、マシンAから表1701を取得する。マシンBは、記憶する表1702の各項目の値と、受信した表1701の各項目の値とを比較し、値が大きいほうを選択して、各マシンが持つ更新者ごとの最大イベント番号の表を表1703に更新する。例えば、表1701におけるマシンAが持つ更新者「マシンB」の最大イベント番号は「11」であり、表1702におけるマシンAが持つ更新者「マシンB」の最大イベント番号は「7」である。この場合には、「11」を選択する。   FIG. 17 shows how the maximum event number table of each machine is updated in the synchronization operation during reconnection. For example, assume that machine A stores table 1701 and machine B stores table 1702. Assuming that machine B is an update information receiving machine and machine A is an update information transmitting machine, machine B acquires table 1701 from machine A in synchronization at the time of reconnection. The machine B compares the value of each item of the stored table 1702 with the value of each item of the received table 1701, selects the larger value, and determines the maximum event number for each updater possessed by each machine. The table is updated to table 1703. For example, the maximum event number of the updater “machine B” possessed by the machine A in the table 1701 is “11”, and the maximum event number of the updater “machine B” possessed by the machine A in the table 1702 is “7”. In this case, “11” is selected.

削除フラグが「Y」に設定された行(同期情報)の削除について説明する。削除フラグは、再接続時の同期において、ネットワークから切断されたマシンにおいて行が新たに挿入されたのか、ネットワーク接続中のマシンにおいて行が削除されたのかを判別するために用いられる。従って、行を削除する更新が全てのマシンに伝播されていることが確認できれば、その行自体を削除することができる。   Deletion of a line (synchronization information) in which the deletion flag is set to “Y” will be described. The deletion flag is used to determine whether a row has been newly inserted in a machine disconnected from the network or a row has been deleted in a machine connected to the network during synchronization at the time of reconnection. Therefore, if it can be confirmed that the update for deleting a row has been propagated to all machines, the row itself can be deleted.

各マシンが持つ更新者ごとの最大イベント番号の表1601(図16)において、更新者ごとに最小値を求めると、マシンAは「15」、マシンBは「7」、マシンCは「7」となる。これは、表1601を記憶するマシンは、各マシンで、更新者ごとに、最低限これらイベント番号までの更新がされていることを認識していることを意味する。つまり、全マシンに、更新者をマシンAとする更新はイベント番号「15」まで、更新者をマシンBとする更新はイベント番号「7」まで、更新者をマシンCとする更新はイベント番号「7」まで伝播されていると認識していることを意味する。従って、削除フラグが「Y」に設定された行のイベント番号が、その行を更新したマシンの最大イベント番号の最小値以下の値であれば、その行を削除することができる。   In the table 1601 (FIG. 16) of the maximum event numbers for each updater possessed by each machine, when the minimum value is obtained for each updater, the machine A is “15”, the machine B is “7”, and the machine C is “7”. It becomes. This means that the machine storing the table 1601 recognizes that each machine has been updated up to at least these event numbers for each updater. That is, for all machines, the update with the updater as machine A is up to event number “15”, the update with the updater as machine B is up to event number “7”, and the update with the updater as machine C is up to event number “15”. 7 ”means that it has been propagated. Therefore, if the event number of the line for which the deletion flag is set to “Y” is a value equal to or smaller than the minimum value of the maximum event number of the machine that updated the line, the line can be deleted.

各マシンは、任意のタイミングで、例えば定期的に、或いは、他のマシンとの同期時に、削除フラグが「Y」に設定された行のイベント番号と、各マシンが持つ更新者ごとの最大イベント番号の、その行を更新したマシンの最小値とを比較し、その行のイベント番号が、最大イベント番号の最小値以下であるときには、その行を削除する。図3に示すように、データと同期情報が分離されているときには、削除フラグが「Y」に設定された行に対応する同期情報を削除する。例えば、削除フラグが「Y」に設定された行の更新者がマシンCであり、イベント番号が「3」であれば、表1601における更新者「マシンC」の最大イベント番号の最小値は「7」であるため、その行を関係データベース102から削除する。   Each machine has an event number of a row in which the deletion flag is set to “Y” and a maximum event for each updater possessed by each machine at an arbitrary timing, for example, periodically or when synchronizing with other machines. The number is compared with the minimum value of the machine that updated the line, and if the event number of the line is less than or equal to the minimum value of the maximum event number, the line is deleted. As shown in FIG. 3, when the data and the synchronization information are separated, the synchronization information corresponding to the row in which the deletion flag is set to “Y” is deleted. For example, if the updater of the row in which the deletion flag is set to “Y” is the machine C and the event number is “3”, the minimum value of the maximum event number of the updater “machine C” in the table 1601 is “ 7 ”, the row is deleted from the relational database 102.

次に、更新履歴の削除について説明する。図18は、更新履歴削除前の行と更新履歴削除後の行とを示している。更新履歴については、全てのマシンに伝播した更新に関しては、更新履歴から削除しても問題がない。例えば、マシンAが、図16に示す表1601を記憶する場合には、マシンAは、各更新者についての最大イベント番号の最小値である「A15」、「B7」、「C7」までの更新は、全マシンに伝播していると認識している。このため、更新履歴削除手段は、図18に示す行1801については、この行の更新履歴「A3、B5、C7、A20」から「A3、B5、C7」を削除する。これにより、更新履歴削除後の行1802の更新履歴は「A20」のみとなる。履歴削除手段は、任意のタイミングで、例えば定期的に、或いは、他のマシンとの同期時に、更新履歴の不要部分を削除する。   Next, deletion of the update history will be described. FIG. 18 shows a line before update history deletion and a line after update history deletion. Regarding the update history, there is no problem even if the update propagated to all machines is deleted from the update history. For example, when the machine A stores the table 1601 shown in FIG. 16, the machine A updates up to “A15”, “B7”, and “C7”, which are the minimum values of the maximum event numbers for each updater. Recognizes that it has propagated to all machines. Therefore, the update history deleting means deletes “A3, B5, C7” from the update history “A3, B5, C7, A20” of this row for the row 1801 shown in FIG. As a result, the update history in the row 1802 after deletion of the update history is only “A20”. The history deletion unit deletes an unnecessary part of the update history at an arbitrary timing, for example, periodically or at the time of synchronization with another machine.

ただし、任意の2台がデータを同期しようとした際に、それぞれのマシンにおいて更新履歴から削除した内容が異なる場合がある。これは、各マシンが記憶する、各マシンが持つ更新者ごとの最大イベント番号の表における更新者ごとの最大イベント番号の最小値が、マシンごとに異なる場合があるためである。例えば、マシンAが図17に示す表1701(図16の表1601と同じ内容)を記憶し、マシンBが表1702を記憶する場合には、マシンAが記憶する表1701では、更新者「マシンA」の最大イベント番号の最小値は「15」であり、マシンBが記憶する表1702では、更新者「マシンA」の最大イベント番号の最小値は「11」となる。これは、マシンAは、自装置が更新者となる更新についてイベント番号「15」までの更新が全マシンに伝播していると認識しており、マシンBは、更新者「マシンA」の更新については、イベント番号「11」までの更新が全マシンに伝播していると認識していることを意味する。   However, when two arbitrary devices try to synchronize data, the contents deleted from the update history may be different in each machine. This is because the minimum value of the maximum event number for each updater in the table of the maximum event numbers for each updater stored in each machine may be different for each machine. For example, when machine A stores table 1701 shown in FIG. 17 (the same content as table 1601 in FIG. 16) and machine B stores table 1702, in table 1701 stored by machine A, the updater “machine The minimum value of the maximum event number of “A” is “15”, and in the table 1702 stored by the machine B, the minimum value of the maximum event number of the updater “machine A” is “11”. This is because machine A recognizes that updates up to event number “15” have been propagated to all machines for updates for which its own device is an updater, and machine B updates updater “machine A”. Means that updates up to event number “11” are recognized as being propagated to all machines.

図19は、マシンBにおける更新履歴の削除の様子を示している。同図に示す行1901は、図18に示す行1801と同じ主キーを有しており、「A20」の更新がされる前の状態を示している。マシンBが、各マシンが持つ更新者ごとの最大イベント番号として図17に示す表1702を記憶していた場合、更新者「マシンC」についての最大イベント番号の最小値は「6」である。従って、マシンBが、図19に示す行1901から更新履歴を削除すると、行1902に示すように、更新履歴は「C7」となる。この場合、マシンAとマシンBとが図15に示す手順で同期しようとすると、行1802(図18)の更新履歴と行1902の更新履歴とは包含関係にないため、本来は矛盾しない更新であるのに、矛盾した更新であると誤って認識することになる。   FIG. 19 shows how the update history is deleted in the machine B. The row 1901 shown in the figure has the same primary key as the row 1801 shown in FIG. 18, and shows a state before “A20” is updated. When the machine B has stored the table 1702 shown in FIG. 17 as the maximum event number for each updater possessed by each machine, the minimum value of the maximum event number for the updater “machine C” is “6”. Therefore, when the machine B deletes the update history from the row 1901 shown in FIG. 19, the update history becomes “C7” as shown in the row 1902. In this case, if the machine A and the machine B try to synchronize according to the procedure shown in FIG. 15, the update history in the row 1802 (FIG. 18) and the update history in the row 1902 are not in an inclusive relationship. In spite of this, it is mistakenly recognized as an inconsistent update.

そこで、更新情報送信側マシンにおいて、どの更新までを更新履歴から削除したかを、更新情報受信側マシンに伝達する。具体的には、更新情報送信側マシンは、更新情報受信側マシンに抽出した行をエンコードして送信する際に、自装置が記憶する「各マシンが持つ更新者ごとの最大イベント番号の表」をエンコードして送信する。更新情報受信側マシンは、更新情報送信側マシンから受信した「各マシンが持つ更新者ごとの最大イベント番号の表」、自装置が記憶する「各マシンが持つ更新者ごとの最大イベント番号の表」とのうちの値が大きいほうを選択して、「各マシンが待つ更新者ごとの最大イベント番号の表」を更新する。その後、更新された表について、更新者ごとに、最大イベント番号の最小値を求める。   Therefore, the update information transmission side machine notifies the update information reception side machine of what update has been deleted from the update history. Specifically, when the update information transmission side machine encodes and transmits the extracted row to the update information reception side machine, it stores the “table of maximum event numbers for each updater that each machine has” Encode and send. The update information receiving machine receives the "maximum event number table for each updater on each machine" received from the update information transmission machine, and the "maximum event number table for each updater on each machine" stored in its own device. The larger value of "" is selected, and the "table of maximum event numbers for each updater that each machine waits" is updated. Thereafter, for the updated table, the minimum value of the maximum event number is obtained for each updater.

図17の例では、マシンAが記憶する表1701と、マシンBが記憶する表1702とにより、マシンBが記憶する「各マシンが持つ最大イベント番号の表」は、表1703に示すように更新される。この場合、最大イベント番号の最小値は、「A11」、「B7」、「C6」(表1702)から、「A15」、「B7」、「C7」となる。更新情報受信側マシンは、ステップS1501(図15)で、更新履歴を比較する際に、自装置の関係データベース102の更新情報に対応する行の更新履歴から、更新した各マシンが持つ最大イベント番号の表の更新者ごとの最大イベント番号の最小値を用いて、更新履歴を削除する。その上で、更新情報の更新履歴と、関係データベース102の更新情報に対応する行の更新履歴とを比較し、矛盾が発生しているか否かを調べる。   In the example of FIG. 17, the table 1701 stored by the machine A and the table 1702 stored by the machine B update the “table of maximum event numbers held by each machine” as shown in the table 1703. Is done. In this case, the minimum value of the maximum event number is “A15”, “B7”, and “C7” from “A11”, “B7”, and “C6” (Table 1702). When the update information receiving machine compares the update histories in step S1501 (FIG. 15), it updates the maximum event number of each updated machine from the update history of the row corresponding to the update information in the relational database 102 of the own device. The update history is deleted using the minimum value of the maximum event number for each updater in the table. Then, the update history of the update information is compared with the update history of the row corresponding to the update information in the relational database 102 to check whether or not a contradiction has occurred.

例えば、マシンBが図19に示す行1902を記憶し、更新情報として図18に示す行1802を受信した場合には、更新された表1703を参照して、行1902の更新履歴から「C7」を削除する。このように更新履歴が削除された行1903と、更新情報の更新履歴とを比較すると、行1903の更新履歴は“空”であるので、ステップS1501では、矛盾があるとは判断されず、ステップS810へ進んでデータが更新される。更新情報受信側マシンは、ステップS810でデータを更新した場合には、その更新に対応して、「各マシンがもつ更新者ごとの最大イベント番号の表」の自装置が持つ最大イベント番号の行を更新する。例えば、マシンBが、行1903を行1802で更新した場合には、マシンBは、表1703(図17)のマシンBが持つ最大イベント番号の行の更新者「マシンA」の値を、「20」に更新する。   For example, when the machine B stores the row 1902 shown in FIG. 19 and receives the row 1802 shown in FIG. 18 as the update information, the updated table 1703 is referred to, and “C7” is obtained from the update history of the row 1902. Is deleted. When the row 1903 from which the update history has been deleted in this way is compared with the update history of the update information, the update history of the row 1903 is “empty”. Therefore, in step S1501, it is not determined that there is a contradiction, and the step Proceeding to S810, the data is updated. If the update information receiving machine has updated the data in step S810, the update information receiving machine corresponds to the update, and the row of the maximum event number of its own device in the "table of maximum event numbers for each updater of each machine" Update. For example, when the machine B updates the row 1903 with the row 1802, the machine B sets the value of the updater “machine A” in the row of the maximum event number held by the machine B in the table 1703 (FIG. 17) to “ 20 ”.

本実施形態では、各マシンが、各マシンに更新者ごとにどの更新までが伝播したかを記憶し、その情報を参照して、既に全てのマシンに伝播しており、不要となった更新履歴や、削除フラグが「Y」に設定された行(同期情報)を削除する。このようにすることで、更新履歴や同期情報を記憶するために必要な記憶容量を少なくすることができ、記憶装置の記憶容量を有効に使用することができる。   In this embodiment, each machine memorizes what update has been propagated to each machine for each updater, refers to that information, has already propagated to all machines, and is no longer needed Or, the line (synchronization information) in which the deletion flag is set to “Y” is deleted. By doing so, the storage capacity necessary for storing the update history and the synchronization information can be reduced, and the storage capacity of the storage device can be used effectively.

第6実施形態
図20は、本発明の第6実施形態の分散同期型情報システムの構成を示している。本実施形態では、分散同期型情報システム10aは、ネットワークを介して接続された複数のコンピュータ(同図の例では、3台のコンピュータ2001〜2003)により構成される。各コンピュータには、記録媒体2011〜2013が接続されており、各記録媒体は、コンピュータを図1に示すアプリケーション101、データベース内同期情報更新手段103、再接続時同期手段104、及び、接続中同期手段105として機能させるプログラム、及び、関係データベース102が記憶されている。各コンピュータは、プログラムを読み込んで動作することにより、第1〜第5実施形態で説明した動作により、関係データベース102を同期する。
Sixth Embodiment FIG. 20 shows the configuration of a distributed synchronous information system according to a sixth embodiment of the present invention. In the present embodiment, the distributed synchronous information system 10a is composed of a plurality of computers (three computers 2001 to 2003 in the example shown in the figure) connected via a network. Recording media 2011 to 2013 are connected to each computer, and each recording medium is connected to the application 101 shown in FIG. 1, in-database synchronization information updating means 103, reconnection synchronization means 104, and connected synchronization. A program that functions as the means 105 and a relational database 102 are stored. Each computer reads the program and operates to synchronize the relational database 102 by the operations described in the first to fifth embodiments.

なお、図2では、同期情報に、更新の前後を判断する情報として「イベント番号」を含め、何れの更新を優先すべきかを判断する際に用いる情報として「更新時刻」を含めたが、更新の前後を判断するための情報として「更新時刻」を採用する場合には、更新の前後を判断するための情報と、何れの更新を優先すべきかを判断するための情報とを共用することができる。更新の前後を判断するための情報として、更新時刻を用いる場合には、上記各実施形態で説明した最大イベント番号を、直近の更新時刻と読みかえればよい。また、あるイベント番号以降のイベント番号の部分を、ある更新時刻以降の更新と読み替えればよい。   In FIG. 2, the synchronization information includes “event number” as information for determining before and after update, and “update time” as information used when determining which update should be prioritized. When “update time” is used as information for determining before and after the update, information for determining before and after the update and information for determining which update should be given priority may be shared. it can. When the update time is used as the information for determining before and after the update, the maximum event number described in each of the above embodiments may be read as the latest update time. Further, an event number portion after a certain event number may be read as an update after a certain update time.

以上、本発明をその好適な実施形態に基づいて説明したが、本発明の情報装置、分散同期型情報システム、情報同期方法、及び、プログラムは、上記実施形態例にのみ限定されるものではなく、上記実施形態の構成から種々の修正及び変更を施したものも、本発明の範囲に含まれる。   As mentioned above, although this invention was demonstrated based on the suitable embodiment, the information apparatus of this invention, a distributed synchronous type | mold information system, the information synchronization method, and a program are not limited only to the said embodiment example. Those modified and changed from the configuration of the above embodiment are also included in the scope of the present invention.

本発明は、パーソナルコンピュータや情報家電、携帯電話、PDAといった機器において、それらが利用する情報を同期する用途に適用できる。また、ネットワークで接続されたサーバ群の間で、データベース内の情報を同期するための用途にも適用できる。   The present invention can be applied to applications such as personal computers, information appliances, mobile phones, and PDAs that synchronize information used by them. Further, the present invention can be applied to a use for synchronizing information in a database between a group of servers connected via a network.

本発明の第1実施形態の分散同期型情報システムの構成を示すブロック図。1 is a block diagram showing a configuration of a distributed synchronous information system according to a first embodiment of the present invention. 関係データベースのデータ構造の具体例を示す図。The figure which shows the specific example of the data structure of a relational database. 関係データベースのデータ構造の別の具体例を示す図。The figure which shows another specific example of the data structure of a relational database. データベース内同期情報更新手段の動作手順を示すフローチャート。The flowchart which shows the operation | movement procedure of the synchronous information update means in a database. 接続中同期手段の動作手順を示すフローチャート。The flowchart which shows the operation | movement procedure of the synchronization means during a connection. 再接続時同期手段の動作手順を示すフローチャート。The flowchart which shows the operation | movement procedure of the synchronization means at the time of reconnection. ネットワーク再接続時の関係データベースの更新の様子を示すブロック図。The block diagram which shows the mode of the update of the relational database at the time of network reconnection. 更新情報受信側マシンのネットワーク再接続時の更新処理の詳細な手順を示すフローチャート。The flowchart which shows the detailed procedure of the update process at the time of the network reconnection of an update information receiving side machine. 更新情報送信側マシンのネットワーク再接続時の更新処理の詳細な手順を示すフローチャート。The flowchart which shows the detailed procedure of the update process at the time of the network reconnection of an update information transmission side machine. ネットワーク再接続時の更新処理において、2つのマシン間でやり取りされる情報の具体例を示す図。The figure which shows the specific example of the information exchanged between two machines in the update process at the time of network reconnection. 本発明の第2実施形態の分散同期型情報システムにおけるネットワーク接続中の同期の動作手順を示すフローチャート。The flowchart which shows the operation | movement procedure of the synchronization in the network connection in the distributed synchronous information system of 2nd Embodiment of this invention. 本発明の第3実施形態の分散同期型情報システムにおけるネットワーク再接続時の同期の動作手順を示すフローチャート。The flowchart which shows the operation | movement procedure of the synchronization at the time of network reconnection in the distributed synchronous information system of 3rd Embodiment of this invention. 更新履歴の更新の様子を示す図。The figure which shows the mode of an update history update. 更新履歴の更新の別の例を示す図。The figure which shows another example of the update of update history. ネットワーク再接続したマシンの動作手順を示すフローチャート。The flowchart which shows the operation | movement procedure of the machine reconnected to the network. 各マシンが記憶する、各マシンが持つ更新者ごとの最大イベント番号の具体例を示す図。The figure which shows the specific example of the maximum event number for every updater which each machine memorize | stores. 再接続時の同期の動作における、各マシンが持つ最大イベント番号の表の更新の様子を示す図。The figure which shows the mode of the update of the table | surface of the largest event number which each machine has in the synchronous operation | movement at the time of reconnection. 更新履歴削除前の行と更新履歴削除後の行とを示す図。The figure which shows the line before update history deletion, and the line after update history deletion. マシンBにおける更新履歴の削除の様子を示す図。The figure which shows the mode of deletion of the update history in the machine B. 本発明の第6実施形態の分散同期型情報システムの構成を示すブロック図。The block diagram which shows the structure of the distributed synchronous information system of 6th Embodiment of this invention. 非特許文献1に記載の技術における情報同期の様子を示す図。The figure which shows the mode of the information synchronization in the technique of a nonpatent literature 1.

符号の説明Explanation of symbols

10:分散同期型情報システム
100、110、120:情報機器
101:アプリケーション
102:関係データベース
103:データベース内同期情報更新手段
104:再接続時同期手段
105:接続中同期手段
106:更新情報送信要求手段
107:更新情報送信手段
201:同期情報
2001、2002、2003:コンピュータ
2011、2012、2013:記録媒体
10: Distributed synchronous information system 100, 110, 120: Information device 101: Application 102: Relational database 103: In-database synchronization information update means 104: Reconnection synchronization means 105: Connected synchronization means 106: Update information transmission request means 107: Update information transmission means 201: Synchronization information 2001, 2002, 2003: Computer 2011, 2012, 2013: Recording medium

Claims (30)

それぞれがデータベースを有する複数の情報処理装置を備え、該情報処理装置の間で前記データベースを同期させる分散同期型情報システムにおいて、
前記情報処理装置のそれぞれが、
前記データベースの各データと、データ更新を行った情報処理装置を示す更新者、及び、情報処理装置内での更新の前後を判断するための情報を含む同期情報とを対応付けて記憶する記憶装置を検索し、前記更新者ごとの最新の更新を示す情報を含む更新情報送信要求を他の情報処理装置に送信する更新情報送信要求手段と、
前記更新情報送信要求を受信した他の情報処理装置から、前記更新情報送信要求に含まれる更新者ごとの最新の更新よりも新しい更新により更新された更新データ及び該更新データに対応する同期情報を含む更新情報を受信し、自装置内の前記データベース及び同期情報を更新する第1のデータベース同期手段とを備えたことを特徴とする分散同期型情報システム。
In a distributed synchronous information system that includes a plurality of information processing devices each having a database, and synchronizes the database among the information processing devices,
Each of the information processing devices
A storage device that associates and stores each data of the database, an updater indicating an information processing device that has performed data update, and synchronization information including information for determining before and after the update in the information processing device And an update information transmission request means for transmitting an update information transmission request including information indicating the latest update for each updater to another information processing apparatus,
Update data updated by a newer update than the latest update for each updater included in the update information transmission request and synchronization information corresponding to the update data from another information processing apparatus that has received the update information transmission request. A distributed synchronization type information system comprising: first database synchronization means for receiving update information including and updating the database and synchronization information in the device itself.
自装置内で更新者として前記データベースを更新すると、自装置内での更新の前後を判断するための情報を作成し、当該更新データに対応させて同期情報を更新する同期情報更新手段を更に備える、請求項1に記載の分散同期型情報システム。   When the database is updated as an updater in the own device, the database further includes synchronization information updating means for creating information for determining before and after the update in the own device and updating the synchronization information in correspondence with the update data. The distributed synchronous information system according to claim 1. 前記情報処理装置内での更新の前後を判断するための情報が、前記情報処理装置内で前記データベースを更新するたびにインクリメントされる情報処理装置ごとのイベント番号である、請求項1又は2に記載の分散同期型情報システム。   The information for judging before and after the update in the information processing apparatus is an event number for each information processing apparatus that is incremented each time the database is updated in the information processing apparatus. The distributed synchronous information system described. 前記同期情報が更新時刻を含み、前記第1のデータベース同期手段は、前記更新情報に含まれる同期情報の更新時刻が、自装置が記憶する同期情報の更新時刻よりも新しいと、前記データベース及び同期情報を更新する、請求項1〜3の何れか一に記載の分散同期型情報システム。   When the synchronization information includes an update time, and the first database synchronization means determines that the update time of the synchronization information included in the update information is newer than the update time of the synchronization information stored in its own device, The distributed synchronous information system according to claim 1, wherein information is updated. 前記同期情報が、現時点までに更新を行った情報処理装置と、情報処理装置内での更新の前後を判断するための情報との組を含む更新履歴を更に含む、請求項1〜4の何れか一に記載の分散同期型情報システム。   The synchronization information according to any one of claims 1 to 4, wherein the synchronization information further includes an update history including a pair of an information processing apparatus that has been updated so far and information for determining before and after updating in the information processing apparatus. A distributed synchronous information system according to claim 1. 前記第1のデータベース同期手段は、受信した更新情報に含まれる更新履歴と、自装置が記憶する更新履歴とを比較し、受信した更新情報に含まれる更新履歴が、自装置が記憶する更新履歴を含むと判断すると、前記データベース及び対応する同期情報を更新する、請求項5に記載の分散同期型情報システム。   The first database synchronization means compares the update history included in the received update information with the update history stored in the own device, and the update history included in the received update information stores the update history stored in the own device. The distributed synchronous information system according to claim 5, wherein the database and the corresponding synchronization information are updated if it is determined that the database includes the database. 各情報処理装置のデータベースに反映された更新について、更新者ごとに最新の更新を示す情報を記憶する更新伝播情報を参照して、前記更新履歴から、全ての情報処理装置のデータベースで反映されている更新以前の履歴を削除する履歴削除手段を更に備える、請求項5又は6に記載の分散同期型情報システム。   Updates reflected in the database of each information processing apparatus are reflected in the database of all information processing apparatuses from the update history with reference to update propagation information storing information indicating the latest update for each updater. The distributed synchronous information system according to claim 5 or 6, further comprising history deletion means for deleting a history before update. 自装置内で前記データベースを更新すると、ネットワーク接続中の他の情報処理装置に、更新データと、該更新データに対応する同期情報とを送信する更新伝播手段と、
他の情報処理装置の更新伝播手段によって送信された更新データ及び同期情報を受信し、前記データベース及び同期情報を更新する第2のデータベース同期手段とを更に備える、請求項1〜7の何れか一に記載の分散同期型情報システム。
When updating the database in its own device, update propagation means for transmitting update data and synchronization information corresponding to the update data to other information processing devices connected to the network;
8. The apparatus according to claim 1, further comprising: second database synchronization means for receiving update data and synchronization information transmitted by update propagation means of another information processing apparatus and updating the database and synchronization information. Distributed synchronous information system described in 1.
他の情報処理装置から更新情報送信要求を受信すると、自装置が記憶する同期情報を参照して、受信した更新情報送信要求に含まれる更新者ごとの最新の更新よりも新しい更新を検索し、該検索により抽出された更新の更新データと、該更新データに対応する同期情報とを含む更新情報を、前記更新情報送信要求を送信した情報処理装置に向けて送信する更新情報送信手段とを更に備える、請求項1〜8の何れか一に記載の分散同期型情報システム。   When receiving an update information transmission request from another information processing device, refer to the synchronization information stored in the own device, search for an update that is newer than the latest update for each updater included in the received update information transmission request, Update information transmitting means for transmitting update information including update data extracted by the search and synchronization information corresponding to the update data to the information processing apparatus that has transmitted the update information transmission request; The distributed synchronous information system according to any one of claims 1 to 8, further comprising: ネットワークに再接続された情報処理装置が、ネットワークに接続されている他の情報処理装置のうちの1つから更新情報送信要求を受信すると、該再接続された情報処理装置の前記更新情報送信手段は、前記更新情報をネットワークに接続された他の情報処理装置に向けてマルチキャスト送信する、請求項9に記載の分散同期型情報システム。   When the information processing apparatus reconnected to the network receives an update information transmission request from one of the other information processing apparatuses connected to the network, the update information transmitting unit of the reconnected information processing apparatus The distributed synchronous information system according to claim 9, wherein the update information is multicast-transmitted to another information processing apparatus connected to the network. それぞれがデータベースを有する複数の情報処理装置を備え、該情報処理装置の間で前記データベースを同期させる分散同期型情報システムにおけるデータベース同期方法おいて、
前記情報処理装置が、データベース更新時に、更新データと、データ更新を行った情報処理装置を示す更新者、及び、情報処理装置内での更新の前後を判断するための情報を含む同期情報とを対応付けて記憶するステップと、
前記情報処理装置が、前記同期情報を検索し、前記更新者ごとの最新の更新を示す情報を含む更新情報送信要求を他の情報処理装置に送信するステップと、
前記情報処理装置が、前記更新情報送信要求を受信した他の情報処理装置から、前記更新情報送信要求に含まれる更新者ごとの最新の更新よりも新しい更新により更新された更新データ及び該更新データに対応する同期情報を含む更新情報を受信するステップと、
前記情報処理装置が、受信した更新情報に基づいて、自装置内の前記データベース及び同期情報を更新するステップとを有することを特徴とする方法。
In a database synchronization method in a distributed synchronization information system, each comprising a plurality of information processing devices each having a database, and synchronizing the database among the information processing devices,
When the information processing apparatus updates the database, update data, an updater indicating the information processing apparatus that performed the data update, and synchronization information including information for determining before and after the update in the information processing apparatus Storing in association with each other;
The information processing apparatus searches for the synchronization information and transmits an update information transmission request including information indicating the latest update for each updater to another information processing apparatus;
Update data updated by a newer update than the latest update for each updater included in the update information transmission request from another information processing apparatus that has received the update information transmission request, and the update data Receiving update information including synchronization information corresponding to
The information processing apparatus includes a step of updating the database and synchronization information in the own apparatus based on the received update information.
前記同期情報を記憶するステップでは、前記情報処理装置は、自装置内で更新者として前記データベースを更新すると、自装置内での更新の前後を判断するための情報を作成し、当該更新データに対応させて同期情報を更新する、請求項11に記載の方法。   In the step of storing the synchronization information, when the information processing apparatus updates the database as an updater in the own apparatus, the information processing apparatus creates information for determining before and after the update in the own apparatus, and stores the update data in the update data. The method according to claim 11, wherein the synchronization information is updated correspondingly. 前記情報処理装置内での更新の前後を判断するための情報が、前記情報処理装置内で前記データベースを更新するたびにインクリメントされる情報処理装置ごとのイベント番号である、請求項11又は12に記載の方法。   The information for judging before and after the update in the information processing apparatus is an event number for each information processing apparatus that is incremented each time the database is updated in the information processing apparatus. The method described. 前記同期情報が更新時刻を含み、前記データベース及び同期情報を更新するステップでは、前記情報処理装置は、前記更新情報に含まれる同期情報の更新時刻が、自装置が記憶する同期情報の更新時刻よりも新しいと、前記データベース及び同期情報を更新する、請求項11〜13の何れか一に記載の方法。   In the step in which the synchronization information includes an update time, and the database and the synchronization information are updated, the information processing apparatus determines that the update time of the synchronization information included in the update information is greater than the update time of the synchronization information stored in the own apparatus. The method according to claim 11, wherein the database and the synchronization information are updated when new. 前記同期情報が、更新を行った情報処理装置と、情報処理装置内での更新の前後を判断するための情報との組を含む更新履歴を更に含む、請求項11〜14の何れか一に記載の方法。   15. The synchronization information according to any one of claims 11 to 14, wherein the synchronization information further includes an update history including a pair of an information processing apparatus that has performed an update and information for determining before and after the update in the information processing apparatus. The method described. 前記情報処理装置が、受信した更新情報に含まれる更新履歴と、自装置が記憶する更新履歴とを比較するステップを更に有し、前記情報処理装置は、受信した更新情報に含まれる更新履歴が、自装置が記憶する更新履歴を含むと判断すると、前記データベース及び対応する同期情報を更新する、請求項15に記載の方法。   The information processing apparatus further includes a step of comparing an update history included in the received update information with an update history stored in the own apparatus, and the information processing apparatus includes an update history included in the received update information. The method according to claim 15, wherein the database and the corresponding synchronization information are updated when it is determined that the update history stored in the device is included. 前記情報処理装置が、各情報処理装置のデータベースに反映された更新について、更新者ごとに最新の更新を示す情報を記憶する更新伝播情報を参照して、前記更新履歴から、全ての情報処理装置のデータベースで反映されている更新以前の履歴を削除するステップを更に有する、請求項15又は16に記載の方法。   For the update reflected in the database of each information processing apparatus, the information processing apparatus refers to update propagation information storing information indicating the latest update for each updater, and from the update history, all information processing apparatuses 17. The method according to claim 15 or 16, further comprising the step of deleting the history before update reflected in the database. 前記情報処理装置が、自装置内で前記データベースを更新すると、ネットワーク接続中の他の情報処理装置に、更新データと、該更新データに対応する同期情報とを送信するステップと、
前記情報処理装置が、前記更新データ及び該更新データに対応する同期情報を送信するステップで送信された更新データ及び同期情報を受信し、前記データベース及び同期情報を更新するステップとを更に有する、請求項11〜17の何れか一に記載の方法。
When the information processing apparatus updates the database in its own apparatus, transmitting update data and synchronization information corresponding to the update data to another information processing apparatus connected to the network;
The information processing apparatus further includes a step of receiving the update data and the synchronization information transmitted in the step of transmitting the update data and the synchronization information corresponding to the update data, and updating the database and the synchronization information. Item 18. The method according to any one of Items 11 to 17.
前記情報処理装置が、他の情報処理装置から更新情報送信要求を受信すると、自装置が記憶する同期情報を参照して、受信した更新情報送信要求に含まれる更新者ごとの最新の更新よりも新しい更新を検索するステップと、
前記情報処理装置が、前記検索により抽出された更新の更新データと、該更新データに対応する同期情報とを含む更新情報を、前記更新情報送信要求を送信した情報処理装置に向けて送信するステップとを更に有する、請求項11〜18の何れか一に記載の方法。
When the information processing apparatus receives an update information transmission request from another information processing apparatus, it refers to the synchronization information stored in its own apparatus, rather than the latest update for each updater included in the received update information transmission request. Searching for new updates;
A step in which the information processing apparatus transmits update information including update data extracted by the search and synchronization information corresponding to the update data to the information processing apparatus that has transmitted the update information transmission request; The method according to claim 11, further comprising:
ネットワークに再接続された情報処理装置が、ネットワークに接続されている他の情報処理装置のうちの1つから更新情報送信要求を受信すると、前記更新情報を、ネットワークに接続された他の情報処理装置に向けてマルチキャスト送信するステップを更に有する、請求項19に記載の方法。   When the information processing apparatus reconnected to the network receives an update information transmission request from one of the other information processing apparatuses connected to the network, the update information is transmitted to the other information processing apparatus connected to the network. The method of claim 19, further comprising the step of multicasting towards the device. データベースを有し、ネットワークを介して接続される他の情報処理装置との間で前記データベースを同期する情報処理装置において、
前記データベースの各データと、データ更新を行った情報処理装置を示す更新者、及び、情報処理装置内での更新の前後を判断するための情報を含む同期情報とを対応付けて記憶する記憶装置を検索し、前記更新者ごとの最新の更新を示す情報を含む更新情報送信要求を他の情報処理装置に送信する更新情報送信要求手段と、
前記更新情報送信要求を受信した他の情報処理装置から、前記更新情報送信要求に含まれる更新者ごとの最新の更新よりも新しい更新により更新された更新データ及び該更新データに対応する同期情報を含む更新情報を受信し、自装置内の前記データベース及び同期情報を更新する第1のデータベース同期手段を備えたことを特徴とする情報処理装置。
In an information processing apparatus having a database and synchronizing the database with another information processing apparatus connected via a network,
A storage device that associates and stores each data of the database, an updater indicating an information processing device that has performed data update, and synchronization information including information for determining before and after the update in the information processing device And an update information transmission request means for transmitting an update information transmission request including information indicating the latest update for each updater to another information processing apparatus,
Update data updated by a newer update than the latest update for each updater included in the update information transmission request and synchronization information corresponding to the update data from another information processing apparatus that has received the update information transmission request. An information processing apparatus comprising: first database synchronization means for receiving update information including and updating the database and synchronization information in the own apparatus.
コンピュータが有するデータベースを、ネットワークを介して接続される他のコンピュータのデータベースと同期させるプログラムであって、前記コンピュータに、
データベース更新時に、更新データと、データ更新を行ったコンピュータを示す更新者、及び、コンピュータ内での更新の前後を判断するための情報を含む同期情報とを対応付けて記憶するステップと、
前記同期情報を検索し、前記更新者ごとの最新の更新を示す情報を含む更新情報送信要求を他のコンピュータに送信するステップと、
前記更新情報送信要求を受信した他のコンピュータから、前記更新情報送信要求に含まれる更新者ごとの最新の更新よりも新しい更新により更新された更新データ及び該更新データに対応する同期情報を含む更新情報を受信するステップと、
受信した更新情報に基づいて、自装置内の前記データベース及び同期情報を更新するステップとを実行させることを特徴とするプログラム。
A program for synchronizing a database of a computer with a database of another computer connected via a network, the computer having:
Storing the update data, the updater indicating the computer that performed the data update, and the synchronization information including information for determining before and after the update in the computer, in association with the database update;
Searching the synchronization information and transmitting an update information transmission request including information indicating the latest update for each updater to another computer;
An update including update data updated by an update newer than the latest update for each updater included in the update information transmission request and synchronization information corresponding to the update data from another computer that has received the update information transmission request Receiving information; and
A program for executing the step of updating the database and the synchronization information in the device based on the received update information.
前記コンピュータ内での更新の前後を判断するための情報が、前記コンピュータ内で前記データベースを更新するたびにインクリメントされるコンピュータごとのイベント番号である、請求項22に記載のプログラム。   The program according to claim 22, wherein the information for determining before and after updating in the computer is an event number for each computer that is incremented each time the database is updated in the computer. 前記同期情報が更新時刻を含み、前記データベース及び同期情報を更新するステップでは、前記更新情報に含まれる同期情報の更新時刻が、自装置が記憶する同期情報の更新時刻よりも新しいと、前記データベース及び同期情報を更新する、請求項22又は23に記載のプログラム。   In the step of updating the database and the synchronization information, the synchronization information includes an update time, and if the update time of the synchronization information included in the update information is newer than the update time of the synchronization information stored in the device, the database The program according to claim 22 or 23, wherein the synchronization information is updated. 前記同期情報が、更新を行ったコンピュータと、コンピュータ内での更新の前後を判断するための情報との組を含む更新履歴を更に含む、請求項22〜24の何れか一に記載のプログラム。   The program according to any one of claims 22 to 24, wherein the synchronization information further includes an update history including a set of a computer that has performed an update and information for determining before and after the update in the computer. 前記コンピュータに、受信した更新情報に含まれる更新履歴と、自装置が記憶する更新履歴とを比較するステップを更に実行させ、前記データベース及び同期情報を更新するステップでは、更新履歴を比較するステップで、受信した更新情報に含まれる更新履歴が、自装置が記憶する更新履歴を含むと判断されると、前記データベース及び対応する同期情報を更新する、請求項25に記載のプログラム。   Further causing the computer to perform a step of comparing the update history included in the received update information with the update history stored in the device, and in the step of updating the database and the synchronization information, the step of comparing the update history 26. The program according to claim 25, wherein when the update history included in the received update information is determined to include the update history stored in the device, the database and the corresponding synchronization information are updated. 前記コンピュータに、各コンピュータのデータベースに反映された更新について、更新者ごとに最新の更新を示す情報を記憶する更新伝播情報を参照して、前記更新履歴から、全てのコンピュータのデータベースで反映されている更新以前の履歴を削除するステップを更に実行させる、請求項25又は26に記載のプログラム。   The update reflected in the database of each computer is referred to the update propagation information storing information indicating the latest update for each updater, and is reflected in the database of all computers from the update history. 27. The program according to claim 25, further comprising executing a step of deleting a history before update. 前記コンピュータに、
自装置内で前記データベースを更新すると、ネットワーク接続中の他のコンピュータに、更新データと、該更新データに対応する同期情報とを送信するステップと、
前記更新データ及び該更新データに対応する同期情報を送信するステップで送信された更新データ及び該更新データに対応する同期情報を受信し、前記データベース及び同期情報を更新するステップとを更に実行させる、請求項22〜27の何れか一に記載のプログラム。
In the computer,
When updating the database in its own device, transmitting update data and synchronization information corresponding to the update data to another computer connected to the network;
Receiving the update data and the synchronization information corresponding to the update data transmitted in the step of transmitting the update data and the synchronization information corresponding to the update data, and further executing the step of updating the database and the synchronization information; The program according to any one of claims 22 to 27.
前記コンピュータに、
他のコンピュータから更新情報送信要求を受信すると、自装置が記憶する同期情報を参照して、受信した更新情報送信要求に含まれる更新者ごとの最新の更新よりも新しい更新を検索するステップと、
前記検索により抽出された更新の更新データと、該更新データに対応する同期情報とを含む更新情報を、前記更新情報送信要求を送信したコンピュータに向けて送信するステップとを更に実行させる、請求項22〜28の何れか一に記載のプログラム。
In the computer,
When receiving an update information transmission request from another computer, referring to the synchronization information stored in the own device, searching for an update that is newer than the latest update for each updater included in the received update information transmission request;
The update information including update data extracted by the search and synchronization information corresponding to the update data is further transmitted to the computer that has transmitted the update information transmission request. The program according to any one of 22 to 28.
前記コンピュータに、
前記コンピュータがネットワークに再接続した後に、ネットワークに接続された他のコンピュータのうちの1つから更新情報送信要求を受信すると、前記更新情報を、ネットワークに接続された他のコンピュータに向けてマルチキャスト送信するステップを更に実行させる、請求項29に記載のプログラム。
In the computer,
When the computer is reconnected to the network and receives an update information transmission request from one of the other computers connected to the network, the update information is multicast transmitted to the other computers connected to the network. 30. The program according to claim 29, further executing the step of:
JP2005360713A 2005-12-14 2005-12-14 Information processing apparatus, distributed synchronization information system, information synchronization method, and program Expired - Fee Related JP5092234B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005360713A JP5092234B2 (en) 2005-12-14 2005-12-14 Information processing apparatus, distributed synchronization information system, information synchronization method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005360713A JP5092234B2 (en) 2005-12-14 2005-12-14 Information processing apparatus, distributed synchronization information system, information synchronization method, and program

Publications (2)

Publication Number Publication Date
JP2007164523A true JP2007164523A (en) 2007-06-28
JP5092234B2 JP5092234B2 (en) 2012-12-05

Family

ID=38247336

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005360713A Expired - Fee Related JP5092234B2 (en) 2005-12-14 2005-12-14 Information processing apparatus, distributed synchronization information system, information synchronization method, and program

Country Status (1)

Country Link
JP (1) JP5092234B2 (en)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009122915A (en) * 2007-11-14 2009-06-04 Hitachi Ltd Information terminal device and its operation method
JP2009258971A (en) * 2008-04-16 2009-11-05 Ntt Docomo Inc Data synchronization method and communication device
JP2011519441A (en) * 2008-03-11 2011-07-07 マイクロソフト コーポレーション Disconnected data / offline data processing / input synchronization
JP2011176923A (en) * 2010-02-24 2011-09-08 Alpine Electronics Inc On-board apparatus
WO2012002384A1 (en) * 2010-06-29 2012-01-05 かもめエンジニアリング株式会社 Access control method, access control apparatus, and access control program
JP2012506593A (en) * 2008-10-21 2012-03-15 マイクロソフト コーポレーション Discarded items with knowledge based on synchronization
JP2015153372A (en) * 2014-02-19 2015-08-24 日本電信電話株式会社 Database system and data update method
JP2017049660A (en) * 2015-08-31 2017-03-09 キヤノン株式会社 Server device, control system, control method, and program
JP2019036353A (en) * 2013-05-20 2019-03-07 アマゾン テクノロジーズ インコーポレイテッド Index update pipeline
JP2019049855A (en) * 2017-09-11 2019-03-28 カシオ計算機株式会社 Database management system
US10303787B2 (en) 2008-10-21 2019-05-28 Microsoft Technology Licensing, Llc Forgetting items with knowledge based synchronization
JP2021068470A (en) * 2015-04-01 2021-04-30 アドバンスド ニュー テクノロジーズ カンパニー リミテッド Remote data synchronization method and apparatus for database
US11321283B2 (en) 2014-02-17 2022-05-03 Amazon Technologies, Inc. Table and index communications channels

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000057032A (en) * 1998-07-03 2000-02-25 Mitsubishi Electric Inf Technol Center America Inc Object synchronizing general-purpose system using plural servers, object synchronizing system and method using two servers, general-purpose synchronizing system in which object existing in two servers are synchronized regardless of type of object and method for detecting and eliminating competition in synchronization of objects in two servers
JP2001005708A (en) * 1999-06-17 2001-01-12 Sharp Corp Database management device and recording medium where program thereof is recorded
JP2001142766A (en) * 1999-11-10 2001-05-25 Nec Corp Data base exchange system
JP2002334006A (en) * 2001-03-06 2002-11-22 Sharp Corp Device and program for information management, and recording medium where the same program is recorded
JP2004046302A (en) * 2002-07-08 2004-02-12 Nec Corp Data synchronization method between two or more pieces of information apparatus, information processor which performs this method and program for performing this method
JP2005293560A (en) * 2004-04-01 2005-10-20 Microsoft Corp System and method for propagating competition settlement for executing item convergence (namely, data convergence)

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000057032A (en) * 1998-07-03 2000-02-25 Mitsubishi Electric Inf Technol Center America Inc Object synchronizing general-purpose system using plural servers, object synchronizing system and method using two servers, general-purpose synchronizing system in which object existing in two servers are synchronized regardless of type of object and method for detecting and eliminating competition in synchronization of objects in two servers
JP2001005708A (en) * 1999-06-17 2001-01-12 Sharp Corp Database management device and recording medium where program thereof is recorded
JP2001142766A (en) * 1999-11-10 2001-05-25 Nec Corp Data base exchange system
JP2002334006A (en) * 2001-03-06 2002-11-22 Sharp Corp Device and program for information management, and recording medium where the same program is recorded
JP2004046302A (en) * 2002-07-08 2004-02-12 Nec Corp Data synchronization method between two or more pieces of information apparatus, information processor which performs this method and program for performing this method
JP2005293560A (en) * 2004-04-01 2005-10-20 Microsoft Corp System and method for propagating competition settlement for executing item convergence (namely, data convergence)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009122915A (en) * 2007-11-14 2009-06-04 Hitachi Ltd Information terminal device and its operation method
JP2011519441A (en) * 2008-03-11 2011-07-07 マイクロソフト コーポレーション Disconnected data / offline data processing / input synchronization
JP2009258971A (en) * 2008-04-16 2009-11-05 Ntt Docomo Inc Data synchronization method and communication device
JP4719243B2 (en) * 2008-04-16 2011-07-06 株式会社エヌ・ティ・ティ・ドコモ Data synchronization method and communication apparatus
JP2012506593A (en) * 2008-10-21 2012-03-15 マイクロソフト コーポレーション Discarded items with knowledge based on synchronization
US10303787B2 (en) 2008-10-21 2019-05-28 Microsoft Technology Licensing, Llc Forgetting items with knowledge based synchronization
JP2011176923A (en) * 2010-02-24 2011-09-08 Alpine Electronics Inc On-board apparatus
WO2012002384A1 (en) * 2010-06-29 2012-01-05 かもめエンジニアリング株式会社 Access control method, access control apparatus, and access control program
JP4944278B2 (en) * 2010-06-29 2012-05-30 かもめエンジニアリング株式会社 Access control method, access control apparatus, and access control program
US8495223B2 (en) 2010-06-29 2013-07-23 Kamome Engineering, Inc. Access control method, access control apparatus, and access control program
US11841844B2 (en) 2013-05-20 2023-12-12 Amazon Technologies, Inc. Index update pipeline
JP2019036353A (en) * 2013-05-20 2019-03-07 アマゾン テクノロジーズ インコーポレイテッド Index update pipeline
JP2021002369A (en) * 2013-05-20 2021-01-07 アマゾン テクノロジーズ インコーポレイテッド Index update pipeline
US11321283B2 (en) 2014-02-17 2022-05-03 Amazon Technologies, Inc. Table and index communications channels
JP2015153372A (en) * 2014-02-19 2015-08-24 日本電信電話株式会社 Database system and data update method
JP2021068470A (en) * 2015-04-01 2021-04-30 アドバンスド ニュー テクノロジーズ カンパニー リミテッド Remote data synchronization method and apparatus for database
JP7098007B2 (en) 2015-04-01 2022-07-08 アドバンスド ニュー テクノロジーズ カンパニー リミテッド Remote data synchronization methods and equipment for databases
JP2017049660A (en) * 2015-08-31 2017-03-09 キヤノン株式会社 Server device, control system, control method, and program
JP6996176B2 (en) 2017-09-11 2022-01-17 カシオ計算機株式会社 Database management system
JP2019049855A (en) * 2017-09-11 2019-03-28 カシオ計算機株式会社 Database management system

Also Published As

Publication number Publication date
JP5092234B2 (en) 2012-12-05

Similar Documents

Publication Publication Date Title
JP5092234B2 (en) Information processing apparatus, distributed synchronization information system, information synchronization method, and program
KR101484333B1 (en) Propagation of conflict knowledge
US8671151B2 (en) Maintaining item-to-node mapping information in a distributed system
KR20080068110A (en) A method for processing data synchronization and client terminal, server and data synchronization system thereof
KR20090084091A (en) Device and mehtod for synchronizing data in data communication devices
JP2012054953A (en) System and method for representing and maintaining redundant data set using dna transmission (transmit) and transcription technique
JP2006323721A (en) Data management system, data server and data management method
US7773609B2 (en) Overlay network system which constructs and maintains an overlay network
KR20040111156A (en) System and method for managing cached objects using notification bonds
JP5395517B2 (en) Distributed data management system, data management apparatus, data management method, and program
JP5012893B2 (en) COMMUNICATION SYSTEM, COMMUNICATION DEVICE, AND COMPUTER PROGRAM
JP4971717B2 (en) Directory distributed storage device and data processing request transfer program
JP2006048122A (en) Communication system
US7779299B2 (en) Efficiently re-starting and recovering synchronization operations between a client and server
JP2005063374A (en) Data management method, data management device, program for the same, and recording medium
CN100559794C (en) Be used to discern the computer network of a plurality of nodes that mate with same label
EP2375692A2 (en) Apparatus and method for registering node and searching for floating internet protocol address using distributed network
JP2007025964A (en) Data location management server and data location management program
JP6697101B2 (en) Information processing system
JP2011002970A (en) Distributed data management system, data management device, data management method, and program
JP2007317107A (en) Information processing system, information processor, and control program
JP3501968B2 (en) Database management device and recording medium on which the program is recorded
US11057470B2 (en) Communication device and communication method for processing meta data
CN114363357A (en) Distributed database network connection management method based on Gossip
JP2013171483A (en) Difference replication system, master database device and slave database device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081112

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20100223

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110830

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120424

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120608

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: 20120821

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: 20120903

R150 Certificate of patent or registration of utility model

Ref document number: 5092234

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150928

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees