説明

クライアント端末、サーバ端末、時刻同期方法、プログラム

【課題】正確であるとの信頼性の高い時刻情報に基づき時刻同期を行うことが可能なクライアント端末やサーバ端末等を提供する。
【解決手段】時刻同期システム1において、NTPサーバ10とNTPクライアント20がネットワーク30を介して接続され、NTPクライアント20は同期要求をNTPサーバ10に送り、同期要求を受信したNTPサーバ10は前回の同期時刻161、同期時のずれ162、同期状況163などを含む同期判定情報106と時刻情報105をNTPクライアント20に送信する。NTPクライアント20は、時刻情報105と同期判定情報106を受信し、同期判定情報106等に基づき、時刻情報105について、時刻同期を実施するか否かを判定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、クライアント端末、サーバ端末等に係り、詳しくは、正確であるとの信頼性の高い時刻情報に基づく時刻同期が可能な、クライアント端末、サーバ端末等に関する。
【背景技術】
【0002】
電子商取引等、各種サーバのログ管理において、時刻は非常に重要な情報であり、各種サーバは、常に正確な時刻を保持する必要がある。従来、サーバの多くは、NTP(Network Time Protocol)による時刻同期を実施している(例えば、特許文献1)。
すなわち、下位のサーバであるNTPクライアントが、上位のサーバであるNTPサーバから時刻情報を受け取り、この時刻情報に基づき、NTPクライアントの時刻をNTPサーバの時刻に同期させる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2006−322788号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、NTPサーバの時刻情報が常に正確であるという保証はなく、正確でない場合であっても、NTPクライアントがその時刻情報に基づいた同期を実施しまうという問題がある。
【0005】
この問題を解消するために、NTPサーバの時刻情報を信頼させる方法が種々考えられている。例えば、NTPサーバからの時刻情報により同期を行う場合に、証明書による認証処理を行うことにより、悪意のあるNTPサーバを排除する方法がある。また、同期する時刻情報を複数得るために複数のNTPサーバを設定して、例えば自身の時刻と最もずれの少ない同期先のNTPサーバを選択する方法もある。
【0006】
しかしながら、これらの方法では、悪意のあるNTPサーバを排除したり、自身の時刻と大きく異なる時刻情報による同期を行わないようにすることができるが、NTPサーバが提供する時刻情報そのものが正確であるかを判断することはできない。悪意のないサーバであっても、時刻情報は正確でない場合もあり、また、自身の時刻と近い時刻情報であっても、これが正確でない場合も考えられる。
【0007】
本発明は、上記の問題を鑑みてなされたものであり、その目的は、正確であるとの信頼性の高い時刻情報に基づき時刻同期を行うことが可能なクライアント端末やサーバ端末等を提供することである。
【課題を解決するための手段】
【0008】
前述した目的を達するために第1の発明は、サーバ端末とネットワークにより接続されたクライアント端末であって、前記サーバ端末に時刻同期要求を送信する送信手段と、前記サーバ端末から、当該サーバ端末が前回時刻同期を実施した時刻、前回時刻同期の時刻のずれ、前回時刻同期の状況を含む同期判定情報と時刻情報を受信する受信手段と、前記同期判定情報を元に、前記サーバ端末が時刻同期を実施していない場合、もしくは、前記サーバ端末が前回時刻同期の調整中かつ前回時刻同期の際の時刻のずれが所定の時間以上の場合、前記時刻情報について、前記クライアント端末の時刻同期を実施しないと判定する判定手段と、前記時刻情報について時刻同期を実施しないと判定されない場合に、前記時刻情報に基づき、時刻同期を実施する時刻同期手段と、を具備することを特徴とするクライアント端末である。
【0009】
前記同期判定情報は、前記サーバ端末における所定のイベントの発生状況を含み、前記判定手段は、前記同期判定情報を元に、さらに、所定のイベントの発生後に前記サーバ端末が時刻同期を行っていない場合、前記クライアント端末の時刻同期を実施しないと判定する。
【0010】
また、前記判定手段は、さらに、前記サーバ端末から受信した時刻情報と、前記クライアント端末の時刻情報とのずれが、前記クライアント端末の前回時刻同期の際の時刻のずれより所定の時間大きい場合、前記クライアント端末の時刻同期を実施しないと判定する。
【0011】
加えて、前記クライアント端末を複数の前記サーバ端末と接続し、前記判定手段は、さらに、複数の前記サーバ端末から受信し、時刻同期を実施しないと判定されなかった時刻情報のいずれか2つに、所定の時間以上のずれがある場合に、前記クライアント端末の時刻同期を実施しないと判定してもよい。
【0012】
第1の発明により、クライアント端末が、時刻情報の信頼性を示し、時刻同期を行うか否かを判定可能な同期判定情報を時刻情報とともにサーバ端末から受け取る。クライアント端末は、この同期判定情報を元に同期をするか否かを判定し、信頼に足りうる時刻情報に基づく同期を実施することが可能になる。
例えば、サーバ端末が前回時刻同期を実施した時刻や、前回時刻同期の際の時刻のずれ、前回時刻同期の状況などを用いて、サーバ端末が時刻同期を実施していない場合や、サーバ端末が前回時刻同期の調整中かつ前回時刻同期の際の時刻のずれが所定の時間以上の場合には時刻同期を行わないことで、信頼性の低い時刻情報に基づき時刻同期を行う可能性が低くなる。
【0013】
さらに、リブートや、ハードウエア障害、手動による時刻変更などのイベント後に時刻同期を行っていないサーバ端末からの時刻情報に基づく時刻同期を排除することで、より信頼性の高い時刻情報に基づく時刻同期が可能になる。
【0014】
また、クライアント端末の前回時刻同期の際の時刻のずれを用いて同期するか否かの判定を行ったり、複数のサーバ端末から受け取った時刻情報同士のずれを判定に用いることもできる。このように、クライアント端末側の情報や、複数のサーバ端末からの時刻情報同士のずれも判定に利用することで、さらに信頼性の高い時刻情報により時刻同期を行うことが可能になる。
【0015】
第2の発明は、クライアント端末とネットワークにより接続されたサーバ端末であって、当該サーバ端末が前回時刻同期を実施した時刻、前回時刻同期の際の時刻のずれ、前回時刻同期の状況を含む同期判定情報を記憶する記憶手段と、前記クライアント端末からの時刻同期要求を受けて、前記記憶手段により記憶されている前記同期判定情報と時刻情報を前記クライアント端末に送信する送信手段と、を具備し、前記同期判定情報は、前記クライアント端末で、前記サーバ端末が時刻同期を実施していない場合、もしくは、前記サーバ端末が前回時刻同期の調整中かつ前回時刻同期の際の時刻のずれが所定の時間以上の場合、前記時刻情報について、前記クライアント端末の時刻同期を実施しないと判定する際に用いられることを特徴とするサーバ端末である。
【0016】
第3の発明は、サーバ端末とクライアント端末がネットワークにより接続されてなる時刻同期システムにおいて時刻同期を行う時刻同期方法であって、前記サーバ端末は、当該サーバ端末が前回時刻同期を実施した時刻、前回時刻同期の際の時刻のずれ、前回時刻同期の状況を含む同期判定情報を記憶する記憶手段を有し、前記クライアント端末からの時刻同期要求を受けて、前記記憶手段で記憶されている前記同期判定情報と時刻情報を送信するステップを実行し、前記クライアント端末は、前記サーバに時刻同期要求を送信するステップと、前記サーバ端末から前記同期判定情報と前記時刻情報を受信するステップと、前記同期判定情報を元に、前記サーバ端末が時刻同期を実施していない場合、もしくは、前記サーバ端末が前回時刻同期の調整中かつ前回時刻同期の際の時刻のずれが所定の時間以上の場合、前記時刻情報について、前記クライアント端末の時刻同期を実施しないと判定するステップと、前記時刻情報について時刻同期を実施しないと判定されない場合に、前記時刻情報に基づき、時刻同期を実施するステップと、を実行することを特徴とする時刻同期方法である。
【0017】
第4の発明は、コンピュータを、第1の発明のクライアント端末として機能させるためのプログラムである。
【発明の効果】
【0018】
本発明により、正確であるとの信頼性の高い時刻情報に基づき時刻同期を行うことが可能なクライアント端末やサーバ端末等を提供することが可能になる。
【図面の簡単な説明】
【0019】
【図1】本発明の実施形態に係る時刻同期システム1の構成を示す図
【図2】NTPサーバ10およびNTPクライアント20のハードウエア構成を示す図
【図3】本発明の実施形態に係る時刻同期システム1の機能構成を示す図
【図4】時刻同期システム1の処理の流れを示すフローチャート
【図5】NTPサーバ10のデータを説明する図
【図6】NTPクライアント20のデータを説明する図
【図7】判定処理(S303)の流れを示すフローチャート
【図8】時刻同期システム500の構成を示す図
【発明を実施するための形態】
【0020】
以下、図面に基づいて本発明の実施形態について説明する。
図1は、本実施形態に係る時刻同期システム1の構成を示す図である。図1に示すように、時刻同期システム1では、NTPサーバ10(サーバ端末)と、NTPクライアント20(クライアント端末)とがネットワーク30で接続される。
【0021】
NTPサーバ10とNTPクライアント20は、時刻情報等の授受に関する2者間の相対的な上位・下位関係を示すものであり、NTPサーバ10はNTPクライアント20に時刻情報等を送信する側、NTPクライアント20はNTPサーバ10から時刻情報等を受信し、当該時刻情報に基づき自身の時刻情報をこれにあわせるように時刻同期を行う側を指す。
【0022】
図2は、NTPサーバ10およびNTPクライアント20のハードウエア構成を示す図である。
図2に示すように、NTPサーバ10およびNTPクライアント20は、制御部11、記憶部12、メディア入出力部13、通信制御部14、入力部15、表示部16、周辺機器I/F部17等が、バス18を介して接続された構成である。
【0023】
制御部11は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等で構成される。
CPUは、記憶部12、ROM、記録媒体等に格納されるプログラムをRAM上のワークメモリ領域に呼び出して実行し、バス18を介して接続された各装置を駆動制御し、時刻同期システム1が行う後述する処理を実現する。ROMは、不揮発性メモリであり、ブートプログラムやBIOS等のプログラム、データ等を恒久的に保持している。RAMは、揮発性メモリであり、記憶部12、ROM、記録媒体等からロードしたプログラム、データ等を一時的に保持するとともに、制御部11が各種処理を行う為に使用するワークエリアを備える。
【0024】
記憶部12は、HDD(ハードディスクドライブ)等であり、制御部11が実行するプログラム、プログラム実行に必要なデータ、OS(オペレーティングシステム)等が格納される。プログラムに関しては、OS(オペレーティングシステム)に相当する制御プログラムや、後述する処理をコンピュータに実行させるためのアプリケーションプログラムが格納されている。
これらの各プログラムコードは、制御部11により必要に応じて読み出されてRAMに移され、CPUに読み出されて各種の手段として実行される。
【0025】
メディア入出力部13(ドライブ装置)は、データの入出力を行い、例えば、CDドライブ(−ROM、−R、−RW等)、DVDドライブ(−ROM、−R、−RW等)等のメディア入出力装置を有する。
通信制御部14は、通信制御装置、通信ポート等を有し、他のサーバ等の装置との通信を媒介する通信インタフェースであり、ネットワークを介して他の装置との通信制御を行う。ネットワークは、有線、無線を問わない。
【0026】
入力部15は、データの入力を行い、例えば、キーボード、マウス等のポインティングデバイス、テンキー等の入力装置を有する。
表示部16は、CRTモニタ、液晶パネル等のディスプレイ装置、およびディスプレイ装置と連携して表示機能を実現するための論理回路等を有する。
【0027】
周辺機器I/F(インタフェース)部17は、周辺機器を接続させるためのポートであり、周辺機器I/F部17を介して周辺機器とのデータの送受信を行う。周辺機器I/F部17は、USB等で構成されており、通常複数の周辺機器I/Fを有する。周辺機器との接続形態は有線、無線を問わない。
バス18は、各装置間の制御信号、データ信号等の授受を媒介する経路である。
【0028】
図3は、本実施形態の時刻同期システム1における機能構成を示す図である。
図3に示すように、NTPサーバ10は、同期要求受信部101、時刻情報/同期判定情報送信部103、ログ情報記録部104を有し、記憶部12に時刻情報105、同期判定情報106、ログ情報107等を記憶する。
【0029】
同期要求受信部101は、NTPサーバ10の制御部11が、NTPクライアント20からの同期要求を受信するものである。
時刻情報/同期判定情報送信部103は、NTPサーバ10の制御部11が、NTPサーバ10が有する時刻情報105と、同期判定情報106を、NTPクライアント20に送信するものである。
ログ情報記録部104は、NTPサーバ10の制御部11が、NTPクライアント20から受信した情報を元に、ログ情報107を作成し記憶部12へ記憶するものである。
【0030】
時刻情報105は、NTPサーバ10の内部時計の情報である。
同期判定情報106は、NTPクライアント20が同期判定に使用するための情報である。
ログ情報107は、NTPクライアント20の同期状況を管理するための情報である。
時刻情報105、同期判定情報106、ログ情報107の詳細は後述する。
【0031】
また、NTPクライアント20は、同期要求送信部201、時刻情報/同期判定情報受信部202、同期判定部203、同期処理部205を有し、記憶部12に時刻情報207、同期判定情報208、同期情報209等を記憶する。
【0032】
同期要求送信部201は、NTPクライアント20の制御部11が、時刻同期を行うための同期要求をNTPサーバ10へ送信するものである。
時刻情報/同期判定情報受信部202は、NTPクライアント20の制御部11が、時刻情報105と、同期判定情報106を、NTPサーバ10から受信するものである。
同期判定部203は、NTPクライアント20の制御部11が、同期判定情報106等に基づき、時刻同期を実施するか否かを判定するものである。
同期処理部205は、NTPクライアント20の制御部11が、同期判定部203が時刻同期を実施すると判定した場合に、時刻情報207を時刻情報105に基づいて同期させるとともに、NTPクライアント20の同期情報209を記録してNTPサーバ10に送信するものである。
【0033】
時刻情報207は、NTPクライアント20の内部時計の情報である。
同期判定情報208は、NTPクライアント20が同期判定に使用するための情報である。
同期情報209は、NTPクライアント20の同期状況を示す情報である。
時刻情報207、同期判定情報208、同期情報209の詳細は後述する。
【0034】
次に、図4〜図7に沿って、時刻同期システム1の処理の流れについて説明する。
図4は、時刻同期システム1の処理の流れを示すフローチャートである。
また、図5は、NTPサーバ10のデータである、時刻情報105、同期判定情報106、ログ情報107を説明する図、図6は、NTPクライアント20のデータである、時刻情報207、同期判定情報208、同期情報209を説明する図である。
また、図7は、同期判定処理の流れを示すフローチャートである。
【0035】
図4に示すように、まず、NTPクライアント20の制御部11は、NTPサーバ10にNTPクライアント20のIPアドレスを含む時刻同期要求を送信する(S301)。
NTPサーバ10の制御部11は、時刻同期要求を受信し、時刻情報105と、同期判定情報106をNTPクライアント20に送信する(S302)。また、NTPサーバ10は、ログ情報107としてNTPクライアント20のIPアドレスと同期要求時刻を記録する。
【0036】
ここで、図5(a)、(b)、(c)に沿って、時刻情報105、同期判定情報106、ログ情報107について説明する。
【0037】
図5(a)に示すように、時刻情報105は、NTPサーバ10の内部時計の日付と時刻より成る。
【0038】
図5(b)に示すように、同期判定情報106は、前回の同期時刻161、同期時のずれ162、同期状況163、前回のリブート時刻164、ハードウエア障害状況165、前回の手動時刻変更時刻166等からなる。
【0039】
前回の同期時刻161(前回時刻同期を実施した時刻)は、NTPサーバ10が前回、時刻同期を実施(開始)した日付、日時である。NTPサーバ10は、さらに上位のサーバに対してNTPクライアントとして時刻同期を行う。前回の同期時刻161は、この時刻同期を実施した時刻である。
【0040】
同期時のずれ162(前回時刻同期の際の時刻のずれ)は、前回の時刻同期時の、それまでのNTPサーバ10自身の時刻情報105と、上位のサーバから受信した時刻情報のずれを示す。
【0041】
同期状況163(前回時刻同期の状況)は、前回の時刻同期の実施状況を示す情報であり、時刻調整中であるか、時刻同期が完了しているか、を示す情報である。時刻同期は、ある期間にわたって行われる。例えば、1分のずれを1時間かけて徐々に修正するといったことが行われる。時刻調整中とは、この時刻同期が行われている期間にあることを示す。この期間を過ぎて、時刻同期が終了すれば、時刻同期が完了したことになる。
【0042】
前回のリブート時刻164は、NTPサーバ10が前回、リブートを行った時刻であり、制御部11は、リブート時に、その時刻を記憶部12に記憶しておく。
【0043】
ハードウエア障害状況165は、NTPサーバ10のハードウエア障害が発生した時刻、およびハードウエア障害が復旧したか、を示す情報であり、制御部11は、例えばマザーボード交換時など、ハードウエア障害が発生した場合に、その時刻を記憶部12に記憶するとともに、ハードウェア障害の復旧時に、復旧したことを示す情報を記憶部12に記憶する。
【0044】
前回の手動時刻変更時刻166は、手動で時刻の変更を実施した時刻であり、制御部11は、手動の時刻変更が実施された時刻を記憶部12に記憶する。
【0045】
以上に説明したNTPサーバ10のリブート、ハードウエア障害、手動時刻変更は、NTPサーバ10に生じるイベントの例であり、NTPサーバ10の制御部11は、これらサーバの時刻が変化する可能性のあるイベントについて、その発生時刻等をイベント発生状況として記憶部12に記憶する。なお、本実施形態では、リブート、ハードウエア障害、手動時刻変更の発生状況を同期判定情報106として記憶するが、サーバの時刻が変化する可能性のあるイベントであれば、その他のイベントの発生状況を同期判定情報106として記憶することができる。
【0046】
図5(c)に示すように、ログ情報107は、NTPクライアント20のIPアドレス171、同期要求時刻172、時刻同期の有無173、同期無の場合の判定理由174、同期時刻175、同期時のずれ176を含む。
【0047】
NTPクライアント20のIPアドレス171は、時刻同期を行うNTPクライアント20のIPアドレスである。
【0048】
同期要求時刻172は、NTPクライアント20から時刻同期要求を受信した時刻である。
【0049】
時刻同期の有無173は、NTPクライアント20が後述する処理において時刻同期処理を実施するか/実施しなかったかの情報である。
【0050】
同期無の場合の判定理由174は、NTPクライアント20が時刻同期処理を実施しなかった場合の理由を示す情報であり、NTPクライアント20が時刻同期処理を実施しなかった場合に、後述するS401〜S405のいずれかの判定理由が書き込まれる。
【0051】
同期時刻175は、NTPクライアント20が時刻同期を実施(開始)した時刻である。NTPクライアント20が時刻同期を実施した場合に書き込まれる。
【0052】
同期時のずれ176は、NTPクライアント20の時刻同期時の、それまでのNTPクライアント20自身の時刻情報207と、NTPサーバ10から受信した時刻情報105との差である。NTPクライアント20が時刻同期を実施した場合に書き込まれる。
【0053】
図4の説明に戻る。NTPクライアント20の制御部11は、時刻情報105および同期判定情報106を受信し、サーバ側の同期判定情報106等を元に同期を実施するか否かの判定処理を実施する(S303)。
【0054】
図7は、判定処理(S303)の流れを示すフローチャートである。
判定処理として、NTPクライアント20の制御部11は、受信した同期判定情報106の前回の同期時刻161を参照して、NTPサーバ10で同期が行われているか否かを判定する(S401)。
NTPサーバ10で同期が行われていない場合(S401のNo)、NTPクライアント20の時刻同期は行わないと判定する(S407)。同期が行われていないNTPサーバ10の時刻情報105は、信頼性が低いためである。例えば、前回の同期時刻161が空欄であれば、NTPサーバ10で同期が行われていないと判定する。
【0055】
また、NTPクライアント20の制御部11は、同期状況163と同期時のずれ162を参照し、NTPサーバ10が時刻同期の調整中であり、かつ、同期時のずれ162が所定の時間T1(例えば、T1=4分)以上か否かを判定する(S402)。
NTPサーバ10が時刻同期の調整中であり、かつ、同期時のずれ162が所定の時間T1以上の場合(S402のYes)、NTPクライアント20の時刻同期は行わないと判定する(S407)。大きなずれのある時刻情報に同期している最中のNTPサーバ10の時刻情報105は、正確な時刻とのずれが大きい可能性があるためである。
【0056】
さらに、NTPクライアント20の制御部11は、前回のリブート時刻164、ハードウエア障害状況165の障害発生時刻、前回の手動時刻変更時刻166、および、前回の同期時刻161を参照して、NTPサーバ10における所定のイベント(リブート、ハードウエア障害、手動時刻変更等)後にNTPサーバ10が時刻同期を実施しているか否かを判定する(S403)。すなわち、各イベントの時刻(前回のリブート時刻164、ハードウエア障害状況165の障害発生時刻、前回の手動時刻変更時刻166)と前回の同期時刻161を比較し、前回の同期時刻161がいずれかのイベントの時刻より以前である場合(S403のNo)、NTPクライアント20の時刻同期は行わないと判定する(S407)。これらのイベント後に時刻同期を行っていない場合、NTPサーバ10の時刻が正確な時刻とずれている可能性があるためである。
【0057】
図7の判定処理の流れでは、更に、後述するS404、S405において、NTPクライアント20の時刻情報207や同期判定情報208も用いた時刻同期実施の判定処理を行う。
【0058】
図6(a)、(b)に沿って、NTPクライアント20の時刻情報207、同期判定情報208について説明する。
【0059】
図6(a)に示すように、時刻情報207は、時刻情報105と同様、NTPクライアント20の内部時計の日付と時刻より成る。
【0060】
また、図6(b)に示すように、NTPクライアント20の同期判定情報208は、NTPサーバ10の同期判定情報106と同様に、前回の同期時刻281、同期時のずれ282、同期状況283、前回のリブート時刻284、ハードウエア障害状況285、前回の手動時刻変更時刻286等からなる。
【0061】
前回の同期時刻281、同期時のずれ282、同期状況283、前回のリブート時刻284、ハードウエア障害状況285、前回の手動時刻変更時刻286は、それぞれ、前述した前回の同期時刻161、同期時のずれ162、同期状況163、前回のリブート時刻164、ハードウエア障害状況165、前回の手動時刻変更時刻166と同様の情報である。
【0062】
図7の説明に戻る。S404では、NTPクライアント20の制御部11が、クライアント側の同期判定情報208のハードウエア障害状況285を参照し、NTPクライアント20がハードウエア障害を起こしているか判定し、ハードウエア障害を起こしている場合には(S404のYes)、NTPクライアント20の時刻同期は行わないと判定する(S407)。例えば、ハードウエア障害状況285が、障害発生時刻に発生したハードウェア障害が復旧していることを示すものでなければ、ハードウエア障害を起こしていると判定する。
【0063】
また、NTPクライアント20の制御部11は、クライアント側の同期判定情報208の同期時のずれ282を参照して、NTPサーバ10の時刻情報105とNTPクライアント20の時刻情報207のずれが、同期時のずれ282より所定の時間T2大きいか否かを判定する(S405)。NTPサーバ10の時刻情報105とNTPクライアント20の時刻情報207のずれが、同期時のずれ282より所定の時間T2大きい場合(S405のYes)、NTPクライアント20の時刻同期は行わないと判定する(S407)。NTPクライアント20が前回時刻同期を行った際の同期時のずれ282に対し、新たに時刻同期を行う際のずれがある程度大きい場合、NTPサーバ10の時刻の進行に何らかの異常があった可能性があるためである。
【0064】
以上のS401〜S405の全てで、時刻同期を実施しないと判定されない場合に、NTPクライアント20の制御部11は、NTPクライアント20の時刻同期を行うと判定する(S406)。
【0065】
図4の説明に戻る。以上の判定処理で時刻同期を行うと判定された場合(S304のYes)、NTPクライアント20の制御部11は、NTPサーバ10から受信した時刻情報105に基づき、時刻同期を実施(開始)し(S305)、S306の処理へ移る。一方、時刻同期を行わないと判定された場合(S304のNo)、時刻同期は行わず、S306の処理へ移行する。
【0066】
S306で、NTPクライアント20の制御部11は、今回行った処理について、同期情報209の記録を行い、当該同期情報209をNTPクライアント20のIPアドレスとともにNTPサーバ10に送信する(S306)。
【0067】
図6(c)に沿って、NTPクライアント20の同期情報209について説明する。
図6(c)に示すように、同期情報209は、時刻同期の有無291、同期無の場合の判定理由292、同期時刻293、同期時のずれ294等より成る。
【0068】
時刻同期の有無291、同期無の場合の判定理由292、同期時刻293、同期時のずれ294は、それぞれ、前述した時刻同期の有無173、同期無の場合の判定理由174、同期時刻175、同期時のずれ176と同様である。
【0069】
図6(c)は、S401で時刻同期を行わないと判定された場合の同期情報209の例である。時刻同期の有無291について、「無」が記録され、同期無の場合の判定理由292として、S401の判定理由「NTPサーバの時刻同期未実施」が記録される。時刻同期が行われなかったので、同期時刻293、同期時のずれ294は空欄である。一方、時刻同期を行った場合には、時刻同期の有無291について、「有」が記録され、同期時刻293、同期時のずれ294として、それぞれNTPクライアント20が同期を実施(開始)した時刻と、NTPクライアント20の時刻同期時の、それまでのNTPクライアント20自身の時刻情報207と、NTPサーバ10から受信した時刻情報105との差が書き込まれる。
【0070】
なお、NTPクライアント20の制御部11は、S306において、同期判定情報208の、前回の同期時刻281、同期時のずれ282、同期状況283のデータも更新しておく。
【0071】
図4の説明に戻る。NTPサーバ10は、NTPクライアント20のIPアドレスと同期情報209を受信し、IPアドレスの対応するログ情報107の時刻同期の有無173、同期無の場合の判定理由174、同期時刻175、同期時のずれ176に、同期情報209の時刻同期の有無291、同期無の場合の判定理由292、同期時刻293、同期時のずれ294を書き込んで記憶部12に記憶する(S308)。
ログ情報107により、NTPサーバ10は、NTPクライアント20の時刻同期状況を管理することが可能になる。適宜管理サーバ(不図示)にこのログ情報107を送信するなどして、システムの管理のため用いることもできる。
【0072】
以上説明したように、本発明の実施形態によれば、NTPクライアント20が、NTPサーバ10から、時刻同期を行うか否かを判定可能な同期判定情報106を時刻情報105とともに受け取る。NTPクライアント20は、この同期判定情報106を元に同期をするか否かを判定し、信頼に足りうる時刻情報105に基づく同期を実施することが可能になる。例えば、NTPサーバ10が前回時刻同期を実施した時刻や、前回時刻同期の際の時刻のずれ、前回時刻同期の状況などを用いて、NTPサーバ10が時刻同期を実施していない場合や、NTPサーバ10が時刻同期の調整中かつ時刻のずれが所定の時間以上の場合には時刻同期を行わないことで、信頼性の低い時刻情報105に基づき時刻同期を行う可能性が低くなる。
さらに、リブートや、ハードウエア障害、手動による時刻変更などのイベント後に時刻同期を行っていないNTPサーバ10からの時刻情報105に基づく時刻同期を排除することで、より信頼性の高い時刻情報105に基づく時刻同期が可能になる。
加えて、NTPクライアント20の前回時刻同期の際の時刻のずれを用いて同期するか否かの判定を行うこともでき、自身の時刻情報207とNTPサーバ10から受信した時刻情報105のずれをこれと比較し判定を行うことで、さらに信頼性の高い時刻同期を行うことが可能になる。
【0073】
なお、判定の方法は上記したものに限らない。例えば、複数のNTPサーバ10から受け取った時刻情報105を元に、時刻同期を実施するか否かの判定を行うこともできる。これを以下説明する。
図8は、このような時刻同期システム500の構成を示す図である。時刻同期システム500は、NTPクライアント20が、複数のNTPサーバ10−1、10−2、…とネットワーク30を介して接続された構成である。
【0074】
NTPクライアント20は、複数のNTPサーバ10−1、10−2、…に前記のS301と同様に時刻同期要求を送信し、これに応じて受信した複数のNTPサーバ10−1、10−2、…の同期判定情報106等を元に、それぞれのNTPサーバ10の時刻情報105について、S303と同様の判定処理を実施し、同期を実施して問題ないかを判定する。
これに加えて、NTPクライアント20の制御部11は、同期を実施しないと判定されない(S304のYes)時刻情報105のうち、ある任意の2つの時刻情報105同士のずれが所定の時間T3以上か否かも判定する。そして、これが所定の時間T3以上の場合に、同期処理を行わないようにしておく。適正と判定される時刻情報105であっても、相互に大きく異なる時刻を示す場合には、その信頼性に疑問があるためである。このように、複数のNTPサーバ10による時刻情報105同士の比較も行うことで、信頼性の低い時刻情報105に基づき時刻同期を行う可能性はさらに低くなる。
【0075】
なお、以上の同期処理実施の判定処理で使用する所定の時間T1〜T3は、予め所定値を定めて、NTPクライアント20の記憶部12に格納しておけばよい。
【0076】
以上、添付図面を参照しながら本発明の実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、特許請求の範囲に記載された技術的思想の範疇内において各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【0077】
1………時刻同期システム
10………NTPサーバ
20………NTPクライアント
105、207………時刻情報
106、208………同期判定情報
107………ログ情報
209………同期情報

