原文:http://hy.gzntax.gov.cn/k/2009-3/1192645.html
公共對象請求代理體系結(jié)構(gòu)(CORBA)是對象管理組織(OMG)為解決分布式處理環(huán)境中硬件和軟件系統(tǒng)的互連而提出的一種解決方案。它提供了面向
對象應(yīng)用的互操作標準,提供了在異構(gòu)分布環(huán)境下不同機器上的不同應(yīng)用的互操作能力,并提供了將多個對象系統(tǒng)無縫互連的能力。在分布式計算環(huán)境
下,CORBA分布式對象技術(shù)正逐漸成為主流的發(fā)展方向。使用分布式對象技術(shù)開發(fā)的系統(tǒng)具有結(jié)構(gòu)靈活、與軟硬件平臺無關(guān)、系統(tǒng)可擴展等優(yōu)點,特別適用于網(wǎng)
絡(luò)環(huán)境下分布式系統(tǒng)的開發(fā),能夠有效地解決異構(gòu)環(huán)境下的應(yīng)用互操作性和系統(tǒng)集成問題。
??? 綜合網(wǎng)絡(luò)管理概述
??? 網(wǎng)絡(luò)管理現(xiàn)狀及需求
???
隨著網(wǎng)絡(luò)規(guī)模的不斷擴大以及網(wǎng)絡(luò)技術(shù)的不斷出新,不同廠商提供的網(wǎng)絡(luò)設(shè)備和網(wǎng)絡(luò)服務(wù)類型日益增多,出于保護投資的目的,網(wǎng)絡(luò)中各種新舊設(shè)備長期共存,使當(dāng)
今的網(wǎng)絡(luò)呈現(xiàn)出大規(guī)模的軟硬件異構(gòu)性。目前,電信運營商擁有的電信網(wǎng)絡(luò)是由許多獨立管理的業(yè)務(wù)網(wǎng)(如PSTN、IP)和支撐網(wǎng)(如同步網(wǎng)、七號信令網(wǎng))互
連而成的。在這個規(guī)模龐大的網(wǎng)絡(luò)中,資源和業(yè)務(wù)緊密結(jié)合,特定的資源提供特定的業(yè)務(wù),導(dǎo)致目前存在的網(wǎng)管系統(tǒng)大多是由相對獨立、分離的多個專業(yè)網(wǎng)網(wǎng)管系統(tǒng)
(SNMS:SpecialNetworkManagementSystem)組成。這些網(wǎng)管系統(tǒng)按專業(yè)設(shè)置,由開發(fā)商采用不同的技術(shù)和管理協(xié)議自行研制
建成,因此不可避免地帶來網(wǎng)絡(luò)協(xié)議互不兼容、管理信息不能互通、整個網(wǎng)絡(luò)缺乏綜合管理、操作界面多樣等問題。這給網(wǎng)絡(luò)管理系統(tǒng)的設(shè)計開發(fā)提出了更高的要
求。
???
目前的網(wǎng)絡(luò)管理標準主要有OSI發(fā)布的公共管理信息協(xié)議(CMIP:CommonManagenmentInformationProtocol)和
IETF發(fā)布的簡單網(wǎng)絡(luò)管理協(xié)議(SNMP:Simple Network Managenment Protocol),
CMIP是理論上比較完善的標準,主要在電信網(wǎng)管領(lǐng)域中應(yīng)用,但它過于復(fù)雜,難以完全實現(xiàn)。SNMP因其簡單易實現(xiàn),成為Internet網(wǎng)絡(luò)管理中實際
采用的標準,但也因為過于簡單,在功能和安全性上得不到保證。在面對綜合網(wǎng)絡(luò)管理的特點和管理需求時,上述兩種傳統(tǒng)網(wǎng)絡(luò)管理技術(shù)的優(yōu)勢不復(fù)存在,因為它們
都無法單獨完成綜合網(wǎng)絡(luò)管理的功能。
???
因此,構(gòu)筑新的管理體系結(jié)構(gòu),應(yīng)用新的管理技術(shù),設(shè)計構(gòu)建運行在異構(gòu)網(wǎng)絡(luò)環(huán)境上的開放式的綜合網(wǎng)管系統(tǒng),屏蔽網(wǎng)絡(luò)軟硬件的異構(gòu)性,提供異構(gòu)系統(tǒng)之間的互操
作,從而實現(xiàn)不同設(shè)備、軟件系統(tǒng)、網(wǎng)絡(luò)管理標準之間的無縫集成,是當(dāng)前網(wǎng)絡(luò)管理的必然趨勢。
??? 現(xiàn)有技術(shù)方案的對比分析
???
目前,綜合網(wǎng)絡(luò)管理主要有以下三種解決方案。方案1是在需要進行綜合管理網(wǎng)絡(luò)的SNMS之上設(shè)置一個圖形用戶界面
(GUI:GraphicUserInterface),以人工方式在此界面上完成綜合管理的應(yīng)用。
??? 方案2是在各個網(wǎng)絡(luò)的SNMS之間設(shè)置綜合管理接口,SNMS之間通過該接口交換數(shù)據(jù),實現(xiàn)綜合管理。
???
方案3即是在各個網(wǎng)絡(luò)的SNMS之上設(shè)置一個高層的網(wǎng)管系統(tǒng)-綜合網(wǎng)管系統(tǒng)
(INMS:IntegratedNetworkManagementSystem),SNMS通過特定的接口向INMS提供管理信息,由INMS完成全
網(wǎng)配置、故障和性能的綜合管理。各專業(yè)網(wǎng)間被設(shè)計為關(guān)聯(lián)關(guān)系,因而SNMS之間不需要接口。
??? 比較以上三種不同的解決方案,可以得到如下結(jié)論。
???
1.方案1實質(zhì)上只是基于用戶界面層的綜合。通過將各網(wǎng)管的GUI綜合在一起,使綜合網(wǎng)絡(luò)管理者可以用同一圖形界面操作不同的網(wǎng)管系統(tǒng)。由于它沒有建立自
己的數(shù)據(jù)模型和數(shù)據(jù)庫,所以基于此方案的綜合網(wǎng)管系統(tǒng)不能實現(xiàn)各被管理網(wǎng)絡(luò)之間關(guān)系的管理。從長遠來看,這種方案不能滿足電信網(wǎng)絡(luò)不斷發(fā)展的需要。
???
2.方案2和方案3以不同的方式實現(xiàn)了被管理網(wǎng)絡(luò)間管理信息的互通和網(wǎng)間關(guān)系的管理,并且都有效地兼容了已有的網(wǎng)管系統(tǒng)。但是,還應(yīng)進一步從以下幾個方面
進行分析比較:①網(wǎng)管接口的數(shù)量:當(dāng)被管理的專業(yè)網(wǎng)數(shù)量為n個時,方案2中需要有n(n-1)/2個網(wǎng)管接口,方案3中需要n個網(wǎng)管接口。當(dāng)n≥4時,方
案2的網(wǎng)管接口數(shù)量大于方案3中網(wǎng)管接口的數(shù)量。實際情況中,專業(yè)網(wǎng)的數(shù)量通常是遠大于4的。②伸縮性:當(dāng)增加或刪除一個SNMS時,對于方案2而言,所
有其相關(guān)網(wǎng)絡(luò)的網(wǎng)管系統(tǒng)都必須增加或刪除一個網(wǎng)管接口,并修改相關(guān)的管理信息等;而對于方案3來講,只需要網(wǎng)管系統(tǒng)增加或刪除一個網(wǎng)管接口和相應(yīng)的網(wǎng)管功
能,與該網(wǎng)絡(luò)相關(guān)的其他專業(yè)網(wǎng)只需做較小的改動即可。③適應(yīng)性:當(dāng)專業(yè)網(wǎng)之間的關(guān)系發(fā)生變化時,方案2就要在相關(guān)SNMS上增刪或修改網(wǎng)管接口;方案3則
是通過調(diào)整INMS,修改其中相關(guān)的信息來適應(yīng)這種變化。④全局性:方案3中,INMS可以通過管理接口與SNMS進行信息交互。與方案2相比,它更容易
得到整個混合網(wǎng)絡(luò)的管理信息,建立全網(wǎng)資源的信息模型,進行全網(wǎng)資源的調(diào)配和優(yōu)化,掌握全網(wǎng)的運行情況和性能,從而有效地實現(xiàn)全網(wǎng)管理。此外,方案3還能
更有效地實現(xiàn)SNMS間的信息傳遞,協(xié)調(diào)專業(yè)網(wǎng)間的互操作。
???
通過比較不難看出,方案3是一種務(wù)實的并可以滿足電信網(wǎng)發(fā)展需要的選擇。它可以很好地兼容現(xiàn)有的SNMS,實現(xiàn)平滑過渡。而且由于其良好的伸縮性、適應(yīng)性
和全局性,在整體網(wǎng)絡(luò)的規(guī)模、關(guān)系等發(fā)生變化或產(chǎn)生新的網(wǎng)管需求時,它可以以更低的代價和更快的速度適應(yīng)變化并滿足新的需求。
??? 系統(tǒng)的設(shè)計思想
??? 總體結(jié)構(gòu)
??? 根據(jù)以上對現(xiàn)有的多專業(yè)網(wǎng)綜合網(wǎng)管方案的討論,采取方案3建立高層綜合網(wǎng)管系統(tǒng)是一種較好的選擇,它所對應(yīng)的體系結(jié)構(gòu)如圖1所示。
???
按照電信管理網(wǎng)(TMN)的分層結(jié)構(gòu),在方案3的體系結(jié)構(gòu)中,各SNMS行使了網(wǎng)元管理層(EML:ElementManagementLevel)的功
能,綜合網(wǎng)管系統(tǒng)行使了網(wǎng)絡(luò)管理層(NML:NetworkManagement
Level)的功能,上層的業(yè)務(wù)管理系統(tǒng)以及商務(wù)管理系統(tǒng)分別行使業(yè)務(wù)管理層(SML:Service Management
Level)和商務(wù)管理層(BML:Business Managenment Level)的功能。
???
在該體系中,各SNMS并無直接關(guān)系,而是通過上一級的INMS實現(xiàn)彼此之間的信息傳遞和互操作。INMS屏蔽了各SNMS間設(shè)備、軟件系統(tǒng)甚至是網(wǎng)管標
準的不同,實現(xiàn)了SNMS之間的無縫連接。INMS的功能類似于計算機技術(shù)中“中間件”的概念,它們都是為了實現(xiàn)異構(gòu)環(huán)境中不同應(yīng)用系統(tǒng)的集成而設(shè)置,而
且它們的作用都是屏蔽分布式環(huán)境中異構(gòu)的操作系統(tǒng)和網(wǎng)絡(luò)協(xié)議,并提供分布式環(huán)境下的通信服務(wù)。因此,中間件技術(shù)被引人綜合網(wǎng)絡(luò)管理的研究領(lǐng)域也就成了必然
趨勢。
??? CORBA及其網(wǎng)管應(yīng)用
???
CORBA是中間件的一種,是OMG為了解決分布式計算環(huán)境中硬件設(shè)備及軟件系統(tǒng)的互連問題,增強網(wǎng)絡(luò)間軟件的互操作性而提出的一種基于分布式處理的體系
結(jié)構(gòu),它繼承了面向?qū)ο蟮某绦蛟O(shè)計和分布式計算的特性,支持客戶機/服務(wù)器結(jié)構(gòu)。CORBA獨立于軟硬件平臺、網(wǎng)絡(luò)協(xié)議和編程語言,是目前最具生命力的跨
平臺技術(shù)。
???
CORBA技術(shù)的核心是對象請求代理(ORB:ObjectRequestBroker),ORB定義了異構(gòu)環(huán)境下對象透明地發(fā)送請求和接收響應(yīng)的基本機
制,是建立對象之間客戶機/服務(wù)器關(guān)系的中間件。如果一個客戶端的程序想要調(diào)用某項服務(wù),只需要發(fā)出對應(yīng)的調(diào)用請求,ORB就會自動截取這一請求,并找到
可以實現(xiàn)請求的對象、傳送參數(shù)、調(diào)用相應(yīng)的方法、返回結(jié)果等。ORB正如一個屏蔽了對象的通信機制、位置、實現(xiàn)等不屬于對象接口系統(tǒng)成分的“黑匣子”,不
僅增強了分布式異構(gòu)環(huán)境中應(yīng)用的互操作性,也為對象系統(tǒng)間的無縫連接提供了保證。因此,按照CORBA規(guī)范編寫的應(yīng)用程序可以獨立于各種不同的網(wǎng)絡(luò)協(xié)議及
傳輸規(guī)則,使得對象之間可以依靠ORB實現(xiàn)快速靈活的信息交換。
???
CORBA引入了ORB的概念,實現(xiàn)了客戶方程序與服務(wù)方程序的完全分離,提供軟總線機制并引人分層的設(shè)計原則和實現(xiàn)方式,可以屏蔽實現(xiàn)語言、操作系統(tǒng)、
通信系統(tǒng)間的異構(gòu)性并具有分布式和透明的特點。不僅如此,OMG還于1998年聯(lián)合TheOpenGroup和網(wǎng)絡(luò)管理論壇(NMF:Network
Management Forum)推出了聯(lián)合域間管理(JIDM:Joint Inter Domain
Management)技術(shù),進一步定義了CMIP、SNMP與CORBA之間的轉(zhuǎn)換。CORBA所具備的特點使其十分適合用于多專業(yè)網(wǎng)的綜合網(wǎng)絡(luò)管理。
??? 基于CORBA的綜合網(wǎng)絡(luò)管理系統(tǒng)


