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