第二章中間件Corba-初步_第1頁(yè)
第二章中間件Corba-初步_第2頁(yè)
第二章中間件Corba-初步_第3頁(yè)
第二章中間件Corba-初步_第4頁(yè)
第二章中間件Corba-初步_第5頁(yè)
已閱讀5頁(yè),還剩59頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第二章Corba初步2.1對(duì)象管理體系結(jié)構(gòu)(OMA)對(duì)象管理組織(OMG)OMA對(duì)象模型參考模型2.1.1對(duì)象管理組織——OMG成立于1989年的非盈利性聯(lián)盟。目標(biāo):促進(jìn)在分布式系統(tǒng)開(kāi)發(fā)中面向?qū)ο蠹夹g(shù)的理論與實(shí)踐的發(fā)展?,F(xiàn)有成員800多個(gè),負(fù)責(zé)制定協(xié)議、實(shí)現(xiàn)基于協(xié)議的軟件產(chǎn)品、應(yīng)用軟件產(chǎn)品。OMG為使該組織所采納的技術(shù)具有開(kāi)放性,OMG所采用的方法是,針對(duì)某一領(lǐng)域發(fā)出RFP(RequestForProposal),然后以各方提交的建議為基礎(chǔ),經(jīng)過(guò)一系列的討論和協(xié)商,產(chǎn)生最終的規(guī)范。對(duì)象管理組織——OMG負(fù)責(zé)制訂并維護(hù)一套規(guī)范(notsoftware):支持分布式、異類(lèi)(heterogeneous)環(huán)境的軟件開(kāi)發(fā)項(xiàng)目。覆蓋了從分析、設(shè)計(jì)到編碼、部署、運(yùn)行和管理的整個(gè)軟件開(kāi)發(fā)過(guò)程。這些規(guī)范是一種工業(yè)或行業(yè)標(biāo)準(zhǔn)OMG主要規(guī)范UML:UnifiedModelingLanguageCORBA:CommonObjectRequestBrokerArchitecture。MDA:ModelDrivenArchitectureOMA(對(duì)象管理體系結(jié)構(gòu)) 記住CorbaC-ORB-A:“Common”+“ORB”+“Architecture”通用“orb”體系結(jié)構(gòu)Orb:Objectrequestbroker對(duì)象請(qǐng)求代理:通過(guò)智能代理的方式處理對(duì)象請(qǐng)求CORBA規(guī)范主要基于以下幾個(gè)公司所提交的建議:DEC、HyperDesk、HP、SunSoft、NCR和ObjectDesign。是OMA(ObjectModelArchitecture)的核心部分OMA由OMG制定的最關(guān)鍵的規(guī)范——對(duì)象管理結(jié)構(gòu)(ObjectManagementArchitecture,OMA)和它的核心(也就是CORBA規(guī)范),提供了一個(gè)完整的體系結(jié)構(gòu)。這個(gè)結(jié)構(gòu)以足夠的靈活性、豐富的形式適用了各類(lèi)分布式系統(tǒng)。對(duì)象管理體系結(jié)構(gòu)OMA描述了面向?qū)ο蠹夹g(shù)在分布式處理中的運(yùn)用。它包括兩部分:對(duì)象模型(ObjectModel)和參考模型(ReferenceModel)。對(duì)象模型定義如何描述分布式異質(zhì)環(huán)境中的對(duì)象參考模型描述對(duì)象之間的交互(組件,接口,協(xié)議)OMA對(duì)象模型在OMA對(duì)象模型中,對(duì)象是一個(gè)被封裝的實(shí)體,它具有一個(gè)不可改變的標(biāo)識(shí),并能給客戶(hù)用戶(hù)提供一個(gè)或多個(gè)服務(wù)。interfaceprinter{ attributemodel; voidprint(instringbuffer);};OMA對(duì)象模型對(duì)象的訪(fǎng)問(wèn)方式是通過(guò)向?qū)ο蟀l(fā)出請(qǐng)求來(lái)完成的。請(qǐng)求信息包括目標(biāo)對(duì)象、所請(qǐng)求的操作、0個(gè)或多個(gè)實(shí)際參數(shù)和可選的請(qǐng)求上下文(描述環(huán)境信息)。每個(gè)對(duì)象的實(shí)現(xiàn)和位置,對(duì)客戶(hù)都是透明的。OMA參考模型對(duì)象請(qǐng)求代理對(duì)象服務(wù)公共設(shè)施領(lǐng)域接口應(yīng)用接口OMA參考模型在OMA參考模型中,OMG定義了一條為對(duì)象所公用的通信總線(xiàn),即ORB(ObjectRequestBroker)。同時(shí),OMG又定義了對(duì)象進(jìn)出這一總線(xiàn)的接口。這包括:對(duì)象服務(wù)(ObjectServices)、公共設(shè)施(commonfacilities)、應(yīng)用接口(ApplicationInterface)和域接口(DomainInterface)。OMA參考模型公共設(shè)施領(lǐng)域接口對(duì)象請(qǐng)求代理(ORB)應(yīng)用程序接口對(duì)象服務(wù)通用服務(wù)的接口與應(yīng)用有關(guān)的非標(biāo)準(zhǔn)化接口與應(yīng)用領(lǐng)域有關(guān)的接口通用設(shè)施的接口1對(duì)象請(qǐng)求代理——ORBORB是OMA參考模型的核心,提供了最基本的通信樞紐設(shè)施(分布式對(duì)象之間透明的地發(fā)送請(qǐng)求或接收響應(yīng)的基本機(jī)制),獨(dú)立于實(shí)現(xiàn)對(duì)象的特定平臺(tái)與技術(shù)。是基于分布式對(duì)象構(gòu)建應(yīng)用程序的基礎(chǔ)設(shè)施,保證了在異構(gòu)平臺(tái)上對(duì)象的互操作性與可移植性O(shè)RBORB(ObjectRequestBroker)是對(duì)象總線(xiàn)。1通過(guò)ORB,一個(gè)client可以透明的調(diào)用同一臺(tái)機(jī)器上或網(wǎng)絡(luò)上的一個(gè)server對(duì)象的方法。2ORB解釋該調(diào)用并負(fù)責(zé)查找一個(gè)實(shí)現(xiàn)該請(qǐng)求的對(duì)象,3找到后,把參數(shù)傳給該對(duì)象,調(diào)用它的方法,最后返回結(jié)果。4客戶(hù)方不需要了解服務(wù)對(duì)象的位置、通信方式、實(shí)現(xiàn)、激活或存儲(chǔ)機(jī)制。ORB基本原理2對(duì)象服務(wù)作用:提供所有應(yīng)用程序都可能用到的通用服務(wù)的接口(基本服務(wù),與具體的應(yīng)用領(lǐng)域無(wú)關(guān)的接口)。支持的服務(wù)有:名字服務(wù)、持久性服務(wù)、生命周期服務(wù)、事務(wù)處理服務(wù)、對(duì)象事件服務(wù)和安全服務(wù)等。實(shí)質(zhì):通用的服務(wù)集合,將覆蓋對(duì)象整個(gè)生存期的對(duì)象管理任務(wù)標(biāo)準(zhǔn)化,可保證各種應(yīng)用程序均采用一致的風(fēng)格管理對(duì)象支持的服務(wù)命名服務(wù)(NamingService):允許通過(guò)名字查找對(duì)象。持久性服務(wù)(PersistenceService):提供在各種存儲(chǔ)服務(wù)器(包括對(duì)象數(shù)據(jù)庫(kù)、關(guān)系數(shù)據(jù)庫(kù)和簡(jiǎn)單文件)上永久性存儲(chǔ)對(duì)象的統(tǒng)一接口。生存周期服務(wù)(LifeCycleService):定義了在對(duì)象總線(xiàn)上創(chuàng)建、拷貝、移動(dòng)和刪除對(duì)象的操作。支持的服務(wù)事務(wù)處理服務(wù)(TransactionService):提供兩階段提交協(xié)議,用于確保ORB上的一些分布式對(duì)象協(xié)同地完成事務(wù)處理。事件服務(wù)(EventService):允許對(duì)象動(dòng)態(tài)注冊(cè)或撤消指定的事件。

