中間件技術探討論文
時間:2022-03-05 03:24:00
導語:中間件技術探討論文一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
1中間件的概念
在眾多關于中間件的定義中,比較普遍接受的是IDC表述:中間件是一種獨立的系統(tǒng)軟件或服務程序,分布式應用軟件借助這種軟件在不同的技術之間共享資源;中間件位于客戶機/服務器的操作系統(tǒng)之上,管理計算資源和網(wǎng)絡通信。IDC對中間件的定義表明,中間件是一類軟件,而非一種軟件;中間件是介于操作系統(tǒng)(包括底層通信協(xié)議)和各種分布式應用程序之間的一個軟件層。總的作用是建立分布式軟件模塊之間互操作的機制,屏蔽底層分布式環(huán)境的復雜性和異構性,為處于自己上層的應用軟件提供運行與開發(fā)環(huán)境,幫助用戶靈活、高效地開發(fā)和集成復雜的應用軟件。在具體實現(xiàn)上,中間件是一個用應用程序接口定義的分布式軟件管理框架,具有強大的通信能力和良好的可擴展性。中間件在分布式系統(tǒng)中的位置如圖1所示。
2中間件的分類
隨著計算機軟件技術的發(fā)展,中間件技術也已日漸成熟,并且出現(xiàn)了不同層次、不同類型的中間件產(chǎn)品。按照IDC分類方法,中間件可分為以下6類:
2.1終端仿真/屏幕轉(zhuǎn)換
用以實現(xiàn)客戶機圖形用戶接口與已有的字符接口方式的服務器應用程序之間的互操作。
2.2數(shù)據(jù)訪問中間件
適用于應用程序與數(shù)據(jù)源之間的互操作模型,客戶端使用面向數(shù)據(jù)庫的API,以提請直接訪問和更新基于服務器的數(shù)據(jù)源,數(shù)據(jù)源可以是關系型、非關系型和對象型。這類中間件大都基于SQL語句,采用同步通訊方式。此類中間件使應用開發(fā)簡單化,但如果透過廣域網(wǎng)使用,則會帶來嚴重的效率問題,因為在低速網(wǎng)上來回交互SQL語句會使通訊流量過大,同時對數(shù)據(jù)壓縮、加密帶來不便。
2.3遠程過程調(diào)用中間件
RPC機制是早期開發(fā)分布式應用時經(jīng)常采用的一種同步式的請求應答協(xié)議。通過這種協(xié)議,程序員編寫客戶方的應用,需要時可以調(diào)用位于遠端服務器上的過程。RPC擴展了過程語言中的“功能調(diào)用/結果返回”的機制,使得它可以適用于一個遠程環(huán)境。由于RPC機制是同步方式,因而在工作的時候,要求客戶方和服務方均能正確工作才能很好地運行,有一方不能工作將導致RPC失敗。在網(wǎng)絡故障、機器故障存在的情況下,這一要求是很難保證的。另外,由于大多數(shù)RPC機制很難建立點到點的關系,因而也很難用在面向?qū)ο蟮木幊坍斨小?/p>
2.4消息中間件
越來越多的分布式應用采用消息中間件來構建,通過消息中間件把應用擴展到不同的操作系統(tǒng)和不同的網(wǎng)絡環(huán)境?;谙⒌臋C制更多地適用于事件驅(qū)動的應用,當一個事件發(fā)生時,消息中間件通知服務方應該進行何種操作。其核心安裝在需要進行消息傳遞的系統(tǒng)上,在它們之間建立邏輯通道,由消息中間件實現(xiàn)消息發(fā)送。消息中間件可以支持同步方式和異步方式,實際上是一種點到點的機制,因而可以很好的適用于面向?qū)ο蟮木幊谭绞?。中間件領域目前最熱門的技術是異步的消息中間件,異步中間件技術比同步中間件技術具有更強的容錯性,在系統(tǒng)故障時可以保證消息的正常傳輸。
2.5交易中間件
是專門針對聯(lián)機交易處理系統(tǒng)而設計的,如銀行業(yè)務系統(tǒng)、定票系統(tǒng)等。聯(lián)機交易處理系統(tǒng)需要處理大量并發(fā)進程,處理并發(fā)涉及到操作系統(tǒng)、文件系統(tǒng)、編程語言、數(shù)據(jù)通訊、數(shù)據(jù)庫系統(tǒng)、系統(tǒng)管理、應用軟件,交易中間件就是一組程序模塊,用以減少開發(fā)一個聯(lián)機交易處理系統(tǒng)所需的編程量。
2.6對象中間件
傳統(tǒng)的面向?qū)ο蠹夹g通過封裝、繼承及多態(tài)提供了良好的代碼重用功能,但是這些對象只存在一個程序中,外面的世界并不知道它們的存在,也無法訪問它們。面向?qū)ο蟮闹虚g件就是要解決這些問題,面向?qū)ο蟮闹虚g件提供一個標準的構件框架,能使不同廠家的軟件通過不同的地址空間、網(wǎng)絡和操作系統(tǒng)交互訪問。該構件的具體實現(xiàn)、位置及所依附的操作系統(tǒng)對客戶來說都是透明的。
3主流中間件技術平臺
考察當前主流的分布計算技術平臺,主要有OMG的CORBA,Sun的J2EE和MicrosoftDNA20000,它們都是支持服務器端中間件技術開發(fā)的平臺,但都有其各自特點,將分別闡述如下:
3.1OMG的CORBA
公共對象請求體系結構(CORBA,CommonOb—jectRequestBrokerArchitecture)是對象管理組織(OMG)基于眾多開放系統(tǒng)平臺廠商提交的分布對象互操作內(nèi)容基礎上制定的分布式應用程序框架的規(guī)范。
CORBA是由絕大多數(shù)分布計算平臺廠商所支持和遵循的系統(tǒng)規(guī)范,具有模型完整、先進,獨立于系統(tǒng)平臺和開發(fā)語言,被支持程度廣泛的特點,已逐漸成為分布計算技術的標準。COBRA標準主要分為3個層次:對象請求、公共對象服務和公共設施。最底層是對象請求(ORB,ObjectRequestBroker),規(guī)定了分布對象的定義(接口)和語言映射,實現(xiàn)對象間的通訊和互操作,是分布對象系統(tǒng)中的“軟總線”;在ORB之上定義了很多公共服務,可以提供諸如并發(fā)服
務、名字服務、事務(交易)服務、安全服務等各種各樣的服務;最上層的公共設施則定義了組件框架,提供可直接為業(yè)務對象使用的服務,規(guī)定業(yè)務對象有效協(xié)作所需的協(xié)定規(guī)則。CORBA的優(yōu)點是大而全,互操作性和開放性非常好,缺點是龐大而復雜,并且技術和標準的更新相對較慢,在具體的應用中使用不是很多。
3.2Sun的J2EE
為了推動基于Java的服務器端應用開發(fā),Sun在1999年底推出了Java2技術及相關的J2EE規(guī)范。
J2EE的目標是提供與平臺無關的、可移植的、支持并發(fā)訪問和安全的、完全基于Java的開發(fā)服務器端中間件的標準。J2EE簡化了構件可伸縮的、基于構件服務器端應用的復雜度。在J2EE中,Sun給出了完整的基于Java語言開發(fā)面向企業(yè)分布應用的規(guī)范,其中在分布式互操作協(xié)議上,J2EE同時支持遠程方法調(diào)用(RMI,Re—moteMethodlnvocation)和因特網(wǎng)對象請求間協(xié)議(IlOP,IntemetInter-ORBProtocal),在服務器端分布式應用的構造形式包括了JavaScrvlct、JSP(JavaServerPage)、EJB等多種形式,以支持不同的業(yè)務需求。
EJB是Sun推出的基于Java的服務器端構件規(guī)范J2EE的一部分,在J2EE推出之后得到了廣泛的發(fā)展,已經(jīng)成為應用服務器端的標準技術。SunEJB技術是在JavaBean本地構件基礎上,發(fā)展的面向服務器端分布應用構件技術。它基于Java語言,提供了基于Java二進制字節(jié)代碼的重用方式。EJB給出了系統(tǒng)的服務器端分布構件規(guī)范,這包括了構件、構件容器的接口規(guī)范以及構件打包、構件配置等的標準規(guī)范內(nèi)容。EJB技術的推出,使得用Java基于構件方法開發(fā)服務器端分布式應用成為可能。從企業(yè)應用多層結構的角度,EJB是業(yè)務邏輯層的中間件技術,與JavaBeans不同,它提供了事務處理的能力,自從三層結構提出以后,中間層,也就是業(yè)務邏輯層,是處理事務的核心,從數(shù)據(jù)存儲層分離,取代了存儲層的大部分地位。從分布式計算的角度,EJB像CORBA一樣,提供了分布式技術的基礎,提供了對象之間的通訊手段。
從Internet技術應用的角度,EJB和Servlct,JSP一起成為新一代應用服務器的技術標準,EJB中的Bean可以分為會話Bean和實體Bean,前者維護會話,后者處理事務,現(xiàn)在Scrvlet負責與客戶端通信,訪問EJB,并把結果通過JSP產(chǎn)生頁面?zhèn)骰乜蛻舳恕?/p>
J2EE的優(yōu)點是技術先進,架構優(yōu)秀,真正的三層結構,用Java開發(fā)構件,能夠做到“Writeonce,runany—where”,開發(fā)大型的應用優(yōu)勢明顯,可以配置到包括Windows平臺在內(nèi)的任何服務器端環(huán)境中去。缺點是缺少一系列的接口支持,技術進入門檻高,開發(fā)起來的難度大。
3.3MicrosoftDNA2000
MicrosoftDNA2000(DistributedinterNetApplications)是Microsoft在推出Windows2000系列操作系統(tǒng)平臺基礎上,在擴展了分布計算模型以及改造BackOffice系列服務器端分布計算產(chǎn)品后的新的分布計算體系結構和規(guī)范。
在服務器端,DNA2000提供了ASP、COM、Cluster等的應用支持。目前,DNA2000在技術結構上有著巨大的優(yōu)越性。一方面,由于Microsoft是操作系統(tǒng)平臺廠商,因此DNA2000技術得到了底層操作系統(tǒng)平臺的強大支持;另一方面,由于Microsoft的操作系統(tǒng)平臺應用廣泛,因此在實際應用中,DNA2000得到了眾多應用開發(fā)商的采用和支持。
DNA2000融合了當今最先進的分布計算理論和思想,如事務處理、可伸縮性、異步消息隊列、集群等內(nèi)容。DNA使得開發(fā)可以基于Microsoft平臺的服務器構件應用,其中,如數(shù)據(jù)庫事務服務、異步通訊服務和安全服務等,都由底層的分布對象系統(tǒng)提供。
以Microsoft為首的DCOM/COM/COM+陣營,從DDE,OLE到ActiveX等,提供了中間件開發(fā)的基礎,如VC,VB,Delphi等都支持DCOM,包括OLEDB在內(nèi)新的數(shù)據(jù)庫存取技術,隨著Windows2000的,Microsoft的DCOM/COM/COM+技術,在DNA2000分布計算結構基礎上,展現(xiàn)了一個全新的分布構件應用模型。首先,DCOM/COM/COM+的構件仍然采用普通的COM(ComponentObjectModel)模型。COM最初作為Microsoft桌面系統(tǒng)的構件技術,主要為本地的OLE應用服務,但是隨著Mi-crosoft服務器操作系統(tǒng)NT和DCOM的,COM通過底層的遠程支持使得構件技術延伸到了分布應用領域。DCOM/COM/COM+更將其擴充為面向服務器端分布應用的業(yè)務邏輯中間件。通過COM+的相關服務設施,如負載均衡、內(nèi)存數(shù)據(jù)庫、對象池、構件管理與配置等等,DCOM/COM/COM+將COM、DCOM、MTS的功能有機地統(tǒng)一在一起,形成了一個概念、功能強的構件應用體系結構。而且,DNA2000是單一廠家提供的分布對象構件模型,開發(fā)者使用的是同一廠家提供的系列開發(fā)工具,這比組合多家開發(fā)工具更有吸引力,不足是依賴于Mi-crosoft的操作系統(tǒng)平臺,因而在其它開發(fā)系統(tǒng)平臺如(Unix、Linux)上不能發(fā)揮作用。
4中間件技術的發(fā)展趨勢
4.1網(wǎng)格技術
中間件技術當前所面臨的重大挑戰(zhàn)是要在互聯(lián)網(wǎng)這個復雜的分布式系統(tǒng)中構建應用程序。許多計算機專家認為,將整個互聯(lián)網(wǎng)的各種資源全部整合在一起,為用戶提供統(tǒng)一的服務,是相當困難甚至難以實現(xiàn)的。當然,對于具體的應用領域,具體的網(wǎng)絡區(qū)域,用中間件技術將其中的各種資源整合在一起還是相當有前景的。目前方興未艾的網(wǎng)格(GRID)技術實質(zhì)上即是一個基于互聯(lián)網(wǎng)的中間件系統(tǒng),可同時運用網(wǎng)絡中所有的CPU、存儲器、操作系統(tǒng)、應用軟件等資源,用戶通過PC、手機或PDA,可從互聯(lián)網(wǎng)上獲取來自全球的資源,互聯(lián)網(wǎng)將變成一個虛擬的、強大的計算平臺。網(wǎng)格的重要特征是對資源的共享和管理,包括:(1)計算資源。啟動程序,監(jiān)測、控制進程運行;對分配給進程的資源的管理機制;查詢功能,確定硬、軟件狀態(tài)、相關負載信息和隊列狀態(tài)等。(2)存儲資源。上載、下載文件;對分配給數(shù)據(jù)傳輸?shù)馁Y源(空間、磁盤帶寬、網(wǎng)絡帶寬、CPU)的管理機制,確定可用空間、帶寬使用率等相關負載信息。(3)網(wǎng)絡資源。提供控制分配給網(wǎng)絡傳輸?shù)馁Y源的管理機制;查詢網(wǎng)絡狀態(tài)和負載的功能。(4)代碼庫。管理源碼和目標碼的機制。另外,網(wǎng)格系統(tǒng)還應包括:①網(wǎng)格特有事務所需要的通信和認證協(xié)議,通信協(xié)議允許資源之間交換數(shù)據(jù),功能包括傳輸、尋徑和名字服務。建立在通信協(xié)議之上的認證協(xié)議為確認用戶和資源的身份提供加密安全機制。②管理一組相關聯(lián)的資源集合
并負責資源集合之間的交互,包括:目錄服務、合作分配資源任務調(diào)度服務、監(jiān)控診斷服務、數(shù)據(jù)復制服務、支持網(wǎng)格的編程、軟件發(fā)現(xiàn)服務、團體授權服務等。
4.2面向移動計算
移動計算問題可以具體展開為三個方面:①用戶移動。無論用戶處在什么位置,都能為其提供一致的工作環(huán)境,包括用戶的配置信息和他所“訂閱”的服務。②終端移動。使終端設備無論在任何接入點接入網(wǎng)絡,都能正常工作,也就是說底層網(wǎng)絡對終端設備是透明的。③服務移動。當前,越來越多的服務依賴于移動的資源,甚至服務本身就處在不斷移動中,必須保證用戶及其終端設備可以隨時找到這些服務。據(jù)此,移動計算需要一個基礎設施將合適的協(xié)議、機制、工具集成起來,提供上述三方面的功能。移動中間件正是這樣一種基礎軟件。它隨時對移動用戶和終端進行跟蹤和重定位,保證移動實體的相互通信,克服系統(tǒng)的異構性,并且為開放的網(wǎng)絡環(huán)境提供安全性。隨著網(wǎng)絡帶寬不斷增大,人們對移動設備的服務質(zhì)量問題的顧慮漸漸打消,而使用移動設備的方便性日益突出。人們要求各種服務都可以在移動的情況下(包括上述三種情況)獲得。因而移動中間件具有十分廣泛的發(fā)展前景。泛化計算(UbiquitousComputing)是移動計算的極至,指從大型機、PC、到PDA以至安裝有處理器的各種各樣的日常生活設備之間能夠相互通信、協(xié)調(diào)工作。顯然,在這個領域,中間件面臨更為復雜的異構環(huán)境以及無線通信和動態(tài)配置的挑戰(zhàn)。
4.3面向服務質(zhì)量
傳統(tǒng)的單一系統(tǒng),如大型主機、容錯系統(tǒng)等,依賴昂貴的配置與設計來實現(xiàn)高可用性,而高可用中間件主要是在軟件層面利用系統(tǒng)的冗余部件(比如機群系統(tǒng)有大量這樣的部件)為用戶提供高可用功能。這有三個方面的優(yōu)勢:成本低、可擴展性好、更加靈活方便。為了保證數(shù)據(jù)的可靠性和一致性,還有必要在中間件中增加保證QOS的協(xié)議(在CORBA中已經(jīng)有這樣的協(xié)議)以實現(xiàn)數(shù)據(jù)的備份以及各種各樣的容錯功能。另外,還要保證此方法的響應時間盡可能的快(這里泛指用戶響應時間以及切換時間等一切影響服務質(zhì)量的時間)。隨著網(wǎng)絡技術的發(fā)展,越來越多的用戶使用網(wǎng)絡提供的服務,這就對服務質(zhì)量提出了更高的要求,質(zhì)量低劣的服務是沒有市場的。高可用中間件、容錯中間件在這一背景下將不斷完善和發(fā)展。
4.4各種技術的發(fā)展對中間件技術產(chǎn)生的影響
由于中間件系統(tǒng)的主要目的就是整合各種異構系統(tǒng)中的資源,使其協(xié)調(diào)工作。因此,各種異構系統(tǒng)中各種技術的發(fā)展都會或者為中間件系統(tǒng)的開發(fā)提供便利,或者設置障礙。WebService技術就是在XML語言、異步通信機制、以及基于內(nèi)容的消息傳遞機制等各種技術發(fā)展基礎之上提出并發(fā)展起來的。又例如,當前移動(MobileAgent)技術在中間件的設計和實現(xiàn)過程中發(fā)揮越來越重要的作用,特別是基于互聯(lián)網(wǎng)的應用以及涉及到移動計算和泛化計算的中間件的設計。移動代碼和移動技術可以提高分布式系統(tǒng)的靈活性和適應性。
中間件從本質(zhì)上是對分布式應用的抽象,拋開了與應用相關的業(yè)務邏輯的細節(jié),保留了典型的分布交互模式的關鍵特征,將紛繁復雜的分布式系統(tǒng)以統(tǒng)一的層面形式呈現(xiàn)給應用。應用在中間件提供的環(huán)境中可以更好地集中于業(yè)務邏輯上,并以構件化的形式存在,最終自然而然地在異構環(huán)境中實現(xiàn)良好的協(xié)同工作。構件是一種前沿的軟件設計思想,對整個軟件行業(yè)的發(fā)展有著至關重要的推動作用。而中間件作為應用軟件系統(tǒng)集成的關鍵技術,保證了構件化思想的實施,并為構件提供了真正的運行空間。中間件工業(yè)化標準的制定、統(tǒng)一及實現(xiàn),使基于構件的應用開發(fā)成為可能,可以預見,軟構件技術是軟件產(chǎn)業(yè)化革命的必然發(fā)展趨勢。