第二章中間件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ō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院基礎(chǔ)技術(shù)教學(xué)部第二章第二章 Corba 初步初步山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院2.1 對(duì)象管理體系結(jié)構(gòu)對(duì)象管理體系結(jié)構(gòu)(OMA)對(duì)象管理組織(對(duì)象管理組織(OMG)OMA 對(duì)象模型對(duì)象模型 參考模型參考模型山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院2.1.1 對(duì)象管理組織對(duì)象管理組織OMG成立于成立于1989年的非盈利性聯(lián)盟。年的非盈利性聯(lián)盟。目標(biāo):目標(biāo): 促進(jìn)在促進(jìn)在分布式系統(tǒng)開(kāi)發(fā)中系統(tǒng)開(kāi)發(fā)中面向?qū)ο蠹夹g(shù)的理論與實(shí)踐的的理論與實(shí)踐的發(fā)展。發(fā)展。現(xiàn)有成員現(xiàn)有成員800多個(gè),負(fù)責(zé)多個(gè),負(fù)責(zé)制定協(xié)議、協(xié)議、實(shí)現(xiàn)基于基于協(xié)議的軟件產(chǎn)品、協(xié)議的軟件產(chǎn)品、應(yīng)用軟件產(chǎn)品。軟件產(chǎn)品。山東大學(xué)計(jì)算

2、機(jī)科學(xué)與技術(shù)學(xué)院OMG 為使該組織所采納的技術(shù)具有開(kāi)放性,為使該組織所采納的技術(shù)具有開(kāi)放性,OMG所所采用的方法是,針對(duì)某一領(lǐng)域發(fā)出采用的方法是,針對(duì)某一領(lǐng)域發(fā)出RFP(Request For Proposal), 然后以各方提交的建議為基礎(chǔ),經(jīng)過(guò)一系然后以各方提交的建議為基礎(chǔ),經(jīng)過(guò)一系列的討論和協(xié)商,產(chǎn)生最終的規(guī)范。列的討論和協(xié)商,產(chǎn)生最終的規(guī)范。山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院對(duì)象管理組織對(duì)象管理組織OMG負(fù)責(zé)制訂并維護(hù)一套規(guī)范(負(fù)責(zé)制訂并維護(hù)一套規(guī)范(not software):): 支持支持分布式、異類(heterogeneous)環(huán)境的軟件開(kāi)發(fā)項(xiàng)目。)環(huán)境的軟件開(kāi)發(fā)項(xiàng)目。 覆蓋了從分析、

3、設(shè)計(jì)到編碼、部署、運(yùn)行和管理的整個(gè)軟件開(kāi)發(fā)過(guò)程。覆蓋了從分析、設(shè)計(jì)到編碼、部署、運(yùn)行和管理的整個(gè)軟件開(kāi)發(fā)過(guò)程。 這些規(guī)范是一種工業(yè)或行業(yè)標(biāo)準(zhǔn)這些規(guī)范是一種工業(yè)或行業(yè)標(biāo)準(zhǔn)OMG主要規(guī)范主要規(guī)范 UML:Unified Modeling Language CORBA:Common Object Request Broker Architecture。 MDA: Model Driven Architecture山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院基礎(chǔ)技術(shù)教學(xué)部OMA(對(duì)象管理體系結(jié)構(gòu)對(duì)象管理體系結(jié)構(gòu))山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院記住記住CorbaC-ORB-A: “Common” + “ORB” + “A

4、rchitecture” 通用通用“orb”體系結(jié)構(gòu)體系結(jié)構(gòu)Orb: Object request broker 對(duì)象請(qǐng)求代理:通過(guò)對(duì)象請(qǐng)求代理:通過(guò)智能代理的方式處理對(duì)象請(qǐng)求智能代理的方式處理對(duì)象請(qǐng)求CORBA規(guī)范主要基于以下幾個(gè)公司所提交的建議:規(guī)范主要基于以下幾個(gè)公司所提交的建議:DEC、HyperDesk、HP、SunSoft、NCR和和Object Design。是是OMA(Object Model Architecture)的核心部分的核心部分山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院OMA 由由OMG制定的最關(guān)鍵的規(guī)范制定的最關(guān)鍵的規(guī)范對(duì)象管理結(jié)構(gòu)對(duì)象管理結(jié)構(gòu)(Object Managemen

5、t Architecture, OMA)和它的核)和它的核心(也就是心(也就是CORBA規(guī)范),提供了一個(gè)完整的體系結(jié)規(guī)范),提供了一個(gè)完整的體系結(jié)構(gòu)。這個(gè)結(jié)構(gòu)以足夠的靈活性、豐富的形式適用了各構(gòu)。這個(gè)結(jié)構(gòu)以足夠的靈活性、豐富的形式適用了各類分布式系統(tǒng)。類分布式系統(tǒng)。山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院對(duì)象管理體系結(jié)構(gòu)對(duì)象管理體系結(jié)構(gòu)lOMA描述了面向?qū)ο蠹夹g(shù)在分布式處理中的運(yùn)用。描述了面向?qū)ο蠹夹g(shù)在分布式處理中的運(yùn)用。它包括兩部分:對(duì)象模型(它包括兩部分:對(duì)象模型(Object Model)和參考模)和參考模型(型(Reference Model)。)。l對(duì)象模型定義如何描述分布式異質(zhì)環(huán)境中的對(duì)象對(duì)

6、象模型定義如何描述分布式異質(zhì)環(huán)境中的對(duì)象l參考模型描述對(duì)象之間的交互參考模型描述對(duì)象之間的交互(組件,接口,協(xié)議組件,接口,協(xié)議)山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院OMA對(duì)象模型對(duì)象模型 在在OMA對(duì)象模型中,對(duì)象是一個(gè)被封裝的實(shí)體,對(duì)象模型中,對(duì)象是一個(gè)被封裝的實(shí)體,它具有一個(gè)不可改變的標(biāo)識(shí),并能給客戶用戶提供一它具有一個(gè)不可改變的標(biāo)識(shí),并能給客戶用戶提供一個(gè)或多個(gè)服務(wù)。個(gè)或多個(gè)服務(wù)。interface printerattribute model;void print(in string buffer);山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院OMA對(duì)象模型對(duì)象模型 對(duì)象的訪問(wèn)方式是通過(guò)向?qū)ο蟀l(fā)出請(qǐng)求來(lái)完成

7、的。對(duì)象的訪問(wèn)方式是通過(guò)向?qū)ο蟀l(fā)出請(qǐng)求來(lái)完成的。請(qǐng)求信息包括目標(biāo)對(duì)象、所請(qǐng)求的操作、請(qǐng)求信息包括目標(biāo)對(duì)象、所請(qǐng)求的操作、0個(gè)或多個(gè)實(shí)個(gè)或多個(gè)實(shí)際參數(shù)和可選的請(qǐng)求上下文(描述環(huán)境信息)。每個(gè)際參數(shù)和可選的請(qǐng)求上下文(描述環(huán)境信息)。每個(gè)對(duì)象的實(shí)現(xiàn)和位置,對(duì)客戶都是透明的。對(duì)象的實(shí)現(xiàn)和位置,對(duì)客戶都是透明的。山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院OMA參考模型參考模型對(duì)象請(qǐng)求代理對(duì)象請(qǐng)求代理對(duì)象服務(wù)對(duì)象服務(wù)公共設(shè)施公共設(shè)施領(lǐng)域接口領(lǐng)域接口應(yīng)用接口應(yīng)用接口山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院OMA參考模型參考模型 在在OMA參考模型中,參考模型中,OMG定義了一條為對(duì)象所定義了一條為對(duì)象所公用的通信總線,即公用的通信

