在分布異構環境中,通常存在多種硬件系統平臺,而在這些硬件平臺上往往存在各種各樣的系統軟件以及多種風格各異的用戶界面,這些硬件系統平臺有可能采用不同的網絡協議和網絡體系結構連接。怎樣才能夠把這些系統集成起來并開發新的應用?這是中間件要解決的問題。
上個世紀的“新”品
如果要追根溯源的話,最早具有中間件技術思想及功能的軟件應該是IBM的CICS,但由于CICS不是分布式環境的產物,因此人們一般把Tuxedo作為第一個嚴格意義上的中間件產品。
Tuxedo是1984年在當時屬于AT&&T的貝爾實驗室開發完成的,但由于分布式處理當時并沒有在商業應用上獲得像今天一樣的成功,Tuxedo在很長一段時期里只是實驗室產品,后來被Novell收購,在經過Novell并不成功的商業推廣之后,1995年被現在的BEA公司收購。盡管中間件的概念很早就已經產生,但中間件技術的廣泛運用卻是在最近10年之中。近10年中,不少軟件廠商紛紛涉足中間件領域,Oracle、IBM、BEA可以說是這一行業的巨頭。
而如果從真正的概念上來講,中間件(middleware)應該是基礎軟件的一大類,屬于可復用軟件的范疇。顧名思義,中間件處于操作系統軟件與用戶的應用軟件的中間。中間件在操作系統、網絡和數據庫之上,應用軟件的下層,總的作用是為處于自己上層的應用軟件提供運行與開發的環境,幫助用戶靈活、高效地開發和集成復雜的應用軟件。
在眾多關于中間件的定義中,比較普遍被接受的是IDC表述的: 中間件是一種獨立的系統軟件或服務程序,分布式應用軟件借助這種軟件在不同的技術之間共享資源,中間件位于客戶機服務器的操作系統之上,管理計算資源和網絡通信。
IDC對中間件的定義表明,中間件是一類軟件,而非一種軟件;中間件不僅僅實現互連,還要實現應用之間的互操作;中間件是基于分布式處理的軟件,最突出的特點是其網絡通信功能。
要的就是靈活
根據定義,中間件是位于平臺(硬件和操作系統)和應用之間的通用服務,這些服務具有標準的程序接口和協議。針對不同的操作系統和硬件平臺,它們可以有符合接口和協議規范的多種實現。
其特點是滿足大量應用的需要,運行于多種硬件和OS平臺,支持分布計算,提供跨網絡、硬件和OS平臺的透明性的應用或服務的交互,支持標準的協議,支持標準的接口。由于標準接口對于可移植性和標準協議的重要性,中間件已成為許多標準化工作的主要部分。對于應用軟件開發,中間件遠比操作系統和網絡服務更為重要,中間件提供的程序接口定義了一個相對穩定的高層應用環境,不管底層的計算機硬件和系統軟件怎樣更新換代,只要將中間件升級更新,并保持中間件對外的接口定義不變,應用軟件幾乎不需任何修改,從而保護了企業在應用軟件開發和維護中的重大投資。
原文轉自:http://www.anti-gravitydesign.com