安全服務(wù)(SecurityService):提供一個(gè)分布式對(duì)象安全的完整框架。

3公共設(shè)施與對(duì)象服務(wù)不同的是,公共設(shè)施面向最終用戶(hù)的應(yīng)用,它是各種應(yīng)用可以共享的一系列服務(wù)集合。復(fù)合文檔的管理工具,數(shù)據(jù)庫(kù)存取工具、文件打印工具、電子郵件服務(wù)都等屬于公共設(shè)施。其標(biāo)準(zhǔn)化使得通用操作具有統(tǒng)一性,4域接口針對(duì)著某一特殊的應(yīng)用領(lǐng)域。可以按不同的應(yīng)用領(lǐng)域來(lái)組織領(lǐng)域接口按不同應(yīng)用領(lǐng)域制訂與發(fā)布一系列領(lǐng)域接口規(guī)范目前:財(cái)務(wù)金融,電信,運(yùn)輸,電子商務(wù),仿真等5應(yīng)用接口應(yīng)用程序中的對(duì)象為終端用戶(hù)執(zhí)行特定的任務(wù),不是OMG標(biāo)準(zhǔn)化的內(nèi)容總結(jié):對(duì)象管理體系結(jié)構(gòu)——OMAOMA的層次結(jié)構(gòu)支持客戶(hù)程序與對(duì)象實(shí)現(xiàn)在一個(gè)分布式環(huán)境中通信。獨(dú)立于實(shí)現(xiàn)對(duì)象的特定平臺(tái)與技術(shù)。客戶(hù)程序無(wú)需知道如何與對(duì)象通訊、如何激活對(duì)象、對(duì)象如何實(shí)現(xiàn)、如何查找對(duì)象等。并保證了在異類(lèi)網(wǎng)絡(luò)中對(duì)象的可移植性與可互操作性。

