新四季網

管理並簡化分布式應用的製作方法

2023-12-01 07:33:06

管理並簡化分布式應用的製作方法
【專利摘要】分布式實例系統管理各實例以及各實例之間的通信。該分布式實例系統向各實例提供有限的一組通信方法。基於所使用的通信方法的類型,該分布式實例系統知道各實例所發送的消息並且可作出關於如何處理這些消息的決策。在消息交換中所涉及的實例之一結束時,主機使用它對消息交換類型的知識來確定是否丟棄該消息、丟棄該消息的回覆、和/或向尚存的實例發送出錯消息。一實例可按樹類結構來創建一個或多個子實例。狀態數據從各子實例沿該樹向上傳遞,並被聚集在父實例中。可根據所聚集的狀態數據來生成監視數據。
【專利說明】管理並簡化分布式應用
【背景技術】
[0001]大型分布式應用管理起來很複雜。具體而言,需要大量的手動幹預來處理分布式通信的不可靠性質。對於可運行交換數百萬消息的數百萬進程的非常大規模的應用而言,這一問題惡化。傳統上,這些大規模應用需要來自系統管理員的人類幹預來手動地補償和糾正出現故障的進程。另外,這些應用需要支持這一幹預的廣泛的基礎結構,如死信隊列和掛起進程報告。
[0002]例如在兩個應用(如業務進程的兩個組件)交換消息時,問題會發生。這些應用可通過中介來交換消息。發送實例可要求對發送給目的地實例的消息的響應。然而,如果目的地實例在接收到該消息之前結束,則該消息將處於中介中。結果,發送實例從未接收到響應,並且因此變得停止。當大型分布式應用運行數百萬進程時,數千不可路由的消息可在中介中聚集。系統管理員必須手動清理這些不可路由的消息並重啟停止的進程。對於極大型分布式應用而言,規模變得過大,以致人類操作員無法管理這些不可路由的消息、停止的進程以及類似問題。
[0003]這些問題不只是大型應用的問題,而是也出現在小型應用中。另外,在使用經中介的消息收發時以及在使用相關的單向點對點消息收發時,這些問題產生。其他大規模場景,如大量小型託管應用,也可能需要解決這些問題。
[0004]概述
[0005]提供本概述以便以簡化形式介紹將在以下詳細描述中進一步描述的一些概念。本概述並不旨在標識所要求保護主題的關鍵特徵或必要特徵,也不旨在用於限制所要求保護主題的範圍。
[0006]本解決方案通過向系統開發者提供允許將各應用表示為多個實例的增強的分布式實例系統而降低了管理開銷。各實例只通過有限的一組消息交換模式來通信。該系統知曉所有各單獨實例和這些實例中的每一個的壽命。通過將實例壽命意識與有限的消息交換模式的組合,該系統可以做出關於如何處理故障的適當決策。這創建了極低成本的編程平臺,甚至適用於通常沒有活動人類管理角色的最終用戶應用。另外,該分布式實例系統提供了用於創建極大型系統的理想平臺,該極大型系統利用消息收發系統中內在的最終一致性,針對分布式事務的缺少進行了優化,並且具有多承租人、高密度雲計算的可伸縮性要求。
[0007]該分布式實例系統可被實現成執行環境、分布式運行時、分布式管理環境、分布式管理和執行系統、或提供實例的壽命管理的其他平臺。該系統可被實現在單個機器上或可被虛擬化在多個機器、伺服器或處理器上。
[0008]各實例包括行為和相關聯的狀態的組合。應用的狀態可被分解成一系列實例,其中各單獨的實例表示該應用的問題域的具體人工產物。各實例可與其他實例通信。各實例可具有顯式的壽命,如顯式的開始和結束。各實例在該系統中的存在和壽命可以是外部可見的並且可在外部進行管理。
[0009]各實施例可以使用實例管理器,該實例管理器擔當分布式實例系統中的增強的中介,用於管理各實例之間的通信。在現有系統中,中介管理各通信,但不知道各應用所使用的消息交換模式。在本發明的系統中,與先前分布式系統中可用的實例通信知識相比,實例管理器具有更多的實例通信知識。另外,該實例管理器知道各實例的壽命並且可以基於對實例壽命的這一知識來管理通信。例如,實例管理器可以管理兩個實例A和B之間的通信。實例A向實例B發送消息,並且包括與該消息有關的可被實例管理器用來作出關於該消息的決策的信息。例如,實例A可以將該消息標識為請求-回復交換的第一局。
[0010]在傳統的中介系統中,如果實例A在接收到來自實例B的回覆之前結束,則回復消息將被保持在死信隊列中。網絡管理員將必須從死信隊列中手動地清除該回復消息。在極大規模應用的情況下,死信隊列中可存在數千消息,並且人類網絡管理員將必須分析並消除這些消息中的每一個。另外,在大量應用的情況下,可存在要按此方式手動地監視和維護的數千消息隊列。
[0011]在本文公開的系統的各實施例中,該分布式實例系統具有與消息交換有關的信息一即,它是請求-回復。因此,該實例管理器可以基於消息的預期使用來作出與如何處理消息有關的決策。如果分布式實例系統知道該消息是請求-回復交換的回覆部分,並且發出請求的實例A已完成或不再對該回復感興趣,則該分布式實例系統可以只是消除該回復消息而非嘗試將它遞送給實例A。因為實例A已完成,所以它不關心或需要從實例B接收該回復消息,因為它將簡單地將該消息作為噪聲而丟棄。
[0012]類似地,如果實例B在接收到來自A的請求消息之前已完成,則該分布式實例系統(它具有與該消息交換有關的信息)可作出關於實例管理器應當如何處理該請求消息的決策。並非堅持該請求消息作為不可遞送的信和/或繼續嘗試遞送給實例B,實例管理器可向實例A發送出錯消息。實例A可具有消息出錯處理智能,使得它可以處理請求消息的失敗,而無需停止或等待來自實例B的回覆(該回復將永遠不會到達)。
[0013]在一個實施例中,增強的分布式實例系統管理各實例,知曉各實例的壽命,並且提供各實例之間的有限的一組消息交換模式。通過利用該有限的一組消息交換模式,該系統可以消除或降低對用戶管理的需求。請求-回復消息允許各實例之間可靠的異步請求-回復通信。此外,對話是用於支持各實例之間可靠且異步的全雙工消息收發交換模式的一種機制。
[0014]分布式實例系統可以將各實例構造成一個或多個分層結構樹。這允許該系統凝聚性地管理各狀態並且降低管理開銷。各實例組織成分層結構樹使得能夠降低與管理極大型分布式應用中的各實例相關聯的管理複雜度。例如,大型業務進程可包括多個異步業務事務。各實例的分層組織使得能夠管理該大型業務進程。另外,各實例可被組織以在必要時提供隔離來保護業務進程信息。程序可被分成可高度並行化的多個可分布的狀態。此外,各實例的處理邏輯定義可以是後期綁定的和獨立地版本化的。
[0015]該系統運行各應用實例並向這些實例提供有限的一組消息交換模式。存儲設備保持實例狀態和消息。存儲設備可在物理上位於一個或多個機器中,分布在一個或多個進程上。實例管理器支持這些有限的消息交換模式。
[0016]該有限的一組消息交換模式允許該系統設備標識可被消除而無需用戶幹預的消息。該有限的一組消息交換模式允許各實例交換異步請求和回復消息。實例管理器基於交換中所涉及的各實例的壽命來標識應被消除的請求和回復消息。[0017]各實例可被組織成分層結構,其中一個實例擔當創建和/或管理一個或多個子實例的父實例。該分層結構可具有多個層,其中子實例生成它們自己的子實例並且因此也作為父實例來操作。子實例可向它們相應的父實例發送狀態報告。每一父實例在將所聚集的狀態報告傳遞給更高層父實例之前聚集來自它們相應的子實例的狀態報告。在任何層處聚集的狀態報告可被傳遞給管理入口。
[0018]各實例可包括監視實例。攜帶健康和狀態信息的監視消息可通過實例樹被向上傳播。在根層或在較低層處的監視實例可收集監視消息。各實例可被組織成提供封裝端到端進程的監視信息的同構視圖。
[0019]對話是分布式實例系統所跟蹤的兩個實例之間的成對關聯。對話可通過涉及這兩個參與實例的握手來建立。握手由該分布式實例系統來協調。在參與對話的一實例已結束時,通知參與該對話的另一實例。任一實例可顯式地終止對話,或通過終止自己從而隱式地終止所有它相關聯的對話。在一實例終止對話時,通知該對話中的另一實例。在各實例具有父-子關係時,創建對話。這一對話是創建子實例的父實例的副作用。在子實例完成時,父-子對話結束。在父-子關係之外,一實例可以通過使用該分布式實例系統所協調的握手過程登記對另一實例的壽命的興趣,來發起對話。對話是由該基礎結構維護並理解的雙方成對關係。之後,對話被建立,它是對稱的。在一方結束對話時,通知另一方。父-子是對話的一特定使用。父實例創建子實例並且作為該創建的副作用,父實例和子實例兩者是對話的雙方。如果子實例終止,則向父實例通知對話結束。類似地,如果父實例終止,則向子實例通知對話結束並且子實例也終止。
[0020]在另一實施例中,一種用於管理多個實例的方法包括在一個或多個實例處理器上發起多個實例,監視該多個實例中的每一個的壽命,以及向該多個實例提供定義的一組消
肩、O
[0021]該方法還包括提供用於發送實例和目的地實例之間的通信的請求-回復消息格式,標識目的地實例在接收到請求消息之前何時已結束,以及自動消除該請求消息。該方法還在消除請求消息時向發送實例提供出錯消息。
[0022]該方法還包括提供用於發送實例和目的地實例之間的通信的請求-回復消息格式,標識發送實例在接收到回復消息之前何時已結束,以及自動消除該回復消息。
[0023]該方法還可包括提供用於發送實例和目的地實例之間的通信的單向消息格式,標識目的地實例在接收到單向消息之前何時已結束,以及自動消除該單向消息。
[0024]多個實例可被安排成分層格式,其中各實例被安排成多層父-子編組。該方法還可包括從子實例向父實例發送實例狀態信息,在父實例處聚集子實例的實例狀態信息,將所聚集的狀態信息從父實例發送給更高的父實例,以及將進程狀態信息提供給監視實例,該進程狀態信息包括所聚集的狀態信息。所聚集的狀態信息可以提供與各實例相關聯的端到端進程的同構視圖。
【專利附圖】

