chapter3_面向?qū)ο蟮姆植加?jì)算環(huán)境3CORBA_第1頁(yè)
chapter3_面向?qū)ο蟮姆植加?jì)算環(huán)境3CORBA_第2頁(yè)
chapter3_面向?qū)ο蟮姆植加?jì)算環(huán)境3CORBA_第3頁(yè)
chapter3_面向?qū)ο蟮姆植加?jì)算環(huán)境3CORBA_第4頁(yè)
chapter3_面向?qū)ο蟮姆植加?jì)算環(huán)境3CORBA_第5頁(yè)
已閱讀5頁(yè),還剩80頁(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、Beijing University of Posts and Telecommunications Page 1Beijing University of Posts and Telecommunications Page 2 Beijing University of Posts and Telecommunications Page 3t分布式系統(tǒng)中的面向?qū)ο蠹夹g(shù)分布式系統(tǒng)中的面向?qū)ο蠹夹g(shù)t開(kāi)放式分布處理開(kāi)放式分布處理ODPtCORBA技術(shù)技術(shù):Common Object Request Broker Architecture主要內(nèi)容Beijing University of Posts

2、 and Telecommunications Page 4緒論緒論 t OMG組織制定的一個(gè)工業(yè)規(guī)范,是一個(gè)體系結(jié)構(gòu)和一組規(guī)范。t 目的:在分布式環(huán)境下實(shí)現(xiàn)應(yīng)用的集成,使基于對(duì)象的軟件成員,在分布的、異構(gòu)的環(huán)境下可重用、可移植、可互操作可互操作。n OMG的理念:不存在統(tǒng)一的硬件平臺(tái)、不存在統(tǒng)一的操作系統(tǒng)、編程語(yǔ)言、網(wǎng)絡(luò)協(xié)議、應(yīng)用模式,必須在互操作上達(dá)成一致。t 方法:提供一個(gè)框架,如果符合這一框架,就可以在主要的硬件平臺(tái)和操作系統(tǒng)上建立一個(gè)異質(zhì)的分布式應(yīng)用。t CORBA結(jié)合了計(jì)算機(jī)工業(yè)中的兩個(gè)重要趨勢(shì):面向?qū)ο筌浖_(kāi)發(fā)和客戶機(jī)/服務(wù)器計(jì)算。Beijing University of Po

3、sts and Telecommunications Page 5主要內(nèi)容主要內(nèi)容 t綜述綜述t基于基于CORBA的軟件開(kāi)發(fā)基本過(guò)程的軟件開(kāi)發(fā)基本過(guò)程tRM-ODP與與CORBAt總結(jié)總結(jié)Beijing University of Posts and Telecommunications Page 6綜述綜述 t 對(duì)象管理體系結(jié)構(gòu)對(duì)象管理體系結(jié)構(gòu)OMAt OMG的接口定義語(yǔ)言的接口定義語(yǔ)言IDLt 對(duì)象請(qǐng)求代理對(duì)象請(qǐng)求代理ORBt CORBA服務(wù)t ORB之間的互操作Beijing University of Posts and Telecommunications Page 7綜述綜述 t

4、對(duì)象管理體系結(jié)構(gòu)OMAt OMG的接口定義語(yǔ)言的接口定義語(yǔ)言IDLt 對(duì)象請(qǐng)求代理對(duì)象請(qǐng)求代理ORBt CORBA服務(wù)t ORB之間的互操作Beijing University of Posts and Telecommunications Page 8對(duì)象管理體系結(jié)構(gòu)對(duì)象管理體系結(jié)構(gòu)OMA 定義異構(gòu)環(huán)境下對(duì)象透明地發(fā)送請(qǐng)求和接收響應(yīng)的基本機(jī)制。支持客戶程序與對(duì)象實(shí)現(xiàn)在一個(gè)分布式環(huán)境中通信。基于分布式對(duì)象的所有應(yīng)用程序都可能用到的通用服務(wù)的接口可用于大多數(shù)應(yīng)用領(lǐng)域的面向終端用戶的工具接口水平公用設(shè)施:領(lǐng)域間可共享垂直公用設(shè)施:面向某個(gè)領(lǐng)域由CORBA支持的頂層業(yè)務(wù)對(duì)象和應(yīng)用系統(tǒng),是針對(duì)特定應(yīng)用

5、開(kāi)發(fā)的接口Beijing University of Posts and Telecommunications Page 9OMAt CORBA不只定義了面向?qū)ο蟮倪h(yuǎn)程調(diào)用機(jī)制,它還定義了不同抽象層次的框架。OS ORBServicesFacilitiesObjectObjectObject核心ORB提供了網(wǎng)絡(luò)編程復(fù)雜性的抽象以面向?qū)ο蟮姆绞教峁┝说湫偷南到y(tǒng)級(jí)功能。提供了領(lǐng)域間共享或面向特定領(lǐng)域的服務(wù)Beijing University of Posts and Telecommunications Page 10綜述綜述 t 對(duì)象管理體系結(jié)構(gòu)OMAt OMG的接口定義語(yǔ)言的接口定義語(yǔ)言IDL

6、t 對(duì)象請(qǐng)求代理對(duì)象請(qǐng)求代理ORBt CORBA服務(wù)t ORB之間的互操作Beijing University of Posts and Telecommunications Page 11OMG接口定義語(yǔ)言接口定義語(yǔ)言IDL t僅定義接口,不定義實(shí)現(xiàn)t分隔“對(duì)象作什麼 (WHAT)”與“如何做 (HOW)”t強(qiáng)類(lèi)型、面向?qū)ο蟆⒄Z(yǔ)言中立的說(shuō)明(描述)型語(yǔ)言tANSI C+ 的子集 t支持多繼承t支持到多種語(yǔ)言的映射Beijing University of Posts and Telecommunications Page 12ORBCC+AdaI D LI D LI D LI D LI D

7、LI D LClient SideObject Implementation SideCOBOLCAdaC+SmalltalkJAVAI D LI D LI D LI D LI D LI D LORBCOBOLSmalltalkJAVARole of CORBA IDLBeijing University of Posts and Telecommunications Page 13IDL & Stub Beijing University of Posts and Telecommunications Page 14一個(gè)實(shí)例一個(gè)實(shí)例(1)Module BANKInterface BANKAc

8、countenum account_kind checking,saving;exception account_not_availablestring,reason;exception incorrect_PIN;readonly attribute float balance; attribue account_kind kind_of_account;void access(in string account, in string pin) raises(accout_not_available,incorrect_pin);Beijing University of Posts and