應(yīng)用程序接口公共設(shè)施對(duì)象服務(wù)對(duì)象請(qǐng)求代理CORBAManufacturingCORBAMedCORBAFinanceCORBATelecoms

CORBAServices: 對(duì)象命名、事件、生存期、 持久對(duì)象、事務(wù)、并發(fā)控制 、關(guān)系、外表化、許可機(jī)制 、查詢(xún)、屬性、安全性、時(shí) 間、對(duì)象收集、交易對(duì)象等 服務(wù)。應(yīng)用程序接口領(lǐng)域接口CORBAFacilities: 分布式文檔設(shè)施 打印設(shè)施 數(shù)據(jù)庫(kù)設(shè)施 電子郵件設(shè)施等與具體應(yīng)用相關(guān)的接口為終端用戶(hù)執(zhí)行特定的任務(wù)不是OMG標(biāo)準(zhǔn)化的內(nèi)容對(duì)不同分布對(duì)象的共性依據(jù)基礎(chǔ)性分別抽象并標(biāo)準(zhǔn)化為對(duì)象服務(wù),公共設(shè)施與領(lǐng)域接口標(biāo)準(zhǔn)化工作主要針對(duì)對(duì)象接口而非對(duì)象實(shí)現(xiàn)為提高平臺(tái)無(wú)關(guān)性和可互操作性,OMA分離了對(duì)象接口與對(duì)象實(shí)現(xiàn)對(duì)象接口是對(duì)象結(jié)構(gòu)與行為的外部可見(jiàn)的規(guī)格說(shuō)明,用IDL描述對(duì)象實(shí)現(xiàn)提供對(duì)象內(nèi)部的具體數(shù)據(jù)表示與可執(zhí)行代碼,同一接口的實(shí)現(xiàn)可采用不同語(yǔ)言編寫(xiě)所有接口均未規(guī)定組件的具體實(shí)現(xiàn),為開(kāi)發(fā)的實(shí)現(xiàn)活動(dòng)留下自由2.2CORBA體系結(jié)構(gòu)建立在OMG的對(duì)象模型基礎(chǔ)之上,主要由三個(gè)關(guān)鍵部分組成作為分布式對(duì)象通信基礎(chǔ)設(shè)施的對(duì)象請(qǐng)求代理ORB的體系結(jié)構(gòu)接口定義語(yǔ)言IDL的語(yǔ)法和語(yǔ)義以及到各種程序設(shè)計(jì)語(yǔ)言的映射保證可互操作性的標(biāo)準(zhǔn)ORB間的通信協(xié)議GIOP/IIOP2.2.1ORB體系結(jié)構(gòu)ORB接口,動(dòng)態(tài)調(diào)用接口,動(dòng)態(tài)框架接口等標(biāo)準(zhǔn)化接口在CORBA規(guī)范中均以IDL定義ORB是OMA的核心基礎(chǔ)設(shè)施由ORB提供的通信機(jī)制負(fù)責(zé)完成查找請(qǐng)求的對(duì)象實(shí)現(xiàn),讓對(duì)象實(shí)現(xiàn)準(zhǔn)備好接收請(qǐng)求,傳遞構(gòu)成請(qǐng)求的數(shù)據(jù)功能:把客戶(hù)發(fā)出的請(qǐng)求傳遞給目標(biāo)對(duì)象,并把目標(biāo)對(duì)象的執(zhí)行結(jié)果返回給發(fā)出請(qǐng)求的客戶(hù)。ORB內(nèi)核是ORB最關(guān)鍵的部分,是真正負(fù)責(zé)傳輸請(qǐng)求的通信設(shè)施,每個(gè)產(chǎn)品供應(yīng)商都可以有一個(gè)自己專(zhuān)用的ORB內(nèi)核其重要特征是:提供了客戶(hù)和目標(biāo)對(duì)象之間的交互透明性O(shè)RB內(nèi)核的作用對(duì)象的定位編組(marshlling)與解組啟動(dòng)初始服務(wù)屏蔽底層網(wǎng)絡(luò)協(xié)議提供接口庫(kù)和其他API客戶(hù)執(zhí)行一個(gè)遠(yuǎn)程對(duì)象調(diào)用,對(duì)象引用經(jīng)stub傳給orb。Orb尋找對(duì)應(yīng)的服務(wù)器,確保該服務(wù)器做好接收請(qǐng)求的工作客戶(hù)端對(duì)調(diào)用進(jìn)行編組,成為網(wǎng)絡(luò)可傳輸?shù)模?wù)器端進(jìn)行解組,送給服務(wù)器啟動(dòng)所調(diào)用的操作。如果有返回參數(shù),按2的逆過(guò)程處理透明性對(duì)象位置:客戶(hù)不必知道目標(biāo)對(duì)象的物理位置。它可能與客戶(hù)一起駐留在同一個(gè)進(jìn)程中或同一機(jī)器的不同進(jìn)程中,也有可能駐留在網(wǎng)絡(luò)上的遠(yuǎn)程機(jī)器中。對(duì)象實(shí)現(xiàn):客戶(hù)不必知道有關(guān)對(duì)象實(shí)現(xiàn)的具體細(xì)節(jié)。例如,設(shè)計(jì)對(duì)象所用的編程語(yǔ)言、對(duì)象所在節(jié)點(diǎn)的操作系統(tǒng)和硬件平臺(tái)等。對(duì)象的執(zhí)行狀態(tài):當(dāng)客戶(hù)向目標(biāo)對(duì)象發(fā)送請(qǐng)求時(shí),它不必知道當(dāng)時(shí)目標(biāo)對(duì)象是否處于活動(dòng)狀態(tài)(即是否處于正在運(yùn)行的進(jìn)程中)。此時(shí),如果目標(biāo)對(duì)象不是活動(dòng)的,在把請(qǐng)求傳給它之際,ORB會(huì)透明地將它激活。對(duì)象通信機(jī)制:客戶(hù)不必知道ORB所用的下層通信機(jī)制,如,TCP/IP、管道、共享內(nèi)存、本地方法調(diào)用等。數(shù)據(jù)表示:客戶(hù)不必知道本地主機(jī)和遠(yuǎn)程主機(jī)對(duì)數(shù)據(jù)表示方式,如高位字節(jié)在前還是在后等,是否有所不同。透明性2.2.2對(duì)象接口定義客戶(hù)程序與對(duì)象實(shí)現(xiàn)之間的界面是對(duì)象的接口定義,對(duì)象接口是服務(wù)雙方共同訂立的合約對(duì)象接口采用OMG的接口定義語(yǔ)言IDL描述,IDL根據(jù)對(duì)象可執(zhí)行的操作定義對(duì)象的類(lèi)型,并可映射到特定的編程語(yǔ)言或?qū)ο笙到y(tǒng)為在運(yùn)行時(shí)充分利用對(duì)象接口定義的有關(guān)信息,還可將對(duì)象接口定義添加到接口庫(kù)服務(wù)中接口庫(kù)服務(wù)將對(duì)象接口定義中的內(nèi)容表達(dá)為不同類(lèi)型對(duì)象的層次結(jié)構(gòu),為應(yīng)用程序運(yùn)行時(shí)動(dòng)態(tài)訪(fǎng)問(wèn)對(duì)象接口定義提供服務(wù)IDL定義與接口庫(kù)表達(dá)相同信息,只是兩者組織方式不同客戶(hù)程序只能通過(guò)對(duì)象的接口定義了解對(duì)象的邏輯結(jié)構(gòu)對(duì)象實(shí)現(xiàn)可以采用多種方式實(shí)現(xiàn):獨(dú)立服務(wù)程序,一個(gè)程序庫(kù),被包裝的非面向?qū)ο髴?yīng)用程序等通過(guò)使用附加的對(duì)象適配器,ORB可支持所有風(fēng)格的對(duì)象實(shí)現(xiàn)2.2.3客戶(hù)端機(jī)制靜態(tài)調(diào)用:借助于客戶(hù)程序樁自動(dòng)完成動(dòng)態(tài)調(diào)用:利用動(dòng)態(tài)調(diào)用接口手工編碼完成樁,框架是在編譯時(shí)創(chuàng)建并在運(yùn)行時(shí)不再改變,其接口稱(chēng)靜態(tài)調(diào)用接口,與RMI類(lèi)似動(dòng)態(tài)調(diào)用接口允許客戶(hù)程序調(diào)用在編譯時(shí)尚未確定對(duì)象接口的那些對(duì)象實(shí)現(xiàn)2.2.4服務(wù)端機(jī)制ORB將請(qǐng)求分派給對(duì)象實(shí)現(xiàn)有兩種方式:靜態(tài)通過(guò)由IDL生成的框架動(dòng)態(tài)利用動(dòng)態(tài)框架接口對(duì)象實(shí)現(xiàn)與ORB內(nèi)核間的通信由對(duì)象適配器完成,POA負(fù)責(zé)遠(yuǎn)程對(duì)象引用的創(chuàng)建與解釋?zhuān)瑢?duì)象方法的調(diào)用,對(duì)象實(shí)現(xiàn)的激活與凍結(jié),將對(duì)象引用映射到相應(yīng)的對(duì)象實(shí)現(xiàn)實(shí)例,對(duì)象實(shí)現(xiàn)的注冊(cè)2.2.5靜態(tài)方式對(duì)象實(shí)現(xiàn)接收請(qǐng)求:靜態(tài)方式通過(guò)由IDL生成的框架完成。ORB通過(guò)IDL框架查找合適的實(shí)現(xiàn)代碼、傳送參數(shù),并將控制傳給對(duì)象實(shí)現(xiàn),對(duì)象實(shí)現(xiàn)執(zhí)行請(qǐng)求時(shí)可通過(guò)對(duì)象適配器OA獲取ORB的某些服務(wù),請(qǐng)求完成后控制與結(jié)果返回給客戶(hù)程序??蛻?hù)端發(fā)送請(qǐng)求靜態(tài)調(diào)用(SII)靜態(tài)調(diào)用借助于客戶(hù)程序樁完成。樁與框架在編譯時(shí)創(chuàng)建并且在運(yùn)行時(shí)不再改變,所以這些接口稱(chēng)為SII。IDL樁負(fù)責(zé)客戶(hù)程序的實(shí)現(xiàn)語(yǔ)言與ORB內(nèi)核之間的映射??蛻?hù)程序開(kāi)發(fā)者必須在程序編譯之前就知道操作的名字和所有參數(shù)與返回值的類(lèi)型,實(shí)際的操作名字、參數(shù)值和返回值是編寫(xiě)在應(yīng)用程序的源代碼中。

