java中間件

java中間件

首先附上一個非常不錯的java中間件的開發(fā)者的采訪:

CSDN專訪

技術團隊要在專業(yè)上PK,但不搞哲學討論。

中間件的定義:
中間件(middleware)是基礎軟件的一大類,屬于可復用軟件的范疇。顧名思義,中間件處于操作系統(tǒng)軟件與用戶的應用軟件的中間。

中間件的主要分為6類:

  • 終端仿真/屏幕轉換中間件
  • 數據訪問中間件
  • 遠程過程調用中間件
  • 消息中間件
  • 交易中間件
  • 對象中間件。

某些中間件需要屏蔽分布環(huán)境中異構的操作系統(tǒng)和網絡協(xié)議,它必須能夠提供分布環(huán)境下的通訊服務,我們將這種通訊服務稱之為平臺?;谀康暮蛯崿F機制的不同,我們將平臺分為以下主要幾類:

  • 遠程過程調用中間件(Remote Procedure Call)
  • 面向消息的中間件(MesSAge-Oriented Middleware)
  • 對象請求代理中間件(object RequeST Brokers)

通常一般口中所說的中間件的主要目標是指:把內部系統(tǒng)從單機的,煙囪性的系統(tǒng)轉變?yōu)檎嬲姆栈腿ブ行幕軜嫷姆植际较到y(tǒng)。

平臺相關中間件

遠程過程調用

遠程過程調用是一種廣泛使用的分布式應用程序處理方法。一個應用程序使用RPC來“遠程”執(zhí)行一個位于不同地址空間里的過程,并且從效果上看和執(zhí)行本地調用相同。事實上,一個RPC應用分為兩個部分:server和Client。server提供一個或多個遠程過程;client向server發(fā)出遠程調用。server和client可以位于同一臺計算機,也可以位于不同的計算機,甚至運行在不同的操作系統(tǒng)之上。它們通過網絡進行通訊。相應的stub和運行支持提供數據轉換和通訊服務,從而屏蔽不同的操作系統(tǒng)和網絡協(xié)議。在這里RPC通訊是同步的。采用線程可以進行異步調用。

在RPC模型中,client和server只要具備了相應的RPC接口,并且具有RPC運行支持,就可以完成相應的互操作,而不必限制于特定的server。因此,RPC為client/server分布式計算提供了有力的支持。同時,遠程過程調用RPC所提供的是基于過程的服務訪問,client與server進行直接連接,沒有中間機構來處理請求,因此也具有一定的局限性。比如,RPC通常需要一些網絡細節(jié)以定位server;在client發(fā)出請求的同時,要求server必須是活動的等等。

面向消息的中間件

MOM指的是利用高效可靠的消息傳遞機制進行平臺無關的數據交流,并基于數據通信來進行分布式系統(tǒng)的集成。通過提供消息傳遞和消息排隊模型,它可在分布環(huán)境下擴展進程間的通信,并支持多通訊協(xié)議、語言、應用程序、硬件和軟件平臺。流行的MOM中間件產品有IBM的MQSeries、BEA的MessageQ等。消息傳遞和排隊技術有以下三個主要特點:

  1. 通訊程序可在不同的時間運行
    程序不在網絡上直接相互通話,而是間接地將消息放入消息隊列,因為程序間沒有直接的聯系。所以它們不必同時運行。消息放入適當的隊列時,目標程序甚至根本不需要正在運行;即使目標程序在運行,也不意味著要立即處理該消息。
  2. 對應用程序的結構沒有約束
    在復雜的應用場合中,通訊程序之間不僅可以是一對一的關系,還可以進行一對多和多對一方式,甚至是上述多種方式的組合。多種通訊方式的構造并沒有增加應用程序的復雜性。
  3. 程序與網絡復雜性相隔離
    程序將消息放入消息隊列或從消息隊列中取出消息來進行通訊,與此關聯的全部活動,比如維護消息隊列、維護程序和隊列之間的關系、處理網絡的重新啟動和在網絡中移動消息等是MOM的任務,程序不直接與其它程序通話,并且它們不涉及網絡通訊的復雜性。