???
參照圖1所示的多專業(yè)網(wǎng)綜合網(wǎng)管的總體結(jié)構(gòu),充分考慮了CORBA技術(shù)的特點,本文提出了一種基于CORBA的多專業(yè)網(wǎng)綜合網(wǎng)絡(luò)管理系統(tǒng),其結(jié)構(gòu)如圖2所
示。
???
該系統(tǒng)不僅包括面向網(wǎng)絡(luò)的網(wǎng)絡(luò)管理和網(wǎng)元管理,還包括面向用戶的業(yè)務(wù)管理和商務(wù)管理。在每一層上,網(wǎng)絡(luò)管理員都可以通過GUI來調(diào)用網(wǎng)管系統(tǒng)所提供的管理
功能,實現(xiàn)各種管理操作。
???
商務(wù)管理系統(tǒng)和業(yè)務(wù)管理系統(tǒng)基于純CORBA技術(shù)構(gòu)建,綜合管理系統(tǒng)基于CORBA和JIDM技術(shù)構(gòu)建,通過CORBA/接口描述語言(IDL)接口逐層
向上傳遞管理信息,并通過CORBA網(wǎng)關(guān)實現(xiàn)對各SNMS的管理。基于CMIP的SNMS通過Q3接口管理網(wǎng)絡(luò)設(shè)備和網(wǎng)元管理系統(tǒng),基于SNMP的
SNMS按照SNMP協(xié)議管理網(wǎng)絡(luò)設(shè)備和網(wǎng)元管理系統(tǒng),當(dāng)這兩種SNMS與其子網(wǎng)網(wǎng)管系統(tǒng)交互時,考慮到其實質(zhì)是計算機系統(tǒng)之間的互連,因而選用了
CORBA接口。
???
INMS是整個系統(tǒng)的核心,不僅要完成對各SNMS的綜合管理,還要向上層管理系統(tǒng)提供服務(wù),因此圖2中以INMS為例給出了基于CORBA技術(shù)構(gòu)建的各
層管理系統(tǒng)具體的內(nèi)部結(jié)構(gòu),以下是對INMS內(nèi)部結(jié)構(gòu)、功能及實現(xiàn)的詳細描述。
??? INMS是基于客戶機/服務(wù)器的結(jié)構(gòu)構(gòu)建的。服務(wù)器端(即INMS)包括以下五個模塊。
???
1.CORBA服務(wù)器:CORBA服務(wù)器是INMS的核心,用于實現(xiàn)TMN的五大管理功能,即配置管理、性能管理、故障管理、安全管理和計費管理。
CORBA服務(wù)器可以通過接口適配模塊與SNMS互通、互連和互操作,也可以通過數(shù)據(jù)庫管理模塊調(diào)用數(shù)據(jù)庫中的信息。
???
2.CORBA網(wǎng)關(guān):INMS與各SNMS進行交互時,由于管理協(xié)議的不同,需要通過CORBA網(wǎng)關(guān),因此INMS中設(shè)置了基于JIDM技術(shù)的接口適配模
塊。對于CMIP和SNMP代理分別用CMIP/CORBA、SNMP/CORBA網(wǎng)關(guān)接入。專用網(wǎng)關(guān)則負責(zé)向采用專用網(wǎng)關(guān)協(xié)議的SNMS提供接人(值得
注意的是,商務(wù)管理系統(tǒng)和業(yè)務(wù)管理系統(tǒng)并不存在此類問題,因此可以用純CORBA技術(shù)進行構(gòu)造)。各SNMS既可以主動上報相應(yīng)的信息,也可以響應(yīng)
INMS的查詢。
???
3.數(shù)據(jù)倉庫:INMS將得到的各專業(yè)網(wǎng)的信息存儲在數(shù)據(jù)庫中,這些信息可以通過管理信息的實例或信息模型中的類兩種方式進行存儲。另外,數(shù)據(jù)庫中還保留
了每個子網(wǎng)網(wǎng)管的注冊信息,通過修改這些信息即可適應(yīng)專業(yè)網(wǎng)的數(shù)量及網(wǎng)間關(guān)系的變化。
??? 4.數(shù)據(jù)庫管理服務(wù):為了實現(xiàn)對數(shù)據(jù)庫信息的管理,系統(tǒng)專設(shè)了相應(yīng)的數(shù)據(jù)庫管理服務(wù)模塊。
??? 5.CORBA基本服務(wù):由于各功能模塊的實現(xiàn)都需要用到一些CORBA的公共對象服務(wù),因此還設(shè)置了CORBA基本服務(wù)模塊。
??? CORBA服務(wù)器、數(shù)據(jù)庫管理服務(wù)、CORBA基本服務(wù)模塊之間采用IDL進行信息傳遞,通過ORB實現(xiàn)彼此的調(diào)用。
???
在客戶端,GUI用Java的小程序Applet編寫,其工作機制為:JavaApplet通過Stub代碼向本地ORB發(fā)出請求,客戶端ORB隨即利用
InternetORB間協(xié)議(IIOP)開始與服務(wù)器端的ORB進行通信。服務(wù)器端ORB在獲取這一請求后,根據(jù)請求的內(nèi)容調(diào)用相應(yīng)的Skeleton
代碼,激活相關(guān)的目標,該目標完成請求后,將結(jié)果返回給客戶端。至此,網(wǎng)管操作員的一次管理操作順利完成。
??? 結(jié)束語
???
基于CORBA技術(shù)構(gòu)建的綜合網(wǎng)絡(luò)管理系統(tǒng)具有開放性,能屏蔽異構(gòu)性并無縫集成現(xiàn)有不同類型的SNMS,平滑增加新的網(wǎng)管系統(tǒng)或新的業(yè)務(wù)和功能,并能相對
減少開發(fā)周期和風(fēng)險,對于目前綜合網(wǎng)管系統(tǒng)工程的建設(shè)具有重要的意義。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
出處:http://www.qgkjlw.com/wen.asp?id=483
摘要:本文描述了開放系統(tǒng)的概貌以及分布式結(jié)構(gòu)的出現(xiàn),進而引入了中間件的起源、概念、組成、分類、體系結(jié)構(gòu)等內(nèi)容。具體
闡述了中間件的核心技術(shù)COBRA及由中間件組成的分布式計算環(huán)境。
關(guān)鍵字:面向?qū)ο蟆?
分布式、中間件、互操作性、異構(gòu)系統(tǒng)、即插即用
一、
開放分布式系統(tǒng)概述
隨著計算機軟硬件技術(shù)的飛速發(fā)展,網(wǎng)絡(luò)技術(shù)的普及、客戶端/服
務(wù)器技術(shù)、分布式技術(shù)和高性能計算機的廣泛應(yīng)用,使得用戶的應(yīng)用環(huán)境變得異常復(fù)雜,許多組織有著種類繁多的硬件系統(tǒng),它包括:PC、各種類型的工作站、大中型機、各式各樣的嵌入式設(shè)備;同時,在這些硬件系統(tǒng)上,還運行著不同的操作系統(tǒng)和
應(yīng)用軟件,依靠不同的網(wǎng)絡(luò)結(jié)構(gòu),然而在很多情況下卻要求在這些異種平臺之間協(xié)同地完成工作。用戶環(huán)境的復(fù)雜性、多樣性和多變性,導(dǎo)致了開放系統(tǒng)技術(shù)的出
現(xiàn)。
在開放系統(tǒng)環(huán)境中,往往存在著許多不同的結(jié)點、資源和應(yīng)用,地理上分布著的結(jié)點可互連、互通和互操作,以實現(xiàn)應(yīng)用的
合作處理和信息的共享互用,為用戶提供形式多樣的應(yīng)用和服務(wù)。隨著各個企事業(yè)所用的計算機系統(tǒng)的規(guī)模不斷發(fā)展,越來越多的計算機系統(tǒng)被連在一起,表現(xiàn)為規(guī)
模龐大的開放式分布結(jié)構(gòu)。?
一個開放系統(tǒng)具有以下四個基本特征1、可移植性 2、可互操作性 3、可伸縮性 4、易獲得性。同時其輪廓可由七個成分組成,它們是:系統(tǒng)管理(A)、
用戶界面(U)、安全性(S)、編程服務(wù)(P)、互操作服務(wù)(I)、通信服務(wù)(C)、信息實體(E)。以上可以認識到互操作性在開放系
統(tǒng)中具有十分重要的地位,它是高層次開放系統(tǒng)的標志。實際上現(xiàn)實的系統(tǒng)在擴充和發(fā)展之際,經(jīng)常表現(xiàn)為規(guī)模變得更大和組成成分變得更為豐富和復(fù)雜,系統(tǒng)中必
然會出現(xiàn)異質(zhì)成分,若此時缺少了互操作性功能,則這一系統(tǒng)的升級將面臨極大的困難,甚至不可能高效和經(jīng)濟地實現(xiàn)。
目前三種主流分布式構(gòu)件技術(shù)是:CORBA CCM技術(shù)、SUN的EJB技術(shù)和DNA2000種的COM/DCOM/COM+技術(shù)。其
中COM/DCOM技術(shù)和EJB技術(shù)已經(jīng)得
到較為廣泛的應(yīng)用,CCM則是在繼承和吸收了EJB當(dāng)
前規(guī)范的基礎(chǔ)上,基于CORBA規(guī)范制定的服務(wù)器構(gòu)件應(yīng)用開發(fā)模型。由于OMG組織的CORBA規(guī)范一直為廣大開放系統(tǒng)平臺廠商
所支持,使得 CCM?規(guī)范也具有既不局限于特定系統(tǒng)平臺也不局限于特點開發(fā)語言的特點,具有廣泛
的兼容性。CCM是一種集成技術(shù),而不是編程技術(shù),因此,具有強大的生命力。
表1-1?? 三
種主流分布計算平臺技術(shù)的分析和比較
集成性 | CORBA(CCM) | EJB | DCOM |
跨語言性能 | 好 | 差(限于Java) | 好 |
跨平臺性能 | 好 | 好 | 差(限于Windows) |
網(wǎng)絡(luò)通訊 | 好 | 好 | 一般 |
公共服務(wù)構(gòu)件 | 好 | 好 | 一般 |
事務(wù)處理 | 好 | 一般 | 一般 |
消息服務(wù) | 一般 | 一般 | 一般 |
安全服務(wù) | 好 | 好 | 一般 |
目錄服務(wù) | 好 | 一般 | 一般 |
容錯性 | 一般 | 一般 | 一般 |
軟件開發(fā)商支持度 | 一般 | 好 | 好 |
產(chǎn)品成熟度 | 一般 | 一般 | 好 |
可擴展性 | 好 | 好 | 一般 |
?
二、
中間件的工作原理
中間件是處于系統(tǒng)軟件
(操作系統(tǒng)和網(wǎng)絡(luò)軟件)與應(yīng)用軟件之間的一種軟件。有了這層處于中間的軟件,就能使遠距離相隔的應(yīng)用軟件可協(xié)同工作(互操作),這樣在應(yīng)用層就可以實現(xiàn)分
布式處理。如圖2-1所示。

