專利名稱:一種Web Service處理引擎系統(tǒng)及處理方法
技術領域:
本發(fā)明涉及一種信息技術領域,特別是一種旨在將傳統(tǒng)的以同步方式處理WebService消息的方式轉變?yōu)橐曰谑录寗蛹軜?Event Driven Architecture, EDA)的異步處理引擎系統(tǒng)及處理方法。
背景技術:
Web Service 是面向服務架構(Service-Oriented Architecture, S0A)中重要的技術支撐體系,多數情況下,Web Service都是將企業(yè)或組織內部所提供的業(yè)務/技術功能暴露成服務的實現(xiàn)手段。傳統(tǒng)SOA主要支持同步的服務調用和執(zhí)行,即服務消費方請求一 個服務后,在服務提供方與消費方之間必須維持一個連接直到服務消費方收到響應。因此,傳統(tǒng)SOA的拓撲結構是服務驅動的,存在于開放、動態(tài)和多變的環(huán)境下,而Web Service的特點是松耦合、分布式、自治的,因此基于時間約束的服務協(xié)同方式只能用于時間精確的特定封閉環(huán)境中,并不適合基于Web環(huán)境的軟件體系。此外,還有一些基于服務的協(xié)同引擎系統(tǒng),是設計運行在Web容器內的一個應用模塊,這些系統(tǒng)或多或少地存在有如下缺陷部署模式只針對Web容器;采用第三方類庫來解析與執(zhí)行 Web Service,無法自行處理 SOAP (Simple Object Access Protocol,簡單對象訪問協(xié)議)消息;不能良好地支持SCA (Service Component Architecture,服務組件框架)、0SGi (Open Service Gateway Initiative)等業(yè)界標準;未考慮安全、性能、事務等與Web Service有關的QoS因素;未考慮與規(guī)則引擎等其它組件的集成。所以,有必要提供一種新的Web Service處理方法,以解決上述問題。
發(fā)明內容
本發(fā)明提供一種基于事件驅動架構的Web Service處理引擎系統(tǒng)及處理方法,融合了 OSGi與SCA兩種技術標準的優(yōu)點,可以構造出靈活、健壯,適應各種異構環(huán)境下的基于EDA的Web Service處理引擎。為解決以上技術問題,本發(fā)明提供一種基于事件驅動架構的Web Service處理引擎系統(tǒng),包括事件處理模塊、Web Service解析與執(zhí)行模塊,所述事件處理模塊,用于將服務消費方的Web Service調用請求轉換為事件,并將所述事件傳送給Web Service解析與執(zhí)行模塊;所述Web Service解析與執(zhí)行模塊,用于解析事件處理模塊傳送的事件,并根據解析結果執(zhí)行Web Service調用。進一步地,所述事件處理模塊,包括服務消費方代理組件、事件通道組件、事件檢測與服務調度組件,所述服務消費方代理組件,用于將服務消費方的Web Service調用請求轉換為事件,送入所述事件通道組件中;以及,將由事件通道組件返回的服務響應事件重新生成WebService響應數據;
所述事件通道組件,用于傳輸事件;所述事件檢測與服務調度事件組件,用于將從事件通道組件中接收到的事件進行分析判斷,并將相應的Web Service調用請求傳送給Web Service解析與執(zhí)行模塊。進一步地,所述Web Service解析與執(zhí)行模塊,包括QoS管理器、Web Service引擎,所述QoS管理器,用于為Web Service SOAP請求附加必要QoS控制附屬特性;所述Web Service引擎,用于解析事件處理模塊傳送的事件,并根據解析結果執(zhí)行Web Service 調用。進一步地,所述Web Service引擎包括Web Service解析組件與Web Service執(zhí)行組件,其中, 所述Web Service解析,用于對事件處理模塊傳送的事件進行解析;所述Web Service執(zhí)行組件,用于根據Web Service解析的解析結果,執(zhí)行WebService 調用。進一步地,所述Web Service執(zhí)行組件,具體包括根據Web Service解析組件的解析結果,獲取相關服務信息,構建生成SOAP請求對象消息,并執(zhí)行Web Service調用將SOAP請求對象消息發(fā)送給服務提供方進行服務執(zhí)行;以及,接收服務提供方返回的服務執(zhí)行結果SOAP服務響應事件,并將該服務執(zhí)行結果SOAP服務響應事件返回給Web Service解析組件。為解決以上技術問題,本發(fā)明還提供一種基于事件驅動架構的Web Service處理方法,包括步驟I、事件處理模塊將服務消費方的Web Service調用請求轉換為事件,并將所述事件傳送給Web Service解析與執(zhí)行模塊;步驟2、Web Service解析與執(zhí)行模塊解析事件處理模塊傳送的事件,并根據解析結果執(zhí)行Web Service調用。進一步地,所述步驟I,具體包括步驟I. I、事件處理模塊接收到服務消費方的Web Service調用請求,并將WebService調用請求形成事件;步驟I. 2、事件處理模塊將所述事件通過Web Service調度傳送給Web Service解析與執(zhí)行模塊;步驟I. 3、事件處理模塊檢測Web Service解析與執(zhí)行模塊返回的服務執(zhí)行結果SOAP服務響應事件;步驟I. 4、事件處理模塊將服務響應事件重新生成Web Service響應數據,返回給服務消費方。進一步地,所述步驟I. 2中,在發(fā)送所述事件之前,先判斷所述事件的類型,如果是復雜事件,則先由復雜事件處理引擎對事件進行處理后再發(fā)送。進一步地,所述步驟2,具體包括步驟2. I、Web Service解析與執(zhí)行模塊通過Web Service調度接收事件數據;步驟2. 2、Web Service解析與執(zhí)行模塊解析事件消息,并根據解析出來的信息,生成SOAP請求對象,發(fā)送給服務提供方;
步驟2. 3、Web Service解析與執(zhí)行模塊接收服務提供方返回的服務執(zhí)行結果SOAP服務響應事件,并將其返回事件處理模塊。進一步地,所述步驟2. 2中,在發(fā)送SOAP請求對象給服務提供方之前,先判斷所述SOAP請求對象是否需要加入QoS控制,如果需要,則為SOAP請求對象附加必要QoS控制附屬特性,然后再將處理后的SOAP請求對象發(fā)送。與現(xiàn)有技術相比,本發(fā)明提供一種基于事件驅動架構的Web Service處理引擎系統(tǒng)及處理方法,將傳統(tǒng)的以同步方式處理Web Service消息的方式轉變?yōu)橐曰贓DA的異步處理方式,引擎系統(tǒng)根據所接收到的來自特定事件源的事件來解析并執(zhí)行某一 WebService,并將執(zhí)行的結果反饋給服務消費方或事件鏈中的下一個環(huán)節(jié)。以事件驅動的方法與面向服務的方法結合使用,使應用與系統(tǒng)響應更靈敏,更加適應不可預知和異步的環(huán)境。同時,本發(fā)明的引擎系統(tǒng)采用OSGi與SCA兩種規(guī)范相結合的方式來構造組件及服務容器,融合了 OSGi與SCA兩種技術標準的優(yōu)點,構造出靈活、健壯,適應各種異構環(huán)境下的基 于EDA的Web Service處理引擎,可以實現(xiàn)任意滿足OSGi標準的功能組件整合到引擎系統(tǒng)中,既解決了代碼/類庫之間相互依賴的問題,又解決了服務組合的問題。本發(fā)明所述的引擎系統(tǒng)能夠與支持SCA與OSGi規(guī)范的ESB產品良好整合,事實上,本發(fā)明所述的引擎系統(tǒng)并不需要通過ESB來實現(xiàn)其功能,在某種程度上,該引擎實現(xiàn)了 ESB的部分功能,即服務中介。
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構成本發(fā)明的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明的不當限定。在附圖中圖I是本發(fā)明提供的一種基于事件驅動架構的Web Service處理引擎系統(tǒng)的架構圖;圖2是本發(fā)明提供的一種基于事件驅動架構的Web Service處理方法的流程圖。
具體實施例方式為了使本發(fā)明所要解決的技術問題、技術方案及有益效果更加清楚、明白,以下結合附圖和實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明提供了一種基于EDA的Web Service處理引擎系統(tǒng)和處理方法,將接收來自服務消費方的Web Service調用請求數據經過事件處理模塊處理轉換為事件消息后,按一定規(guī)則調度Web Service解析與執(zhí)行模塊,并將產生的響應數據生成相應的事件發(fā)回給服務提供方的引擎系統(tǒng)。本發(fā)明基于EDA的Web Service處理引擎系統(tǒng),不同于傳統(tǒng)SOA實現(xiàn)方式中采用請求/響應的RPC(Remote Procedure Call Protocol,遠程過程調用協(xié)議)機制,本發(fā)明基于事件驅動的方法與面向服務的方法結合使用,使應用與系統(tǒng)響應更靈敏,更加適應不可預知和異步的環(huán)境。通過ESB (Enterprise Service Bus,企業(yè)服務總線)充當不同應用之間進行通信的中間層,分離服務/事件的生產方與服務/事件的消費方。部署到ESB的服務可以由消費方同步觸發(fā)或事件異步觸發(fā),提高服務/業(yè)務各參與方的交互能力。本發(fā)明所述的引擎系統(tǒng)能夠與支持SCA與OSGi規(guī)范的ESB產品良好整合,事實上,本發(fā)明所述的引擎系統(tǒng)并不需要通過ESB來實現(xiàn)其功能,在某種程度上,該引擎實現(xiàn)了 ESB的部分功能,即服務中介。請參考圖1,本發(fā)明提供一種基于EDA的Web Service處理引擎系統(tǒng),包括事件處理模塊10、Web Service解析與執(zhí)行模塊20。所述事件處理模塊10,用于將服務消費方的Web Service調用請求數據轉換為事件,并將該事件傳送給Web Service解析與執(zhí)行模塊20進行處理。所述事件處理模塊10包括服務消費方代理組件11、事件通道組件12、事件檢測與服務調度組件13。該服務消費方代理組件11,主要負責將包括服務消費方的Web Service調用請求數據轉換為事件,并將事件送入事件通道12中,等待處理;同時,將由事件通道返回的服務響應事件重新生成Web Service響應數據,返回給服務消費方。 該事件通道組件12,主要負責傳輸事件。該事件檢測與調度組件13,負責對從事件通道接收事件,并對其進行分析判斷,并將相應的Web Service調用請求傳送給Web Service解析與執(zhí)行模塊20。該事件檢測與調度組件13主要包括以下功能組件規(guī)則引擎(Rule Engine)、事件檢測器(EventsManagement)、CEP (Complex Event Processing,復雜事件處理)引擎(CEP Engine)、WebService 調度器(Web Service Schedule),其中,規(guī)則引擎,用于按預定的規(guī)則集對事件進行判斷與分類,以決定通過事件通道得到的事件是否為復雜事件,規(guī)則集至少包括事件處理規(guī)則集與服務調用規(guī)則集;以及,要為CEP引擎與Web Service調度器提供服務。事件檢測器,用于檢測事件通道是否存在有事件,在檢測到事件后要將事件從事件通道中取出。CEP引擎,用于處理復雜事件,并將處理后的結果交給Web Service調度器進行后續(xù)處理,對于復雜事件處理,需要解決事件鏈上多個Web Service的調用需求。Web Service調度器,用于將相應的Web Service調用請求傳送給Web Service解析與執(zhí)行模塊20,以及處理從Web Service解析與執(zhí)行模塊20得到的服務響應,針對復雜事件,還需將多個Web Service的服務響應進行集中處理,并將處理后產生響應事件放入事件通道。所述Web Service解析與執(zhí)行模塊20,用于解析事件處理模塊10傳送的事件,并根據解析結果執(zhí)行Web Service調用。所述Web Service解析與執(zhí)行模塊20包括QoS管理器21與Web Service引擎22。QoS管理器21,主要負責在需要時為SOAP請求對象進行QoS操作,為SOAP請求對象附加必要的QoS控制附屬特性,如安全、策略等。Web Service引擎22,主要負責解析事件處理模塊10傳送的事件,并根據解析結果執(zhí)行Web Service調用。Web Service 引擎22包括Web Service解析組件與Web Service執(zhí)行組件。Web Service解析組件,用于對事件處理模塊10傳送的事件進行解析,讀取服務相關信息。例如,將事件中包含的Web Service接口文件WSDL進行解析,以讀取服務相關信息,從而了解服務的內部結構,其中,系統(tǒng)可以使用IBM WSDL4J技術對WSDL文檔進行解析;以及,接收Web Service執(zhí)行組件返回的服務執(zhí)行結果SOAP服務響應事件,并對其解析,將解析結果返回給事件處理模塊10。Web Service執(zhí)行組件,用于根據Web Service解析組件的解析結果,執(zhí)行WebService調用。具體包括根據Web Service解析組件的解析結果,獲取相關服務信息,動態(tài)構建 生成SOAP請求對象消息,并執(zhí)行Web Service調用將SOAP請求對象消息發(fā)送給服務提供方進行服務執(zhí)行。在服務執(zhí)行結束后,接收服務提供方返回的服務執(zhí)行結果SOAP服務響應事件,并將該服務執(zhí)行結果SOAP服務響應事件返回給Web Service解析組件進行解析。優(yōu)選地,以上提到的組件及組件組合是以SCA為規(guī)范,組件容器是以OSGi為規(guī)范。請參考圖2,本發(fā)明提供一種基于EDA的Web Service處理方法,包括一、事件處理模塊的處理步驟I、服務消費方發(fā)起Web Service調用請求。2、事件處理模塊中的服務消費方代理從事件通道中接收服務消費方的WebService調用請求,并分析處理該請求首先將服務請求數據中有關Web Service信息,包括服務URL、名稱、操作方法名、參數列表等形成事件消息。3、隨后,事件消息將被送入到事件通道中,等待處理。4、事件檢測與服務調度模塊檢測事件通道中的事件,當檢測到事件后,進行規(guī)則判斷,判斷事件類型。5、判斷事件是否為簡單事件,如果不是,轉入步驟6交給復雜事件處理引擎(CEP引擎)進行處理;如果是則直接交給步驟7由Web Service調度器進行Web Service調度。6、復雜事件處理引擎(CEP引擎)對轉交的復雜事件進行處理,并將處理結果交給步驟7由Web Service調度器進行Web Service調度。7、Web Service調度器調度Web Service將事件數據轉交給Web Service解析與執(zhí)行模塊進行處理。16、事件檢測與服務調度模塊檢測事件通道中的Web Service解析與執(zhí)行模塊返回的服務執(zhí)行結果SOAP服務響應事件。17、消費方代理處理將由事件通道返回的服務響應事件重新生成Web Service響應數據,返回給服務消費方。二、Web Service解析與執(zhí)行模塊的處理步驟8、Web Service解析與執(zhí)行模塊通過Web Service調度接收事件數據。9、Web Service解析與執(zhí)行模塊將事件數據交由Web Service引擎進行解析,解析出服務的地址、名稱、操作、參數等信息,例如解析事件中包含的Web Service接口文件WSDL,并根據解析出來的信息,生成SOAP請求對象。10、判斷上述SOAP請求對象是否需要加入QoS控制,如果需要轉入步驟11進行QoS處理;如果不需要,轉入步驟12進行處理。11、通過QoS管理器對SOAP請求對象進行QoS操作,為SOAP請求對象附加必要的QoS控制附屬特性,如安全、策略等。12、構造完成SOAP請求消息。13、Web Service解析與執(zhí)行模塊將SOAP請求信息給服務提供方進行服務執(zhí)行。
15、Web Service解析與執(zhí)行模塊接收服務提供方返回的服務執(zhí)行結果SOAP服務響應事件,并將服務執(zhí)行結果SOAP服務響應事件返回事件通道。本發(fā)明提供一種基于事件驅動架構的Web Service處理引擎系統(tǒng)及處理方法,將傳統(tǒng)以同步方式處理Web Service消息的方式轉變?yōu)橐曰贓DA的異步處理方式,引擎系統(tǒng)根據所接收到的來自特定事件源的事件來解析并執(zhí)行某一 Web Service,并將執(zhí)行結果反饋給服務消費方的下一個環(huán)節(jié)。以事件驅動的方法與面向服務的方法結合使用,使應用與系統(tǒng)響應更靈敏,更適應不可預知和異步環(huán)境。同時,本發(fā)明的引擎系統(tǒng)采用OSGi與SCA兩種規(guī)范相結合的方式來構造組件及服務容器,融合了 OSGi與SCA兩種技術標準的優(yōu)點,構造出靈活、健壯,適應各種異構環(huán)境下的基于EDA的Web Service處理引擎,可以實現(xiàn)任意滿足OSGi標準的功能組件整合到引擎系統(tǒng)中,既解決了代碼/類庫之間相互依賴的問題,又解決了服務組合的問題。 上述說明示出并描述了本發(fā)明的一個優(yōu)選實施例,但如前所述,應當理解本發(fā)明并非局限于本文所披露的形式,不應看作是對其他實施例的排除,而可用于各種其他組合、修改和環(huán)境,并能夠在本文所述發(fā)明構想范圍內,通過上述教導或相關領域的技術或知識進行改動。而本領域人員所進行的改動和變化不脫離本發(fā)明的精神和范圍,則都應在本發(fā)明所附權利要求的保護范圍內。
權利要求
1.一種基于事件驅動架構的Web Service處理引擎系統(tǒng),其特征在于,包括事件處理模塊、Web Service解析與執(zhí)行模塊, 所述事件處理模塊,用于將服務消費方的Web Service調用請求轉換為事件,并將所述事件傳送給Web Service解析與執(zhí)行模塊; 所述Web Service解析與執(zhí)行模塊,用于解析事件處理模塊傳送的事件,并根據解析結果執(zhí)行Web Service調用。
2.如權利要求I所述的系統(tǒng),其特征在于,所述事件處理模塊,包括服務消費方代理組件、事件通道組件、事件檢測與服務調度組件, 所述服務消費方代理組件,用于將服務消費方的Web Service調用請求轉換為事件,送入所述事件通道組件中;以及,將由事件通道組件返回的服務響應事件重新生成WebService響應數據; 所述事件通道組件,用于傳輸事件; 所述事件檢測與服務調度事件組件,用于將從事件通道組件中接收到的事件進行分析判斷,并將相應的Web Service調用請求傳送給Web Service解析與執(zhí)行模塊。
3.如權利要求I所述的系統(tǒng),其特征在于,所述WebService解析與執(zhí)行模塊,包括QoS管理器、Web Service引擎, 所述QoS管理器,用于為Web Service SOAP請求附加必要QoS控制附屬特性; 所述Web Service引擎,用于解析事件處理模塊傳送的事件,并根據解析結果執(zhí)行WebService 調用。
4.如權利要求3所述的系統(tǒng),其特征在于,所述WebService引擎包括Web Service解析組件與Web Service執(zhí)行組件,其中, 所述Web Service解析,用于對事件處理模塊傳送的事件進行解析; 所述Web Service執(zhí)行組件,用于根據Web Service解析的解析結果,執(zhí)行WebService 調用。
5.如權利要求4所述的方法,其特征在于,所述WebService執(zhí)行組件,具體包括 根據Web Service解析組件的解析結果,獲取相關服務信息,構建生成SOAP請求對象消息,并執(zhí)行Web Service調用將SOAP請求對象消息發(fā)送給服務提供方進行服務執(zhí)行;以及,接收服務提供方返回的服務執(zhí)行結果SOAP服務響應事件,并將該服務執(zhí)行結果SOAP服務響應事件返回給Web Service解析組件。
6.一種基于事件驅動架構的Web Service處理方法,其特征在于,包括 步驟I、事件處理模塊將服務消費方的Web Service調用請求轉換為事件,并將所述事件傳送給Web Service解析與執(zhí)行模塊; 步驟2、Web Service解析與執(zhí)行模塊解析事件處理模塊傳送的事件,并根據解析結果執(zhí)行Web Service調用。
7.如權利要求6所述的方法,其特征在于,所述步驟1,具體包括 步驟I. I、事件處理模塊接收到服務消費方的Web Service調用請求,并將WebService調用請求形成事件; 步驟I. 2、事件處理模塊將所述事件通過Web Service調度傳送給Web Service解析與執(zhí)行模塊;步驟I. 3、事件處理模塊檢測Web Service解析與執(zhí)行模塊返回的服務執(zhí)行結果SOAP服務響應事件; 步驟I. 4、事件處理模塊將服務響應事件重新生成Web Service響應數據,返回給服務消費方。
8.如權利要求7所述的方法,其特征在于,所述步驟I.2中,在發(fā)送所述事件之前,先判斷所述事件的類型,如果是復雜事件,則先由復雜事件處理引擎對事件進行處理后再發(fā)送。
9.如權利要求6所述的方法,其特征在于,所述步驟2,具體包括 步驟2. I、Web Service解析與執(zhí)行模塊通過Web Service調度接收事件數據; 步驟2. 2、Web Service解析與執(zhí)行模塊解析事件消息,并根據解析出來的信息,生成 SOAP請求對象,發(fā)送給服務提供方; 步驟2. 3、Web Service解析與執(zhí)行模塊接收服務提供方返回的服務執(zhí)行結果SOAP服務響應事件,并將其返回事件處理模塊。
10.如權利要求9所述的方法,其特征在于,所述步驟2.2中,在發(fā)送SOAP請求對象給服務提供方之前,先判斷所述SOAP請求對象是否需要加入QoS控制,如果需要,則為SOAP請求對象附加必要的QoS控制附屬特性,然后再將處理后的SOAP請求對象發(fā)送。
全文摘要
本發(fā)明提供一種基于事件驅動架構的Web Service處理引擎系統(tǒng),包括事件處理模塊、Web Service解析與執(zhí)行模塊。所述事件處理模塊,用于將服務消費方的Web Service調用請求轉換為事件,并將所述事件傳送給Web Service解析與執(zhí)行模塊;所述Web Service解析與執(zhí)行模塊,用于解析事件處理模塊傳送的事件,并根據解析結果執(zhí)行Web Service調用。本發(fā)明還提供一種基于事件驅動架構的Web Service處理方法。通過本發(fā)明提供的一種基于事件驅動架構的Web Service處理引擎系統(tǒng)及處理方法,融合OSGi與SCA兩種技術標準的優(yōu)點,可以構造出靈活、健壯,適應各種異構環(huán)境下的基于EDA的Web Service處理引擎。
文檔編號G06F9/46GK102750181SQ20121017679
公開日2012年10月24日 申請日期2012年5月31日 優(yōu)先權日2012年5月31日
發(fā)明者雷曄 申請人:深圳市遠行科技有限公司