一、什么是中間件
中間件是一種獨立的系統軟件或服務程序,分布式應用軟件借助這種軟件在不同的技術之間共享資源。中間件位於客戶機/ 服務器的操作系統之上,
管理計算機資源和網絡通訊。是連接兩個獨立應用程序或獨立系統的軟件。相連接的系統,即使它們具有不同的接口,但通過中間件相互之間仍能交換信息。
執行中間件的一個關鍵途徑是信息傳遞。通過中間件,應用程序可以工作於多平台或 OS 環境。 中間件是介於操作系統和應用軟件之間,為應用軟件提供服務功能的軟件,有消息中間件,交易中間件,應用服務器......,由於介於兩種軟件之間,
所以,稱中間件
二、為什么要使用中間件?
具體地說,中間件屏蔽了底層
操作系統的復雜性,使程序開發人員面對一個簡單而統一的
開發環境,減少
程序設計的復雜性,將注意力集中在自己的業務上,不必再為程序在不同系統
軟件上的移植而重復工作,從而大大減少了技術上的負擔。中間件帶給應用系統的,不只是開發的簡便、開發周期的縮短,也減少了系統的維護、運行和管理的工作量,還減少了計算機總體費用的投入。
三、主要中間件的分類
1.tomcat(apache),weblogic(Oracle),IBM websphare等應用服務器是典型的應用服務器中間件,tomcat做為容器可以運行在不同的硬件和操作系統上。
2.消息中間件適用於需要可靠的數據傳送的分布式環境。采用消息中間件機制的系統中,不同的對象之間通過傳遞消息來激活對方的事件,完成相應的操作。
發送者將消息發送給消息服務器,消息服務器將消息存放在若干隊列中,在合適的時候再將消息轉發給接收者。
消息中間件能在不同平台之間通信,它常被用來屏蔽掉各種平台及協議之間的特性,實現應用程序之間的協同,其優點在於能夠在客戶和服務器之間提供同步和異步的連接,並且在任何時刻都可以將消息進行傳送或者存儲轉發,這也是它比遠程過程調用更進一步的原因。
Activemq是消息中間件的實現。
3.遠程過程調用中間件,比如HESSION. HESSION的序列化可以解耦不同的開發語言,比如客戶端使用PHP,服務端使用JAVA,HESSION可以保證二者之間的通信。做到與語言無關。
4.hibernate這樣的ormapping工具也是中間件。它是應用程序持久化數據的中間件。它對DB透明
5.Spring可以看做是一個中間件的平台。框架和中間件的一個共同特點就是讓用戶盡量關注業務邏輯。有些時候二者是一致的。
2.消息中間件適用於需要可靠的數據傳送的分布式環境。采用消息中間件機制的系統中,不同的對象之間通過傳遞消息來激活對方的事件,完成相應的操作。
發送者將消息發送給消息服務器,消息服務器將消息存放在若干隊列中,在合適的時候再將消息轉發給接收者。
消息中間件能在不同平台之間通信,它常被用來屏蔽掉各種平台及協議之間的特性,實現應用程序之間的協同,其優點在於能夠在客戶和服務器之間提供同步和異步的連接,並且在任何時刻都可以將消息進行傳送或者存儲轉發,這也是它比遠程過程調用更進一步的原因。
Activemq是消息中間件的實現。
3.遠程過程調用中間件,比如HESSION. HESSION的序列化可以解耦不同的開發語言,比如客戶端使用PHP,服務端使用JAVA,HESSION可以保證二者之間的通信。做到與語言無關。
4.hibernate這樣的ormapping工具也是中間件。它是應用程序持久化數據的中間件。它對DB透明
5.Spring可以看做是一個中間件的平台。框架和中間件的一個共同特點就是讓用戶盡量關注業務邏輯。有些時候二者是一致的。
6.hadoop是分布式存儲和計算的框架,由於屏蔽了底層的分布式計算或存儲的細節,有人也稱為中間件。
7.nosql角色象是組件或規范,有點類似JMS,JNDI這樣的規范,相應的實現比如memcached,redis。如果存在一個跨越多個nosql存儲的實現,可以稱為nosql的中間件。