???????????????????????
圖2-1????
作為一個中間件由兩個
部分組成:1、執(zhí)行環(huán)境(Execution
nvironment)軟件 2、應(yīng)用開發(fā)(Application
Development)工具。大概分為:事務(wù)處理、消息、分布式三種類型的中間件。從企業(yè)應(yīng)用來說,使用中間件的好處是:1、縮短應(yīng)用開發(fā)周期 2、減少項目開發(fā)風(fēng)險 3、應(yīng)用系統(tǒng)質(zhì)量及可維護性 4、增加產(chǎn)品吸引力 5、透明地同其他應(yīng)用程序進行交互 6、與運行平臺
提供的網(wǎng)絡(luò)通信服務(wù)無關(guān) 7、具有良好的可靠性和可用性 8、
具有良好的可擴展性。
???? 中間件的核心技術(shù)是遠程過程調(diào)用。于1995年發(fā)布的開放式分布處理參考模型RM-ODP是一個標準的標準(meta-standard),其規(guī)定了使用開放式分布處理領(lǐng)域內(nèi)必須遵循的一個參考模型。掛靠于英國劍橋的APM公司在開放分布式研究方面獨執(zhí)牛耳,該研究獨立于各種具體的網(wǎng)絡(luò)、硬件、操作系統(tǒng)和數(shù)據(jù)庫,著力于設(shè)計與
構(gòu)造靈活的分布式應(yīng)用,對于面向?qū)ο蟮闹虚g件(ODP)有著各種具體實現(xiàn)。
從理論上講,中間件的
工作原理如圖2-2所示:?
???????????????
? 圖2-2中
間件的工作原理?
示例:一個以CORBA為標準,基于對象請求代理體系結(jié)構(gòu)的簡單模型。籍此說明中間件的工作原理。
系統(tǒng)由三個模塊組成:
服務(wù)器、客戶端和代理,即Server、Client和Agent。實現(xiàn)方法是使用Winsock編程技術(shù),
可采用的編程環(huán)境是VC++6.0。
首先作如下定義:
#define DataLength 80? //定義數(shù)據(jù)長度
#define AgentPort 14000? //定義代理的端口號
#define DefaultClientPort? 12000? //定義客戶端的端口號
#define DefaultServerPort? 13000? //定義服務(wù)器的端口號
系統(tǒng)工作原理如下:客
戶端、服務(wù)器和代理各有一個獨立的IP地址和端口號以確定各自的通信地址。我們要實現(xiàn)的是客戶端和
服務(wù)器之間的信息交互,但是現(xiàn)在面臨這樣的問題:客戶端和服務(wù)器的地址以及端口都是可變的,它們并不固定,因此在信息交互之前,客戶端無法知道服務(wù)器的地
址,服務(wù)器也并不知道客戶端的地址。唯一確定的是代理服務(wù)器程序的IP地址和端口號是不變的。
系統(tǒng)實現(xiàn)的方式如下:
客戶端啟動時首先向代理服務(wù)器注冊自己的信息,主要是自己的IP地址和端口號,如果此時服務(wù)器已經(jīng)
注冊,則代理服務(wù)器將服務(wù)器的地址信息傳遞給客戶端,否則客戶端等待。(如圖2-3所示)
服務(wù)器啟動時也首先向
代理服務(wù)器注冊自己的信息,如果此時客戶端已經(jīng)注冊,則代理服務(wù)器將客戶端的地址信息傳遞給服務(wù)器(很多情況下并不需要這樣的操作,因為總是客戶端向服務(wù)
器發(fā)送請求服務(wù)的信號)。
客戶端得到服務(wù)器的地
址信息之后,就可以直接和服務(wù)器進行交互,這樣,代理服務(wù)器就可以退出系統(tǒng),甚至關(guān)掉。這是CORBA中
比較典型的一種代理方式。
在另外一種情況下:如
果希望服務(wù)器能夠在不影響客戶端程序的前提下隨時擴展,那么可以要求客戶端程序在發(fā)送服務(wù)請求時,直接發(fā)給代理服務(wù)器,然后由代理服務(wù)器進行一定的權(quán)限審
查,然后轉(zhuǎn)發(fā)給服務(wù)器。服務(wù)器返回的結(jié)果也由代理服務(wù)器轉(zhuǎn)發(fā)給客戶端。這是目前常見的WWW代理服
務(wù)器的一般工作方式。在這樣的情況下,本例也是可以適應(yīng)的。