對象請求代理

隨著對象技術與分布式計算技術的發(fā)展,兩者相互結合形成了分布對象計算,并發(fā)展為當今軟件技術的主流方向。1990年底,對象管理集團OMG首次推出對象管理結構OMA(ObjECt Management Architecture),對象請求代理(Object Request Broker)是這個模型的核心組件。它的作用在于提供一個通信框架,透明地在異構的分布計算環(huán)境中傳遞對象請求。CORBA規(guī)范包括了ORB的所有標準接口。1991年推出的CORBA 1.1 定義了接口描述語言OMG IDL和支持Client/Server對象在具體的ORB上進行互操作的API。CORBA 2.0 規(guī)范描述的是不同廠商提供的ORB之間的互操作。

對象請求代理(ORB)是對象總線,它在CORBA規(guī)范中處于核心地位,定義異構環(huán)境下對象透明地發(fā)送請求和接收響應的基本機制,是建立對象之間client/server關系的中間件。ORB使得對象可以透明地向其他對象發(fā)出請求或接受其他對象的響應,這些對象可以位于本地也可以位于遠程機器。ORB攔截請求調用,并負責找到可以實現請求的對象、傳送參數、調用相應的方法、返回結果等。client對象并不知道同server對象通訊、激活或存儲server對象的機制,也不必知道server對象位于何處、它是用何種語言實現的、使用什么操作系統(tǒng)或其他不屬于對象接口的系統(tǒng)成分。

值得指出的是client和server角色只是用來協(xié)調對象之間的相互作用,根據相應的場合,ORB上的對象可以是client,也可以是server,甚至兼有兩者。當對象發(fā)出一個請求時,它是處于client角色;當它在接收請求時,它就處于server角色。大部分的對象都是既扮演client角色又扮演server角色。另外由于ORB負責對象請求的傳送和server的管理,client和server之間并不直接連接,因此,與RPC所支持的單純的Client/Server結構相比,ORB可以支持更加復雜的結構。

非平臺相關中間件

事務中間件

事務中間件主要用來處理事務訪問監(jiān)控

事務處理監(jiān)控(Transaction processing monitors)最早出現在大型機上,為其提供支持大規(guī)模事務處理的可靠運行環(huán)境。隨著分布計算技術的發(fā)展,分布應用系統(tǒng)對大規(guī)模的事務處理提出了需求,比如商業(yè)活動中大量的關鍵事務處理。事務處理監(jiān)控界于client和server之間,進行事務管理與協(xié)調、負載平衡、失敗恢復等,以提高系統(tǒng)的整體性能。它可以被看作是事務處理應用程序的“操作系統(tǒng)”??傮w上來說,事務處理監(jiān)控有以下功能:

  1. 進程管理,包括啟動server進程、為其分配任務、監(jiān)控其執(zhí)行并對負載進行平衡。
  2. 事務管理,即保證在其監(jiān)控下的事務處理的原子性、一致性、獨立性和持久性。
  3. 通訊管理,為client和server之間提供了多種通訊機制,包括請求響應、會話、排隊、訂閱發(fā)布和廣播等。

事務處理監(jiān)控能夠為大量的client提供服務,比如飛機定票系統(tǒng)。如果server為每一個client都分配其所需要的資源的話,那server將不堪重負(如圖2所示)。但實際上,在同一時刻并不是所有的client都需要請求服務,而一旦某個client請求了服務,它希望得到快速的響應。事務處理監(jiān)控在操作系統(tǒng)之上提供一組服務,對client請求進行管理并為其分配相應的服務進程,使server在有限的系統(tǒng)資源下能夠高效地為大規(guī)模的客戶提供服務。

數據訪問中間件

數據訪問中間件是在分布式系統(tǒng)中建立數據應用資源互操作的模式,實現異構環(huán)境下的數據庫連接或文件系統(tǒng)連接的中間件,該類中間件在所有中間件中是應用最廣泛、技術最成熟的一種。

在上面這個定義下,數據訪問中間件不是指jdbc和數據庫連接這些。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容