(57)【要約】   本発明は、非同期分散システムにおいてクロックを同期させるための方法、システム、およびコンピュータプログラム製品にまで及ぶ。本発明の実施形態は、例えば、共通の非同期（分散型）システム内の部材のような、一組のピアノード（オブザーバ）に亘る、不安定で実用的な共通の時間（時刻）の参照の作成を容易にする。疑似同期システムのクラスは、共通のマスタへ参照せずに、対のノード（オブザーバ）間の最悪の場合の相対論的時間の非対称をトラッキングし蓄積して、作成することが可能である。そのように、協働するノードは、別のノードへのオブザーブを考慮すると、１つのノードがオブザーブする時刻の下限を原則的に保証することが可能である。従って、本発明の実施形態を適用して、共通の外部の時刻クロックのエンティティを使用せずに、非同期システムに亘る現在の時刻における最悪の場合（例えば、最大差異）についての、整合性のある（原則的に安全な）見解を提供することができる。
2011529208.tif 000002
【特許請求の範囲】
【請求項１】
複数のコンピュータシステム（１０１、１５１、１９１）を含む非同期分散システム（１００）内のオブザーブコンピュータシステム（１０１）であって、前記オブザーブコンピュータシステム（１０１）は、プロセッサおよびシステムメモリを含み、前記非同期分散システム（１００）は、クロッククォンタム制限（１９２）およびドリフトレート制限（１９３）を有し、前記クロッククォンタム制限（１９２）は、前記非同期分散システム（１００）の前記コンピュータシステム（１０１、１５１、１９１）の内のクロック量子化間の最大差を示し、前記ドリフトレート制限（１９３）は、前記非同期分散システム（１００）の各コンピュータシステムの時間の特定の期間内の最大クロックドリフトを示す、前記オブザーブコンピュータシステム（１００）が主張する、被オブザーブコンピュータシステム（１５１）における時刻と、前記被オブザーブコンピュータシステム（１５１）における実際の時刻との差異を判定するための方法であって、前記方法は、
前記被オブザーブコンピュータシステム（１５１）との１つまたは複数のメッセージ交換（１８４、１８５）に関与する動作であって、前記メッセージ交換は、
メッセージ（１８１）が送信されるときに、前記オブザーブコンピュータシステム（１０１）におけるクロック（１０３）の送信時刻（１７１）を記録する動作と、
メッセージ（１８１）を前記被オブザーブコンピュータシステム（１５１）に送信する動作であって、前記メッセージ（１８１）は記録された送信時刻（１７１）を含む動作と、
前記被オブザーブコンピュータシステム（１５１）からの前記メッセージ（１８１）に応答して、相互に関連するメッセージ（１８２）を続いて受信する動作であって、前記相互に関連するメッセージ（１８２）は、前記被オブザーブコンピュータシステム（１５１）からの時刻（１８３）を含む動作と、
前記相互に関連するメッセージ（１８２）が受信されるときに、前記オブザーブコンピュータシステム（１０１）における、前記クロック（１０３）の受信時刻（１７２）を記録する動作と、
前記被オブザーブコンピュータシステム（１５１）からの時刻（１７３）を記録する動作とを含む動作と、
前記オブザーブコンピュータシステムの時刻に対する前記被オブザーブコンピュータシステムにおける時刻の下限（１６１）を、メッセージの送信のために記録される時刻（１８１）と、前記相互に関連するメッセージ、前記クロッククォンタム制限（１９２）、およびクロックドリフト制限（１９３）に含まれる、前記被オブザーブコンピュータシステムからの前記時刻（１８３）との間の差に基づき計算する動作と、
前記オブザーブコンピュータシステムの時刻に対する前記被オブザーブコンピュータシステムにおける時刻の上限（１６２）を、前記相互に関連するメッセージを受信するために記録される時刻（１８２）と、前記相互に関連するメッセージ、前記クロッククォンタム制限（１９２）、および前記クロックドリフト制限（１９３）に含まれる、前記被オブザーブコンピュータシステムからの前記時刻（１８３）との間の差に基づき計算する動作と、
前記上限（１６２）と前記下限（１６１）との間の差を計算する動作と、
前記プロセッサが、計算された前記差を平均化係数で割ることにより、前記オブザーブコンピュータシステムが主張する、前記被オブザーブコンピュータシステムにおける時刻と、前記被オブザーブコンピュータシステムにおける実際の時刻との最大差異を計算する動作とを備えることを特徴する方法。
【請求項２】
前記オブザーブコンピュータシステムが計算された前記最大差異を使用して、前記被オブザーブコンピュータシステムにおける時間の経過についての安全な見解を公式化する動作をさらに備えることを特徴とする請求項１に記載の方法。
【請求項３】
前記オブザーブコンピュータシステムおよび前記被オブザーブコンピュータシステムが、イベントがいつ起きるかについて合意する動作をさらに備えることを特徴とする請求項１に記載の方法。
【請求項４】
前記オブザーブコンピュータシステムおよび前記被オブザーブコンピュータシステムが、イベントがいつ起きるかについて合意する動作は、前記オブザーブコンピュータシステムが、前記被オブザーブコンピュータシステムにおいて過去のイベントが起きたことを検出する動作を含むことを特徴とする請求項３に記載の方法。
【請求項５】
前記オブザーブコンピュータシステムおよび前記被オブザーブコンピュータシステムが、イベントがいつ起きるかについて合意する動作は、前記オブザーブコンピュータシステムおよび前記被オブザーブコンピュータシステムが、イベントが将来においていつ起きるかについて合意する動作を含むことを特徴とする請求項３に記載の方法。
【請求項６】
前記オブザーブコンピュータシステムが、前記被オブザーブコンピュータシステムとの１つまたは複数のさらなるメッセージ交換に関与する動作と、
前記オブザーブコンピュータシステムが、１つまたは複数のさらなるメッセージ交換に対応する記録された時刻に基づき、１つまたは複数の前記下限および前記上限を改善する動作とをさらに備えることを特徴とする請求項１に記載の方法。
【請求項７】
プロセッサおよびシステムメモリを含むオブザーブコンピュータシステム（１０１）において、被オブザーブコンピュータシステム（１５１）においてイベントが起こった時刻を示すための方法であって、前記方法は、
前記被オブザーブコンピュータシステム（１５１）との１つまたは複数のメッセージ交換（１８４、１８５）に関与する動作であって、各メッセージ交換が、
要求メッセージ（１８１）が送信されるときに、前記オブザーブコンピュータシステム（１０１）における前記クロック（１０３）の時刻（１７１）を記録する動作と、
１つまたは複数の要求メッセージ（１８１）を前記被オブザーブコンピュータシステム（１５１）に送信する動作であって、各要求メッセージが対応する記録された送信時刻を含む動作と、
前記被オブザーブコンピュータシステム（１５１）からの１つまたは複数の要求メッセージ（１８１）に応答して、１つまたは複数の応答メッセージ（１８２）を続いて受信する動作であって、各応答メッセージが前記被オブザーブコンピュータシステムからの時刻（１８３）を含む動作と、
応答メッセージ（１８２）が受信されるときに、前記オブザーブコンピュータシステム（１０１）における前記クロック（１０３）の時刻（１７２）を記録する動作と、
前記オブザーブコンピュータシステム（１０１）の時刻に対する前記被オブザーブコンピュータシステム（１５１）の時間限度（１６１、１６２）を、１つまたは複数のメッセージ交換（１８４、１８５）に基づき計算する動作であって、前記時間限度（１６１、１６２）は、前記オブザーブコンピュータシステム（１０１）における時刻に適用されて、１つまたは複数のメッセージ交換（１８４、１８５）に続いて前記被オブザーブコンピュータシステム（１５１）における特定の時間範囲を主張するよう構成され、前記時間限度は、
計算された時間限度の最下位を表す下方時間限度（１６１）と、
計算された時間限度の最上位を表す上方時間限度（１６２）とを含む動作と、
前記プロセッサが表示を受信する動作であって、前記表示は、ａ）前記被オブザーブコンピュータシステム（１５１）において過去のイベントが起きたことを示す表示、ｂ）イベントが、前記１つまたは複数のメッセージ交換（１８４、１８５）に続いて前記被オブザーブコンピュータシステム（１５１）においていつ起きるかを示す表示、の内からから選択される動作と、
前記プロセッサが前記被オブザーブコンピュータシステム（１５１）の時間範囲を計算する動作であって、前記時間範囲は、ａ）イベントがいつ起こったか、またはｂ）イベントが前記被オブザーブコンピュータシステム（１５１）においていつ起こるかを示し、前記時間範囲は、前記表示が受信されたときに、前記オブザーブコンピュータシステム（１０１）における時刻と、計算された時間限度の下限（１６１）および上限（１６２）に基づき計算される動作と、
表示および計算された時間範囲（１８６）を含むイベントメッセージ（１９７）を１つまたは複数の他のコンピュータシステム（１９１）に送信する動作とを備えることを特徴する方法。
【請求項８】
前記オブザーブコンピュータシステムの時刻に対する前記被オブザーブコンピュータシステムの時間限度を、１つまたは複数のメッセージに基づき計算する動作は、要求メッセージを送信するために記録される時刻と、任意の１つまたは複数のメッセージ交換における対応する応答メッセージに含まれる、前記被オブザーブコンピュータシステムからの時刻との間の最小差に少なくとも部分的に基づき、前記下限をある値に設定する動作を含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記下限をある値に設定する動作は、前記オブザーブコンピュータシステムにおけるクロックの量子化と、前記被オブザーブコンピュータシステムにおけるクロックの量子化との間の差の表示に少なくとも部分的に基づき、前記下限をある値に設定する動作を含むことを特徴とする請求項８に記載の方法。
【請求項１０】
前記下限をある値に設定する動作は、前記オブザーブコンピュータシステムにおけるクロックのクロックドリフト、および前記被オブザーブコンピュータシステムにおけるクロックのクロックドリフトに少なくとも部分的に基づき、下限をある値に設定する動作を含むことを特徴とする請求項８に記載の方法。
【請求項１１】
前記オブザーブコンピュータシステムの時刻に対する前記被オブザーブコンピュータシステムの時間限度を、１つまたは複数の要求／応答メッセージに基づき計算する動作は、応答メッセージを受信するために記録される時刻と、任意の１つまたは複数の要求／応答メッセージ交換における応答メッセージに含まれる、前記被オブザーブコンピュータシステムからの時刻との間の最小差に少なくとも部分的に基づき、上限をある値に設定する動作を含むことを特徴とする請求項７に記載の方法。
【請求項１２】
前記上限をある値に設定する動作は、前記オブザーブコンピュータシステムにおけるクロックの量子化と、前記被オブザーブコンピュータシステムにおけるクロックの量子化との間の差の表示に少なくとも部分的に基づき、上限をある値に設定する動作を含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記上限をある値に設定する動作は、前記オブザーブコンピュータシステムにおけるクロックのクロックドリフト、および前記被オブザーブコンピュータシステムにおけるクロックのクロックドリフトに少なくとも部分的に基づき、上限をある値に設定する動作を含むことを特徴とする請求項１１に記載の方法。
【請求項１４】
前記非同期分散システムがピアツーピアシステムであることを特徴とする請求項７に記載の方法。
【請求項１５】
プロセッサおよびシステムメモリを含むコンピュータシステム（５０１）において、複数のコンピュータシステムを含む非同期分散システムの異なるコンピュータシステムにおけるクロック間の、最大差異（５１４）を計算するための方法であって、前記方法は、
クロッククォンタム制限（５１１）にアクセスする動作であって、前記クロッククォンタム制限は、前記非同期分散システムの前記コンピュータシステムの内のクロック量子化間の最大差を示す動作と、
ドリフトレート制限（５１２）にアクセスする動作であって、前記ドリフトレート制限は、前記非同期分散システムの各コンピュータシステムに対する特定の期間内での最大クロックドリフトを示す動作と、
最大ラウンドトリップ制限（５１３）にアクセスする動作であって、前記最大ラウンドトリップ制限は、前記非同期分散システムの任意の２つのコンピュータシステム間で起こる、要求／応答メッセージ交換の最大時間量を示す動作と、
非同期システムの異なるコンピュータシステムにおけるクロック間の前記最大差異（５１４）を、前記クロッククォンタム制限、前記ドリフトレート制限、および前記最大ラウンドトリップ制限に基づき計算する動作とを備えることを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
コンピュータシステムおよび関連する技術は、社会の多くの状況に影響を与える。実際、情報を処理するコンピュータシステムの能力は、我々が生活し働く様式を変化させてきた。今日、一般にコンピュータシステムは、コンピュータシステムが出現する前には手動で行われた多数のタスク（例えば、文書処理、スケジューリング、会計等）を、実行する。ごく最近では、コンピュータシステムは、お互いに、および他の電子機器に接続されて、有線および無線のコンピュータネットワークを形成し、それを介してコンピュータシステムおよび他の電子機器が電子データを転送することができる。従って、多くのコンピューティングタスクのパフォーマンスが、多数の異なるコンピュータシステム、および／または、多数の異なるコンピュータ環境に亘って分散される。
【背景技術】
【０００２】
ネットワークは、実際、豊富になったため、単純なネットワーク対応のコンピュータシステムが、「インターネット」と称されることが多いネットワークの集塊を介して世界中に広がる何百万の他のコンピュータシステムの内のいずれか１つと通信することができる。そのようなコンピュータシステムには、デスクトップ型、ラップトップ型、もしくはタブレット型のパーソナルコンピュータ、ＰＤＡ（Ｐｅｒｓｏｎａｌ Ｄｉｇｉｔａｌ Ａｓｓｉｓｔａｎｔ：携帯情報端末）、電話、または、デジタルネットワークを介して通信することが可能な任意の他のコンピュータもしくはデバイスを含むことができる。
【０００３】
ネットワークを介して通信するために、１つのコンピュータシステム（本明細書においては「送信コンピュータシステム」と呼ぶ）が、電子メッセージを構成、または電子メッセージにアクセスし、その電子メッセージを、ネットワークを介して別のコンピュータシステム（本明細書においては「受信コンピュータシステム」と呼ぶ）に伝送する。電子メッセージが電子メールまたはインスタントメッセージであるときに、電子メッセージは、人であるユーザにより読まれ、または代わりに、受信コンピュータシステム上で稼働するアプリケーションにより読まれる。電子メッセージは、人であるユーザの可能な支援をして、送信コンピュータシステム上で稼働するアプリケーションにより構成させることができる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
分散コンピュータ環境内においては、多数の異なるノードを相互運用し、所望のコンピュータ操作を実行することが可能である。コンピュータ操作の適切なパフォーマンスは、お互いに、時刻に関するある共通の理解を有する種々の異なるノードに依存させることが可能であることが多い。多くのシステムでは、ノードが参照して全てのノードに共通して分散される絶対時刻を取得することが可能な、「マスタ」クロックを利用する。しかし、クロックを絶対時刻に同期させることには、同期プロトコルおよび高度な接続性が必要とされる。マスタクロックへの参照を介するクロック同期では、電位のチョークポイントおよび障害の中央点がもたらされることもある。例えばインターネット等の、いくつかのネットワーク上では、コンピュータシステムがネットワークとの接続および切断を頻繁に行うため、高度な接続性は、実質上不可能である。
【０００５】
いくつかのピアツーピアのシステムでは、共通の時刻クロックソースを用いて周期的同期を使用し、疑似同期動作を達成する。従って、信頼できる安全なシステムを有するために、存在し、かつ、特定の時点（例えば、新しい構成要素の追加時）において利用可能でなければならない共通の時刻的マスタを、これらのシステムは有することもできる。
【課題を解決するための手段】
【０００６】
本発明は、非同期分散システムにおいてクロックを同期させるための方法、システム、およびコンピュータプログラム製品にまで及ぶ。いくつかの実施形態において、オブザーブコンピュータシステムが主張する、異なる被オブザーブコンピュータシステムにおける時刻と、被オブザーブコンピュータシステムにおける実際の（ローカルな）時刻との差異が判定される。オブザーブコンピュータシステムは、被オブザーブコンピュータシステムとの、１つまたは複数のメッセージ交換に関与する。
【０００７】
メッセージ交換には、メッセージが送信されるときに、オブザーブコンピュータシステムにおけるクロックの送信時刻を記録する、オブザーブコンピュータシステムが含まれる。メッセージ交換には、１つまたは複数のメッセージを被オブザーブコンピュータシステムに送信する、オブザーブコンピュータシステムが含まれる。メッセージ交換には、それに続いて、被オブザーブコンピュータシステムからのメッセージに応答して相互に関連するメッセージを受け取る、オブザーブコンピュータシステムが含まれる。相互に関連するメッセージには、被オブザーブコンピュータシステムからの時刻、すなわちローカルな時刻、が含まれる。メッセージ交換には、相互に関連するメッセージが受信されるときに、オブザーブコンピュータシステムにおける（ローカルな）クロックの受信時刻を記録する、オブザーブコンピュータシステムが含まれる。メッセージ交換には、相互に関連するメッセージが受信されるときに、被オブザーブコンピュータシステムのローカルな時刻を記録する、オブザーブコンピュータシステムが含まれる。
【０００８】
オブザーブコンピュータシステムは、メッセージを送信するために記録されるそのローカルな時刻と、相互に関連するメッセージ、クロッククォンタム制限、およびクロックドリフト制限に含まれる、被オブザーブコンピュータシステムからの時刻との差に基づき、オブザーブコンピュータシステムのローカルな時刻に関連する、被オブザーブコンピュータシステムにおける時刻の下限を計算する。オブザーブコンピュータシステムは、相互に関連するメッセージを受信するために記録されるローカルな時刻と、相互に関連するメッセージ、クロッククォンタム制限、およびクロックドリフト制限に含まれる、被オブザーブコンピュータシステムからの時刻との差に基づき、オブザーブコンピュータシステムの時刻に関連する、被オブザーブコンピュータシステムにおける時刻の上限を計算する。
【０００９】
オブザーブコンピュータシステムは、上限と下限との差を計算する。オブザーブコンピュータシステムは、計算された差を平均化係数で割る、例えば、計算された差を二等分することにより、オブザーブコンピュータシステムが主張する、被オブザーブコンピュータシステムにおける時刻と、被オブザーブコンピュータシステムにおける実際の時刻との最大差異を計算する。次に続くメッセージ交換を利用して、下限および上限をさらに改善することが可能である。オブザーブコンピュータシステムは、被オブザーブコンピュータシステムにおいていつイベントが起こったかを示す時間範囲を、下限および上限に基づき計算することが可能である。
【００１０】
他の実施形態において、複数のコンピュータシステムを含む非同期分散システムの異なるコンピュータシステムにおける、クロック間の最大差異が計算される。コンピュータシステムは、クロッククォンタム制限にアクセスする。クロッククォンタム制限は、非同期分散システムのコンピュータシステム間のクロック量子化間の最大差を示す。コンピュータシステムは、ドリフトレート制限にアクセスする。ドリフトレート制限は、非同期分散システムの各コンピュータシステムに対する特定の期間内での最大クロックドリフトを示す。
【００１１】
コンピュータシステムは、最大ラウンドトリップ制限にアクセスする。最大ラウンドトリップ制限は、非同期分散システムの任意の２つのコンピュータシステム間で起こる、要求／応答メッセージ交換の最大時間量を示す。コンピュータシステムは、クロッククォンタム制限、ドリフトレート制限、および最大ラウンドトリップ制限に基づき、非同期システムの異なるコンピュータシステムにおけるクロック間の最大差異を計算する。
【００１２】
この要約は、以下の「発明を実施するための形態」でさらに述べる概念を選択して簡略化した形式で紹介するために提供するものである。この要約は、請求の主題の重要な特徴または主要な特徴を確認することを意図しておらず、請求の主題の範囲を決定する際の助けとして使用されることも意図していない。
【００１３】
本発明の追加の特徴および利点は、以下に続く記載において説明され、一部は記載により明らかにされ、または、本発明の実践により習得されるであろう。本発明の特徴および利点は、特に添付の請求項において指摘される機器および組み合わせを用いて、実現および取得することができる。本発明のこれらおよびその他の特徴は、以下の記載および添付の請求項からさらに完全に明らかにされ、または、以下に説明されるような本発明の実践により習得されるであろう。
【図面の簡単な説明】
【００１４】
本発明の、上述したものおよびその他の利点および特徴を得ることが可能な方法を記載するために、上記で簡単に記載された本発明のより詳細な記述が、添付の図面に例示されるその特定の実施形態を参照して示される。これらの図面は、本発明の典型的な実施形態のみを描き、従ってその範囲を制限するものとしてみなされるべきではないということが理解された上で、本発明は、添付の図面を使用して追加の特異性および詳細と共に記載され説明される。
【００１５】
【図１】非同期分散システムにおけるクロックの同期を容易にする一例の非同期分散システムを例示する図である。
【図２】オブザーブコンピュータシステムが主張する、被オブザーブコンピュータシステムにおける時刻と、被オブザーブコンピュータシステムにおける実際の時刻との差異を判定するための、一例の方法のフローチャートである。
【図３】被オブザーブコンピュータシステムにおいてイベントが起こった時刻を示すための、一例の方法のフローチャートである。
【図４】複数のコンピュータシステムを含む非同期分散システムの異なるコンピュータシステムにおける、クロック間の最大差異を計算するための、一例の方法のフローチャート である。
【図５】複数のコンピュータシステムを含む非同期分散システムの異なるコンピュータシステムにおける、クロック間の最大差異の計算を容易にする、一例のコンピュータアーキテクチャを例示する図である。
【発明を実施するための形態】
【００１６】
本発明は、非同期分散システムにおいてクロックを同期させるための方法、システム、およびコンピュータプログラム製品にまで及ぶ。いくつかの実施形態において、オブザーブコンピュータシステムが主張する、異なる被オブザーブコンピュータシステムにおける時刻と、被オブザーブコンピュータシステムにおける実際の（ローカルな）時刻との差異が判定される。オブザーブコンピュータシステムは、被オブザーブコンピュータシステムとの、１つまたは複数のメッセージ交換に関与する。
【００１７】
メッセージ交換には、メッセージが送信されるときに、オブザーブコンピュータシステムにおけるクロックの送信時刻を記録する、オブザーブコンピュータシステムが含まれる。メッセージ交換には、１つまたは複数のメッセージを被オブザーブコンピュータシステムに送信する、オブザーブコンピュータシステムが含まれる。メッセージ交換には、それに続いて、被オブザーブコンピュータシステムからのメッセージに応答して相互に関連するメッセージを受け取る、オブザーブコンピュータシステムが含まれる。相互に関連するメッセージには、被オブザーブコンピュータシステムからの時刻、すなわちローカルな時刻、が含まれる。メッセージ交換には、相互に関連するメッセージが受信されるときに、オブザーブコンピュータシステムにおける（ローカルな）クロックの受信時刻を記録する、オブザーブコンピュータシステムが含まれる。メッセージ交換には、相互に関連するメッセージが受信されるときに、被オブザーブコンピュータシステムのローカルな時刻を記録する、オブザーブコンピュータシステムが含まれる。
【００１８】
オブザーブコンピュータシステムは、メッセージを送信するために記録されるそのローカルな時刻と、相互に関連するメッセージ、クロッククォンタム制限、およびクロックドリフト制限に含まれる、被オブザーブコンピュータシステムからの時刻との差に基づき、オブザーブコンピュータシステムのローカルな時刻に関連する、被オブザーブコンピュータシステムにおける時刻の下限を計算する。オブザーブコンピュータシステムは、相互に関連するメッセージを受信するために記録されるローカルな時刻と、相互に関連するメッセージ、クロッククォンタム制限、およびクロックドリフト制限に含まれる、被オブザーブコンピュータシステムからの時刻との差に基づき、オブザーブコンピュータシステムの時刻に関連する、被オブザーブコンピュータシステムにおける時刻の上限を計算する。
【００１９】
オブザーブコンピュータシステムは、上限と下限との差を計算する。オブザーブコンピュータシステムは、計算された差を平均化係数で割る、例えば、計算された差を二等分することにより、オブザーブコンピュータシステムが主張する、被オブザーブコンピュータシステムにおける時刻と、被オブザーブコンピュータシステムにおける実際の時刻との最大差異を計算する。次に続くメッセージ交換を利用して、下限および上限をさらに改良することが可能である。オブザーブコンピュータシステムは、被オブザーブコンピュータシステムにおいていつイベントが起こったかを示す時間範囲を、下限および上限に基づき計算することが可能である。
【００２０】
他の実施形態において、複数のコンピュータシステムを含む非同期分散システムの異なるコンピュータシステムにおける、クロック間の最大差異が計算される。コンピュータシステムは、クロッククォンタム制限にアクセスする。クロッククォンタム制限は、非同期分散システムのコンピュータシステム間のクロック量子化間の最大差を示す。コンピュータシステムは、ドリフトレート制限にアクセスする。ドリフトレート制限は、非同期分散システムの各コンピュータシステムに対する特定の期間内での最大クロックドリフトを示す。
【００２１】
コンピュータシステムは、最大ラウンドトリップ制限にアクセスする。最大ラウンドトリップ制限は、非同期分散システムの任意の２つのコンピュータシステム間で起こる、要求／応答メッセージ交換の最大時間量を示す。コンピュータシステムは、クロッククォンタム制限、ドリフトレート制限、および最大ラウンドトリップ制限に基づき、非同期システムの異なるコンピュータシステムにおけるクロック間の最大差異を計算する。
【００２２】
本発明の実施形態では、以下により詳細に検討するように、コンピュータハードウェアを含む専用または汎用のコンピュータが含まれ、または利用される。本発明の範囲内の実施形態にはまた、コンピュータ実行可能命令および／またはデータ構造を搬送または記憶するための、物理的および他のコンピュータ可読媒体が含まれる。そのようなコンピュータ可読媒体は、汎用または専用のコンピュータシステムがアクセス可能な任意の利用可能な媒体とすることが可能である。コンピュータ実行可能命令を記憶するコンピュータ可読媒体は、物理的記憶媒体である。コンピュータ実行可能命令を搬送するコンピュータ可読媒体は、伝送媒体である。従って、限定ではなく例として、本発明の実施形態には、少なくとも２つの明確に異なる種類のコンピュータ可読媒体、すなわち、物理的記憶媒体および伝送媒体を含むことが可能である。
【００２３】
物理的記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶装置、または、コンピュータ実行可能命令またはデータ構造の形式で所望のプログラムコード手段を記憶するために使用することが可能であり、かつ、汎用または専用コンピュータによりアクセス可能である、任意の他の媒体が含まれる。
【００２４】
「ネットワーク」は、コンピュータシステムおよび／またはモジュールおよび／または他の電子デバイス間の電子データの移送を可能にする、１つまたは複数のデータリンクとして定義される。情報が、ネットワークまたは別の通信接続（配線接続、無線、または、配線接続と無線の組み合わせ）を介して、コンピュータに転送または提供されると、コンピュータは適切に、接続を伝送媒体と見なす。伝送媒体には、コンピュータ実行可能命令またはデータ構造の形式で所望のプログラムコード手段を搬送するために使用することが可能であり、かつ、汎用または専用コンピュータによりアクセス可能である、ネットワークおよび／またはデータリンクを含むことが可能である。上記のものの組み合わせはまた、コンピュータ可読媒体の範囲に含まれるべきである。
【００２５】
さらに、種々のコンピュータシステムの構成要素での受け取りのときに、コンピュータ実行可能命令またはデータ構造の形式でプログラムコード手段を、伝送媒体から物理的記憶媒体に自動的に転送させることが可能である（またはその逆も同様である）。例えば、ネットワークまたはデータリンクを介して受信されるコンピュータ実行可能命令またはデータ構造は、ネットワークインターフェースモジュール（例えば、「ＮＩＣ」）内のＲＡＭにバッファリングさせ、そして最後に、コンピュータシステムＲＡＭに、および／またはコンピュータシステムにおける低揮発性物理的記憶媒体に、転送させることが可能である。従って、伝送媒体を付加的に（または、主として）利用するコンピュータシステムの構成要素内に、物理的記憶媒体を含むことが可能であることを理解すべきである。
【００２６】
コンピュータ実行可能命令には、例えば、汎用コンピュータ、専用コンピュータ、または専用処理デバイスに、特定の機能または機能のグループを実行させる、命令およびデータが含まれる。コンピュータ実行可能命令は、例えば、バイナリ、アセンブリ言語等の中間形式命令、またはさらにソースコードとすることができる。主題が、構造的特徴および／または方法論的な行動に特有の言語で記載されたが、添付の請求項に定義される主題が必ずしも記載された特徴または行動に限定されないことは理解されるべきである。むしろ、記載された特徴および行動は、請求項を実装する例示の形式として開示される。
【００２７】
本発明は、パーソナルコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、メッセージプロセッサ、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能の家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、携帯電話、ＰＤＡ、ページャ、ルータ、スイッチャ、等を含む、多くのタイプのコンピュータシステム構成を用いるネットワークコンピュータ環境において、実践することができるということを、当業者は理解するであろう。本発明はまた、ネットワークを介して（配線接続のデータリンク、無線データリンク、または配線接続および無線のデータリンクの組み合わせにより）リンクされる、ローカルおよびリモートのコンピュータシステムの両方がタスクを実行する、分散型システム環境において実践することができる。分散型システム環境においては、プログラムモジュールを、ローカルおよびリモートのメモリ記憶装置に置くことができる。
【００２８】
本記載および以下の請求項において、量子化させるということは、継続するものとして定義されるのではなく、すなわち、ある期間（例えば、１秒）中、値を保持してから、新しい値に変化させることをいう。
【００２９】
本記載および以下の請求項において、ドリフトとは、別のクロックに比べ正確な速度では動作しない１クロックとして定義される。従って、ある時間量後、１クロックが、別のクロックから「離れてドリフト」し得る。クロックは、異なる方向に（例えば、別のクロックに対して、遅れる、または、先に進む）ドリフト可能であり、異なる速度でドリフト可能である。個々のクロックのドリフトは、例えば、周囲の温度、バッテリの電源等における変化等の、環境の変化に応じて異なる時間で変化することもある。
【００３０】
一般に、非同期システム内のクロックは、１つまたは複数の制限に準拠することが可能である。例えば、実コンピュータのクロックを、（そのローカルクロックの値の前進により測定されるものと）同じレートに非常に近接して時間を経過させるよう、制限することが可能である。従って、クロックの機構における（比較的小さな、潜在的にわずかな）不正確さを、最悪の場合の方法を補正することができる。そのため、本発明の実施形態では、そのような制限を考慮するアルゴリズムを利用し、サブジェクトオブザーバが、他のオブザーバと共同して、他のオブザーバのクロックの値に対して（サブジェクトオブザーバはそれらの他のクロックを直接オブザーブできないが）サブジェクトオブザーバの観点から所定のときに、比較的強固な限度を確立することを可能にする。
【００３１】
従って、本発明の実施形態を実装して、共通の外部の時刻クロックのエンティティを使用せずに、非同期システムに亘る現在の時刻における最悪の場合（例えば、最大差異）についての、比較的整合性のある（安全な）見解を提供することができる。非同期分散システムにおけるコンピュータシステムは、共通の時刻的マスタに依存せず、従って、コンピュータ上では「マスタレス」である。
【００３２】
いくつかの実施形態において、サブジェクトオブザーバ（例えば、ノード）は、単一のクロック（サブジェクトオブザーバのクロック）の値をオブザーブすることが可能であり、かつ、一組のピアオブザーバ（我々のサブジェクトオブザーバと同じ形式で）が、非同期の非瞬時メッセージを他のオブザーバに渡し、不確定遅延を内部オブザーバ通信路を介して導入する、ということをオブザーブすることが可能である。
【００３３】
本発明のいくつかの例の記載は、以下の表記に基づき示される。
１．ｔ０、ｔ１、ｔ２、．．．は、共通の時系列における特定のイベント表示である。
２．（ｔ１−ｔ０）は、正確な２つのイベント間（ｔ１およびｔ０）時間を記述する。
３．イベントｔ０が、別のイベントｔ１の前に起こる場合は、ｔ０＜ｔ１。
４．Ｘ（ｔ０）は、イベントｔ０が起こるときにオブザーブされるクロックＸの値である。
３．（Ｘ（ｔ１）−Ｘ（ｔ０））は、クロックＸにより測定される２つのイベント間（ｔ１およびｔ０）時間の値（タイムスパン）である。
５．ＯXは、クロックＸのオブザーバを定義する。
６．ＯX．ｓｅｎｄ（ＯY，｛ｃｏｎｔｅｎｔｓ｝）は、ＯXが、特定のコンテンツと共に、（例えば、要求）メッセージをＯに送信するイベントを表す。
７．ＯX．ｒｅｃｅｉｖｅ（ＯY，｛ｃｏｎｔｅｎｔｓ｝）は、特定のコンテンツと共に、（例えば、応答）メッセージをＯYから、受信するイベントを表す。
【００３４】
従って、以下の非同期分散システムの制限内において、
Ａ．クロックの値は、単純に増加させ
ｔ０＜ｔ１ならばＸ（ｔ０）≦Ｘ（ｔ１）
Ｂ．クロッククォンタムには上限Ｑがあり、任意のクロックＸに対して
ｔ０＋Ｑ＜ｔ１ならばＸ（ｔ０）＜Ｘ（ｔ１）
Ｃ．クロックドリフトＤには上限があり、任意のクロックＸおよびイベント（ｔ０＜ｔ１）に対して
ｔ０＜ｔ１ならば（１−Ｄ）＊（Ｘ（ｔ１）−Ｘ（ｔ０））≦（ｔ１−ｔ０）＋Ｑ
Ｄ．および
ｔ０＜ｔ１ならば（ｔ１−ｔ０）≦（（１＋Ｄ）＊（Ｘ（ｔ１）−Ｘ（ｔ０）））＋Ｑ
【００３５】
記載の表記を利用して、かつ、記載の制限を有する 非同期分散システムにおいて、 以下のメッセージ交換シーケンスが起こり得る。
＠ｔ０：ＯXがＸ（ｔ０）をオブザーブする
＠ｔ１：ＯX．が（ＯY，｛Ｘ（ｔ０）｝）を送信する
＠ｔ２：ＯYが（Ｏｘ，｛Ｘ（ｔ０）｝）を受信する
＠ｔ３：ＯYがＹ（ｔ３）をオブザーブする
＠ｔ４：ＯY．が（ＯX，｛Ｘ（ｔ０），Ｙ（ｔ３）｝を送信する
＠ｔ５：ＯX．が（ＯY，｛Ｘ（ｔ０），Ｙ（ｔ３）｝を受信する
＠ｔ６：ＯXがＸ（ｔ６）をオブザーブする
【００３６】
メッセージ交換シーケンスは、ＯｘがＯYにＯYの現在のローカルなクロック値のクエリを行う、要求／応答の操作のシーケンスであり、これを行ったとき（ｔ０）、および戻された応答を受け取ったとき（ｔ６）を記録する。ここで、ＸのローカルなクロックがＸ（ｔ０）を有したときとＸのローカルなクロックが値Ｘ（ｔ６）を有したときとの間のある時点で、Ｙが値Ｙ（ｔ３）を有したことを、Ｏｘは分かっている。メッセージの組み合わせを使用して、全体的な配列を表すことが可能であるが、ＯｘおよびＯYのそれぞれは、それ自身の独立した時系列で操作することが可能である。
【００３７】
ドリフトしない完全なローカルクロックのイベントにおいて、Ｏｘは、ｔ６の後の任意の時間ｔにおけるクロックＹの値に対して以下の限度を規定することが可能である。
Ｙ（ｔ）≧Ｘ（ｔ）−（Ｘ（ｔ６）−Ｙ（ｔ３））
Ｙ（ｔ）≦Ｘ（ｔ）＋（Ｙ（ｔ３）−Ｘ（ｔ０））
【００３８】
量子化を計上すると、Ｏｘは、ｔ６の後の任意の時間ｔにおけるクロックＹの値に対して以下の限度を規定することが可能である。
Ｙ（ｔ）≧Ｘ（ｔ）−（Ｘ（ｔ６）−Ｙ（ｔ３）＋２Ｑ）
Ｙ（ｔ）≦Ｘ（ｔ）＋（Ｙ（ｔ３）−Ｘ（ｔ０）＋２Ｑ）
【００３９】
Ｑの項は、クロックが量子化されることを表す。量子化により２つのＱ項が各限度に加算されることから、オブザベーションがなされて、Ｘ(ｔ０)＝０、 Ｙ(ｔ３)＝１、Ｘ(ｔ６)＝２となったと考えられる。 これは、クロックが２という不確実性と同期したということを示唆する。実際の 不確実性を求めるには、オブザベーションに導き得る３つのクロックそれぞれの限度の場合を検討する:
【００４０】
【表１】
2011529208.tif 000003
【００４１】
最初の３列は、クロックが所定の値に変化するときの時刻に関するオブザベーションの時刻を示す。例えば、第２の列において、「２−Δ」は、Ｙが値を１から２に変化させるというイベントに先行するイベントの時刻を示す。第４の列は、列１と列２との差、第５の列は、列２と列３との差である。
【００４２】
最後の２列から最大値を取り上げて、Δを０に近づけると、最大の不確実性がどちらの方向にも２であることが分かる。これを、オブザーブされた不確実性と比較すると、量子化により、２クォンタムの誤差の可能性が導入された。このことは、これらの値に対する変化が、オブザーブされた結果と、可能性のある限度の場合とに等しく影響を与えるということをオブザーブすることにより、任意のＸ（ｔ０）、Ｙ（ｔ３）、およびＸ（ｔ６）に対して法則化することができる。従って、量子化により、２Ｑに等しい誤差項が導入される。
【００４３】
量子化およびクロックドリフトを計上すると、Ｏｘは、ｔ６の後の任意の時間ｔにおけるクロックＹの値に対して以下の限度を規定することが可能である。
Ｙ（ｔ）≧Ｘ（ｔ）−（Ｘ（ｔ６）−Ｙ（ｔ３）＋２Ｑ）−２Ｄ（Ｘ（ｔ）−（Ｘ（ｔ６）＋Ｘ（ｔ０））／２＋２Ｑ）
Ｙ（ｔ）≦Ｘ（ｔ）＋（Ｙ（ｔ３）−Ｘ（ｔ０）＋２Ｑ）＋２Ｄ（Ｘ（ｔ）−（Ｘ（ｔ６）＋Ｘ（ｔ０））／２＋２Ｑ）
【００４４】
これらの値の差は、以下のように計算される。
（Ｘ（ｔ）＋（Ｙ（ｔ３）−Ｘ（ｔ０）＋２Ｑ）＋２Ｄ（Ｘ（ｔ）−（Ｘ（ｔ６）＋Ｘ（ｔ０））／２＋２Ｑ））−（Ｘ（ｔ）−（Ｘ（ｔ６）−Ｙ（ｔ３）＋２Ｑ）−２Ｄ（Ｘ（ｔ）−（Ｘ（ｔ６）＋Ｘ（ｔ０））／２＋２Ｑ））
＝Ｘ（ｔ）−Ｘ（ｔ）＋Ｙ（ｔ３）−Ｙ（ｔ３）＋Ｘ（ｔ６）−Ｘ（ｔ０）＋４Ｑ＋４Ｄ（Ｘ（ｔ）−（Ｘ（ｔ６）＋Ｘ（ｔ０））／２＋２Ｑ）
＝Ｘ（ｔ６）−Ｘ（ｔ０）＋４Ｑ＋４Ｄ（Ｘ（ｔ）−（Ｘ（ｔ６）＋Ｘ（ｔ０））／２＋２Ｑ）
【００４５】
これは、最大誤差が以下のものであることを意味する。
（Ｘ（ｔ６）−Ｘ（ｔ０））／２＋２Ｑ＋２Ｄ（Ｘ（ｔ）−（Ｘ（ｔ６）＋Ｘ（ｔ０））／２＋２Ｑ）
【００４６】
この式において、（Ｘ（ｔ６）−Ｘ（ｔ０））は、ＯXからＯYへ送られ戻される要求―応答の相互作用にかかる時間である。Ｑは、クロックの値が更新される頻度に依存する。最後の項、２Ｄ（Ｘ（ｔ）−（Ｘ（ｔ６）＋Ｘ（ｔ０））／２＋２Ｑ）は、限度が、潜在的なクロックドリフトにより、どのように時間の経過と共に弱くなる（すなわち、減衰する）のかを示す。
【００４７】
メッセージ交換シーケンスのクエリは、複数回繰り返すことが可能であり、ＯXは、任意のクエリに最も密な上限を選択することが可能であり、かつ、任意のクエリに最も密な下限を選択することが可能である。選択のときに、最も密な上限および最も密な下限は、同一のクエリのものである必要はない。メッセージ交換シーケンスのクエリを周期的に繰り返すことにより、任意の時刻Ｔにおいて最新の測定がなされるであろうことから、オブザーバ（本例においてはＯX）は、第３の項を最小化することが可能である。
【００４８】
図１は、非同期分散システム１００が、非同期分散システム１００においてクロックを容易に同期させることを例示している。図１を参照すると、コンピュータアーキテクチャ１００には、コンピュータシステム１０１、１５１、および他のコンピュータシステム１９１が含まれる。図示されるコンピュータシステムおよびその対応する構成要素のそれぞれは、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、および、さらにインターネット等の通信路（またはその一部）を介してお互いに接続される。従って、図示される各構成要素、および、任意の他の接続される構成要素も同様に、メッセージ関連のデータを作成することが可能であり、かつ、メッセージ関連のデータ（例えば、ＩＰデータグラム（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ：インターネットプロトコル）、および、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ：伝送制御プロトコル）、ＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ：ハイパーテキスト転送プロトコル）、ＳＭＴＰ（Ｓｉｍｐｌｅ  Ｍａｉｌ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ：簡易メール転送プロトコル）、等などのＩＰデータグラムを利用する他の上位層プロトコルを、ネットワークを介して交換することができる。
【００４９】
非同期分散システム１００は、実質的には、例えば、ピアツーピアシステム等の任意のタイプの非同期システムとすることができる。
【００５０】
図示するように、コンピュータシステム１０１には、クロック管理モジュール１０２およびクロック１０３が含まれる。一般に、コンピュータシステム１０１は、他のコンピュータシステムとの要求／応答メッセージ交換シーケンスに関与し、要求／応答メッセージ交換シーケンスと関連する時間データに基づき、被オブザーブコンピュータシステムにおいて、主張される時刻を維持するよう、構成される。
【００５１】
クロック管理モジュール１０２は、コンピュータシステム１０１と非同期分散システム１００の他のコンピュータシステムとの間の通信に関連する時間データ（例えば、時間データ１９４）を記録しかつ維持するよう構成される。クロック管理モジュール１０２は、メッセージが、コンピュータシステム１０１にて送受信されるときに、クロック１０３における時刻を記録することが可能である。クロック管理モジュール１０２はまた、被オブザーブコンピュータシステム（例えば、コンピュータシステム１５１）から受信される、要求／応答メッセージ交換シーケンスの一部として受信される応答メッセージ内に含まれる時刻を、記憶することも可能である。記録かつ受信される時刻から、クロック管理モジュール１０２は、特定の範囲内の被オブザーブコンピュータシステムにおける、イベント発生の時刻を示すことが可能である。
【００５２】
図示するように、コンピュータシステム１５１には、クロック管理モジュール１５２およびクロック１５３が含まれる。一般に、コンピュータシステム１５１は、他のコンピュータシステムとの要求／応答メッセージ交換シーケンスに関与し、要求／応答メッセージ交換シーケンスと関連する時間データに基づき、被オブザーブコンピュータシステムにおいて主張される時刻を維持するよう、構成される。
【００５３】
クロック管理モジュール１５２は、コンピュータシステム１５１と非同期分散システム１００の他のコンピュータシステムとの間の通信に関連する時間データを記録しかつ維持するよう構成される。クロック管理モジュール１５２は、メッセージが、コンピュータシステム１５１にて送受信されるときに、クロック１５３における時刻を記録することが可能である。クロック管理モジュール１５２はまた、被オブザーブコンピュータシステム（例えば、コンピュータシステム１０１）から受信される、要求／応答メッセージ交換シーケンスの一部として受信される応答メッセージ内に含まれる時刻を、記憶することも可能である。記録かつ受信される時刻から、クロック管理モジュール１５２は、特定の範囲内の被オブザーブコンピュータシステムにおける、イベント発生の時刻を示すことが可能である。
【００５４】
本発明の実施形態には、それ自身のクロックをオブザーブし、他のクロックの値の範囲を推測するコンピュータシステムが含まれる。例えば、コンピュータシステム１０１は、クロック１０３をオブザーブすることが可能であり、クロック１５３（同様に、他のコンピュータシステム１９１におけるクロックも）の値の範囲の推測することが可能である。同様に、コンピュータシステム１５１は、クロック１５３をオブザーブすることが可能であり、クロック１０３（同様に、他のコンピュータシステム１９１におけるクロックも）の値の範囲の推測することが可能である。他のコンピュータシステム１９１はまた、それ自身のクロックをオブザーブし、クロック１０３および１５３のそれぞれに対する値の範囲を推測することが可能である。
【００５５】
クロック管理モジュールはまた、非同期分散システム１００内のクロック間の最大量子化差Ｑ（例えば、量子化１９２）、および、非同期分散システム１００内の期間Ｄ当たりの最大クロックドリフト（例えば、ドリフト１９３）と共に構成することが可能である。
【００５６】
従って、本発明のいくつかの実施形態には、要求／応答メッセージ交換を利用して、オブザーブコンピュータシステムが主張する、被オブザーブコンピュータシステムにおける時刻と、被オブザーブコンピュータシステムにおける実際の時刻との差異を判定することが含まれる。要求／応答メッセージ交換には、要求メッセージおよび対応する応答メッセージを含むことが可能である。例えば、メッセージ交換１８４には、要求１８１および応答１８２が含まれる。判定された差から、オブザーブコンピュータシステムは、例えば、被オブザーブコンピュータシステムにおけるクロックの値の範囲を推測することが可能である。しかし、より緩い相互関係（例えば、明確な要求／応答よりも）を有するメッセージを使用することも可能である。
【００５７】
従って、本発明の他の実施形態では、送信されたメッセージと受信されたメッセージとの間でより緩い相互関係を有するメッセージ交換を利用して、オブザーブコンピュータシステムが主張する、被オブザーブコンピュータシステムにおける時刻と、被オブザーブコンピュータシステムにおける実際の時刻との差異を判定する。例えば、１つのコンピュータでは、複数の要求を送信し、より少ない数のまたはただ１つの対応する応答（例えば、他のメッセージ交換１８５により表される）が戻されることが可能である。さらに、１つのコンピュータからの応答はまた、その１つのコンピュータから別のコンピュータに戻される要求を表すことも可能である。従って、メッセージは、要求と応答の両方を表すことが可能である。加えて、受信された要求への応答がいつ戻されるべきかを示す必要はないことが多い。従って、要求／応答の組の間に強い相互関係があるときでも、応答をいつ戻すかについての制限は無くとも良い。例えば、要求／応答１８４内で、要求１８１の受信に応答して、いつ応答１８２を戻すかを示す時間制限は無くとも良い。
【００５８】
図２は、オブザーブコンピュータシステムが主張する、被オブザーブコンピュータシステムにおける時刻と、被オブザーブコンピュータシステムにおける実際の時刻との差異を判定するための、一例の方法２００のフローチャートである。方法２００は、非同期分散システム１００における構成要素およびデータについて、記載される。
【００５９】
方法２００には、被オブザーブコンピュータシステムとの１つまたは複数のメッセージ交換に関与する動作（動作２０１）が含まれる。例えば、コンピュータシステム１０１は、コンピュータシステム１５１とメッセージ交換１８４に関与することが可能である。あるいは、コンピュータシステム１０１は、１つまたは複数のさらなるメッセージ交換１８５に関与することが可能である。メッセージ交換は、メッセージ交換１８４よりも緩い、要求と応答の間の結びつきを有することが可能である。他の実施形態において、コンピュータシステム１０１は、更なるメッセージ交換１８５に関与するが、メッセージ交換１８４には関与しない。従って、コンピュータシステム１０１は、任意の要求／応答メッセージ交換の相互関係があるメッセージを含まない、緩い結びつきのメッセージ交換に関与することができる。
【００６０】
被オブザーブコンピュータシステムとの１つまたは複数のメッセージ交換への関与には、メッセージが送信されるときにオブザーブコンピュータシステムにおけるクロックの時刻を記録する動作（動作２０２）を含むことが可能である。例えば、クロック管理モジュール１０２は、時間データ１９４に時間エントリ１７１を記録することが可能である。時間エントリ１７１は、コンピュータシステム１０１が要求１８１を送信したときに、クロック１０３の時刻を、例えば、ｈｈ：ｍｍ：ｓｓ．ｍｓの形式で記録する。従って、時間エントリ１８１は、クロック１０３が８時という時刻を示したときに、要求１８１が送信されたということを示す。あるいはまたは組み合わせて、時間エントリを、他の要求（例えば、さらなるメッセージ交換１８５に含まれるべき要求）に対して追加することも可能である。被オブザーブコンピュータシステムとの１つまたは複数のメッセージ交換への関与には、被オブザーブコンピュータシステムへメッセージを送信する動作を含むことが可能であり、そのメッセージには、記録された送信時刻が含まれる（動作２０３）。例えば、コンピュータシステム１０１は、要求１８１をコンピュータシステム１５１に送信することが可能である。要求１８１には、時間エントリ１７１からの情報を含むことが可能である。あるいはまたは組み合わせて、１つまたは複数の他の要求（例えば、さらなるメッセージ交換１８５の一部として）を、コンピュータシステム１０１からコンピュータシステム１５１に送信することも可能である。
【００６１】
被オブザーブコンピュータシステムとの１つまたは複数のメッセージ交換への関与には、被オブザーブコンピュータシステムからのメッセージに応答して、相互に関連するメッセージを続いて受信する動作を含むことが可能であり、相互に関連するメッセージには、被オブザーブコンピュータシステムからの時刻が含まれる（動作２０４）。例えば、コンピュータシステム１０１は、応答１８２をコンピュータシステム１５１から受信することが可能である。応答１８２には、時刻１８３が含まれる。時刻１８３は、クロック１５３においてオブザーブされた時刻（例えば、応答１８２が送信されたとき、要求１８１が処理されたとき、等）を示す。あるいはまたは組み合わせて、１つまたは複数の他の応答を、コンピュータシステム１５１から受け取ることも可能である（例えば、さらなるメッセージ交換１８５に含まれる応答）。従って、１つまたは複数の応答には、クロック１５３においてオブザーブされた時刻を示す時刻を含むことが可能である。
【００６２】
被オブザーブコンピュータシステムとの１つまたは複数のメッセージ交換への関与には、相互に関連するメッセージが受信されるときに、オブザーブコンピュータシステムにおけるクロックの受信時刻を記録する動作（動作２０５）を含むことが可能である。例えば、クロック管理モジュール１０２は、時間データ１９４に時間エントリ１７２を記録することが可能である。時間エントリ１７２は、コンピュータシステム１０１が応答１８２を受信したときに、クロック１０３における時刻を記録する。従って、時間エントリ１７２は、クロック１０３が８時６４ミリ秒という時刻を示したときに、応答１８２が受信されたということを示す。あるいはまたは組み合わせて、クロック管理モジュール１０２はまた、さらなるメッセージ交換１８５に含まれる他の応答がいつ受信されたかを示す時間エントリを（時間データ１９４内に）記録することも可能である。
【００６３】
被オブザーブコンピュータシステムとの１つまたは複数のメッセージ交換への関与には、被オブザーブコンピュータシステムからの時刻を記録する動作（動作２０６）を含むことが可能である。例えば、クロック管理モジュール１０２は、時間データ１９４に時間エントリ１７３を記録することが可能である。時間エントリ１７３は、コンピュータシステム１５１がクロック１５３においてオブザーブした時刻（例えば、要求１８１の受信、要求１８１の処理中、等）を記録する。時間エントリ１７３は、クロック１５３の時刻が、要求／応答交換シーケンス１８４内の８時４３ミリ秒にオブザーブされたということを示す。あるいはまたは組み合わせて、クロック管理モジュール１０２はまた、さらなるメッセージ交換１８５に含まれる他の応答に含まれる時刻に対する時間エントリを（時間データ１９４に）記録することも可能である。
【００６４】
方法２００には、オブザーブコンピュータシステムの時刻に対する被オブザーブコンピュータシステムにおける時刻の下限を、メッセージの送信に記録された時刻と、相互に関連するメッセージに含まれる被オブザーブコンピュータシステムからの時刻との間の差に基づき、計算する動作（動作２０７）が含まれる。例えば、クロック管理モジュール１０２は、クロック１５３に対するクロック１０３の時刻の下限１６１を計算することが可能である。クロック管理モジュール１０２は、上述した式を実装して、クロック１５３への下限１６１を計算することが可能である。従って、応答１８２が受信され、クロック１０３が８：００：００．０６４とオブザーブされる時刻において、下限１６１は以下のように計算される。
クロック１５３≧
８：００：００．０６４
−（８：００：００．０６４−８：００：００．０４３＋１５ｍｓ）
−２（０．０００７）（８：００：００．０６４−（８：００：００．０６４＋８：００：００．０００）／２＋１５ｍｓ）
クロック１５３≧８：００：００．０６４−（２１ｍｓ＋１５ｍｓ）−０．００１４（３２ｍｓ＋１５ｍｓ）
クロック１５３≧８：００：００．０６４−３６ｍｓ−０．０７ｍｓ
クロック１５３≧８：００：００．０２７
【００６５】
あるいはまたは組み合わせて、クロック管理モジュール１０２はまた、さらにメッセージ交換１８５における他の要求および他の応答に関する時間エントリから、下限１６１を計算することも可能である。
【００６６】
方法２００には、オブザーブコンピュータシステムの時刻に対する被オブザーブコンピュータシステムにおける時刻の上限を、相互に関連するメッセージの受信に記録された時刻と、相互に関連するメッセージに含まれる被オブザーブコンピュータシステムからの時刻との間の差に基づき、計算する動作（動作２０８）が含まれる。例えば、クロック管理モジュール１０２は、クロック１５３に対するクロック１０３の時刻の上限１６２を計算することが可能である。クロック管理モジュール１０２は、上述の式を実装して、クロック１５３に対する上限１６１を計算することが可能である。従って、応答１８２が受信され、クロック１０３が８：００：００．０６４と示しオブザーブされる時刻において、上限１６２は以下のように計算される。
クロックｌ５３≦
８：００：００．０６４
＋（８：００：００．０４３−８：００：００．０００＋１５ｍｓ）
＋２（０．０００７）（８：００：００．０６４−（８：００：００．０６４＋８：００：００．０００）／２＋１５ｍｓ）
クロックｌ５３≦８：００：００．０６４＋（４３ｍｓ＋１５ｍｓ）＋０．００１４（３２ｍｓ＋１５ｍｓ）
クロックｌ５３≦８：００：００．０６４＋５８ｍｓ＋０．０７ｍｓ
クロックｌ５３≦８：００：００．１２３
【００６７】
あるいはまたは組み合わせて、クロック管理モジュール１０２はまた、さらにメッセージ交換１８５における他の要求および他の応答に関する時間エントリから、上限１６２を計算することも可能である。
【００６８】
方法２００には、上限と下限との間の差を計算する動作（動作２０９）が含まれる。例えば、クロック管理モジュール１０２は、上限１６２と下限１６１との間の差を計算することが可能である。応答１８２が受信され、量子化１９２を計上する時刻において、上限１６２と下限１６１との間の差は、ほぼ１２３ｍｓ−２７ｍｓ、すなわち９６ｍｓに等しい。
【００６９】
方法２００には、計算された差を平均化係数で割ることにより、オブザーブコンピュータシステムが主張する、被オブザーブコンピュータシステムにおける時刻と、被オブザーブコンピュータシステムにおける実際の時刻との最大差異を計算する動作（動作２１０）が含まれる。例えば、クロック管理モジュール１０２は、９６ｍｓを２で割り、４８ｍｓを算出することが可能である。クロック１０３と１５３との間のオフセットの中間点は、（（８：００：００．０２７＋８：００：００．１２３）／２）−８：００：００．０６４であり、クロック１５３がほぼクロック１０３より１２ｍｓ進んでいることを示す。
【００７０】
上述したように、あるいはまたはメッセージ交換１８４と組み合わせて、コンピュータシステム１０１は、コンピュータシステム１５１とのさらなるメッセージ交換１８５に関与することが可能である。従って、推測される時間範囲の下限および／または上限を、これらの更なるメッセージ交換に基づき、改善することが可能である。従って、下限１６１は、任意の続く送信時刻−オブザーブされる時刻が−４３ｍｓより大きくより小さい場合、改善することが可能である。例えば、送信時刻が８：０１：２７．５３で、オブザーブされる時刻が８：０１：２７．６９の場合、下限１６１を、（１６ｍｓ＋２０ｍｓ＋クロックドリフトコンポーネント）に改善することが可能である。同様に、上限１６２は、任意の続く受信時刻−オブザーブされる時刻が、２１ｍｓより小さくより小さい場合、改善することが可能である。例えば、受信時刻が８：０３：５２．０７で、オブザーブされる時刻が８：０３：５１．９２の場合、上限１６２を（１５ｍｓ＋２０ｍｓ＋クロックドリフトコンポーネント）に改善することが可能である。
【００７１】
下限と上限は両方とも、オブザーブコンピュータシステムクロックがオブザーブされるクロックより遅れる、ある時間量を示すことが可能である。例えば、下限を−４７ｍｓ、上限を−１２ｍｓとすることができる。この下限と上限の組み合わせは、コンピュータシステムクロックがオブザーブされるクロックより少なくとも１２ｍｓ遅れ、かつ、オブザーブされるクロックより４７ｍｓ以上は遅れない、ということを示す。
【００７２】
同様に、下限と上限は両方とも、オブザーブコンピュータシステムクロックがオブザーブされるクロックより進む、ある時間量を示すことが可能である。例えば、下限を１７ｍｓ、上限を８２ｍｓとすることができる。この下限と上限の組み合わせは、コンピュータシステムクロックがオブザーブされるクロックより少なくとも１７ｍｓ進み、かつ、オブザーブされるクロックより８２ｍｓ以上は遅れない、ということを示す。
【００７３】
いくつかの実施形態において、クロック管理モジュールは、少なくとも、例えば、１分ごと、２分ごと等の、予め定められた間隔で、要求／応答メッセージ交換、または他のメッセージ交換を起動させるよう構成される。メッセージ交換は、非同期分散システム内のコンピュータシステム間の他の（例えば、アプリケーション）メッセージ交換で、ピギーバックすることができる。要求／応答またはクロック同期の他のメッセージ交換はまた、例えば、ドリフト制限を超えるなどの他のポリシーに従って、起動させることも可能である。
【００７４】
被オブザーブコンピュータシステムにおける時刻を推測することに続いて、オブザーブコンピュータシステムは、推測された時刻を使用して、被オブザーブコンピュータシステムにおいてイベントが起こった、またはイベントが起こり得る（または起こるであろう）、時間限度を計算することが可能である。
【００７５】
従って、本発明の実施形態は、２つのコンピュータシステム間の時間についての、共通の理解またはその経過についての安全な見解を容易にする。例えば、オブザーブコンピュータシステムは、最大差異または時間範囲から、被オブザーブコンピュータシステムにおける時間の経過についての安全な見解を公式化することが可能である。安全な見解により、オブザーブコンピュータシステムは、（計算された限度内において）過去のイベントが被オブザーブコンピュータシステムにおいていつ起こったかを推定することが可能である。例えば、コンピュータシステム１０１は、イベント１９６がコンピュータシステム１５１においていつ起こったかを推定することが可能である。安全な見解からはまた、２つのコンピュータシステムが、イベントが将来起こるときについて、合意した結論を導くことが可能である。その結果、１つのコンピュータシステムは、（計算された限度内において）イベントが他のコンピュータシステムでいつ起こるかを推定することが可能である。
【００７６】
図３は、被オブザーブコンピュータシステムにおいてイベントが起こった時刻を示すための一例の方法のフローチャートである。
【００７７】
方法３００には、被オブザーブコンピュータシステムとの１つまたは複数のメッセージ交換に関与する動作（動作３０１）が含まれる。各メッセージ交換には、要求メッセージが送信されるときに、オブザーブコンピュータシステムにおけるクロックの時刻を記録する動作（動作３０２）が含まれる。各メッセージ交換には、１つまたは複数の要求メッセージを被オブザーブコンピュータシステムに送信する動作が含まれ、各要求メッセージには、対応する記録された送信時刻が含まれる（動作３０３）。各メッセージ交換には、被オブザーブコンピュータシステムからの要求メッセージに応答して、１つまたは複数の応答メッセージを続いて受信する動作が含まれ、応答メッセージには被オブザーブコンピュータシステムからの時刻が含まれる（動作３０４）。各メッセージ交換には、応答メッセージが受信されるときに、オブザーブコンピュータシステムにおけるクロックの時刻を記録する動作が含まれる（動作３０５）。
【００７８】
例えば、コンピュータシステム１０１は、メッセージ交換１８４およびさらなるメッセージ交換１８５に関与することが可能である。各メッセージ交換には、１つまたは複数の要求を送信すること（例えば、１８１）、各要求が送信されたときに、時刻（例えば、１７１）を記録すること、１つまたは複数の応答を受信すること（例えば、１８２）、各応答が受信されるときに、時刻（例えば、１７２）を記録すること、および、オブザーブコンピュータシステムからの応答に含まれる時刻（例えば、１７３）を記録すること（例えば、１８３）、を含むことが可能である。
【００７９】
方法３００には、オブザーブコンピュータシステムの時刻に対する被オブザーブコンピュータシステムの時間限度を、１つまたは複数のメッセージ交換に基づき計算する動作が含まれ、時間限度は、オブザーブコンピュータシステムにおける時刻に適用されて、１つまたは複数のメッセージ交換に続いて、被オブザーブコンピュータシステムにおける特定の時間範囲を主張するよう構成される（動作３０６）。時間限度には、計算された時間限度の最下位を表す下方時間限度、および、計算された時間限度の最上位を表す上方時間限度、が含まれる。例えば、コンピュータシステム１０１は、下限１６１および上限１６２を計算し改善することが可能である。
【００８０】
方法３００には、オブザーブコンピュータシステムが表示を受信する動作が含まれ、表示は、ａ）被オブザーブコンピュータシステムにおいて過去のイベントが起きたことを示す表示、ｂ）イベントが、１つまたは複数のメッセージ交換に続いて被オブザーブコンピュータシステムにおいていつ起きるかを示す表示、の内から選択される（動作３０７）。例えば、コンピュータシステム１０１は、イベント１９６を検出することが可能である。イベント１９６の受信時、クロック管理モジュールは、時間データ１９４に時間エントリ１７４を記録することが可能である。時間エントリ１９４は、イベント１９６が８：００：２８．０１６に検出されたことを示す。あるいは、コンピュータシステム１０１は、イベントがコンピュータシステム１５１においていつ起きるかを示す表示を受信し、そのイベントがいつ起こるかを時間エントリに記録することが可能である。
【００８１】
方法３００には、オブザーブコンピュータシステムが被オブザーブコンピュータシステムの時間範囲を計算する動作が含まれ、時間範囲は、ａ）過去のイベントがいつ起こったか、またはｂ）イベントが被オブザーブコンピュータシステムにおいていつ起こるか、を示し、時間範囲は、表示が受信されたときに、オブザーブコンピュータシステムにおける時刻と、計算された時間限度の下限および上限に基づき、計算される（動作３０８）。例えば、時間エントリ１７４から、クロック管理モジュール１０２は、イベント１９６がコンピュータシステム１５１においていつ起こったかを示す時間範囲を計算することが可能である。そのようなものとして新しい下限が以下のように計算される。
クロック１５３≧
８：００：００．０６４
−（８：００：００．０６４−８：００：００．０４３＋１５ｍｓ）
−２（０．０００７）（８：００：２８．０１６−（８：００：００．０６４＋８：００：００．０００）／２＋１５ｍｓ）
クロック１５３≧８：００：００．０６４−（２１ｍｓ＋１５ｍｓ）−０．００１４（２８，０１６ｍｓ−３２ｍｓ＋１５ｍｓ）
クロック１５３≧８：００：００．０６４−３６ｍｓ−３９．２ｍｓ
クロック１５３≧７：５９：５９．０８９
また、新しい上限は以下のように計算される。
クロックｌ５３≦
８：００：００．０６４
＋（８：００：００．０４３−８：００：００．０００＋１５ｍｓ）
＋２（０．０００７）（８：００：２８．０１６−（８：００：００．０６４＋８：００：００．０００）／２＋１５ｍｓ）
クロックｌ５３≦８：００：００．０６４＋（４３ｍｓ＋１５ｍｓ）＋０．００１４（３２ｍｓ＋１５ｍｓ）
クロックｌ５３≦８：００：００．０６４＋５８ｍｓ＋３９．２ｍｓ
クロックｌ５３≦８：００：００．１６１
【００８２】
従って、イベント１９６が検出され、量子化１９２を計上する時刻において、上限１６２と下限１６１との間の差は、ほぼ１６１ｍｓ−（−１１ｍｓ）、すなわち１７２ｍｓに等しい。クロック管理モジュール１０２は、１７２ｍｓを２で割り、最大差異として８６ｍｓを算出することが可能である。この新しい差異を使用して、時刻１８６、すなわち、イベント１９６がコンピュータシステム１５１において起こった、推測される時刻を（最大差異内で）、計算することが可能である。クロック１０３と１５３との間のオフセットの中間点は、
（（８：００：２７．９７０＋８：００：２８．１０２）／２）−８：００：２８．０１６
８：００：２８．０６６−８：００：２８．０１６＝５０ｍｓ、これは、クロック１５３がクロック１０３より５０ｍｓ進んでいることを示す。
【００８３】
あるいは、下限および上限を、イベントがいつ起こるかについて計算することが可能である。
【００８４】
方法３００には、表示および計算された時間範囲を含むイベントメッセージを１つまたは複数の他のコンピュータシステムに送信する動作（動作３０９）が含まれる。例えば、コンピュータシステム１００は、イベント１９６（または、イベント１９６がいつ起こるかを示す表示）および時刻１８６を含むイベントメッセージ１９７を、他のコンピュータシステム１９１に送信することが可能である。イベントメッセージ１９７を受信するコンピュータシステムは、イベントメッセージ１９７に基づき、コンピュータシステム１５１のステータスに関して判定を行うことが可能である。例えば、コンピュータシステムは、コンピュータシステム１５１が８：００：１５．１３にオンラインであったことを示す表示をコンピュータシステム１５１から受信することができる。コンピュータシステムは、コンピュータシステム１５１がオフラインであることを示すイベントメッセージ１９７を続いて受信することができる。８：００：２８．０１６±８６ｍｓが８：００：１５．１３より後であるため、コンピュータシステムは、その状態をコンピュータシステム１５１に対して調整することが可能である。
【００８５】
最大差異により、先に受信された時刻との重複が起こり、結果として、どのイベントが先に起こったかについて潜在的な矛盾が生じることがある。例えば、時刻１８４が８：００：１５．４７±９０．２２ｍｓならば、差異により、イベント１９６が実際に８：００：１５．１３の前に起こる可能性が生じる。そのような場合、イベントメッセージを受信するコンピュータシステムは、予め定められた規則（例えば、サービスレベルの合意の取り決め）を参照して、矛盾を解決することが可能である。
【００８６】
時間の経過と共に、コンピュータシステムは、要求／応答（または他のメッセージ）交換が完了すべき平均時間を計算することが可能である。この平均および予め定められた間隔を使用して、コンピュータシステムは、時間差の最悪の場合の誤差の限度を予測することが可能である。例えば、図１を参照すると、要求／応答メッセージ交換を完了する平均時間が４０ｍｓで、予め定められた間隔が３０ｓの場合、最悪の場合の誤差の限度は、±［（４０ｍｓ／２）＋２０ｍｓ＋２＊（（．５ｍｉｎ／２４）*６０ｍｉｎ）*（６０ｓｅｃ．）］＝８１．５ｍｓと計算することが可能である。
【００８７】
クロッククォンタム制限、ドリフトレート制限、および最大ラウンドトリップ制限の（少なくとも予測された）値は、例えば、平均から、またはさらにハードウェア仕様からなど、システムにとっては既知である。最大誤差の方程式を使用してオブザーブコンピュータシステムが主張する被オブザーブコンピュータシステムおける時刻、およびオブザーブされるコンピュータにおける実際の時刻での、（非同期分散システム内のコンピュータシステム間の）最大差異を計算することが可能である。
【００８８】
図５は、複数のコンピュータシステムを含む非同期分散システムの異なるコンピュータシステムにおける、クロック間の最大差異の計算を容易にする、一例のコンピュータアーキテクチャ５００を例示する。図４は、複数のコンピュータシステムを含む非同期分散システムの異なるコンピュータシステムにおける、クロック間の最大差異を計算するための、一例の方法４００のフローチャートである。方法４００は、コンピュータアーキテクチャ５００における構成要素およびデータに関して記載される。
【００８９】
方法４００には、クロッククォンタム制限にアクセスする動作が含まれ、クロッククォンタム制限は、非同期分散システムのコンピュータシステムの内のクロック量子化間の最大差を示す（動作４０１）。例えば、コンピュータシステム５０１は、例えば、Ｑ＝１５ｍｓというハードウェア仕様などの、クロッククォンタム制限５１１にアクセスすることが可能である。
【００９０】
方法４００には、ドリフトレート制限にアクセスする動作が含まれ、ドリフトレート制限は、非同期分散システムの各コンピュータシステムの時間の特定の期間内での最大クロックドリフトを示す（動作４０２）。オブザーバは、特定のオブザーバの最悪の場合のドリフトを学習し、それに対して構成されることが可能である。あるいは、オブザーバは、任意のオブザーバに対して最悪の場合のドリフトを推定するよう構成することが可能である。例えば、コンピュータシステム５０１は、例えば、１日当たりのドリフトの時間がＤ＜１分、など、クロックドリフトレート制限５１２にアクセスする。従って、クロックドリフトレート制限５１２は、特定のオブザーバまたは任意のオブザーバに適用できる。
【００９１】
方法４００には、最大ラウンドトリップ制限にアクセスする動作が含まれ、最大ラウンドトリップ制限は、非同期分散システムの任意の２つのコンピュータシステム間で起きる要求／応答メッセージ交換の最大時間量を示す（動作４０３）。例えば、コンピュータシステム５０１は、最大ラウンドトリップ制限５１３にアクセスすることが可能である。ラウンドトリップ制限５１３は、例えば、コンピュータシステム１５１に１分に１回クエリを行い、かつ、ラウンドトリップ時間が５０ｍｓより小さい、コンピュータシステム１０１から、導くことが可能である。
【００９２】
方法４００には、非同期システムの異なるコンピュータシステムにおけるクロック間の最大差異を、クロッククォンタム制限、ドリフトレート制限、および最大ラウンドトリップ制限に基づき、計算する動作が含まれる。例えば、コンピュータシステム５０１は、クロッククォンタム制限５１１、クロックドリフトレート制限５１２、およびラウンドトリップ制限５１３に基づき、最大クロック差異５１４を計算することが可能である。
【００９３】
最大差異の方程式は、計算される限度内の全ての時間における被オブザーブコンピュータシステムにおける時刻が分かっているオブザーブコンピュータシステムを容易にする。いくつかの実施形態において、以下の最大差異の方程式を使用する。
（（受信時刻−送信時刻）／２）＋Ｑ＋（２Ｄ*（Ｔ−ＡＶＧ（送信時刻、受信時刻）＋Ｑ））
または予め定められたまたは特定の値の場合は、
（Ｒ／２）＋Ｑ＋（２*Ｄ*予め定められた要求／応答メッセージ交換の間隔）
【００９４】
従って、方法４００に関して記載される制限に従って、最大差異は、（５０ｍｓ／２）＋１５ｍｓ＋（２*（１ｍｉｎ／２４*６０ｍｉｎ）*（６０ｓｅｃ））、すなわち２５ｍｓ＋１５ｍｓ＋８３ｍｓ＝１２３ｍｓ、内の全ての時間における、被オブザーブコンピュータシステムにおける時刻が分かっている、オブザーブコンピュータシステムを容易にする。さらに、メッセージ交換シーケンスのクエリの直後、最大誤差でのクロックドリフトレート制限Ｄコンポーネントの影響がゼロに近づく。すなわち、（２＊（〜０／２４*６０ｍｉｎ）*（６０ｓｅｃ））＝０である。従って、メッセージ交換シーケンスのクエリの直後、オブザーブコンピュータシステムには、被オブザーブコンピュータシステムにおける時刻がほぼ２５ｍｓ＋１５ｍｓ＋０ｍｓ＝４０ｍｓであることが分かる。
【００９５】
従って、本発明の実施形態は、例えば、共通の非同期（分散型）システム内の部材のような、一組のピアノード（オブザーバ）に亘る、信頼できる実用的な共通の時間（時刻）の参照の作成を容易にする。疑似同期システムのクラスは、共通のマスタへ参照せずに、対のノード（オブザーバ）間の最悪の場合の相対論的時間の非対称をトラッキングし蓄積して、作成することが可能である。原因となる直接的および間接的関係は、ノードの対の間の順序づけられた相互作用に基づき、形成することが可能である。そのように、協働するノードは、別のノードへのオブザーブを考慮すると、１つのノードがオブザーブする時刻の下限を原則的に保証することが可能である。従って、本発明の実施形態を適用して、共通の外部の時刻クロックのエンティティを使用せずに、非同期システムに亘る現在の時刻における最悪の場合（例えば、最大差異）についての、整合性のある（安全な）見解を提供することができる。
【００９６】
本発明は、その精神または主要な特徴から逸脱することなく他の特定の形式において具現化することができる。記載される実施形態は、あらゆる点において単に例示としてみなされ、制限するものとしてみなされない。従って、本発明の範囲は、前述の記載によるのではなく、添付の請求項により示される。請求項と等価の意味および範囲に入る全ての変更は、請求項の範囲に包含される。
【図１】
2011529208.tif 000004
【図２】
2011529208.tif 000005
【図３】
2011529208.tif 000006
【図４】
2011529208.tif 000007
【図５】
2011529208.tif 000008
【国際調査報告】
2011529208.tif 000009
2011529208.tif 000010