中間件是伴隨著網(wǎng)絡(luò)應(yīng)用的發(fā)展而逐漸成長起來的技術(shù)體系。最初的中間件發(fā)展驅(qū)動力是需要有一個公共的標(biāo)準(zhǔn)的應(yīng)用開發(fā)平臺來屏蔽不同操作系統(tǒng)之間的環(huán)境和API差異,也就是所謂操作系統(tǒng)與應(yīng)用程序之間“中間”的這一層叫中間件。但隨著網(wǎng)絡(luò)應(yīng)用的需求,解決不同系統(tǒng)之間的網(wǎng)絡(luò)通信、安全、事務(wù)的性能、傳輸?shù)目煽啃浴⒄Z義的解析、數(shù)據(jù)和應(yīng)用的整合這些問題,變成中間件的更重要的驅(qū)動因素。因此,相繼出現(xiàn)了解決網(wǎng)絡(luò)應(yīng)用的交易中間件、消息中間件、集成中間件等各種功能性的中間件技術(shù)和產(chǎn)品。

  現(xiàn)在,中間件已經(jīng)成為網(wǎng)絡(luò)應(yīng)用系統(tǒng)開發(fā)、集成、部署、運行和管理必不可少的工具。由于中間件技術(shù)涉及網(wǎng)絡(luò)應(yīng)用的各個層面,涵蓋從基礎(chǔ)通訊、數(shù)據(jù)訪問到應(yīng)用集成等眾多的環(huán)節(jié),因此,中間件技術(shù)呈現(xiàn)出多樣化的發(fā)展特點。

  傳統(tǒng)中間件在支持相對封閉、靜態(tài)、穩(wěn)定、易控的企業(yè)網(wǎng)絡(luò)環(huán)境中的企業(yè)計算和信息資源共享方面取得了巨大成功,但在新時期以開放、動態(tài)、多變的互聯(lián)網(wǎng)(Internet)為代表的網(wǎng)絡(luò)技術(shù)沖擊下,還是顯露出了它的固有局限性,如功能較為專一化,產(chǎn)品和技術(shù)之間存在著較大的異構(gòu)性,跨互聯(lián)網(wǎng)的集成和協(xié)同工作能力不足,僵化的基礎(chǔ)設(shè)施缺乏隨需應(yīng)變能力等等,在互聯(lián)網(wǎng)計算帶來的巨大挑戰(zhàn)面前顯得力不從心,時代要求新的技術(shù)變革。

  中間件技術(shù)的發(fā)展方向,將聚焦于消除信息孤島,推動無邊界信息流,支撐開放、動態(tài)、多變的互聯(lián)網(wǎng)環(huán)境中的復(fù)雜應(yīng)用系統(tǒng),實現(xiàn)對分布于互聯(lián)網(wǎng)之上的各種自治信息資源(計算資源、數(shù)據(jù)資源、服務(wù)資源、軟件資源)的簡單、標(biāo)準(zhǔn)、快速、靈活、可信、高效能及低成本的集成、協(xié)同和綜合利用,提高組織的IT基礎(chǔ)設(shè)施的業(yè)務(wù)敏捷性,降低總體運維成本,促進(jìn)IT與業(yè)務(wù)之間的匹配。中間件技術(shù)正在呈現(xiàn)出業(yè)務(wù)化、服務(wù)化、一體化、虛擬化等諸多新的重要發(fā)展趨勢。

  1.業(yè)務(wù)化:中間件正在“變厚變寬”

  中間件的本質(zhì)特征是對計算環(huán)境的抽象和對應(yīng)用共性的凝煉。十年來,中間件的發(fā)展多在計算環(huán)境的抽象上。目前的中間件可以在不同操作系統(tǒng)、不同網(wǎng)絡(luò)環(huán)境下提供各種應(yīng)用服務(wù)。

  抽取分布系統(tǒng)構(gòu)造中的共性問題,封裝這些共性問題的解決機(jī)制,對外提供簡單統(tǒng)一的接口,從而減少開發(fā)人員在解決這些共性問題時的難度和工作量。因此,其顯著特點之一就是自底向上的技術(shù)導(dǎo)向,它典型地是對操作系統(tǒng)、網(wǎng)絡(luò)、編程語言等基礎(chǔ)軟件能力的抽象和封裝,其關(guān)注主要聚焦于分布式應(yīng)用構(gòu)建的技術(shù)細(xì)節(jié)。

  越來越多的網(wǎng)絡(luò)應(yīng)用將被抽象形成標(biāo)準(zhǔn)的平臺服務(wù),加入到中間件之中,成為重要的技術(shù)特征。

  業(yè)務(wù)化代表了中間件對復(fù)雜業(yè)務(wù)支持方面的發(fā)展趨勢,即,從自底向上技術(shù)驅(qū)動轉(zhuǎn)變?yōu)楦嘧皂斚蛳碌膽?yīng)用層的業(yè)務(wù)驅(qū)動,凝練更多的應(yīng)用和業(yè)務(wù)模式,支持復(fù)雜業(yè)務(wù)的開放式多方協(xié)同和按需集成能力。

  眾所周知,對組織而言,通過IT對信息進(jìn)行有效的管理及利用是其業(yè)務(wù)成功的關(guān)鍵因素,IT是要為業(yè)務(wù)服務(wù)的。中間件技術(shù)作為企業(yè)計算的核心基礎(chǔ)設(shè)施之一,僅僅關(guān)注技術(shù)本身是不夠的,尤其是在當(dāng)今全球化趨勢之中謀求生存和發(fā)展,IT信息系統(tǒng)及其基礎(chǔ)設(shè)施對戰(zhàn)略和業(yè)務(wù)的有效支持是至關(guān)重要的。因此,作為共性的凝練,中間件不僅要從底層的技術(shù)入手,將共性技術(shù)的特征抽象進(jìn)中間層,還要更多地把目光投向到業(yè)務(wù)層面上來,根據(jù)業(yè)務(wù)的需要,驅(qū)動自身能力的不斷演進(jìn),即,不斷出現(xiàn)的新的業(yè)務(wù)需要驅(qū)動了應(yīng)用模式和信息系統(tǒng)能力的不斷演進(jìn),進(jìn)而要求中間件不斷地凝練更多的業(yè)務(wù)共性,提供針對性支撐機(jī)制。近年來,這一需求趨勢愈發(fā)明顯,越來越多的業(yè)務(wù)和應(yīng)用模式被不斷地抽象進(jìn)入中間件的層次,如業(yè)務(wù)流程流、業(yè)務(wù)模型、業(yè)務(wù)規(guī)則、交互應(yīng)用等等,其結(jié)果是中間件凝練的共性功能越來越多,形象的看,中間件的發(fā)展趨勢之一就是變得越來越“厚”。

  此外,在以互聯(lián)網(wǎng)為代表的新技術(shù)推動下,伴隨全球化的腳步以及國民經(jīng)濟(jì)和國家信息化建設(shè)的高速發(fā)展,企業(yè)/政府的業(yè)務(wù)合作和資源共享的廣度、深度和頻度都在不斷的拓展,企業(yè)競爭本身已經(jīng)從單純的個體間行為演變?yōu)楫a(chǎn)業(yè)鏈層面上的激烈競爭,而電子商務(wù)的建設(shè)也呈現(xiàn)出從邊沿向縱深的發(fā)展趨勢。企業(yè)信息化在ERP打破企業(yè)內(nèi)部界限,形成企業(yè)內(nèi)部無邊界信息流的情況下,全程電子商務(wù)將實現(xiàn)企業(yè)、伙伴、供應(yīng)商和客戶的互聯(lián)互通,打破企業(yè)間的界限,形成跨行業(yè)/組織/部門之間無邊界信息流,復(fù)雜業(yè)務(wù)協(xié)同往往需要將原本零散、片段的業(yè)務(wù)流程(人工/自動)和信息優(yōu)化進(jìn)一個集成的環(huán)境,多個業(yè)務(wù)實體在互聯(lián)網(wǎng)提供的廣泛連通性基礎(chǔ)之上進(jìn)行開放、靈活、可信的信息交換和互操作,實現(xiàn)企業(yè)間的業(yè)務(wù)協(xié)同,及時響應(yīng)變化并有效的支持業(yè)務(wù)戰(zhàn)略的交付,從而快速形成新的競爭力優(yōu)勢。因此,從支持基于互聯(lián)網(wǎng)廣泛連通性的復(fù)雜業(yè)務(wù)協(xié)同和集成的角度來看,形象地說,中間件的另一發(fā)展趨勢是變得越來越“寬”。

  2.服務(wù)化:中間件將面向服務(wù),易于集成

  服務(wù)化代表了中間件在提升IT基礎(chǔ)設(shè)施的業(yè)務(wù)敏捷性方面的發(fā)展趨勢,即支持對基于互聯(lián)網(wǎng)的數(shù)據(jù)存儲、軟件和服務(wù)資源進(jìn)行標(biāo)準(zhǔn)化的抽象和能力提供,橋接不同業(yè)務(wù)平臺之間的技術(shù)異構(gòu)性,并提供業(yè)務(wù)按需靈活組織的能力,讓IT與業(yè)務(wù)密切匹配,提升組織的業(yè)務(wù)敏捷性。

  企業(yè)最根本的痛點在于其易變的業(yè)務(wù)和僵化的IT基礎(chǔ)設(shè)施之間的尖銳矛盾。業(yè)務(wù)的易變性是企業(yè)試圖通過業(yè)務(wù)差異化而謀求利益最大化的必然結(jié)果,是激烈的市場競爭的產(chǎn)物。問題在于,企業(yè)常常發(fā)現(xiàn):業(yè)務(wù)需要改變,但I(xiàn)T卻不能迅速地加以響應(yīng)。為什么?根本原因就在于目前最重要的軟件開發(fā)技術(shù)上存在著嚴(yán)重問題未能解決。

  解決這些問題,技術(shù)的本質(zhì)是復(fù)用、松耦合、互操作(標(biāo)準(zhǔn))等軟件技術(shù)的內(nèi)在機(jī)制。軟件復(fù)用,即軟件的重用,也叫再用,是指同一事物不作修改或稍加改動就多次重復(fù)使用。從軟件復(fù)用技術(shù)的發(fā)展來看,就是不斷提升抽象級別,擴(kuò)大復(fù)用范圍。最早的復(fù)用技術(shù)是子程序,人們發(fā)明子程序,就可以在不同系統(tǒng)之間進(jìn)行復(fù)用了。但是,子程序是最原始的復(fù)用,因為這種復(fù)用范圍是一個可執(zhí)行程序內(nèi)復(fù)用,靜態(tài)開發(fā)期復(fù)用,如果子程序修改,意味著所有調(diào)用這個子程序的程序必須重新編譯、測試和發(fā)布。

  為了解決這個問題,發(fā)明了組件(或者叫控件),如MS操作系統(tǒng)下的DLL組件。組件將復(fù)用提升了一個層次,因為組件可以在一個系統(tǒng)內(nèi)復(fù)用(同一種操作系統(tǒng)),而且是動態(tài)、運行期復(fù)用。這樣組件可以單獨發(fā)展,組件與組件調(diào)用者之間的耦合度降低。

  為解決分布式網(wǎng)絡(luò)計算之間的組件復(fù)用,人們發(fā)明了企業(yè)對象組件,如(Com+,.NET,EJB等),或者叫分布式組件。通過遠(yuǎn)程對象代理,來實現(xiàn)企業(yè)網(wǎng)絡(luò)內(nèi)復(fù)用,不同系統(tǒng)之間復(fù)用。

  傳統(tǒng)中間件的核心是組件對象的管理。但分布式組件也是嚴(yán)重依賴其受控環(huán)境,由于構(gòu)件實現(xiàn)和運行支撐技術(shù)之間存在著較大的異構(gòu)性,不同技術(shù)設(shè)計和實現(xiàn)的構(gòu)件之間無法直接組裝式復(fù)用。

  而現(xiàn)代中間件的發(fā)展重要趨勢就是以服務(wù)為核心,如WebService,SCA/SDO等。通過服務(wù),或者服務(wù)組件來實現(xiàn)更高層次的復(fù)用、解耦和互操作,即SOA架構(gòu)中間件。

  因為服務(wù)是通過標(biāo)準(zhǔn)封裝,服務(wù)組件之間的組裝、編排和重組,來實現(xiàn)服務(wù)的復(fù)用。而且這種復(fù)用,可以在不同企業(yè)之間,全球復(fù)用,達(dá)到復(fù)用的最高級別,并且是動態(tài)可配置的復(fù)用。

  SOA架構(gòu)在松耦合,將中間件的解耦過程也發(fā)展到了最后的境界。傳統(tǒng)軟件將軟件之中核心三部分網(wǎng)絡(luò)連接、數(shù)據(jù)轉(zhuǎn)換、業(yè)務(wù)邏輯全部耦合在一個整體之中,形成“鐵板一塊”的軟件,“牽一發(fā)而動全身”,軟件就難以適應(yīng)變化。分布式對象技術(shù)將連接邏輯進(jìn)行分離,消息中間件將連接邏輯進(jìn)行異步處理,增加了更大的靈活性。消息代理和一些分布式對象中間件將數(shù)據(jù)轉(zhuǎn)換也進(jìn)行了分離。而SOA架構(gòu),通過服務(wù)的封裝,實現(xiàn)了業(yè)務(wù)邏輯與網(wǎng)絡(luò)連接、數(shù)據(jù)轉(zhuǎn)換等進(jìn)行完全的解耦。

  軟件互操作技術(shù)也存在問題?;ヂ?lián)網(wǎng)前所未有的開放性意味著各節(jié)點可采用不同的中間件技術(shù),對技術(shù)細(xì)節(jié)進(jìn)行了私有化的約束,構(gòu)件模型和架構(gòu)沒有統(tǒng)一標(biāo)準(zhǔn),從而導(dǎo)致中間件平臺自身在構(gòu)件描述、發(fā)布、發(fā)現(xiàn)、調(diào)用、互操作協(xié)議及數(shù)據(jù)傳輸?shù)确矫娉尸F(xiàn)出巨大的異構(gòu)性。各種不良技術(shù)約束的結(jié)果是軟件系統(tǒng)跨互聯(lián)網(wǎng)進(jìn)行交互變得困難重重,最終導(dǎo)致了跨企業(yè)/部門的業(yè)務(wù)集成和重組難以靈活快速的進(jìn)行。

  在軟件的互操作方面,傳統(tǒng)中間件只是實現(xiàn)了訪問互操作,即通過標(biāo)準(zhǔn)化的API實現(xiàn)了同類系統(tǒng)之間的互操作,而連接互操作還是依賴于特定的訪問協(xié)議,如JAVA使用RMI,CORBA使用IIOP等。而SOA通過標(biāo)準(zhǔn)的、支持Internet、與操作系統(tǒng)無關(guān)的SOAP協(xié)議實現(xiàn)了連接互操作。而且,服務(wù)的封裝是采用XML協(xié)議,具有自解析和自定義的特性,這樣,基于SOA的中間件還可以實現(xiàn)語義互操作。

  因此,下一代的中間件將在軟件的模型、結(jié)構(gòu)、互操作以及開發(fā)方法等四個方面進(jìn)行優(yōu)化:

  模型:構(gòu)件模型彈性粒度化,即通過抽象層度更高的構(gòu)件模型,實現(xiàn)具備更高結(jié)構(gòu)獨立性、內(nèi)容自包含性和業(yè)務(wù)完整性的可復(fù)用構(gòu)件,即服務(wù)。并且在細(xì)粒度服務(wù)基礎(chǔ)上,提供了更粗粒度的服務(wù)封裝方式,即業(yè)務(wù)層面的封裝,形成業(yè)務(wù)組件,就可以實現(xiàn)從組件模型到業(yè)務(wù)模型的全生命周期企業(yè)建模的能力。

  結(jié)構(gòu):結(jié)構(gòu)松散化,即,將完整分離服務(wù)描述和服務(wù)功能實現(xiàn)以及服務(wù)的使用者和提供者,從而避免分布式應(yīng)用系統(tǒng)構(gòu)建和集成時常見的技術(shù)、組織、時間等不良約束。

  互操作:交互過程標(biāo)準(zhǔn)化,即,將與互操作相關(guān)的內(nèi)容進(jìn)行標(biāo)準(zhǔn)化定義,如服務(wù)封裝、描述、發(fā)布、發(fā)現(xiàn)、調(diào)用等契約,通信協(xié)議以及數(shù)據(jù)交換格式等等。最終實現(xiàn)訪問互操作、連接互操作和語義互操作。

  開發(fā)集成方法:應(yīng)用系統(tǒng)的構(gòu)建方式由代碼編寫轉(zhuǎn)為主要通過服務(wù)間的快捷組合及編排,完成更為復(fù)雜的業(yè)務(wù)邏輯的按需提供和改善,從而大大簡化和加速應(yīng)用系統(tǒng)的搭建及重構(gòu)過程。

  總之,服務(wù)化體現(xiàn)的是中間件在完整業(yè)務(wù)復(fù)用、靈活業(yè)務(wù)組織方面的發(fā)展趨勢,其核心目標(biāo)是提升IT基礎(chǔ)設(shè)施的業(yè)務(wù)敏捷性。因此,中間件將成為SOA的主要實現(xiàn)平臺。

責(zé)任編輯:admin