KR20100127790A - 비동기 분산 시스템에서의 클록의 동기화 - Google Patents
비동기 분산 시스템에서의 클록의 동기화 Download PDFInfo
- Publication number
- KR20100127790A KR20100127790A KR1020107021213A KR20107021213A KR20100127790A KR 20100127790 A KR20100127790 A KR 20100127790A KR 1020107021213 A KR1020107021213 A KR 1020107021213A KR 20107021213 A KR20107021213 A KR 20107021213A KR 20100127790 A KR20100127790 A KR 20100127790A
- Authority
- KR
- South Korea
- Prior art keywords
- computer system
- time
- clock
- observed
- message
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/14—Time supervision arrangements, e.g. real time clock
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/12—Synchronisation of different clock signals provided by a plurality of clock generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/72—Protecting 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/725—Protecting 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
- H04J3/0658—Clock or time synchronisation among packet nodes
- H04J3/0661—Clock or time synchronisation among packet nodes using timestamps
- H04J3/0664—Clock or time synchronisation among packet nodes using timestamps unidirectional timestamps
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
- H04J3/0658—Clock or time synchronisation among packet nodes
- H04J3/0661—Clock or time synchronisation among packet nodes using timestamps
- H04J3/0667—Bidirectional timestamps, e.g. NTP or PTP for compensation of clock drift and for compensation of propagation delays
Abstract
본 발명은 비동기 분산 시스템에서 클록을 동기화하는 방법, 시스템 및 컴퓨터 프로그램 제품에까지 이른다. 본 발명의 실시예는 예를 들어, 공용 비동기 (분산) 시스템 내의 구성원과 같은 피어 노드(관찰자) 집합의 전체에 걸쳐 신뢰할 수 있고 실제적인 공용 시간(time of day) 참조의 작성을 용이하게 한다. 의사 동기 시스템의 클래스는 공용 마스터에 관계없이, 노드(관찰자) 쌍 사이의 최악의 경우의 상대론적 시간 왜곡을 추적하고 누적함으로써 만들어질 수 있다. 이와 같이, 노드들의 협동은 다른 노드 상에서의 관찰 값이 제공되면, 한 노드가 관찰할 시간에 관한 하한값을 기본적으로 보증할 수 있다. 따라서, 본 발명의 실시예는 일반적인 외부 시간 클록 엔티티가 사용되지 않고, 이러한 비동기 시스템의 전체에 걸쳐 최악의 경우(즉, 최대 편차)의 현재 시간의 일관성 있는(기본적으로 안전한) 뷰를 제공하는데 적용될 수 있다.
Description
컴퓨터 시스템 및 관련 기술은 사회의 여러 측면에 영향을 끼친다. 실제로, 컴퓨터 시스템의 정보 처리 능력은 우리가 생활하고 일하는 방식을 변화시켰다. 컴퓨터 시스템은 이제, 컴퓨터 시스템의 출현 이전에 수동으로 수행되었던 많은 작업(예를 들어, 워드 프로세싱, 일정 계획, 회계 등)을 통상적으로 수행한다. 더욱 최근에, 컴퓨터 시스템은 서로 결합되고 그외 다른 전자 장치에 결합되어 유선 및무선 컴퓨터 네트워크를 형성했으며, 이러한 네트워크를 통해, 컴퓨터 시스템 및 그외 다른 전자 장치는 전자 데이터를 전송할 수 있다. 따라서, 많은 컴퓨팅 작업의 수행은 다수의 상이한 컴퓨터 시스템 및/또는 다수의 상이한 컴퓨팅 환경에 걸쳐 분산된다.
네트워크는 단순 네트워크-사용 가능 컴퓨팅 시스템이 흔히 "인터넷"이라고 하는 네트워크 집합체를 통해 지구 전체에 퍼져 있는 수백만의 다른 컴퓨팅 시스템 중의 어느 하나와 통신할 수 있을 만큼 사실상 풍부해졌다. 이러한 컴퓨팅 시스템은 데스크톱, 랩톱 또는 태블릿 퍼스널 컴퓨터; PDA(Personal Digital Assistants); 전화기; 또는 디지털 네트워크를 통해 통신할 수 있는 임의의 다른 컴퓨터 또는 장치를 포함할 수 있다.
네트워크를 통해 통신하기 위해, 한 컴퓨팅 시스템(여기에서 "송신 컴퓨팅 시스템"이라 함)은 전자 메시지를 구성하거나 그 밖에 달리 액세스하여, 네트워크를 통해 다른 컴퓨팅 시스템(여기에서 "수신 컴퓨팅 시스템"이라 함)에 전자 메시지를 전송한다. 전자 메시지는 전자 메일 또는 인스턴트 메시지일 때 사람인 사용자에 의해 읽혀질 수 있고, 또는 그 대신에, 수신 컴퓨팅 시스템에서 실행되는 응용 프로그램에 의해 읽혀질 수 있다. 전자 메시지는 사람인 사용자의 가능한 지원으로 송신 컴퓨팅 시스템에서 실행되는 응용 프로그램에 의해 구성될 수 있다.
분산 컴퓨팅 환경에서, 다수의 상이한 노드는 원하는 컴퓨팅 작업을 수행하기 위해 상호 작용할 수 있다. 컴퓨팅 작업의 적절한 수행은 다양한 상이한 노드가 서로 간의 시간에 대한 몇 가지 공통된 이해를 하는데 달려 있을 수 있다. 다수의 시스템은 모든 노드에 통상적으로 배포되는 절대 시간을 얻기 위해 노드들이 참조할 수 있는 "마스터" 클록을 이용한다. 그러나, 클록을 절대 시간에 동기화하는 데는 동기화 프로토콜 및 높은 연결성이 필요하다. 마스터 클록에 대한 참조를 통한 클록 동기화는 또한 잠재적인 초크(choke) 지점 및 실패의 중심 지점을 초래한다. 예를 들어, 인터넷과 같은 일부 네트워크상에서, 높은 연결성은 컴퓨터 시스템이 빈번히 네트워크에 연결하고 네트워크로부터 연결을 끊기 때문에 사실상 불가능하다.
일부 피어 투 피어 시스템은 의사 동기 동작을 달성하기 위해 공용 시간 클록 소스와의 주기적인 동기화를 사용한다. 그러므로, 이들 시스템은 또한 신뢰할 수 있고 안전한 시스템을 얻기 위해 특정 순간에(예를 들어, 새로운 구성원 가입시에) 존재해야 하고 사용 가능해야 하는 공통된 시간 마스터를 갖는다.
본 발명은 비동기 분산 시스템에서 클록을 동기화하는 방법, 시스템 및 컴퓨터 프로그램 제품에까지 이른다. 몇몇 실시예에서, 관찰하는 컴퓨터 시스템이 상이한 관찰된 컴퓨터 시스템에서의 시간이라고 하는 것과 관찰된 컴퓨터 시스템에서의 실제 (로컬) 시간 사이의 편차가 결정된다. 관찰하는 컴퓨터 시스템은 관찰된 컴퓨터 시스템과의 하나 이상의 메시지 교환에 참여한다.
메시지 교환은 메시지가 송신될 때 관찰하는 컴퓨터 시스템에서의 클록의 송신 시간을 관찰하는 컴퓨터 시스템이 기록하는 것을 포함한다. 메시지 교환은 관찰하는 컴퓨터 시스템이 관찰된 컴퓨터 시스템에 하나 이상의 메시지를 송신하는 것을 포함한다. 메시지 교환은 관찰하는 컴퓨터 시스템이 관찰된 컴퓨터 시스템으로부터 메시지에 응답하는 상관성 메시지를 차후에 수신하는 것을 포함한다. 상관성 메시지는 관찰된 컴퓨터 시스템으로부터의 시간-자체의 로컬 시간을 포함한다. 메시지 교환은 상관성 메시지가 수신될 때 관찰하는 컴퓨터 시스템에서의 (로컬) 클록의 수신된 시간을 관찰하는 컴퓨터 시스템이 기록하는 것을 포함한다. 메시지 교환은 상관성 메시지가 수신될 때 관찰된 컴퓨터 시스템의 로컬 시간을 관찰하는 컴퓨터 시스템이 기록하는 것을 포함한다.
관찰하는 컴퓨터 시스템은 메시지를 송신하기 위해 기록된 그 로컬 시간과 상관성 메시지에 포함된 관찰된 컴퓨터 시스템으로부터의 시간 사이의 차이, 클록 퀀텀(quantum) 제약조건 및 클록 드리프트(drift) 제약조건에 기초하여, 관찰하는 컴퓨터 시스템의 로컬 시간에 관한 관찰된 컴퓨터 시스템에서의 시간에 대해 하한값을 계산한다. 관찰하는 컴퓨터 시스템은 상관성 메시지를 수신하기 위해 기록된 로컬 시간과 상관성 메시지에 포함된 관찰된 컴퓨터 시스템으로부터의 시간 사이의 차이, 클록 퀀텀 제약조건 및 클록 드리프트 제약조건에 기초하여, 관찰하는 컴퓨터 시스템의 시간에 관한 관찰된 컴퓨터 시스템에서의 시간에 대해 상한값을 계산한다.
관찰하는 컴퓨터 시스템은 상한값과 하한값 사이의 차이를 계산한다. 관찰하는 컴퓨터 시스템은 계산된 차이를 평균 계수로 나눔으로써, 이를테면, 예를 들어 계산된 차이를 절반으로 나눔으로써, 관찰하는 컴퓨터 시스템이 관찰된 컴퓨터 시스템에서의 시간이라고 하는 것과 관찰된 컴퓨터 시스템에서의 실제 시간 사이의 최대 편차를 계산한다. 후속 메시지 교환은 하한값과 상한값을 더욱 구체화하기 위해 이용될 수 있다. 관찰하는 컴퓨터 시스템은 하한값과 상한값에 기초하여 관찰된 컴퓨터 시스템에서 이벤트가 발생했을 때를 나타내는 시간 범위를 계산할 수 있다.
그외 다른 실시예에서, 다수의 컴퓨터 시스템을 포함하는 비동기 분산 시스템의 상이한 컴퓨터 시스템에서의 클록들 사이의 최대 편차가 계산된다. 컴퓨터 시스템은 클록 퀀텀 제약조건을 액세스한다. 클록 퀀텀 제약조건은 비동기 분산 시스템의 컴퓨터 시스템들 사이에서의 클록 양자화 사이의 최대 차이를 나타낸다. 컴퓨터 시스템은 드리프트 비율 제약조건을 액세스한다. 드리프트 비율 제약조건은 비동기 분산 시스템의 각 컴퓨터 시스템에 대한 지정된 기간 내의 최대 클록 드리프트를 나타낸다.
컴퓨터 시스템은 최대 왕복 제약조건을 액세스한다. 최대 왕복 제약조건은 비동기 분산 시스템의 임의의 2개의 컴퓨터 시스템 사이에서 발생하는 요청/회신 메시지 교환을 위한 최대 시간 양을 나타낸다. 컴퓨터 시스템은 클록 퀀텀 제약조건, 드리프트 비율 제약조건 및 최대 왕복 제약조건에 기초하여 비동기 시스템의 상이한 컴퓨터 시스템에서의 클록들 사이의 최대 편차를 계산한다.
이 요약은 아래의 상세한 설명에서 더욱 설명되는 개념들의 선택된 개념을 단순화된 형태로 소개하기 위해 제공된다. 이 요약은 청구된 주제의 핵심적인 기능이나 중요한 기능을 식별하고자 하는 것도 아니고, 청구된 주제의 범위를 결정하는데 보조로 사용되고자 하는 것도 아니다.
본 발명의 추가 기능 및 장점은 다음의 상세한 설명에서 설명될 것이고, 부분적으로 상세한 설명으로부터 명백해질 것이며, 또는 본 발명의 실시에 의해 알게 될 수 있다. 본 발명의 기능 및 장점은 첨부된 청구범위에서 특별히 지적된 기기 및 조합에 의해 실현되고 얻어질 수 있다. 본 발명의 이들 및 그외 다른 기능은 다음의 상세한 설명 및 첨부된 청구범위로부터 더욱 충분히 명백해질 것이고, 또는 이후 설명되는 본 발명의 실시에 의해 알게 될 수 있다.
본 발명의 상기 및 그외 다른 장점 및 기능이 얻어질 수 있는 방식을 설명하기 위해, 위에서 간략하게 설명된 본 발명의 더욱 상세한 설명은 첨부된 도면에 도시된 특정 실시예를 참조하여 제공될 것이다. 이들 도면은 단지 본 발명의 일반적인 실시예를 도시한 것일 뿐이므로, 본 발명의 범위를 제한하는 것으로 생각해서는 안 된다는 것을 이해하고, 본 발명은 첨부 도면을 사용하여 추가적인 특정 내용 및 세부 내용이 기술되고 설명될 것이다.
도 1은 비동기 분산 시스템에서의 클록의 동기화를 용이하게 하는 예시적인 비동기 분산 시스템을 도시한 도면.
도 2는 관찰하는 컴퓨터 시스템이 관찰된 컴퓨터 시스템에서의 시간이라고 하는 것과 관찰된 컴퓨터 시스템에서의 실제 시간 사이의 편차를 결정하는 예시적인 방법의 순서도.
도 3은 관찰된 컴퓨터 시스템에서 이벤트가 발생한 시간을 나타내는 예시적인 방법의 순서도.
도 4는 다수의 컴퓨터 시스템을 포함하는 비동기 분산 시스템의 상이한 컴퓨터 시스템에서의 클록들 사이의 최대 편차를 계산하는 예시적인 방법의 순서도.
도 5는 다수의 컴퓨터 시스템을 포함하는 비동기 분산 시스템의 상이한 컴퓨터 시스템에서의 클록들 사이의 최대 편차의 계산을 용이하게 하는 예시적인 컴퓨터 아키텍처를 도시한 도면.
도 1은 비동기 분산 시스템에서의 클록의 동기화를 용이하게 하는 예시적인 비동기 분산 시스템을 도시한 도면.
도 2는 관찰하는 컴퓨터 시스템이 관찰된 컴퓨터 시스템에서의 시간이라고 하는 것과 관찰된 컴퓨터 시스템에서의 실제 시간 사이의 편차를 결정하는 예시적인 방법의 순서도.
도 3은 관찰된 컴퓨터 시스템에서 이벤트가 발생한 시간을 나타내는 예시적인 방법의 순서도.
도 4는 다수의 컴퓨터 시스템을 포함하는 비동기 분산 시스템의 상이한 컴퓨터 시스템에서의 클록들 사이의 최대 편차를 계산하는 예시적인 방법의 순서도.
도 5는 다수의 컴퓨터 시스템을 포함하는 비동기 분산 시스템의 상이한 컴퓨터 시스템에서의 클록들 사이의 최대 편차의 계산을 용이하게 하는 예시적인 컴퓨터 아키텍처를 도시한 도면.
본 발명은 비동기 분산 시스템에서 클록을 동기화하는 방법, 시스템 및 컴퓨터 프로그램 제품에까지 이른다. 몇몇 실시예에서, 관찰하는 컴퓨터 시스템이 상이한 관찰된 컴퓨터 시스템에서의 시간이라고 하는 것과 관찰된 컴퓨터 시스템에서의 실제 (로컬) 시간 사이의 편차가 결정된다. 관찰하는 컴퓨터 시스템은 관찰된 컴퓨터 시스템과의 하나 이상의 메시지 교환에 참여한다.
메시지 교환은 메시지가 송신될 때 관찰하는 컴퓨터 시스템에서의 클록의 송신 시간을 관찰하는 컴퓨터 시스템이 기록하는 것을 포함한다. 메시지 교환은 관찰하는 컴퓨터 시스템이 관찰된 컴퓨터 시스템에 하나 이상의 메시지를 송신하는 것을 포함한다. 메시지 교환은 관찰하는 컴퓨터 시스템이 관찰된 컴퓨터 시스템으로부터 메시지에 응답하는 상관성 메시지를 차후에 수신하는 것을 포함한다. 상관성 메시지는 관찰된 컴퓨터 시스템으로부터의 시간-자체의 로컬 시간을 포함한다. 메시지 교환은 상관성 메시지가 수신될 때 관찰하는 컴퓨터 시스템에서의 (로컬) 클록의 수신된 시간을 관찰하는 컴퓨터 시스템이 기록하는 것을 포함한다. 메시지 교환은 상관성 메시지가 수신될 때 관찰된 컴퓨터 시스템의 로컬 시간을 관찰하는 컴퓨터 시스템이 기록하는 것을 포함한다.
관찰하는 컴퓨터 시스템은 메시지를 송신하기 위해 기록된 그 로컬 시간과 상관성 메시지에 포함된 관찰된 컴퓨터 시스템으로부터의 시간 사이의 차이, 클록 퀀텀 제약조건 및 클록 드리프트 제약조건에 기초하여, 관찰하는 컴퓨터 시스템의 로컬 시간에 관한 관찰된 컴퓨터 시스템에서의 시간에 대해 하한값을 계산한다. 관찰하는 컴퓨터 시스템은 상관성 메시지를 수신하기 위해 기록된 로컬 시간과 상관성 메시지에 포함된 관찰된 컴퓨터 시스템으로부터의 시간 사이의 차이, 클록 퀀텀 제약조건 및 클록 드리프트 제약조건에 기초하여, 관찰하는 컴퓨터 시스템의 시간에 관한 관찰된 컴퓨터 시스템에서의 시간에 대해 상한값을 계산한다.
관찰하는 컴퓨터 시스템은 상한값과 하한값 사이의 차이를 계산한다. 관찰하는 컴퓨터 시스템은 계산된 차이를 평균 계수로 나눔으로써, 이를테면, 예를 들어 계산된 차이를 절반으로 나눔으로써, 관찰하는 컴퓨터 시스템이 관찰된 컴퓨터 시스템에서의 시간이라고 하는 것과 관찰된 컴퓨터 시스템에서의 실제 시간 사이의 최대 편차를 계산한다. 후속 메시지 교환은 하한값과 상한값을 더욱 구체화하기 위해 이용될 수 있다. 관찰하는 컴퓨터 시스템은 하한값과 상한값에 기초하여 관찰된 컴퓨터 시스템에서 이벤트가 발생했을 때를 나타내는 시간 범위를 계산할 수 있다.
그외 다른 실시예에서, 다수의 컴퓨터 시스템을 포함하는 비동기 분산 시스템의 상이한 컴퓨터 시스템에서의 클록들 사이의 최대 편차가 계산된다. 컴퓨터 시스템은 클록 퀀텀 제약조건을 액세스한다. 클록 퀀텀 제약조건은 비동기 분산 시스템의 컴퓨터 시스템들 사이에서의 클록 양자화 사이의 최대 차이를 나타낸다. 컴퓨터 시스템은 드리프트 비율 제약조건을 액세스한다. 드리프트 비율 제약조건은 비동기 분산 시스템의 각각의 컴퓨터 시스템에 대한 지정된 기간 내의 최대 클록 드리프트를 나타낸다.
컴퓨터 시스템은 최대 왕복 제약조건을 액세스한다. 최대 왕복 제약조건은 비동기 분산 시스템의 임의의 2개의 컴퓨터 시스템 사이에서 발생하는 요청/회신 메시지 교환을 위한 최대 시간 양을 나타낸다. 컴퓨터 시스템은 클록 퀀텀 제약조건, 드리프트 비율 제약조건 및 최대 왕복 제약조건에 기초하여 비동기 시스템의 상이한 컴퓨터 시스템에서의 클록들 사이의 최대 편차를 계산한다.
본 발명의 실시예는 아래에 더욱 상세하게 설명되는 바와 같이, 컴퓨터 하드웨어를 포함하는 특수 목적 및 범용 컴퓨터를 포함하거나 이용할 수 있다. 본 발명의 범위 내의 실시예는 또한 컴퓨터 실행가능 명령어 및/또는 데이터 구조를 전달하거나 저장하는 물리적 및 그외 다른 컴퓨터 판독가능 매체를 포함한다. 이러한 컴퓨터 판독가능 매체는 범용 또는 특수 목적 컴퓨터 시스템에 의해 액세스될 수 있는 임의의 사용 가능한 매체일 수 있다. 컴퓨터 실행가능 명령어를 저장하는 컴퓨터 판독가능 매체는 물리적 저장 매체이다. 컴퓨터 실행가능 명령어를 전달하는 컴퓨터 판독가능 매체는 전송 매체이다. 그러므로, 예시적이고 비제한적으로, 본 발명의 실시예는 최소한 2개의 별도의 상이한 종류의 컴퓨터 판독가능 매체: 물리적 저장 매체와 전송 매체를 포함할 수 있다.
물리적 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 기타 광 디스크 저장장치, 자기 디스크 저장 장치 또는 기타 자기 저장 장치를 포함하고, 또는 컴퓨터 실행가능 명령어 또는 데이터 구조의 형태로 원하는 프로그램 코드 수단을 저장하기 위해 사용될 수 있고 범용 또는 특수 목적 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함한다.
"네트워크"는 컴퓨터 시스템 및/또는 모듈 및/또는 기타 전자 장치 사이에서 전자 데이터의 전송을 가능하게 하는 하나 이상의 데이터 링크로 정의된다. 정보가 네트워크 또는 다른 통신 연결(유선, 무선, 또는 유선과 무선의 조합)을 통해 컴퓨터에 전송되거나 제공될 때, 컴퓨터는 적절하게 이러한 연결을 전송 매체로 본다. 전송 매체는 컴퓨터 실행가능 명령어 또는 데이터 구조의 형태로 원하는 프로그램 코드 수단을 전달하기 위해 사용될 수 있고, 범용 또는 특수 목적 컴퓨터에 의해 액세스될 수 있는 네트워크 및/또는 데이터 링크를 포함할 수 있다. 위의 조합은 또한 컴퓨터 판독가능 매체의 범위에 포함되어야 한다.
더욱이, 다양한 컴퓨터 시스템 구성요소에 도달하면, 컴퓨터 실행가능 명령어 또는 데이터 구조 형태의 프로그램 코드 수단은 전송 매체에서 물리적 저장 매체로(또는 이와 반대로) 자동으로 전송될 수 있다. 예를 들어, 네트워크 또는 데이터 링크를 통해 수신된 컴퓨터 실행가능 명령어 또는 데이터 구조는 네트워크 인터페이스 모듈(예를 들어, "NIC") 내의 RAM에 버퍼링된 다음에, 최종적으로 컴퓨터 시스템 RAM 및/또는 컴퓨터 시스템에 있는 덜 휘발성인 물리적 저장 매체에 전송될 수 있다. 그러므로, 물리적 저장 매체는, 또한 (또는 심지어는 주로) 전송 매체를 이용하는 컴퓨터 시스템 구성요소에 포함될 수 있다는 것을 이해할 수 있을 것이다.
컴퓨터 실행가능 명령어는 예를 들어, 범용 컴퓨터, 특수 목적 컴퓨터 또는 특수 목적 처리 장치가 특정 기능 또는 기능 그룹을 실행하게 하는 명령어 및 데이터를 포함한다. 컴퓨터 실행가능 명령어는 예를 들어, 바이너리, 어셈블리 언어와 같은 중간 포맷 명령어, 또는 심지어 소스 코드일 수 있다. 주제가 구조적 기능 및/또는 방법적 동작에 특정된 언어로 설명되었지만, 첨부된 청구범위에 정의된 주제는 반드시 위에서 설명된 기능 또는 동작에 제한되는 것은 아니라는 것을 이해할 것이다. 오히려, 설명된 기능 및 동작은 청구범위를 구현하는 예시적인 형태로 개시된다.
본 분야에 숙련된 기술자들은 본 발명이 개인용 컴퓨터, 데스크톱 컴퓨터, 랩톱 컴퓨터, 메시지 프로세서, 핸드헬드 장치, 멀티 프로세서 시스템, 마이크로프로세서 기반 또는 프로그램가능 소비자 전자제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 모바일 전화, PDA, 페이저, 라우터, 스위치 등을 포함하는 여러 유형의 컴퓨터 시스템 구성을 갖는 네트워크 컴퓨팅 환경에서 실시될 수 있다는 것을 알 수 있을 것이다. 본 발명은 또한, 네트워크를 통해 (유선 데이터 링크, 무선 데이터 링크, 또는 유선과 무선 링크의 조합에 의해) 연결되는 로컬 및 원격 컴퓨터 시스템 둘 다가 작업을 수행하는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 시스템 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치 둘 다에 위치할 수 있다.
이 설명 및 다음의 청구범위에서, 양자화된다는 것은 연속적이지 않는 것, 즉 특정 기간(예를 들어, 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가 지정된 콘텐츠를 갖는 OY에 (예를 들어, 요청) 메시지를 송신하는 이벤트를 나타낸다.
7. OX.receive(OY, {contents})는 OX가 지정된 콘텐츠를 갖는 OY로부터 (예를 들어, 회신) 메시지를 수신하는 이벤트를 나타낸다.
그러므로, 다음 비동기 분산 시스템 제약 조건에 있어서:
A. 클록의 값은 단조 증가한다:
t0 < t1이면, X(t0) <= X(t1)
B. 임의의 클록 X에 대해,
t0 + Q < t1이면, X(t0) < X(t1)
이 되도록, 클록 퀀텀 Q에 관한 상한값이 있다.
C. 임의의 클록 X 및 이벤트 t0 < t1에 대해,
t0 < t1이면, (1 - D) * (X(t1) - X(t0)) <= (t1 - t0) + Q
이 되도록, 클록 드리프트 D에 관한 상한값이 있다.
D. 그리고,
t0 < t1이면, (t1 - t0) <= ((1 + D) * (X(t1) - X(t0)) + Q
이다.
설명된 표기법을 이용하면, 설명된 제약조건을 갖는 비동기 분산 시스템에서, 다음과 같은 메시지 교환 시퀀스가 발생할 수 있다:
메시지 교환 시퀀스는 OX가 OY에게 OY의 현재 로컬 클록 값을 물어보고, 요청했을 때의 시간(t0)과 다시 회신을 얻었을 때의 시간(t6)을 기록하는 요청/회신 작업에 대한 것이다. OX는 X의 로컬 클록이 값 X(t0)을 가졌을 때와 X의 로컬 클록이 값 X(t6)을 가졌을 때 사이의 어떤 시점에서 Y가 값 Y(t3)를 갖는다는 것을 이제 알고 있다. 메시지의 조합이 전체 순서를 나타내기 위해 사용될 수 있긴 하지만, OX와 OY의 각각은 자체의 독립된 타임 라인에 따라 작동할 수 있다.
드리프트가 없는 완벽한 로컬 클록의 경우에, OX는 t6 후의 임의의 시간에 클록 Y의 값에 관해 다음과 같은 경계값을 설정할 수 있다:
양자화를 고려하면, OX는 t6 후의 임의의 시간에 클록 Y의 값에 관해 다음과 같은 경계값을 설정할 수 있다:
Q항은 클록이 양자화됨을 나타낸다. 양자화가 2개의 Q항을 각각의 경계값에 추가하는 것을 살펴보기 위해, X(t0)=0, Y(t3)=1 및 X(t6)=2가 되도록 관찰이 이루어졌다고 가정해보자. 이것은 클록이 2의 불확실성과 일치하고 있음을 제안할 것이다. 실제 불확실성을 찾기 위해, 이러한 관찰을 가져왔을 수 있는 3개의 클록의 각각에 대한 경계 사례가 고려될 수 있다:
처음의 3열은 클록이 제공된 값으로 변경될 때의 시간에 관한 관찰 시간을 나타낸다. 예를 들어, 제2 열에서, "2-Δ"는 값이 1에서 2로 변하는 Y의 이벤트보다 먼저 일어나는 이벤트의 시간을 나타낸다. 제4 열은 열 1과 2 사이의 차이이고, 제5 열은 열 2와 3 사이의 차이이다.
마지막 2개의 열로부터의 최대 값을 취하고, Δ을 0에 가깝게 하면, 우리는 최대 불확실성이 어느 방향으로든 2라는 것을 알 수 있다. 이것을 관찰된 불확실성과 비교하여, 양자화는 2개의 퀀텀의 가능한 오차를 도입했다. 이것은 이들 값에 대한 변화가 관찰 결과 및 가능한 경계 사례 둘 다에 동일하게 영향을 미친다는 것을 관찰함으로써 임의의 X(t0), Y(t3) 및 X(t6)으로 일반화될 수 있다. 그러므로, 양자화는 2Q와 같은 오차 항을 도입한다.
양자화 및 클록 드리프트를 고려하면, OX는 t6 후의 임의의 시간에 클록 Y의 값에 관해 다음과 같은 경계값을 설정할 수 있다:
이러한 값들 사이의 차이는 다음과 같다:
이것은 다음과 같은 최대 오차를 암시한다:
이 식에서, (X(t6) - X(t0))은 OX에서 OY로 그리고 반대로 요청-회신 상호작용에 걸리는 시간이다. Q는 클록의 값이 업데이트되는 횟수에 의존한다. 마지막 항인 2D(X(t) - (X(t6)+X(t0))/2 + 2Q)는 경계값이 잠재적인 클록 드리프트로 인해 시간이 흐름에 따라 어떻게 약해지는지(즉, 감소하는지) 나타낸다.
메시지 교환 시퀀스 쿼리는 여러 번 반복될 수 있고, OX는 임의의 쿼리로부터 가장 좁은 상한값을 선택할 수 있고, 임의의 쿼리로부터 가장 좁은 하한값을 선택할 수 있다. 선택시에, 가장 좁은 상한값 및 가장 좁은 하한값은 동일한 쿼리로부터의 것일 필요는 없다. 메시지 교환 시퀀스 쿼리를 주기적으로 반복함으로써, 관찰자(이 예에서는 OX)는 임의의 시간 T에, 최근의 측정이 있었을 것이기 때문에, 제3항을 최소화할 수 있다.
도 1은 비동기 분산 시스템(100)에서의 클록 동기화를 용이하게 하는 비동기 분산 시스템(100)을 도시한 것이다. 도 1을 참조하면, 컴퓨터 아키텍처(100)는 컴퓨터 시스템(101, 151) 및 그외 다른 컴퓨터 시스템(191)을 포함한다. 도시된 컴퓨터 시스템 및 그 대응하는 구성요소의 각각은 예를 들어, LAN(Local Area Network), WAN(Wide Area Network), USB(Universal Serial Bus) 및 심지어 인터넷과 같은 통신 경로를 통해 서로 접속될 수 있다(또는 그러한 통신 경로의 일부일 수 있다). 따라서, 임의의 다른 접속된 구성요소뿐만 아니라 도시된 구성요소의 각각은 네트워크를 통해 메시지 관련 데이터 및 교환 메시지 관련 데이터(예를 들어, 인터넷 프로토콜(IP) 데이터그램, 및 IP 데이터그램을 이용하는 그외 다른 더 높은 계층의 프로토콜, 이를테면 TCP(Transmission Control Protocol), HTTP(Hypertext Transfer Protocol), SMTP(Simple Mail Transfer Protocol) 등)를 만들 수 있다.
비동기 분산 시스템(100)은 사실상 임의의 유형의 비동기 시스템, 이를테면, 예를 들어 피어 투 피어 시스템일 수 있다.
도시된 바와 같이, 컴퓨터 시스템(101)은 클록 관리 모듈(102) 및 클록(103)을 포함한다. 일반적으로, 컴퓨터 시스템(101)은 그외 다른 컴퓨터 시스템과의 요청/회신 메시지 교환 시퀀스에 참여하고, 요청/회신 메시지 교환 시퀀스와 관련된 시간 데이터에 기초하여, 관찰된 컴퓨터 시스템에서의 시간으로 알려져 있는 시간을 유지하도록 구성된다.
클록 관리 모듈(102)은 컴퓨터 시스템(101)과 비동기 분산 시스템(100)의 그외 다른 컴퓨터 시스템 사이의 통신과 관련된 시간 데이터(예를 들어, 시간 데이터(194))를 기록하고 유지하도록 구성된다. 클록 관리 모듈(102)은 메시지가 컴퓨터 시스템(101)으로부터 송신될 때와 컴퓨터 시스템(101)에서 수신될 때, 클록(103)에서 시간을 기록할 수 있다. 클록 관리 모듈(102)은 또한 요청/회신 메시지 교환 시퀀스의 일부로서 수신된 회신 메시지에 포함되는 관찰된 컴퓨터 시스템(예를 들어, 컴퓨터 시스템(151))으로부터의 수신된 시간을 저장할 수 있다. 기록되고 수신된 시간으로부터, 클록 관리 모듈(102)은 지정된 범위 내에서 관찰된 컴퓨터 시스템에서의 이벤트 발생 시간을 나타낼 수 있다.
도시된 바와 같이, 컴퓨터 시스템(151)은 클록 관리 모듈(152) 및 클록(153)을 포함한다. 일반적으로, 컴퓨터 시스템(151)은 그외 다른 컴퓨터 시스템과의 요청/회신 메시지 교환 시퀀스에 참여하고, 요청/회신 메시지 교환 시퀀스와 관련된 시간 데이터에 기초하여 관찰된 컴퓨터 시스템에서의 시간으로 알려져 있는 시간을 유지하도록 구성된다.
클록 관리 모듈(152)은 컴퓨터 시스템(151)과 비동기 분산 시스템(100)의 그외 다른 컴퓨터 시스템 사이의 통신과 관련된 시간 데이터를 기록하고 유지하도록 구성된다. 클록 관리 모듈(152)은 메시지가 컴퓨터 시스템(151)으로부터 송신될 때와 컴퓨터 시스템(151)에서 수신될 때, 클록(153)에서 시간을 기록할 수 있다. 클록 관리 모듈(152)은 또한 요청/회신 메시지 교환 시퀀스의 일부로서 수신된 회신 메시지에 포함되는 관찰된 컴퓨터 시스템(예를 들어, 컴퓨터 시스템(101))으로부터의 수신된 시간을 저장할 수 있다. 기록되고 수신된 시간으로부터, 클록 관리 모듈(152)은 지정된 범위 내에서 관찰된 컴퓨터 시스템에서의 이벤트 발생 시간을 나타낼 수 있다.
본 발명의 실시예는 자체의 클록을 관찰하고, 그외 다른 클록에 대한 값의 범위를 추론하는 컴퓨터 시스템을 포함한다. 예를 들어, 컴퓨터 시스템(101)은 클록(103)을 관찰할 수 있고, (그외 다른 컴퓨터 시스템(191)에서의 클록뿐만 아니라) 클록(153)에 대한 값의 범위를 추론할 수 있다. 이와 유시하게, 컴퓨터 시스템(151)은 클록(153)을 관찰할 수 있고, (그외 다른 컴퓨터 시스템(191)에서의 클록뿐만 아니라) 클록(103)에 대한 값의 범위를 추론할 수 있다. 그외 다른 컴퓨터 시스템(191)은 또한 자체의 클록을 관찰할 수 있고, 클록(103) 및 클록(153)의 각각에 대한 값의 범위를 추론할 수 있다.
클록 관리 모듈은 또한 비동기 분산 시스템(100) 내의 클록들 사이의 최대 양자화 차이 Q(예를 들어, 양자화(192)) 및 비동기 분산 시스템(100) 내의 기간 D 당 최대 클록 드리프트(예를 들어, 드리프트(193))로 구성될 수 있다.
따라서, 본 발명의 몇몇 실시예는 관찰하는 컴퓨터 시스템이 관찰된 컴퓨터 시스템에서의 시간이라고 하는 것과 관찰된 컴퓨터 시스템에서의 실제 시간 차이의 편차를 결정하기 위해 요청/회신 메시지 교환을 이용하는 것을 포함한다. 요청/회신 메시지 교환은 요청 메시지 및 대응하는 회신 메시지를 포함할 수 있다. 예를 들어, 메시지 교환(184)은 요청(181) 및 회신(182)을 포함한다. 결정된 편차로부터, 관찰하는 컴퓨터 시스템은 예를 들어, 관찰된 컴퓨터 시스템에서의 클록에 대한 값의 범위를 추론할 수 있다. 그러나, (예를 들어, 명시된 요청/회신보다) 느슨한 상관관계를 갖는 메시지가 또한 사용될 수 있다.
그러므로, 본 발명의 그외 다른 실시예는 관찰하는 컴퓨터 시스템이 관찰된 컴퓨터 시스템에서의 시간이라고 하는 것과 관찰된 컴퓨터 시스템에서의 실제 시간 사이의 편차를 결정하기 위해 송신된 메시지와 수신된 메시지 사이의 느슨한 상관관계를 갖는 메시지 교환을 이용한다. 예를 들어, 한 컴퓨터는 다수의 요청을 송신하고, (예를 들어, 그외 다른 메시지 교환(185)에 의해 표시된) 적은 수의 또는 단 하나의 대응하는 응답을 돌려받을 수 있다. 더욱이, 한 컴퓨터로부터의 회신은 또한 한 컴퓨터에서 다시 다른 컴퓨터로의 요청을 나타낼 수 있다. 그러므로, 메시지는 요청 및 회신 둘 다를 나타낼 수 있다. 게다가, 종종, 수신된 요청에 대한 회신이 반환될 때를 지시하는 요구사항이 없다. 그러므로, 요청/회신 쌍 사이에 강한 상관관계가 있을 때라도, 회신이 반환되는 때에 관한 제약조건이 없을 수 있다. 예를 들어, 요청/회신(184) 내에서, 요청(181)의 수신에 응답하여 회신(182)이 반환되는 때를 지시하는 시간 제약조건이 없을 수 있다.
도 2는 관찰하는 컴퓨터 시스템이 관찰된 컴퓨터 시스템에서의 시간이라고 하는 것과 관찰된 컴퓨터 시스템에서의 실제 시간의 사이의 편차를 결정하기 위한 예시적인 방법(200)의 순서도이다. 방법(200)은 비동기 분산 시스템(100)에서의 구성요소 및 데이터와 관련하여 설명될 것이다.
방법(200)은 관찰된 컴퓨터 시스템과의 하나 이상의 메시지 교환에 참여하는 동작을 포함한다(동작(201)). 예를 들어, 컴퓨터 시스템(101)은 컴퓨터 시스템(151)과의 메시지 교환(184)에 참여할 수 있다. 대안적으로, 컴퓨터 시스템(101)은 하나 이상의 추가 메시지 교환(185)에 참여할 수 있다. 메시지 교환은 메시지 교환(184)보다, 요청과 회신 사이의 느슨한 결합 관계를 가질 수 있다. 그외 다른 실시예에서, 컴퓨터 시스템(101)은 추가 메시지 교환(185)에는 참여하지만, 메시지 교환(184)에는 참여하지 않는다. 그러므로, 컴퓨터 시스템(101)은 임의의 요청/회신 메시지 교환의 상관된 메시지를 포함하지 않는 느슨한 결합 메시지 교환에 참여할 수 있다.
관찰된 컴퓨터 시스템과의 하나 이상의 메시지 교환에의 참여는 메시지가 송신될 때 관찰하는 컴퓨터 시스템에서의 클록 시간을 기록하는 동작을 포함할 수 있다(동작(202)). 예를 들어, 클록 관리 모듈(102)은 시간 데이터(194) 내에 시간 입력(171)을 기록할 수 있다. 시간 입력(171)은 컴퓨터 시스템(101)이 요청(181)을 보낼 때의 클록(103)에서의 시간을, 예를 들어 hh:mm:ss.ms 포맷으로 기록한다. 그러므로, 시간 입력(181)은 클록(103)이 8시를 나타냈을 때 요청(181)이 송신되었음을 나타낸다. 대안적으로 또는 조합하여, 시간 입력은 또한 그외 다른 요청(예를 들어, 추가 메시지 교환(185)에 포함될 요청)에 대해 추가될 수 있다. 관찰된 컴퓨터 시스템과의 하나 이상의 메시지 교환에의 참여는 메시지를 관찰된 컴퓨터 시스템에 송신하는 동작을 포함할 수 있는데, 메시지는 기록된 송신 시간을 포함한다(동작(203)). 예를 들어, 컴퓨터 시스템(101)은 요청(181)을 컴퓨터 시스템(151)에 송신할 수 있다. 요청(181)은 시간 입력(171)으로부터의 정보를 포함할 수 있다. 대안적으로 또는 조합하여, (예를 들어, 추가 메시지 교환(185)의 일부로서의) 하나 이상의 다른 요청이 또한 컴퓨터 시스템(101)에서 컴퓨터 시스템(151)으로 송신될 수 있다.
관찰된 컴퓨터 시스템과의 하나 이상의 메시지 교환에의 참여는 관찰된 컴퓨터 시스템으로부터 메시지에 응답하는 상관성 메시지를 차후에 수신하는 동작을 포함할 수 있는데, 상관성 메시지는 관찰된 컴퓨터 시스템으로부터의 시간을 포함한다(동작(204)). 예를 들어, 컴퓨터 시스템(101)은 컴퓨터 시스템(151)으로부터 회신(182)을 수신할 수 있다. 회신(182)은 시간(183)을 포함한다. 시간(183)은 클록(153)에서의 관찰된 시간(예를 들어, 회신(182)이 송신된 때, 요청(181)이 처리된 때 등등)을 나타낸다. 대안적으로 또는 조합하여, 하나 이상의 다른 회신이 또한 컴퓨터 시스템(151)으로부터 수신될 수 있다(예를 들어, 추가 메시지 교환(185)에 포함된 회신). 그러므로, 하나 이상의 회신은 클록(153)에서의 관찰된 시간을 나타내는 시간을 포함할 수 있다.
관찰된 컴퓨터 시스템과의 하나 이상의 메시지 교환에의 참여는 상관성 메시지가 수신될 때 관찰하는 컴퓨터 시스템에서의 클록의 수신 시간을 기록하는 동작을 포함할 수 있다(동작(205)). 예를 들어, 클록 관리 모듈(102)은 시간 데이터(194) 내에 시간 입력(172)을 기록할 수 있다. 시간 입력(172)은 컴퓨터 시스템(101)이 회신(182)을 수신했을 때의 클록(103)에서의 시간을 기록한다. 그러므로, 시간 입력(172)은 클록(103)이 8시 64 ms를 나타냈을 때 회신(182)이 수신되었음을 나타낸다. 대안적으로 또는 조합하여, 클록 관리 모듈(102)은 또한 추가 메시지 교환(185)에 포함된 그외 다른 회신이 수신되었을 때를 나타내는 시간 입력을 (시간 데이터(194) 내에) 기록할 수 있다.
관찰된 컴퓨터 시스템과의 하나 이상의 메시지 교환에의 참여는 관찰된 컴퓨터 시스템으로부터의 시간을 기록하는 동작을 포함할 수 있다(동작(206)). 예를 들어, 클록 관리 모듈(102)은 시간 데이터(194) 내에 시간 입력(173)을 기록할 수 있다. 시간 입력(173)은 컴퓨터 시스템(151)이 클록(153)에서 관찰한 시간(예를 들어, 요청(181)의 수신 시간, 요청(181) 처리 동안의 시간 등등)을 기록한다. 시간 입력(173)은 요청/회신 교환 시퀀스(184) 동안에 클록(153)의 시간이 8시 43 ms에 관찰되었음을 나타낸다. 대안적으로 또는 조합하여, 클록 관리 모듈(102)은 또한 추가 메시지 교환(185)에 포함된 그외 다른 회신에 포함된 시간에 대한 시간 입력을 (시간 데이터(194) 내에) 기록할 수 있다.
방법(200)은 메시지를 송신하기 위해 기록된 시간과 상관성 메시지 내에 포함된 관찰된 컴퓨터 시스템으로부터의 시간 사이의 차이에 기초하여 관찰하는 컴퓨터 시스템의 시간에 관한 관찰된 컴퓨터 시스템에서의 시간에 대해 하한값을 계산하는 동작을 포함한다(동작(207)). 예를 들어, 클록 관리 모듈(102)은 클록(153)에 관한 클록(103)의 시간에 대해 하한값(161)을 계산할 수 있다. 클록 관리 모듈(102)은 클록(153)에 관한 하한값(161)을 계산하기 위해 이전에 설명된 수식을 구현할 수 있다. 그러므로, 회신(182)이 수신되고, 클록(103)이 관찰되어 8:00:00.064로 읽혀질 때, 하한값(161)은 다음과 같이 계산될 수 있다:
대안적으로 또는 조합하여, 클록 관리 모듈(102)은 또한 추가 메시지 교환(185)에서의 그외 다른 요청 및 그외 다른 회신에 관련된 시간 입력으로부터 하한값(161)을 계산할 수 있다.
방법(200)은 상관성 메시지를 수신하기 위해 기록된 시간과 상관성 메시지 내에 포함된 관찰된 컴퓨터 시스템으로부터의 시간 사이의 차이에 기초하여 관찰하는 컴퓨터 시스템의 시간에 관한 관찰된 컴퓨터 시스템에서의 시간에 대해 상한값을 계산하는 동작을 포함한다(동작(208)). 예를 들어, 클록 관리 모듈(102)은 클록(153)에 관한 클록(103)의 시간에 대해 상한값(162)을 계산할 수 있다. 클록 관리 모듈(102)은 클록(153)에 관한 상한값(162)을 계산하기 위해 이전에 설명된 수식을 구현할 수 있다. 그러므로, 회신(182)이 수신되고, 클록(103)이 관찰되어 8:00:00.064으로 읽혀질 때, 상한값(162)은 다음과 같이 계산될 수 있다:
대안적으로 또는 조합하여, 클록 관리 모듈(102)은 또한 추가 메시지 교환(185)에서의 그외 다른 요청 및 그외 다른 회신에 관련된 시간 입력으로부터 상한값(162)을 계산할 수 있다.
방법(200)은 상한값과 하한값 사이의 차이를 계산하는 동작을 포함한다(동작(209)). 예를 들어, 클록 관리 모듈(102)은 상한값(162)과 하한값(161) 사이의 차이를 계산할 수 있다. 회신(182)이 수신되는 시간에, 양자화(192)를 고려하면, 상한값(162)과 하한값(161) 사이의 차이는 대략 123 ms - 27 ms, 또는 96 ms와 같다.
방법(200)은 계산된 차이를 평균 계수로 나눔으로써, 관찰하는 컴퓨터 시스템이 관찰된 컴퓨터 시스템에서의 시간이라고 하는 것과 관찰된 컴퓨터 시스템에서의 실제 시간 차이의 최대 편차를 계산하는 동작을 포함한다(동작(210)). 예를 들어, 클록 관리 모듈(102)은 96 ms를 2로 나누어 48 ms를 계산할 수 있다. 클록(103과 153) 사이의 오프셋의 중간점은 ((8:00:00.027 + 8:00:00.123)/2) - 8:00:00.064인데, 이것은 클록(153)이 클록(103)보다 대략 12 ms 앞서 있다는 것을 나타낸다.
앞에서 설명된 바와 같이, 대안적으로 또는 메시지 교환(184)과 조합하여, 컴퓨터 시스템(101)은 컴퓨터 시스템(151)과의 추가 메시지 교환(185)에 참여할 수 있다. 그러므로, 추론된 시간 범위에 대한 하한값 및/또는 상한값은 이들 추가 메시지 교환에 기초하여 구체화될 수 있다. 그러므로, 하한값(161)은 임의의 후속 송신 시간 - 관찰된 시간이 -43 ms보다 크거나 작을 때에 구체화될 수 있다. 예를 들어, 송신 시간이 8:01:27.53이고, 관찰된 시간이 8:01:27.69인 경우에, 하한값(161)은 -(16 ms + 20 ms + 클록 드리프트 성분)으로 구체화될 수 있다. 이와 유사하게, 상한값(162)은 임의의 후속 수신 시간 - 관찰된 시간이 21 ms보다 아주 작을 때 구체화될 수 있다. 예를 들어, 수신 시간이 8:03:52.07이고, 관찰된 시간이 8:03:51.92인 경우에, 상한값(162)은 (15 ms + 20 ms + 클록 드리프트 성분)으로 구체화될 수 있다.
하한값과 상한값은 관찰하는 컴퓨터 시스템 클록이 관찰된 클록에 뒤처지는 약간의 시간 양을 나타낼 수 있다. 예를 들어, 하한값은 -47 ms일 수 있고, 상한값은 -12 ms일 수 있다. 이러한 하한값과 상한값의 조합은 컴퓨터 시스템 클록이 관찰된 클록에 최소한 12 ms만큼 지연되고, 관찰된 클록에 최대한 47 ms만큼 지연되는 것을 나타낼 수 있다.
이와 유사하게, 하한값과 상한값은 관찰하는 컴퓨터 시스템 클록이 관찰된 클록보다 앞서 있는 약간의 시간 양을 나타낼 수 있다. 예를 들어, 하한값은 17 ms일 수 있고, 상한값은 82 ms일 수 있다. 이러한 하한값과 상한값의 조합은 컴퓨터 시스템 클록이 관찰된 클록보다 최소한 17 ms만큼 앞서 있고, 관찰된 클록보다 최대한 82 ms만큼 앞서 있다는 것을 나타낼 수 있다.
몇몇 실시예에서, 클록 관리 모듈은 요청/회신 메시지 교환 또는 그외 다른 메시지 교환을 최소한 미리 정의된 간격으로, 이를테면, 예를 들어 매 분마다, 2분마다 등등으로 시작하도록 구성된다. 메시지 교환은 비동기 분산 시스템 내의 컴퓨터 시스템들 사이에서 교환된 그외 다른(예를 들어, 애플리케이션) 메시지에 편승될 수 있다. 클록 동기화를 위한 요청/회신 또는 그외 다른 메시지 교환은 또한 예를 들어, 드리프트 한도의 교차와 같은 그외 다른 정책에 따라 시작될 수 있다.
관찰된 컴퓨터 시스템에서의 시간의 추론에 계속하여, 관찰하는 컴퓨터 시스템은 관찰된 컴퓨터 시스템에서 이벤트가 발생했을 때 또는 발생할 것 같을 때(또는 발생하게 될 때)로부터의 시간 경계값을 계산하기 위해 추론 시간을 사용할 수 있다.
따라서, 본 발명의 실시예는 2개의 컴퓨터 시스템 사이의 시간에 대한 일반적인 이해, 또는 그러한 시간 경과의 안전한 뷰를 용이하게 한다. 예를 들어, 최대 편차 또는 시간 범위로부터, 관찰하는 컴퓨터 시스템은 관찰된 컴퓨터 시스템에서의 시간 경과의 안전한 뷰를 만들 수 있다. 안전한 뷰로부터, 관찰하는 컴퓨터 시스템은 관찰된 컴퓨터 시스템에서 지난 이벤트가 발생했을 때를 (계산된 범위 내에서) 추정할 수 있다. 예를 들어, 컴퓨터 시스템(101)은 이벤트(196)가 컴퓨터 시스템(151)에서 발생했을 때를 추정할 수 있다. 또한, 안전한 뷰로부터, 2개의 컴퓨터 시스템은 향후에 이벤트가 발생하게 될 때에 대해 동의에 이르게 될 수 있다. 결과적으로, 한 컴퓨터 시스템은 그외 다른 시스템에서 이벤트가 발생할 때를 (계산된 범위 내에서) 추정할 수 있다.
도 3은 관찰된 컴퓨터 시스템에서 이벤트가 발생한 시간을 나타내는 예시적인 방법의 순서도이다.
방법(300)은 관찰된 컴퓨터 시스템과의 하나 이상의 메시지 교환에 참여하는 동작을 포함한다(동작(301)). 각각의 메시지 교환은 요청 메시지가 송신될 때 관찰하는 컴퓨터 시스템에서의 클록의 시간을 기록하는 동작을 포함한다(동작(302)). 각각의 메시지 교환은 하나 이상의 요청 메시지를 관찰된 컴퓨터 시스템에 송신하는 동작을 포함하는데, 각각의 요청 메시지는 대응하는 기록된 송신 시간을 포함한다(동작(303)). 각각의 메시지 교환은 관찰된 컴퓨터 시스템으로부터 요청 메시지에 응답하는 하나 이상의 회신 메시지를 차후에 수신하는 동작을 포함하는데, 회신 메시지는 관찰된 컴퓨터 시스템으로부터의 시간을 포함한다(동작(304)). 각각의 메시지 교환은 회신 메시지가 수신될 때 관찰하는 컴퓨터 시스템에서의 클록의 시간을 기록하는 동작을 포함한다(동작(305)).
예를 들어, 컴퓨터 시스템(101)은 메시지 교환(184) 및 추가 메시지 교환(185)에 참여할 수 있다. 각각의 메시지 교환은 하나 이상의 요청의 송신(예를 들어, 181), 각 요청이 송신된 시간의 기록(예를 들어, 171), 하나 이상의 회신의 수신(예를 들어, 182), 각 회신이 수신된 시간의 기록(예를 들어, 172), 및 관찰자 컴퓨터 시스템으로부터의 회신에 포함된 시간(예를 들어, 183)의 기록(예를 들어, 173)을 포함할 수 있다.
방법(300)은 하나 이상의 메시지 교환에 기초하여 관찰하는 컴퓨터 시스템의 시간에 관한 관찰된 컴퓨터 시스템의 시간 경계값을 계산하는 단계를 포함하는데, 시간 경계값은 하나 이상의 메시지 교환 다음에, 관찰된 컴퓨터 시스템에서의 지정된 시간 범위로 하기 위해, 관찰하는 컴퓨터 시스템에서의 시간에 적용되도록 구성된다(동작(306)). 시간 경계값은 계산된 시간 경계값의 아래쪽을 나타내는 시간 하한값 및 계산된 시간 경계값의 위쪽을 나타내는 시간 상한값을 포함한다. 예를 들어, 컴퓨터 시스템(101)은 하한값(161) 및 상한값(162)을 계산하고 구체화할 수 있다.
방법(300)은 관찰하는 컴퓨터 시스템이 표시를 수신하는 동작을 포함하는데, 표시는 a) 관찰된 컴퓨터 시스템에서의 지난 이벤트 발생의 표시 및 b) 하나 이상의 메시지 교환 다음에 관찰된 컴퓨터 시스템에서 이벤트가 발생하게 될 때의 표시 중에서 선택된다(동작(307)). 예를 들어, 컴퓨터 시스템(101)은 이벤트(196)를 검출할 수 있다. 이벤트(196)를 수신하면, 클록 관리 모듈은 시간 데이터(194) 내에 시간 입력(174)을 기록할 수 있다. 시간 입력(194)은 이벤트(196)가 8:00:28.016에 검출되었음을 나타낸다. 대안적으로, 컴퓨터 시스템(101)은 이벤트가 컴퓨터 시스템(151)에서 발생하게 될 때의 표시를 수신하고, 이벤트가 발생하게 될 때에 대한 시간 입력을 기록할 수 있다.
방법(300)은 관찰하는 컴퓨터 시스템이 관찰된 컴퓨터 시스템에 대한 시간 범위를 계산하는 동작을 포함하는데, 시간 범위는 a) 지난 이벤트가 발생했을 때 또는 b) 관찰된 컴퓨터 시스템에서 이벤트가 발생하게 될 때를 나타내고, 시간 범위는 표시가 수신되었을 때의 관찰하는 컴퓨터 시스템에서의 시간에 기초하고, 계산된 시간 경계값의 하한값과 상한값에 기초하여 계산된다(동작(308)). 예를 들어, 시간 입력(174)으로부터, 클록 관리 모듈(102)은 이벤트(196)가 컴퓨터 시스템(151)에서 발생했을 때를 나타내는 시간 범위를 계산할 수 있다. 이와 같이, 새로운 하한값은 다음과 같이 계산될 수 있다:
그리고, 새로운 상한값은 다음과 같이 계산될 수 있다:
그러므로, 이벤트(196)가 검출될 때에, 양자화(192)를 고려하면, 상이한 상합값(162) 및 하한값(161)은 대략 161ms-(-11ms), 또는 172 ms와 같다. 클록 관리 모듈(102)은 172 ms를 2로 나누어, 최대 편차로서 86 ms를 계산할 수 있다. 이 새로운 편차는 이벤트(196)가 컴퓨터 시스템(151)에서 발생한 (최대 편차 내의) 추론 시간인 시간(186)을 계산하기 위해 사용될 수 있다. 클록(103과 153) 사이의 오프셋의 중간점은 다음과 같다:
((8:00:27.970 + 8:00:28.102)/2) - 8:00:28.016
8:00:28.066 - 8:00:28.016 = 50 ms, 이것은 클록(153)이 클록(103)보다 50 ms 앞서 있음을 나타낸다.
대안적으로, 하한값 및 상한값은 이벤트가 발생하게 될 때에 대해 계산될 수 있다.
방법(300)은 표시 및 계산된 시간 범위를 포함하는 이벤트 메시지를 하나 이상의 다른 컴퓨터 시스템에 송신하는 동작을 포함한다(동작(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을 참조하면, 요청/회신 메시지 교환을 완료하기 위한 평균 시간이 40 ms이고, 미리 정의된 간격이 30초인 경우에, 최악의 경우의 오류 범위는 ±[(40ms/2) + 20ms + 2*((.5min/24)*60min)*(60sec.)] = 81.5ms로 계산될 수 있다.
클록 퀀텀 제약조건, 드리프트 비율 제약조건 및 최대 왕복 제약조건에 대한 (최소한 예상된) 값은 이를테면, 예를 들어 평균으로부터 또는 심지어 하드웨어 사양으로부터, 시스템에 알려져 있다고 할 수 있다. 최대 오차 수식은 관찰하는 컴퓨터 시스템이 관찰된 컴퓨터 시스템에서의 시간이라고 하는 것과 관찰된 컴퓨터에서의 실제 시간이라는 것에 있어서의 (비동기 분산 시스템 내의 컴퓨터 시스템들 사이의) 최대 편차를 계산하기 위해 사용될 수 있다.
도 5는 다수의 컴퓨터 시스템을 포함하는 비동기 분산 시스템의 상이한 컴퓨터 시스템에서의 클록들 사이의 최대 편차의 계산을 용이하게 하는 예시적인 컴퓨터 아키텍처(500)를 도시한 것이다. 도 4는 다수의 컴퓨터 시스템을 포함하는 비동기 분산 시스템의 상이한 컴퓨터 시스템에서의 클록들 사이의 최대 편차를 계산하는 예시적인 방법(400)의 순서도이다. 방법(400)은 컴퓨터 아키텍처(500) 내의 구성요소 및 데이터와 관련하여 설명될 것이다.
방법(400)은 비동기 분산 시스템의 컴퓨터 시스템들 사이에서의 클록 양자화들 사이의 최대 차이를 나타내는 클록 퀀텀 제약 조건을 액세스하는 동작을 포함한다(동작(401)). 예를 들어, 컴퓨터 시스템(501)은 예를 들어, Q=15 ms인 하드웨어 사양과 같은 클록 퀀텀 제약조건(511)을 액세스할 수 있다.
방법(400)은 비동기 분산 시스템의 각 컴퓨터 시스템에 대한 지정된 기간 내의 최대 클록 드리프트를 나타내는 드리프트 비율 제약조건을 액세스하는 동작을 포함한다(동작(402)). 관찰자는 지정된 피관찰자의 최악의 클록 드리프트를 알아볼 수 있고 또는 그러한 드리프트를 위해 구성될 수 있다. 대안적으로, 관찰자는 임의의 피관찰자에 대한 최악의 경우의 드리프트를 추정하도록 구성될 수 있다. 예를 들어, 컴퓨터 시스템(501)은 예를 들어, D < 하루에 1분의 드리프트와 같은 클록 드리프트 비율 제약조건(512)을 액세스할 수 있다. 그러므로, 클록 드리프트 비율 제약조건(512)은 특정 피관찰자 또는 임의의 피관찰자에게 적용할 수 있다.
방법(400)은 비동기 분산 시스템의 임의의 2개의 컴퓨터 시스템 사이에서 발생하는 요청/회신 메시지 교환을 위한 최대 시간 양을 나타내는 최대 왕복 제약조건을 액세스하는 동작을 포함한다(동작(403)). 예를 들어, 컴퓨터 시스템(501)은 최대 왕복 제약조건(513)을 액세스할 수 있다. 왕복 제약조건(513)은 예를 들어, 1분에 한번 컴퓨터 시스템(151)에 문의하는 컴퓨터 시스템(101) 및 50 ms 미만인 왕복 시간으로부터 얻어질 수 있다.
방법(400)은 클록 퀀텀 제약조건, 드리프트 비율 제약조건 및 최대 왕복 제약조건에 기초하여 비동기 시스템의 상이한 컴퓨터 시스템에서의 클록들 사이의 최대 편차를 계산하는 동작을 포함한다. 예를 들어, 컴퓨터 시스템(501)은 클록 퀀텀 제약조건(511), 클록 드리프트 비율 제약조건(512) 및 왕복 제약조건(513)에 기초하여 최대 클록 편차(514)를 계산할 수 있다.
최대 클록 편차는 관찰하는 컴퓨터 시스템이 계산된 범위 내에서 언제든지 관찰된 컴퓨터 시스템에서의 시간을 용이하게 알 수 있게 한다. 몇몇 실시예에서, 다음과 같은 최대 편차 수식이 사용될 수 있다:
((수신 시간 - 송신 시간)/2) + Q + (2D*(T-AVG(송신 시간, 수신 시간) +
Q))
또는, 미리 결정되거나 지정된 값의 경우:
(R/2) + Q + (2*D*미리 정의된 요청/회신 메시지 교환 간격)
그러므로, 방법(400)과 관련하여 설명된 제약조건에 따라, 최대 편차는 관찰하는 컴퓨터 시스템이 (50ms/2) + 15ms + (2*(1min/24*60min)*(60sec)), 즉 25ms + 15ms + 83 ms = 123ms 내에서 언제든지 관찰된 컴퓨터 시스템에서의 시간을 용이하게 알 수 있게 한다. 더욱이, 메시지 교환 시퀀스 쿼리 직후에, 최대 오차에 미치는 클록 드리프트 비율 제약조건 D 성분의 영향은 0에 가깝다. 즉, (2*(~0/24*60min)*(60sec)) = 0이다. 그러므로, 메시지 교환 시퀀스 쿼리 직후에, 관찰하는 컴퓨터 시스템은 대략 25ms + 15ms + 0ms = 40ms 내에 관찰된 컴퓨터 시스템에서의 시간을 알 수 있다.
그러므로, 본 발명의 실시예는 예를 들어, 공용 비동기 (분산) 시스템 내의 구성원과 같은 피어 노드(관찰자) 집합의 전체에 걸쳐 신뢰할 수 있고 실제적인 공용 시간(time of day) 참조의 작성을 용이하게 한다. 의사 동기 시스템의 클래스는 공용 마스터에 관계없이, 노드(관찰자) 쌍 사이의 최악의 경우의 상대론적 시간 왜곡을 추적하고 누적함으로써 만들어질 수 있다. 직접 및 간접 인과 관계는 노드 쌍들 사이의 순서화된 상호작용에 기초하여 형성될 수 있다. 이와 같이, 노드들의 협동은 다른 노드 상에서의 관찰 값이 제공되면, 한 노드가 관찰할 시간에 관한 하한값을 기본적으로 보증할 수 있다. 따라서, 본 발명의 실시예는 일반적인 외부 시간 클록 엔티티가 사용되지 않고, 이러한 비동기 시스템의 전체에 걸쳐 최악의 경우(즉, 최대 편차)의 현재 시간의 일관성 있는(기본적으로 안전한) 뷰를 제공하는데 적용될 수 있다.
본 발명은 본 발명의 정신 또는 필수 특성을 벗어나지 않고서 그외 다른 특정 형태로 실시될 수 있다. 설명된 실시예는 모든 면에서 단지 예시적인 것일 뿐이고 비제한적인 것으로 생각되어야 한다. 그러므로, 본 발명의 범위는 상기 설명보다는 첨부된 청구범위에 의해 나타내진다. 청구범위와 등가의 의미 및 범위에 속하는 모든 변경은 청구 범위 내에 포함될 수 있다.
Claims (15)
- 다수의 컴퓨터 시스템(101, 151, 191)을 포함하는 비동기 분산 시스템(100) 내의 관찰하는 컴퓨터 시스템(101)에서 - 상기 관찰하는 컴퓨터 시스템(101)은 프로세서 및 시스템 메모리를 포함하고, 상기 비동기 분산 시스템(100)은 클록 퀀텀 제약조건(clock quantum constraint)(192) 및 드리프트 비율(drift rate) 제약 조건(193)을 가지며, 상기 클록 퀀텀 제약조건(192)은 상기 비동기 분산 시스템(100)의 컴퓨터 시스템들(101, 151, 191) 사이에서의 클록 양자화들 사이의 최대 차이를 나타내고, 상기 드리프트 비율 제약조건(193)은 상기 비동기 분산 시스템(100)의 각 컴퓨터 시스템에 대한 지정된 기간 내의 최대 클록 드리프트를 나타냄 - , 상기 관찰하는 컴퓨터 시스템(100)이 관찰된 컴퓨터 시스템(151)에서의 시간이라고 하는 것과 상기 관찰된 컴퓨터 시스템(151)에서의 실제 시간 사이의 편차(variance)를 결정하는 방법에 있어서,
상기 관찰된 컴퓨터 시스템(151)과의 하나 이상의 메시지 교환(184, 185)에 참여하는 동작 - 상기 메시지 교환들은,
메시지(181)가 송신될 때 상기 관찰하는 컴퓨터 시스템(101)에서의
클록(103)의 송신 시간(171)을 기록하는 동작;
상기 기록된 송신 시간(171)을 포함하는 메시지(181)를 상기 관찰된
컴퓨터 시스템(151)에 송신하는 동작;
상기 관찰된 컴퓨터 시스템(151)으로부터 상기 메시지(181)에
응답하는 상관성 메시지(182)를 차후에 수신하는 동작 - 상기 상관성
메시지(182)는 상기 관찰된 컴퓨터 시스템(151)으로부터의 시간(183)을
포함함-;
상기 상관성 메시지(182)가 수신될 때 상기 관찰하는 컴퓨터
시스템(101)에서의 상기 클록(103)의 수신된 시간(172)을 기록하는 동작; 및
상기 관찰된 컴퓨터 시스템(151)으로부터의 시간(173)을 기록하는
동작을 포함함 - ;
상기 메시지를 송신하기 위해 기록된 시간(181)과 상기 상관성 메시지에 포함된 상기 관찰된 컴퓨터 시스템으로부터의 시간(183) 사이의 차이, 상기 클록 퀀텀 제약조건(192) 및 상기 클록 드리프트 비율 제약조건(193)에 기초하여, 상기 관찰하는 컴퓨터 시스템의 시간에 관한 상기 관찰된 컴퓨터 시스템에서의 시간에 대해 하한값(161)을 계산하는 동작;
상기 상관성 메시지를 수신하기 위해 기록된 시간(182)과 상기 상관성 메시지에 포함된 상기 관찰된 컴퓨터 시스템으로부터의 시간(183) 사이의 차이, 상기 클록 퀀텀 제약조건(192) 및 상기 클록 드리프트 비율 제약조건(193)에 기초하여, 상기 관찰하는 컴퓨터 시스템의 시간에 관한 상기 관찰된 컴퓨터 시스템에서의 시간에 대해 상한값(162)을 계산하는 동작;
상기 상한값(162)과 상기 하한값(161) 사이의 차이를 계산하는 동작; 및
상기 계산된 차이를 평균 계수로 나눔으로써, 상기 관찰하는 컴퓨터 시스템이 상기 관찰된 컴퓨터 시스템에서의 시간이라고 하는 것과 상기 관찰된 컴퓨터 시스템에서의 실제 시간 사이의 최대 편차를 상기 프로세서가 계산하는 동작
을 포함하는 시간 편차 결정 방법. - 제1항에 있어서, 상기 관찰하는 컴퓨터 시스템이 상기 관찰된 컴퓨터 시스템에서의 시간 경과의 안전한 뷰를 만들기 위해 상기 계산된 최대 편차를 사용하는 동작을 더 포함하는 시간 편차 결정 방법.
- 제1항에 있어서, 상기 관찰하는 컴퓨터 시스템과 상기 관찰된 컴퓨터 시스템이 이벤트가 발생하는 때에 대해 동의하는 동작을 더 포함하는 시간 편차 결정 방법.
- 제3항에 있어서, 상기 관찰하는 컴퓨터 시스템과 상기 관찰된 컴퓨터 시스템이 이벤트가 발생하는 때에 대해 동의하는 동작은 상기 관찰하는 컴퓨터 시스템이 상기 관찰된 컴퓨터 시스템에서의 지난 이벤트의 발생을 검출하는 동작을 포함하는 시간 편차 결정 방법.
- 제3항에 있어서, 상기 관찰하는 컴퓨터 시스템과 상기 관찰된 컴퓨터 시스템이 이벤트가 발생하는 때에 대해 동의하는 동작은 상기 관찰하는 컴퓨터 시스템과 상기 관찰된 컴퓨터 시스템이 향후에 이벤트가 발생하게 될 때에 대해 동의하는 동작을 포함하는 시간 편차 결정 방법.
- 제1항에 있어서,
상기 관찰하는 컴퓨터 시스템이 상기 관찰된 컴퓨터 시스템과의 하나 이상의 추가 메시지 교환에 참여하는 동작; 및
상기 관찰하는 컴퓨터 시스템이 상기 하나 이상의 추가 메시지 교환에 대응하는 기록된 시간들에 기초하여 상기 하한값과 상기 상한값 중의 하나 이상을 구체화하는 동작
을 더 포함하는 시간 편차 결정 방법. - 프로세서 및 시스템 메모리를 포함하는 관찰하는 컴퓨터 시스템(101)에서, 관찰된 컴퓨터 시스템(151)에서 이벤트가 발생한 시간을 나타내는 방법에 있어서,
상기 관찰된 컴퓨터 시스템(151)과의 하나 이상의 메시지 교환(184, 185)에 참여하는 동작 - 각각의 메시지 교환은,
요청 메시지(181)가 송신될 때 상기 관찰하는 컴퓨터
시스템(101)에서의 클록(103)의 시간(171)을 기록하는 동작;
하나 이상의 요청 메시지(181)를 상기 관찰된 컴퓨터 시스템(151)에
송신하는 동작 - 각각의 요청 메시지는 대응하는 기록된 송신 시간을
포함함-;
상기 관찰된 컴퓨터 시스템(151)으로부터 상기 하나 이상의 요청
메시지(181)에 응답하는 하나 이상의 회신 메시지(182)를 차후에 수신하는
동작 - 각각의 회신 메시지는 상기 관찰된 컴퓨터 시스템으로부터의
시간(183)을 포함함- ; 및
회신 메시지(182)가 수신될 때 상기 관찰하는 컴퓨터 시스템(101)에서
상기 클록(103)의 시간(172)을 기록하는 동작을 포함함 - ;
상기 하나 이상의 메시지 교환(184, 185)에 기초하여 상기 관찰하는 컴퓨터 시스템(101)의 시간에 관한 상기 관찰된 컴퓨터 시스템(151)의 시간 경계 값(161, 162)을 계산하는 동작 - 상기 시간 경계 값(161, 162)은 상기 하나 이상의 메시지 교환(184, 185) 다음에, 상기 관찰된 컴퓨터 시스템(151)에서의 지정된 시간 범위로 하기 위해 상기 관찰하는 컴퓨터 시스템(101)에서의 시간에 적용되도록 구성되고, 상기 시간 경계값은,
상기 계산된 시간 경계값의 아래쪽을 나타내는 시간 하한값(161), 및
상기 계산된 시간 경계값의 위쪽을 나타내는 시간 상한값(162)을 포함 함 - ;
상기 프로세서가 표시를 수신하는 동작 - 상기 표시는 a) 상기 관찰된 컴퓨터 시스템(151)에서의 지난 이벤트의 발생의 표시 및 b) 상기 하나 이상의 메시지 교환(184, 185) 다음에 상기 관찰된 컴퓨터 시스템(151)에서 이벤트가 발생하게 될 때의 표시 중에서 선택됨;
상기 프로세서가 상기 관찰된 컴퓨터 시스템(151)에 대한 시간 범위를 계산하는 동작 - 상기 시간 범위는 a) 상기 이벤트가 발생했을 때 또는 b) 상기 관찰된 컴퓨터 시스템(151)에서 상기 이벤트가 발생하게 될 때를 나타내고, 상기 시간 범위는 상기 표시가 수신되었을 때의 상기 관찰하는 컴퓨터 시스템(101)에서의 시간에 기초하고, 상기 계산된 시간 경계 값의 하한값(161)과 상한값(162)에 기초하여 계산됨-; 및
상기 표시 및 상기 계산된 시간 범위(186)를 포함하는 이벤트 메시지(197)를 하나 이상의 다른 컴퓨터 시스템(191)에 송신하는 동작
을 포함하는 이벤트 발생 시간 표시 방법. - 제7항에 있어서, 상기 하나 이상의 메시지에 기초하여 상기 관찰하는 컴퓨터 시스템의 시간에 관한 상기 관찰된 컴퓨터 시스템의 시간 경계 값을 계산하는 동작은 상기 하나 이상의 메시지 교환 중의 임의의 메시지 교환에 있어서, 요청 메시지를 송신하기 위해 기록된 시간과 대응하는 회신 메시지에 포함된 상기 관찰된 컴퓨터 시스템으로부터의 시간 사이의 최소 차이에 적어도 부분적으로 기초한 값으로 상기 하한값을 설정하는 동작을 포함하는 이벤트 발생 시간 표시 방법.
- 제8항에 있어서, 상기 하한값을 설정하는 동작은 상기 관찰하는 컴퓨터 시스템에서의 클록의 양자화와 상기 관찰된 컴퓨터 시스템에서의 클록의 양자화 사이의 차이의 표시에 적어도 부분적으로 기초한 값으로 상기 하한값을 설정하는 동작을 포함하는 이벤트 발생 시간 표시 방법.
- 제8항에 있어서, 상기 하한값을 설정하는 동작은 상기 관찰하는 컴퓨터 시스템에서의 클록의 클록 드리프트와 상기 관찰된 컴퓨터 시스템에서의 클록의 클록 드리프트에 적어도 부분적으로 기초한 값으로 상기 하한값을 설정하는 동작을 포함하는 이벤트 발생 시간 표시 방법.
- 제7항에 있어서, 상기 하나 이상의 요청/회신 메시지에 기초하여 상기 관찰하는 컴퓨터 시스템의 시간에 관한 상기 관찰된 컴퓨터 시스템의 시간 경계값을 계산하는 동작은 상기 하나 이상의 요청/회신 메시지 교환 중의 임의의 메시지 교환에 있어서, 회신 메시지를 수신하기 위해 기록된 시간과 상기 회신 메시지에 포함된 상기 관찰된 컴퓨터 시스템으로부터의 시간 사이의 최소 차이에 적어도 부분적으로 기초한 값으로 상기 상한값을 설정하는 동작을 포함하는 이벤트 발생 시간 표시 방법.
- 제11항에 있어서, 상기 상한값을 설정하는 동작은 상기 관찰하는 컴퓨터 시스템에서의 클록의 양자화와 상기 관찰된 컴퓨터 시스템에서의 클록의 양자화 사이의 차이의 표시에 적어도 부분적으로 기초한 값으로 상기 상한값을 설정하는 동작을 포함하는 이벤트 발생 시간 표시 방법.
- 제11항에 있어서, 상기 상한값을 설정하는 동작은 상기 관찰하는 컴퓨터 시스템에서의 클록의 클록 드리프트와 상기 관찰된 컴퓨터 시스템에서의 클록의 클록 드리프트에 적어도 부분적으로 기초한 값으로 상기 상한값을 설정하는 동작을 포함하는 이벤트 발생 시간 표시 방법.
- 제7항에 있어서, 상기 비동기 분산 시스템은 피어 투 피어 시스템인 이벤트 발생 시간 표시 방법.
- 프로세서 및 시스템 메모리를 포함하는 컴퓨터 시스템(501)에서, 다수의 컴퓨터 시스템을 포함하는 비동기 분산 시스템의 상이한 컴퓨터 시스템들에서의 클록들 사이의 최대 편차(514)를 계산하는 방법에 있어서,
상기 비동기 분산 시스템의 컴퓨터 시스템들 사이에서의 클록 양자화들 사이의 최대 차이를 나타내는 클록 퀀텀 제약조건(511)을 액세스하는 동작;
상기 비동기 분산 시스템의 각 컴퓨터 시스템에 대한 지정된 기간 내의 최대 클록 드리프트를 나타내는 드리프트 비율 제약조건(512)을 액세스하는 동작;
상기 비동기 분산 시스템의 임의의 2개의 컴퓨터 시스템 사이에서 발생하는 요청/회신 메시지 교환을 위한 최대 시간 양을 나타내는 최대 왕복 제약조건(513)을 액세스하는 동작; 및
상기 클록 퀀텀 제약조건, 상기 드리프트 비율 제약조건 및 상기 최대 왕복 제약조건에 기초하여 상기 비동기 시스템의 상이한 컴퓨터 시스템들에서의 클록들 사이의 최대 편차(514)를 상기 프로세서가 계산하는 동작
을 포함하는 클록간 최대 편차 계산 방법.
Applications Claiming Priority (4)
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 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100127790A true KR20100127790A (ko) | 2010-12-06 |
KR101566570B1 KR101566570B1 (ko) | 2015-11-05 |
Family
ID=41114796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020107021213A KR101566570B1 (ko) | 2008-03-27 | 2009-03-27 | 비동기 분산 시스템에서의 클록의 동기화 |
Country Status (9)
Country | Link |
---|---|
US (1) | US8073976B2 (ko) |
EP (1) | EP2255264B1 (ko) |
JP (1) | JP5161363B2 (ko) |
KR (1) | KR101566570B1 (ko) |
CN (1) | CN101981527B (ko) |
AU (1) | AU2009228059B2 (ko) |
CA (1) | CA2716494A1 (ko) |
RU (1) | RU2485570C2 (ko) |
WO (1) | WO2009121005A2 (ko) |
Families Citing this family (18)
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 |
US9516615B2 (en) | 2011-11-18 | 2016-12-06 | Apple Inc. | Selection of synchronization stations in a peer-to-peer network environment |
US20130132500A1 (en) * | 2011-11-18 | 2013-05-23 | Apple Inc. | Selection of a master in a peer-to-peer network environment |
US10271293B2 (en) | 2011-11-18 | 2019-04-23 | Apple Inc. | Group formation within a synchronized hierarchy of peer-to-peer devices |
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 |
CN104981742B (zh) * | 2013-06-12 | 2017-09-19 | 富士电机株式会社 | 分发装置、分发系统以及分发方法 |
WO2015062631A1 (en) * | 2013-10-29 | 2015-05-07 | Nec Europe Ltd. | 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 |
CN111066003A (zh) * | 2017-10-10 | 2020-04-24 | 西门子股份公司 | 对流程行业中的设备进行状态监测的方法、装置及介质 |
CN115761885B (zh) * | 2022-11-16 | 2023-08-29 | 之江实验室 | 一种共时与跨域异步融合驱动的行为识别方法 |
Family Cites Families (49)
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 |
DE60041470D1 (de) * | 1999-05-11 | 2009-03-19 | Canon Kk | Verfahren und Vorrichtung zur Synchronisierung zwischen zwei Netzwerken |
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 |
ATE427521T1 (de) | 2001-07-26 | 2009-04-15 | Freescale Semiconductor Inc | Uhrensynchronisation in einem verteilten 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 | サーバ及びクライアント間の時刻同期方法 |
US7020722B2 (en) * | 2001-11-09 | 2006-03-28 | Sun Microsystems, Inc. | Synchronization of distributed simulation nodes by keeping timestep schedulers in lockstep |
US7231338B2 (en) * | 2001-11-09 | 2007-06-12 | Sun Microsystems, Inc. | Distributed simulation system having phases of a timestep |
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 |
-
2009
- 2009-03-25 US US12/410,677 patent/US8073976B2/en not_active Expired - Fee Related
- 2009-03-27 CA CA2716494A patent/CA2716494A1/en not_active Abandoned
- 2009-03-27 RU RU2010139412/08A patent/RU2485570C2/ru not_active IP Right Cessation
- 2009-03-27 KR KR1020107021213A patent/KR101566570B1/ko active IP Right Grant
- 2009-03-27 EP EP09725924.6A patent/EP2255264B1/en not_active Not-in-force
- 2009-03-27 WO PCT/US2009/038639 patent/WO2009121005A2/en active Application Filing
- 2009-03-27 JP JP2011502110A patent/JP5161363B2/ja not_active Expired - Fee Related
- 2009-03-27 CN CN2009801118154A patent/CN101981527B/zh not_active Expired - Fee Related
- 2009-03-27 AU AU2009228059A patent/AU2009228059B2/en not_active Ceased
Also Published As
Publication number | Publication date |
---|---|
WO2009121005A3 (en) | 2009-12-23 |
CA2716494A1 (en) | 2009-10-01 |
US20090248900A1 (en) | 2009-10-01 |
WO2009121005A2 (en) | 2009-10-01 |
AU2009228059B2 (en) | 2014-01-23 |
KR101566570B1 (ko) | 2015-11-05 |
US8073976B2 (en) | 2011-12-06 |
AU2009228059A1 (en) | 2009-10-01 |
EP2255264A4 (en) | 2014-04-09 |
JP5161363B2 (ja) | 2013-03-13 |
RU2010139412A (ru) | 2012-03-27 |
CN101981527B (zh) | 2012-12-26 |
CN101981527A (zh) | 2011-02-23 |
RU2485570C2 (ru) | 2013-06-20 |
EP2255264A2 (en) | 2010-12-01 |
EP2255264B1 (en) | 2015-07-22 |
JP2011529208A (ja) | 2011-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20100127790A (ko) | 비동기 분산 시스템에서의 클록의 동기화 | |
EP2169857B1 (en) | Terminal device, time adjusting method of terminal device and communication system | |
US11758029B2 (en) | Ensuring properly ordered events in a distributed computing environment | |
US9736049B2 (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 | |
EP1239620A2 (en) | Relative time synchronization between three or more systems | |
US7668207B2 (en) | System, method, and article of manufacture for synchronizing time of day clocks on first and second computers | |
Harrison et al. | TICSync: Knowing when things happened | |
Youn | A comparison of clock synchronization in wireless sensor networks | |
JP6499018B2 (ja) | 通信装置、通信システム、推定方法及びプログラム | |
CN109426911B (zh) | 一种设备的软件运行环境质量的评估方法及装置 | |
EP2315480B1 (en) | Device and method for delay mean value computation in a trasmission path | |
JP2009116678A (ja) | Webサーバ | |
Bezet et al. | On-line and post-processing timestamp correspondence for free-running clock nodes, using a network clock | |
McCoy et al. | Formalizing a framework for dynamic hybrid strategy models in distributed interactive applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
N231 | Notification of change of applicant | ||
E701 | Decision to grant or registration of patent right |