(57)【要約】【課題】精度の高い時刻でもって各デバイスの時刻の同期をとることができる。【解決手段】通信システム１０は、通信可能に接続されたプリントサーバ２０，第１プリンタ３０及び第２プリンタ４０で構成されている。プリントサーバ２０が利用する時刻情報発生源はＮＴＰサーバ５０であり、第１プリンタ３０が利用する時刻情報発生源はＲＴＣ３４であり、第２プリンタ４０が利用する時刻情報発生源は内部システムクロック２１ａである。この通信システム１０では、これらの時刻情報発生源のうち最も精度の高いＮＴＰサーバ５０を時刻同期源とし、該時刻同期源に基づいて前記複数のデバイスのすべての時刻の同期を行う。これにより、精度の高い時刻でもって各デバイスの時刻の同期をとることができる。【選択図】図１
2007101183.tif 000002
【特許請求の範囲】
【請求項１】
複数のデバイスが通信可能に接続された通信システムであって、
各デバイスは、
時刻情報を発生する時刻情報発生源と、
精度に基づいて定められた時刻情報発生源の優先順位を記憶する優先順位記憶手段と、
自己が利用する時刻情報発生源と自己に隣接するデバイスが利用する時刻情報発生源とを比較し前記優先順位記憶手段に定められた優先順位に照らして優先順位の高い時刻情報発生源を時刻同期源に決定する時刻同期源決定手段と、
前記時刻同期源決定手段によって決定された前記時刻同期源に時刻が同期するよう調節する時刻調節手段と、
を備える通信システム。
【請求項２】
前記時刻同期源決定手段は、デバイス内に前記時刻情報発生源が複数存在するときには、利用可能な時刻情報発生源のうち前記優先順位が最も高い時刻情報発生源を自己が利用する時刻情報発生源とする、
請求項１に記載の通信システム。
【請求項３】
請求項１又は２に記載の通信システムであって、
各デバイスは、
自己が利用する時刻情報発生源が変更されたときには前記時刻同期源決定手段に前記時刻同期源の再決定を行わせる一方、自己に隣接するデバイスとの間で前記時刻同期源の再決定を行ったときには自己に隣接し前記時刻同期源の再決定を行っていない他のデバイスとの間で前記時刻同期源決定手段に前記時刻同期源の再決定を行わせる動作制御手段を備える、
通信システム。
【請求項４】
前記動作制御手段は、自己が利用する時刻情報発生源が前記時刻同期源決定手段により前記時刻同期源に決定されていた場合に該時刻情報発生源が変更されたときには、前記時刻同期源決定手段に前記時刻同期源の再決定を行わせる、
請求項３に記載の通信システム。
【請求項５】
前記動作制御手段は、定期的に前記時刻同期源決定手段に前記時刻同期源の再決定を行わせる、
請求項３又は４に記載の通信システム。
【請求項６】
前記時刻同期源決定手段は、自己が利用する時刻情報発生源と自己に隣接するデバイスが有する時刻情報発生源との優先順位が同じときには、各時刻情報発生源の精度情報に基づいて精度の高低を判定し高精度のものを前記時刻同期源とするか、又は予め定められた規則にしたがってそのうちの特定の時刻情報発生源を前記時刻同期源とする、
請求項１〜５のいずれかに記載の通信システム。
【請求項７】
通信可能に接続された複数のデバイスで時刻の同期を行う時刻同期方法であって、
各デバイスが利用する時刻情報発生源のうち最も精度の高い時刻情報発生源を時刻同期源とし、該時刻同期源に基づいて前記複数のデバイスのすべての時刻の同期を行う、
時刻同期方法。
【請求項８】
前記複数のデバイスのうちいずれかのデバイスが利用する時刻情報発生源が変更されたときには前記時刻同期源を再決定し、再決定後の時刻同期源に基づいて前記複数のデバイスのすべての時刻の同期を行う、
請求項７に記載の時刻同期方法。
【請求項９】
前記時刻同期源に決定されていた時刻情報発生源が変更されたときには前記時刻同期源を再決定し、再決定後の時刻同期源に基づいて前記複数のデバイスのすべての時刻の同期を行う、
請求項７又は８に記載の時刻同期方法。
【請求項１０】
定期的に前記時刻同期源を再決定し、再決定後の時刻同期源に基づいて前記複数のデバイスのすべての時刻の同期を行う、
請求項７〜９のいずれかに記載の時刻同期方法。
【請求項１１】
最も精度の高い時刻情報発生源が複数存在するときには、予め定められた規則にしたがってそのうちの特定の時刻情報発生源を前記時刻同期源とする、
請求項７〜１０のいずれかに記載の時刻同期方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム及び時刻同期方法に関する。
【背景技術】
【０００２】
従来、複数のデバイスが通信可能に接続された通信システムにおいて、デバイス間で時刻同期を行うものが提案されている。例えば、特許文献１では、サーバコンピュータと、ＮＴＰ(Network Time Protocol)サーバコンピュータと、複数のクライアントコンピュータと、プリンタとがネットワークを介して接続された通信システムにおいて、プリンタはＮＴＰサーバコンピュータから正しい時刻を取得し、この正しい時刻に基づいてプリンタの時刻を訂正することにより、プリンタの時刻のズレをなくすようにしている。周知のように、ＮＴＰサーバコンピュータは、ネットワーク・タイム・プロトコルに基づいてＵＴＣ(Coordinated Universal Time)の基準時計から正確な時刻を取得するものであるため、プリンタが他のクライアントコンピュータの時刻と同期を取る場合に比べて時刻精度が高くなる。
【特許文献１】特開２００３−２０７５８６
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上述した特許文献１の通信システムにおいて、サーバコンピュータやクライアントコンピュータもＮＴＰサーバコンピュータから正しい時刻を取得しその時刻に基づいて自己の時刻を調節するようにすれば、通信システムを構成する各デバイスの時刻情報はすべてＵＴＣの基準時計を基準とするものになるため、あるクライアントコンピュータからプリンタに時刻を指定した処理を指令するとその時刻が到来したときにプリンタにより確実に処理が実行される。
【０００４】
しかしながら、その場合、通信システムを構成するデバイスの中にＮＴＰサーバコンピュータから正しい時刻を取得する機能を有さないデバイスがあると、そのデバイスの時刻と他のデバイスの時刻との同期がとれないという問題が生じる。また、デバイス間で時刻の同期をとるにあたっては、できるだけ精度の高い時刻となるようにしたいという要望もある。
【０００５】
本発明は、このような問題を解決するためになされたものであり、精度の高い時刻でもって各デバイスの時刻の同期をとることができる通信システム及び時刻同期方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、上述の目的を達成するために以下の手段を採った。
【０００７】
本発明の通信システムは、
複数のデバイスが通信可能に接続された通信システムであって、
各デバイスは、
時刻情報を発生する時刻情報発生源と、
精度に基づいて定められた時刻情報発生源の優先順位を記憶する優先順位記憶手段と、
自己が利用する時刻情報発生源と自己に隣接するデバイスが利用する時刻情報発生源とを比較し前記優先順位記憶手段に定められた優先順位に照らして優先順位の高い時刻情報発生源を時刻同期源に決定する時刻同期源決定手段と、
前記時刻同期源決定手段によって決定された前記時刻同期源に時刻が同期するよう調節する時刻調節手段と、
を備えたものである。
【０００８】
この通信システムでは、各デバイスは、自己が利用する時刻情報発生源と自己に隣接するデバイスが利用する時刻情報発生源とを比較し、優先順位の高い時刻情報発生源を時刻同期源に決定し、その時刻同期源に自己の時刻情報が同期するよう調節する。ここで、優先順位は精度に基づいて定められているから、各デバイスが利用する時刻情報発生源のうち最も精度の高い時刻情報発生源が時刻同期源となる。したがって、精度の高い時刻でもって各デバイスの時刻の同期をとることができる。
【０００９】
本発明の通信システムにおいて、前記時刻同期源決定手段は、デバイス内に前記時刻情報発生源が複数存在するときには、利用可能な時刻情報発生源のうち前記優先順位が最も高い時刻情報発生源を自己が利用する時刻情報発生源としてもよい。こうすれば、効率よく各デバイス間の時刻情報発生源を比較することができる。
【００１０】
本発明の通信システムにおいて、各デバイスは、自己が利用する時刻情報発生源が変更されたときには前記時刻同期源決定手段に前記時刻同期源の再決定を行わせる一方、自己に隣接するデバイスとの間で前記時刻同期源の再決定を行ったときには自己に隣接し前記時刻同期源の再決定を行っていない他のデバイスとの間で前記時刻同期源決定手段に前記時刻同期源の再決定を行わせる動作制御手段を備えていてもよい。こうすれば、例えば通信システム内のいずれかのデバイスに新たな時刻情報発生源が追加され、その時刻情報発生源の優先順位が最も高かった場合には、各デバイスとも再度時刻同期源を決定し直すため、その新たな時刻情報発生源が時刻同期源に決定される。また、通信システム内で最も優先順位の高かった時刻情報発生源が使用できなくなった場合にも、各デバイスとも再度時刻同期源を決定し直すため、次に優先順位の高い時刻情報発生源が時刻同期源に決定される。このように、時刻同期源が動的に変更されるため、各デバイスの時刻は絶えず最善な精度となる。
【００１１】
ここで、前記動作制御手段は、自己が利用する時刻情報発生源が前記時刻同期源決定手段により前記時刻同期源に決定されていた場合に該時刻情報発生源が変更されたときには、前記時刻同期源決定手段に前記時刻同期源の再決定を行わせるようにしてもよい。こうすれば、時刻同期源として利用していた最も優先順位の高い時刻情報発生源が利用できなくなった場合には、速やかに次に優先順位の高い時刻情報発生源が時刻同期源に決定されるため、各デバイスの時刻は絶えず最善な精度となる。
【００１２】
また、前記動作制御手段は、定期的に前記時刻同期源決定手段に前記時刻同期源の再決定を行わせるようにしてもよい。この場合にも時刻同期源が動的に変更されるため、各デバイスの時刻は絶えず最善な精度となる。
【００１３】
本発明の通信システムにおいて、前記時刻同期源決定手段は、自己が利用する時刻情報発生源と自己に隣接するデバイスが有する時刻情報発生源との優先順位が同じときには、各時刻情報発生源の精度情報に基づいて精度の高低を判定し高精度のものを前記時刻同期源としてもよい。こうすれば、優先順位が同じ時刻情報発生源同士であっても、より精度の高い時刻情報を提供することができる。あるいは、前記時刻同期源決定手段は、自己が利用する時刻情報発生源と自己に隣接するデバイスが有する時刻情報発生源との優先順位が同じときには、予め定められた規則にしたがってそのうちの特定の時刻情報発生源を前記時刻同期源としてもよい。優先順位が同じ時刻情報発生源同士であっても微妙に精度が異なることから、特定の時刻情報発生源を時刻同期源にするのが好ましい。
【００１４】
本発明の時刻同期方法は、通信可能に接続された複数のデバイスで時刻の同期を行う時刻同期方法であって、各デバイスが利用する時刻情報発生源のうち最も精度の高い時刻情報発生源を時刻同期源とし、該時刻同期源に基づいて前記複数のデバイスのすべての時刻の同期を行うものである。この時刻同期方法によれば、精度の高い時刻でもって各デバイスの時刻の同期をとることができる。
【００１５】
本発明の時刻同期方法において、前記複数のデバイスのうちいずれかのデバイスが利用する時刻情報発生源が変更されたときには前記時刻同期源を再決定し、再決定後の時刻同期源に基づいて前記複数のデバイスのすべての時刻の同期を行うようにしてもよい。こうすれば、例えば通信システム内のいずれかのデバイスに新たな時刻情報発生源が追加され、その時刻情報発生源の精度が最も高かった場合には、各デバイスとも再度時刻同期源を決定し直すため、その新たな時刻情報発生源が時刻同期源に決定される。また、通信システム内で最も精度の高かった時刻情報発生源が使用できなくなった場合にも、各デバイスとも再度時刻同期源を決定し直すため、次に精度の高い時刻情報発生源が時刻同期源に決定される。このように、時刻同期源が動的に変更されるため、各デバイスの時刻は絶えず最善な精度となる。
【００１６】
本発明の時刻同期方法において、前記時刻同期源に決定されていた時刻情報発生源が変更されたときには前記時刻同期源を再決定し、再決定後の時刻同期源に基づいて前記複数のデバイスのすべての時刻の同期を行うようにしてもよい。こうすれば、時刻同期源として利用していた最も精度の高い時刻情報発生源が利用できなくなった場合には、速やかに次に精度の高い時刻情報発生源が時刻同期源に決定されるため、各デバイスの時刻は絶えず最善な精度となる。
【００１７】
本発明の時刻同期方法において、定期的に前記時刻同期源を再決定し、再決定後の時刻同期源に基づいて前記複数のデバイスのすべての時刻の同期を行うようにしてもよい。この場合にも時刻同期源が動的に変更されるため、各デバイスの時刻は絶えず最善な精度となる。
【００１８】
本発明の時刻同期方法において、最も精度の高い時刻情報発生源が複数存在するときには、予め定められた規則にしたがってそのうちの特定の時刻情報発生源を前記時刻同期源としてもよい。優先順位が同じ時刻情報発生源同士であっても微妙に精度が異なることから、特定の時刻情報発生源を時刻同期源にするのが好ましい。
【発明を実施するための最良の形態】
【００１９】
次に、本発明の実施の形態を図面に基づいて説明する。図１は本発明の一実施形態である通信システム１０の概略構成を表すブロック図である。
【００２０】
本実施形態の通信システム１０は、プリントサーバ２０と、このプリントサーバ２０にローカル接続された第１プリンタ３０と、同じくプリントサーバ２０にローカル接続された第２プリンタ４０とから構成されている。
【００２１】
プリントサーバ２０は、ＣＰＵ２１を中心とするマイクロプロセッサとして構成されており、各種処理プログラムや各種データを記憶するＲＯＭ２２と、一時的にデータを記憶するＲＡＭ２３と、計時専用のチップであるＲＴＣ(Real Time Clock)２４と、第１及び第２プリンタ３０，４０とデータのやり取りを行うための外部通信インタフェース２５と、ネットワークを介してＮＴＰサーバ５０と通信可能なネットワークインタフェース２６とを備え、これらはバス２８で接続されている。ＣＰＵ２１は内部システムクロック２１ａを有しており、この内部システムクロック２１ａは水晶発振子からの発信クロックを分周してクロック周波数を生成する。また、ＲＴＣ２４も、水晶発振子からの発信クロックを分周してクロック周波数を生成するものであるが、内部システムクロック２１ａと異なり、電源が切られている間も図示しないバッテリから電源供給を受けて動作する。ＲＯＭ２２には、時刻情報発生源と優先順位との関係を定めた優先順位テーブル７０が記憶されている。本実施形態では、この優先順位テーブル７０は、図２に示すように、時刻情報発生源として原子時計とＮＴＰサーバとＲＴＣと内部システムクロックとがあり、これらの優先順位は原子時計が最上位であり、ＮＴＰサーバが２番目、ＲＴＣが３番目、内部システムクロックが最下位となっている。この優先順位は、各時刻情報発生源による時刻精度に基づくものであるが、ＲＴＣと内部システムクロックとはこれらの時刻精度が逆転することもあるため、その場合には優先順位も逆転する。
【００２２】
第１プリンタ３０は、インクジェット方式のプリント機構３７を有しており、ＣＰＵ３１を中心とするマイクロプロセッサとして構成されており、各種処理プログラムや各種データを記憶するＲＯＭ３２と、一時的にデータを記憶するＲＡＭ３３と、計時専用のチップであるＲＴＣ３４と、プリントサーバ２０とデータのやり取りを行うための外部通信インタフェース３５とを備え、これらはバス３８で接続されている。ＣＰＵ３１は内部システムクロック３１ａを有しており、この内部システムクロック３１ａは水晶発振子からの発信クロックを分周してクロック周波数を生成する。また、ＲＴＣ３４も、水晶発振子からの発信クロックを分周してクロック周波数を生成するものであるが、内部システムクロック３１ａと異なり、電源が切られている間も図示しないバッテリから電源供給を受けて動作する。ＲＯＭ３２には、時刻情報発生源と優先順位との関係を定めた優先順位テーブル７０（図２参照）が記憶されている。
【００２３】
第２プリンタ４０は、インクジェット方式のプリント機構４７を有しており、ＣＰＵ４１を中心とするマイクロプロセッサとして構成されており、各種処理プログラムや各種データを記憶するＲＯＭ４２と、一時的にデータを記憶するＲＡＭ４３と、プリントサーバ２０とデータのやり取りを行うための外部通信インタフェース４５とを備え、これらはバス４８で接続されている。ＣＰＵ４１は内部システムクロック４１ａを有しており、この内部システムクロック４１ａは水晶発振子からの発信クロックを分周してクロック周波数を生成する。ＲＯＭ４２には、時刻情報発生源と優先順位との関係を定めた優先順位テーブル７０（図２参照）が記憶されている。
【００２４】
ＮＴＰサーバ５０は、ネットワーク・タイム・プロトコルに基づいてＵＴＣの基準時計から正確な時刻を取得するコンピュータである。
【００２５】
次に、本実施形態の通信システム１０を構成するデバイス（プリントサーバ２０，第１プリンタ３０、第２プリンタ４０のほか、後から通信システム１０に追加されたデバイスがある場合にはそのデバイスも含む）の動作のうち、時刻同期源決定ルーチンについて説明する。図３は時刻同期源決定ルーチンのフローチャートである。
【００２６】
ここでは、通信システム１０を構成する各デバイスにおいて所定のイベントが発生した時、そのイベントが発生したデバイス（イベント発生デバイス）は図３左側の時刻同期源決定ルーチンを実行する。なお、所定のイベントが発生した時とは、例えばデバイス起動時、内在する時刻情報発生源が変更された時（例えばプリントサーバ２０においてＲＴＣ２４が引き抜かれたりＮＴＰサーバ５０との通信が不能になったりした時のほか、新たな時刻情報発生源が利用可能となった時など）といったいずれかのイベントが発生した時をいう。
【００２７】
さて、イベント発生デバイスは、所定のイベントが発生すると、自己のデバイスに含まれる時刻情報発生源の中で優先順位が最上位のものを選択する（ステップＳ１００）。例えば、自己のデバイスに含まれる時刻情報発生源の中で優先順位が第１位の時刻情報発生源が利用可能か否かを判定し、利用可能であればその時刻情報発生源を選択し、利用不能であれば自己のデバイスに含まれる時刻情報発生源の中で優先順位が次に高い時刻情報発生源が利用可能か否かを判定し、利用可能であればその時刻情報発生源を選択する、という処理を順次実行していく。続いて、選択した時刻情報発生源を仮時刻同期源に設定する（ステップＳ１１０）。
【００２８】
続いて、イベント発生デバイスは、仮の時刻情報発生源を隣接デバイスに通知すると共にその隣接デバイスの中で最上位の時刻情報発生源の返信を要求する（ステップＳ１２０）。すると、隣接デバイスは、この通知と要求とを受信したあと（ステップＳ３００）、その隣接デバイスの中で利用可能な時刻情報発生源のうち優先順位が最上位のものを選択し、その時刻情報発生源をイベント発生デバイスに返信する（ステップＳ３１０）。イベント発生デバイスは、その隣接デバイスの時刻情報発生源を受信すると（ステップＳ１３０）、仮時刻同期源と隣接デバイスの時刻情報発生源との優先順位を比較し（ステップＳ１４０）、隣接デバイスの時刻情報発生源の優先順位が高かったときには、隣接デバイスの時刻情報発生源を仮時刻同期源に設定し（ステップＳ１５０）、ステップＳ１７０に進む。一方、ステップＳ１４０で隣接デバイスの時刻情報発生源の優先順位が低いか仮時刻同期源と同位だったときには、そのままステップＳ１７０に進む。但し、隣接デバイスの時刻情報発生源の優先順位と仮時刻同期源とが同位だったときには、隣接デバイスの時刻情報発生源を仮時刻同期源に設定してステップＳ１７０に進んでもよい。
【００２９】
ステップＳ１７０では、隣接するすべてのデバイスに仮時刻同期源を通知したか否かを判定し、隣接するデバイスの中で仮時刻同期源を通知していないものが残っているときには、その未通知の隣接デバイスに対して再びステップＳ１２０以降の処理を実行する。一方、隣接するすべてのデバイスに仮時刻同期源を通知したならば、仮時刻同期源を自己の時刻同期源に設定し該時刻同期源と時刻同期を行う（ステップＳ１８０）。ここでの時刻同期は、時刻同期源がイベント発生デバイス内に存在する場合にはその時刻同期源に内部システムクロックの時刻を同期させ、時刻同期源がイベント発生デバイス内に存在しない場合にはその時刻同期源を持つ隣接デバイスに時刻を送信するよう要求し、その要求に対して返信されてきた時刻を受信しその時刻に内部システムクロックの時刻を同期させる。続いて、隣接するすべてのデバイスに時刻同期源及び同期後の時刻を通知し（ステップＳ１９０）、本ルーチンを終了する。
【００３０】
隣接デバイスは、イベント発生デバイスから時刻と時刻同期源とを受信すると（ステップＳ３２０）、通知された時刻同期源と自己（隣接デバイス）の中で最上位の時刻情報発生源との優先順位を比較し（ステップＳ３３０）、通知された時刻同期源の優先順位の方が高ければその時刻同期源を自己の時刻同期源に設定すると共にその時刻同期源と時刻同期を行い（ステップＳ３４０）、通知された時刻同期源と自己の中で最上位の時刻情報発生源の優先順位が同じであれば自己の中で最上位の時刻情報発生源を自己の時刻同期源に設定すると共にその時刻同期源と時刻同期を行う（ステップＳ３５０）。なお、ステップＳ３３０では、通知された時刻同期源の優先順位よりも自己の中で最上位の時刻情報発生源の優先順位が高くなることはない。というのは、イベント発生デバイスは、イベント発生デバイス及びイベント発生デバイスに隣接するすべてのデバイスからなるグループに含まれる全時刻情報発生源の中で最上位のものを時刻同期源に設定し、その時刻同期源を通知しているからである。また、イベント発生デバイスに隣接するすべてのデバイスにおいてステップＳ３４０又はＳ３５０の処理が終了した時点で、前出のグループに属するデバイス同士の時刻同期が終了することになる。そして、隣接デバイスは、ステップＳ３４０又はＳ３５０のあと、その時刻同期源及び同期後の時刻を隣接するすべてのデバイスに通知する（ステップＳ３６０）。すると、これを受信したデバイスは、ステップＳ３３０〜Ｓ３６０と同様の処理を実行する。これにより、イベント発生デバイスとは隣接しないがイベント発生デバイスに隣接するデバイスと隣接しているデバイスにおいても、時刻同期が行われることになる。
【００３１】
次に、本実施形態の通信システム１０を構成するデバイスの動作のうち、同期実行ルーチンについて説明する。図４は同期実行ルーチンのフローチャートである。通信システム１０を構成する各デバイスのＣＰＵは、所定時間毎に同期実行プログラムを自己のＲＯＭから読み出して実行する。このルーチンが開始されると、各デバイスのＣＰＵは、自己の有する時刻情報発生源が時刻同期源になっているか否かを判定し（ステップＳ２００）、自己の有する時刻情報発生源が時刻同期源になっているときには、現時点が予め定められた同期タイミングか否かを判定し（ステップＳ２１０）、現時点が同期タイミングのときには、自己の時刻を取得し（ステップＳ２２０）、隣接するすべてのデバイスにその時刻を時刻同期源の時刻として通知し（ステップＳ２３０）、本ルーチンを終了する。ステップＳ２００で自己の有する時刻情報発生源が時刻同期源でなかったときや、ステップＳ２１０で現時点が同期タイミングでなかったときには、そのまま本ルーチンを終了する。一方、時刻同期源の時刻を受信したデバイスは、隣接するデバイスのうち時刻同期源の時刻を通知してきたデバイス以外のデバイスに、受信した時刻同期源の時刻を通知する。この結果、通信システム１０を構成するデバイス間で連鎖的に時刻同期が行われる。
【００３２】
次に、時刻同期の具体例として、（１）図１に示す構成の通信システム１０における時刻同期、（２）図６に示す構成の通信システム１０における時刻同期、（３）図７に示す構成の通信システム１０における時刻同期について説明する。
【００３３】
（１）図１に示す構成の通信システム１０における時刻同期について
ここでは、最初に第１及び第２プリンタ３０，４０が起動し、その後プリントサーバ２０が起動するものとする。プリントサーバ２０が起動すると、プリントサーバ２０はイベント発生デバイスとなり、時刻同期源決定ルーチンを実行する。すなわち、プリントサーバ２０は、自己が利用可能な時刻情報発生源であるＮＴＰサーバ５０、ＲＴＣ２４及び内部システムクロック２１ａのうち図２の優先順位テーブルに照らして優先順位が最上位のＮＴＰサーバ５０を仮時刻同期源に設定し（ステップＳ１００，Ｓ１１０）、その仮時刻同期源を第１プリンタ３０に通知すると共に第１プリンタ３０の時刻情報発生源の返信を要求する（ステップＳ１２０）。これを受信した第１プリンタ３０は、自己が利用可能な時刻情報発生源であるＲＴＣ３４及び内部システムクロック３１ａのうち図２の優先順位テーブルに照らして優先順位が最上位のＲＴＣ３４をプリントサーバ２０に返信する（ステップＳ３００，Ｓ３１０）。これを受信したプリントサーバ２０は、仮時刻同期源と第１プリンタ３０から受信した時刻情報発生源とを比較する（ステップＳ１３０，Ｓ１４０）。ここでは仮時刻同期源の優先順位の方が高いので、プリントサーバ２０は仮時刻同期源を変更しない。その後、まだ第２プリンタ４０に仮時刻同期源を通知していないため、仮時刻同期源を第２プリンタ４０に通知すると共に第２プリンタ４０の時刻情報発生源の返信を要求する（ステップＳ１７０，Ｓ１２０）。これを受信した第２プリンタ４０は、内部の時刻情報発生源である内部システムクロック４１ａをプリントサーバ２０に返信する（ステップＳ３００，Ｓ３１０）。これを受信したプリントサーバ２０は、仮時刻同期源と第２プリンタ４０から受信した時刻情報発生源とを比較する（ステップＳ１３０，Ｓ１４０）。ここでは仮時刻同期源の優先順位の方が高いので、プリントサーバ２０は仮時刻同期源を変更しない。この時点ですべての隣接デバイスに仮時刻同期源を通知したことになるため、仮時刻同期源であるＮＴＰサーバ５０を時刻同期源に設定しそのＮＴＰサーバ５０と時刻同期を行ったあと、第１及び第２プリンタ３０，４０に自己の時刻と時刻同期源（ＮＴＰサーバ５０）とを通知する（ステップＳ１７０〜Ｓ１９０）。これを受信した第１及び第２プリンタ３０，４０は、通知されたＮＴＰサーバ５０が自己の利用可能な時刻情報発生源よりも優先順位が高いため、ＮＴＰサーバ５０を自己の時刻同期源として設定すると共に通知された時刻と同期をとる（ステップＳ３３０，Ｓ３４０）。なお、第１及び第２プリンタ３０，４０はプリントサーバ２０以外に隣接デバイスが存在しないため、自己の時刻と時刻同期源とを隣接デバイスに通知することはない。
【００３４】
このように、図１に示す構成の通信システム１０では、プリントサーバ２０の時刻情報発生源であるＮＴＰサーバ５０が時刻同期源となる。図５は、このときのデータのやり取りを表す説明図である。そして、時刻同期源決定後、プリントサーバ２０は同期タイミングに達するごとに第１及び第２プリンタ３０，４０に時刻同期源であるＮＴＰサーバ５０による時刻を通知し、第１及び第２プリンタ３０，４０はその時刻に自己の時刻を同期させる。
【００３５】
（２）図６に示す構成の通信システム１０における時刻同期について
図６の通信システム１０は、図１に示す構成を基本として、第１プリンタ３０に新プリントサーバ６０を追加接続したものであり、この新プリントサーバ６０はプリントサーバ２０と略同じものであるが、時刻情報発生源として原子時計を有しておりＮＴＰサーバ５０には接続されていないものとする。ここでは、図１の通信システム１０においてプリントサーバ２０のＮＴＰサーバ５０が時刻同期源に決定されている状態で、新プリントサーバ６０が第１プリンタ３０に接続された場合について説明する。
【００３６】
新プリントサーバ６０が起動すると、新プリントサーバ６０はイベント発生デバイスとなり、時刻同期源決定ルーチンを実行する。すなわち、新プリントサーバ６０は、自己が利用可能な時刻情報発生源である原子時計、ＲＴＣ及び内部システムクロックのうち図２の優先順位テーブルに照らして優先順位が最上位の原子時計を仮時刻同期源に設定し（ステップＳ１００，Ｓ１１０）、その仮時刻同期源を第１プリンタ３０に通知すると共に第１プリンタ３０の時刻情報発生源の返信を要求する（ステップＳ１２０）。これを受信した第１プリンタ３０は、自己が利用可能な時刻情報発生源であるＲＴＣ３４及び内部システムクロック３１ａのうち図２の優先順位テーブルに照らして優先順位が最上位のＲＴＣ３４を新プリントサーバ６０に返信する（ステップＳ３００，Ｓ３１０）。これを受信した新プリントサーバ６０は、仮時刻同期源と第１プリンタ３０から受信した時刻情報発生源とを比較する（ステップＳ１３０，Ｓ１４０）。ここでは仮時刻同期源の優先順位の方が高いので、新プリントサーバ６０は仮時刻同期源を変更しない。この時点ですべての隣接デバイスに仮時刻同期源を通知したことになるため、新プリントサーバ６０は仮時刻同期源である原子時計を時刻同期源に設定しその原子時計と時刻同期を行ったあと、第１プリンタ３０に自己の時刻と時刻同期源（原子時計）とを通知する（ステップＳ１７０〜Ｓ１９０）。これを受信した第１プリンタ３０は、通知された原子時計が自己の利用可能な時刻情報発生源よりも優先順位が高いため、その原子時計を自己の時刻同期源として設定すると共に通知された時刻と同期をとる（ステップＳ３３０，Ｓ３４０）。その後、第１プリンタ３０は、隣接デバイスであるプリントサーバ２０に自己の時刻と時刻同期源（原子時計）とを通知する（ステップＳ３６０）。これを受信したプリントサーバ２０は、通知された原子時計が自己の利用可能な時刻情報発生源のうち優先順位が最上位のもの（ＮＴＰサーバ５０）よりも優先順位が高いため、その原子時計を自己の時刻同期源として設定すると共に通知された時刻と同期をとる。その後、プリントサーバ２０は、隣接デバイスである第２プリンタ４０に自己の時刻と時刻同期源（原子時計）とを通知する。これを受信した第２プリンタ４０は、通知された原子時計が自己の利用可能な時刻情報発生源のうち優先順位が最上位のもの（内部システムクロック４１ａ）よりも優先順位が高いため、その原子時計を自己の時刻同期源として設定すると共に通知された時刻と同期をとる。なお、第２プリンタ４０はプリントサーバ２０以外に隣接デバイスが存在しないため、自己の時刻と時刻同期源とを隣接デバイスに通知することはない。
【００３７】
このように、図６に示す構成の通信システム１０では、新プリントサーバ６０が接続される前はプリントサーバ２０の時刻情報発生源であるＮＴＰサーバ５０が時刻同期源だったのに対し、新プリントサーバ６０が接続された後は新プリントサーバ６０の時刻情報発生源である原子時計が時刻同期源となる。そして、時刻同期源決定後、新プリントサーバ６０は同期タイミングに達するごとに第１プリンタ３０に時刻同期源である原子時計による時刻を通知し、この通知を受けて第１プリンタ３０はその時刻に自己の時刻を同期させると共にプリントサーバ２０にその時刻を通知する。すると、この通知を受けたプリントサーバ２０はその時刻に自己の時刻を同期させると共に第２プリンタ４０にその時刻を通知し、この通知を受けた第２プリンタ４０はその時刻に自己の時刻を同期させる。このように、通信システム１０を構成するデバイス間で連鎖的に時刻同期が行われる。
【００３８】
（３）図７に示す構成の通信システム１０における時刻同期について
図７の通信システム１０は、図６に示す構成において、新プリントサーバ６０の原子時計が利用不能になった場合を示している。
【００３９】
新プリントサーバ６０は原子時計が利用不能になったことを認識すると、イベント発生デバイスとなり、時刻同期源決定ルーチンを実行する。すなわち、新プリントサーバ６０は、自己が利用可能な時刻情報発生源であるＲＴＣ及び内部システムクロックのうち図２の優先順位テーブルに照らして優先順位が最上位のＲＴＣを仮時刻同期源に設定し（ステップＳ１００，Ｓ１１０）、その仮時刻同期源を第１プリンタ３０に通知すると共に第１プリンタ３０の時刻情報発生源の返信を要求する（ステップＳ１２０）。これを受信した第１プリンタ３０は、自己が利用可能な時刻情報発生源であるＲＴＣ３４及び内部システムクロック３１ａのうち図２の優先順位テーブルに照らして優先順位が最上位のＲＴＣ３４を新プリントサーバ６０に返信する（ステップＳ３００，Ｓ３１０）。これを受信した新プリントサーバ６０は、仮時刻同期源と第１プリンタ３０から受信した時刻情報発生源とを比較する（ステップＳ１３０，Ｓ１４０）。ここでは両者の優先順位が同位なので、新プリントサーバ６０は仮時刻同期源を変更しない。この時点ですべての隣接デバイスに仮時刻同期源を通知したことになるため、新プリントサーバ６０は仮時刻同期源であるＲＴＣを時刻同期源に設定しそのＲＴＣと時刻同期を行ったあと、第１プリンタ３０に自己の時刻と時刻同期源（ＲＴＣ）とを通知する（ステップＳ１７０〜Ｓ１９０）。これを受信した第１プリンタ３０は、通知されたＲＴＣが自己の利用可能な時刻情報発生源の優先順位と同位のため、その自己のＲＴＣ３４を自己の時刻同期源として設定すると共に通知された時刻と同期をとる（ステップＳ３３０，Ｓ３５０）。その後、第１プリンタ３０は、隣接デバイスであるプリントサーバ２０に自己の時刻と時刻同期源（ＲＴＣ３４）とを通知する。これを受信したプリントサーバ２０は、通知された原子時計よりも自己の利用可能な時刻情報発生源のうち優先順位が最上位のもの（ＮＴＰサーバ５０）の優先順位が高いため、そのＮＴＰサーバ５０を自己の時刻同期源として設定すると共にＮＴＰサーバ５０と同期をとる。その後、プリントサーバ２０は、隣接デバイスである第１及び第２プリンタ３０，４０に自己の時刻と時刻同期源（ＮＴＰサーバ５０）とを通知する。これを受信した第１及び第２プリンタ３０，４０は、通知されたＮＴＰサーバ５０が自己の利用可能な時刻情報発生源よりも優先順位が高いため、ＮＴＰサーバ５０を自己の時刻同期源として設定すると共に通知された時刻と同期をとる。その後、第１プリンタ３０は、隣接デバイスである新プリントサーバ６０に自己の時刻と時刻同期源（ＮＴＰサーバ５０）とを通知する。これを受信した新プリントサーバ６０は、通知されたＮＴＰサーバ５０が自己の利用可能な時刻情報発生源のうち優先順位が最上位のもの（ＲＴＣ）よりも優先順位が高いため、そのＮＴＰサーバ５０を自己の時刻同期源として設定すると共に通知された時刻と同期をとる。なお、第２プリンタ４０はプリントサーバ２０以外に隣接デバイスが存在しないため、自己の時刻と時刻同期源とを隣接デバイスに通知することはない。
【００４０】
このように、図７に示す構成の通信システム１０では、新プリントサーバ６０の原子時計が利用不能になる前はその原子時計が時刻同期源だったのに対し、原子時計が利用不能になった後はプリントサーバ２０の時刻情報発生源であるＮＴＰサーバ５０が時刻同期源となる。そして、時刻同期源決定後、プリントサーバ２０は同期タイミングに達するごとに第１及び第２プリンタ３０，４０に時刻同期源であるＮＴＰサーバ５０による時刻を通知し、この通知を受けて第１及び第２プリンタ３０，４０はその時刻に自己の時刻を同期させる。また、第１プリンタ３０は新プリントサーバ６０にその時刻を通知する。すると、この通知を受けた新プリントサーバ６０はその時刻に自己の時刻を同期させる。このように、通信システム１０を構成するデバイス間で連鎖的に時刻同期が行われる。
【００４１】
ここで、本実施形態の構成要素と本発明の構成要素との対応関係を明らかにする。本実施形態のプリントサーバ２０，第１プリンタ３０、第２プリンタ４０及び新プリントサーバ６０がそれぞれ本発明のデバイスに相当し、ＮＴＰサーバ５０、ＲＴＣ２４，３４、内部システムクロック２１ａ，３１ａ，４１ａ及び原子時計がそれぞれ時刻情報発生源に相当し、ＲＯＭ２２，３２，４２がそれぞれ優先順位記憶手段に相当する。また、ＣＰＵ２１，３１，４１が時刻同期源決定手段、時刻調節手段及び動作制御手段に相当する。なお、本実施形態では、通信システム１０の動作を説明することにより本発明の時刻同期方法の一例も明らかにしている。
【００４２】
以上詳述した本実施形態の通信システム１０によれば、精度の高い時刻でもって各デバイスの時刻の同期をとることができる。また、時刻同期源が動的に変更されるため、各デバイスの時刻は絶えず最善な精度となる。
【００４３】
なお、本発明は上述した実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の態様で実施し得ることはいうまでもない。
【００４４】
例えば、上述した実施形態では、図３の時刻同期源決定ルーチンは所定のイベントが発生したときにそのイベントが発生したデバイスで実行されるとし、所定のイベントとは内在する時刻情報発生源が変更された時を含むとしたが、内在する時刻情報発生源が変更された時であってもその変更された時刻情報発生源が時刻同期源でない時にはイベントが発生したとせず、変更された時刻情報発生源が時刻同期源でない時にイベントが発生したと判断するようにしてもよい。こうすれば、デバイス間で時刻同期源として利用していた最も優先順位の高い時刻情報発生源が利用できなくなった場合には、速やかに次に優先順位の高い時刻情報発生源が時刻同期源に決定されるため、各デバイスの時刻は絶えず最善な精度となる。
【００４５】
上述した実施形態において、図３の時刻同期源決定ルーチンを定期的に実行するようにしてもよい。こうすれば、定期的に時刻同期源の再決定が行われるようになり、時刻同期源が動的に変更されるため、各デバイスの時刻は絶えず最善な精度となる。
【００４６】
上述した実施形態の図１において、プリントサーバ２０のネットワークインタフェース２６が取り外されたりＮＴＰサーバ５０と接続できなかったりしたときには、優先順位テーブル７０によればプリントサーバ２０のＲＴＣ２４と第１プリンタ３０のＲＴＣ３４とが同じ優先順位となるが、予めＲＴＣ２４の方がＲＴＣ３４に比べて水晶発振子の精度が高いという精度情報が時刻情報発生源に付されて送受信されるものとし、時刻同期源を決定する際にその精度情報も参照するようにしてもよい。その場合、プリントサーバ２０のＲＴＣ２４が時刻同期源に設定される。こうしても、精度の高い時刻でもって各デバイスの時刻の同期をとることができる。なお、この場合、精度に関係なく、予めＲＴＣ２４がＲＴＣ３４よりも優先順位が高いという規則が各デバイスのＲＯＭに記憶され、その規則にしたがってＲＴＣ２４を時刻同期源に設定してもよい。
【００４７】
上述した実施形態では、印刷関係のデバイスで構成された通信システム１０について説明したが、特に印刷関係のデバイスに限定されるものではなく、例えばスキャンデータを共有するデバイスで構成された通信システムに本発明を適用してもよいし、ワープロデータや表計算データ、メール送受信データなどの各種データを共有するデバイスで構成された通信システムに本発明を適用してもよい。
【図面の簡単な説明】
【００４８】
【図１】通信システムの概略構成を表すブロック図。
【図２】優先順位テーブルの説明図。
【図３】時刻同期源決定ルーチンのフローチャート。
【図４】同期実行ルーチンのフローチャート。
【図５】時刻と時刻情報発生源とを通知し合う様子を表す説明図。
【図６】新プリントサーバを追加した通信システムの構成を表すブロック図。
【図７】新プリントサーバを追加した通信システムの構成を表すブロック図。
【符号の説明】
【００４９】
１０  通信システム、２０  プリントサーバ、２１  ＣＰＵ、２１ａ  内部システムクロック、２２  ＲＯＭ、２３  ＲＡＭ、２４  ＲＴＣ、２５  外部通信インタフェース、２６  ネットワークインタフェース、２８  バス、３０  第１プリンタ、３１  ＣＰＵ、３１ａ  内部システムクロック、３２  ＲＯＭ、３３  ＲＡＭ、３４  ＲＴＣ、３５  外部通信インタフェース、３７  プリント機構、３８  バス、４０  第２プリンタ、４１  ＣＰＵ、４１ａ  内部システムクロック、４２  ＲＯＭ、４３  ＲＡＭ、４５  外部通信インタフェース、４７  プリント機構、４８  バス、５０  ＮＴＰサーバ、６０  新プリントサーバ、７０  優先順位テーブル。
【図１】
2007101183.tif 000003
【図２】
2007101183.tif 000004
【図３】
2007101183.tif 000005
【図４】
2007101183.tif 000006
【図５】
2007101183.tif 000007
【図６】
2007101183.tif 000008
【図７】
2007101183.tif 000009