新四季網

用於對用於在應用處理的傳入消息定序的計算機系統、計算機實施的方法和電腦程式產品的製作方法

2023-05-29 09:47:06 2

用於對用於在應用處理的傳入消息定序的計算機系統、計算機實施的方法和電腦程式產品的製作方法
【專利摘要】本發明的各實施例涉及用於對用於在應用處理的傳入消息定序的計算機系統、計算機實施的方法和電腦程式產品。在一個方面中,本申請涉及一種用於在應用的處理的計算機系統、計算機實施的方法和電腦程式產品。計算機系統可以包括:應用,可操作用於處理傳入消息,其中傳入消息中的至少兩個傳入消息相關,其中相關的消息需要按照所需順序在應用處理;以及用應用實施的定序框架,用於截獲傳入消息並且包括內部緩衝器,內部緩衝器用於標識相關的消息並且按照所需順序將相關的消息緩衝為消息組,其中定序框架通過按照所需順序從內部緩衝器向應用傳送傳入消息以用於處理來與應用交互。
【專利說明】用於對用於在應用處理的傳入消息定序的計算機系統、計 算機實施的方法和電腦程式產品

【技術領域】
[0001] 本說明書總體上涉及面向服務的架構(SOA)應用,特別是在SOA應用之間的消息 交換,並且特別地涉及一種用於對將在應用處理的傳入消息定序和/或重新排序的系統、 計算機實施的方法和電腦程式產品。

【背景技術】
[0002] 許多軟體應用(下文也被稱為應用)(比如基於SOA的應用)需要按照從源系統 (例如,客戶端、另一遠程軟體應用)通過網絡向應用發送電子消息(下文也稱為消息)的 順序處理它們。可以應用面向服務的架構(SOA)的原理來實施這樣的軟體應用。
[0003] 基本上,目前,一種用於確保按照所需順序處理在應用接收的消息的方式是在接 收應用具有用於一次處理一個消息的單個線程或者進程。在並行處理的情況下,可能此時 不再確保跨越應用的並行處理線程和/或進程的消息(重新)排序和/或定序。
[0004] 因此,需要維持在軟體應用接收的用於處理的消息的排序而未在僅能在給定的時 間處理一個消息的軟體應用中造成瓶頸。
[0005] 當前已經開發了試著解決這一問題的計算機系統。然而,可用系統具有關於能力 (例如,允許定序但不支持重新排序)、協議(例如,不支持可用電子消息通信協議)和/或 便攜性(例如,需要具體產品以用於安裝)的限制。
[0006] 因此,需要提供用於解決以上問題以實現傳入消息的定序和/或重新排序以維持 消息在被並行處理時的排序而未在僅能在給定的時間處理一個消息的軟體應用中造成瓶 頸,也沒有關於能力、協議和/或便攜性的限制。


【發明內容】