靜態(tài)方式的優(yōu)缺點(diǎn)編程更容易-根據(jù)名字調(diào)用遠(yuǎn)程方法,將參數(shù)傳遞給方法,和本地方法調(diào)用相同。更強(qiáng)的類(lèi)型校驗(yàn)-編譯程序時(shí)加強(qiáng)了類(lèi)型校驗(yàn)。執(zhí)行良好-比動(dòng)態(tài)方式快40倍左右自編文檔-通過(guò)閱讀代碼可以了解正在進(jìn)行的東西。不夠靈活,用戶(hù)在系統(tǒng)中添加新的對(duì)象服務(wù)時(shí),客戶(hù)程序必須改動(dòng)源程序,重新編譯,才能使用。2.2.6動(dòng)態(tài)調(diào)用CORBA支持兩種用于動(dòng)態(tài)調(diào)用的接口:動(dòng)態(tài)調(diào)用接口(DII)——支持客戶(hù)方的動(dòng)態(tài)請(qǐng)求調(diào)用。動(dòng)態(tài)框架接口(DSI)——支持服務(wù)方的動(dòng)態(tài)對(duì)象調(diào)用。動(dòng)態(tài)調(diào)用1利用DII,客戶(hù)方應(yīng)用可以在運(yùn)行時(shí)動(dòng)態(tài)地向任何對(duì)象發(fā)出請(qǐng)求,而不象靜態(tài)調(diào)用那樣,必須在編譯時(shí)就知道特定的目標(biāo)對(duì)象的界面信息。2使用DII時(shí),用戶(hù)必須手工構(gòu)造請(qǐng)求信息,包括相應(yīng)的操作及有關(guān)參數(shù)等。3類(lèi)似地,DSI允許用戶(hù)在沒(méi)有靜態(tài)框架信息的條件下來(lái)獲得對(duì)象實(shí)現(xiàn)。4過(guò)程:客戶(hù)在運(yùn)行時(shí)發(fā)現(xiàn)服務(wù),獲取接口,動(dòng)態(tài)構(gòu)造請(qǐng)求,從而使客戶(hù)方調(diào)用該對(duì)象實(shí)現(xiàn)提供服務(wù)客戶(hù)對(duì)象實(shí)現(xiàn)DIIDSIORB內(nèi)核對(duì)象適配器OAORB內(nèi)核接口庫(kù)IRDII:DynamicInvocationInterface客戶(hù)端程序在編譯的時(shí)候無(wú)法得知對(duì)象的詳細(xì)信息,通過(guò)DII向遠(yuǎn)端對(duì)象發(fā)起調(diào)用客戶(hù)端可以通過(guò)DII中所含的標(biāo)準(zhǔn)的API動(dòng)態(tài)的決定:調(diào)用哪個(gè)對(duì)象,調(diào)用對(duì)象中的哪個(gè)操作,操作的參數(shù)是什么可以在運(yùn)行時(shí)動(dòng)態(tài)向任何對(duì)象請(qǐng)求用戶(hù)必須手工構(gòu)造請(qǐng)求信息,包括相應(yīng)操作及有關(guān)參數(shù)DIIDII為客戶(hù)端程序提供了“構(gòu)建”和“發(fā)起”遠(yuǎn)端對(duì)象調(diào)用的能力接口庫(kù)提供了在運(yùn)行時(shí)刻發(fā)現(xiàn)對(duì)象的能力。沒(méi)有接口庫(kù),就不會(huì)有真正的CORBA動(dòng)態(tài)特性動(dòng)態(tài)框架接口-DSI一組標(biāo)準(zhǔn)的API服務(wù)器端通過(guò)這組標(biāo)準(zhǔn)的API動(dòng)態(tài)的決定調(diào)用的對(duì)象、操作,以及參數(shù)接口倉(cāng)庫(kù)和實(shí)現(xiàn)倉(cāng)庫(kù)ORB提供了兩個(gè)用于存儲(chǔ)有關(guān)對(duì)象信息的服務(wù):接口倉(cāng)庫(kù)和實(shí)現(xiàn)倉(cāng)庫(kù)。接口倉(cāng)庫(kù)1接口倉(cāng)庫(kù)存儲(chǔ)各個(gè)接口信息的模塊,如用IDL編寫(xiě)的接口定義、常量、類(lèi)型等。2它本身作為一個(gè)對(duì)象而存在。3應(yīng)用程序可以象調(diào)用其它CORBA對(duì)象所提供的操作一樣,來(lái)調(diào)用接口倉(cāng)庫(kù)的操作。4接口倉(cāng)庫(kù)允許應(yīng)用程序在運(yùn)行時(shí)訪(fǎng)問(wèn)OMGIDL類(lèi)型系統(tǒng)。例如,當(dāng)應(yīng)用程序在運(yùn)行時(shí)遇到一個(gè)不知道其類(lèi)型的對(duì)象時(shí),可以通過(guò)接口倉(cāng)庫(kù)的操作來(lái)遍歷系統(tǒng)中的所有接口信息。5由此可見(jiàn),接口倉(cāng)庫(kù)的引入很好地支持了CORBA的動(dòng)態(tài)調(diào)用。實(shí)現(xiàn)倉(cāng)庫(kù)1實(shí)現(xiàn)倉(cāng)庫(kù)所完成的功能與接口倉(cāng)庫(kù)類(lèi)似,只不過(guò)它存儲(chǔ)的是對(duì)象實(shí)現(xiàn)的信息。2實(shí)現(xiàn)庫(kù)包括的信息讓ORB可以定位并激活對(duì)象的實(shí)現(xiàn)。實(shí)現(xiàn)庫(kù)中的信息是特定于ORB或?qū)崿F(xiàn)環(huán)境的,3實(shí)現(xiàn)的安裝和控制策略是通過(guò)實(shí)現(xiàn)庫(kù)實(shí)現(xiàn)的。除了它可以充當(dāng)ORB功能外,實(shí)現(xiàn)庫(kù)通常還保存與ORB對(duì)象實(shí)現(xiàn)相關(guān)的信息。對(duì)象適配器ORB內(nèi)核無(wú)法為所有的對(duì)象提供一個(gè)統(tǒng)一、方便有效的界面??梢詫⒛康膶?duì)象分成若干組,由特定的對(duì)象適配器來(lái)為各組對(duì)象服務(wù)CORBA給出了對(duì)象適配器(POA),以滿(mǎn)足大多數(shù)對(duì)象的需要POA提供了產(chǎn)生和解釋對(duì)象引用、對(duì)請(qǐng)求進(jìn)行認(rèn)證、激活/去活實(shí)現(xiàn)、激活/去活單個(gè)對(duì)象、通過(guò)框架調(diào)用方法等功能.在提供這些功能時(shí),POA要用到一些與操作系統(tǒng)有關(guān)的知識(shí),這些知識(shí)由實(shí)現(xiàn)倉(cāng)庫(kù)提供,實(shí)現(xiàn)倉(cāng)庫(kù)還存放對(duì)象實(shí)現(xiàn)的有關(guān)信息。ORB將服務(wù)請(qǐng)求的參數(shù)及操作控制權(quán)傳遞給POA,由POA將執(zhí)行結(jié)果返回給ORB對(duì)象適配器類(lèi)似于容器的概念,提供了若干服務(wù):對(duì)象引用的生成與解釋根據(jù)對(duì)象引用找到它對(duì)應(yīng)的對(duì)象實(shí)現(xiàn)方法調(diào)用交互的安全性對(duì)象的激活與終止對(duì)象實(shí)現(xiàn)的注冊(cè)同5個(gè)組件打交道:ORB核心,框架,動(dòng)態(tài)框架,實(shí)現(xiàn)庫(kù),對(duì)象實(shí)現(xiàn)對(duì)象適配器對(duì)象適配器是聯(lián)系對(duì)象實(shí)現(xiàn)與ORB本身的紐帶。另外,它的引入還大大減輕了ORB的任務(wù),從而簡(jiǎn)化了ORB的設(shè)計(jì)。具體地說(shuō),對(duì)象適配器主要完成以下工作:對(duì)象登記——利用對(duì)象適配器所提供的操作,可以將CORBA的實(shí)現(xiàn)倉(cāng)庫(kù)中具有編程語(yǔ)言形式的實(shí)體(servant,伺服器)登記為CORBA的對(duì)象實(shí)現(xiàn)。對(duì)象適配器