9、 Telecommunications Page 15一個(gè)實(shí)例一個(gè)實(shí)例(2) void deposit (in float f, out float new_balance)raises (account_not_available);void withdraw (in float f, out float new_balance)raises (account_not_available);oneway op1(in int i);Beijing University of Posts and Telecommunications Page 16IDL到編程語(yǔ)言的映射到編程語(yǔ)言的映射t 定義

10、相應(yīng)編程語(yǔ)言所用到的數(shù)據(jù)類(lèi)型的定義,如: OMG IDLJavashortshortlong longlong longoctetbytet t 目前有:Ada、C、C+、Java、Lisp、COBOL、Python、Smalltalk。Beijing University of Posts and Telecommunications Page 17IDL的使用的使用IDL定義文件定義文件IDL CompilerCLIENTIDLSTUBSERVERIDLSKELETONJavaCompilerC+CompilerCLIENT應(yīng)用CODESERVER實(shí)現(xiàn)代碼CLIENTPROGRAMSERV

11、ERPROGRAMCORBARUN-TIMELIBRARIES接口庫(kù)Beijing University of Posts and Telecommunications Page 18綜述綜述 t 對(duì)象管理體系結(jié)構(gòu)OMAt OMG的接口定義語(yǔ)言的接口定義語(yǔ)言IDLt 對(duì)象請(qǐng)求代理對(duì)象請(qǐng)求代理ORBt CORBA服務(wù)t ORB之間的互操作Beijing University of Posts and Telecommunications Page 19對(duì)象請(qǐng)求代理對(duì)象請(qǐng)求代理ORB t 對(duì)象請(qǐng)求代理ORB(Object Request Broker):定義異構(gòu)環(huán)境下對(duì)象透明地發(fā)送請(qǐng)求和接收響應(yīng)的

12、基本機(jī)制。ORB 為客戶隱藏:n對(duì)象位置n對(duì)象實(shí)現(xiàn)方式n對(duì)象執(zhí)行狀態(tài)n對(duì)象通信機(jī)制t ORB并不需要作為一個(gè)單獨(dú)的組件來(lái)實(shí)現(xiàn)。它定義了一系列的接口,任何一種支持了該接口的實(shí)現(xiàn)方式都是可行的。Beijing University of Posts and Telecommunications Page 20ORB體系結(jié)構(gòu)體系結(jié)構(gòu) 接口庫(kù) ORB 核客客戶戶機(jī)機(jī)對(duì)對(duì)象象實(shí)實(shí)現(xiàn)現(xiàn)動(dòng)動(dòng)態(tài)態(tài)調(diào)調(diào)用用接接口口ORB接接口口對(duì)對(duì)象象適適配配器器in argsOperation( )out args + return valusGIOP/IIOPNETWORK(服務(wù)器 )實(shí)現(xiàn)庫(kù)動(dòng)動(dòng)態(tài)態(tài)骨骨架架接接口口靜靜態(tài)態(tài)

13、I ID DL L骨骨架架靜靜態(tài)態(tài)I ID DL L存存根根圖3-3 CORBA ORB的體系結(jié)構(gòu)Beijing University of Posts and Telecommunications Page 21主要內(nèi)容主要內(nèi)容 t 接口t 對(duì)象引用t 客戶和對(duì)象實(shí)現(xiàn)t ORB核心t 接口庫(kù)和實(shí)現(xiàn)庫(kù)t 動(dòng)態(tài)調(diào)用和靜態(tài)調(diào)用t 對(duì)象適配器Beijing University of Posts and Telecommunications Page 22主要內(nèi)容主要內(nèi)容 t 接口t 對(duì)象引用t 客戶和對(duì)象實(shí)現(xiàn)t ORB核心t 接口庫(kù)和實(shí)現(xiàn)庫(kù)t 動(dòng)態(tài)調(diào)用和靜態(tài)調(diào)用t 對(duì)象適配器Beijing Uni

14、versity of Posts and Telecommunications Page 23接口接口t 接口:n客戶程序與對(duì)象實(shí)現(xiàn)之間的界面,描述了客戶可訪問(wèn)的對(duì)象操作的一個(gè)集合;完全獨(dú)立于對(duì)象所處的位置、實(shí)現(xiàn)對(duì)象的程序設(shè)計(jì)語(yǔ)言以及對(duì)象接口中未反映的其他特性;n客戶程序只能通過(guò)對(duì)象的接口定義掌握對(duì)象的邏輯結(jié)構(gòu),并通過(guò)發(fā)送請(qǐng)求來(lái)影響對(duì)象的行為與狀態(tài)n對(duì)象接口采用接口定義語(yǔ)言IDL定義;Beijing University of Posts and Telecommunications Page 24ORB的各種接口的各種接口接口庫(kù) ORB 核客客戶戶機(jī)機(jī)對(duì)對(duì)象象實(shí)實(shí)現(xiàn)現(xiàn)動(dòng)動(dòng)態(tài)態(tài)調(diào)調(diào)用用接接口口

15、ORB接接口口對(duì)對(duì)象象適適配配器器in argsOperation( )out args + return valusGIOP/IIOPNETWORK(服務(wù)器 )實(shí)現(xiàn)庫(kù)動(dòng)動(dòng)態(tài)態(tài)骨骨架架接接口口靜靜態(tài)態(tài)I ID DL L骨骨架架靜靜態(tài)態(tài)I ID DL L存存根根圖3-3 CORBA ORB的體系結(jié)構(gòu)Beijing University of Posts and Telecommunications Page 25主要內(nèi)容主要內(nèi)容 t 接口t 對(duì)象引用t 客戶和對(duì)象實(shí)現(xiàn)t ORB核心t 接口庫(kù)和實(shí)現(xiàn)庫(kù)t 動(dòng)態(tài)調(diào)用和靜態(tài)調(diào)用t 對(duì)象適配器Beijing University of Posts and

16、 Telecommunications Page 26對(duì)象引用對(duì)象引用t對(duì)象引用 臨時(shí)的不透明的句柄,標(biāo)識(shí)ORB中的一個(gè)對(duì)象實(shí)例。它用于定位響應(yīng)請(qǐng)求的對(duì)象實(shí)現(xiàn)。t可互操作的對(duì)象引用IOR:在異構(gòu)ORB間傳遞OR。Beijing University of Posts and Telecommunications Page 27對(duì)象引用的獲取對(duì)象引用的獲取t從命名服務(wù)或交易服務(wù)中獲取t使用工廠對(duì)象t使用對(duì)象引用字符串。轉(zhuǎn)換為字符串,在 文 件 中 、 e m a i l 等 中 傳 遞 。Object_to_string()和string_to_object();t特定ORB實(shí)現(xiàn)的方法t獲取初始