[0007] 根據一個通用方面,提供一種用於對用於在應用處理的傳入消息定序的計算機系 統。該計算機系統可以包括:
[0008] 應用,可操作用於處理傳入消息,其中傳入消息中的至少兩個傳入消息相關,其中 相關的消息需要按照所需順序在應用處理;以及
[0009] 用應用實施的定序框架,用於截獲傳入消息並且包括內部緩衝器,內部緩衝器用 於標識相關的消息並且按照所需順序將相關的消息緩衝為消息組(也被稱為消息的組), [0010] 其中定序框架通過按照所需順序從內部緩衝器向應用傳送傳入消息以用於處理 來與應用交互。
[0011] 根據一個通用方面,提供一種用於對用於在應用處理的傳入消息定序的計算機實 施的方法。該方法可以包括:
[0012] 接收用於在應用處理的傳入消息,其中傳入消息中的至少兩個傳入消息相關,其 中相關的消息需要按照所需順序在應用處理;
[0013] 在用應用實施的定序框架截獲傳入消息,定序框架包括內部緩衝器,內部緩衝器 用於標識相關的消息並且按照所需順序將相關的消息緩衝為消息組(也被稱為消息的 組);以及
[0014] 按照所需順序從定序框架的內部緩衝器向應用傳送傳入消息以用於處理。
[0015] 傳入消息涉及接收應用提供的一個或者多個服務。
[0016] 消息組可以由相關的消息屬於的服務和/或服務組定義。因此,相關並且因此在 相同消息組中的消息涉及相同服務/或相同服務組(也被稱為服務的組)。定序框架定義 當在應用被處理時需要排序的消息的組,其中組中的消息本身可以與屬於一個或者多個不 同消息的組的其他消息並行被處理。在一組中的消息被視為需要按照具體(或者所需)順 序在應用處理的相關的消息。
[0017] 可以將緩衝器實施為包括一個或者多個資料庫表的資料庫(例如,關係資料庫)。 在資料庫表中,表的每列定義向表中的條目指定的參數,並且行指定表中的如下條目,該條 目具有用於指定的參數中的每個參數的值。所述值也被稱為參數值。
[0018] 用定序框架實施應用,可以避免用於定義消息的組的在技術上相當複雜、昂貴和/ 或精細的實現方式,這些消息的組需要定序和/或(重新)排序。可以實現相當容易和高 效地指定和/或定義消息的組,這些消息的組需要排序處理所述組中的消息而允許屬於另 一組的不同消息由在應用的兩個或者更多不同線程並行處理。
[0019] 根據一個方面,可以將定序框架實施為具有內部緩衝器的基於資料庫的應用,內 部緩衝器包括至少一個配置表和至少一個實例表。
[0020] 根據另一方面,配置表可以存儲關於應用支持的一個或者多個服務的預定義配 置,其中每個服務與服務ID關聯並且與一個或者多個有關配置參數一起被存儲於配置表 中。
[0021] 根據又一方面,相關消息中的每個相關消息可以與包括消息狀態、服務ID和/或 內部序列ID的定序參數一起被存儲於實例表的行中。
[0022] 消息可以是包括消息頭部和/或消息主體的SOAP消息和/或HTTP請求。消息頭 部和/或消息主體可以包括涉及定序參數的參數。例如,消息可以包括消息屬於的服務的 服務名稱和/或服務ID。消息也可以包括創建日期和/或時間和/或發送日期和/或時間 (也一起被稱為事件數據)。也可以在消息中包括和/或根據與消息一起取回的參數值和 /或從如在配置表中定義的、消息屬於的服務的服務配置取回的參數值生成內部序列ID。 因而,內部序列ID可以由定序框架和/或由已經生成消息並且與定序框架交互的源系統生 成。
[0023] 優選地,內部序列ID是在給定的時間點在實例表中存儲的每個消息特有的。優選 地,服務ID是每個服務和/或每個服務組特有的。消息狀態指定消息的關於它在應用的處 理的處理狀態。消息具有以下關聯消息狀態之一:新、正在運行、未決、丟棄、完成。
[0024] 根據另一方面,相同消息組的相關的消息可以具有相同服務ID。
[0025] 根據另一方面,內部序列ID可以定義傳入消息相對於實例表中的其他相關的消 息的處理順序。
[0026] 根據另一方面,可以通過級聯用於傳入消息的一個或者多個配置參數值來生成內 部序列ID,配置參數值是基於傳入消息的關聯服務ID從配置表取回的。
[0027] 內部序列ID優選地是定序框架生成的保證消息的正確序列的長數。內部序列ID 保證即使按照不同順序接收消息,消息仍然將如它們用於傳入消息的下層(處理)配置而 應當的那樣被排序。可以通過執行以下步驟中的一個或者多個或者所有步驟來生成內部序 列ID :
[0028] -對於每個接收(輸入)的消息,取得配置(取回消息欄位及其必須用於定序的順 序);
[0029] -對配置欄位重複並且對於每個配置欄位取得消息的值並且將消息值變換成對應 長數;以及
[0030] -通過級聯所有長數來生成內部序列ID。
[0031] 通過生成如描述的序列ID,有利地無需維持資料庫序列和/或配置以生成內部序 列ID。可以使用從消息取回的現有值和如在配置表中向服務ID存儲的對應服務組來容易 和高效地生成序列ID。因此,可以自動化消息定序。無需在序列的中間對消息重新排序以 及移位其餘消息的序列ID。在向服務組的配置添加新參數的情況下,添加的參數既未影響 生成序列ID也未影響現有序列ID。
[0032] 根據另一方面,可以用作為面向服務的架構(SOA)的應用實施定序框架(SOA)。
[0033] 在另一通用方面中,提供一種包括計算機可讀指令的電腦程式產品,這些計算 機可讀指令當在計算機系統中被加載和運行時使計算機系統執行如描述的方法。
[0034] 可以將在本說明書中描述的主題內容實施為一種方法或者為一種系統或者使用 在信息載體(比如⑶-ROM、DVD-ROM、半導體存儲器、信號和/或數據流和硬碟)中有形地 體現的電腦程式產品來實施該主題內容。這樣的電腦程式產品可以使數據處理裝置進 行在本說明書中描述的一個或者多個操作。
[0035] 此外,也可以將在本說明書中描述的主題內容實施為一種包括處理器和耦合到處 理器的存儲器的系統。存儲器可以編碼使處理器執行在本說明書中描述的方法動作中的一 個或者多個方法動作的一個或者多個程序。另外,可以使用各種MRI機器來實施在本說明 書中描述的主題內容。
[0036] 在示例性附圖和以下示例性描述中闡述一個或者多個實現方式的細節。其他特徵 將從描述和附圖中以及從權利要求中清楚。

