IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 三菱電機株式会社の特許一覧

特開2024-129866データ同期システム、データ同期方法、及びデータ同期プログラム
<>
  • 特開-データ同期システム、データ同期方法、及びデータ同期プログラム 図1
  • 特開-データ同期システム、データ同期方法、及びデータ同期プログラム 図2
  • 特開-データ同期システム、データ同期方法、及びデータ同期プログラム 図3
  • 特開-データ同期システム、データ同期方法、及びデータ同期プログラム 図4
  • 特開-データ同期システム、データ同期方法、及びデータ同期プログラム 図5
  • 特開-データ同期システム、データ同期方法、及びデータ同期プログラム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024129866
(43)【公開日】2024-09-30
(54)【発明の名称】データ同期システム、データ同期方法、及びデータ同期プログラム
(51)【国際特許分類】
   G06F 3/06 20060101AFI20240920BHJP
   G06F 11/14 20060101ALI20240920BHJP
   G06F 16/178 20190101ALI20240920BHJP
   G06F 13/10 20060101ALI20240920BHJP
   G06F 11/20 20060101ALI20240920BHJP
【FI】
G06F3/06 304F
G06F11/14 612
G06F3/06 301X
G06F16/178
G06F13/10 340B
G06F11/20 666
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023039228
(22)【出願日】2023-03-14
(71)【出願人】
【識別番号】000006013
【氏名又は名称】三菱電機株式会社
(74)【代理人】
【識別番号】110002491
【氏名又は名称】弁理士法人クロスボーダー特許事務所
(72)【発明者】
【氏名】岸 純也
【テーマコード(参考)】
5B034
【Fターム(参考)】
5B034CC04
5B034DD06
(57)【要約】
【課題】通信容量を十分に確保することができない場合におけるデータ同期システムであって、密なサーバ連携を行い、かつ、データの欠落を防止するデータ同期システムを提供したい。
【解決手段】メインサーバと1つ以上の他サーバとを備えるデータ同期システム90において、各他サーバは、メインサーバが管理している対象データの同期データを管理しており、対象データに対応する自サーバデータを管理しており、自サーバデータ更新部120と更新データ予測部110と他サーバデータ更新部140とを備える。自サーバデータ更新部120は更新後の自サーバデータの正解値を求める。更新データ予測部110は、更新用データを用いて更新した自サーバデータが正解値と一致するか判定する。他サーバデータ更新部140は、当該自サーバデータが正解値と一致しない場合に、正解値に関する状態遷移に基づいて自サーバデータを更新する。
【選択図】図1
【特許請求の範囲】
【請求項1】
メインサーバと1つ以上の他サーバとを備えるデータ同期システムであって、
前記1つ以上の他サーバの各他サーバを対象他サーバとしたとき、前記対象他サーバは、前記メインサーバが管理している対象データの同期データを対象同期データとして管理しており、前記対象データに対応するデータを自サーバデータとして管理しており、
前記対象データは、対象イベントの発生によって更新後対象データに更新され、
前記対象他サーバは、
前記対象データを前記更新後対象データに更新することに用いられる更新用データを受信更新用データとして前記メインサーバから受信するデータ送受信部と、
前記受信更新用データを用いて前記対象同期データを更新後対象同期データに更新する他サーバデータ更新部と、
前記メインサーバにおいて前記対象データが前記更新後対象データに更新されたロジックと同じロジックを用いて前記自サーバデータを更新することにより第1更新後自サーバデータを生成する自サーバデータ更新部と、
前記受信更新用データを用いて前記自サーバデータを更新することにより第2更新後自サーバデータを生成し、前記第1更新後自サーバデータと、前記第2更新後自サーバデータとが一致するか否かを判定する更新データ予測部と
を備え、
前記対象他サーバの他サーバデータ更新部は、前記第1更新後自サーバデータと前記第2更新後自サーバデータとが一致しないと判定された場合に、前記更新後対象同期データを、前記自サーバデータが示す状態から前記第1更新後自サーバデータが示す状態への状態遷移に基づいて前記対象同期データを更新したデータとするデータ同期システム。
【請求項2】
前記対象他サーバは、前記1つ以上の他サーバのうち前記対象他サーバ以外の各他サーバが管理している自サーバデータを各他サーバデータとして管理しており、
前記対象他サーバは、さらに、
前記受信更新用データと、各他サーバデータとの相関関係を導出する相関判定部
を備え、
前記他サーバデータ更新部は、導出された各他サーバデータに対応する相関関係に基づいて各他サーバデータを更新する請求項1に記載のデータ同期システム。
【請求項3】
前記メインサーバは、前記対象データを管理しており、前記対象データの同期データとして前記1つ以上の他サーバの各他サーバが管理しているデータと同じデータを各他サーバデータとして管理しており、
前記メインサーバは、前記メインサーバが管理している各他サーバデータを対象他サーバデータとしたとき、
前記更新用データを用いて前記対象他サーバデータを更新することができる場合に、前記対象データと前記対象他サーバデータとの相関関係を導出する相関判定部と、
前記対象データと前記対象他サーバデータとの相関関係が導出された場合に、前記更新用データを用いて前記対象他サーバデータを更新する他サーバデータ更新部と、
前記1つ以上の他サーバの各他サーバに前記更新用データを送信するデータ送受信部とを備える請求項1又は2に記載のデータ同期システム。
【請求項4】
前記対象他サーバにおいて導出された相関関係が、起こり得ない状態遷移と、発生確率が基準発生確率以下である状態遷移とのいずれかに対応する場合に、
前記対象他サーバのデータ送受信部は、前記メインサーバに対して前記更新用データを再送することを要求し、
前記メインサーバのデータ送受信部は、前記1つ以上の他サーバの各他サーバに前記更新用データを再送し、
前記対象他サーバのデータ送受信部は、再送された更新用データを受信し、受信した更新用データを前記受信更新用データとする請求項1又は2に記載のデータ同期システム。
【請求項5】
前記データ同期システムは、前記1つ以上の他サーバとして複数の他サーバを備え、
前記複数の他サーバのうち第1他サーバにおいて導出された相関関係が、起こり得ない状態遷移と、発生確率が前記基準発生確率以下である状態遷移とのいずれかに対応する場合に、
前記複数の他サーバのうち前記第1他サーバ以外の他サーバである第2他サーバのデータ送受信部は、再送された更新データを受信し、受信した更新用データを前記受信更新用データとする請求項4に記載のデータ同期システム。
【請求項6】
前記更新用データは、前記対象イベントの発生によって前記対象データに発生する状態遷移を実現するためのデータである請求項1又は2に記載のデータ同期システム。
【請求項7】
コンピュータであるメインサーバと、各々がコンピュータである1つ以上の他サーバとを備えるデータ同期システムにおいて実行されるデータ同期方法であって、
前記1つ以上の他サーバの各他サーバを対象他サーバとしたとき、前記対象他サーバは、前記メインサーバが管理している対象データの同期データを対象同期データとして管理しており、前記対象データに対応するデータを自サーバデータとして管理しており、
前記対象データは、対象イベントの発生によって更新後対象データに更新され、
前記対象他サーバが、
前記対象データを前記更新後対象データに更新することに用いられる更新用データを受信更新用データとして前記メインサーバから受信し、
前記受信更新用データを用いて前記対象同期データを更新後対象同期データに更新し、
前記メインサーバにおいて前記対象データが前記更新後対象データに更新されたロジックと同じロジックを用いて前記自サーバデータを更新することにより第1更新後自サーバデータを生成し、
前記受信更新用データを用いて前記自サーバデータを更新することにより第2更新後自サーバデータを生成し、前記第1更新後自サーバデータと、前記第2更新後自サーバデータとが一致するか否かを判定するデータ同期方法であって、
前記対象他サーバは、前記第1更新後自サーバデータと前記第2更新後自サーバデータとが一致しないと判定された場合に、前記更新後対象同期データを、前記自サーバデータが示す状態から前記第1更新後自サーバデータが示す状態への状態遷移に基づいて前記対象同期データを更新したデータとするデータ同期方法。
【請求項8】
コンピュータであるメインサーバと、各々がコンピュータである1つ以上の他サーバとを備えるデータ同期システムにおいて前記1つ以上の他サーバの各他サーバが実行するデータ同期プログラムであって、
前記1つ以上の他サーバの各他サーバを対象他サーバとしたとき、前記対象他サーバは、前記メインサーバが管理している対象データの同期データを対象同期データとして管理しており、前記対象データに対応するデータを自サーバデータとして管理しており、
前記対象データは、対象イベントの発生によって更新後対象データに更新され、
前記対象他サーバに、
前記対象データを前記更新後対象データに更新することに用いられる更新用データを受信更新用データとして前記メインサーバから受信するデータ送受信処理と、
前記受信更新用データを用いて前記対象同期データを更新後対象同期データに更新する他サーバデータ更新処理と、
前記メインサーバにおいて前記対象データが前記更新後対象データに更新されたロジックと同じロジックを用いて前記自サーバデータを更新することにより第1更新後自サーバデータを生成する自サーバデータ更新処理と、
前記受信更新用データを用いて前記自サーバデータを更新することにより第2更新後自サーバデータを生成し、前記第1更新後自サーバデータと、前記第2更新後自サーバデータとが一致するか否かを判定する更新データ予測処理と
を実行させるデータ同期プログラムであって、
前記他サーバデータ更新処理において、前記第1更新後自サーバデータと前記第2更新後自サーバデータとが一致しないと判定された場合に、前記更新後対象同期データを、前記自サーバデータが示す状態から前記第1更新後自サーバデータが示す状態への状態遷移に基づいて前記対象同期データを更新したデータとするデータ同期プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データ同期システム、データ同期方法、及びデータ同期プログラムに関する。
【背景技術】
【0002】
データの復元率を向上させつつ、バックアップに要する時間等を改善するための分散バックアップシステムが提案されている(例えば、特許文献1参照)。分散バックアップシステムは、データを管理する管理サーバと、管理サーバのデータのバックアップ先である複数のサーバとを有する。分散バックアップシステムでは、管理サーバにおいて、データを複数のデータに分割することによってデータ容量を小さくしてから各サーバにデータを伝送することにより、高速なサーバ間連携が可能となる。また、分割した各データをランク付けすることにより、重要なデータの復元率を向上させることができる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2015-043142号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1は、画像データを複数の画像データに分割することによってデータ容量を小さくすることを通じて高速なサーバ間連携を行う技術を開示している。しかしながら、当該技術は、トータルとして伝送に必要なデータを削減することができないため、通信容量に対して伝送されるデータが多い場合におけるシステム間連携の課題を解決することができない。
また、特許文献1は、分割したデータにランク付けすることによって重要なデータを復元することができる可能性を向上させる技術を開示している。当該技術によって伝送及び同期の効率化は図られるが、当該技術によれば、データの欠落等が発生した場合に、重要度が低いデータの復元率が低いためにデータを完全に復旧させることが困難である。
本開示は、通信容量を十分に確保することができない場合におけるデータ同期システムであって、密なサーバ連携を行い、かつ、データの欠落を防止するデータ同期システムを提供することを目的とする。
【課題を解決するための手段】
【0005】
本開示に係るデータ同期システムは、
メインサーバと1つ以上の他サーバとを備えるデータ同期システムであって、
前記1つ以上の他サーバの各他サーバを対象他サーバとしたとき、前記対象他サーバは、前記メインサーバが管理している対象データの同期データを対象同期データとして管理しており、前記対象データに対応するデータを自サーバデータとして管理しており、
前記対象データは、対象イベントの発生によって更新後対象データに更新され、
前記対象他サーバは、
前記対象データを前記更新後対象データに更新することに用いられる更新用データを受信更新用データとして前記メインサーバから受信するデータ送受信部と、
前記受信更新用データを用いて前記対象同期データを更新後対象同期データに更新する他サーバデータ更新部と、
前記メインサーバにおいて前記対象データが前記更新後対象データに更新されたロジックと同じロジックを用いて前記自サーバデータを更新することにより第1更新後自サーバデータを生成する自サーバデータ更新部と、
前記受信更新用データを用いて前記自サーバデータを更新することにより第2更新後自サーバデータを生成し、前記第1更新後自サーバデータと、前記第2更新後自サーバデータとが一致するか否かを判定する更新データ予測部と
を備え、
前記対象他サーバの他サーバデータ更新部は、前記第1更新後自サーバデータと前記第2更新後自サーバデータとが一致しないと判定された場合に、前記更新後対象同期データを、前記自サーバデータが示す状態から前記第1更新後自サーバデータが示す状態への状態遷移に基づいて前記対象同期データを更新したデータとする。
【発明の効果】
【0006】
本開示によれば、各他サーバにおいて、データ送受信部がメインサーバから更新用データを受信し、他サーバデータ更新部が、受信した更新用データに基づいて、メインサーバが管理している対象データの同期データを更新後対象同期データに更新する。また、他サーバデータ更新部は、第1更新後自サーバデータと第2更新後自サーバデータとが一致しないと判定された場合に、更新後対象同期データを、自サーバデータが示す状態から第1更新後自サーバデータが示す状態への状態遷移に基づいて対象同期データを更新したデータとする。ここで、対象データは対象イベントの発生によって更新されるデータである。更新用データは、対象イベントの発生によって発生する状態遷移を実現するためのデータであってもよい。第1更新後自サーバデータは、メインサーバにおいて対象データが更新されたロジックと同じロジックを用いて自サーバデータを更新したデータである。第2更新後自サーバデータは、更新用データを用いて自サーバデータを更新したデータである。
従って、本開示によれば、通信容量を十分に確保することができない場合におけるデータ同期システムであって、密なサーバ連携を行い、かつ、データの欠落を防止するデータ同期システムを提供することができる。
【図面の簡単な説明】
【0007】
図1】実施の形態1に係るデータ同期システム90の構成例を示す図。
図2】実施の形態1に係るサーバ100のハードウェア構成例を示す図。
図3】実施の形態1に係るデータ同期システム90の処理フローを示す図。
図4】実施の形態1に係るデータ同期システム90の処理フローを示す図。
図5】実施の形態1に係るデータ同期システム90の処理フローを示す図。
図6】実施の形態1に係るデータ同期システム90の処理フローを示す図。
【発明を実施するための形態】
【0008】
実施の形態の説明及び図面において、同じ要素及び対応する要素には同じ符号を付している。同じ符号が付された要素の説明は、適宜に省略又は簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。また、「部」を、「回路」、「工程」、「手順」、「処理」又は「サーキットリー」に適宜読み替えてもよい。
【0009】
実施の形態1.
以下、本実施の形態について、図面を参照しながら詳細に説明する。
【0010】
***構成の説明***
図1は、本実施の形態に係るデータ同期システム90の構成例を示している。データ同期システム90は、本図に示すように、複数のサーバ100を備える。
【0011】
各サーバ100は、更新データ予測部110と、自サーバデータ更新部120と、相関判定部130と、他サーバデータ更新部140と、データ送受信部150とを備える。矢印及び各部に付されている数字は、後述の各処理の番号である。
複数のサーバ100のうち1つのサーバ100はメインサーバである。メインサーバは、複数のサーバ100の中からどのように選択されてもよい。複数のサーバ100のうち、メインサーバ以外の各サーバ100は他サーバとも呼ばれる。なお、メインサーバが故障した場合に、他サーバのうちいずれか1つがメインサーバに切り替えられる。
メインサーバは、対象データを管理しており、対象データの同期データとして1つ以上の他サーバの各他サーバが管理しているデータと同じデータを各他サーバデータとして管理している。対象データは、対象イベントの発生によって更新後対象データに更新されるデータである。
1つ以上の他サーバの各他サーバを対象他サーバとしたとき、対象他サーバは、メインサーバが管理している対象データの同期データを対象同期データとして管理している。具体例として、サーバ2及びサーバ3の各々において、対象同期データはサーバ1データである。また、対象他サーバは、対象データに対応するデータを自サーバデータとして管理しており、対象他サーバ以外の各他サーバが管理している自サーバデータを各他サーバデータとして管理している。なお、他サーバデータには対象同期データも含まれる。
【0012】
以下、図1に示すように、図1に示す各サーバ100を、サーバ1、サーバ2、又はサーバ3と呼ぶこともある。サーバ1はメインサーバである。
【0013】
データ同期システム90は、イベントの発生により内容が変化し得るデータについて、イベントの発生前とイベントの発生後との間におけるデータの相関性に着目したシステムである。メインサーバは、イベントの発生後の状態そのものを示すデータを送信せず、イベントの発生前の状態からイベントの発生後の状態に遷移させるために最小限必要なデータを他のサーバ100に送信する。
データ同期システム90において、相関性及び相関性判定ロジックを活用することにより密なサーバ間連携が達成される。具体的には、データ同期システム90において、メインサーバ以外の各サーバ100が、メインサーバから受信したデータと、メインサーバが用いた相関性判定ロジックと同じ相関性判定ロジックとを用いて状態を復元することにより、密なサーバ間連携が達成される。
【0014】
また、データ同期システム90では、相関性判定ロジックを情報の正確性判定にも使用する。具体的には、相関性判定ロジックを、同期先サーバのデータに対応する状態遷移が起こり得るか否かを判定することによるデータの欠落の判定と、自サーバのデータを正しく復元することができているか否かの判定とに用いることにより、サーバ同期の精度向上を図る。ここで、図1に示す例において、サーバ2に対応する自サーバはサーバ2であり、サーバ2に対応する他サーバはサーバ1とサーバ3との各々である。
なお、相関性判定ロジックは、更新データ予測部110と相関判定部130とにおいて用いられる。
【0015】
メインサーバの更新データ予測部110は、メインサーバが他サーバに切り替えられた場合に用いられる。
対象他サーバの更新データ予測部110は、各他サーバのデータ送受信部150がメインサーバから受信更新用データとして受信した更新用データを用いて自サーバデータを更新することにより第2更新後自サーバデータを生成し、後述の第1更新後自サーバデータと、第2更新後自サーバデータとが一致するか否かを判定する。
【0016】
各他サーバの自サーバデータ更新部120は、メインサーバにおいて対象データが更新後対象データに更新されたロジックと同じロジックを用いて自サーバデータを更新することにより第1更新後自サーバデータを生成する。
自サーバデータ更新部120には、初期状態において自サーバデータの初期値が格納されており、自サーバデータが更新された場合に更新後の自サーバデータが格納される。自サーバデータは、自サーバデータ更新部120を備えるサーバ100のデータである。具体例として、サーバ1の自サーバデータ更新部120にはサーバ1の自サーバデータが格納されている。
【0017】
メインサーバの相関判定部130は、メインサーバが管理している各他サーバデータを対象他サーバデータとしたとき、更新用データを用いて対象他サーバデータを更新することができる場合に、対象データと対象他サーバデータとの相関関係を導出する。更新用データは、対象データを更新後対象データに更新することに用いられるデータであり、具体例として、対象イベントの発生によって対象データに発生する状態遷移を実現するためのデータである。
各他サーバの相関判定部130は、各他サーバのデータ送受信部150がメインサーバから受信更新用データとして受信した更新用データと、対象同期データ以外の各他サーバデータとの相関関係を導出する。
【0018】
他サーバデータ更新部140には、初期状態において他サーバデータの初期値が格納されており、他サーバデータが更新された場合に更新後の他サーバデータが格納される。他サーバデータは、データ同期システム90が備えるサーバ100のうち他サーバデータ更新部140を備えるサーバ100以外の各サーバ100のデータである。具体例として、サーバ1の他サーバデータ更新部140には、サーバ2の自サーバデータと、サーバ3の自サーバデータとが格納されている。
メインサーバの他サーバデータ更新部140は、メインサーバの相関判定部130によって対象データと対象他サーバデータとの相関関係が導出された場合に、更新用データを用いて対象他サーバデータを更新する。
各他サーバの他サーバデータ更新部140は、受信更新用データを用いて対象同期データを更新後対象同期データに更新し、各他サーバの相関判定部130によって導出された相関関係であって、対象同期データ以外の各他サーバデータに対応する相関関係に基づいて、対象同期データ以外の各他サーバデータを更新する。各他サーバの他サーバデータ更新部140は、更新データ予測部110によって第1更新後自サーバデータと第2更新後自サーバデータとが一致しないと判定された場合に、更新後対象同期データを、自サーバデータが示す状態から第1更新後自サーバデータが示す状態への状態遷移に基づいて対象同期データを更新したデータとする。
【0019】
データ送受信部150は、他のサーバ100との間でデータを送受信する。
サーバ1のデータ送受信部150は、サーバ1データを他のサーバ100との間で送受信する。
メインサーバのデータ送受信部150は、1つ以上の他サーバの各他サーバに更新用データを送信する。メインサーバのデータ送受信部150は、対象他サーバからの要求に応じて、1つ以上の他サーバの各他サーバに更新用データを再送する。
各他サーバのデータ送受信部150は、更新用データを受信更新用データとして受信する。
また、対象他サーバにおいて導出された相関関係が、起こり得ない状態遷移と、発生確率が基準発生確率以下である状態遷移とのいずれかに対応する場合に、対象他サーバのデータ送受信部150は、メインサーバに対して更新用データを再送することを要求する。この場合において、対象他サーバのデータ送受信部150は、再送された更新用データを受信し、受信した更新用データを受信更新用データとする。基準発生確率は、起こりにくい状態遷移に対応する確率であり、どのように定められてもよい。
また、複数の他サーバのうち第1他サーバにおいて導出された相関関係が、起こり得ない状態遷移と、発生確率が基準発生確率以下である状態遷移とのいずれかに対応する場合に、複数の他サーバのうち第1他サーバ以外の他サーバである第2他サーバのデータ送受信部150は、メインサーバのデータ送受信部150によって再送された更新データを受信し、受信した更新用データを受信更新用データとする。
【0020】
図2は、本実施の形態に係るサーバ100のハードウェア構成例を示している。サーバ100はコンピュータから成る。サーバ100は複数のコンピュータから成ってもよい。
【0021】
サーバ100は、本図に示すように、プロセッサ11と、メモリ12と、補助記憶装置13と、入出力IF(Interface)14と、通信装置15等のハードウェアを備えるコンピュータである。これらのハードウェアは、信号線19を介して適宜接続されている。
【0022】
プロセッサ11は、演算処理を行うIC(Integrated Circuit)であり、かつ、コンピュータが備えるハードウェアを制御する。プロセッサ11は、具体例として、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、又はGPU(Graphics Processing Unit)である。
サーバ100は、プロセッサ11を代替する複数のプロセッサを備えてもよい。複数のプロセッサはプロセッサ11の役割を分担する。
【0023】
メモリ12は、典型的には揮発性の記憶装置であり、具体例としてRAM(Random Access Memory)である。メモリ12は、主記憶装置又はメインメモリとも呼ばれる。メモリ12に記憶されたデータは、必要に応じて補助記憶装置13に保存される。
【0024】
補助記憶装置13は、典型的には不揮発性の記憶装置であり、具体例として、ROM(Read Only Memory)、HDD(Hard Disk Drive)、又はフラッシュメモリである。補助記憶装置13に記憶されたデータは、必要に応じてメモリ12にロードされる。
メモリ12及び補助記憶装置13は一体的に構成されていてもよい。
【0025】
入出力IF14は、入力装置及び出力装置が接続されるポートである。入出力IF14は、具体例として、USB(Universal Serial Bus)端子である。入力装置は、具体例として、キーボード及びマウスである。出力装置は、具体例として、ディスプレイである。
【0026】
通信装置15は、レシーバ及びトランスミッタである。通信装置15は、具体例として、通信チップ又はNIC(Network Interface Card)である。
【0027】
サーバ100の各部は、他の装置等と通信する際に、入出力IF14及び通信装置15を適宜用いてもよい。
【0028】
補助記憶装置13はデータ同期プログラムを記憶している。データ同期プログラムは、サーバ100が備える各部の機能をコンピュータに実現させるプログラムである。データ同期プログラムは、メモリ12にロードされて、プロセッサ11によって実行される。サーバ100が備える各部の機能は、ソフトウェアにより実現される。
【0029】
データ同期プログラムを実行する際に用いられるデータと、データ同期プログラムを実行することによって得られるデータ等は、記憶装置に適宜記憶される。サーバ100の各部は記憶装置を適宜利用する。記憶装置は、具体例として、メモリ12と、補助記憶装置13と、プロセッサ11内のレジスタと、プロセッサ11内のキャッシュメモリとの少なくとも1つから成る。なお、データという用語と情報という用語とは同等の意味を有することもある。記憶装置は、コンピュータと独立したものであってもよい。
メモリ12及び補助記憶装置13の機能は、他の記憶装置によって実現されてもよい。
【0030】
データ同期プログラムは、コンピュータが読み取り可能な不揮発性の記録媒体に記録されていてもよい。不揮発性の記録媒体は、具体例として、光ディスク又はフラッシュメモリである。データ同期プログラムは、プログラムプロダクトとして提供されてもよい。
【0031】
***動作の説明***
データ同期システム90の動作手順はデータ同期方法に相当する。また、データ同期システム90の動作を実現するプログラムはデータ同期プログラムに相当する。
【0032】
図3から図6は、データ同期システム90の処理フローの一例を示す図である。図3から図6を用いてデータ同期システム90の処理フローを説明する。
なお、データ同期システム90において、各サーバ100の電源投入後、メインサーバの選択と、メインサーバのデータの更新とが発生することにより、下記の処理1から処理27が周期的に発生する。以下、データ同期システム90はサーバ1とサーバ2とサーバ3との3台のサーバ100を備え、また、サーバ1がメインサーバとして選択されたものとする。
【0033】
<処理1>
サーバ1において、自サーバデータ更新部120は、更新前のサーバ1データが示す状態から更新後のサーバ1データが示す状態への状態遷移を示すデータ(以降、「サーバ1差分データ」と呼ぶ。)を相関判定部130に送信する。サーバ1データはメインサーバのデータである。サーバ1差分データは更新用データに当たる。
【0034】
<処理2>
サーバ1において、相関判定部130は、サーバ2データ及びサーバ3データの取得要求を示すデータを他サーバデータ更新部140に送信する。サーバ2データはサーバ2のデータであり、サーバ3データはサーバ3のデータである。
【0035】
<処理3>
サーバ1において、他サーバデータ更新部140は、サーバ2データ及びサーバ3データを相関判定部130に送信する。
【0036】
<処理4>
サーバ1において、相関判定部130は、受信したサーバ1差分データを基に、受信したサーバ2データとサーバ3データとの各々を更新することができるか否かを判定する。
【0037】
<処理5>
サーバ1において、相関判定部130は、処理4の結果を示すデータを自サーバデータ更新部120及び他サーバデータ更新部140の各々に送信する。このとき、具体例として、他サーバデータとサーバ1差分データとの間において相関がある場合に相関がある箇所を示すデータが送信され、他サーバデータとサーバ1差分データとの間において相関がない場合に0を示すデータが送信される。0を示すデータが送信された場合、次に処理7が実行される。サーバ1における他サーバデータは、サーバ2データ及びサーバ3データの各々である。
【0038】
<処理6>
サーバ1において、他サーバデータ更新部140は、各他サーバデータとサーバ1差分データとの間において相関がある場合に限り、各他サーバデータを更新する。
【0039】
<処理7>
サーバ1において、自サーバデータ更新部120は、サーバ1差分データをデータ送受信部150に送信する。
【0040】
<処理8>
サーバ1において、データ送受信部150は、各他サーバのデータ送受信部150にサーバ1差分データを送信する。以下、他サーバはサーバ2とサーバ3との各々である。
【0041】
<処理9>
各他サーバにおいて、データ送受信部150は、サーバ1からサーバ1差分データを受信し、受信したサーバ1差分データを相関判定部130に送信する。
【0042】
<処理10>
各他サーバにおいて、相関判定部130は、他サーバデータ更新部140に、サーバ1データ以外の各他サーバデータの取得要求を示すデータを送信する。
【0043】
<処理11>
各他サーバにおいて、他サーバデータ更新部140は、相関判定部130に、サーバ1データ以外の各他サーバデータを送信する。
【0044】
<処理12>
各他サーバにおいて、相関判定部130は、受信したサーバ1差分データと他サーバデータとを基に、サーバ1データ以外の各他サーバデータと、サーバ1差分データとの間において相関がある箇所に対応する値を導出する。
【0045】
<処理13>
各他サーバにおいて、相関判定部130は、処理12において導出した値が、起こり得ない状態遷移、又は発生確率が低い状態遷移に対応する値である場合、サーバ1差分データの再取得要求を示すデータをデータ送受信部150に送信する。
なお、サーバ2とサーバ3との少なくともいずれかにおいて起こり得ない状態遷移、又は発生確率が低い状態遷移であると判断された場合に、サーバ2とサーバ3との各々にサーバ1差分データが再送信される。
また、処理12において導出した値が、起こり得ない状態遷移と、発生確率が低い状態遷移とのいずれにも対応しない値であるケースにおいて、処理12実施後の一定時間内(処理13から処理18の実行に要する時間)にサーバ2とサーバ3との双方がサーバ1差分データを再受信しない場合、処理19が実行されずに処理20が実行される。本ケースにおいて、処理12実施後の一定時間内に他サーバがサーバ1差分データを再受信した場合(対象ケース)、処理19が実行される。対象ケースは、具体例として、サーバ2ではサーバ1差分データの再取得要求を示すデータが送信されなかったが、サーバ3ではサーバ1差分データの再取得要求を示すデータが送信された場合に、サーバ2において発生する。
【0046】
<処理14>
各他サーバにおいて、データ送受信部150は、サーバ1差分データの再取得要求を示すデータをサーバ1のデータ送受信部150に送信する。
【0047】
<処理15>
サーバ1において、データ送受信部150は、他サーバからサーバ1差分データの再取得要求を示すデータを受信し、受信したサーバ1差分データの再取得要求を示すデータを自サーバデータ更新部120に送信する。
【0048】
<処理16>
サーバ1において、自サーバデータ更新部120は、サーバ1差分データをデータ送受信部150に再送信する。
【0049】
<処理17>
サーバ1において、データ送受信部150は、サーバ1差分データを各他サーバのデータ送受信部150に再送信する。
【0050】
<処理18>
各他サーバにおいて、データ送受信部150は、サーバ1からサーバ1差分データを再度受信し、受信したサーバ1差分データを相関判定部130に送信する。
【0051】
<処理19>
各他サーバにおいて、相関判定部130は、受信した他サーバデータと再取得したサーバ1差分データとを基に、サーバ1データ以外の各他サーバデータと、サーバ1差分データとの間において相関がある箇所に対応する値を導出する。
【0052】
<処理20>
各他サーバにおいて、相関判定部130は、「サーバ1差分データ」と「処理12又は処理19において導出した値」とを、他サーバデータ更新部140に送信する。
【0053】
<処理21>
各他サーバにおいて、他サーバデータ更新部140は、サーバ1データと「サーバ1差分データ」とを用いてサーバ1データを更新し、サーバ1以外に対応する「他サーバデータ」と「処理12又は処理19において導出した値」とを用いてサーバ1以外に対応する「他サーバデータ」を更新する。サーバ2において、サーバ1以外に対応する「他サーバデータ」はサーバ3データである。
【0054】
<処理22>
各他サーバにおいて、相関判定部130は、サーバ1差分データを更新データ予測部110に送信する。
【0055】
<処理23>
各他サーバにおいて、更新データ予測部110は、更新前の自サーバデータと、更新後の自サーバデータとに関する取得要求を示すデータを自サーバデータ更新部120に送信する。
【0056】
<処理24>
各他サーバにおいて、自サーバデータ更新部120は、更新後の自サーバデータを生成し、更新前の自サーバデータと、生成した更新後の自サーバデータとを更新データ予測部110に送信する。なお、各他サーバの自サーバデータ更新部120は、メインサーバから受信したデータを用いずに、更新前の自サーバデータを更新後の自サーバデータに更新する。
【0057】
<処理25>
各他サーバにおいて、更新データ予測部110は、「サーバ1データ差分」と「更新前の自サーバデータ」とから「更新後の自サーバデータ」を予測し、自サーバデータ更新部120から取得した「更新後の自サーバデータ」と、予測した「更新後の自サーバデータ」とを比較する。ここで、自サーバデータ更新部120から取得した「更新後の自サーバデータ」は、正解値に当たり、また、第1更新後自サーバデータに当たる。更新データ予測部110が予測した「更新後の自サーバデータ」は、予測値に当たり、また、第2更新後自サーバデータに当たる。
自サーバデータ更新部120から取得した「更新後の自サーバデータ」と、予測した「更新後の自サーバデータ」とが一致しない場合、処理26以降が実行される。それ以外の場合、処理25の実行終了をもって今回の周期の処理は終了する。
【0058】
<処理26>
各他サーバにおいて、処理25において両データが一致しない場合、更新データ予測部110は、更新前の自サーバデータが示す状態から更新後の自サーバデータが示す状態への状態遷移を示す「状態遷移を示すデータ」を、各他サーバの他サーバデータ更新部140と、サーバ1の他サーバデータ更新部140との各々に送信する。
【0059】
<処理27>
サーバ1と各他サーバとにおいて、他サーバデータ更新部140は、「更新前の他サーバデータ」と受信した「状態遷移を示すデータ」とに基づいて他サーバデータを求め、求めた他サーバデータを更新後の他サーバデータとする。
【0060】
以上の処理により、データの欠落等がない場合、各サーバ100間でやり取りするデータはサーバ1データのみである。
また、相関判定部130は、起こり得ないデータ更新と、発生確率が低いデータ更新とを検知する機能を有しているためにデータの欠落を検知することができる。データの欠落が検知された場合、各サーバ100間においてサーバ1データを再送することにより、データの欠落を防止することができる。
【0061】
なお、図1ではサーバ100が3台であるが、4台以上のサーバ100を備えるデータ同期システム90に対しても本実施の形態を適用することができる。
【0062】
***実施の形態1の効果の説明***
本実施の形態によれば、密なサーバ間連携と、サーバ同期の精度向上とを実現することができる。効果の詳細については、下記の通りである。
【0063】
<密なサーバ間連携>
相関判定部130は、「サーバ1差分データ」を基に、サーバ2データとサーバ3データとの各々を更新することができるか否かを判定する(処理4と処理12と処理19とを参照)。
他サーバデータ更新部140は、相関判定部130の判定結果に基づいて他サーバデータを更新する(処理6と処理21と処理27とを参照)。
そのため、本実施の形態によれば、更新後の自サーバデータの予測値が正しく、かつ、データの欠落がない場合に、サーバ100間の通信回数は、1周期あたり2回である。一方、特許文献1によれば、通信回数は1周期あたり4回以上である。そのため、本実施の形態によれば、先行技術と比較して少ない通信回数でサーバ間連携を実現することができる。また、本実施の形態によれば、トータルとして伝送に必要なデータ量を先行技術と比較して削減することができる。
【0064】
<サーバ同期の精度向上>
予測値が正しくない場合、又はデータの欠落がある場合において、サーバ100間の通信回数が2回以上に増える。しかしながら、本実施の形態によれば、サーバ100間でより正確なデータをやり取りすることができる。
【0065】
また、部隊が野外展開する指揮システムにおけるサーバ間のデータ連携は、部隊に割り当てられている野外通信が狭帯域であることから、最低限のデータ同期と、音声等の人員を介したデータ共有等によって狭帯域をカバーする場合がある。
将来の戦闘では、ドローン等の民生技術の転用により、同時に複数の場所で戦闘が生起するようなことが予想されるため、野外展開しているサーバ同士であっても短時間で密な連携を行う必要がある。しかしながら、通信帯域が狭帯域であるために、データの欠落が起きることにより、正しくないデータをユーザーに伝えてしまう可能性がある。データの欠落が発生した場合に味方機を敵機と間違えて撃墜する等の恐れがあるため、データの欠落を防止する必要がある。一方、本実施の形態によれば、このように通信容量を十分に確保することができないデータ同期システムにおいて、密なサーバ連携を行うことができ、かつ、データの欠落を防止することができるデータ同期システムを実現することができる。
【0066】
***他の実施の形態***
実施の形態1について説明したが、本実施の形態のうち、複数の部分を組み合わせて実施しても構わない。あるいは、本実施の形態を部分的に実施しても構わない。その他、本実施の形態は、必要に応じて種々の変更がなされても構わず、全体としてあるいは部分的に、どのように組み合わせて実施されても構わない。
なお、前述した実施の形態は、本質的に好ましい例示であって、本開示と、その適用物と、用途の範囲とを制限することを意図するものではない。フローチャート等を用いて説明した手順は適宜変更されてもよい。
【0067】
以下、本開示の諸態様を付記としてまとめて記載する。
【0068】
(付記1)
メインサーバと1つ以上の他サーバとを備えるデータ同期システムであって、
前記1つ以上の他サーバの各他サーバを対象他サーバとしたとき、前記対象他サーバは、前記メインサーバが管理している対象データの同期データを対象同期データとして管理しており、前記対象データに対応するデータを自サーバデータとして管理しており、
前記対象データは、対象イベントの発生によって更新後対象データに更新され、
前記対象他サーバは、
前記対象データを前記更新後対象データに更新することに用いられる更新用データを受信更新用データとして前記メインサーバから受信するデータ送受信部と、
前記受信更新用データを用いて前記対象同期データを更新後対象同期データに更新する他サーバデータ更新部と、
前記メインサーバにおいて前記対象データが前記更新後対象データに更新されたロジックと同じロジックを用いて前記自サーバデータを更新することにより第1更新後自サーバデータを生成する自サーバデータ更新部と、
前記受信更新用データを用いて前記自サーバデータを更新することにより第2更新後自サーバデータを生成し、前記第1更新後自サーバデータと、前記第2更新後自サーバデータとが一致するか否かを判定する更新データ予測部と
を備え、
前記対象他サーバの他サーバデータ更新部は、前記第1更新後自サーバデータと前記第2更新後自サーバデータとが一致しないと判定された場合に、前記更新後対象同期データを、前記自サーバデータが示す状態から前記第1更新後自サーバデータが示す状態への状態遷移に基づいて前記対象同期データを更新したデータとするデータ同期システム。
【0069】
(付記2)
前記対象他サーバは、前記1つ以上の他サーバのうち前記対象他サーバ以外の各他サーバが管理している自サーバデータを各他サーバデータとして管理しており、
前記対象他サーバは、さらに、
前記受信更新用データと、各他サーバデータとの相関関係を導出する相関判定部
を備え、
前記他サーバデータ更新部は、導出された各他サーバデータに対応する相関関係に基づいて各他サーバデータを更新する付記1に記載のデータ同期システム。
【0070】
(付記3)
前記メインサーバは、前記対象データを管理しており、前記対象データの同期データとして前記1つ以上の他サーバの各他サーバが管理しているデータと同じデータを各他サーバデータとして管理しており、
前記メインサーバは、前記メインサーバが管理している各他サーバデータを対象他サーバデータとしたとき、
前記更新用データを用いて前記対象他サーバデータを更新することができる場合に、前記対象データと前記対象他サーバデータとの相関関係を導出する相関判定部と、
前記対象データと前記対象他サーバデータとの相関関係が導出された場合に、前記更新用データを用いて前記対象他サーバデータを更新する他サーバデータ更新部と、
前記1つ以上の他サーバの各他サーバに前記更新用データを送信するデータ送受信部とを備える付記1又は2に記載のデータ同期システム。
【0071】
(付記4)
前記対象他サーバにおいて導出された相関関係が、起こり得ない状態遷移と、発生確率が基準発生確率以下である状態遷移とのいずれかに対応する場合に、
前記対象他サーバのデータ送受信部は、前記メインサーバに対して前記更新用データを再送することを要求し、
前記メインサーバのデータ送受信部は、前記1つ以上の他サーバの各他サーバに前記更新用データを再送し、
前記対象他サーバのデータ送受信部は、再送された更新用データを受信し、受信した更新用データを前記受信更新用データとする付記1から3のいずれか1つに記載のデータ同期システム。
【0072】
(付記5)
前記データ同期システムは、前記1つ以上の他サーバとして複数の他サーバを備え、
前記複数の他サーバのうち第1他サーバにおいて導出された相関関係が、起こり得ない状態遷移と、発生確率が前記基準発生確率以下である状態遷移とのいずれかに対応する場合に、
前記複数の他サーバのうち前記第1他サーバ以外の他サーバである第2他サーバのデータ送受信部は、再送された更新データを受信し、受信した更新用データを前記受信更新用データとする付記4に記載のデータ同期システム。
【0073】
(付記6)
前記更新用データは、前記対象イベントの発生によって前記対象データに発生する状態遷移を実現するためのデータである付記1から5のいずれか1つに記載のデータ同期システム。
【符号の説明】
【0074】
11 プロセッサ、12 メモリ、13 補助記憶装置、14 入出力IF、15 通信装置、18 処理回路、19 信号線、90 データ同期システム、100 サーバ、110 更新データ予測部、120 自サーバデータ更新部、130 相関判定部、140 他サーバデータ更新部、150 データ送受信部。
図1
図2
図3
図4
図5
図6