(57)【要約】【課題】ネットワークのトラフィックを不必要に増加させることなく、応答性よく時刻補正をすることができる技術を提供すること。【解決手段】本発明は、時刻情報を生成する計時手段と、計時手段の誤差を算出する誤差算出手段と、算出された誤差を用いて、時刻補正に用いる補正値を算出する補正値算出手段と、算出された補正値を用いて、計時手段の時刻補正を行う時刻補正手段と、算出された誤差に基づいて時刻補正要求の送信間隔を決定し、誤差が大きくなるにつれ送信間隔が短くなるようにする送信間隔決定手段とを有するクライアント装置を提供する。【選択図】図２
2007214670.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介してサーバ装置と通信するクライアント装置であって、
時刻情報を生成する計時手段と、
時刻補正要求を出力する際に、前記計時手段が生成した時刻情報を送信時刻Ｔ１として前記時刻補正要求に含ませて、前記ネットワークを介して前記サーバ装置に送信する要求送信手段と、
前記サーバ装置が前記時刻補正要求を受信した時刻Ｔ２を含む時刻補正応答を、前記時刻補正応答を送信した時刻Ｔ３と共に送信すると、この時刻補正応答を前記時刻補正要求の応答として前記ネットワークを介して受信する応答受信手段と、
前記応答受信手段が前記時刻補正応答を受信した時に前記計時手段が生成した時刻情報を受信時刻Ｔ４とし、前記送信時刻Ｔ１と、前記時刻補正応答に含まれる時刻Ｔ２およびＴ３と、前記受信時刻Ｔ４の４つの時刻を用いて前記計時手段の誤差を算出する誤差算出手段と、
前記誤差算出手段により算出された誤差を用いて、時刻補正に用いる補正値を算出する補正値算出手段と、
前記補正値算出手段により算出された補正値を用いて、前記計時手段の時刻補正を行う時刻補正手段と、
前記誤差算出手段により算出された誤差に基づいて前記時刻補正要求の送信間隔を決定し、誤差が大きくなるにつれ送信間隔が短くなるようにする送信間隔決定手段と
を有するクライアント装置。
【請求項２】
前回時刻補正を行ったときの補正値が、あらかじめ決められたしきい値を超えていたか判断する第１の判断手段と、
前記誤差算出手段により算出された誤差が、補正値の制限値を超えているか判断する第２の判断手段と、
前記第１の判断手段により、前回時刻補正を行ったときの補正値があらかじめ決められたしきい値を超えていたと判断され、かつ、前記第２の判断手段により、前記誤差算出手段により算出された誤差が補正値の制限値を超えていると判断された場合、その値が大きくなるように制限値を決定する制限値決定手段をさらに有し、
前記誤差算出手段により算出された誤差が前記制限値決定手段により決定された制限値を超えていた場合、前記時刻補正手段が、前記制限値を補正値として用いて時刻補正を行う
ことを特徴とする請求項１に記載のクライアント装置。
【請求項３】
前記制限値決定手段が、前回時刻補正を行ったときの制限値にあらかじめ決められた定数を加算することにより、新たな制限値を決定することを特徴とする請求項２に記載のクライアント装置。
【請求項４】
前記制限値決定手段が、前回時刻補正を行ったときの制限値に前記誤差により決定される値を加算することにより、新たな制限値を決定することを特徴とする請求項２に記載のクライアント装置。
【請求項５】
ネットワークを介してサーバ装置と通信し、時刻情報を生成する計時手段を有するクライアント装置を、
時刻補正要求を出力する際に、前記計時手段が生成した時刻情報を送信時刻Ｔ１として前記時刻補正要求に含ませて、前記ネットワークを介して前記サーバ装置に送信する要求送信手段と、
前記サーバ装置が前記時刻補正要求を受信した時刻Ｔ２を含む時刻補正応答を、前記時刻補正応答を送信した時刻Ｔ３と共に送信すると、この時刻補正応答を前記時刻補正要求の応答として前記ネットワークを介して受信する応答受信手段と、
前記応答受信手段が前記時刻補正応答を受信した時に前記計時手段が生成した時刻情報を受信時刻Ｔ４とし、前記送信時刻Ｔ１と、前記時刻補正応答に含まれる時刻Ｔ２およびＴ３と、前記受信時刻Ｔ４の４つの時刻を用いて前記計時手段の誤差を算出する誤差算出手段と、
前記誤差算出手段により算出された誤差を用いて、時刻補正に用いる補正値を算出する補正値算出手段と、
前記補正値算出手段により算出された補正値を用いて、前記計時手段の時刻補正を行う時刻補正手段と、
前記誤差算出手段により算出された誤差に基づいて前記時刻補正要求の送信間隔を決定する送信間隔決定手段であって、誤差が大きくなるにつれ送信間隔が短くなるように前記送信間隔を決定する送信間隔決定手段と
して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに接続された複数の端末において、時刻の同期を行う技術に関する。
【背景技術】
【０００２】
インターネットなどのＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）ネットワークを介した、複数の装置間の時刻同期を行う方法として、ＳＮＴＰ（Simple Network Time Protocol）が知られている。ＳＮＴＰを用いた、最も一般的な時刻同期の方法は次のとおりである。時刻同期を行うクライアントは、その送信時刻Ｔ１を含む要求パケットを、基準となるタイムサーバに送信する。要求パケットを受信したタイムサーバは、要求パケットを受信した時刻Ｔ２と、応答パケットの送信時刻Ｔ３とを含む応答パケットをクライアントに送信する。クライアントは、応答パケットを受信した時刻Ｔ４を取得する。クライアントは、次式（１）により、伝播による遅延時間ｄを算出することができる。さらに、クライアントは、次式（２）により、クライアントのローカル時計の誤差Δｔを算出することができる。
ｄ＝（Ｔ４−Ｔ１）−（Ｔ２−Ｔ３）              …（１）
Δｔ＝｛（Ｔ２−Ｔ１）＋（Ｔ３−Ｔ４）｝／２    …（２）
【０００３】
ＳＮＴＰによる時刻同期はネットワークを介して行われるため、ネットワークの一時的な負荷増大により影響を受けることがある。例えば、要求パケットの送信時と、応答パケットの受信時とで、ネットワークの負荷が著しく異なる場合、（２）式により算出される誤差Δｔは、ローカル時計の実際の誤差とかけ離れたものになってしまうという問題がある。
【０００４】
このように、ネットワークの負荷に一時的な変化が生じた場合の、（２）式により算出される誤差Δｔと現実の誤差との乖離を抑制する技術として、例えば特許文献１に記載の技術がある。特許文献１は、（２）式により算出された誤差に基づいてクライアントの時刻を補正する際、補正値に上限を設ける技術を開示している。これにより、一時的なネットワークの負荷により、（２）式により算出される誤差が見かけ上、現実の誤差よりも大きくなった場合でも、それに直接追従することなく、制限値に相当する補正値が用いられる。
【特許文献１】特開２００５−１９５５０７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１によれば、時刻の同期は一定間隔のポーリングにより行われるため、必ずしも適切な補正ができないという問題があった。すなわち、ポーリングの間隔が長い場合には誤差が解消されるのに時間がかかってしまう。また、ポーリングの間隔が短い場合には、ネットワークのトラフィックが増大するため、ネットワークに２次的な負荷を発生させてしまう。
【０００６】
本発明は上述の事情に鑑みてなされたものであり、ネットワークのトラフィックを不必要に増加させることなく、応答性よく時刻補正をすることができる技術を提供する。
【課題を解決するための手段】
【０００７】
上述の課題を解決するため、本発明は、ネットワークを介してサーバ装置と通信するクライアント装置であって、時刻情報を生成する計時手段と、時刻補正要求を出力する際に、前記計時手段が生成した時刻情報を送信時刻Ｔ１として前記時刻補正要求に含ませて、前記ネットワークを介して前記サーバ装置に送信する要求送信手段と、前記サーバ装置が前記時刻補正要求を受信した時刻Ｔ２を含む時刻補正応答を、前記時刻補正応答を送信した時刻Ｔ３と共に送信すると、この時刻補正応答を前記時刻補正要求の応答として前記ネットワークを介して受信する応答受信手段と、前記応答受信手段が前記時刻補正応答を受信した時に前記計時手段が生成した時刻情報を受信時刻Ｔ４とし、前記送信時刻Ｔ１と、前記時刻補正応答に含まれる時刻Ｔ２およびＴ３と、前記受信時刻Ｔ４の４つの時刻を用いて前記計時手段の誤差を算出する誤差算出手段と、前記誤差算出手段により算出された誤差を用いて、時刻補正に用いる補正値を算出する補正値算出手段と、前記補正値算出手段により算出された補正値を用いて、前記計時手段の時刻補正を行う時刻補正手段と、前記誤差算出手段により算出された誤差に基づいて前記時刻補正要求の送信間隔を決定し、誤差が大きくなるにつれ送信間隔が短くなるようにする送信間隔決定手段とを有するクライアント装置を提供する。
このクライアント装置によれば、時刻補正要求の送信間隔は誤差に基づいて決定される。送信間隔は、誤差が大きいときは短く、誤差が小さいときは長くなるように決定される。したがって、このクライアント装置によれば、ネットワークのトラフィックを不必要に増加させることなく、時刻補正をすることができる。
【０００８】
好ましい態様において、このクライアント装置は、前回時刻補正を行ったときの補正値が、あらかじめ決められたしきい値を超えていたか判断する第１の判断手段と、前記誤差算出手段により算出された誤差が、補正値の制限値を超えているか判断する第２の判断手段と、前記第１の判断手段により、前回時刻補正を行ったときの補正値があらかじめ決められたしきい値を超えていたと判断され、かつ、前記第２の判断手段により、前記誤差算出手段により算出された誤差が補正値の制限値を超えていると判断された場合、その値が大きくなるように制限値を決定する制限値決定手段とをさらに有し、前記誤差算出手段により算出された誤差が前記制限値決定手段により決定された制限値を超えていた場合、前記時刻補正手段が、前記制限値を補正値として用いて時刻補正を行ってもよい。
このクライアント装置によれば、補正値の制限値も誤差に基づいて決定される。制限値は、誤差が大きいときは大きく、誤差が小さいときは小さくなるように決定される。したがって、このクライアント装置によれば、誤差に応じて高速に時刻補正をすることができる。
この態様において、前記制限値決定手段が、前回時刻補正を行ったときの制限値にあらかじめ決められた定数を加算することにより、新たな制限値を決定してもよい。あるいは、前記制限値決定手段が、前回時刻補正を行ったときの制限値に前記誤差により決定される値を加算することにより、新たな制限値を決定してもよい。
【０００９】
また、本発明は、ネットワークを介してサーバ装置と通信し、計時手段を有するクライアント装置を、時刻補正要求を出力する際に、前記計時手段が生成した時刻情報を送信時刻Ｔ１として前記時刻補正要求に含ませて、前記ネットワークを介して前記サーバ装置に送信する要求送信手段と、前記サーバ装置が前記時刻補正要求を受信した時刻Ｔ２を含む時刻補正応答を、前記時刻補正応答を送信した時刻Ｔ３と共に送信すると、この時刻補正応答を前記時刻補正要求の応答として前記ネットワークを介して受信する応答受信手段と、前記応答受信手段が前記時刻補正応答を受信した時に前記計時手段が生成した時刻情報を受信時刻Ｔ４とし、前記送信時刻Ｔ１と、前記時刻補正応答に含まれる時刻Ｔ２およびＴ３と、前記受信時刻Ｔ４の４つの時刻を用いて前記計時手段の誤差を算出する誤差算出手段と、前記誤差算出手段により算出された誤差を用いて、時刻補正に用いる補正値を算出する補正値算出手段と、前記補正値算出手段により算出された補正値を用いて、前記計時手段の時刻補正を行う時刻補正手段と、前記誤差算出手段により算出された誤差に基づいて前記時刻補正要求の送信間隔を決定する送信間隔決定手段であって、誤差が大きくなるにつれ送信間隔が短くなるように前記送信間隔を決定する送信間隔決定手段として機能させるプログラムを提供する。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照して本発明の実施形態について説明する。
＜１．第１実施形態＞
図１は、本発明の第１実施形態に係る時刻補正システム１の構成を示す図である。ＰＣ１００は、ネットワーク３００を介してＮＴＰ（Network Time Protocol）サーバ２００と接続されたクライアント装置である。ＮＴＰサーバ２００は、時刻補正を行うための内部時計を有している（図示略）。ネットワーク３００を介して時刻補正を要求する要求パケット（時刻補正要求）を受信すると、ＮＴＰサーバ２００は、要求パケットの送信元のクライアント装置に、時刻補正要求に対する応答（時刻補正応答）として応答パケットを送信する機能を有する。要求パケットは、クライアント装置が要求パケットを送信した時刻Ｔ１を示す情報を含んでいる。応答パケットは、ＮＴＰサーバ２００が要求パケットを受信した時刻Ｔ２と、ＮＴＰサーバ２００が応答パケットを送信した時刻Ｔ３とを含んでいる。ネットワーク３００は、インターネット、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）等のネットワークである。なお、図１においては、サーバ装置およびクライアント装置がそれぞれ１台ずつ図示されているが、ネットワーク３００には、複数のサーバ装置および複数のクライアント装置が接続されていてもよい。なお、以下の説明において、「サーバ装置」とは、ネットワークを介して他の装置と接続された装置であって、他の装置から送信された要求に対して応答を返信する装置をいう。また、「クライアント装置」とは、ネットワークを介してサーバ装置に接続された装置であって、サーバ装置に対して要求を送信する装置をいう。
【００１１】
図２は、ＰＣ１００の機能構成を示す図である。タイマＴは、時刻情報を生成する内部時計である。要求送信部１０１は、ネットワーク３００を介して、要求パケット（時刻補正要求）を、ＮＴＰサーバ２００に送信する。応答受信部１０２は、ＮＴＰサーバ２００からネットワーク３００を介して送信された応答パケット（時刻補正応答）を受信する。誤差算出部１０３は、上述の時刻Ｔ１〜Ｔ３と、ＰＣ１００が応答パケットを受信した時刻Ｔ４とを用いて、タイマＴの誤差Δｔを算出する。なお、時刻Ｔ１およびＴ４はクライアント装置（ＰＣ１００）の内部時計により計測された時刻であり、時刻Ｔ２およびＴ３はサーバ装置（ＮＴＰサーバ２００）の内部時計により計測された時刻である。誤差Δｔは、タイマＴが示す時刻とＮＴＰサーバ２００の内部時計が示す時刻との差である。誤差Δｔは、例えば上述の式（２）により算出される。時刻補正部１０４は、誤差Δｔを用いて補正値を算出する。時刻補正部１０４は、算出した補正値を用いてタイマＴの時刻補正を行う。送信間隔決定部１０５は、誤差Δｔに基づいて要求パケットの送信間隔ｉを決定する。送信間隔ｉは時間の次元を有している。要求パケットの送信間隔ｉは、誤差Δｔが大きくなるにつれ短くなるように決定される。要求送信部１０１は、送信間隔ｉで、要求パケットを送信する。
【００１２】
図３は、ＰＣ１００のハードウェア構成を示す図である。ＣＰＵ（Central Processing Unit）１１０は、ＣＰＵ１１０の各構成要素を制御する制御装置である。ＲＯＭ（Read Only Memory）１２０は、ＣＰＵ１１０の起動に必要なプログラムやデータを記憶する記憶装置である。ＲＡＭ（Random Access Memory）１３０は、ＣＰＵ１１０の作業領域として機能する記憶装置である。ＩＦ（Interface）１４０は、ネットワーク３００や他の装置との間でデータや制御命令の入出力を行うインターフェースである。ＨＤＤ（Hard Disk Drive）１５０は、各種プログラムやデータを記憶する記憶装置である。タイマＴは、時刻情報を生成する内部時計である。本実施形態において、ＨＤＤ１５０は、時刻補正を行うための時刻補正プログラムを記憶している。ＣＰＵ１１０が時刻補正プログラムを実行することによって、ＰＣ１００は、図２に示される機能構成を具備する。
【００１３】
図４は、第１実施形態に係る時刻補正を説明する図である。時刻補正を行うため、ＰＣ１００は、ＮＴＰサーバ２００に要求パケットを送信する。ＰＣ１００は、ＮＴＰサーバ２００から応答パケットを受信する。ＰＣ１００のＣＰＵ１１０は、前述の時刻Ｔ１〜Ｔ４および式（２）に基づいて、タイマＴが示す時刻とＮＴＰサーバ２００の内部時計が示す時刻との誤差Δｔを算出する。図４において、縦軸はタイマＴが示す時刻とＮＴＰサーバ２００の内部時計が示す時刻との誤差を示す。図４の縦軸は、（２）式により算出される誤差ではなく、実際に発生している誤差を示している。また、図４において、横軸は基準となる時刻、ここでは、ＮＴＰサーバ２００の内部時計が示す時刻を示す。図４中の黒丸（●）は、その時刻において時刻補正処理が行われたことを示す。
【００１４】
ＰＣ１００は、送信間隔ｉで時刻補正処理を行っている。本実施形態において、送信間隔ｉは、（２）式で算出される誤差Δｔに基づいて決定される変数である。詳細には、送信間隔ｉは、誤差Δｔが大きくなるにつれ短くなるように決定される。ここでは、送信間隔ｉの初期値が１０の場合を例として説明する。また、ここでは、（２）式により算出される誤差Δｔが、タイマＴが示す時刻とＮＴＰサーバ２００の内部時計が示す時刻との実際の誤差と等しい場合について説明する。
【００１５】
ＰＣ１００のＣＰＵ１１０は、まず時刻０において時刻補正処理を行う。時刻０において、誤差Δｔ＝０である。ＣＰＵ１１０は、算出された誤差Δｔを用いてタイマＴの補正を行う。タイマＴの補正は、算出された誤差を補償するように行われる。例えば、ＣＰＵ１１０は、算出された誤差Δｔを補正値として、タイマＴの現在時刻から減算してもよい。しかし、誤差ΔｔをタイマＴの現在時刻から単純に減算するだけでは、適切な時刻補正が行われない場合がある。すなわち、（２）式により算出される誤差Δｔ（見かけ上の誤差）が、タイマＴが示す時刻とＮＴＰサーバ２００の内部時計が示す時刻との実際の誤差と異なっている場合には、誤差Δｔを補正値とすると、実際の誤差以上の補正値を減算することになってしまう場合がある。この場合、補正値の減算によりタイマＴの誤差はさらに拡大してしまう。そこで、本実施形態においては、タイマＴの現在時刻の補正に用いられる補正値の絶対値には上限Ｃが設けられている。上限Ｃはあらかじめ決められた定数である。誤差Δｔが、｜Δｔ｜≧Ｃを満たす場合、ＣＰＵ１１０は、補正値としてＣを採用する。以下の説明では、Ｃ＝４である例を用いる。補正値の正負は誤差Δｔの正負と同一である。これにより、ネットワークの遅延などの理由により見かけ上誤差が大きくなった場合に、時刻補正によりかえって誤差が拡大してしまうことが避けられる。
【００１６】
図４の例に戻って説明をする。時刻０において、誤差Δｔ＝０である。誤差がないので、実際には補正は行われない。さらに、ＣＰＵ１１０は、あらかじめ決められた関数またはルックアップテーブルと、算出された誤差Δｔを用いて送信間隔ｉを更新（決定）する。この関数は、誤差Δｔが与えられたときに送信間隔ｉを出力する関数である。ルックアップテーブルも同様である。ここで、この関数またはルックアップテーブルは、誤差Δｔが大きくなるにつれ、短い送信間隔ｉを出力するものである。
【００１７】
図５は、送信間隔と誤差との関係を例示する図である。ＨＤＤ１５０は、誤差Δｔに対してこのような送信間隔ｉを出力する関数またはルックアップテーブルをあらかじめ記憶している。なお、関数の形状は、図５に示されるものに限定されない。誤差Δｔが大きくなるにつれ、短い送信間隔ｉを出力するものであれば、どのような関数であってもよい。例えば、一次式、多項式、指数関数、対数関数、あるいはこれらのうち複数の組み合わせであってもよい。
【００１８】
再び図４を参照して説明する。ＣＰＵ１１０は、この関数に従って送信間隔ｉを更新する。ここで、Δｔ＝０の場合、ｉは初期値のままである。したがって、次に時刻補正処理が行われるのは、時刻１０のときである。
【００１９】
時刻５において、何らかの理由により、ＰＣ１００のタイマＴが示す時刻は、ＮＴＰサーバ２００の内部時計が示す時刻より４４進んでしまった。すなわち、時刻５において、＋４４の誤差が発生した。時刻６〜９において、誤差＋４４の状態が維持される。
【００２０】
時刻１０において、ＣＰＵ１１０は、時刻補正処理を行う。ＣＰＵ１１０は（２）式に従って誤差Δｔを算出する。時刻１０においてΔｔ＝＋４４である。ＣＰＵ１１０は、まず、タイマＴの時刻を補正する。いま、誤差Δｔは、｜Δｔ｜≧Ｃを満たすので、ＣＰＵ１１０は、タイマＴの現在時刻からＣ（＝４）を減算する。これにより、誤差ΔｔはΔｔ＝４０に減少する。また、ＣＰＵ１１０は、あらかじめ決められた関数および算出されたΔｔに基づいて、送信間隔ｉを更新する。送信間隔ｉは、例えばｉ＝１に更新される。したがって、次に時刻補正処理が行われるのは時刻１１のときである。なお、タイマＴが示す時刻は補正されるので、ＣＰＵ１１０は、補正後のタイマＴの時刻に対して送信間隔ｉを適用する。
【００２１】
ＣＰＵ１１０は、送信間隔ｉで上述の処理を繰り返し実行する。送信間隔ｉは、誤差Δｔが大きいときは短く、誤差Δｔが小さくなると長くなるように決定される。これにより、誤差が大きい間は高い頻度で時刻補正処理が行われ、誤差が小さくなると時刻補正処理の頻度は低くなる。したがって、本実施形態によれば、クライアント装置の時計とサーバ装置の時計との誤差が小さいときには、ネットワークのトラフィックが不必要に増加することはない。
【００２２】
＜２．第２実施形態＞
続いて、本発明の第２実施形態について説明する。以下の説明では、第１実施形態との差異点を中心に説明し、第１実施形態と共通する事項についてはその説明を省略する。また、第１実施形態と共通する要素については共通の参照番号を用いて説明する。
【００２３】
図６は、第２実施形態に係るＰＣ１００の機能構成を示す図である。図２と異なっている点は、ＰＣ１００が、判断部１０６、判断部１０７、および制限値決定部１０８を有する点である。第１実施形態において、補正値の制限値Ｃは定数であったが、本実施形態において、制限値Ｃは誤差Δｔに応じて更新される。判断部１０６は、前回時刻補正を行ったときの補正値が、あらかじめ決められたしきい値を超えていたか判断する。判断部１０７は、（２）式により算出された誤差Δｔが、補正値の制限値Ｃを超えているか判断する。制限値決定部１０８は、判断部１０６の判断結果および判断部１０７の判断結果がともに肯定的なものであった場合、その値が大きくなるように制限値Ｃを更新（決定）する。なお、ＰＣ１００のハードウェア構成は図３と同一である。
【００２４】
図７は、第２実施形態に係る時刻補正を説明する図である。本実施形態において、ＣＰＵ１１０は、（２）式に従って誤差Δｔを算出すると、前回に時刻補正処理を行ったときの補正値があらかじめ決められたしきい値を超えていたか判断する。すなわち、ＣＰＵ１１０は、補正処理を行う際に、補正値をＲＡＭ１３０に記憶させる。また、ＨＤＤ１５０は、しきい値を特定する情報をあらかじめ記憶している。しきい値としては、例えば、制限値Ｃを用いることができる。すなわち、ＣＰＵ１１０は、前回時刻補正処理を行ったときに、制限値Ｃに相当する時刻補正が行われたか判断する（第１の判断）。また、ＣＰＵ１１０は、算出された誤差Δｔが、｜Δｔ｜≧Ｃを満たすか判断する（第２の判断）。
【００２５】
上記第１の判断および第２の判断のいずれか一方の判断結果が否定的なものであった場合、ＣＰＵ１１０は、制限値Ｃの更新を行わない。上記第１の判断および第２の判断の両方の判断結果が肯定的なものであった場合、ＣＰＵ１１０は、制限値Ｃの更新を行う。制限値Ｃの更新は、例えば以下のように行われる。すなわち、ＣＰＵ１１０は、制限値Ｃにあらかじめ決められた増加量ΔＣを加算する。以下、Ｃ＝４、ΔＣ＝１である場合を例として説明を行う。
【００２６】
時刻０における時刻補正処理の後、時刻１０において、ＣＰＵ１１０は、時刻補正処理を行う。まず、ＣＰＵ１１０は、（２）式に従って誤差Δｔを算出する。ここで、Δｔ＝４４である。Δｔ≠０であるので、ＣＰＵ１１０は、タイマＴの時刻を補正する。ＣＰＵ１１０は、前回（時刻０）時刻補正処理を行ったときに、制限値Ｃに相当する時刻補正が行われたか判断する。時刻０において、制限値Ｃに相当する時刻補正は行われていない。したがって、ＣＰＵ１１０は制限値Ｃの更新を行わない。ＣＰＵ１１０は、制限値Ｃの値として初期値Ｃ＝４を用いて時刻補正を行う。なお、送信間隔ｉの更新処理については、第１実施形態で説明したとおりに行われる。ここで、例えばｉはｉ＝１と決定される。
【００２７】
次に、ＣＰＵ１１０は、時刻１１において時刻補正処理を行う。時刻１１において、Δｔ＝４０である。Δｔ≠０であるので、ＣＰＵ１１０は、タイマＴの時刻を補正する。ＣＰＵ１１０は、前回（時刻１０）時刻補正処理を行ったときに、制限値Ｃに相当する時刻補正が行われたか判断する。時刻１０において、制限値Ｃ（Ｃ＝４）に相当する時刻補正が行われている。したがって、ＣＰＵ１１０は制限値Ｃの更新を行う。また、ＣＰＵ１１０は、誤差Δｔが、｜Δｔ｜≧Ｃを満たすか判断する。いま、Δｔ＝４０かつＣ＝４であるので、誤差Δｔはこの条件を満たす。すなわち、ＣＰＵ１１０は、制限値Ｃに、増加量ΔＣを加算する。ここで、制限値ＣはＣ＝５に更新される。また、第１実施形態で説明した方法により、送信間隔ｉはｉ＝１に更新される。
【００２８】
次に、ＣＰＵ１１０は、時刻１２において時刻補正処理を行う。時刻１２において、Δｔ＝３５である。Δｔ≠０であるので、ＣＰＵ１１０は、タイマＴの時刻を補正する。ＣＰＵ１１０は、前回（時刻１１）時刻補正処理を行ったときに、制限値Ｃに相当する時刻補正が行われたか判断する。時刻１１において、制限値Ｃ（Ｃ＝５）に相当する時刻補正が行われている。また、ＣＰＵ１１０は、誤差Δｔが、｜Δｔ｜≧Ｃを満たすか判断する。いま、Δｔ＝３５かつＣ＝５であるので、誤差Δｔはこの条件を満たす。したがって、ＣＰＵ１１０は制限値Ｃの更新を行う。すなわち、ＣＰＵ１１０は、制限値Ｃに、増加量ΔＣを加算する。ここで、制限値ＣはＣ＝６に更新される。また、第１実施形態で説明した方法により、送信間隔ｉはｉ＝１に更新される。
【００２９】
ＣＰＵ１１０は、以上で説明した処理を繰り返し実行する。本実施形態によれば、前回制限値に相当する補正が行われても、なお誤差Δｔが制限値を超えている場合、制限値が大きくなるように制限値が更新される。これにより、制限値の初期値を低く抑えつつも、補正後の誤差がまだ制限値以上である場合には、制限値が増加される。見かけ上の誤差Δｔが制限値以上の大きな値であった場合、それだけではその誤差が一時的なネットワークの負荷増大によりもたらされたものであるのか、あるいは現実にＰＣ１００の時刻とＮＴＰサーバ２００の時刻が大きくずれているのか、ＣＰＵ１１０は判断することができない。本実施形態によれば、補正値の制限値Ｃは動的に更新されるので、誤差が一時的なネットワークの負荷増大による場合は、制限値は低く抑えられる。一方、現実にＰＣ１００の時刻とＮＴＰサーバ２００の時刻が大きくずれていた場合、制限値Ｃは徐々に増加する。これにより、迅速に時刻補正を行うことができる。なお、ＣＰＵ１１０は、誤差Δｔがあらかじめ決められた条件（例えば、Δｔ＝０など、誤差Δｔが十分小さいと判断される条件）を満たした場合、制限値Ｃを初期値に戻してもよい。
【００３０】
＜３．他の実施形態＞
本発明は上述の実施形態に限定されるものではなく、種々の変形実施が可能である。
上述の各実施形態において、クライアント装置が汎用のコンピュータ装置である態様について説明したが、クライアント装置はこれに限定されるものではない。いわゆる組み込み機器に対して本発明を適用することも可能である。例えば、時刻補正プログラムを記憶したＲＯＭと、この時刻補正プログラムを実行するＣＰＵと、インターネットに接続するネットワークインターフェースとを有する自動販売機に対し、本発明を適用することも可能である。
【００３１】
また、上述の第２実施形態において、制限値Ｃは、前回の時刻補正処理に用いられた制限値Ｃに、定数ΔＣを加算することにより更新された。しかし、制限値Ｃの更新方法はこれに限定されない。例えば、ΔＣは定数ではなく、誤差Δｔの関数であってもよい。すなわち、誤差Δｔの値が大きいときにはΔＣを大きくし、誤差Δｔが小さくなるとΔＣを小さくしてもよい。
【図面の簡単な説明】
【００３２】
【図１】本発明の第１実施形態に係る時刻補正システム１の構成を示す図である。
【図２】ＰＣ１００の機能構成を示す図である。
【図３】ＰＣ１００のハードウェア構成を示す図である。
【図４】第１実施形態に係る時刻補正を説明する図である。
【図５】送信間隔と誤差との関係を例示する図である。
【図６】第２実施形態に係るＰＣ１００の機能構成を示す図である。
【図７】第２実施形態に係る時刻補正を説明する図である。
【符号の説明】
【００３３】
１…時刻補正システム、１００…ＰＣ、１０１…要求送信部、１０２…応答受信部、１０３…誤差算出部、１０４…時刻補正部、１０５…送信間隔決定部、１０６…判断部、１０７…判断部、１０８…制限値決定部、１１０…ＣＰＵ、１２０…ＲＯＭ、１３０…ＲＡＭ、１４０…ＩＦ、１５０…ＨＤＤ、２００…ＮＴＰサーバ、３００…ネットワーク
【図１】
2007214670.tif 000003
【図２】
2007214670.tif 000004
【図３】
2007214670.tif 000005
【図４】
2007214670.tif 000006
【図５】
2007214670.tif 000007
【図６】
2007214670.tif 000008
【図７】
2007214670.tif 000009