(57)【要約】【課題】正確であるとの信頼性の高い時刻情報に基づき時刻同期を行うことが可能なクライアント端末やサーバ端末等を提供する。【解決手段】時刻同期システム１において、ＮＴＰサーバ１０とＮＴＰクライアント２０がネットワーク３０を介して接続され、ＮＴＰクライアント２０は同期要求をＮＴＰサーバ１０に送り、同期要求を受信したＮＴＰサーバ１０は前回の同期時刻１６１、同期時のずれ１６２、同期状況１６３などを含む同期判定情報１０６と時刻情報１０５をＮＴＰクライアント２０に送信する。ＮＴＰクライアント２０は、時刻情報１０５と同期判定情報１０６を受信し、同期判定情報１０６等に基づき、時刻情報１０５について、時刻同期を実施するか否かを判定する。【選択図】図４
2012202897.tif 000002
【特許請求の範囲】
【請求項１】
サーバ端末とネットワークにより接続されたクライアント端末であって、
前記サーバ端末に時刻同期要求を送信する送信手段と、
前記サーバ端末から、当該サーバ端末が前回時刻同期を実施した時刻、前回時刻同期の際の時刻のずれ、前回時刻同期の状況を含む同期判定情報と時刻情報を受信する受信手段と、
前記同期判定情報を元に、前記サーバ端末が時刻同期を実施していない場合、もしくは、前記サーバ端末が前回時刻同期の調整中かつ前回時刻同期の際の時刻のずれが所定の時間以上の場合、前記時刻情報について、前記クライアント端末の時刻同期を実施しないと判定する判定手段と、
前記時刻情報について時刻同期を実施しないと判定されない場合に、前記時刻情報に基づき、時刻同期を実施する時刻同期手段と、
を具備することを特徴とするクライアント端末。
【請求項２】
前記同期判定情報は、前記サーバ端末における所定のイベントの発生状況を含み、
前記判定手段は、前記同期判定情報を元に、さらに、所定のイベントの発生後に前記サーバ端末が時刻同期を行っていない場合、前記クライアント端末の時刻同期を実施しないと判定することを特徴とする請求項１記載のクライアント端末。
【請求項３】
前記判定手段は、さらに、前記サーバ端末から受信した時刻情報と、前記クライアント端末の時刻情報とのずれが、前記クライアント端末の前回時刻同期の際の時刻のずれより所定の時間大きい場合、前記クライアント端末の時刻同期を実施しないと判定することを特徴とする請求項１または請求項２に記載のクライアント端末。
【請求項４】
複数の前記サーバ端末と接続され、
前記判定手段は、さらに、複数の前記サーバ端末から受信し、時刻同期を実施しないと判定されなかった時刻情報のいずれか２つに、所定の時間以上のずれがある場合に、前記クライアント端末の時刻同期を実施しないと判定することを特徴とする請求項１から請求項３のいずれかに記載のクライアント端末。
【請求項５】
クライアント端末とネットワークにより接続されたサーバ端末であって、
当該サーバ端末が前回時刻同期を実施した時刻、前回時刻同期の際の時刻のずれ、前回時刻同期の状況を含む同期判定情報を記憶する記憶手段と、
前記クライアント端末からの時刻同期要求を受けて、前記記憶手段により記憶されている前記同期判定情報と時刻情報を前記クライアント端末に送信する送信手段と、
を具備し、
前記同期判定情報は、前記クライアント端末で、前記サーバ端末が時刻同期を実施していない場合、もしくは、前記サーバ端末が前回時刻同期の調整中かつ前回時刻同期の際の時刻のずれが所定の時間以上の場合、前記時刻情報について、前記クライアント端末の時刻同期を実施しないと判定する際に用いられることを特徴とするサーバ端末。
【請求項６】
サーバ端末とクライアント端末がネットワークにより接続されてなる時刻同期システムにおいて時刻同期を行う時刻同期方法であって、
前記サーバ端末は、
当該サーバ端末が前回時刻同期を実施した時刻、前回時刻同期の際の時刻のずれ、前回時刻同期の状況を含む同期判定情報を記憶する記憶手段を有し、
前記クライアント端末からの時刻同期要求を受けて、前記記憶手段で記憶されている前記同期判定情報と時刻情報を送信するステップを実行し、
前記クライアント端末は、
前記サーバに時刻同期要求を送信するステップと、
前記サーバ端末から前記同期判定情報と前記時刻情報を受信するステップと、
前記同期判定情報を元に、前記サーバ端末が時刻同期を実施していない場合、もしくは、前記サーバ端末が前回時刻同期の調整中かつ前回時刻同期の際の時刻のずれが所定の時間以上の場合、前記時刻情報について、前記クライアント端末の時刻同期を実施しないと判定するステップと、
前記時刻情報について時刻同期を実施しないと判定されない場合に、前記時刻情報に基づき、時刻同期を実施するステップと、
を実行することを特徴とする時刻同期方法。
【請求項７】
コンピュータを、請求項１から請求項４のいずれかに記載のクライアント端末として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアント端末、サーバ端末等に係り、詳しくは、正確であるとの信頼性の高い時刻情報に基づく時刻同期が可能な、クライアント端末、サーバ端末等に関する。
【背景技術】
【０００２】
電子商取引等、各種サーバのログ管理において、時刻は非常に重要な情報であり、各種サーバは、常に正確な時刻を保持する必要がある。従来、サーバの多くは、ＮＴＰ（Ｎｅｔｗｏｒｋ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ）による時刻同期を実施している（例えば、特許文献１）。
すなわち、下位のサーバであるＮＴＰクライアントが、上位のサーバであるＮＴＰサーバから時刻情報を受け取り、この時刻情報に基づき、ＮＴＰクライアントの時刻をＮＴＰサーバの時刻に同期させる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−３２２７８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、ＮＴＰサーバの時刻情報が常に正確であるという保証はなく、正確でない場合であっても、ＮＴＰクライアントがその時刻情報に基づいた同期を実施しまうという問題がある。
【０００５】
この問題を解消するために、ＮＴＰサーバの時刻情報を信頼させる方法が種々考えられている。例えば、ＮＴＰサーバからの時刻情報により同期を行う場合に、証明書による認証処理を行うことにより、悪意のあるＮＴＰサーバを排除する方法がある。また、同期する時刻情報を複数得るために複数のＮＴＰサーバを設定して、例えば自身の時刻と最もずれの少ない同期先のＮＴＰサーバを選択する方法もある。
【０００６】
しかしながら、これらの方法では、悪意のあるＮＴＰサーバを排除したり、自身の時刻と大きく異なる時刻情報による同期を行わないようにすることができるが、ＮＴＰサーバが提供する時刻情報そのものが正確であるかを判断することはできない。悪意のないサーバであっても、時刻情報は正確でない場合もあり、また、自身の時刻と近い時刻情報であっても、これが正確でない場合も考えられる。
【０００７】
本発明は、上記の問題を鑑みてなされたものであり、その目的は、正確であるとの信頼性の高い時刻情報に基づき時刻同期を行うことが可能なクライアント端末やサーバ端末等を提供することである。
【課題を解決するための手段】
【０００８】
前述した目的を達するために第１の発明は、サーバ端末とネットワークにより接続されたクライアント端末であって、前記サーバ端末に時刻同期要求を送信する送信手段と、前記サーバ端末から、当該サーバ端末が前回時刻同期を実施した時刻、前回時刻同期の時刻のずれ、前回時刻同期の状況を含む同期判定情報と時刻情報を受信する受信手段と、前記同期判定情報を元に、前記サーバ端末が時刻同期を実施していない場合、もしくは、前記サーバ端末が前回時刻同期の調整中かつ前回時刻同期の際の時刻のずれが所定の時間以上の場合、前記時刻情報について、前記クライアント端末の時刻同期を実施しないと判定する判定手段と、前記時刻情報について時刻同期を実施しないと判定されない場合に、前記時刻情報に基づき、時刻同期を実施する時刻同期手段と、を具備することを特徴とするクライアント端末である。
【０００９】
前記同期判定情報は、前記サーバ端末における所定のイベントの発生状況を含み、前記判定手段は、前記同期判定情報を元に、さらに、所定のイベントの発生後に前記サーバ端末が時刻同期を行っていない場合、前記クライアント端末の時刻同期を実施しないと判定する。
【００１０】
また、前記判定手段は、さらに、前記サーバ端末から受信した時刻情報と、前記クライアント端末の時刻情報とのずれが、前記クライアント端末の前回時刻同期の際の時刻のずれより所定の時間大きい場合、前記クライアント端末の時刻同期を実施しないと判定する。
【００１１】
加えて、前記クライアント端末を複数の前記サーバ端末と接続し、前記判定手段は、さらに、複数の前記サーバ端末から受信し、時刻同期を実施しないと判定されなかった時刻情報のいずれか２つに、所定の時間以上のずれがある場合に、前記クライアント端末の時刻同期を実施しないと判定してもよい。
【００１２】
第１の発明により、クライアント端末が、時刻情報の信頼性を示し、時刻同期を行うか否かを判定可能な同期判定情報を時刻情報とともにサーバ端末から受け取る。クライアント端末は、この同期判定情報を元に同期をするか否かを判定し、信頼に足りうる時刻情報に基づく同期を実施することが可能になる。
例えば、サーバ端末が前回時刻同期を実施した時刻や、前回時刻同期の際の時刻のずれ、前回時刻同期の状況などを用いて、サーバ端末が時刻同期を実施していない場合や、サーバ端末が前回時刻同期の調整中かつ前回時刻同期の際の時刻のずれが所定の時間以上の場合には時刻同期を行わないことで、信頼性の低い時刻情報に基づき時刻同期を行う可能性が低くなる。
【００１３】
さらに、リブートや、ハードウエア障害、手動による時刻変更などのイベント後に時刻同期を行っていないサーバ端末からの時刻情報に基づく時刻同期を排除することで、より信頼性の高い時刻情報に基づく時刻同期が可能になる。
【００１４】
また、クライアント端末の前回時刻同期の際の時刻のずれを用いて同期するか否かの判定を行ったり、複数のサーバ端末から受け取った時刻情報同士のずれを判定に用いることもできる。このように、クライアント端末側の情報や、複数のサーバ端末からの時刻情報同士のずれも判定に利用することで、さらに信頼性の高い時刻情報により時刻同期を行うことが可能になる。
【００１５】
第２の発明は、クライアント端末とネットワークにより接続されたサーバ端末であって、当該サーバ端末が前回時刻同期を実施した時刻、前回時刻同期の際の時刻のずれ、前回時刻同期の状況を含む同期判定情報を記憶する記憶手段と、前記クライアント端末からの時刻同期要求を受けて、前記記憶手段により記憶されている前記同期判定情報と時刻情報を前記クライアント端末に送信する送信手段と、を具備し、前記同期判定情報は、前記クライアント端末で、前記サーバ端末が時刻同期を実施していない場合、もしくは、前記サーバ端末が前回時刻同期の調整中かつ前回時刻同期の際の時刻のずれが所定の時間以上の場合、前記時刻情報について、前記クライアント端末の時刻同期を実施しないと判定する際に用いられることを特徴とするサーバ端末である。
【００１６】
第３の発明は、サーバ端末とクライアント端末がネットワークにより接続されてなる時刻同期システムにおいて時刻同期を行う時刻同期方法であって、前記サーバ端末は、当該サーバ端末が前回時刻同期を実施した時刻、前回時刻同期の際の時刻のずれ、前回時刻同期の状況を含む同期判定情報を記憶する記憶手段を有し、前記クライアント端末からの時刻同期要求を受けて、前記記憶手段で記憶されている前記同期判定情報と時刻情報を送信するステップを実行し、前記クライアント端末は、前記サーバに時刻同期要求を送信するステップと、前記サーバ端末から前記同期判定情報と前記時刻情報を受信するステップと、前記同期判定情報を元に、前記サーバ端末が時刻同期を実施していない場合、もしくは、前記サーバ端末が前回時刻同期の調整中かつ前回時刻同期の際の時刻のずれが所定の時間以上の場合、前記時刻情報について、前記クライアント端末の時刻同期を実施しないと判定するステップと、前記時刻情報について時刻同期を実施しないと判定されない場合に、前記時刻情報に基づき、時刻同期を実施するステップと、を実行することを特徴とする時刻同期方法である。
【００１７】
第４の発明は、コンピュータを、第１の発明のクライアント端末として機能させるためのプログラムである。
【発明の効果】
【００１８】
本発明により、正確であるとの信頼性の高い時刻情報に基づき時刻同期を行うことが可能なクライアント端末やサーバ端末等を提供することが可能になる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施形態に係る時刻同期システム１の構成を示す図
【図２】ＮＴＰサーバ１０およびＮＴＰクライアント２０のハードウエア構成を示す図
【図３】本発明の実施形態に係る時刻同期システム１の機能構成を示す図
【図４】時刻同期システム１の処理の流れを示すフローチャート
【図５】ＮＴＰサーバ１０のデータを説明する図
【図６】ＮＴＰクライアント２０のデータを説明する図
【図７】判定処理（Ｓ３０３）の流れを示すフローチャート
【図８】時刻同期システム５００の構成を示す図
【発明を実施するための形態】
【００２０】
以下、図面に基づいて本発明の実施形態について説明する。
図１は、本実施形態に係る時刻同期システム１の構成を示す図である。図１に示すように、時刻同期システム１では、ＮＴＰサーバ１０（サーバ端末）と、ＮＴＰクライアント２０（クライアント端末）とがネットワーク３０で接続される。
【００２１】
ＮＴＰサーバ１０とＮＴＰクライアント２０は、時刻情報等の授受に関する２者間の相対的な上位・下位関係を示すものであり、ＮＴＰサーバ１０はＮＴＰクライアント２０に時刻情報等を送信する側、ＮＴＰクライアント２０はＮＴＰサーバ１０から時刻情報等を受信し、当該時刻情報に基づき自身の時刻情報をこれにあわせるように時刻同期を行う側を指す。
【００２２】
図２は、ＮＴＰサーバ１０およびＮＴＰクライアント２０のハードウエア構成を示す図である。
図２に示すように、ＮＴＰサーバ１０およびＮＴＰクライアント２０は、制御部１１、記憶部１２、メディア入出力部１３、通信制御部１４、入力部１５、表示部１６、周辺機器Ｉ／Ｆ部１７等が、バス１８を介して接続された構成である。
【００２３】
制御部１１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等で構成される。
ＣＰＵは、記憶部１２、ＲＯＭ、記録媒体等に格納されるプログラムをＲＡＭ上のワークメモリ領域に呼び出して実行し、バス１８を介して接続された各装置を駆動制御し、時刻同期システム１が行う後述する処理を実現する。ＲＯＭは、不揮発性メモリであり、ブートプログラムやＢＩＯＳ等のプログラム、データ等を恒久的に保持している。ＲＡＭは、揮発性メモリであり、記憶部１２、ＲＯＭ、記録媒体等からロードしたプログラム、データ等を一時的に保持するとともに、制御部１１が各種処理を行う為に使用するワークエリアを備える。
【００２４】
記憶部１２は、ＨＤＤ（ハードディスクドライブ）等であり、制御部１１が実行するプログラム、プログラム実行に必要なデータ、ＯＳ（オペレーティングシステム）等が格納される。プログラムに関しては、ＯＳ（オペレーティングシステム）に相当する制御プログラムや、後述する処理をコンピュータに実行させるためのアプリケーションプログラムが格納されている。
これらの各プログラムコードは、制御部１１により必要に応じて読み出されてＲＡＭに移され、ＣＰＵに読み出されて各種の手段として実行される。
【００２５】
メディア入出力部１３（ドライブ装置）は、データの入出力を行い、例えば、ＣＤドライブ（−ＲＯＭ、−Ｒ、−ＲＷ等）、ＤＶＤドライブ（−ＲＯＭ、−Ｒ、−ＲＷ等）等のメディア入出力装置を有する。
通信制御部１４は、通信制御装置、通信ポート等を有し、他のサーバ等の装置との通信を媒介する通信インタフェースであり、ネットワークを介して他の装置との通信制御を行う。ネットワークは、有線、無線を問わない。
【００２６】
入力部１５は、データの入力を行い、例えば、キーボード、マウス等のポインティングデバイス、テンキー等の入力装置を有する。
表示部１６は、ＣＲＴモニタ、液晶パネル等のディスプレイ装置、およびディスプレイ装置と連携して表示機能を実現するための論理回路等を有する。
【００２７】
周辺機器Ｉ／Ｆ（インタフェース）部１７は、周辺機器を接続させるためのポートであり、周辺機器Ｉ／Ｆ部１７を介して周辺機器とのデータの送受信を行う。周辺機器Ｉ／Ｆ部１７は、ＵＳＢ等で構成されており、通常複数の周辺機器Ｉ／Ｆを有する。周辺機器との接続形態は有線、無線を問わない。
バス１８は、各装置間の制御信号、データ信号等の授受を媒介する経路である。
【００２８】
図３は、本実施形態の時刻同期システム１における機能構成を示す図である。
図３に示すように、ＮＴＰサーバ１０は、同期要求受信部１０１、時刻情報／同期判定情報送信部１０３、ログ情報記録部１０４を有し、記憶部１２に時刻情報１０５、同期判定情報１０６、ログ情報１０７等を記憶する。
【００２９】
同期要求受信部１０１は、ＮＴＰサーバ１０の制御部１１が、ＮＴＰクライアント２０からの同期要求を受信するものである。
時刻情報／同期判定情報送信部１０３は、ＮＴＰサーバ１０の制御部１１が、ＮＴＰサーバ１０が有する時刻情報１０５と、同期判定情報１０６を、ＮＴＰクライアント２０に送信するものである。
ログ情報記録部１０４は、ＮＴＰサーバ１０の制御部１１が、ＮＴＰクライアント２０から受信した情報を元に、ログ情報１０７を作成し記憶部１２へ記憶するものである。
【００３０】
時刻情報１０５は、ＮＴＰサーバ１０の内部時計の情報である。
同期判定情報１０６は、ＮＴＰクライアント２０が同期判定に使用するための情報である。
ログ情報１０７は、ＮＴＰクライアント２０の同期状況を管理するための情報である。
時刻情報１０５、同期判定情報１０６、ログ情報１０７の詳細は後述する。
【００３１】
また、ＮＴＰクライアント２０は、同期要求送信部２０１、時刻情報／同期判定情報受信部２０２、同期判定部２０３、同期処理部２０５を有し、記憶部１２に時刻情報２０７、同期判定情報２０８、同期情報２０９等を記憶する。
【００３２】
同期要求送信部２０１は、ＮＴＰクライアント２０の制御部１１が、時刻同期を行うための同期要求をＮＴＰサーバ１０へ送信するものである。
時刻情報／同期判定情報受信部２０２は、ＮＴＰクライアント２０の制御部１１が、時刻情報１０５と、同期判定情報１０６を、ＮＴＰサーバ１０から受信するものである。
同期判定部２０３は、ＮＴＰクライアント２０の制御部１１が、同期判定情報１０６等に基づき、時刻同期を実施するか否かを判定するものである。
同期処理部２０５は、ＮＴＰクライアント２０の制御部１１が、同期判定部２０３が時刻同期を実施すると判定した場合に、時刻情報２０７を時刻情報１０５に基づいて同期させるとともに、ＮＴＰクライアント２０の同期情報２０９を記録してＮＴＰサーバ１０に送信するものである。
【００３３】
時刻情報２０７は、ＮＴＰクライアント２０の内部時計の情報である。
同期判定情報２０８は、ＮＴＰクライアント２０が同期判定に使用するための情報である。
同期情報２０９は、ＮＴＰクライアント２０の同期状況を示す情報である。
時刻情報２０７、同期判定情報２０８、同期情報２０９の詳細は後述する。
【００３４】
次に、図４〜図７に沿って、時刻同期システム１の処理の流れについて説明する。
図４は、時刻同期システム１の処理の流れを示すフローチャートである。
また、図５は、ＮＴＰサーバ１０のデータである、時刻情報１０５、同期判定情報１０６、ログ情報１０７を説明する図、図６は、ＮＴＰクライアント２０のデータである、時刻情報２０７、同期判定情報２０８、同期情報２０９を説明する図である。
また、図７は、同期判定処理の流れを示すフローチャートである。
【００３５】
図４に示すように、まず、ＮＴＰクライアント２０の制御部１１は、ＮＴＰサーバ１０にＮＴＰクライアント２０のＩＰアドレスを含む時刻同期要求を送信する（Ｓ３０１）。
ＮＴＰサーバ１０の制御部１１は、時刻同期要求を受信し、時刻情報１０５と、同期判定情報１０６をＮＴＰクライアント２０に送信する（Ｓ３０２）。また、ＮＴＰサーバ１０は、ログ情報１０７としてＮＴＰクライアント２０のＩＰアドレスと同期要求時刻を記録する。
【００３６】
ここで、図５（ａ）、（ｂ）、（ｃ）に沿って、時刻情報１０５、同期判定情報１０６、ログ情報１０７について説明する。
【００３７】
図５（ａ）に示すように、時刻情報１０５は、ＮＴＰサーバ１０の内部時計の日付と時刻より成る。
【００３８】
図５（ｂ）に示すように、同期判定情報１０６は、前回の同期時刻１６１、同期時のずれ１６２、同期状況１６３、前回のリブート時刻１６４、ハードウエア障害状況１６５、前回の手動時刻変更時刻１６６等からなる。
【００３９】
前回の同期時刻１６１（前回時刻同期を実施した時刻）は、ＮＴＰサーバ１０が前回、時刻同期を実施（開始）した日付、日時である。ＮＴＰサーバ１０は、さらに上位のサーバに対してＮＴＰクライアントとして時刻同期を行う。前回の同期時刻１６１は、この時刻同期を実施した時刻である。
【００４０】
同期時のずれ１６２（前回時刻同期の際の時刻のずれ）は、前回の時刻同期時の、それまでのＮＴＰサーバ１０自身の時刻情報１０５と、上位のサーバから受信した時刻情報のずれを示す。
【００４１】
同期状況１６３（前回時刻同期の状況）は、前回の時刻同期の実施状況を示す情報であり、時刻調整中であるか、時刻同期が完了しているか、を示す情報である。時刻同期は、ある期間にわたって行われる。例えば、１分のずれを１時間かけて徐々に修正するといったことが行われる。時刻調整中とは、この時刻同期が行われている期間にあることを示す。この期間を過ぎて、時刻同期が終了すれば、時刻同期が完了したことになる。
【００４２】
前回のリブート時刻１６４は、ＮＴＰサーバ１０が前回、リブートを行った時刻であり、制御部１１は、リブート時に、その時刻を記憶部１２に記憶しておく。
【００４３】
ハードウエア障害状況１６５は、ＮＴＰサーバ１０のハードウエア障害が発生した時刻、およびハードウエア障害が復旧したか、を示す情報であり、制御部１１は、例えばマザーボード交換時など、ハードウエア障害が発生した場合に、その時刻を記憶部１２に記憶するとともに、ハードウェア障害の復旧時に、復旧したことを示す情報を記憶部１２に記憶する。
【００４４】
前回の手動時刻変更時刻１６６は、手動で時刻の変更を実施した時刻であり、制御部１１は、手動の時刻変更が実施された時刻を記憶部１２に記憶する。
【００４５】
以上に説明したＮＴＰサーバ１０のリブート、ハードウエア障害、手動時刻変更は、ＮＴＰサーバ１０に生じるイベントの例であり、ＮＴＰサーバ１０の制御部１１は、これらサーバの時刻が変化する可能性のあるイベントについて、その発生時刻等をイベント発生状況として記憶部１２に記憶する。なお、本実施形態では、リブート、ハードウエア障害、手動時刻変更の発生状況を同期判定情報１０６として記憶するが、サーバの時刻が変化する可能性のあるイベントであれば、その他のイベントの発生状況を同期判定情報１０６として記憶することができる。
【００４６】
図５（ｃ）に示すように、ログ情報１０７は、ＮＴＰクライアント２０のＩＰアドレス１７１、同期要求時刻１７２、時刻同期の有無１７３、同期無の場合の判定理由１７４、同期時刻１７５、同期時のずれ１７６を含む。
【００４７】
ＮＴＰクライアント２０のＩＰアドレス１７１は、時刻同期を行うＮＴＰクライアント２０のＩＰアドレスである。
【００４８】
同期要求時刻１７２は、ＮＴＰクライアント２０から時刻同期要求を受信した時刻である。
【００４９】
時刻同期の有無１７３は、ＮＴＰクライアント２０が後述する処理において時刻同期処理を実施するか／実施しなかったかの情報である。
【００５０】
同期無の場合の判定理由１７４は、ＮＴＰクライアント２０が時刻同期処理を実施しなかった場合の理由を示す情報であり、ＮＴＰクライアント２０が時刻同期処理を実施しなかった場合に、後述するＳ４０１〜Ｓ４０５のいずれかの判定理由が書き込まれる。
【００５１】
同期時刻１７５は、ＮＴＰクライアント２０が時刻同期を実施（開始）した時刻である。ＮＴＰクライアント２０が時刻同期を実施した場合に書き込まれる。
【００５２】
同期時のずれ１７６は、ＮＴＰクライアント２０の時刻同期時の、それまでのＮＴＰクライアント２０自身の時刻情報２０７と、ＮＴＰサーバ１０から受信した時刻情報１０５との差である。ＮＴＰクライアント２０が時刻同期を実施した場合に書き込まれる。
【００５３】
図４の説明に戻る。ＮＴＰクライアント２０の制御部１１は、時刻情報１０５および同期判定情報１０６を受信し、サーバ側の同期判定情報１０６等を元に同期を実施するか否かの判定処理を実施する（Ｓ３０３）。
【００５４】
図７は、判定処理（Ｓ３０３）の流れを示すフローチャートである。
判定処理として、ＮＴＰクライアント２０の制御部１１は、受信した同期判定情報１０６の前回の同期時刻１６１を参照して、ＮＴＰサーバ１０で同期が行われているか否かを判定する（Ｓ４０１）。
ＮＴＰサーバ１０で同期が行われていない場合（Ｓ４０１のＮｏ）、ＮＴＰクライアント２０の時刻同期は行わないと判定する（Ｓ４０７）。同期が行われていないＮＴＰサーバ１０の時刻情報１０５は、信頼性が低いためである。例えば、前回の同期時刻１６１が空欄であれば、ＮＴＰサーバ１０で同期が行われていないと判定する。
【００５５】
また、ＮＴＰクライアント２０の制御部１１は、同期状況１６３と同期時のずれ１６２を参照し、ＮＴＰサーバ１０が時刻同期の調整中であり、かつ、同期時のずれ１６２が所定の時間Ｔ１（例えば、Ｔ１＝４分）以上か否かを判定する（Ｓ４０２）。
ＮＴＰサーバ１０が時刻同期の調整中であり、かつ、同期時のずれ１６２が所定の時間Ｔ１以上の場合（Ｓ４０２のＹｅｓ）、ＮＴＰクライアント２０の時刻同期は行わないと判定する（Ｓ４０７）。大きなずれのある時刻情報に同期している最中のＮＴＰサーバ１０の時刻情報１０５は、正確な時刻とのずれが大きい可能性があるためである。
【００５６】
さらに、ＮＴＰクライアント２０の制御部１１は、前回のリブート時刻１６４、ハードウエア障害状況１６５の障害発生時刻、前回の手動時刻変更時刻１６６、および、前回の同期時刻１６１を参照して、ＮＴＰサーバ１０における所定のイベント（リブート、ハードウエア障害、手動時刻変更等）後にＮＴＰサーバ１０が時刻同期を実施しているか否かを判定する（Ｓ４０３）。すなわち、各イベントの時刻（前回のリブート時刻１６４、ハードウエア障害状況１６５の障害発生時刻、前回の手動時刻変更時刻１６６）と前回の同期時刻１６１を比較し、前回の同期時刻１６１がいずれかのイベントの時刻より以前である場合（Ｓ４０３のＮｏ）、ＮＴＰクライアント２０の時刻同期は行わないと判定する（Ｓ４０７）。これらのイベント後に時刻同期を行っていない場合、ＮＴＰサーバ１０の時刻が正確な時刻とずれている可能性があるためである。
【００５７】
図７の判定処理の流れでは、更に、後述するＳ４０４、Ｓ４０５において、ＮＴＰクライアント２０の時刻情報２０７や同期判定情報２０８も用いた時刻同期実施の判定処理を行う。
【００５８】
図６（ａ）、（ｂ）に沿って、ＮＴＰクライアント２０の時刻情報２０７、同期判定情報２０８について説明する。
【００５９】
図６（ａ）に示すように、時刻情報２０７は、時刻情報１０５と同様、ＮＴＰクライアント２０の内部時計の日付と時刻より成る。
【００６０】
また、図６（ｂ）に示すように、ＮＴＰクライアント２０の同期判定情報２０８は、ＮＴＰサーバ１０の同期判定情報１０６と同様に、前回の同期時刻２８１、同期時のずれ２８２、同期状況２８３、前回のリブート時刻２８４、ハードウエア障害状況２８５、前回の手動時刻変更時刻２８６等からなる。
【００６１】
前回の同期時刻２８１、同期時のずれ２８２、同期状況２８３、前回のリブート時刻２８４、ハードウエア障害状況２８５、前回の手動時刻変更時刻２８６は、それぞれ、前述した前回の同期時刻１６１、同期時のずれ１６２、同期状況１６３、前回のリブート時刻１６４、ハードウエア障害状況１６５、前回の手動時刻変更時刻１６６と同様の情報である。
【００６２】
図７の説明に戻る。Ｓ４０４では、ＮＴＰクライアント２０の制御部１１が、クライアント側の同期判定情報２０８のハードウエア障害状況２８５を参照し、ＮＴＰクライアント２０がハードウエア障害を起こしているか判定し、ハードウエア障害を起こしている場合には（Ｓ４０４のＹｅｓ）、ＮＴＰクライアント２０の時刻同期は行わないと判定する（Ｓ４０７）。例えば、ハードウエア障害状況２８５が、障害発生時刻に発生したハードウェア障害が復旧していることを示すものでなければ、ハードウエア障害を起こしていると判定する。
【００６３】
また、ＮＴＰクライアント２０の制御部１１は、クライアント側の同期判定情報２０８の同期時のずれ２８２を参照して、ＮＴＰサーバ１０の時刻情報１０５とＮＴＰクライアント２０の時刻情報２０７のずれが、同期時のずれ２８２より所定の時間Ｔ２大きいか否かを判定する（Ｓ４０５）。ＮＴＰサーバ１０の時刻情報１０５とＮＴＰクライアント２０の時刻情報２０７のずれが、同期時のずれ２８２より所定の時間Ｔ２大きい場合（Ｓ４０５のＹｅｓ）、ＮＴＰクライアント２０の時刻同期は行わないと判定する（Ｓ４０７）。ＮＴＰクライアント２０が前回時刻同期を行った際の同期時のずれ２８２に対し、新たに時刻同期を行う際のずれがある程度大きい場合、ＮＴＰサーバ１０の時刻の進行に何らかの異常があった可能性があるためである。
【００６４】
以上のＳ４０１〜Ｓ４０５の全てで、時刻同期を実施しないと判定されない場合に、ＮＴＰクライアント２０の制御部１１は、ＮＴＰクライアント２０の時刻同期を行うと判定する（Ｓ４０６）。
【００６５】
図４の説明に戻る。以上の判定処理で時刻同期を行うと判定された場合（Ｓ３０４のＹｅｓ）、ＮＴＰクライアント２０の制御部１１は、ＮＴＰサーバ１０から受信した時刻情報１０５に基づき、時刻同期を実施（開始）し（Ｓ３０５）、Ｓ３０６の処理へ移る。一方、時刻同期を行わないと判定された場合（Ｓ３０４のＮｏ）、時刻同期は行わず、Ｓ３０６の処理へ移行する。
【００６６】
Ｓ３０６で、ＮＴＰクライアント２０の制御部１１は、今回行った処理について、同期情報２０９の記録を行い、当該同期情報２０９をＮＴＰクライアント２０のＩＰアドレスとともにＮＴＰサーバ１０に送信する（Ｓ３０６）。
【００６７】
図６（ｃ）に沿って、ＮＴＰクライアント２０の同期情報２０９について説明する。
図６（ｃ）に示すように、同期情報２０９は、時刻同期の有無２９１、同期無の場合の判定理由２９２、同期時刻２９３、同期時のずれ２９４等より成る。
【００６８】
時刻同期の有無２９１、同期無の場合の判定理由２９２、同期時刻２９３、同期時のずれ２９４は、それぞれ、前述した時刻同期の有無１７３、同期無の場合の判定理由１７４、同期時刻１７５、同期時のずれ１７６と同様である。
【００６９】
図６（ｃ）は、Ｓ４０１で時刻同期を行わないと判定された場合の同期情報２０９の例である。時刻同期の有無２９１について、「無」が記録され、同期無の場合の判定理由２９２として、Ｓ４０１の判定理由「ＮＴＰサーバの時刻同期未実施」が記録される。時刻同期が行われなかったので、同期時刻２９３、同期時のずれ２９４は空欄である。一方、時刻同期を行った場合には、時刻同期の有無２９１について、「有」が記録され、同期時刻２９３、同期時のずれ２９４として、それぞれＮＴＰクライアント２０が同期を実施（開始）した時刻と、ＮＴＰクライアント２０の時刻同期時の、それまでのＮＴＰクライアント２０自身の時刻情報２０７と、ＮＴＰサーバ１０から受信した時刻情報１０５との差が書き込まれる。
【００７０】
なお、ＮＴＰクライアント２０の制御部１１は、Ｓ３０６において、同期判定情報２０８の、前回の同期時刻２８１、同期時のずれ２８２、同期状況２８３のデータも更新しておく。
【００７１】
図４の説明に戻る。ＮＴＰサーバ１０は、ＮＴＰクライアント２０のＩＰアドレスと同期情報２０９を受信し、ＩＰアドレスの対応するログ情報１０７の時刻同期の有無１７３、同期無の場合の判定理由１７４、同期時刻１７５、同期時のずれ１７６に、同期情報２０９の時刻同期の有無２９１、同期無の場合の判定理由２９２、同期時刻２９３、同期時のずれ２９４を書き込んで記憶部１２に記憶する（Ｓ３０８）。
ログ情報１０７により、ＮＴＰサーバ１０は、ＮＴＰクライアント２０の時刻同期状況を管理することが可能になる。適宜管理サーバ（不図示）にこのログ情報１０７を送信するなどして、システムの管理のため用いることもできる。
【００７２】
以上説明したように、本発明の実施形態によれば、ＮＴＰクライアント２０が、ＮＴＰサーバ１０から、時刻同期を行うか否かを判定可能な同期判定情報１０６を時刻情報１０５とともに受け取る。ＮＴＰクライアント２０は、この同期判定情報１０６を元に同期をするか否かを判定し、信頼に足りうる時刻情報１０５に基づく同期を実施することが可能になる。例えば、ＮＴＰサーバ１０が前回時刻同期を実施した時刻や、前回時刻同期の際の時刻のずれ、前回時刻同期の状況などを用いて、ＮＴＰサーバ１０が時刻同期を実施していない場合や、ＮＴＰサーバ１０が時刻同期の調整中かつ時刻のずれが所定の時間以上の場合には時刻同期を行わないことで、信頼性の低い時刻情報１０５に基づき時刻同期を行う可能性が低くなる。
さらに、リブートや、ハードウエア障害、手動による時刻変更などのイベント後に時刻同期を行っていないＮＴＰサーバ１０からの時刻情報１０５に基づく時刻同期を排除することで、より信頼性の高い時刻情報１０５に基づく時刻同期が可能になる。
加えて、ＮＴＰクライアント２０の前回時刻同期の際の時刻のずれを用いて同期するか否かの判定を行うこともでき、自身の時刻情報２０７とＮＴＰサーバ１０から受信した時刻情報１０５のずれをこれと比較し判定を行うことで、さらに信頼性の高い時刻同期を行うことが可能になる。
【００７３】
なお、判定の方法は上記したものに限らない。例えば、複数のＮＴＰサーバ１０から受け取った時刻情報１０５を元に、時刻同期を実施するか否かの判定を行うこともできる。これを以下説明する。
図８は、このような時刻同期システム５００の構成を示す図である。時刻同期システム５００は、ＮＴＰクライアント２０が、複数のＮＴＰサーバ１０−１、１０−２、…とネットワーク３０を介して接続された構成である。
【００７４】
ＮＴＰクライアント２０は、複数のＮＴＰサーバ１０−１、１０−２、…に前記のＳ３０１と同様に時刻同期要求を送信し、これに応じて受信した複数のＮＴＰサーバ１０−１、１０−２、…の同期判定情報１０６等を元に、それぞれのＮＴＰサーバ１０の時刻情報１０５について、Ｓ３０３と同様の判定処理を実施し、同期を実施して問題ないかを判定する。
これに加えて、ＮＴＰクライアント２０の制御部１１は、同期を実施しないと判定されない（Ｓ３０４のＹｅｓ）時刻情報１０５のうち、ある任意の２つの時刻情報１０５同士のずれが所定の時間Ｔ３以上か否かも判定する。そして、これが所定の時間Ｔ３以上の場合に、同期処理を行わないようにしておく。適正と判定される時刻情報１０５であっても、相互に大きく異なる時刻を示す場合には、その信頼性に疑問があるためである。このように、複数のＮＴＰサーバ１０による時刻情報１０５同士の比較も行うことで、信頼性の低い時刻情報１０５に基づき時刻同期を行う可能性はさらに低くなる。
【００７５】
なお、以上の同期処理実施の判定処理で使用する所定の時間Ｔ１〜Ｔ３は、予め所定値を定めて、ＮＴＰクライアント２０の記憶部１２に格納しておけばよい。
【００７６】
以上、添付図面を参照しながら本発明の実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、特許請求の範囲に記載された技術的思想の範疇内において各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【００７７】
１………時刻同期システム
１０………ＮＴＰサーバ
２０………ＮＴＰクライアント
１０５、２０７………時刻情報
１０６、２０８………同期判定情報
１０７………ログ情報
２０９………同期情報
【図１】
2012202897.tif 000003
【図２】
2012202897.tif 000004
【図３】
2012202897.tif 000005
【図４】
2012202897.tif 000006
【図５】
2012202897.tif 000007
【図６】
2012202897.tif 000008
【図７】
2012202897.tif 000009
【図８】
2012202897.tif 000010