8、總線,即ORB(Object Request Broker)。同。同時(shí),時(shí), OMG又定義了對(duì)象進(jìn)出這一總線的接口。這包又定義了對(duì)象進(jìn)出這一總線的接口。這包括:對(duì)象服務(wù)(括:對(duì)象服務(wù)(Object Services) 、公共設(shè)施、公共設(shè)施(common facilities)、應(yīng)用接口()、應(yīng)用接口(Application Interface)和域接口()和域接口(Domain Interface)。)。山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院OMA參考模型參考模型公共設(shè)施公共設(shè)施領(lǐng)域接口領(lǐng)域接口對(duì)象請(qǐng)求代理(對(duì)象請(qǐng)求代理(ORB)應(yīng)用程序接口應(yīng)用程序接口對(duì)象服務(wù)對(duì)象服務(wù)通用服務(wù)的接口與應(yīng)用有關(guān)的非標(biāo)準(zhǔn)化

9、接口 與應(yīng)用領(lǐng)域有關(guān)的接口通用設(shè)施的接口山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院1對(duì)象請(qǐng)求代理對(duì)象請(qǐng)求代理ORBORB是是OMA參考模型的核心,參考模型的核心,提供了最基本的通信樞紐設(shè)施(分布式對(duì)象之間透提供了最基本的通信樞紐設(shè)施(分布式對(duì)象之間透明的明的地發(fā)送請(qǐng)求或接收響應(yīng)的基本機(jī)制)地發(fā)送請(qǐng)求或接收響應(yīng)的基本機(jī)制),獨(dú)立于,獨(dú)立于實(shí)現(xiàn)對(duì)象的特定平臺(tái)與技術(shù)。實(shí)現(xiàn)對(duì)象的特定平臺(tái)與技術(shù)。是基于分布式對(duì)象構(gòu)建應(yīng)用程序的基礎(chǔ)設(shè)施,保證是基于分布式對(duì)象構(gòu)建應(yīng)用程序的基礎(chǔ)設(shè)施,保證了在異構(gòu)平臺(tái)上對(duì)象的互操作性與可移植性了在異構(gòu)平臺(tái)上對(duì)象的互操作性與可移植性山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院ORB ORB(Object R

10、equest Broker)是對(duì)象總線。是對(duì)象總線。1 通過(guò)通過(guò)ORB,一個(gè),一個(gè)client可以透明的調(diào)用同一臺(tái)機(jī)器上或可以透明的調(diào)用同一臺(tái)機(jī)器上或網(wǎng)絡(luò)上的一個(gè)網(wǎng)絡(luò)上的一個(gè)server對(duì)象的方法。對(duì)象的方法。2 ORB解釋該調(diào)用并負(fù)責(zé)查找一個(gè)實(shí)現(xiàn)該請(qǐng)求的對(duì)象,解釋該調(diào)用并負(fù)責(zé)查找一個(gè)實(shí)現(xiàn)該請(qǐng)求的對(duì)象,3 找到后,把參數(shù)傳給該對(duì)象,調(diào)用它的方法,最后返找到后,把參數(shù)傳給該對(duì)象,調(diào)用它的方法,最后返回結(jié)果?;亟Y(jié)果。4 客戶方不需要了解服務(wù)對(duì)象的位置、通信方式、實(shí)現(xiàn)、客戶方不需要了解服務(wù)對(duì)象的位置、通信方式、實(shí)現(xiàn)、激活或存儲(chǔ)機(jī)制。激活或存儲(chǔ)機(jī)制。山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院ORB基本原理基本原理山

11、東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院2對(duì)象服務(wù)對(duì)象服務(wù)l作用:提供所有應(yīng)用程序都可能用到的通用服務(wù)的接作用:提供所有應(yīng)用程序都可能用到的通用服務(wù)的接口(基本服務(wù),與具體的應(yīng)用領(lǐng)域無(wú)關(guān)的接口)??冢ɑ痉?wù),與具體的應(yīng)用領(lǐng)域無(wú)關(guān)的接口)。l支持的服務(wù)有:支持的服務(wù)有:名字服務(wù)、名字服務(wù)、持久性服務(wù)持久性服務(wù)、生命周期服、生命周期服務(wù)、事務(wù)處理服務(wù)、對(duì)象事件服務(wù)和安全服務(wù)等。務(wù)、事務(wù)處理服務(wù)、對(duì)象事件服務(wù)和安全服務(wù)等。l實(shí)質(zhì):通用的服務(wù)集合,將覆蓋對(duì)象整個(gè)生存期的對(duì)實(shí)質(zhì):通用的服務(wù)集合,將覆蓋對(duì)象整個(gè)生存期的對(duì)象管理任務(wù)標(biāo)準(zhǔn)化,可保證各種應(yīng)用程序均采用一致的象管理任務(wù)標(biāo)準(zhǔn)化,可保證各種應(yīng)用程序均采用一致的風(fēng)

