(57)【要約】【課題】更新期限を徒過するリスクを低減すること。【解決手段】特定のサーバで実行されたデータ更新に関する更新情報を受け付け、受け付けた更新情報に基づき、データ更新を実行するデータ更新プログラムが提供される。該データ更新プログラムは、データ更新の対象データの数１２ａを特定のサーバから受け付け、データ更新の所要時間と、データ更新の対象データの数１２ａとの関係を示す関係情報２１ｃに基づき、受け付けた数１２ａの対象データのデータ更新の所要時間を特定し、対象データのデータ更新期限２１ｄを、該データ更新期限からデータ更新の所要時間の経過後の時刻２１ｅに更新する処理をコンピュータに実行させる。【選択図】図１
2018128860.tif 000002
【特許請求の範囲】
【請求項１】
特定のサーバで実行されたデータ更新に関する更新情報を受け付け、受け付けた前記更新情報に基づき、データ更新を実行するデータ更新プログラムにおいて、
データ更新の対象データの数を前記特定のサーバから受け付け、
データ更新の所要時間と、データ更新の対象データの数との関係を示す関係情報に基づき、受け付けた前記数の対象データのデータ更新の所要時間を特定し、
前記対象データのデータ更新期限を、該データ更新期限から前記データ更新の所要時間の経過後の時刻に更新する、
処理をコンピュータに実行させることを特徴とする、データ更新プログラム。
【請求項２】
前記特定のサーバにおける前記データ更新の時点を特定し、特定された前記データ更新の時点を基準に前記データ更新期限を延長する、
処理をコンピュータに実行させることを特徴とする、請求項１に記載のデータ更新プログラム。
【請求項３】
特定のサーバで実行されたデータ更新に関する更新情報を受け付け、受け付けた前記更新情報に基づき、データ更新を実行する情報処理装置において、
データ更新の所要時間と、データ更新の対象データの数との関係を示す関係情報を記憶する記憶部と、
データ更新の対象データの数を前記特定のサーバから受け付け、前記関係情報に基づき、受け付けた前記数の対象データのデータ更新の所要時間を特定し、前記対象データのデータ更新期限を、該データ更新期限から前記データ更新の所要時間の経過後の時刻に更新する演算部と、
を有することを特徴とする、情報処理装置。
【請求項４】
特定のサーバで実行されたデータ更新に関する更新情報を受け付け、受け付けた前記更新情報に基づき、データ更新を実行するデータ更新方法において、
コンピュータが、
データ更新の対象データの数を前記特定のサーバから受け付け、
データ更新の所要時間と、データ更新の対象データの数との関係を示す関係情報に基づき、受け付けた前記数の対象データのデータ更新の所要時間を特定し、
前記対象データのデータ更新期限を、該データ更新期限から前記データ更新の所要時間の経過後の時刻に更新する、
ことを特徴とする、データ更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ更新プログラム、情報処理装置、及びデータ更新方法に関する。
【背景技術】
【０００２】
データセンタなどの大規模なシステムでは、災害対策や性能向上の観点から、例えば、地理的な離れた複数の拠点にサーバ装置を設置し、複数の拠点にあるサーバ装置が連携してサービスを提供する仕組みが採用されている。このように、複数の拠点にサーバ装置が分散配置されるシステムの場合、ユーザ情報などの拠点間で共通の情報はサーバ装置間で同期される。
【０００３】
同期の方法としては、例えば、マスタとなるサーバ装置（マスタ装置）を設定し、共通の情報に対する変更はマスタ装置が受け付け、マスタ装置がスレーブとなるサーバ装置（スレーブ装置）に変更内容を通知するマスタ−スレーブ方式がある。マスタ−スレーブ方式は、個々のサーバ装置で変更を受け付けて各サーバ装置間で相互に変更内容を通知し合う方式に比べ、変更内容を通知する際の通信負荷を抑えることができる。
【０００４】
なお、同期技術に関し、ファイルの更新履歴に基づいてファイルの更新間隔やブランク期間を計算し、その更新間隔やブランク期間に基づいてファイルの同期時刻を決定するファイル管理システムが提案されている。また、複数のサイトにそれぞれストレージを配置し、ストレージ間でデータを同期するコンピュータシステムが提案されている。また、サイト間で通信不能な状態が検出された場合に、一方のサイトにあるサーバへアクセスするクライアントに対してＤＮＳ（Domain Name System）情報の有効期限を短縮するように指示する方法が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２９３２１８号公報
【特許文献２】特開２００５−２５０６２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したマスタ−スレーブ方式を採用することで同期時間を短縮することができる。しかし、マスタ−スレーブ方式を採用しても、共通の情報に対する大量の変更指示が集中した場合や、通信状況の悪化などに起因して同期の完了までに長い時間がかかるリスクがある。例えば、パスワードやライセンス情報など、更新期限がある情報が変更される場合、マスタ装置で期限内に変更が成功しているのに、同期先のスレーブ装置で期限切れによる変更の失敗が生じるリスクがある。
【０００７】
１つの側面によれば、本発明の目的は、更新期限を徒過するリスクを低減することが可能なデータ更新プログラム、情報処理装置、及びデータ更新方法を提供することにある。
【課題を解決するための手段】
【０００８】
一態様によれば、特定のサーバで実行されたデータ更新に関する更新情報を受け付け、受け付けた更新情報に基づき、データ更新を実行するデータ更新プログラムが提供される。該データ更新プログラムは、データ更新の対象データの数を特定のサーバから受け付け、データ更新の所要時間と、データ更新の対象データの数との関係を示す関係情報に基づき、受け付けた数の対象データのデータ更新の所要時間を特定し、対象データのデータ更新期限を、該データ更新期限からデータ更新の所要時間の経過後の時刻に更新する処理をコンピュータに実行させる。
【発明の効果】
【０００９】
更新期限を徒過するリスクを低減することができる。
【図面の簡単な説明】
【００１０】
【図１】第１実施形態に係る情報処理装置の一例を示した図である。
【図２】第２実施形態に係る情報処理システムの一例を示した図である。
【図３】パスワードの更新に関する処理の流れを示したシーケンス図である。
【図４】第２実施形態に係るマスタ装置が有する機能を実現可能なハードウェアの一例を示したブロック図である。
【図５】第２実施形態に係るマスタ装置が有する機能の一例を示したブロック図である。
【図６】第２実施形態に係るマスタデータ（マスタ装置が管理するユーザデータ）の一例を示した図である。
【図７】第２実施形態に係る差分データの一例を示した図である。
【図８】第２実施形態に係るスレーブ装置が有する機能の一例を示したブロック図である。
【図９】第２実施形態に係るスレーブデータ（スレーブ装置が管理するユーザデータ）の一例を示した図である。
【図１０】第２実施形態に係る未同期情報の一例を示した図である。
【図１１】第２実施形態に係る同期時間情報の一例を示した図である。
【図１２】第２実施形態に係る残数管理情報の一例を示した図である。
【図１３】第２実施形態に係る同期時間情報の更新について説明するための図である。
【図１４】第２実施形態に係る残数管理情報の更新について説明するための図である。
【図１５】第２実施形態に係る期限の延長及び更新について説明するための図である。
【図１６】第２実施形態に係る最大所要時間の推定について説明するための図である。
【図１７】第２実施形態に係る残数通知及び更新後期限の調整について説明するための図である。
【図１８】第２実施形態に係る情報処理システムにおけるデータ更新の流れについて説明するためのシーケンス図である。
【図１９】第２実施形態に係るマスタ装置が実行する処理の流れを示した第１のフロー図である。
【図２０】第２実施形態に係るマスタ装置が実行する処理の流れを示した第２のフロー図である。
【図２１】第２実施形態に係るスレーブ装置が実行する処理のうち残数管理情報の更新及び同期時間情報の更新に関する処理の流れを示したフロー図である。
【図２２】第２実施形態に係るスレーブ装置が実行する処理のうち差分データによる同期及び有効期限の調整に関する処理の流れを示した第１のフロー図である。
【図２３】第２実施形態に係るスレーブ装置が実行する処理のうち差分データによる同期及び有効期限の調整に関する処理の流れを示した第２のフロー図である。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照しながら、本発明の実施形態について説明する。なお、本明細書及び図面において実質的に同一の機能を有する要素については、同一の符号を付することにより重複説明を省略する場合がある。
【００１２】
＜１．第１実施形態＞
図１を参照しながら、第１実施形態について説明する。第１実施形態は、特定のサーバ（情報処理装置）で実行されたデータ更新に関する更新情報を受け付け、受け付けた更新情報に基づき、データ更新を実行する方法に関する。図１は、第１実施形態に係る情報処理装置の一例を示した図である。なお、図１に例示した情報処理装置１０は、特定のサーバの一例である。また、情報処理装置２０は、第１実施形態に係る情報処理装置の一例である。
【００１３】
図１に示すように、情報処理装置１０は、記憶部１１及び演算部１２を有する。情報処理装置２０は、記憶部２１及び演算部２２を有する。情報処理装置１０、２０は、ネットワークＮＷを介して接続されている。ネットワークＮＷは、例えば、ＬＡＮ（Local Area Network）やＷＡＮ（Wide Area Network）などの通信回線網である。
【００１４】
記憶部１１、２１は、ＲＡＭ（Random Access Memory）などの揮発性記憶装置、或いは、ＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの不揮発性記憶装置である。演算部１２、２２は、ＣＰＵ（Central Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）などのプロセッサである。演算部１２は、例えば、記憶部１１又は他のメモリに記憶されたプログラムを実行する。演算部２２は、例えば、記憶部２１又は他のメモリに記憶されたプログラムを実行する。
【００１５】
演算部１２は、対象データ１１ａを対象データ１１ｂに更新する。例えば、演算部１２は、対象データ１１ａのうち「ＢＢＡ」を「ＡＣＡ」に、「ＡＢＢ」を「ＡＢＣ」に変更する旨の指示を受け付けた場合、受け付けた指示に応じて、図１に示すように、対象データ１１ａを対象データ１１ｂに更新する。また、対象データ１１ａにはデータ更新期限が設定されている。
【００１６】
対象データ１１ａを対象データ１１ｂに更新した演算部１２は、更新した対象データの数１２ａ（Ｄａｔａ数）を情報処理装置２０に通知する。また、演算部１２は、更新内容の通知１２ｂを情報処理装置２０に送信する。図１の例では、「ＢＢＡ」、「ＡＢＢ」が更新されているため、Ｄａｔａ数は２である。
【００１７】
演算部２２は、対象データ２１ａのデータ更新期限を更新する。記憶部２１には、データ更新の所要時間と、データ更新の対象データの数との関係を示す関係情報２１ｃが格納されている。演算部２２は、関係情報２１ｃに基づき、情報処理装置１０から通知されるデータ数に対応する対象データ２１ａのデータ更新にかかる時間（所要時間）を特定する。また、演算部２２は、対象データ２１ａのデータ更新期限２１ｄを、該データ更新期限から、特定された所要時間の経過後の時刻（データ更新期限２１ｅ）に更新する。
【００１８】
演算部２２は、データ更新期限２１ｅと現在時刻とを比較して更新期限内であるかを確認する。更新期限内である場合、演算部２２は、情報処理装置１０から受け付けた更新内容の通知１２ｂに基づいて、記憶部２１にある対象データ２１ａを対象データ２１ｂに更新する。
【００１９】
上記のように、データ更新期限を一時的に延長することで、データ更新の所要時間に更新期限が切れるリスクを低減することができる。
以上、第１実施形態について説明した。
【００２０】
＜２．第２実施形態＞
次に、第２実施形態について説明する。第２実施形態は、情報処理装置間で更新期限のある情報を同期する際に、同期元の情報処理装置で更新が成功しているのに同期先の情報処理装置で更新が失敗するリスクを低減させる仕組みに関する。以下、同期元の情報処理装置をマスタ装置、同期先の情報処理装置をスレーブ装置と呼ぶ場合がある。
【００２１】
［２−１．情報処理システム］
図２を参照しながら、第２実施形態に係る情報処理システムについて説明する。図２は、第２実施形態に係る情報処理システムの一例を示した図である。なお、説明の都合上、同期対象となる情報の一例としてユーザデータを挙げ、マスタ装置とスレーブ装置との間でユーザデータを同期する方法を例に説明を進める。
【００２２】
図２に示すように、上記の情報処理システムには、マスタ装置１００、端末装置１００ａ、スレーブ装置２０１、２０２が含まれる。端末装置１００ａは、マスタ装置１００の操作に用いる操作端末である。マスタ装置１００と、スレーブ装置２０１、２０２とはネットワークＮＷを介して接続される。ネットワークＮＷは、例えば、ＬＡＮやＷＡＮなどの通信回線網である。マスタ装置１００、端末装置１００ａ、スレーブ装置２０１、２０２は、例えば、パーソナルコンピュータやサーバ装置などのコンピュータである。
【００２３】
マスタ装置１００は、ユーザデータを保有する。例えば、端末装置１００ａを介してユーザデータの内容を変更する旨の指示（変更指示）を受けたマスタ装置１００は、その指示に応じてユーザデータの内容を変更する。また、マスタ装置１００は、ユーザデータに対する変更指示を集約した差分データを生成する。ユーザデータを同期するタイミングになると、マスタ装置１００は、差分データをスレーブ装置２０１、２０２に送信し、差分データを利用してスレーブ装置２０１、２０２との間でユーザデータの同期を図る。
【００２４】
図２に例示したユーザデータは、ユーザ識別情報（User ID）、ユーザ名（Name）、ユーザのパスワード（Password）、ユーザの電子メールアドレス（Email）、パスワードの有効期限（Pwd有効期限）を含む。以下、パスワードをＰｗｄと表記する場合がある。差分データは、例えば、同期先となるスレーブ装置の識別情報（同期先）、ユーザデータの更新日時、変更指示の形式（指示形式）、変更指示の内容（指示内容）などを含む。
【００２５】
差分データのうち、同期先がスレーブ装置２０１のレコード（指示）は、スレーブ装置２０１に送信される。この指示を受信したスレーブ装置２０１は、受信した指示の内容に従ってスレーブ装置２０１が管理するユーザデータの内容を変更し、同期の完了をマスタ装置１００に通知する。この通知を受けたマスタ装置１００は、同期が完了した指示を差分データから削除する。同期先がスレーブ装置２０２のレコード（指示）についても同様である。このような仕組みでユーザデータの同期が実施される。
【００２６】
ここで、図３を参照しながら、有効期限があるパスワードの更新について、さらに説明する。図３は、パスワードの更新に関する処理の流れを示したシーケンス図である。
（Ｓ１０１、Ｓ１０２）スレーブ装置２０１、２０２のユーザに関するパスワードを変更する旨（Ｐｗｄ変更）の指示がマスタ装置１００に入力された場合、マスタ装置１００は、その指示に応じて自らが管理するユーザデータの内容を更新する。なお、図３の例では、Ｐｗｄ有効期限内にＰｗｄ変更の指示がマスタ装置１００に入力され、その指示に応じてマスタ装置１００のユーザデータにあるパスワードの変更が成功（ＯＫ）している。
【００２７】
（Ｓ１０３、Ｓ１０６、Ｓ１０９）パスワードを変更したマスタ装置１００は、Ｐｗｄ変更の指示を含む差分データを生成する。このとき、マスタ装置１００は、同期先をスレーブ装置２０１とするＰｗｄ変更の指示と、同期先をスレーブ装置２０２とするＰｗｄ変更の指示とを分けて差分データに含める。そして、マスタ装置１００は、同期先をスレーブ装置２０１とするＰｗｄ変更の指示を含む差分データをスレーブ装置２０１に送信する。また、マスタ装置１００は、同期先をスレーブ装置２０２とするＰｗｄ変更の指示を含む差分データをスレーブ装置２０２に送信する。
【００２８】
（Ｓ１０４、Ｓ１０７）Ｐｗｄ変更の指示を含む差分データをマスタ装置１００から受信したスレーブ装置２０１は、受信した差分データに基づいてユーザデータを更新する。このとき、スレーブ装置２０１は、変更されるパスワードの有効期限を確認し、現在時点が有効期限内である場合、該当するパスワードを変更してユーザデータを更新する。図３の例では、Ｓ１０４、Ｓ１０７の処理が実行される時点がパスワードの有効期限内であるため、パスワードの変更が成功（ＯＫ）している。
【００２９】
（Ｓ１０５、Ｓ１０８）Ｐｗｄ変更の指示を含む差分データをマスタ装置１００から受信したスレーブ装置２０２は、受信した差分データに基づいてユーザデータを更新する。このとき、スレーブ装置２０２は、変更されるパスワードの有効期限を確認し、現在時点が有効期限内である場合、該当するパスワードを変更してユーザデータを更新する。図３の例では、Ｓ１０５、Ｓ１０８の処理が実行される時点がパスワードの有効期限内であるため、パスワードの変更が成功（ＯＫ）している。
【００３０】
（Ｓ１１０）差分データにＰｗｄ変更の指示が残っている場合、スレーブ装置２０１は、引き続きユーザデータの更新を継続する。図３の例では、Ｓ１１０の時点で該当するパスワードの有効期限が過ぎている。この場合、スレーブ装置２０１は、該当するパスワードを変更しない。つまり、パスワードの変更が失敗（ＮＧ）する。
【００３１】
（Ｓ１１１）差分データにＰｗｄ変更の指示が残っている場合、スレーブ装置２０２は、引き続きユーザデータの更新を継続する。図３の例では、Ｓ１１１の時点で該当するパスワードの有効期限が過ぎている。この場合、スレーブ装置２０２は、該当するパスワードを変更しない。つまり、パスワードの変更が失敗（ＮＧ）する。
【００３２】
（Ｓ１１２、Ｓ１１３）パスワードの有効期限が過ぎた後でマスタ装置１００から差分データがスレーブ装置２０１に到達することがありうる。この場合、パスワードの有効期限が切れているため、スレーブ装置２０１は、該当するパスワードを変更しない。つまり、パスワードの変更が失敗（ＮＧ）する。
【００３３】
上記のＳ１１０、Ｓ１１１、Ｓ１１３のように、マスタ装置１００におけるパスワードの変更が成功（ＯＫ）しているにもかかわらず、スレーブ装置２０１、２０２でパスワードの変更が失敗（ＮＧ）するリスクがある。Ｓ１１０、Ｓ１１１の場合は、スレーブ装置２０１、２０２における処理時間が変更失敗の主な要因であり、Ｓ１１２の場合は、差分データの送受信遅延が主な要因である。
【００３４】
第２実施形態に係る技術は、上記のような要因でパスワードの変更が失敗するリスクを抑制し、マスタ装置１００が有効期限内に受け付けたＰｗｄ変更の指示がスレーブ装置２０１、２０２でユーザデータに反映されるようにする仕組みを提供する。なお、ここではパスワードの変更を例に説明しているが、有効期限や更新期限などの時間的制約がある情報の更新に対して後述する第２実施形態の技術を広く適用することができる。
【００３５】
以上、情報処理システムについて説明した。
［２−２．ハードウェア］
次に、図４を参照しながら、マスタ装置１００のハードウェアについて説明する。図４は、第２実施形態に係るマスタ装置が有する機能を実現可能なハードウェアの一例を示したブロック図である。
【００３６】
マスタ装置１００が有する機能は、例えば、図４に示すハードウェア資源を用いて実現することが可能である。つまり、マスタ装置１００が有する機能は、コンピュータプログラムを用いて図４に示すハードウェアを制御することにより実現される。
【００３７】
図４に示すように、このハードウェアは、主に、ＣＰＵ９０２と、ＲＯＭ（Read Only Memory）９０４と、ＲＡＭ９０６と、ホストバス９０８と、ブリッジ９１０とを有する。さらに、このハードウェアは、外部バス９１２と、インターフェース９１４と、入力部９１６と、出力部９１８と、記憶部９２０と、ドライブ９２２と、接続ポート９２４と、通信部９２６とを有する。
【００３８】
ＣＰＵ９０２は、例えば、演算処理装置又は制御装置として機能し、ＲＯＭ９０４、ＲＡＭ９０６、記憶部９２０、又はリムーバブル記録媒体９２８に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ＲＯＭ９０４は、ＣＰＵ９０２に読み込まれるプログラムや演算に用いるデータなどを格納する記憶装置の一例である。ＲＡＭ９０６には、例えば、ＣＰＵ９０２に読み込まれるプログラムや、そのプログラムを実行する際に変化する各種パラメータなどが一時的又は永続的に格納される。
【００３９】
これらの要素は、例えば、高速なデータ伝送が可能なホストバス９０８を介して相互に接続される。一方、ホストバス９０８は、例えば、ブリッジ９１０を介して比較的データ伝送速度が低速な外部バス９１２に接続される。また、入力部９１６としては、例えば、マウス、キーボード、タッチパネル、タッチパッド、ボタン、スイッチ、及びレバーなどが用いられる。さらに、入力部９１６としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラが用いられることもある。
【００４０】
出力部９１８としては、例えば、ＣＲＴ（Cathode Ray Tube）、ＬＣＤ（Liquid Crystal Display）、ＰＤＰ（Plasma Display Panel）、又はＥＬＤ（Electro-Luminescence Display）などのディスプレイ装置が用いられる。また、出力部９１８として、スピーカやヘッドホンなどのオーディオ出力装置、又はプリンタなどが用いられることもある。つまり、出力部９１８は、情報を視覚的又は聴覚的に出力することが可能な装置である。
【００４１】
記憶部９２０は、各種のデータを格納するための装置である。記憶部９２０としては、例えば、ＨＤＤなどの磁気記憶デバイスが用いられる。また、記憶部９２０として、ＳＳＤ（Solid State Drive）やＲＡＭディスクなどの半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイスなどが用いられてもよい。
【００４２】
ドライブ９２２は、着脱可能な記録媒体であるリムーバブル記録媒体９２８に記録された情報を読み出し、又はリムーバブル記録媒体９２８に情報を書き込む装置である。リムーバブル記録媒体９２８としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどが用いられる。リムーバブル記録媒体９２８には、上述したコンピュータプログラムが格納されうる。
【００４３】
接続ポート９２４は、例えば、ＵＳＢ（Universal Serial Bus）ポート、ＩＥＥＥ１３９４ポート、ＳＣＳＩ（Small Computer System Interface）、ＲＳ−２３２Ｃポート、又は光オーディオ端子など、外部接続機器９３０を接続するためのポートである。外部接続機器９３０としては、例えば、プリンタなどが用いられる。
【００４４】
通信部９２６は、ネットワーク９３２（ＮＷ）に接続するための通信デバイスである。通信部９２６としては、例えば、有線又は無線ＬＡＮ用の通信回路、ＷＵＳＢ（Wireless USB）用の通信回路、光通信用の通信回路やルータ、ＡＤＳＬ（Asymmetric Digital Subscriber Line）用の通信回路やルータ、携帯電話ネットワーク用の通信回路などが用いられる。通信部９２６に接続されるネットワーク９３２は、有線又は無線により接続されたネットワークであり、例えば、インターネット、ＬＡＮ、放送網、衛星通信回線などを含む。
【００４５】
以上、マスタ装置１００のハードウェアについて説明した。なお、端末装置１００ａ、スレーブ装置２０１、２０２が有する機能も図４に示したハードウェアを利用して実現可能である。そのため、端末装置１００ａ、スレーブ装置２０１、２０２のハードウェアについては詳細な説明を省略する。
【００４６】
［２−３．装置の機能］
次に、マスタ装置１００及びスレーブ装置２０１、２０２の機能について説明する。
（マスタ装置）
図５を参照しながら、マスタ装置１００の機能について説明する。図５は、第２実施形態に係るマスタ装置が有する機能の一例を示したブロック図である。
【００４７】
図５に示すように、マスタ装置１００は、記憶部１０１、データ更新部１０２、及び差分管理部１０３を有する。なお、記憶部１０１の機能は、上述したＲＡＭ９０６や記憶部９２０などを用いて実現できる。データ更新部１０２、及び差分管理部１０３の機能は、上述したＣＰＵ９０２などを用いて実現できる。
【００４８】
記憶部１０１には、マスタデータ１０１ａ、及び差分データ１０１ｂが格納される。マスタデータ１０１ａは、マスタ装置１００が管理するユーザデータなどのデータである。マスタデータ１０１ａの少なくとも一部は、スレーブ装置２０１、２０２との間で実施される同期の対象となる。以下では、説明の都合上、有効期限が設定されているユーザデータを含むマスタデータ１０１ａを例に説明を進める。
【００４９】
マスタデータ１０１ａは、例えば、図６のような内容を有する。図６は、第２実施形態に係るマスタデータ（マスタ装置が管理するユーザデータ）の一例を示した図である。図６に例示したマスタデータ１０１ａは、ユーザを識別する識別情報（User ID）、ユーザ名（Name）、ユーザのパスワード（Password）、ユーザの電子メールアドレス（Email）、及びパスワードの有効期限（Pwd有効期限）を含む。なお、マスタデータ１０１ａには、ユーザが所属する組織の識別情報などの情報が含まれていてもよい。
【００５０】
差分データ１０１ｂは、マスタデータ１０１ａに対する変更の指示を含むデータである。差分データ１０１ｂは、例えば、図７のような内容を有する。図７は、第２実施形態に係る差分データの一例を示した図である。図７に例示した差分データ１０１ｂは、同期先となるスレーブ装置の識別情報（同期先）、変更の指示を受けた日時（指示日時）、指示の形式（指示形式）、及び指示の内容（指示内容）を含む。
【００５１】
上記のように、マスタデータ１０１ａは、スレーブ装置２０１、２０２との間で同期されるデータである。そのため、スレーブ装置２０１、２０２には同じ指示が送られるが、差分データ１０１ｂには、同期先別に指示の情報が登録される。そのため、同期が完了した指示から順に差分データ１０１ｂから指示の情報を削除することで、差分データ１０１ｂにより同期の状況を容易に管理することができる。
【００５２】
なお、上記の指示形式は、指示の種類（パスワードの変更、ユーザ情報の登録、ユーザ情報の更新など）や指示対象（User IDなど）などを特定するための情報である。上記の指示内容は、指示によりマスタデータ１０１ａに反映されるパラメータ（ユーザ名、新パスワード、電子メールアドレスなど）や、変更時に確認のために利用されるパラメータ（旧パスワードなど）である。上記の指示日時は、例えば、マスタ装置１００が指示を受け付けた日時に代えて、マスタデータ１０１ａに変更が反映された日時が登録されるように変形してもよい。
【００５３】
再び図５を参照する。データ更新部１０２は、端末装置１００ａから受け付けた指示に応じてマスタデータ１０１ａを更新する。マスタデータ１０１ａが更新されると、更新の完了及び指示の情報が差分管理部１０３に通知される。
【００５４】
差分管理部１０３は、データ更新部１０２から通知された指示の情報に基づいて差分データ１０１ｂを生成又は更新する。また、差分管理部１０３は、所定のタイミングでスレーブ装置２０１、２０２に差分データ１０１ｂに含まれる指示の情報を送信する。なお、説明の都合上、スレーブ装置２０１、２０２に送信される指示の情報を差分データと呼ぶ場合がある。
【００５５】
また、スレーブ装置２０１、２０２から同期が完了した旨の通知（同期通知）を受信すると、差分管理部１０３は、受信した同期通知に対応する指示の情報を差分データ１０１ｂから削除する。また、差分管理部１０３は、予め設定されたタイミング（１分周期など）で、同期先毎に差分データ１０１ｂに残存する指示の数（未同期指示の残数）をカウントし、カウントした残数を該当する同期先に通知する。
【００５６】
以上、マスタ装置１００の機能について説明した。
（スレーブ装置）
次に、図８を参照しながら、スレーブ装置２０１の機能について説明する。図８は、第２実施形態に係るスレーブ装置が有する機能の一例を示したブロック図である。
【００５７】
なお、スレーブ装置２０１、２０２が有する機能は実質的に同じであるため、以下では、説明の都合上、スレーブ装置２０１の機能について説明し、スレーブ装置２０２の機能については詳細な説明を省略する。
【００５８】
図８に示すように、スレーブ装置２０１は、記憶部２１１、更新管理部２１２、及び期限計算部２１３を有する。なお、記憶部２１１の機能は、上述したＲＡＭ９０６や記憶部９２０などに相当するハードウェア資源を用いて実現できる。更新管理部２１２、及び期限計算部２１３の機能は、上述したＣＰＵ９０２などに相当するハードウェア資源を用いて実現できる。
【００５９】
記憶部２１１には、スレーブデータ２１１ａ、未同期情報２１１ｂ、同期時間情報２１１ｃ、及び残数管理情報２１１ｄが格納される。
スレーブデータ２１１ａは、マスタ装置１００のマスタデータ１０１ａと同期される情報を含むデータである。例えば、マスタデータ１０１ａがユーザデータである場合、スレーブデータ２１１ａは、マスタデータ１０１ａと同じユーザデータが含まれるように同期される。例えば、スレーブデータ２１１ａは、図９のような内容を有する。図９は、第２実施形態に係るスレーブデータ（スレーブ装置が管理するユーザデータ）の一例を示した図である。なお、図９の例は、図６に例示したマスタデータ１０１ａと同期された状態にあるスレーブデータ２１１ａの内容を示している。
【００６０】
未同期情報２１１ｂは、マスタ装置１００から受信した差分データに含まれる指示のうちスレーブデータ２１１ａへの反映が未了の指示に関する情報である。例えば、未同期情報２１１ｂは、図１０のような内容を有する。図１０は、第２実施形態に係る未同期情報の一例を示した図である。図１０に例示した未同期情報２１１ｂは、マスタ装置１００が指示を受け付けた日時（指示日時）、差分データに含まれる指示の形式（指示形式）、及びその指示の内容（指示内容）を含む。
【００６１】
同期時間情報２１１ｃは、図１１に示すように、同期件数と、最大所要時間とを対応付ける情報である。図１１は、第２実施形態に係る同期時間情報の一例を示した図である。同期件数は、ある同期タイミングでマスタ装置１００からスレーブ装置２０１へ送信される差分データに含まれる指示の数である。最大所要時間は、対応する同期件数の同期処理にかかる所要時間のうち過去最大の所要時間である。
【００６２】
上記の所要時間は、例えば、マスタ装置１００が指示を受け付けてからスレーブデータ２１１ａの更新が完了するまでの時間に設定されうる。また、上記の所要時間は、差分データの送信又は受信からスレーブデータ２１１ａの更新完了までの時間に設定されてもよい。なお、図中の「−」は、該当する最大所要時間が得られないことを意味する。
【００６３】
残数管理情報２１１ｄは、図１２に示すように、マスタ装置１００から通知される未同期指示の残数と、その残数に対応する指示のうちスレーブデータ２１１ａへの反映が完了した指示の数（完了数）とを対応付ける情報である。図１２は、第２実施形態に係る残数管理情報の一例を示した図である。
【００６４】
図１２の例では、スレーブ装置２０１がマスタ装置１００から残数の通知を受けた日時（通知日時）と、その残数と、現時点における完了数とを対応付ける残数管理情報２１１ｄが示されている。
【００６５】
なお、同期時間情報２１１ｃの更新方法や残数管理情報２１１ｄの更新方法などについては後段において、さらに説明する。
再び図８を参照する。更新管理部２１２は、マスタ装置１００から受信した差分データに含まれる指示に応じてスレーブデータ２１１ａを更新する。このとき、更新管理部２１２は、パスワードの変更指示があるかを確認する。パスワードの変更指示がある場合、更新管理部２１２は、同期時間情報２１１ｃに基づいてパスワードの有効期限を一時的に延長し、延長後の有効期限に基づいて変更の許否を判定する。なお、期限の延長方法については後段において、さらに説明する。
【００６６】
延長後の有効期限に基づいて変更が許容される場合、更新管理部２１２は、スレーブデータ２１１ａのパスワードを変更し、変更後のパスワードに対して新たな有効期限を設定する。また、更新管理部２１２は、該当する指示について同期完了をマスタ装置１００に通知し、該当する指示の完了を残数管理情報２１１ｄに反映させる。
【００６７】
なお、変更後のパスワードに対して設定される新たな有効期限（更新後期限）は、残数管理情報２１１ｄに基づいて期限計算部２１３により計算される。更新後期限の計算方法については後段において、さらに説明する。
【００６８】
（同期時間情報の更新）
ここで、図１３を参照しながら、更新管理部２１２による同期時間情報２１１ｃの更新方法について、さらに説明する。図１３は、第２実施形態に係る同期時間情報の更新について説明するための図である。
【００６９】
図１３の例では、マスタ装置１００がスレーブ装置２０１に対して２つの指示を含む差分データ（同期件数：２）の送信を２回実施し、スレーブ装置２０１がそれぞれの差分データに対する同期処理を実行している。先の同期処理における所要時間がＴ２１、後の同期処理における所要時間がＴ２２（Ｔ２１＞Ｔ２２）であるとする。また、同期時間情報２１１ｃの同期件数「２」に対応する最大所要時間がＴ２ｍａｘであるとする。
【００７０】
更新管理部２１２は、先の同期処理を実行する際に所要時間Ｔ２１を計測し、同期時間情報２１１ｃにあるＴ２ｍａｘと、計測した所要時間Ｔ２１とを比較する。Ｔ２ｍａｘがＴ２１より小さい場合、更新管理部２１２は、Ｔ２１を新たなＴ２ｍａｘとして同期時間情報２１１ｃに記録する。
【００７１】
また、更新管理部２１２は、後の同期処理を実行する際に所要時間Ｔ２２を計測し、同期時間情報２１１ｃにあるＴ２ｍａｘと、計測した所要時間Ｔ２２とを比較する。
上記の例ではＴ２ｍａｘ（Ｔ２１）がＴ２２より大きいため、更新管理部２１２は、Ｔ２２を同期時間情報２１１ｃに記録しない。結局、同期時間情報２１１ｃには、過去最大の所要時間であるＴ２１の値がＴ２ｍａｘとして記録された状態になる。
【００７２】
更新管理部２１２は、同期件数毎に上記の処理を実行して同期時間情報２１１ｃにある最大所要時間を更新する。
なお、差分データにより１回の同期タイミングでスレーブ装置２０１に通知される指示の数（同期件数）は固定されていないため、所要時間の測定値が得られていない場合がある。この場合、該当する同期件数の最大所要時間は同期時間情報２１１ｃに含まれないことになる（同期件数「４」の部分を参照）。
【００７３】
上記の方法により、同期時間情報２１１ｃは更新管理部２１２により更新される。
（残数管理情報の更新）
次に、図１４を参照しながら、更新管理部２１２による残数管理情報２１１ｄの更新方法について、さらに説明する。図１４は、第２実施形態に係る残数管理情報の更新について説明するための図である。
【００７４】
図１４の例では、マスタ装置１００がスレーブ装置２０１に対して未同期指示の残数を示す情報（残数通知）を送り、その残数通知に基づいてスレーブ装置２０１が残数管理情報２１１ｄを更新している。「１０／２１  １０：０１」に送信された残数通知Ａは、同期件数が１０件であることを示している。この残数通知Ａがスレーブ装置２０１により受信されると、更新管理部２１２は、通知日時、残数（この例では１０）、完了数（この時点では０）を残数管理情報２１１ｄに追加する。
【００７５】
その後、マスタ装置１００からスレーブ装置２０１に残数通知Ａで通知された残数分の指示に関する差分データが送信され、更新管理部２１２により同期処理が進められる。更新管理部２１２は、指示に応じてスレーブデータ２１１ａを更新し、更新が完了した分の完了通知をマスタ装置１００に送信する。また、更新管理部２１２は、更新が完了した分だけ残数管理情報２１１ｄの完了数を増加させる。
【００７６】
図１４の例では、残数通知Ａの次に送信される残数通知Ｂをスレーブ装置２０１が受信するまでに５件の指示に対する更新が完了し、完了通知がマスタ装置１００に送られている。他方、残数通知Ａの送信から、残数通知Ｂの送信までの期間に２件の指示が追加され、マスタデータ１０１ａが更新されている。
【００７７】
この場合、マスタ装置１００の差分データ１０１ｂには、残数通知Ａで通知された指示のうち未了の指示が５件あり、新規に追加された指示が２件ある。そのため、残数通知Ｂは、残数が７件である旨を示す。
【００７８】
残数通知Ｂがスレーブ装置２０１により受信されると、更新管理部２１２は、残数通知Ｂの通知日時を残数管理情報２１１ｄに追加する。また、更新管理部２１２は、残数通知Ｂの通知日時に対応付けて、その通知日時における残数（この例では７）及び完了数（この時点では０）を残数管理情報２１１ｄに記録する。
【００７９】
その後、マスタ装置１００からスレーブ装置２０１に対し、残数通知Ｂで通知された残数分の指示のうち残数通知Ａの直後に送信された差分データに含まれない指示の情報が差分データとしてスレーブ装置２０１に送信される。
【００８０】
更新管理部２１２は、既にマスタ装置１００から受信している差分データの指示及び新たに受信された差分データの指示を古い順にスレーブデータ２１１ａへと反映させる。また、更新管理部２１２は、更新の完了に応じて完了通知をマスタ装置１００に送信する。
【００８１】
更新管理部２１２は、更新が完了した分だけ残数管理情報２１１ｄの完了数を増加させる。残数通知Ａ、Ｂの残数に共通してカウントされている指示の処理が完了した場合、更新管理部２１２は、残数通知Ａ、Ｂの通知日時に対応する完了数を共に増加させる。
【００８２】
図１４の例では、残数通知Ｂの次に送信される残数通知Ｃをスレーブ装置２０１が受信するまでに４件の指示に対する更新が完了し、完了通知がマスタ装置１００に送られている。他方、残数通知Ｂの送信から、残数通知Ｃの送信までの期間に１件の指示が追加され、マスタデータ１０１ａが更新されている。
【００８３】
この場合、マスタ装置１００の差分データ１０１ｂには、残数通知Ｂで通知された指示のうち未了の指示が３件あり、新規に追加された指示が１件ある。そのため、残数通知Ｃは、残数が４件である旨を示す。
【００８４】
残数通知Ｃがスレーブ装置２０１により受信されると、更新管理部２１２は、残数通知Ｃの通知日時を残数管理情報２１１ｄに追加する。また、更新管理部２１２は、残数通知Ｃの通知日時に対応付けて、その通知日時における残数（この例では４）及び完了数（この時点では０）を残数管理情報２１１ｄに記録する。
【００８５】
その後、マスタ装置１００からスレーブ装置２０１に対し、残数通知Ｃで通知された残数分の指示のうち残数通知Ａの直後及び残数通知Ｂの直後に送信された差分データに含まれない指示の情報が差分データとしてスレーブ装置２０１に送信される。
【００８６】
更新管理部２１２は、既にマスタ装置１００から受信している差分データの指示及び新たに受信された差分データの指示を古い順にスレーブデータ２１１ａへと反映させる。また、更新管理部２１２は、更新の完了に応じて完了通知をマスタ装置１００に送信する。
【００８７】
更新管理部２１２は、更新が完了した分だけ残数管理情報２１１ｄの完了数を増加させる。
例えば、残数通知Ｃの後、３件分の指示に対応する処理が完了した場合、残数通知Ａの通知日時に対応する完了数が１０、残数通知Ｂの通知日時に対応する完了数が７となる。つまり、残数通知Ａ、Ｂの通知日時に対応する完了数は、それぞれ対応する残数と一致する。この場合、更新管理部２１２は、残数と完了数とが一致した情報（対応する通知日時、残数、完了数）を残数管理情報２１１ｄから削除する。
【００８８】
上記の方法により、残数管理情報２１１ｄは更新管理部２１２により更新される。
（期限の延長及び更新）
次に、図１５を参照しながら、パスワードの有効期限を一時的に延長する処理について、さらに説明する。図１５は、第２実施形態に係る期限の延長及び更新について説明するための図である。
【００８９】
図１５の例では、マスタ装置１００にUser IDが「００１」のユーザに対するパスワードの変更指示が入力され、マスタデータ１０１ａのパスワードが有効期限内に更新されている。この例では、パスワードの有効期限が「１０／２１  １０：０５：００」である（図中のＡを参照）。マスタ装置１００でパスワードの変更が完了した後、パスワードの更新対象となるユーザの情報（ユーザＩＤなど）がスレーブ装置２０１に通知される。この通知に応じて、更新管理部２１２は、通知に対応するパスワードの有効期限を延長する。
【００９０】
更新管理部２１２は、残数管理情報２１１ｄの通知日時を参照し、その通知日時が一番新しい時刻の残数から完了数を差し引いた数（残数−完了数）の件数（同期件数）に対応する最大所要時間を同期時間情報２１１ｃから取得する。
【００９１】
例えば、残数管理情報２１１ｄが図１５の状態であれば、一番新しい時刻である「１０：０５」の残数１から完了数０を差し引いた数は１である。この場合、同期時間情報２１１ｃの同期件数１に対応する最大所要時間（０：００：１０）が取得される。更新管理部２１２は、取得した最大所要時間の分、対象となるパスワードの有効期限を延長する（図中のＢを参照）。
【００９２】
図１５の例では、有効期限後の時点（１０／２１  １０：０５：０５）でマスタ装置１００からスレーブ装置２０１に対してパスワード変更の指示を含む差分データが送信される。更新管理部２１２は、延長後の有効期限（この例では「１０／２１  １０：０５：１０」）と現時点とを比較し、パスワード変更の許否を判断する。
【００９３】
上記の例では現時点がパスワードの有効期限内にあるため、更新管理部２１２は、差分データに含まれる指示に応じてパスワードを変更し、スレーブデータ２１１ａを更新する（図中のＣを参照）。例えば、パスワードの有効期限がＤＴ（例えば、１ヶ月）である場合、更新管理部２１２は、現時点の日時を基準にＤＴ後の日時を新たな有効期限に設定し、スレーブデータ２１１ａを更新する。
【００９４】
図１５の例では、同期件数に該当する最大所要時間が同期時間情報２１１ｃに存在しているとした。しかし、最大所要時間は、実際に同期処理にかかった所要時間の測定値に基づいて設定される。そのため、所要時間の測定値が得られていない場合、同期時間情報２１１ｃに、該当する最大所要時間が含まれていない場合がある。
【００９５】
この場合、更新管理部２１２は、図１６に示すような方法で、該当する最大所要時間を推定する。図１６は、第２実施形態に係る最大所要時間の推定について説明するための図である。
【００９６】
図１６の例は、同期件数が１、２、３、５、６、８に対応する最大所要時間が同期時間情報２１１ｃに存在する場合に、最小二乗法などの近似手法を利用して同期件数が４、７などに対応する最大所要時間を推定する方法を示している。
【００９７】
なお、最大所要時間が同期時間情報２１１ｃに存在する場合、更新管理部２１２は、同期時間情報２１１ｃにある最大所要時間を有効期限の延長時間として利用する。一方、最大所要時間が同期時間情報２１１ｃに存在しない場合、更新管理部２１２は、回帰直線上で所望の同期件数に対応する最大所要時間を有効期限の延長時間として利用する。
【００９８】
上記の方法により、同期処理に起因してスレーブ装置２０１でパスワードの更新に失敗するリスクを低減することができる。
上記のようにパスワードの有効期限は、パスワードの更新を実施した日時を基準に設定される。マスタ装置１００のパスワード更新後にスレーブ装置２０１のパスワード更新が実施されるため、更新時間の差だけ有効期限に差が生じる。マスタデータ１０１ａの有効期限とスレーブデータ２１１ａの有効期限との差を小さくするため、更新管理部２１２は、更新後期限の調整を実施する。
【００９９】
（残数通知及び更新後期限の調整）
例えば、更新管理部２１２は、図１７に示すような方法で、残数管理情報２１１ｄを利用して更新後期限を調整する。図１７は、第２実施形態に係る残数通知及び更新後期限の調整について説明するための図である。
【０１００】
既に述べたように、残数管理情報２１１ｄには、残数通知の通知日時が記録されている。また、残数管理情報２１１ｄにある残数及び完了数の情報から、完了した指示に対応する残数通知の通知日時を特定することが可能である。
【０１０１】
また、完了した指示に対応する残数通知のうち最も古い残数通知（最初の残数通知）の通知日時は、その指示をマスタ装置１００がマスタデータ１０１ａに反映した時点に近い。そのため、最初の残数通知に対応する通知日時を基準に更新後期限を設定すれば、スレーブデータ２１１ａに記録される更新後期限と、マスタデータ１０１ａに記録される更新後期限とを近づけることができる。
【０１０２】
図１７の例では、「１０／２１  １０：０４：００」（通知日時ｔ０）に残数が０である旨の残数通知がマスタ装置１００からスレーブ装置２０１へと送信されている。その後、マスタ装置１００にパスワードの変更指示が入力され、「１０／２１  １０：０４：３０」の時点でマスタデータ１０１ａのパスワードが変更されている。そして、「１０／２１  １０：０５：００」（通知日時ｔ１）に残数が１である旨の残数通知がマスタ装置１００からスレーブ装置２０１へと送信されている。
【０１０３】
この例では、通知日時ｔ１の後、マスタ装置１００からスレーブ装置２０１へと差分データが送信され、同期処理が実行されている。同期処理の際、更新管理部２１２によりパスワードの有効期限が延長され、スレーブデータ２１１ａのパスワードが更新される。また、完了通知がスレーブ装置２０１からマスタ装置１００へと送信される。図１７の例では、その後に期限計算部２１３により更新後期限の調整が実施されている。なお、更新後期限の調整タイミングは、完了通知より前の時点に設定されていてもよい。
【０１０４】
更新後期限を調整する際、期限計算部２１３は、残数管理情報２１１ｄを参照し、完了数を増加させる欄に対応する通知日時を特定する。特定した通知日時が複数ある場合、期限計算部２１３は、特定した通知日時の中から最も古い通知日時を抽出する。そして、期限計算部２１３は、抽出した通知日時（この例では通知日時ｔ１）を基準に更新後期限（ｔ１＋ＤＴ）を算出する。期限計算部２１３は、算出した更新後期限によりスレーブデータ２１１ａの更新後期限を調整する（図１７のＡ、Ｂを参照）。
【０１０５】
上記の方法により、更新後期限の基準となる日時が更新前の有効期限より後になった場合でも、スレーブデータ２１１ａに記録される更新後期限がマスタデータ１０１ａに記録される更新後期限（有効期限内の日時を基準とする更新後期限）に近くなる。マスタ装置１００における更新からスレーブ装置２０１における更新までの時間差が大きくなる場合、マスタデータ１０１ａの有効期限とスレーブデータ２１１ａの有効期限との差が大きくなるリスクを低減することができる。
【０１０６】
以上、マスタ装置１００及びスレーブ装置２０１、２０２の機能について説明した。
［２−４．処理の流れ］
次に、上記の情報処理システムにおける処理の流れについて説明する。
【０１０７】
（データ更新の流れ）
図１８を参照しながら、上記の情報処理システムにおけるデータ更新の流れについて説明する。図１８は、第２実施形態に係る情報処理システムにおけるデータ更新の流れについて説明するためのシーケンス図である。
【０１０８】
（Ｓ１３１、Ｓ１３２）マスタ装置１００の差分管理部１０３は、スレーブ装置２０１、２０２に対する残数通知の準備を開始する。残数通知は、例えば、所定の時間間隔（１分おきなど）でスレーブ装置２０１、２０２に送信される。
【０１０９】
まず、差分管理部１０３は、差分データ１０１ｂに含まれる指示の数をカウントする。同期の完了通知に応じて差分データ１０１ｂに含まれる指示の情報が削除されるため、差分データ１０１ｂに残存する指示の数が残数となる。
【０１１０】
また、差分管理部１０３は、スレーブ装置２０１を同期先とする指示の残数を示す残数通知（残数通知 for 201）をスレーブ装置２０１に送信する。また、差分管理部１０３は、スレーブ装置２０２を同期先とする指示の残数を示す残数通知（残数通知 for 202）をスレーブ装置２０２に送信する。
【０１１１】
なお、残数通知を受信したスレーブ装置２０１は、それぞれ残数管理情報２１１ｄを更新する（非図示）。スレーブ装置２０２の動作もスレーブ装置２０１と同様である。
（Ｓ１３３、Ｓ１３４）マスタデータ１０１ａに対する変更指示を受け付けたマスタ装置１００のデータ更新部１０２は、その変更指示に応じてマスタデータ１０１ａを更新する（マスタデータ変更）。また、マスタ装置１００の差分管理部１０３は、マスタデータ１０１ａに対する変更指示を差分データ１０１ｂに反映させる（差分データ生成）。
【０１１２】
（Ｓ１３５）マスタ装置１００の差分管理部１０３は、差分データに含まれる指示の中にパスワードの変更指示が含まれるか否かを確認する。パスワードの変更指示が含まれる場合、差分管理部１０３は、変更指示の対象となるスレーブ装置２０１、２０２に対して通知を行う。この通知では、差分データの全てではなく、変更対象のデータが一意に特定されるＩＤ（例えば、パスワード変更の場合にはユーザＩＤ）などがスレーブ装置２０１、２０２に送られる。
【０１１３】
（Ｓ１３６）スレーブ装置２０１の更新管理部２１２は、上記の通知に応じて更新対象となるパスワードの有効期限を延長する（図１５を参照）。
（Ｓ１３７）マスタ装置１００の差分管理部１０３は、スレーブ装置２０１を同期先とする指示の情報を差分データ１０１ｂから抽出し、抽出した指示の情報をスレーブ装置２０１向け差分データ（差分データ for 201）としてスレーブ装置２０１に送信する。また、差分管理部１０３は、スレーブ装置２０２を同期先とする指示の情報を差分データ１０１ｂから抽出し、抽出した指示の情報をスレーブ装置２０２向け差分データ（差分データ for 202）としてスレーブ装置２０２に送信する。
【０１１４】
（Ｓ１３８）更新管理部２１２は、延長後の有効期限に基づいて現時点がパスワードの有効期限内であるかを確認する。有効期限内である場合、更新管理部２１２は、Ｓ１３９に処理を進める。一方、有効期限内ではない場合、更新管理部２１２は、そのパスワードの変更についてエラー処理（例えば、マスタ装置１００に対するエラー通知など）を実行する。
【０１１５】
（Ｓ１３９）スレーブ装置２０１の更新管理部２１２は、差分データに含まれる指示の情報に基づいてスレーブデータ２１１ａを変更する。このとき、更新管理部２１２は、同期処理にかかった時間（所要時間）を測定する。また、更新管理部２１２は、更新が完了した指示について完了した旨を示す完了通知をマスタ装置１００に送信する。
【０１１６】
（Ｓ１４０）スレーブ装置２０１の期限計算部２１３は、残数管理情報２１１ｄに基づいて更新後の有効期限（更新後期限）を計算する（図１７を参照）。また、期限計算部２１３は、計算した更新後期限により、該当するパスワードの有効期限を書き換える（更新後期限の調整）。なお、更新後期限の調整は、完了通知の前に実施されてもよい。また、更新管理部２１２によりスレーブデータ２１１ａに更新後期限が記録されるように変形してもよい。
【０１１７】
（Ｓ１４１、Ｓ１４２）スレーブ装置２０１の更新管理部２１２は、指示に応じた同期処理の完了を残数管理情報２１１ｄに反映させ、残数管理情報２１１ｄを更新する（図１４を参照）。また、残数管理情報２１１ｄの中で残数と完了数とが同じレコードを削除する場合、更新管理部２１２は、そのレコードに対応する所要時間の測定値に基づいて同期時間情報２１１ｃを更新する（図１３を参照）。
【０１１８】
（Ｓ１４３〜Ｓ１４８）スレーブ装置２０２は、Ｓ１３６〜Ｓ１４２の処理と同様に、有効期限の延長、延長後の有効期限による期限確認、スレーブデータの変更、有効期限の更新、更新後期限の調整、残数管理情報及び同期時間情報の更新を実施する。
【０１１９】
（Ｓ１４９）マスタ装置１００の差分管理部１０３は、スレーブ装置２０１、２０２から受信した完了通知に応じて、同期が完了した指示の情報を差分データ１０１ｂから削除する。
【０１２０】
（Ｓ１５０、Ｓ１５１）残数通知を開始するタイミングになると、マスタ装置１００の差分管理部１０３は、Ｓ１３１と同様に、スレーブ装置２０１、２０２に対する残数通知の準備を開始する。そして、差分管理部１０３は、Ｓ１３２と同様に、スレーブ装置２０１、２０２に残数通知を送信する。Ｓ１５１以降、変更指示がマスタ装置１００に入力される度にＳ１３３〜Ｓ１４９と同様の処理が実行される。
【０１２１】
（マスタ装置の動作）
ここで、図１９及び図２０を参照しながら、マスタ装置１００が実行する処理の流れについて、さらに説明する。図１９は、第２実施形態に係るマスタ装置が実行する処理の流れを示した第１のフロー図である。図２０は、第２実施形態に係るマスタ装置が実行する処理の流れを示した第２のフロー図である。
【０１２２】
（Ｓ１６１）データ更新部１０２は、端末装置１００ａからマスタデータ１０１ａに対する変更の指示を受け付けたか否かを判定する。端末装置１００ａから指示を受け付けた場合、処理はＳ１６２へと進む。一方、端末装置１００ａから指示を受け付けていない場合、処理はＳ１６５へと進む。
【０１２３】
（Ｓ１６２）データ更新部１０２は、端末装置１００ａから受け付けた指示をマスタデータ１０１ａに反映させる。また、差分管理部１０３は、マスタデータ１０１ａに反映された指示の内容を差分データ１０１ｂに追加する。
【０１２４】
（Ｓ１６３）差分管理部１０３は、追加された差分データが有効期限のある差分データであるか否かを判定する。有効期限のある差分データである場合、処理はＳ１６４へと進む。一方、有効期限のない差分データである場合、処理はＳ１６５へと進む。
【０１２５】
（Ｓ１６４）差分管理部１０３は、期限延長を実施するデータ（データ更新の対象データなどを通知するためのデータ（ユーザＩＤなど）；以下、有効期限データ）を対象となるスレーブ装置（例えば、スレーブ装置２０１、２０２）に送信する。
【０１２６】
（Ｓ１６５）差分管理部１０３は、同期開始の時刻か否かを判定する。例えば、同期タイミングが所定の時刻（基準時以降３０分おきなど）に設定されている場合、差分管理部１０３は、その時刻になると同期の処理を開始する。同期開始の時刻である場合、処理はＳ１６６へと進む。一方、同期開始の時刻でない場合、処理はＳ１６８へと進む。
【０１２７】
（Ｓ１６６）差分管理部１０３は、差分データ１０１ｂが空か否かを判定する。差分データ１０１ｂには未同期指示の情報が記録され、同期の完了に応じて差分データ１０１ｂから未同期指示の情報が削除される。そのため、同期が未了の指示がない場合、差分データ１０１ｂは空になる。差分データ１０１ｂが空の場合、処理はＳ１６８へと進む。一方、差分データ１０１ｂが空でない場合、処理はＳ１６７へと進む。
【０１２８】
（Ｓ１６７）差分管理部１０３は、差分データ１０１ｂからスレーブ装置２０１を同期先とする指示の情報を抽出し、抽出した指示の情報をスレーブ装置２０１向けの差分データとしてスレーブ装置２０１に送信する。また、差分管理部１０３は、差分データ１０１ｂからスレーブ装置２０２を同期先とする指示の情報を抽出し、抽出した指示の情報をスレーブ装置２０２向けの差分データとしてスレーブ装置２０２に送信する。
【０１２９】
（Ｓ１６８）差分管理部１０３は、残数通知の時刻か否かを判定する。例えば、残数通知のタイミングが所定の時刻（特定時刻以降１分おきなど）に設定されている場合、差分管理部１０３は、その時刻になると残数通知の処理を開始する。残数通知の時刻である場合、処理はＳ１６９へと進む。一方、残数通知の時刻でない場合、処理はＳ１７０へと進む。
【０１３０】
（Ｓ１６９）差分管理部１０３は、差分データ１０１ｂを参照し、差分データ１０１ｂにある指示の残数（未同期件数）をカウントする。このとき、差分管理部１０３は、スレーブ装置２０１を同期先とする指示の未同期件数、及びスレーブ装置２０２を同期先とする指示の未同期件数を別々にカウントする。そして、差分管理部１０３は、スレーブ装置２０１を同期先とする指示の未同期件数を示す残数通知をスレーブ装置２０１に送信し、スレーブ装置２０２を同期先とする指示の未同期件数を示す残数通知をスレーブ装置２０２に送信する。
【０１３１】
（Ｓ１７０）差分管理部１０３は、スレーブ装置２０１、２０２から完了通知を受信したか否かを判定する。なお、完了通知は、例えば、スレーブ装置２０１、２０２において１つ１つの未同期指示に対する処理が完了したタイミングで送信される。そのため、差分データ１０１ｂに指示の情報が残存する場合、マスタ装置１００は完了通知を受信する機会がある。完了通知を受信した場合、処理はＳ１７１へと進む。一方、完了通知を受信していない場合、処理はＳ１７２へと進む。
【０１３２】
（Ｓ１７１）差分管理部１０３は、該当する差分データの内容（完了通知が示す同期完了指示に対応する差分データ１０１ｂの情報）を削除する。
（Ｓ１７２）電源断などによりマスタ装置１００が動作を終了する場合、図１９及び図２０に示した一連の処理は終了する。一方、マスタ装置１００が動作を継続する場合、処理はＳ１６１へと進む。
【０１３３】
（スレーブ装置の動作）
ここで、図２１〜図２３を参照しながら、スレーブ装置２０１が実行する処理の流れについて、さらに説明する。
【０１３４】
図２１は、第２実施形態に係るスレーブ装置が実行する処理のうち残数管理情報の更新及び同期時間情報の更新に関する処理の流れを示したフロー図である。図２２は、第２実施形態に係るスレーブ装置が実行する処理のうち差分データによる同期及び有効期限の調整に関する処理の流れを示した第１のフロー図である。図２３は、第２実施形態に係るスレーブ装置が実行する処理のうち差分データによる同期及び有効期限の調整に関する処理の流れを示した第２のフロー図である。なお、スレーブ装置２０２が実行する処理に流れも実質的に同じである。
【０１３５】
まず、図２１を参照しながら、残数管理情報２１１ｄの更新及び同期時間情報２１１ｃの更新に関する処理の流れについて説明する。
（Ｓ１８１）更新管理部２１２は、マスタ装置１００から残数通知を受信したか否かを判定する。マスタ装置１００から残数通知を受信した場合、処理はＳ１８２へと進む。一方、マスタ装置１００から残数通知を受信していない場合、処理はＳ１８３へと進む。
【０１３６】
（Ｓ１８２）更新管理部２１２は、残数通知の通知日時、及び残数通知が示す残数を残数管理情報２１１ｄに追加する。
（Ｓ１８３）更新管理部２１２は、同期の処理（スレーブデータ２１１ａへの反映）が完了した指示があるか否かを判定する。完了した指示がある場合、処理はＳ１８４へと進む。一方、完了した指示がない場合、処理はＳ１９０へと進む。
【０１３７】
（Ｓ１８４）更新管理部２１２は、残数管理情報２１１ｄの完了数をインクリメントする。このとき、残数に完了数が満たない行が複数ある場合、更新管理部２１２は、複数の行にある完了数をそれぞれ完了した指示の数だけインクリメントする。
【０１３８】
（Ｓ１８５）更新管理部２１２は、完了数のインクリメント後に残数と完了数とが一致する残数管理情報２１１ｄの行を探索し、残数と完了数とが一致する行があるか否かを判定する。残数と完了数とが一致する行がある場合、処理はＳ１８６へと進む。一方、残数と完了数とが一致する行がない場合、処理はＳ１９０へと進む。
【０１３９】
（Ｓ１８６、Ｓ１８７）更新管理部２１２は、該当する行（残数管理情報２１１ｄの中で残数と完了数とが一致する行）を残数管理情報２１１ｄから削除する。また、更新管理部２１２は、該当する行の残数と同じ同期件数の最大所要時間Ｘを同期時間情報２１１ｃから特定する。そして、更新管理部２１２は、該当する行の完了数に対応する最初の指示から最後の指示までの同期処理にかかった時間の測定値（所要時間Ｙ）と、特定した最大所要時間Ｘとを比較する。
【０１４０】
（Ｓ１８８）更新管理部２１２は、最大所要時間Ｘが所要時間Ｙより小さいか否かを判定する。最大所要時間Ｘが所要時間Ｙより小さい場合、処理はＳ１８９へと進む。一方、最大所要時間Ｘが所要時間Ｙより小さくない場合、処理はＳ１９０へと進む。
【０１４１】
（Ｓ１８９）更新管理部２１２は、同期時間情報２１１ｃに含まれる上記の最大所要時間Ｘの値を所要時間Ｙの値で上書きし、同期時間情報２１１ｃを更新する。
（Ｓ１９０）電源断などによりスレーブ装置２０１が動作を終了する場合、図２１に示した一連の処理は終了する。一方、スレーブ装置２０１の動作が継続される場合、処理はＳ１８１へと進む。
【０１４２】
次に、図２２及び図２３を参照しながら、差分データによる同期及び有効期限の調整に関する処理の流れについて説明する。
（Ｓ２０１）更新管理部２１２は、マスタ装置１００から有効期限データを受信したか否かを判定する。有効期限データが受信された場合、処理はＳ２０２へと進む。一方、有効期限データが受信されていない場合、処理はＳ２０４へと進む。
【０１４３】
（Ｓ２０２）更新管理部２１２は、同期時間情報２１１ｃ及び残数管理情報２１１ｄを参照し、残数通知の通知日時のうち最新の通知日時における同期件数に対応する最大所要時間を特定する。
【０１４４】
（Ｓ２０３）更新管理部２１２は、有効期限データが示す指示対象の有効期限を最大所要時間に基づいて延長する。このとき、更新管理部２１２は、最大所要時間に所定のマージン（例えば、１０秒など）を加えた延長時間を計算し、計算した延長時間の分だけ有効期限を延長する。
【０１４５】
（Ｓ２０４）更新管理部２１２は、マスタ装置１００から差分データを受信したか否かを判定する。マスタ装置１００から差分データを受信した場合、処理はＳ２０５へと進む。一方、マスタ装置１００から差分データを受信していない場合、処理はＳ２１０へと進む。
【０１４６】
（Ｓ２０５、Ｓ２０６）更新管理部２１２は、差分データに含まれる指示を選択する。そして、更新管理部２１２は、選択した指示について現在時刻が有効期限（延長後）内であるか否かを判定する。有効期限内である場合、処理はＳ２０７へと進む。一方、有効期限が切れている場合、処理はＳ２１０へと進む。なお、選択された指示に有効期限が設定されていない場合、更新管理部２１２は、その指示に応じてスレーブデータ２１１ａを更新し、処理をＳ２１０へと進める。
【０１４７】
（Ｓ２０７）期限計算部２１３は、残数管理情報２１１ｄを参照し、選択した指示に対応する残数通知の通知日時のうち最古の通知日時を基準に有効期間（ＤＴ）経過後の日時（更新後期限）を特定する。例えば、期限計算部２１３は、通知日時からＤＴが経過した時点の日時を更新後期限として特定する。
【０１４８】
（Ｓ２０８）更新管理部２１２は、選択した指示に応じてスレーブデータ２１１ａを更新する。また、期限計算部２１３は、更新管理部２１２が選択した指示に対応する更新後の有効期限をＳ２０６で特定した更新後期限に設定する。
【０１４９】
（Ｓ２０９）更新管理部２１２は、選択した指示の更新完了を示す完了通知をマスタ装置１００に送信する。
（Ｓ２１０）電源断などによりスレーブ装置２０１が動作を終了する場合、図２２に示した一連の処理は終了する。一方、スレーブ装置２０１が動作を継続する場合、処理はＳ２０１へと進む。
【０１５０】
以上、上記の情報処理システムにおける処理の流れについて説明した。
［２−５．変形例］
上記の説明では、有効期限が設定されているパスワードの更新を例に説明を進めてきた。しかし、第２実施形態に係る技術の適用範囲はこれに限定されない。
【０１５１】
例えば、暗号や認証の際に利用される鍵情報、映像や音楽などのコンテンツ管理に利用される管理情報、或いは、ソフトウェアのライセンス情報などにも有効期限や更新期限が設定されている。映像コンテンツの定額契約などでは視聴期間の有効期限がある。また、ソフトウェアのライセンス期限には、トライアルライセンスの有効期限や、有料契約による正規ライセンスの有効期限などがある。
【０１５２】
このような情報の更新に対しても上述したパスワードの更新と同様にして第２実施形態の技術を適用することができ、これらの変形例についても当然に第２実施形態の技術的範囲に属する。
【０１５３】
以上、第２実施形態について説明した。
【符号の説明】
【０１５４】
１０、２０  情報処理装置
１１、２１  記憶部
１２、２２  演算部
１１ａ、１１ｂ、２１ａ、２１ｂ  対象データ
１２ａ  データ更新の対象データの数
１２ｂ  更新内容の通知
２１ｃ  関係情報
２１ｄ、２１ｅ  データ更新期限
【図１】
2018128860.tif 000003
【図２】
2018128860.tif 000004
【図３】
2018128860.tif 000005
【図４】
2018128860.tif 000006
【図５】
2018128860.tif 000007
【図６】
2018128860.tif 000008
【図７】
2018128860.tif 000009
【図８】
2018128860.tif 000010
【図９】
2018128860.tif 000011
【図１０】
2018128860.tif 000012
【図１１】
2018128860.tif 000013
【図１２】
2018128860.tif 000014
【図１３】
2018128860.tif 000015
【図１４】
2018128860.tif 000016
【図１５】
2018128860.tif 000017
【図１６】
2018128860.tif 000018
【図１７】
2018128860.tif 000019
【図１８】
2018128860.tif 000020
【図１９】
2018128860.tif 000021
【図２０】
2018128860.tif 000022
【図２１】
2018128860.tif 000023
【図２２】
2018128860.tif 000024
【図２３】
2018128860.tif 000025