JP2015095220A - 情報処理装置、情報処理方法および記録媒体 - Google Patents
情報処理装置、情報処理方法および記録媒体 Download PDFInfo
- Publication number
- JP2015095220A JP2015095220A JP2013235884A JP2013235884A JP2015095220A JP 2015095220 A JP2015095220 A JP 2015095220A JP 2013235884 A JP2013235884 A JP 2013235884A JP 2013235884 A JP2013235884 A JP 2013235884A JP 2015095220 A JP2015095220 A JP 2015095220A
- Authority
- JP
- Japan
- Prior art keywords
- information processing
- time
- processing apparatus
- virtual time
- virtual
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/12—Synchronisation of different clock signals provided by a plurality of clock generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/06—Clock generators producing several clock signals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Electric Clocks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】複数の情報処理装置間においてより正確にデータ同期処理を行うことが可能な技術を提供する。【解決手段】システム時刻に基づいて第1の仮想時刻を更新する仮想時刻制御部と、前記第1の仮想時刻と他の情報処理装置によって更新される第2の仮想時刻とに基づいて前記他の情報処理装置との間で所定のデータ同期処理を行う同期部と、を備える、情報処理装置が提供される。【選択図】図1
Description
本開示は、情報処理装置、情報処理方法および記録媒体に関する。
近日、複数の情報処理装置それぞれによって実行された処理の順序関係を論理クロック値によって把握する手法が知られている。例えば、論理クロック値を制御する手法としては、Lamportのアルゴリズムなどがある(例えば、特許文献1参照)。Lamportのアルゴリズムにおいて、送信側の情報処理装置は、メッセージ送信時点における自身の論理クロック値をタイムスタンプとしてメッセージに設定して当該メッセージを送信し、自身の論理クロック値を増加させる。
一方、受信側の情報処理装置は、メッセージに設定されたタイムスタンプと自身の論理クロック値とのうち、より大きい値に所定数を加算した結果を自身の新たな論理クロック値として算出する。メッセージの送受信がない間は、相互に自身の論理クロック値を単調増加させる。このような一般的なLanportのアルゴリズムによれば、メッセージ送受信の順序関係が把握される。
しかしながら、一般的なLanportのアルゴリズムによれば、メッセージの送受信の間になされる各処理の順序関係は把握されないのが通例である。そのため、複数の情報処理装置間におけるデータ同期処理の精度が向上されない可能性がある。そこで、複数の情報処理装置間においてより正確にデータ同期処理を行うことが可能な技術が提供されることが望ましい。
本開示によれば、システム時刻に基づいて第1の仮想時刻を更新する仮想時刻制御部と、前記第1の仮想時刻と他の情報処理装置によって更新される第2の仮想時刻とに基づいて前記他の情報処理装置との間で所定のデータ同期処理を行う同期部と、を備える、情報処理装置が提供される。
また、本開示によれば、システム時刻に基づいて第1の仮想時刻を更新することと、前記第1の仮想時刻と他の情報処理装置によって更新される第2の仮想時刻とに基づいて前記他の情報処理装置との間でプロセッサにより所定のデータ同期処理を行うことと、を含む、情報処理方法が提供される。
また、本開示によれば、コンピュータを、システム時刻に基づいて第1の仮想時刻を更新する仮想時刻制御部と、前記第1の仮想時刻と他の情報処理装置によって更新される第2の仮想時刻とに基づいて前記他の情報処理装置との間で所定のデータ同期処理を行う同期部と、を備える情報処理装置として機能させるためのプログラムを記録した、コンピュータに読み取り可能な記録媒体が提供される。
以上説明したように本開示によれば、複数の情報処理装置間においてより正確にデータ同期処理を行うことが可能である。なお、上記の効果は必ずしも限定的なものではなく、上記の効果とともに、または上記の効果に代えて、本明細書に示されたいずれかの効果、または本明細書から把握され得る他の効果が奏されてもよい。
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
また、本明細書および図面において、実質的に同一の機能構成を有する複数の構成要素を、同一の符号の後に異なるアルファベットまたは数字を付して区別する場合もある。ただし、実質的に同一の機能構成を有する複数の構成要素の各々を特に区別する必要がない場合、同一符号のみを付する。
なお、説明は以下の順序で行うものとする。
0.一般的な技術
1.情報処理システムの構成例
2.情報処理装置の機能構成例
3.情報処理装置の機能詳細
4.情報処理システムの他の構成例
5.情報処理装置のハードウェア構成例
6.むすび
0.一般的な技術
1.情報処理システムの構成例
2.情報処理装置の機能構成例
3.情報処理装置の機能詳細
4.情報処理システムの他の構成例
5.情報処理装置のハードウェア構成例
6.むすび
<0.一般的な技術>
まず、一般的な技術について説明する。近日、複数の情報処理装置それぞれによって実行された処理の順序関係を論理クロック値によって把握する手法が知られている。例えば、論理クロック値を制御する手法としては、Lamportのアルゴリズムなどがある。Lamportのアルゴリズムにおいて、送信側の情報処理装置は、メッセージ送信時点における自身の論理クロック値をタイムスタンプとしてメッセージに設定して当該メッセージを送信し、自身の論理クロック値を増加させる。
まず、一般的な技術について説明する。近日、複数の情報処理装置それぞれによって実行された処理の順序関係を論理クロック値によって把握する手法が知られている。例えば、論理クロック値を制御する手法としては、Lamportのアルゴリズムなどがある。Lamportのアルゴリズムにおいて、送信側の情報処理装置は、メッセージ送信時点における自身の論理クロック値をタイムスタンプとしてメッセージに設定して当該メッセージを送信し、自身の論理クロック値を増加させる。
一方、受信側の情報処理装置は、メッセージに設定されたタイムスタンプと自身の論理クロック値とのうち、より大きい値に所定数を加算した結果を自身の新たな論理クロック値として算出する。メッセージの送受信がない間は、相互に自身の論理クロック値を単調増加させる。このような一般的なLanportのアルゴリズムによれば、メッセージ送受信の順序関係が把握される。
しかしながら、一般的なLanportのアルゴリズムによれば、メッセージの送受信の間になされる各処理の順序関係は把握されないのが通例である。そのため、複数の情報処理装置間におけるデータ同期処理の精度が向上されない可能性がある。そこで、本明細書においては、複数の情報処理装置間においてより正確にデータ同期処理を行うことが可能な技術を提案する。
<1.情報処理システムの構成例>
続いて、本開示の実施形態に係る情報処理システム1の構成例について説明する。図1は、本開示の実施形態に係る情報処理システム1の構成例を示す図である。図1を参照すると、情報処理システム1は、情報処理装置10Aと情報処理装置10Bとを備える。情報処理装置10Aと情報処理装置10Bとは有線または無線によりネットワークを介して通信を行うことが可能である。あるいは、情報処理装置10Aと情報処理装置10Bとは、専用線を介して通信を行うことが可能であってもよい。
続いて、本開示の実施形態に係る情報処理システム1の構成例について説明する。図1は、本開示の実施形態に係る情報処理システム1の構成例を示す図である。図1を参照すると、情報処理システム1は、情報処理装置10Aと情報処理装置10Bとを備える。情報処理装置10Aと情報処理装置10Bとは有線または無線によりネットワークを介して通信を行うことが可能である。あるいは、情報処理装置10Aと情報処理装置10Bとは、専用線を介して通信を行うことが可能であってもよい。
なお、以下の説明においては、情報処理装置10がPC(Personal Computer)に適用される場合を例として説明するが、情報処理装置10は、PC以外の装置に適用されてもよい。例えば、情報処理装置10は、スマートフォン、ビデオカメラ、デジタルカメラ、PDA(Personal Digital Assistants)、PC(Personal Computer)、携帯電話、携帯用音楽再生装置、携帯用映像処理装置、携帯用ゲーム機器などに適用されてもよい。
以上、本開示の実施形態に係る情報処理システム1の構成例について説明した。
<2.情報処理装置の機能構成例>
続いて、本開示の実施形態に係る情報処理装置10の機能構成例について説明する。図2は、本開示の実施形態に係る情報処理装置10の機能構成例を示す図である。図2に示すように、情報処理装置10は、制御部110、入力部120、記憶部130、通信部140および表示部150を備える。
続いて、本開示の実施形態に係る情報処理装置10の機能構成例について説明する。図2は、本開示の実施形態に係る情報処理装置10の機能構成例を示す図である。図2に示すように、情報処理装置10は、制御部110、入力部120、記憶部130、通信部140および表示部150を備える。
制御部110は、例えば、CPU(Central Processing Unit)などのプロセッサに相当する。制御部110は、記憶部130または他の記憶媒体に記憶されるプログラムを実行することにより、制御部110が有する様々な機能を発揮する。制御部110は、動作実行部111、同期部112および仮想時刻制御部113などの各機能ブロックを有する。これら各機能ブロックが有する機能については後に説明する。
入力部120は、ユーザによる操作を検出して制御部110に出力する。例えば、入力部120がタッチパネルにより構成される場合には、ユーザによる操作はタッチパネルをタップする操作に相当し得る。しかし、入力部120はタッチパネル以外のハードウェア(例えば、ボタンなど)により構成されていてもよい。なお、図2に示した例では、入力部120は情報処理装置10と一体化されているが、入力部120は、情報処理装置10と別体に構成されていてもよい。
記憶部130は、半導体メモリまたはハードディスクなどの記憶媒体を用いて、制御部110を動作させるためのプログラムを記憶する。また、例えば、記憶部130は、プログラムによって使用される各種のデータを記憶することもできる。なお、図2に示した例では、記憶部130は情報処理装置10と一体化されているが、記憶部130は情報処理装置10と別体に構成されていてもよい。
通信部140は、他の装置(例えば、他の情報処理装置10など)と通信を行うことが可能である。通信部140は、例えば、他の情報処理装置10との間で通信を行う場合には、ネットワークを介して通信を行うことが可能である。通信部140による通信の形式は特に限定されず、通信部140による通信は、無線による通信であってもよいし、有線による通信であってもよい。なお、図2に示した例では、通信部140は情報処理装置10と一体化されているが、通信部140は、情報処理装置10と別体に構成されていてもよい。
表示部150は、制御部110による制御に従って、各種情報の表示を行う。表示部150は、例えば、LCD(Liquid Crystal Display)、有機EL(Electroluminescence)ディスプレイ装置などにより構成される。なお、図2に示した例では、表示部150は情報処理装置10と一体化されているが、表示部150は情報処理装置10と別体に構成されていてもよい。例えば、情報処理装置10と有線または無線で接続される表示装置が表示部150として扱われてもよい。
以上、本開示の実施形態に係る情報処理装置10の機能構成例について説明した。
<3.情報処理装置の機能詳細>
続いて、本開示の実施形態に係る情報処理装置10の機能詳細について説明する。なお、以下においては、本開示の実施形態に係る情報処理装置10の一例として情報処理装置10Aの機能詳細を中心に説明を行うが、情報処理装置10Bも情報処理装置10Aが有する機能と同様の機能を有し得る。したがって、以下に説明する情報処理装置10Aの機能と同様の機能は、情報処理装置10Bも有してよい。
続いて、本開示の実施形態に係る情報処理装置10の機能詳細について説明する。なお、以下においては、本開示の実施形態に係る情報処理装置10の一例として情報処理装置10Aの機能詳細を中心に説明を行うが、情報処理装置10Bも情報処理装置10Aが有する機能と同様の機能を有し得る。したがって、以下に説明する情報処理装置10Aの機能と同様の機能は、情報処理装置10Bも有してよい。
まず、情報処理装置10Aにおいてはシステム時刻(以下、System Clockを略して「SC」とも言う)が保持されている。SCは、オペレーティングシステムから読み出され得る。仮想時刻制御部113は、SCに基づいて仮想時刻(以下、Vertual Clockを略して「VC」とも言う)を更新する。同期部112は、かかるVCと情報処理装置10Bによって更新されるVCとに基づいて情報処理装置10Bとの間で所定のデータ同期処理を行う。なお、自身の装置において更新されるVCを、単に「自身のVC」と言い、相手の装置において更新されるVCを、単に「相手のVC」と言う場合もある。
かかる構成によれば、システム時刻に基づいて更新されるVCがデータ同期処理に用いられるようになる。そのため、情報処理装置10Aおよび情報処理装置10Bそれぞれの動作実行部111によって実行される各処理の順序関係が把握されるようになる。したがって、情報処理装置10Aと情報処理装置10Bとの間においてより正確にデータ同期処理を行うことが可能となる。例えば、同期部112は、自身のVCと相手のVCとを比較して得られる比較結果に基づいて、自身のVCを制御すればよい。
なお、以下では、情報処理装置10Aおよび情報処理装置10Bそれぞれの動作実行部111によって所定の動作の一例として、自身の記憶部130によって記憶されているファイルの更新動作がなされる場合を主に説明する。しかしながら、情報処理装置10Aおよび情報処理装置10Bそれぞれの動作実行部111によって実行される所定の動作は自身の記憶部130によって記憶されているファイル更新動作に限定されない。
また、情報処理装置10Aおよび情報処理装置10Bそれぞれの同期部112によってデータ同期処理の一例として、自身および相手のファイルのうち最新のファイルに対して最新のファイルである旨の情報を付する処理がなされる場合を主に説明する。しかしながら、情報処理装置10Aおよび情報処理装置10Bそれぞれの同期部112によってなされるデータ同期処理は、自身および相手のファイルのうち最新のファイルに対して最新のファイルである旨の情報を付する処理に限定されない。
図3は、本開示の実施形態に係る情報処理システム1の動作過程の一例を説明するための図である。図3を参照しながら、情報処理装置10Aおよび情報処理装置10Bそれぞれの動作過程の一例について説明する。図3に示すように、情報処理装置10AのオペレーティングシステムによってSCが保持されている。また、情報処理装置10Aの記憶部130によってVCが記憶されている。さらに、SCを基準としたVCの差分時間(以下、「Offset」とも言う)が情報処理装置10Aの記憶部130によって記憶されている。情報処理装置10Bにおいても同様である。
まず、VCの更新動作について説明する。VCの更新動作は、所定の時間ごとになされてもよいが、少なくともファイルの作成または更新がなされる前になされればよい。図4は、VCの更新動作の一例を示すフローチャートである。なお、図4に示した例は、VCの更新動作の一例を示したに過ぎない。したがって、VCの更新動作は、図4に示した例に限定されない。まず、仮想時刻制御部113は、最新のシステム時刻に相当し得るSCをオペレーティングシステムから読み出し(S11)、OffsetとVCとを記憶部130から読み出す(S12)。記憶部130から読み出されるOffsetおよびVCそれぞれは、前回更新後の値あるいは初期値に相当し得る。
続いて、仮想時刻制御部113は、記憶部130から読み出したSCとOffsetとを加算し、加算結果を新たなVCに相当するVCnewとする(S13)。ここで、仮想時刻制御部113は、VCnewとVCとを比較する(S14)。このとき、仮想時刻制御部113は、VCnewがVCよりも大きいと判断した場合(S14において「Yes」)、すなわち、VCnewがVCから増加した場合には、SCが正常に単調増加されていると判断することができる。したがって、仮想時刻制御部113は、VCnewの値を新たなVCとして記憶部130に書き込む。かかる処理により、SCが正常に単調増加されている場合、VCも単調増加され得る。
一方、仮想時刻制御部113は、VCnewがVCよりも大きくないと判断した場合(S14において「No」)、すなわち、VCnewがVCから増加しなかった場合には、SCが正常に単調増加されていないと判断することができる。したがって、仮想時刻制御部113は、VCからSCを減算して所定の時間に相当し得るDeltaを加算した結果を、Offsetとする(S15)。続いて、仮想時刻制御部113は、Offsetの値を記憶部130に書き込んで(S16)、S12に戻る。後にも説明するように、かかる処理により、SCが正常に単調増加されなくなったときにも、VCを単調増加させることが可能となる。
ここで、図3の(ア)を参照すると、情報処理装置10Aにおいて(SC、Offset、VC)=(50、0、0)となっている状態が示されている。かかる状態において、図4に示したVCの更新動作がなされると、S13において、VCnewが、SC+Offset=50+0=50と算出されるため、S14において「Yes」に該当し、S17において、VCが、VCnew=50によって更新される。したがって、図3の(ア)においては、VCが0から50に更新される。
また、図3の(ケ)を参照すると、図4に示したVCの更新動作がなされた結果、情報処理装置10Bにおいて(VC)=100となっている状態が示されている。続いて、オフライン状態において、情報処理装置10Bの動作実行部111によってファイルの作成がなされたとする。このとき、情報処理装置10Bの同期部112は、ファイル作成時のVCをタイムスタンプとして記憶させる。図3の(ケ)に示した例では、情報処理装置10Bの同期部112は、タイムスタンプとして100を記憶させている。
続いて、VC同士を一致させる動作について説明する。VC同士を一致させる動作は、情報処理装置10Aと情報処理装置10Bとがオフライン状態からオンライン状態に切り替わり、情報処理装置10Aと情報処理装置10Bとの間の通信が行われるときになされてよい。図5は、VC同士を一致させる動作の一例を示すフローチャートである。なお、図5に示した例は、VC同士を一致させる動作の一例を示したに過ぎない。したがって、VC同士を一致させる動作は、図5に示した例に限定されない。まず、同期部112は、最新のシステム時刻に相当し得るSCをオペレーティングシステムから読み出し(S21)、VCmineを記憶部130から読み出す(S22)。記憶部130から読み出されるVCmineは、自身のVCに相当し得る。また、同期部112は、通信部140からVCyoursを受け取る(S23)。VCyoursは、相手のVCに相当し得る。
続いて、同期部112は、記憶部130から読み出したVCmineと通信部140から受け取ったVCyoursとを比較する(S24)。このとき、同期部112は、VCyoursがVCmineより大きくないと判断した場合(S24において「No」)、すなわち、自分のVCが相手のVCと等しい、あるいは、自分のVCが相手のVCより大きい場合には、自身のVCを更新する必要がないと判断し、VC同士を一致させる動作を終了する。一方、同期部112は、VCyoursがVCmineより大きいと判断した場合(S24において「Yes」)、VCyoursによってVCmineを更新するとともにVCyoursからSCを減じ、減じた結果によってOffsetを更新する(S25)。同期部112は、VCmineとOffsetとを記憶部130に書き込む(S26)。
ここで、図3の(イ)を参照すると、図4に示したVCの更新動作がなされた結果、情報処理装置10Aにおいて(SC、Offset、VC)=(150、0、150)となっている状態が示されている。また、図3の(コ)を参照すると、図4に示したVCの更新動作がなされた結果、情報処理装置10Bにおいて(VC)=(200)となっている状態が示されている。かかる状態において、情報処理装置10Aと情報処理装置10Bとがオフライン状態からオンライン状態に切り替わり、情報処理装置10Aと情報処理装置10Bとの間の通信が行われるタイミングとなったとする。
このとき、図5に示したVC同士を一致させる動作がなされると、S24において、VCyoursが200であり、VCmineが150であるため、S24において「Yes」に該当し、S25において、VCmineがVCyours=200に更新され、Offsetが200−150=50によって更新される。また、情報処理装置10Aの同期部112は、自身ではファイルを生成していないため、情報処理装置10Bの動作実行部111によって生成されたファイルを記憶部130にコピーすることによってデータ同期処理を行う。
続いて、データ同期処理の一例として最新のファイル更新動作を判定する動作について説明する。最新のファイル更新動作を判定する動作は、情報処理装置10Aと情報処理装置10Bとがオフライン状態からオンライン状態に切り替わり、情報処理装置10Aと情報処理装置10Bとの間の通信が行われるときになされてよい。図6は、データ同期処理の一例として最新のファイル更新動作を判定する動作の一例を示すフローチャートである。なお、図6に示した例は、最新のファイル更新動作を判定する動作の一例を示したに過ぎない。したがって、最新のファイル更新動作を判定する動作は、図6に示した例に限定されない。
まず、同期部112は、自身のファイルに相当するFILEmineからタイムスタンプTSmineを読み出し(S31)、相手のファイルに相当するFILEyoursからタイムスタンプTSyoursを読み出す(S32)。また、同期部112は、FILEmineから読み出したTSmineとFILEyoursから読み出したTSyoursとを比較する(S33)。このとき、同期部112は、TSyoursがTSmineより大きくないと判断した場合(S33において「No」)、すなわち、TSmineがTSyoursと等しい、あるいは、TSmineがTSyoursより大きい場合には、FILEmineが最新のファイルであると判断されるため、最新のファイル更新動作を判定する動作を終了する。
一方、同期部112は、TSyoursがTSmineより大きいと判断した場合(S33において「Yes」)、FILEyoursが最新のファイルであると判断されるため、FILEyoursを「最新」としてマークする(S34)。例えば、FILEyoursに対して最新のファイルである旨の情報が付されることにより「最新」としてマークされる。
ここで、図3の(ウ)を参照すると、図4に示したVCの更新動作がなされた結果、情報処理装置10Aにおいて(SC、Offset、VC)=(270、50、320)となっている状態が示されている。また、図3の(サ)を参照すると、図4に示したVCの更新動作がなされた結果、情報処理装置10Bにおいて(VC)=(300)となっている状態が示されている。続いて、オフライン状態において、図3の(ウ)に示したように、情報処理装置10Aの動作実行部111によってファイルが更新され、タイムスタンプには320が付されたとする。さらに、オフライン状態において、図3の(サ)に示したように、情報処理装置10Bの動作実行部111によってファイルが更新され、タイムスタンプには300が付されたとする。
ここで、図3の(エ)を参照すると、図4に示したVCの更新動作がなされた結果、情報処理装置10Aにおいて(SC、Offset、VC)=(350、50、400)となっている状態が示されている。また、図3の(シ)を参照すると、図4に示したVCの更新動作がなされた結果、情報処理装置10Bにおいて(VC)=(400)となっている状態が示されている。かかる状態において、情報処理装置10Aと情報処理装置10Bとがオンライン状態となったとする。このとき、VC同士は一致しているため、図5に示したVC同士を一致させる動作がなされたとしても、VCおよびOffsetは更新されずに済む。
続いて、図5に示した最新のファイル更新動作がなされると、TSyoursが300であり、TSmineが320であるため、S33において、TSyoursがTSmineより小さくなる。したがって、図3の(エ)に示すように、情報処理装置10Aにおいては自身のファイルが最新のままとなる。一方、情報処理装置10Bにおいては、S33において、TSyoursがTSmineより大きくなる。したがって、図3の(シ)に示すように、情報処理装置10Bにおいては同期部112によって相手のファイルが自身の記憶部130にコピーされて「最新」としてマークされる。
ここで、情報処理装置10AのSCが正常に単調増加されなくなる場合がある。例えば、情報処理装置10Aの内部時計を駆動している電池が完全放電した場合などにSCが正常に単調増加されなる可能性がある。そのとき、例えば、SCは0を示すようになってしまう。図3の(オ)を参照すると、情報処理装置10Aの内部時計が正常に単調増加されなくなった状態が示されている。本実施形態によれば、かかる状態に陥った場合、仮想時刻も正常に単調増加されなくなってしまう可能性がある。
ここで、図3の(カ)を参照すると、SCが0に一度戻ってしまったため、情報処理装置10Aにおいて(SC、Offset、VC)=(10、50、400)となっている状態が示されている。かかる状態において、図4に示したVCの更新動作がなされると、S13において、VCnewが、SC+Offset=10+50=60と算出されるため、S14において「No」に該当し、例えば、Deltaが10である場合には、S15において、Offsetが400−10+10=400と算出される。
したがって、次にS13に達したときには、VCが、VCnew=10+400=410と算出され、S14において「Yes」に該当し、S17において、VCが、VCnew=410によって更新される。したがって、図3に示すように、図3の(カ)においては、VCが400から410に更新される。なお、Deltaの値は10に限定されず、適宜に変更されてよい。かかる構成によれば、SCが正常に単調増加されなくなった状態においても、仮想時刻の単調増加は正常に維持される。
また、図3の(ス)を参照すると、図4に示したVCの更新動作がなされた結果、情報処理装置10Bにおいて(VC)=500となっている状態が示されている。かかる状態において、情報処理装置10Bの動作実行部111によってファイルの更新がなされたとする。このとき、情報処理装置10Bの同期部112は、ファイル更新時のVCをタイムスタンプとして記憶させる。図3の(ケ)に示した例では、情報処理装置10Bの同期部112は、タイムスタンプとして100を記憶させている。
ここで、図3の(キ)を参照すると、図4に示したVCの更新動作がなされた結果、情報処理装置10Aにおいて(SC、Offset、VC)=(110、400、510)となっている状態が示されている。また、図3の(セ)を参照すると、図4に示したVCの更新動作がなされた結果、情報処理装置10Bにおいて(VC)=(600)となっている状態が示されている。また、オフライン状態において、図3の(キ)に示したように、情報処理装置10Aの動作実行部111によってファイルが更新され、タイムスタンプには510が付されたとする。さらに、オフライン状態において、図3の(セ)に示したように、情報処理装置10Bの動作実行部111によってファイルが更新され、タイムスタンプには600が付されたとする。
ここで、図3の(ク)を参照すると、図4に示したVCの更新動作がなされた結果、情報処理装置10Aにおいて(SC、Offset、VC)=(210、400、610)となっている状態が示されている。また、図3の(ソ)を参照すると、図4に示したVCの更新動作がなされた結果、情報処理装置10Bにおいて(VC)=(700)となっている状態が示されている。かかる状態において、情報処理装置10Aと情報処理装置10Bとがオンライン状態となったとする。このとき、図5に示したVC同士を一致させる動作がなされると、S24において、VCyoursが700であり、VCmineが610であるため、S24において「Yes」に該当し、S25において、VCmineがVCyours=700に更新され、Offsetが700−210=490によって更新される。
続いて、図5に示した最新のファイル更新動作がなされると、TSyoursが600であり、TSmineが510であるため、S33において、TSyoursがTSmineより大きくなる。したがって、図3の(ク)に示すように、情報処理装置10Aにおいては同期部112によって相手のファイルが自身の記憶部130にコピーされて「最新」としてマークされる。一方、情報処理装置10Bにおいては、S33において、TSyoursがTSmineより小さくなる。したがって、図3の(ソ)に示すように、情報処理装置10Bにおいては自身のファイルが最新のままとなる。
続いて、本開示の実施形態に係る情報処理装置10の動作の変形例について説明する。まず、VCの更新動作の変形例について説明する。図7は、VCの更新動作の変形例を示すフローチャートである。なお、図7に示した例は、VCの更新動作の一例を示したに過ぎない。したがって、VCの更新動作は、図7に示した例に限定されない。まず、仮想時刻制御部113は、SCからDeltaに相当する時間経過が通知されると、VCを記憶部130から読み出す(S41)。記憶部130から読み出されるVCは、前回更新後の値あるいは初期値に相当し得る。
続いて、仮想時刻制御部113は、記憶部130から読み出したVCとDeltaとを加算し、加算結果を新たなVCに相当するVCnewとする(S42)。続いて、仮想時刻制御部113は、VCnewの値を記憶部130に書き込む(S43)。かかる処理により、VCを単調増加させることが可能となる。図7に示したVCの更新動作は、Deltaに相当する時間ごとに繰り返しなされればよい。
続いて、VC同士を一致させる動作の変形例について説明する。図8は、VC同士を一致させる動作の変形例を示すフローチャートである。なお、図8に示した例は、VC同士を一致させる動作の一例を示したに過ぎない。したがって、VC同士を一致させる動作は、図8に示した例に限定されない。まず、同期部112は、VCmineを記憶部130から読み出す(S51)。記憶部130から読み出されるVCmineは、自身のVCに相当し得る。また、同期部112は、通信部140からVCyoursを受け取る(S53)。VCyoursは、相手のVCに相当し得る。
続いて、同期部112は、記憶部130から読み出したVCmineと通信部140から受け取ったVCyoursとを比較する(S53)。このとき、同期部112は、VCyoursがVCmineより大きくないと判断した場合(S53において「No」)、すなわち、自分のVCが相手のVCと等しい、あるいは、自分のVCが相手のVCより大きい場合には、自身のVCを更新する必要がないと判断し、VC同士を一致させる動作を終了する。一方、同期部112は、VCyoursがVCmineより大きいと判断した場合(S53において「Yes」)、VCyoursによってVCmineを更新する(S54)。同期部112は、VCmineを記憶部130に書き込む(S55)。
以上、本開示の実施形態に係る情報処理装置10の機能詳細について説明した。
<4.情報処理システムの他の構成例>
続いて、本開示の実施形態に係る情報処理システム1の他の構成例について説明する。上記においては、情報処理システム1が2台の情報処理装置10を備える例を説明したが、情報処理システム1は、3台以上の情報処理装置10を備えてもよい。かかる場合には、3台以上の情報処理装置10が直接的または間接的に接続されており、直接的に接続された2台の情報処理装置10の間の同期処理が順に行われれば、3台以上の情報処理装置10の間の同期処理が行われ得る。
続いて、本開示の実施形態に係る情報処理システム1の他の構成例について説明する。上記においては、情報処理システム1が2台の情報処理装置10を備える例を説明したが、情報処理システム1は、3台以上の情報処理装置10を備えてもよい。かかる場合には、3台以上の情報処理装置10が直接的または間接的に接続されており、直接的に接続された2台の情報処理装置10の間の同期処理が順に行われれば、3台以上の情報処理装置10の間の同期処理が行われ得る。
3台以上の情報処理装置10が直接的または間接的に接続されるためのトポロジーの例は限定されない。例えば、3台以上の情報処理装置10が直接的または間接的に接続されるためのトポロジーは、1台の情報処理装置10に対して、他の情報処理装置10が直接的に接続されることによって形成されるトポロジー(スター型)であってもよい。図9は、情報処理システム1の他の構成例を示す図である。図9に示した例では、情報処理装置10Aに対して、情報処理装置10B〜10Dが直接的に接続されることによってスター型のトポロジーが形成されている。
また、例えば、3台以上の情報処理装置10が直接的または間接的に接続されるためのトポロジーは、複数の情報処理装置10が一列に接続されることによって形成されるトポロジー(ディジーチェーン型)であってもよい。図10は、情報処理システム1の他の構成例を示す図である。図10に示した例では、情報処理装置10Aに対して、情報処理装置10A〜10Dが一列に接続されることによってディージーチェーン型のトポロジーが形成されている。
以上、本開示の実施形態に係る情報処理システム1の他の構成例について説明した。
<5.情報処理装置のハードウェア構成例>
続いて、本開示の実施形態に係る情報処理装置10のハードウェア構成例について説明する。図11は、本開示の実施形態に係る情報処理装置10のハードウェア構成例を示す図である。ただし、図11に示したハードウェア構成例は、情報処理装置10のハードウェア構成の一例を示したに過ぎない。したがって、情報処理装置10のハードウェア構成は、図11に示した例に限定されない。
続いて、本開示の実施形態に係る情報処理装置10のハードウェア構成例について説明する。図11は、本開示の実施形態に係る情報処理装置10のハードウェア構成例を示す図である。ただし、図11に示したハードウェア構成例は、情報処理装置10のハードウェア構成の一例を示したに過ぎない。したがって、情報処理装置10のハードウェア構成は、図11に示した例に限定されない。
図11に示したように、情報処理装置10は、CPU(Central Processing Unit)801と、ROM(Read Only Memory)802と、RAM(Random Access Memory)803と、入力装置808と、出力装置810と、ストレージ装置811と、ドライブ812と、通信装置815とを備える。
CPU801は、演算処理装置および制御装置として機能し、各種プログラムに従って情報処理装置10内の動作全般を制御する。また、CPU801は、マイクロプロセッサであってもよい。ROM802は、CPU801が使用するプログラムや演算パラメータなどを記憶する。RAM803は、CPU801の実行において使用するプログラムや、その実行において適宜変化するパラメータなどを一時記憶する。これらはCPUバスなどから構成されるホストバスにより相互に接続されている。
入力装置808は、マウス、キーボード、タッチパネル、ボタン、マイクロフォン、スイッチおよびレバーなどユーザが情報を入力するための操作部と、ユーザによる入力に基づいて入力信号を生成し、CPU801に出力する入力制御回路などから構成されている。情報処理装置10のユーザは、該入力装置808を操作することにより、情報処理装置10に対して各種のデータを入力したり処理動作を指示したりすることができる。
出力装置810は、例えば、液晶ディスプレイ(LCD)装置、OLED(Organic Light Emitting Diode)装置およびランプなどの表示装置を含んでよい。さらに、出力装置810は、スピーカおよびヘッドホンなどの音声出力装置を含んでもよい。例えば、表示装置は、撮像された画像や生成された画像などを表示する。一方、音声出力装置は、音声データなどを音声に変換して出力する。
ストレージ装置811は、情報処理装置10の記憶部の一例として構成されたデータ格納用の装置である。ストレージ装置811は、記憶媒体、記憶媒体にデータを記録する記録装置、記憶媒体からデータを読み出す読出し装置および記憶媒体に記録されたデータを削除する削除装置などを含んでもよい。このストレージ装置811は、CPU801が実行するプログラムや各種データを格納する。
ドライブ812は、記憶媒体用リーダライタであり、情報処理装置10に内蔵、あるいは外付けされる。ドライブ812は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブル記憶媒体に記録されている情報を読み出して、RAM803に出力する。また、ドライブ812は、リムーバブル記憶媒体に情報を書き込むこともできる。
通信装置815は、例えば、ネットワークに接続するための通信デバイスなどで構成された通信インタフェースである。また、通信装置815は、無線LAN(Local Area Network)対応通信装置であっても、LTE(Long Term Evolution)対応通信装置であっても、有線による通信を行うワイヤー通信装置であってもよい。通信装置815は、例えば、ネットワークを介して他の装置と通信を行うことが可能である。
以上、本開示の実施形態に係る情報処理装置10のハードウェア構成例について説明した。
<6.むすび>
以上説明したように、本開示の実施形態によれば、仮想時刻制御部113は、システム時刻に基づいて第1の仮想時刻を更新する仮想時刻制御部113と、第1の仮想時刻と他の情報処理装置10Bによって更新される第2の仮想時刻とに基づいて情報処理装置10Bとの間で所定のデータ同期処理を行う同期部112と、を備える、情報処理装置10Aが提供される。かかる構成によれば、情報処理装置10Aと情報処理装置10Bとの間においてより正確にデータ同期処理を行うことが可能となる。
以上説明したように、本開示の実施形態によれば、仮想時刻制御部113は、システム時刻に基づいて第1の仮想時刻を更新する仮想時刻制御部113と、第1の仮想時刻と他の情報処理装置10Bによって更新される第2の仮想時刻とに基づいて情報処理装置10Bとの間で所定のデータ同期処理を行う同期部112と、を備える、情報処理装置10Aが提供される。かかる構成によれば、情報処理装置10Aと情報処理装置10Bとの間においてより正確にデータ同期処理を行うことが可能となる。
また、かかる構成においては、情報処理装置10Aと情報処理装置10Bとにおいてシステム時刻は同期されていなくてよい。例えば、情報処理装置10Aおよび情報処理装置10Bそれぞれからアクセス可能なマスタクロックを設ける手法も想定されるが、かかる手法を採用する場合には、マスタクロックへの実時刻の問い合わせのために通信負荷が掛かることが予想される。本実施形態によれば、かかる通信負荷が不要となる。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
例えば、情報処理装置10の動作は、必ずしもフローチャートに記載された順序に沿って時系列になされる必要はない。例えば、情報処理装置10の動作は、フローチャートに記載した順序と異なる順序でなされてもよいし、フローチャートに記載された動作の少なくとも一部が並列的になされてもよい。
また、コンピュータに内蔵されるCPU、ROMおよびRAMなどのハードウェアを、上記した情報処理装置10が有する機能と同等の機能を発揮させるためのプログラムも作成可能である。また、該プログラムを記録した、コンピュータに読み取り可能な記録媒体も提供され得る。
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
なお、以下のような構成も本開示の技術的範囲に属する。
(1)
システム時刻に基づいて第1の仮想時刻を更新する仮想時刻制御部と、
前記第1の仮想時刻と他の情報処理装置によって更新される第2の仮想時刻とに基づいて前記他の情報処理装置との間で所定のデータ同期処理を行う同期部と、
を備える、情報処理装置。
(2)
前記同期部は、前記第1の仮想時刻と前記第2の仮想時刻とを比較して得られる比較結果に基づいて、前記第1の仮想時刻を制御する、
前記(1)に記載の情報処理装置。
(3)
前記同期部は、前記第2の仮想時刻が前記第1の仮想時刻よりも大きい場合、前記第1の仮想時刻を前記第2の仮想時刻に合わせる、
前記(2)に記載の情報処理装置。
(4)
所定の動作を実行する動作実行部を備え、
前記同期部は、前記所定の動作が実行されたときの前記第1の仮想時刻を第1のタイムスタンプとして記憶部に記憶させ、前記第1のタイムスタンプに基づいて前記データ同期処理を行う、
前記(1)〜3の何れか一項に記載の情報処理装置。
(5)
前記同期部は、前記他の情報処理装置によって所定の動作がなされたときの前記第2の仮想時刻が第2のタイムスタンプとして取得された場合、前記第1のタイムスタンプと前記第2のタイムスタンプとに基づいて前記データ同期処理を行う、
前記(4)に記載の情報処理装置。
(6)
前記同期部は、前記第1のタイムスタンプと前記第2のタイムスタンプとの大小関係に基づいて、前記動作実行部および前記他の情報処理装置の何れか一方の動作をより最新の動作と判定する、
前記(5)に記載の情報処理装置。
(7)
前記動作実行部は、前記記憶部により記憶された第1のファイルの更新動作を実行し、
前記他の情報処理装置は、第2のファイルの更新動作を実行し、
前記同期部は、前記大小関係に基づいて、前記第1のファイルの更新動作および前記第2のファイルの更新動作の何れか一方を最新のファイル更新動作と判定する、
前記(6)に記載の情報処理装置。
(8)
前記同期部は、前記第2のファイルの更新動作がより新しいファイル更新動作と判定した場合、前記他の情報処理装置から提供された前記第2のファイルに対して最新のファイルである旨の情報を付する、
前記(7)に記載の情報処理装置。
(9)
前記仮想時刻制御部は、前記システム時刻を基準とした前記第1の仮想時刻の差分時間を最新のシステム時刻に加算することにより、前記第1の仮想時刻を更新する、
前記(1)〜8の何れか一項に記載の情報処理装置。
(10)
前記仮想時刻制御部は、前記最新のシステム時刻に対して前記差分時間を加算した結果が前回更新後の第1の仮想時刻から増加しなかった場合、前記前回更新後の第1の仮想時刻から前記最新のシステム時刻を減算して所定の時間を加算することにより前記差分時間を調整する、
前記(9)に記載の情報処理装置。
(11)
前記同期部は、前記第2の仮想時刻が前記第1の仮想時刻よりも大きい場合、前記第2の仮想時刻から前記最新のシステム時刻を減算した結果により前記差分時間を更新する、
前記(9)または(10)に記載の情報処理装置。
(12)
前記仮想時刻制御部は、前記システム時刻に基づいて所定の時間ごとに通知される情報を受け取った場合に前記第1の仮想時刻を所定の時間増加させることにより、前記第1の仮想時刻を更新する、
前記(1)〜8の何れか一項に記載の情報処理装置。
(13)
システム時刻に基づいて第1の仮想時刻を更新することと、
前記第1の仮想時刻と他の情報処理装置によって更新される第2の仮想時刻とに基づいて前記他の情報処理装置との間でプロセッサにより所定のデータ同期処理を行うことと、
を含む、情報処理方法。
(14)
コンピュータを、
システム時刻に基づいて第1の仮想時刻を更新する仮想時刻制御部と、
前記第1の仮想時刻と他の情報処理装置によって更新される第2の仮想時刻とに基づいて前記他の情報処理装置との間で所定のデータ同期処理を行う同期部と、
を備える情報処理装置として機能させるためのプログラムを記録した、コンピュータに読み取り可能な記録媒体。
(15)
第1の情報処理装置と第2の情報処理装置とを有し、
前記第1の情報処理装置は、
システム時刻に基づいて第1の仮想時刻を更新する仮想時刻制御部と、
前記第1の仮想時刻と前記第2の情報処理装置によって更新される第2の仮想時刻とに基づいて前記第2の情報処理装置との間で所定のデータ同期処理を行う同期部と、
を備え、
前記第2の情報処理装置は、
システム時刻に基づいて前記第2の仮想時刻を更新する仮想時刻制御部と、
前記第1の仮想時刻と前記第2の仮想時刻とに基づいて前記第1の情報処理装置との間で所定のデータ同期処理を行う同期部と、
を備える、情報処理システム。
(1)
システム時刻に基づいて第1の仮想時刻を更新する仮想時刻制御部と、
前記第1の仮想時刻と他の情報処理装置によって更新される第2の仮想時刻とに基づいて前記他の情報処理装置との間で所定のデータ同期処理を行う同期部と、
を備える、情報処理装置。
(2)
前記同期部は、前記第1の仮想時刻と前記第2の仮想時刻とを比較して得られる比較結果に基づいて、前記第1の仮想時刻を制御する、
前記(1)に記載の情報処理装置。
(3)
前記同期部は、前記第2の仮想時刻が前記第1の仮想時刻よりも大きい場合、前記第1の仮想時刻を前記第2の仮想時刻に合わせる、
前記(2)に記載の情報処理装置。
(4)
所定の動作を実行する動作実行部を備え、
前記同期部は、前記所定の動作が実行されたときの前記第1の仮想時刻を第1のタイムスタンプとして記憶部に記憶させ、前記第1のタイムスタンプに基づいて前記データ同期処理を行う、
前記(1)〜3の何れか一項に記載の情報処理装置。
(5)
前記同期部は、前記他の情報処理装置によって所定の動作がなされたときの前記第2の仮想時刻が第2のタイムスタンプとして取得された場合、前記第1のタイムスタンプと前記第2のタイムスタンプとに基づいて前記データ同期処理を行う、
前記(4)に記載の情報処理装置。
(6)
前記同期部は、前記第1のタイムスタンプと前記第2のタイムスタンプとの大小関係に基づいて、前記動作実行部および前記他の情報処理装置の何れか一方の動作をより最新の動作と判定する、
前記(5)に記載の情報処理装置。
(7)
前記動作実行部は、前記記憶部により記憶された第1のファイルの更新動作を実行し、
前記他の情報処理装置は、第2のファイルの更新動作を実行し、
前記同期部は、前記大小関係に基づいて、前記第1のファイルの更新動作および前記第2のファイルの更新動作の何れか一方を最新のファイル更新動作と判定する、
前記(6)に記載の情報処理装置。
(8)
前記同期部は、前記第2のファイルの更新動作がより新しいファイル更新動作と判定した場合、前記他の情報処理装置から提供された前記第2のファイルに対して最新のファイルである旨の情報を付する、
前記(7)に記載の情報処理装置。
(9)
前記仮想時刻制御部は、前記システム時刻を基準とした前記第1の仮想時刻の差分時間を最新のシステム時刻に加算することにより、前記第1の仮想時刻を更新する、
前記(1)〜8の何れか一項に記載の情報処理装置。
(10)
前記仮想時刻制御部は、前記最新のシステム時刻に対して前記差分時間を加算した結果が前回更新後の第1の仮想時刻から増加しなかった場合、前記前回更新後の第1の仮想時刻から前記最新のシステム時刻を減算して所定の時間を加算することにより前記差分時間を調整する、
前記(9)に記載の情報処理装置。
(11)
前記同期部は、前記第2の仮想時刻が前記第1の仮想時刻よりも大きい場合、前記第2の仮想時刻から前記最新のシステム時刻を減算した結果により前記差分時間を更新する、
前記(9)または(10)に記載の情報処理装置。
(12)
前記仮想時刻制御部は、前記システム時刻に基づいて所定の時間ごとに通知される情報を受け取った場合に前記第1の仮想時刻を所定の時間増加させることにより、前記第1の仮想時刻を更新する、
前記(1)〜8の何れか一項に記載の情報処理装置。
(13)
システム時刻に基づいて第1の仮想時刻を更新することと、
前記第1の仮想時刻と他の情報処理装置によって更新される第2の仮想時刻とに基づいて前記他の情報処理装置との間でプロセッサにより所定のデータ同期処理を行うことと、
を含む、情報処理方法。
(14)
コンピュータを、
システム時刻に基づいて第1の仮想時刻を更新する仮想時刻制御部と、
前記第1の仮想時刻と他の情報処理装置によって更新される第2の仮想時刻とに基づいて前記他の情報処理装置との間で所定のデータ同期処理を行う同期部と、
を備える情報処理装置として機能させるためのプログラムを記録した、コンピュータに読み取り可能な記録媒体。
(15)
第1の情報処理装置と第2の情報処理装置とを有し、
前記第1の情報処理装置は、
システム時刻に基づいて第1の仮想時刻を更新する仮想時刻制御部と、
前記第1の仮想時刻と前記第2の情報処理装置によって更新される第2の仮想時刻とに基づいて前記第2の情報処理装置との間で所定のデータ同期処理を行う同期部と、
を備え、
前記第2の情報処理装置は、
システム時刻に基づいて前記第2の仮想時刻を更新する仮想時刻制御部と、
前記第1の仮想時刻と前記第2の仮想時刻とに基づいて前記第1の情報処理装置との間で所定のデータ同期処理を行う同期部と、
を備える、情報処理システム。
1 情報処理システム
10(10A、10B) 情報処理装置
110 制御部
111 動作実行部
112 同期部
113 仮想時刻制御部
120 入力部
130 記憶部
140 通信部
150 表示部
10(10A、10B) 情報処理装置
110 制御部
111 動作実行部
112 同期部
113 仮想時刻制御部
120 入力部
130 記憶部
140 通信部
150 表示部
Claims (14)
- システム時刻に基づいて第1の仮想時刻を更新する仮想時刻制御部と、
前記第1の仮想時刻と他の情報処理装置によって更新される第2の仮想時刻とに基づいて前記他の情報処理装置との間で所定のデータ同期処理を行う同期部と、
を備える、情報処理装置。 - 前記同期部は、前記第1の仮想時刻と前記第2の仮想時刻とを比較して得られる比較結果に基づいて、前記第1の仮想時刻を制御する、
請求項1に記載の情報処理装置。 - 前記同期部は、前記第2の仮想時刻が前記第1の仮想時刻よりも大きい場合、前記第1の仮想時刻を前記第2の仮想時刻に合わせる、
請求項2に記載の情報処理装置。 - 所定の動作を実行する動作実行部を備え、
前記同期部は、前記所定の動作が実行されたときの前記第1の仮想時刻を第1のタイムスタンプとして記憶部に記憶させ、前記第1のタイムスタンプに基づいて前記データ同期処理を行う、
請求項1に記載の情報処理装置。 - 前記同期部は、前記他の情報処理装置によって所定の動作がなされたときの前記第2の仮想時刻が第2のタイムスタンプとして取得された場合、前記第1のタイムスタンプと前記第2のタイムスタンプとに基づいて前記データ同期処理を行う、
請求項4に記載の情報処理装置。 - 前記同期部は、前記第1のタイムスタンプと前記第2のタイムスタンプとの大小関係に基づいて、前記動作実行部および前記他の情報処理装置の何れか一方の動作をより最新の動作と判定する、
請求項5に記載の情報処理装置。 - 前記動作実行部は、前記記憶部により記憶された第1のファイルの更新動作を実行し、
前記他の情報処理装置は、第2のファイルの更新動作を実行し、
前記同期部は、前記大小関係に基づいて、前記第1のファイルの更新動作および前記第2のファイルの更新動作の何れか一方を最新のファイル更新動作と判定する、
請求項6に記載の情報処理装置。 - 前記同期部は、前記第2のファイルの更新動作がより新しいファイル更新動作と判定した場合、前記他の情報処理装置から提供された前記第2のファイルに対して最新のファイルである旨の情報を付する、
請求項7に記載の情報処理装置。 - 前記仮想時刻制御部は、前記システム時刻を基準とした前記第1の仮想時刻の差分時間を最新のシステム時刻に加算することにより、前記第1の仮想時刻を更新する、
請求項1に記載の情報処理装置。 - 前記仮想時刻制御部は、前記最新のシステム時刻に対して前記差分時間を加算した結果が前回更新後の第1の仮想時刻から増加しなかった場合、前記前回更新後の第1の仮想時刻から前記最新のシステム時刻を減算して所定の時間を加算することにより前記差分時間を調整する、
請求項9に記載の情報処理装置。 - 前記同期部は、前記第2の仮想時刻が前記第1の仮想時刻よりも大きい場合、前記第2の仮想時刻から前記最新のシステム時刻を減算した結果により前記差分時間を更新する、
請求項9に記載の情報処理装置。 - 前記仮想時刻制御部は、前記システム時刻に基づいて所定の時間ごとに通知される情報を受け取った場合に前記第1の仮想時刻を所定の時間増加させることにより、前記第1の仮想時刻を更新する、
請求項1に記載の情報処理装置。 - システム時刻に基づいて第1の仮想時刻を更新することと、
前記第1の仮想時刻と他の情報処理装置によって更新される第2の仮想時刻とに基づいて前記他の情報処理装置との間でプロセッサにより所定のデータ同期処理を行うことと、
を含む、情報処理方法。 - コンピュータを、
システム時刻に基づいて第1の仮想時刻を更新する仮想時刻制御部と、
前記第1の仮想時刻と他の情報処理装置によって更新される第2の仮想時刻とに基づいて前記他の情報処理装置との間で所定のデータ同期処理を行う同期部と、
を備える情報処理装置として機能させるためのプログラムを記録した、コンピュータに読み取り可能な記録媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013235884A JP2015095220A (ja) | 2013-11-14 | 2013-11-14 | 情報処理装置、情報処理方法および記録媒体 |
US14/533,436 US9632528B2 (en) | 2013-11-14 | 2014-11-05 | Information processing apparatus, information processing method, and recording medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013235884A JP2015095220A (ja) | 2013-11-14 | 2013-11-14 | 情報処理装置、情報処理方法および記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015095220A true JP2015095220A (ja) | 2015-05-18 |
Family
ID=53044879
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013235884A Pending JP2015095220A (ja) | 2013-11-14 | 2013-11-14 | 情報処理装置、情報処理方法および記録媒体 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9632528B2 (ja) |
JP (1) | JP2015095220A (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10866963B2 (en) | 2017-12-28 | 2020-12-15 | Dropbox, Inc. | File system authentication |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5602992A (en) * | 1993-11-29 | 1997-02-11 | Intel Corporation | System for synchronizing data stream transferred from server to client by initializing clock when first packet is received and comparing packet time information with clock |
US6122673A (en) * | 1998-07-22 | 2000-09-19 | Fore Systems, Inc. | Port scheduler and method for scheduling service providing guarantees, hierarchical rate limiting with/without overbooking capability |
EP1601124B1 (en) * | 2004-05-28 | 2008-01-23 | Hitachi, Ltd. | Method and apparatus synchronizing clocks of network nodes |
EP2299614B1 (de) * | 2009-09-17 | 2018-08-15 | Siemens Aktiengesellschaft | Vorrichtung und Verfahren zur Zeitsynchronisation in einem Kommunikationsnetz |
US8837530B2 (en) * | 2010-03-12 | 2014-09-16 | University Of Maryland | Method and system for adaptive synchronization of timing information generated by independently clocked communication nodes |
JP5488178B2 (ja) | 2010-04-30 | 2014-05-14 | 富士通株式会社 | データ管理プログラム及び方法、並びにノード装置 |
-
2013
- 2013-11-14 JP JP2013235884A patent/JP2015095220A/ja active Pending
-
2014
- 2014-11-05 US US14/533,436 patent/US9632528B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20150134998A1 (en) | 2015-05-14 |
US9632528B2 (en) | 2017-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9666173B2 (en) | Method for playing virtual musical instrument and electronic device for supporting the same | |
US8441377B2 (en) | Method of dynamically adjusting long-press delay time, electronic device, and computer-readable medium | |
JP6283703B2 (ja) | ローカルおよびリモートのメディアアイテム管理 | |
CN106155750B (zh) | 一种资源文件的加载方法和装置 | |
JP5774742B2 (ja) | データ重複除去方法及び装置 | |
EP2772903B1 (en) | Electroacoustic signal emitter device and electroacoustic signal emitter method | |
US20110055851A1 (en) | Controlling integrated circuits including remote activation or deactivation | |
US11768979B2 (en) | Information processing device and information processing method | |
JP2011113349A (ja) | 節電通知システム、端末装置、方法及びプログラム | |
JP2018506118A (ja) | ターゲット対象の動き軌道を決定するための方法およびデバイス、ならびに記憶媒体 | |
KR20150053694A (ko) | 애플리케이션 동작 방법 및 시스템 | |
US8531469B2 (en) | Media synchronization via image queue | |
EP4195623A1 (en) | Application interface migration system, method, and related device | |
EP2749992A2 (en) | Information processing device, information processing method and computer program to determine a mood | |
JP6682953B2 (ja) | 楽譜表示制御方法、楽譜表示制御装置、楽譜表示制御プログラム | |
US20190065590A1 (en) | Audio file play control method and audio play apparatus | |
JP2015095220A (ja) | 情報処理装置、情報処理方法および記録媒体 | |
KR100664964B1 (ko) | 휴대 기기를 제어하는 장치 및 방법 | |
JP6146076B2 (ja) | 通信装置への設定推薦の提供 | |
CN112426722B (zh) | 节点图的热更新方法、装置、存储介质及计算机设备 | |
CN113918246B (zh) | 功能控制方法、功能控制装置、存储介质与电子设备 | |
CN116841794A (zh) | 一种数据的校验方法、装置以及存储介质 | |
JP2021085952A (ja) | 音楽再生装置、音楽再生方法、及び、音楽再生プログラム | |
JP2015132937A (ja) | 情報処理装置、情報処理方法および記録媒体 | |
US10803843B2 (en) | Computationally efficient language based user interface event sound selection |