【專利附圖】

【附圖說明】
[0037] 圖1示出在應用接收的用於處理的示例性消息。
[0038] 圖2示出定序框架在被實施為SOA(面向服務的架構)的軟體應用中的示例性實 現方式。
[0039] 圖3示出在使用定序框架的應用的示例性消息處理。
[0040] 圖4示出用於實施定序框架的示例性數據模型。
[0041] 圖5A、圖5B和圖5C示出在定序框架中實施的對消息定序和/或重新排序的示例 性消息流程。
[0042] 圖6示出用於在定序框架中實施的定序過程的示例性消息狀態流程圖。
[0043] 圖7示出用於實施如在圖1至圖6中所示的計算機網絡、計算機系統和計算機實 施的方法的示例性計算機系統和/或計算機網絡系統。

【具體實施方式】
[0044] 在下文中,將參照附圖給出示例的具體描述。應當理解,可以進行對示例的各種修 改。特別地,一個示例的要素可以在其他示例中被組合和使用以形成新示例。
[0045] 圖1示出可以向軟體應用(下文也被稱為應用)發送以用於處理的示例性消息 10、20、30。可以在源系統(例如,客戶端應用、另一服務應用、伺服器程序等)生成消息10、 20、30。消息10、20、30涉及請求的來自應用的一個或者多個服務,該應用相應地處理消息 10、20、30。向應用發送以用於處理的消息10、20、30也被稱為傳入消息10、20、30。所述應 用相應地也被稱為接收應用。
[0046] 可以在電子可讀和可處理數據格式(比如如圖1中示例性地所示的基於XML的數 據格式)中指定消息10、20、30。例如,消息10、20、30可以是從消息接發隊列(比如基於 XML的JMS隊列(Java消息服務)和/或基於SOAP的JMS隊列)取回的HTTP請求、SOAP 消息和/或基於XML的消息10、20、30。
[0047] 例如,接收應用處理傳入消息10、20、30。假設應用需要按照通過網絡(例如,因特 網)向應用發送接收的消息10、20、30的順序處理它們。
[0048] 例如,應用接收必須按照(第一)消息10在(第二)消息20之前並且(第二) 消息20在(第三)消息30之前的順序處理的如在圖1中所示的三個消息10、20、30。應用 可以多線程。多線程是指包括多於一個線程(也被稱為進程)的應用的功能,該線程可操 作用於並行處理傳入消息1〇、20、30。例如,應用包括可操作用於並行處理接收的消息10、 20、30中的至少兩個消息的至少兩個線程。在示例性場景中,線程中的第一線程處理第一消 息10並且線程中的第二線程處理第二消息20。第二線程可能在第一線程已經結束處理第 一消息10之前結束處理第二消息20。第二線程然後可能獲得第三消息30以用於處理並 且也在第一線程已經結束處理第一消息10之前結束處理第三消息30。在這一示例性場景 中,用以下順序處理消息10、20、30 :第二消息20、第三消息30、第一消息10。然而,所需順 序是第一消息10、第二消息20、繼而第三消息30,從而使得在應用正確處理消息10、20、30。 [0049] 處置在接收應用的消息排序和/或定序問題基於定義消息的組(簡稱為消息組或 者組,也被稱為消息集),這些消息的組僅需在消息組內的排序並且通過向應用的不同線程 指派不同消息的組來將處理並行化。
[0050] 應當避免用於定義消息的組的在技術上相當複雜、昂貴和/或精細的實現方式, 這些消息的組需要定序和/或(重新)排序。應當實現相當容易和高效地指定和/或定義 消息的組,這些消息的組需要排序處理所述組中的消息而允許屬於另一組的不同消息由在 應用的兩個或者更多不同線程並行處理。消息涉及由接收應用提供的一個或者多個服務。
[0051] 可以通過如圖2中所示的以處理傳入消息的應用作為面向服務的架構(SOA)實施 定序框架100來實現以上內容。
[0052] 可以在三層基於SOA的應用200內實施在圖2中所示的定序框架100,該應用200 包括對接來自源系統300的入站消息(也被稱為事件)的適配器210、用於處理消息的應用 邏輯220和/或對接來自源系統300的出站消息(也被稱為事件)的部件服務230。應用 200向源系統300提供服務。
[0053] 源系統300可操作用於生成關於請求的來自應用200的一個或者多個服務的消 息。應用200可以通過網絡(比如網際網路)與源系統300交互。定序框架100在對在應用 200接收的用於處理的消息進行定序時與應用200的服務210、220、230交互並且向一個或 者多個源系統300提供用於對將在應用200處理的傳入消息進行定序的界面。應用200的 服務210、220、230可以包括用通過定序框架100向一個或者多個目的地系統400傳播客戶 數據的源系統300更新客戶數據服務。在第一情況下,源系統300向定序框架100發送消息 以用於處理而無需來自定序框架100和/或來自目的地系統400的響應。在第二情況下,源 系統300向定序框架100發送消息以用於處理並且需要來自定序框架100和/或來自目的 地系統400的響應。在兩種情況下,定序框架100接收第一消息並且開始處理消息。在定 序框架100為第一消息執行適配器/應用邏輯/部件服務210、220、230步驟之時,在定序 框架100從源系統300接收將不會被處理但是實際上被設置成未決狀態的第二消息和/或 第三消息,因為第一消息在運行狀態中。在結束第一消息時,將第一消息設置成完成狀態, 並且通過啟動與定序框架100關聯的適配器/應用邏輯/部件服務進程210、220、230來觸 發第二消息。在結束第二消息之後,將第二消息設置成完成狀態,並且通過定序框架100和 有關服務210、220、230觸發第三消息以用於處理。
[0054] 定序框架100定義當在應用200被處理時需要排序的消息的組,其中組中的消息 本身可以與屬於一個或者多個不同消息的組的其他消息並行被處理。在一組中的消息被視 為需要按照具體順序處理的相關的消息。可以在應用200的可能的不同線程處理消息。通 過在定序框架100實施內部緩衝器110 (這裡也被稱為緩衝器)來實現定義這樣的消息的 組。可以將緩衝器110實施為包括一個或者多個資料庫表的資料庫。
[0055] 通過與應用200關聯地用緩衝器110實施定序框架100,在定序框架100為接收應 用200截獲、緩衝和/或存儲在應用200接收的一個或者多個消息以用於處理,從而使得未 在應用200立即處理傳入消息。相反地,在定序框架100截獲並且在被向應用200傳送以 用於由應用200的一個或者多個線程處理之前在定序框架100的內部緩衝器100中緩衝和 /或存儲傳入消息。
[0056] 緩衝器110存儲用於服務和/或涉及服務的消息的預定義配置。服務由應用200 支持。預定義配置包括可適用於將在應用處理的傳入消息的定序和/或重新排序規則的預 定義集。在緩衝器110中存儲的配置可以由應用100的管理員和/或開發者指定和實施。
[0057] 基本上,在應用200接收的傳入消息由定序框架100截獲並且被存儲於緩衝器110 的表中。為了按照所需順序處理接收的消息,定序框架向應用200的適配器210和/或應 用邏輯220轉發接收的消息以用於處理。例如,基於在緩衝器110中存儲的配置,向接收應 用200傳送下一排序的消息以用於處理。在處理消息之後,與已經處理了消息的應用200通 信的定序框架100檢查是否存在等待在應用200處理的相關的消息(在相同消息的組中), 並且如果是這種情況,則將向應用200提供並且相應地處理它。
[0058] 有利地,使用定序框架100,將在應用200處理的消息的定序和/或重新排序變成 經由與定序框架100 -起實施的緩衝器110完全可配置。框架提供嚴格和非嚴格定序特 徵。非嚴格定序基於先入先出(FIFO)原理,框架按照在定序框架100接收消息的順序處理 消息。嚴格定序基於按照指定的順序處理接收的消息。例如,如果定序框架100接收包括 如下欄位的三個相關的消息ml、m2和m3,該欄位為每個消息指定在序列中的所需位置,則 框架100按照在對應消息欄位中指定的所需順序處理消息。定序框架100可移植。可以將 定序框架100實施為基於資料庫的應用並且可以使用不同計數來暴露定序框架100。可以 使用基於資料庫的應用來實施定序框架1〇〇,其中可以使用最常見語言(比如java、C、C++) 來實施用於與資料庫通信的接口。定序框架100被從應用200去耦合,應用200在支持將 在應用200處理的消息的定序和/或重新排序時使用框架100。這基本上歸因於用定序框 架100對應用200的基於SOA的實現。可以基於服務標識符(ID)對具體服務和/或服務 組應用定序。如果它是組,則在該組中的所有服務應當具有相同服務ID。定序框架100支 持在SOA中支持的可用協議(例如,同步和異步的JMS、FTP、在HTTP之上的SOAP、DB)。定 序框架100支持端到端(例如,在使用框架的兩個不同應用之間)通信(比如經由消息) 事務。
[0059] 圖3示出用於對在用定序框架100實施的應用200處理的消息定序和/或重新排 序的示例方法。
[0060] 使用定序框架100對消息進行定序和/或重新排序基本上包括以下步驟中的一個 或者多個步驟。接收消息以用於在用定序框架100實施的應用200處理。定序框架100檢 查是否需要相對於例如屬於請求的具體服務的一個或者多個更多消息按照具體順序處理 消息。假設需要相對於一個或者多個其他消息的排序處理的消息涉及相同(消息的)組。 例如,涉及請求的相同服務的消息被視為在組中相關。如果服務相關,則將服務分組成服務 的組(也被稱為服務組),並且對屬於在所述服務組中的服務中的任何服務的消息進行分 組。在需要相對於其他相關的消息按照具體順序處理傳入消息的情況下,在定序框架100 在關聯的緩衝器Iio緩衝這一消息。隨後基於如在緩衝器Iio中存儲的關於其他相關的消 息的預定義配置數據停止和/或繼續處理消息。向應用200的線程發送消息以用於處理。 在終止處理之後,相應地通知和/或通報定序框架100。定序框架100檢查緩衝器110中的 需要與當前消息一起按照具體順序處理的相關的消息並且取回被排序為隨後的消息(也 被稱為下一消息)並且向應用300的進程提供下一(或者隨後)消息以用於處理。
[0061] 如圖3中所示,用包括一個或者多個配置表112和/或一個或者多個實例表114 的緩衝器110實施定序框架100。配置表112存儲關於應用200支持的服務的預定義配置。 配置例如由已經設立和實施了應用200的開發者和/或管理員預定義。實例表114存儲傳 入消息,這些傳入消息屬於應用200支持的一個或者多個服務。例如,屬於消息組(或者消 息的組)的消息一起被存儲於實例表114之一中,從而使得每個消息的組被存儲於分離的 實例表114中。在消息組中的消息屬於相同服務或者服務組並且具有相同服務ID。
[0062] 在實例實現方式中,用於通過定序框架100對消息定序和/或重新排序以用於在 應用300處理的以下描述的系統和/或方法包括以下步驟中的一個或者多個步驟。
[0063] 在31,定序框架100截獲和/或接收傳入消息10、20、30(例如,!111?請求或者 SOAP消息)以用於在應用200處理。備選地和/或附加地,定序框架100從消息接發隊列 40(例如,Java消息服務(JMS)隊列(比如XML/JMS隊列或者S0AP/JMS隊列))讀取和/ 或取回一個或者多個消息10、20、30以用於在應用200處理。在標準數據交換格式(比如 SOAP和/或HTTP)中指定消息10、20、30並且這些消息包括消息頭部和/或消息主體。可 以在消息頭部和/或消息主體中定義為了對消息定序而需要的數據。
[0064] 在S2,定序框架100從消息10、20、30提取服務名稱。服務名稱可以指定消息10、 20、30屬於的服務。假設服務由接收應用200支持。定序框架100檢查消息10、20、30是否 需要相對於一個或者多個其他消息被定序和/或重新排序。可以通過比較消息10、20、30的 提取的服務名稱與在緩衝器110的配置表112中存儲的對應配置數據來執行檢查。例如, 通過用從消息10、20、30提取的服務名稱訪問配置表112來檢查消息10、20、30屬於的服務 和/或服務的組是否用屬於相同服務和/或相同服務組的相關的消息10、20、30的所需處 理順序來定義。
[0065] 如果在S2確定消息10、20、30需要與一個或者多個相關的消息10、20、30 -起的 定序和/或排序處理,從而使得需要在消息的組中與相關(或者有關)的消息10、20、30 - 起對消息10、20、30進行排序,則定序框架100在實例表114中與相關的消息10、20、30 - 起存儲消息10、20、30,S3。在實例表114中一起存儲的消息的組可以與用於所述消息的組 的執行計劃關聯地被存儲。執行計劃可以存儲於相關的消息的對應實例表114內和/或與 具體消息的組的相應實例表114連結的配置表112中。例如,相關的消息10、20、30可以 與每個消息10、20、30的相應執行狀態一起按照所述組所需要的執行計劃的順序被存儲, 其中需要在更低排序的消息(例如,在表114的第二或者隨後行)可以運行之前完成更高 排序的消息10、20、30(例如,在表114的第一行中)。執行計劃可以是關於相關的消息10、 20、30屬於的服務和/或服務的組的預定義配置並且對於每組從配置表112可取回。執行 計劃定義在需要按照具體順序在應用200處理的消息的組中的相關的消息10、20、30的順 序和/或序列。
[0066] 在S4,在選擇下一排序的消息10、20、30以用於在應用處理之後,激發應用200的 適配器服務210。如果所述當前消息10、20、30可以由應用200的線程處理,則適配器服務 起動應用220的應用邏輯220以用於處理。在消息10、20、30被拒絕的情況下,更新實例表 114以阻止在將按照特定順序處理的相同消息的組中的相關的消息10、20、30。例如,將在 這一組的實例表114中的所有相關消息10、20、30設置為未決。如果需要按照具體順序處 理消息10、20和30,則在消息10正在運行時,消息20和30將未決等待消息10結束(或者 完成),從而使得消息20、30被阻止。
[0067] 在S5,如果應用200的應用邏輯220已經成功執行了消息10、20、30,則相應地通 報定序框架100。
[0068] 在S6,定序框架100在正被處理的消息10、20、30屬於的組的實例表114中更新組 的狀態。例如,處理的消息10、20、30在消息10、20、30屬於的組的實例表114中的的狀態 被設置成完成。
[0069] 定序框架100從在相同實例表114中存儲的組取回隨後排序的消息10、20、30(如 果有)和/或從可以與討論的集合併行被處理的在不同實例表114中存儲的另一消息的組 取回消息1〇、20、30,並且向應用200提供隨後取回的消息10、20、30以用於處理,57。
[0070] 因而,定序框架100在接收的消息10、20、30執行一個或者多個檢查。檢查包括在 配置表112中查找取回的消息10、20、30是否需要相對於一個或者多個相關的消息10、20、 30的定序。如果消息10、20、30屬於相同服務和/或相同服務的組,則它們可以相關。可 以通過提取與消息10、20、30 -起被傳達的服務名稱來取回關於消息10、20、30屬於的服務 的信息。可以使用服務名稱在定序框架100的一個或者多個配置表112中查找涉及服務和 /或服務組的定序要求。在消息的組(也被稱為消息組)中對相關的消息10、20、30排序 和/或定序。消息的組需要按照具體給定的順序的依次處理而可以與屬於一個或者多個不 同消息的組的消息10、20、30並行處理它。屬於消息的組的消息10、20、30 -起被存儲於定 序框架100的實例表114中。消息10、20、30中的每個消息可以與至少包括消息狀態、服務 ID和/或內部序列ID(也被稱為序列ID)的參數(也被稱為定序參數)一起存儲於所述 表114的單行中。在一個實例表114中並且因此屬於相同組的消息10、20、30可以具有相 同服務ID。
[0071] 如果消息10、20、30同步和/或如果對於消息10、20、30禁用定序,則未在定序框 架100的實例表114中保持、而是在應用200立即處理消息10、20、30。
[0072] 在消息10、20、30未同步和/或對於消息10、20、30啟用定序的情況下,在定序框 架100的實例表114中存儲消息10、20、30並且與相關的消息一起在組中對消息10、20、30 進行排序以按照具體順序來處理。在消息的組中的消息被視為屬於具體服務或者服務組並 且因此具有相同服務ID。可以在定序框架100的配置表112中指定並且可以從如從接收的 消息10、20、30取回的服務名稱和/或對應ID取回服務ID。
[0073] 除了以上描述的定序方法之外,定序框架附加地和/或備選地實施對用於在應用 200處理的消息10、20、30的嚴格定序。嚴格定序包括僅在已經在應用200接收和處理了先 前(按照所需順序的)消息的情況下處理消息10、20、30。消息10、20、30可以與關聯序列 ID -起被存儲於定序框架100的實例表114中。序列ID是順序號並且在實例表114中相 對於在相同消息的組中(例如,具有相同服務ID)的另一消息10、20、30對消息10、20、30 排序。例如,在啟用了嚴格定序時,如果在用定序框架100實施的應用200未接收和處理具 有序列ID "3"的另一消息10、20、30,則不能處理具有序列ID "4"的消息10、20、30。
[0074] 可以用定序框架100實施以下方面中的一個或者多個方面。對於消息10、20、30, 可以在消息頭部和/或消息主體內的具體分節中與消息10、20、30 -起傳遞與定序有關的 數據。消息10、20、30的所述分節可以被稱為定序分節。定序分節可以包括消息10、20、30 屬於的服務的服務名稱、服務ID和/或消息10、20、30相對於它在對應服務中的順序的序 列ID。定序分節可定製。例如,用戶有可能指定消息的一個或者多個欄位,其中需要向定序 網絡100傳遞指定的消息欄位以正確處理對應消息。
[0075] 消息10、20、30的服務ID和/或序列ID可以由發送源系統生成。在源系統不能生 成所述ID的情況下,發送消息10、20、30的源系統應當保證發送在不同消息的時間戳之間 有一致性的有關事件數據。在多於一個源系統可操作用於發送具有相同服務ID的用於處 理的消息10、20、30的情況下,假設發送具有相同服務ID的消息的源系統同步。不是數據 的主控、而是僅對數據工作的源系統可以請求不將序列ID用於消息10、20、30。如果需要在 沒有序列ID的情況下管理定序,則假設源系統在相同時區之下操作並且具有同步的時間。 如果消息的組內具有多於一個服務(例如,具有至少兩個不同服務ID的消息),這意味著 服務間定序,則在所述消息的組中的有關服務應當在發送的有關消息10、20、30的頭部和/ 或主體的具體定序分節中使用相同服務ID。僅如果源系統能夠在發送的消息10、20、30的 消息頭部和/或消息主體中提供序列ID才可以啟用嚴格定序。如果未啟用嚴格定序,則將 記下和丟棄定序框架100在更加新的消息被處理之後接收的具有更舊的序列ID的消息10、 20、30。
[0076] 圖4示出可用來將定序框架100實施為計算機系統的示例性對象類規範。可以用 來實施定序框架100的對象類包括一個或者多個配置表規範112和一個或者多個實例表規 範114。圖4示出三個示例性配置表規範112a、112b、112c和兩個示例性實例表規範114a、 114b及其相互關係。可以在與定序框架110的緩衝器110(例如,被實施為關係資料庫)中 將表規範112、114實施為資料庫表。
[0077] 在隨後的表中,第一列指定在對應配置表和/或實例表中的條目具有的參數。在 隨後的表中的第二列提供對應參數的規範的描述。在根據以下規範實施的對應表中的條目 是如以下指定的對應參數的一行值。
[0078] SEQUENCING_SERVICE表規範112a包括應用200可用的服務的定義。SEQUENCING. SERVICE表規範112a被實施為配置表112。下面的表1示出可以用來實施SEQUENCING. SERVICE表規範112a的示例性參數。

【權利要求】
1. 一種用於對用於在應用(200)處理的傳入消息(10,20,30)定序的計算機系統,所述 系統包括: 應用(200),可操作用於處理傳入消息(10,20,30),其中所述傳入消息(10,20,30) 中的至少兩個傳入消息相關,其中相關的消息(10, 20, 30)需要按照所需順序在所述應用 (200)處理;以及 與所述應用(200) -起實施的定序框架(100),用於截獲所述傳入消息(10, 20, 30)並 且包括內部緩衝器(110),所述內部緩衝器(110)用於標識所述相關的消息(1〇,20,30)並 且按照所述所需順序將所述相關的消息(10,20, 30)緩衝為消息組, 其中所述定序框架(100)通過按照所述所需順序從所述內部緩衝器(110)向所述應用 (200)傳送所述傳入消息(10, 20, 30)以用於處理來與所述應用(200)交互。
2. 根據權利要求1所述的計算機系統,其中所述定序框架(100)被實施為具有所述內 部緩衝器(110)的基於資料庫的應用,所述內部緩衝器(110)包括至少一個配置表(112) 和至少一個實例表(114)。
3. 根據權利要求2所述的計算機系統,其中所述配置表(112)存儲關於所述應用 (200)支持的一個或者多個服務的預定義配置,其中每個服務與服務ID關聯並且與一個或 者多個有關配置參數一起被存儲於所述配置表(112)中。
4. 根據權利要求2或者3所述的計算機系統,其中所述相關消息(10, 20, 30)中的每個 相關消息與包括消息狀態、服務ID和/或內部序列ID的定序參數一起被存儲於所述實例 表(114)的行中。
5. 根據權利要求4所述的計算機系統,其中在所述消息組中的所述相關的消息(10, 20, 30)具有相同服務ID。
6. 根據權利要求4或者5所述的計算機系統,其中所述內部序列ID定義傳入消息(10, 20, 30)相對於所述實例表(114)中的相關的消息(10, 20, 30)的處理順序。
7. 根據權利要求4至6中的任一權利要求所述的計算機系統,其中通過級聯用於傳入 消息(10, 20, 30)的一個或者多個配置參數值來生成所述內部序列ID,所述配置參數值是 基於所述傳入消息(10, 20, 30)的關聯的所述服務ID從所述配置表(112)取回的。
8. 根據前述權利要求中的任一權利要求所述的計算機系統,其中所述定序框架(SOA) 與所述應用(200) -起被實施為面向服務的架構(SOA)。
9. 一種用於對用於在應用(200)處理的傳入消息(10, 20, 30)定序的計算機實施的方 法,所述方法包括: 接收用於在應用(200)處理的傳入消息(10, 20, 30),其中所述傳入消息(10, 20, 30) 中的至少兩個傳入消息相關,其中相關的消息(10, 20, 30)需要按照所需順序在所述應用 (200)處理; 在與所述應用(200) -起實施的定序框架(100)截獲所述傳入消息(10, 20, 30),所述 定序框架(100)包括內部緩衝器(110),所述內部緩衝器(110)用於標識所述相關的消息 (10, 20, 30)並且按照所述所需順序將所述相關的消息(10, 20, 30)緩衝為消息組;以及 按照所述所需順序從所述定序框架(100)的所述內部緩衝器(110)向所述應用(200) 傳送所述傳入消息以用於處理。
10. 根據權利要求9所述的計算機實施的方法,其中所述定序框架(100)被實施為具有 所述內部緩衝器(110)的基於資料庫的應用,所述內部緩衝器(110)包括至少一個配置表 (112)和至少一個實例表(114)。
11. 根據權利要求10所述的計算機實施的方法,其中所述配置表(112)存儲關於所述 應用(200)支持的一個或者多個服務的預定義配置,其中每個服務與服務ID關聯並且與一 個或者多個有關配置參數一起被存儲於所述配置表(112)中。
12. 根據權利要求10或者11所述的計算機實施的方法,其中所述相關消息(10,20, 30)中的每個相關消息與包括消息狀態、服務ID和/或內部序列ID的定序參數一起被存儲 於所述實例表(114)的行中。
13. 根據權利要求12所述的計算機實施的方法,其中所述內部序列ID定義傳入消息 (10, 20, 30)相對於所述實例表(114)中的相關的消息(10, 20, 30)的處理順序。
14. 根據權利要求12或者13所述的計算機實施的方法,其中通過級聯用於傳入消息 (10, 20, 30)的一個或者多個配置參數值來生成所述內部序列ID,所述配置參數值是基於 所述傳入消息(10, 20, 30)的關聯的所述服務ID從所述配置表(112)取回的。
15. -種包括計算機可讀指令的電腦程式產品,所述計算機可讀指令當在計算機系 統中被加載和執行時使所述計算機系統根據權利要求9至14中的任一權利要求所述的方 法執行操作。
【文檔編號】G06F9/38GK104239000SQ201410163355
【公開日】2014年12月24日 申請日期:2014年4月21日 優先權日:2013年6月7日
【發明者】V·詹諾內, P·盧翁戈, R·卡斯塔尼亞, L·埃萊凡特 申請人:埃森哲環球服務有限公司

同类文章

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

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有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-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