檢查分布式業務處理完整度的方法及裝置與流程
2023-06-28 22:02:11

本申請涉及分布式業務技術領域,特別涉及一種檢查分布式業務處理完整度的方法及裝置。
背景技術:
分布式業務系統能以更加靈活、高效的處理業務。
通過分布式業務系統的處理,可以將傳統的系統拆分為一系列相對獨立,又能基於業務的關聯關係相連的子系統,從而並行且協調完成業務的整體處理。例如目前的電商平臺(如支付寶系統)、本地化搜索服務平臺(如58同城)、會員註冊營銷系統等,都可以以分布式業務系統來靈活處理各類業務。
以會員註冊營銷系統為例,針對會員註冊營銷業務涉及的各個功能,可以包括不同的業務子系統,例如包括:註冊頁面系統a、會員註冊系統b、app推送系統c、認證關聯繫統d、營銷系統e、簡訊系統h、郵件系統i。如圖1所示,整體業務可以按照上述業務子系統拆分,並按照拆分後業務的內在關聯關係執行以下處理:
s1:註冊頁面系統a接收會員註冊營銷請求(假設該請求的業務流水號為no.001);
所述會員註冊營銷請求,可以是前臺伺服器接收到客戶端發送的註冊請求後向分布式業務系統中的註冊頁面系統a發送的會員註冊營銷請求。
s2:註冊頁面系統a解析所述會員註冊營銷請求對應的會員註冊相關數據,進行相應業務處理;並確定所述會員註冊營銷請求對應的會員註冊相關數據如果符合業務條件1,則將所述會員註冊營銷請求對應的會員註冊相關數據發送至業務條件1對應的會員註冊系統b,如果符合業務條件2,則將所述數據發送至業務條件2對應的app推送系統c;
這裡,業務條件1例如為新註冊,業務條件2例如為通過手機註冊。
s3:會員註冊系統b解析所述會員註冊營銷請求對應的會員註冊相關數據,進行相應業務處理;並確定所述解析得到的所述會員註冊營銷請求對應的會員註冊相關數據如果符合業務條件3,則將所述數據發送至認證關聯繫統d,如果符合業務條件4,則將所述數據發送至營銷系統e;
s4:認證關聯繫統d基於接收到的所述數據進行相應業務處理;
s5:營銷系統e解析所述會員註冊營銷請求對應的會員註冊相關數據,進行相應業務處理;並確定所述解析所述會員註冊營銷請求對應的會員註冊相關數據如果符合業務條件5,則將所述數據發送至簡訊系統h,如果符合業務條件6,則將所述數據發送至郵件系統i;
s6:簡訊系統h和郵件系統i分別基於接收到的數據進行相應業務處理。
簡訊系統h和郵件系統i分別基於接收到的數據進行相應業務處理,可以完成營銷任務。
在多個子系統協同完成一次業務時,由於業務約束(如紅包不符合使用條件、帳戶餘額不足等)、系統故障(如網絡或系統超時或中斷、資料庫約束不滿足等)等因素,都可能造成分布式業務處理過程的中斷。這種中斷會導致執行了部分任務的數據與其它數據的不一致,而這種不一致可能對後續業務產生嚴重後果。因此,為了保障數據的一致性,需要檢查分布式任務的處理完整度。
現有技術中檢查分布式任務的處理完整度的一種方法,是將每個業務子系統的業務處理結果記錄在表格中,這種表格如表1:
表1
上述方式存儲的數據量較大。特別是對於目前大型的網際網路業務,一個業務很有可能觸發幾十個子系統進行不同的子業務的處理。那麼對於一條業務流水來說,可能需要一個記錄幾十條數據的表格,存儲量較大。
技術實現要素:
本申請實施例的目的是提供一種檢查分布式業務處理完整度的方法及裝置,以減少數據存儲量。
為解決上述技術問題,本申請實施例提供一種檢查分布式業務處理完整度的方法及裝置是這樣實現的:
一種檢查分布式業務處理完整度的方法,分布式業務系統接收業務請求並按照業務條件將所述業務逐級傳遞至後續業務子系統;監控分布式系統中各業務子系統的業務處理狀態,並包括:
當入口業務子系統接收到業務請求並需要傳遞至第一級業務子系統時,對於需要傳遞至的每一第一級業務子系統,生成入口業務子系統與第一級業務子系統的聯合標識,並將生成的所述聯合標識做異或處理,得到第一檢驗值;
對於每一普通業務子系統,在完成處理後記錄上級業務子系統傳遞的聯合標識;對於普通業務子系統傳遞至的每一下級業務子系統,生成所述普通業務子系統與傳遞至的下級業務子系統的聯合標識;每一普通業務子系統將記錄的聯合標識與生成的聯合標識及第一校驗值做異或處理,並更新第一校驗值;
對於每一葉子業務子系統,在完成處理後記錄上級業務子系統傳遞的聯合標識;每一葉子業務子系統將記錄的聯合標識與第一校驗值做異或處理,並更新第一校驗值。
一種分布式業務處理的完整度檢查裝置,分布式業務系統接收業務請求並 按照業務條件將所述業務逐級傳遞至後續業務子系統,包括:
監控單元,用於監控所述分布式系統中各業務子系統的業務處理狀態;
第一生成單元,當入口業務子系統接收到業務請求並需要傳遞至第一級業務子系統時,對於需要傳遞至的每一第一級業務子系統,生成入口業務子系統與第一級業務子系統的聯合標識;
第一異或單元,用於將第一生成單元生成的所述聯合標識做異或處理,得到第一檢驗值;
記錄單元,對於每一業務子系統,在完成處理後記錄上級業務子系統傳遞的聯合標識;
第二生成單元,對於普通業務子系統傳遞至的每一下級業務子系統,生成所述普通業務子系統與傳遞至的下級業務子系統的聯合標識;
第二異或單元,對於每一普通業務子系統,將記錄的聯合標識與生成的聯合標識及第一校驗值做異或處理,並更新第一校驗值;對每一葉子業務子系統,將記錄的聯合標識與第一校驗值做異或處理,並更新第一校驗值。
一種檢查分布式業務處理完整度的方法,分布式系統中任一業務子系統傳遞業務請求至下一級業務子系統時,生成本業務子系統與傳遞至的下一級業務子系統的聯合標識;當分布式系統中任一業務子系統在完成處理後,記錄上一級業務子系統傳遞至該業務子系統的聯合標識;
且包括:
對於入口業務子系統,對該業務子系統中生成的聯合標識進行異或處理得到檢驗值;
對於入口業務子系統之外的每一級業務子系統,對該級業務子系統中記錄的聯合標識及生成的聯合標識與上一級業務子系統的檢驗值進行異或處理;得到最終的檢驗值。
一種分布式業務處理的完整度檢查裝置,包括:
第三生成單元,分布式系統中任一業務子系統傳遞業務請求至下一級業務 子系統時,生成本業務子系統與傳遞至的下一級業務子系統的聯合標識;
記錄單元,當分布式系統中任一業務子系統在完成處理後,記錄上一級業務子系統傳遞至該業務子系統的聯合標識;
第三異或單元,對於入口業務子系統,對該業務子系統中生成的聯合標識進行異或處理得到檢驗值;
第四異或單元,對於入口業務子系統之外的每一級業務子系統,對該級業務子系統中記錄的聯合標識及生成的聯合標識與上一級業務子系統的檢驗值進行異或處理;得到最終的檢驗值。
一種檢查分布式業務處理完整度的方法,分布式系統中每一業務子系統傳遞業務請求至下一級業務子系統時,生成本業務子系統與傳遞至的下一級業務子系統的聯合標識;當分布式系統中每一業務子系統在完成處理後,記錄上一級業務子系統傳遞的聯合標識;
且包括:
將每一業務子系統中記錄的聯合標識及生成的聯合標識進行異或處理,得到最終的檢驗值。
一種分布式業務處理的完整度檢查裝置,包括:
第四生成單元,分布式系統中每一業務子系統傳遞業務請求至下一級業務子系統時,生成本業務子系統與傳遞至的下一級業務子系統的聯合標識;
記錄單元,當分布式系統中任一業務子系統在完成處理後,記錄上一級業務子系統傳遞至該業務子系統的聯合標識;
第七異或單元,將每一業務子系統中記錄的聯合標識及生成的聯合標識進行異或處理,得到最終的檢驗值。
由以上本申請各實施例提供的技術方案可見,本申請實施例不需要像現有技術那樣通過龐大的表格記錄每個業務子系統,而是通過所述規則進行異或運算,能夠用較少的空間存儲分布式系統的業務處理情況。
附圖說明
為了更清楚地說明本申請實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請中記載的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為現有技術一種檢查分布式業務處理完整度的方法的示意圖;
圖2為本申請一實施例提供的一種檢查分布式業務處理完整度的架構圖;
圖3為本申請一實施例提供的一種檢查分布式業務處理完整度方法的流程圖。
具體實施方式
本申請實施例提供一種檢查分布式業務處理完整度的方法及裝置。
為了使本技術領域的人員更好地理解本申請中的技術方案,下面將結合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例。基於本申請中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都應當屬於本申請保護的範圍。
本申請給出了一種檢查分布式業務處理完整度的方法實施例。下面結合圖2和圖3詳細描述本發明實施例。圖2所示的註冊頁面系統a可以為入口業務子系統。分布式系統中,入口業務子系統可以連接第一級業務子系統;第一級業務子系統中可以包括與入口業務子系統存在業務連接關係的一個或多個業務子系統。類似的,第一級業務子系統可以連接第二級業務子系統;第二級業務子系統可以包括與第一級業務子系統存在業務連接關係的一個或多個業務子系統。類似的,第二級業務子系統可以連接第三級業務子系統;第三級業務子系統可以包括與第二級業務子系統存在業務連接關係的一個或多個業務子系統;等等。圖2所示的分布式系統中包括一個入口業務子系統,第一級業務子系統,第二級業務子系統和第三級業務子系統。本領域技術人員知道,不同 的分布式系統中,可以包括相同、更多或更少的業務子系統層級,例如包括五級業務子系統。這裡僅僅是舉例而並不做限定。
上述分布式系統中,除了入口業務子系統外,第一級至第n級業務子系統可以設置普通業務子系統和葉子業務子系統。所述普通業務子系統,可以與上級業務子系統存在業務連接,且與下一級業務子系統存在業務連接。所述葉子業務子系統,可以僅與上級業務子系統存在業務連接,而不存在有業務連接的下一級業務子系統。
如圖2中,第一級業務子系統中的會員註冊系統b即是普通業務子系統,app推送系統c即是葉子業務子系統;第二級業務子系統中的認證關聯繫統d為葉子業務子系統,營銷系統e是普通業務子系統;第三級業務子系統中的簡訊系統h和郵件系統i均是葉子業務子系統。
系統p所在框內表示另一分布式系統。通常,對於提供綜合業務的網絡服務提供商,可以具有多個分布式業務系統,以處理不同的業務。
本申請一種檢查分布式業務處理完整度的方法實施例,流程可以如圖3所示,包括:
s310:分布式業務系統接收業務請求並按照業務條件將所述業務逐級傳遞至後續業務子系統。
例如圖2所示,一分布式業務系統包括註冊頁面系統a,會員註冊系統b,app推送系統c,認證關聯繫統d,營銷系統e,簡訊系統h,郵件系統i。整體業務可以按照上述業務子系統拆分,並按照拆分後業務的內在關聯關係執行以下處理:
s1:註冊頁面系統a接收會員註冊營銷請求(假設該請求的業務流水號為no.001);
所述會員註冊營銷請求,可以是前臺伺服器接收到客戶端發送的註冊請求後向分布式業務系統中的註冊頁面系統a發送的會員註冊營銷請求。
s2:註冊頁面系統a解析所述會員註冊營銷請求對應的會員註冊相關數據, 進行相應業務處理;並確定所述會員註冊營銷請求對應的會員註冊相關數據如果符合業務條件1,則將所述會員註冊營銷請求對應的會員註冊相關數據發送至業務條件1對應的會員註冊系統b,如果符合業務條件2,則將所述數據發送至業務條件2對應的app推送系統c;
這裡,業務條件1例如為新註冊,業務條件2例如為通過手機註冊。
s3:會員註冊系統b解析所述會員註冊營銷請求對應的會員註冊相關數據,進行相應業務處理;並確定所述解析得到的所述會員註冊營銷請求對應的會員註冊相關數據如果符合業務條件3,則將所述數據發送至認證關聯繫統d,如果符合業務條件4,則將所述數據發送至營銷系統e;
s4:認證關聯繫統d基於接收到的所述數據進行相應業務處理;
s5:營銷系統e解析所述會員註冊營銷請求對應的會員註冊相關數據,進行相應業務處理;並確定所述解析所述會員註冊營銷請求對應的會員註冊相關數據如果符合業務條件5,則將所述數據發送至簡訊系統h,如果符合業務條件6,則將所述數據發送至郵件系統i;
s6:簡訊系統h和郵件系統i分別基於接收到的數據進行相應業務處理。
簡訊系統h和郵件系統i分別基於接收到的數據進行相應業務處理,可以完成營銷任務。
上述過程中:註冊頁面系統a為入口業務子系統;會員註冊系統b,app推送系統c,營銷系統e為中間業務子系統;認證關聯繫統d,簡訊系統h,郵件系統i為葉子業務子系統。其中,會員註冊系統b和app推送系統c為第一級業務子系統;認證關聯繫統d和營銷系統e為第二級業務子系統;簡訊系統h和郵件系統i為第三級業務子系統。
s320:當入口業務子系統接收到業務請求並需要傳遞至第一級業務子系統時,對於需要傳遞至的每一第一級業務子系統,生成入口業務子系統與第一級業務子系統的聯合標識,並將生成的所述聯合標識做異或處理,得到第一檢驗值。
這裡,為了便於理解,分布式業務系統例如為會員營銷系統,則入口業務子系統例如為註冊頁面系統a,相應地,業務處理請求例如為會員註冊營銷請求。
另外,所述業務請求可以具有業務流水號,例如為no.001。
所述入口業務子系統接收到業務請求之後,可以對業務請求進行處理,並可以按照預設業務條件將相關數據傳遞至第一級業務子系統。這裡的第一級業務子系統例如為圖2中所示的會員註冊系統b和app推送系統c。
對於需要傳遞至的每一第一級業務子系統,生成入口業務子系統與每一第一級業務子系統的聯合標識。例如,對於會員註冊系統b,可以生成入口業務子系統與第一級業務子系統的聯合標識,即生成註冊頁面系統a與會員註冊系統b的聯合標識,例如為tokenab;對於app推送系統c,可以生成入口業務子系統與第一級業務子系統的聯合標識,即生成註冊頁面系統a與app推送系統c的聯合標識,例如為tokenac。
對入口業務子系統與每一第一級業務子系統的聯合標識做異或處理,得到第一檢驗值。
數學計算中的異或處理規則如下:
a⊕a=0
a⊕0=a
a⊕(b⊕c)=(a⊕b)⊕c
即一個數與它自身異或結果為0,同時異或運算符滿足結合律。
例如,將上述會員註冊系統b和app推送系統c生成的聯合標識tokenab和tokenac做異或處理,結果為tokenab⊕tokenac。該tokenab⊕tokenac即為第一檢驗值。
需要說明的是,如果需要傳遞至的每一第一級業務子系統僅包括一個第一級業務子系統,比如說,圖2的例子中,在僅滿足條件1時,需要傳遞至的第一級業務子系統只包括會員註冊系統b,則此時只會生成註冊頁面系統a與會 員註冊系統b的聯合標識tokenab,此時就不存在異或處理的情況。本申請中,s310包括這裡的需要傳遞至的每一第一級業務子系統僅包括一個第一級業務子系統,無需做異或處理的情況。
s330:對於每一普通業務子系統,在完成處理後記錄上級業務子系統傳遞的聯合標識;對於普通業務子系統傳遞至的每一下級業務子系統,生成所述普通業務子系統與傳遞至的下級業務子系統的聯合標識;每一普通業務子系統將記錄的聯合標識與生成的聯合標識及第一校驗值做異或處理,並更新第一校驗值;對於每一葉子業務子系統,在完成處理後記錄上級業務子系統傳遞的聯合標識;每一葉子業務子系統將記錄的聯合標識與第一校驗值做異或處理,並更新第一校驗值。
s320之後,入口業務子系統可以將生成的聯合標識傳遞至對應的第一級業務子系統。結合圖2即註冊頁面系統a將生成的聯合標識tokenab傳遞至會員註冊系統b,將生成的聯合標識tokenac傳遞至app推送系統c。相應地,第一級業務子系統可以接收傳遞的聯合標識。可以在第一級業務子系統完成處理後記錄每一第一級業務子系統接收的上級業務子系統傳遞的聯合標識。類似的,對於同一級中的業務子系統,可以在完成處理後記錄上級業務子系統傳遞的聯合標識。
仍然結合圖2,對於每一第一級業務子系統記錄上級業務子系統傳遞的聯合標識,即對於會員註冊系統b和app推送系統c,在完成對應的處理後,可以分別記錄上級業務子系統分別傳遞的聯合標識tokenab和tokenac。
對於普通業務子系統,其在業務處理完成後需要傳遞至的每一下級子系統,生成所述普通業務子系統與傳遞至的下級業務子系統的聯合標識。所述普通業務子系統在業務處理完成後需要傳遞至的每一下級子系統,具體可以是:所述第一級業務子系統在業務處理完成後按照預設規則需要傳遞至的每一下級子系統。
結合圖2,例如,會員註冊系統b為普通業務子系統,其解析所述會員注 冊營銷請求對應的會員註冊相關數據,進行相應業務處理;並確定所述解析得到的所述會員註冊營銷請求對應的會員註冊相關數據如果符合條件3,則將所述數據發送至認證關聯繫統d,如果符合條件4,則將所述數據發送至營銷系統e。這樣,對於認證關聯繫統d,可以生成會員註冊系統b與認證關聯繫統d的聯合標識tokenbd;對於營銷系統e,可以生成會員註冊系統b與營銷系統e的聯合標識tokenbe。
每一普通業務子系統可以將記錄的聯合標識與生成的聯合標識及第一校驗值做異或處理,並更新第一校驗值。例如,會員註冊系統b在完成對應的處理後,記錄了聯合標識tokenab;會員註冊系統b還生成聯合標識tokenbd和tokenbe。會員註冊系統b可以將記錄的聯合標識與生成的聯合標識及第一校驗值做異或處理。具體的,記錄的聯合標識為tokenab,生成的聯合標識為tokenbd和tokenbe,第一校驗值為tokenab⊕tokenac;三者異或處理結果為:tokenab⊕tokenbd⊕tokenbe⊕tokenab⊕tokenac=tokenbd⊕tokenbe⊕tokenac。可以將第一校驗值更新為上述異或處理的結果。
圖2中,app推送系統c為葉子業務子系統,因此其在業務處理完成後,記錄上級業務子系統傳遞的聯合標識tokenac。每一葉子業務子系統將記錄的聯合標識與第一校驗值做異或處理,並更新第一校驗值。具體的,app推送系統c記錄的聯合標識為tokenac,此時的第一校驗值為tokenbd⊕tokenbe⊕tokenac。兩者異或處理為tokenac⊕tokenbd⊕tokenbe⊕tokenac=tokenbd⊕tokenbe。可以將第一校驗值更新為上述異或處理的結果。
對於傳遞至的每一級業務子系統,可以重複上述處理,直至所有業務子系統完成業務處理或處理終止。
結合圖2,對於每一下級業務子系統,例如第二級業務子系統,在完成對應的處理後,可以記錄上級業務子系統傳遞的聯合標識,即記錄認證關聯繫統d接收到的tokenbd和營銷系統e接收到的tokenbe。
對於第二級業務子系統的認證關聯繫統d和營銷系統e:認證關聯繫統d 為葉子業務子系統,處理完畢之後不再傳遞至更下一級子系統;營銷系統e為普通業務子系統,處理完畢之後傳遞至更下一級的第二級業務子系統,即簡訊系統h和郵件系統i,因此生成聯合標識tokeneh和tokenei。認證關聯繫統d將記錄的聯合標識與第一校驗值做異或處理,並更新第一校驗值,具體為,tokenbd⊕tokenbd⊕tokenbe=tokenbe。營銷系統e將記錄的聯合標識與生成的聯合標識及第一校驗值做異或處理,並更新第一校驗值,具體為,tokenbe⊕tokeneh⊕tokenei⊕tokenbe=tokeneh⊕tokenei。
對於第三級業務子系統的簡訊系統h和郵件系統i,兩者都是葉子業務子系統。簡訊系統h在完成處理後,可以記錄上級業務子系統傳遞的聯合標識,即記錄營銷系統e傳遞的tokeneh。簡訊系統h將記錄的聯合標識與生成的聯合標識及第一校驗值做異或處理,並更新第一校驗值,具體為tokeneh⊕tokeneh⊕tokenei=tokenei。郵件系統i在完成處理後,可以記錄上級業務子系統傳遞的聯合標識,即記錄營銷系統e傳遞的tokenei。郵件系統i將記錄的聯合標識與生成的聯合標識及第一校驗值做異或處理,並更新第一校驗值,具體為tokenei⊕tokenei=0。
也就是說,如果一個分布式業務系統中對業務請求完成了所有處理,按照本申請上述實施例的處理方式,最終結果為0。換句話說,按照上述方法得到的最終檢驗值為0表示所述分布式業務系統中對業務請求完成了所有處理。
按照上述處理,假設簡訊系統h並沒有完成處理,則完整度檢查裝置並不記錄短息系統h接收的上級業務子系統傳遞的聯合標識eh,則按照上述處理方式,最終結果為tokenei⊕tokeneh⊕tokenei,即為tokeneh。該結果可以表明該分布式系統終止於簡訊系統h,可能是沒有將業務傳遞至業務子系統h,也可能是業務子系統h未完成處理。存在的聯合標識tokeneh說明業務子系統e至少已生成與傳遞至的業務子系統h的聯合標識。換句話說,按照上述方法得到的最終檢驗值為聯合標識,如果最終結果為一個聯合標識,則該聯合標識中的後一個對應的業務子系統未完成業務處理,即所述分布式業務系統處理所 述業務請求終止時停留的業務子系統。
類似的,如果最終結果兩個或更多的聯合標識,則每個聯合標識中的後一個對應的業務子系統皆未完成業務處理。例如,最終結果為tokeneh⊕tokenei,即有兩個聯合標識,第一個聯合標識eh中的後一個h表示業務子系統h未完成業務處理,第二個聯合標識ei中的後一個i表示郵件系統i未完成業務處理。
結合圖2並按照上述處理方式,再例如:
(1)註冊頁面系統a生成ab和ac,得到第一檢驗值tokenab⊕tokenac;
(2)會員註冊系統b完成相應處理,則記錄接收的tokenab,app註冊系統c完成相應處理,則記錄接收到的tokenac;會員註冊系統b生成tokenbd和tokenbe,並將生成的tokenbd和tokenbe分別傳遞至認證關聯繫統d和營銷系統e;得到第二校驗值tokenab⊕tokenac⊕tokenbd⊕tokenbe⊕tokenab⊕tokenac=tokenbd⊕tokenbe;
(3)假設認證關聯繫統d完成處理,則記錄認證關聯繫統d接收的上級業務子系統傳遞的聯合標識tokenbd;假設營銷系統e未完成處理,則並不記錄tokenbe;由於營銷系統e未完成處理,也不會生成tokeneh和tokenei;得到第三校驗值tokenbd⊕tokenbd⊕tokenbe=tokenbe。
上述結果表明,分布式業務系統業務處理終止於營銷系統e。
相關人員後相關系統在得到所述分布式業務系統的處理結果be後,可以進行相應的後續業務處理,如檢查並排除營銷系統e的故障,或者重啟營銷系統e的業務處理。
上面例子僅示出了具有一個入口業務子系統和三級業務子系統的分布式系統,實際當中的分布式業務系統可能具有數十級甚至上百級的業務子系統。通過本申請實施例提供的方法,不需要像現有技術那樣通過龐大的表格記錄每個業務子系統,而是通過所述規則進行異或運算,能夠用較少的空間存儲分布 式系統的業務處理情況。
此外,現有技術還有一種同步調用的處理方式。現有技術中圖1所示的上級業務子系統對下級業務子系統的所有調用鏈路強制全部修改為同步方式調用。即a系統必須等待c系統和b系統處理完成之後再向上返回業務結果;同理系統b必須等待系統e和系統d處理完成之後再向上返回業務結果;同理系統e必須等待系統h和系統i處理完成之後再返回業務結果。這樣,當其中的某一個階段出現異常,上層調用系統就會感知到。但是,現有技術這種方式採用同步的方式,對於一些非重要的子業務,可以非異步處理的情況下,也強制同步處理,會拉長整個分布式系統對業務的處理時間,也會降低對用戶端的響應時間,導致用戶體驗的下降,同時還會影響到系統整體的吞吐量。
而本申請上述實施例的方案,不需要同步處理也能及時檢查分布式系統的業務處理情況,不會拉長業務的處理時間,也不會影響客戶的體驗,且不會影響系統整體的吞吐量。
本申請還提供一種分布式業務處理的完整度檢查裝置實施例,包括:
監控單元,用於監控分布式系統中各業務子系統的業務處理狀態;
第一生成單元,當入口業務子系統接收到業務請求並傳遞至第一級業務子系統時,對於傳遞至的每一第一級業務子系統,生成入口業務子系統與第一級業務子系統的聯合標識;
第一異或單元,用於將第一生成單元生成的所述聯合標識做異或處理,得到第一檢驗值;
記錄單元,對於每一業務子系統,在完成處理後記錄上級業務子系統傳遞的聯合標識;
第二生成單元,對於業務子系統在業務處理完成後需要傳遞至的每一下級子系統,生成本級子系統與下級子系統的聯合標識;
第二異或單元,將所述記錄單元記錄的聯合標識和第二生成單元生成的聯合標識與上一次得到的檢驗值做異或處理,得到新的檢驗值。
優選的,所述裝置設置於所述分布式系統內或外。
優選的,所述業務請求具有流水號。
優選的,所述聯合標識包括聯合業務子系統的標識。
優選的,所述記錄單元不記錄該沒有完成處理的業務子系統接收的上級業務子系統傳遞的聯合標識。
以下介紹本申請另一檢查分布式業務處理完整度的方法實施例,該實施例中,分布式系統中每一業務子系統傳遞業務請求至下一級業務子系統時,完整度檢查裝置生成本業務子系統與傳遞至的下一級業務子系統的聯合標識;當分布式系統中每一業務子系統在完成處理後,記完整度檢查裝置錄上一級業務子系統傳遞的聯合標識;
且包括:
對於入口業務子系統,完整度檢查裝置對該業務子系統中生成的聯合標識進行異或處理得到檢驗值;
對於入口業務子系統之外的每一級業務子系統,完整度檢查裝置對該級業務子系統中記錄的聯合標識及生成的聯合標識與上一級業務子系統的檢驗值進行異或處理,得到最終的檢驗值。
特別的,對於最後一級業務子系統,一般都是葉子業務子系統,沒有生成的聯合標識。這種情況,可以認為生成的聯合標識為0,根據前述異或運算顧慮,0參與異或運算,並不影響運算結果。
本說明書中的各個實施例採用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於系統實施例而言,由於其基本相似於方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
以下介紹本申請另一種分布式業務處理的完整度檢查裝置實施例,包括:
第三生成單元,分布式系統中任一業務子系統傳遞業務請求至下一級業務子系統時,生成本業務子系統與傳遞至的下一級業務子系統的聯合標識;
記錄單元,當分布式系統中任一業務子系統在完成處理後,記錄上一級業務子系統傳遞至該業務子系統的聯合標識;
第三異或單元,對於入口業務子系統,對該業務子系統中生成的聯合標識進行異或處理得到檢驗值;
第四異或單元,對於入口業務子系統之外的每一級業務子系統,對該級業務子系統中記錄的聯合標識及生成的聯合標識與上一級業務子系統的檢驗值進行異或處理;得到最終的檢驗值。
以下介紹本申請一種檢查分布式業務處理完整度的方法實施例,分布式系統中每一業務子系統傳遞業務請求至下一級業務子系統時,生成本業務子系統與傳遞至的下一級業務子系統的聯合標識;當分布式系統中每一業務子系統在完成處理後,記錄上一級業務子系統傳遞的聯合標識;
且包括:
將每一業務子系統中記錄的聯合標識及生成的聯合標識進行異或處理,得到最終的檢驗值。
仍以圖2為例,本實施例中,可以集中對生成的和傳遞的聯合標識統一做異或處理。例如,流水號為no.001的業務請求:
在入口業務子系統中生成將要傳遞至下級業務子系統的聯合標識tokenab和tokenac;
業務子系統b完成處理後,記錄業務子系統b接收的傳遞的聯合標識tokenab;
業務子系統c完成處理後,記錄業務子系統c接收的傳遞的聯合標識tokenac;
業務子系統b生成將要傳遞至下級業務子系統的聯合標識tokenbd和 tokenbe;
業務子系統d完成處理後,記錄業務子系統d接收的傳遞的聯合標識tokenbd;
業務子系統e完成處理後,記錄業務子系統e接收的傳遞的聯合標識tokenbe;
業務子系統e生成將要傳遞至下級業務子系統的聯合標識tokeneh和tokenei;
業務子系統h完成處理後,記錄業務子系統h接收的傳遞的聯合標識tokeneh;
業務子系統i完成處理後,記錄業務子系統i接收的傳遞的聯合標識tokenei;
假設每一級業務子系統都完成處理,將上述入口業務子系統生成的聯合標識、入口業務子系統之外的每一級業務子系統中記錄的聯合標識及生成的聯合標識進行異或處理,則最終的檢驗結果如下得到:
tokenab⊕tokenac⊕tokenab⊕tokenac⊕tokenbd⊕tokenbe⊕tokenbd⊕tokenbe⊕tokeneh⊕tokenei⊕tokeneh⊕tokenei=0。
類似的,按照上述處理,假設簡訊系統h並沒有完成處理,則完整度檢查裝置並不記錄短息系統h接收的上級業務子系統傳遞的聯合標識tokeneh,則按照上述處理方式,最終結果為tokeneh。該結果可以表明該分布式系統終止於簡訊系統h,即業務子系統h未完成處理。
以下介紹本申請一種分布式業務處理的完整度檢查裝置實施例,包括:
第四生成單元,分布式系統中每一業務子系統傳遞業務請求至下一級業務子系統時,生成本業務子系統與傳遞至的下一級業務子系統的聯合標識;
記錄單元,當分布式系統中任一業務子系統在完成處理後,記錄上一級業務子系統傳遞至該業務子系統的聯合標識;
第七異或單元,將每一業務子系統中記錄的聯合標識及生成的聯合標識進行異或處理,得到最終的檢驗值。
在20世紀90年代,對於一個技術的改進可以很明顯地區分是硬體上的改進(例如,對二極體、電晶體、開關等電路結構的改進)還是軟體上的改進(對於方法流程的改進)。然而,隨著技術的發展,當今的很多方法流程的改進已經可以視為硬體電路結構的直接改進。設計人員幾乎都通過將改進的方法流程編程到硬體電路中來得到相應的硬體電路結構。因此,不能說一個方法流程的改進就不能用硬體實體模塊來實現。例如,可編程邏輯器件(programmablelogicdevice,pld)(例如現場可編程門陣列(fieldprogrammablegatearray,fpga))就是這樣一種集成電路,其邏輯功能由用戶對器件編程來確定。由設計人員自行編程來把一個數字系統「集成」在一片pld上,而不需要請晶片製造廠商來設計和製作專用的集成電路晶片。而且,如今,取代手工地製作集成電路晶片,這種編程也多半改用「邏輯編譯器(logiccompiler)」軟體來實現,它與程序開發撰寫時所用的軟體編譯器相類似,而要編譯之前的原始代碼也得用特定的程式語言來撰寫,此稱之為硬體描述語言(hardwaredescriptionlanguage,hdl),而hdl也並非僅有一種,而是有許多種,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(cornelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)與verilog。本領域技術人員也應該清楚,只需要將方法流程用上述幾種硬體描述語言稍作邏輯編程並編程到集成電路中,就可以很容易得到實現該邏輯方法流程的硬體電路。
控制器可以按任何適當的方式實現,例如,控制器可以採取例如微處理器 或處理器以及存儲可由該(微)處理器執行的計算機可讀程序代碼(例如軟體或固件)的計算機可讀介質、邏輯門、開關、專用集成電路(applicationspecificintegratedcircuit,asic)、可編程邏輯控制器和嵌入微控制器的形式,控制器的例子包括但不限於以下微控制器:arc625d、atmelat91sam、microchippic18f26k20以及siliconelabsc8051f320,存儲器控制器還可以被實現為存儲器的控制邏輯的一部分。本領域技術人員也知道,除了以純計算機可讀程序代碼方式實現控制器以外,完全可以通過將方法步驟進行邏輯編程來使得控制器以邏輯門、開關、專用集成電路、可編程邏輯控制器和嵌入微控制器等的形式來實現相同功能。因此這種控制器可以被認為是一種硬體部件,而對其內包括的用於實現各種功能的裝置也可以視為硬體部件內的結構。或者甚至,可以將用於實現各種功能的裝置視為既可以是實現方法的軟體模塊又可以是硬體部件內的結構。
上述實施例闡明的系統、裝置、模塊或單元,具體可以由計算機晶片或實體實現,或者由具有某種功能的產品來實現。
為了描述的方便,描述以上裝置時以功能分為各種單元分別描述。當然,在實施本申請時可以把各單元的功能在同一個或多個軟體和/或硬體中實現。
本領域內的技術人員應明白,本發明的實施例可提供為方法、系統、或電腦程式產品。因此,本發明可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。而且,本發明可採用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限於磁碟存儲器、cd-rom、光學存儲器等)上實施的電腦程式產品的形式。
本發明是參照根據本發明實施例的方法、設備(系統)、和電腦程式產品的流程圖和/或方框圖來描述的。應理解可由電腦程式指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些電腦程式指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算 機或其他可編程數據處理設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些電腦程式指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些電腦程式指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執行的指令提供用於實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
在一個典型的配置中,計算設備包括一個或多個處理器(cpu)、輸入/輸出接口、網絡接口和內存。
內存可能包括計算機可讀介質中的非永久性存儲器,隨機存取存儲器(ram)和/或非易失性內存等形式,如只讀存儲器(rom)或快閃記憶體(flashram)。內存是計算機可讀介質的示例。
計算機可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現信息存儲。信息可以是計算機可讀指令、數據結構、程序的模塊或其他數據。計算機的存儲介質的例子包括,但不限於相變內存(pram)、靜態隨機存取存儲器(sram)、動態隨機存取存儲器(dram)、其他類型的隨機存取存儲器(ram)、只讀存儲器(rom)、電可擦除可編程只讀存儲器(eeprom)、快閃記憶體或其他內存技術、只讀光碟只讀存儲器(cd-rom)、數字多功能光碟(dvd)或其他光學存儲、磁盒式磁帶,磁帶磁磁碟存儲或其他磁性存儲設備或任何其他非傳輸介質,可用於存儲可以被計算設備訪問的信息。按照本文中的界定,計算機可讀介質不包括暫存電腦可讀媒體(transitorymedia),如調製的數據信號和載波。
還需要說明的是,術語「包括」、「包含」或者其任何其他變體意在涵蓋非 排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句「包括一個……」限定的要素,並不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。
本領域技術人員應明白,本申請的實施例可提供為方法、系統或電腦程式產品。因此,本申請可採用完全硬體實施例、完全軟體實施例或結合軟體和硬體方面的實施例的形式。而且,本申請可採用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限於磁碟存儲器、cd-rom、光學存儲器等)上實施的電腦程式產品的形式。
本申請可以在由計算機執行的計算機可執行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執行特定任務或實現特定抽象數據類型的例程、程序、對象、組件、數據結構等等。也可以在分布式計算環境中實踐本申請,在這些分布式計算環境中,由通過通信網絡而被連接的遠程處理設備來執行任務。在分布式計算環境中,程序模塊可以位於包括存儲設備在內的本地和遠程計算機存儲介質中。
本說明書中的各個實施例均採用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於系統實施例而言,由於其基本相似於方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
以上所述僅為本申請的實施例而已,並不用於限制本申請。對於本領域技術人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內所作的任何修改、等同替換、改進等,均應包含在本申請的權利要求範圍之內。