ESB全稱為Enterprise Service Bus,即企業(yè)服務(wù)總線。它是傳統(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)的軟件結(jié)構(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)容的路由和過(guò)濾,具備了復(fù)雜數(shù)據(jù)的傳輸能力,并可以提供一系列的標(biāo)準(zhǔn)接口。
成都創(chuàng)新互聯(lián)主要從事成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)壺關(guān),十年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):18980820575
一、ESB的五個(gè)基本功能:
1)服務(wù)的MetaData管理:在總線范疇內(nèi)對(duì)服務(wù)的注冊(cè)命名及尋址進(jìn)行管理。
2)傳輸服務(wù):確保通過(guò)企業(yè)總線互連的業(yè)務(wù)流程間的消息的正確交付,還包括基于內(nèi)容的路由功能。
3)中介:提供位置透明的路由和定位服務(wù);提供多種消息傳遞形式;支持廣泛使用的傳輸協(xié)議。
4)多服務(wù)集成方式: 如JCA,Web服務(wù),Messaging ,Adaptor等.
5)服務(wù)和事件管理支持: 調(diào)用服務(wù)的記錄、測(cè)量和監(jiān)控?cái)?shù)據(jù);提供事件檢測(cè)、觸發(fā)和分布功能;
二、ESB 原理
Channels— Messaging應(yīng)用通過(guò)一個(gè)Message Channel傳送數(shù)據(jù),一個(gè)sender到receiver的虛擬管道。一個(gè)新安裝的消息系統(tǒng)默認(rèn)不包含任何channel;你必須知道你的應(yīng)用需要怎樣通訊,然后才能建立channel來(lái)完成它。
Messages— Message是在channel上傳輸?shù)牟豢煞指畹陌R虼?,為了傳輸?shù)據(jù),應(yīng)用必須將數(shù)據(jù)打包成一個(gè)或多個(gè)packets,將每個(gè)packet包裝成一個(gè)message,然后將其傳輸?shù)揭粋€(gè)channel。同樣的,一個(gè)receiver應(yīng)用在接受到message后必須從message中提取出數(shù)據(jù)才能使用。Message系統(tǒng)應(yīng)該能重復(fù)的傳輸message,直到它成功為止。
Pipes and Filters—最簡(jiǎn)單的情況下,message系統(tǒng)將一個(gè)消息直接從sender計(jì)算機(jī)傳送到receiver計(jì)算機(jī)。然而,通常在消息從sender中發(fā)出后,receiver接受到之前,有一些動(dòng)作需要對(duì)message執(zhí)行。舉例來(lái)說(shuō),message也許需要驗(yàn)證或者轉(zhuǎn)換。Pipes and Filters架構(gòu)使用channel將多個(gè)處理步驟連接起來(lái)。
Routing—在一個(gè)大型的、擁有許多不同的應(yīng)用和channel連接的企業(yè)應(yīng)用中,一個(gè)message可能需要穿過(guò)多個(gè)channel才能到達(dá)最終目的地。Message的路由如此復(fù)雜以至于最初的發(fā)送者無(wú)法知道那些channel能將message傳送給最終的receiver。因此,最初的發(fā)送者將message發(fā)送給一個(gè)Message Router,一個(gè)以Pipes and Filters架構(gòu)中的filter形式存在的應(yīng)用組件。Router將決定如何將message發(fā)送到最終receiver或者至少是下一個(gè)Router。
Transformation—不同的應(yīng)用的數(shù)據(jù)格式可能不同。為了調(diào)節(jié)sender和receiver之間的數(shù)據(jù)格式不同的問(wèn)題,message必須經(jīng)過(guò)一個(gè)中介的filter,一個(gè)Message Translator,它將message從一個(gè)格式轉(zhuǎn)換成另外一個(gè)格式,或轉(zhuǎn)換成一個(gè)公共的格式。
Endpoints—大多數(shù)的應(yīng)用程序沒(méi)有內(nèi)建的能力來(lái)同一個(gè)message系統(tǒng)交互。因此他們必須包含一個(gè)中間層,它知道應(yīng)用系統(tǒng)如何工作,也知道m(xù)essage系統(tǒng)如何工作,并橋接兩個(gè)系統(tǒng)。這個(gè)系統(tǒng)是一組并列的Message Endpoints,它能夠使得應(yīng)用發(fā)送和接受message。
System manager- 作為一個(gè)大型的消息集成系統(tǒng),其面向消息的、異步、低耦合的本質(zhì)使得系統(tǒng)更加難以調(diào)試,運(yùn)行期的狀態(tài)也難以跟蹤,所以,我們必須有強(qiáng)有力的手段進(jìn)行系統(tǒng)的運(yùn)行期管理和監(jiān)控,同時(shí)最好能夠在運(yùn)行進(jìn)行動(dòng)態(tài)更新,以保障系統(tǒng)的強(qiáng)壯性。
企業(yè)應(yīng)用集成是一個(gè)巨大而復(fù)雜的系統(tǒng),作為其基礎(chǔ)件ESB系統(tǒng),必須能夠提供對(duì)其完全的支撐以及足夠強(qiáng)壯的系統(tǒng),這正是ESB系統(tǒng)建設(shè)的難度所在。
三、以貴公司集成系統(tǒng)為例,配置ESB服務(wù)
1、啟動(dòng)命令:(用命令行啟) name="port">8280
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代表負(fù)載均衡)
2、修改ESB啟動(dòng)端口
synapse-2.1.0\repository\conf\axis2.xml中查找
transportReceiver name="http" class="org.apache.synapse.transport.nhttp.HttpCoreNIOListener">
3、修改負(fù)載均衡對(duì)應(yīng)的應(yīng)用地址:
synapse-2.1.0\repository\conf\sample\synapse_sample_58.xml中
每一個(gè)MEMBER代表一個(gè)地址,需要幾個(gè)應(yīng)用進(jìn)行負(fù)載,就添加幾個(gè)MEMBER地址
4. 如果運(yùn)行本系統(tǒng)修改:
5.如果啟動(dòng)多個(gè)服務(wù)時(shí)需要改:# Default is to autodetect free port starting at 1099; change it to meet your deployment requirements!
synapse.jmx.jndiPort=1199
6、命令行下啟動(dòng)服務(wù)
>d: 回車 --切換到d盤
d...>dir --顯示所有文件
d...>cd 按tab鍵選擇所要文件 回車 --切換到所選文件夾下
d...>cd 按tab鍵選擇所要文件 回車 --進(jìn)入所選文件夾下
d...>cd bin
d...>