中間件軟體

中間件軟體

一類軟體名,屬基礎軟體和可復用軟體。總的作用是為處於自己上層的應用軟體提供運行與開發的環境,幫助用戶開發和集成應用軟體。它不僅僅要實現互連,還要實現應用之間的互操作;最突出的特點是其網路通信功能。最流行的交易中間件為Tuxedo。有兩個關鍵特徵,為上層的應用層服務;必須連接到操作系統的層面,並確保持運行工作狀態。

中間件軟體


中間件(middleware)是基礎軟體的一大類,屬於可復用軟體的範疇。顧名思義,中間件處於操作系統軟體與用戶的應用軟體的中間。中間件在操作系統、網路和資料庫之上,應用軟體的下層,總的作用是為處於自己上層的應用軟體提供運行與開發的環境,幫助用戶靈活、高效地開發和集成複雜的應用軟體。
在眾多關於中間件的定義中,比較普遍被接受的是IDC表述的:中間件是一種獨立的系統軟體或服務程序,分散式應用軟體藉助這種軟體在不同的技術之間共享資源,中間件位於客戶機伺服器的操作系統之上,管理計算資源和網路通信。
IDC對中間件的定義表明,中間件是一類軟體,而非一種軟體;中間件不僅僅實現互連,還要實現應用之間的互操作;中間件是基於分散式處理的軟體,最突出的特點是其網路通信功能。

中間件軟體起源


