1,Apache Synapse 是一個簡單、輕量級的高性能的ESB(企業(yè)服務(wù)總線)
http://space.itpub.net/14780828/viewspace-374514
2,總線的定義(維基百科)
總線又稱計算機(jī)總線或系統(tǒng)總線(BUS),臺灣譯作「匯流排」,是指計算機(jī)組件間規(guī)范化的交換數(shù)據(jù)(Data)的方式,即以一種通用的方式為各組件提供數(shù)據(jù)傳送和控制邏輯。從另一個角度來看,如果說主板(Mother Board)是一座城市,那么總線就像是城市里的公共汽車(bus),能按照固定行車路線,傳輸來回不停運作的比特(bit)。這些線路在同一時間內(nèi)都僅能負(fù)責(zé)傳輸一個比特。因此,必須同時采用多條線路才能傳送更多資料,而總線可同時傳輸?shù)馁Y料數(shù)就稱為寬度(width),以位元為單位,總線寬度愈大,傳輸效能就愈佳。總線的帶寬(Bandwidth),也就是單位時間內(nèi)可以傳輸?shù)目傎Y料數(shù)(單位是Bytes/sec):總線帶寬 = 頻率 x 寬度。
3,企業(yè)服務(wù)總線(維基百科)
企業(yè)計算領(lǐng)域,企業(yè)服務(wù)總線是指由中間件基礎(chǔ)設(shè)施產(chǎn)品技術(shù)實現(xiàn)的, 基于Web服務(wù)標(biāo)準(zhǔn), 通過事件驅(qū)動和基于XML消息引擎,為更復(fù)雜的面向服務(wù)的架構(gòu)提供的軟件架構(gòu)的構(gòu)造物。企業(yè)服務(wù)總線通常在企業(yè)消息系統(tǒng)上提供一個抽象層,使得集成架構(gòu)師能夠不用編碼而是利用消息的價值完成集成工作。
企業(yè)服務(wù)總線提供
可靠消息傳輸、服務(wù)接入、協(xié)議轉(zhuǎn)換、數(shù)據(jù)格式轉(zhuǎn)換、基于內(nèi)容的路由等功能,
屏蔽了服務(wù)的物理位置,協(xié)議和數(shù)據(jù)格式。
總線一詞是對在一臺電腦的不同設(shè)備間運輸比特的物理總線的引申。ESB在更高抽象層次上提供類似的功能。
在一個使用ESB的企業(yè)架構(gòu)(enterprise architecture)中,應(yīng)用將通過總線交互,而總線扮演著應(yīng)用間的信息調(diào)度(message broker)的角色。這種方法的主要優(yōu)點是它減少了應(yīng)用間交互所需的點對點連接的數(shù)量。這樣,另一方面使得對主要軟件變化帶來的影響進(jìn)行分析更簡單更直觀了。通過減少一個應(yīng)用系統(tǒng)的連接點數(shù)量,對這個系統(tǒng)中的一個組件的改造過程變得簡單了。
4,ESB平臺實現(xiàn)協(xié)議轉(zhuǎn)換 (WebService,Http,JMS...),消息轉(zhuǎn)換 (轉(zhuǎn)換、充實、過濾),消息路由 (同步/異步、發(fā)布/訂閱、基于內(nèi)容路由、分支與聚合...)
ESB在一個SOA系統(tǒng)中,必須要存在么?非常有必要,沒有它不能算真正實現(xiàn)了SOA,異構(gòu)系統(tǒng)的構(gòu)件裝配需要實現(xiàn)真正的復(fù)用和解耦
。WebService只是解決了異構(gòu)系統(tǒng)的調(diào)用,而SOA要解決的是系統(tǒng)(內(nèi))間的構(gòu)件裝配、依賴和引用
但ESB的實現(xiàn)是否已有一個同一的標(biāo)準(zhǔn)呢?
?? 我感覺ESB要看系統(tǒng)具體情況而言,不是沒ESB就不SOA了,
比如我用SCA+BPEL,一樣可以SOA系統(tǒng),當(dāng)然前提是偶的系統(tǒng)接口都定義好了,不需要要靠IBM,BEA那些ESB產(chǎn)品去忙活了,這情況也是有的哦
以前聽ESB基本上都是IBM在忽悠,聽多了老感覺ESB集中式的部署會引入單點故障,同時性能也會受影響。
《Enterprise Service Bus》O'Reilly 翻過一點,感覺都是在講MOM的東東。
個人覺得ESB承載的東西太多了,感覺還是從Enterprise Integration Pattern中學(xué)起,搞點務(wù)實的先。
我簡單的對比過mule\servicemix\openesb
mule,沒有IDE支持,不爽
servicemix,太麻煩,寫一個BPEL要好幾步,而且它本身的例子都報錯.不爽
openesb,利用netbean可以設(shè)計bpel,而且利用glassfish可以直接發(fā)布BPEL,還可以,又是開源的,支持JBI,SUN的開源產(chǎn)品越來越豐富了,大家可以試試.
在很多應(yīng)用方面,我們都是利用ESB 來實現(xiàn)大數(shù)據(jù)量的傳輸?shù)摹?
在性能和可靠性方面要強(qiáng)于很多其他解決方案!
? http://www.javaeye.com/topic/130337
感覺camel優(yōu)勢是消息路由、中介等工作,缺乏組件容器的能力,還是需要和別的組件容器整合使用 。Camel的component 沒有 life cycle的管理, 不過你可以在ServiceMix中輕松使用camel 。還有就是最近在ServiceMix dev中在討論如何復(fù)用Camel component的問題, 相信你說的問題在不久的將來會有比較好解決方案的。
http://www.javaeye.com/post/860098?page=7
5,http://blog.csdn.net/danny_xcz/archive/2007/05/08/1600013.aspx#1021497
一提到總線,一般學(xué)計算機(jī)專業(yè)的往往會聯(lián)想到兩樣?xùn)|西,一是網(wǎng)絡(luò)拓?fù)渖系目偩€結(jié)構(gòu),二是電腦主板上的總線。
和他們不同的是,企業(yè)服務(wù)總線是一種軟件總線,但是他們都可以進(jìn)行一定的類比。類比是快速學(xué)習(xí)最好的方法之一。
網(wǎng)絡(luò)拓?fù)涞目偩€由三個東西構(gòu)成:網(wǎng)絡(luò)設(shè)備(PC,服務(wù)器,交換機(jī),路由器),端口(網(wǎng)卡-1個端口,路由器-n個端口),連接各個設(shè)備的網(wǎng)線,數(shù)據(jù)必須通過網(wǎng)卡端口傳輸?shù)皆O(shè)備。
電腦主板上的總線也由三個東西構(gòu)成。處理器(CPU,GPU),針腳(信號輸入,輸出的針腳),連接各個處理器的線路,同樣在每一個時鐘周期里,信號通過針腳進(jìn)入處理器,再從別的針腳輸出。
通過類比,可想而知,ESB軟件上的總線必然也由吉祥三寶構(gòu)成,在Mule里面,他們分別是UMO,End Point,數(shù)據(jù)的傳輸路線(當(dāng)然這是無形的)。
UMO可以比喻成一個CPU,EndPoint就是這個CPU的針腳,數(shù)據(jù)從EndPoint(inbound)進(jìn)入UMO,經(jīng)過UMO的處理,從另一個針腳發(fā)送出(outbound),這樣就完成了企業(yè)服務(wù)總線的一次最基本的操作。
11,SLA:服務(wù)等級協(xié)議(Service-Level Agreement)