12、格管理對(duì)象風(fēng)格管理對(duì)象山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院支持的服務(wù)支持的服務(wù)命名服務(wù)(命名服務(wù)(Naming ServiceNaming Service):允許通過(guò)名字):允許通過(guò)名字查查找找對(duì)象。對(duì)象。持久性服務(wù)(持久性服務(wù)(Persistence ServicePersistence Service): :提供在各種提供在各種存儲(chǔ)服務(wù)器(包括對(duì)象數(shù)據(jù)庫(kù)、關(guān)系數(shù)據(jù)庫(kù)和簡(jiǎn)單存儲(chǔ)服務(wù)器(包括對(duì)象數(shù)據(jù)庫(kù)、關(guān)系數(shù)據(jù)庫(kù)和簡(jiǎn)單文件)上永久性存儲(chǔ)對(duì)象的統(tǒng)一接口。文件)上永久性存儲(chǔ)對(duì)象的統(tǒng)一接口。生存周期服務(wù)(生存周期服務(wù)(Life Cycle ServiceLife Cycle Service):定):定義了在

13、對(duì)象總線上創(chuàng)建、拷貝、移動(dòng)和刪除義了在對(duì)象總線上創(chuàng)建、拷貝、移動(dòng)和刪除對(duì)象的操作。對(duì)象的操作。山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院支持的服務(wù)支持的服務(wù)事務(wù)處理服務(wù)(事務(wù)處理服務(wù)(Transaction ServiceTransaction Service):提):提供兩階段提交協(xié)議,用于確保供兩階段提交協(xié)議,用于確保ORBORB上的一些分上的一些分布式對(duì)象協(xié)同地完成事務(wù)處理。布式對(duì)象協(xié)同地完成事務(wù)處理。事件服務(wù)(事件服務(wù)(Event ServiceEvent Service):允許對(duì)象動(dòng)態(tài)):允許對(duì)象動(dòng)態(tài)注冊(cè)或撤消指定的事件。注冊(cè)或撤消指定的事件。 安全服務(wù)(安全服務(wù)(Security Service

14、Security Service):提供一個(gè)):提供一個(gè)分布式對(duì)象安全的完整框架。分布式對(duì)象安全的完整框架。 山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院3 公共設(shè)施公共設(shè)施l與對(duì)象服務(wù)不同的是,公共設(shè)施面向最終用戶的應(yīng)與對(duì)象服務(wù)不同的是,公共設(shè)施面向最終用戶的應(yīng)用,它是各種應(yīng)用可以共享的一系列服務(wù)集合。用,它是各種應(yīng)用可以共享的一系列服務(wù)集合。l復(fù)合文檔的管理工具,數(shù)據(jù)庫(kù)存取工具、文件打印復(fù)合文檔的管理工具,數(shù)據(jù)庫(kù)存取工具、文件打印工具、電子郵件服務(wù)都等屬于公共設(shè)施。工具、電子郵件服務(wù)都等屬于公共設(shè)施。l其標(biāo)準(zhǔn)化使得通用操作具有統(tǒng)一性,其標(biāo)準(zhǔn)化使得通用操作具有統(tǒng)一性,山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院4 域接口域

15、接口l針對(duì)著某一特殊的應(yīng)用領(lǐng)域。針對(duì)著某一特殊的應(yīng)用領(lǐng)域。l可以按不同的應(yīng)用領(lǐng)域來(lái)組織領(lǐng)域接口可以按不同的應(yīng)用領(lǐng)域來(lái)組織領(lǐng)域接口l按不同應(yīng)用領(lǐng)域制訂與發(fā)布一系列領(lǐng)域接口規(guī)范按不同應(yīng)用領(lǐng)域制訂與發(fā)布一系列領(lǐng)域接口規(guī)范l目前:財(cái)務(wù)金融,電信,運(yùn)輸,電子商務(wù),仿真等目前:財(cái)務(wù)金融,電信,運(yùn)輸,電子商務(wù),仿真等山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院5 應(yīng)用接口應(yīng)用接口應(yīng)用程序中的對(duì)象為終端用戶執(zhí)行特定的任務(wù),不是應(yīng)用程序中的對(duì)象為終端用戶執(zhí)行特定的任務(wù),不是OMG標(biāo)準(zhǔn)化的內(nèi)容標(biāo)準(zhǔn)化的內(nèi)容山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院總結(jié):對(duì)象管理體系結(jié)構(gòu)總結(jié):對(duì)象管理體系結(jié)構(gòu)OMAOMA的層次結(jié)構(gòu)支持客戶程序與對(duì)象實(shí)現(xiàn)在一個(gè)分布

16、式環(huán)境支持客戶程序與對(duì)象實(shí)現(xiàn)在一個(gè)分布式環(huán)境中通信。中通信。獨(dú)立于實(shí)現(xiàn)對(duì)象的特定平臺(tái)與技術(shù)。獨(dú)立于實(shí)現(xiàn)對(duì)象的特定平臺(tái)與技術(shù)??蛻舫绦驘o(wú)需知道如何與對(duì)象通訊、如何激客戶程序無(wú)需知道如何與對(duì)象通訊、如何激活對(duì)象、對(duì)象如何實(shí)現(xiàn)、如何查找對(duì)象等?;顚?duì)象、對(duì)象如何實(shí)現(xiàn)、如何查找對(duì)象等。并保證了在異類網(wǎng)絡(luò)中對(duì)象的可移植性與可并保證了在異類網(wǎng)絡(luò)中對(duì)象的可移植性與可互操作性。互操作性。 應(yīng)用程序接口應(yīng)用程序接口公共設(shè)施公共設(shè)施對(duì)象服務(wù)對(duì)象服務(wù)對(duì)象請(qǐng)求代理對(duì)象請(qǐng)求代理CORBA ManufacturingCORBA MedCORBA FinanceCORBA Telecoms CORBA ServicesCOR

17、BA Services:對(duì)象命名、事件、生存期、對(duì)象命名、事件、生存期、持久對(duì)象、事務(wù)、并發(fā)控制持久對(duì)象、事務(wù)、并發(fā)控制、關(guān)系、外表化、許可機(jī)制、關(guān)系、外表化、許可機(jī)制、查詢、屬性、安全性、時(shí)、查詢、屬性、安全性、時(shí)間、對(duì)象收集、交易對(duì)象等間、對(duì)象收集、交易對(duì)象等服務(wù)。服務(wù)。應(yīng)用程序接口應(yīng)用程序接口領(lǐng)域接口領(lǐng)域接口CORBA FacilitiesCORBA Facilities:分布式文檔設(shè)施分布式文檔設(shè)施打印設(shè)施打印設(shè)施數(shù)據(jù)庫(kù)設(shè)施數(shù)據(jù)庫(kù)設(shè)施電子郵件設(shè)施等電子郵件設(shè)施等 與具體應(yīng)用相關(guān)的接口與具體應(yīng)用相關(guān)的接口 為終端用戶執(zhí)行特定的任務(wù)為終端用戶執(zhí)行特定的任務(wù) 不是不是OMG標(biāo)準(zhǔn)化的內(nèi)容標(biāo)準(zhǔn)化

18、的內(nèi)容山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院對(duì)不同分布對(duì)象的共性依據(jù)基礎(chǔ)性分別抽象并標(biāo)準(zhǔn)化為對(duì)象對(duì)不同分布對(duì)象的共性依據(jù)基礎(chǔ)性分別抽象并標(biāo)準(zhǔn)化為對(duì)象服務(wù),公共設(shè)施與領(lǐng)域接口服務(wù),公共設(shè)施與領(lǐng)域接口標(biāo)準(zhǔn)化工作主要針對(duì)對(duì)象接口而非對(duì)象實(shí)現(xiàn)標(biāo)準(zhǔn)化工作主要針對(duì)對(duì)象接口而非對(duì)象實(shí)現(xiàn)為提高平臺(tái)無(wú)關(guān)性和可互操作性,為提高平臺(tái)無(wú)關(guān)性和可互操作性,OMA分離了對(duì)象接口與對(duì)分離了對(duì)象接口與對(duì)象實(shí)現(xiàn)象實(shí)現(xiàn) 對(duì)象接口是對(duì)象結(jié)構(gòu)與行為的外部可見(jiàn)的規(guī)格說(shuō)明,用對(duì)象接口是對(duì)象結(jié)構(gòu)與行為的外部可見(jiàn)的規(guī)格說(shuō)明,用IDL描述描述 對(duì)象實(shí)現(xiàn)提供對(duì)象內(nèi)部的具體數(shù)據(jù)表示與可執(zhí)行代碼,同一接口的實(shí)對(duì)象實(shí)現(xiàn)提供對(duì)象內(nèi)部的具體數(shù)據(jù)表示與可執(zhí)行代碼,同

19、一接口的實(shí)現(xiàn)可采用不同語(yǔ)言編寫現(xiàn)可采用不同語(yǔ)言編寫 所有接口均未規(guī)定組件的具體實(shí)現(xiàn),為開(kāi)發(fā)的實(shí)現(xiàn)活動(dòng)留下自由所有接口均未規(guī)定組件的具體實(shí)現(xiàn),為開(kāi)發(fā)的實(shí)現(xiàn)活動(dòng)留下自由山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院2.2 CORBA體系結(jié)構(gòu)體系結(jié)構(gòu)建立在建立在OMG的的對(duì)象模型對(duì)象模型基礎(chǔ)之上,主要由三個(gè)關(guān)鍵基礎(chǔ)之上,主要由三個(gè)關(guān)鍵部分組成部分組成 作為分布式對(duì)象通信基礎(chǔ)設(shè)施的對(duì)象請(qǐng)求代理作為分布式對(duì)象通信基礎(chǔ)設(shè)施的對(duì)象請(qǐng)求代理ORB的體系結(jié)構(gòu)的體系結(jié)構(gòu) 接口定義語(yǔ)言接口定義語(yǔ)言IDL的語(yǔ)法和語(yǔ)義以及到各種程序設(shè)計(jì)語(yǔ)言的映射的語(yǔ)法和語(yǔ)義以及到各種程序設(shè)計(jì)語(yǔ)言的映射 保證可互操作性的標(biāo)準(zhǔn)保證可互操作性的標(biāo)準(zhǔn)ORB間的

