SOA在Java領(lǐng)域有兩套標(biāo)準(zhǔn):一個是SUN推出的JBI(沒有得到BEA和IBM的承認(rèn)),另外一個是:IBM和BEA等公司推出的SCA和SDO標(biāo)準(zhǔn)。
JBI之關(guān)注Java組件只處理Java組件的集成。
SCA實現(xiàn)了業(yè)務(wù)組件和傳輸協(xié)議的分離,可以處理各種平臺組件的集成。
SDO可以的自由讀取各種不同數(shù)據(jù)源的數(shù)據(jù)。
另外,BPEL本質(zhì)上是一種集成WebService服務(wù)的語言,也可以算作為SOA的一部分。
在此,詳細(xì)介紹JBI的架構(gòu)思想。
一、認(rèn)識JBI
JBI(Java Business Integration)中文翻譯為“Java業(yè)務(wù)集成”,是SUN發(fā)布的一個用于Java組件進(jìn)行集成的一個標(biāo)準(zhǔn)。
JBI的本質(zhì)是一種服務(wù)總線思想。
JBI的目標(biāo)是創(chuàng)建一個用于各種Java組件服務(wù)集成的運行環(huán)境。
二、認(rèn)識JBI容器
JBI是一種思想,JBI思想的實現(xiàn)就是JBI容器。
JBI容器是為彌補(bǔ)現(xiàn)有J2EE容器的不足而出現(xiàn)的。
現(xiàn)有應(yīng)用服務(wù)器的容器類型:Servlet容器、EJB容器、JMS容器。
現(xiàn)有應(yīng)用服務(wù)器的容器不足:
a)、每種容器都有自己特殊的傳輸協(xié)議,相互之間不能直接通信。比如:Servlet容器只能接受HTTP/SOAP的傳輸協(xié)議,EJB容器只能處理RMI的傳輸協(xié)議,JMS只能處理JMS的傳輸協(xié)議。
b)、是一個純粹的服務(wù)提供者,不是一個服務(wù)的集成者。也就是說,容器之間不能繼承服務(wù)。
c)、容器間服務(wù)的調(diào)用需要編寫客戶端代碼。
JBI容器以一種可插拔的方式集成不同類型的服務(wù),而不是通過編寫客戶端代碼來實現(xiàn)服務(wù)的集成。
三、JBI容器的組成與架構(gòu)
1、JBI容器的架構(gòu)圖
*JBI容器的架構(gòu)圖
2、JBI容器的組成的三大部分:
a)、綁定組件(BC:Binding Components):專門用來接收各種不同傳輸協(xié)議的請求,原理是JBI實現(xiàn)了各種不同協(xié)議的綁定組件,綁定組件可以細(xì)分為接收BC和發(fā)送BC。接收BC主要負(fù)責(zé)發(fā)送請求和接收響應(yīng),發(fā)送BC主要用來調(diào)用外部的服務(wù)。
b)、服務(wù)引擎(SE:Service Engines):這類組件只處理JBI容器內(nèi)部的消息。JBI容器通常在接收到消息后,需要對請求的消息做一些“處理”,然后再調(diào)用外部服務(wù)的提供者。根據(jù)功能的不同,將SE組件分為以下三種類型:
Transform SE:專門處理各種傳輸協(xié)議和格式變化。
BPEL SE:專門負(fù)責(zé)將Web Service進(jìn)行流程編排。
Rules SE:專門負(fù)責(zé)通過規(guī)則將各種服務(wù)進(jìn)行集成。
c)、JBI的規(guī)格化消息路由器(Normalized Message Router):是JBI內(nèi)部消息系統(tǒng)的核心,所有的組建之間不能交換消息,只能通過NMR來傳遞。
在JBI容器內(nèi)部,只有一種標(biāo)準(zhǔn)的規(guī)格化消息(Normalized Message)。任務(wù)服務(wù)組件進(jìn)入JBI環(huán)境之前,通過BC轉(zhuǎn)換為規(guī)格消息NM。在JBI環(huán)境里,所有的服務(wù)都不能相互調(diào)用,不論是請求還是回答消息,都要先轉(zhuǎn)給NMR,再由NMR分發(fā)。JBI運行環(huán)境里面的組件(SE、BC)和NMR都是通過NM來進(jìn)行信息交換的。
四、JBI容器工作的概念圖
*JBI容器工作的概念圖
如上圖:
外部請求者將一個HTTP請求發(fā)送給JBI容器,容器的HTTP BC接收請求,并將請求的消息格式化為NM發(fā)送給消息接收轉(zhuǎn)換引擎,然后再將NM發(fā)送給NMR,由NMR再將NM發(fā)送給SOAP BC,SOAP BC將NM轉(zhuǎn)換為SOAP消息發(fā)送到外部的WS組件。執(zhí)行后,消息按照原路返回。
個人觀點:
JBI是SUN的標(biāo)準(zhǔn),是SUN對J2EE容器的一種改進(jìn),SUN并不想兼容其他語言的組件。
隨著SUN公司被收購,SUN之外的幾個巨頭都力推SCA標(biāo)準(zhǔn),SUN的JBI標(biāo)準(zhǔn)將名存實亡,難以得到重用。
理解容器的工作原理,可以更清楚的認(rèn)識JBI集成服務(wù)的原理和過程。如果只為學(xué)習(xí)開發(fā),容器標(biāo)準(zhǔn)了解下即可,應(yīng)多研究一下JBI標(biāo)準(zhǔn)API接口和規(guī)范。
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:SOA標(biāo)準(zhǔn)之JBI架構(gòu)思想
本文網(wǎng)址:http://www.ezxoed.cn/html/support/1112155353.html