中間件的概念與演變
發表于:2008-07-18來源:作者:點擊數:
標簽:中間件概念
【導讀】國內的 中間件 廠商對中間件的定義認為:中間件首先要為上層的應用層服務,這是一個基本條件;此外,又必須連接到操作系統的層面,并卻保持運行工作狀態,具備了這樣兩個特征才能稱為中間件。 從Tuxedo、應用 服務器 ,到EAI、構件、 SOA ,究竟什么
【導讀】國內的
中間件廠商對中間件的定義認為:中間件首先要為上層的應用層服務,這是一個基本條件;此外,又必須連接到操作系統的層面,并卻保持運行工作狀態,具備了這樣兩個特征才能稱為中間件。
從Tuxedo、應用
服務器,到EAI、構件、
SOA,究竟什么才是中間件?
什么是中間件?在一個具體的應用項目之中,到底能不能夠不用中間件?這也是中間件廠商經常被問到問題之一。之所以有此一問,說明了用戶只是知道了中間件,聽說其很重要,但并真正不知道什么是中間件?
我們最早知道的中間件是一個稱為Tuxedo的東西,實質上它是一個交易中間件。1998年IDC公司對于中間件有一個定義,并根據用途將其劃分為6個類別。如今所保留下來的只有消息中間件和交易中間件,其他的已經被逐步融合到其他產品中了,被包裹進去了,在市場上已經沒有單獨的產品形態出現了。例如,當時有一個叫屏幕數據轉換的中間件,其主要是針對IBM大機終端而設計產品,用于將IBM大機終端的字符界面轉化為用戶所喜歡的圖形界面,類似的東西當時都稱為中間件。但隨著IBM大機環境越來越少,但是盛行一時的此類中間件如今已經很少再被單獨提及。
2000年前后,互聯網盛行起來,隨之產生了一個新的東西,就是應用服務器。實際上,交易中間件也屬于是應用服務器,為了區分,人們傳統的交易中間件稱為分布交易中間件,因它主要應用在分布式環境下,而將新的應用服務器,稱為J2EE中間件,到目前為止,這都是市場上非常熱門的產品。
EAI概念出來之后,市場上又推出了一些新的軟件產品,,例如工作流、Portal等,但從分類上不知道怎么歸類,向上不能夠劃歸應用,往下又不能歸入操作系統,于是就把它歸入了中間件,如此中間件的概念更加擴大了。目前,市場上對于中間件,各家的說法不一,客觀上也導致了理解上的復雜性。
如今,市場上又推出了很多新的概念,例如三層結構、構件、Web服務,其中風頭最勁的當屬SOA(面向服務的架構)。實際上,他們都不是一個產品,而是一種技術的實現方法,是
開發一個軟件的一種方法論。我們知道,最早軟件開發方法就是編程、寫代碼的,其缺點在于無法復用,為此提出了構件化的軟件開發方法,通過把編程中一些常用功能進行封裝,并規范統一接口,供其它程序調用,例如我們開發一個新軟件,可能要用到構件1、構件2、構件3,那么,我們只要對其進行本地組裝,就可以得到我們想要的應用軟件。在互聯網得到普及重視之后,軟件開發方法在構件化基礎上又有新發展,核心思想是軟件并不需要囊括構件,所需要的僅僅是構件的運行結果,例如編寫一個通信傳輸軟件,就可以到網上尋找構件,并提出服務請求,得到結果后返回,而不需要
下載構件并打包,這就是現在所說的SOA。想要現實SOA,就要規范構件接口,同時還要規范構件所提交的服務結果,如此,新的軟件開發的思想才能夠行的通。但SOA并不是一個產品,而是一種思想方法,而實現這種方法的基礎,如今看來只有中間件。
那么,到底什么才是中間件,什么不是中間件?從東方通科技的觀點看,中間件應該具備兩個關鍵特征:首先要為上層的應用層服務,這是一個基本條件;此外,又必須連接到操作系統的層面,并卻保持運行工作狀態,具備了這樣兩個特征才能稱為中間件?,F在很多人把開發工具也稱為中間件是不合適的,因為開發工具開發出來的軟件,并不依賴開發工具與底層操作系統連接。
原文轉自:http://www.anti-gravitydesign.com