20、通信協(xié)議間的通信協(xié)議GIOP/IIOP山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院2.2.1 ORB體系結(jié)構(gòu)體系結(jié)構(gòu) 客 戶 服 務(wù) 器 ORB 核 心(GIOP/IIOP) 動(dòng)態(tài)調(diào)用 IDL存根 ORB 界面 靜態(tài)IDL框架 動(dòng)態(tài)框架調(diào)用 對(duì)象 適配 器 所有 ORB 實(shí)現(xiàn)都一致的界面 可能有多個(gè)對(duì)象適配器 依賴 ORB 核心的界面 與每個(gè)對(duì)象對(duì)應(yīng)的存根或框架 向上調(diào)用界面 向下調(diào)用界面 界 面 倉(cāng) 庫(kù) 對(duì)象實(shí) 現(xiàn)倉(cāng)庫(kù) ORB接口,動(dòng)態(tài)調(diào)用接口,動(dòng)態(tài)框架接口等標(biāo)準(zhǔn)化接口在CORBA規(guī)范中均以IDL定義山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院ORB是是OMA的核心基礎(chǔ)設(shè)施的核心基礎(chǔ)設(shè)施由由ORB提供的通信機(jī)制負(fù)責(zé)完成提供

21、的通信機(jī)制負(fù)責(zé)完成查找請(qǐng)求的對(duì)象實(shí)現(xiàn)查找請(qǐng)求的對(duì)象實(shí)現(xiàn),讓對(duì)讓對(duì)象實(shí)現(xiàn)準(zhǔn)備好接收請(qǐng)求象實(shí)現(xiàn)準(zhǔn)備好接收請(qǐng)求,傳遞構(gòu)成請(qǐng)求的數(shù)據(jù)傳遞構(gòu)成請(qǐng)求的數(shù)據(jù)功能:把客戶發(fā)出的請(qǐng)求傳遞給目標(biāo)對(duì)象,并把目標(biāo)對(duì)象的功能:把客戶發(fā)出的請(qǐng)求傳遞給目標(biāo)對(duì)象,并把目標(biāo)對(duì)象的執(zhí)行結(jié)果返回給發(fā)出請(qǐng)求的客戶。執(zhí)行結(jié)果返回給發(fā)出請(qǐng)求的客戶。ORB內(nèi)核是內(nèi)核是ORB最關(guān)鍵的部分,是真正負(fù)責(zé)傳輸請(qǐng)求的通信最關(guān)鍵的部分,是真正負(fù)責(zé)傳輸請(qǐng)求的通信設(shè)施,每個(gè)產(chǎn)品供應(yīng)商都可以有一個(gè)自己專用的設(shè)施,每個(gè)產(chǎn)品供應(yīng)商都可以有一個(gè)自己專用的ORB內(nèi)核內(nèi)核其重要特征是:提供了客戶和目標(biāo)對(duì)象之間的交互透明性其重要特征是:提供了客戶和目標(biāo)對(duì)象之間的交互透

22、明性山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院ORB內(nèi)核的作用內(nèi)核的作用對(duì)象的定位對(duì)象的定位 編組(編組(marshlling)與解組)與解組啟動(dòng)初始服務(wù)啟動(dòng)初始服務(wù) 屏蔽底層網(wǎng)絡(luò)協(xié)議屏蔽底層網(wǎng)絡(luò)協(xié)議 提供接口庫(kù)和其他提供接口庫(kù)和其他APIl客戶執(zhí)行一個(gè)遠(yuǎn)程對(duì)象調(diào)用,對(duì)象引用經(jīng)客戶執(zhí)行一個(gè)遠(yuǎn)程對(duì)象調(diào)用,對(duì)象引用經(jīng)stub傳給傳給orb。Orb尋找對(duì)應(yīng)的服務(wù)器,確保該服務(wù)器做好接收請(qǐng)求的工作尋找對(duì)應(yīng)的服務(wù)器,確保該服務(wù)器做好接收請(qǐng)求的工作l客戶端對(duì)調(diào)用進(jìn)行編組,成為網(wǎng)絡(luò)可傳輸?shù)?,服?wù)器端進(jìn)行客戶端對(duì)調(diào)用進(jìn)行編組,成為網(wǎng)絡(luò)可傳輸?shù)模?wù)器端進(jìn)行解組,送給服務(wù)器啟動(dòng)所調(diào)用的操作。解組,送給服務(wù)器啟動(dòng)所調(diào)用的操作。

23、l如果有返回參數(shù),按如果有返回參數(shù),按2的逆過(guò)程處理的逆過(guò)程處理山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院透明性透明性對(duì)象位置:客戶不必知道目標(biāo)對(duì)象的物理位置。它可能與客對(duì)象位置:客戶不必知道目標(biāo)對(duì)象的物理位置。它可能與客戶一起駐留在同一個(gè)進(jìn)程中或同一機(jī)器的不同進(jìn)程中,也有戶一起駐留在同一個(gè)進(jìn)程中或同一機(jī)器的不同進(jìn)程中,也有可能駐留在網(wǎng)絡(luò)上的遠(yuǎn)程機(jī)器中??赡荞v留在網(wǎng)絡(luò)上的遠(yuǎn)程機(jī)器中。對(duì)象實(shí)現(xiàn):客戶不必知道有關(guān)對(duì)象實(shí)現(xiàn)的具體細(xì)節(jié)。例如,對(duì)象實(shí)現(xiàn):客戶不必知道有關(guān)對(duì)象實(shí)現(xiàn)的具體細(xì)節(jié)。例如,設(shè)計(jì)對(duì)象所用的編程語(yǔ)言、對(duì)象所在節(jié)點(diǎn)的操作系統(tǒng)和硬件設(shè)計(jì)對(duì)象所用的編程語(yǔ)言、對(duì)象所在節(jié)點(diǎn)的操作系統(tǒng)和硬件平臺(tái)等。平臺(tái)等。對(duì)象

24、的執(zhí)行狀態(tài):當(dāng)客戶向目標(biāo)對(duì)象發(fā)送請(qǐng)求時(shí),它不必知對(duì)象的執(zhí)行狀態(tài):當(dāng)客戶向目標(biāo)對(duì)象發(fā)送請(qǐng)求時(shí),它不必知道當(dāng)時(shí)目標(biāo)對(duì)象是否處于活動(dòng)狀態(tài)(即是否處于正在運(yùn)行的道當(dāng)時(shí)目標(biāo)對(duì)象是否處于活動(dòng)狀態(tài)(即是否處于正在運(yùn)行的進(jìn)程中)。此時(shí),如果目標(biāo)對(duì)象不是活動(dòng)的,在把請(qǐng)求傳給進(jìn)程中)。此時(shí),如果目標(biāo)對(duì)象不是活動(dòng)的,在把請(qǐng)求傳給它之際,它之際,ORB會(huì)透明地將它激活。會(huì)透明地將它激活。山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 對(duì)象通信機(jī)制:客戶不必知道對(duì)象通信機(jī)制:客戶不必知道ORB所用的下層通信機(jī)所用的下層通信機(jī)制,如,制,如,TCP/IP、管道、共享內(nèi)存、本地方法調(diào)用、管道、共享內(nèi)存、本地方法調(diào)用等。等。 數(shù)據(jù)表示:客戶不