對(duì)象引用(OR,ObjectReference)的產(chǎn)生——對(duì)象適配器為CORBA對(duì)象生成對(duì)象引用??蛻?hù)應(yīng)用程序通過(guò)對(duì)象引用來(lái)訪(fǎng)問(wèn)對(duì)象實(shí)例。服務(wù)器進(jìn)程的激活——如果客戶(hù)發(fā)出請(qǐng)求時(shí),目標(biāo)對(duì)象所在的服務(wù)器還未運(yùn)行,則對(duì)象適配器自動(dòng)激活該服務(wù)器。對(duì)象適配器對(duì)象的激活。對(duì)象的撤消——在預(yù)先規(guī)定的時(shí)間片內(nèi),如果一直沒(méi)有發(fā)向某個(gè)目標(biāo)對(duì)象的請(qǐng)求,則對(duì)象適配器撤消這一對(duì)象,以節(jié)省系統(tǒng)資源。對(duì)象向上調(diào)用——對(duì)象適配器把請(qǐng)求分配給已登記了的對(duì)象。2.3ORB之間的互操作在發(fā)布CORBA2.0之前,ORB產(chǎn)品的最大缺點(diǎn)是:不同廠(chǎng)商所提供的ORB產(chǎn)品之間并不能互操作。為了達(dá)到異構(gòu)ORB系統(tǒng)之間互操作的目的,CORBA2.0規(guī)范中定義了標(biāo)準(zhǔn)通信協(xié)議GIOP(Generalinter-ORBProtocol)。2.3.1域指這樣一個(gè)范圍,在其中的對(duì)象具有公共的特征,服從相同的規(guī)則。ORB間的互操作機(jī)制就是為不同實(shí)現(xiàn)的ORB能共存于同一環(huán)境下,而提供的相互識(shí)別和轉(zhuǎn)換的機(jī)制。當(dāng)需要的信息離開(kāi)它的域時(shí),就必須使用橋接來(lái)傳遞信息。橋接的作用是確保信息能完整的從一個(gè)ORB映射到另一個(gè)ORB??刹捎胕nter-ORB實(shí)現(xiàn)間接橋接:不同域中多個(gè)ORB通信直接橋接:同域,即能理解相同的對(duì)象引用和相同的IDLCORBA中的域分為以下幾個(gè)部分

