一、中間件的概念
中間件是介於應用系統和系統軟件之間的一類軟件,它使用系統軟件所提供的基礎服務(功能),銜接網絡上應用系統的各個部分或不同的應用,能夠達到資源共享、功能共享的目的。目前,它並沒有很嚴格的定義,但是普遍接受IDC的定義:中間件是一種獨立的系統軟件服務程序,分布式應用軟件借助這種軟件在不同的技術之間共享資源,中間件位於客戶機服務器的操作系統之上,管理計算資源和網絡通信。從這個意義上可以用一個等式來表示中間件:中間件=平台+通信,這也就限定了只有用於分布式系統中才能叫中間件,同時也把它與支撐軟件和實用軟件區分開來。
個人理解:
用來支持跨系統協作,不同技術間共享資源的,且自身是獨立的
基本上都可以看做是中間件 消息中間件 遠程調用中間件 服務器中間件等等
二、中間件的分類
(1)事務式中間件
事務式中間件又稱事務處理管理程序,是當前用的最廣泛的中間件之一,其主要功能是提供聯機事務處理所需要的通信、並發訪問控制、事務控制、資源管理、安全管理、負載平衡、故障恢復和其他必要的服務。事務式中間件支持大量客戶進程的並發訪問,具有極強的擴展性。由於事務式中間件具有可靠性高、極強的擴展性等特點,主要應用於電信、金融、飛機訂票系統、證券等擁有大量客戶的領域。
(2)遠程過程調用中間件
過程中間件一般從邏輯上分為兩部分:客戶和服務器。客戶和服務器是一個邏輯概念,既可以運行在同一計算機上,也可以運行在不同的計算機上,甚至客戶和服務器底層的操作系統也可以不同。客戶機和服務器之間的通信可以使用同步通信,也可以采用線程式異步調用。所以過程式中間件有較好的異構支持能力,簡單易用,但由於客戶和服務器之間采用訪問連接,所以在易剪裁性和容錯方面有一定的局限性。
example:
目前比較火的阿里rpc框架,RPC我理解的大體就是有個中間件去協調調度,有什么方法 你需要什么方法 在中間件上注冊和調用。
Dubbo是用zookeeper做調度。
(3)面向消息的中間件
面向消息的中間件,簡稱為消息中間件,是一類以消息為載體進行通信的中間件,利用高效可靠的消息機制來實現不同應用間大量的數據交換。按其通信模型的不同,消息中間件的通信模型有兩類:消息隊列和消息傳遞。通過這兩種消息模型,不同應用之間的通信和網絡的復雜性脫離,擺脫對不同通信協議的依賴,可以在復雜的網絡環境中高可靠、高效率的實現安全的異步通信。消息中間件的非直接連接,支持多種通信規程,達到多個系統之間的數據的共享和同步。面向消息中間件是一類常用的中間件。
(4)面向對象中間件
面向對象中間件又稱分布對象中間件,是
分布式計算技術和
面向對象技術發展的結合,簡稱對象中間件。分布對象模型是
面向對象模型在分布異構環境下的自然拓廣。面向對象中間件給應用層提供各種不同形式的通信服務,通過這些服務,上層應用對事務處理、分布式數據訪問,對象管理等處理更簡單易行。OMG組織是分布對象技術標准化方面的國際組織,它制定出了CORBA等標准。
(5)Web應用服務器
Web應用服務器是Web服務器和應用服務器相結合的產物。應用服務器中間件可以說是軟件的基礎設施,利用構件化技術將應用軟件整合到一個確定的協同工作環境中,並提供多種通信機制,事務處理能力,及應用的開發管理功能。由於直接支持三層或多層應用系統的開發,應用服務器受到了廣大用戶的歡迎,是目前中間件市場上競爭的熱點,
J2EE架構是目前應用服務器方面的主流標准。
(6)其他
新的應用需求、新的技術創新、新的應用領域促成了新的中間件產品的出現。如,ASAAC在研究標准航空電子體系結構時提出的通用系統管理GSM,屬於典型的嵌入式航電系統的中間件,互聯網雲技術的發展
雲計算中間件、物流網的中間件等隨着應用市場的需求應運而生。
example:
windows平台的ODBC和JAVA平台的JDBC屬於 數據庫訪問中間件