25、必知道本地主機(jī)和遠(yuǎn)程主機(jī)對(duì)數(shù)據(jù)數(shù)據(jù)表示:客戶不必知道本地主機(jī)和遠(yuǎn)程主機(jī)對(duì)數(shù)據(jù)表示方式,如高位字節(jié)在前還是在后等,是否有所不表示方式,如高位字節(jié)在前還是在后等,是否有所不同。同。透明性透明性山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院2.2.2 對(duì)象接口定義對(duì)象接口定義客戶程序與對(duì)象實(shí)現(xiàn)之間的界面是對(duì)象的接口定義,對(duì)象接客戶程序與對(duì)象實(shí)現(xiàn)之間的界面是對(duì)象的接口定義,對(duì)象接口是服務(wù)雙方共同訂立的合約口是服務(wù)雙方共同訂立的合約對(duì)象接口采用對(duì)象接口采用OMG的接口定義語(yǔ)言的接口定義語(yǔ)言IDL描述,描述,IDL根據(jù)對(duì)象根據(jù)對(duì)象可執(zhí)行的操作定義對(duì)象的類型,并可可執(zhí)行的操作定義對(duì)象的類型,并可映射映射到特定的編程語(yǔ)言到特定

26、的編程語(yǔ)言或?qū)ο笙到y(tǒng)或?qū)ο笙到y(tǒng)為在運(yùn)行時(shí)充分利用對(duì)象接口定義的有關(guān)信息,還可將對(duì)象為在運(yùn)行時(shí)充分利用對(duì)象接口定義的有關(guān)信息,還可將對(duì)象接口定義添加到接口定義添加到接口庫(kù)服務(wù)接口庫(kù)服務(wù)中中接口庫(kù)服務(wù)將對(duì)象接口定義中的內(nèi)容表達(dá)為不同類型對(duì)象的接口庫(kù)服務(wù)將對(duì)象接口定義中的內(nèi)容表達(dá)為不同類型對(duì)象的層次結(jié)構(gòu),為應(yīng)用程序運(yùn)行時(shí)層次結(jié)構(gòu),為應(yīng)用程序運(yùn)行時(shí)動(dòng)態(tài)訪問(wèn)對(duì)象接口動(dòng)態(tài)訪問(wèn)對(duì)象接口定義提供服定義提供服務(wù)務(wù)IDL定義與接口庫(kù)表達(dá)相同信息,只是兩者組織方式不同定義與接口庫(kù)表達(dá)相同信息,只是兩者組織方式不同客戶程序只能通過(guò)對(duì)象的接口定義了解對(duì)象的邏輯結(jié)構(gòu)客戶程序只能通過(guò)對(duì)象的接口定義了解對(duì)象的邏輯結(jié)構(gòu)山東大學(xué)

27、計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院對(duì)象實(shí)現(xiàn)可以采用多種方式實(shí)現(xiàn):獨(dú)立服務(wù)程序,對(duì)象實(shí)現(xiàn)可以采用多種方式實(shí)現(xiàn):獨(dú)立服務(wù)程序,一個(gè)程序庫(kù),被包裝的非面向?qū)ο髴?yīng)用程序等一個(gè)程序庫(kù),被包裝的非面向?qū)ο髴?yīng)用程序等通過(guò)使用附加的對(duì)象適配器,通過(guò)使用附加的對(duì)象適配器,ORB可支持所有風(fēng)格可支持所有風(fēng)格的對(duì)象實(shí)現(xiàn)的對(duì)象實(shí)現(xiàn)山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院2.2.3 客戶端機(jī)制客戶端機(jī)制靜態(tài)調(diào)用:借助于客戶程序樁自動(dòng)完成靜態(tài)調(diào)用:借助于客戶程序樁自動(dòng)完成動(dòng)態(tài)調(diào)用:利用動(dòng)態(tài)調(diào)用接口手工編碼完成動(dòng)態(tài)調(diào)用:利用動(dòng)態(tài)調(diào)用接口手工編碼完成樁,框架是在編譯時(shí)創(chuàng)建并在運(yùn)行時(shí)不再改變,其樁,框架是在編譯時(shí)創(chuàng)建并在運(yùn)行時(shí)不再改變,其接口稱靜態(tài)調(diào)用

28、接口,與接口稱靜態(tài)調(diào)用接口,與RMI類似類似動(dòng)態(tài)調(diào)用接口允許客戶程序調(diào)用在編譯時(shí)尚未確定動(dòng)態(tài)調(diào)用接口允許客戶程序調(diào)用在編譯時(shí)尚未確定對(duì)象接口的那些對(duì)象實(shí)現(xiàn)對(duì)象接口的那些對(duì)象實(shí)現(xiàn)山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院2.2.4 服務(wù)端機(jī)制服務(wù)端機(jī)制ORB將請(qǐng)求分派給對(duì)象實(shí)現(xiàn)有兩種方式:將請(qǐng)求分派給對(duì)象實(shí)現(xiàn)有兩種方式: 靜態(tài)通過(guò)由靜態(tài)通過(guò)由IDL生成的框架生成的框架 動(dòng)態(tài)利用動(dòng)態(tài)框架接口動(dòng)態(tài)利用動(dòng)態(tài)框架接口對(duì)象實(shí)現(xiàn)與對(duì)象實(shí)現(xiàn)與ORB內(nèi)核間的通信由對(duì)象適配器完成,內(nèi)核間的通信由對(duì)象適配器完成,POA負(fù)責(zé)遠(yuǎn)程對(duì)象引用的創(chuàng)建與解釋,對(duì)象方法的負(fù)責(zé)遠(yuǎn)程對(duì)象引用的創(chuàng)建與解釋,對(duì)象方法的調(diào)用,對(duì)象實(shí)現(xiàn)的激活與凍結(jié),將對(duì)

29、象引用映射到調(diào)用,對(duì)象實(shí)現(xiàn)的激活與凍結(jié),將對(duì)象引用映射到相應(yīng)的對(duì)象實(shí)現(xiàn)實(shí)例,對(duì)象實(shí)現(xiàn)的注冊(cè)相應(yīng)的對(duì)象實(shí)現(xiàn)實(shí)例,對(duì)象實(shí)現(xiàn)的注冊(cè)山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院2.2.5 靜態(tài)方式靜態(tài)方式對(duì)象實(shí)現(xiàn)接收請(qǐng)求:對(duì)象實(shí)現(xiàn)接收請(qǐng)求:靜態(tài)方式通過(guò)由靜態(tài)方式通過(guò)由IDL生成的框架生成的框架完成。完成。 ORB通過(guò)通過(guò)IDL框架查找合適的實(shí)現(xiàn)代碼、傳送參數(shù),框架查找合適的實(shí)現(xiàn)代碼、傳送參數(shù),并將控制傳給對(duì)象實(shí)現(xiàn),對(duì)象實(shí)現(xiàn)執(zhí)行請(qǐng)求時(shí)可通過(guò)并將控制傳給對(duì)象實(shí)現(xiàn),對(duì)象實(shí)現(xiàn)執(zhí)行請(qǐng)求時(shí)可通過(guò)對(duì)象適配器對(duì)象適配器OA獲取獲取ORB的某些服務(wù),請(qǐng)求完成后控的某些服務(wù),請(qǐng)求完成后控制與結(jié)果返回給客戶程序。制與結(jié)果返回給客戶程序。山

