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

servicemix