服務總線提供服務的方法及系統的制作方法
【專利摘要】本發明提供了一種服務總線提供服務的方法及系統,所述方法包括:服務總線接收客戶端單元發來的多種協議類型的服務請求消息,并對所述服務請求消息進行格式轉換;將格式轉換后的服務請求消息發送給服務請求消息請求的服務單元;所述服務總線接收所述服務單元返回的應答消息,對所述應答消息進行格式轉換后發送給所述客戶端單元。本發明通過服務總線對接收到的各種協議類型的服務請求消息進行格式轉換后,發送給相應的服務單元,并將服務單元返回的應答消息進行格式轉換后發送給客戶端單元,擴大了服務接入和發布的方式,提升了用戶使用體驗。
【專利說明】服務總線提供服務的方法及系統
【技術領域】
[0001]本發明涉及網絡通信【技術領域】,尤其涉及ー種服務總線提供服務的方法及系統。【背景技術】
[0002]服務總線作為客戶端系統的連接中樞,是構筑面向服務架構(Service OrientedArchitecture, SOA)為基礎的企業信息系統的必要元素,服務總線可以簡單的定義為:由中間件技術實現并支持SOA的ー組基礎架構,支持異構環境中的服務、消息以及基于事件的交互,并且具有適當的服務級別和可管理性。通過服務總線實現客戶端系統的快速接入,并通過更高級的事件、流程處理能力,能夠很好的將企業信息系統與實際業務協調起來,在保證原有投資的條件下,實現更加靈活和敏捷的企業信息系統改造。
[0003]目前大多數的服務總線是基于超文本傳輸協議(HyperText Transfer Protocol,HTTP)協議的,只支持以Web服務(Web Service)的方式進行服務的發布,但對于以HTTPpost的發布服務方式及其他服務的接入方式并不能夠支持,如此,極大地限制了服務接入和發布的方式。
【發明內容】
[0004]有鑒于此,本發明的主要目的在于提供ー種服務總線提供服務的方法及系統,能夠擴大服務的使用范圍,提升用戶體驗。
[0005]為達到上述目的,本發明的技術方案是這樣實現的:
[0006]ー種服務總線提供服務的方法,所述方法包括:
[0007]服務總線接收客戶端單元發來的多種協議類型的服務請求消息,并對所述服務請求消息進行格式轉換;
[0008]將格式轉換后的服務請求消息發送給服務請求消息請求的服務單元;
[0009]所述服務總線接收所述服務單元返回的應答消息,對所述應答消息進行格式轉換后發送給所述客戶端単元。
[0010]其中,所述服務總線接收客戶端單元發來的多種協議類型的服務請求消息為:
[0011]所述服務總線接收客戶端單元發來的Java消息服務(JMS)協議類型或遠程方法調用(RMI)協議類型的服務請求消息。
[0012]其中,所述服務總線對所述服務單元請求消息進行格式轉換為:
[0013]所述服務總線將JMS協議類型或RMI協議類型的服務請求消息轉換為簡單對象訪問協議(SOAP)類型的服務請求消息。
[0014]其中,所述服務總線接收所述服務單元返回的應答消息為:
[0015]所述服務總線接收所述服務單元返回的SOAP類型的應答消息。
[0016]其中,所述對所述應答消息進行格式轉換后發送給所述客戶端單元為:
[0017]所述服務總線根據所述應答消息中目的地址對應客戶端單元的協議類型,將SOAP類型的應答消息轉換為JMS協議類型或RMI協議類型的應答消息并發送給相應的客戶端單J Li o
[0018]ー種服務總線提供服務的系統,包括客戶端單元、服務單元,所述系統還包括:月艮務總線;其中,
[0019]所述服務總線,用于接收客戶端單元發來的多種協議類型的服務請求消息,并對所述服務請求消息進行格式轉換;將格式轉換后的服務請求消息發送給服務請求消息請求的服務單元;接收所述服務單元返回的應答消息,對所述應答消息進行格式轉換后發送給所述客戶端單元。
[0020]其中,所述服務總線包括:適配單元,所述適配単元包括接收模塊、統ー消息路由模塊、轉換模塊;其中,
[0021]所述接收模塊,用于接收客戶端單元發來的JMS協議類型或RMI協議類型的服務請求消息,并通過統ー消息路由模塊將所述服務請求消息發送給轉換模塊。
[0022]其中,所述服務總線包括:適配單元,所述適配単元包括接收模塊、統ー消息路由模塊、轉換模塊、發送模塊;其中,
[0023]所述轉換模塊,用于將接收模塊通過統ー消息路由模塊發來的JMS協議類型或RMI協議類型的服務請求消息轉換為SOAP類型的服務請求消息;
[0024]所述發送模塊,用于將轉換模塊通過統ー消息路由模塊發來的SOAP類型的服務請求消息發送給相應的服務單元。
[0025]其中,所述服務總線包括:適配單元,所述適配単元包括接收模塊;其中,
[0026]所述接收模塊,用于接收所述服務単元返回的SOAP類型的應答消息。
[0027]其中,所述服務總線包括:適配單元,所述適配単元包括接收模塊、統ー消息路由模塊、轉換模塊、發送模塊;其中,
[0028]所述接收模塊,用于接收所述服務単元返回的應答消息;
[0029]所述轉換模塊,用于根據接收模塊通過統ー消息路由模塊發來的應答消息中目的地址對應客戶端的協議類型,將SOAP類型的應答消息轉換為JMS協議類型或RMI協議類型的應答消息;
[0030]所述發送模塊,用于將轉換模塊通過統ー消息路由模塊發來的應答消息發送給相應的客戶端單元。
[0031]本發明通過服務總線對接收到的各種協議類型的服務請求消息進行格式轉換后,發送給相應的服務單元,并將服務單元返回的應答消息進行格式轉換后發送給客戶端單元,擴大了服務接入和發布的方式,提升了用戶使用體驗。
【專利附圖】
【附圖說明】
[0032]圖1為本發明服務總線提供服務的方法的實現流程示意圖;
[0033]圖2為本發明服務總線提供服務的系統的結構示意圖;
[0034]圖3為本發明服務總線提供服務的系統中適配単元的結構示意圖。
【具體實施方式】
[0035]本發明的基本思想為:服務總線接收客戶端單元發來的多種協議類型的服務請求消息,并對所述服務請求消息進行格式轉換;將格式轉換后的服務請求消息發送服務請求消息請求的服務單元;所述服務總線接收所述服務單元返回的應答消息,對所述應答消息進行格式轉換后發送給所述客戶端単元。
[0036]為使本發明的目的、技術方案和優點更加清楚明白,以下舉實施例并參照附圖,對本發明進一歩詳細說明。
[0037]圖1示出了本發明服務總線提供服務的方法的實現流程,如圖1所示,所述方法包括下述步驟:
[0038]步驟101,服務總線接收客戶端單元發來的多種協議類型的服務請求消息,并對所述服務請求消息進行格式轉換;
[0039]這里,當用戶需要訪問某一應用時,會通過客戶端單元輸入服務請求消息,客戶端單元將用戶輸入的服務請求消息發送給所述服務總線;
[0040]服務總線接收客戶端單元發來的Java消息服務(Java Message Service, JMS)協議類型或遠程方法調用(Remote Method Invocation, RMI)協議類型的服務請求消息;并將所述JMS協議類型或RMI協議類型的服務請求消息轉換為簡單對象訪問協議(SimpleObject Access Protocol, SOAP)類型的服務請求消息;具體是將所述服務請求消息的消息格式、通訊方式以及編碼格式等等轉換為各自所請求服務單元所支持的協議類型。
[0041]步驟102,服務總線將格式轉換后的服務請求消息發送給服務請求消息請求的服務單元;
[0042]具體地,本步驟中,服務總線根據格式轉換后的服務請求消息所請求的服務單元,將所述服務請求消息發送給相應的具體的服務單元;
[0043]當所述服務単元接收到服務請求消息后,進行消息驗證,井根據所述服務請求消息的內容返回具體的應答消息給服務總線。
[0044]步驟103,所述服務總線接收所述服務單元返回的應答消息,對所述應答消息進行格式轉換后發送給所述客戶端単元;
[0045]這里,所述服務總線根據所述應答消息中目的地址對應客戶端的協議類型,將SOAP類型的應答消息轉換為JMS協議類型或RMI協議類型的應答消息并發送給相應的客戶端単元;具體是將所述應答消息的消息格式、通訊方式以及編碼格式等等轉換成所述客戶端単元所應用的協議類型。
[0046]其中,上述服務請求消息不同協議類型中間的轉換具體如下:當上述服務請求消息在JMS協議類型和SOAP類型之間的轉換時,由于JMS協議類型和SOAP類型的消息都是基于HTTP的,只是消息格式有所不同,一種較為簡單的方式是將SOAP類型的消息封裝到JMS協議類型消息的消息體中,轉換回來時則可直接將JMS協議類型消息的封裝去掉,則得到SOAP類型的消息;當然,為了提高工作效率,還可以通過比上述轉換方式復雜的轉換方式進行消息類型之間的轉換,比如,可以將服務在內部傳輸的形式XML over JMS Se rvice包裝成Web Service,來使合作伙伴或者客戶也可以從外部調用該服務;進ー步地,當JMSService可以區分服務請求的優先級時,包裝后的Web Se rvice也需要支持區分服務請求的優先級的能力;
[0047]這里,JMS Service通過在JMS消息頭中的JMS_Priority屬性區分服務請求的優先級。相應地,在Web service的SOAP消息頭中定義標識優先級的元素,如此,SOAP類型的服務請求消息相應會復雜ー些;具體地,當SOAP消息中添加了用于表示服務優先級為2的消息頭時,則在將該SOAP消息轉換為JMS協議類型消息吋,需要首先提取該服務優先級的值,并在JMS協議類型消息的消息頭中的JMS_Priority中的值設為2,然后再把SOAP消息體中的字段封裝在JMS消息體中,如此,則實現了 SOAP類型消息和JMS協議類型消息的
無縫對接。
[0048]應當理解,上述服務請求消息類型之間的轉換還存在其他方式,如引入統ー的標準數據對象,該數據對象能夠和任意有規則的數據或對象進行等價互轉,通過把此數據對象作為各種不同消息類型之間格式轉換的中介來實現數據轉換。
[0049]圖2示出了本發明服務總線提供服務的系統的結構,圖3為圖2所示系統中服務總線所包括的適配單元的結構示意圖,如圖2和圖3所示,所述服務總線提供服務的系統,包括客戶端單元、服務單元,還包括:服務總線;其中,圖2中客戶端單元是以支持Web服務相關協議的Web客戶端單元、支持RMI協議的RMI客戶端單元以及支持JMS協議的JMS客戶端單元進行的示意;相應地,服務單元是以支持Web服務相關協議的Web服務單元、支持RMI協議的RMI服務單元以及支持JMS協議的JMS服務單元進行的示意;
[0050]應當理解,所述客戶端単元和服務單元分別還可以包括支持其他協議類型的客戶端単元和服務單元。
[0051]所述服務總線,用于接收客戶端單元發來的多種協議類型的服務請求消息,并對所述服務請求消息進行格式轉換;將格式轉換后的服務請求消息發送給服務請求消息請求的服務單元;接收所述服務單元返回的應答消息,對所述應答消息進行格式轉換后發送給所述客戶端單元。
[0052]其中,所述服務總線包括:適配單元,所述適配単元包括接收模塊、統ー消息路由模塊、轉換模塊;其中,圖3中接收模塊是以支持SOAP的SOAP接收模塊、支持RMI協議的RMI接收模塊以及支持JMS協議的JMS接收模塊進行的示意;應當理解,所述接收模塊分別還可以包括支持其他協議類型的接收模塊。
[0053]所述接收模塊,用于接收客戶端單元發來的JMS協議類型或RMI協議類型的服務請求消息,并通過統ー消息路由模塊將所述服務請求消息發送給轉換模塊。
[0054]其中,所述適配単元包括還發送模塊;其中,圖3中發送模塊是以支持SOAP的SOAP發送模塊、支持RMI協議的RMI發送模塊以及支持JMS協議的JMS發送模塊進行的示意;應當理解,所述發送模塊分別還可以包括支持其他協議類型的發送模塊。
[0055]所述轉換模塊,用于將接收模塊通過統ー消息路由模塊發來的JMS協議類型或RMI協議類型的服務請求消息轉換為SOAP類型的服務請求消息;
[0056]所述發送模塊,用于將轉換模塊通過統ー消息路由模塊發來的SOAP類型的服務請求消息發送給相應的服務單元。
[0057]其中,所述適配単元的接收模塊,用于接收所述服務単元返回的SOAP類型的應答消息。
[0058]進ー步地,所述接收模塊,用于接收所述服務単元返回的應答消息;
[0059]所述轉換模塊,用于根據接收模塊通過統ー消息路由模塊發來的應答消息中目的地址對應客戶端的協議類型,將SOAP類型的應答消息轉換為JMS協議類型或RMI協議類型的應答消息;
[0060]所述發送模塊,用于將轉換模塊通過統ー消息路由模塊發來的應答消息發送給相應的客戶端單元。
[0061]應當理解,在本發明中,適配單元的接收模塊與轉換模塊交互的所有消息以及發送模塊與轉換模塊交互的所有消息都是通過傳輸通道傳送到統ー消息路由模塊,再由統ー消息路由模塊通過傳輸通道傳送到對方進行的交互。如此,通過統ー消息路由模塊作為聚合消息的出入口,能夠讓所有的消息具有相同的出入口,很好地提高了各個功能模塊的復用性,而且能夠避免不必要的復雜性。
[0062]以上所述,僅為本發明的較佳實施例而已,并非用于限定本發明的保護范圍。
【權利要求】
1.ー種服務總線提供服務的方法,其特征在于,所述方法包括: 服務總線接收客戶端單元發來的多種協議類型的服務請求消息,并對所述服務請求消息進行格式轉換; 將格式轉換后的服務請求消息發送給服務請求消息請求的服務單元; 所述服務總線接收所述服務單元返回的應答消息,對所述應答消息進行格式轉換后發送給所述客戶端單元。
2.根據權利要求1所述的方法,其特征在于,所述服務總線接收客戶端單元發來的多種協議類型的服務請求消息為: 所述服務總線接收客戶端單元發來的Java消息服務JMS協議類型或遠程方法調用RMI協議類型的服務請求消息。
3.根據權利要求1所述的方法,其特征在于,所述服務總線對所述服務單元請求消息進行格式轉換為: 所述服務總線將JMS協議類型或RMI協議類型的服務請求消息轉換為簡單對象訪問協議SOAP類型的服務請求消息。
4.根據權利要求1所述的方法,其特征在于,所述服務總線接收所述服務單元返回的應答消息為: 所述服務總線接收所述服務單元返回的SOAP類型的應答消息。
5.根據權利要求1所述的方法,其特征在于,所述對所述應答消息進行格式轉換后發送給所述客戶端單元為: 所述服務總線根據所述應答消息中目的地址對應客戶端單元的協議類型,將SOAP類型的應答消息轉換為JMS協議類型或RMI協議類型的應答消息并發送給相應的客戶端單J Li o
6.ー種服務總線提供服務的系統,包括客戶端單元、服務單元,其特征在于,所述系統還包括:服務總線;其中, 所述服務總線,用于接收客戶端單元發來的多種協議類型的服務請求消息,并對所述服務請求消息進行格式轉換;將格式轉換后的服務請求消息發送給服務請求消息請求的服務單元;接收所述服務單元返回的應答消息,對所述應答消息進行格式轉換后發送給所述客戶端單元。
7.根據權利要求6所述的系統,其特征在于,所述服務總線包括:適配單元,所述適配単元包括接收模塊、統ー消息路由模塊、轉換模塊;其中, 所述接收模塊,用于接收客戶端單元發來的JMS協議類型或RMI協議類型的服務請求消息,并通過統ー消息路由模塊將所述服務請求消息發送給轉換模塊。
8.根據權利要求6所述的系統,其特征在于,所述服務總線包括:適配單元,所述適配単元包括接收模塊、統ー消息路由模塊、轉換模塊、發送模塊;其中, 所述轉換模塊,用于將接收模塊通過統ー消息路由模塊發來的JMS協議類型或RMI協議類型的服務請求消息轉換為SOAP類型的服務請求消息; 所述發送模塊,用于將轉換模塊通過統ー消息路由模塊發來的SOAP類型的服務請求消息發送給相應的服務單元。
9.根據權利要求6所述的系統,其特征在于,所述服務總線包括:適配單元,所述適配単元包括接收模塊;其中, 所述接收模塊,用于接收所述服務単元返回的SOAP類型的應答消息。
10.根據權利要求6所述的系統,其特征在于,所述服務總線包括:適配單元,所述適配単元包括接收模塊、統ー消息路由模塊、轉換模塊、發送模塊;其中, 所述接收模塊,用于接收所述服務単元返回的應答消息; 所述轉換模塊,用于根據接收模塊通過統ー消息路由模塊發來的應答消息中目的地址對應客戶端的協議類型,將SOAP類型的應答消息轉換為JMS協議類型或RMI協議類型的應答消息; 所述發送模塊,用于將轉換模塊通過統ー消息路由模塊發來的應答消息發送給相應的客戶端單元。
【文檔編號】H04L29/06GK103595695SQ201210290553
【公開日】2014年2月19日 申請日期:2012年8月15日 優先權日:2012年8月15日
【發明者】仇大帥, 潘俊, 付章華 申請人:深圳中興網信科技有限公司