17、引用,如:CORBA:ORB:resolve_initial_references()t作為方法調(diào)用的返回值Beijing University of Posts and Telecommunications Page 28主要內(nèi)容主要內(nèi)容 t 接口t 對(duì)象引用t 客戶和對(duì)象實(shí)現(xiàn)t ORB核心t 接口庫(kù)和實(shí)現(xiàn)庫(kù)t 動(dòng)態(tài)調(diào)用和靜態(tài)調(diào)用t 對(duì)象適配器Beijing University of Posts and Telecommunications Page 29客戶和對(duì)象實(shí)現(xiàn)客戶和對(duì)象實(shí)現(xiàn)t 客戶(客戶(ClientClient)n客戶訪問(wèn)對(duì)象的對(duì)象引用,并且調(diào)用對(duì)象上的操作n客戶只知道對(duì)象的接

18、口,通過(guò)調(diào)用感受對(duì)象的行為t 對(duì)象實(shí)現(xiàn)(對(duì)象實(shí)現(xiàn)(Object ImplementationObject Implementation)n通過(guò)為對(duì)象實(shí)例定義數(shù)據(jù)和為對(duì)象方法定義代碼提供對(duì)象的語(yǔ)義;n對(duì)象可以具有不同的實(shí)現(xiàn)方式;n對(duì)象實(shí)現(xiàn)不依賴于ORB或者客戶調(diào)用對(duì)象的方式;n一個(gè)對(duì)象的實(shí)現(xiàn)可以是其它對(duì)象的客戶;n對(duì)象實(shí)現(xiàn)的實(shí)例Servant:譯為伺服對(duì)象或者仆從Beijing University of Posts and Telecommunications Page 30服務(wù)器服務(wù)器t 服務(wù)器是一個(gè)(或一組)組件,能為其它組件提供某種服務(wù)。即,如果某個(gè)組件創(chuàng)建了一個(gè)對(duì)象,并能被其它組件通過(guò)

19、對(duì)象引用來(lái)訪問(wèn),則擁有對(duì)象的組件就是該對(duì)象的服務(wù)器,其它組件對(duì)這個(gè)對(duì)象的請(qǐng)求操作都將由創(chuàng)建該組件的服務(wù)器來(lái)執(zhí)行。n例如一個(gè)進(jìn)程;客戶客戶客戶客戶服務(wù)器服務(wù)器服務(wù)器服務(wù)器對(duì)象實(shí)現(xiàn)的實(shí)例:對(duì)象實(shí)現(xiàn)的實(shí)例:ServantBeijing University of Posts and Telecommunications Page 31主要內(nèi)容主要內(nèi)容 t 接口t 對(duì)象引用t 客戶和對(duì)象實(shí)現(xiàn)t ORB核心t 接口庫(kù)和實(shí)現(xiàn)庫(kù)t 動(dòng)態(tài)調(diào)用和靜態(tài)調(diào)用t 對(duì)象適配器Beijing University of Posts and Telecommunications Page 32ORB核心核心接口庫(kù) ORB

20、核客客戶戶機(jī)機(jī)對(duì)對(duì)象象實(shí)實(shí)現(xiàn)現(xiàn)動(dòng)動(dòng)態(tài)態(tài)調(diào)調(diào)用用接接口口ORB接接口口對(duì)對(duì)象象適適配配器器in argsOperation( )out args + return valusGIOP/IIOPNETWORK(服務(wù)器 )實(shí)現(xiàn)庫(kù)動(dòng)動(dòng)態(tài)態(tài)骨骨架架接接口口靜靜態(tài)態(tài)I ID DL L骨骨架架靜靜態(tài)態(tài)I ID DL L存存根根圖3-3 CORBA ORB的體系結(jié)構(gòu)Beijing University of Posts and Telecommunications Page 33ORB核心提供的接口核心提供的接口t ORB內(nèi)核提供的服務(wù)對(duì)象接口,同時(shí)為客戶方和對(duì)象實(shí)現(xiàn)方所見(jiàn),可直接為應(yīng)用程序所使用:n對(duì)象引用

21、操作:提供對(duì)象引用的串化和反串化及對(duì)象引用復(fù)制、刪除、比較及探測(cè)對(duì)象引用存在與否等操作。如object_to_string();release();nORB和對(duì)象適配器初始化:使應(yīng)用得到指向ORB的對(duì)象引用。如ORB_init();n獲取初始對(duì)象引用:ORB規(guī)定了客戶對(duì)象在ORB初始時(shí)獲取初始對(duì)象引用的方法, 如resolve_initial_references();Beijing University of Posts and Telecommunications Page 34主要內(nèi)容主要內(nèi)容 t 接口t 對(duì)象引用t 客戶和對(duì)象實(shí)現(xiàn)t ORB核心t 接口庫(kù)和實(shí)現(xiàn)庫(kù)t 動(dòng)態(tài)調(diào)用和靜態(tài)調(diào)用t

22、 對(duì)象適配器Beijing University of Posts and Telecommunications Page 35接口庫(kù)和實(shí)現(xiàn)庫(kù)接口庫(kù)和實(shí)現(xiàn)庫(kù)接口庫(kù) ORB 核客客戶戶機(jī)機(jī)對(duì)對(duì)象象實(shí)實(shí)現(xiàn)現(xiàn)動(dòng)動(dòng)態(tài)態(tài)調(diào)調(diào)用用接接口口ORB接接口口對(duì)對(duì)象象適適配配器器in argsOperation( )out args + return valusGIOP/IIOPNETWORK(服務(wù)器 )實(shí)現(xiàn)庫(kù)動(dòng)動(dòng)態(tài)態(tài)骨骨架架接接口口靜靜態(tài)態(tài)I ID DL L骨骨架架靜靜態(tài)態(tài)I ID DL L存存根根圖3-3 CORBA ORB的體系結(jié)構(gòu)Beijing University of Posts and Teleco

23、mmunications Page 36主要功能主要功能t 接口庫(kù)(IFR,InterFace Repository)nORB的一個(gè)組件,提供服務(wù),用于接口定義的存儲(chǔ)、查找和管理;nCORBA對(duì)其接口進(jìn)行了定義;t 實(shí)現(xiàn)庫(kù)(IR,Implemetation Repository)nORB的一個(gè)組件,用于存儲(chǔ)對(duì)象實(shí)現(xiàn)的相關(guān)信息,如;如何定位對(duì)象實(shí)現(xiàn),如何激活對(duì)象實(shí)現(xiàn),以及其它的與ORB和操作系統(tǒng)相關(guān)的信息;nOMG沒(méi)有對(duì)其進(jìn)行詳細(xì)規(guī)范,與具體實(shí)現(xiàn)相關(guān);如Orbix Web: putit -hHostName ServerName -j ServerAbsoluteClassNameBeijing

24、 University of Posts and Telecommunications Page 37主要內(nèi)容主要內(nèi)容 t 接口t 對(duì)象引用t 客戶和對(duì)象實(shí)現(xiàn)t ORB核心t 接口庫(kù)和實(shí)現(xiàn)庫(kù)t 動(dòng)態(tài)調(diào)用和靜態(tài)調(diào)用t 對(duì)象適配器Beijing University of Posts and Telecommunications Page 38靜態(tài)和動(dòng)態(tài)調(diào)用靜態(tài)和動(dòng)態(tài)調(diào)用接口庫(kù) ORB 核客客戶戶機(jī)機(jī)對(duì)對(duì)象象實(shí)實(shí)現(xiàn)現(xiàn)動(dòng)動(dòng)態(tài)態(tài)調(diào)調(diào)用用接接口口ORB接接口口對(duì)對(duì)象象適適配配器器in argsOperation( )out args + return valusGIOP/IIOPNETWORK(服務(wù)器

25、)實(shí)現(xiàn)庫(kù)動(dòng)動(dòng)態(tài)態(tài)骨骨架架接接口口靜靜態(tài)態(tài)I ID DL L骨骨架架靜靜態(tài)態(tài)I ID DL L存存根根圖3-3 CORBA ORB的體系結(jié)構(gòu)Beijing University of Posts and Telecommunications Page 39從從IDL到存根和骨架到存根和骨架IDL定義文件定義文件IDL CompilerCLIENTIDLSTUBSERVERIDLSKELETONJavaCompilerC+CompilerCLIENT應(yīng)用CODESERVER實(shí)現(xiàn)代碼CLIENTPROGRAMSERVERPROGRAMCORBARUN-TIMELIBRARIES接口庫(kù)Beijing

26、University of Posts and Telecommunications Page 40靜態(tài)調(diào)用:存根和骨架靜態(tài)調(diào)用:存根和骨架t OMG IDL編譯器根據(jù)接口定義來(lái)產(chǎn)生客戶方的存根和服務(wù)方的骨架。t 靜態(tài)IDL存根 (IDL stubs):n 編譯時(shí)確定的的靜態(tài)接口,位于客戶對(duì)象本地, 對(duì)客戶來(lái)說(shuō)相當(dāng)于遠(yuǎn)程的執(zhí)行對(duì)象。由存根向ORB提交請(qǐng)求。n 負(fù)責(zé)對(duì)請(qǐng)求參數(shù)的封裝和發(fā)送,以及對(duì)返回結(jié)果的接收和解封裝,并以適當(dāng)?shù)母袷竭M(jìn)行通信傳輸。t 靜態(tài)IDL骨架 ( IDL skeletons ):n 在本地調(diào)用執(zhí)行對(duì)象服務(wù),并與ORB通信。n 針對(duì)執(zhí)行對(duì)象來(lái)說(shuō),代表了遠(yuǎn)程客戶。骨架接收經(jīng)OR

27、B來(lái)的請(qǐng)求,將請(qǐng)求參數(shù)解封裝,識(shí)別客戶所請(qǐng)求的服務(wù),(向上)調(diào)用服務(wù)器中的對(duì)象實(shí)現(xiàn),把執(zhí)行結(jié)果封裝,并將結(jié)果返回給客戶程序。Beijing University of Posts and Telecommunications Page 41主要內(nèi)容主要內(nèi)容 t 接口t 對(duì)象引用t 客戶和對(duì)象實(shí)現(xiàn)t ORB核心t 接口庫(kù)和實(shí)現(xiàn)庫(kù)t 動(dòng)態(tài)調(diào)用和靜態(tài)調(diào)用t 對(duì)象適配器Beijing University of Posts and Telecommunications Page 42對(duì)象適配器對(duì)象適配器接口庫(kù) ORB 核客客戶戶機(jī)機(jī)對(duì)對(duì)象象實(shí)實(shí)現(xiàn)現(xiàn)動(dòng)動(dòng)態(tài)態(tài)調(diào)調(diào)用用接接口口ORB接接口口對(duì)對(duì)象象適適配配

28、器器in argsOperation( )out args + return valusGIOP/IIOPNETWORK(服務(wù)器 )實(shí)現(xiàn)庫(kù)動(dòng)動(dòng)態(tài)態(tài)骨骨架架接接口口靜靜態(tài)態(tài)I ID DL L骨骨架架靜靜態(tài)態(tài)I ID DL L存存根根圖3-3 CORBA ORB的體系結(jié)構(gòu)Beijing University of Posts and Telecommunications Page 43CORBA對(duì)象和伺服對(duì)象對(duì)象和伺服對(duì)象t CORBA對(duì)象:n可看作是一個(gè)具有對(duì)象標(biāo)識(shí)、對(duì)象接口及對(duì)象實(shí)現(xiàn)的抽象實(shí)體。n從客戶程序的角度看,IOR中包含了對(duì)象的標(biāo)識(shí)、接口類(lèi)型及其他信息以查找對(duì)象實(shí)現(xiàn)。t 伺服對(duì)象(Se

29、rvant):n指具體程序設(shè)計(jì)語(yǔ)言的對(duì)象實(shí)例或?qū)嶓w,通常存在于一個(gè)服務(wù)程序進(jìn)程之中。t對(duì)象適配器(Object Adaptor):n一個(gè)重要的ORB組件,它負(fù)責(zé)將抽象的CORBA對(duì)象映射到具體的伺服對(duì)象。Beijing University of Posts and Telecommunications Page 44主要功能主要功能t 服務(wù)器利用對(duì)象實(shí)現(xiàn)創(chuàng)建伺服對(duì)象,然后將這些服務(wù)端本地的對(duì)象實(shí)例轉(zhuǎn)換為可供遠(yuǎn)程使用的CORBA對(duì)象:n 給該本地對(duì)象實(shí)例關(guān)聯(lián)了對(duì)象標(biāo)識(shí)、對(duì)象引用;n 對(duì)象引用宿主服務(wù)器地址端口+POA標(biāo)識(shí)ObjectIDn 例:CORBAHello_impl helloImpl