【特許請求の範囲】
【請求項1】
サーバ端末とネットワークにより接続されたクライアント端末であって、
前記サーバ端末に時刻同期要求を送信する送信手段と、
前記サーバ端末から、当該サーバ端末が前回時刻同期を実施した時刻、前回時刻同期の際の時刻のずれ、前回時刻同期の状況を含む同期判定情報と時刻情報を受信する受信手段と、
前記同期判定情報を元に、前記サーバ端末が時刻同期を実施していない場合、もしくは、前記サーバ端末が前回時刻同期の調整中かつ前回時刻同期の際の時刻のずれが所定の時間以上の場合、前記時刻情報について、前記クライアント端末の時刻同期を実施しないと判定する判定手段と、
前記時刻情報について時刻同期を実施しないと判定されない場合に、前記時刻情報に基づき、時刻同期を実施する時刻同期手段と、
を具備することを特徴とするクライアント端末。
【請求項2】
前記同期判定情報は、前記サーバ端末における所定のイベントの発生状況を含み、
前記判定手段は、前記同期判定情報を元に、さらに、所定のイベントの発生後に前記サーバ端末が時刻同期を行っていない場合、前記クライアント端末の時刻同期を実施しないと判定することを特徴とする請求項1記載のクライアント端末。
【請求項3】
前記判定手段は、さらに、前記サーバ端末から受信した時刻情報と、前記クライアント端末の時刻情報とのずれが、前記クライアント端末の前回時刻同期の際の時刻のずれより所定の時間大きい場合、前記クライアント端末の時刻同期を実施しないと判定することを特徴とする請求項1または請求項2に記載のクライアント端末。
【請求項4】
複数の前記サーバ端末と接続され、
前記判定手段は、さらに、複数の前記サーバ端末から受信し、時刻同期を実施しないと判定されなかった時刻情報のいずれか2つに、所定の時間以上のずれがある場合に、前記クライアント端末の時刻同期を実施しないと判定することを特徴とする請求項1から請求項3のいずれかに記載のクライアント端末。
【請求項5】
クライアント端末とネットワークにより接続されたサーバ端末であって、
当該サーバ端末が前回時刻同期を実施した時刻、前回時刻同期の際の時刻のずれ、前回時刻同期の状況を含む同期判定情報を記憶する記憶手段と、
前記クライアント端末からの時刻同期要求を受けて、前記記憶手段により記憶されている前記同期判定情報と時刻情報を前記クライアント端末に送信する送信手段と、
を具備し、
前記同期判定情報は、前記クライアント端末で、前記サーバ端末が時刻同期を実施していない場合、もしくは、前記サーバ端末が前回時刻同期の調整中かつ前回時刻同期の際の時刻のずれが所定の時間以上の場合、前記時刻情報について、前記クライアント端末の時刻同期を実施しないと判定する際に用いられることを特徴とするサーバ端末。
【請求項6】
サーバ端末とクライアント端末がネットワークにより接続されてなる時刻同期システムにおいて時刻同期を行う時刻同期方法であって、
前記サーバ端末は、
当該サーバ端末が前回時刻同期を実施した時刻、前回時刻同期の際の時刻のずれ、前回時刻同期の状況を含む同期判定情報を記憶する記憶手段を有し、
前記クライアント端末からの時刻同期要求を受けて、前記記憶手段で記憶されている前記同期判定情報と時刻情報を送信するステップを実行し、
前記クライアント端末は、
前記サーバに時刻同期要求を送信するステップと、
前記サーバ端末から前記同期判定情報と前記時刻情報を受信するステップと、
前記同期判定情報を元に、前記サーバ端末が時刻同期を実施していない場合、もしくは、前記サーバ端末が前回時刻同期の調整中かつ前回時刻同期の際の時刻のずれが所定の時間以上の場合、前記時刻情報について、前記クライアント端末の時刻同期を実施しないと判定するステップと、
前記時刻情報について時刻同期を実施しないと判定されない場合に、前記時刻情報に基づき、時刻同期を実施するステップと、
を実行することを特徴とする時刻同期方法。
【請求項7】
コンピュータを、請求項1から請求項4のいずれかに記載のクライアント端末として機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−202897(P2012−202897A)
【公開日】平成24年10月22日(2012.10.22)
【国際特許分類】
【出願番号】特願2011−69322(P2011−69322)
【出願日】平成23年3月28日(2011.3.28)
【出願人】(000155469)株式会社野村総合研究所 (1,067)
【Fターム(参考)】