對(duì)象請(qǐng)求代理_第1頁(yè)
對(duì)象請(qǐng)求代理_第2頁(yè)
對(duì)象請(qǐng)求代理_第3頁(yè)
對(duì)象請(qǐng)求代理_第4頁(yè)
對(duì)象請(qǐng)求代理_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

對(duì)象之間建立客戶端關(guān)系的中間件對(duì)象請(qǐng)求代理01定義功能請(qǐng)求代理體系結(jié)構(gòu)中間件概述作用概述目錄030502040607ORB的結(jié)構(gòu)CORBA在軟件無(wú)線電系統(tǒng)中的作用公共體系結(jié)構(gòu)(CORBA)目錄0908基本信息對(duì)象請(qǐng)求代理(ORB,ObjectRequestBroker)是對(duì)象之間建立客戶端/服務(wù)端(Client/Server)關(guān)系的中間件。使用ORB,客戶可以透明地調(diào)用一個(gè)服務(wù)對(duì)象上的方法,這個(gè)服務(wù)對(duì)象可以在本地,也可以在通過(guò)網(wǎng)絡(luò)連接的其他機(jī)器上。ORB截獲這一調(diào)用,同時(shí)負(fù)責(zé)查找實(shí)現(xiàn)服務(wù)的對(duì)象并向其傳遞參數(shù)、調(diào)用方法并返回最終結(jié)果。客戶并不知道服務(wù)對(duì)象位于什么地方、它的編程語(yǔ)言和操作系統(tǒng)是什么,也不知道不屬于對(duì)象接口的其他系統(tǒng)部分。這樣,ORB在異構(gòu)分布環(huán)境下為不同機(jī)器上的應(yīng)用提供了互操作性,并無(wú)縫地集成了多種對(duì)象系統(tǒng)。對(duì)象請(qǐng)求代理(ObjectRequestBroker)是用戶提供與其他分布式網(wǎng)絡(luò)環(huán)境中對(duì)象通信的接口,是中間件(Middleware)中主要的一類,它在CORBA(CommonObjectRequestBrokerArchitecture)規(guī)范中處于核心地位,定義異構(gòu)環(huán)境下對(duì)象透明地發(fā)送請(qǐng)求和接收響應(yīng)的基本機(jī)制,是建立對(duì)象之間client/server關(guān)系的中間件。它的作用在于提供一個(gè)通信框架,透明地在異構(gòu)的分布計(jì)算環(huán)境中傳遞對(duì)象請(qǐng)求。CORBA規(guī)范包括了ORB的所有標(biāo)準(zhǔn)接口。對(duì)象請(qǐng)求代理這個(gè)結(jié)構(gòu)不需要作為組件單獨(dú)實(shí)現(xiàn),它由接口定義。任何提供正確接口的ORB實(shí)現(xiàn)都是可被接受的。定義定義對(duì)象請(qǐng)求處理是在對(duì)象間建立客戶/服務(wù)器聯(lián)系的一種中間件。中間件概述中間件概述中間件是一種獨(dú)立的系統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用軟件借助這種軟件在不同的技術(shù)之間共享資源。中間件位于客戶機(jī)/服務(wù)器的操作系統(tǒng)之上,管理計(jì)算資源和網(wǎng)絡(luò)通訊。是連接兩個(gè)獨(dú)立應(yīng)用程序或獨(dú)立系統(tǒng)的軟件。相連接的系統(tǒng),即使它們具有不同的接口,但通過(guò)中間件相互之間仍能交換信息。執(zhí)行中間件的一個(gè)關(guān)鍵途徑是信息傳遞。通過(guò)中間件,應(yīng)用程序可以工作于多平臺(tái)或OS環(huán)境,能滿足大量應(yīng)用的需要運(yùn)行于多種硬件和OS平臺(tái)支持分布計(jì)算,提供跨網(wǎng)絡(luò)、硬件和OS平臺(tái)的透明性的應(yīng)用或服務(wù)的交互支持標(biāo)準(zhǔn)的協(xié)議支持標(biāo)準(zhǔn)的接口。功能功能對(duì)象請(qǐng)求代理(ORB)是對(duì)象總線,它在CORBA規(guī)范中處于核心地位,定義異構(gòu)環(huán)境下對(duì)象透明地發(fā)送請(qǐng)求和接收響應(yīng)的基本機(jī)制,是建立對(duì)象之間client/server關(guān)系的中間件。ORB使得對(duì)象可以透明地向其他對(duì)象發(fā)出請(qǐng)求或接受其他對(duì)象的響應(yīng),這些對(duì)象可以位于本地也可以位于遠(yuǎn)程機(jī)器。ORB攔截請(qǐng)求調(diào)用,并負(fù)責(zé)找到可以實(shí)現(xiàn)請(qǐng)求的對(duì)象、傳送參數(shù)、調(diào)用相應(yīng)的方法、返回結(jié)果等。client對(duì)象并不知道同server對(duì)象通訊、激活或存儲(chǔ)server對(duì)象的機(jī)制,也不必知道server對(duì)象位于何處、它是用何種語(yǔ)言實(shí)現(xiàn)的、使用什么操作系統(tǒng)或其他不屬于對(duì)象接口的系統(tǒng)成分。作用作用它的作用在于提供一個(gè)通信框架,透明地在異構(gòu)的分布計(jì)算環(huán)境中傳遞對(duì)象請(qǐng)求。CORBA規(guī)范包括了ORB的所有標(biāo)準(zhǔn)接口。1991年推出的CORBA1.1定義了接口描述語(yǔ)言O(shè)MGIDL和支持Client/Server對(duì)象在具體的ORB上進(jìn)行互操作的API。CORBA2.0規(guī)范描述的是不同廠商提供的ORB之間的互操作。值得指出的是client和server角色只是用來(lái)協(xié)調(diào)對(duì)象之間的相互作用,根據(jù)相應(yīng)的場(chǎng)合,ORB上的對(duì)象可以是client,也可以是server,甚至兼有兩者。當(dāng)對(duì)象發(fā)出一個(gè)請(qǐng)求時(shí),它是處于client角色;當(dāng)它在接收請(qǐng)求時(shí),它就處于server角色。大部分的對(duì)象都是既扮演client角色又扮演server角色。另外由于ORB負(fù)責(zé)對(duì)象請(qǐng)求的傳送和server的管理,client和server之間并不直接連接,因此,與RPC所支持的單純的Client/Server結(jié)構(gòu)相比,ORB可以支持更加復(fù)雜的結(jié)構(gòu)。請(qǐng)求代理體系結(jié)構(gòu)請(qǐng)求代理體系結(jié)構(gòu)公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu)(CommonObjectRequestBrokerArchitecture,也稱通用對(duì)象請(qǐng)求代理體系結(jié)構(gòu)),是由OMG組織制訂的一種標(biāo)準(zhǔn)的面向?qū)ο髴?yīng)用程序體系規(guī)范?;蛘哒f(shuō)CORBA體系結(jié)構(gòu)是對(duì)象管理組織(OMG)為解決分布式處理環(huán)境(DCE)中,硬件和軟件系統(tǒng)的互連而提出的一種解決方案;OMG組織是一個(gè)國(guó)際性的非盈利組織,其職責(zé)是為應(yīng)用開發(fā)提供一個(gè)公共框架,制訂工業(yè)指南和對(duì)象管理規(guī)范,加快對(duì)象技術(shù)的發(fā)展。OMG組織成立后不久就制訂了OMA(ObjectManagementArchitecture,對(duì)象管理體系結(jié)構(gòu))參考模型,該模型描述了OMG規(guī)范所遵循的概念化的基礎(chǔ)結(jié)構(gòu)。OMA由對(duì)象請(qǐng)求代理ORB、對(duì)象服務(wù)、公共設(shè)施、域接口和應(yīng)用接口這幾個(gè)部分組成,其核心部分是對(duì)象請(qǐng)求代理ORB(ObjectRequestBroker)。對(duì)象服務(wù)是為使用和實(shí)現(xiàn)對(duì)象而提供的基本服務(wù)集合;公共設(shè)施是向終端用戶應(yīng)用程序提供的一組共享服務(wù)接口;域接口是為應(yīng)用領(lǐng)域服務(wù)而提供的接口;應(yīng)用接口是由開發(fā)商提供的產(chǎn)品,用于它們的接口,不屬于OMG標(biāo)準(zhǔn)的內(nèi)容。ORB提供了一種機(jī)制,通過(guò)這種機(jī)制,對(duì)象可以透明的發(fā)出請(qǐng)求和接收響應(yīng)。分布的、可以互操作的對(duì)象可以利用ORB構(gòu)造可以互操作的應(yīng)用。CORBA標(biāo)準(zhǔn)由物件管理組織(OMG)設(shè)立并進(jìn)行控制,CORBA定議了一系列API,通信協(xié)議,和物件/服務(wù)信息模型用于使得異質(zhì)應(yīng)用程序能夠互相操作,這些應(yīng)用程序用不同的程序語(yǔ)言編寫,運(yùn)行在不同的平臺(tái)上。CORBA因此為定義明確的物件提供了平臺(tái)和位置的透明性,這些物件是分布式計(jì)算平臺(tái)的基礎(chǔ)。概述概述在開發(fā)傳統(tǒng)的Client/Server應(yīng)用時(shí),開發(fā)者使用他們自己設(shè)計(jì)的或一個(gè)公認(rèn)的標(biāo)準(zhǔn)來(lái)定義用于設(shè)備之間通信的協(xié)議。協(xié)議的定義依賴于實(shí)現(xiàn)語(yǔ)言、網(wǎng)絡(luò)傳輸和許多其他因素,而ORB的出現(xiàn)簡(jiǎn)化了這一過(guò)程。使用ORB時(shí),協(xié)議是使用接口定義語(yǔ)言(IDL,InterfaceDefinitionLanguage)定義的,而IDL是獨(dú)立于語(yǔ)言的。并且ORB提供很強(qiáng)的靈活性,它使程序員選擇最適合的操作系統(tǒng)、執(zhí)行環(huán)境,甚至系統(tǒng)各個(gè)組件也可以采用不同的編程語(yǔ)言實(shí)現(xiàn)。更重要的是,它允許現(xiàn)有組件的集成。在一個(gè)基于ORB的解決方案中,開發(fā)者可以使用與創(chuàng)建新對(duì)象一樣的IDL,并對(duì)遺留系統(tǒng)進(jìn)行建模,他們創(chuàng)建“包裝”代碼以在標(biāo)準(zhǔn)化的軟件總線與遺留系統(tǒng)接口之間傳遞信息。ORB的結(jié)構(gòu)ORB的結(jié)構(gòu)圖1所示為一個(gè)客戶端向?qū)ο髮?shí)現(xiàn)(ObjectImplementation)發(fā)送一個(gè)請(qǐng)求。客戶端是操作對(duì)象的一個(gè)實(shí)體,對(duì)象實(shí)體是實(shí)現(xiàn)對(duì)象的代碼和數(shù)據(jù)。ORB負(fù)責(zé)根據(jù)一個(gè)請(qǐng)求來(lái)定位一個(gè)對(duì)象,安排對(duì)象實(shí)現(xiàn)準(zhǔn)備接受請(qǐng)求,與請(qǐng)求的數(shù)據(jù)通信??蛻舳说慕涌谂c對(duì)象的位置、實(shí)現(xiàn)對(duì)象的語(yǔ)言及其他不在對(duì)象接口反映出來(lái)的方面完全無(wú)關(guān)??蛻舳耸褂脛?dòng)態(tài)調(diào)用接口(DynamicInvocationInterface)或接口存根(OMGIDLStub)來(lái)發(fā)出請(qǐng)求。由于某種原因,客戶端也可以直接與ORB聯(lián)系。對(duì)象實(shí)現(xiàn)使用對(duì)接口進(jìn)行接口語(yǔ)言映射生成的框架文件(Skeleton)或動(dòng)態(tài)框架Skeleton的方式接受請(qǐng)求。對(duì)象實(shí)現(xiàn)也可以調(diào)用對(duì)象適配器(ObjectAdapter)和ORB。可以用兩種方法來(lái)定義對(duì)象接口。第一種方法是用對(duì)象描述語(yǔ)言(OMGInterfaceDefinitionLanguage)來(lái)定義接口。該語(yǔ)言根據(jù)可能對(duì)對(duì)象進(jìn)行的操作和這些操作使用的參數(shù)來(lái)定義對(duì)象類型。第二種方法是把接口放入接口庫(kù)服務(wù)(InterfaceRepositoryService)中;該服務(wù)把接口中的元素描述成一個(gè)對(duì)象。任何能實(shí)現(xiàn)ORB的軟件中,接口描述語(yǔ)言(可能根據(jù)文檔的內(nèi)容而改變)和接口庫(kù)具有相同的作用。一個(gè)客戶端要使用對(duì)象引用(ObjectReference)來(lái)完成請(qǐng)求,它必須知道對(duì)象的類型及具體的操作。圖1通過(guò)ORB傳遞請(qǐng)求使用樁(Stub)和動(dòng)態(tài)調(diào)用接口發(fā)出的請(qǐng)求具有相同的語(yǔ)義,信息的接收者不能分辨出該請(qǐng)求是使用哪種方法來(lái)傳遞的。ORB確定適當(dāng)?shù)膶?shí)現(xiàn)代碼、傳遞參數(shù),通過(guò)接口框架或動(dòng)態(tài)框架把控制傳給對(duì)象實(shí)現(xiàn),如圖2所示。公共體系結(jié)構(gòu)(CORBA)公共體系結(jié)構(gòu)(CORBA)為了解決分布式計(jì)算環(huán)境(DCE,DistributedComputingEnvironment)中不同硬件設(shè)備和軟件系統(tǒng)的互聯(lián)、增強(qiáng)網(wǎng)絡(luò)間軟件的互操作性、解決傳統(tǒng)分布式計(jì)算模式中的不足等問(wèn)題,對(duì)象管理組織(OMG)提出了公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu)(CORBA),以增強(qiáng)軟件系統(tǒng)間的互操作能力,使構(gòu)造靈活的分布式應(yīng)用系統(tǒng)成為可能。CORBA規(guī)范使得面向?qū)ο蟮能浖诜植肌悩?gòu)環(huán)境下實(shí)現(xiàn)可重用、可移植和互操作。主要包括以下幾個(gè)方面的特點(diǎn)。(1)CORBA采用面向?qū)ο蟮能浖_發(fā)方法,對(duì)應(yīng)用對(duì)象實(shí)現(xiàn)內(nèi)部細(xì)節(jié)的完整封裝,保留對(duì)象方法的對(duì)外接口定義。CORBA使用OMGIDL定義接口,并可以映射到各種編程語(yǔ)言,包括C、C++、Java、python和SmallTalk等。一個(gè)接口對(duì)應(yīng)于一個(gè)支持繼承的類,類的方法在接口中只需聲明,不需要說(shuō)明接口實(shí)現(xiàn)方法。以WiMAX為例,OMGIDL的描述如下。所需的接口包括天線控制、加擾、信道編碼、交織、數(shù)字調(diào)制、OFDM、OFDM解調(diào)、數(shù)字解調(diào)、信道解碼和解擾。CORBA在軟件無(wú)線電系統(tǒng)中的作用CORBA在軟件無(wú)線電系統(tǒng)中的作用軟件無(wú)線電不僅需要硬件模塊化,也需要軟件模塊化。由于缺乏標(biāo)準(zhǔn)的應(yīng)用級(jí)的軟件到軟件的應(yīng)用編程接口(API),缺乏對(duì)存儲(chǔ)器、緩存空間與處理資源的量化,軟件重用度低,花費(fèi)大,研制周期長(zhǎng),因而需要把軟件按功能分成模塊,各模塊功能與接口有清楚的定義。軟件無(wú)線電論壇根據(jù)API來(lái)進(jìn)行區(qū)分各個(gè)模塊,采用CORBA來(lái)構(gòu)建整個(gè)系統(tǒng)。CORBA技術(shù)能夠無(wú)縫地共享應(yīng)用數(shù)據(jù),它提供了一種軟總線。利用接口定義語(yǔ)言(Java語(yǔ)言是一個(gè)子集),每一個(gè)軟件包被提供一個(gè)信息傳輸接口到ORB,對(duì)象用CORBA接口來(lái)實(shí)現(xiàn)插拔。在軟件無(wú)線電中使用CORBA到底有什么好處呢?這是一個(gè)很有意思的話題,事實(shí)上,構(gòu)建一個(gè)軟件無(wú)線電的體系架構(gòu)現(xiàn)在有很多種方法,但是這并不意味著對(duì)于如何構(gòu)建軟件無(wú)線電的體系架構(gòu)的研究已經(jīng)很完善。恰恰相反,所有的這些方法或者理論都沒(méi)有給出一個(gè)一般意義上的軟件無(wú)線電系統(tǒng)的構(gòu)建方法。比如,現(xiàn)在有的公司已經(jīng)開發(fā)了軟件無(wú)線電接收機(jī),但是人們很難或者幾乎不可能把它所構(gòu)建的系統(tǒng)搬到另一個(gè)軟件無(wú)線電系統(tǒng)上去(即使最簡(jiǎn)單的開發(fā)一個(gè)與之對(duì)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論