欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

對異步分布式系統(tǒng)中的時鐘進行同步的制作方法

文檔序號:6593243閱讀:283來源:國知局
專利名稱:對異步分布式系統(tǒng)中的時鐘進行同步的制作方法
對異步分布式系統(tǒng)中的時鐘進行同步背景背景和相關技術計算機系統(tǒng)和相關技術影響社會的許多方面。的確,計算機系統(tǒng)處理信息的能力 已轉變了人們生活和工作的方式。計算機系統(tǒng)現(xiàn)在通常執(zhí)行在計算機系統(tǒng)出現(xiàn)以前手動執(zhí) 行的許多任務(例如,文字處理、日程安排和會計等)。最近,計算機系統(tǒng)彼此耦合并耦合到 其他電子設備以形成計算機系統(tǒng)和其他電子設備可以在其上傳輸電子數(shù)據(jù)的有線和無線 計算機網(wǎng)絡。因此,許多計算任務的執(zhí)行分布在多個不同的計算機系統(tǒng)和/或多個不同的 計算環(huán)境上。網(wǎng)絡實際上已變得如此豐富,以致簡單的啟用網(wǎng)絡的計算系統(tǒng)可以通過通常被 稱為“因特網(wǎng)”的網(wǎng)絡聚集而與散布在全球的數(shù)百萬個其他計算系統(tǒng)中的任何一個進行通 信。這樣的計算系統(tǒng)可以包括臺式計算機、膝上型計算機或平板個人計算機;個人數(shù)字助理 (PDA);電話;或能夠通過數(shù)字網(wǎng)絡通信的任何其他計算機或設備。為通過網(wǎng)絡進行通信,一個計算系統(tǒng)(在本文中稱為“發(fā)送計算系統(tǒng)”)構造或 以其他方式訪問電子消息,并通過網(wǎng)絡將該電子消息傳送到另一計算系統(tǒng)(在本文中稱為 “接收計算系統(tǒng)”)。在電子消息是電子郵件或即時消息時,該電子消息可由人類用戶閱讀, 或改為由在接收計算系統(tǒng)上運行的應用程序讀取。該電子消息可由在發(fā)送計算系統(tǒng)上運行 的應用程序在可能的人類用戶的幫助的情況下來構造。在分布式計算環(huán)境內,多個不同節(jié)點可以互操作以執(zhí)行所需計算操作。計算操作 的適當執(zhí)行通常可取決于彼此具有對時間的某種共同理解的各個不同節(jié)點。許多系統(tǒng)利用 通常被分發(fā)給所有節(jié)點的、各節(jié)點可進行參考來獲得絕對時間的“主”時鐘。然而,將時鐘 同步到絕對時間需要同步協(xié)議和高連接性。通過參考主時鐘的時鐘同步還造成潛在瓶頸點 和故障的中心點。在諸如因特網(wǎng)等一些網(wǎng)絡上,高連接性實際上是不可能的,因為計算機系 統(tǒng)頻繁地連接并斷開該網(wǎng)絡?!Φ认到y(tǒng)使用與公共的一天中的時間時鐘源的周期性同步來實現(xiàn)偽同步行 為。因此,這些系統(tǒng)也具有必須存在且在某些時刻(例如,新成員加入)可用的公共時間主 機,以便擁有可信且安全的系統(tǒng)。簡要概述本發(fā)明涉及用于對異步分布式系統(tǒng)中的時鐘進行同步的方法、系統(tǒng)和計算機程序 產品。在一些實施例中,確定觀察計算機系統(tǒng)所聲稱的在一不同的被觀察計算機系統(tǒng)處的 時間與該被觀察計算機系統(tǒng)處的實際(本地)時間之間的偏差。觀察計算機系統(tǒng)參與同被 觀察計算機系統(tǒng)的一個或多個消息交換。消息交換包括觀察計算機系統(tǒng)記錄在發(fā)送消息時該觀察計算機系統(tǒng)處的時鐘的 發(fā)送時間。消息交換包括觀察計算機系統(tǒng)向被觀察計算機系統(tǒng)發(fā)送一個或多個消息。消息 交換包括觀察計算機系統(tǒng)隨后從被觀察計算機系統(tǒng)接收響應于該消息的相關消息。該相關 消息包含來自被觀察計算機系統(tǒng)的時間(其本地時間)。消息交換包括觀察計算機系統(tǒng)記 錄在接收到該相關消息時該觀察計算機系統(tǒng)處的(本地)時鐘的接收時間。消息交換包括觀察計算機系統(tǒng)記錄在接收到該相關消息時被觀察計算機系統(tǒng)的本地時間。觀察計算機系統(tǒng)基于所記錄的發(fā)送消息的時間與包括在相關消息中的來自被觀 察計算機系統(tǒng)的時間之差、時鐘量程約束、以及時鐘漂移約束來計算被觀察計算機系統(tǒng)處 的時間相對于觀察計算機系統(tǒng)的本地時間的下限。觀察計算機系統(tǒng)基于所記錄的接收到相 關消息的本地時間與包括在該相關消息中的來自被觀察計算機系統(tǒng)的時間之差、時鐘量程 約束、以及時鐘漂移約束來計算被觀察計算機系統(tǒng)處的時間相對于觀察計算機系統(tǒng)的時間 的上限。觀察計算機系統(tǒng)計算上限和下限之差。觀察計算機系統(tǒng)通過使計算得到的差除以 平均因子(如計算得到的差除以2)來計算觀察計算機系統(tǒng)所聲稱的被觀察計算機系統(tǒng)處 的時間與被觀察計算機系統(tǒng)處的實際時間之間的最大偏差。后續(xù)消息交換可被用來進一步 細化下限和上限。觀察計算機系統(tǒng)可以基于下限和上限來計算指示一事件在被觀察計算機 系統(tǒng)處發(fā)生的時間范圍。在其他實施例中,計算包括多個計算機系統(tǒng)的異步分布式系統(tǒng)的不同計算機系統(tǒng) 處的時鐘之間的最大偏差。計算機系統(tǒng)訪問時鐘量程約束。時鐘量程約束指示異步分布式 系統(tǒng)的計算機系統(tǒng)間的時鐘量化之間的最大差。計算機系統(tǒng)訪問漂移率約束。漂移率約束 指示異步分布式系統(tǒng)的每一計算機系統(tǒng)在指定時間段內的最大時鐘漂移。計算機系統(tǒng)訪問最大往返約束。最大往返約束指示在異步分布式系統(tǒng)的任何兩個 計算機系統(tǒng)之間進行的請求/回復消息交換的最大時間量。計算機系統(tǒng)基于時鐘量程約 束、漂移率約束、以及最大往返約束來計算異步系統(tǒng)的不同計算機系統(tǒng)的時鐘之間的最大 偏差。提供本概述是為了以簡化的形式介紹將在以下詳細描述中進一步描述的一些概 念。本概述不旨在標識所要求保護的主題的關鍵特征或必要特征,也不旨在用于幫助確定 所要求保護的主題的范圍。在隨后的描述中闡述,并且部分地將從本說明書中顯而易見,或可以通過本發(fā)明 的實施來獲知。本發(fā)明的特征和優(yōu)點可通過在所附權利要求書中特別指出的工具和組合來 實現(xiàn)和獲得。本發(fā)明的這些和其他特征將通過以下描述和所附權利要求書變得更加顯而易 見,或可通過對下文中所述的本發(fā)明的實踐來領會。附圖簡述為了描述可以獲得本發(fā)明的上文所列舉的及其他優(yōu)點和特征的方式,將通過參考 附圖中所示的本發(fā)明的各具體實施例來呈現(xiàn)上文簡要描述的本發(fā)明的更具體的描述??梢?理解,這些附圖只描繪了本發(fā)明的各典型實施例,并且因此不被認為是對其范圍的限制,將 通過使用附圖并利用附加特征和細節(jié)來描述和解釋本發(fā)明,在附圖中

