(57)【要約】  より正確な時刻情報を用いて情報処理装置の時刻合わせを行うことができるようにする。  決定手段（１ｂ）は、現在の運用状況において時刻情報を取得可能な装置のうち、最も正確な時刻情報を取得可能な装置を決定する。そして、時刻合わせ手段（１ｃ）は、決定された装置から時刻情報（５）を取得し、時刻情報（５）で示された時刻に、計時手段（１ａ）の時刻を合わせる。
2012111112.tif 000002
【特許請求の範囲】
【請求項１】
要求に応じてデータ処理を行う管理対象装置の管理を行う情報処理装置であって、
計時手段と、
前記管理対象装置を、時刻情報を提供する装置の１つとして認識し、現在の運用状況において取得可能な時刻情報を提供する装置のうち、最も正確な時刻情報を提供する装置を決定する決定手段と、
前記決定された装置から時刻情報を取得し、該取得した時刻情報が示す時刻に、前記計時手段の時刻を合わせる時刻合わせ手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記管理対象装置の内部計時手段が示す時刻情報を取得し、取得した時刻情報が示す時刻と、前記計時手段が示す時刻との差分時間を計算する計算手段と、
前記管理対象装置の動作を停止させた後に起動する場合、前記計時手段が示す時刻に、該管理対象装置の差分時間を加算して得られる時刻を、該管理対象装置の内部計時手段の初期値に指定して、該管理対象装置を起動する起動手段と、
をさらに有することを特徴とする請求の範囲第１項記載の情報処理装置。
【請求項３】
前記計算手段は、定期的に前記管理対象装置の内部時計が示す時刻を取得することを特徴とする請求の範囲第２項記載の情報処理装置。
【請求項４】
電池でバックアップされた時計デバイスを、取得可能な時刻情報を提供する装置の１つとして認識し、
前記決定手段は、前記情報処理装置の起動時には、前記時計デバイスを、最も正確な時刻情報を提供する装置に決定することを特徴とする請求の範囲第１項乃至第３項のいずれかに記載の情報処理装置。
【請求項５】
前記決定手段は、前記情報処理装置の稼働中は、要求に応じて時刻情報の提供を行うサーバから時刻情報を取得可能であれば、該サーバを最も正確な時刻情報を提供する装置に決定することを特徴とする請求の範囲第１項乃至第４項のいずれかに記載の情報処理装置。
【請求項６】
前記決定手段は、前記情報処理装置の稼働中は、要求に応じた時刻情報の提供を行うサーバから時刻情報を取得できない場合、該サーバと時刻合わせを行った装置から時刻情報を取得可能であれば、該装置を最も正確な時刻情報を提供する装置に決定することを特徴とする請求の範囲第５項記載の情報処理装置。
【請求項７】
前記決定手段は、前記情報処理装置の稼働中は、他の装置からの要求に応じた時刻情報の提供を行っているサーバから時刻情報を取得できず、該サーバと時刻合わせが行われた装置からも時刻情報を取得できない場合、電池でバックアップされた時計デバイスを、最も正確な時刻情報を提供する装置に決定することを特徴とする請求の範囲第６項記載の情報処理装置。
【請求項８】
前記時刻合わせ手段は、前記情報処理装置の稼働中は、電池でバックアップされた時計デバイス以外の装置から取得した時刻情報が示す時刻に前記計時手段を設定した場合、該計時手段が示す時刻に、該時計デバイスの時刻を合わせることを特徴とする請求の範囲第５項乃至第７項のいずれかに記載の情報処理装置。
【請求項９】
前記計時手段は、前記情報処理装置がソフトウェアを実行することで実現されていることを特徴とする請求の範囲第１項乃至第８項のいずれかに記載の情報処理装置。
【請求項１０】
要求に応じてデータ処理を行う管理対象装置の管理を行う情報処理装置が、
前記管理対象装置を、時刻情報を提供する装置の１つとして認識し、現在の運用状況において取得可能な時刻情報を提供する装置のうち、最も正確な時刻情報を提供する装置を決定し、
前記決定された装置から時刻情報を取得し、該取得した時刻情報が示す時刻に、前記情報処理装置内の計時手段の時刻を合わせる、
ことを特徴とする時刻設定方法。
【請求項１１】
要求に応じてデータ処理を行う管理対象装置の管理を行う情報処理装置に、
前記管理対象装置を、時刻情報を提供する装置の１つとして認識し、現在の運用状況において取得可能な時刻情報を提供する装置のうち、最も正確な時刻情報を提供する装置を決定し、
前記決定された装置から時刻情報を取得し、該取得した時刻情報が示す時刻に、前記情報処理装置内の計時手段の時刻を合わせる、
処理を実行させることを特徴とする時刻設定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は計時手段に時刻を設定する情報処理装置、時刻設定方法、および時刻設定プログラムに関する。
【背景技術】
【０００２】
コンピュータでは処理の実行に関し、時刻情報を用いる場合がある。そのため、コンピュータは、内部に時刻を計測する計時手段を有している。そしてコンピュータは、所定のタイミングで、内部の計時手段の時刻合わせを行う。時刻合わせでは、コンピュータがアクセス可能な時計の時刻に、コンピュータで動作しているソフトウェア上の計時手段の時刻を合わせる。例えば、ネットワーク経由で接続されたネットワーク・タイム・プロトコル（ＮＴＰ：Network Time Protocol）サーバを利用して、ＮＴＰによる時刻合わせが行われる。【０００３】
また時刻の正確性を向上させるためのさまざまな技術が考えられている。例えば、ローカル端末とサーバとの間でやり取りされるデータに付記される時刻情報を元に、サーバとローカル端末の間での相対的な時間のずれを検出し、そのずれを補正する形でローカル端末の時刻の同期調整を行う技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２６２２９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、コンピュータシステムが複雑化すると、時刻情報を提供する装置のうち、どの装置がより正確な時刻を示しているのかの判断が難しくなる。しかも、運用状況に応じて、時刻情報を提供するも変化する。そのため、時刻を合わせる際に、時刻合わせの基準となる時刻情報をどの装置から取得するのかについて適切に判断するのが難しかった。【０００６】
１つの側面では、本発明は、より正確な時刻情報を用いて時刻合わせを行うことができる情報処理装置、時刻設定方法、および時刻設定プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
１つの案では、要求に応じてデータ処理を行う管理対象装置の管理を行う情報処理装置が提供される。情報処理装置は、計時手段、決定手段、および時刻合わせ手段を有する。決定手段は、管理対象装置を、時刻情報を提供する装置の１つとして認識し、現在の運用状況において取得可能な時刻情報を提供する装置のうち、最も正確な時刻情報を提供する装置を決定する。時刻合わせ手段は、決定された装置から時刻情報を取得し、取得した時刻情報が示す時刻に、計時手段の時刻を合わせる。【０００８】
１つの案では、要求に応じてデータ処理を行う管理対象装置の管理を行う情報処理装置が、以下の処理を行う時刻設定方法が提供される。
まず情報処理装置は、管理対象装置を、時刻情報を提供する装置の１つとして認識し、現在の運用状況において取得可能な時刻情報を提供する装置のうち、最も正確な時刻情報を提供する装置を決定する。そして情報処理装置は、決定された装置から時刻情報を取得し、該取得した時刻情報が示す時刻に、情報処理装置内の計時手段の時刻を合わせる。【０００９】
１つの案では、要求に応じてデータ処理を行う管理対象装置の管理を行う情報処理装置に以下の処理を実行させる時刻設定プログラムが提供される。
時刻設定プログラムに基づいて、まず情報処理装置は、管理対象装置を、時刻情報を提供する装置の１つとして認識し、現在の運用状況において取得可能な時刻情報を提供する装置のうち、最も正確な時刻情報を提供する装置を決定する。次に情報処理装置は、決定された装置から時刻情報を取得し、該取得した時刻情報が示す時刻に、情報処理装置内の計時手段の時刻を合わせる。
【発明の効果】
【００１０】
より正確な時刻情報を用いた時刻合わせが可能となる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態に係る装置の機能構成例を示す図である。
【図２】第２の実施の形態のシステム構成の一例を示す図である。
【図３】第２の実施の形態に係るマルチドメインシステムのハードウェア構成を示す図である。
【図４】第２の実施の形態に係るマルチドメインシステムの機能を示すブロック図である。
【図５】差分記憶部のデータ構造の一例を示す図である。
【図６】サブシステムにおける時刻同期処理の手順を示すフローチャートの前半である。
【図７】サブシステムにおける時刻同期処理の手順を示すフローチャートの後半である。
【図８】差分時間更新処理の手順を示すシーケンス図である。
【図９】差分時間の概念を示す図である。
【図１０】システムの運用構成に応じた各装置の適切な基準時計の例を示す図である。
【図１１】マルチドメインシステムの運用状況の第１の例を示す図である。
【図１２】マルチドメインシステムの運用状況の第１の例における時刻合わせを時系列に示す図である。
【図１３】マルチドメインシステムの運用状況の第２の例を示す図である。
【図１４】マルチドメインシステムの運用状況の第２の例における時刻合わせを時系列に示す図である。
【図１５】マルチドメインシステムの運用状況の第３の例を示す図である。
【図１６】マルチドメインシステムの運用状況の第３の例における時刻合わせを時系列に示す図である。
【図１７】第３の実施の形態に係るマルチドメインシステムのハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第１の実施の形態〕
図１は、第１の実施の形態に係る装置の機能構成例を示す図である。情報処理装置１は、例えば要求に応じてデータ処理を行う管理対象装置４を管理する。情報処理装置１は、計時手段１ａ、決定手段１ｂ、時刻合わせ手段１ｃ、計算手段１ｄ、記憶手段１ｅ、および起動手段１ｆを有する。
【００１３】
計時手段１ａは、時刻を計測する。計時手段１ａは、例えば情報処理装置１がＯＳ（Operating System）等のソフトウェアを実行することで実現されている。
決定手段１ｂは、管理対象装置４を、時刻情報を提供する装置の１つとして認識する。そして決定手段１ｂは、現在の運用状況において時刻情報を取得可能な装置のうち、最も正確な時刻情報５を取得可能な装置を決定する。例えば決定手段１ｂは、情報処理装置１の起動時には、電池でバックアップされた時計デバイス２を、最も正確な時刻を示している装置に決定する。また決定手段１ｂは、情報処理装置１の稼働中は、他の装置からの要求に応じた時刻情報の提供を行っているサーバ３から時刻情報を取得可能であれば、サーバ３を最も正確な時刻を示している装置に決定してもよい。
【００１４】
また、情報処理装置１の稼働中において、他の装置からの要求に応じた時刻情報の提供を行っているサーバ３から時刻情報を取得できない場合もある。この場合、決定手段１ｂは、サーバ３と時刻合わせが行われた装置から時刻情報を取得可能であれば、その装置を最も正確な時刻を示している装置に決定してもよい。例えば、管理対象装置４が、サーバ３から定期的に時刻情報を取得して、内部の計時手段の時刻合わせを行っている場合、決定手段１ｂは、管理対象装置４を、最も正確な時刻を示している装置に決定することができる。なお管理対象装置４は、例えばユーザが使用する端末装置からの要求に応じてデータ処理を行う。
【００１５】
さらに情報処理装置１の稼働中は、他の装置からの要求に応じた時刻情報の提供を行っているサーバ３から時刻情報を取得できず、サーバ３と時刻合わせが行われた装置からも時刻情報を取得できない場合をあり得る。この場合、例えば決定手段１ｂは、電池でバックアップされた時計デバイス２を、最も正確な時刻を示している装置に決定することができる。
【００１６】
時刻合わせ手段１ｃは、決定された装置から時刻情報５を取得し、時刻情報５で示された時刻に、計時手段１ａの時刻を合わせる。また時刻合わせ手段１ｃは、情報処理装置１の稼働中は、電池でバックアップされた時計デバイス２以外の装置から取得した時刻情報が示す時刻に計時手段１ａの時刻を設定した場合、計時手段１ａが示す時刻に、時計デバイス２の時刻を合わせる。
【００１７】
計算手段１ｄは、管理対象装置４の内部の計時手段から時刻を示す時刻情報５を取得し、取得した時刻情報５に示された時刻と、計時手段１ａが示す時刻との差分時間７を計算する。例えば計算手段１ｄは、定期的に管理対象装置４の内部の計時手段が示す時刻を取得する。例えば計算手段１ｄは、計算した時刻を、管理対象装置４に対応付けて、記憶手段１ｅに格納する。
【００１８】
記憶手段１ｅは、計算手段１ｄが計算した差分時間７を記憶する。
起動手段１ｆは、管理対象装置４の動作を停止させた後に起動する場合、計時手段１ａが示す時刻に、管理対象装置４の差分時間を加算して得られる時刻を、管理対象装置４の内部の計時手段の時刻の初期値に指定して、管理対象装置４を起動する。例えば起動手段１ｆは、管理対象装置４の差分時間を、記憶手段１ｅから取得する。
【００１９】
このような情報処理装置１によれば、決定手段１ｂは、現在の運用状況において時刻情報を取得可能な装置のうち、最も正確な時刻情報を取得可能な装置を決定する。例えば、サーバ３が提供している時刻情報の時刻が最も正確であり、次に、時計デバイス２の時刻が正確であるものとする。このとき決定手段１ｂは、情報処理装置１がサーバ３から時刻情報５を取得可能であれば、サーバ３を最も正確な時刻情報を取得可能な装置と決定する。
【００２０】
なお、情報処理装置１がサーバ３から時刻情報５を取得できない場合であっても、例えば管理対象装置４が、サーバ３から時刻情報５を取得し、内部の計時手段の時刻合わせを行っていることがある。この場合、決定手段１ｂは、例えば、時計デバイス２の時刻よりも管理対象装置４の内部の計時手段の時刻の方が正確であると判断し、管理対象装置４を、最も正確な時刻情報を取得可能な装置に決定する。
【００２１】
また、情報処理装置１と管理対象装置４とのいずれも、サーバ３から時刻情報５を取得できない場合もある。この場合、決定手段１ｂは、例えば、時計デバイス２を、最も正確な時刻情報を取得可能な装置に決定する。
【００２２】
決定手段１ｂによって最も正確な時刻情報を取得可能な装置が決定されると、時刻合わせ手段１ｃにより、決定された装置から時刻情報５が取得される。そして、時刻合わせ手段１ｃにより、取得した時刻情報５で示される時刻に、計時手段１ａの時刻が合わせられる。
【００２３】
また、情報処理装置１が管理する管理対象装置４がある場合、計算手段１ｄにより、管理対象装置４の内部の計時手段が示す時刻と、計時手段１ａが示す時刻との差を示す差分時間７が算出される。差分時間７の計算は、例えば定期的に実行される。計算された差分時間７は、記憶手段１ｅに格納される。その後、管理対象装置４が停止し、管理対象装置４を再起動する場合、起動手段１ｆにより、起動要求８が管理対象装置４に送信される。例えば起動手段１ｆは、管理対象装置４の起動を指示するユーザからの操作入力に応答して、起動要求８を送信する。送信される起動要求８には、計時手段１ａが示す時刻に、管理対象装置４の差分時間を加算して得られる時刻が含まれる。すると、起動要求８を受信した管理対象装置４は、起動要求８に示される時刻を内部の計時手段の初期値に設定し、起動する。
【００２４】
このようにして、管理対象装置４が動作していたときの差分時間を情報処理装置１で保持しておき、管理対象装置４を再起動する際には、計時手段１ａが示す時刻に差分時間を加算した時刻を管理対象装置４の内部の計時手段の時刻の初期値とすることができる。その結果、管理対象装置４を再起動しても、停止前の時刻より前の時刻が内部の計時手段の時刻の初期値に設定されるような事態の発生を抑止できる。内部の計時手段の時刻が、停止前よりも前の時刻になると、時刻情報を用いた処理が正常に実行できなくなる可能性がある。そのため、再起動により時刻が遡ることを抑止することで、管理対象装置４の信頼性を向上させることができる。
【００２５】
また、差分時間７で修正した時刻を初期値として管理対象装置４を起動することによって、管理対象装置４が停止していた時間と異なる時間分、管理対象装置４の内部の計時手段の時刻が進んでしまうことを抑止できる。実際に停止していた時間と異なる時間分、管理対象装置４の内部の計時手段の時刻が進んでしまうと、管理対象装置４内のログデータの解析を行う際に正しい解析が行えなくなる。このように、管理対象装置４の停止していた時間分だけ管理対象装置４の内部時計を進ませて管理対象装置４を起動することで、管理対象装置４で記録しているログデータの矛盾などの発生を抑止し、管理対象装置４の動作状況の解析の信頼性を高めることができる。
【００２６】
〔第２の実施の形態〕
第２の実施の形態は、マルチドメインシステムを運用する際に適切な時計を用いて、マルチドメインシステム内の各装置の時刻合わせをするものである。なお、第２の実施の形態では、情報処理装置をコンピュータと呼ぶこととする。
【００２７】
マルチドメインシステムは、サブシステムと複数のドメインとを有するコンピュータシステムである。サブシステムは、複数のドメインを管理するコンピュータである。例えばサブシステムは、図１に示した情報処理装置１の一例である。複数のドメインは、それぞれが個別に動作可能なコンピュータである。例えば複数のドメインは、それぞれ図１に示した管理対象装置４の一例である。
【００２８】
図２は、第２の実施の形態のシステム構成の一例を示す図である。例えばマルチドメインシステムＡは、ネットワーク１１を介して端末装置２１，２２やＮＴＰサーバ５０１に接続されている。ネットワーク１１は、例えば、ローカルエリアネットワーク（ＬＡＮ：Local Area Network）である。またマルチドメインシステムＡは、ネットワーク１２を介して端末装置３１，３２やＮＴＰサーバ５００に接続されている。ネットワーク１２は、例えばインターネットのような広域ネットワークである。
【００２９】
マルチドメインシステムＡは、ドメインと呼ばれる複数のコンピュータを内蔵している。各ドメインは、端末装置３１，３２からの要求に応じて、各種データ処理を実行する。マルチドメインシステムＡは、サブシステムと呼ばれるコンピュータを内蔵している。サブシステムは、端末装置２１，２２からの指示に従ってマルチドメインシステムＡ全体を管理する。
【００３０】
ＮＴＰサーバ５００，５０１は、正確な時計を有しており、ＮＴＰによって他の機器に時刻情報を送信する。例えばＮＴＰサーバ５００，５０１は、ＧＰＳ（Global Positioning System）、原子時計などの正確な時刻源から、直接または間接的に時刻情報を取得し、内部の時計の時刻合わせを行うことができる。マルチドメインシステムＡは、ＮＴＰサーバ５００，５０１と通信し、内部時計の時刻合わせを行うことができる。なお、図２ではネットワーク１１にＮＴＰサーバ５０１が接続され、ネットワーク１２にＮＴＰサーバ５００が接続されているが、いずれのネットワーク１１，１２にもＮＴＰサーバ５００，５０１が接続されていない場合もある。また、ネットワーク１１，１２の一方にのみＮＴＰサーバが接続されている場合もある。さらに、ＮＴＰサーバ５００，５０１とマルチドメインシステムＡとの間で正常に通信できない場合もある。なおＮＴＰサーバ５００は、図１に示したサーバ３の一例である。
【００３１】
第２の実施の形態では、マルチドメインシステムＡは、ドメインごとに異なるサービスを提供しており、各ドメインで異なる時刻を保持する場合もある。そこで第２の実施の形態では、各ドメインの時刻を意図的に異ならせる場合も想定して、適切な時刻設定を行う。
【００３２】
なお、第２の実施の形態では、サブシステムまたは複数のドメインそれぞれが実行するＮＴＰを用いた時刻合わせは、時間をかけて行われる。例えば、時刻が１０秒進んでいた場合、その後の時間の進行を少しだけ遅らせる。すなわち、時間τ秒（τは正の実数）の間に、時計を「τ−１０」秒だけ進ませるように調整する。このように、時間をかけて時刻の修正を行うことで、突然時刻が変更されることによるシステムの不具合の発生を抑止することができる。
【００３３】
図３は、第２の実施の形態に係るマルチドメインシステムのハードウェア構成を示す図である。マルチドメインシステムＡは、サブシステム１００と複数のドメイン２００，３００，４００を有している。またマルチドメインシステムＡは、時計デバイスＡ１を有している。時計デバイスＡ１は、電池Ａ２によってバックアップされ、水晶発振器などを用いたハードウェアで正確な時刻を刻む時計である。時計デバイスＡ１は、ＴＯＤ（Time Of Day）とも呼ばれる。時計デバイスＡ１は、サブシステム１００に接続されている。
【００３４】
サブシステム１００と複数のドメイン２００，３００，４００とは、内部バスＡ３で接続されている。サブシステム１００は、ネットワーク１１に接続されている。複数のドメイン２００，３００，４００は、ネットワーク１２に接続されている。
【００３５】
サブシステム１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０７を介してメモリ１０２と複数の周辺機器が接続されている。
【００３６】
メモリ１０２は、サブシステム１００の主記憶装置として使用される。メモリ１０２には、ＣＰＵ１０１に実行させるＯＳのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。
【００３７】
バス１０７に接続されている周辺機器としては、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１０３、バスインタフェース（ＩＦ：InterFace）１０４、通信ＩＦ１０５、入出力ＩＦ１０６がある。
【００３８】
ＨＤＤ１０３は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ１０３は、サブシステム１００の二次記憶装置として使用される。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００３９】
バスＩＦ１０４は、内部バスＡ３に接続されており、内部バスＡ３を介してドメイン２００，３００，４００と通信する。
通信ＩＦ１０５は、ネットワーク１１に接続されており、ネットワーク１１を介して他の機器と通信する。例えば、ネットワーク１１を介して接続されたネットワーク上にＮＴＰサーバが接続されている場合、通信ＩＦ１０５によりＮＴＰサーバと通信することができる。
【００４０】
入出力ＩＦ１０６は、入出力ポート１０８，１０９を介して、サブシステム１００外の機器と接続される。入出力ＩＦ１０６は、入出力ポート１０８，１０９に接続された機器からのデータの入力を受け付けると共に、入出力ポート１０８，１０９に接続された機器に対してデータを出力する。図３の例では、入出力ポート１０８を介して時計デバイスＡ１が接続されている。また入出力ポート１０９を介して、可搬型の補助記憶装置１３が接続されている。
【００４１】
補助記憶装置１３は、例えばフラッシュメモリなどの不揮発性の半導体メモリデバイスである。補助記憶装置１３には、例えばサブシステム１００やドメイン２００，３００，４００で実行させる処理を記述したプログラムを格納しておくことができる。その場合、ＣＰＵ１０１は、補助記憶装置１３内のプログラムを、入出力ＩＦ１０６を介して読み出し、ＨＤＤ１０３にインストールすることができる。またＣＰＵ１０１は、補助記憶装置１３内のプログラムを、入出力ＩＦ１０６を介して読み出し、バスＩＦ１０４を介してドメイン２００，３００，４００に転送することもできる。プログラムを受信したドメイン２００，３００，４００では、それぞれのＣＰＵ２０１，３０１，４０１がプログラムをＨＤＤ２０３，３０３，４０３にインストールすることができる。
【００４２】
なお、サブシステム１００は、光学ドライブ装置を有していてもよい。光学ドライブは、レーザ光などを利用して、光ディスクに記録されたデータの読み取りを行う。光ディスクは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００４３】
ドメイン２００は、ＣＰＵ２０１によって装置全体が制御されている。ＣＰＵ２０１には、バス２０６を介してメモリ２０２と複数の周辺機器が接続されている。バス２０６に接続されている周辺機器としては、ＨＤＤ２０３、バスＩＦ２０４、通信ＩＦ２０５がある。
【００４４】
ドメイン３００は、ＣＰＵ３０１によって装置全体が制御されている。ＣＰＵ３０１には、バス３０６を介してメモリ３０２と複数の周辺機器が接続されている。バス３０６に接続されている周辺機器としては、ＨＤＤ３０３、バスＩＦ３０４、通信ＩＦ３０５がある。
【００４５】
ドメイン４００は、ＣＰＵ４０１によって装置全体が制御されている。ＣＰＵ４０１には、バス４０６を介してメモリ４０２と複数の周辺機器が接続されている。バス４０６に接続されている周辺機器としては、ＨＤＤ４０３、バスＩＦ４０４、通信ＩＦ４０５がある。
【００４６】
メモリ２０２，３０２，４０２、ＨＤＤ２０３，３０３，４０３、バスＩＦ２０４，３０４，４０４、および通信ＩＦ２０５，３０５，４０５は、サブシステム１００の同名の要素と同じ機能を有している。
【００４７】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
このようなマルチドメインシステムＡでは、サブシステム１００と複数のドメイン２００，３００，４００それぞれとが、個別に時刻を管理している。すなわちサブシステム１００と複数のドメイン２００，３００，４００とは、それぞれソフトウェアによるシステムクロックを有している。そしてサブシステム１００と複数のドメイン２００，３００，４００とは、システムクロックを適宜、他の時計に合わせることで、時刻のずれを抑制している。
【００４８】
サブシステム１００と複数のドメイン２００，３００，４００との時刻合わせには、例えばマルチドメインシステムＡに内蔵された時計デバイスＡ１や、ネットワーク経由で接続されたＮＴＰサーバ５００，５０１が利用される。また各ドメイン２００，３００，４００の起動時には、サブシステム１００から起動時の時刻の初期値が通知される。
【００４９】
このようなマルチドメインシステムＡでは、サブシステム１００の時間精度は、時計デバイスＡ１に比べ低い。しかも、時刻精度の高い時計デバイスＡ１は、電池Ａ２でバックアップされているため、サブシステム１００が停止中であっても時刻を刻んでいる。そのため、サブシステム１００の起動時には、時計デバイスＡ１の時刻がサブシステム１００で読み出され、サブシステム１００のシステムクロックの初期値に設定される。しかし、サブシステム１００のシステムクロックの精度が時計デバイスＡ１に比べて低いことから、サブシステム１００が長時間動作する間にシステムクロックの誤差は徐々に大きくなってしまう。そこで、第２の実施の形態では、サブシステム１００のシステムクロックの誤差を、正確な時計を用いて適宜修正可能とする。
【００５０】
また、いずれかのドメインを用いてソフトウェアの動作検証を行う場合などは、意図的にドメインのシステムクロックの時刻を、サブシステム１００のシステムクロックの時刻と異なる時刻に設定する場合もある。そこで、サブシステム１００では、各ドメイン２００，３００，４００のシステムクロックの時刻と、サブシステム１００のシステムクロックの時刻との差分時間を保持しておく。このときドメインのシステムクロックの時刻を、ユーザ操作で意図的に変更した場合の変動分を差分時間としたのでは、差分時間の正確性に欠ける。しかも、各ドメイン２００，３００，４００のシステムクロックの精度は、時計デバイスＡ１に比べて低い。そのため、マルチドメインシステムＡを運用している間に、サブシステム１００のシステムクロックの時刻と、各ドメイン２００，３００，４００のシステムクロックの時刻との差分は変動する。
【００５１】
そこで、第２の実施の形態では、適宜、サブシステム１００においてドメイン２００，３００，４００のシステムクロックの時刻を示す時刻情報を取得し、差分情報を更新することで、差分情報の正確性を担保する。例えば差分情報を正確に保つことで、各ドメイン２００，３００，４００を再起動しても、停止前の時刻に、停止時間が加算された時刻を各ドメイン２００，３００，４００起動時のシステムクロックの初期値とすることができる。その結果、停止前の差分を保ったままドメイン２００，３００，４００を再起動し、再起動を行ったことによる時刻情報の不整合を抑止することができる。
【００５２】
なお、サブシステム１００と各ドメイン２００，３００，４００とのそれぞれを、ＮＴＰサーバ５００，５０１と時刻同期させれば、各装置のシステムクロックを正確に保つことが可能である。しかし、実際の運用では、ＮＴＰサーバ５００，５０１への接続に制約がある場合がある。例えばドメイン２００，３００，４００については、ユーザへのサービス提供のために、不特定多数のユーザが接続可能な広域ネットワークに接続するが、サブシステム１００は、マルチドメインシステムＡの管理者のみがアクセスできるようにしたい場合がある。しかも管理者が使用する端末装置２１，２２とサブシステム１００とを接続するネットワーク１１に、ＮＴＰサーバ５０１が設置されていない場合がある。この場合、ドメイン２００，３００，４００はＮＴＰサーバ５００と時刻同期してシステムクロックを正確に保つことが可能な一方で、サブシステム１００はいずれのＮＴＰサーバにも接続できない。すると、サブシステム１００のシステムクロックよりも、ドメイン２００，３００，４００のシステムクロックの方が正確となる。そこで、第２の実施の形態では、ドメイン２００，３００，４００がＮＴＰサーバ５００と時刻同期している場合、ドメイン２００，３００，４００のシステムクロックを用いて、サブシステム１００のシステムクロックの時刻合わせを行う。これにより、サブシステム１００のシステムクロックの時刻の正確性を向上させることができる。
【００５３】
以下、このような運用状況に応じた時刻合わせを行うための機能、および処理について、詳細に説明する。
図４は、第２の実施の形態に係るマルチドメインシステムの機能を示すブロック図である。サブシステム１００は、システムクロック１１０、基準時計判別部１２０、同期部１３０、ドメイン起動部１４０、差分記憶部１５０、および差分計算部１６０を有している。
【００５４】
システムクロック１１０は、サブシステム１００のＣＰＵ１０１がソフトウェアによって実現している時計である。サブシステム１００は、所定のイベントにタイムスタンプを付す処理やドメイン２００，３００，４００を起動する処理のような時刻を参照する処理があると、システムクロック１１０の時刻を参照する。
【００５５】
基準時計判別部１２０は、ネットワークを経由してアクセス可能な時計を含め、どの時計の時刻を基準とするのかを判別する。第２の実施の形態では、基準とする時刻の参照元として利用可能な時計として、時計デバイスＡ１、ＮＴＰサーバ５０１、およびドメイン２００，３００，４００それぞれが有するシステムクロック２１０，３１０，４１０がある。基準時計判別部１２０は、より正確な時計を適宜判断し、その時計を基準時計とする。そして、基準時計判別部１２０は、基準時計に示される時刻を、時刻合わせの基準とすることを決定する。
【００５６】
同期部１３０は、システムクロック１１０の時刻を基準時計に示される時刻に同期させる。ここで時刻の同期とは、同期先の時計の時刻に、同期対象の時計の時刻を合わせる処理である。例えば同期部１３０は、ＮＴＰサーバ５０１の時刻に、システムクロック１１０の時刻を同期させる場合、ＮＴＰサーバ５０１に示される時刻と同じ時刻が、システムクロック１１０に設定される。
【００５７】
ドメイン起動部１４０は、ドメイン２００，３００，４００の起動制御を行う。ドメイン起動部１４０は、いずれかのドメインを起動する際には、時刻情報を付加した起動命令を起動対象のドメインに送信する。起動命令に付加される時刻情報は、システムクロック１１０が示す時刻を、起動対象のドメインに対応する差分時間で修正した時刻である。なおドメインごとの差分時間は、差分記憶部１５０から取得できる。
【００５８】
差分記憶部１５０は、ドメイン２００，３００，４００それぞれの時刻の差分時間を記憶する。例えばメモリ１０２やＨＤＤ１０３の記憶領域の一部が、差分記憶部１５０として使用される。
【００５９】
差分計算部１６０は、ドメイン２００，３００，４００から、それぞれのシステムクロック２１０，３１０，４１０が示す時刻を取得する。そして差分計算部１６０は、ドメイン２００，３００，４００それぞれのシステムクロック２１０，３１０，４１０が示す時刻と、サブシステム１００内のシステムクロック１１０が示す時刻との差分時間を計算する。差分計算部１６０は、計算した差分時間を差分記憶部１５０に格納する。
【００６０】
ドメイン２００は、システムクロック２１０、同期部２２０、および時刻報告部２３０を有する。
システムクロック２１０は、ドメイン２００のＣＰＵ２０１がソフトウェアによって実現している時計である。ドメイン２００は、所定のイベントにタイムスタンプを付す処理のような時刻を参照する処理があると、システムクロック２１０の時刻を参照する。
【００６１】
同期部２２０は、システムクロック２１０の時刻を基準時刻に同期させる。例えば同期部２２０は、ＮＴＰによる時刻同期が可能な装置のリストを有する。時刻同期が可能な装置のリストには、例えばＮＴＰサーバ５００が最上位に登録され、その次にサブシステム１００が登録される。同期部２２０は、時刻同期が可能な装置のリストの上位から順に、その装置と通信可能か否かを判断し、通信可能な最も上位の装置との間でＮＴＰによる時刻同期を行う。
【００６２】
時刻報告部２３０は、サブシステム１００に対して、ドメイン２００内のシステムクロック２１０が示す時刻を報告する。
ドメイン３００は、システムクロック３１０、同期部３２０、および時刻報告部３３０を有する。ドメイン４００は、システムクロック４１０、同期部４２０、および時刻報告部４３０を有する。ドメイン３００，４００それぞれの各要素は、ドメイン２００の同名の要素と同じ機能を有している。
【００６３】
なお各ドメイン２００，３００，４００にはドメイン名が設定されている。図４の例では、ドメイン２００のドメイン名は「ドメイン＃０」、ドメイン３００のドメイン名は「ドメイン＃１」、ドメイン４００のドメイン名は「ドメイン＃２」である。
【００６４】
次に差分記憶部１５０のデータ構造例について説明する。
図５は、差分記憶部のデータ構造の一例を示す図である。差分記憶部１５０には、差分管理テーブル１５１が格納されている。差分管理テーブル１５１には、ドメイン名と差分時間との欄が設けられている。
【００６５】
ドメイン名の欄には、マルチドメインシステムＡ内の各ドメイン２００，３００，４００の名称が設定されている。差分時間の欄には、対応するドメインの差分時間が設定されている。図５の例ではドメイン名「ドメイン＃０」のドメイン２００の差分時間は、「＋０．１５２秒」である。ドメイン名「ドメイン＃１」のドメイン３００の差分時間は、「０秒」である。ドメイン名「ドメイン＃２」のドメイン４００の差分時間は「−１２．３８秒」である。
【００６６】
図３〜図５に示した構成のシステムによって、サブシステム１００とドメイン２００，３００，４００とが、適宜、その時点で適切な時計を基準時計として、基準時計に自己のシステムクロックを合わせる。第２の実施の形態では、ＮＴＰサーバ５００，５０１の時計が最も精度が高く、次にマルチドメインシステムＡ内の時計デバイスＡ１の精度が高いものとする。また、サブシステム１００内のシステムクロック１１０の精度は、ＮＴＰサーバ５００，５０１や時計デバイスＡ１に比べて低い。同様に、ドメイン２００，３００，４００内のシステムクロック２１０，３１０，４１０の精度も、ＮＴＰサーバ５００，５０１や時計デバイスＡ１に比べて低い。このようにシステムクロックの精度がＮＴＰサーバ５００，５０１や時計デバイスＡ１より低いのは、以下の理由による。
【００６７】
時計デバイスＡ１は、ハードウェアクロックであり、水晶発振器などを用いて高い精度を得ることができる。他方、システムクロック１１０は、ＣＰＵ１０１がソフトウェアで実現した時計であり、ＣＰＵ１０１の負荷状況の変化などの不安定要因がある。そのため、時計デバイスＡ１よりも精度が低い。またＮＴＰサーバ５００は、全地球測位システム（ＧＰＳ：Global Positioning System)、標準電波、原子時計などの正確な時刻源に直接または間接的に接続されており、非常に正確な時刻を用いて適宜時刻合わせが行われている。その結果、相対的に、システムクロックの時刻の精度が最も低くなる。
【００６８】
ところで、マルチドメインシステムＡから、ＮＴＰサーバ５００，５０１に接続するか否かは、管理者の任意である。例えば、マルチドメインシステムＡを、ＮＴＰサーバ５００またはＮＴＰサーバ５０１から切り離して運用することも可能である。
【００６９】
サブシステム１００は、このような運用されているシステムの構成に応じて、適切な基準時計を判断する。
図６は、サブシステムにおける時刻同期処理の手順を示すフローチャートの前半である。以下、図６に示す処理をステップ番号に沿って説明する。
【００７０】
［ステップＳ１１］サブシステム１００が起動する。例えばネットワーク１１を介して起動要求が入力されると、サブシステム１００が起動する。
［ステップＳ１２］同期部１３０は、システムクロック１１０の時刻を初期化する。例えば、同期部１３０は、時計デバイスＡ１の時刻を読み出し、読み出した時刻をシステムクロック１１０の初期値として設定する。
【００７１】
［ステップＳ１３］基準時計判別部１２０は、同期対象のＮＴＰサーバが未設定か否かを判断する。例えば、基準時計判別部１２０には、ＮＴＰを有効にするか無効にするかが予め登録されている。基準時計判別部１２０は、ＮＴＰを無効にする旨の設定がされている場合、同期対象のＮＴＰサーバが未設定と判断する。また基準時計判別部１２０は、時刻同期が可能な装置のリストを有している。時刻同期が可能な装置のリストには、例えばＮＴＰサーバなどの装置のアドレスが含まれる。また時刻同期が可能な装置のリスト内に装置がまったく登録されていない場合、基準時計判別部１２０は、同期対象のＮＴＰサーバが未設定であると判断する。ＮＴＰが有効であり、時刻同期が可能な装置のリスト内に少なくとも１つの装置が登録されている場合、基準時計判別部１２０は、時刻同期が可能な装置のリストへの登録順が上位の装置から優先的に時刻同期相手に決定する。
【００７２】
なお、マルチドメインシステムＡ内の各ドメイン２００，３００，４００も、時刻同期が可能な装置のリストに登録することができる。例えば、マルチドメインシステムＡの管理者は、時刻同期が可能な装置のリストにＮＴＰサーバを上位に登録した後に、ＮＴＰサーバよりも下位にドメイン２００，３００，４００を登録しておく。こうすることで、サブシステム１００自身は外部のＮＴＰサーバに時刻同期できない場合であっても、ドメイン２００，３００，４００が外部のＮＴＰサーバと時刻同期していれば、サブシステム１００は、ドメイン２００，３００，４００と時刻同期が可能となる。
【００７３】
基準時計判別部１２０は、ＮＴＰサーバが未設定であれば、処理をステップＳ１９に進める。また基準時計判別部１２０は、ＮＴＰサーバが設定されていれば、処理をステップＳ１４に進める。
【００７４】
［ステップＳ１４］基準時計判別部１２０は、設定されたＮＴＰサーバと同期可能か否かを判断する。例えば基準時計判別部１２０は、設定されたＮＴＰサーバに対して、状態を問い合わせるコマンドを送信する。そのコマンドに対して、正常に動作していることを示す応答が返された場合、基準時計判別部１２０は、ＮＴＰサーバが同期可能であると判断する。
【００７５】
基準時計判別部１２０は、ＮＴＰサーバが同期可能な場合、そのＮＴＰサーバを基準時計に決定し、処理をステップＳ１５に進める。また基準時計判別部１２０は、ＮＴＰサーバが同期できない場合、処理をステップＳ１６に進める。
【００７６】
［ステップＳ１５］同期部１３０は、登録されているＮＴＰサーバと時刻同期を行い、システムクロック１１０の時刻合わせを行う。同期部１３０は、その後、処理をステップＳ１８に進める。
【００７７】
［ステップＳ１６］基準時計判別部１２０は、ＮＴＰサーバとの間で時刻同期が完了したドメインと時刻同期が可能か否かを判断する。例えば、基準時計判別部１２０は、ドメイン２００，３００，４００が他のＮＴＰサーバと正しく時刻同期ができたかどうかを、ドメイン２００，３００，４００に問い合わせる。例えば基準時計判別部１２０は、ドメイン２００，３００，４００に対して同期状態を確認するコマンドを送信することで、時刻同期ができたかどうかを確認することができる。例えば基準時計判別部１２０は、同期状態を確認するコマンドに対して、同期が正常に完了したことを示す情報を応答したドメインについて、ＮＴＰサーバとの同期が完了しているものと認識する。同期状態を確認するコマンドとしては、例えばＬｉｎｕｘ（登録商標）ではntpstatコマンドを利用することができる。
【００７８】
基準時計判別部１２０は、ＮＴＰサーバとの間で時刻同期が完了したドメインが少なくとも１つあれば、ＮＴＰサーバとの間で時刻同期が完了したドメインと時刻同期が可能と判断する。基準時計判別部１２０は、ＮＴＰサーバとの間で時刻同期が完了したドメインと時刻同期が可能であれば、処理をステップＳ１７に進める。また、基準時計判別部１２０は、ＮＴＰサーバとの間で時刻同期が完了したドメインと時刻同期が不可能であれば、処理をステップＳ１９に進める。
【００７９】
［ステップＳ１７］同期部１３０は、ＮＴＰサーバとの間で時刻同期が完了したドメインと時刻同期を行い、システムクロック１１０の時刻合わせを行う。
［ステップＳ１８］同期部１３０は、時計デバイスＡ１の時刻を更新する。例えば同期部１３０は、システムクロック１１０が示す時刻を、時計デバイスＡ１に書き込む。その後、同期部１３０は処理をステップＳ２１（図７参照）に進める。
【００８０】
［ステップＳ１９］同期部１３０は、ＮＴＰサーバが未設定か、ＮＴＰサーバまたはドメインとの時刻同期に失敗した場合、時計デバイスＡ１を用いてシステムクロック１１０の時刻合わせを行う。例えば同期部１３０は、ＯＳに予め用意されている時刻合わせの関数を実行し、時計デバイスＡ１の時刻にシステムクロック１１０の時刻を同期させる。時刻合わせの関数としては、例えばＬｉｎｕｘ（登録商標）ではadjtimex(2)関数がある。その後、同期部１３０は処理をステップＳ２１（図７参照）に進める。
【００８１】
図７は、サブシステムにおける時刻同期処理の手順を示すフローチャートの後半である。以下、図７に示す処理をステップ番号に沿って説明する。
［ステップＳ２１］ドメイン起動部１４０は、マルチドメインシステムＡ内のドメインのうち、ステップＳ２２〜ステップＳ２５の処理を未処理のドメインを１つ選択する。例えばドメイン起動部１４０は、マルチドメインシステムＡ内のドメイン名のリストを有する。ドメイン名のリストには、処理済みか否かを示すフラグが設定されている。そしてドメイン起動部１４０は、ドメイン名のリストの中から、未処理のフラグが設定されているドメインを１つ選択する。
【００８２】
［ステップＳ２２］ドメイン起動部１４０は、選択したドメインについて起動するか否かを判断する。例えばドメイン起動部１４０には、予めサブシステム１００の起動と同時に起動するドメイン名が予め登録されている。そしてドメイン起動部１４０は、サブシステム１００起動後のステップＳ２２の最初の処理では、予め登録されている識別子に対応するドメインについて起動するものと判断する。また、サブシステム１００の稼働中に管理者よりドメインの起動指示が入力されると、ドメイン起動部１４０は、起動指示後の最初のステップＳ２２の処理において、起動指示で指定されたドメインについて起動するものと判断する。
【００８３】
ドメイン起動部１４０は、選択したドメインを起動すると判断した場合、処理をステップＳ２３に進める。またドメイン起動部１４０は、選択したドメインを起動しないと判断した場合、処理をステップＳ２４に進める。
【００８４】
［ステップＳ２３］ドメイン起動部１４０は、選択したドメインに対して、そのドメインの時刻の初期値を指定した起動要求を送信する。選択したドメインの時刻の初期値は、差分記憶部１５０に示される該当ドメインの差分時間を、サブシステム１００のシステムクロック１１０の時刻に加算した値である。起動要求を取得したドメインは、指定された初期値を、そのドメインのシステムクロックの初期値に設定した上で起動する。
【００８５】
［ステップＳ２４］差分計算部１６０は、選択したドメインが稼働中か否かを判断する。例えば差分計算部１６０は、各ドメイン２００，３００，４００に対して定期的に稼働中か否かの確認メッセージを送信し、応答があったドメインを稼働中と認識する。差分計算部１６０は、選択したドメインが稼働中であれば、処理をステップＳ２５に進める。また差分計算部１６０は、選択したドメインが停止中であれば、処理をステップＳ２６に進める。
【００８６】
［ステップＳ２５］差分計算部１６０は、選択したドメインの差分時間を更新する。例えば差分計算部１６０は、選択したドメインに対してポーリングを行う。すると選択したドメインの時刻報告部が、差分計算部１６０に対して、システムクロックの時刻を送信する。差分計算部１６０は、選択したドメインのシステムクロックの時刻と、サブシステム１００のシステムクロック１１０の時刻との差分時間を計算する。例えば差分計算部１６０は、選択したドメインのシステムクロックの時刻から、サブシステム１００のシステムクロック１１０の時刻を減算する。選択したドメインのシステムクロックの方が、サブシステム１００のシステムクロック１１０より進んでいれば、差分時間は正の値となる。選択したドメインのシステムクロックの方が、サブシステム１００のシステムクロック１１０より遅れていれば、差分時間は負の値となる。
【００８７】
［ステップＳ２６］ドメイン起動部１４０は、すべてのドメインに対してステップＳ２２〜ステップＳ２５の処理を実行したか否かを判断する。例えばドメイン起動部１４０は、予め保持しているドメイン名のリスト内の直近に選択したドメイン名に対して、処理済みのフラグを設定する。その後、ドメイン起動部１４０は、ドメイン名のリスト内に、未処理のフラグが設定されているドメイン名がなければ、すべてのドメインについて処理を実行済みと判断する。ドメイン名のリスト内に、未処理のフラグが設定されているドメイン名が少なくとも１つでもあれば、ドメイン起動部１４０は、未処理のドメインがあると判断する。
【００８８】
すべてのドメインについて処理が実行済みであれば、ドメイン起動部１４０は、すべてのドメインの処理状態を未処理に初期化する。例えばドメイン起動部１４０は、ドメイン名のリスト内のすべてのドメイン名に、未処理のフラグを設定する。その後、ドメイン起動部１４０は、処理をステップＳ１３（図６参照）に進める。
【００８９】
未処理のドメインがあれば、ドメイン起動部１４０は、処理をステップＳ２１に進める。
このように、サブシステム１００は、ＮＴＰサーバの接続状況やドメインの稼働状況に応じて、適切な時計を基準時計に決定し、システムクロック１１０の時刻を基準時計に合わせる。
【００９０】
次に、各ドメインの差分時間処理について詳細に説明する。
図８は、差分時間更新処理の手順を示すシーケンス図である。以下、図８に示すシーケンス図をステップ番号に沿って説明する。なお図８には、ドメイン２００の差分時間を更新する場合の例を示している。
【００９１】
［ステップＳ３１］サブシステム１００の差分計算部１６０は、ドメイン２００が稼働中か否かを判断する。例えば差分計算部１６０は、ドメイン２００に対して動作しているか否かを問い合わせるコマンドを送信し、正しく応答があれば稼働中であると判断する。差分計算部１６０は、ドメイン２００が稼働中であれば、処理をステップＳ３２に進める。差分計算部１６０は、ドメイン２００が稼働中でなければ、処理を終了する。
【００９２】
［ステップＳ３２］差分計算部１６０は、変数Ｔs1に、システムクロック１１０の時刻を設定する。ここで変数Ｔs1は、ドメイン２００に対する時刻取得要求の開始時刻を示す変数である。
【００９３】
［ステップＳ３３］差分計算部１６０は、時刻取得要求をドメイン２００に対して送信する。
［ステップＳ３４］ドメイン２００の時刻報告部２３０は、サブシステム１００から送られた時刻取得要求を受信する。このとき時刻報告部２３０は、変数Ｔd1に、システムクロック２１０の時刻を設定する。ここで変数Ｔd1は、ドメインにおける時刻取得要求の取得時刻を示す変数である。
【００９４】
［ステップＳ３５］時刻報告部２３０は、サブシステム１００に対して時刻情報を応答する。このとき時刻報告部２３０は、変数Ｔd2に、システムクロック２１０の時刻を設定する。ここで変数Ｔd2は、ドメインにおける時刻取得要求の応答時刻を示す変数である。応答する時刻情報には、変数Ｔd1と変数Ｔd2とが含まれる。
【００９５】
［ステップＳ３６］サブシステム１００の差分計算部１６０は、ドメイン２００から送られた時刻情報を受信する。
［ステップＳ３７］差分計算部１６０は、変数Ｔs2に、システムクロック１１０の時刻を設定する。ここで変数Ｔs2は、ドメイン２００からの時刻情報の受信時刻を示す変数である。
【００９６】
［ステップＳ３８］差分計算部１６０は、差分時間を計算する。例えば差分計算部１６０は、「差分時間＝（（Ｔs2＋Ｔs1）−（Ｔd2＋Ｔd1））／２」とする。
［ステップＳ３９］差分計算部１６０は、算出した差分時間を差分記憶部１５０に格納する。具体的には、差分計算部１６０は、差分計算部１６０内の差分管理テーブル１５１のおけるドメイン２００のドメイン名「ドメイン＃０」の差分時間を、ステップＳ３８で算出した差分時間に変更する。
【００９７】
このようにして、ドメインごとの差分時間を更新することができる。
ところで、差分時間は、通信の遅延を考慮して計算される。
図９は、差分時間の概念を示す図である。差分時間の算出の際には、ドメイン２００とサブシステム１００、受信と応答でそれぞれの時刻を記録する。その時刻を用いて、ドメイン２００とサブシステム１００間で生じる通信遅延時間を含めない差分時間を計算することができる。
【００９８】
図９の例では、ドメイン２００のイベントを契機として差分時間を計算している。この場合、ドメイン２００の起動時に、ドメイン２００の時刻報告部２３０からサブシステム１００に対して、記録開始要求が出される。サブシステム１００の差分計算部１６０は、記録開始要求を受け取ると、ドメイン２００のドメイン名を差分管理テーブル１５１に追加する。この際、ドメイン２００の差分時間には、初期値（例えば「０」）が設定される。
【００９９】
その後、サブシステム１００の差分計算部１６０により時刻取得要求が送信される。送信された時刻取得要求は、ドメイン２００の時刻報告部２３０で受信される。このとき、時刻取得要求の送信時刻Ｔs1から時刻取得要求の受信時刻Ｔd1までに、通信遅延に起因する時間差が存在する。
【０１００】
時刻報告部２３０は、時刻取得要求を取得すると時刻情報を応答する。応答された時刻情報は、サブシステム１００の差分計算部１６０で受信される。このとき、時刻情報が送信時刻Ｔd2から時刻情報の受信時刻Ｔs2までに、通信遅延に起因する時間差が存在する。
【０１０１】
通信の片道分の通信遅延時間の平均（通信遅延時間）は、
通信遅延時間＝（（Ｔs2−Ｔs1）−（Ｔd2−Ｔd1））／２
となる。すると、ドメイン２００のシステムクロック２１０とサブシステム１００のシステムクロック１１０との差を示す差分時間は、通信遅延時間の分だけ減算することで、正確な差分時間となる。式で表すと以下のようになる。
差分時間＝Ｔs2−通信遅延時間−Ｔd2＝（（Ｔs2＋Ｔs1）−（Ｔd2＋Ｔd1））／２
このように通信遅延時間を考慮して差分時間を求めることで、差分時間を正確に求めることができる。
【０１０２】
なお図８、図９では、ドメイン２００の差分時間の更新例として説明したが、同様の差分時間の更新処理は、稼働しているすべてのドメインに対して独立に実行される。その結果、各ドメインの差分時間が求められ、差分記憶部１５０に格納される。
【０１０３】
また、差分時間を計算するタイミングは、ドメインのイベントを契機とする以外に、ドメインのシャットダウン、ドメインの時刻変更、サブシステム１００の時刻変更、サブシステム１００からのポーリングがある。サブシステム１００からポーリングを行う場合は、ドメインの負荷を軽減させるため、ポーリングの周期を、例えば１０００秒に１回程度とする。
【０１０４】
以下、運用状況に応じた、時刻合わせの例を具体的に説明する。
図１０は、システムの運用構成に応じた各装置の適切な基準時計の例を示す図である。各装置の関係は、上位、中位、下位で表される。中位の装置は、稼働中であれば、上位の装置の時刻を用いて、自己のシステムクロックの時刻合わせを行う。下位の装置は、稼働中であれば、上位または中位の装置の時刻を用いて、自己のシステムクロックの時刻合わせを行う。
【０１０５】
なお各装置の起動時は、時刻情報を取得可能な装置に制限がある。例えばサブシステム１００とドメイン２００，３００，４００は、起動時にはＮＴＰサーバ５００と通信することができない。ただし、ドメイン２００，３００，４００は、起動時であっても、サブシステム１００から時刻情報を取得することはできる。
【０１０６】
また、ドメイン２００，３００，４００はサブシステム１００からの起動命令によって起動する。そのため、ドメイン２００，３００，４００の起動以前には、サブシステム１００は稼働中となっている。
【０１０７】
図１０の項番「１−１」〜「１−４」には、マルチドメインシステムＡに対して、ＮＴＰサーバ５００を接続しない運用構成（第１の運用構成）の例が示されている。この場合、サブシステム１００が上位、ドメイン２００，３００，４００が下位となる。
【０１０８】
この運用構成では、サブシステム１００の起動時（項番「１−１」）および稼働中（項番「１−２」）は、サブシステム１００にとっての基準時計は時計デバイスＡ１となる。例えばサブシステム１００の同期部１３０は、起動時に時計デバイスＡ１の時刻を読み出し、システムクロック１１０の初期値に設定する。またサブシステム１００の同期部１３０は、稼働中に、定期的に同期コマンド（例えばＬｉｎｕｘ（登録商標）ではadjtimex(8)コマンド）を実行して、時計デバイスＡ１の時刻にシステムクロック１１０の時刻を同期させる。
【０１０９】
ドメイン２００，３００，４００の起動時（項番「１−３」）は、ドメインの基準時計は、サブシステム１００のシステムクロック１１０となる。ただし、この場合、ドメイン２００，３００，４００のシステムクロック２１０，３１０，４１０は、システムクロック１１０の時刻を差分時間で修正した時刻に合わせられる。例えばドメイン２００を起動する場合、サブシステム１００のドメイン起動部１４０は、サブシステム１００のシステムクロック１１０にドメイン２００に対応する差分時間を加算した時刻を示す時刻情報を付加した起動要求を、ドメイン２００に対して送信する。するとドメイン２００のＣＰＵ２０１は、起動要求に付加された時刻情報に示される時刻を、システムクロック２１０，３１０，４１０の初期値として、ドメイン２００を起動する。
【０１１０】
ドメイン２００，３００，４００の稼働中（項番「１−４」）は、ドメインの基準時計は、サブシステム１００のシステムクロック１１０となる。例えば、同期部２２０，３２０，４２０が定期的に、ＮＴＰによりシステムクロック２１０，３１０，４１０の時刻を、サブシステム１００のシステムクロック１１０の時刻に同期させる。
【０１１１】
図１０の項番「２−１」〜「２−４」には、サブシステム１００に対してＮＴＰサーバ５０１を接続した運用構成（第２の運用構成）の例が示されている。この場合、ＮＴＰサーバ５０１が上位、サブシステム１００が中位、ドメイン２００，３００，４００が下位となる。
【０１１２】
この運用構成では、サブシステム１００の起動時（項番「２−１」）は、サブシステム１００にとっての基準時計は時計デバイスＡ１となる。サブシステム１００が稼働中（項番「２−２」）は、サブシステム１００にとっての基準時計はＮＴＰサーバ５０１となる。例えば、サブシステム１００の同期部１３０は定期的に、システムクロック１１０の時刻をＮＴＰサーバ５０１の時刻に同期させる。
【０１１３】
ドメイン２００，３００，４００の起動時（項番「２−３」）は、ドメインの基準時計は、サブシステム１００のシステムクロック１１０となる。ただし、この場合、ドメイン２００，３００，４００のシステムクロック２１０，３１０，４１０は、システムクロック１１０の時刻を差分時間で修正した時刻に合わせられる。ドメイン２００，３００，４００の稼働中（項番「２−４」）は、ドメインの基準時計は、サブシステム１００のシステムクロック１１０となる。
【０１１４】
図１０の項番「３−１」〜「３−４」には、ドメイン２００，３００，４００に対してＮＴＰサーバ５００を接続した運用構成（第３の運用構成）の例が示されている。この場合、ＮＴＰサーバ５００が上位、ドメイン２００，３００，４００が中位、サブシステム１００が下位となる。
【０１１５】
この運用構成では、サブシステム１００の起動時（項番「３−１」）は、サブシステム１００にとっての基準時計は時計デバイスＡ１となる。サブシステム１００の稼働中（項番「３−２」）は、いずれのドメインも稼働していなければ、サブシステム１００にとっての基準時計は時計デバイスＡ１となる。他方、サブシステム１００の稼働中において、少なくとも１つのドメインが稼働していれば、サブシステム１００にとっての基準時計は、稼働中のドメインのシステムクロックとなる。この場合、サブシステム１００の同期部１３０が定期的に、ＮＴＰによりシステムクロック１１０の時刻を、稼働中のサブシステムのシステムクロックの時刻に同期させる。
【０１１６】
ドメイン２００，３００，４００の起動時（項番「３−３」）は、ドメインの基準時計は、サブシステム１００のシステムクロック１１０となる。ただし、この場合、ドメイン２００，３００，４００のシステムクロック２１０，３１０，４１０は、システムクロック１１０の時刻を差分時間で修正した時刻に合わせられる。ドメイン２００，３００，４００の稼働中（項番「３−４」）は、ドメインの基準時計は、ＮＴＰサーバ５００となる。この場合、ドメイン２００，３００，４００の同期部２２０，３２０，４２０が定期的に、ＮＴＰによりシステムクロック２１０，３１０，４１０の時刻を、ＮＴＰサーバ５００の時刻に同期させる。
【０１１７】
次に、図１０に示す運用構成が運用中に変化する場合の基準時計の変更例について説明する。
図１１は、マルチドメインシステムの運用状況の第１の例を示す図である。運用状況の第１の例は、サブシステム１００にＮＴＰサーバが接続されていない場合の例である。また図１１の例では、サブシステム１００は、ドメイン２００，３００，４００のシステムクロック２１０，３１０，４１０との時刻同期も行わない。
【０１１８】
図１１の初期状態（図１１の上段）では、サブシステム１００と複数のドメイン２００，３００，４００とのいずれにもＮＴＰサーバが接続されていない。その後、運用中（図１１の下段）にドメイン２００，３００，４００に対してＮＴＰサーバ５００が接続されている。
【０１１９】
初期状態では、マルチドメインシステムＡ内のいずれの装置もＮＴＰサーバに接続されていない。そのため、時計デバイスＡ１の時刻が最も信頼できる。すなわち時計デバイスＡ１が基準時計となる。そこで、時計デバイスＡ１の時刻がサブシステム１００に渡され、サブシステム１００内のシステムクロック１１０の時刻合わせが行われる。
【０１２０】
また、ドメイン２００，３００，４００は、ＮＴＰによりサブシステム１００と時刻同期を行う。例えばサブシステム１００のシステムクロック１１０が示す時刻がドメイン２００，３００，４００に渡され、ドメイン２００，３００，４００内のシステムクロック２１０，３１０，４１０の時刻が、システムクロック１１０が示す時刻に合わせられる。
【０１２１】
時計デバイスＡ１の時計精度は、システムクロック１１０に比べて高いため、ＮＴＰサーバがない環境でも、システム全体の時計精度を高く維持できる。
運用中のドメイン２００，３００，４００にＮＴＰサーバ５００が接続されると、ドメイン２００，３００，４００は、ＮＴＰによりＮＴＰサーバ５００と時刻同期を行う。例えばＮＴＰサーバ５００が示す時刻がドメイン２００，３００，４００に渡され、ドメイン２００，３００，４００内のシステムクロック２１０，３１０，４１０の時刻が、ＮＴＰサーバ５００から提供される時刻情報の時刻に合わせられる。ドメイン２００，３００，４００内のシステムクロック２１０，３１０，４１０は、ＮＴＰサーバ５００の時刻に合わせられる。
【０１２２】
運用中のドメイン２００，３００，４００にＮＴＰサーバ５００が接続された場合、サブシステム１００のシステムクロック１１０が示す時刻より、各ドメイン２００，３００，４００のシステムクロック２１０，３１０，４１０が示す時刻の方が正確となる。サブシステム１００のシステムクロック１１０が示す時刻と、各ドメイン２００，３００，４００のシステムクロック２１０，３１０，４１０が示す時刻とのずれを示す差分時間は、差分記憶部１５０に保持される。この差分時間を、ドメイン２００，３００，４００起動時のシステムクロック２１０，３１０，４１０の初期値とすることにより、ドメイン２００，３００，４００の停止期間があっても、停止直前の差分時間を維持して起動される。
【０１２３】
図１２は、マルチドメインシステムの運用状況の第１の例における時刻合わせを時系列に示す図である。サブシステム１００の起動時には、時計デバイスＡ１の時刻が、システムクロック１１０に設定される。その後、定期的にサブシステム１００の同期部１３０によって時計デバイスＡ１の時刻が読み出され、システムクロック１１０の時刻が更新される。
【０１２４】
ドメイン２００の起動時には、サブシステム１００のシステムクロック１１０で示される時刻にドメイン２００の差分時間を加算した時刻が、ドメイン２００のシステムクロック２１０に設定される。その後、ドメイン２００がＮＴＰサーバ５００に未接続の間は、ドメイン２００は、システムクロック２１０を、サブシステム１００のシステムクロック１１０にＮＴＰによって時刻同期させ、システムクロック２１０の時刻を合わせる。
【０１２５】
ドメイン２００がＮＴＰサーバ５００に接続されると、ＮＴＰサーバ５００との時刻同期により、ＮＴＰサーバ５００で示される時刻がシステムクロック２１０に設定される。サブシステム１００では、ドメイン２００のシステムクロック２１０が示す時刻と、サブシステム１００のシステムクロック１１０が示す時刻との差分時間が定期的に計算され、差分記憶部１５０に格納される。差分時間の格納は、ドメイン２００が停止（シャットダウン）されるまで、定期的に実行される。差分時間が定期的に更新されることで、ドメイン２００の動作を停止させ、再起動を行った場合にも、差分時間で調整された正確な時刻によってドメイン２００が起動される。
【０１２６】
図１３は、マルチドメインシステムの運用状況の第２の例を示す図である。運用状況の第２の例は、サブシステムにＮＴＰサーバが接続されている場合の例である。図１３の例では、初期状態（図１３の上段）では、サブシステム１００にはＮＴＰサーバ５０１が接続されており、複数のドメイン２００，３００，４００にはＮＴＰサーバが接続されていない。その後、運用中（図１３の下段）にドメイン２００，３００，４００に対してＮＴＰサーバ５００が接続されている。
【０１２７】
初期状態では、ＮＴＰサーバ５０１が基準時計となる。そこで、サブシステム１００がＮＴＰサーバ５０１と時刻同期を行い、サブシステム１００のシステムクロック１１０の時刻が、ＮＴＰサーバ５０１が示す時刻に合わせられる。また、ドメイン２００，３００，４００は、ＮＴＰによりサブシステム１００と時刻同期を行う。
【０１２８】
運用中のドメイン２００，３００，４００にＮＴＰサーバ５００が接続されると、ドメイン２００，３００，４００は、ＮＴＰによりＮＴＰサーバ５００と時刻同期を行う。
なお、ドメイン２００，３００，４００がサブシステム１００とは異なるＮＴＰサーバ５００に接続されると、サブシステム１００とドメイン２００，３００，４００との間で時刻に差が生じる可能性がある。そこでサブシステム１００のシステムクロック１１０が示す時刻と、各ドメイン２００，３００，４００のシステムクロック２１０，３１０，４１０が示す時刻とのずれを示す差分時間が、差分記憶部１５０に保持される。この差分時間を、ドメイン２００，３００，４００起動時のシステムクロック２１０，３１０，４１０の初期値とすることにより、ドメイン２００，３００，４００の停止期間があっても、停止直前の差分時間を維持して起動される。
【０１２９】
図１４は、マルチドメインシステムの運用状況の第２の例における時刻合わせを時系列に示す図である。サブシステム１００の起動時には、時計デバイスＡ１の時刻が、システムクロック１１０に設定される。サブシステム１００の起動完了後、ＮＴＰサーバ５０１との時刻同期により、ＮＴＰサーバ５０１の示す時刻がシステムクロック１１０に設定される。その後、時計デバイスＡ１の時刻は、システムクロック１１０で示される時刻に定期的に更新される。
【０１３０】
ドメイン２００の起動時には、サブシステム１００のシステムクロック１１０で示される時刻にドメイン２００の差分時間を加算した時刻が、ドメイン２００のシステムクロック２１０に設定される。その後、ドメイン２００がＮＴＰサーバ５００に未接続の間は、ドメイン２００は、システムクロック２１０を、サブシステム１００のシステムクロック１１０にＮＴＰによって時刻同期させ、システムクロック２１０の時刻を合わせる。
【０１３１】
ドメイン２００がＮＴＰサーバ５００に接続されると、ＮＴＰサーバ５００との時刻同期により、ＮＴＰサーバ５００で示される時刻がシステムクロック２１０に設定される。サブシステム１００では、ドメイン２００のシステムクロック２１０が示す時刻と、サブシステム１００のシステムクロック１１０が示す時刻との差分時間が定期的に計算され、差分記憶部１５０に格納される。差分時間の格納は、ドメイン２００が停止（シャットダウン）されるまで、定期的に実行される。差分時間が定期的に更新されることで、ドメイン２００の動作を停止させ、再起動を行った場合にも、差分時間で調整された正確な時刻によってドメイン２００が起動される。
【０１３２】
図１５は、マルチドメインシステムの運用状況の第３の例を示す図である。運用状況の第３の例は、ドメインにＮＴＰサーバが接続されている場合の例である。図１５の初期状態（図１５の上段）では、サブシステム１００にはＮＴＰサーバが接続されておらず、複数のドメイン２００，３００，４００にはＮＴＰサーバ５００が接続されているが、ドメイン２００，３００，４００は停止中である。その後、ドメイン２００，３００，４００が起動され、運用が開始されている（図１５の下段）。
【０１３３】
初期状態では、時計デバイスＡ１が基準時計となる。そこで、時計デバイスＡ１の時刻がサブシステム１００に渡され、サブシステム１００内のシステムクロック１１０の時刻合わせが行われる。
【０１３４】
ドメイン２００，３００，４００が起動され、運用が開始されると、ドメイン２００，３００，４００は、ＮＴＰによりＮＴＰサーバ５００と時刻同期を行う。ドメイン２００，３００，４００の運用が開始されると、基準時計が、時計デバイスＡ１からＮＴＰサーバ５００に変更される。そのためサブシステム１００は、ＮＴＰサーバ５００側に隣接するドメイン２００，３００，４００のいずれか１つと時刻同期を行う。またサブシステム１００は、定期的に、システムクロック１１０で示される時刻で時計デバイスＡ１の時刻を更新する。
【０１３５】
図１６は、マルチドメインシステムの運用状況の第３の例における時刻合わせを時系列に示す図である。サブシステム１００の起動時には、時計デバイスＡ１の時刻が、システムクロック１１０に設定される。その後、定期的にサブシステム１００の同期部１３０によって時計デバイスＡ１の時刻が読み出され、システムクロック１１０の時刻が更新される。
【０１３６】
ドメイン２００の起動時には、サブシステム１００のシステムクロック１１０で示される時刻にドメイン２００の差分時間を加算した時刻が、ドメイン２００のシステムクロック２１０に設定される。ドメイン２００の起動が完了し稼働状態となると、ドメイン２００は、システムクロック２１０を、ＮＴＰサーバ５００とＮＴＰによって時刻同期させる。
【０１３７】
サブシステム１００は、ドメイン２００のＮＴＰサーバ５００との時刻同期が完了すると、ＮＴＰによりシステムクロック１１０をドメイン２００のシステムクロック２１０に時刻同期させる。サブシステム１００は、ドメイン２００との時刻同期後は、システムクロック１１０に示される時刻により、時計デバイスＡ１の時刻を定期的に更新する。
【０１３８】
またサブシステム１００では、ドメイン２００のシステムクロック２１０が示す時刻と、サブシステム１００のシステムクロック１１０が示す時刻との差分時間が定期的に計算され、差分記憶部１５０に格納される。差分時間の格納は、ドメイン２００が停止（シャットダウン）されるまで、定期的に実行される。
【０１３９】
このようにして、ドメインに接続されたＮＴＰサーバ５００によって、マルチドメインシステムＡ全体の時刻制度が保障される。すなわち、マルチドメインシステムＡの運用状況が変化しても、各時点の運用状況においてより正確な時刻を示す時計を用いて、サブシステム１００のシステムクロック１１０の時刻合わせを行うことができる。その結果、サブシステム１００のシステムクロック１１０を正確に保つことができる。
【０１４０】
しかもドメイン２００，３００，４００のシステムクロック２１０，３１０，４１０とサブシステム１００のシステムクロック１１０との差を定期的に計算し、サブシステム１００内で保持している。これにより、ドメイン２００，３００，４００の再起動時には、再起動時の時刻を、前回動作していたときの差分時間を反映させた時刻を初期値として起動することができる。これにより、ドメイン２００，３００，４００の再起動に起因する時刻情報の不整合などの障害の発生を抑止することができる。
【０１４１】
さらに、サブシステム１００のシステムクロック１１０を、時計デバイスＡ１よりも正確な時計（例えばＮＴＰサーバ）に時刻同期させた場合、システムクロック１１０の時刻を用いて、時計デバイスＡ１の時刻を合わせている。これにより、時計デバイスＡ１で示される時刻を、より正確に保つことができる。その結果、サブシステム１００を再起動した場合に、正確な時刻を用いて再起動することができる。
【０１４２】
なお、ドメイン２００，３００，４００内のシステムクロック２１０，３１０，４１０に対しては、ユーザが任意の時刻を設定することができる。例えば、１つのドメインをソフトウェアの動作試験に用いる場合、現在の時刻と異なる時刻を、システムクロックに設定する。このような場合でも、サブシステム１００が差分時間を保持していることで、ドメインの再起動を行っても、ユーザが過去に設定した差分を維持した時刻が、ドメインのサブシステムの初期値として設定される。このように意図的にドメインの時刻をずらす場合、ドメインのＮＴＰサーバとの時刻同期は行われない。
【０１４３】
〔第３の実施の形態〕
第２の実施の形態に示したドメイン２００，３００，４００それぞれに、ハードウェアクロックを内蔵させることも可能である。
【０１４４】
図１７は、第３の実施の形態に係るマルチドメインシステムのハードウェア構成例を示す図である。なお第３の実施の形態のハードウェア構成要素のうち、第２の実施の形態と同じ機能の要素には同じ符号を付し、説明を省略する。
【０１４５】
第３の実施の形態のマルチドメインシステムＡ−１に内蔵された各ドメイン２００ａ，３００ａ，４００ａは、それぞれ時計デバイス２０７，３０７，４０７を有している。時計デバイス２０７，３０７，４０７は、それぞれバス２０６，３０６，４０６に接続されている。
【０１４６】
このように各ドメイン２００ａ，３００ａ，４００ａが時計デバイス２０７，３０７，４０７を有する場合、サブシステム１００からドメイン２００ａ，３００ａ，４００ａの時計デバイス２０７，３０７，４０７の時刻の参照・更新を可能にすることができる。これにより、ドメイン２００ａ，３００ａ，４００ａごとに、異なる時刻を設定したり、表示したりすることが可能となる。例えば、Ｌｉｎｕｘ（登録商標）では、以下のようなコマンドにより、ドメイン２００ａ，３００ａ，４００ａごとに、異なる時刻を設定したり、表示したりすることができる。
【０１４７】
サブシステム１００からドメイン２００ａ，３００ａ，４００ａそれぞれの時計デバイス２０７，３０７，４０７を参照するには、以下のコマンドが実行される。
# showtod
このコマンドの実行により、例えば以下のような情報が端末装置２１の画面に表示される。
Domain#0  :  Thu Feb 18 11:32:38 JST 2010
Domain#1  :  Thu Feb 18 11:32:38 JST 2010
Domain#2  :  Thu Feb 18 11:32:38 JST 2010
また、以下のようなコマンドにより、ドメイン２００ａ，３００ａ，４００ａの時計デバイス２０７，３０７，４０７の時刻を更新可能である。
# settod domain#0 Thu Feb 18 18:33:00 JST 2010
更新された時刻は、ドメイン２００ａ，３００ａ，４００ａの再起動後に、ＯＳに反映される。
【０１４８】
また、以下のようなコマンドにより、ドメイン２００ａ，３００ａ，４００ａの時計デバイス２０７，３０７，４０７をサブシステムの時刻と一致させることができる。
# settod domain#0 subsystem
更新された時刻は、ドメイン２００ａ，３００ａ，４００ａの再起動後に、ＯＳに反映される。
【０１４９】
さらに、以下のようなコマンドにより、全ドメイン２００ａ，３００ａ，４００ａの時計デバイス２０７，３０７，４０７をサブシステムの時刻と一致させることができる。
# settod subsystem
更新された時刻は、ドメイン２００ａ，３００ａ，４００ａの再起動後に、ＯＳに反映される。
【０１５０】
〔その他の実施の形態〕
上記の各実施の形態に示した処理機能は、コンピュータによって実現することができる。その場合、サブシステムまたはドメインが有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disc）などがある。
【０１５１】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１５２】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１５３】
また、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現することもできる。
【０１５４】
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【０１５５】
１  情報処理装置
１ａ  計時手段
１ｂ  決定手段
１ｃ  時刻合わせ手段
１ｄ  計算手段
１ｅ  記憶手段
１ｆ  起動手段
２  時計デバイス
３  サーバ
４  管理対象装置
５，６  時刻情報
７  差分時間
８  起動要求
【図１】
2012111112.tif 000003
【図２】
2012111112.tif 000004
【図３】
2012111112.tif 000005
【図４】
2012111112.tif 000006
【図５】
2012111112.tif 000007
【図６】
2012111112.tif 000008
【図７】
2012111112.tif 000009
【図８】
2012111112.tif 000010
【図９】
2012111112.tif 000011
【図１０】
2012111112.tif 000012
【図１１】
2012111112.tif 000013
【図１２】
2012111112.tif 000014
【図１３】
2012111112.tif 000015
【図１４】
2012111112.tif 000016
【図１５】
2012111112.tif 000017
【図１６】
2012111112.tif 000018
【図１７】
2012111112.tif 000019
【手続補正書】
【提出日】平成25年8月22日(2013.8.22)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００５
【補正方法】変更
【補正の内容】
【０００５】
しかし、コンピュータシステムが複雑化すると、時刻情報を提供する装置のうち、どの装置がより正確な時刻を示しているのかの判断が難しくなる。しかも、運用状況に応じて、時刻情報を提供する仕方も変化する。そのため、時刻を合わせる際に、時刻合わせの基準となる時刻情報をどの装置から取得するのかについて適切に判断するのが難しかった。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００９０
【補正方法】変更
【補正の内容】
【００９０】
次に、各ドメインの差分時間更新処理について詳細に説明する。
図８は、差分時間更新処理の手順を示すシーケンス図である。以下、図８に示すシーケンス図をステップ番号に沿って説明する。なお図８には、ドメイン２００の差分時間を更新する場合の例を示している。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０１００
【補正方法】変更
【補正の内容】
【０１００】
時刻報告部２３０は、時刻取得要求を取得すると時刻情報を応答する。応答された時刻情報は、サブシステム１００の差分計算部１６０で受信される。このとき、時刻情報の送信時刻Ｔd2から時刻情報の受信時刻Ｔs2までに、通信遅延に起因する時間差が存在する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０１３９
【補正方法】変更
【補正の内容】
【０１３９】
このようにして、ドメインに接続されたＮＴＰサーバ５００によって、マルチドメインシステムＡ全体の時刻精度が保障される。すなわち、マルチドメインシステムＡの運用状況が変化しても、各時点の運用状況においてより正確な時刻を示す時計を用いて、サブシステム１００のシステムクロック１１０の時刻合わせを行うことができる。その結果、サブシステム１００のシステムクロック１１０を正確に保つことができる。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０１４０
【補正方法】変更
【補正の内容】
【０１４０】
しかもドメイン２００，３００，４００のシステムクロック２１０，３１０，４１０とサブシステム１００のシステムクロック１１０との差を定期的に計算し、サブシステム１００内で保持している。これにより、ドメイン２００，３００，４００の再起動時には、再起動時の時刻に、前回動作していたときの差分時間を反映させた時刻を初期値として起動することができる。これにより、ドメイン２００，３００，４００の再起動に起因する時刻情報の不整合などの障害の発生を抑止することができる。
【手続補正６】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
要求に応じてデータ処理を行う管理対象装置の管理を行う情報処理装置であって、
計時手段と、
前記管理対象装置を、時刻情報を提供する装置の１つとして認識し、現在の運用状況において取得可能な時刻情報を提供する装置のうち、最も正確な時刻情報を提供する装置を決定する決定手段と、
前記決定された装置から時刻情報を取得し、該取得した時刻情報が示す時刻に、前記計時手段の時刻を合わせる時刻合わせ手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記管理対象装置の内部計時手段が示す時刻情報を取得し、取得した時刻情報が示す時刻と、前記計時手段が示す時刻との差分時間を計算する計算手段と、
前記管理対象装置の動作を停止させた後に起動する場合、前記計時手段が示す時刻に、該管理対象装置の差分時間を加算して得られる時刻を、該管理対象装置の内部計時手段の初期値に指定して、該管理対象装置を起動する起動手段と、
をさらに有することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記計算手段は、定期的に前記管理対象装置の内部計時手段が示す時刻を取得することを特徴とする請求項２記載の情報処理装置。
【請求項４】
電池でバックアップされた時計デバイスを、取得可能な時刻情報を提供する装置の１つとして認識し、
前記決定手段は、前記情報処理装置の起動時には、前記時計デバイスを、最も正確な時刻情報を提供する装置に決定することを特徴とする請求項１乃至３のいずれかに記載の情報処理装置。
【請求項５】
前記決定手段は、前記情報処理装置の稼働中は、要求に応じて時刻情報の提供を行うサーバから時刻情報を取得可能であれば、該サーバを最も正確な時刻情報を提供する装置に決定することを特徴とする請求項１乃至４のいずれかに記載の情報処理装置。
【請求項６】
前記決定手段は、前記情報処理装置の稼働中は、要求に応じた時刻情報の提供を行うサーバから時刻情報を取得できない場合、該サーバと時刻合わせを行った装置から時刻情報を取得可能であれば、該装置を最も正確な時刻情報を提供する装置に決定することを特徴とする請求項５記載の情報処理装置。
【請求項７】
前記決定手段は、前記情報処理装置の稼働中は、他の装置からの要求に応じた時刻情報の提供を行っているサーバから時刻情報を取得できず、該サーバと時刻合わせが行われた装置からも時刻情報を取得できない場合、電池でバックアップされた時計デバイスを、最も正確な時刻情報を提供する装置に決定することを特徴とする請求項６記載の情報処理装置。
【請求項８】
前記時刻合わせ手段は、前記情報処理装置の稼働中は、電池でバックアップされた時計デバイス以外の装置から取得した時刻情報が示す時刻に前記計時手段を設定した場合、該計時手段が示す時刻に、該時計デバイスの時刻を合わせることを特徴とする請求項５乃至７のいずれかに記載の情報処理装置。
【請求項９】
前記計時手段は、前記情報処理装置がソフトウェアを実行することで実現されていることを特徴とする請求項１乃至８のいずれかに記載の情報処理装置。
【請求項１０】
要求に応じてデータ処理を行う管理対象装置の管理を行う情報処理装置が、
前記管理対象装置を、時刻情報を提供する装置の１つとして認識し、現在の運用状況において取得可能な時刻情報を提供する装置のうち、最も正確な時刻情報を提供する装置を決定し、
前記決定された装置から時刻情報を取得し、該取得した時刻情報が示す時刻に、前記情報処理装置内の計時手段の時刻を合わせる、
ことを特徴とする時刻設定方法。
【請求項１１】
要求に応じてデータ処理を行う管理対象装置の管理を行う情報処理装置に、
前記管理対象装置を、時刻情報を提供する装置の１つとして認識し、現在の運用状況において取得可能な時刻情報を提供する装置のうち、最も正確な時刻情報を提供する装置を決定し、
前記決定された装置から時刻情報を取得し、該取得した時刻情報が示す時刻に、前記情報処理装置内の計時手段の時刻を合わせる、
処理を実行させることを特徴とする時刻設定プログラム。
【国際調査報告】
2012111112.tif 000020
2012111112.tif 000021
2012111112.tif 000022
2012111112.tif 000023