30、東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院客戶端發(fā)送請(qǐng)求客戶端發(fā)送請(qǐng)求靜態(tài)調(diào)用(靜態(tài)調(diào)用(SII) 靜態(tài)調(diào)用借助于靜態(tài)調(diào)用借助于客戶程序樁完成客戶程序樁完成。樁與框架在編譯時(shí)創(chuàng)建并且在運(yùn)行時(shí)不再改變樁與框架在編譯時(shí)創(chuàng)建并且在運(yùn)行時(shí)不再改變,所以這,所以這些接口稱為些接口稱為SII。 IDL樁負(fù)責(zé)客戶程序的實(shí)現(xiàn)語(yǔ)言與樁負(fù)責(zé)客戶程序的實(shí)現(xiàn)語(yǔ)言與ORB內(nèi)核之間的映射。內(nèi)核之間的映射。客戶程序開(kāi)發(fā)者必須在程序客戶程序開(kāi)發(fā)者必須在程序編譯之前就知道操作的名字就知道操作的名字和所有參數(shù)與返回值的類型,實(shí)際的操作名字、參數(shù)值和所有參數(shù)與返回值的類型,實(shí)際的操作名字、參數(shù)值和返回值是編寫在應(yīng)用程序的源代碼中。和返回值是編寫在

31、應(yīng)用程序的源代碼中。 山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院靜態(tài)方式的優(yōu)缺點(diǎn)靜態(tài)方式的優(yōu)缺點(diǎn)編程更容易編程更容易-根據(jù)名字調(diào)用遠(yuǎn)程方法,將參數(shù)傳遞給方法,根據(jù)名字調(diào)用遠(yuǎn)程方法,將參數(shù)傳遞給方法,和本地方法調(diào)用相同。和本地方法調(diào)用相同。更強(qiáng)的類型校驗(yàn)更強(qiáng)的類型校驗(yàn)-編譯程序時(shí)加強(qiáng)了類型校驗(yàn)。編譯程序時(shí)加強(qiáng)了類型校驗(yàn)。執(zhí)行良好執(zhí)行良好-比動(dòng)態(tài)方式快比動(dòng)態(tài)方式快40倍左右倍左右自編文檔自編文檔-通過(guò)閱讀代碼可以了解正在進(jìn)行的東西。通過(guò)閱讀代碼可以了解正在進(jìn)行的東西。不夠靈活,用戶在系統(tǒng)中添加新的對(duì)象服務(wù)時(shí),客戶程不夠靈活,用戶在系統(tǒng)中添加新的對(duì)象服務(wù)時(shí),客戶程序必須改動(dòng)源程序,重新編譯,才能使用。序必須改動(dòng)源

32、程序,重新編譯,才能使用。山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院2.2.6 動(dòng)態(tài)調(diào)用動(dòng)態(tài)調(diào)用 CORBA支持兩種用于動(dòng)態(tài)調(diào)用的接口:支持兩種用于動(dòng)態(tài)調(diào)用的接口: 動(dòng)態(tài)調(diào)用接口(動(dòng)態(tài)調(diào)用接口(DII)支持客戶方的動(dòng)態(tài)請(qǐng)求調(diào)用。支持客戶方的動(dòng)態(tài)請(qǐng)求調(diào)用。 動(dòng)態(tài)框架接口(動(dòng)態(tài)框架接口(DSI)支持服務(wù)方的動(dòng)態(tài)對(duì)象調(diào)用。支持服務(wù)方的動(dòng)態(tài)對(duì)象調(diào)用。山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院動(dòng)態(tài)調(diào)用動(dòng)態(tài)調(diào)用1 利用利用DII,客戶方應(yīng)用可以在運(yùn)行時(shí)動(dòng)態(tài)地向任何對(duì)象發(fā)出請(qǐng),客戶方應(yīng)用可以在運(yùn)行時(shí)動(dòng)態(tài)地向任何對(duì)象發(fā)出請(qǐng)求,而不象靜態(tài)調(diào)用那樣,必須在編譯時(shí)就知道特定的目標(biāo)求,而不象靜態(tài)調(diào)用那樣,必須在編譯時(shí)就知道特定的目標(biāo)對(duì)象的界面信

33、息。對(duì)象的界面信息。2 使用使用DII時(shí),用戶必須手工構(gòu)造請(qǐng)求信息,包括相應(yīng)的操作及時(shí),用戶必須手工構(gòu)造請(qǐng)求信息,包括相應(yīng)的操作及有關(guān)參數(shù)等。有關(guān)參數(shù)等。3 類似地,類似地, DSI允許用戶在沒(méi)有靜態(tài)框架信息的條件下來(lái)獲得允許用戶在沒(méi)有靜態(tài)框架信息的條件下來(lái)獲得對(duì)象實(shí)現(xiàn)。對(duì)象實(shí)現(xiàn)。4 過(guò)程:客戶在運(yùn)行時(shí)發(fā)現(xiàn)服務(wù),獲取接口,動(dòng)態(tài)構(gòu)造請(qǐng)求,過(guò)程:客戶在運(yùn)行時(shí)發(fā)現(xiàn)服務(wù),獲取接口,動(dòng)態(tài)構(gòu)造請(qǐng)求,從而使客戶方調(diào)用該對(duì)象實(shí)現(xiàn)提供服務(wù)從而使客戶方調(diào)用該對(duì)象實(shí)現(xiàn)提供服務(wù) 山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院客戶客戶對(duì)象實(shí)現(xiàn)對(duì)象實(shí)現(xiàn)DIIDSIORB內(nèi)核內(nèi)核對(duì)象適配器對(duì)象適配器OAORB內(nèi)核內(nèi)核接口庫(kù)接口庫(kù) IR山東大

34、學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院DII: Dynamic Invocation Interface客戶端程序在編譯的時(shí)候無(wú)法得知對(duì)象的詳細(xì)信息,客戶端程序在編譯的時(shí)候無(wú)法得知對(duì)象的詳細(xì)信息,通過(guò)通過(guò)DII向遠(yuǎn)端對(duì)象發(fā)起調(diào)用向遠(yuǎn)端對(duì)象發(fā)起調(diào)用客戶端可以通過(guò)客戶端可以通過(guò)DII中所含的標(biāo)準(zhǔn)的中所含的標(biāo)準(zhǔn)的API動(dòng)態(tài)的決定:動(dòng)態(tài)的決定:調(diào)用哪個(gè)對(duì)象,調(diào)用對(duì)象中的哪個(gè)操作,操作的參調(diào)用哪個(gè)對(duì)象,調(diào)用對(duì)象中的哪個(gè)操作,操作的參數(shù)是什么數(shù)是什么可以在運(yùn)行時(shí)動(dòng)態(tài)向任何對(duì)象請(qǐng)求可以在運(yùn)行時(shí)動(dòng)態(tài)向任何對(duì)象請(qǐng)求用戶必須手工構(gòu)造請(qǐng)求信息,包括相應(yīng)操作及有關(guān)用戶必須手工構(gòu)造請(qǐng)求信息,包括相應(yīng)操作及有關(guān)參數(shù)參數(shù)山東大學(xué)計(jì)算機(jī)科學(xué)

35、與技術(shù)學(xué)院DIIDII為客戶端程序提供了為客戶端程序提供了“構(gòu)建構(gòu)建”和和“發(fā)起發(fā)起”遠(yuǎn)端對(duì)遠(yuǎn)端對(duì)象調(diào)用的能力象調(diào)用的能力接口庫(kù)提供了在運(yùn)行時(shí)刻發(fā)現(xiàn)對(duì)象的能力。接口庫(kù)提供了在運(yùn)行時(shí)刻發(fā)現(xiàn)對(duì)象的能力。沒(méi)有接口庫(kù),就不會(huì)有真正的沒(méi)有接口庫(kù),就不會(huì)有真正的CORBA動(dòng)態(tài)特性動(dòng)態(tài)特性山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院動(dòng)態(tài)框架接口動(dòng)態(tài)框架接口-DSI一組標(biāo)準(zhǔn)的一組標(biāo)準(zhǔn)的API服務(wù)器端通過(guò)這組標(biāo)準(zhǔn)的服務(wù)器端通過(guò)這組標(biāo)準(zhǔn)的API動(dòng)態(tài)的決定調(diào)用的對(duì)動(dòng)態(tài)的決定調(diào)用的對(duì)象、操作,以及參數(shù)象、操作,以及參數(shù)山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院接口倉(cāng)庫(kù)和實(shí)現(xiàn)倉(cāng)庫(kù)接口倉(cāng)庫(kù)和實(shí)現(xiàn)倉(cāng)庫(kù) ORB提供了兩個(gè)用于存儲(chǔ)有關(guān)對(duì)象信息的服務(wù):提供了

36、兩個(gè)用于存儲(chǔ)有關(guān)對(duì)象信息的服務(wù):接口倉(cāng)庫(kù)和實(shí)現(xiàn)倉(cāng)庫(kù)。接口倉(cāng)庫(kù)和實(shí)現(xiàn)倉(cāng)庫(kù)。山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院接口倉(cāng)庫(kù)接口倉(cāng)庫(kù)1 接口倉(cāng)庫(kù)存儲(chǔ)各個(gè)接口信息的模塊,如用接口倉(cāng)庫(kù)存儲(chǔ)各個(gè)接口信息的模塊,如用IDL編寫的接口定義、編寫的接口定義、常量、類型等。常量、類型等。2 它本身作為一個(gè)對(duì)象而存在。它本身作為一個(gè)對(duì)象而存在。3 應(yīng)用程序可以象調(diào)用其它應(yīng)用程序可以象調(diào)用其它CORBA對(duì)象所提供的操作一樣,來(lái)對(duì)象所提供的操作一樣,來(lái)調(diào)用接口倉(cāng)庫(kù)的操作。調(diào)用接口倉(cāng)庫(kù)的操作。4接口倉(cāng)庫(kù)允許應(yīng)用程序在運(yùn)行時(shí)訪問(wèn)接口倉(cāng)庫(kù)允許應(yīng)用程序在運(yùn)行時(shí)訪問(wèn)OMG IDL類型系統(tǒng)。例類型系統(tǒng)。例如,當(dāng)應(yīng)用程序在運(yùn)行時(shí)遇到一個(gè)不知道

37、其類型的對(duì)象時(shí),如,當(dāng)應(yīng)用程序在運(yùn)行時(shí)遇到一個(gè)不知道其類型的對(duì)象時(shí),可以通過(guò)接口倉(cāng)庫(kù)的操作來(lái)遍歷系統(tǒng)中的所有接口信息??梢酝ㄟ^(guò)接口倉(cāng)庫(kù)的操作來(lái)遍歷系統(tǒng)中的所有接口信息。5 由此可見(jiàn),接口倉(cāng)庫(kù)的引入很好地支持了由此可見(jiàn),接口倉(cāng)庫(kù)的引入很好地支持了CORBA的動(dòng)態(tài)調(diào)用。的動(dòng)態(tài)調(diào)用。山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院實(shí)現(xiàn)倉(cāng)庫(kù)實(shí)現(xiàn)倉(cāng)庫(kù)1 實(shí)現(xiàn)倉(cāng)庫(kù)所完成的功能與接口倉(cāng)庫(kù)類似,只不過(guò)它實(shí)現(xiàn)倉(cāng)庫(kù)所完成的功能與接口倉(cāng)庫(kù)類似,只不過(guò)它存儲(chǔ)的是對(duì)象實(shí)現(xiàn)的信息。存儲(chǔ)的是對(duì)象實(shí)現(xiàn)的信息。2 實(shí)現(xiàn)庫(kù)包括的信息讓實(shí)現(xiàn)庫(kù)包括的信息讓ORB可以定位并激活對(duì)象的實(shí)可以定位并激活對(duì)象的實(shí)現(xiàn)。實(shí)現(xiàn)庫(kù)中的信息是特定于現(xiàn)。實(shí)現(xiàn)庫(kù)中的信息是特

38、定于ORB或?qū)崿F(xiàn)環(huán)境的,或?qū)崿F(xiàn)環(huán)境的,3 實(shí)現(xiàn)的安裝和控制策略是通過(guò)實(shí)現(xiàn)庫(kù)實(shí)現(xiàn)的。除了實(shí)現(xiàn)的安裝和控制策略是通過(guò)實(shí)現(xiàn)庫(kù)實(shí)現(xiàn)的。除了它可以充當(dāng)它可以充當(dāng)ORB功能外,實(shí)現(xiàn)庫(kù)通常還保存與功能外,實(shí)現(xiàn)庫(kù)通常還保存與ORB對(duì)對(duì)象實(shí)現(xiàn)相關(guān)的信息。象實(shí)現(xiàn)相關(guān)的信息。 山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院對(duì)象適配器對(duì)象適配器ORB內(nèi)核無(wú)法為所有的對(duì)象提供一個(gè)統(tǒng)一、方便有效的界面。內(nèi)核無(wú)法為所有的對(duì)象提供一個(gè)統(tǒng)一、方便有效的界面??梢詫⒛康膶?duì)象分成若干組,由特定的對(duì)象適配器來(lái)為各組對(duì)象服務(wù)可以將目的對(duì)象分成若干組,由特定的對(duì)象適配器來(lái)為各組對(duì)象服務(wù) CORBA給出了對(duì)象適配器(給出了對(duì)象適配器(POA),以滿足大多數(shù)

39、對(duì)象的需要),以滿足大多數(shù)對(duì)象的需要POA提供了產(chǎn)生和解釋對(duì)象引用、對(duì)請(qǐng)求進(jìn)行認(rèn)證、激活提供了產(chǎn)生和解釋對(duì)象引用、對(duì)請(qǐng)求進(jìn)行認(rèn)證、激活/去活實(shí)現(xiàn)去活實(shí)現(xiàn) 、激、激活活/去活單個(gè)對(duì)象、通過(guò)框架調(diào)用方法等功能去活單個(gè)對(duì)象、通過(guò)框架調(diào)用方法等功能. 在提供這些功能時(shí)在提供這些功能時(shí) , POA要用到一些與操作系統(tǒng)有關(guān)的知識(shí)要用到一些與操作系統(tǒng)有關(guān)的知識(shí) ,這些知識(shí)由這些知識(shí)由實(shí)現(xiàn)倉(cāng)庫(kù)提供,實(shí)現(xiàn)倉(cāng)庫(kù)還存放對(duì)象實(shí)現(xiàn)的有關(guān)信息。實(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)傳遞給將服務(wù)請(qǐng)求的參數(shù)及操作控制權(quán)傳遞給POA,由,由POA將執(zhí)行結(jié)果返將執(zhí)行結(jié)果返回給回給OR

40、B 山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院對(duì)象適配器對(duì)象適配器類似于容器的概念,提供了若干服務(wù):類似于容器的概念,提供了若干服務(wù): 對(duì)象引用的生成與解釋對(duì)象引用的生成與解釋 根據(jù)對(duì)象引用找到它對(duì)應(yīng)的對(duì)象實(shí)現(xiàn)根據(jù)對(duì)象引用找到它對(duì)應(yīng)的對(duì)象實(shí)現(xiàn) 方法調(diào)用方法調(diào)用 交互的安全性交互的安全性 對(duì)象的激活與終止對(duì)象的激活與終止 對(duì)象實(shí)現(xiàn)的注冊(cè)對(duì)象實(shí)現(xiàn)的注冊(cè)同同5個(gè)組件打交道:個(gè)組件打交道:ORB核心,框架,動(dòng)態(tài)框架,實(shí),動(dòng)態(tài)框架,實(shí)現(xiàn)庫(kù),現(xiàn)庫(kù),對(duì)象實(shí)現(xiàn)山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院對(duì)象適配器對(duì)象適配器 對(duì)象適配器是聯(lián)系對(duì)象實(shí)現(xiàn)與對(duì)象適配器是聯(lián)系對(duì)象實(shí)現(xiàn)與ORB本身的紐帶。另外,它本身的紐帶。另外,它的引入還大大減輕了