圖1示出示例異步分布式系統(tǒng),它便于對異步分布式系統(tǒng)中的時鐘進行同步。圖2是用于確定觀察計算機系統(tǒng)所聲稱的被觀察計算機系統(tǒng)處的時間與被觀察 計算機系統(tǒng)處的實際時間之間的偏差的示例方法的流程圖。圖3是用于指示一事件在被觀察計算機系統(tǒng)處的發(fā)生時間的示例方法的流程圖。圖4是用于計算包括多個計算機系統(tǒng)的異步分布式系統(tǒng)的不同計算機系統(tǒng)處的 時鐘之間的最大偏差的示例方法的流程圖。圖5示出便于計算包括多個計算機系統(tǒng)的異步分布式系統(tǒng)的不同計算機系統(tǒng)處的時鐘之間的最大偏差的示例計算機體系結構。詳細描述本發(fā)明涉及用于對異步分布式系統(tǒng)中的時鐘進行同步的方法、系統(tǒng)和計算機程序 產品。在一些實施例中,確定觀察計算機系統(tǒng)所聲稱的一不同的被觀察計算機系統(tǒng)處的時 間與被觀察計算機系統(tǒng)處的實際(本地)時間之間的偏差。觀察計算機系統(tǒng)參與同被觀察 計算機系統(tǒng)的一個或多個消息交換。消息交換包括觀察計算機系統(tǒng)記錄在發(fā)送消息時該觀察計算機系統(tǒng)處的時鐘的 發(fā)送時間。消息交換包括觀察計算機系統(tǒng)向被觀察計算機系統(tǒng)發(fā)送一個或多個消息。消息 交換包括觀察計算機系統(tǒng)隨后從被觀察計算機系統(tǒng)接收響應于該消息的相關消息。該相關 消息包含來自被觀察計算機系統(tǒng)的時間(其本地時間)。消息交換包括觀察計算機系統(tǒng)記 錄在接收到該相關消息時該觀察計算機系統(tǒng)處的(本地)時鐘的接收時間。消息交換包括 觀察計算機系統(tǒng)記錄在接收到該相關消息時被觀察計算機系統(tǒng)的本地時間。觀察計算機系統(tǒng)基于所記錄的發(fā)送消息的時間與包括在相關消息中的來自被觀 察計算機系統(tǒng)的時間之差、時鐘量程約束、以及時鐘漂移約束來計算被觀察計算機系統(tǒng)處 的時間相對于觀察計算機系統(tǒng)的本地時間的下限。觀察計算機系統(tǒng)基于所記錄的接收到相 關消息的本地時間與包括在該相關消息中的來自被觀察計算機系統(tǒng)的時間之差、時鐘量程 約束、以及時鐘漂移約束來計算被觀察計算機系統(tǒng)處的時間相對于觀察計算機系統(tǒng)的時間 的上限。觀察計算機系統(tǒng)計算上限和下限之差。觀察計算機系統(tǒng)通過使計算得到的差除以 平均因子(如計算得到的差除以2)來計算觀察計算機系統(tǒng)所聲稱的被觀察計算機系統(tǒng)處 的時間與被觀察計算機系統(tǒng)處的實際時間之間的最大偏差。后續(xù)消息交換可被用來進一步 細化下限和上限。觀察計算機系統(tǒng)可以基于下限和上限來計算指示一事件在被觀察計算機 系統(tǒng)處發(fā)生的時間范圍。在其他實施例中,計算包括多個計算機系統(tǒng)的異步分布式系統(tǒng)的不同計算機系統(tǒng) 處的時鐘之間的最大偏差。計算機系統(tǒng)訪問時鐘量程約束。時鐘量程約束指示異步分布式 系統(tǒng)的計算機系統(tǒng)間的時鐘量化之間的最大差。計算機系統(tǒng)訪問漂移率約束。漂移率約束 指示異步分布式系統(tǒng)的每一計算機系統(tǒng)在指定時間段內的最大時鐘漂移。計算機系統(tǒng)訪問最大往返約束。最大往返約束指示在異步分布式系統(tǒng)的任何兩個 計算機系統(tǒng)之間進行的請求/回復消息交換的最大時間量。計算機系統(tǒng)基于時鐘量程約 束、漂移率約束、以及最大往返約束來計算異步系統(tǒng)的不同計算機系統(tǒng)的時鐘之間的最大 偏差。本發(fā)明的各實施例可以包括或利用含有計算機硬件的專用或通用計算機,這將在 以下做出進一步討論。本發(fā)明范圍內的各實施例還包括用于承載或存儲計算機可執(zhí)行指令 和/或數(shù)據(jù)結構的物理和其他計算機可讀介質。這樣的計算機可讀介質可以是可由通用或 專用計算機系統(tǒng)訪問的任何可用介質。存儲計算機可執(zhí)行指令的計算機可讀介質是物理 存儲介質。承載計算機可執(zhí)行指令的計算機可讀介質是傳輸介質。由此,作為示例而非限 制,本發(fā)明的各實施例可包括至少兩種完全不同的計算機可讀介質物理存儲介質和傳輸 介質。物理存儲介質包括RAM、ROM、EEPROM、CD-ROM或其他光盤存儲、磁盤存儲或其他磁存儲設備、或可用于存儲計算機可執(zhí)行指令或數(shù)據(jù)結構形式的所需程序代碼裝置且可由通 用或專用計算機訪問的任何其他介質?!熬W(wǎng)絡”被定義為允許在計算機系統(tǒng)和/或模塊和/或其他電子設備之間傳輸電子 數(shù)據(jù)的一個或多個數(shù)據(jù)鏈路。當信息通過網(wǎng)絡或另一通信連接(硬連線、無線、或硬連線或 無線的組合)傳輸或提供給計算機時,該計算機將該連接適當?shù)匾暈閭鬏斀橘|。傳輸介質 可包括可用于攜帶計算機可執(zhí)行指令或數(shù)據(jù)結構形式的所需程序代碼裝置并可由通用或 專用計算機訪問的網(wǎng)絡和/或數(shù)據(jù)鏈路。上面各項的組合也應該包括在計算機可讀介質的 范圍內。此外,在到達各種計算機系統(tǒng)組件之后,計算機可執(zhí)行指令或數(shù)據(jù)結構形式的程 序代碼裝置可從傳輸介質自動轉移到物理存儲介質(或者相反)。例如,通過網(wǎng)絡或數(shù)據(jù) 鏈路接收到的計算機可執(zhí)行指令或數(shù)據(jù)結構可被緩存在網(wǎng)絡接口模塊(例如,“NIC”)內的 RAM中,然后最終被傳送到計算機系統(tǒng)RAM和/或計算機系統(tǒng)處的較不易失性的物理存儲介 質。由此,應當理解,物理存儲介質可被包括在同樣(或甚至主要)利用傳輸介質的計算機 系統(tǒng)組件中。計算機可執(zhí)行指令包括例如使通用計算機、專用計算機或專用處理設備執(zhí)行某一 功能或一組功能的指令和數(shù)據(jù)。計算機可執(zhí)行指令可以是例如二進制代碼、諸如匯編語言 等中間格式指令、或甚至源代碼。盡管用結構特征和/或方法動作專用的語言描述了本主 題,但可以理解的是,所附權利要求書中定義的主題不必限于上述特征或動作。相反,上述 特征和動作是作為實現(xiàn)權利要求的示例形式而公開的。本領域的技術人員將理解,本發(fā)明可以在具有許多類型的計算機系統(tǒng)配置的網(wǎng)絡 計算環(huán)境中實踐,這些計算機系統(tǒng)配置包括個人計算機、臺式計算機、膝上型計算機、消息 處理器、手持式設備、多處理器系統(tǒng)、基于微處理器的或可編程消費電子設備、網(wǎng)絡PC、小型 計算機、大型計算機、移動電話、PDA、尋呼機、路由器、交換機等等。本發(fā)明也可以在其中通 過網(wǎng)絡鏈接(或者通過硬連線數(shù)據(jù)鏈路、無線數(shù)據(jù)鏈路,或者通過硬連線和無線數(shù)據(jù)鏈路 的組合)的本地和遠程計算機系統(tǒng)兩者都執(zhí)行任務的分布式系統(tǒng)環(huán)境中實踐。在分布式系 統(tǒng)環(huán)境中,程序模塊可以位于本地和遠程存儲器存儲設備中。在本說明書及所附權利要求書中,量化被定義為不是連續(xù)的,即在一定持續(xù)時間 內(例如,1秒)保持一個值并隨后變成新值。在本說明書及所附權利要求書中,漂移被定義為一個時鐘與另一時鐘相比不以完 全相同的速度運行。因此,在某一時間量之后,一個時鐘可能“漂離”另一時鐘。時鐘可在 不同的方向上漂移(例如,相對于另一時鐘落后或超前)并能以不同的速度漂移。在不同 的時刻,個別的時鐘的漂移還可響應于環(huán)境改變(如周圍溫度、電池電量等)而變化。一般而言,異步系統(tǒng)內的時鐘可以順應一個或多個約束。例如,實際的計算機時鐘 可能被限于以非常接近同一速度(由它們本地時鐘值的前進來測量)來度過時間。因此, 可以用最壞情況的方式來補償時鐘的機械制造中的不精密性(相對很小并且可能無關緊 要)。因此,本發(fā)明的各實施例利用考慮這些約束的算法,使得主觀察者可以與其他觀察者 合作來建立關于從主觀察者的觀點來看的在給定時間其他觀察者的時鐘值的相對強的界 限(即使主觀察者不能直接觀察到其他時鐘)。因此,本發(fā)明的各實施例可被實現(xiàn)來在不使用公共的外部一天中的時間(time-of-day)時鐘實體的情況下提供跨異步系統(tǒng)的最差情況(例如,最大偏差)當前時間 的相對一致(安全)的視圖。異步分布式系統(tǒng)中的計算機系統(tǒng)不依賴公共時間主機,并且 因此實際上是“無主機”的。在一些實施例中,主觀察者(例如,節(jié)點)可以觀察單個時鐘(它的時鐘)的值, 并且一組對等觀察者(以主觀察者相同的形式)可以向其他觀察者傳遞異步非瞬時消息, 從而通過觀察者間通信路徑引入不確定的延遲。本發(fā)明的一些示例的描述基于以下符號來提供1. t0、tl、t2……是公共時間線中的具體事件指示。2. (tl-tO)描述兩個事件(tl和t0)之間的確切持續(xù)時間。3.如果事件t0在另一事件tl之前發(fā)生,則t0 < tl4.X (t0)是在事件t0發(fā)生時觀察到的時鐘X的值。3. (X(tl)-X(tO))是兩個事件(tl和t0)之間的由時鐘X測量的持續(xù)時間值(時 間跨度)。5. 0X定義時鐘X的觀察者。6. "0X.發(fā)送(0Y,{內容}) ”表示0X向0發(fā)送具有指定內容的消息(例如,請求) 的事件。7. "0X.接收(0Y,{內容})”表示0X向從0Y接收具有指定內容的消息(例如,回 復)的事件。因此,在以下異步分布式系統(tǒng)約束下A.時鐘的值單調遞增如果t0 < tl,則 X(t0) <= X(tl)B.時鐘量程Q存在上限,使得對于任何時鐘X 如果t0+Q < tl,則 X(t0) < X(tl)C.時鐘漂移D存在上限,使得對于任何時鐘X和事件t0 < tl 如果t0<tl,則(l-D)*(X(tl)-X(t0)) <= (tl-t0)+QD.以及如果t0<tl,則(tl-tO) <= ((l+D)*(X(tl)-X(t0)))+Q利用所描述的符號并且在具有所描述的約束的異步分布式系統(tǒng)中,可以發(fā)生以下 消息交換序列@t0 :0X 觀察到 X(t0)itl :0X.發(fā)送(0Y,{X(t0)})@t2 :0Y 接收(0X,{X(t0)})@t3 :0Y 觀察到 Y(t3)it4 :0Y.發(fā)送(0X,{X(t0),Y(t3)}it5 :0X.接收(0Y,{X(t0),Y(t3)}@t6 :0X 觀察到 X(t6)該消息交換序列是請求/回復操作的序列,其中0X向0Y查詢0Y的當前本地時鐘 值,從而記錄它這樣做的時間(to)和它得到回復的時間(t6)。(^現(xiàn)在知道Y在X的本地 時鐘具有值X(t0)時的時間與在X的本地時鐘具有值X(t6)時的時間之間的某一點具有值Y(t3)。雖然可以使用消息的組合來表示全局次序,但0X和0Y中的每一個可以根據(jù)它們自 己的獨立時間線來操作。在沒有漂移的完美本地時鐘的情況下,(^可以確立與時鐘Y在t6之后的任何時刻 t的值有關的以下界限Y(t) >= X(t)-(X(t6)-Y(t3))
Y (t) < = X (t) + (Y (t3) -X (tO))考慮量化,0X可以確立與時鐘Y在t6之后的任何時刻t的值有關的以下界限Y(t) >= X(t)-(X(t6)-Y(t3) +2Q)Y(t) <= X(t) + (Y(t3)-X(tO) +2Q)Q項表示時鐘是量化的。為了理解量化對每一界限添加了兩個Q項,假定作出了觀 察,使得X(t0) =0,Y(t3) =1以及X(t6) =2。這將暗示著時鐘處于不確定度為2的同 步中。為了找到實際的不確定度,可以考慮這三個時鐘中的每一個的可導致這一觀察的邊 界情況
X觀察到X(t0)Y觀察到Y(t3)X觀察到X(t6)最大負誤最大正誤差差0+A1+A2+A110+A1+A3-A12-2A0+A2-A2+A2-2A2A0+A2-A3-A2-2厶11-A1+A2+A2A11-A1+A3-A2A2-2厶1-A2-A2+A12A1-A2-A3-A11前三列指示觀察的時間相對于時鐘變成給定時間的時間。例如,在第二列,“2-A ” 指示在Y將其值從1變成2的事件之前的事件的時間。第四列是列1和2之差,并且第五 列是列2和3之差。取來自最后兩列的最大值并令A逼近0,可發(fā)現(xiàn)在任一方向上的最大不確定度都 是2。將這一不確定度與觀察到的不確定度相比較,量化引入了量為2的可能誤差。根據(jù)觀 察對這些值的改變同等地影響觀察到的結果和可能的邊界情況,這可一般化到任何X(t0)、 Y(t3)以及X(t6)。因此,量化引入等于2Q的誤差項??紤]量化和時鐘漂移,0X可以確立與時鐘Y在t6之后的任何時刻t的值有關的以 下界限Y(t) >= X(t)-(X(t6)-Y(t3) +2Q)-2D(X(t)-(X(t6) +X(tO))/2+2Q)
y (t) < = X (t) + (Y (t3) -X (tO) +2Q) +2D (X (t) - (X (t6) +X (tO)) /2+2Q)
10
這些值之差是(X (t) + (Y (t3) -X (t0) +2Q) +2D (X (t) - (X (t6) +X (tO)) /2+2Q))-(X (t) - (X (t6) -Y (t3) +2Q) -2D (X (t) - (X (t6) +X (tO)) /2+2Q))= X (t) -X (t) +Y (t3) -Y (t3) +X (t6) -X (tO) +4Q+4D (X (t) - (X (t6) +X (tO)) /2+2Q)= X (t6) -X (tO) +4Q+4D (X (t) - (X (t6) +X (tO)) /2+2Q)這暗示最大誤差是(X (t6) -X (tO)) /2+2Q+2D (X (t) - (X (t6) +X (tO)) /2+2Q)在該表達式中,(X(t6)-X(t0))是從 到 并返回的請求-回復交互所花的時間。 Q取決于時鐘的值被更新的頻率。最后一項2D(X(t)-(X(t6)+X(tO))/2+2Q)指示界限如何 因為可能的時鐘漂移而隨時間變弱(即,衰減)。消息交換序列查詢可以重復多次并且0X可以選擇來自任何查詢的最緊上限,并可 選擇來自任何查詢的最緊下限。在選擇時,最緊上限和最緊下限不必來自同一查詢。通過 周期性地重復消息交換序列查詢,觀察者(在該示例中是ox)可以最小化第三項,因為在任 何時刻T都將具有最近的測量。圖1示出異步分布式系統(tǒng)100,它便于對異步分布式系統(tǒng)系統(tǒng)100中的時鐘進行 同步。參考圖1,計算機體系結構100并可計算機系統(tǒng)101、151以及其他計算機系統(tǒng)191。 所描繪的計算機系統(tǒng)中的每一個及其對應的組件可通過諸如例如局域網(wǎng)(“LAN”)、廣域網(wǎng) (“WAN”)、通用串行總線(USB)或甚至因特網(wǎng)等網(wǎng)絡(或作為網(wǎng)絡的一部分)彼此連接。因 此,所描繪的組件中的每一個以及任何其他連接的組件都可以創(chuàng)建消息相關數(shù)據(jù)并通過網(wǎng) 絡交換消息相關數(shù)據(jù)(例如,網(wǎng)際協(xié)議(“IP”)數(shù)據(jù)報和利用IP數(shù)據(jù)報的其他更高層協(xié)議, 諸如傳輸控制協(xié)議(“TCP”)、超文本傳輸協(xié)議(“HTTP”)、簡單郵件傳輸協(xié)議(“SMTP”)
寸J o異步分布式系統(tǒng)100實際上可以是任何類型的異步系統(tǒng),如對等系統(tǒng)。如圖所示,計算機系統(tǒng)101包括時鐘管理模塊102和時鐘103。一般而言,計算機 系統(tǒng)101被配置成參與同其他計算機系統(tǒng)的請求/回復消息交換序列,并基于與該請求/ 回復消息交換序列相關聯(lián)的時間數(shù)據(jù)來維護被觀察計算機系統(tǒng)處的所聲稱的時間。時鐘管理模塊102被配置成記錄并維護與計算機系統(tǒng)101同異步分布式系統(tǒng)100 的其他計算機系統(tǒng)之間的通信相關聯(lián)的時間數(shù)據(jù)(例如,時間數(shù)據(jù)194)。時鐘管理模塊102 可以當在計算機系統(tǒng)101處發(fā)送和接收消息時記錄時鐘103處的時間。時鐘管理模塊102 還可以存儲從被觀察計算機系統(tǒng)(例如,計算機系統(tǒng)151)接收到的、包含在作為請求/回 復消息交換序列的一部分接收到的回復消息中的時間。根據(jù)所記錄的時間和接收到的時 間,時鐘管理模塊102可以指示指定范圍內事件在被觀察計算機系統(tǒng)處發(fā)生的時間。如圖所示,計算機系統(tǒng)151包括時鐘管理模塊152和時鐘153。一般而言,計算機 系統(tǒng)151被配置成參與同其他計算機系統(tǒng)的請求/回復消息交換序列,并基于與該請求/ 回復消息交換序列相關聯(lián)的時間數(shù)據(jù)來維護被觀察計算機系統(tǒng)處的所聲稱的時間。時鐘管理模塊152被配置成記錄并維護與計算機系統(tǒng)151同異步分布式系統(tǒng)100 的其他計算機系統(tǒng)之間的通信相關聯(lián)的時間數(shù)據(jù)。時鐘管理模塊152可以當在計算機系統(tǒng) 151處發(fā)送和接收消息時記錄時鐘153處的時間。時鐘管理模塊152還可以存儲從被觀察計算機系統(tǒng)(例如,計算機系統(tǒng)101)接收到的、包含在作為請求/回復消息交換序列的一 部分接收到的回復消息中的時間。根據(jù)所記錄的時間和接收到的時間,時鐘管理模塊152 可以指示指定范圍內事件在被觀察計算機系統(tǒng)處發(fā)生的時間。本發(fā)明的各實施例包括觀察他們自己的時鐘并推斷其他時鐘的值的范圍的各個 計算機系統(tǒng)。例如,計算機系統(tǒng)101可以觀察時鐘103并可以推斷時鐘153 (以及其他計算 機系統(tǒng)191處的時鐘)的值的范圍。類似地,計算機系統(tǒng)151可以觀察時鐘153并可以推 斷時鐘103(以及其他計算機系統(tǒng)191處的時鐘)的值的范圍。其他計算機系統(tǒng)191也可 以觀察它們自己的時鐘并推斷時鐘103和153中的每一個的值的范圍。時鐘管理模塊還可以用異步分布式系統(tǒng)100中的各時鐘之間的最大量化差Q(例 如,量化192)和異步分布式系統(tǒng)100中的每時間段D的最大時鐘漂移(例如,漂移193)來 配置。因此,本發(fā)明的一些實施例包括利用請求/回復消息交換來確定觀察計算機系統(tǒng) 所聲稱的被觀察計算機系統(tǒng)處的時間與被觀察計算機系統(tǒng)處的實際時間之間的偏差。請求 /回復消息交換可包括請求消息和對應的回復消息。例如,消息交換184包括請求181和回 復182。根據(jù)所確定的偏差,觀察計算機系統(tǒng)可以例如推斷被觀察計算機系統(tǒng)處的時鐘的值 的范圍。然而,還可以使用具有更松散相互關系(例如,比明確的請求/回復更松散)的消 肩、o因此,本發(fā)明的一些實施例包括利用在所發(fā)送和接收到的消息之間具有較松散相 互關系的請求/回復消息交換來確定觀察計算機系統(tǒng)所聲稱的被觀察計算機系統(tǒng)處的時 間與被觀察計算機系統(tǒng)處的實際時間之間的偏差。例如,一個計算機可以發(fā)送多個請求并 收回較少數(shù)量的對應響應或只收回一個對應響應(例如,由其他消息交換185表示)。此 外,來自一個計算機的回復還可以表示從該一個計算機回到另一計算機的請求。因此,消息 可以表示請求和回復兩者。另外,通常不需要規(guī)定要在何時返回對接收到的請求的回復。因 此,即使在請求/回復對之間存在強相關的情況下,對何時返回回復也沒有約束。例如,在 請求/回復184內,沒有規(guī)定響應于接收到請求181在何時返回回復182的時間約束。圖2是用于確定觀察計算機系統(tǒng)所聲稱的被觀察計算機系統(tǒng)處的時間與被觀察 計算機系統(tǒng)處的實際時間之間的偏差的示例方法200的流程圖,該方法包括。將參考異步 分布式系統(tǒng)100中的組件和數(shù)據(jù)來描述方法200。方法200包括參與同被觀察計算機系統(tǒng)的一個或多個消息交換的動作(動作 201)。例如,計算機系統(tǒng)101可以參與同計算機系統(tǒng)151的消息交換184?;蛘?,計算機系 統(tǒng)101可以參與一個或多個其他消息交換185。與消息交換184相比,這些消息交換可以 具有請求和回復之間的更松散耦合。在其他實施例中,計算機系統(tǒng)101參與其他消息交換 185但不參與消息交換184。因此,計算機系統(tǒng)101可以參與不包括任何請求/回復消息交 換的相關消息的松散耦合消息交換。參與同被觀察計算機系統(tǒng)的一個或多個消息交換可包括記錄在發(fā)送消息時觀察 計算機系統(tǒng)處的時鐘的時間的動作(動作202)。例如,時鐘管理模塊102可以在時間數(shù)據(jù) 194中記錄時間條目171。時間條目171記錄在計算機系統(tǒng)101發(fā)送請求181時時鐘103處 的時間,例如以小時分鐘秒.毫秒的格式。因此,時間條目181指示請求181是在時鐘 103指示時間8點時發(fā)送的。作為替換或組合,還可以為其他請求(例如,要包括在其他消息交換185中的請求)添加時間條目。參與同被觀察計算機系統(tǒng)的一個或多個消息交換可 包括向被觀察計算機系統(tǒng)發(fā)送消息的動作(動作203),該消息包括所記錄的發(fā)送時間。例 如,計算機系統(tǒng)101可以向計算機系統(tǒng)151發(fā)送請求181。請求181可包括來自時間條目 171的信息。作為替換或組合,也可以從計算機系統(tǒng)101將一個或多個其他請求(例如,作 為其他消息交換185的一部分)發(fā)送到計算機系統(tǒng)151。參與同被觀察計算機系統(tǒng)的一個或多個消息交換可包括隨后從被觀察計算機系 統(tǒng)接收響應于該消息的相關消息的動作(動作204),該相關消息包含來自被觀察計算機系 統(tǒng)的時間。例如,計算機系統(tǒng)101可以接收來自計算機系統(tǒng)151的回復182?;貜?82包括 時間183。時間183指示在時鐘153處觀察到的時間(例如,發(fā)送182回復的時間、處理請 求181的時間,等等)。作為替換或組合,也可從計算機系統(tǒng)151接收一個或多個其他回復 (例如,其他消息交換185中包括的回復)。因此,一個或多個回復可包括指示在時鐘153 處觀察到的時間的時間。參與同被觀察計算機系統(tǒng)的一個或多個消息交換可包括記錄在接收到相關消息 時觀察計算機系統(tǒng)處的時鐘的接收時間的動作(動作205)。例如,時鐘管理模塊102可以 在時間數(shù)據(jù)194中記錄時間條目172。時間條目172記錄在計算機系統(tǒng)101接收到回復182 時時鐘103處的時間。因此,時間條目172指示回復182是在時鐘103指示時間8點又64 毫秒時接收到的。作為替換或組合,時鐘管理模塊102還可以(在時間數(shù)據(jù)194中)記錄 指示何時接收到其他消息交換185包括的其他回復的時間條目。參與同被觀察計算機系統(tǒng)的一個或多個消息交換可包括記錄來自被觀察計算機 系統(tǒng)的時間的動作(動作206)。例如,時鐘管理模塊102可以在時間數(shù)據(jù)194中記錄時間 條目173。時間條目173記錄在時鐘153處觀察到的計算機系統(tǒng)151的時間(例如,接收到 請求181、在請求181的處理期間,等等)。時間條目173指示在請求回復交換序列184期 間是在8點又43毫秒觀察到時鐘153的時間。作為替換或組合,時鐘管理模塊102還可以 (在時間數(shù)據(jù)194中)記錄用于其他消息交換185中包括的其他回復中所包含的時間的時 間條目。方法200包括基于所記錄的發(fā)送消息的時間與來自被觀察計算機系統(tǒng)的包括在 相關消息中的時間之差來計算被觀察計算機系統(tǒng)處的時間相對于觀察計算機系統(tǒng)的時間 的下限的動作(動作207)。例如,時鐘管理模塊102可以計算時鐘103的時間相對于時鐘 153的下限161。時鐘管理模塊102可以實現(xiàn)上述公式來計算關于時鐘153的下限161。因 此,在接收到回復182并且觀察到時鐘103讀數(shù)8:00:00. 064的時刻,下限161可以如下計 算時鐘 153> =8:00:00. 064-(8:00:00. 064-8 00 00. 043+15 毫秒)-2 (0. 0007) (8:00:00. 064- (8:00:00. 064+8 00 00. 000) /2+15 毫秒)時鐘 153 >= 8:00:00. 064-(21 毫秒 +15 毫秒)-0. 0014(32 毫秒 +15 毫秒)時鐘 153 >= 8:00:00. 064-36 毫秒-0. 07 毫秒時鐘 153 >= 8:00:00. 027作為替換或組合,時鐘管理模塊102還可從與其他消息交換185中的其他請求和其他回復相關的時間條目來計算下限161。方法200包括基于所記錄的接收到相關消息的時間與來自被觀察計算機系統(tǒng)的 包括在該相關消息中的時間之差來計算被觀察計算機系統(tǒng)處的時間相對于觀察計算機系 統(tǒng)的時間的上限的動作(動作208)。例如,時鐘管理模塊102可以計算時鐘103的時間相 對于時鐘153的上限162。時鐘管理模塊102可以實現(xiàn)上述公式來計算關于時鐘153的上 限161。因此,在接收到回復183并且觀察到時鐘103讀數(shù)8:00:00. 064的時刻,上限162 可以如下計算時鐘 153< =8:00:00. 064+(8:00:00. 043-8 00 00. 000+15 毫秒) +2 (0. 0007) (8:00:00. 064- (8:00:00. 064+8 00 00. 000) /2+15 毫秒)時鐘 153 <= 8:00:00. 064+ (43 毫秒 +15 毫秒)+0. 0014(32 毫秒 +15 毫秒)時鐘 153 <= 8:00:00. 064+58 毫秒 +0. 07 毫秒時鐘 153 <= 8:00:00. 123作為替換或組合,時鐘管理模塊102還可從與其他消息交換185中的其他請求和 其他回復相關的時間條目來計算上限162。方法200包括計算上限和下限之差的動作(動作209)。例如,時鐘管理模塊102 可以計算上限162和下限161之差。在接收到回復182的時刻并考慮量化192,上限162和 下限161之差大約等于123毫秒-27毫秒,即96毫秒。方法200包括通過將計算得到的差除以平均因子來計算觀察計算機系統(tǒng)所聲稱 的被觀察計算機系統(tǒng)處的時間與被觀察計算機系統(tǒng)處的實際時間之間的最大偏差的動作 (動作210)。例如,時鐘管理模塊102可以將96毫秒除以2來計算得到48毫秒。時鐘103 與153之間的偏移量的中點是((8:00:00. 027+8:00:00. 123)/2)-80000. 064,這指示時 鐘153比時鐘103大約提前12毫秒。如上所述,作為消息交換184的替換或與其組合,計算機系統(tǒng)101可以參與同計 算機系統(tǒng)151的其他消息交換。因此,所推斷的時間范圍的下限和/或上限可以基于這 些其他消息交換來進行細化。因此,下限161可以在任何后續(xù)發(fā)送時間-觀察到的時間 小于大于-43毫秒時進行細化。例如,如果發(fā)送時間是8:01:27. 53并且觀察到的時間是 8:01:27. 69,則下限161可被細化成_(16毫秒+20毫秒+時鐘漂移分量)。類似地,上限 162可以在任何后續(xù)接收時間-觀察到的時間小于小于21毫秒時進行細化。例如,如果接 收時間是8:03:52. 07并且觀察到的時間是8:03:51. 92,則上限162可被細化成(15毫秒 +20毫秒+時鐘漂移分量)。下限和上限兩者可以指示觀察計算機系統(tǒng)時鐘落后被觀察時鐘的某一時間量。例 如,下限可以是-47毫秒且上限可以是-12毫秒。下限和上限的這一組合指示計算機系統(tǒng) 時鐘落后被觀察時鐘至少12毫秒并且落后被觀察時鐘不超過47毫秒。類似地,下限和上限兩者可以指示觀察計算機系統(tǒng)時鐘超前被觀察時鐘的某一時 間量。例如,下限可以是17毫秒且上限可以是82毫秒。下限和上限的這一組合指示計算 機系統(tǒng)時鐘超前被觀察時鐘至少17毫秒并且超前被觀察時鐘不超過82毫秒。在一些實施例中,時鐘管理模塊被配置成至少在預定義時間間隔上(如,每分鐘、每兩分鐘,等等)啟動請求/回復消息交換或其他消息交換。消息交換可以承載在異步分 布式系統(tǒng)中的各計算機系統(tǒng)之間交換的其他(例如,應用程序)消息上。還可以根據(jù)其他 策略(如越過漂移限度)來啟動用于時鐘同步的請求/回復或其他消息交換。在推斷了被觀察計算機系統(tǒng)處的時間之后,觀察計算機可以使用所推斷的時間來 計算一事件在被觀察計算機系統(tǒng)處發(fā)生或可能(即,將要)發(fā)生的時間的時間界限。因此,本發(fā)明的各實施例便于兩個計算機系統(tǒng)之間對時間共同理解,即對時間的 度過的安全視圖。例如,從最大偏差或時間范圍,觀察計算機系統(tǒng)可以制定被觀察計算機系 統(tǒng)處的時間度過的安全視圖。從安全的觀點看,觀察計算機系統(tǒng)可以假定(在計算得到的 界限內)過去事件何時在被觀察計算機系統(tǒng)處發(fā)生。例如,計算機系統(tǒng)101可以假定事件 196何時在計算機系統(tǒng)151處發(fā)生。同樣從安全觀點看,兩個計算機系統(tǒng)可以就一事件要在 將來何時發(fā)生達成一致。結果,一個計算機系統(tǒng)可以假定(在計算得到的界限內)一事件 何時將在另一計算機系統(tǒng)處發(fā)生。圖3是用于指示一事件在被觀察計算機系統(tǒng)處的發(fā)生時間的示例方法的流程圖。方法300包括參與同被觀察計算機系統(tǒng)的一個或多個消息交換的動作(動作 301)。每一消息交換包括記錄在發(fā)送請求消息時觀察計算機系統(tǒng)處的時鐘的時間的動作 (動作302)。每一消息交換包括向被觀察計算機系統(tǒng)發(fā)送一個或多個請求消息的動作(動 作303),每一請求消息包括對應的所記錄的發(fā)送時間。每一消息交換包括隨后從被觀察計 算機系統(tǒng)接收響應于請求消息的一個或多個回復消息的動作(動作304),回復消息包含來 自被觀察計算機系統(tǒng)的時間。每一消息交換包括記錄在接收到回復消息時觀察計算機系統(tǒng) 處的時鐘的時間的動作(動作305)。例如,計算機系統(tǒng)101可以參與消息交換184和其他消息交換185。每一消息交換 可包括發(fā)送一個或多個請求(例如,181),記錄發(fā)送每一請求的時間(例如,171),接收一 個或多個回復(例如,182),記錄接收到每一回復的時間(例如,172),以及記錄包含在來自 觀察者計算機系統(tǒng)的回復(例如,173)中的時間(例如,183)。方法300包括基于一個或多個消息交換來計算被觀察計算機系統(tǒng)相對于觀察計 算機系統(tǒng)的時間的時間界限的動作(動作306),該時間界限被配置成在該一個或多個消息 交換之后被應用于觀察計算機系統(tǒng)處的時間以聲稱被觀察計算機系統(tǒng)處的指定時間范圍。 該時間界限包括表示計算得到的時間界限的底部的時間下限和表示計算得到的時間界限 的頂部的時間上限。例如,計算機系統(tǒng)101可以計算并細化下限161和上限162。方法300包括觀察計算機系統(tǒng)在一個或多個消息交換之后接收指示的動作(動作
307),該指示選自以下各項a)過去事件在被觀察計算機系統(tǒng)處發(fā)生的指示以及b)—事件 何時將在被觀察計算機系統(tǒng)處發(fā)生的指示。例如,計算機系統(tǒng)101可以檢測事件196。在接 收到事件196之后,時鐘管理模塊可以在時間數(shù)據(jù)194中記錄時間條目174。時間條目194 指示在8:00:28. 016時檢測到事件196?;蛘?,計算機系統(tǒng)101可以接收一事件何時將在計 算機系統(tǒng)151處發(fā)生的指示并記錄該事件要在何時發(fā)生的時間條目。方法300包括觀察計算機系統(tǒng)計算被觀察計算機系統(tǒng)的時間范圍的動作(動作
308),該時間范圍指示在被觀察計算機系統(tǒng)處a)過去事件何時發(fā)生或b)事件何時將在被 觀察計算機系統(tǒng)處發(fā)生,該時間范圍是基于在接收到指示時觀察計算機系統(tǒng)處的時間并基 于計算得到的時間界限的下限和上限來計算的。例如,根據(jù)時間條目174,時鐘管理模塊102可以計算指示事件196在計算機系統(tǒng)151處何時發(fā)生的時間范圍。如此,新下限可如下 計算時鐘 153> =8:00:00. 064-(8:00:00. 064-8:00:00. 043+15 毫秒)-2(0. 0007) (8:00:28. 016-(8 00 00. 064+8:00:00. 000)/2+15 毫秒)時鐘 153 >= 8:00:00. 064-(21 毫秒 +15 毫秒)-() 0014(28,016 毫秒-32毫秒+15毫秒)時鐘 153 >= 8:00:00. 064-36 毫秒-39. 2 毫秒時鐘 153 >= 7:59:59. 089并且新上限可如下計算時鐘 153< =8:00:00. 064+(8:00:00. 043-8 00 00. 000+15 毫秒)+2(0. 0007) (8:00:28. 016-(8 00 00. 064+8:00:00. 000)/2+15 毫秒)時鐘 153 <= 8:00:00. 064+ (43 毫秒 +15 毫秒)+0. 0014(32 毫秒 +15 毫秒)時鐘 153 <= 8:00:00. 064+58 毫秒 +39. 2 毫秒時鐘 153 <= 8:00:00. 161因此,在檢測到事件196的時刻并考慮量化192,上限162和下限161之差大約等 于161毫秒-(-11毫秒),即172毫秒。時鐘管理模塊102可以將172毫秒除以2以計算 得到86毫秒作為最大偏差。這一新偏差可被用來計算時間186,即事件196在計算機系統(tǒng) 151處發(fā)生的推斷時間(在最大偏差內)。時鐘103和153之間的偏移量的中點是((8:00:27. 970+8:00:28. 102)/2)-8 00 28. 0168:00:28. 066-8:00:28. 016 = 50毫秒,這指示時鐘153比時鐘103超前50毫秒?;蛘?,可以計算一事件將要發(fā)生的時間的下限和上限。方法300包括向一個或多個其他計算機系統(tǒng)發(fā)送包括指示和計算得到的時間范 圍的事件消息的動作(動作309)。例如,計算機系統(tǒng)100可以向其他計算機系統(tǒng)191發(fā)送 包括事件196 (或事件196將在何時發(fā)生的指示)和時間186的事件消息197。接收到事 件消息197的計算機系統(tǒng)可以基于事件消息197來作出關于計算機系統(tǒng)151的狀態(tài)的判 定。例如,一計算機系統(tǒng)可以從計算機系統(tǒng)151接收計算機系統(tǒng)151在8:00:15. 13時在 線的指示。該計算機系統(tǒng)隨后可以接收指示計算機系統(tǒng)151離線的事件消息197。因為 8 00 28. 016 士86毫秒在8 00 15. 13之后,所以該計算機系統(tǒng)可以調整它的關于計算機系 統(tǒng)151的狀態(tài)。情況有可能是最大偏差造成與先前接收到的時間的重疊,從而造成關于哪一事件 發(fā)生得更早的潛在沖突。例如,如果時間184是8:00:15. 47士90. 22毫秒,則偏差造成存在 著事件196實際上在8:00:15. 13之前發(fā)生的某種幾率。在這種情況下,接收事件消息的計 算機系統(tǒng)可以參考預定義規(guī)則(例如,服務級協(xié)定)來解決沖突。隨時間流逝,計算機系統(tǒng)可以計算請求/回復(或其他消息)交換的平均完成時 間。使用這一平均值和預定義時間間隔,計算機系統(tǒng)可以估計時間差的最壞情況誤差界限。例如,參考圖1,如果請求/回復消息交換的平均完成時間是40毫秒并且預定義時間間隔是 30秒,則最壞情況誤差界限可以計算為士 [(40毫秒/2)+20毫秒+2*((· 5分鐘/24)*60分 鐘)*(60 秒)]=81. 5 毫秒。情況有可能是系統(tǒng)如從平均值或甚至從硬件規(guī)范中已經知道時鐘量程約束、漂移 率約束、以及最大往返約束的(至少所估計的)值。最大誤差等式可被用來計算(異步分 布式系統(tǒng)中的各計算機系統(tǒng)之間的)觀察計算機系統(tǒng)所聲稱的被觀察計算機系統(tǒng)的時間 與被觀察計算機處的實際時間的最大偏差。圖5示出便于計算包括多個計算機系統(tǒng)的異步分布式系統(tǒng)的不同計算機系統(tǒng)處 的時鐘之間的最大偏差的示例計算機體系結構500。圖4是用于計算包括多個計算機系統(tǒng) 的異步分布式系統(tǒng)的不同計算機系統(tǒng)處的時鐘之間的最大偏差的示例方法400的流程圖。 方法400將參考計算機體系結構500中的組件和數(shù)據(jù)來描述。方法400包括訪問時鐘量程約束的動作(動作401),時鐘量程約束指示異步分布 式系統(tǒng)的各計算機系統(tǒng)之間的時鐘量化間的最大差。例如,計算機系統(tǒng)501可以訪問時鐘 量程約束511,如硬件規(guī)范Q = 15毫秒。方法400包括訪問漂移率約束的動作(動作402),漂移率約束指示異步分布式系 統(tǒng)的每一計算機系統(tǒng)在指定時間段內的最大時鐘漂移。觀察者可以學習指定被觀察者的最 壞情況漂移或針對這一最壞情況漂移來配置?;蛘?,觀察者可被配置成對任何被觀察者都 假定最壞情況漂移。例如,計算機系統(tǒng)501可以訪問時鐘漂移率約束512,如D <每天1分 鐘漂移。因此,時鐘漂移率約束512可應用于特定被觀察者或任何被觀察者。方法400包括訪問最大往返約束的動作(動作403),最大往返約束指示在異步分 布式系統(tǒng)的任何兩個計算機系統(tǒng)之間發(fā)生的請求/回復消息交換的最大時間量。例如,計 算機系統(tǒng)501可以訪問最大往返約束513。往返約束513可以例如根據(jù)計算機系統(tǒng)101 — 分鐘查詢一次計算機系統(tǒng)151并且往返時間小于50毫秒來得到。方法400包括基于時鐘量程約束、漂移率約束、以及最大往返約束來計算異步系 統(tǒng)的不同計算機系統(tǒng)的時鐘之間的最大偏差的動作。例如,計算機系統(tǒng)501可以基于時鐘 量程約束511、時鐘漂移率約束512、以及往返約束513來計算最大時鐘偏差514。最大偏差等式便于觀察計算機系統(tǒng)了解被觀察計算機系統(tǒng)處的時間總是處于計 算得到的界限內。在一些實施例中,可以使用以下最大偏差等式((接收時間-發(fā)送時間)/2)+Q+(2D*(T-平均值(發(fā)送時間,接收時間)+Q))或者在預定或指定值的情況下(R/2)+Q+(2*D*預定義請求/回復消息交換時間間隔)因此,根據(jù)參考方法400描述的各個約束,最大偏差便于觀察計算機系統(tǒng)了解被 觀察計算機系統(tǒng)處的時間總是處于(50毫秒/2)+15毫秒+(2*(1分鐘/24*60分鐘)*(60 秒))之內,這是25毫秒+15毫秒+83毫秒=123毫秒。此外,緊接著消息交換序列查詢 之后,時鐘漂移率約束D分量對最大誤差的影響接近于0。S卩,(2*( 0/24*60分鐘)*(60 秒))=O0因此,緊接著消息交換序列查詢之后,觀察計算機系統(tǒng)可以了解被觀察計算機系 統(tǒng)處的時間大約是25毫秒+15毫秒+0毫秒=40毫秒。因此,本發(fā)明的各實施例便于創(chuàng)建跨諸如常見異步(分布式)系統(tǒng)內的各個成員 等一組對等節(jié)點(觀察者)的可信且實際的公共時間(一天中的時間)基準。可以在不參考公共主機的情況下,經由跟蹤并累積節(jié)點(觀察者)對之間的最壞情況相對時間偏移來 創(chuàng)建一類偽同步系統(tǒng)??梢曰诠?jié)點對之間的定序的交互來形成直接和間接因果關系。如 此,給定對一個節(jié)點的觀察,合作節(jié)點可以基本上確保另一個節(jié)點將觀察到的一天的時間 的下限。因此,本發(fā)明的各實施例可被應用來在不使用公共外部一天內的時間時鐘實體的 情況下提供跨這樣的異步系統(tǒng)的最壞情況(即,最大偏差)當前時間的一致(基本上安全) 的視圖。 在不偏離本發(fā)明的精神或必要特征的情況下,本發(fā)明能以其他具體形式來實現(xiàn)。 所描述的實施例在各個方面都只作為說明性的,而不是限制性的。因此,本發(fā)明的范圍由所 附權利要求書而不是由前面的描述指出。在權利要求的等效方案內的含義和范圍內的所有 更改都將包括在它們的范圍內。
權利要求
一種在包括多個計算機系統(tǒng)(101、151、191)的異步分布式系統(tǒng)(100)中的觀察計算機系統(tǒng)(101)處的、用于確定所述觀察計算機系統(tǒng)(100)所聲稱的被觀察計算機系統(tǒng)(151)處的時間與所述被觀察計算機系統(tǒng)(151)處的實際時間之間的偏差的方法,所述觀察計算機系統(tǒng)(101)包括處理器和系統(tǒng)存儲器,所述異步分布式系統(tǒng)(100)具有時鐘量化約束(192)和漂移率約束(193),所述時鐘量化約束(192)指示所述異步分布式系統(tǒng)(100)的各計算機系統(tǒng)(101、151、191)之間的時鐘量化間的最大差,所述漂移率約束(193)指示所述異步分布式系統(tǒng)(100)的每一計算機系統(tǒng)在指定時間段內的最大時鐘偏移,所述方法包括參與同所述被觀察計算機系統(tǒng)(151)的一個或多個消息交換(184、185)的動作,所述消息交換包括記錄在發(fā)送消息(181)時在所述觀察計算機系統(tǒng)(101)處的時鐘(103)的發(fā)送時間(171)的動作;將消息(181)發(fā)送到所述被觀察計算機系統(tǒng)(151)的動作,所述消息(181)包括所記錄的發(fā)送時間(171);隨后從所述被觀察計算機系統(tǒng)(151)接收響應于所述消息(181)的相關消息(182)的動作,所述相關消息(182)包含來自所述被觀察計算機系統(tǒng)(151)的時間(183);記錄在接收到所述相關消息(182)時在所述觀察計算機系統(tǒng)(101)處的時鐘(103)的接收時間(172)的動作;以及記錄來自所述被觀察計算機系統(tǒng)(151)的時間(173)的動作;基于所記錄的發(fā)送所述消息的時間(181)與包括在所述相關消息中的來自所述被觀察計算機系統(tǒng)的時間(183)之間的差、所述時鐘量程約束(192)、以及所述時鐘漂移約束(193)來計算所述被觀察計算機系統(tǒng)處的時間相對于所述觀察計算機系統(tǒng)的時間的下限(161)的動作;基于所記錄的接收到所述相關消息的時間(182)與包括在所述相關消息中的來自所述被觀察計算機系統(tǒng)的時間(183)之間的差、所述時鐘量程約束(192)、以及所述時鐘漂移約束(193)來計算所述被觀察計算機系統(tǒng)處的時間相對于所述觀察計算機系統(tǒng)的時間的上限(162)的動作;計算所述上限(162)和所述下限(161)之差的動作;以及所述處理器通過將計算得到的差除以平均因子來計算所述觀察計算機系統(tǒng)所聲稱的所述被觀察計算機系統(tǒng)處的時間與所述被觀察計算機系統(tǒng)處的實際時間之間的最大偏差的動作。
2.如權利要求1所述的方法,其特征在于,還包括所述觀察計算機系統(tǒng)使用計算得到 的最大偏差來制定所述被觀察計算機系統(tǒng)處的時間度過的安全視圖的動作。
3.如權利要求1所述的方法,其特征在于,還包括所述觀察計算機系統(tǒng)和所述被觀察 計算機系統(tǒng)就一事件何時發(fā)生達成一致的動作。
4.如權利要求3所述的方法,其特征在于,所述觀察計算機系統(tǒng)和所述被觀察計算機 系統(tǒng)就一事件何時發(fā)生達成一致的動作還包括所述觀察計算機系統(tǒng)檢測到過去事件在所 述被觀察計算機系統(tǒng)處發(fā)生的動作。
5.如權利要求3所述的方法,其特征在于,所述觀察計算機系統(tǒng)和所述被觀察計算機系統(tǒng)就一事件何時發(fā)生達成一致的動作包括所述觀察計算機系統(tǒng)和所述被觀察計算機系 統(tǒng)就一事件在將來何時發(fā)生達成一致的動作。
6.如權利要求1所述的方法,其特征在于,還包括所述觀察計算機系統(tǒng)參與同所述被觀察計算機系統(tǒng)的一個或多個其他消息交換的動 作;以及所述觀察計算機系統(tǒng)基于所記錄的與所述一個或多個其他消息交換相對應的時間來 細化所述下限和所述上限中的一個或多個的動作。
7.—種在觀察計算機系統(tǒng)(101)處的用于指示一事件在被觀察計算機系統(tǒng)(151)處發(fā) 生的時間的方法,所述觀察計算機系統(tǒng)包括處理器和系統(tǒng)存儲器,所述方法包括參與同所述被觀察計算機系統(tǒng)(151)的一個或多個消息交換(184、185)的動作,每一 消息交換包括記錄在發(fā)送請求消息(181)時在所述觀察計算機系統(tǒng)(101)處的時鐘(103)的時間(171)的動作;將一個或多個請求消息(181)發(fā)送到所述被觀察計算機系統(tǒng)(151)的動作,每一請求 消息包括對應的所記錄的發(fā)送時間;隨后從所述被觀察計算機系統(tǒng)(151)接收響應于所述一個或多個請求消息(181)的 一個或多個回復消息(182)的動作,每一回復消息包含來自所述被觀察計算機系統(tǒng)的時間 (183);以及記錄在接收到回復消息(182)時在所述觀察計算機系統(tǒng)(101)處的時鐘(103)的時間(172)的動作;基于所述一個或多個消息交換(184、185)來計算所述被觀察計算機系統(tǒng)(151)相對于 所述觀察計算機系統(tǒng)(101)的時間的時間界限(161、162)的動作,所述時間界限(161、162) 被配置成在所述一個或多個消息交換(184、185)之后被應用于所述觀察計算機系統(tǒng)(101) 處的時間以聲稱所述被觀察計算機系統(tǒng)處的指定時間范圍,所述時間界限包括 表示計算得到的時間界限的底部的時間下限(161);以及 表示計算得到的時間界限的頂部的時間上限(162);所述處理器在所述一個或多個消息交換(184、185)之后接收指示的動作,所述指示選 自以下各項a)過去事件在所述被觀察計算機系統(tǒng)(151)處發(fā)生的指示以及b) —事件何 時將在所述被觀察計算機系統(tǒng)(151)處發(fā)生的指示;所述處理器計算所述被觀察計算機系統(tǒng)(151)的時間范圍的動作,所述時間范圍指示 在所述被觀察計算機系統(tǒng)(151)處a)所述事件何時發(fā)生或b)所述事件將在何時發(fā)生,所 述時間范圍是基于在接收到所述指示時所述觀察計算機系統(tǒng)(101)處的時間并基于所述 計算得到的時間界限的下限(161)和上限(162)來計算的;以及向一個或多個其他計算機系統(tǒng)(191)發(fā)送包括所述指示和所述計算得到的時間范圍 (186)的事件消息(197)的動作。
8.如權利要求7所述的方法,其特征在于,所述基于所述一個或多個消息來計算所述 被觀察計算機系統(tǒng)相對于所述觀察計算機系統(tǒng)的時間的時間界限的動作包括至少部分地 基于在所述一個或多個消息交換中的任一個中所記錄的發(fā)送請求消息的時間與來自所述 被觀察計算機系統(tǒng)的包括在對應回復消息中的時間之間的最小差來將所述下限設為某一值的動作。
9.如權利要求8所述的方法,其特征在于,所述將所述下限設為某一值的動作包括至 少部分地基于所述觀察計算機系統(tǒng)處的時鐘的量化與所述被觀察計算機系統(tǒng)處的時鐘的 量化之差的指示來將所述下限設為某一值的動作。
10.如權利要求8所述的方法,其特征在于,所述將所述下限設為某一值的動作包括至 少部分地基于所述觀察計算機系統(tǒng)處的時鐘的時鐘漂移和所述被觀察計算機系統(tǒng)處的時 鐘的時鐘漂移來將所述下限設為某一值的動作。
11.如權利要求7所述的方法,其特征在于,所述基于所述一個或多個請求/回復消息 來計算所述被觀察計算機系統(tǒng)相對于所述觀察計算機系統(tǒng)的時間的時間界限的動作包括 至少部分地基于在所述一個或多個請求/回復消息交換中的任一個中所記錄的接收到一 回復消息的時間與來自所述被觀察計算機系統(tǒng)的包括在所述回復消息中的時間之間的最 小差來將所述上限設為某一值的動作。
12.如權利要求11所述的方法,其特征在于,所述將所述上限設為某一值的動作包括 至少部分地基于所述觀察計算機系統(tǒng)處的時鐘的量化與所述被觀察計算機系統(tǒng)處的時鐘 的量化之差的指示來將所述上限設為某一值的動作。
13.如權利要求11所述的方法,其特征在于,所述將所述上限設為某一值的動作包括 至少部分地基于所述觀察計算機系統(tǒng)處的時鐘的時鐘漂移和所述被觀察計算機系統(tǒng)處的 時鐘的時鐘漂移來將所述上限設為某一值的動作。
14.如權利要求7所述的方法,其特征在于,所述異步分布式系統(tǒng)是對等系統(tǒng)。
15.一種在計算機系統(tǒng)(501)處的用于計算包括多個計算機系統(tǒng)的異步分布式系統(tǒng)的 不同計算機系統(tǒng)處的時鐘之間的最大偏差(514)的方法,所述計算機系統(tǒng)包括處理器和系 統(tǒng)存儲器,所述方法包括訪問時鐘量程約束(511)的動作,所述時鐘量程約束指示所述異步分布式系統(tǒng)的各計 算機系統(tǒng)之間的時鐘量化間的最大差;訪問漂移率約束(512)的動作,所述漂移率約束指示所述異步分布式系統(tǒng)的每一計算 機系統(tǒng)在指定時間段內的最大時鐘漂移;訪問最大往返約束(513)的動作,所述最大往返約束指示在所述異步分布式系統(tǒng)的任 何兩個計算機系統(tǒng)之間發(fā)生請求/回復消息交換的最大時間量;以及所述處理器基于所述時鐘量程約束、所述漂移率約束、以及所述最大往返約束來計算 所述異步系統(tǒng)的不同計算機系統(tǒng)的時鐘之間的最大偏差(514)的動作。
全文摘要
本發(fā)明涉及用于對異步分布式系統(tǒng)中的時鐘進行同步的方法、系統(tǒng)和計算機程序產品。本發(fā)明的各實施例便于創(chuàng)建跨諸如常見異步(分布式)系統(tǒng)內的各個成員等一組對等節(jié)點(觀察者)的不穩(wěn)定且實際的公共時間(一天中的時間)基準??梢栽诓粎⒖脊仓鳈C的情況下,經由跟蹤并累積節(jié)點(觀察者)對之間的最壞情況相對時間偏移來創(chuàng)建一類偽同步系統(tǒng)。如此,給定對一個節(jié)點的觀察,合作節(jié)點可以基本上確保另一個節(jié)點將觀察到的一天中的時間的下限。因此,本發(fā)明的各實施例可被應用來在不使用公共的外部一天中的時間時鐘實體的情況下提供跨這樣的異步系統(tǒng)的最壞情況(即,最大偏差)當前時間的一致(基本上安全)的視圖。
文檔編號G06F1/12GK101981527SQ200980111815
公開日2011年2月23日 申請日期2009年3月27日 優(yōu)先權日2008年3月27日
發(fā)明者M·J·馬魯切克, M·穆赫辛, R·L·哈沙 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
聂荣县| 奇台县| 华亭县| 历史| 庆安县| 浦江县| 汉寿县| 满洲里市| 屏东县| 新营市| 江山市| 淮北市| 河南省| 老河口市| 扎囊县| 勐海县| 桐柏县| 微博| 赤壁市| 托克托县| 河源市| 汾西县| 昆明市| 邢台市| 通州市| 应城市| 南部县| 淳化县| 裕民县| 邛崃市| 汝南县| 奉新县| 延边| 巨野县| 吴堡县| 改则县| 同江市| 灵宝市| 漳州市| 孙吴县| 习水县|