????????????????????? 圖2-3
三、
面向?qū)ο笏枷牒?span lang="EN-US">com相關(guān)技術(shù)、J2EE技
術(shù)在中間件中的應(yīng)用
面向?qū)ο蟮暮诵乃枷?
是:“模擬”。主要有四種典型的機制使得類跨越了簡單的模塊和自定義數(shù)據(jù)類型的范疇,成為支持強大的面向?qū)ο笙到y(tǒng)的核心。它們是繼承機制、封裝機制、重載
機制和多態(tài)機制。其他的比如異常、引用等機制在非面向?qū)ο蟮木幊讨幸彩切枰摹?span lang="EN-US">
首先是繼承,繼承使得
類之間有了抽象和具體、一般和特殊的關(guān)聯(lián)。利用繼承,可以提高代碼質(zhì)量和靈活性。
封裝機制就是提供一套
關(guān)鍵字,定義資源是否可以由外界訪問。這一機制保證了代碼可以被正確地訪問。利用封裝,可以提高代碼的安全性,也便于代碼移植。
重載使得類的同一個方
法可以有不同的含義。利用重載,可以提高代碼的可讀性,簡化代碼的調(diào)用方式。同重載非常類似的一個機制是覆蓋,是指子類可以重寫父類的代碼,子類的對象調(diào)
用這一方法的時候使用子類的實現(xiàn),這個機制有些類似于變量的作用域。一般將重載和覆蓋看做一類機制,它們的作用有類似之處。
多態(tài)機制中實際提供了
把多個不同類型的子類對象統(tǒng)一看做它們父類的對象,也就是說,這種機制忽略了不同對象的細節(jié)差別,只是利用它們最基本的功能。利用多態(tài)可以有效地提高設(shè)計
的靈活性,但卻降低了訪問者和服務(wù)者之間的耦合程度。
當(dāng)前軟件企業(yè)對于Microsoft的COM技術(shù)和J2EE技術(shù)在中件間的開發(fā)中應(yīng)用最為廣泛。
Microsoft的組件對象模型(Component Object
Model)、分布式組件對象模型(Distributed Component Object
Model)和具有分布式應(yīng)用程序服務(wù)的COM+提供了基于Windows平臺的組件構(gòu)造技術(shù)。其在企業(yè)功能服務(wù)中提供如下內(nèi)容:1、
事務(wù)處理 2、安全服務(wù) 3、同步服務(wù) 4、隊列組件 5、事件服務(wù) 6、數(shù)據(jù)庫緩存服務(wù) 7、動態(tài)負載平衡服務(wù) 8、集成的管理工具。值得注意的是,微軟的組件平臺一般只能運行于Windows以
及相關(guān)環(huán)境。為了實現(xiàn)與其他系統(tǒng)的互通,需要借助于橋接技術(shù)。
J2EE是一個基于組件-容器模型的系統(tǒng)平臺,其核心概念是容器。容器是指為特定組件提供服務(wù)的一個標準化的運行時系統(tǒng),Java虛擬機就是一個典型的容器。組件是一個可以部署的程序單元,它以某種方式運行在容器中,容器封裝了J2EE底層的API,為組件提供事務(wù)處理、數(shù)據(jù)訪
問、安全性、持久性等服務(wù)。組件和容器間的關(guān)系通過“協(xié)議”來定義。容器底層是J2EE服務(wù)器,它
為容器提供J2EE中定義的各種服務(wù)和API。
一個J2EE服務(wù)器可以支持一種或多種容器。服務(wù)是組件和容器之間,以及容器和J2EE服務(wù)器之間的接口,在實現(xiàn)層面上它就是一系列API和
協(xié)議,J2EE平臺定義了一組標準的服務(wù),其中有些服務(wù)是由J2SE提
供的,有些則是J2EE對Java的擴展。J2EE的技術(shù)核心是EJB的模型、角色及與其他技術(shù)
的關(guān)系。同時,Java語言的跨平臺特性,使得其在企業(yè)的Web應(yīng)
用上得到廣泛的部署。
四、CORBA技術(shù)
OMA(Object Model Architecture)包
括兩個部分:對象模型和參考模型。對象模型定義如何描述分布式異質(zhì)環(huán)境中的對象;參考模型描述對象之間的交互。參看圖4-1(OMA的參考模型)

