(57)【要約】【課題】複数の情報処理装置間においてより正確にデータ同期処理を行うことが可能な技術を提供する。【解決手段】システム時刻に基づいて第１の仮想時刻を更新する仮想時刻制御部と、前記第１の仮想時刻と他の情報処理装置によって更新される第２の仮想時刻とに基づいて前記他の情報処理装置との間で所定のデータ同期処理を行う同期部と、を備える、情報処理装置が提供される。【選択図】図１
2015095220.tif 000002
【特許請求の範囲】
【請求項１】
システム時刻に基づいて第１の仮想時刻を更新する仮想時刻制御部と、
前記第１の仮想時刻と他の情報処理装置によって更新される第２の仮想時刻とに基づいて前記他の情報処理装置との間で所定のデータ同期処理を行う同期部と、
を備える、情報処理装置。
【請求項２】
前記同期部は、前記第１の仮想時刻と前記第２の仮想時刻とを比較して得られる比較結果に基づいて、前記第１の仮想時刻を制御する、
請求項１に記載の情報処理装置。
【請求項３】
前記同期部は、前記第２の仮想時刻が前記第１の仮想時刻よりも大きい場合、前記第１の仮想時刻を前記第２の仮想時刻に合わせる、
請求項２に記載の情報処理装置。
【請求項４】
所定の動作を実行する動作実行部を備え、
前記同期部は、前記所定の動作が実行されたときの前記第１の仮想時刻を第１のタイムスタンプとして記憶部に記憶させ、前記第１のタイムスタンプに基づいて前記データ同期処理を行う、
請求項１に記載の情報処理装置。
【請求項５】
前記同期部は、前記他の情報処理装置によって所定の動作がなされたときの前記第２の仮想時刻が第２のタイムスタンプとして取得された場合、前記第１のタイムスタンプと前記第２のタイムスタンプとに基づいて前記データ同期処理を行う、
請求項４に記載の情報処理装置。
【請求項６】
前記同期部は、前記第１のタイムスタンプと前記第２のタイムスタンプとの大小関係に基づいて、前記動作実行部および前記他の情報処理装置の何れか一方の動作をより最新の動作と判定する、
請求項５に記載の情報処理装置。
【請求項７】
前記動作実行部は、前記記憶部により記憶された第１のファイルの更新動作を実行し、
前記他の情報処理装置は、第２のファイルの更新動作を実行し、
前記同期部は、前記大小関係に基づいて、前記第１のファイルの更新動作および前記第２のファイルの更新動作の何れか一方を最新のファイル更新動作と判定する、
請求項６に記載の情報処理装置。
【請求項８】
前記同期部は、前記第２のファイルの更新動作がより新しいファイル更新動作と判定した場合、前記他の情報処理装置から提供された前記第２のファイルに対して最新のファイルである旨の情報を付する、
請求項７に記載の情報処理装置。
【請求項９】
前記仮想時刻制御部は、前記システム時刻を基準とした前記第１の仮想時刻の差分時間を最新のシステム時刻に加算することにより、前記第１の仮想時刻を更新する、
請求項１に記載の情報処理装置。
【請求項１０】
前記仮想時刻制御部は、前記最新のシステム時刻に対して前記差分時間を加算した結果が前回更新後の第１の仮想時刻から増加しなかった場合、前記前回更新後の第１の仮想時刻から前記最新のシステム時刻を減算して所定の時間を加算することにより前記差分時間を調整する、
請求項９に記載の情報処理装置。
【請求項１１】
前記同期部は、前記第２の仮想時刻が前記第１の仮想時刻よりも大きい場合、前記第２の仮想時刻から前記最新のシステム時刻を減算した結果により前記差分時間を更新する、
請求項９に記載の情報処理装置。
【請求項１２】
前記仮想時刻制御部は、前記システム時刻に基づいて所定の時間ごとに通知される情報を受け取った場合に前記第１の仮想時刻を所定の時間増加させることにより、前記第１の仮想時刻を更新する、
請求項１に記載の情報処理装置。
【請求項１３】
システム時刻に基づいて第１の仮想時刻を更新することと、
前記第１の仮想時刻と他の情報処理装置によって更新される第２の仮想時刻とに基づいて前記他の情報処理装置との間でプロセッサにより所定のデータ同期処理を行うことと、
を含む、情報処理方法。
【請求項１４】
コンピュータを、
システム時刻に基づいて第１の仮想時刻を更新する仮想時刻制御部と、
前記第１の仮想時刻と他の情報処理装置によって更新される第２の仮想時刻とに基づいて前記他の情報処理装置との間で所定のデータ同期処理を行う同期部と、
を備える情報処理装置として機能させるためのプログラムを記録した、コンピュータに読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理装置、情報処理方法および記録媒体に関する。
【背景技術】
【０００２】
近日、複数の情報処理装置それぞれによって実行された処理の順序関係を論理クロック値によって把握する手法が知られている。例えば、論理クロック値を制御する手法としては、Ｌａｍｐｏｒｔのアルゴリズムなどがある（例えば、特許文献１参照）。Ｌａｍｐｏｒｔのアルゴリズムにおいて、送信側の情報処理装置は、メッセージ送信時点における自身の論理クロック値をタイムスタンプとしてメッセージに設定して当該メッセージを送信し、自身の論理クロック値を増加させる。
【０００３】
一方、受信側の情報処理装置は、メッセージに設定されたタイムスタンプと自身の論理クロック値とのうち、より大きい値に所定数を加算した結果を自身の新たな論理クロック値として算出する。メッセージの送受信がない間は、相互に自身の論理クロック値を単調増加させる。このような一般的なＬａｎｐｏｒｔのアルゴリズムによれば、メッセージ送受信の順序関係が把握される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−２３３０６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、一般的なＬａｎｐｏｒｔのアルゴリズムによれば、メッセージの送受信の間になされる各処理の順序関係は把握されないのが通例である。そのため、複数の情報処理装置間におけるデータ同期処理の精度が向上されない可能性がある。そこで、複数の情報処理装置間においてより正確にデータ同期処理を行うことが可能な技術が提供されることが望ましい。
【課題を解決するための手段】
【０００６】
本開示によれば、システム時刻に基づいて第１の仮想時刻を更新する仮想時刻制御部と、前記第１の仮想時刻と他の情報処理装置によって更新される第２の仮想時刻とに基づいて前記他の情報処理装置との間で所定のデータ同期処理を行う同期部と、を備える、情報処理装置が提供される。
【０００７】
また、本開示によれば、システム時刻に基づいて第１の仮想時刻を更新することと、前記第１の仮想時刻と他の情報処理装置によって更新される第２の仮想時刻とに基づいて前記他の情報処理装置との間でプロセッサにより所定のデータ同期処理を行うことと、を含む、情報処理方法が提供される。
【０００８】
また、本開示によれば、コンピュータを、システム時刻に基づいて第１の仮想時刻を更新する仮想時刻制御部と、前記第１の仮想時刻と他の情報処理装置によって更新される第２の仮想時刻とに基づいて前記他の情報処理装置との間で所定のデータ同期処理を行う同期部と、を備える情報処理装置として機能させるためのプログラムを記録した、コンピュータに読み取り可能な記録媒体が提供される。
【発明の効果】
【０００９】
以上説明したように本開示によれば、複数の情報処理装置間においてより正確にデータ同期処理を行うことが可能である。なお、上記の効果は必ずしも限定的なものではなく、上記の効果とともに、または上記の効果に代えて、本明細書に示されたいずれかの効果、または本明細書から把握され得る他の効果が奏されてもよい。
【図面の簡単な説明】
【００１０】
【図１】本開示の実施形態に係る情報処理システムの構成例を示す図である。
【図２】同実施形態に係る情報処理装置の機能構成例を示す図である。
【図３】同実施形態に係る情報処理システムの動作状況の一例を説明するための図である。
【図４】仮想時刻の更新動作の一例を示すフローチャートである。
【図５】仮想時刻同士を一致させる動作の一例を示すフローチャートである。
【図６】データ同期処理の一例として最新のファイル更新動作を判定する動作の一例を示すフローチャートである。
【図７】仮想時刻の更新動作の変形例を示すフローチャートである。
【図８】仮想時刻同士を一致させる動作の変形例を示すフローチャートである。
【図９】情報処理システムの他の構成例を示す図である。
【図１０】情報処理システムの他の構成例を示す図である。
【図１１】情報処理装置のハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１２】
また、本明細書および図面において、実質的に同一の機能構成を有する複数の構成要素を、同一の符号の後に異なるアルファベットまたは数字を付して区別する場合もある。ただし、実質的に同一の機能構成を有する複数の構成要素の各々を特に区別する必要がない場合、同一符号のみを付する。
【００１３】
なお、説明は以下の順序で行うものとする。
０．一般的な技術
１．情報処理システムの構成例
２．情報処理装置の機能構成例
３．情報処理装置の機能詳細
４．情報処理システムの他の構成例
５．情報処理装置のハードウェア構成例
６．むすび
【００１４】
＜０．一般的な技術＞
まず、一般的な技術について説明する。近日、複数の情報処理装置それぞれによって実行された処理の順序関係を論理クロック値によって把握する手法が知られている。例えば、論理クロック値を制御する手法としては、Ｌａｍｐｏｒｔのアルゴリズムなどがある。Ｌａｍｐｏｒｔのアルゴリズムにおいて、送信側の情報処理装置は、メッセージ送信時点における自身の論理クロック値をタイムスタンプとしてメッセージに設定して当該メッセージを送信し、自身の論理クロック値を増加させる。
【００１５】
一方、受信側の情報処理装置は、メッセージに設定されたタイムスタンプと自身の論理クロック値とのうち、より大きい値に所定数を加算した結果を自身の新たな論理クロック値として算出する。メッセージの送受信がない間は、相互に自身の論理クロック値を単調増加させる。このような一般的なＬａｎｐｏｒｔのアルゴリズムによれば、メッセージ送受信の順序関係が把握される。
【００１６】
しかしながら、一般的なＬａｎｐｏｒｔのアルゴリズムによれば、メッセージの送受信の間になされる各処理の順序関係は把握されないのが通例である。そのため、複数の情報処理装置間におけるデータ同期処理の精度が向上されない可能性がある。そこで、本明細書においては、複数の情報処理装置間においてより正確にデータ同期処理を行うことが可能な技術を提案する。
【００１７】
＜１．情報処理システムの構成例＞
続いて、本開示の実施形態に係る情報処理システム１の構成例について説明する。図１は、本開示の実施形態に係る情報処理システム１の構成例を示す図である。図１を参照すると、情報処理システム１は、情報処理装置１０Ａと情報処理装置１０Ｂとを備える。情報処理装置１０Ａと情報処理装置１０Ｂとは有線または無線によりネットワークを介して通信を行うことが可能である。あるいは、情報処理装置１０Ａと情報処理装置１０Ｂとは、専用線を介して通信を行うことが可能であってもよい。
【００１８】
なお、以下の説明においては、情報処理装置１０がＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）に適用される場合を例として説明するが、情報処理装置１０は、ＰＣ以外の装置に適用されてもよい。例えば、情報処理装置１０は、スマートフォン、ビデオカメラ、デジタルカメラ、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ）、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、携帯電話、携帯用音楽再生装置、携帯用映像処理装置、携帯用ゲーム機器などに適用されてもよい。
【００１９】
以上、本開示の実施形態に係る情報処理システム１の構成例について説明した。
【００２０】
＜２．情報処理装置の機能構成例＞
続いて、本開示の実施形態に係る情報処理装置１０の機能構成例について説明する。図２は、本開示の実施形態に係る情報処理装置１０の機能構成例を示す図である。図２に示すように、情報処理装置１０は、制御部１１０、入力部１２０、記憶部１３０、通信部１４０および表示部１５０を備える。
【００２１】
制御部１１０は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などのプロセッサに相当する。制御部１１０は、記憶部１３０または他の記憶媒体に記憶されるプログラムを実行することにより、制御部１１０が有する様々な機能を発揮する。制御部１１０は、動作実行部１１１、同期部１１２および仮想時刻制御部１１３などの各機能ブロックを有する。これら各機能ブロックが有する機能については後に説明する。
【００２２】
入力部１２０は、ユーザによる操作を検出して制御部１１０に出力する。例えば、入力部１２０がタッチパネルにより構成される場合には、ユーザによる操作はタッチパネルをタップする操作に相当し得る。しかし、入力部１２０はタッチパネル以外のハードウェア（例えば、ボタンなど）により構成されていてもよい。なお、図２に示した例では、入力部１２０は情報処理装置１０と一体化されているが、入力部１２０は、情報処理装置１０と別体に構成されていてもよい。
【００２３】
記憶部１３０は、半導体メモリまたはハードディスクなどの記憶媒体を用いて、制御部１１０を動作させるためのプログラムを記憶する。また、例えば、記憶部１３０は、プログラムによって使用される各種のデータを記憶することもできる。なお、図２に示した例では、記憶部１３０は情報処理装置１０と一体化されているが、記憶部１３０は情報処理装置１０と別体に構成されていてもよい。
【００２４】
通信部１４０は、他の装置（例えば、他の情報処理装置１０など）と通信を行うことが可能である。通信部１４０は、例えば、他の情報処理装置１０との間で通信を行う場合には、ネットワークを介して通信を行うことが可能である。通信部１４０による通信の形式は特に限定されず、通信部１４０による通信は、無線による通信であってもよいし、有線による通信であってもよい。なお、図２に示した例では、通信部１４０は情報処理装置１０と一体化されているが、通信部１４０は、情報処理装置１０と別体に構成されていてもよい。
【００２５】
表示部１５０は、制御部１１０による制御に従って、各種情報の表示を行う。表示部１５０は、例えば、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）、有機ＥＬ（Ｅｌｅｃｔｒｏｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイ装置などにより構成される。なお、図２に示した例では、表示部１５０は情報処理装置１０と一体化されているが、表示部１５０は情報処理装置１０と別体に構成されていてもよい。例えば、情報処理装置１０と有線または無線で接続される表示装置が表示部１５０として扱われてもよい。
【００２６】
以上、本開示の実施形態に係る情報処理装置１０の機能構成例について説明した。
【００２７】
＜３．情報処理装置の機能詳細＞
続いて、本開示の実施形態に係る情報処理装置１０の機能詳細について説明する。なお、以下においては、本開示の実施形態に係る情報処理装置１０の一例として情報処理装置１０Ａの機能詳細を中心に説明を行うが、情報処理装置１０Ｂも情報処理装置１０Ａが有する機能と同様の機能を有し得る。したがって、以下に説明する情報処理装置１０Ａの機能と同様の機能は、情報処理装置１０Ｂも有してよい。
【００２８】
まず、情報処理装置１０Ａにおいてはシステム時刻（以下、Ｓｙｓｔｅｍ  Ｃｌｏｃｋを略して「ＳＣ」とも言う）が保持されている。ＳＣは、オペレーティングシステムから読み出され得る。仮想時刻制御部１１３は、ＳＣに基づいて仮想時刻（以下、Ｖｅｒｔｕａｌ  Ｃｌｏｃｋを略して「ＶＣ」とも言う）を更新する。同期部１１２は、かかるＶＣと情報処理装置１０Ｂによって更新されるＶＣとに基づいて情報処理装置１０Ｂとの間で所定のデータ同期処理を行う。なお、自身の装置において更新されるＶＣを、単に「自身のＶＣ」と言い、相手の装置において更新されるＶＣを、単に「相手のＶＣ」と言う場合もある。
【００２９】
かかる構成によれば、システム時刻に基づいて更新されるＶＣがデータ同期処理に用いられるようになる。そのため、情報処理装置１０Ａおよび情報処理装置１０Ｂそれぞれの動作実行部１１１によって実行される各処理の順序関係が把握されるようになる。したがって、情報処理装置１０Ａと情報処理装置１０Ｂとの間においてより正確にデータ同期処理を行うことが可能となる。例えば、同期部１１２は、自身のＶＣと相手のＶＣとを比較して得られる比較結果に基づいて、自身のＶＣを制御すればよい。
【００３０】
なお、以下では、情報処理装置１０Ａおよび情報処理装置１０Ｂそれぞれの動作実行部１１１によって所定の動作の一例として、自身の記憶部１３０によって記憶されているファイルの更新動作がなされる場合を主に説明する。しかしながら、情報処理装置１０Ａおよび情報処理装置１０Ｂそれぞれの動作実行部１１１によって実行される所定の動作は自身の記憶部１３０によって記憶されているファイル更新動作に限定されない。
【００３１】
また、情報処理装置１０Ａおよび情報処理装置１０Ｂそれぞれの同期部１１２によってデータ同期処理の一例として、自身および相手のファイルのうち最新のファイルに対して最新のファイルである旨の情報を付する処理がなされる場合を主に説明する。しかしながら、情報処理装置１０Ａおよび情報処理装置１０Ｂそれぞれの同期部１１２によってなされるデータ同期処理は、自身および相手のファイルのうち最新のファイルに対して最新のファイルである旨の情報を付する処理に限定されない。
【００３２】
図３は、本開示の実施形態に係る情報処理システム１の動作過程の一例を説明するための図である。図３を参照しながら、情報処理装置１０Ａおよび情報処理装置１０Ｂそれぞれの動作過程の一例について説明する。図３に示すように、情報処理装置１０ＡのオペレーティングシステムによってＳＣが保持されている。また、情報処理装置１０Ａの記憶部１３０によってＶＣが記憶されている。さらに、ＳＣを基準としたＶＣの差分時間（以下、「Ｏｆｆｓｅｔ」とも言う）が情報処理装置１０Ａの記憶部１３０によって記憶されている。情報処理装置１０Ｂにおいても同様である。
【００３３】
まず、ＶＣの更新動作について説明する。ＶＣの更新動作は、所定の時間ごとになされてもよいが、少なくともファイルの作成または更新がなされる前になされればよい。図４は、ＶＣの更新動作の一例を示すフローチャートである。なお、図４に示した例は、ＶＣの更新動作の一例を示したに過ぎない。したがって、ＶＣの更新動作は、図４に示した例に限定されない。まず、仮想時刻制御部１１３は、最新のシステム時刻に相当し得るＳＣをオペレーティングシステムから読み出し（Ｓ１１）、ＯｆｆｓｅｔとＶＣとを記憶部１３０から読み出す（Ｓ１２）。記憶部１３０から読み出されるＯｆｆｓｅｔおよびＶＣそれぞれは、前回更新後の値あるいは初期値に相当し得る。
【００３４】
続いて、仮想時刻制御部１１３は、記憶部１３０から読み出したＳＣとＯｆｆｓｅｔとを加算し、加算結果を新たなＶＣに相当するＶＣｎｅｗとする（Ｓ１３）。ここで、仮想時刻制御部１１３は、ＶＣｎｅｗとＶＣとを比較する（Ｓ１４）。このとき、仮想時刻制御部１１３は、ＶＣｎｅｗがＶＣよりも大きいと判断した場合（Ｓ１４において「Ｙｅｓ」）、すなわち、ＶＣｎｅｗがＶＣから増加した場合には、ＳＣが正常に単調増加されていると判断することができる。したがって、仮想時刻制御部１１３は、ＶＣｎｅｗの値を新たなＶＣとして記憶部１３０に書き込む。かかる処理により、ＳＣが正常に単調増加されている場合、ＶＣも単調増加され得る。
【００３５】
一方、仮想時刻制御部１１３は、ＶＣｎｅｗがＶＣよりも大きくないと判断した場合（Ｓ１４において「Ｎｏ」）、すなわち、ＶＣｎｅｗがＶＣから増加しなかった場合には、ＳＣが正常に単調増加されていないと判断することができる。したがって、仮想時刻制御部１１３は、ＶＣからＳＣを減算して所定の時間に相当し得るＤｅｌｔａを加算した結果を、Ｏｆｆｓｅｔとする（Ｓ１５）。続いて、仮想時刻制御部１１３は、Ｏｆｆｓｅｔの値を記憶部１３０に書き込んで（Ｓ１６）、Ｓ１２に戻る。後にも説明するように、かかる処理により、ＳＣが正常に単調増加されなくなったときにも、ＶＣを単調増加させることが可能となる。
【００３６】
ここで、図３の（ア）を参照すると、情報処理装置１０Ａにおいて（ＳＣ、Ｏｆｆｓｅｔ、ＶＣ）＝（５０、０、０）となっている状態が示されている。かかる状態において、図４に示したＶＣの更新動作がなされると、Ｓ１３において、ＶＣｎｅｗが、ＳＣ＋Ｏｆｆｓｅｔ＝５０＋０＝５０と算出されるため、Ｓ１４において「Ｙｅｓ」に該当し、Ｓ１７において、ＶＣが、ＶＣｎｅｗ＝５０によって更新される。したがって、図３の（ア）においては、ＶＣが０から５０に更新される。
【００３７】
また、図３の（ケ）を参照すると、図４に示したＶＣの更新動作がなされた結果、情報処理装置１０Ｂにおいて（ＶＣ）＝１００となっている状態が示されている。続いて、オフライン状態において、情報処理装置１０Ｂの動作実行部１１１によってファイルの作成がなされたとする。このとき、情報処理装置１０Ｂの同期部１１２は、ファイル作成時のＶＣをタイムスタンプとして記憶させる。図３の（ケ）に示した例では、情報処理装置１０Ｂの同期部１１２は、タイムスタンプとして１００を記憶させている。
【００３８】
続いて、ＶＣ同士を一致させる動作について説明する。ＶＣ同士を一致させる動作は、情報処理装置１０Ａと情報処理装置１０Ｂとがオフライン状態からオンライン状態に切り替わり、情報処理装置１０Ａと情報処理装置１０Ｂとの間の通信が行われるときになされてよい。図５は、ＶＣ同士を一致させる動作の一例を示すフローチャートである。なお、図５に示した例は、ＶＣ同士を一致させる動作の一例を示したに過ぎない。したがって、ＶＣ同士を一致させる動作は、図５に示した例に限定されない。まず、同期部１１２は、最新のシステム時刻に相当し得るＳＣをオペレーティングシステムから読み出し（Ｓ２１）、ＶＣｍｉｎｅを記憶部１３０から読み出す（Ｓ２２）。記憶部１３０から読み出されるＶＣｍｉｎｅは、自身のＶＣに相当し得る。また、同期部１１２は、通信部１４０からＶＣｙｏｕｒｓを受け取る（Ｓ２３）。ＶＣｙｏｕｒｓは、相手のＶＣに相当し得る。
【００３９】
続いて、同期部１１２は、記憶部１３０から読み出したＶＣｍｉｎｅと通信部１４０から受け取ったＶＣｙｏｕｒｓとを比較する（Ｓ２４）。このとき、同期部１１２は、ＶＣｙｏｕｒｓがＶＣｍｉｎｅより大きくないと判断した場合（Ｓ２４において「Ｎｏ」）、すなわち、自分のＶＣが相手のＶＣと等しい、あるいは、自分のＶＣが相手のＶＣより大きい場合には、自身のＶＣを更新する必要がないと判断し、ＶＣ同士を一致させる動作を終了する。一方、同期部１１２は、ＶＣｙｏｕｒｓがＶＣｍｉｎｅより大きいと判断した場合（Ｓ２４において「Ｙｅｓ」）、ＶＣｙｏｕｒｓによってＶＣｍｉｎｅを更新するとともにＶＣｙｏｕｒｓからＳＣを減じ、減じた結果によってＯｆｆｓｅｔを更新する（Ｓ２５）。同期部１１２は、ＶＣｍｉｎｅとＯｆｆｓｅｔとを記憶部１３０に書き込む（Ｓ２６）。
【００４０】
ここで、図３の（イ）を参照すると、図４に示したＶＣの更新動作がなされた結果、情報処理装置１０Ａにおいて（ＳＣ、Ｏｆｆｓｅｔ、ＶＣ）＝（１５０、０、１５０）となっている状態が示されている。また、図３の（コ）を参照すると、図４に示したＶＣの更新動作がなされた結果、情報処理装置１０Ｂにおいて（ＶＣ）＝（２００）となっている状態が示されている。かかる状態において、情報処理装置１０Ａと情報処理装置１０Ｂとがオフライン状態からオンライン状態に切り替わり、情報処理装置１０Ａと情報処理装置１０Ｂとの間の通信が行われるタイミングとなったとする。
【００４１】
このとき、図５に示したＶＣ同士を一致させる動作がなされると、Ｓ２４において、ＶＣｙｏｕｒｓが２００であり、ＶＣｍｉｎｅが１５０であるため、Ｓ２４において「Ｙｅｓ」に該当し、Ｓ２５において、ＶＣｍｉｎｅがＶＣｙｏｕｒｓ＝２００に更新され、Ｏｆｆｓｅｔが２００−１５０＝５０によって更新される。また、情報処理装置１０Ａの同期部１１２は、自身ではファイルを生成していないため、情報処理装置１０Ｂの動作実行部１１１によって生成されたファイルを記憶部１３０にコピーすることによってデータ同期処理を行う。
【００４２】
続いて、データ同期処理の一例として最新のファイル更新動作を判定する動作について説明する。最新のファイル更新動作を判定する動作は、情報処理装置１０Ａと情報処理装置１０Ｂとがオフライン状態からオンライン状態に切り替わり、情報処理装置１０Ａと情報処理装置１０Ｂとの間の通信が行われるときになされてよい。図６は、データ同期処理の一例として最新のファイル更新動作を判定する動作の一例を示すフローチャートである。なお、図６に示した例は、最新のファイル更新動作を判定する動作の一例を示したに過ぎない。したがって、最新のファイル更新動作を判定する動作は、図６に示した例に限定されない。
【００４３】
まず、同期部１１２は、自身のファイルに相当するＦＩＬＥｍｉｎｅからタイムスタンプＴＳｍｉｎｅを読み出し（Ｓ３１）、相手のファイルに相当するＦＩＬＥｙｏｕｒｓからタイムスタンプＴＳｙｏｕｒｓを読み出す（Ｓ３２）。また、同期部１１２は、ＦＩＬＥｍｉｎｅから読み出したＴＳｍｉｎｅとＦＩＬＥｙｏｕｒｓから読み出したＴＳｙｏｕｒｓとを比較する（Ｓ３３）。このとき、同期部１１２は、ＴＳｙｏｕｒｓがＴＳｍｉｎｅより大きくないと判断した場合（Ｓ３３において「Ｎｏ」）、すなわち、ＴＳｍｉｎｅがＴＳｙｏｕｒｓと等しい、あるいは、ＴＳｍｉｎｅがＴＳｙｏｕｒｓより大きい場合には、ＦＩＬＥｍｉｎｅが最新のファイルであると判断されるため、最新のファイル更新動作を判定する動作を終了する。
【００４４】
一方、同期部１１２は、ＴＳｙｏｕｒｓがＴＳｍｉｎｅより大きいと判断した場合（Ｓ３３において「Ｙｅｓ」）、ＦＩＬＥｙｏｕｒｓが最新のファイルであると判断されるため、ＦＩＬＥｙｏｕｒｓを「最新」としてマークする（Ｓ３４）。例えば、ＦＩＬＥｙｏｕｒｓに対して最新のファイルである旨の情報が付されることにより「最新」としてマークされる。
【００４５】
ここで、図３の（ウ）を参照すると、図４に示したＶＣの更新動作がなされた結果、情報処理装置１０Ａにおいて（ＳＣ、Ｏｆｆｓｅｔ、ＶＣ）＝（２７０、５０、３２０）となっている状態が示されている。また、図３の（サ）を参照すると、図４に示したＶＣの更新動作がなされた結果、情報処理装置１０Ｂにおいて（ＶＣ）＝（３００）となっている状態が示されている。続いて、オフライン状態において、図３の（ウ）に示したように、情報処理装置１０Ａの動作実行部１１１によってファイルが更新され、タイムスタンプには３２０が付されたとする。さらに、オフライン状態において、図３の（サ）に示したように、情報処理装置１０Ｂの動作実行部１１１によってファイルが更新され、タイムスタンプには３００が付されたとする。
【００４６】
ここで、図３の（エ）を参照すると、図４に示したＶＣの更新動作がなされた結果、情報処理装置１０Ａにおいて（ＳＣ、Ｏｆｆｓｅｔ、ＶＣ）＝（３５０、５０、４００）となっている状態が示されている。また、図３の（シ）を参照すると、図４に示したＶＣの更新動作がなされた結果、情報処理装置１０Ｂにおいて（ＶＣ）＝（４００）となっている状態が示されている。かかる状態において、情報処理装置１０Ａと情報処理装置１０Ｂとがオンライン状態となったとする。このとき、ＶＣ同士は一致しているため、図５に示したＶＣ同士を一致させる動作がなされたとしても、ＶＣおよびＯｆｆｓｅｔは更新されずに済む。
【００４７】
続いて、図５に示した最新のファイル更新動作がなされると、ＴＳｙｏｕｒｓが３００であり、ＴＳｍｉｎｅが３２０であるため、Ｓ３３において、ＴＳｙｏｕｒｓがＴＳｍｉｎｅより小さくなる。したがって、図３の（エ）に示すように、情報処理装置１０Ａにおいては自身のファイルが最新のままとなる。一方、情報処理装置１０Ｂにおいては、Ｓ３３において、ＴＳｙｏｕｒｓがＴＳｍｉｎｅより大きくなる。したがって、図３の（シ）に示すように、情報処理装置１０Ｂにおいては同期部１１２によって相手のファイルが自身の記憶部１３０にコピーされて「最新」としてマークされる。
【００４８】
ここで、情報処理装置１０ＡのＳＣが正常に単調増加されなくなる場合がある。例えば、情報処理装置１０Ａの内部時計を駆動している電池が完全放電した場合などにＳＣが正常に単調増加されなる可能性がある。そのとき、例えば、ＳＣは０を示すようになってしまう。図３の（オ）を参照すると、情報処理装置１０Ａの内部時計が正常に単調増加されなくなった状態が示されている。本実施形態によれば、かかる状態に陥った場合、仮想時刻も正常に単調増加されなくなってしまう可能性がある。
【００４９】
ここで、図３の（カ）を参照すると、ＳＣが０に一度戻ってしまったため、情報処理装置１０Ａにおいて（ＳＣ、Ｏｆｆｓｅｔ、ＶＣ）＝（１０、５０、４００）となっている状態が示されている。かかる状態において、図４に示したＶＣの更新動作がなされると、Ｓ１３において、ＶＣｎｅｗが、ＳＣ＋Ｏｆｆｓｅｔ＝１０＋５０＝６０と算出されるため、Ｓ１４において「Ｎｏ」に該当し、例えば、Ｄｅｌｔａが１０である場合には、Ｓ１５において、Ｏｆｆｓｅｔが４００−１０＋１０＝４００と算出される。
【００５０】
したがって、次にＳ１３に達したときには、ＶＣが、ＶＣｎｅｗ＝１０＋４００＝４１０と算出され、Ｓ１４において「Ｙｅｓ」に該当し、Ｓ１７において、ＶＣが、ＶＣｎｅｗ＝４１０によって更新される。したがって、図３に示すように、図３の（カ）においては、ＶＣが４００から４１０に更新される。なお、Ｄｅｌｔａの値は１０に限定されず、適宜に変更されてよい。かかる構成によれば、ＳＣが正常に単調増加されなくなった状態においても、仮想時刻の単調増加は正常に維持される。
【００５１】
また、図３の（ス）を参照すると、図４に示したＶＣの更新動作がなされた結果、情報処理装置１０Ｂにおいて（ＶＣ）＝５００となっている状態が示されている。かかる状態において、情報処理装置１０Ｂの動作実行部１１１によってファイルの更新がなされたとする。このとき、情報処理装置１０Ｂの同期部１１２は、ファイル更新時のＶＣをタイムスタンプとして記憶させる。図３の（ケ）に示した例では、情報処理装置１０Ｂの同期部１１２は、タイムスタンプとして１００を記憶させている。
【００５２】
ここで、図３の（キ）を参照すると、図４に示したＶＣの更新動作がなされた結果、情報処理装置１０Ａにおいて（ＳＣ、Ｏｆｆｓｅｔ、ＶＣ）＝（１１０、４００、５１０）となっている状態が示されている。また、図３の（セ）を参照すると、図４に示したＶＣの更新動作がなされた結果、情報処理装置１０Ｂにおいて（ＶＣ）＝（６００）となっている状態が示されている。また、オフライン状態において、図３の（キ）に示したように、情報処理装置１０Ａの動作実行部１１１によってファイルが更新され、タイムスタンプには５１０が付されたとする。さらに、オフライン状態において、図３の（セ）に示したように、情報処理装置１０Ｂの動作実行部１１１によってファイルが更新され、タイムスタンプには６００が付されたとする。
【００５３】
ここで、図３の（ク）を参照すると、図４に示したＶＣの更新動作がなされた結果、情報処理装置１０Ａにおいて（ＳＣ、Ｏｆｆｓｅｔ、ＶＣ）＝（２１０、４００、６１０）となっている状態が示されている。また、図３の（ソ）を参照すると、図４に示したＶＣの更新動作がなされた結果、情報処理装置１０Ｂにおいて（ＶＣ）＝（７００）となっている状態が示されている。かかる状態において、情報処理装置１０Ａと情報処理装置１０Ｂとがオンライン状態となったとする。このとき、図５に示したＶＣ同士を一致させる動作がなされると、Ｓ２４において、ＶＣｙｏｕｒｓが７００であり、ＶＣｍｉｎｅが６１０であるため、Ｓ２４において「Ｙｅｓ」に該当し、Ｓ２５において、ＶＣｍｉｎｅがＶＣｙｏｕｒｓ＝７００に更新され、Ｏｆｆｓｅｔが７００−２１０＝４９０によって更新される。
【００５４】
続いて、図５に示した最新のファイル更新動作がなされると、ＴＳｙｏｕｒｓが６００であり、ＴＳｍｉｎｅが５１０であるため、Ｓ３３において、ＴＳｙｏｕｒｓがＴＳｍｉｎｅより大きくなる。したがって、図３の（ク）に示すように、情報処理装置１０Ａにおいては同期部１１２によって相手のファイルが自身の記憶部１３０にコピーされて「最新」としてマークされる。一方、情報処理装置１０Ｂにおいては、Ｓ３３において、ＴＳｙｏｕｒｓがＴＳｍｉｎｅより小さくなる。したがって、図３の（ソ）に示すように、情報処理装置１０Ｂにおいては自身のファイルが最新のままとなる。
【００５５】
続いて、本開示の実施形態に係る情報処理装置１０の動作の変形例について説明する。まず、ＶＣの更新動作の変形例について説明する。図７は、ＶＣの更新動作の変形例を示すフローチャートである。なお、図７に示した例は、ＶＣの更新動作の一例を示したに過ぎない。したがって、ＶＣの更新動作は、図７に示した例に限定されない。まず、仮想時刻制御部１１３は、ＳＣからＤｅｌｔａに相当する時間経過が通知されると、ＶＣを記憶部１３０から読み出す（Ｓ４１）。記憶部１３０から読み出されるＶＣは、前回更新後の値あるいは初期値に相当し得る。
【００５６】
続いて、仮想時刻制御部１１３は、記憶部１３０から読み出したＶＣとＤｅｌｔａとを加算し、加算結果を新たなＶＣに相当するＶＣｎｅｗとする（Ｓ４２）。続いて、仮想時刻制御部１１３は、ＶＣｎｅｗの値を記憶部１３０に書き込む（Ｓ４３）。かかる処理により、ＶＣを単調増加させることが可能となる。図７に示したＶＣの更新動作は、Ｄｅｌｔａに相当する時間ごとに繰り返しなされればよい。
【００５７】
続いて、ＶＣ同士を一致させる動作の変形例について説明する。図８は、ＶＣ同士を一致させる動作の変形例を示すフローチャートである。なお、図８に示した例は、ＶＣ同士を一致させる動作の一例を示したに過ぎない。したがって、ＶＣ同士を一致させる動作は、図８に示した例に限定されない。まず、同期部１１２は、ＶＣｍｉｎｅを記憶部１３０から読み出す（Ｓ５１）。記憶部１３０から読み出されるＶＣｍｉｎｅは、自身のＶＣに相当し得る。また、同期部１１２は、通信部１４０からＶＣｙｏｕｒｓを受け取る（Ｓ５３）。ＶＣｙｏｕｒｓは、相手のＶＣに相当し得る。
【００５８】
続いて、同期部１１２は、記憶部１３０から読み出したＶＣｍｉｎｅと通信部１４０から受け取ったＶＣｙｏｕｒｓとを比較する（Ｓ５３）。このとき、同期部１１２は、ＶＣｙｏｕｒｓがＶＣｍｉｎｅより大きくないと判断した場合（Ｓ５３において「Ｎｏ」）、すなわち、自分のＶＣが相手のＶＣと等しい、あるいは、自分のＶＣが相手のＶＣより大きい場合には、自身のＶＣを更新する必要がないと判断し、ＶＣ同士を一致させる動作を終了する。一方、同期部１１２は、ＶＣｙｏｕｒｓがＶＣｍｉｎｅより大きいと判断した場合（Ｓ５３において「Ｙｅｓ」）、ＶＣｙｏｕｒｓによってＶＣｍｉｎｅを更新する（Ｓ５４）。同期部１１２は、ＶＣｍｉｎｅを記憶部１３０に書き込む（Ｓ５５）。
【００５９】
以上、本開示の実施形態に係る情報処理装置１０の機能詳細について説明した。
【００６０】
＜４．情報処理システムの他の構成例＞
続いて、本開示の実施形態に係る情報処理システム１の他の構成例について説明する。上記においては、情報処理システム１が２台の情報処理装置１０を備える例を説明したが、情報処理システム１は、３台以上の情報処理装置１０を備えてもよい。かかる場合には、３台以上の情報処理装置１０が直接的または間接的に接続されており、直接的に接続された２台の情報処理装置１０の間の同期処理が順に行われれば、３台以上の情報処理装置１０の間の同期処理が行われ得る。
【００６１】
３台以上の情報処理装置１０が直接的または間接的に接続されるためのトポロジーの例は限定されない。例えば、３台以上の情報処理装置１０が直接的または間接的に接続されるためのトポロジーは、１台の情報処理装置１０に対して、他の情報処理装置１０が直接的に接続されることによって形成されるトポロジー（スター型）であってもよい。図９は、情報処理システム１の他の構成例を示す図である。図９に示した例では、情報処理装置１０Ａに対して、情報処理装置１０Ｂ〜１０Ｄが直接的に接続されることによってスター型のトポロジーが形成されている。
【００６２】
また、例えば、３台以上の情報処理装置１０が直接的または間接的に接続されるためのトポロジーは、複数の情報処理装置１０が一列に接続されることによって形成されるトポロジー（ディジーチェーン型）であってもよい。図１０は、情報処理システム１の他の構成例を示す図である。図１０に示した例では、情報処理装置１０Ａに対して、情報処理装置１０Ａ〜１０Ｄが一列に接続されることによってディージーチェーン型のトポロジーが形成されている。
【００６３】
以上、本開示の実施形態に係る情報処理システム１の他の構成例について説明した。
【００６４】
＜５．情報処理装置のハードウェア構成例＞
続いて、本開示の実施形態に係る情報処理装置１０のハードウェア構成例について説明する。図１１は、本開示の実施形態に係る情報処理装置１０のハードウェア構成例を示す図である。ただし、図１１に示したハードウェア構成例は、情報処理装置１０のハードウェア構成の一例を示したに過ぎない。したがって、情報処理装置１０のハードウェア構成は、図１１に示した例に限定されない。
【００６５】
図１１に示したように、情報処理装置１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）８０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）８０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）８０３と、入力装置８０８と、出力装置８１０と、ストレージ装置８１１と、ドライブ８１２と、通信装置８１５とを備える。
【００６６】
ＣＰＵ８０１は、演算処理装置および制御装置として機能し、各種プログラムに従って情報処理装置１０内の動作全般を制御する。また、ＣＰＵ８０１は、マイクロプロセッサであってもよい。ＲＯＭ８０２は、ＣＰＵ８０１が使用するプログラムや演算パラメータなどを記憶する。ＲＡＭ８０３は、ＣＰＵ８０１の実行において使用するプログラムや、その実行において適宜変化するパラメータなどを一時記憶する。これらはＣＰＵバスなどから構成されるホストバスにより相互に接続されている。
【００６７】
入力装置８０８は、マウス、キーボード、タッチパネル、ボタン、マイクロフォン、スイッチおよびレバーなどユーザが情報を入力するための操作部と、ユーザによる入力に基づいて入力信号を生成し、ＣＰＵ８０１に出力する入力制御回路などから構成されている。情報処理装置１０のユーザは、該入力装置８０８を操作することにより、情報処理装置１０に対して各種のデータを入力したり処理動作を指示したりすることができる。
【００６８】
出力装置８１０は、例えば、液晶ディスプレイ（ＬＣＤ）装置、ＯＬＥＤ（Ｏｒｇａｎｉｃ  Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ）装置およびランプなどの表示装置を含んでよい。さらに、出力装置８１０は、スピーカおよびヘッドホンなどの音声出力装置を含んでもよい。例えば、表示装置は、撮像された画像や生成された画像などを表示する。一方、音声出力装置は、音声データなどを音声に変換して出力する。
【００６９】
ストレージ装置８１１は、情報処理装置１０の記憶部の一例として構成されたデータ格納用の装置である。ストレージ装置８１１は、記憶媒体、記憶媒体にデータを記録する記録装置、記憶媒体からデータを読み出す読出し装置および記憶媒体に記録されたデータを削除する削除装置などを含んでもよい。このストレージ装置８１１は、ＣＰＵ８０１が実行するプログラムや各種データを格納する。
【００７０】
ドライブ８１２は、記憶媒体用リーダライタであり、情報処理装置１０に内蔵、あるいは外付けされる。ドライブ８１２は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブル記憶媒体に記録されている情報を読み出して、ＲＡＭ８０３に出力する。また、ドライブ８１２は、リムーバブル記憶媒体に情報を書き込むこともできる。
【００７１】
通信装置８１５は、例えば、ネットワークに接続するための通信デバイスなどで構成された通信インタフェースである。また、通信装置８１５は、無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）対応通信装置であっても、ＬＴＥ（Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ）対応通信装置であっても、有線による通信を行うワイヤー通信装置であってもよい。通信装置８１５は、例えば、ネットワークを介して他の装置と通信を行うことが可能である。
【００７２】
以上、本開示の実施形態に係る情報処理装置１０のハードウェア構成例について説明した。
【００７３】
＜６．むすび＞
以上説明したように、本開示の実施形態によれば、仮想時刻制御部１１３は、システム時刻に基づいて第１の仮想時刻を更新する仮想時刻制御部１１３と、第１の仮想時刻と他の情報処理装置１０Ｂによって更新される第２の仮想時刻とに基づいて情報処理装置１０Ｂとの間で所定のデータ同期処理を行う同期部１１２と、を備える、情報処理装置１０Ａが提供される。かかる構成によれば、情報処理装置１０Ａと情報処理装置１０Ｂとの間においてより正確にデータ同期処理を行うことが可能となる。
【００７４】
また、かかる構成においては、情報処理装置１０Ａと情報処理装置１０Ｂとにおいてシステム時刻は同期されていなくてよい。例えば、情報処理装置１０Ａおよび情報処理装置１０Ｂそれぞれからアクセス可能なマスタクロックを設ける手法も想定されるが、かかる手法を採用する場合には、マスタクロックへの実時刻の問い合わせのために通信負荷が掛かることが予想される。本実施形態によれば、かかる通信負荷が不要となる。
【００７５】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【００７６】
例えば、情報処理装置１０の動作は、必ずしもフローチャートに記載された順序に沿って時系列になされる必要はない。例えば、情報処理装置１０の動作は、フローチャートに記載した順序と異なる順序でなされてもよいし、フローチャートに記載された動作の少なくとも一部が並列的になされてもよい。
【００７７】
また、コンピュータに内蔵されるＣＰＵ、ＲＯＭおよびＲＡＭなどのハードウェアを、上記した情報処理装置１０が有する機能と同等の機能を発揮させるためのプログラムも作成可能である。また、該プログラムを記録した、コンピュータに読み取り可能な記録媒体も提供され得る。
【００７８】
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
【００７９】
なお、以下のような構成も本開示の技術的範囲に属する。
（１）
システム時刻に基づいて第１の仮想時刻を更新する仮想時刻制御部と、
前記第１の仮想時刻と他の情報処理装置によって更新される第２の仮想時刻とに基づいて前記他の情報処理装置との間で所定のデータ同期処理を行う同期部と、
を備える、情報処理装置。
（２）
前記同期部は、前記第１の仮想時刻と前記第２の仮想時刻とを比較して得られる比較結果に基づいて、前記第１の仮想時刻を制御する、
前記（１）に記載の情報処理装置。
（３）
前記同期部は、前記第２の仮想時刻が前記第１の仮想時刻よりも大きい場合、前記第１の仮想時刻を前記第２の仮想時刻に合わせる、
前記（２）に記載の情報処理装置。
（４）
所定の動作を実行する動作実行部を備え、
前記同期部は、前記所定の動作が実行されたときの前記第１の仮想時刻を第１のタイムスタンプとして記憶部に記憶させ、前記第１のタイムスタンプに基づいて前記データ同期処理を行う、
前記（１）〜３の何れか一項に記載の情報処理装置。
（５）
前記同期部は、前記他の情報処理装置によって所定の動作がなされたときの前記第２の仮想時刻が第２のタイムスタンプとして取得された場合、前記第１のタイムスタンプと前記第２のタイムスタンプとに基づいて前記データ同期処理を行う、
前記（４）に記載の情報処理装置。
（６）
前記同期部は、前記第１のタイムスタンプと前記第２のタイムスタンプとの大小関係に基づいて、前記動作実行部および前記他の情報処理装置の何れか一方の動作をより最新の動作と判定する、
前記（５）に記載の情報処理装置。
（７）
前記動作実行部は、前記記憶部により記憶された第１のファイルの更新動作を実行し、
前記他の情報処理装置は、第２のファイルの更新動作を実行し、
前記同期部は、前記大小関係に基づいて、前記第１のファイルの更新動作および前記第２のファイルの更新動作の何れか一方を最新のファイル更新動作と判定する、
前記（６）に記載の情報処理装置。
（８）
前記同期部は、前記第２のファイルの更新動作がより新しいファイル更新動作と判定した場合、前記他の情報処理装置から提供された前記第２のファイルに対して最新のファイルである旨の情報を付する、
前記（７）に記載の情報処理装置。
（９）
前記仮想時刻制御部は、前記システム時刻を基準とした前記第１の仮想時刻の差分時間を最新のシステム時刻に加算することにより、前記第１の仮想時刻を更新する、
前記（１）〜８の何れか一項に記載の情報処理装置。
（１０）
前記仮想時刻制御部は、前記最新のシステム時刻に対して前記差分時間を加算した結果が前回更新後の第１の仮想時刻から増加しなかった場合、前記前回更新後の第１の仮想時刻から前記最新のシステム時刻を減算して所定の時間を加算することにより前記差分時間を調整する、
前記（９）に記載の情報処理装置。
（１１）
前記同期部は、前記第２の仮想時刻が前記第１の仮想時刻よりも大きい場合、前記第２の仮想時刻から前記最新のシステム時刻を減算した結果により前記差分時間を更新する、
前記（９）または（１０）に記載の情報処理装置。
（１２）
前記仮想時刻制御部は、前記システム時刻に基づいて所定の時間ごとに通知される情報を受け取った場合に前記第１の仮想時刻を所定の時間増加させることにより、前記第１の仮想時刻を更新する、
前記（１）〜８の何れか一項に記載の情報処理装置。
（１３）
システム時刻に基づいて第１の仮想時刻を更新することと、
前記第１の仮想時刻と他の情報処理装置によって更新される第２の仮想時刻とに基づいて前記他の情報処理装置との間でプロセッサにより所定のデータ同期処理を行うことと、
を含む、情報処理方法。
（１４）
コンピュータを、
システム時刻に基づいて第１の仮想時刻を更新する仮想時刻制御部と、
前記第１の仮想時刻と他の情報処理装置によって更新される第２の仮想時刻とに基づいて前記他の情報処理装置との間で所定のデータ同期処理を行う同期部と、
を備える情報処理装置として機能させるためのプログラムを記録した、コンピュータに読み取り可能な記録媒体。
（１５）
第１の情報処理装置と第２の情報処理装置とを有し、
前記第１の情報処理装置は、
システム時刻に基づいて第１の仮想時刻を更新する仮想時刻制御部と、
前記第１の仮想時刻と前記第２の情報処理装置によって更新される第２の仮想時刻とに基づいて前記第２の情報処理装置との間で所定のデータ同期処理を行う同期部と、
を備え、
前記第２の情報処理装置は、
システム時刻に基づいて前記第２の仮想時刻を更新する仮想時刻制御部と、
前記第１の仮想時刻と前記第２の仮想時刻とに基づいて前記第１の情報処理装置との間で所定のデータ同期処理を行う同期部と、
を備える、情報処理システム。
【符号の説明】
【００８０】
１      情報処理システム
１０（１０Ａ、１０Ｂ）  情報処理装置
１１０  制御部
１１１  動作実行部
１１２  同期部
１１３  仮想時刻制御部
１２０  入力部
１３０  記憶部
１４０  通信部
１５０  表示部
【図１】
2015095220.tif 000003
【図２】
2015095220.tif 000004
【図３】
2015095220.tif 000005
【図４】
2015095220.tif 000006
【図５】
2015095220.tif 000007
【図６】
2015095220.tif 000008
【図７】
2015095220.tif 000009
【図８】
2015095220.tif 000010
【図９】
2015095220.tif 000011
【図１０】
2015095220.tif 000012
【図１１】
2015095220.tif 000013