ESB全稱為Enterprise Service Bus,即企業(yè)服務總線。它是傳統(tǒng)中間件技術(shù)與XML、Web服務等技術(shù)結(jié)合的產(chǎn)物。ESB提供了網(wǎng)絡中最基本的連接中樞,是構(gòu)筑企業(yè)神經(jīng)系統(tǒng)的必要元素。ESB的出現(xiàn)改變了傳統(tǒng)的軟件結(jié)構(gòu),可以提供比傳統(tǒng)中間件產(chǎn)品更為廉價的解決方案,同時它還可以消除不同應用之間的技術(shù)差異,讓不同的應用服務器協(xié)調(diào)運作,實現(xiàn)了不同服務之間的通信與整合。從功能上看,ESB提供了事件驅(qū)動和文檔導向的處理模式,以及分布式的運行管理機制,它支持基于內(nèi)容的路由和過濾,具備了復雜數(shù)據(jù)的傳輸能力,并可以提供一系列的標準接口。

一、ESB的五個基本功能:
1)服務的MetaData管理:在總線范疇內(nèi)對服務的注冊命名及尋址進行管理。
2)傳輸服務:確保通過企業(yè)總線互連的業(yè)務流程間的消息的正確交付,還包括基于內(nèi)容的路由功能。
3)中介:提供位置透明的路由和定位服務;提供多種消息傳遞形式;支持廣泛使用的傳輸協(xié)議。
4)多服務集成方式: 如JCA,Web服務,Messaging ,Adaptor等.
5)服務和事件管理支持: 調(diào)用服務的記錄、測量和監(jiān)控數(shù)據(jù);提供事件檢測、觸發(fā)和分布功能;
二、ESB 原理
Channels — Messaging應用通過一個Message Channel傳送數(shù)據(jù),一個sender到receiver的虛擬管道。一個新安裝的消息系統(tǒng)默認不包含任何channel;你必須知道你的應用需要怎樣通訊,然后才能建立channel來完成它。
Messages — Message是在channel上傳輸?shù)牟豢煞指畹陌R虼耍瑸榱藗鬏敂?shù)據(jù),應用必須將數(shù)據(jù)打包成一個或多個packets,將每個packet包裝成一個message,然后將其傳輸?shù)揭粋€channel。同樣的,一個receiver應用在接受到message后必須從message中提取出數(shù)據(jù)才能使用。Message系統(tǒng)應該能重復的傳輸message,直到它成功為止。
Pipes and Filters — 最簡單的情況下,message系統(tǒng)將一個消息直接從sender計算機傳送到receiver計算機。然而,通常在消息從sender中發(fā)出后,receiver接受到之前,有一些動作需要對message執(zhí)行。舉例來說,message也許需要驗證或者轉(zhuǎn)換。Pipes and Filters架構(gòu)使用channel將多個處理步驟連接起來。
Routing — 在一個大型的、擁有許多不同的應用和channel連接的企業(yè)應用中,一個message可能需要穿過多個channel才能到達最終目的地。Message的路由如此復雜以至于最初的發(fā)送者無法知道那些channel能將message傳送給最終的receiver。因此,最初的發(fā)送者將message發(fā)送給一個Message Router,一個以Pipes and Filters架構(gòu)中的filter形式存在的應用組件。Router將決定如何將message發(fā)送到最終receiver或者至少是下一個Router。
Transformation — 不同的應用的數(shù)據(jù)格式可能不同。為了調(diào)節(jié)sender和receiver之間的數(shù)據(jù)格式不同的問題,message必須經(jīng)過一個中介的filter,一個Message Translator,它將message從一個格式轉(zhuǎn)換成另外一個格式,或轉(zhuǎn)換成一個公共的格式。
Endpoints — 大多數(shù)的應用程序沒有內(nèi)建的能力來同一個message系統(tǒng)交互。因此他們必須包含一個中間層,它知道應用系統(tǒng)如何工作,也知道m(xù)essage系統(tǒng)如何工作,并橋接兩個系統(tǒng)。這個系統(tǒng)是一組并列的Message Endpoints,它能夠使得應用發(fā)送和接受message。
System manager - 作為一個大型的消息集成系統(tǒng),其面向消息的、異步、低耦合的本質(zhì)使得系統(tǒng)更加難以調(diào)試,運行期的狀態(tài)也難以跟蹤,所以,我們必須有強有力的手段進行系統(tǒng)的運行期管理和監(jiān)控,同時最好能夠在運行進行動態(tài)更新,以保障系統(tǒng)的強壯性。
企業(yè)應用集成是一個巨大而復雜的系統(tǒng),作為其基礎件ESB系統(tǒng),必須能夠提供對其完全的支撐以及足夠強壯的系統(tǒng),這正是ESB系統(tǒng)建設的難度所在。
三、以貴公司集成系統(tǒng)為例,配置ESB服務
1、啟動命令:(用命令行啟)
Linux / Unix: . synapse.sh -sample 0
Windows: synapse.bat -sample 0
(sample 0代表synapse-2.1.0\repository\conf\sample中的XML配置,作用不同,其中synapse_sample_58.xml代表負載均衡)
2、修改ESB啟動端口
synapse-2.1.0\repository\conf\axis2.xml中查找
transportReceiver name="http" class="org.apache.synapse.transport.nhttp.HttpCoreNIOListener"> <parameter
name="port">8280</parameter> <parameter name="non-blocking">true</parameter>,修改其中的PORT值
3、修改負載均衡對應的應用地址:
synapse-2.1.0\repository\conf\sample\synapse_sample_58.xml中
<loadbalance failover="true">
<member hostName="127.0.0.1" httpPort="7000"/>
<member hostName="127.0.0.1" httpPort="9001"/>
</loadbalance>
每一個MEMBER代表一個地址,需要幾個應用進行負載,就添加幾個MEMBER地址
4. 如果運行本系統(tǒng)修改:<messageFormatter contentType="text/xml"
class="org.apache.synapse.format.hessian.HessianMessageFormatter"/>
5.如果啟動多個服務時需要改:# Default is to autodetect free port starting at 1099; change it to meet your deployment requirements!
synapse.jmx.jndiPort=1199
6、命令行下啟動服務
>d: 回車 --切換到d盤
d...>dir --顯示所有文件
d...>cd 按tab鍵選擇所要文件 回車 --切換到所選文件夾下
d...>cd 按tab鍵選擇所要文件 回車 --進入所選文件夾下
d...>cd bin
d...>
標題名稱:ESB 工作總結(jié)-創(chuàng)新互聯(lián)
文章出自:http://chinadenli.net/article38/diippp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設、全網(wǎng)營銷推廣、營銷型網(wǎng)站建設、建站公司、標簽優(yōu)化、網(wǎng)頁設計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)