41、的引入還大大減輕了ORB的任務(wù),從而簡(jiǎn)化了的任務(wù),從而簡(jiǎn)化了ORB的設(shè)計(jì)。的設(shè)計(jì)。具體地說(shuō),對(duì)象適配器主要完成以下工作:具體地說(shuō),對(duì)象適配器主要完成以下工作: 對(duì)象登記對(duì)象登記利用對(duì)象適配器所提供的操作,可以將利用對(duì)象適配器所提供的操作,可以將CORBA的實(shí)現(xiàn)的實(shí)現(xiàn)倉(cāng)庫(kù)中具有編程語(yǔ)言形式的實(shí)體(倉(cāng)庫(kù)中具有編程語(yǔ)言形式的實(shí)體(servant,伺服器)登記為,伺服器)登記為CORBA的對(duì)象實(shí)現(xiàn)。的對(duì)象實(shí)現(xiàn)。山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院對(duì)象適配器對(duì)象適配器 對(duì)象引用對(duì)象引用(OR,Object Reference)的產(chǎn)生的產(chǎn)生對(duì)象適配器為對(duì)象適配器為CORBA對(duì)象生成對(duì)象引用??蛻魬?yīng)用程序通過(guò)對(duì)象引

42、用來(lái)訪對(duì)象生成對(duì)象引用??蛻魬?yīng)用程序通過(guò)對(duì)象引用來(lái)訪問(wèn)對(duì)象實(shí)例。問(wèn)對(duì)象實(shí)例。 服務(wù)器進(jìn)程的激活服務(wù)器進(jìn)程的激活如果客戶發(fā)出請(qǐng)求時(shí),目標(biāo)對(duì)象所在的如果客戶發(fā)出請(qǐng)求時(shí),目標(biāo)對(duì)象所在的服務(wù)器還未運(yùn)行,則對(duì)象適配器自動(dòng)激活該服務(wù)器。服務(wù)器還未運(yùn)行,則對(duì)象適配器自動(dòng)激活該服務(wù)器。山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院對(duì)象適配器對(duì)象適配器對(duì)象的激活。對(duì)象的激活。對(duì)象的撤消對(duì)象的撤消在預(yù)先規(guī)定的時(shí)間片內(nèi),如果一直沒(méi)有發(fā)向某個(gè)在預(yù)先規(guī)定的時(shí)間片內(nèi),如果一直沒(méi)有發(fā)向某個(gè)目標(biāo)對(duì)象的請(qǐng)求,則對(duì)象適配器撤消這一對(duì)象,以節(jié)省系統(tǒng)資源。目標(biāo)對(duì)象的請(qǐng)求,則對(duì)象適配器撤消這一對(duì)象,以節(jié)省系統(tǒng)資源。對(duì)象向上調(diào)用對(duì)象向上調(diào)用對(duì)象適配器把請(qǐng)

43、求分配給已登記了的對(duì)象。對(duì)象適配器把請(qǐng)求分配給已登記了的對(duì)象。山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院2.3 ORB 之間的互操作之間的互操作在發(fā)布在發(fā)布CORBA2.0之前,之前,ORB產(chǎn)品的最大缺點(diǎn)是:不產(chǎn)品的最大缺點(diǎn)是:不同廠商所提供的同廠商所提供的ORB產(chǎn)品之間并不能互操作。產(chǎn)品之間并不能互操作。為了達(dá)到異構(gòu)為了達(dá)到異構(gòu)ORB系統(tǒng)之間互操作的目的,系統(tǒng)之間互操作的目的,CORBA2.0規(guī)范中定義了標(biāo)準(zhǔn)通信協(xié)議規(guī)范中定義了標(biāo)準(zhǔn)通信協(xié)議GIOP(General inter-ORB Protocol)。)。山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院2.3.1 域域指這樣一個(gè)范圍,在其中的對(duì)象具有公共的特征,服從相同指

44、這樣一個(gè)范圍,在其中的對(duì)象具有公共的特征,服從相同的規(guī)則。的規(guī)則。ORB間的互操作機(jī)制就是為不同實(shí)現(xiàn)的間的互操作機(jī)制就是為不同實(shí)現(xiàn)的ORB能共存于同一環(huán)能共存于同一環(huán)境下,而提供的相互識(shí)別和轉(zhuǎn)換的機(jī)制。境下,而提供的相互識(shí)別和轉(zhuǎn)換的機(jī)制。當(dāng)需要的信息離開(kāi)它的域時(shí),就必須使用橋接來(lái)傳遞信息。當(dāng)需要的信息離開(kāi)它的域時(shí),就必須使用橋接來(lái)傳遞信息。橋接的作用是確保信息能完整的從一個(gè)橋接的作用是確保信息能完整的從一個(gè)ORB映射到另一個(gè)映射到另一個(gè)ORB。 可采用可采用inter-ORB 實(shí)現(xiàn)實(shí)現(xiàn)間接橋接:不同域中多個(gè)間接橋接:不同域中多個(gè)ORB通信通信直接橋接:同域,即能理解相同的對(duì)象引用和相同的直接橋

45、接:同域,即能理解相同的對(duì)象引用和相同的IDL山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院CORBA中的域分為以下幾個(gè)部分l Referencing domain 對(duì)象引用范圍l Representation domain 信息傳輸語(yǔ)法和協(xié)議范圍l Network addressing domain 網(wǎng)絡(luò)地址范圍l Network connectivity domain 可能的網(wǎng)絡(luò)信息范圍l Security domain 特殊安全策略l Type domain 特殊標(biāo)識(shí)符范圍l Transaction domain 特定事物服務(wù)范圍 山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院2.3.2 互操作性的實(shí)現(xiàn)互操作性的實(shí)現(xiàn)從策略上,它分為間接和直接兩種橋接機(jī)制,從策略上,它分為間接和直接兩種橋接機(jī)制,從實(shí)現(xiàn)層次上從實(shí)現(xiàn)層次上 線內(nèi)橋接是指在線內(nèi)橋接是指在ORB內(nèi)部執(zhí)行必要的轉(zhuǎn)折和代碼映射;內(nèi)部執(zhí)行必要的轉(zhuǎn)折和代碼映射; 請(qǐng)求層橋接是指在請(qǐng)求層橋接是指在ORB之外執(zhí)行請(qǐng)求轉(zhuǎn)換和代碼映射。之外執(zhí)行請(qǐng)求轉(zhuǎn)換和代碼映射。 為了實(shí)現(xiàn)為了實(shí)

溫馨提示

  • 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)論