JP5161363B2 - 非同期分散システムにおけるクロックの同期 - Google Patents

非同期分散システムにおけるクロックの同期 Download PDF

Info

Publication number
JP5161363B2
JP5161363B2 JP2011502110A JP2011502110A JP5161363B2 JP 5161363 B2 JP5161363 B2 JP 5161363B2 JP 2011502110 A JP2011502110 A JP 2011502110A JP 2011502110 A JP2011502110 A JP 2011502110A JP 5161363 B2 JP5161363 B2 JP 5161363B2
Authority
JP
Japan
Prior art keywords
computer system
time
clock
observed
limit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2011502110A
Other languages
English (en)
Other versions
JP2011529208A (ja
JP2011529208A5 (ja
Inventor
ジェイ.マルチェック マイケル
エル.ハシャ リチャード
モーシン マンスール
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2011529208A publication Critical patent/JP2011529208A/ja
Publication of JP2011529208A5 publication Critical patent/JP2011529208A5/ja
Application granted granted Critical
Publication of JP5161363B2 publication Critical patent/JP5161363B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • G06F21/725Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits operating on a secure reference time value
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0658Clock or time synchronisation among packet nodes
    • H04J3/0661Clock or time synchronisation among packet nodes using timestamps
    • H04J3/0664Clock or time synchronisation among packet nodes using timestamps unidirectional timestamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0658Clock or time synchronisation among packet nodes
    • H04J3/0661Clock or time synchronisation among packet nodes using timestamps
    • H04J3/0667Bidirectional timestamps, e.g. NTP or PTP for compensation of clock drift and for compensation of propagation delays

Description

コンピュータシステムおよび関連する技術は、社会の多くの状況に影響を与える。実際、情報を処理するコンピュータシステムの能力は、我々が生活し働く様式を変化させてきた。今日、一般にコンピュータシステムは、コンピュータシステムが出現する前には手動で行われた多数のタスク(例えば、文書処理、スケジューリング、会計等)を、実行する。ごく最近では、コンピュータシステムは、お互いに、および他の電子機器に接続されて、有線および無線のコンピュータネットワークを形成し、それを介してコンピュータシステムおよび他の電子機器が電子データを転送することができる。従って、多くのコンピューティングタスクのパフォーマンスが、多数の異なるコンピュータシステム、および/または、多数の異なるコンピュータ環境に亘って分散される。
ネットワークは、実際、豊富になったため、単純なネットワーク対応のコンピュータシステムが、「インターネット」と称されることが多いネットワークの集塊を介して世界中に広がる何百万の他のコンピュータシステムの内のいずれか1つと通信することができる。そのようなコンピュータシステムには、デスクトップ型、ラップトップ型、もしくはタブレット型のパーソナルコンピュータ、PDA(Personal Digital Assistant:携帯情報端末)、電話、または、デジタルネットワークを介して通信することが可能な任意の他のコンピュータもしくはデバイスを含むことができる。
ネットワークを介して通信するために、1つのコンピュータシステム(本明細書においては「送信コンピュータシステム」と呼ぶ)が、電子メッセージを構成、または電子メッセージにアクセスし、その電子メッセージを、ネットワークを介して別のコンピュータシステム(本明細書においては「受信コンピュータシステム」と呼ぶ)に伝送する。電子メッセージが電子メールまたはインスタントメッセージであるときに、電子メッセージは、人であるユーザにより読まれ、または代わりに、受信コンピュータシステム上で稼働するアプリケーションにより読まれる。電子メッセージは、人であるユーザの可能な支援をして、送信コンピュータシステム上で稼働するアプリケーションにより構成させることができる。
分散コンピュータ環境内においては、多数の異なるノードを相互運用し、所望のコンピュータ操作を実行することが可能である。コンピュータ操作の適切なパフォーマンスは、お互いに、時刻に関するある共通の理解を有する種々の異なるノードに依存させることが可能であることが多い。多くのシステムでは、ノードが参照して全てのノードに共通して分散される絶対時刻を取得することが可能な、「マスタ」クロックを利用する。しかし、クロックを絶対時刻に同期させることには、同期プロトコルおよび高度な接続性が必要とされる。マスタクロックへの参照を介するクロック同期では、電位のチョークポイントおよび障害の中央点がもたらされることもある。例えばインターネット等の、いくつかのネットワーク上では、コンピュータシステムがネットワークとの接続および切断を頻繁に行うため、高度な接続性は、実質上不可能である。
いくつかのピアツーピアのシステムでは、共通の時刻クロックソースを用いて周期的同期を使用し、疑似同期動作を達成する。従って、信頼できる安全なシステムを有するために、存在し、かつ、特定の時点(例えば、新しい構成要素の追加時)において利用可能でなければならない共通の時刻的マスタを、これらのシステムは有することもできる。
本発明は、非同期分散システムにおいてクロックを同期させるための方法、システム、およびコンピュータプログラム製品にまで及ぶ。いくつかの実施形態において、オブザーブコンピュータシステムが主張する、異なる被オブザーブコンピュータシステムにおける時刻と、被オブザーブコンピュータシステムにおける実際の(ローカルな)時刻との差異が判定される。オブザーブコンピュータシステムは、被オブザーブコンピュータシステムとの、1つまたは複数のメッセージ交換に関与する。
メッセージ交換には、メッセージが送信されるときに、オブザーブコンピュータシステムにおけるクロックの送信時刻を記録する、オブザーブコンピュータシステムが含まれる。メッセージ交換には、1つまたは複数のメッセージを被オブザーブコンピュータシステムに送信する、オブザーブコンピュータシステムが含まれる。メッセージ交換には、それに続いて、被オブザーブコンピュータシステムからのメッセージに応答して相互に関連するメッセージを受け取る、オブザーブコンピュータシステムが含まれる。相互に関連するメッセージには、被オブザーブコンピュータシステムからの時刻、すなわちローカルな時刻、が含まれる。メッセージ交換には、相互に関連するメッセージが受信されるときに、オブザーブコンピュータシステムにおける(ローカルな)クロックの受信時刻を記録する、オブザーブコンピュータシステムが含まれる。メッセージ交換には、相互に関連するメッセージが受信されるときに、被オブザーブコンピュータシステムのローカルな時刻を記録する、オブザーブコンピュータシステムが含まれる。
オブザーブコンピュータシステムは、メッセージを送信するために記録されるそのローカルな時刻と、相互に関連するメッセージ、クロッククォンタム制限、およびクロックドリフト制限に含まれる、被オブザーブコンピュータシステムからの時刻との差に基づき、オブザーブコンピュータシステムのローカルな時刻に関連する、被オブザーブコンピュータシステムにおける時刻の下限を計算する。オブザーブコンピュータシステムは、相互に関連するメッセージを受信するために記録されるローカルな時刻と、相互に関連するメッセージ、クロッククォンタム制限、およびクロックドリフト制限に含まれる、被オブザーブコンピュータシステムからの時刻との差に基づき、オブザーブコンピュータシステムの時刻に関連する、被オブザーブコンピュータシステムにおける時刻の上限を計算する。
オブザーブコンピュータシステムは、上限と下限との差を計算する。オブザーブコンピュータシステムは、計算された差を平均化係数で割る、例えば、計算された差を二等分することにより、オブザーブコンピュータシステムが主張する、被オブザーブコンピュータシステムにおける時刻と、被オブザーブコンピュータシステムにおける実際の時刻との最大差異を計算する。次に続くメッセージ交換を利用して、下限および上限をさらに改善することが可能である。オブザーブコンピュータシステムは、被オブザーブコンピュータシステムにおいていつイベントが起こったかを示す時間範囲を、下限および上限に基づき計算することが可能である。
他の実施形態において、複数のコンピュータシステムを含む非同期分散システムの異なるコンピュータシステムにおける、クロック間の最大差異が計算される。コンピュータシステムは、クロッククォンタム制限にアクセスする。クロッククォンタム制限は、非同期分散システムのコンピュータシステム間のクロック量子化間の最大差を示す。コンピュータシステムは、ドリフトレート制限にアクセスする。ドリフトレート制限は、非同期分散システムの各コンピュータシステムに対する特定の期間内での最大クロックドリフトを示す。
コンピュータシステムは、最大ラウンドトリップ制限にアクセスする。最大ラウンドトリップ制限は、非同期分散システムの任意の2つのコンピュータシステム間で起こる、要求/応答メッセージ交換の最大時間量を示す。コンピュータシステムは、クロッククォンタム制限、ドリフトレート制限、および最大ラウンドトリップ制限に基づき、非同期システムの異なるコンピュータシステムにおけるクロック間の最大差異を計算する。
この要約は、以下の「発明を実施するための形態」でさらに述べる概念を選択して簡略化した形式で紹介するために提供するものである。この要約は、請求の主題の重要な特徴または主要な特徴を確認することを意図しておらず、請求の主題の範囲を決定する際の助けとして使用されることも意図していない。
本発明の追加の特徴および利点は、以下に続く記載において説明され、一部は記載により明らかにされ、または、本発明の実践により習得されるであろう。本発明の特徴および利点は、特に添付の請求項において指摘される機器および組み合わせを用いて、実現および取得することができる。本発明のこれらおよびその他の特徴は、以下の記載および添付の請求項からさらに完全に明らかにされ、または、以下に説明されるような本発明の実践により習得されるであろう。
本発明の、上述したものおよびその他の利点および特徴を得ることが可能な方法を記載するために、上記で簡単に記載された本発明のより詳細な記述が、添付の図面に例示されるその特定の実施形態を参照して示される。これらの図面は、本発明の典型的な実施形態のみを描き、従ってその範囲を制限するものとしてみなされるべきではないということが理解された上で、本発明は、添付の図面を使用して追加の特異性および詳細と共に記載され説明される。
非同期分散システムにおけるクロックの同期を容易にする一例の非同期分散システムを例示する図である。 オブザーブコンピュータシステムが主張する、被オブザーブコンピュータシステムにおける時刻と、被オブザーブコンピュータシステムにおける実際の時刻との差異を判定するための、一例の方法のフローチャートである。 被オブザーブコンピュータシステムにおいてイベントが起こった時刻を示すための、一例の方法のフローチャートである。 複数のコンピュータシステムを含む非同期分散システムの異なるコンピュータシステムにおける、クロック間の最大差異を計算するための、一例の方法のフローチャート である。 複数のコンピュータシステムを含む非同期分散システムの異なるコンピュータシステムにおける、クロック間の最大差異の計算を容易にする、一例のコンピュータアーキテクチャを例示する図である。
本発明は、非同期分散システムにおいてクロックを同期させるための方法、システム、およびコンピュータプログラム製品にまで及ぶ。いくつかの実施形態において、オブザーブコンピュータシステムが主張する、異なる被オブザーブコンピュータシステムにおける時刻と、被オブザーブコンピュータシステムにおける実際の(ローカルな)時刻との差異が判定される。オブザーブコンピュータシステムは、被オブザーブコンピュータシステムとの、1つまたは複数のメッセージ交換に関与する。
メッセージ交換には、メッセージが送信されるときに、オブザーブコンピュータシステムにおけるクロックの送信時刻を記録する、オブザーブコンピュータシステムが含まれる。メッセージ交換には、1つまたは複数のメッセージを被オブザーブコンピュータシステムに送信する、オブザーブコンピュータシステムが含まれる。メッセージ交換には、それに続いて、被オブザーブコンピュータシステムからのメッセージに応答して相互に関連するメッセージを受け取る、オブザーブコンピュータシステムが含まれる。相互に関連するメッセージには、被オブザーブコンピュータシステムからの時刻、すなわちローカルな時刻、が含まれる。メッセージ交換には、相互に関連するメッセージが受信されるときに、オブザーブコンピュータシステムにおける(ローカルな)クロックの受信時刻を記録する、オブザーブコンピュータシステムが含まれる。メッセージ交換には、相互に関連するメッセージが受信されるときに、被オブザーブコンピュータシステムのローカルな時刻を記録する、オブザーブコンピュータシステムが含まれる。
オブザーブコンピュータシステムは、メッセージを送信するために記録されるそのローカルな時刻と、相互に関連するメッセージ、クロッククォンタム制限、およびクロックドリフト制限に含まれる、被オブザーブコンピュータシステムからの時刻との差に基づき、オブザーブコンピュータシステムのローカルな時刻に関連する、被オブザーブコンピュータシステムにおける時刻の下限を計算する。オブザーブコンピュータシステムは、相互に関連するメッセージを受信するために記録されるローカルな時刻と、相互に関連するメッセージ、クロッククォンタム制限、およびクロックドリフト制限に含まれる、被オブザーブコンピュータシステムからの時刻との差に基づき、オブザーブコンピュータシステムの時刻に関連する、被オブザーブコンピュータシステムにおける時刻の上限を計算する。
オブザーブコンピュータシステムは、上限と下限との差を計算する。オブザーブコンピュータシステムは、計算された差を平均化係数で割る、例えば、計算された差を二等分することにより、オブザーブコンピュータシステムが主張する、被オブザーブコンピュータシステムにおける時刻と、被オブザーブコンピュータシステムにおける実際の時刻との最大差異を計算する。次に続くメッセージ交換を利用して、下限および上限をさらに改良することが可能である。オブザーブコンピュータシステムは、被オブザーブコンピュータシステムにおいていつイベントが起こったかを示す時間範囲を、下限および上限に基づき計算することが可能である。
他の実施形態において、複数のコンピュータシステムを含む非同期分散システムの異なるコンピュータシステムにおける、クロック間の最大差異が計算される。コンピュータシステムは、クロッククォンタム制限にアクセスする。クロッククォンタム制限は、非同期分散システムのコンピュータシステム間のクロック量子化間の最大差を示す。コンピュータシステムは、ドリフトレート制限にアクセスする。ドリフトレート制限は、非同期分散システムの各コンピュータシステムに対する特定の期間内での最大クロックドリフトを示す。
コンピュータシステムは、最大ラウンドトリップ制限にアクセスする。最大ラウンドトリップ制限は、非同期分散システムの任意の2つのコンピュータシステム間で起こる、要求/応答メッセージ交換の最大時間量を示す。コンピュータシステムは、クロッククォンタム制限、ドリフトレート制限、および最大ラウンドトリップ制限に基づき、非同期システムの異なるコンピュータシステムにおけるクロック間の最大差異を計算する。
本発明の実施形態では、以下により詳細に検討するように、コンピュータハードウェアを含む専用または汎用のコンピュータが含まれ、または利用される。本発明の範囲内の実施形態にはまた、コンピュータ実行可能命令および/またはデータ構造を搬送または記憶するための、物理的および他のコンピュータ可読媒体が含まれる。そのようなコンピュータ可読媒体は、汎用または専用のコンピュータシステムがアクセス可能な任意の利用可能な媒体とすることが可能である。コンピュータ実行可能命令を記憶するコンピュータ可読媒体は、物理的記憶媒体である。コンピュータ実行可能命令を搬送するコンピュータ可読媒体は、伝送媒体である。従って、限定ではなく例として、本発明の実施形態には、少なくとも2つの明確に異なる種類のコンピュータ可読媒体、すなわち、物理的記憶媒体および伝送媒体を含むことが可能である。
物理的記憶媒体には、RAM、ROM、EEPROM、CD−ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶装置、または、コンピュータ実行可能命令またはデータ構造の形式で所望のプログラムコード手段を記憶するために使用することが可能であり、かつ、汎用または専用コンピュータによりアクセス可能である、任意の他の媒体が含まれる。
「ネットワーク」は、コンピュータシステムおよび/またはモジュールおよび/または他の電子デバイス間の電子データの移送を可能にする、1つまたは複数のデータリンクとして定義される。情報が、ネットワークまたは別の通信接続(配線接続、無線、または、配線接続と無線の組み合わせ)を介して、コンピュータに転送または提供されると、コンピュータは適切に、接続を伝送媒体と見なす。伝送媒体には、コンピュータ実行可能命令またはデータ構造の形式で所望のプログラムコード手段を搬送するために使用することが可能であり、かつ、汎用または専用コンピュータによりアクセス可能である、ネットワークおよび/またはデータリンクを含むことが可能である。上記のものの組み合わせはまた、コンピュータ可読媒体の範囲に含まれるべきである。
さらに、種々のコンピュータシステムの構成要素での受け取りのときに、コンピュータ実行可能命令またはデータ構造の形式でプログラムコード手段を、伝送媒体から物理的記憶媒体に自動的に転送させることが可能である(またはその逆も同様である)。例えば、ネットワークまたはデータリンクを介して受信されるコンピュータ実行可能命令またはデータ構造は、ネットワークインターフェースモジュール(例えば、「NIC」)内のRAMにバッファリングさせ、そして最後に、コンピュータシステムRAMに、および/またはコンピュータシステムにおける低揮発性物理的記憶媒体に、転送させることが可能である。従って、伝送媒体を付加的に(または、主として)利用するコンピュータシステムの構成要素内に、物理的記憶媒体を含むことが可能であることを理解すべきである。
コンピュータ実行可能命令には、例えば、汎用コンピュータ、専用コンピュータ、または専用処理デバイスに、特定の機能または機能のグループを実行させる、命令およびデータが含まれる。コンピュータ実行可能命令は、例えば、バイナリ、アセンブリ言語等の中間形式命令、またはさらにソースコードとすることができる。主題が、構造的特徴および/または方法論的な行動に特有の言語で記載されたが、添付の請求項に定義される主題が必ずしも記載された特徴または行動に限定されないことは理解されるべきである。むしろ、記載された特徴および行動は、請求項を実装する例示の形式として開示される。
本発明は、パーソナルコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、メッセージプロセッサ、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能の家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、携帯電話、PDA、ページャ、ルータ、スイッチャ、等を含む、多くのタイプのコンピュータシステム構成を用いるネットワークコンピュータ環境において、実践することができるということを、当業者は理解するであろう。本発明はまた、ネットワークを介して(配線接続のデータリンク、無線データリンク、または配線接続および無線のデータリンクの組み合わせにより)リンクされる、ローカルおよびリモートのコンピュータシステムの両方がタスクを実行する、分散型システム環境において実践することができる。分散型システム環境においては、プログラムモジュールを、ローカルおよびリモートのメモリ記憶装置に置くことができる。
本記載および以下の請求項において、量子化させるということは、継続するものとして定義されるのではなく、すなわち、ある期間(例えば、1秒)中、値を保持してから、新しい値に変化させることをいう。
本記載および以下の請求項において、ドリフトとは、別のクロックに比べ正確な速度では動作しない1クロックとして定義される。従って、ある時間量後、1クロックが、別のクロックから「離れてドリフト」し得る。クロックは、異なる方向に(例えば、別のクロックに対して、遅れる、または、先に進む)ドリフト可能であり、異なる速度でドリフト可能である。個々のクロックのドリフトは、例えば、周囲の温度、バッテリの電源等における変化等の、環境の変化に応じて異なる時間で変化することもある。
一般に、非同期システム内のクロックは、1つまたは複数の制限に準拠することが可能である。例えば、実コンピュータのクロックを、(そのローカルクロックの値の前進により測定されるものと)同じレートに非常に近接して時間を経過させるよう、制限することが可能である。従って、クロックの機構における(比較的小さな、潜在的にわずかな)不正確さを、最悪の場合の方法を補正することができる。そのため、本発明の実施形態では、そのような制限を考慮するアルゴリズムを利用し、サブジェクトオブザーバが、他のオブザーバと共同して、他のオブザーバのクロックの値に対して(サブジェクトオブザーバはそれらの他のクロックを直接オブザーブできないが)サブジェクトオブザーバの観点から所定のときに、比較的強固な限度を確立することを可能にする。
従って、本発明の実施形態を実装して、共通の外部の時刻クロックのエンティティを使用せずに、非同期システムに亘る現在の時刻における最悪の場合(例えば、最大差異)についての、比較的整合性のある(安全な)見解を提供することができる。非同期分散システムにおけるコンピュータシステムは、共通の時刻的マスタに依存せず、従って、コンピュータ上では「マスタレス」である。
いくつかの実施形態において、サブジェクトオブザーバ(例えば、ノード)は、単一のクロック(サブジェクトオブザーバのクロック)の値をオブザーブすることが可能であり、かつ、一組のピアオブザーバ(我々のサブジェクトオブザーバと同じ形式で)が、非同期の非瞬時メッセージを他のオブザーバに渡し、不確定遅延を内部オブザーバ通信路を介して導入する、ということをオブザーブすることが可能である。
本発明のいくつかの例の記載は、以下の表記に基づき示される。
1.t0、t1、t2、...は、共通の時系列における特定のイベント表示である。
2.(t1−t0)は、正確な2つのイベント間(t1およびt0)時間を記述する。
3.イベントt0が、別のイベントt1の前に起こる場合は、t0<t1。
4.X(t0)は、イベントt0が起こるときにオブザーブされるクロックXの値である。
3.(X(t1)−X(t0))は、クロックXにより測定される2つのイベント間(t1およびt0)時間の値(タイムスパン)である。
5.OXは、クロックXのオブザーバを定義する。
6.OX.send(OY,{contents})は、OXが、特定のコンテンツと共に、(例えば、要求)メッセージをOに送信するイベントを表す。
7.OX.receive(OY,{contents})は、特定のコンテンツと共に、(例えば、応答)メッセージをOYから、受信するイベントを表す。
従って、以下の非同期分散システムの制限内において、
A.クロックの値は、単純に増加させ
t0<t1ならばX(t0)≦X(t1)
B.クロッククォンタムには上限Qがあり、任意のクロックXに対して
t0+Q<t1ならばX(t0)<X(t1)
C.クロックドリフトDには上限があり、任意のクロックXおよびイベント(t0<t1)に対して
t0<t1ならば(1−D)*(X(t1)−X(t0))≦(t1−t0)+Q
D.および
t0<t1ならば(t1−t0)≦((1+D)*(X(t1)−X(t0)))+Q
記載の表記を利用して、かつ、記載の制限を有する 非同期分散システムにおいて、 以下のメッセージ交換シーケンスが起こり得る。
@t0:OXがX(t0)をオブザーブする
@t1:OX.が(OY,{X(t0)})を送信する
@t2:OYが(Ox,{X(t0)})を受信する
@t3:OYがY(t3)をオブザーブする
@t4:OY.が(OX,{X(t0),Y(t3)}を送信する
@t5:OX.が(OY,{X(t0),Y(t3)}を受信する
@t6:OXがX(t6)をオブザーブする
メッセージ交換シーケンスは、OxがOYにOYの現在のローカルなクロック値のクエリを行う、要求/応答の操作のシーケンスであり、これを行ったとき(t0)、および戻された応答を受け取ったとき(t6)を記録する。ここで、XのローカルなクロックがX(t0)を有したときとXのローカルなクロックが値X(t6)を有したときとの間のある時点で、Yが値Y(t3)を有したことを、Oxは分かっている。メッセージの組み合わせを使用して、全体的な配列を表すことが可能であるが、OxおよびOYのそれぞれは、それ自身の独立した時系列で操作することが可能である。
ドリフトしない完全なローカルクロックのイベントにおいて、Oxは、t6の後の任意の時間tにおけるクロックYの値に対して以下の限度を規定することが可能である。
Y(t)≧X(t)−(X(t6)−Y(t3))
Y(t)≦X(t)+(Y(t3)−X(t0))
量子化を計上すると、Oxは、t6の後の任意の時間tにおけるクロックYの値に対して以下の限度を規定することが可能である。
Y(t)≧X(t)−(X(t6)−Y(t3)+2Q)
Y(t)≦X(t)+(Y(t3)−X(t0)+2Q)
Qの項は、クロックが量子化されることを表す。量子化により2つのQ項が各限度に加算されることから、オブザベーションがなされて、X(t0)=0、 Y(t3)=1、X(t6)=2となったと考えられる。 これは、クロックが2という不確実性と同期したということを示唆する。実際の 不確実性を求めるには、オブザベーションに導き得る3つのクロックそれぞれの限度の場合を検討する:
Figure 0005161363
最初の3列は、クロックが所定の値に変化するときの時刻に関するオブザベーションの時刻を示す。例えば、第2の列において、「2−Δ」は、Yが値を1から2に変化させるというイベントに先行するイベントの時刻を示す。第4の列は、列1と列2との差、第5の列は、列2と列3との差である。
最後の2列から最大値を取り上げて、Δを0に近づけると、最大の不確実性がどちらの方向にも2であることが分かる。これを、オブザーブされた不確実性と比較すると、量子化により、2クォンタムの誤差の可能性が導入された。このことは、これらの値に対する変化が、オブザーブされた結果と、可能性のある限度の場合とに等しく影響を与えるということをオブザーブすることにより、任意のX(t0)、Y(t3)、およびX(t6)に対して法則化することができる。従って、量子化により、2Qに等しい誤差項が導入される。
量子化およびクロックドリフトを計上すると、Oxは、t6の後の任意の時間tにおけるクロックYの値に対して以下の限度を規定することが可能である。
Y(t)≧X(t)−(X(t6)−Y(t3)+2Q)−2D(X(t)−(X(t6)+X(t0))/2+2Q)
Y(t)≦X(t)+(Y(t3)−X(t0)+2Q)+2D(X(t)−(X(t6)+X(t0))/2+2Q)
これらの値の差は、以下のように計算される。
(X(t)+(Y(t3)−X(t0)+2Q)+2D(X(t)−(X(t6)+X(t0))/2+2Q))−(X(t)−(X(t6)−Y(t3)+2Q)−2D(X(t)−(X(t6)+X(t0))/2+2Q))
=X(t)−X(t)+Y(t3)−Y(t3)+X(t6)−X(t0)+4Q+4D(X(t)−(X(t6)+X(t0))/2+2Q)
=X(t6)−X(t0)+4Q+4D(X(t)−(X(t6)+X(t0))/2+2Q)
これは、最大誤差が以下のものであることを意味する。
(X(t6)−X(t0))/2+2Q+2D(X(t)−(X(t6)+X(t0))/2+2Q)
この式において、(X(t6)−X(t0))は、OXからOYへ送られ戻される要求―応答の相互作用にかかる時間である。Qは、クロックの値が更新される頻度に依存する。最後の項、2D(X(t)−(X(t6)+X(t0))/2+2Q)は、限度が、潜在的なクロックドリフトにより、どのように時間の経過と共に弱くなる(すなわち、減衰する)のかを示す。
メッセージ交換シーケンスのクエリは、複数回繰り返すことが可能であり、OXは、任意のクエリに最も密な上限を選択することが可能であり、かつ、任意のクエリに最も密な下限を選択することが可能である。選択のときに、最も密な上限および最も密な下限は、同一のクエリのものである必要はない。メッセージ交換シーケンスのクエリを周期的に繰り返すことにより、任意の時刻Tにおいて最新の測定がなされるであろうことから、オブザーバ(本例においてはOX)は、第3の項を最小化することが可能である。
図1は、非同期分散システム100が、非同期分散システム100においてクロックを容易に同期させることを例示している。図1を参照すると、コンピュータアーキテクチャ100には、コンピュータシステム101、151、および他のコンピュータシステム191が含まれる。図示されるコンピュータシステムおよびその対応する構成要素のそれぞれは、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、USB(Universal Serial Bus)、および、さらにインターネット等の通信路(またはその一部)を介してお互いに接続される。従って、図示される各構成要素、および、任意の他の接続される構成要素も同様に、メッセージ関連のデータを作成することが可能であり、かつ、メッセージ関連のデータ(例えば、IPデータグラム(Internet Protocol:インターネットプロトコル)、および、TCP(Transmission Control Protocol:伝送制御プロトコル)、HTTP(Hypertext Transfer Protocol:ハイパーテキスト転送プロトコル)、SMTP(Simple Mail Transfer Protocol:簡易メール転送プロトコル)、等などのIPデータグラムを利用する他の上位層プロトコルを、ネットワークを介して交換することができる。
非同期分散システム100は、実質的には、例えば、ピアツーピアシステム等の任意のタイプの非同期システムとすることができる。
図示するように、コンピュータシステム101には、クロック管理モジュール102およびクロック103が含まれる。一般に、コンピュータシステム101は、他のコンピュータシステムとの要求/応答メッセージ交換シーケンスに関与し、要求/応答メッセージ交換シーケンスと関連する時間データに基づき、被オブザーブコンピュータシステムにおいて、主張される時刻を維持するよう、構成される。
クロック管理モジュール102は、コンピュータシステム101と非同期分散システム100の他のコンピュータシステムとの間の通信に関連する時間データ(例えば、時間データ194)を記録しかつ維持するよう構成される。クロック管理モジュール102は、メッセージが、コンピュータシステム101にて送受信されるときに、クロック103における時刻を記録することが可能である。クロック管理モジュール102はまた、被オブザーブコンピュータシステム(例えば、コンピュータシステム151)から受信される、要求/応答メッセージ交換シーケンスの一部として受信される応答メッセージ内に含まれる時刻を、記憶することも可能である。記録かつ受信される時刻から、クロック管理モジュール102は、特定の範囲内の被オブザーブコンピュータシステムにおける、イベント発生の時刻を示すことが可能である。
図示するように、コンピュータシステム151には、クロック管理モジュール152およびクロック153が含まれる。一般に、コンピュータシステム151は、他のコンピュータシステムとの要求/応答メッセージ交換シーケンスに関与し、要求/応答メッセージ交換シーケンスと関連する時間データに基づき、被オブザーブコンピュータシステムにおいて主張される時刻を維持するよう、構成される。
クロック管理モジュール152は、コンピュータシステム151と非同期分散システム100の他のコンピュータシステムとの間の通信に関連する時間データを記録しかつ維持するよう構成される。クロック管理モジュール152は、メッセージが、コンピュータシステム151にて送受信されるときに、クロック153における時刻を記録することが可能である。クロック管理モジュール152はまた、被オブザーブコンピュータシステム(例えば、コンピュータシステム101)から受信される、要求/応答メッセージ交換シーケンスの一部として受信される応答メッセージ内に含まれる時刻を、記憶することも可能である。記録かつ受信される時刻から、クロック管理モジュール152は、特定の範囲内の被オブザーブコンピュータシステムにおける、イベント発生の時刻を示すことが可能である。
本発明の実施形態には、それ自身のクロックをオブザーブし、他のクロックの値の範囲を推測するコンピュータシステムが含まれる。例えば、コンピュータシステム101は、クロック103をオブザーブすることが可能であり、クロック153(同様に、他のコンピュータシステム191におけるクロックも)の値の範囲の推測することが可能である。同様に、コンピュータシステム151は、クロック153をオブザーブすることが可能であり、クロック103(同様に、他のコンピュータシステム191におけるクロックも)の値の範囲の推測することが可能である。他のコンピュータシステム191はまた、それ自身のクロックをオブザーブし、クロック103および153のそれぞれに対する値の範囲を推測することが可能である。
クロック管理モジュールはまた、非同期分散システム100内のクロック間の最大量子化差Q(例えば、量子化192)、および、非同期分散システム100内の期間D当たりの最大クロックドリフト(例えば、ドリフト193)と共に構成することが可能である。
従って、本発明のいくつかの実施形態には、要求/応答メッセージ交換を利用して、オブザーブコンピュータシステムが主張する、被オブザーブコンピュータシステムにおける時刻と、被オブザーブコンピュータシステムにおける実際の時刻との差異を判定することが含まれる。要求/応答メッセージ交換には、要求メッセージおよび対応する応答メッセージを含むことが可能である。例えば、メッセージ交換184には、要求181および応答182が含まれる。判定された差から、オブザーブコンピュータシステムは、例えば、被オブザーブコンピュータシステムにおけるクロックの値の範囲を推測することが可能である。しかし、より緩い相互関係(例えば、明確な要求/応答よりも)を有するメッセージを使用することも可能である。
従って、本発明の他の実施形態では、送信されたメッセージと受信されたメッセージとの間でより緩い相互関係を有するメッセージ交換を利用して、オブザーブコンピュータシステムが主張する、被オブザーブコンピュータシステムにおける時刻と、被オブザーブコンピュータシステムにおける実際の時刻との差異を判定する。例えば、1つのコンピュータでは、複数の要求を送信し、より少ない数のまたはただ1つの対応する応答(例えば、他のメッセージ交換185により表される)が戻されることが可能である。さらに、1つのコンピュータからの応答はまた、その1つのコンピュータから別のコンピュータに戻される要求を表すことも可能である。従って、メッセージは、要求と応答の両方を表すことが可能である。加えて、受信された要求への応答がいつ戻されるべきかを示す必要はないことが多い。従って、要求/応答の組の間に強い相互関係があるときでも、応答をいつ戻すかについての制限は無くとも良い。例えば、要求/応答184内で、要求181の受信に応答して、いつ応答182を戻すかを示す時間制限は無くとも良い。
図2は、オブザーブコンピュータシステムが主張する、被オブザーブコンピュータシステムにおける時刻と、被オブザーブコンピュータシステムにおける実際の時刻との差異を判定するための、一例の方法200のフローチャートである。方法200は、非同期分散システム100における構成要素およびデータについて、記載される。
方法200には、被オブザーブコンピュータシステムとの1つまたは複数のメッセージ交換に関与する動作(動作201)が含まれる。例えば、コンピュータシステム101は、コンピュータシステム151とメッセージ交換184に関与することが可能である。あるいは、コンピュータシステム101は、1つまたは複数のさらなるメッセージ交換185に関与することが可能である。メッセージ交換は、メッセージ交換184よりも緩い、要求と応答の間の結びつきを有することが可能である。他の実施形態において、コンピュータシステム101は、更なるメッセージ交換185に関与するが、メッセージ交換184には関与しない。従って、コンピュータシステム101は、任意の要求/応答メッセージ交換の相互関係があるメッセージを含まない、緩い結びつきのメッセージ交換に関与することができる。
被オブザーブコンピュータシステムとの1つまたは複数のメッセージ交換への関与には、メッセージが送信されるときにオブザーブコンピュータシステムにおけるクロックの時刻を記録する動作(動作202)を含むことが可能である。例えば、クロック管理モジュール102は、時間データ194に時間エントリ171を記録することが可能である。時間エントリ171は、コンピュータシステム101が要求181を送信したときに、クロック103の時刻を、例えば、hh:mm:ss.msの形式で記録する。従って、時間エントリ181は、クロック103が8時という時刻を示したときに、要求181が送信されたということを示す。あるいはまたは組み合わせて、時間エントリを、他の要求(例えば、さらなるメッセージ交換185に含まれるべき要求)に対して追加することも可能である。被オブザーブコンピュータシステムとの1つまたは複数のメッセージ交換への関与には、被オブザーブコンピュータシステムへメッセージを送信する動作を含むことが可能であり、そのメッセージには、記録された送信時刻が含まれる(動作203)。例えば、コンピュータシステム101は、要求181をコンピュータシステム151に送信することが可能である。要求181には、時間エントリ171からの情報を含むことが可能である。あるいはまたは組み合わせて、1つまたは複数の他の要求(例えば、さらなるメッセージ交換185の一部として)を、コンピュータシステム101からコンピュータシステム151に送信することも可能である。
被オブザーブコンピュータシステムとの1つまたは複数のメッセージ交換への関与には、被オブザーブコンピュータシステムからのメッセージに応答して、相互に関連するメッセージを続いて受信する動作を含むことが可能であり、相互に関連するメッセージには、被オブザーブコンピュータシステムからの時刻が含まれる(動作204)。例えば、コンピュータシステム101は、応答182をコンピュータシステム151から受信することが可能である。応答182には、時刻183が含まれる。時刻183は、クロック153においてオブザーブされた時刻(例えば、応答182が送信されたとき、要求181が処理されたとき、等)を示す。あるいはまたは組み合わせて、1つまたは複数の他の応答を、コンピュータシステム151から受け取ることも可能である(例えば、さらなるメッセージ交換185に含まれる応答)。従って、1つまたは複数の応答には、クロック153においてオブザーブされた時刻を示す時刻を含むことが可能である。
被オブザーブコンピュータシステムとの1つまたは複数のメッセージ交換への関与には、相互に関連するメッセージが受信されるときに、オブザーブコンピュータシステムにおけるクロックの受信時刻を記録する動作(動作205)を含むことが可能である。例えば、クロック管理モジュール102は、時間データ194に時間エントリ172を記録することが可能である。時間エントリ172は、コンピュータシステム101が応答182を受信したときに、クロック103における時刻を記録する。従って、時間エントリ172は、クロック103が8時64ミリ秒という時刻を示したときに、応答182が受信されたということを示す。あるいはまたは組み合わせて、クロック管理モジュール102はまた、さらなるメッセージ交換185に含まれる他の応答がいつ受信されたかを示す時間エントリを(時間データ194内に)記録することも可能である。
被オブザーブコンピュータシステムとの1つまたは複数のメッセージ交換への関与には、被オブザーブコンピュータシステムからの時刻を記録する動作(動作206)を含むことが可能である。例えば、クロック管理モジュール102は、時間データ194に時間エントリ173を記録することが可能である。時間エントリ173は、コンピュータシステム151がクロック153においてオブザーブした時刻(例えば、要求181の受信、要求181の処理中、等)を記録する。時間エントリ173は、クロック153の時刻が、要求/応答交換シーケンス184内の8時43ミリ秒にオブザーブされたということを示す。あるいはまたは組み合わせて、クロック管理モジュール102はまた、さらなるメッセージ交換185に含まれる他の応答に含まれる時刻に対する時間エントリを(時間データ194に)記録することも可能である。
方法200には、オブザーブコンピュータシステムの時刻に対する被オブザーブコンピュータシステムにおける時刻の下限を、メッセージの送信に記録された時刻と、相互に関連するメッセージに含まれる被オブザーブコンピュータシステムからの時刻との間の差に基づき、計算する動作(動作207)が含まれる。例えば、クロック管理モジュール102は、クロック153に対するクロック103の時刻の下限161を計算することが可能である。クロック管理モジュール102は、上述した式を実装して、クロック153への下限161を計算することが可能である。従って、応答182が受信され、クロック103が8:00:00.064とオブザーブされる時刻において、下限161は以下のように計算される。
クロック153≧
8:00:00.064
−(8:00:00.064−8:00:00.043+15ms)
−2(0.0007)(8:00:00.064−(8:00:00.064+8:00:00.000)/2+15ms)
クロック153≧8:00:00.064−(21ms+15ms)−0.0014(32ms+15ms)
クロック153≧8:00:00.064−36ms−0.07ms
クロック153≧8:00:00.027
あるいはまたは組み合わせて、クロック管理モジュール102はまた、さらにメッセージ交換185における他の要求および他の応答に関する時間エントリから、下限161を計算することも可能である。
方法200には、オブザーブコンピュータシステムの時刻に対する被オブザーブコンピュータシステムにおける時刻の上限を、相互に関連するメッセージの受信に記録された時刻と、相互に関連するメッセージに含まれる被オブザーブコンピュータシステムからの時刻との間の差に基づき、計算する動作(動作208)が含まれる。例えば、クロック管理モジュール102は、クロック153に対するクロック103の時刻の上限162を計算することが可能である。クロック管理モジュール102は、上述の式を実装して、クロック153に対する上限161を計算することが可能である。従って、応答182が受信され、クロック103が8:00:00.064と示しオブザーブされる時刻において、上限162は以下のように計算される。
クロックl53≦
8:00:00.064
+(8:00:00.043−8:00:00.000+15ms)
+2(0.0007)(8:00:00.064−(8:00:00.064+8:00:00.000)/2+15ms)
クロックl53≦8:00:00.064+(43ms+15ms)+0.0014(32ms+15ms)
クロックl53≦8:00:00.064+58ms+0.07ms
クロックl53≦8:00:00.123
あるいはまたは組み合わせて、クロック管理モジュール102はまた、さらにメッセージ交換185における他の要求および他の応答に関する時間エントリから、上限162を計算することも可能である。
方法200には、上限と下限との間の差を計算する動作(動作209)が含まれる。例えば、クロック管理モジュール102は、上限162と下限161との間の差を計算することが可能である。応答182が受信され、量子化192を計上する時刻において、上限162と下限161との間の差は、ほぼ123ms−27ms、すなわち96msに等しい。
方法200には、計算された差を平均化係数で割ることにより、オブザーブコンピュータシステムが主張する、被オブザーブコンピュータシステムにおける時刻と、被オブザーブコンピュータシステムにおける実際の時刻との最大差異を計算する動作(動作210)が含まれる。例えば、クロック管理モジュール102は、96msを2で割り、48msを算出することが可能である。クロック103と153との間のオフセットの中間点は、((8:00:00.027+8:00:00.123)/2)−8:00:00.064であり、クロック153がほぼクロック103より12ms進んでいることを示す。
上述したように、あるいはまたはメッセージ交換184と組み合わせて、コンピュータシステム101は、コンピュータシステム151とのさらなるメッセージ交換185に関与することが可能である。従って、推測される時間範囲の下限および/または上限を、これらの更なるメッセージ交換に基づき、改善することが可能である。従って、下限161は、任意の続く送信時刻−オブザーブされる時刻が−43msより大きくより小さい場合、改善することが可能である。例えば、送信時刻が8:01:27.53で、オブザーブされる時刻が8:01:27.69の場合、下限161を、(16ms+20ms+クロックドリフトコンポーネント)に改善することが可能である。同様に、上限162は、任意の続く受信時刻−オブザーブされる時刻が、21msより小さくより小さい場合、改善することが可能である。例えば、受信時刻が8:03:52.07で、オブザーブされる時刻が8:03:51.92の場合、上限162を(15ms+20ms+クロックドリフトコンポーネント)に改善することが可能である。
下限と上限は両方とも、オブザーブコンピュータシステムクロックがオブザーブされるクロックより遅れる、ある時間量を示すことが可能である。例えば、下限を−47ms、上限を−12msとすることができる。この下限と上限の組み合わせは、コンピュータシステムクロックがオブザーブされるクロックより少なくとも12ms遅れ、かつ、オブザーブされるクロックより47ms以上は遅れない、ということを示す。
同様に、下限と上限は両方とも、オブザーブコンピュータシステムクロックがオブザーブされるクロックより進む、ある時間量を示すことが可能である。例えば、下限を17ms、上限を82msとすることができる。この下限と上限の組み合わせは、コンピュータシステムクロックがオブザーブされるクロックより少なくとも17ms進み、かつ、オブザーブされるクロックより82ms以上は遅れない、ということを示す。
いくつかの実施形態において、クロック管理モジュールは、少なくとも、例えば、1分ごと、2分ごと等の、予め定められた間隔で、要求/応答メッセージ交換、または他のメッセージ交換を起動させるよう構成される。メッセージ交換は、非同期分散システム内のコンピュータシステム間の他の(例えば、アプリケーション)メッセージ交換で、ピギーバックすることができる。要求/応答またはクロック同期の他のメッセージ交換はまた、例えば、ドリフト制限を超えるなどの他のポリシーに従って、起動させることも可能である。
被オブザーブコンピュータシステムにおける時刻を推測することに続いて、オブザーブコンピュータシステムは、推測された時刻を使用して、被オブザーブコンピュータシステムにおいてイベントが起こった、またはイベントが起こり得る(または起こるであろう)、時間限度を計算することが可能である。
従って、本発明の実施形態は、2つのコンピュータシステム間の時間についての、共通の理解またはその経過についての安全な見解を容易にする。例えば、オブザーブコンピュータシステムは、最大差異または時間範囲から、被オブザーブコンピュータシステムにおける時間の経過についての安全な見解を公式化することが可能である。安全な見解により、オブザーブコンピュータシステムは、(計算された限度内において)過去のイベントが被オブザーブコンピュータシステムにおいていつ起こったかを推定することが可能である。例えば、コンピュータシステム101は、イベント196がコンピュータシステム151においていつ起こったかを推定することが可能である。安全な見解からはまた、2つのコンピュータシステムが、イベントが将来起こるときについて、合意した結論を導くことが可能である。その結果、1つのコンピュータシステムは、(計算された限度内において)イベントが他のコンピュータシステムでいつ起こるかを推定することが可能である。
図3は、被オブザーブコンピュータシステムにおいてイベントが起こった時刻を示すための一例の方法のフローチャートである。
方法300には、被オブザーブコンピュータシステムとの1つまたは複数のメッセージ交換に関与する動作(動作301)が含まれる。各メッセージ交換には、要求メッセージが送信されるときに、オブザーブコンピュータシステムにおけるクロックの時刻を記録する動作(動作302)が含まれる。各メッセージ交換には、1つまたは複数の要求メッセージを被オブザーブコンピュータシステムに送信する動作が含まれ、各要求メッセージには、対応する記録された送信時刻が含まれる(動作303)。各メッセージ交換には、被オブザーブコンピュータシステムからの要求メッセージに応答して、1つまたは複数の応答メッセージを続いて受信する動作が含まれ、応答メッセージには被オブザーブコンピュータシステムからの時刻が含まれる(動作304)。各メッセージ交換には、応答メッセージが受信されるときに、オブザーブコンピュータシステムにおけるクロックの時刻を記録する動作が含まれる(動作305)。
例えば、コンピュータシステム101は、メッセージ交換184およびさらなるメッセージ交換185に関与することが可能である。各メッセージ交換には、1つまたは複数の要求を送信すること(例えば、181)、各要求が送信されたときに、時刻(例えば、171)を記録すること、1つまたは複数の応答を受信すること(例えば、182)、各応答が受信されるときに、時刻(例えば、172)を記録すること、および、オブザーブコンピュータシステムからの応答に含まれる時刻(例えば、173)を記録すること(例えば、183)、を含むことが可能である。
方法300には、オブザーブコンピュータシステムの時刻に対する被オブザーブコンピュータシステムの時間限度を、1つまたは複数のメッセージ交換に基づき計算する動作が含まれ、時間限度は、オブザーブコンピュータシステムにおける時刻に適用されて、1つまたは複数のメッセージ交換に続いて、被オブザーブコンピュータシステムにおける特定の時間範囲を主張するよう構成される(動作306)。時間限度には、計算された時間限度の最下位を表す下方時間限度、および、計算された時間限度の最上位を表す上方時間限度、が含まれる。例えば、コンピュータシステム101は、下限161および上限162を計算し改善することが可能である。
方法300には、オブザーブコンピュータシステムが表示を受信する動作が含まれ、表示は、a)被オブザーブコンピュータシステムにおいて過去のイベントが起きたことを示す表示、b)イベントが、1つまたは複数のメッセージ交換に続いて被オブザーブコンピュータシステムにおいていつ起きるかを示す表示、の内から選択される(動作307)。例えば、コンピュータシステム101は、イベント196を検出することが可能である。イベント196の受信時、クロック管理モジュールは、時間データ194に時間エントリ174を記録することが可能である。時間エントリ194は、イベント196が8:00:28.016に検出されたことを示す。あるいは、コンピュータシステム101は、イベントがコンピュータシステム151においていつ起きるかを示す表示を受信し、そのイベントがいつ起こるかを時間エントリに記録することが可能である。
方法300には、オブザーブコンピュータシステムが被オブザーブコンピュータシステムの時間範囲を計算する動作が含まれ、時間範囲は、a)過去のイベントがいつ起こったか、またはb)イベントが被オブザーブコンピュータシステムにおいていつ起こるか、を示し、時間範囲は、表示が受信されたときに、オブザーブコンピュータシステムにおける時刻と、計算された時間限度の下限および上限に基づき、計算される(動作308)。例えば、時間エントリ174から、クロック管理モジュール102は、イベント196がコンピュータシステム151においていつ起こったかを示す時間範囲を計算することが可能である。そのようなものとして新しい下限が以下のように計算される。
クロック153≧
8:00:00.064
−(8:00:00.064−8:00:00.043+15ms)
−2(0.0007)(8:00:28.016−(8:00:00.064+8:00:00.000)/2+15ms)
クロック153≧8:00:00.064−(21ms+15ms)−0.0014(28,016ms−32ms+15ms)
クロック153≧8:00:00.064−36ms−39.2ms
クロック153≧7:59:59.089
また、新しい上限は以下のように計算される。
クロックl53≦
8:00:00.064
+(8:00:00.043−8:00:00.000+15ms)
+2(0.0007)(8:00:28.016−(8:00:00.064+8:00:00.000)/2+15ms)
クロックl53≦8:00:00.064+(43ms+15ms)+0.0014(32ms+15ms)
クロックl53≦8:00:00.064+58ms+39.2ms
クロックl53≦8:00:00.161
従って、イベント196が検出され、量子化192を計上する時刻において、上限162と下限161との間の差は、ほぼ161ms−(−11ms)、すなわち172msに等しい。クロック管理モジュール102は、172msを2で割り、最大差異として86msを算出することが可能である。この新しい差異を使用して、時刻186、すなわち、イベント196がコンピュータシステム151において起こった、推測される時刻を(最大差異内で)、計算することが可能である。クロック103と153との間のオフセットの中間点は、
((8:00:27.970+8:00:28.102)/2)−8:00:28.016
8:00:28.066−8:00:28.016=50ms、これは、クロック153がクロック103より50ms進んでいることを示す。
あるいは、下限および上限を、イベントがいつ起こるかについて計算することが可能である。
方法300には、表示および計算された時間範囲を含むイベントメッセージを1つまたは複数の他のコンピュータシステムに送信する動作(動作309)が含まれる。例えば、コンピュータシステム100は、イベント196(または、イベント196がいつ起こるかを示す表示)および時刻186を含むイベントメッセージ197を、他のコンピュータシステム191に送信することが可能である。イベントメッセージ197を受信するコンピュータシステムは、イベントメッセージ197に基づき、コンピュータシステム151のステータスに関して判定を行うことが可能である。例えば、コンピュータシステムは、コンピュータシステム151が8:00:15.13にオンラインであったことを示す表示をコンピュータシステム151から受信することができる。コンピュータシステムは、コンピュータシステム151がオフラインであることを示すイベントメッセージ197を続いて受信することができる。8:00:28.016±86msが8:00:15.13より後であるため、コンピュータシステムは、その状態をコンピュータシステム151に対して調整することが可能である。
最大差異により、先に受信された時刻との重複が起こり、結果として、どのイベントが先に起こったかについて潜在的な矛盾が生じることがある。例えば、時刻184が8:00:15.47±90.22msならば、差異により、イベント196が実際に8:00:15.13の前に起こる可能性が生じる。そのような場合、イベントメッセージを受信するコンピュータシステムは、予め定められた規則(例えば、サービスレベルの合意の取り決め)を参照して、矛盾を解決することが可能である。
時間の経過と共に、コンピュータシステムは、要求/応答(または他のメッセージ)交換が完了すべき平均時間を計算することが可能である。この平均および予め定められた間隔を使用して、コンピュータシステムは、時間差の最悪の場合の誤差の限度を予測することが可能である。例えば、図1を参照すると、要求/応答メッセージ交換を完了する平均時間が40msで、予め定められた間隔が30sの場合、最悪の場合の誤差の限度は、±[(40ms/2)+20ms+2*((.5min/24)*60min)*(60sec.)]=81.5msと計算することが可能である。
クロッククォンタム制限、ドリフトレート制限、および最大ラウンドトリップ制限の(少なくとも予測された)値は、例えば、平均から、またはさらにハードウェア仕様からなど、システムにとっては既知である。最大誤差の方程式を使用してオブザーブコンピュータシステムが主張する被オブザーブコンピュータシステムおける時刻、およびオブザーブされるコンピュータにおける実際の時刻での、(非同期分散システム内のコンピュータシステム間の)最大差異を計算することが可能である。
図5は、複数のコンピュータシステムを含む非同期分散システムの異なるコンピュータシステムにおける、クロック間の最大差異の計算を容易にする、一例のコンピュータアーキテクチャ500を例示する。図4は、複数のコンピュータシステムを含む非同期分散システムの異なるコンピュータシステムにおける、クロック間の最大差異を計算するための、一例の方法400のフローチャートである。方法400は、コンピュータアーキテクチャ500における構成要素およびデータに関して記載される。
方法400には、クロッククォンタム制限にアクセスする動作が含まれ、クロッククォンタム制限は、非同期分散システムのコンピュータシステムの内のクロック量子化間の最大差を示す(動作401)。例えば、コンピュータシステム501は、例えば、Q=15msというハードウェア仕様などの、クロッククォンタム制限511にアクセスすることが可能である。
方法400には、ドリフトレート制限にアクセスする動作が含まれ、ドリフトレート制限は、非同期分散システムの各コンピュータシステムの時間の特定の期間内での最大クロックドリフトを示す(動作402)。オブザーバは、特定のオブザーバの最悪の場合のドリフトを学習し、それに対して構成されることが可能である。あるいは、オブザーバは、任意のオブザーバに対して最悪の場合のドリフトを推定するよう構成することが可能である。例えば、コンピュータシステム501は、例えば、1日当たりのドリフトの時間がD<1分、など、クロックドリフトレート制限512にアクセスする。従って、クロックドリフトレート制限512は、特定のオブザーバまたは任意のオブザーバに適用できる。
方法400には、最大ラウンドトリップ制限にアクセスする動作が含まれ、最大ラウンドトリップ制限は、非同期分散システムの任意の2つのコンピュータシステム間で起きる要求/応答メッセージ交換の最大時間量を示す(動作403)。例えば、コンピュータシステム501は、最大ラウンドトリップ制限513にアクセスすることが可能である。ラウンドトリップ制限513は、例えば、コンピュータシステム151に1分に1回クエリを行い、かつ、ラウンドトリップ時間が50msより小さい、コンピュータシステム101から、導くことが可能である。
方法400には、非同期システムの異なるコンピュータシステムにおけるクロック間の最大差異を、クロッククォンタム制限、ドリフトレート制限、および最大ラウンドトリップ制限に基づき、計算する動作が含まれる。例えば、コンピュータシステム501は、クロッククォンタム制限511、クロックドリフトレート制限512、およびラウンドトリップ制限513に基づき、最大クロック差異514を計算することが可能である。
最大差異の方程式は、計算される限度内の全ての時間における被オブザーブコンピュータシステムにおける時刻が分かっているオブザーブコンピュータシステムを容易にする。いくつかの実施形態において、以下の最大差異の方程式を使用する。
((受信時刻−送信時刻)/2)+Q+(2D*(T−AVG(送信時刻、受信時刻)+Q))
または予め定められたまたは特定の値の場合は、
(R/2)+Q+(2**予め定められた要求/応答メッセージ交換の間隔)
従って、方法400に関して記載される制限に従って、最大差異は、(50ms/2)+15ms+(2*(1min/24*60min)*(60sec))、すなわち25ms+15ms+83ms=123ms、内の全ての時間における、被オブザーブコンピュータシステムにおける時刻が分かっている、オブザーブコンピュータシステムを容易にする。さらに、メッセージ交換シーケンスのクエリの直後、最大誤差でのクロックドリフトレート制限Dコンポーネントの影響がゼロに近づく。すなわち、(2*(〜0/24*60min)*(60sec))=0である。従って、メッセージ交換シーケンスのクエリの直後、オブザーブコンピュータシステムには、被オブザーブコンピュータシステムにおける時刻がほぼ25ms+15ms+0ms=40msであることが分かる。
従って、本発明の実施形態は、例えば、共通の非同期(分散型)システム内の部材のような、一組のピアノード(オブザーバ)に亘る、信頼できる実用的な共通の時間(時刻)の参照の作成を容易にする。疑似同期システムのクラスは、共通のマスタへ参照せずに、対のノード(オブザーバ)間の最悪の場合の相対論的時間の非対称をトラッキングし蓄積して、作成することが可能である。原因となる直接的および間接的関係は、ノードの対の間の順序づけられた相互作用に基づき、形成することが可能である。そのように、協働するノードは、別のノードへのオブザーブを考慮すると、1つのノードがオブザーブする時刻の下限を原則的に保証することが可能である。従って、本発明の実施形態を適用して、共通の外部の時刻クロックのエンティティを使用せずに、非同期システムに亘る現在の時刻における最悪の場合(例えば、最大差異)についての、整合性のある(安全な)見解を提供することができる。
本発明は、その精神または主要な特徴から逸脱することなく他の特定の形式において具現化することができる。記載される実施形態は、あらゆる点において単に例示としてみなされ、制限するものとしてみなされない。従って、本発明の範囲は、前述の記載によるのではなく、添付の請求項により示される。請求項と等価の意味および範囲に入る全ての変更は、請求項の範囲に包含される。

Claims (15)

  1. オブザーブコンピュータシステムにおいて、前記オブザーブコンピュータシステムが主張する、被オブザーブコンピュータシステムにおける時刻と、前記被オブザーブコンピュータシステムにおける実際の時刻との差異を判定するための方法であって、
    前記オブザーブコンピュータシステムは、複数のコンピュータシステムを含む非同期分散システム内のオブザーブコンピュータシステムであって、前記オブザーブコンピュータシステムは、プロセッサおよびシステムメモリを含み、前記非同期分散システムは、クロッククォンタム制限「Q」およびドリフトレート制限「D」を有し、前記クロッククォンタム制限は、前記非同期分散システムの前記コンピュータシステムの内のクロック量子化間の最大差を示し、前記ドリフトレート制限は、前記非同期分散システムの各コンピュータシステムの時間の特定の期間内の最大クロックドリフトを示、 前記方法は、
    前記被オブザーブコンピュータシステムとの1つまたは複数のメッセージ交換に関与する動作であって、前記メッセージ交換は、
    メッセージが送信されるときに、前記オブザーブコンピュータシステムにおけるクロックX(t)の送信時刻X(t1)を記録することと、
    メッセージを前記被オブザーブコンピュータシステムに送信することであって、前記メッセージは記録された送信時刻X(t1)を含むことと、
    前記被オブザーブコンピュータシステムから前記メッセージに応答して、相互に関連するメッセージを続いて受信することであって、前記相互に関連するメッセージは、前記被オブザーブコンピュータシステムのクロックY(t)からの時刻Y(t2)を含むことと、
    前記相互に関連するメッセージが受信されるときに、前記オブザーブコンピュータシステムにおける、前記クロックX(t)の受信時刻X(t3)を記録することと、
    前記被オブザーブコンピュータシステムからの時刻Y(t2)を記録することとを含む動作と、
    前記オブザーブコンピュータシステムの時刻に対する前記被オブザーブコンピュータシステムにおける時刻の下限を、
    式:Y(t)≧X(t)−(X(t3)−Y(t2)+2Q)−2D(X(t)−X(t1))/2+2Q)
    に基づき計算する動作と、
    前記オブザーブコンピュータシステムの時刻に対する前記被オブザーブコンピュータシステムにおける時刻の上限を、
    式:Y(t)≦X(t)+(Y(t2)−X(t1)+2Q)+2D(X(t)−(X(t3)+X(t1))/2+2Q)
    に基づき計算する動作と、
    前記上限と前記下限との間の差を計算する動作と、
    前記プロセッサが、計算された前記差を平均化係数で割ることにより、前記オブザーブコンピュータシステムが主張する、前記被オブザーブコンピュータシステムにおける時刻と、前記被オブザーブコンピュータシステムにおける実際の時刻との最大差異を計算する動作と
    を備えることを特徴する方法。
  2. 前記オブザーブコンピュータシステムが計算された前記最大差異を使用して、前記被オブザーブコンピュータシステムにおける時間の経過についての安全な見解を公式化する動作をさらに備えることを特徴とする請求項1に記載の方法。
  3. 前記オブザーブコンピュータシステムおよび前記被オブザーブコンピュータシステムが、イベントがいつ起きるかについて合意する動作をさらに備えることを特徴とする請求項1に記載の方法。
  4. 前記オブザーブコンピュータシステムおよび前記被オブザーブコンピュータシステムが、イベントがいつ起きるかについて合意する動作は、前記オブザーブコンピュータシステムが、前記被オブザーブコンピュータシステムにおいて過去のイベントが起きたことを検出する動作を含むことを特徴とする請求項3に記載の方法。
  5. 前記オブザーブコンピュータシステムおよび前記被オブザーブコンピュータシステムが、イベントがいつ起きるかについて合意する動作は、前記オブザーブコンピュータシステムおよび前記被オブザーブコンピュータシステムが、イベントが将来においていつ起きるかについて合意する動作を含むことを特徴とする請求項3に記載の方法。
  6. 前記オブザーブコンピュータシステムが、前記被オブザーブコンピュータシステムとの1つまたは複数のさらなるメッセージ交換に関与する動作と、
    前記オブザーブコンピュータシステムが、1つまたは複数のさらなるメッセージ交換に対応する記録された時刻に基づき、1つまたは複数の前記下限および前記上限を改善する動作とをさらに備えることを特徴とする請求項1に記載の方法。
  7. プロセッサおよびシステムメモリを含むオブザーブコンピュータシステムにおいて、被オブザーブコンピュータシステムにおいてイベントが起こった時刻を示すための方法であって、前記方法は、
    前記被オブザーブコンピュータシステムとの1つまたは複数のメッセージ交換に関与する動作であって、各メッセージ交換が、
    要求メッセージが送信されるときに、前記オブザーブコンピュータシステムにおけるクロックX(t)の時刻X(t1)を記録することと、
    1つまたは複数の要求メッセージを前記被オブザーブコンピュータシステムに送信することであって、各要求メッセージが対応する記録された送信時刻を含むことと、
    前記被オブザーブコンピュータシステムから、前記1つまたは複数の要求メッセージに応答して、1つまたは複数の応答メッセージを続いて受信することであって、各応答メッセージが前記被オブザーブコンピュータシステムのクロックY(t)からの時刻Y(t2)を含むことと、
    前記応答メッセージが受信されるときに、前記オブザーブコンピュータシステムにおける前記クロックの時刻X(t3)を記録することと、
    前記オブザーブコンピュータシステムの時刻X(t1)に対する前記被オブザーブコンピュータシステムの前記クロックY(t)の時間限度を、前記1つまたは複数のメッセージ交換に基づき計算することであって、前記時間限度は、前記オブザーブコンピュータシステムにおける時刻に適用されて、前記1つまたは複数のメッセージ交換に続いて前記被オブザーブコンピュータシステムにおける特定の時間範囲を主張するよう構成され、前記時間限度は、
    式:Y(t)≧X(t)−(X(t3)−Y(t2)+2Q)−2D(X(t)−X(t1))/2+2Q)を使用して計算される、計算された時間限度の最下位を表す下方時間限度と、
    式:Y(t)≦X(t)+(Y(t2)−X(t1)+2Q)+2D(X(t)−(X(t3)+X(t1))/2+2Q)を使用して計算される、計算された時間限度の最上位を表す上方時間限度とを含むことと、
    前記プロセッサが表示を受信する動作であって、前記表示は、a)前記被オブザーブコンピュータシステムにおいて過去のイベントが起きたことを示す表示、b)イベントが、前記1つまたは複数のメッセージ交換に続いて前記被オブザーブコンピュータシステムにおいていつ起きるかを示す表示、の内からから選択される動作と、
    前記プロセッサが前記被オブザーブコンピュータシステムの時間範囲を計算する動作であって、前記時間範囲は、a)イベントがいつ起こったか、またはb)イベントが前記被オブザーブコンピュータシステムにおいていつ起こるかを示し、前記時間範囲は、前記表示が受信されたときに、前記オブザーブコンピュータシステムにおける時刻と、計算された時間限度の下限および上限に基づき計算される動作と、
    表示および計算された時間範囲を含むイベントメッセージを1つまたは複数の他のコンピュータシステムに送信する動作とを備えることを特徴する方法。
  8. 前記オブザーブコンピュータシステムの時刻に対する前記被オブザーブコンピュータシステムの時間限度を、1つまたは複数のメッセージに基づき計算する動作は、要求メッセージを送信するために記録される時刻と、任意の1つまたは複数のメッセージ交換における対応する応答メッセージに含まれる、前記被オブザーブコンピュータシステムからの時刻との間の最小差に少なくとも部分的に基づき、前記下限をある値に設定する動作を含むことを特徴とする請求項7に記載の方法。
  9. 前記下限をある値に設定する動作は、前記オブザーブコンピュータシステムにおけるクロックの量子化と、前記被オブザーブコンピュータシステムにおけるクロックの量子化との間の差の表示に少なくとも部分的に基づき、前記下限をある値に設定する動作を含むことを特徴とする請求項8に記載の方法。
  10. 前記下限をある値に設定する動作は、前記オブザーブコンピュータシステムにおけるクロックのクロックドリフト、および前記被オブザーブコンピュータシステムにおけるクロックのクロックドリフトに少なくとも部分的に基づき、下限をある値に設定する動作を含むことを特徴とする請求項8に記載の方法。
  11. 前記オブザーブコンピュータシステムの時刻に対する前記被オブザーブコンピュータシステムの時間限度を、1つまたは複数の要求/応答メッセージに基づき計算する動作は、応答メッセージを受信するために記録される時刻と、任意の1つまたは複数の要求/応答メッセージ交換における応答メッセージに含まれる、前記被オブザーブコンピュータシステムからの時刻との間の最小差に少なくとも部分的に基づき、上限をある値に設定する動作を含むことを特徴とする請求項7に記載の方法。
  12. 前記上限をある値に設定する動作は、前記オブザーブコンピュータシステムにおけるクロックの量子化と、前記被オブザーブコンピュータシステムにおけるクロックの量子化との間の差の表示に少なくとも部分的に基づき、上限をある値に設定する動作を含むことを特徴とする請求項11に記載の方法。
  13. 前記上限をある値に設定する動作は、前記オブザーブコンピュータシステムにおけるクロックのクロックドリフト、および前記被オブザーブコンピュータシステムにおけるクロックのクロックドリフトに少なくとも部分的に基づき、上限をある値に設定する動作を含むことを特徴とする請求項11に記載の方法。
  14. 前記非同期分散システムがピアツーピアシステムであることを特徴とする請求項7に記載の方法。
  15. プロセッサおよびシステムメモリを含むコンピュータシステムにおいて、複数のコンピュータシステムを含む非同期分散システムの異なるコンピュータシステムにおけるクロック間の、最大差異を計算するための方法であって、前記方法は、
    クロッククォンタム制限「Q」にアクセスする動作であって、前記クロッククォンタム制限は、前記非同期分散システムの前記コンピュータシステムの内のクロック量子化間の最大差を示す動作と、
    ドリフトレート制限「D」にアクセスする動作であって、前記ドリフトレート制限は、前記非同期分散システムの各コンピュータシステムに対する特定の期間内での最大クロックドリフトを示す動作と、
    最大ラウンドトリップ制限にアクセスする動作であって、前記最大ラウンドトリップ制限は、前記非同期分散システムの任意の2つのコンピュータシステム間で起こる、要求/応答メッセージ交換の最大時間量を示す動作と、
    前記プロセッサが、前記非同期システムの異なるコンピュータシステムにおけるクロック間の前記最大差異「Vmax」を、前記クロッククォンタム制限、前記ドリフトレート制限、および前記最大ラウンドトリップ制限に基づき
    式:Vmax=((t(2)−t(1))/2+Q+(2D (T−Avg(t(1),t(2))+Q))に従って計算する動作であって、前記非同期分散システムの第1のコンピュータシステムにおける、t(1)は前記要求の送信時刻であり、t(2)は前記応答の受信時刻である、計算する動作とを備えることを特徴とする方法。
JP2011502110A 2008-03-27 2009-03-27 非同期分散システムにおけるクロックの同期 Expired - Fee Related JP5161363B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US4011808P 2008-03-27 2008-03-27
US60/040,118 2008-03-27
US12/410,677 2009-03-25
US12/410,677 US8073976B2 (en) 2008-03-27 2009-03-25 Synchronizing clocks in an asynchronous distributed system
PCT/US2009/038639 WO2009121005A2 (en) 2008-03-27 2009-03-27 Synchronizing clocks in an asynchronous distributed system

Publications (3)

Publication Number Publication Date
JP2011529208A JP2011529208A (ja) 2011-12-01
JP2011529208A5 JP2011529208A5 (ja) 2012-05-10
JP5161363B2 true JP5161363B2 (ja) 2013-03-13

Family

ID=41114796

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011502110A Expired - Fee Related JP5161363B2 (ja) 2008-03-27 2009-03-27 非同期分散システムにおけるクロックの同期

Country Status (9)

Country Link
US (1) US8073976B2 (ja)
EP (1) EP2255264B1 (ja)
JP (1) JP5161363B2 (ja)
KR (1) KR101566570B1 (ja)
CN (1) CN101981527B (ja)
AU (1) AU2009228059B2 (ja)
CA (1) CA2716494A1 (ja)
RU (1) RU2485570C2 (ja)
WO (1) WO2009121005A2 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8516293B2 (en) * 2009-11-05 2013-08-20 Novell, Inc. System and method for implementing a cloud computer
US8412663B2 (en) 2010-06-03 2013-04-02 Drumright Group, Llc. System and method for temporal correlation of observables based on timing ranges associated with observations
WO2012150750A1 (ko) * 2011-05-01 2012-11-08 엘지전자 주식회사 무선통신 시스템에서 동기화 신호를 전송하는 방법 및 장치
EP2544387B1 (en) * 2011-07-04 2016-03-16 Mitsubishi Electric R&D Centre Europe B.V. Methods and devices for performing synchronization and compensating clock drift among communication devices
US10271293B2 (en) 2011-11-18 2019-04-23 Apple Inc. Group formation within a synchronized hierarchy of peer-to-peer devices
US9516615B2 (en) 2011-11-18 2016-12-06 Apple Inc. Selection of synchronization stations in a peer-to-peer network environment
US9473574B2 (en) * 2011-11-18 2016-10-18 Apple Inc. Synchronization of devices in a peer-to-peer network environment
US9195516B2 (en) 2011-12-01 2015-11-24 International Business Machines Corporation Determining collective barrier operation skew in a parallel computer
US8924763B2 (en) 2011-12-15 2014-12-30 International Business Machines Corporation Synchronizing compute node time bases in a parallel computer
EP3009897B1 (en) * 2013-06-12 2024-01-03 Fuji Electric Co., Ltd. Distribution device, distribution system, and distribution method
US10742436B2 (en) * 2013-10-29 2020-08-11 Nec Corporation Method and system for recording a multiuser web session and replaying a multiuser web session
US9754002B2 (en) * 2014-10-07 2017-09-05 Excalibur Ip, Llc Method and system for providing a synchronization service
CN104935630B (zh) * 2015-04-23 2018-03-23 南京信息工程大学 基于http的毫秒级时钟校准方法
US10609137B2 (en) * 2015-08-24 2020-03-31 Microsoft Technology Licensing, Llc Global logical timestamp
US10423191B2 (en) * 2017-01-19 2019-09-24 International Business Machines Corporation Clock comparator sign control
US10514465B2 (en) * 2017-05-16 2019-12-24 General Motors Llc Updating vehicle clock
EP3696693A4 (en) * 2017-10-10 2021-05-19 Siemens Aktiengesellschaft METHOD AND DEVICE FOR MONITORING THE CONDITION OF A DEVICE IN THE PROCESS INDUSTRY AND MEDIUM
CN115761885B (zh) * 2022-11-16 2023-08-29 之江实验室 一种共时与跨域异步融合驱动的行为识别方法

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE452231B (sv) * 1986-03-07 1987-11-16 Philips Norden Ab Forfarande for synkronisering av klockor ingaende i ett lokalt netverk av busstyp
US5041966A (en) * 1987-10-06 1991-08-20 Nec Corporation Partially distributed method for clock synchronization
JPH03296684A (ja) * 1990-04-16 1991-12-27 Toshiba Corp ネットワークステーションの時刻同期方式
US5311516A (en) * 1992-05-29 1994-05-10 Motorola, Inc. Paging system using message fragmentation to redistribute traffic
JPH0738606B2 (ja) * 1992-10-30 1995-04-26 日本電気株式会社 衛星通信方式
US5689688A (en) * 1993-11-16 1997-11-18 International Business Machines Corporation Probabilistic anonymous clock synchronization method and apparatus for synchronizing a local time scale with a reference time scale
US5566180A (en) * 1994-12-21 1996-10-15 Hewlett-Packard Company Method for recognizing events and synchronizing clocks
US5907685A (en) * 1995-08-04 1999-05-25 Microsoft Corporation System and method for synchronizing clocks in distributed computer nodes
US5790805A (en) * 1996-04-23 1998-08-04 Ncr Corporation Distributed timer synchronization
JP3339786B2 (ja) * 1996-12-02 2002-10-28 オークマ株式会社 環状通信路におけるタイマー同期化装置および初期化方法
US6128318A (en) * 1998-01-23 2000-10-03 Philips Electronics North America Corporation Method for synchronizing a cycle master node to a cycle slave node using synchronization information from an external network or sub-network which is supplied to the cycle slave node
US6199169B1 (en) * 1998-03-31 2001-03-06 Compaq Computer Corporation System and method for synchronizing time across a computer cluster
US6278710B1 (en) 1998-09-10 2001-08-21 Agilent Technologies, Inc. Enhancements to time synchronization in distributed systems
US6654356B1 (en) * 1998-10-29 2003-11-25 Agilent Technologies, Inc. Distributed control system architecture based on synchronized clocks
EP1052793B8 (en) * 1999-05-11 2009-04-01 Canon Kabushiki Kaisha Method and device for synchronisation between two networks
US6502141B1 (en) * 1999-12-14 2002-12-31 International Business Machines Corporation Method and system for approximate, monotonic time synchronization for a multiple node NUMA system
US6922417B2 (en) * 2000-01-28 2005-07-26 Compuware Corporation Method and system to calculate network latency, and to display the same field of the invention
US6898642B2 (en) * 2000-04-17 2005-05-24 International Business Machines Corporation Synchronous collaboration based on peer-to-peer communication
US7062528B2 (en) * 2000-07-14 2006-06-13 Sony Corporation Method and system for identifying a time specific event
US7272720B2 (en) * 2000-09-27 2007-09-18 Fujitsu Limited Date-and-time management device and signature generation apparatus with date-and-time management function
EP1198085B1 (en) * 2000-10-10 2011-06-08 Sony Deutschland GmbH Cycle synchronization between interconnected sub-networks
US6957357B2 (en) * 2000-10-30 2005-10-18 International Business Machines Corporation Clock synchronization with removal of clock skews through network measurements in derivation of a convext hull
US6801876B2 (en) * 2000-12-08 2004-10-05 Caterpillar Inc Method and apparatus of managing time for a processing system
US20020078243A1 (en) 2000-12-15 2002-06-20 International Business Machines Corporation Method and apparatus for time synchronization in a network data processing system
US7023884B2 (en) * 2000-12-19 2006-04-04 Lucent Technologies Inc. Clock offset estimation with bias correction
US7047435B2 (en) * 2000-12-19 2006-05-16 Siemens Corporate Research, Inc. System and method for clock-synchronization in distributed systems
US7194556B2 (en) * 2001-03-30 2007-03-20 Intel Corporation Method and apparatus for high accuracy distributed time synchronization using processor tick counters
EP1280024B1 (en) 2001-07-26 2009-04-01 Freescale Semiconductor, Inc. Clock synchronization in a distributed system
US7283568B2 (en) * 2001-09-11 2007-10-16 Netiq Corporation Methods, systems and computer program products for synchronizing clocks of nodes on a computer network
DE10147422A1 (de) * 2001-09-26 2003-04-24 Siemens Ag Kommunikationssystem und Verfahren zur Synchronisation eines Kommunikationszyklus
JP2003108539A (ja) * 2001-10-02 2003-04-11 Hitachi Kokusai Electric Inc サーバ及びクライアント間の時刻同期方法
US7231338B2 (en) * 2001-11-09 2007-06-12 Sun Microsystems, Inc. Distributed simulation system having phases of a timestep
US7020722B2 (en) * 2001-11-09 2006-03-28 Sun Microsystems, Inc. Synchronization of distributed simulation nodes by keeping timestep schedulers in lockstep
US7529653B2 (en) * 2001-11-09 2009-05-05 Sun Microsystems, Inc. Message packet logging in a distributed simulation system
US20030152110A1 (en) * 2002-02-08 2003-08-14 Johan Rune Synchronization of remote network nodes
US7111195B2 (en) * 2002-02-25 2006-09-19 General Electric Company Method and system for external clock to obtain multiple synchronized redundant computers
US7072432B2 (en) * 2002-07-05 2006-07-04 Meshnetworks, Inc. System and method for correcting the clock drift and maintaining the synchronization of low quality clocks in wireless networks
US7257133B2 (en) * 2002-09-30 2007-08-14 Lucent Technologies Inc. Method for estimating offset for clocks at network elements
US7085948B2 (en) 2003-04-24 2006-08-01 International Business Machines Corporation Method, apparatus, and computer program product for implementing time synchronization correction in computer systems
US7570669B2 (en) * 2003-08-08 2009-08-04 Opnet Technologies, Inc. Synchronizing packet traces
US7239581B2 (en) * 2004-08-24 2007-07-03 Symantec Operating Corporation Systems and methods for synchronizing the internal clocks of a plurality of processor modules
US7454521B2 (en) * 2003-10-23 2008-11-18 Microsoft Corporation Byzantine fault quantifying clock synchronization
US7356618B2 (en) 2003-12-31 2008-04-08 Intel Corporation Method and system for synchronizing platform clocks in a distributed wireless platform
US7768931B2 (en) 2004-10-07 2010-08-03 Westerngeco L.L.C. Hardware-based network packet timestamps: improved network clock synchronization
US20070058564A1 (en) * 2005-07-26 2007-03-15 University Of Maryland Method and device for managing data flow in a synchronous network
US7805763B2 (en) * 2005-09-29 2010-09-28 Motorola Mobility, Inc. Method for distributing values for networks with mobile nodes
CN1960242B (zh) * 2006-10-17 2011-09-07 中控科技集团有限公司 实现时钟同步的方法、装置、系统及分布式系统
US7787486B2 (en) * 2006-11-13 2010-08-31 Honeywell International Inc. Method and system for achieving low jitter in real-time switched networks
EP1936867B1 (en) * 2006-12-22 2013-02-20 Corvil Limited Delay measurements in network traffic

Also Published As

Publication number Publication date
RU2010139412A (ru) 2012-03-27
JP2011529208A (ja) 2011-12-01
AU2009228059A1 (en) 2009-10-01
CN101981527B (zh) 2012-12-26
KR20100127790A (ko) 2010-12-06
US8073976B2 (en) 2011-12-06
CA2716494A1 (en) 2009-10-01
KR101566570B1 (ko) 2015-11-05
EP2255264A2 (en) 2010-12-01
US20090248900A1 (en) 2009-10-01
AU2009228059B2 (en) 2014-01-23
WO2009121005A3 (en) 2009-12-23
EP2255264B1 (en) 2015-07-22
RU2485570C2 (ru) 2013-06-20
EP2255264A4 (en) 2014-04-09
WO2009121005A2 (en) 2009-10-01
CN101981527A (zh) 2011-02-23

Similar Documents

Publication Publication Date Title
JP5161363B2 (ja) 非同期分散システムにおけるクロックの同期
US10666371B2 (en) System for establishing and maintaining a clock reference indicating one-way latency in a data network
US6157957A (en) Clock synchronization system and method using a continuous conversion function for a communication network
US10178009B2 (en) Method, a computer program product, and a carrier for indicating one-way latency in a data network
EP2378718B1 (en) Method, node and system for controlling version in distributed system
Harrison et al. TICSync: Knowing when things happened
Poirier et al. Accurate offline synchronization of distributed traces using kernel-level events
EP2893656B1 (en) Method and system for clock offset and skew estimation
Cena et al. Synchronize your watches: Part I: General-purpose solutions for distributed real-time control
Johannessen Precise Time Synchronization across
Bezet et al. On-line and post-processing timestamp correspondence for free-running clock nodes, using a network clock

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120315

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120315

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121108

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121113

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121213

R150 Certificate of patent or registration of utility model

Ref document number: 5161363

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151221

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees