專利名稱:一種分布式企業服務總線中介流程可靠性維護設備及方法
技術領域:
本發明涉及分布式企業服務總線中介流程處理方法及出現節點崩潰時中介流程恢復方法,主要是一種分布式企業服務總線中介流程可靠性維護方法。
背景技術:
企業服務總線(ESB)作為應用系統的連接中樞,是構筑面向服務架構(Service Oriented Architecture, S0A)為基礎的企業信息系統的必要元素。企業服務總線的定義可以簡單的理解為由中間件技術實現并支持SOA的一組基礎架構,支持異構環境中的服務、消息以及基于事件的交互,并且具有適當的服務級別和可管理性。通過企業服務總線實現應用系統的快速接入,并通過更高級的事件、流程處理能力,能夠很好的將企業信息系統與實際業務協調起來,在保證原有投資的條件下,實現更加靈活和敏捷的企業信息系統改造。企業服務總線主要功能是連接外部系統與服務,實現不同系統間交互需求。同時為了滿足交互條件,需要對消息進行各種處理,如格式轉換、消息廣播、消息聚合、消息拆分等等,這些操作由稱為中介器的單元執行。“中介器”是個邏輯概念,而非物理概念,即同一個機器上可同時運行多種不同的中介器,并可動態調整。而中介流程是指消息從外部應用出發,經過ESB容器內部各種中介器處理,并把處理后的消息發給服務的過程,以及反向過程(消息從服務到外部應用)。如附圖1所述消息處理流程使用了兩類中介器消息拆分中介器和格式轉換中介器。中介流程為從適配器獲得消息,并通過消息拆分中介器把消息拆分為兩部分,分別發送給相應的格式轉換中介器進行格式處理(因為兩邊所用的消息格式不相同)。處理完畢后由格式轉換中介器把消息發給相應個服務。企業服務總線的實現模式有多種多樣,但主要包括兩大類簡單的中央輻射式企業服務總線和全分布式企業服務總線。中央輻射模式將所有的服務都注冊到一個統一的中央“集線器”中,即所有的服務消息都需要經過一個中央服務器,該方式雖然部屬和管理比較容易,但缺點也顯而易見,企業信息系統的性能將受制于中央服務器消息中轉能力,當中央服務器出現故障,整個企業信息系統的功能將受到非常大的影響。而全分布式企業服務總線則不同,它沒有明顯的中央服務器,總線在企業信息系統中是以分布式的架構進行部署的,每個總線節點都包含完整的接入、路由、調用等功能,不再存在一個集中的瓶頸,能夠非常有效的利用企業的硬件資源和網絡帶寬,在個別節點失效的情況下,企業信息系統的功能損失較小甚至為零。現代的企業服務總線系統大多數使用分布式模式實現。在分布式企業服務總線系統中,最核心的功能為服務請求者與服務提供者的交互,而交互過程中消息不僅要經過適配器節點,還要經過中介節點進行處理。實現異構系統交互不僅僅要消除消息類型的隔閡,還需進行各種消息處理。常用的消息處理類型有消息聚合,消息拆分,消息廣播,基于內容路由,消息排序,消息格式轉換等,統稱為消息中介。中介節點的作用就是提供所需的消息中介功能,而消息從發送端出發,經過一系列中介節點處理,最終到達接收端的過程稱為中介處理流程。經過適配器節點與中介節點的共同協作,才能實現異構系統間的交互需求。該處理過程復雜度較高,處理過程中某一環節發生錯誤, 都不能保證服務交互的正確進行。在企業服務總線系統中,所有的節點都是由獨立的PC端所組成,它們不是絕對的可靠,隨時都有出現崩潰的可能。因此,保證中介流程執行的可靠性,是企業服務總線系統可靠性中的重中之重。當系統中一個或多個部分失效的情況下,如何使與失效部分相關的中介流程仍能正確運行,將企業信息系統在故障過程中的功能損失降低到最小,是現有技術中必須解決的問題。
發明內容
本發明針對現有技術中所存在的缺陷,提一種分布式企業服務總線中介流程可靠性維護設備及其維護方法。為了解決上述技術問題,本發明采用以下技術方案
一種分布式企業服務總線中介流程可靠性維護設備,包括適配器、企業服務總線、服務目錄,所述企業服務總線中包括服務處理節點、中介處理節點、調度服務器、備用節點; 所述服務處理節點用于安裝適配器、部署服務; 所述中介處理節點用于提供中介處理功能;
所述調度服務器用于所述企業服務總線的環境監視、統一管理服務的接入、流程的部
署;
所述備用節點與所述中介處理節點具有相同功能,通過所述調度服務器的調度,使其處于運行或者不運行狀態。作為可選方案,所述企業服務總線采用分布式架構。一種分布式企業服務總線中介流程可靠性維護方法,包括流程規則部署流程和標準流程規則處理流程,流程規則部署流程包括以下步驟
1)通過流程設計器把中介流程規則包發送給服務處理節點,所述服務處理節點部署所述規則;
2)調度服務器根據所述規則對流程進行調度分配,把各個的中介規則發送到合適的中介處理節點中;
3)所述中介處理節點處理流程規則,為每個中介規則目的地添加相應節點地址。作為可選方案,當某一中介處理節點出現問題時,所述調度服務器的調度包括以下步驟
1)所述調度服務器發現中介處理節點失效,通過查找本地記錄,獲得所述失效中介處理節點上所進行的所有中介處理功能;
2)所述調度服務器通過查詢系統中是否存在空閑的備用節點進行判斷,如存在,選中一個備用節點,將所述失效中介處理節點的全部功能轉移給此備用節點,并將此備用節點啟用為中介處理節點,此時此備用節點將處于運行狀態;如不存在,則查詢所述系統中其它中介處理節點,將失效的中介處理節點的功能轉移給所述系統中功能相近的中介處理節點。
3)所述調度服務器完成功能轉移后,查詢系統中與所述失效中介處理節點有關的所有中介流程,把每個流程規則中失效中介處理節點地址更新為步驟2)中選定的新節點地址, 并動態重新部署每個流程。
作為可選方案,當系統負載過高時,所述調度服務器的調度包括以下步驟
1)所述調度服務器監控各中介節點負載狀況,判斷某中介節點持續負載是否過高;
2)所述調度服務器估算此節點負載情況,如發現可能導致此節點崩潰,則進行負載平衡處理;
3)所述調度服務器將負載過高節點的部分功能轉移到備用節點或負載較輕的中介節點。
4)所述調度服務器完成功能轉移后,查詢系統中與失效中介處理節點有關的所有中介流程,把每個流程規則中失效中介處理節點地址更新為步驟3)中選定的新節點地址。并動態重新部署每個流程。作為可選方案,上述一種分布式企業服務總線中介流程可靠性維護方法中所述系統采用分布式架構。本發明有益的效果
1、能夠在任意中介處理節點損壞的情況下,仍然保持現有流程的正常運行,而不需手動的調整系統配置,最大限度的保證了企業服務總線的可靠性和健壯性。2、中介處理節點采用分布式架構,由服務器統一調度中介處理節點的行為。為系統的中介處理功能提供了最大的靈活性。當系統負載較低時,可由每個中介處理節點專門負責進行某類中介處理,保證業務邏輯的明確性。當系統某類中介處理功能需求較高時,每個中間處理節點都可在維持原有功能的同時,提供此項中介處理功能,從而減輕系統負載, 保持系統最佳性能。3、實時調整系統中各中介處理節點負載,降低節點崩潰幾率,提高系統穩定性。
圖1為企業服務總線的示意圖; 圖2為流程規則部署流程圖3為標準流程規則處理流程圖; 圖4為中介處理節點失效后流程恢復流程圖; 圖5為調整中介處理平衡節點負載流程圖。
具體實施例方式下面將結合附圖和具體實施例對本發明作進一步說明
(1)整個系統采用分布式架構,將系統分為服務處理節點、中介處理節點、調度服務器、 備用節點四種類型
服務處理節點用于安裝適配器,部署服務,是消息處理流程的起點和終點; 中介處理節點中介處理是指為實現某種信息交互目的而進行的消息路由,或消息處理。常見的中介處理方式有消息聚合、消息拆分、消息廣播、消息排序、消息內容路由、消息格式轉換等,中介處理節點負責提供中介處理功能;
調度服務器負責整個企業服務總線的環境進行監視、統一管理服務的接入、流程的部署,維護當前已部署的所有服務信息和流程信息;
備用節點具有與中介節點相同同能的節點,平時不處于運行狀態。當有其他中介節點出現問題,或系統負責過高時可由調度服務器調度,進入運行狀態,轉化為中介處理節點。(2)定義靈活的的中介流程處理規則消息在企業服務總線中根據特定的中介流程處理規則進行傳輸,靈活的中介流程處理規則使消息傳遞時并不以特定的物理地址為目標,而是根據所需的流程規則動態選擇目的地,保證了整個系統中消息傳遞的動態性和可控性。(3)通過調度服務器監視整個系統、維護消息中介處理流程當某個中介處理節點崩潰時,由調度服務器啟動備用節點執行與崩潰節點相同功能,當沒用空閑的備用節點時則由調度服務器挑選某個運行中的中介處理節點負責執行崩潰節點的功能,同時查找所有使用崩潰中介處理節點的中介處理流程,動態改變其流程規則,使其使用新的中介處理節點,從確保流程的正確運行。(4)當崩潰的中介處理節點恢復后,由調度服務器調度,轉化為備用節點。(5)負載過高時中介處理節點崩潰的主要原因之一為防止此種情況發生,調度服務器實時監控各個節點負載情況。當某個節點負載過高,調度服務器把此節點部分功能轉移給備用節點或其他負載較輕的中介處理節點,同時動態改變相關流程規則,從而防止負載過高導致節點崩潰現象出現。
在實際操作中,JTang Synergy的流程處理規則以XML文件形式定義,文件中分為作為起點和終點的服務端點規則,以及若干中介規則,每個中介規則定義了進行何種中間處理, 以及流程下一步所使用的中介規則或服務端點規則。全部服務端點規則和中介規則構成了整個消息處理流程,信息傳遞不是通過物理地址,而是以規則名來判斷,保證了中介規則的靈活性和物理地址無關性。圖2流程規則部署理具體步驟可以描述為
(1)JTangSynergy的流程設計器把中介流程規則包發送給服務處理節點,服務處理節點部署該規則;
(2)調度服務器根據所述規則對流程進行調度分配,把各個的中介規則發送到合適的中介處理節點中,在中介規則分配過程中,既要保證每個中介處理節點功能相對單一,有要保證各個節點負載均衡;
(3)中介處理節點處理流程規則為每個中介規則目的地添加相應節點地址;
經過處理后,對每一個中介規則,服務接入點和服務出口點,都指明所在的中介處理節點位置。每一個中介規則都是屬于不同的節點或不同的中介器。消息的頭部沒有指明它的目標,只指明了用什么中介規則處理該消息。這樣就保證了,消息會動態的選擇下一個目標地址,當中介處理接到消息后,可以動態的把消息傳到下一個目標地址,以達到消息在任何情況下都可以找到相應的中介處理節點處理來處理消息。圖3標準流程規則處理具體步驟可以描述為
(1)首先,服務使用者需要在自身所屬適配器中部署一個服務的消費者,部署的信息包括該服務消費者的URL地址,處理該消息的中介規則,以及所要交互的服務;
(2)服務請求者通過客戶端程序訪問適配器的服務消費者。適配器接受到服務請求者的請求后,根據所部署的服務消費者信息,把該請求按一定的規則轉化為ESB的內部消息, 在這里,會賦予每一個ESB內部消息一個唯一 ID值,并插入到該ESB內部消息的消息頭部中,作為識別該消息的唯一標識;
(3)根據流程路由表和消息頭部的內容,則找到消息的目標地址。如果目標地址為適配器,則把該消息發送至目標適配器所對應的消息通道,并進入步驟(5);如果目標地址為中介器,則把該消息發送至目標中介器所對應的消息通道,并進入步驟(4);
(4)目標中介器一直在監視自身的消息通道,如果發現消息通道中有消息,則根據消息內容和中介規則單元處理消息,并把處理結果構造成ESB消息,消息頭部ID不變,繼續運行步驟(3);
(5)目標適配器一直監控自身的消息通道,如果發現消息通道中有消息,則取出該消息。消息內容包括請求者,所要調用的服務等消息。適配器根據消息內容調用外部服務,并把結果轉化為ESB消息返回給服務調用者。圖4處理流程節點失效情況具體步驟可以描述為
(1)首先,調度服務器發現中介規則節點失效,會查找本地記錄,獲得失效中介處理節點上所進行的所有中介處理功能;
(2)調度服務器查詢系統中是否存在空閑的備用節點。如存在,選中一個備用節點,將失效中介處理節點的全部功能賦此備用節點,并將此并用節點啟用為中介處理節點。如果沒有備用節點,則查詢系統其它中介處理節點,將失效的中介處理節點的功能賦予系統中功能相近的中介處理節點;
(3)完成功能轉移后,查找系統中與失效中介處理節點有關的所有中介流程。把每個流程規則中失效中介處理節點的地址更新為步驟(2)中選定的新節點的地址。并動態重新部署每個流程,從而保證每個流程的正確性。圖5調整中介處理平衡節點負載流程圖具體可描述為
(1)調度服務器監控各中介節點負載狀況。發現某中介節點持續負載過高;
(2)調度服務器估算次節點負載情況,如發現可能導致節點崩潰,則進行負載平衡處
理;
(3)將負載過高節點的部分功能轉移到備用節點或負載較輕的中介節點;
(4)完成功能轉移后,查找系統中與失效中介處理節點有關的所有中介流程,把每個流程規則中失效中介處理節點的地址更新為步驟(3)中選定的新節點的地址,并動態重新部署每個流程,從而保證每個流程的正確性。以上所述僅是本發明的優選實施方式,應當指出,對于本技術領域的普通技術人員,在不脫離本發明構思的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發明的保護范圍內。
權利要求
1.一種分布式企業服務總線中介流程可靠性維護設備,包括適配器、企業服務總線、服務目錄,其特征在于,所述企業服務總線中包括服務處理節點、中介處理節點、調度服務器、 備用節點;所述服務處理節點用于安裝適配器、部署服務; 所述中介處理節點用于提供中介處理功能;所述調度服務器用于所述企業服務總線的環境監視、統一管理服務的接入、流程的部署;所述備用節點與所述中介處理節點具有相同功能,通過所述調度服務器的調度,使其處于運行或者不運行狀態。
2.根據權利要求1所述的一種分布式企業服務總線中介流程可靠性維護設備,其特征在于,所述企業服務總線采用分布式架構。
3.一種分布式企業服務總線中介流程可靠性維護方法,包括流程規則部署流程和標準流程規則處理流程,其特征在于,流程規則部署流程包括以下步驟1)通過流程設計器把中介流程規則包發送給服務處理節點,所述服務處理節點部署所述規則;2)調度服務器根據所述規則對流程進行調度分配,把各個的中介規則發送到合適的中介處理節點中;3)所述中介處理節點處理流程規則,為每個中介規則目的地添加相應節點地址。
4.根據權利要求3所述的一種分布式企業服務總線中介流程可靠性維護方法,其特征在于,當某一中介處理節點出現問題時,所述調度服務器的調度包括以下步驟1)所述調度服務器發現中介處理節點失效,通過查找本地記錄,獲得所述失效中介處理節點上所進行的所有中介處理功能;2)所述調度服務器通過查詢系統中是否存在空閑的備用節點進行判斷,如存在,選中一個備用節點,將所述失效中介處理節點的全部功能轉移給此備用節點,并將此備用節點啟用為中介處理節點,此時此備用節點將處于運行狀態;如不存在,則查詢所述系統中其它中介處理節點,將失效的中介處理節點的功能轉移給所述系統中功能相近的中介處理節占.3)所述調度服務器完成功能轉移后,查詢系統中與所述失效中介處理節點有關的所有中介流程,把每個流程規則中失效中介處理節點地址更新為步驟2)中選定的新節點地址, 并動態重新部署每個流程。
5.根據權利要求3所述的一種分布式企業服務總線中介流程可靠性維護方法,其特征在于,當系統負載過高時,所述調度服務器的調度包括以下步驟1)所述調度服務器監控各中介節點負載狀況,判斷某中介節點持續負載是否過高;2)所述調度服務器估算此節點負載情況,如發現可能導致此節點崩潰,則進行負載平衡處理;3)所述調度服務器將負載過高節點的部分功能轉移到備用節點或負載較輕的中介節占.4)所述調度服務器完成功能轉移后,查詢系統中與失效中介處理節點有關的所有中介流程,把每個流程規則中失效中介處理節點地址更新為步驟3)中選定的新節點地址,并動態重新部署每個流程。
6.根據權利要求3飛任意一項所述的一種分布式企業服務總線中介流程可靠性維護方法,其特征在于,所述系統采用分布式架構。
全文摘要
本發明公開了一種分布式企業服務總線中介流程可靠性維護設備及方法,通過將中介處理節點采用分布式架構及由服務器統一調度中介處理節點的行為,為系統的中介處理功能提供了最大的靈活性,最大限度的保證了企業服務總線的可靠性、健壯性和穩定性。
文檔編號H04L12/24GK102158361SQ201110094680
公開日2011年8月17日 申請日期2011年4月15日 優先權日2011年4月15日
發明者吳健, 吳朝暉, 尹建偉, 李瑩, 祁秉鈺, 鄧水光, 陳韓偉 申請人:浙江大學