我們最早知道的中間件是一個稱為Tuxedo的東西,實質上它是一個交易中間件。1998年IDC公司對於中間件有一個定義,並根據用途將其劃分為6個類別。如今所保留下來的只有消息中間件和交易中間件,其他的已經被逐步融合到其他產品中了,被包裹進去了,在市場上已經沒有單獨的產品形態出現了。例如,當時有一個叫屏幕數據轉換的中間件,其主要是針對IBM大機終端而設計產品,用於將IBM大機終端的字元界面轉化為用戶所喜歡的圖形界面,類似的東西當時都稱為中間件。但隨著IBM大機環境越來越少,但是盛行一時的此類中間件如今已經很少再被單獨提及。
2000年前後,網際網路盛行起來,隨之產生了一個新的東西,就是應用伺服器。實際上,交易中間件也屬於是應用伺服器,為了區分,人們傳統的交易中間件稱為分佈交易中間件,因它主要應用在分散式環境下,而將新的應用伺服器,稱為J2EE中間件,到目前為止,這都是市場上非常熱門的產品。
EAI概念出來之後,市場上又推出了一些新的軟體產品,,例如工作流、Portal等,但從分類上不知道怎麼歸類,向上不能夠劃歸應用,往下又不能歸入操作系統,於是就把它歸入了中間件,如此中間件的概念更加擴大了。目前,市場上對於中間件,各家的說法不一,客觀上也導致了理解上的複雜性。
如今,市場上又推出了很多新的概念,例如三層結構、構件、Web服務,其中風頭最勁的當屬SOA(面向服務的架構)。實際上,他們都不是一個產品,而是一種技術的實現方法,是開發一個軟體的一種方法論。我們知道,最早軟體開發方法就是編程、寫代碼的,其缺點在於無法復用,為此提出了構件化的軟體開發方法,通過把編程中一些常用功能進行封裝,並規範統一介面,供其它程序調用,例如我們開發一個新軟體,可能要用到構件1、構件2、構件3,那麼,我們只要對其進行本地組裝,就可以得到我們想要的應用軟體。在網際網路得到普及重視之後,軟體開發方法在構件化基礎上又有新發展,核心思想是軟體並不需要囊括構件,所需要的僅僅是構件的運行結果,例如編寫一個通信傳輸軟體,就可以到網上尋找構件,並提出服務請求,得到結果后返回,而不需要下載構件並打包,這就是現在所說的SOA。想要現實SOA,就要規範構件介面,同時還要規範構件所提交的服務結果,如此,新的軟體開發的思想才能夠行的通。但SOA並不是一個產品,而是一種思想方法,而實現這種方法的基礎,如今看來只有中間件。
那麼,到底什麼才是中間件,什麼不是中間件?從東方通科技的觀點看,中間件應該具備兩個關鍵特徵:首先要為上層的應用層服務,這是一個基本條件;此外,又必須連接到操作系統的層面,並卻保持運行工作狀態,具備了這樣兩個特徵才能稱為中間件。現在很多人把開發工具也稱為中間件是不合適的,因為開發工具開發出來的軟體,並不依賴開發工具與底層操作系統連接。
典型案例
現在最流行的交易中間件為Tuxedo的東西,實質上它是一個交易中間件,如果你想真正的知道中間件的定義,我認為學習一下它,是唯一的辦法。
在當今系統整合、全球應用、永遠可用的業務環境中,企業要求分散式事務處理(TP)的基礎結構,不僅能夠充分發揮現有技能和應用資產的作用,而且還要具備基於標準的互操作性以簡化集成。
BEA Tuxedo 是當今 C、 C++和 COBOL解決方案的首選平台。它運行著一些最大型的關鍵任務事務處理系統,如有線傳輸、ATM和電信。它是許多世界領先公司的支柱。
只有 BEA Tuxedo 才能提供這樣強大的平台,滿足在分散式異構計算環境下運行如此大量應用的需求;它能夠使事務在全球範圍內跨任何系統,從面向客戶的關鍵任務應用延伸到後台處理。
BEA Tuxedo 是一種多語言、可任意伸縮的事務處理平台,它提供了用戶為實現下列目標所必需的任務關鍵型基礎結構:
增強現有應用的可訪問性
整合企業事務處理和消息傳遞解決方案
採用Web 服務的核心應用
確保應用最高的可用性和吞吐量
提升處理效率,改善資源管理
降低總體擁有成本
(圖文翻譯)
BEA Tuxedo 向業務關鍵型基礎結構的服務,提供可伸縮的BEA Tuxedo Domain 連接性和應用互操作性。
BEA Tuxedo 產品功能
BEA Tuxedo 採用基於面向服務的架構。該架構利用功能強大的消息和事務處理引擎,極大地簡化企業分散式計算。
高性能消息引擎:BEA Tuxedo 系統的核心是能夠保證"一次性"交付的高性能、高可靠性的消息引擎。該引擎提供同步式、非同步式和會話式消息 API。所有這些,不管是在一台機器上,還是在相關機器的集群中,或者在獨立的 BEA Tuxedo 中,都是透明的。使用數據依賴路由,BEA Tuxedo可以根據其上下文和優先順序來路由消息。
面向服務的基礎結構:BEA Tuxedo 系統與 Service Request Broker (SRB) 非常相似,它提供面向服務的基礎架構,從而可以跨BEA Tuxedo 流程和應用,高效地路由、調度、管理各種請求、事件和應用隊列。
功能強大的 API:把諸如兩階段提交、異構資源管理之類複雜的事務管理,封裝在標準的API 中,BEA Tuxedo 向 IT 部門提供了功能強大、用戶友好的TP 基礎結構,以滿足其所有的 C、C++、COBOL應用的需求。
高度分佈的事務處理:BEA Tuxedo分散式處理管理服務,可以跨多個資料庫優化事務處理,不管採用什麼訪問協議,都能確保所有在用資源和資料庫的數據完整性。該系統不但跟蹤事務處理參與者,而且監控兩階段提交協議,從而確保所有事務的提交和回滾在每個分散式資源中都得到妥善處理。
管理功能: BEA Tuxedo 基於 Web的圖形化管理功能,使分散式系統中的許多關鍵管理功能實現了自動化,從而最大程度地減少了操作員的干預。除此之外,BEA Tuxedo 系統還無縫集成了第三方SNMP管理控制台,以簡化應用管理
(圖文翻譯)
藉助WebLogic Tuxedo Connector,BEA Tuxedo能實現與BEA WebLogic Enterprise Platform的互操作性。這種高速連接器支持完全的事務和安全性傳播,允許企業構建無縫、端到端的解決方案。
無限的伸縮性和可靠性
複製服務框架:BEA Tuxedo 可以根據實時的系統負載和吞吐量,自動生成額外服務的複製服務框架,從而確保您最緊迫的任務關鍵型應用都具有最高的性能和可靠性。動態負載均衡:BEA Tuxedo 使應用能并行處理各種請求,在不同的分散式節點上同時處理各種事務。
事務隊列:為了靈活地處理事務或延遲事務處理,BEA Tuxedo 提供了事務隊列;允許分散式應用可以用非同步、“無連接”的方式協同運行。事務隊列是一種模塊化存儲轉發模型,可根據不同的標準,例如消息上下文、消息內容和日期時間,確定隊列的優先順序和延緩事務處理。
監測:為了確保對各種應用的不間斷訪問, BEA Tuxedo 連續地監測各種組件,以防應用、事務、網路和硬體發生故障。
運行、控制和管理(OA&M)服務:藉助 BEA Tuxedo穩健的 OA&M 服務,可以自動重啟和停止應用服務,消除了單點故障,無論何時何地,只要客戶和合作夥伴需要,各種應用總是處於可用狀態。萬一發生故障,BEA Tuxedo 就能從系統中在邏輯上刪除組件,將各種消息和事務自動地重新路由到還繼續存在的系統中。
安全性服務:系統全面的安全性服務包括:認證、授權和鏈路級加密(LLE)安全性,以便跨網路部署BEA Tuxedo應用時確保數據的安全。
插入型安全性框架: BEA Tuxedo 還提供插件程序型框架,以支持公共密鑰加密、數字簽名和針對網路應用的第三方安全性產品,從而使BEA Tuxedo 能在現有公司安全標準內發揮作用。
可擴展的基礎結構
BEA Tuxedo 支持許多不同的連通性和互操作性標準,允許企業跨其他應用和解決方案,充分發揮BEA Tuxedo 應用和服務的作用。
域網關 (DG) 架構: DG 架構支持各種消息和TP 應用之間的互操作性,這些應用不但運行在不同的環境、網路、地理位置和公司,而且還跨不同的應用服務平台,其中包括BEA WebLogic ServerTM、TopEnd 應用集成、BEA MessageQ 網橋和 BEA Tuxedo 主機適配器(連接 IMS 和 CICS)。
BEA Tuxedo 和 BEA WebLogic Platform
BEA Tuxedo 面向服務的架構,允許企業開發綜合性的複合(或混合)、端到端解決方案,實現 BEA Tuxedo 的可用性、伸縮性與 J2EE 的可擴展性的完美統一。
WebLogic Tuxedo Connector (WTC): 由於BEA Tuxedo 和 BEA WebLogic Platform 之間通過 WebLogic Tuxedo Connector (WTC)實現了緊密集成,因此,IT 部門可以輕鬆地擴展和將 BEA Tuxedo 服務與新的和現有的 J2EE 解決方案集成在一起。利用雙向對等協議, WTC 完全支持BEA Tuxedo C、C++、COBOL 應用和 BEA WebLogic Server 、Platform J2EE工具與應用之間的事務和安全性傳播(非代理事務)。
BEA Tuxedo 和 BEA WebLogic Workshop:若要在開發"複合"解決方案時確保最佳方案和加快 IT 價值實現速度,Java 開發人員可以充分利用新的 Tuxedo 控制項,因為它顯著簡化了 Web 服務生成、Web 頁面流應用部署、門戶與集成項目。企業開發人員和 BEA Tuxedo 合作夥伴雙方,也都能利用Workshop,迅速創建 Tuxedo 控制項擴展(JCX 或"客戶控制項"),以訪問特定的 Tuxedo 服務。