【附圖說明】
[0025]圖1是根據一個實施例的分布式實例系統的各組件的高級框圖;
[0026]圖2是根據一個實施例的分布式實例系統的拓撲結構的高級框圖;
[0027]圖3示出了根據一個實施例的各實例的分層結構;[0028]圖4示出了用於兩個實例之間的請求-回復交換的請求-回復消息收發模式;
[0029]圖5示出了用於兩個實例之間的請求-回復交換的另一請求-回復消息收發模式;
[0030]圖6示出了用於兩個實例之間的單向消息的單向消息收發模式;
[0031]圖7示出了兩個實例之間建立的對話;以及
[0032]圖8示出了創建了不同類型的兩個子實例的父實例。
【具體實施方式】
[0033]大型計算系統包括多個分布式應用。各應用負責對處理邏輯進行處理並執行可能持續數星期、數月或甚至數年的長期運行的業務進程。各應用是隔離的,除了訪問共享網絡之外。各應用通過在這一網絡上發送消息來進行通信。各進程的執行發生在大量物理計算資源上,並且因此該基礎結構和計算系統必須被設計成是容錯的。在現有系統中,這一要求的常見解決方案是使得所有消息交換經由中介異步地發生,該中介通常被實現成持久隊列。使用異步通信也普遍適用於具有長期運行的業務進程的系統。
[0034]如果作為較大分布式應用的一部分的業務進程失敗,則該分布式應用中的其他業務進程可被留置等待該失敗的進程的輸出,並且結果,相關聯的消息留置未經處理。留置等待的進程和消息需要某種方式的人類幹預才能恢復或除去它們。例如,如果業務進程在請求-回復消息交換期間失敗,則始發應用可留置等待,不知道失敗或掛起的進程。此外,原始請求消息留在中介中,而中介不能夠處理該消息,除了將它標誌為不可遞送的信之外。這些不可遞送的信通常需要人類幹預才能補償和糾正失敗的進程並清理中介。
[0035]業務進程在它們的壽命中橫跨多個應用,並且這些應用通常具有不同的管理特性。結果,沒有系統健康、端到端進程狀態、或其他監視數據的單個經協調的視圖。相反,系統管理員通常處理各種控制系統並且形成每一控制系統中的專家知識。
[0036]因為這些系統中的業務進程通常持續很長一段時間,所以當業務進程內的邏輯需要改變時,如由於公司購置或策略變化,難以在不中斷進行中(in-flight)進程的情況下更新該邏輯。這一問題在傳統上由應用開發人員來解決,他們負責實現複雜的分支邏輯以處理存在的部分完成的進程。
[0037]為了解決現有系統中的這些問題,在一個實施例中,一種增強的系統負責這些業務進程的處理和組織。通過使用有限且很好地理解的一組消息交換模式,該增強的系統使得消除掛起的進程和死信以及降低相關聯的管理開銷成為可能。此外,通過將這些進程的各組成部分按分層方式來組織,簡化這樣的系統的管理是可能的,從而提供覆蓋端到端進程的單個監視和控制體驗。通過使得該系統處理諸如最終一致性、故障傳播、以及跨實例相關等複雜度,降低了對分布式應用的各部分進行協調的認知開銷。
[0038]業務進程的各組成部分在運行時作為各實例出現,其中實例表示處理邏輯單元及其相關聯的狀態兩者。各實例可分布在許多處理單元上而沒有對特定一個處理單元的任何親和性。
[0039]圖1是根據一個實施例的分布式實例系統100的各組件的高級框圖。該分布式實例系統包括運行一應用或進程的各實例的一個或多個實例處理器101。實例管理器102控制實例處理器101並分配在實例處理器101上運行的特定實例。實例管理器102還監視每一實例的壽命並且知道每一實例何時開始和結束。
[0040]各實例和應用狀態可被存儲在實例存儲103中。雖然圖1中示出了單個存儲設備102,但分布式實例系統100可包括多個存儲設備。在其他實施例中,作為實例存儲103的補充或替換,可以使用外部存儲設備。在一個實施例中,每一實例一次被綁定到一個存儲設備103。如所需要的,實例-存儲綁定可作為再平衡、故障切換、或遷移的一部分來改變。在其他實施例中,存儲103是可任選的,並且實例狀態和消息被存儲在實例處理器101內,這可使得該系統工作在降低的可靠性水平上。存儲設備103的使用可以是按實例決策,其中一些實例狀態和消息可外部化到存儲中,而其他則不會。各實例可與相同或不同應用或進程的其他實例進行通信。
[0041]在實例處理器101上運行的實例可彼此通信以允許在各實例之間交換消息。消息存儲104可被用來存儲消息和消息狀態。實例管理器102通過消息總線105將消息路由到各系統組件並在各系統組件之間路由消息,如在實例處理器101、實例存儲103、以及消息存儲104之間。實例管理器102實施在該分布式實例系統上可用的消息交換模式。
[0042]實例管理器102負責執行各實例的處理邏輯並控制實例處理器101上的實例。實例管理器還管理各實例的壽命。可在實例管理器102和實例處理器101之間交換控制消息,以創建新實例和終止已有實例。實例管理器負責實現這些命令,並且結果,知道所有實例的壽命。
[0043]實例管理器還負責處理各實例之間的消息交換。向實例管理器102提供了與每一消息有關的附加知識,包括哪一實例發送了該消息以及應當接收該消息的哪一個或多個實例。實例管理器102提供有限的一組消息收發模式,這允許該系統作出有關該系統內的消息收發行為的具體聲明以簡化該系統及其管理。
[0044]兩個主要的消息收發模式是請求-回復和單向。
[0045]請求-回復消息收發模式這一模式用於兩個實例之間的異步請求-回復通信。因為該分布式實例系統知道發送者和接收者實例兩者的壽命,所以該系統呈現了多個簡化屬性。例如,如果接收者實例在發送回復之前終止,則該系統向發送者返回出錯響應。這消除了先前將被留在中介處的掛起的業務進程和死信。如果發送實例在響應被遞送之前終止,則該系統可以丟棄該回復消息。如果響應的遞送必須被保證,則回復實例(即,原始接收者實例)可建立與原始發送實例的請求-回復交換。
[0046]單向消息收發模式這一模式用於兩個實例之間的異步單向通信。發送和接收實例可在傳送單向消息之前建立對話。在一些情形中,單向消息可綁定到對話。對話是該分布式實例系統的通信模型的一部分。對話經由異步握手通過實例管理器來建立,該實例管理器可以是持久中介(如果需要持久性的話)。或者,一操作可建立對話作為直接作用或作為副作用。如果接收實例在遞送單向消息之前結束和/或終止對話,則該系統按與單向消息收發的大多數實現一致的方式丟棄該消息。然而,該系統還將該對話的終止通知給發送實例。
[0047]請求-回復和單向消息收發模式可被組合,以創建其他更豐富的消息收發模式,如發布和訂閱。
[0048]實例分層結構該分布式實例系統還將各實例構造成分層結構。如果實例A創建新實例B,則實例A自動變成實例B的父實例。實例A可能不能夠直接創建新實例,但可改為要求該系統對新實例的創建進行仲裁。類似地,如果實例B稍後創建新實例C和D,則實例B自動變成實例C和D的父實例,以此類推。各實例之間的這一關係創建實例樹。該樹中的各實例將業務進程的多個分開且不同的片段組合成例如反映該端到端進程的分層結構。
[0049]每一子實例可具有與其相應父實例的自動對話。這樣的父-子對話將不需要附加的握手來建立。在一些實施例中,子實例可能不能夠獨立於它自己的壽命來終止父-子對話。此外,父實例可能不能夠通過終止父-子對話來迫使終止子實例。
[0050]各實例還可按需創建。例如,如果實例Z向實例E發送消息,但實例E尚未存在,則該分布式實例系統可具有確定哪一實例應當是實例E的父實例的功能。該系統隨後通知該預期父實例(例如,以上的實例B),並且隨後預期父實例B有機會創建實例E作為子實例。實例E隨後可接收來自實例Z的消息。類似地,如果實例B也尚未存在,則該過程可跨多層來被重複。例如,實例A可接收來自該系統的創建實例B的通知,並且隨後實例B接收創建實例E的通知。
[0051]這一端到端進程的節點分層結構具有單個根。在其他實施例中,該分層結構可具有多個根。例如,監視實例也可以是根節點。這允許該系統提供統一的控制模型。例如,終止或掛起父實例造成該同一控制動作傳播到它的所有子實例,而不必特別地解決該分層結構中每一單獨的實例。此外,該分層結構呈現用於聚集來自各實例的監視和健康信息的機會。結果,監視端到端進程更簡單。這可通過使用該系統所呈現的第三消息收發模式——監視消息模式一來實現。
[0052]聚集消息收發模式這一模式被用來異步地傳送監視數據。實例可發出自動沿實例樹向上轉發的監視消息一從子實例行進到父實例,並隨後到父實例自己的父實例一直至監視消息到達根實例為止。監視消息可具有與其他消息不同的時間線特性。例如,監視消息可具有比操作消息低的優先級。具體而言,監視消息可機會性地從實例轉移到實例,如通過承載在其他交換上以提高系統效率。任何實例可訂閱這一監視數據流,從而允許實例捕捉該分層結構的訂閱實例的那一部分的所有監視數據。這將向訂閱實例提供該進程的任何部分的完整畫面。任何實例可抑制監視數據沿分層結構向上傳播。實例既可發布監視數據又可抑制監視數據的進一步傳播。將理解,監視只是一個示例,並且作為監視數據的補充或替換,各實例之間可交換任何類型的數據。
[0053]圖2是根據一個實施例的分布式實例系統200的拓撲結構的高級框圖。實例處理器201可被實現成多個實例處理節點201,每一實例處理節點都在實例管理器202的控制之下。實例存儲203保持不活動時間段期間的各實例以及應用狀態和消息狀態。實例處理器在系統故障的情況下提供可靠的消息收發和可恢復性。然而,如果例如既不要求或需要可靠的消息收發又不要求或需要持久的實例,則這些能力中的任一個可被犧牲。
[0054]實例管理器202負責將各實例的處理邏輯加載到所分配的實例處理器201。這允許該系統向應用呈現多個附加的簡化益處,包括加載處理邏輯的不同版本的能力以及允許各實例版本的並排執行。例如,以實例的處理邏輯的版本I開始的業務進程可繼續使用該版本,即使在創建了版本2時也如此。業務進程的新實例可自動利用最新版本。
[0055]此外,該系統將業務進程表示為不同的經協調的實例的分層結構的能力極大地降低了對正在進行的進程的變更的影響,從而允許應用開發人員將各進程建模成可獨立地版本化的各實例的組合。[0056]圖3示出了根據一個實施例的各實例的分層結構300。根實例301被創建並且是實例302和303的父實例。進而,實例302被創建並且是實例304和305的父實例,而實例303被創建並且是實例306和307的父實例。
[0057]再參考圖1,實例301-307可在一個或多個實例處理器101上運行。實例301-307可全部在同一實例處理器101上運行或可分散在多個實例處理器101上。在高度分布式的應用中,每一實例301-307可在單獨的實例處理器101上運行。實例301-307中的一個或多個可在與分布式實例系統100經由外部總線105進行通信的分開的分布式實例系統上運行。這樣的外部通信假定在外部總線上使用的協議與分布式實例系統所使用的有限消息交換模式之間的橋接已經完成。
[0058]任何實例301-307可參與同任何其他實例301-307的請求-回復消息交換。任何實例301-307可與任何其他實例301-307建立對話308。單向消息可通過已在各實例之間建立的對話308發送。
[0059]實例301-307形成卷升至根實例301的分層結構。監視消息沿該分層結構向上傳送,並且監視實例309可訂閱該監視數據。根實例301將監視數據310發布給監視實例309。監視數據310由應用創建並且表示該應用的當前狀態。監視數據310沿分層結構樹向上流動。監視數據在每一層處被聚集,使得實例303聚集實例304和305兩者的監視數據且根實例301聚集實例301和303兩者以及它們相應的子節點的監視數據。將理解,監視實例309不限於在根實例處監視,而是可插入在任何層處。例如,監視實例309可替換地接收來自實例303的監視數據311。來自實例303的監視數據311包括實例303及其子實例306和307的所聚集的狀態和健康數據,而監視數據310包括所有實例301-207的所聚集的狀態和健康數據。
[0060]分層結構300可擴展到任何數量的實例。父實例與其子實例之間存在隱式的對話,這允許父實例和子實例進行通信並知道相關實例的狀態。通過將子實例的壽命綁定到它的父實例,簡化了各實例的管理。子實例不能比它的父實例更長壽。因此,如果一實例結束,則該實例的所有子實例也結束。這提供了一種容易的方式來結束並清理該實例之下所有層處的實例,並允許最終用戶將樹中的各實例當成一個。以此方式,各進程被分解成更加可管理的一組實例。如果根實例301結束,則該分層結構中的所有實例結束。
[0061]情形1:圖4示出了用於兩個實例之間的請求-回復交換的請求-回復消息收發模式。始發實例401向目的地實例403傳送操作請求402。請求402被傳遞給實例管理器404,實例管理器404負責將請求402轉發給目的地實例403。然而,在實例管理器404能傳遞請求消息402之前,目的地實例403結束(405)。實例管理器404知道每一實例401、403的壽命。因此,實例管理器404知道目的地實例403已結束並且該操作請求將永遠不能路由到它的目的地。因此,實例管理器404向源實例401發送出錯回復406並消除請求402,從而防止請求402變成不可遞送的信並且防止始發實例401變成掛起的實例。
[0062]情形2:圖5示出了用於兩個實例之間的請求-回復交換的另一請求-回復消息收發模式。始發實例501向目的地實例503傳送操作請求502。請求502被傳遞給實例管理器504,實例管理器504負責在消息505中將請求502轉發給目的地實例503。目的地實例503接收請求505並生成操作回復消息506,該操作回復消息在實例管理器504的控制下被發送回始發實例501。然而,在實例管理器504能傳遞迴復消息506之前,始發實例501結束(507)。實例管理器504知道每一實例501、503的壽命。因此,實例管理器504知道始發實例501已結束並且該操作回復506將永遠不能路由到它的目的地。因為始發實例501已結束,所以該回復不再需要或有用。因此,實例管理器504消除回復506,從而防止回復605變成不可遞送的。
[0063]情形3:圖6示出了用於兩個實例之間的單向消息的單向消息收發模式。始發實例601將信號602傳送到目的地603。信號602是始發實例601不會預期有響應的單向消息。實例管理器604接收消息602,消息602應被轉發給目的地603。然而,目的地實例603在信號602可被遞送之前結束(605)。實例管理器604知道目的地實例605的狀態並且知道該實例何時已結束。因此,並非將信號602保持作為不可遞送的,實例管理器604消除該信號。因為信號602是單向消息並且始發實例601沒有預期來自目的地實例603的響應或確認,所以實例管理器604僅僅終止信號602並且不創建發給始發實例601的進一步的出錯消息或警告。這是真實的單向消息交換,其中始發實例只需要知道該信號被發送並且不關心該信號是否被接收到。因此,在目標實例結束時,信號602可被實例管理器604安全地丟棄。
[0064]情形4:圖7示出了兩個實例之間建立的對話。實例A701通過向實例管理器704註冊對實例B703的興趣來建立與實例B703的對話702。一實例可向中介、實例管理器、或某一其他設備註冊對另一實例的興趣。對話是通過涉及兩個參與實例的握手來建立的,該握手由分布式實例系統進行協調。一旦建立了對話702,實例701、703就可跟蹤該對話並且因此可跟蹤另一實例的壽命。任一實例可建立對話。對話繼續,直至被一個實例取消或直至一個實例結束。將要結束的實例可通知另一實例該對話將結束,或者實例管理器可以通知一個實例對話中的另一實例已經完成。例如,在實例B703結束(705)時,實例管理器704可使用通知706來通知實例701。或者,在一個實例認識到該對話已經意外終止(即,在沒有通知的情況下),這指示另一實例已經結束。
[0065]對話可被用來支持或增強單向消息收發。例如,該對話的一個實例可向該對話中的另一實例發送信號。發送實例不要求對該單向信號消息的回覆,但在發送消息時以及在傳輸之後的某一時間內知道目的地實例是否是活的。這一生命狀態知識可被發送實例用來評估該信號是否被目的地實例接收到的可能性。具體而言,發送實例可等待(直接或間接)依賴於該信號的接收的事件。對話的終止告知該實例信號可能已經丟失,所以它可以選擇做除等待該事件之外的某些事情。
[0066]本文描述的實例可以是不同類型的,並且可以與不同的進程相關聯。圖8示出了創建了不同類型的兩個子實例802、803的父實例801。例如,在訂單業務進程中,在顧客開始新訂單時,訂單實例801可被創建。訂單實例801可生成挑選子實例802以向顧客提供物品選擇進程。訂單實例801還可生成運送子實例803以提供顧客所選擇的物品的運送進程。
[0067]挑選實例802和運送實例803可以使用請求-回復消息收發和單向消息收發來交換信息以完成顧客的訂單。挑選實例802和運送實例803還可建立對話804來跟蹤另一實例的壽命。
[0068]挑選實例802和運送實例803可以向父訂單實例801發送監視消息,訂單實例801可進而將該健康信息沿進一步的實例樹向上傳播。[0069]訂單實例801、挑選實例802以及運送實例803可以是在使用特定訂單進程的各顧客之間提供隔離的許多獨立的訂單-實例樹之一。這一隔離可以提供保護業務進程和個人顧客信息的安全性。
[0070]作為許多獨立的訂單-實例樹之一,訂單實例801、挑選實例802以及運送實例803提供按高度並行化方式操作的多個分布式訂單進程。
[0071]本文描述的功能中的許多功能可以用硬體、軟體、和/或固件、和/或其任何組合來實現。在用軟體實現時,各代碼段執行必要的任務或步驟。程序或代碼段可被存儲在處理器可讀、計算機可讀或機器可讀介質中。處理器可讀、計算機可讀或機器可讀介質可包括能存儲或轉移信息的任何設備或介質。這樣的處理器可讀介質的示例包括電路、半導體存儲器設備、快閃記憶體、ROM、可擦除ROM (ER0M)、軟盤、緊緻盤、光碟、硬碟、光纖介質,等等。
[0072]例如,在圖1中,存儲102可以是任何易失性或非易失性存儲設備,如硬碟驅動器、快閃記憶體、固態存儲器、光碟、CD、DVD、電腦程式產品、或向實例處理器101提供計算機可讀或機器可讀介質的其他存儲器設備。在其他實施例中,存儲器可以是若干物理存儲設備的虛擬化,其中物理存儲設備是相同或不同的種類。代碼段可以經由內部總線、另一計算機網絡(如網際網路或內聯網)、或經由其他有線或無線網絡等從存儲102下載或轉移到實例處理器101。
[0073]儘管用結構特徵和/或方法動作專用的語言描述了本主題,但可以理解,所附權利要求書中定義的主題不必限於上述具體特徵或動作。更確切而言,上述具體特徵和動作是作為實現權利要求的示例形式公開的。
【權利要求】
1.一種分布式實例系統,包括: 運行一個或多個進程的實例的一個或多個實例處理器; 管理在所述實例處理器上運行的實例的一個或多個實例管理器,所述實例管理器監視所述實例的壽命並且向所述實例提供受管理的一組消息交換模式。
2.如權利要求1所述的分布式實例系統,其特徵在於,有限的一組消息交換模式允許所述分布式實例系統標識無需用戶幹預就能被消除的消息。
3.如權利要求1所述的分布式實例系統,其特徵在於,所述有限的一組消息交換模式允許各實例交換異步請求和回復消息,以及 其中所述實例管理器基於交換中所涉及的各實例的壽命來標識應被消除的請求和回復消息。
4.如權利要求1所述的分布式實例系統,其特徵在於,一實例發起與另一實例的對話,其中所述對話是使用涉及這兩個實例的握手來發起的,所述握手由分布式實例系統來進行協調。
5.一種用於管理多個實例的方法,包括 在一個或多個實例處理器上發起多個實例; 監視所述多個實例中的每一個的壽命;以及 向所述多個實例提供定義的一組消息。
6.如權利要求11所述的方法,其特徵在於,還包括: 提供用於發送實例和目的地實例之間的通信的請求-回復消息格式; 標識所述目的地實例在接收到請求消息之前何時已結束;以及 自動消除所述請求消息。
7.如權利要求11所述的方法,其特徵在於,還包括: 提供用於發送實例和目的地實例之間的通信的請求-回復消息格式; 標識所述發送實例在接收到回復消息之前何時已結束;以及 自動消除所述回復消息。
8.如權利要求11所述的方法,其特徵在於,還包括: 提供用於發送實例和目的地實例之間的通信的單向消息格式; 標識所述目的地實例在接收到單向請求之前何時已結束;以及 自動消除所述單向消息。
9.如權利要求11所述的方法,其特徵在於,所述多個實例被按分層的方式來安排,其中各實例被安排成多層父-子編組,所述方法還包括: 從子實例向父實例發送實例狀態信息; 在所述父實例處聚集所述子實例的實例狀態信息;以及 從所述父實例向更高的父實例發送所聚集的狀態信息。
10.一種存儲用於管理多個實例的計算機可執行指令的計算機可讀存儲介質,所述指令包括用於以下操作的代碼: 在一個或多個實例處理器上發起多個實例; 監視所述多個實例中的每一個的壽命;以及 向所述多個實例提供定義的一組消息。
【文檔編號】G06F15/16GK103562903SQ201280025722
【公開日】2014年2月5日 申請日期:2012年5月18日 優先權日:2011年5月27日
【發明者】N·塔爾伯特, J·泰勒, S·巴特雷斯, J·布朗, K·沃爾夫, E·平特 申請人:微軟公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