30、 = new Hello_impl();Hello hello = helloImpl._this(orb);t 對(duì)象適配器是管理服務(wù)端伺服對(duì)象、對(duì)象標(biāo)識(shí)、對(duì)象引用及它們之間關(guān)聯(lián)的主要工具。n 它負(fù)責(zé)決定在收到客戶請(qǐng)求時(shí)應(yīng)調(diào)用哪個(gè)伺服對(duì)象,然后調(diào)用該伺服對(duì)象上的合適操作;n 例:POA: Portable Object AdapterBeijing University of Posts and Telecommunications Page 45POA概貌概貌tP101Beijing University of Posts and Telecommunications Page 46接口庫(kù)

31、ORB 核客客戶戶機(jī)機(jī)對(duì)對(duì)象象實(shí)實(shí)現(xiàn)現(xiàn)動(dòng)動(dòng)態(tài)態(tài)調(diào)調(diào)用用接接口口ORB接接口口對(duì)對(duì)象象適適配配器器in argsOperation( )out args + return valusGIOP/IIOPNETWORK(服務(wù)器 )實(shí)現(xiàn)庫(kù)動(dòng)動(dòng)態(tài)態(tài)骨骨架架接接口口靜靜態(tài)態(tài)I ID DL L骨骨架架靜靜態(tài)態(tài)I ID DL L存存根根圖3-3 CORBA ORB的體系結(jié)構(gòu)存儲(chǔ)允許ORB的定位和激活對(duì)象實(shí)現(xiàn)的信息,如Server支持的類(lèi)、實(shí)例化對(duì)象、這些對(duì)象的ID等運(yùn)行時(shí)信息。對(duì)象引用的生成、維護(hù),方法調(diào)用、對(duì)象的激活與終止、對(duì)象定位等功能。BOA:Basic Object AdapterPOA:Portab

