淺析深究什么是中間件
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
本文發(fā)布于2009年10月30日 1. 由來 因為工作的原因,我從金蝶集團調入金蝶中間件公司工作以來,經(jīng)常遇到一個問題就是中間件公司是個什么公司,中間件是什么?,金蝶不是做ERP的嗎?怎么也做中間件?。這是我以前在金蝶集團時無法想象的問題。因為金蝶,金蝶ERP的品牌以及大眾對ERP的了解,是無需我解析什么是ERP,什么是財務軟件一類的問題的。 畢竟,中間件在實際的應用過程中,是對應用軟件起到支撐作用,最終用戶并不直接使用中間件,中間件不是大眾消費類軟件產(chǎn)品。因此,除非是一個行業(yè)專業(yè)人士,一般不大可能與中間件打交道,不太了解什么是中間件。 因此,在系統(tǒng)軟件之中,操作系統(tǒng)、數(shù)據(jù)庫、中間件的三駕馬車,中間件是最神秘的。因為,好歹大家通過Windows基本上會了解操作系統(tǒng)是個什么東西,盡管不會很全面,很專業(yè),畢竟是有感覺的。數(shù)據(jù)庫,雖然沒有直接見過,但基本上明白數(shù)據(jù)是要一個倉庫來儲存的,因此,也大致知道數(shù)據(jù)庫管理系統(tǒng)是干什么的。 長期以來,中間件是一個專業(yè)化非常強的細分產(chǎn)業(yè)。因為中間件的技術門檻比較高,玩家也不多,無論是國外還是國內都是如此。因此,行業(yè)內對什么是中間件并不特別在意。而公司名稱直接叫中間件的就更少了,金蝶中間件應該是國內外直接在公司名稱中冠以中間件字眼最早,也是很少的公司之一。另一方面,因為中間件軟件還處于發(fā)展階段,還沒有完全成熟,因此對中間件的定義也就沒有深究,或者權威的說法。 但現(xiàn)在情況有點變化,其中一個原因在于2008年底,國家啟動了核高基重大科技專項,在基礎軟件領域明確提出重點支持操作系統(tǒng)、數(shù)據(jù)庫、中間件、文字處理等基礎軟件產(chǎn)業(yè)的自主創(chuàng)新,幾乎一夜之間大大小小的軟件公司都宣稱是做中間件的了,只要不是做最終應用軟件的,他們的產(chǎn)品都叫中間件了,一時間,中間件變得蓬勃發(fā)展起來了。 作為中間件行業(yè)內的專業(yè)化和領先企業(yè)來說,大家都重視起中間件來了,這是好事,說明社會上重視了。對行業(yè)的發(fā)展和繁榮固然重要,但這也隱含了重大的風險。中間件名字被濫用,無論是對用戶,對這個產(chǎn)業(yè),對政府和投資人來說,都會有負面的影響。魚目混珠,泥沙俱下的局面,對中間件產(chǎn)業(yè)的正常發(fā)展未必就是好事情了,也可能對真正的中間件自主創(chuàng)新帶來許多困擾,模糊了中間件的本質,可能會弱化中間件核心技術的創(chuàng)新和發(fā)展。 因此,在這種情況下,無論是對行業(yè)內,還是行業(yè)外,突然什么是中間件的問題變成了一個大問題了。 本文試圖就中間件的來龍去脈,外延內涵和前世今生,來一個全面的闡釋。一家之言,權作業(yè)界參考,希望帶動大家做一些深入的思考。 2. 中間件的起源 2.1 中間件發(fā)展的歷史 事情從1946年說起,世界上第一臺電子計算機埃尼阿克誕生,人類進入信息時代。1955年,約翰巴克斯發(fā)明了最早的程序語言Fortran,現(xiàn)代意義上的軟件就誕生了。 1964年,IBM發(fā)布OS/360操作系統(tǒng),軟件與硬件分離,同時,軟件成為一個獨立的產(chǎn)業(yè)正式登上產(chǎn)業(yè)界的舞臺。中間件就是軟件產(chǎn)業(yè)不斷發(fā)展過程中自然產(chǎn)生的。 90年代,文頓·瑟夫這位互聯(lián)網(wǎng)之父的發(fā)明成為改變IT業(yè)的重大革命性創(chuàng)新?;ヂ?lián)網(wǎng)促使分布式系統(tǒng)和網(wǎng)絡應用的誕生,中間件就是伴隨網(wǎng)絡技術的產(chǎn)生、發(fā)展而興起的,可以說沒有網(wǎng)絡就沒有現(xiàn)代意義上的中間件。因為,網(wǎng)絡環(huán)境需要解決異構分布網(wǎng)絡環(huán)境下軟件系統(tǒng)的通信、互操作、協(xié)同、事務、安全等共性問題,提高異構分布網(wǎng)絡環(huán)境下軟件系統(tǒng)的互操作性、可移植性、適應性、可靠性等問題。 1968年IBM發(fā)布CICS交易事務控制系統(tǒng),使得應用軟件與系統(tǒng)服務分離,這是中間件技術萌芽的標志,因為CICS還不是分布式環(huán)境的產(chǎn)物,因此我們往往還不將CICS作為正式的中間件系統(tǒng)。 一般來說,我們將1990年誕生于ATT公司的BELL實驗室的Tuxedo系統(tǒng)(后來被NOVELL從ATT公司隨著UNIX系統(tǒng)一起買走,后來又賣給了BEA公司,現(xiàn)在歸于ORACLE公司旗下了)作為中間件的誕生標志。Tuxedo解決了分布式交易事務控制問題,中間件開始成為網(wǎng)絡應用的基礎設施,中間件正式成型,這是最早的交易中間件。 1994年IBM發(fā)布消息隊列服務MQ系列產(chǎn)品,解決分布式系統(tǒng)異步、可靠、傳輸?shù)耐ㄓ嵎諉栴},消息中間件誕生。 1995年,JAVA之父James Gosling發(fā)明JAVA語言,JAVA提供了跨平臺的通用的網(wǎng)絡應用服務,成為今天中間件的核心技術。JAVA是第一個天生的網(wǎng)絡應用平臺,特別是J2EE發(fā)布以來,JAVA從一個編程語言,演變?yōu)榫W(wǎng)絡應用架構,成為應用服務平臺的事實標準。應用服務器中間件,成為中間件技術的集大成者,也成為事實上的中間件的核心。 2001年,微軟發(fā)布.NET,中間件演變?yōu)?NET和JAVA兩大技術陣營。但由于.NET還不是一個完全開放的技術體系,只有一個玩家,因此,雖然.NET也是一種中間件,但由于IBM/ORACLE/SUN/SAP等巨頭都無一例外成了JAVA陣營的支持者,因此,我們習慣上提到中間件時,往往不包括.NET中間件體系。 以上談的是歷史,但透過歷史事實背后,為什么會出現(xiàn)中間件,這其中的本質因素是什么? 2.2 中間件發(fā)展的驅動力 中間件出現(xiàn)的驅動力主要來自軟件研發(fā)過程碰到的種種問題。從軟件出現(xiàn)最早是用于科學計算,然后是計算機輔助設計、輔助制造等等工業(yè)應用。在企業(yè)管理領域大規(guī)模應用后,業(yè)務需求不斷的變化、系統(tǒng)不斷增加、流程更復雜、系統(tǒng)越來越不堪重負,出現(xiàn)了需求交付方面的重大挑戰(zhàn),以至于人們用軟件危機來描述軟件工業(yè)所面臨的困境。 總結起來,軟件工業(yè)面臨的主要問題是四個方面:質量問題、效率問題、互操作問題、靈活應變問題。這些問題今天依然困擾著這個行業(yè)。 造成這個局面的原因是異構性和標準規(guī)范的滯后。
異構性表現(xiàn)在計算機的軟硬件之間的異構性,包括硬件(CPU和指令集、硬件結構、驅動程序等),操作系統(tǒng)(不同操作系統(tǒng)的API和開發(fā)環(huán)境)、數(shù)據(jù)庫(不同的存儲和訪問格式)等等。長期以來,高級語言依賴于特定的編譯器和操作系統(tǒng)API來編程,而他們是不兼容的,因此軟件必須依賴于開發(fā)和運行的環(huán)境。 造成異構的原因源自市場競爭、技術升級以及保護投資等因素。希望屏蔽異構平臺的差異性問題是促成中間件發(fā)展的驅動力之一。
因為異構性,產(chǎn)生的結果是軟件依賴于計算環(huán)境,使得各種不同軟件之間在不同平臺之間不能移植,或者移植非常困難。而且,因為網(wǎng)絡協(xié)議和通信機制的不同,這些系統(tǒng)之間還不能有效地相互集成。 造成互操作性不好的原因,主要是標準的滯后。解決軟件之間的互操作性問題也是促成中間件發(fā)展的驅動力之一。
軟件應用領域越來越多,相同領域的應用系統(tǒng)之間許多基礎功能和結構是有相似性的,每次開發(fā)系統(tǒng)都從零開始絕對不是一種好的方法,也是對質量和效率的很大的傷害。 盡可能多地凝練共性并復用以提高軟件開發(fā)效率和質量,通過中間件通過提供簡單、一致、集成的開發(fā)和運行環(huán)境,簡化分布式系統(tǒng)的設計、編程和管理,這也是中間件發(fā)展的重要驅動力。 在長期的探索過程中,解決軟件的四個問題的辦法總結起來兩個方面:工程方法、平臺與技術。 工程方法就是用工業(yè)工程、系統(tǒng)工程的理論、方法和體系來解決軟件研發(fā)過程中的管理問題,包括團隊管理、項目管理、質量控制等等,這就是軟件工程。除了軟件工程方法之外,我們發(fā)明了更多的架構規(guī)劃、設計和實施的方法,不斷累積領域的知識與經(jīng)驗等等。 更好的技術手段,包括更好的程序設計語言、更好的平臺和軟件開發(fā)技術,如面向對象、組件開發(fā)、面向服務等等。而這方面,在技術上逐漸發(fā)展的成果大部分都凝聚在今天的中間件平臺之中。 而這些更好的技術手段,從本質上是通過復用、松耦合、互操作(標準)等機制來提高軟件質量、加快軟件研發(fā)效率、使研發(fā)出來的產(chǎn)品能夠相互集成并靈活適應變化。 3. 中間件的概念 講了這么多,究竟什么是中間件,也就是中間件的定義是什么? 針對這個問題,應該說還沒有一個標準的定義,或者說還沒有完全取得學術界和產(chǎn)業(yè)界的共識。 顧名思義,中間件就是處于中間的軟件。但這種不是從功能,或者特性來定義的概念,而是用位置來定義的名字,就容易被不同的人從不同角度賦予其不同的含義。 IDC曾經(jīng)給中間件下的定義是中間件是一種獨立的系統(tǒng)軟件或服務程序,分布式應用軟件借助這種軟件在不同的技術之間共享資源,中間件位于客戶機服務器的操作系統(tǒng)之上,管理計算資源和網(wǎng)絡通信。 我國學術界一般認可的定義是中間件是指網(wǎng)絡環(huán)境下處于操作系統(tǒng)、數(shù)據(jù)庫等系統(tǒng)軟件和應用軟件之間的一種起連接作用的分布式軟件,主要解決異構網(wǎng)絡環(huán)境下分布式應用軟件的互連與互操作問題,提供標準接口、協(xié)議,屏蔽實現(xiàn)細節(jié),提高應用系統(tǒng)易移植性(北京大學梅宏)。 中科院軟件所研究員仲萃豪形象地把中間件定義為平臺+通信。這個定義限定了只有用于分布式系統(tǒng)中的此類軟件才能被稱為中間件,同時此定義還可以把中間件與支撐軟件和實用軟件區(qū)分開來。 中間件處于操作系統(tǒng)軟件與用戶的應用軟件的中間。中間件在操作系統(tǒng)、網(wǎng)絡和數(shù)據(jù)庫之上,應用軟件的下層,總的作用是為處于自己上層的應用軟件提供運行與開發(fā)的環(huán)境,幫助用戶靈活、高效地開發(fā)和集成復雜的應用軟件。形象地說就是上下之間的中間。 此外,中間件主要為網(wǎng)絡分布式計算環(huán)境提供通信服務、交換服務、語義互操作服務等系統(tǒng)之間的協(xié)同集成服務,解決系統(tǒng)之間的互連互通問題。形象地說就是所謂左右之間的中間。 要深入理解什么是中間件,形式化的定義固然重要,我們還得從概念本身去深入理解其核心特征才是最重要的。要理解一個概念,從內涵和外延兩個方面去描述是哲學上非常重要的一套方法體系。 3.1 中間件的特征(內涵) 總結分析,中間件有幾個非常重要的特征是必須具備的:
所謂平臺就是能夠獨立運行并自主存在,為其所支撐的上層系統(tǒng)和應用提供運行所依賴的環(huán)境。顯然,不是所有的系統(tǒng)或者應用都可以稱之為平臺的。中間件是一個平臺,因此中間件是必須獨立存在,是運行時刻的系統(tǒng)軟件,它為上層的網(wǎng)絡應用系統(tǒng)提供一個運行環(huán)境,并通過標準的接口和API來隔離其支撐的系統(tǒng),實現(xiàn)其獨立性,也就是平臺性。 因此,目前許多的開發(fā)語言、組件庫和各種報表設計之類的軟件,很難滿足平臺性,將這類軟件叫中間件,是很不合適的。例如,JAVA是一種語言,這種語言的開發(fā)工具和開發(fā)框架,如Eclipse、JBuilder、Struts,Hibernate等等就不能稱為中間件,充其量叫中間件開發(fā)工具,而不能叫中間件本身,就如同各種建筑工程設備和機械,如吊臂、攪拌機等不能叫建筑,而只能成為建筑工具一樣。而J2EE應用服務器提供JAVA應用的運行環(huán)境,就是經(jīng)典的中間件。
中間件的最終目的是解決上層應用系統(tǒng)的問題,而且也是軟件技術發(fā)展到今天對應用軟件提供最完善徹底的解決方案。 高級程序設計語言的發(fā)明,使得軟件開發(fā)變成一個獨立的科學和技術體系,而操作系統(tǒng)平臺的出現(xiàn),使得應用軟件通過標準的API接口,實現(xiàn)了軟件與硬件的分離。 現(xiàn)代面向服務的中間件在軟件的模型、結構、互操作以及開發(fā)方法等四個方面提供了更強的應用支撐能力: 模型:構件模型彈性粒度化,即通過抽象層度更高的構件模型,實現(xiàn)具備更高結構獨立性、內容自包含性和業(yè)務完整性的可復用構件,即服務。并且在細粒度服務基礎上,提供了更粗粒度的服務封裝方式,即業(yè)務層面的封裝,形成業(yè)務組件,就可以實現(xiàn)從組件模型到業(yè)務模型的全生命周期企業(yè)建模的能力。 結構:結構松散化,即,將完整分離服務描述和服務功能實現(xiàn)以及服務的使用者和提供者,從而避免分布式應用系統(tǒng)構建和集成時常見的技術、組織、時間等不良約束。 互操作:交互過程標準化,即,將與互操作相關的內容進行標準化定義,如服務封裝、描述、發(fā)布、發(fā)現(xiàn)、調用等契約,通信協(xié)議以及數(shù)據(jù)交換格式等等。最終實現(xiàn)訪問互操作、連接互操作和語義互操作。 開發(fā)集成方法:應用系統(tǒng)的構建方式由代碼編寫轉為主要通過服務間的快捷組合及編排,完成更為復雜的業(yè)務邏輯的按需提供和改善,從而大大簡化和加速應用系統(tǒng)的搭建及重構過程。 而要最終解決軟件的質量問題、效率問題、互操作問題、靈活應變問題這四大問題,需要在軟件技術的內在結構(Structure)、架構(Architecture)層面進行思考。 解決這些問題,技術的本質是復用、松耦合、互操作(標準)等軟件技術的內在機制。這也是中間件技術和產(chǎn)品的本質特征。
軟件復用,即軟件的重用,也叫再用,是指同一事物不作修改或稍加改動就多次重復使用。從軟件復用技術的發(fā)展來看,就是不斷提升抽象級別,擴大復用范圍。最早的復用技術是子程序,人們發(fā)明子程序,就可以在不同系統(tǒng)之間進行復用了。但是,子程序是最原始的復用,因為這種復用范圍是一個可執(zhí)行程序內復用,靜態(tài)開發(fā)期復用,如果子程序修改,意味著所有調用這個子程序的程序必須重新編譯、測試和發(fā)布。 復用對象復用范圍
為了解決這個問題,發(fā)明了組件(或者叫控件),如MS操作系統(tǒng)下的DLL組件。組件將復用提升了一個層次,因為組件可以在一個系統(tǒng)內復用(同一種操作系統(tǒng)),而且是動態(tài)、運行期復用。這樣組件可以單獨發(fā)展,組件與組件調用者之間的耦合度降低。 為解決分布式網(wǎng)絡計算之間的組件復用,人們發(fā)明了企業(yè)對象組件,如(COM+, .NET, EJB等),或者叫分布式組件。通過遠程對象代理,來實現(xiàn)企業(yè)網(wǎng)絡內復用,不同系統(tǒng)之間復用。 傳統(tǒng)中間件的核心是組件對象的管理。但分布式組件也是嚴重依賴其受控環(huán)境,由于構件實現(xiàn)和運行支撐技術之間存在著較大的異構性,不同技術設計和實現(xiàn)的構件之間無法直接組裝式復用。 而現(xiàn)代中間件的發(fā)展重要趨勢就是以服務為核心,如WebService, SCA/SDO等。通過服務,或者服務組件來實現(xiàn)更高層次的復用、解耦和互操作,即SOA架構中間件。 因為服務是通過標準封裝,服務組件之間的組裝、編排和重組,來實現(xiàn)服務的復用。而且這種復用,可以在不同企業(yè)之間,全球復用,達到復用的最高級別,并且是動態(tài)可配置的復用。
基于SOA架構的中間件,在松耦合解耦過程也發(fā)展到了最后的境界。傳統(tǒng)軟件將軟件之中核心三部分——網(wǎng)絡連接、數(shù)據(jù)轉換、業(yè)務邏輯全部耦合在一個整體之中,形成鐵板一塊的軟件,牽一發(fā)而動全身,軟件就難以適應變化。分布式對象技術將“連接邏輯”進行分離,消息中間件將“連接邏輯”進行異步處理,增加了更大的靈活性。消息代理和一些分布式對象中間件將數(shù)據(jù)轉換也進行了分離。而SOA架構,通過服務的封裝,實現(xiàn)了業(yè)務邏輯與網(wǎng)絡連接、數(shù)據(jù)轉換等進行完全的解耦。 軟件技術的不斷解耦的過程
傳統(tǒng)軟件互操作技術也存在問題。互聯(lián)網(wǎng)前所未有的開放性意味著各節(jié)點可采用不同的中間件技術,對技術細節(jié)進行了私有化的約束,構件模型和架構沒有統(tǒng)一標準,從而導致中間件平臺自身在構件描述、發(fā)布、發(fā)現(xiàn)、調用、互操作協(xié)議及數(shù)據(jù)傳輸?shù)确矫娉尸F(xiàn)出巨大的異構性。各種不良技術約束的結果是軟件系統(tǒng)跨互聯(lián)網(wǎng)進行交互變得困難重重,最終導致了跨企業(yè)/部門的業(yè)務集成和重組難以靈活快速的進行。 在軟件的互操作方面,傳統(tǒng)中間件只是實現(xiàn)了訪問互操作,即通過標準化的API實現(xiàn)了同類系統(tǒng)之間的調用互操作,而連接互操作還是依賴于特定的訪問協(xié)議,如JAVA使用RMI,CORBA使用IIOP等。而SOA通過標準的、支持Internet、與操作系統(tǒng)無關的SOAP協(xié)議實現(xiàn)了連接互操作。而且,服務的封裝是采用XML協(xié)議,具有自解析和自定義的特性,這樣,基于SOA的中間件還可以實現(xiàn)語義互操作。 基于服務的中間件 總之,服務化體現(xiàn)的是中間件在完整業(yè)務復用、靈活業(yè)務組織方面的發(fā)展趨勢,其核心目標是提升IT基礎設施的業(yè)務敏捷性。因此,中間件將成為SOA的主要實現(xiàn)平臺。 3.2 中間件的分類(外延) 中間件所包括的范圍十分廣泛,針對不同的應用需求涌現(xiàn)出多種各具特色的中間件產(chǎn)品。從功能性外延來看,中間件包括交易中間件、消息中間件、集成中間件等各種功能性的中間件技術和產(chǎn)品。 現(xiàn)在,中間件已經(jīng)成為網(wǎng)絡應用系統(tǒng)開發(fā)、集成、部署、運行和管理必不可少的工具。由于中間件技術涉及網(wǎng)絡應用的各個層面,涵蓋從基礎通訊、數(shù)據(jù)訪問到應用集成等眾多的環(huán)節(jié),因此,中間件技術呈現(xiàn)出多樣化的發(fā)展特點。 根據(jù)中間件在軟件支撐和架構的定位來看,基本上可以分為三大類產(chǎn)品:應用服務類中間件、應用集成類中間件、業(yè)務架構類中間件。
為應用系統(tǒng)提供一個綜合的計算環(huán)境和支撐平臺,包括對象請求代理(ORB)中間件、事務監(jiān)控交易中間件、JAVA應用服務器中間件等。 隨著對象技術與分布式計算技術的發(fā)展,兩者相互結合形成了分布對象計算,并發(fā)展為當今軟件技術的主流方向。1990年底,對象管理組織OMG首次推出對象管理結構OMA(Object Management Architecture),對象請求代理(Object Request Broker)是這個模型的核心組件。它的作用在于提供一個通信框架,透明地在異構的分布計算環(huán)境中傳遞對象請求。CORBA規(guī)范包括了ORB的所有標準接口,是對象請求代理的典型代表。 隨著分布計算技術的發(fā)展,分布應用系統(tǒng)對大規(guī)模的事務處理提出了需求,比如商業(yè)活動中大量的關鍵事務處理。事務處理監(jiān)控界于Client和Server之間,進行事務管理與協(xié)調、負載平衡、失敗恢復等,以提高系統(tǒng)的整體性能。它可以被看作是事務處理應用程序的操作系統(tǒng)。這類被稱為交易中間件,適用于聯(lián)機交易處理系統(tǒng),主要功能是管理分布于不同計算機上的數(shù)據(jù)的一致性,保障系統(tǒng)處理能力的效率與均衡負載。交易中間件所遵循的主要標準是X/open DTP模型,典型的產(chǎn)品是Tuxedo。 JAVA從2.0企業(yè)版之后,不僅僅是一種編程語言,而且演變?yōu)橐粋€完整的計算環(huán)境和企業(yè)架構。為JAVA應用提供組件容器,用來構造Internet應用和其它分布式構件應用,是企業(yè)實施電子商務的基礎設施,這種應用服務器中間件發(fā)展到為企業(yè)應用提供數(shù)據(jù)訪問、部署、遠程對象調用、消息通信、安全服務、監(jiān)控服務、集群服務等強化應用支撐的服務。使得JAVA應用服務器成為了事實上的應用服務器工業(yè)標準。由于它的開放性,使得交易中間件和對象請求代理逐漸融合到應用服務器之中。典型的應用服務器產(chǎn)品包括IBM Websphere Application Server、Oracle Weblogic Application Server和金蝶Apusic Application Server等。
應用集成類中間件是提供各種不同網(wǎng)絡應用系統(tǒng)之間的消息通信、服務集成和數(shù)據(jù)集成的功能,包括常見的消息中間件、企業(yè)集成EAI、企業(yè)服務總線以及相配套的適配器等。 消息中間件指的是利用高效可靠的消息傳遞機制進行平臺無關的數(shù)據(jù)交流,并基于數(shù)據(jù)通信來進行分布式系統(tǒng)的集成。通過提供消息傳遞和消息排隊模型,它可在分布環(huán)境下擴展進程間的通信,并支持多通訊協(xié)議、語言、應用程序、硬件和軟件平臺,實現(xiàn)應用系統(tǒng)之間的可靠異步消息通信,能夠保障數(shù)據(jù)在復雜的網(wǎng)絡中高效、穩(wěn)定、安全、可靠的傳輸,并確保傳輸?shù)臄?shù)據(jù)不錯、不重、不漏、不丟。目前流行的消息中間件產(chǎn)品有IBM的MQSeries、 BEA的MessageQ、金蝶Apusic MQ等。 企業(yè)應用整合,僅指企業(yè)內部不同應用系統(tǒng)之間的互連,以期通過應用整合實現(xiàn)數(shù)據(jù)在多個系統(tǒng)之間的同步和共享。這種類似集線器的架構模式是在基于消息的基礎上,引入了前置機-服務器的概念,使用一種集線器/插頭(hub-and-spoke)的架構,將消息路由信息的管理和維護從前置機遷移到了服務器上,巧妙的把集成邏輯和業(yè)務邏輯分離開來,大大增加了系統(tǒng)彈性。由于前置機和服務器之間不再直接通信,每個前置機只通過消息和服務器之間通信,將復雜的網(wǎng)狀結構變成了簡單的星型結構。典型的企業(yè)應用集成EAI的產(chǎn)品包括Tibico和Informatica等公司產(chǎn)品。 隨著SOA思想和技術的逐漸成熟,EAI發(fā)展到透過業(yè)務服務的概念來提供IT的各項基本應用功能,讓這些服務可以自由地被排列組合、融會貫通,以便在未來能隨時彈性配合新的需求而調整。Web Services是SOA的一種具體實現(xiàn)方式,SOA的世界是由服務提供者(Service Provider)、服務請求者(Service Requester) 以及服務代理者(Service Broker)所組成,目標是將所有具備價值的IT資源,不論是舊的或新的,通通都能夠透過Web Services的包裝,成為隨取即用的IT資產(chǎn),并可將各種服務快速匯整,開發(fā)出組合式應用,達到整合即開發(fā)的目的。SOA的架構只是實現(xiàn)和解決了服務模塊間調用的互操作問題,為了更好的服務于企業(yè)應用,引入了企業(yè)服務總線的應用架構(Enterprise Service Bus,ESB)。這一構架是基于消息通信、智能路由、數(shù)據(jù)轉換等技術實現(xiàn)的。ESB提供了一個基于標準的松散應用耦合模式,這就是企業(yè)服務總線中間件,是一種綜合的企業(yè)集成中間件。典型的ESB產(chǎn)品包括IBM Websphere ESB、Oracle公司的Weblogic ESB以及金蝶Apusic ESB等。
作為共性的凝練,中間件不僅要從底層的技術入手,將共性技術的特征抽象進中間層,還要更多地把目光投向到業(yè)務層面上來,根據(jù)業(yè)務的需要,驅動自身能力的不斷演進,即,不斷出現(xiàn)的新的業(yè)務需要驅動了應用模式和信息系統(tǒng)能力的不斷演進,進而要求中間件不斷地凝練更多的業(yè)務共性,提供針對性支撐機制。近年來,這一需求趨勢愈發(fā)明顯,越來越多的業(yè)務和應用模式被不斷地抽象進入中間件的層次,如業(yè)務流程流、業(yè)務模型、業(yè)務規(guī)則、交互應用等等,其結果是中間件凝練的共性功能越來越多,中間件的業(yè)務化和領域化的趨勢非常明顯。 業(yè)務架構類中間件包括業(yè)務流程、業(yè)務管理和業(yè)務交互等幾個業(yè)務領域的中間件。 業(yè)務流程是處理業(yè)務模型的非常重要方法。管理流程與各職能部門和業(yè)務單元有密切關系,須藉各部門間的緊密協(xié)調,以達到企業(yè)運營和管理功能的目標。在業(yè)務流程支持方面,從早期的WfMC定義的工作流,到基于服務的業(yè)務流程規(guī)范BPEL,由業(yè)務流程的支撐,逐漸形成了完整的業(yè)務流程架構模型,包括流程建模、流程引擎、流程執(zhí)行、流程監(jiān)控和流程分析等。有名的業(yè)務流程中間件包括基于工作流的IBM Lotus Workflow,基于BPEL的IBM Webshpere Process Server以及同時支持工作流和BPEL的金蝶Apusic BPM等。 業(yè)務管理就是對業(yè)務對象的建模和業(yè)務規(guī)則的定義、運行和監(jiān)控的中間件平臺。策略管理員和開發(fā)人員將業(yè)務邏輯捕獲為業(yè)務規(guī)則。使用規(guī)則管理器可以將規(guī)則輕松地嵌入 Web、現(xiàn)有應用程序和后臺辦公應用程序。常見的業(yè)務管理中間件包括IBM Websphere ILOG 業(yè)務規(guī)則管理系統(tǒng),金蝶BOS等。 業(yè)務交互的中間件平臺提供組織的合作伙伴、員工和客戶通過WEB和移動設備等交互工具,實現(xiàn)基于角色、上下文、操作、位置、偏好和團隊協(xié)作需求的個性化的用戶體驗。這種門戶服務器軟件基于標準Portlet組合的應用程序訪問框架,實現(xiàn)用戶集成和交互集成,構建靈活、基于 SOA 的應用架構。典型的門戶中間件有IBM Websphere Portal Server和金蝶Apusic Portal Server等。 4. 中間件的未來 中間件是互聯(lián)網(wǎng)時代的IT基礎設施,提供業(yè)務的靈活性,消除信息孤島,提高IT的研發(fā)和運營效率。作為網(wǎng)絡計算的核心基礎設施,中間件正在呈現(xiàn)出服務化、自治化、業(yè)務化、一體化等諸多新的發(fā)展趨勢,中間件進入2.0時代,將極大提升互聯(lián)網(wǎng)統(tǒng)一計算平臺的敏、睿、融、和能力。
以互聯(lián)網(wǎng)為核心的多網(wǎng)融合產(chǎn)生了豐富多樣的新型網(wǎng)絡應用模式,作為主流的應用運行支撐環(huán)境,中間件無處不在,越來越多的應用模式被抽象到中間件層,中間件將變寬變厚。
隨著SOA技術逐漸成為主流,以及異構系統(tǒng)的集成問題日益嚴峻,中間件將向面向服務、易于集成的方向發(fā)展。
中間件產(chǎn)品的種類日趨多樣(如交易中間件、消息中間件、應用服務器、集成中間件、業(yè)務中間件等),但其技術架構將向一體化的方向發(fā)展,主要包括: 統(tǒng)一內核,易于演化:各大廠商的中間件產(chǎn)品將構建在統(tǒng)一內核之上,使其易于平臺演化。 統(tǒng)一編程模型,易于開發(fā):不同中間件產(chǎn)品提供了不同的編程模型,這些編程模型將趨向統(tǒng)一,從而達到易于開發(fā)的目的。 統(tǒng)一管理模型,易于系統(tǒng)維護:不同中間件產(chǎn)品提供了不同的管理工具與管理手段,這些管理工具與手段將趨向統(tǒng)一,使其易于管理,降低運維成本。
中間件產(chǎn)品將成為云計算的支撐平臺,使應用易于交付。
一個大膽的設想是:未來五年,瀏覽器將統(tǒng)一前端,而后端平臺(中間件、操作系統(tǒng)、 數(shù)據(jù)庫)走向深度融合。(對中間件的未來發(fā)展趨勢的詳細介紹參加另文《中間件技術的發(fā)展趨勢分析》,在此不做詳細論述。) 綜上所述,我們可以認為中間件是一種獨立的系統(tǒng)軟件平臺,為網(wǎng)絡應用軟件提供綜合的服務和完整的計算環(huán)境,借助這種軟件使得網(wǎng)絡應用能夠實現(xiàn)集成,達到業(yè)務的協(xié)同,實現(xiàn)業(yè)務的靈活性。 ?。ū疚挠山鸬虚g件有限公司總經(jīng)理 奉繼承 博士 撰寫) 該文章在 2014/12/3 0:14:05 編輯過 |
關鍵字查詢
相關文章
正在查詢... |