???????????????? 圖4-1 OMA的參考模型
?
CORBA(公共對象請求代理體系結(jié)構(gòu))是OMG推出的一
個重要的工業(yè)規(guī)范,它是OMA(Object Model
Architecture)的核心部分。它詳細說明了OMA中ORB組件的特性和界面。最新的CORBA規(guī)范主要包含
以下內(nèi)容:1、ORB核心 2、OMG界面定義語言 3、界面?zhèn)}庫和實現(xiàn)倉庫 4、語言映射 5、存根和框架? 6、
動態(tài)調(diào)用和調(diào)度 7、對象適配器?? 8、ORB之間的互操作。CORBA的主要目標是提供一種機制,在此基礎(chǔ)上,對象可以透明地發(fā)出請求和獲取應(yīng)答。圖4-2描述了COBRA的主要組成部分之間的關(guān)系。
?
????????????? 圖4-2? CORBA的主要組成部分
CORBA的出現(xiàn)并得到大量應(yīng)用,是因為三個方面的原因:一是平臺異構(gòu)性導(dǎo)致分布式應(yīng)用開發(fā)越來越困難;二是語言
的多樣性使得適用的語言不一定能用到當(dāng)時的環(huán)境;三是保護已經(jīng)投資的軟件產(chǎn)品價值。正是這三點導(dǎo)致了CORBA的
產(chǎn)生,CORBA通過屏蔽平臺差異性使得應(yīng)用開發(fā)者得以集中精力在應(yīng)用所需實現(xiàn)的邏輯上,通過提供
多種語言的映射使得CORBA支持多種語言的開發(fā),這符合分布式開發(fā)特點。CORBA通過面向?qū)ο蟮姆绞絹戆b原有的程序模塊,這可以在一定程度上有效的保護原有的軟件投資,使得模塊的
復(fù)用性增強。
?
五、
當(dāng)前各種主流中間件技術(shù)
當(dāng)前的中間件主要應(yīng)用
有:1、無線、移動中間件 2、反射中間件 3、網(wǎng)絡(luò)即插即用中間件? 4、Web服務(wù) 5、P2P中間件 6、普適計算中間件 7、網(wǎng)格中間件 8、安全中件間 9、數(shù)據(jù)庫訪問中間件等產(chǎn)品。
無線、移動中間件是傳
統(tǒng)的中間件技術(shù)在無線/移動環(huán)境下的主要應(yīng)用,擴展了現(xiàn)有的計算模式和CORBA并使得其適應(yīng)無線環(huán)境。
反射中間件是指通過適
當(dāng)?shù)靡蚬P(guān)聯(lián)的自表示,而能夠檢查和調(diào)整其行為的中間件系統(tǒng)。當(dāng)前的中間件,無論CORBA、DCOM還是Java RMI基本上都是采用黑箱抽象
的原則,因此它們也存在靈活性和適應(yīng)性的先天不足。中間件所處理的是十分復(fù)雜的分布式應(yīng)用問題,因而常常需要一定的靈活性和適應(yīng)性。反射是指所研究的對象
感知自己、自行推理和作用于自身的一種能力,是設(shè)計對象的一種技術(shù),也是一種具體實施開放實現(xiàn)的可行技術(shù)。開放實現(xiàn)強調(diào)的是對象和客戶之間的關(guān)系,而反射
強調(diào)的是對象自身所潛在的一種能力。如果要想將實現(xiàn)開放出來,反射涉及的就是如何才能將自身有效地且有約束地開放給客戶,以提高對象的靈活性和適應(yīng)性,并
且還可以分離對象的功能性屬性和非功能性屬性。
網(wǎng)絡(luò)的即插即用中間件
其目標是將網(wǎng)絡(luò)轉(zhuǎn)變成一個易組織、易管理的環(huán)境,通過這個環(huán)境,用戶能夠找到它們感興趣的資源并加以利用。這里的資源既包括硬件設(shè)備,也包括軟件程序,或
者是兩者的結(jié)合。并著力于使網(wǎng)絡(luò)變成一個更富有動態(tài)性的環(huán)境,可以靈活地增加和刪除服務(wù),從而環(huán)境能更好地適應(yīng)實體的動態(tài)化,所以此種中間件技術(shù)非常重
要。
Web服務(wù)是在Internet上進行分布式計算的基本結(jié)構(gòu)塊。開
放的標準以及對用戶和應(yīng)用程序之間的通信和協(xié)作的關(guān)注產(chǎn)生了這樣一種環(huán)境:在這種環(huán)境下,Web服
務(wù)成為應(yīng)用程序集成的平臺。應(yīng)用程序是通過使用多個不同來源的Web服務(wù)構(gòu)造而成的,這些服務(wù)相互
協(xié)同工作,而無論它們位于何處或者如何實現(xiàn)。
網(wǎng)格中間件著力為各種
應(yīng)用開發(fā)提供底層技術(shù)支持,將Internet變?yōu)橐粋€功能強大、無處不在的計算設(shè)施。
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,
當(dāng)前的固定網(wǎng)、移動網(wǎng)和Internet網(wǎng)必將走向統(tǒng)一,未來的網(wǎng)絡(luò)將是一個以IP協(xié)議為基礎(chǔ),以數(shù)據(jù)為中心的綜合網(wǎng)。下一代網(wǎng)絡(luò)是業(yè)務(wù)驅(qū)動的網(wǎng)絡(luò),為了有效充分地利用這一網(wǎng)絡(luò),更快的業(yè)務(wù)
開發(fā)和部署顯得更為迫切。這一特點也決定了仔細研究中間件技術(shù)的重要性。?