(57)【要約】  本発明における情報処理装置は、更新情報を取得して、記憶部に予め記憶されたデータを更新するとともに、更新前のデータと更新後のデータとの差分情報を取得する更新手段と、更新前のデータを記憶する他の情報処理装置と通信する複数の通信路のそれぞれの通信状態を取得する通信状態取得手段と、通信状態取得手段にて取得した複数の通信路のそれぞれの通信状態に基づいて、更新手段にて取得した差分情報を、各通信路に対応付けて分割する差分情報分割手段と、差分情報分割手段にて分割した差分情報のそれぞれを、分割した差分情報のそれぞれに対応する各通信路を介して、他の情報処理装置へ送信する送信手段と、を備える。
2014068877.tif 000002
【特許請求の範囲】
【請求項１】
更新情報を取得して、記憶部に予め記憶されたデータを更新するとともに、更新前の前記データと更新後のデータとの差分情報を取得する更新手段と、
更新前の前記データを記憶する他の情報処理装置と通信する複数の通信路のそれぞれの通信状態を取得する通信状態取得手段と、
前記通信状態取得手段にて取得した複数の通信路のそれぞれの前記通信状態に基づいて、前記更新手段にて取得した前記差分情報を、前記各通信路に対応付けて分割する差分情報分割手段と、
前記差分情報分割手段にて分割した前記差分情報のそれぞれを、分割した前記差分情報のそれぞれに対応する前記各通信路を介して、前記他の情報処理装置へ送信する送信手段と、
を備える情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記通信状態取得手段は、前記通信状態として、複数の前記通信路のそれぞれにおいて所定の大きさの情報を転送する時の転送時間を算出し、
前記差分情報分割手段は、前記通信状態取得手段にて算出した前記各通信路の前記転送時間の比に基づいて、前記更新手段にて取得した前記差分情報を、前記各通信路に対応づけて分割する、
情報処理装置。
【請求項３】
請求項２に記載の情報処理装置であって、
前記差分情報分割手段は、前記通信状態取得手段にて算出した前記各通信路の前記転送時間の比に基づいて、前記転送時間が大きくなるほど前記差分情報の大きさが小さくなり、前記転送時間が小さくなるほど前記差分情報の大きさが大きくなるように、前記差分情報を前記各通信路に対応づけて分割する、
情報処理装置。
【請求項４】
請求項３に記載の情報処理装置であって、
前記差分情報分割手段は、転送時間がｎ番目（ｎは自然数）に短い一方の通信路と、転送時間がｎ番目に長い他方の通信路とをそれぞれ対応付けて、前記他方の通信路の転送時間を、複数の通信路の転送時間の総和で割り、その値に差分情報の大きさを掛けることにより前記一方の通信路にて送信する前記差分情報の大きさを算出するとともに、前記一方の通信路の転送時間を、複数の通信路の転送時間の総和で割り、その値に差分情報の大きさを掛けることにより前記他方の通信路にて送信する前記差分情報の大きさを算出し、算出した前記各通信路にて送信する前記差分情報の大きさのそれぞれに前記差分情報を分割する、
情報処理装置。
【請求項５】
請求項２乃至４に記載の情報処理装置であって、
前記通信状態取得手段にて算出した前記各通信路の前記転送時間に基づいて、複数の前記通信路全体の通信速度を算出し、算出した前記通信速度と、前記送信手段にて送信した前記差分情報の大きさと、に基づいて差分情報送信時間を算出する差分情報送信時間算出手段、を備え、
前記送信手段は、分割した前記差分情報のそれぞれを送信してから前記差分情報送信時間算出手段にて算出した前記差分情報送信時間だけ待機した後に、次に送信する分割した前記差分情報のそれぞれを、分割した前記差分情報のそれぞれに対応する前記各通信路を介して、前記他の情報処理装置へ送信する、
情報処理装置。
【請求項６】
請求項５に記載の情報処理装置であって、
前記通信状態取得手段は、前記他の情報処理装置の負荷の大きさを表す負荷情報を取得し、
前記差分情報送信時間算出手段は、前記通信状態取得手段にて取得した前記負荷情報にて示される負荷の大きさに応じた前記差分情報送信時間を算出する、
情報処理装置。
【請求項７】
情報処理装置にて、
更新情報を取得して、記憶部に予め記憶されたデータを更新するとともに、更新前の前記データと更新後のデータとの差分情報を取得する更新手段と、
更新前の前記データを記憶する他の情報処理装置と通信する複数の通信路のそれぞれの通信状態を取得する通信状態取得手段と、
前記通信状態取得手段にて取得した複数の通信路のそれぞれの前記通信状態に基づいて、前記更新手段にて取得した前記差分情報を、前記各通信路に対応付けて分割する差分情報分割手段と、
前記差分情報分割手段にて分割した前記差分情報のそれぞれを、分割した前記差分情報のそれぞれに対応する前記各通信路を介して、前記他の情報処理装置へ送信する送信手段と、
を実現させるためのプログラム。
【請求項８】
請求項７に記載のプログラムであって、
前記通信状態取得手段は、前記通信状態として、複数の前記通信路のそれぞれにて所定の大きさの情報を転送する時の転送時間を算出し、
前記差分情報分割手段は、前記通信状態取得手段にて算出した前記各通信路の前記転送時間の比に基づいて、前記更新手段にて取得した前記差分情報を、前記各通信路に対応づけて分割する、
プログラム。
【請求項９】
更新情報を取得して、記憶部に予め記憶されたデータを更新するとともに、更新前の前記データと更新後のデータとの差分情報を取得し、
更新前の前記データを記憶する他の情報処理装置と通信する複数の通信路のそれぞれの通信状態を取得し、
取得した複数の通信路のそれぞれの前記通信状態に基づいて、取得した前記差分情報を分割し、
分割した前記差分情報のそれぞれを、前記各通信路に対応付けて分割した前記差分情報のそれぞれに対応する前記各通信路を介して、前記他の情報処理装置へ送信する、
情報処理方法。
【請求項１０】
請求項９に記載の情報処理方法であって、
前記通信状態として、複数の前記通信路のそれぞれにて所定の大きさの情報を転送する時の転送時間を算出し、
算出した前記各通信路の前記転送時間の比に基づいて、取得した前記差分情報を、前記各通信路に対応づけて分割する、
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置にかかり、特に、データを更新したときの差分情報を他の情報処理装置へ送信する情報処理装置に関する。
【背景技術】
【０００２】
メモリの容量が増大するに伴い、メモリにデータを格納し、処理を行うメモリデータベースの技術が知られている。このような、メモリデータベースシステムの技術は、データに冗長性を持たせるために、データを格納するマスターサーバと、データの複製を格納するスレーブサーバと、を備えている（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２９３２１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、上記のメモリデータベースシステムの技術では、メモリ上にデータを格納しているので、ディスクにアクセスをする必要がなく、高速にデータにアクセスすることができる。一方で、マスターサーバに格納されたデータが更新されたときに、データ更新に伴う更新ログをスレーブサーバへ送信する処理時間は、メモリ上のデータの更新時間に比べて大きくなる。この結果、データ更新に伴う差分情報（更新ログ）をスレーブサーバへ送信する処理に時間がかかるという問題があった。なお、ハードディスクドライブ等の記憶装置においても、アクセスの高速化に伴い、同様の問題が発生するおそれがあった。【０００５】
このため、本発明の目的は、差分情報の送信に時間がかかるという問題を解決することができる情報処理装置を提供させることにある。
【課題を解決するための手段】
【０００６】
上記目的を達成すべく、本発明の一形態である情報処理装置は、
更新情報を取得して、記憶部に予め記憶されたデータを更新するとともに、更新前の前記データと更新後のデータとの差分情報を取得する更新手段と、
更新前の前記データを記憶する他の情報処理装置と通信する複数の通信路のそれぞれの通信状態を取得する通信状態取得手段と、
前記通信状態取得手段にて取得した複数の通信路のそれぞれの前記通信状態に基づいて、前記更新手段にて取得した前記差分情報を、前記各通信路に対応付けて分割する差分情報分割手段と、
前記差分情報分割手段にて分割した前記差分情報のそれぞれを、分割した前記差分情報のそれぞれに対応する前記各通信路を介して、前記他の情報処理装置へ送信する送信手段と、
を備えるという構成を取る。【０００７】
また、本発明の他の形態であるプログラムは、
情報処理装置にて、
更新情報を取得して、記憶部に予め記憶されたデータを更新するとともに、更新前の前記データと更新後のデータとの差分情報を取得する更新手段と、
更新前の前記データを記憶する他の情報処理装置と通信する複数の通信路のそれぞれの通信状態を取得する通信状態取得手段と、
前記通信状態取得手段にて取得した複数の通信路のそれぞれの前記通信状態に基づいて、前記更新手段にて取得した前記差分情報を、前記各通信路に対応付けて分割する差分情報分割手段と、
前記差分情報分割手段にて分割した前記差分情報のそれぞれを、分割した前記差分情報のそれぞれに対応する前記各通信路を介して、前記他の情報処理装置へ送信する送信手段と、
を実現させるためのプログラムである。【０００８】
また、本発明の他の形態である情報処理方法は、
更新情報を取得して、記憶部に予め記憶されたデータを更新するとともに、更新前の前記データと更新後のデータとの差分情報を取得し、
更新前の前記データを記憶する他の情報処理装置と通信する複数の通信路のそれぞれの通信状態を取得し、
取得した複数の通信路のそれぞれの前記通信状態に基づいて、取得した前記差分情報を分割し、
分割した前記差分情報のそれぞれを、前記各通信路に対応付けて分割した前記差分情報のそれぞれに対応する前記各通信路を介して、前記他の情報処理装置へ送信する、
という構成を取る。
【発明の効果】
【０００９】
本発明は、以上のように構成されることによりデータ更新に伴う差分情報を迅速に送信することができるという優れた効果を有する。
【図面の簡単な説明】
【００１０】
【図１】本発明の通信システムの構成を示すブロック図である。
【図２】本発明の第１実施形態におけるマスターサーバの構成を示すブロック図である。
【図３】本発明の第１実施形態におけるスレーブサーバの構成を示すブロック図である。
【図４】送信管理テーブルを説明するための図である。
【図５】パケット送信時間を説明するための図である。
【図６】差分情報送信時間を説明するための図である。
【図７】差分情報を送信する処理を説明するための図である。
【図８】データ更新処理を説明するためのフローチャートである。
【図９】転送時間算出処理を説明するためのフローチャートである。
【図１０】負荷情報送信処理を説明するためのフローチャートである。
【図１１】差分情報送信時間算出処理を説明するためのフローチャートである。
【図１２】差分情報分割処理を説明するためのフローチャートである。
【図１３】差分情報送信処理を説明するためのフローチャートである。
【図１４】差分情報削除処理を説明するためのフローチャートである。
【図１５】本発明の第２実施形態におけるマスターサーバの構成を示すブロック図である。
【図１６】転送時間算出処理を説明するためのフローチャートである。
【図１７】差分情報送信処理を説明するためのフローチャートである。
【発明を実施するための形態】
【００１１】
＜第１実施形態＞
本発明の第１実施形態を、図１乃至図１４を参照して説明する。図１乃至図７は、通信システム１の構成を説明するための図である。図８乃至図１４は、通信システム１の動作を説明するための図である。
【００１２】
［構成］
最初に、通信システム１の構成について説明する。図１に示すように、本実施形態における通信システム１は、マスターサーバ１１と、スレーブサーバ１２Ａ，１２Ｂと、通信路１３ａ，１３ｂと、を備えている。マスターサーバ１１は、メモリにデータを記憶（格納）したメモリデータベースシステムを利用するサーバ装置である。マスターサーバ１１は、メモリにデータを記憶しているので、ハードディスクドライブ等の記憶装置にアクセスする必要がなく、高速にデータにアクセスすることができる。
【００１３】
スレーブサーバ１２Ａ，１２Ｂは、マスターサーバ１１に記憶されたデータの複製を記憶するサーバ装置である。スレーブサーバ１２Ａ，１２Ｂは、マスターサーバ１１に記憶されたデータの複製を記憶することで、マスターサーバ１1に障害等が発生した場合でも、通信システム１全体の機能を維持することができる。なお、スレーブサーバ１２Ａ，１２Ｂのそれぞれを個々に区別しない場合、以下単にスレーブサーバ１２と記載する。
【００１４】
マスターサーバ１１とスレーブサーバ１２とは、有線または無線による通信路１３ａ，１３ｂを介して接続される。なお、通信路１３ａ，１３ｂのそれぞれを個々に区別しない場合、以下単に通信路１３と記載する。
【００１５】
なお、図１の通信システム１は、１つのスレーブサーバ１２を備えていてもよいし、３つ以上の複数のスレーブサーバ１２を備えていてもよい。さらに、通信システム１における通信路１３の数は３つ以上の複数であってもよい。
【００１６】
まず、図２を参照して、マスターサーバ１１の構成について説明する。マスターサーバ１１（情報処理装置）は、演算部２１と、メモリ２２と、通信部２３Ａ，２３Ｂ（送信手段）と、入出力部２４と、記憶部２５と、を備えている。
【００１７】
演算部２１は、例えば、CPU（Central Processing Unit）により構成される。演算部２１は、記憶部２５に格納されたプログラムを読み込み、メモリ２２を作業領域としてプログラムを実行することにより、マスターサーバ１１を制御するための各種機能を実行する。
【００１８】
演算部２１は、プログラムを実行することにより、更新部４１（更新手段）と、取得部４２Ａ，４２Ｂと、転送時間算出部４３Ａ，４３Ｂ（通信状態取得手段）と、記憶制御部４４Ａ，４４Ｂと、差分情報送信時間算出部４５Ａ，４５Ｂ（差分情報送信時間算出手段）と、差分情報分割部４６Ａ，４６Ｂ（差分情報分割手段）と、を有する。演算部２１の各構成については、後述して説明する。
【００１９】
また、メモリ２２（記憶部）は、マスターサーバ１１が有するデータであるマスターデータ５１を記憶する。マスターデータ５１は、例えば、商品の受注や配送を管理するデータベースや、オンライン証券を管理するデータベース等であり、特に高速なトランザクションが求められるシステムにおいて利用される。さらに、メモリ２２は、差分情報格納領域６１と、負荷情報格納領域６２Ａ，６２Ｂと、転送時間格納領域６３Ａ，６３Ｂと、差分情報送信時間格納領域６４Ａ，６４Ｂと、分割差分情報格納領域６５Ａ，６５Ｂと、を有する。メモリ２２の各格納領域については、後述して説明する。
【００２０】
そして、マスターサーバ１１は、スレーブサーバ１２Ａとの通信を制御するための第１の通信制御部３１Ａと、スレーブサーバ１２Ｂとの通信を制御するための第２の通信制御部３１Ｂと、を有している。第１の通信制御部３１Ａは、取得部４２Ａと、転送時間算出部４３Ａと、記憶制御部４４Ａと、差分情報送信時間算出部４５Ａと、差分情報分割部４６Ａと、負荷情報格納領域６２Ａと、転送時間格納領域６３Ａと、差分情報送信時間格納領域６４Ａと、分割差分情報格納領域６５Ａと、を有している。
【００２１】
第２の通信制御部３１Ｂは、取得部４２Ｂと、転送時間算出部４３Ｂと、記憶制御部４４Ｂと、差分情報送信時間算出部４５Ｂと、差分情報分割部４６Ｂと、負荷情報格納領域６２Ｂと、転送時間格納領域６３Ｂと、差分情報送信時間格納領域６４Ｂと、分割差分情報格納領域６５Ｂと、を有している。なお、スレーブサーバ１２の数が１つである場合には、マスターサーバ１１は、第１の通信制御部３１Ａだけを有する。また、スレーブサーバ１２の数が３つ以上の複数である場合には、マスターサーバ１１は、スレーブサーバ１２の数だけ通信制御部３１を有する。以下では、取得部４２Ａ，４２Ｂを取得部４２として記載する。また、ＡとＢの符号を有する他の構成についても同様にＡ，Ｂを区別することなく記載する。
【００２２】
次に、図３を参照して、スレーブサーバ１２の構成について説明する。スレーブサーバ１２（他の情報処理装置）は、演算部１０１と、メモリ１０２と、通信部１０３と、を備えている。演算部１０１は、例えば、CPUにより構成される。演算部１０１は、記憶部（図示せず）に格納されたプログラムを読み込み、メモリ１０２を作業領域としてプログラムを実行することにより、スレーブサーバ１２を制御するための各種機能を実行する。
【００２３】
スレーブサーバ１２の演算部１０１は、プログラムを実行することにより、負荷情報取得部１２１と、複製データ更新部１２２と、を有している。演算部１０１の各構成については、後述して説明する。また、メモリ１０２は、マスターサーバ１１が記憶するマスターデータ５１の複製である複製データ１３１を記憶する。
【００２４】
なお、スレーブサーバ１２は、複製データ１３１を出力（表示）する複製データ出力部をさらに備えてもよい。スレーブサーバ１２が複製データ出力部を備えることにより、ユーザがスレーブサーバ１２にアクセスして複製データ１３１を参照することが可能になる。従って、マスターデータ５１（複製データ１３１）の出力処理をマスターサーバ１１とスレーブサーバ１２とのそれぞれに分散させることができ、マスターサーバ１１へのアクセス集中による負荷の上昇を防ぐことができる。
【００２５】
以下に、マスターサーバ１１とスレーブサーバ１２の各構成の詳細について説明する。最初に、マスターデータ５１を更新する場合の処理について説明する。
【００２６】
マスターサーバ１１のマスターデータ５１を更新する場合、まず、更新部４１は、更新データを取得する。更新部４１は、例えば、入出力部２４を介してユーザにより入力された更新データを取得する。次に、更新部４１は、取得した更新データに基づいて、メモリ２２に記憶されたマスターデータ５１を更新する。さらに、更新部４１は、更新前のマスターデータと更新後のマスターデータとに基づいて、更新前のマスターデータと更新後のマスターデータとの差分情報（例えば更新ログ）を生成し、取得する。そして、更新部４１は、取得した差分情報を差分情報格納領域６１に記憶する。これにより、メモリ２２に記憶されたマスターデータ５１が更新されるたびに、その差分情報が自動的に生成される。
【００２７】
またこの時、更新部４１は、差分情報をスレーブサーバ１２に送信済みかどうかを表す送信済フラグを、各スレーブサーバに設定する送信管理テーブル８１を格納するメモリ２２（または記憶部２５）に記憶する。図４は、送信管理テーブル８１の例を示す図である。図４に示すように、送信管理テーブル８１には、差分情報Ｌ１乃至Ｌ３のそれぞれをスレーブサーバ１２Ａ，１２Ｂに送信したか否かを表す送信済フラグが設定されている。図４の例では、差分情報が送信済みである場合に、送信済フラグとして「１」が設定される。また、差分情報が未送信である場合に、送信済フラグとして「０」が設定される。
【００２８】
従って、図４の送信管理テーブル８１は、差分情報Ｌ１を、スレーブサーバ１２Ａ，１２Ｂのそれぞれへ送信済みであることを表している。また、送信管理テーブル８１は、差分情報Ｌ２を、スレーブサーバ１２Ａへ送信済みであり、スレーブサーバ１２Ｂには未送信であることを表している。さらに、送信管理テーブル８１は、差分情報Ｌ３を、スレーブサーバ１２Ａ，１２Ｂのそれぞれには未送信であることを表している。
【００２９】
次に、更新したマスターデータ５１の差分情報をスレーブサーバ１２へ送信する前処理について説明する。差分情報をスレーブサーバ１２へ送信する場合、マスターサーバ１１は、最初に、スレーブサーバ１２の通信状態を取得する。
【００３０】
まず、マスターサーバ１１の取得部４２は、通信先情報を取得する。通信先情報は、例えば、スレーブサーバ１２のアドレス情報と、スレーブサーバ１２と通信するための複数の通信路の情報であり、予め記憶部２５に記憶される。次に、マスターサーバ１１の通信部２３は、取得した通信先情報に含まれる通信路毎（例えば通信路１３ａ，１３ｂ）にスレーブサーバ１２へ負荷情報要求を送信する。負荷情報要求は、スレーブサーバ１２の負荷情報（例えばCPUの使用率）を要求するための情報である。
【００３１】
続いて、マスターサーバ１１の取得部４２は、通信路毎に負荷情報要求を送信した時刻を表す送信時刻を取得する。取得部４２は、例えば、マスターサーバ１１に内蔵された時計から送信時刻を取得する。そして、記憶制御部４４は、取得部４２が取得した送信時刻をメモリ２２に記憶する。なお、通信路毎に送信する負荷情報要求を同じタイミングで送信した場合、取得部４２は、通信路毎の送信時刻として１つ通信時刻を取得する。
【００３２】
ここで、マスターサーバ１１の通信部２３により負荷情報要求がスレーブサーバ１２へ送信されたときの、スレーブサーバ１２の処理について説明する。まず、スレーブサーバ１２の通信部１０３は、マスターサーバ１１から送信された負荷情報要求を受信する。続いて、スレーブサーバ１２の負荷情報取得部１２１は、負荷情報（例えばCPUの使用率）を取得する。具体的には、負荷情報取得部１２１は、マスターサーバ１１から負荷情報要求を受信したときに、負荷を検出して、負荷情報を取得する。なお、上記に限られず、負荷情報取得部１２１は、任意のタイミング（例えば定期的）に負荷を検出して、検出した負荷情報をメモリ１０２に記憶しておき、マスターサーバ１１から負荷情報要求を受信したときに、記憶した負荷情報を取得してもよい。
【００３３】
そして、スレーブサーバ１２の通信部１０３は、負荷情報要求を受信した通信路を介して、取得した負荷情報をマスターサーバ１１へ送信する。これにより、マスターサーバ１１は、スレーブサーバ１２の負荷を取得することができる。
【００３４】
スレーブサーバ１２から負荷情報が送信されると、マスターサーバ１１の通信部２３は、通信路毎に送信された負荷情報を受信する。続いて、マスターサーバ１１の記憶制御部４４は、受信した負荷情報を負荷情報格納領域６２に記憶する。また、マスターサーバ１１の取得部４２は、負荷情報を受信した時刻を表す受信時刻を通信路毎に取得する。
【００３５】
そして、マスターサーバ１１の転送時間算出部４３は、通信路毎の送信時刻と、通信路毎の受信時刻と、負荷情報のサイズと、に基づいて、通信路毎に転送時間を算出する。具体的には、以下の式（１），（２）を用いて通信路毎に転送時間を算出する。まず、転送時間算出部４３は、負荷情報要求の送信時刻と負荷情報の受信時刻とに基づいて、パケット送信時間を算出する。パケット送信時間（秒）は、以下の式（１）により算出される。
【００３６】
パケット送信時間＝（受信時刻−送信時刻）÷２          （１）
【００３７】
すなわち、パケット送信時間は、図５に示すように、受信時刻から送信時刻を引いた差の半分により表わされる。例えば、送信時刻が「１２：００：００」であり、受信時刻が「１２：００：０２」である場合には、パケット送信時間は「１」（＝２÷２）（秒）になる。なお、マスターサーバ１１が送信する負荷情報要求と、スレーブサーバ１２が送信する負荷情報と、の大きさが異なる場合には、式（１）に負荷情報要求の大きさと負荷情報の大きさとの比率を含めることができる。例えば、負荷情報要求の大きさと負荷情報の大きさとの比率が１：２である場合には、転送時間算出部４３は、（受信時刻−送信時刻）÷３（＝１＋２）によりパケット送信時間を算出することができる。
【００３８】
続いて、転送時間算出部４３は、以下の式（２）により転送時間（秒／バイト）を算出する。
【００３９】
転送時間＝パケット送信時間÷パケットサイズ          （２）
【００４０】
すなわち、転送時間算出部４３は、パケット送信時間をパケットサイズで割ることにより転送時間を算出する。例えば、パケットサイズが１０Ｂである場合、転送時間は「０．１」（＝１÷１０）（秒）になる。なお、上記したように負荷情報要求の大きさと負荷情報の大きさとが異なる場合には、負荷情報要求の大きさと負荷情報の大きさとのうちの一方のパケットサイズを用いることで、転送時間算出部４３は、転送時間を算出することができる。
【００４１】
最後に、記憶制御部４４は、算出した通信路毎の転送時間を転送時間格納領域６３に記憶する。これにより、マスターサーバ１１からスレーブサーバ１２への通信路毎の転送時間を、スレーブサーバ１２の通信状態として取得することができる。なお、スレーブサーバ１２の通信状態は、上記の転送時間に限られない。
【００４２】
次に、マスターサーバ１１が差分情報送信時間を算出する処理について説明する。まず、取得部４２は、通信路毎の転送時間を取得する。具体的には、取得部４２は、転送時間格納領域６３に記憶された通信路毎の転送時間を取得する。次に、差分情報送信時間算出部４５は、取得した通信路毎の転送時間に基づいて、差分情報送信時間を算出する。
【００４３】
具体的には、以下の式（３），（４）を用いて通信路毎に転送時間を算出する。まず、転送時間算出部４３は、通信路１３ａ，１３ｂの合計ネットワーク帯域（通信路全体の通信速度）を算出する。合計ネットワーク帯域（バイト／秒）は、以下の式（３）により算出される。
【００４４】
合計ネットワーク帯域＝
（１÷通信路１３ａの転送時間）＋（１÷通信路１３ｂの転送時間）（３）
【００４５】
すなわち、転送時間算出部４３は、通信路毎の転送時間の逆数の総和により合計ネットワーク帯域を算出する。例えば、通信路１３ａの転送時間が「０．１」秒であり、通信路１３ｂの転送時間が「０．０５」秒である場合、合計ネットワーク帯域は「３０」（＝１０＋２０）（バイト／秒）になる。続いて、転送時間算出部４３は、以下の式（４）により差分情報Ｌｎの差分情報送信時間（秒）を算出する。
【００４６】
差分情報送信時間＝差分情報サイズ÷合計ネットワーク帯域  （４）
【００４７】
すなわち、転送時間算出部４３は、差分情報Ｌｎの大きさを合計ネットワーク帯域で割ることにより差分情報送信時間を算出する。例えば、差分情報Ｌｎの大きさを９０Ｂとすると、差分情報送信時間は「３」（＝９０÷３０）（秒）になる。そして、記憶制御部４４は、算出した差分情報送信時間を差分情報送信時間格納領域６４に記憶する。これにより、マスターサーバ１１からスレーブサーバ１２へ差分情報を送信するまでの差分情報送信時間を算出するので、ある差分情報の送信が完了した後、すぐに次の差分情報を送信することができる。
【００４８】
なお、差分情報送信時間算出部４５は、負荷情報格納領域６２から負荷情報を取得し、負荷情報にて示される負荷の大きさ（例えばCPU使用率）に応じた差分情報送信時間を算出することができる。例えば、差分情報送信時間算出部４５は、負荷の大きさが大きい程、差分情報送信時間が多くなるように当該差分情報送信時間を算出する。
【００４９】
また、例えば、差分情報送信時間算出部４５は、負荷情報にて示される負荷の大きさが予め設定された閾値以上（例えば１００％以上）である場合に、算出した差分情報送信時間に予め設定された時間（例えば、０．２秒）を加えることができる。これにより、スレーブサーバ１２において複製データ１３１の更新ができないおそれがある場合に、スレーブサーバ１２への負荷を低減することができる。
【００５０】
次に、マスターサーバ１１が差分情報を分割する処理について説明する。最初に、差分情報分割部４６は、差分情報格納領域６１を参照し、分割していない差分情報Ｌｎがあるか否かを判定する。分割していない差分情報Ｌｎがある場合、差分情報分割部４６は、転送時間格納領域６３から通信路毎の転送時間を取得する。次に、差分情報分割部４６は、通信路毎に差分情報Ｌｎの送信サイズを算出する。具体的には、以下の式（５），（６）を用いて通信路毎に差分情報の送信サイズを算出する。通信路１３ａの送信サイズは、以下の式（５）により算出される。
【００５１】
通信路１３ａの送信サイズ＝差分情報の大きさ×通信路１３ｂの転送時間
÷（通信路１３ａの転送時間＋通信路１３ｂの転送時間）  （５）
【００５２】
すなわち、差分情報分割部４６は、通信路１３ａとは異なる（逆の）通信路１３ｂの転送時間を、通信路１３ａ，１３ｂの転送時間の総和で割り、その値に差分情報の大きさを掛けることにより通信路１３ａの送信サイズを算出する。例えば、差分情報の大きさを９０Ｂとすると、通信路１３ａの送信サイズは「３０」（＝９０×０．０５÷０．１５）Ｂになる。同様に、通信路１３ｂの送信サイズは、以下の式（６）により算出される。
【００５３】
通信路１３ｂの送信サイズ＝差分情報の大きさ×通信路１３ａの転送時間
÷（通信路１３ａの転送時間＋通信路１３ｂの転送時間）  （６）
【００５４】
すなわち、差分情報分割部４６は、通信路１３ｂとは異なる（逆の）通信路１３ａの転送時間を、通信路１３ａ，１３ｂの転送時間の総和で割り、その値に差分情報の大きさを掛けることにより通信路１３ｂの送信サイズを算出する。例えば、差分情報の大きさを９０Ｂとすると、通信路１３ｂの送信サイズは「６０」（＝９０×０．１÷０．１５）Ｂになる。このように、差分情報分割部４６は、各通信路の転送時間の比（通信路１３ａの転送時間：通信路１３ｂの転送時間＝２：１）に基づいて、差分情報を通信路に対応付けて分割する（通信路１３ａの送信サイズ「３０」Ｂ：通信路１３ｂの送信サイズ「６０」Ｂ）。なお、上記したように通信路１３の数が２つである場合には、差分情報分割部４６は、通信路１３ａの送信サイズ（３０Ｂ）を算出した後に、差分情報の大きさ（９０Ｂ）から、算出した通信路１３ａの送信サイズを引くことにより、通信路１３ｂの送信サイズを算出する（６０Ｂ＝９０Ｂ−３０Ｂ）ことができる。
【００５５】
そして、差分情報分割部４６は、算出した通信路毎の送信サイズに基づいて、各通信路に対応づけて差分情報Ｌｎを分割する。最後に、記憶制御部４４は、各通信路に対応づけて分割した差分情報Ｌｎを分割差分情報格納領域６５に記憶する。これにより、差分情報を各通信路に対応付けて分割し、通信路毎に所定の大きさに分割された差分情報を送信することができる。
【００５６】
このように、転送時間が大きくなるほど差分情報の大きさが小さくなり、転送時間が小さくなるほど差分情報の大きさが大きくなるように差分情報を分割するので、送信能力が高い通信路ほど大きい差分情報を送信でき、複数の通信路を効率的に利用することができる。
【００５７】
なお、上記には通信路が２つである場合について説明したが、差分情報分割部４６は、３つ以上の複数の通信路についても各通信路において送信する差分情報の送信サイズを算出することができる。例えば、差分情報分割部４６は、複数の通信路１３の転送時間のそれぞれを算出した場合に、転送時間が最も短くなる通信路１３ｃ（一方の通信路）と、転送時間が最も長くなる通信路１３ｄ（他方の通信路）と、を対応付けて通信路１３ｃ，１３ｄのそれぞれの送信サイズを算出する。具体的には、通信路１３ｃ，１３ｄの送信サイズは、以下の式（７），（８）により算出される。
【００５８】
一方の通信路の送信サイズ＝差分情報の大きさ×他方の通信路の転送時間
÷（複数の通信路１３の転送時間の総和）  （７）
【００５９】
他方の通信路の送信サイズ＝差分情報の大きさ×一方の通信路の転送時間
÷（複数の通信路１３の転送時間の総和）  （８）
【００６０】
すなわち、差分情報分割部４６は、一方の通信路（通信路１３ｃ）に対応付けられた他方の通信路（通信路１３ｄ）の転送時間を、複数の通信路１３の転送時間の総和で割り、その値に差分情報の大きさを掛けることにより一方の通信路の送信サイズを算出する。また、同様に、差分情報分割部４６は、他方の通信路（通信路１３ｄ）に対応付けられた一方の通信路（通信路１３ｃ）の転送時間を、複数の通信路１３の転送時間の総和で割り、その値に差分情報の大きさを掛けることにより他方の通信路の送信サイズを算出する。
【００６１】
すなわち、差分情報分割部４６は、転送時間がｎ番目（ｎは自然数）に短い一方の通信路と、転送時間がｎ番目に長い他方の通信路と、をそれぞれ対応付けて各通信路１３のそれぞれの送信サイズを算出する。なお、通信路１３の数が奇数（例えば３）である場合には、一方の通信路（例えば転送時間が２番目に短い通信路１３）と他方の通信路（例えば転送時間が２番目に長い通信路１３）が同一の通信路１３ｘを示すことがある。この場合、一方の通信路の転送時間と他方の通信路の転送時間とは同じになるので、差分情報分割部４６は、以下の式（７），（８）のいずれか一方を利用して、通信路１３ｘの送信サイズを算出する。また、差分情報分割部４６は、差分情報の大きさから、通信路１３ｘとは異なる他の通信路１３の送信サイズの総和を引くことにより、通信路１３ｘの送信サイズを算出してもよい。なお、複数の通信路のそれぞれの送信サイズを算出する方法は、上記に限られない。
【００６２】
次に、マスターサーバ１１が差分情報を送信する処理について説明する。まず、取得部４２は、分割差分情報格納領域６５から各通信路に対応付けて分割した差分情報Ｌｎを取得する。そして、通信部２３は、取得した差分情報Ｌｎを通信路毎に送信する。続いて、取得部４２は、差分情報送信時間格納領域６４から差分情報Ｌｎの差分情報送信時間を取得する。
【００６３】
次に、取得部４２は、次に送信する分割した差分情報Ｌｎを取得する。すなわち、取得部４２は、送信した差分情報の次に分割された差分情報Ｌｎを取得する。続いて、通信部２３は、差分情報Ｌｎを送信してから、差分情報送信時間（例えば３秒）だけ待機する。そして、通信部２３は、差分情報Ｌｎを送信してから差分情報送信時間だけ待機した後に、次に送信する差分情報Ｌｎを通信路毎に送信する。例えば、通信部２３は、通信路１３ａを介して、３０Ｂの大きさに分割した差分情報を送信し、通信路１３ｂを介して、６０Ｂの大きさに分割した差分情報を送信する。マスターサーバ１１は以上の差分情報を送信する処理を繰り返し実行する。
【００６４】
これにより、例えば図６と図７に示すように、前回送信した差分情報（差分情報Ｌ１）が全てスレーブサーバ１２に到達し、通信路１３（通信路１３のネットワーク帯域）が空いたタイミングに、次の差分情報（差分情報Ｌ２）を送信するので、迅速かつ効率的に差分情報を送信することができる。
【００６５】
マスターサーバ１１から差分情報が送信されると、スレーブサーバ１２は、送信した差分情報に基づいて複製データ１３１を更新する。具体的には、スレーブサーバ１２の通信部１０３は、送信された差分情報を受信する。続いて、スレーブサーバ１２の複製データ更新部１２２は、受信した差分情報に基づいて、複製データ１３１を更新する。これにより、更新したマスターデータ５１の内容をスレーブサーバ１２の複製データ１３１に反映することができる。
【００６６】
最後に、マスターサーバ１１が差分情報を削除する処理について説明する。まず、更新部４１は、差分情報Ｌｎが送信されたか否かを判定する。差分情報Ｌｎが送信されたと判定された場合、更新部４１は、送信管理テーブル８１（例えば図４）を参照して、差分情報Ｌｎを送信した通信路の送信済フラグを設定する。すなわち、更新部４１は、送信済フラグを「０」から「１」へ変更する。
【００６７】
次に、更新部４１は、差分情報Ｌｎの送信済フラグが全て設定されているか否かを判定する。図４の例では、更新部４１は、差分情報「Ｌ１」を、送信済フラグが全て設定されていると判定する。差分情報Ｌ１の送信済フラグが全て設定されたと判定した場合、更新部４１は、差分情報Ｌ１を削除する。すなわち、更新部４１は、送信管理テーブル８１の差分情報「Ｌ１」のレコードを削除する。また、更新部４１は、差分情報格納領域６１と、差分情報送信時間格納領域６４と、分割差分情報格納領域６５と、のそれぞれに記憶された差分情報「Ｌ１」に対応する情報を削除する。
【００６８】
これにより、全てのスレーブサーバ１２への送信が完了した差分情報は自動的に削除されるので、メモリ２２を効率的に利用することができる。一方、更新部４１は、差分情報Ｌｎの送信済フラグが全て設定されていないと判定した場合（例えば図４の差分情報「Ｌ２」，「Ｌ３」）、差分情報の削除は実行しない。
【００６９】
以上のように、本実施形態においては、通信路の通信状態（例えば転送時間）に応じて、各通信路に対応付けて差分情報を分割し、分割した差分情報をスレーブサーバ１２へ送信するので、複数の通信路を有効に利用し、差分情報の送信時間を低減することができる。
【００７０】
なお、本実施形態においては、通信部２３は、スレーブサーバ１２毎に備えられるとしたが、１つの通信部２３により構成されてもよい。また、通信路の通信状態は転送時間に限られず、例えば通信速度等でもよい。
【００７１】
さらに、本実施形態においては、更新部４１はマスターデータ５１の更新のみを行い、通信部２３は、非同期にスレーブサーバ１２へ差分情報を送信する。しかしながら、通信部２３は、各スレーブサーバ１２へ差分情報を送信するタイミングを同期させてもよい。例えば、更新部４１が任意のタイミングにて通信部２３へ送信指示を行うことで、送信指示を受け付けた通信部２３は、待ち時間なしに即座に差分情報をスレーブサーバ１２へ送信する。
【００７２】
［動作］
次に、図８乃至図１４を参照して、通信システム１の動作について説明する。最初に、図８を参照して、マスターサーバ１１のデータ更新処理について説明する。マスターサーバ１１のデータ更新処理は、更新データが入力された場合に実行される。
【００７３】
まず、更新部４１は、更新データを取得する（ステップＳ１）。更新部４１は、例えば、入出力部２４を介してユーザにより入力された更新データを取得する。次に、更新部４１は、ステップＳ１の処理にて取得した更新データに基づいて、メモリ２２に記憶されたマスターデータ５１を更新する（ステップＳ２）。
【００７４】
続いて、更新部４１は、更新前のマスターデータと更新後のマスターデータとに基づいて、更新前のマスターデータと更新後のマスターデータとの差分情報を取得する（ステップＳ３）。そして、更新部４１は、ステップＳ３の処理にて取得した差分情報を差分情報格納領域６１に記憶する（ステップＳ４）。
【００７５】
ステップＳ４の処理の後、マスターサーバ１１のデータ更新処理は終了する。これにより、メモリ２２に記憶されたマスターデータ５１が更新されるたびに、その差分情報が自動的に生成される。
【００７６】
次に、図９と図１０を参照して、転送時間算出処理について説明する。図９は、マスターサーバ１１の転送時間算出処理を説明するためのフローチャートである。図１０は、スレーブサーバ１２の負荷情報送信処理を説明するためのフローチャートである。図９の転送時間算出処理は、任意のタイミング（例えば定期的）に実行される。
【００７７】
まず、マスターサーバ１１の取得部４２は、通信先情報を取得する（ステップＳ２１）。取得部４２は、例えば、予め記憶部２５に記憶された通信先情報として、スレーブサーバ１２のアドレス情報と、スレーブサーバ１２と通信するための複数の通信路１３の情報を取得する。
【００７８】
次に、マスターサーバ１１の通信部２３は、ステップＳ２１の処理にて取得した通信先情報に含まれる通信路毎（例えば通信路１３ａ，１３ｂ）にスレーブサーバ１２へ負荷情報要求を送信する（ステップＳ２２）。負荷情報要求は、スレーブサーバ１２の負荷情報（例えばCPUの使用率）を要求するための情報である。
【００７９】
続いて、マスターサーバ１１の取得部４２は、通信路毎に負荷情報要求を送信した時刻を表す送信時刻を取得する（ステップＳ２３）。マスターサーバ１１の通信部２３により負荷情報要求がスレーブサーバ１２へ送信されると（ステップＳ２２の処理を実行した後）、スレーブサーバ１２は、図１０の負荷情報送信処理を実行する。
【００８０】
図１０の負荷情報送信処理では、まず、スレーブサーバ１２の通信部１０３は、マスターサーバ１１から送信された負荷情報要求を受信する（ステップＳ４１）。続いて、スレーブサーバ１２の負荷情報取得部１２１は、負荷情報（例えばCPUの使用率）を取得する（ステップＳ４２）。
【００８１】
そして、スレーブサーバ１２の通信部１０３は、ステップＳ４１の処理にて負荷情報要求を受信した通信路を介して、ステップＳ４２の処理にて取得した負荷情報をマスターサーバ１１へ送信する（ステップＳ４３）。ステップＳ４３の処理の後、図１０の負荷情報送信処理は終了し、処理は図９のステップＳ２４に進む。
【００８２】
図９のステップＳ２４において、マスターサーバ１１の通信部２３は、通信路毎に、図１０のステップＳ４３の処理にて送信された負荷情報を受信する（ステップＳ２４）。続いて、マスターサーバ１１の記憶制御部４４は、受信した負荷情報を負荷情報格納領域６２に記憶する（ステップＳ２５）。
【００８３】
また、マスターサーバ１１の取得部４２は、ステップＳ２４の処理にて負荷情報を受信した時刻を表す受信時刻を通信路毎に取得する（ステップＳ２６）。そして、マスターサーバ１１の転送時間算出部４３は、ステップＳ２３の処理にて取得した通信路毎の送信時刻と、ステップＳ２６の処理にて取得した通信路毎の受信時刻と、ステップＳ２４の処理にて受信した負荷情報のサイズと、に基づいて、通信路毎に転送時間を算出する（ステップＳ２７）。転送時間の算出方法は、式（１），（２）を参照して上述したので、具体的な説明は省略する。
【００８４】
最後に、記憶制御部４４は、ステップＳ２７の処理にて算出した通信路毎の転送時間を転送時間格納領域６３に記憶する（ステップＳ２８）。これにより、通信路毎の通信状態としての通信路毎の転送時間を記憶することができる。
【００８５】
次に、図１１を参照して、マスターサーバ１１の差分情報送信時間算出処理について説明する。図１１の差分情報送信時間算出処理は、図９の転送時間算出処理にて転送時間が算出された後に実行される。
【００８６】
まず、取得部４２は、通信路毎の転送時間を取得する（ステップＳ６１）。具体的には、取得部４２は、図１０のステップＳ２８の処理にて転送時間格納領域６３に記憶された通信路毎の転送時間を取得する。次に、差分情報送信時間算出部４５は、ステップＳ６１の処理にて取得した通信路毎の転送時間に基づいて、差分情報Ｌｎの差分情報送信時間を算出する（ステップＳ６２）。差分情報送信時間の算出方法は、式（３），（４）を参照して上述したので、具体的な説明は省略する。
【００８７】
そして、記憶制御部４４は、ステップＳ６２の処理にて算出した差分情報送信時間を差分情報送信時間格納領域６４に記憶する（ステップＳ６３）。ステップＳ６３の処理の後、マスターサーバ１１の差分情報送信時間算出処理は終了する。これにより、マスターサーバ１１からスレーブサーバ１２へ差分情報を送信するまでの差分情報送信時間（差分情報送信時間）を算出するので、ある差分情報の送信が完了した後、すぐに次の差分情報を送信することができる。
【００８８】
次に、図１２乃至図１４を参照して、マスターサーバ１１が差分情報を送信するときの動作について説明する。図１２は、差分情報分割処理を説明するためのフローチャートである。図１３は、差分情報送信処理を説明するためのフローチャートである。図１４は、差分情報削除処理を説明するためのフローチャートである。
【００８９】
最初に、図１２の差分情報分割処理について説明する。図１２の差分情報送信処理は、マスターサーバ１１が起動した際に開始される。
【００９０】
まず、差分情報分割部４６は、差分情報格納領域６１を参照し、分割していない差分情報Ｌｎがあるか否かを判定する（ステップＳ８１）。分割していない差分情報Ｌｎがない場合（ステップＳ８１：Ｎｏ）、処理はステップＳ８１に戻り、ステップＳ８１の処理が繰り返される。一方、分割していない差分情報Ｌｎがある場合（ステップＳ８１：Ｙｅｓ）、差分情報分割部４６は、転送時間格納領域６３から通信路毎の転送時間を取得する（ステップＳ８２）。
【００９１】
次に、差分情報分割部４６は、通信路毎に差分情報Ｌｎの送信サイズを算出する（ステップＳ８３）。送信サイズの算出方法は、式（５），（６）を参照して上述したので、具体的な説明は省略する。そして、差分情報分割部４６は、ステップＳ８３の処理にて算出した通信路毎の送信サイズに基づいて、各通信路に対応づけて差分情報Ｌｎを分割する（ステップＳ８４）。
【００９２】
続いて、記憶制御部４４は、ステップＳ８４の処理にて分割し、各通信路に対応づけた差分情報Ｌｎを分割差分情報格納領域６５に記憶する（ステップＳ８５）。ステップＳ８５の処理の後、処理はステップＳ８１に戻り、それ以降の処理が繰り返される。
【００９３】
次に、図１３を参照して、差分情報送信処理について説明する。図１３の差分情報送信処理は、図１２のステップＳ８４の処理により差分情報Ｌｎを分割したとき（またはステップＳ８５の処理により分割した差分情報Ｌｎを記憶したとき）に開始される。
【００９４】
まず、取得部４２は、図１２のステップＳ８４の処理にて分割し、各通信路に対応付けた差分情報Ｌｎを取得する（ステップＳ１０１）。なお、取得部４２は、分割差分情報格納領域６５から差分情報Ｌｎを取得してもよい。
【００９５】
そして、通信部２３は、ステップＳ１０１の処理にて取得した差分情報Ｌｎを通信路毎に送信する（ステップＳ１０２）。続いて、取得部４２は、差分情報送信時間格納領域６４から差分情報Ｌｎの差分情報送信時間を取得する（ステップＳ１０３）。
【００９６】
次に、取得部４２は、次に送信する分割した差分情報Ｌｎを取得する（ステップＳ１０４）。ステップＳ１０４の処理は、上述したステップＳ１０１の処理と同様の処理である。つまり、取得部４２は、ステップＳ１０１の処理にて取得した差分情報の次に分割された差分情報Ｌｎを取得する。
【００９７】
そして、通信部２３は、ステップＳ１０２の処理にて差分情報Ｌｎを送信してから、ステップＳ１０３にて取得した差分情報送信時間だけ待機する（ステップＳ１０５）。ステップＳ１０５の処理の後、処理はステップＳ１０２に戻り、それ以降の処理が繰り返される。
【００９８】
具体的には、通信部２３は、差分情報Ｌｎを送信してから差分情報送信時間だけ待機した後に、ステップＳ１０４の処理にて取得した次に送信する差分情報Ｌｎを通信路毎に送信する。
【００９９】
これにより、前回送信した差分情報が全てスレーブサーバ１２に到達し、通信路１３（通信路１３のネットワーク帯域）が空いたタイミングに、次の差分情報を送信するので、迅速かつ効率的に差分情報を送信することができる。なお、スレーブサーバ１２に差分情報Ｌｎが送信されると、スレーブサーバ１２の複製データ更新部１２２は、受信した差分情報に基づいて複製データ１３１を更新する。
【０１００】
次に、図１４を参照して、差分情報削除処理について説明する。図１４の差分情報削除処理は、図１３のステップＳ１０２の処理により差分情報Ｌｎを送信したときに開始される。
【０１０１】
まず、更新部４１は、差分情報Ｌｎが送信されたか否かを判定する（ステップＳ１２１）。差分情報Ｌｎが送信されていないと判定された場合（ステップＳ１２１：Ｎｏ）、処理はステップＳ１２１に戻り、ステップＳ１２１の処理が繰り返される。一方、差分情報Ｌｎが送信されたと判定された場合（ステップＳ１２１：Ｙｅｓ）、更新部４１は、差分情報Ｌｎを送信した通信路の送信済フラグを設定する（ステップＳ１２２）。
【０１０２】
次に、更新部４１は、差分情報Ｌｎの送信済フラグが全て設定されているか否かを判定する（ステップＳ１２３）。差分情報Ｌｎの送信済フラグが全て設定されていないと判定した場合（ステップＳ１２３：Ｎｏ）、処理はステップＳ１２１に戻り、それ以降の処理が繰り返される。一方、差分情報Ｌｎの送信済フラグが全て設定されたと判定した場合（ステップＳ１２３：Ｙｅｓ）、更新部４１は、差分情報Ｌｎを削除する（ステップＳ１２４）。ステップＳ１２４の処理の後、処理はステップＳ１２１に戻り、それ以降の処理が繰り返される。
【０１０３】
これにより、全てのスレーブサーバ１２への送信が完了した差分情報は自動的に削除されるので、メモリ２２を効率的に利用することができる。
【０１０４】
＜第２実施形態＞
次に、本発明の第２実施形態を、図１５乃至図１７を参照して説明する。第２実施形態のマスターサーバ２１１は、１つの通信部２３を備え、複数のスレーブサーバ１２のそれぞれへ、同じタイミングで差分情報をマルチキャスト転送する点が、上記第１実施形態のマスターサーバ１１と異なる。なお、第２実施形態のマスターサーバ２１１において、第１実施形態のマスターサーバ１１と対応する要素には同じ符号が付されている。図１５は、マスターサーバ２１１の構成を説明するための図である。図１６と図１７は、マスターサーバ２１１の動作を説明するための図である。
【０１０５】
［構成］
まず、図１５を参照して、マスターサーバ２１１の構成について説明する。マスターサーバ２１１（情報処理装置）は、演算部２２１と、メモリ２２２と、通信部２３と、入出力部２４と、記憶部２５と、を備えている。
【０１０６】
演算部２２１は、取得部４２と、記憶制御部４４と、差分情報送信時間算出部４５と、差分情報分割部４６と、をスレーブサーバ１２の数に関わらず１つ有する点が演算部２１と異なり、他の構成は演算部２１と同様である。また、メモリ２２２は、負荷情報格納領域６２と、転送時間格納領域６３と、差分情報送信時間格納領域６４と、分割差分情報格納領域６５と、をスレーブサーバ１２の数に関わらず１つ有する点がメモリ２２と異なり、他の構成はメモリ２２と同様である。
【０１０７】
通信部２３は、複数の相手を指定して同じデータを送信するマルチキャスト転送を用いて、複数のスレーブサーバ１２のそれぞれへ差分情報を送信する。通信部２３は、マルチキャストにて複数のスレーブサーバ１２へ一度に差分情報を送信するので、通信路１３上に送信するデータ量を低減することができ、ネットワーク帯域を有効に活用することができる。
【０１０８】
なお、複数のスレーブサーバ１２へ一度に差分情報を送信するので、更新部４１が、差分情報格納領域６１に送信管理テーブル８１（図４）を生成し、送信済フラグを設定する処理は省略される。
【０１０９】
また、通信部２３がスレーブサーバ１２へ負荷情報要求を送信し、スレーブサーバ１２から負荷情報を受信した後、取得部４２は、負荷情報格納領域６２から負荷情報を取得する。続いて、各スレーブサーバ１２の通信を制御する各通信制御部（転送時間算出部４３）は、通信部２３が受信した負荷情報に示される負荷の値（例えばCPUの使用率）が、取得部４２が取得した負荷情報に示される負荷の値より大きいか否かを判定する。そして、受信した負荷情報に示される負荷の値が、取得した負荷情報に示される負荷の値より大きい場合に、記憶制御部４４は、受信した負荷情報を負荷情報格納領域６２に記憶する。すなわち、記憶制御部４４は、負荷情報格納領域６２に記憶された負荷情報を更新する。
【０１１０】
さらに、取得部４２は、転送時間格納領域６３から転送時間を取得する。そして、転送時間算出部４３は、転送時間を算出した後に、算出した転送時間が取得した転送時間より大きいか否かを判定する。算出した転送時間が取得した転送時間より大きい場合に、記憶制御部４４は、算出した転送時間を転送時間格納領域６３に記憶する。
【０１１１】
このように、負荷の値が最も大きいスレーブサーバ１２の負荷情報と、スレーブサーバ１２との転送時間が最も大きい転送時間と、をそれぞれ記憶することにより、マスターサーバ２１１は、複数のスレーブサーバ１２の全てに差分情報が送信されてから、次の差分情報をスレーブサーバ１２へ送信することができる。
【０１１２】
［動作］
次に、図１６と図１７を参照して、マスターサーバ２１１の動作について説明する。図１６は、転送時間算出処理を説明するフローチャートである。図１７は、差分情報送信処理を説明するフローチャートである。
【０１１３】
まず、図１６を参照して、転送時間算出処理について説明する。図１６の転送時間算出処理は、任意のタイミング（例えば定期的）に実行される。
【０１１４】
まず、マスターサーバ２１１の取得部４２は、通信先情報を取得する（ステップＳ２０１）。次に、マスターサーバ２１１の通信部２３は、ステップＳ２０１の処理にて取得した通信先情報に含まれる通信路毎（例えば通信路１３ａ，１３ｂ）にスレーブサーバ１２へ負荷情報要求を送信する（ステップＳ２０２）。
【０１１５】
続いて、マスターサーバ２１１の取得部４２は、通信路毎に負荷情報要求を送信した時刻を表す送信時刻を取得する（ステップＳ２０３）。マスターサーバ２１１の通信部２３により負荷情報要求がスレーブサーバ１２へ送信されると（ステップＳ２０２の処理を実行した後）、スレーブサーバ１２は、負荷情報送信処理を実行する。負荷情報送信処理は、図１０を参照して上述したので、簡単に説明する。
【０１１６】
まず、スレーブサーバ１２の通信部１０３は、マスターサーバ２１１から送信された負荷情報要求を受信する（ステップＳ４１）。続いて、スレーブサーバ１２の負荷情報取得部１２１は、負荷情報を取得する（ステップＳ４２）。そして、スレーブサーバ１２の通信部１０３は、負荷情報要求を受信した通信路を介して、負荷情報をマスターサーバ２１１へ送信する（ステップＳ４３）。ステップＳ４３の処理の後、図１０の負荷情報送信処理は終了し、処理は図１６のステップＳ２０４に進む。
【０１１７】
図１６のステップＳ２０４において、マスターサーバ２１１の通信部２３は、通信路毎に、図１０のステップＳ４３の処理にて送信された負荷情報を受信する（ステップＳ２０４）。続いて、マスターサーバ２１１の取得部４２は、負荷情報格納領域６２に記憶された負荷情報を取得する（ステップＳ２０５）。なお、負荷情報格納領域６２にまだ負荷情報が記憶されていない場合、ステップＳ２０５，Ｓ２０６の処理を実行せずに、ステップＳ２０７の処理を実行する。
【０１１８】
次に、マスターサーバ２１１の転送時間算出部４３（通信制御部）は、ステップＳ２０４の処理にて受信した負荷情報に示される負荷の値（大きさ）が、ステップＳ２０５の処理にて取得した、記憶された負荷情報に示される負荷の値より大きいか否かを判定する（ステップＳ２０６）。受信した負荷の値が、記憶された負荷の値より大きいと判定した場合（ステップＳ２０６：Ｙｅｓ）、記憶制御部４４は、受信した負荷情報を負荷情報格納領域６２に記憶する（ステップＳ２０７）。
【０１１９】
一方、受信した負荷の値が、記憶された負荷の値より大きくない（同じまたは小さい）と判定した場合（ステップＳ２０６：Ｎｏ）、ステップＳ２０７の処理は実行せずに、処理はステップＳ２０８に進む。
【０１２０】
そして、マスターサーバ２１１の取得部４２は、ステップＳ２０４の処理にて負荷情報を受信した時刻を表す受信時刻を通信路毎に取得する（ステップＳ２０８）。続いて、マスターサーバ２１１の転送時間算出部４３は、ステップＳ２０３の処理にて取得した送信時刻と、ステップＳ２０８の処理にて取得した通信路毎の受信時刻と、ステップＳ２０４の処理にて受信した負荷情報のサイズと、に基づいて、通信路毎に転送時間を算出する（ステップＳ２０９）。転送時間の算出方法は、式（１），（２）を参照して上述したので、具体的な説明は省略する。
【０１２１】
続いて、マスターサーバ２１１の取得部４２は、転送時間格納領域６３に記憶された、通信路毎の転送時間を取得する（ステップＳ２１０）。なお、転送時間格納領域６３にまだ転送時間が記憶されていない場合、ステップＳ２１１，Ｓ２１２の処理を実行せずに、転送時間算出処理は終了する。
【０１２２】
次に、マスターサーバ２１１の転送時間算出部４３は、ステップＳ２０９の処理にて算出した転送時間が、ステップＳ２１０の処理にて取得した、記憶された転送時間より大きいか否かを判定する（ステップＳ２１１）。算出した転送時間が、記憶された転送時間より大きいと判定した場合（ステップＳ２１１：Ｙｅｓ）、記憶制御部４４は、算出した通信路毎の転送時間を転送時間格納領域６３に記憶する（ステップＳ２１２）。ステップＳ２１２の処理の後、転送時間算出処理は終了する。
【０１２３】
このように、マスターサーバ２１１は、負荷の値が最も大きい負荷情報と、スレーブサーバ１２との転送時間が最も大きい転送時間と、をそれぞれ記憶する。これにより、マスターサーバ２１１は、複数のスレーブサーバ１２の全てに差分情報が送信されてから、次の差分情報をスレーブサーバ１２へ送信することができる。
【０１２４】
図１６の転送時間算出処理の後、マスターサーバ２１１は、マスターサーバ１１と同様に図１１の差分情報送信時間算出処理が実行し、差分情報送信時間を差分情報送信時間格納領域６４に記憶する。また、マスターサーバ２１１は、図１２の差分情報分割処理を実行し、差分情報を分割する。
【０１２５】
差分情報が分割された後、マスターサーバ２１１は、図１７の差分情報送信処理を開始する。まず、取得部４２は、図１２のステップＳ８４（またはステップＳ８５）の処理にて分割し、各通信路に対応付けた差分情報Ｌｎを取得する（ステップＳ２２１）。なお、取得部４２は、分割差分情報格納領域６５から差分情報Ｌｎを取得してもよい。
【０１２６】
そして、通信部２３は、ステップＳ１０１の処理にて取得した差分情報Ｌｎを送信する（ステップＳ２２２）。具体的には、通信部２３は、マルチキャストにて、差分情報Ｌｎを送信する全てのスレーブサーバ１２へ同じタイミングで送信する。続いて、取得部４２は、差分情報送信時間格納領域６４から差分情報Ｌｎの差分情報送信時間を取得する（ステップＳ２２３）。
【０１２７】
次に、更新部４１は、差分情報Ｌｎを削除する（ステップＳ２２４）。すなわち、更新部４１は、差分情報格納領域６１と、差分情報送信時間格納領域６４と、分割差分情報格納領域６５と、のそれぞれに記憶された差分情報Ｌｎに対応する情報を削除する。
【０１２８】
次に、取得部４２は、次に送信する分割した差分情報Ｌｎを取得する（ステップＳ２２５）。ステップＳ２２５の処理は、上述したステップＳ２２１の処理と同様の処理であり、取得部４２は、ステップＳ２２１の処理にて取得した差分情報の次に分割された差分情報Ｌｎを取得する。
【０１２９】
そして、通信部２３は、ステップＳ２２２の処理にて差分情報Ｌｎを送信してから、ステップＳ２２３にて取得した差分情報送信時間だけ待機する（ステップＳ２２６）。ステップＳ２２６の処理の後、処理はステップＳ２２２に戻り、それ以降の処理が繰り返される。具体的には、通信部２３は、差分情報Ｌｎを送信してから差分情報送信時間だけ待機した後に、ステップＳ２２５の処理にて取得した次に送信する差分情報Ｌｎを送信する。
【０１３０】
このように、マルチキャストにて複数のスレーブサーバ１２へ一度に差分情報を送信するので、通信路１３上に送信するデータ量を低減することができ、ネットワーク帯域を有効に活用することができる。
【０１３１】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明における情報処理装置等の構成の概略を説明する。但し、本発明は、以下の構成に限定されない。
【０１３２】
（付記１）
更新情報を取得して、記憶部に予め記憶されたデータを更新するとともに、更新前の前記データと更新後のデータとの差分情報を取得する更新手段と、
更新前の前記データを記憶する他の情報処理装置と通信する複数の通信路のそれぞれの通信状態を取得する通信状態取得手段と、
前記通信状態取得手段にて取得した複数の通信路のそれぞれの前記通信状態に基づいて、前記更新手段にて取得した前記差分情報を、前記各通信路に対応付けて分割する差分情報分割手段と、
前記差分情報分割手段にて分割した前記差分情報のそれぞれを、分割した前記差分情報のそれぞれに対応する前記各通信路を介して、前記他の情報処理装置へ送信する送信手段と、
を備える情報処理装置。
【０１３３】
これによれば、通信路毎の通信状態を取得して、取得した通信状態に基づいて差分情報を、各通信路に対応付けて分割して、複数の通信路のそれぞれを介して他の情報処理装置へ送信するので、複数の通信路を有効に利用し、差分情報の転送時間を短くすることができる。
【０１３４】
（付記２）
付記１に記載の情報処理装置であって、
前記通信状態取得手段は、前記通信状態として、複数の前記通信路のそれぞれにおいて所定の大きさの情報を転送する時の転送時間を算出し、
前記差分情報分割手段は、前記通信状態取得手段にて算出した前記各通信路の前記転送時間の比に基づいて、前記更新手段にて取得した前記差分情報を、前記各通信路に対応づけて分割する、
情報処理装置。
【０１３５】
これによれば、複数の通信路のそれぞれにおいて所定の大きさの情報を転送する時の転送時間を算出し、算出した各通信路の転送時間の比に基づいて差分情報を分割する。従って、各通信路の転送時間に応じて適切な大きさに分割した差分情報を送信するので、複数の通信路を効率的に利用することができる。
【０１３６】
（付記３）
付記２に記載の情報処理装置であって、
前記差分情報分割手段は、前記通信状態取得手段にて算出した前記各通信路の前記転送時間の比に基づいて、前記転送時間が大きくなるほど前記差分情報の大きさが小さくなり、前記転送時間が小さくなるほど前記差分情報の大きさが大きくなるように、前記差分情報を前記各通信路に対応づけて分割する、
情報処理装置。
【０１３７】
これによれば、転送時間が大きくなるほど差分情報の大きさが小さくなり、転送時間が小さくなるほど差分情報の大きさが大きくなるように差分情報を分割するので、送信能力が高い通信路ほど大きい差分情報を送信でき、複数の通信路を効率的に利用することができる。
【０１３８】
（付記４）
付記３に記載の情報処理装置であって、
前記差分情報分割手段は、転送時間がｎ番目（ｎは自然数）に短い一方の通信路と、転送時間がｎ番目に長い他方の通信路とをそれぞれ対応付けて、前記他方の通信路の転送時間を、複数の通信路の転送時間の総和で割り、その値に差分情報の大きさを掛けることにより前記一方の通信路にて送信する前記差分情報の大きさを算出するとともに、前記一方の通信路の転送時間を、複数の通信路の転送時間の総和で割り、その値に差分情報の大きさを掛けることにより前記他方の通信路にて送信する前記差分情報の大きさを算出し、算出した前記各通信路にて送信する前記差分情報の大きさのそれぞれに前記差分情報を分割する、
情報処理装置。
【０１３９】
これによれば、複数の通信路のそれぞれから２つの通信路を対応付けて、他方の通信路の転送時間を複数の通信路の転送時間の総和で割り、その値に差分情報の大きさを掛けることにより一方の通信路にて送信する差分情報の大きさを算出し、一方の通信路の転送時間を複数の通信路の転送時間の総和で割り、その値に差分情報の大きさを掛けることにより他方の通信路にて送信する差分情報の大きさを算出する。従って、通信路の転送時間に応じた適切な大きさの差分情報を、当該通信路を介して送信することができる。
【０１４０】
（付記５）
付記２乃至４に記載の情報処理装置であって、
前記通信状態取得手段にて算出した前記各通信路の前記転送時間に基づいて、複数の前記通信路全体の通信速度を算出し、算出した前記通信速度と、前記送信手段にて送信した前記差分情報の大きさと、に基づいて差分情報送信時間を算出する差分情報送信時間算出手段、を備え、
前記送信手段は、分割した前記差分情報のそれぞれを送信してから前記差分情報送信時間算出手段にて算出した前記差分情報送信時間だけ待機した後に、次に送信する分割した前記差分情報のそれぞれを、分割した前記差分情報のそれぞれに対応する前記各通信路を介して、前記他の情報処理装置へ送信する、
情報処理装置。
【０１４１】
これによれば、前回送信した全ての差分情報が他の情報処理装置に到達し、各通信路が空いたときに次の差分情報を送信するので、各通信路を有効に利用することができる。
【０１４２】
（付記６）
付記５に記載の情報処理装置であって、
前記通信状態取得手段は、前記他の情報処理装置の負荷の大きさを表す負荷情報を取得し、
前記差分情報送信時間算出手段は、前記通信状態取得手段にて取得した前記負荷情報にて示される負荷の大きさが予め設定された負荷の大きさよりも大きい場合に、算出した前記差分情報送信時間に予め設定された時間を加算する、
情報処理装置。
【０１４３】
これによれば、例えば他の情報処理装置の負荷が大きいほど、差分情報送信時間を多くするので、他の情報処理装置へ過大な負荷をかけることなく差分情報を送信することができる。
【０１４４】
（付記７）
情報処理装置にて、
更新情報を取得して、記憶部に予め記憶されたデータを更新するとともに、更新前の前記データと更新後のデータとの差分情報を取得する更新手段と、
更新前の前記データを記憶する他の情報処理装置と通信する複数の通信路のそれぞれの通信状態を取得する通信状態取得手段と、
前記通信状態取得手段にて取得した複数の通信路のそれぞれの前記通信状態に基づいて、前記更新手段にて取得した前記差分情報を、前記各通信路に対応付けて分割する差分情報分割手段と、
前記差分情報分割手段にて分割した前記差分情報のそれぞれを、分割した前記差分情報のそれぞれに対応する前記各通信路を介して、前記他の情報処理装置へ送信する送信手段と、
を実現させるためのプログラム。
【０１４５】
（付記８）
付記７に記載のプログラムであって、
前記通信状態取得手段は、前記通信状態として、複数の前記通信路のそれぞれにて所定の大きさの情報を転送する時の転送時間を算出し、
前記差分情報分割手段は、前記通信状態取得手段にて算出した前記各通信路の前記転送時間の比に基づいて、前記更新手段にて取得した前記差分情報を、前記各通信路に対応づけて分割する、
プログラム。
【０１４６】
（付記９）
更新情報を取得して、記憶部に予め記憶されたデータを更新するとともに、更新前の前記データと更新後のデータとの差分情報を取得し、
更新前の前記データを記憶する他の情報処理装置と通信する複数の通信路のそれぞれの通信状態を取得し、
取得した複数の通信路のそれぞれの前記通信状態に基づいて、取得した前記差分情報を分割し、
分割した前記差分情報のそれぞれを、前記各通信路に対応付けて分割した前記差分情報のそれぞれに対応する前記各通信路を介して、前記他の情報処理装置へ送信する、
情報処理方法。
【０１４７】
（付記１０）
付記９に記載の情報処理方法であって、
前記通信状態として、複数の前記通信路のそれぞれにて所定の大きさの情報を転送する時の転送時間を算出し、
算出した前記各通信路の前記転送時間の比に基づいて、取得した前記差分情報を、前記各通信路に対応づけて分割する、
情報処理方法。
【０１４８】
なお、上記各実施形態及び付記において記載したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されている。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
【０１４９】
以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。
【０１５０】
なお、本発明は、日本国にて２０１２年１１月２日に特許出願された特願２０１２−２４２４４１の特許出願に基づく優先権主張の利益を享受するものであり、当該特許出願に記載された内容は、全て本明細書に含まれるものとする、
【符号の説明】
【０１５１】
１  通信システム
１１  マスターサーバ
１２  スレーブサーバ
１３  通信路
２１  演算部
２２  メモリ
２３  通信部
２４  入出力部
２５  記憶部
４１  更新部
４２  取得部
４３  転送時間算出部
４４  記憶制御部
４５  差分情報送信時間算出部
４６  差分情報分割部
５１  マスターデータ
６１  差分情報格納領域
６２  負荷情報格納領域
６３  転送時間格納領域
６４  差分情報送信時間格納領域
６５  分割差分情報格納領域
１０１  演算部
１０２  メモリ
１０３  通信部
１２１  負荷情報取得部
１２２  複製データ更新部
１３１  複製データ
【図１】
2014068877.tif 000003
【図２】
2014068877.tif 000004
【図３】
2014068877.tif 000005
【図４】
2014068877.tif 000006
【図５】
2014068877.tif 000007
【図６】
2014068877.tif 000008
【図７】
2014068877.tif 000009
【図８】
2014068877.tif 000010
【図９】
2014068877.tif 000011
【図１０】
2014068877.tif 000012
【図１１】
2014068877.tif 000013
【図１２】
2014068877.tif 000014
【図１３】
2014068877.tif 000015
【図１４】
2014068877.tif 000016
【図１５】
2014068877.tif 000017
【図１６】
2014068877.tif 000018
【図１７】
2014068877.tif 000019
【国際調査報告】
2014068877.tif 000020
2014068877.tif 000021