32、le Object AdapterDII在Server方的對(duì)應(yīng)。DSI從進(jìn)入的消息找出調(diào)用的目標(biāo)對(duì)象及相應(yīng)的方法,并提供運(yùn)行時(shí)的連接機(jī)制。允許動(dòng)態(tài)地構(gòu)造對(duì)象調(diào)用??蛻魴C(jī)可推遲到運(yùn)行時(shí)選擇對(duì)象的實(shí)現(xiàn)接口和操作。靜態(tài)IDL存根在Server側(cè)的對(duì)應(yīng)。由IDL編譯程序自動(dòng)生成。服務(wù)的靜態(tài)接口。 由IDL編譯程序自動(dòng)生成。在客戶端,如同一本地調(diào)用,是遠(yuǎn)程SERVER對(duì)象的代理。訪問(wèn)某個(gè)對(duì)象實(shí)現(xiàn)所提供的服務(wù)的程序。根據(jù)其接口了解其邏輯結(jié)構(gòu),并通過(guò)調(diào)用掌握對(duì)象的行為所定義的IDL接口的真正實(shí)現(xiàn)??捎谜Z(yǔ)言: C, C+, Java, Smalltalk, Ada 是ORB最關(guān)鍵的部分,負(fù)責(zé)請(qǐng)求的通信設(shè)施:對(duì)

33、象的定位編組與解組啟動(dòng)初始服務(wù)屏蔽底層網(wǎng)絡(luò)細(xì)節(jié)提供接口庫(kù)和其它的APIORB體系結(jié)構(gòu)回顧體系結(jié)構(gòu)回顧 對(duì)象的IDL 接口定義的存儲(chǔ)、分布和管理。客戶對(duì)象可以在運(yùn)行時(shí)查閱接口倉(cāng)庫(kù)的內(nèi)容,獲得對(duì)象實(shí)現(xiàn)的IDL接口信息,從而向?qū)ο髮?shí)現(xiàn)發(fā)出請(qǐng)求。當(dāng)客戶程序要調(diào)用遠(yuǎn)程對(duì)象上的方法時(shí),首先要得到這個(gè)遠(yuǎn)程對(duì)象的引用,之后就可以像調(diào)用本地方法一樣調(diào)用遠(yuǎn)程對(duì)象的方法。當(dāng)發(fā)出一個(gè)調(diào)用時(shí),實(shí)際上ORB會(huì)截取這個(gè)調(diào)用(通過(guò)客戶Stub完成),因?yàn)榭蛻艉头?wù)器可能在不同的網(wǎng)絡(luò)、不同的操作系統(tǒng)上甚至用不同的語(yǔ)言實(shí)現(xiàn),ORB還要負(fù)責(zé)將調(diào)用的名字、參數(shù)等編碼成標(biāo)準(zhǔn)的方式(稱Marshaling)通過(guò)網(wǎng)絡(luò)傳輸?shù)椒?wù)器方(有時(shí)在

34、同一臺(tái)機(jī)器上也如此),并通過(guò)將參數(shù)Unmarshaling的過(guò)程,傳到正確的對(duì)象上(這整個(gè)過(guò)程叫重定向,Redirecting),服務(wù)器對(duì)象完成處理后,ORB通過(guò)同樣的Marshaling/Unmarshaling方式將結(jié)果返回給客戶。ORB內(nèi)核提供的服務(wù)對(duì)象接口,同時(shí)為客戶方和對(duì)象實(shí)現(xiàn)方所見(jiàn),可直接為應(yīng)用程序所使用。Beijing University of Posts and Telecommunications Page 47綜述綜述 t 對(duì)象管理體系結(jié)構(gòu)OMAt OMG的接口定義語(yǔ)言的接口定義語(yǔ)言IDLt 對(duì)象請(qǐng)求代理對(duì)象請(qǐng)求代理ORBt CORBA服務(wù)t ORB之間的互操作Beiji

35、ng University of Posts and Telecommunications Page 48 CORBA服務(wù)服務(wù)t 公共對(duì)象服務(wù):系統(tǒng)級(jí)的對(duì)象框架。擴(kuò)展了基本的CORBA體系結(jié)構(gòu)。t CORBA 服務(wù)代表了一組預(yù)先實(shí)現(xiàn)的,軟件開(kāi)發(fā)商通常需要的分布式對(duì)象。Beijing University of Posts and Telecommunications Page 49CORBA服務(wù)清單例服務(wù)清單例t 命名服務(wù)(命名服務(wù)(Naming Service):):為客戶程序通過(guò)名字查找對(duì)象實(shí)現(xiàn)提供支持。t 事件服務(wù)(事件服務(wù)(Event Service):):使對(duì)象間的通信能夠以松耦合的