Referencingdomain–對(duì)象引用范圍

Representationdomain–信息傳輸語(yǔ)法和協(xié)議范圍

Networkaddressingdomain–網(wǎng)絡(luò)地址范圍

Networkconnectivitydomain–可能的網(wǎng)絡(luò)信息范圍

Securitydomain–特殊安全策略

Typedomain–特殊標(biāo)識(shí)符范圍

Transactiondomain–特定事物服務(wù)范圍

2.3.2互操作性的實(shí)現(xiàn)從策略上,它分為間接和直接兩種橋接機(jī)制,從實(shí)現(xiàn)層次上線(xiàn)內(nèi)橋接是指在ORB內(nèi)部執(zhí)行必要的轉(zhuǎn)折和代碼映射;請(qǐng)求層橋接是指在ORB之外執(zhí)行請(qǐng)求轉(zhuǎn)換和代碼映射。為了實(shí)現(xiàn)ORB間的互操作,CORBA規(guī)范還定義了GIOP協(xié)議和IIOP協(xié)議。線(xiàn)內(nèi)橋接嵌入橋接的代碼位于ORB中,它完成必要的翻譯和映射功能要求1ORB提供某種附加的服務(wù)(插入新的內(nèi)部處理通訊模式)2引入額外的樁和框架代碼請(qǐng)求層橋接1客戶(hù)端ORB收到請(qǐng)求,將橋看作對(duì)象實(shí)現(xiàn),通過(guò)DSI將請(qǐng)求發(fā)給橋2橋?qū)⒄?qǐng)求轉(zhuǎn)換為服務(wù)端ORB可理解的形式,通過(guò)服務(wù)端ORB的DII發(fā)送轉(zhuǎn)換后的請(qǐng)求給服務(wù)端ORB3若處理請(qǐng)求有返回結(jié)果,則可沿同一路由逆向返回2.3.3協(xié)議GIOP協(xié)議(GeneralInter-ORBProtocol):

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論