中介軟體軟體
中介軟體(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 服務。
中介軟體軟體
中介軟體(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 服務。