36、方式進(jìn)行。t 生命周期服務(wù)(生命周期服務(wù)(Life Cycle Service):):為對(duì)象的創(chuàng)建、刪除、拷貝和移動(dòng)提供支持。 t 持久狀態(tài)服務(wù)(持久狀態(tài)服務(wù)(Persistent State Service):):為對(duì)象持久狀態(tài)的維護(hù)和管理提供支持。t 事務(wù)服務(wù)(事務(wù)服務(wù)(Transaction Service):):為事務(wù)處理提供支持。t 并發(fā)服務(wù)(并發(fā)服務(wù)(Concurrency Service):):為多個(gè)客戶協(xié)調(diào)一致地同時(shí)訪問(wèn)共享資源提供支持。Beijing University of Posts and Telecommunications Page 50CORBA服務(wù)清單例(服務(wù)

37、清單例(2)n 關(guān)系服務(wù)(關(guān)系服務(wù)(Relationship Service):):為實(shí)體和它們之間地關(guān)系的外在表示提供支持。n 外部服務(wù)(外部服務(wù)(Externalization Service):):為對(duì)象的外部化(externalizing)和 內(nèi)在化(internalizing)提供支持.n 查詢服務(wù)(查詢服務(wù)(Query Service):)::為客戶在對(duì)象集合中查找滿足某種查詢標(biāo)準(zhǔn)的對(duì)象提供支持。n 許可證服務(wù)(許可證服務(wù)(Licensing Service):):為軟件許可證的管理提供支持。 n 屬性服務(wù)(屬性服務(wù)(Property Service):):為對(duì)象屬性的定義和操縱提

38、供支持。n 時(shí)間服務(wù)(時(shí)間服務(wù)(Time Service):):為客戶獲取當(dāng)前時(shí)間以及可能的誤差提供支持。n 安全服務(wù)(安全服務(wù)(Security Service):):為基于CORBA的整個(gè)系統(tǒng)的安全提供支持。Beijing University of Posts and Telecommunications Page 51CORBA服務(wù)清單例(服務(wù)清單例(3)n交易對(duì)象服務(wù)(交易對(duì)象服務(wù)(Trading Object Service): 為提供和查找具有特定屬性的對(duì)象提供支。n集合服務(wù)(集合服務(wù)(Collections Service): 為創(chuàng)建以及操縱各種常用集合類(lèi)型提供支持。n通知服務(wù)

39、(通知服務(wù)(Notification Service):對(duì)事件服務(wù)的擴(kuò)展,支持事件的類(lèi)型定義、過(guò)濾條件的設(shè)定、服務(wù)質(zhì)量的設(shè)定等。n增強(qiáng)的時(shí)間視圖服務(wù)增強(qiáng)的時(shí)間視圖服務(wù)(Enhanced View of Time Service ):為一致地使用具有各種自身特點(diǎn)的時(shí)鐘提供支持。Beijing University of Posts and Telecommunications Page 52 命名服務(wù)命名服務(wù)t 目的:為通過(guò)名字查找對(duì)象提供支持。t 方法:定義了一系列的接口,使客戶可以管理對(duì)象的命名空間、在命名空間中查找對(duì)象。t 基本概念:n命名上下文命名上下文Naming context:一種

40、命名空間,在該范圍內(nèi),所有名字是唯一的。 n名字名字Name:一個(gè)有序的由組件(component)構(gòu)成的序列,也叫對(duì)象的復(fù)合名復(fù)合名。在這個(gè)序列中,除最后一個(gè)組件以外,其它都是一個(gè)命名空間的名字。最后的組件是這個(gè)對(duì)象的簡(jiǎn)單名簡(jiǎn)單名。n名字綁定名字綁定Name binding:名字到對(duì)象的關(guān)連。Beijing University of Posts and Telecommunications Page 53支持分層命名的支持分層命名的CORBA對(duì)象對(duì)象MexicoClub MedHyattCreeceHawaiiResortsPlaya BlanceCancunIxtapacontext n

41、amesimple nameCompound Name:ResortsMexicoClub MedPlaya BlanceCORBA Objects Support Hierachical Naming Beijing University of Posts and Telecommunications Page 54命名服務(wù)的使用命名服務(wù)的使用t 使用NamingContext接口提供的API,可以:n 將一個(gè)對(duì)象與一個(gè)名字綁定:void bind(in Name n, in Object obj);n 在一個(gè)命名空間中,刪除一個(gè)對(duì)象綁定:void unbind (in Name n); n

42、 通過(guò)名字查找一個(gè)對(duì)象:Object resolve (in Name n); n 創(chuàng)建一個(gè)命名空間:NamingContext bind_new_context(in Name n);n 等等.t 使用BindingIterator接口, 可以在一個(gè)給定的命名空間中漫游(Navigate)。Beijing University of Posts and Telecommunications Page 55CORBA服務(wù)小結(jié)服務(wù)小結(jié)t OMG為每個(gè)服務(wù)定義了標(biāo)準(zhǔn)APIn通過(guò)IDL定義t 實(shí)現(xiàn)廠商提供支持這些API的具體產(chǎn)品,它們的實(shí)現(xiàn)方法可能不同,但接口是一致的t 用戶購(gòu)買(mǎi)、部署需要的服務(wù)產(chǎn)品

43、n買(mǎi)源代碼或者可執(zhí)行代碼n安裝并在需要的時(shí)候?qū)嵗痶 在程序中使用時(shí),首先獲取服務(wù)中相應(yīng)對(duì)象的IOR,然后調(diào)用它的操作即可。Beijing University of Posts and Telecommunications Page 56綜述綜述 t 對(duì)象管理體系結(jié)構(gòu)OMAt OMG的接口定義語(yǔ)言的接口定義語(yǔ)言IDLt 對(duì)象請(qǐng)求代理對(duì)象請(qǐng)求代理ORBt CORBA服務(wù)t ORB之間的互操作Beijing University of Posts and Telecommunications Page 57ORB的互操作的互操作t可互操作性(interoperability)是指在一個(gè)系統(tǒng)中用不

44、同工具或不同供應(yīng)商的產(chǎn)品開(kāi)發(fā)出來(lái)的兩個(gè)組件是否可以協(xié)調(diào)工作。nORB之間的互操作n與基于DCE、DCOM等的系統(tǒng)的互操作Beijing University of Posts and Telecommunications Page 58 GIOP、IIOP和和ESIOPt 為了不同的ORB間可以互操作,有必要制訂傳輸請(qǐng)求的統(tǒng)一標(biāo)準(zhǔn),規(guī)定傳輸?shù)讓拥臄?shù)據(jù)表示方法與消息格式,nGIOP: 通用ORB間協(xié)議,定義了傳送語(yǔ)法和消息格式的標(biāo)準(zhǔn)集,能夠在任何面向連接的傳輸上實(shí)現(xiàn)ORB間的互操作性。nIIOP: Internet ORB間協(xié)議,定義了如何在TCP/IP傳輸上構(gòu)建GIOP。GIOP和IIOP之間

45、的關(guān)系類(lèi)似于接口定義及其實(shí)現(xiàn)。nESIOP:能夠針對(duì)已使用特定分布式計(jì)算基礎(chǔ)結(jié)構(gòu)的特殊情況(例如DCE-CIOP)構(gòu)建ORB。Beijing University of Posts and Telecommunications Page 59GIOP的基本組成部分的基本組成部分 t The Common Data Representation (CDR) definition:通用數(shù)據(jù)表示定義,它實(shí)際上是IDL數(shù)據(jù)類(lèi)型在網(wǎng)上傳輸時(shí)的編碼方案。它對(duì)所有IDL數(shù)據(jù)類(lèi)型的映射都作了規(guī)定。t GIOP Message Formats:規(guī)定了Client和Server兩個(gè)角色之間要傳輸?shù)南⒏袷健?種消

46、息格式:Request、Reply、CancelRequest、LocateRequest、LocateReply、CloseConnection、MessageError、Fragment。t GIOP Transport Assumptions:主要規(guī)定在任何面向連接的網(wǎng)絡(luò)傳輸層上的一些操作規(guī)則。如:傳輸應(yīng)該是面向連接的;傳輸應(yīng)是可靠的;在非正常情況下斷開(kāi)連接時(shí),傳輸應(yīng)能提供某種通知機(jī)制等;Beijing University of Posts and Telecommunications Page 60綜述綜述 t 對(duì)象管理體系結(jié)構(gòu)OMAt OMG的接口定義語(yǔ)言的接口定義語(yǔ)言IDLt 對(duì)

47、象請(qǐng)求代理對(duì)象請(qǐng)求代理ORBt CORBA服務(wù)t ORB之間的互操作Beijing University of Posts and Telecommunications Page 61主要內(nèi)容主要內(nèi)容 t綜述綜述t基于基于CORBA的軟件開(kāi)發(fā)基本過(guò)程的軟件開(kāi)發(fā)基本過(guò)程tRM-ODP與與CORBAt總結(jié)總結(jié)Beijing University of Posts and Telecommunications Page 62ORBacus簡(jiǎn)介簡(jiǎn)介t什么是ORBacus:n ORBacus是IONA公司的ORB產(chǎn)品。ORBacus小巧但功能齊全,尤其是性能很高,提供實(shí)時(shí)CORBA特性,非常適合于電信領(lǐng)

48、域。另外,ORBacus提供源代碼,這對(duì)我們進(jìn)一步揭開(kāi)CORBA ORB內(nèi)幕、提高程序性能、解決棘手問(wèn)題都有好處。同時(shí)它還是免費(fèi)的,當(dāng)然商業(yè)用途例外。t支持Java、C+t本節(jié)使用JavaBeijing University of Posts and Telecommunications Page 63 環(huán)境安裝環(huán)境安裝t 本節(jié)使用ORBacus4.0.5t ORBacus不需要安裝過(guò)程,只需將它拷貝到某個(gè)目錄下就行。這里假設(shè)在C:ORBacus目錄下。t ORBacus的bin目錄,存放可執(zhí)行文件,如jidl.exe( ORBacus 的IDL編譯器)。t 其lib目錄,存放ORBacus的

49、庫(kù)文件,以壓縮包(.jar)的形式存在t 為 CLASSPATH增加:C:Orbacuslibob.jar; .; .classest 為PATH增加:C:Orbacusbint 需要安裝Java環(huán)境,如JDK1.3等。Beijing University of Posts and Telecommunications Page 64示例來(lái)源示例來(lái)源tORBacus附帶的一個(gè)例子:srcobdemohellot需要使用的文件:nHello.idl idl定義文件nHello_Impl.java 對(duì)象實(shí)現(xiàn)nClient.java 客戶程序nServer.java 服務(wù)器程序t拷貝hello目錄到

50、某一個(gè)工作目錄,如D:myworkBeijing University of Posts and Telecommunications Page 65基于基于ORB的軟件開(kāi)發(fā)過(guò)程回顧的軟件開(kāi)發(fā)過(guò)程回顧IDL定義文件定義文件IDL CompilerCLIENTIDLSTUBSERVERIDLSKELETONJavaCompilerC+CompilerCLIENT應(yīng)用CODESERVER實(shí)現(xiàn)代碼CLIENTPROGRAMSERVERPROGRAMCORBARUN-TIMELIBRARIES接口庫(kù)Beijing University of Posts and Telecommunications P

51、age 66第一步:定義第一步:定義IDLtHello.idl定義如下:interface Hello void say_hello();Beijing University of Posts and Telecommunications Page 67第二步:編譯第二步:編譯IDL為為Java Stub和和Skeletont 打開(kāi)DOS窗口,轉(zhuǎn)到D:myworkhello目錄下t 鍵入:jidl -package hello Hello.idlt 編譯后生成以下幾個(gè)文件:nClient側(cè):HelloOperations.java:定義public interface HelloOperati

52、onsHello.java:定義接口 Interface Hello_HelloStub.java:樁代碼,定義了class _HelloStubHelloHelper.java:定義 public class HelloHelper對(duì)象nServer側(cè):HelloOperations.java:定義public interface HelloOperationsHelloHolder.java: 定義public final class HelloHolderHelloPOA.java:定義類(lèi)abstract public class HelloPOABeijing University o

53、f Posts and Telecommunications Page 68第三步:編寫(xiě)對(duì)象實(shí)現(xiàn)第三步:編寫(xiě)對(duì)象實(shí)現(xiàn)t 對(duì)象實(shí)現(xiàn)代碼所在的類(lèi)名字可由程序員自由掌握,只要不與IDL編譯器自動(dòng)產(chǎn)生的Java類(lèi)產(chǎn)生名字沖突即可。客戶程序也無(wú)須了解對(duì)象實(shí)現(xiàn)是由哪一個(gè)Java類(lèi)完成的。t CORBA應(yīng)用程序的對(duì)象實(shí)現(xiàn)最常用、最簡(jiǎn)單的實(shí)現(xiàn)方式是使用繼承,即直接繼承由IDL編譯器生成的xxxPOA類(lèi)。n當(dāng)對(duì)象實(shí)現(xiàn)需要利用繼承機(jī)制達(dá)到其他目的時(shí),就必須改用CORBA對(duì)象實(shí)現(xiàn)的另一種實(shí)現(xiàn)方式 紐帶機(jī)制(tie mechanism)。t 我們的例子程序采用簡(jiǎn)單的繼承方式編寫(xiě)對(duì)象實(shí)現(xiàn),即繼承xxxPOA類(lèi)。Beij

54、ing University of Posts and Telecommunications Page 69HelloPOA類(lèi)類(lèi)t HelloPOA.java是Hello對(duì)象的服務(wù)端框架代碼。t xxxPOA類(lèi)的主要功能:n解包in類(lèi)型的參數(shù)并將參數(shù)傳遞給對(duì)象實(shí)現(xiàn)。n打包返回值與所有out類(lèi)型的參數(shù)。打包(marshal):指將特定程序設(shè)計(jì)語(yǔ)言描述的數(shù)據(jù)類(lèi)型轉(zhuǎn)換為CORBA的IIOP流格式。解包(unmarshal):從IIOP流格式轉(zhuǎn)換為依賴于具體程序設(shè)計(jì)語(yǔ)言的數(shù)據(jù)結(jié)構(gòu)。t 編寫(xiě)對(duì)象實(shí)現(xiàn)的最簡(jiǎn)單途徑是繼承這些POA類(lèi),即把它們作為對(duì)象實(shí)現(xiàn)的基類(lèi)。Beijing University of P

55、osts and Telecommunications Page 70對(duì)象實(shí)現(xiàn)類(lèi)對(duì)象實(shí)現(xiàn)類(lèi)package hello;public class Hello_impl extends HelloPOA public void; say_hello() System.out.println(Hello World!); Beijing University of Posts and Telecommunications Page 71第四步:編寫(xiě)第四步:編寫(xiě)Servert Server用來(lái)創(chuàng)建相應(yīng)的Servant對(duì)象,準(zhǔn)備接受來(lái)自Client的請(qǐng)求。本例主要包括兩個(gè)方法。t run()方法:n1.

56、 獲取RootPOA Manager的引用。n2. 創(chuàng)建實(shí)現(xiàn)對(duì)象,并將其引用保存在某個(gè)適當(dāng)?shù)牡胤?,以便客戶程序獲取。n3. 激活POA管理器,以允許接受請(qǐng)求。n4. 將控制權(quán)交給ORB,并處于運(yùn)行狀態(tài)。t Main()方法:n初始化ORB;n調(diào)用run()方法n運(yùn)行結(jié)束后,撤銷(xiāo)ORB對(duì)象,退出;Beijing University of Posts and Telecommunications Page 72第五步:編寫(xiě)第五步:編寫(xiě)ClienttClient程序發(fā)起CORBA調(diào)用,本例定義了兩個(gè)方法。tRun()方法:n1.獲取遠(yuǎn)程對(duì)象的引用;n2. 調(diào)用遠(yuǎn)程對(duì)象上的方法;tMain()方法:

57、n初始化ORB;n調(diào)用run()方法;n運(yùn)行結(jié)束后,撤銷(xiāo)ORB對(duì)象,退出;Beijing University of Posts and Telecommunications Page 73第六步:編譯和運(yùn)行第六步:編譯和運(yùn)行t 轉(zhuǎn)到D:myworkhello目錄下,創(chuàng)建classes目錄:mkdir classest 編譯Java文件:javac d classes hello*.javajavac d classes Client.javajavac d classes Hello_impl.javajavac d classes Server.javat 進(jìn)入classes目錄,先運(yùn)行S

58、erver:java hello.Servert 重開(kāi)一個(gè)DOS窗口,進(jìn)入D:myworkhelloclasses目錄,運(yùn)行Client:java hello.ClientBeijing University of Posts and Telecommunications Page 74運(yùn)行結(jié)果運(yùn)行結(jié)果t在Client運(yùn)行的DOS窗口,輸入:nEnter h for hello or x for exit:nhnt在Server運(yùn)行的DOS窗口運(yùn)行結(jié)果如下:nHello World!Beijing University of Posts and Telecommunications Page

59、75主要內(nèi)容主要內(nèi)容 t綜述綜述t基于基于CORBA的軟件開(kāi)發(fā)基本過(guò)程的軟件開(kāi)發(fā)基本過(guò)程tRM-ODP與與CORBAt總結(jié)總結(jié)Beijing University of Posts and Telecommunications Page 76t RM-ODP是分布式計(jì)算領(lǐng)域內(nèi)容最廣泛的一個(gè)國(guó)際標(biāo)準(zhǔn),是功能最強(qiáng)的分布計(jì)算“元標(biāo)準(zhǔn)”。t CORBA是開(kāi)放式分布處理思想的一個(gè)實(shí)現(xiàn)。Beijing University of Posts and Telecommunications Page 77體系結(jié)構(gòu)的比較體系結(jié)構(gòu)的比較 - 語(yǔ)言語(yǔ)言t 語(yǔ)言語(yǔ)言: CORBA沒(méi)有企業(yè)語(yǔ)言、信息語(yǔ)言和技術(shù)語(yǔ)言t 計(jì)

60、算語(yǔ)言nRM-ODP的每個(gè)對(duì)象都可以調(diào)用其它對(duì)象在接口上所提供的操作。系統(tǒng)分布的特性對(duì)系統(tǒng)設(shè)計(jì)者應(yīng)該是透明的。 CORBA支持RM-ODP計(jì)算語(yǔ)言中的接口類(lèi)型概念,由OMG IDL表示。 nRM-ODP主要支持兩種類(lèi)型的操作:詢問(wèn)型和公告型。 CORBA支持三種類(lèi)型的調(diào)用:同步調(diào)用、單向調(diào)用和延遲調(diào)用.前兩種方式分別對(duì)應(yīng)于RM-ODP的詢問(wèn)型和公告型。Beijing University of Posts and Telecommunications Page 78體系結(jié)構(gòu)的比較體系結(jié)構(gòu)的比較 - 語(yǔ)言(續(xù))語(yǔ)言(續(xù))t 工程語(yǔ)言nODP的工程語(yǔ)言通過(guò)透明對(duì)象和透明支持對(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)論