專利名稱:企業(yè)服務(wù)總線實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明主要涉及面向服務(wù)的體系結(jié)構(gòu)(Service-Oriented Architecture, SOA)中服務(wù) (Web Service)管理、服務(wù)綁定組件、業(yè)務(wù)引擎組件及其之間信息轉(zhuǎn)換,特別,特別涉及企 業(yè)服務(wù)總線的設(shè)計(jì)方法。
背景技術(shù):
企業(yè)服務(wù)總線(ESB全稱為Enterprise Service Bus)。它是傳統(tǒng)中間件技術(shù)與XML、 Web 服務(wù)等技術(shù)結(jié)合的產(chǎn)物。ESB提供了網(wǎng)絡(luò)中最基本的連接中樞,是構(gòu)筑企業(yè)神經(jīng)系統(tǒng)的必要元素。
ESB的出現(xiàn)改變了傳統(tǒng)的軟件架構(gòu),可以提供比傳統(tǒng)中間件產(chǎn)品更為廉價(jià)的解決方案, 同時(shí)它還可以消除不同應(yīng)用之間的技術(shù)差異,讓不同的應(yīng)用服務(wù)器協(xié)調(diào)運(yùn)作,實(shí)現(xiàn)了不同服 務(wù)之間的通信與整合。從功能上看,ESB提供了事件驅(qū)動(dòng)和文檔導(dǎo)向的處理模式,以及分布 式的運(yùn)行管理機(jī)制,它支持基于內(nèi)容的路由和過濾,具備了復(fù)雜數(shù)據(jù)的傳輸能力,并可以提
供一系列的標(biāo)準(zhǔn)接口。
發(fā)明內(nèi)容
本發(fā)明采用插拔式"plugin"的基于JMX規(guī)范的管理架構(gòu),提供靈活的可配置易開發(fā)的 組件管理平臺(tái),并為轉(zhuǎn)換消息格式、路由消息、擴(kuò)展信息、通知消息監(jiān)聽者的特定消息請求 及安全傳輸?shù)然竟δ芴峁┙y(tǒng)一接入方法。
為了達(dá)到上述目的,本發(fā)明采取如下技術(shù)方案-
企業(yè)服務(wù)總線實(shí)現(xiàn)方法,包括以下內(nèi)容
(1)架構(gòu),企業(yè)服務(wù)總線存在于單個(gè)JVM中。企業(yè)服務(wù)總線框架系統(tǒng)外部的節(jié)點(diǎn)是外部
服務(wù)消費(fèi)者和服務(wù)提供者,代表了企業(yè)服務(wù)總線框架要集成的外部實(shí)體。這些外部實(shí)體可以 通過各種各樣的技術(shù)與企業(yè)服務(wù)總線框架系統(tǒng)中的綁定組件交互。服務(wù)引擎本質(zhì)上一個(gè)容器,
用來放置企業(yè)服務(wù)總線框架系統(tǒng)內(nèi)部WSDL定義的服務(wù)提供者和服務(wù)消費(fèi)者。每個(gè)ESB框架系 統(tǒng)中都有一組用于提供操作支持的服務(wù),這組服務(wù)中的關(guān)鍵是規(guī)格化消息路由,它提供用于 消息交換和組件交互的基礎(chǔ)設(shè)施。此外,企業(yè)服務(wù)總線框架還定義了一個(gè)可插拔組件框架, 用于添加服務(wù)引擎和協(xié)議綁定組件。組件框架在圖中用黃色C形多邊形來表示。
企業(yè)服務(wù)總線框架系統(tǒng)右邊的部分展示了企業(yè)服務(wù)總線框架的管理特性。企業(yè)服務(wù)總線框架定義了-套標(biāo)準(zhǔn)的基于JMX的控制允許外部管理工具(圖中最右邊)執(zhí)行各種系統(tǒng)管理 任務(wù),同時(shí)也管理組件本身。企業(yè)服務(wù)總線框架核心的消息交換實(shí)現(xiàn)了上文所述的WSDL消息 交換模型。消費(fèi)者組件生成服務(wù)請求,通過NMR路由分發(fā)到提供者組件。例如,BPEL服務(wù)引 擎可能請求一個(gè)連接到WS-I綁定組件的外部服務(wù)提供者提供的服務(wù)。剛R把這個(gè)請求發(fā)送給 WS-T綁定組件。此時(shí)服務(wù)引擎就是一個(gè)服務(wù)消費(fèi)者,而綁定組件是一個(gè)服務(wù)提供者。
企業(yè)服務(wù)總線框架系統(tǒng)提供的所有服務(wù)都可以發(fā)布為WSDL描述的服務(wù)。服務(wù)引擎提供的 服務(wù)與綁定組件提供的服務(wù)都可以用服務(wù)端點(diǎn)描述,從而為服務(wù)的提供定義了統(tǒng)一的模型, 而不用關(guān)心服務(wù)的具體位置。服務(wù)消費(fèi)者可以通過WSDL服務(wù)名稱而不是服務(wù)端點(diǎn)地址來識(shí)別 所需的服務(wù)。這種方式降低了服務(wù)消費(fèi)者和提供者之間的關(guān)聯(lián),從而允許麗R選擇合適的服 務(wù)提供者。服務(wù)消費(fèi)者也可以通過解析服務(wù)端點(diǎn)引用來識(shí)別服務(wù)。例如,企業(yè)服務(wù)總線框架 組件可以通過解析消息中的服務(wù)端點(diǎn)引用回調(diào)其指向的服務(wù)。除了組件框架和規(guī)格化消息, 企業(yè)服務(wù)總線框架系統(tǒng)的其他部分提供了生命周期管理,環(huán)境檢査,管理和配置等基礎(chǔ)服務(wù), 這使得ESB框架系統(tǒng)成為一個(gè)完整而可靠的運(yùn)行環(huán)境。
(2)基于WSDL的消息模型,企業(yè)服務(wù)總線使用WSDL1. 1和2. 0規(guī)范描述組件所提供和消 費(fèi)的服務(wù)模型。在WSDL兩個(gè)版本中,術(shù)語定義存在差異的地方以WSDL2. 0為準(zhǔn)。WSDL在以 下兩個(gè)層面上定義了基于消息的服務(wù)模型
抽象服務(wù)模型使用抽象消息模型定義的,未限定到特定消息交換協(xié)議的服務(wù)
具體(限定)模型指限定到特定協(xié)議和通信端點(diǎn)的抽象服務(wù)。
企業(yè)服務(wù)總線使用抽象服務(wù)模型作為組件交互的基礎(chǔ)。組件在交互過程中扮演以下一種 或兩種角色
服務(wù)提供者該組件直接提供該服務(wù)或作為外部服務(wù)提供者代理。 服務(wù)消費(fèi)者該組件直接調(diào)用該服務(wù)或作為遠(yuǎn)程服務(wù)消費(fèi)者代理。
WSDL模型使用名字來標(biāo)識(shí)模型中的各種組件,WSDL模型使用以下兩種類型的模型
限定名 一個(gè)XML命名空間(URI)和簡單名字組成的名稱對(duì),用于全局命名;
簡單(非限定)名只有簡單名字,沒有關(guān)聯(lián)的XML命名空間,用于局部命名。
(3)抽象服務(wù)模型,WSDL服務(wù)描述中抽象服務(wù)模型的定義如下
抽象消息類型消息類型定義了合法的消息結(jié)構(gòu)和約束, 一般通過XMLSchema來表示。
消息分為兩類常態(tài)消息和故障消息,常態(tài)消息是指服務(wù)正常處理過程中的消息,故障消息
用于描述非正常的處理?xiàng)l件。
抽象操作與某種服務(wù)進(jìn)行交互時(shí)的一次操作,該服務(wù)由服務(wù)消費(fèi)者和提供者間交換的 常態(tài)(或故障)消息來定義。抽象操作定義如下操作名稱定義操作的限定名
消息交換模式消息(包括常態(tài)消息和故障消息)在消費(fèi)者和提供者之間傳遞的順序、 方向和基數(shù)
消息類型MEP中的消息的類型
抽象服務(wù)類型 一組相關(guān)聯(lián)的抽象操作的集合。在WSDL2. O中抽象服務(wù)類型用術(shù)語"接 口"表示,在WSDL1.1中用術(shù)語"端口類型"表示,抽象服務(wù)類型即接口定義如下-
接口名稱用于標(biāo)識(shí)服務(wù)類型的全局限定名,在ESB框架中接口名稱還用來指明服務(wù)類
型;
擴(kuò)展的接口擴(kuò)展了其他服務(wù)類型的服務(wù)類型。
(4)具體服務(wù)模型,WSDL中的具體服務(wù)模型建立在抽象服務(wù)模型之上,為抽象服務(wù)同特 定通信協(xié)議及通信端點(diǎn)的映射提供描述信息。為了盡可能的保持通信協(xié)議中立,ESB框架中組 件間的交互主要基于抽象服務(wù)模型,但為了與WSDL服務(wù)模型一致,組件間的交互使用WSDL具 體服務(wù)模型來定義。ESB框架使用的WSDL具體服務(wù)模型非常簡單,在大多數(shù)情況下可以將其等 同為抽象服務(wù)模型看待,從而為組件間的交互構(gòu)建了一個(gè)簡單的處理模型。具體服務(wù)模型定 義了以下幾個(gè)概念
綁定類型標(biāo)識(shí)服務(wù)所綁定的協(xié)議類型;
端點(diǎn)為服務(wù)消費(fèi)者指明通過特定協(xié)議與服務(wù)提供者交互所需的通信端點(diǎn)的信息。在ESB 框架中,端點(diǎn)是一種形式上的標(biāo)識(shí),其內(nèi)部使用的協(xié)議是基于Java的標(biāo)準(zhǔn)ESB框架消息契約, 與通常的通信協(xié)議無關(guān)。ESB框架中端點(diǎn)的定義包括以下幾個(gè)概念
端點(diǎn)名稱用于標(biāo)識(shí)服務(wù)中的端點(diǎn)的簡單名 綁定類型該端點(diǎn)關(guān)聯(lián)的綁定類型
服務(wù)提供訪問該服務(wù)的一組端點(diǎn)的集合, 一個(gè)服務(wù)實(shí)現(xiàn)了特定的服務(wù)類型(接口)。 一個(gè)服務(wù)包含如下信息
服務(wù)名稱標(biāo)識(shí)特定服務(wù)實(shí)現(xiàn)的限定名 服務(wù)類型名稱服務(wù)實(shí)現(xiàn)的接口名。
端點(diǎn)服務(wù)包含一個(gè)或多個(gè)端點(diǎn),通過每個(gè)端點(diǎn)都可以訪問該服務(wù)。 (5)規(guī)格化消息
規(guī)格化消息(順)包含兩部分如上所述的抽象的XML消息和消息元數(shù)據(jù)(即消息上下 文信息)。消息上下文可以為特定的消息提供組件(插接組件和系統(tǒng)組件)處理該消息時(shí)所需
的附加信息。消息元數(shù)據(jù)可以影響其所關(guān)聯(lián)的消息在ESB框架系統(tǒng)中的處理過程。
ESB框架系統(tǒng)的首要功能是將規(guī)格化消息交換(ME)從一個(gè)組件路由到另一個(gè)組件。交換的消息使用一種規(guī)格化的形式。綁定組件必須將綁定的消息(特定協(xié)議和傳輸格式的消息) 轉(zhuǎn)換成規(guī)格化形式。綁定組件和服務(wù)引擎通過傳輸通道與NMR交互,傳輸通道為消息的接收和 分發(fā)提供了雙向傳輸?shù)钠跫s。
如圖所示, 一個(gè)外部服務(wù)消費(fèi)者通過特定協(xié)議和傳輸器發(fā)送一個(gè)服務(wù)請求到綁定組件, 綁定組件將請求轉(zhuǎn)換成規(guī)格化消息。然后,綁定組件根據(jù)NM構(gòu)建消息交換是WSDL消息交換模 型中各種簡單消息交換模式中消息的容器),綁定組件設(shè)定描述將要執(zhí)行的服務(wù)和操作的元數(shù)
據(jù)信息,最后,在歩驟2中,綁定組件將消息交換通過傳輸通道發(fā)送給隨R, NMR將消息交換分 發(fā)到服務(wù)提供者。上述過程中,由腦R選擇合適的服務(wù)提供者,然后把消息交換(ME)路由到合 適的服務(wù)提供者。服務(wù)提供者必須從傳輸通道中主動(dòng)接收消息交換。相反的操作下圖所示, 只在綁定組件處與上圖有少許不同。
如圖所示, 一個(gè)消費(fèi)者創(chuàng)建一個(gè)規(guī)格化消息NM并將其放入一個(gè)新的消息交換中.該消息 交換的地址被設(shè)定為一個(gè)服務(wù)端點(diǎn),服務(wù)引擎未指定用哪一個(gè)組件來處理該服務(wù)請求。消息 交換的發(fā)送和接收同前例所示。綁定組件接收到ME后將規(guī)格化消息轉(zhuǎn)換為與協(xié)議和傳輸相關(guān) 的格式,并將其發(fā)送給外部服務(wù)提供者。
(6)管理,系統(tǒng)(包括綁定組件和服務(wù)引擎)通過JMX進(jìn)行管理。本規(guī)范定義了若干管 理Bean (MBean)類型,為ESB框架系統(tǒng)和插接組件提供了一致的管理環(huán)境。管理接口支持 的主要功能包括
a) 組件安裝
服務(wù)引擎和綁定組件必須通過管理接口進(jìn)行安裝。本規(guī)范中動(dòng)詞安裝指提供組件基本 功能的二進(jìn)制文件及相關(guān)資源的安裝。安裝不同于部署,部署指根據(jù)特定的應(yīng)用為組件運(yùn)行 添加相關(guān)的描述信息,從而定制組件的行為。例如, 一個(gè)XSLT轉(zhuǎn)換引擎安裝后,可以通過部 署特定的轉(zhuǎn)換樣式表(.xsl文件)使轉(zhuǎn)換引擎提供所需的轉(zhuǎn)換服務(wù)。
b) 生命周期管理
引擎或綁定組件一旦安裝,就可以使用本規(guī)范定義的MBean接口啟動(dòng)或停止該組件。該類 控制稱為生命周期管理。
c) 服務(wù)單元部署
部署是指為安裝的引擎或綁定組件提供與組件功能相關(guān)的資源。這些資源稱為服務(wù)單元。 本規(guī)范未對(duì)服務(wù)單元的內(nèi)容作任何說明,其對(duì)ESB框架來說是不透明的。服務(wù)單元組合成一 個(gè)聚合的部署文件稱為服務(wù)集合。服務(wù)集合包含一個(gè)部署描述符,用于指明每個(gè)服務(wù)單元所
要部署到的目標(biāo)組件。
d) 組件框架企業(yè)服務(wù)總線為綁定組件及服務(wù)引擎提供了一套可插拔的接口用于與企業(yè)服務(wù)總線框架~ 系統(tǒng)進(jìn)行交互。該框架為所有的ESB框架操作服務(wù)提供接口。組件與ESB框架之間的交互有
兩種機(jī)制SPIS和APIS。
SPIS是綁定組件或服務(wù)引擎實(shí)現(xiàn)的接口; APIS是組件框架向綁定
組件和服務(wù)引擎發(fā)布的接口。該契約定義了 ESB框架系統(tǒng)中為達(dá)到特定的功能目標(biāo),組件框 架和企業(yè)服務(wù)總線框架組件各自應(yīng)承擔(dān)的職責(zé)。
企業(yè)服務(wù)總線框架支持兩種組件服務(wù)引擎和綁定組件。這兩種組件的模型及API定義是
一樣的,企業(yè)服務(wù)總線框架只是通過一個(gè)標(biāo)記來區(qū)分這兩種組件。ESB框架中服務(wù)引擎和綁 定組件實(shí)現(xiàn)不同的功能。
本發(fā)明方法的優(yōu)點(diǎn)在于
(1) 組件易于管理
(2) 消息交換模型統(tǒng)一;
(3) 消息中間件易于替換
(4) ESB框架,它是插拔式"plugin"的基于JMX規(guī)范的管理架構(gòu),提供靈活的可配置 易開發(fā)的組件管理平臺(tái),并實(shí)現(xiàn)轉(zhuǎn)換消息格式、路由消息、擴(kuò)展信息、通知消息監(jiān)聽者的特 定消息請求及安全傳輸?shù)然竟δ堋?br>
圖1是本發(fā)明實(shí)施例中企業(yè)服務(wù)總線實(shí)現(xiàn)的架構(gòu)圖。 圖2是本發(fā)明實(shí)施例中企業(yè)服務(wù)總線實(shí)現(xiàn)基于WSDL的消息模型 圖3是本發(fā)明實(shí)施例中企業(yè)服務(wù)總線實(shí)現(xiàn)外部服務(wù)消費(fèi)者消息處理視圖 圖4是本發(fā)明實(shí)施例中企業(yè)服務(wù)總線實(shí)現(xiàn)外部部服務(wù)提供者消息處理視圖。
權(quán)利要求
1、企業(yè)服務(wù)總線實(shí)現(xiàn)方法,包括以下主要內(nèi)容(1)基于WSDL的消息模型,企業(yè)服務(wù)總線使用WSDL1.1和2.0規(guī)范描述組件所提供和消費(fèi)的服務(wù)模型。(2)抽象服務(wù)模型,WSDL服務(wù)描述中抽象服務(wù)模型的定義如下抽象消息類型消息類型定義了合法的消息結(jié)構(gòu)和約束,一般通過XMLSchema來表示。消息分為兩類常態(tài)消息和故障消息,常態(tài)消息是指服務(wù)正常處理過程中的消息,故障消息用于描述非正常的處理?xiàng)l件。(3)具體服務(wù)模型,WSDL中的具體服務(wù)模型建立在抽象服務(wù)模型之上,為抽象服務(wù)同特定通信協(xié)議及通信端點(diǎn)的映射提供描述信息。為了盡可能的保持通信協(xié)議中立,企業(yè)服務(wù)總線中組件間的交互主要基于抽象服務(wù)模型,但為了與WSDL服務(wù)模型一致,組件間的交互使用WSDL具體服務(wù)模型來定義。(4)規(guī)格化消息;功能是將規(guī)格化消息交換(ME)從一個(gè)組件路由到另一個(gè)組件。交換的消息使用一種規(guī)格化的形式。綁定組件必須將綁定的消息(特定協(xié)議和傳輸格式的消息)轉(zhuǎn)換成規(guī)格化形式。綁定組件和服務(wù)引擎通過傳輸通道與NMR交互,傳輸通道為消息的接收和分發(fā)提供了雙向傳輸?shù)钠跫s。(5)管理,通過JMX進(jìn)行管理。本規(guī)范定義了若干管理Bean(MBean)類型,為ESB框架系統(tǒng)和插接組件提供了一致的管理環(huán)境。管理接口支持的主要功能包括。
2、 根據(jù)權(quán)利要求1所述企業(yè)服務(wù)總線實(shí)現(xiàn)方法,其特征是,(1)中,企業(yè)服務(wù)總線基于 WSDL的消息模型。
3、 根據(jù)權(quán)利要求1所述企業(yè)服務(wù)總線實(shí)現(xiàn)方法,其特征是,(2)中,抽象消息類型消 息類型定義了合法的消息結(jié)構(gòu)和約束, 一般通過XMLSchema來表示。消息分為兩類常態(tài)消 息和故障消息,常態(tài)消息是指服務(wù)正常處理過程中的消息,故障消息用于描述非正常的處理?xiàng)l件。
4、 根據(jù)權(quán)利要求1所述企業(yè)服務(wù)總線實(shí)現(xiàn)方法,其特征是,(3)中,WSDL中的具體服 務(wù)模型建立在抽象服務(wù)模型之上,為抽象服務(wù)同特定通信協(xié)議及通信端點(diǎn)的映射提供描述信 息。為了盡可能的保持通信協(xié)議中立,企業(yè)服務(wù)總線中組件間的交互主要基于抽象服務(wù)模型, 但為了與WSDL服務(wù)模型一致,組件間的交互使用WSDL具體服務(wù)模型來定義。
5、 根據(jù)權(quán)利要求1所述企業(yè)服務(wù)總線實(shí)現(xiàn)方法,其特征是,(4)中,功能是將規(guī)格化消 息交換(ME)從一個(gè)組件路由到另一個(gè)組件。交換的消息使用一種規(guī)格化的形式。綁定組件 必須將綁定的消息(特定協(xié)議和傳輸格式的消息)轉(zhuǎn)換成規(guī)格化形式。綁定組件和服務(wù)引擎通過傳輸通道與醒R交互,傳輸通道為消息的接收和分發(fā)提供了雙向傳輸?shù)钠跫s。
6、根據(jù)權(quán)利要求1所述面企業(yè)服務(wù)總線實(shí)現(xiàn)方法,其特征是,(5)中,通過JMX進(jìn)行管 理。本規(guī)范定義了若干管理Bean (MBean)類型,為ESB框架系統(tǒng)和插接組件提供了一致的 管理環(huán)境。管理接口支持的主要功能包括。
全文摘要
本發(fā)明全稱為企業(yè)服務(wù)總線實(shí)現(xiàn)方法,采用插拔式“plugin”的基于JMX規(guī)范的管理架構(gòu),提供靈活的可配置易開發(fā)的組件管理平臺(tái),并為轉(zhuǎn)換消息格式、路由消息、擴(kuò)展信息、通知消息監(jiān)聽者的特定消息請求及安全傳輸?shù)然竟δ芴峁┙y(tǒng)一接入方法。本發(fā)明方法的優(yōu)點(diǎn)在于(1)組件易于管理;(2)消息交換模型統(tǒng)一;(3)消息中間件易于替換;(4)ESB框架,它是插拔式“plugin”的基于JMX規(guī)范的管理架構(gòu),提供靈活的可配置易開發(fā)的組件管理平臺(tái),并實(shí)現(xiàn)轉(zhuǎn)換消息格式、路由消息、擴(kuò)展信息、通知消息監(jiān)聽者的特定消息請求及安全傳輸?shù)然竟δ堋?br>
文檔編號(hào)H04L12/56GK101459609SQ20081022731
公開日2009年6月17日 申請日期2008年11月27日 優(yōu)先權(quán)日2008年11月27日
發(fā)明者劉建強(qiáng) 申請人:北京思普科科技開發(fā)有限公司