一.SOA
SOA是一種新架構(gòu)程序的方法通過(guò)服務(wù)組合,而不是模塊方法組合代碼.
SOA軟件系統(tǒng)架構(gòu)原理是基於自身描述理念:一個(gè)服務(wù)是一個(gè)Function(usually a business function)服務(wù)提供者和服務(wù)消費(fèi)者之間通過(guò)消息交換來(lái)完成.
SOA優(yōu)點(diǎn):
1)SOA主要的優(yōu)點(diǎn)是:松耦合(decoupling)
?? 在服務(wù)提供者和服務(wù)消費(fèi)之間提供接口,這樣可以更改服務(wù)的具體實(shí)現(xiàn)而不影響服務(wù)消費(fèi)。
2)SOA的另外一個(gè)好處是可重用的(reuse)服務(wù)可以在不同的應(yīng)用程序中重用。
我們可以想象應(yīng)用程序除了包括使用服務(wù)、服務(wù)提供之外沒(méi)有其他的東西了。
SOA應(yīng)用:
一個(gè)應(yīng)用程序符合SOA包括兩個(gè)不同的開發(fā)行為:
1)Service Creation:集成現(xiàn)成的方法使它們成為服務(wù)。
2)Service Composition:使用現(xiàn)成的服務(wù)創(chuàng)建一個(gè)應(yīng)用程序和更大的服務(wù).
二.JBI(Java Business Integration)
JBI是SOA的解決和集成的基礎(chǔ)
JBI提供了組件之間交互的消息基礎(chǔ):
?1)NormalizedMessage(NM) 所有基于消息的數(shù)據(jù)片段——SOAP片段、MOM消息、HTTP數(shù)據(jù)或其它信息——被聚合、集中、
?應(yīng)用到業(yè)務(wù)邏輯、傳輸,如果有必要?jiǎng)t轉(zhuǎn)換成其他格式隨後被分派到最終目的地
?2)JBI machine (SE)
?? 組件提供或者消費(fèi)服務(wù)是基於本地的
?3)JBI binding (BC)
?? 組件 提供或者消費(fèi)服務(wù)是通過(guò)一些通信協(xié)議或者是其他遠(yuǎn)程技術(shù)
?組件之間的交互通過(guò)消息交換,消息是服務(wù)提供者發(fā)佈的WSDL?
服務(wù)元件(Service Unit)
?一個(gè)服務(wù)元件看作是一個(gè)黑盒子,它提供了一個(gè)靜態(tài)的服務(wù),
?服務(wù)元件中包含有,提供的服務(wù)和服務(wù)消費(fèi)者。它們都從屬服務(wù)元件,一個(gè)服務(wù)元件可以有0個(gè)或者多個(gè)服務(wù)
?服務(wù)集合(service Assembly)
?組合服務(wù)元件是大的應(yīng)用程序或者新的服務(wù)形式出現(xiàn) A Service Assembly:一組JBI 服務(wù)元件連同描述它們的關(guān)係和目標(biāo)組件
總結(jié):
JBI是SOA結(jié)構(gòu)的基礎(chǔ),它把原來(lái)的業(yè)務(wù)函數(shù)集成為一個(gè)服務(wù),使服務(wù)提供者和服務(wù)消費(fèi)者之間的交互是松耦合的,通過(guò)service assembly(服務(wù)集合)
可以組合不同的程序,架構(gòu)圖:

servicemix