JBI与SCA的区别
http://jnn.blogbus.com/logs/2010052.html
版權(quán)聲明:轉(zhuǎn)載時(shí)請(qǐng)以超鏈接形式標(biāo)明文章原始出處和作者信息及本聲明
http://jnn.blogbus.com/logs/2010052.html
最近我在做有關(guān)ESB的開(kāi)發(fā)工作,發(fā)現(xiàn)我們的產(chǎn)品(開(kāi)源的Celtix? http://celtix.objectweb.org) 要支持JBI和SCA兩個(gè)標(biāo)準(zhǔn)。這讓我困惑了好久,JBI和SCA有什么區(qū)別呢?
前幾天好好在網(wǎng)上收羅了一番,現(xiàn)在把收獲到的東西和大家分享一下:
JBI definition http://www.theserverside.com/news/thread.tss?thread_id=35053
SCA 與JBI的區(qū)別 http://azur.typepad.com/bpel/2005/12/sca_jbi_and_mor.html
上面的鏈接有詳細(xì)的討論,我簡(jiǎn)單整理了一下。
JBI 的由來(lái)
Java One 2005 had a very heavy emphasis on JSR-208, Java Business
Integration. However, he says, "there seemed to be some folks with
confused looks on their faces in some JBI talks." As a response, he's
written a blog entry on what JBI actually is
<http://radio.weblogs.com/0112098/2005/07/07.html#a530>.
JBI是提供了一些簡(jiǎn)單的API定義, 這些定義包括 Normalized
Message Service , 在一個(gè)Router組件,以及一個(gè)管理模型用來(lái)管理服務(wù)
的部署集成,例如? routing engines, BPEL engines, rule systems, transformation engines
JBI提供了一個(gè)邏輯的XML消息網(wǎng)絡(luò), 這一網(wǎng)絡(luò)能夠很容易的映射到
HTTP, email 和 JMS/MOM ,并很方便地適應(yīng)遺留系統(tǒng),二進(jìn)制地傳輸,
和RPC系統(tǒng)(EJB和CORBA)。 JBI可以看做是對(duì)JMS的更高層次的邏輯
抽象,并提供了不同的消息交換方式( 單步, 請(qǐng)求應(yīng)答等)
什么是SCA ,它試圖解決什么樣的問(wèn)題?
WSDL 在增強(qiáng)應(yīng)用之間的可連接性以及互操作性方面邁出了一大步。
然而,WSDL只關(guān)注了服務(wù)接口,它并不提供描述一個(gè)服務(wù)所依賴的其它服務(wù),
以及這個(gè)服務(wù)所需要使用的配置策略和服務(wù)之間的依賴關(guān)系。
單獨(dú)通過(guò)WSDL 很難實(shí)現(xiàn)服務(wù)之間的組合調(diào)用。
SCA比WSDL走的更遠(yuǎn)的方面是定義了一個(gè)服務(wù)組件模型以及一個(gè)服務(wù)組裝模型。服務(wù)模型提供了比WSDL更多的功能,它允許服務(wù)開(kāi)發(fā)者不單定義服務(wù)的接口而且還可以定義 這個(gè)服務(wù)和其他服務(wù)的依賴關(guān)系,以及這些交互(事務(wù),安全,以及可靠 傳輸)之間的策略 還有服務(wù)所可能提供的配置功能。
一個(gè)SCA模型對(duì)等于一個(gè)SOA項(xiàng)目,模型允許開(kāi)發(fā)者組裝一組服務(wù)組件,解決引用依賴和使用策略。這是一個(gè)很大的進(jìn)步,因?yàn)楫?dāng)前的SOA平臺(tái)需要開(kāi)發(fā)者自己獲取那些私有的服務(wù)部署引用,甚至有時(shí)要在他們的服務(wù)實(shí)現(xiàn)中寫(xiě)hard code.
SCA與JBI的區(qū)別
SCA的美麗之處在用它關(guān)注的重點(diǎn)只是SOA開(kāi)發(fā)這 所看到和接觸到的。 SCA并沒(méi)有關(guān)注用來(lái)執(zhí)行SCA模塊的runtime是如何構(gòu)架的。 這個(gè)runtime可以實(shí)現(xiàn)為一個(gè)將所有的SCA服務(wù)組件編譯成為Java classes的丑陋的單一服務(wù),或者是一組模塊化的引擎(每個(gè)組件一個(gè)的那種),這些引擎可以通過(guò) 一個(gè)企業(yè)服務(wù)總線來(lái)進(jìn)行通訊。
JBI從另一個(gè)方面來(lái)說(shuō)就是一組關(guān)注創(chuàng)建一個(gè)開(kāi)發(fā)的,可擴(kuò)這的以及標(biāo)準(zhǔn)組件的企業(yè)服務(wù)總線。 這樣它的內(nèi)核是和SCA有一些重合的地方。同時(shí)兩者之間也存在互補(bǔ)的機(jī)制。
說(shuō)它們互補(bǔ),為什么不把他們綁定在一起呢。 這里有兩方面的原因。
第一個(gè)原因 是JBI關(guān)注的是如果將一組引擎組裝并運(yùn)行 于一個(gè)JVM中。 相反SCA在另一方面并不將一個(gè)模塊約束單個(gè)JVM中。 一個(gè)SCA模塊可以執(zhí)行在一個(gè)JVM中,同時(shí)它也可以很方便的將這些引擎部署在不同的進(jìn)程甚至是不同的節(jié)點(diǎn)上。
第二個(gè)原因 是 SCA不但支持Java而且還支持C,在今后也許還會(huì)支持C#,php。 而JBI只是SCA的一個(gè)實(shí)現(xiàn)方式,而不是唯一的選擇。
?
總結(jié)
以上是生活随笔為你收集整理的JBI与SCA的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SCA (Service Compone
- 下一篇: ServiceMix中文教程