版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、分布對象技術(shù) 2021-6-3 1 北京大學(xué)北京大學(xué) 北京大學(xué)計算機系北京大學(xué)計算機系 代亞非代亞非 2 第九章第九章 分布對象技術(shù)分布對象技術(shù) n9.1 分布對象技術(shù)要解決的基本問題分布對象技術(shù)要解決的基本問題 n9.2 分布對象技術(shù)概論分布對象技術(shù)概論 n9.3 分布對象的核心概念分布對象的核心概念 n9.4 分布對象主流技術(shù)介紹分布對象主流技術(shù)介紹 n9.5 分布對象處理技術(shù)分布對象處理技術(shù)-發(fā)展趨勢發(fā)展趨勢 n9.6 分布對象主流技術(shù)開發(fā)過程分布對象主流技術(shù)開發(fā)過程 3 9.1 分布對象技術(shù)要解決的基本問題分布對象技術(shù)要解決的基本問題 n以下情況是不是分布式?以下情況是不是分布式? n
2、1、瀏覽、瀏覽 n2、兩個及其之間的通信、兩個及其之間的通信 n3、計算引擎、計算引擎 4 B機 A機 同一地址空間 C+編譯器完成連接 C+Main Program C+ Object 分布對象技術(shù)要解決的問題 9.1 分布對象技術(shù)要解決的基本問題分布對象技術(shù)要解決的基本問題 5 兩層客戶兩層客戶/服務(wù)器模型服務(wù)器模型(胖客戶胖客戶) 三層客戶三層客戶/服務(wù)器模型服務(wù)器模型(瘦客戶瘦客戶) N層客戶層客戶/服務(wù)器模型服務(wù)器模型 層的概念(TIERS):在客戶/服務(wù)器意義 上將,一個層就代表一個具有定義好的 特定功能平臺,一個平臺就是就是一個 計算機軟件和硬件的組合. . . 應(yīng)用程序?qū)ο髴?yīng)用
3、程序?qū)ο?應(yīng)用程序?qū)ο髴?yīng)用程序?qū)ο?應(yīng)用程序?qū)ο髴?yīng)用程序?qū)ο?9.1 分布對象技術(shù)要解決的基本問題分布對象技術(shù)要解決的基本問題 分布式系統(tǒng)的客戶分布式系統(tǒng)的客戶/服務(wù)器模型服務(wù)器模型 6 9.1 分布對象技術(shù)要解決的基本問題分布對象技術(shù)要解決的基本問題 一個分布式系統(tǒng)的例子一個分布式系統(tǒng)的例子(原始的方法原始的方法) 電話訂購電話訂購 客戶客戶1 電話訂購電話訂購 客戶客戶2 電話訂購電話訂購 客戶客戶n WEB 服務(wù)器服務(wù)器 1 WEB 服務(wù)器服務(wù)器 2 中心訂購中心訂購 服務(wù)器服務(wù)器 WEB 服務(wù)器服務(wù)器 m Internet . . 7 9.1 分布對象技術(shù)要解決的基本問題分布對象技術(shù)要
4、解決的基本問題 n使用多個服務(wù)器分割用戶使用多個服務(wù)器分割用戶 電話訂購電話訂購 客戶客戶1 WEB 服務(wù)器服務(wù)器 1 Internet 電話訂購電話訂購 客戶客戶2 中心訂購中心訂購 服務(wù)器服務(wù)器1 WEB 服務(wù)器服務(wù)器 2 電話訂購電話訂購 客戶客戶1 WEB 服務(wù)器服務(wù)器 1 電話訂購電話訂購 客戶客戶2 中心訂購中心訂購 服務(wù)器服務(wù)器1 WEB 服務(wù)器服務(wù)器 2 電話訂購電話訂購 客戶客戶1 WEB 服務(wù)器服務(wù)器 1 電話訂購電話訂購 客戶客戶2 中心訂購中心訂購 服務(wù)器服務(wù)器1 WEB 服務(wù)器服務(wù)器 2 8 9.1 分布對象技術(shù)要解決的基本問題分布對象技術(shù)要解決的基本問題 訂購訂購
5、服務(wù)器服務(wù)器1 訂購訂購 服務(wù)器服務(wù)器2 訂購訂購 服務(wù)器服務(wù)器n WEB 服務(wù)器服務(wù)器 1 Internet . . 調(diào)度程序調(diào)度程序 考慮負載平衡的問題考慮負載平衡的問題 9 9.1 分布對象技術(shù)要解決的基本問題分布對象技術(shù)要解決的基本問題 問題案例一:如何綜合越來越多的數(shù)據(jù) 庫資源,以適應(yīng)不斷發(fā)展的業(yè)務(wù)邏輯 客戶 Oracle Sybase Informix 如何加入綜合多個數(shù)據(jù)庫的業(yè)務(wù)邏輯?如何加入綜合多個數(shù)據(jù)庫的業(yè)務(wù)邏輯? 如何集成其它非數(shù)據(jù)庫操作的業(yè)務(wù)邏輯?如何集成其它非數(shù)據(jù)庫操作的業(yè)務(wù)邏輯? 如何處理如何處理“肥客戶肥客戶”應(yīng)用問題?應(yīng)用問題? 如何處理用戶界面風(fēng)格多樣性?如何處
6、理用戶界面風(fēng)格多樣性? 10 9.1 分布對象技術(shù)要解決的基本問題分布對象技術(shù)要解決的基本問題 n問題案例二問題案例二如何管理不斷接入的新應(yīng)用如何管理不斷接入的新應(yīng)用 管理器 N1N2Nk . 11 9.1 分布對象技術(shù)要解決的基本問題分布對象技術(shù)要解決的基本問題 匯編語言 單機應(yīng)用開發(fā)環(huán)境 分布式應(yīng)用開發(fā)環(huán)境 Socket API Fortran語言 OOP語言 軟構(gòu)件技術(shù) RPC 分布對象技術(shù) 12 9.1 分布對象技術(shù)要解決的基本問題分布對象技術(shù)要解決的基本問題 n我們都聽到了哪些詞匯我們都聽到了哪些詞匯? 構(gòu)件模型構(gòu)件模型 CORBA/IIOP Java/RMI 分布對象分布對象 Ac
7、tiveX Controls RPC COM/DCOM 還有還有還有還有. EJB 13 9.2 分布對象技術(shù)概論分布對象技術(shù)概論 n分布計算是近二十年來影響計算機急速發(fā)展的最活分布計算是近二十年來影響計算機急速發(fā)展的最活 躍因素之一躍因素之一 n經(jīng)歷了兩種不同的技術(shù)路線經(jīng)歷了兩種不同的技術(shù)路線 1. 理想的技術(shù)路線理想的技術(shù)路線(80年代學(xué)術(shù)界普遍追求的目標年代學(xué)術(shù)界普遍追求的目標) 試圖在互連的計算機硬件上部署全新的分布式操試圖在互連的計算機硬件上部署全新的分布式操 作系統(tǒng)作系統(tǒng) 2. 現(xiàn)實的技術(shù)路線現(xiàn)實的技術(shù)路線 (90年代工業(yè)界普遍遵守的路線年代工業(yè)界普遍遵守的路線) 在網(wǎng)絡(luò)計算平臺上
8、部署分布計算環(huán)境在網(wǎng)絡(luò)計算平臺上部署分布計算環(huán)境 提供開發(fā)工具和公共服務(wù)提供開發(fā)工具和公共服務(wù) 支持分布式應(yīng)用支持分布式應(yīng)用 資源共享和協(xié)同工作資源共享和協(xié)同工作 集中式集中式 客戶客戶/服務(wù)器服務(wù)器 14 9.2 分布對象技術(shù)概論分布對象技術(shù)概論 n分布式系統(tǒng)比想象的要復(fù)雜分布式系統(tǒng)比想象的要復(fù)雜: 1. 異構(gòu)環(huán)境下的應(yīng)用互操作的問題異構(gòu)環(huán)境下的應(yīng)用互操作的問題 2. 系統(tǒng)管理問題系統(tǒng)管理問題 3. 系統(tǒng)安全的問題系統(tǒng)安全的問題 4. 傳統(tǒng)的面向過程的技術(shù)在開發(fā)大型軟件系統(tǒng)的局傳統(tǒng)的面向過程的技術(shù)在開發(fā)大型軟件系統(tǒng)的局 限性限性 n面向?qū)ο蠹夹g(shù)用于分布式面向?qū)ο蠹夹g(shù)用于分布式(分布對象技術(shù)分
9、布對象技術(shù))標志第標志第 二代分布式計算技術(shù)進入成熟和蓬勃發(fā)展時期二代分布式計算技術(shù)進入成熟和蓬勃發(fā)展時期. n分布式對象技術(shù)始于分布式對象技術(shù)始于9090年代初,已經(jīng)發(fā)展成為當(dāng)年代初,已經(jīng)發(fā)展成為當(dāng) 今分布異構(gòu)環(huán)境下建立應(yīng)用系統(tǒng)集成框架和標準今分布異構(gòu)環(huán)境下建立應(yīng)用系統(tǒng)集成框架和標準 構(gòu)件的核心技術(shù)構(gòu)件的核心技術(shù) 15 9.2 分布對象技術(shù)概論分布對象技術(shù)概論 面向的主要問題面向的主要問題信息共享信息共享智能化的協(xié)同工作智能化的協(xié)同工作 異構(gòu)環(huán)境下的信異構(gòu)環(huán)境下的信 息互操作息互操作 體系結(jié)構(gòu)體系結(jié)構(gòu) 經(jīng)典的客戶經(jīng)典的客戶/ 服務(wù)器模型服務(wù)器模型 面向?qū)ο蟮亩嗝嫦驅(qū)ο蟮亩?層客戶服務(wù)器層客戶
10、服務(wù)器 模型模型 自主的多自主的多agent模型模型 關(guān)鍵技術(shù)的特點關(guān)鍵技術(shù)的特點 沿用傳統(tǒng)的計算沿用傳統(tǒng)的計算 概念和設(shè)施概念和設(shè)施(如如 過程調(diào)用和文件過程調(diào)用和文件 設(shè)施設(shè)施) 將面向?qū)ο蠹夹g(shù)將面向?qū)ο蠹夹g(shù) 應(yīng)用到分布計算應(yīng)用到分布計算 面向面向agent的擬的擬 人化交互環(huán)境人化交互環(huán)境 成果成果 能夠提供豐富的分能夠提供豐富的分 布式系統(tǒng)服務(wù)布式系統(tǒng)服務(wù),良好良好 的分布式系統(tǒng)管理的分布式系統(tǒng)管理 和典型的分布系統(tǒng)和典型的分布系統(tǒng) 應(yīng)用應(yīng)用 已經(jīng)成為建立已經(jīng)成為建立 集成構(gòu)架和軟集成構(gòu)架和軟 構(gòu)件標準的核構(gòu)件標準的核 心技術(shù)心技術(shù) 概念驗證系統(tǒng)概念驗證系統(tǒng) 令人鼓舞令人鼓舞,尚未尚未
11、 達到廣泛應(yīng)用達到廣泛應(yīng)用 與協(xié)同工作的與協(xié)同工作的 成熟程度成熟程度 第一代第一代 (80年代中年代中90年代初年代初) 第三代第三代 (從現(xiàn)在開始從現(xiàn)在開始) 第二代第二代 (90年代年代) 16 9.2 分布對象技術(shù)概論分布對象技術(shù)概論 n分布對象技術(shù)的核心概念有那些分布對象技術(shù)的核心概念有那些? 1 分布對象的位置對客戶透明分布對象的位置對客戶透明 2 可以被遠程客戶應(yīng)用以方法調(diào)用的形式訪問可以被遠程客戶應(yīng)用以方法調(diào)用的形式訪問 3 分布對象所使用的語言要對客戶透明分布對象所使用的語言要對客戶透明 4. 分布對象運行的系統(tǒng)平臺對客戶透明分布對象運行的系統(tǒng)平臺對客戶透明 5. 分布對象具
12、有移動性分布對象具有移動性 (允許時間允許時間,空間空間,語言語言,操作平臺的差異性操作平臺的差異性) 17 9.2 分布對象技術(shù)概論分布對象技術(shù)概論 一個應(yīng)用邏輯一個應(yīng)用邏輯 A機機 對象對象對象對象 對象對象 對象對象 A機機 一個應(yīng)用邏輯一個應(yīng)用邏輯 對象對象 對象對象 對象對象 對象對象 D機機 C機機 B機機 JavaJava VB C+ VB 18 9.2 分布對象技術(shù)概論分布對象技術(shù)概論 n分布式系統(tǒng)分布式系統(tǒng), 分布對象與軟構(gòu)件是什么關(guān)系分布對象與軟構(gòu)件是什么關(guān)系? 1. 獨立于特定程序設(shè)計語言和應(yīng)用系統(tǒng)獨立于特定程序設(shè)計語言和應(yīng)用系統(tǒng),可重用和可重用和 自包含的軟件成分稱為軟
13、構(gòu)件自包含的軟件成分稱為軟構(gòu)件. 2. 分布對象是一種典型的軟構(gòu)件分布對象是一種典型的軟構(gòu)件 3. 分布式系統(tǒng)是分散在兩個或更多地方的計算機上分布式系統(tǒng)是分散在兩個或更多地方的計算機上 為了實現(xiàn)一個共同的目標而共同工作的軟件實體為了實現(xiàn)一個共同的目標而共同工作的軟件實體 集合集合. n分布式應(yīng)用系統(tǒng)中的成員分布式應(yīng)用系統(tǒng)中的成員: 1. 創(chuàng)建和維護分布對象的實體的應(yīng)用稱為服務(wù)器創(chuàng)建和維護分布對象的實體的應(yīng)用稱為服務(wù)器 2. 按照接口訪問該對象的應(yīng)用稱為客戶按照接口訪問該對象的應(yīng)用稱為客戶 3. 服務(wù)對象同時可以是其它服務(wù)對象的客戶服務(wù)對象同時可以是其它服務(wù)對象的客戶 19 9.2 分布對象技術(shù)
14、概論分布對象技術(shù)概論 n軟構(gòu)件模型的開發(fā)的目的是什么軟構(gòu)件模型的開發(fā)的目的是什么? 重用重用,高層開發(fā)高層開發(fā),通過工具進行自動化開發(fā)通過工具進行自動化開發(fā),簡化開簡化開 發(fā)過程等發(fā)過程等. n軟構(gòu)件模型的開發(fā)的手段是什么軟構(gòu)件模型的開發(fā)的手段是什么? 軟構(gòu)件開發(fā)者軟構(gòu)件開發(fā)者: 1.處理底層的實現(xiàn)細節(jié)以及與此相關(guān)的類處理底層的實現(xiàn)細節(jié)以及與此相關(guān)的類. 2.定義構(gòu)件的基本的體系結(jié)構(gòu)定義構(gòu)件的基本的體系結(jié)構(gòu),構(gòu)件界面的結(jié)構(gòu)構(gòu)件界面的結(jié)構(gòu), 與與 其它構(gòu)件及容器相互作用的機制其它構(gòu)件及容器相互作用的機制 軟構(gòu)件應(yīng)用者軟構(gòu)件應(yīng)用者: 在可視的開發(fā)環(huán)境將以存在的構(gòu)件進行簡單的組在可視的開發(fā)環(huán)境將以存
15、在的構(gòu)件進行簡單的組 裝。裝。 20 9.2 分布對象技術(shù)概論分布對象技術(shù)概論 n軟構(gòu)件模型的例子軟構(gòu)件模型的例子? nOMGOMG的的CORBACORBA、MicrosoftMicrosoft的的COM/DCOMCOM/DCOM和和SUNSUN的的 Java/EJBJava/EJB。 21 C+Main Program Object A Object A Object A Agent 1 Agent 2 網(wǎng) 絡(luò) 計 算 環(huán) 境 A的代理 對象適配器 ORB 9.3 分布對象技術(shù)分布對象技術(shù)-基本工作原理基本工作原理 n什么是對象請求代理什么是對象請求代理? n支持客戶訪問異地分布對象的核心機
16、制稱為對象支持客戶訪問異地分布對象的核心機制稱為對象 請求代理請求代理ORB(Object Request Broker) A機機 一個應(yīng)用邏輯一個應(yīng)用邏輯 對象對象 對象對象 對象對象 對象對象 D機機 C機機 B機機 一個應(yīng)用邏輯一個應(yīng)用邏輯 A機機 對象對象對象對象 對象對象 對象對象 22 9.3 分布對象技術(shù)分布對象技術(shù)-基本工作原理基本工作原理 客戶 應(yīng)用邏輯 分布對象 代理 服務(wù)器 對象請求分發(fā)器 分布對象的實現(xiàn) 對象請求適配器 對象請求感知器 網(wǎng)絡(luò)傳輸訪問 ORB 服務(wù)器構(gòu) 造構(gòu)架 客戶構(gòu)造 構(gòu)架 相同的接口 相同的接口 23 9.3 分布對象技術(shù)-基本工作原理 ORB ORB
17、 客戶 客戶 客戶 客戶 O1 O2 Oracle O3 O4 Sybase O5 O6 Informix O1R O2R O3R O4R O5R O6R 虛擬 圖書館 查詢 預(yù)約服務(wù) 還書 通知 通知 還/借處理 如何管理客戶應(yīng)用 預(yù)約 預(yù)約 24 利用這些服務(wù)創(chuàng)建一個新的對象而不必知道對象在哪利用這些服務(wù)創(chuàng)建一個新的對象而不必知道對象在哪 9.3 分布對象技術(shù)分布對象技術(shù)-基本工作原理基本工作原理 n對象服務(wù)對象服務(wù):支持分布式系統(tǒng)正常工作的各類基本的支持分布式系統(tǒng)正常工作的各類基本的 系統(tǒng)級服務(wù)系統(tǒng)級服務(wù) 1.名字管理名字管理 2.事件通告事件通告 3. 對象事務(wù)管理對象事務(wù)管理 4.
18、對象生命周期對象生命周期 應(yīng) 用 對 象 對 象 服 務(wù) 通 用 功 能 對 象 請 求 代 理 (Object Request Broker) 25 9.3 分布對象技術(shù)分布對象技術(shù)-基本工作原理基本工作原理 n通用功能通用功能:支持分布式系統(tǒng)高效開發(fā)和有效工支持分布式系統(tǒng)高效開發(fā)和有效工 作的各類面向領(lǐng)域的常規(guī)服務(wù)和工具作的各類面向領(lǐng)域的常規(guī)服務(wù)和工具 nGUI n數(shù)據(jù)庫服務(wù)數(shù)據(jù)庫服務(wù) n電子郵件服務(wù)電子郵件服務(wù) n系統(tǒng)管理服務(wù)系統(tǒng)管理服務(wù) n面象應(yīng)用領(lǐng)域的領(lǐng)域構(gòu)架面象應(yīng)用領(lǐng)域的領(lǐng)域構(gòu)架 應(yīng) 用 對 象 對 象 服 務(wù) 通 用 功 能 對 象 請 求 代 理 (Object Request
19、 Broker) 26 9.3 分布對象技術(shù)分布對象技術(shù)-基本工作原理基本工作原理 n應(yīng)用對象應(yīng)用對象:涉及各種應(yīng)用軟件涉及各種應(yīng)用軟件,它在對象服務(wù)和它在對象服務(wù)和 公共設(shè)施幫助下完成相應(yīng)的應(yīng)用邏輯公共設(shè)施幫助下完成相應(yīng)的應(yīng)用邏輯 nORB是一條軟總線是一條軟總線,把分布式系統(tǒng)中各類對象把分布式系統(tǒng)中各類對象 和應(yīng)用連接成相互作用的整體和應(yīng)用連接成相互作用的整體 應(yīng) 用 對 象 對 象 服 務(wù) 通 用 功 能 對 象 請 求 代 理 (O bject R equest B roker) 27 9.4 分布對象主流技術(shù)分布對象主流技術(shù) n分布對象技術(shù)的實質(zhì)性進步分布對象技術(shù)的實質(zhì)性進步: 1.
20、 使面向?qū)ο蠹夹g(shù)能夠在異構(gòu)的網(wǎng)絡(luò)環(huán)境中使面向?qū)ο蠹夹g(shù)能夠在異構(gòu)的網(wǎng)絡(luò)環(huán)境中 得以全面得以全面,徹底徹底,方便的實施方便的實施 2. 有效地控制系統(tǒng)的開發(fā)有效地控制系統(tǒng)的開發(fā),管理管理,維護的復(fù)雜維護的復(fù)雜 性性 n分布對象的主流技術(shù)分布對象的主流技術(shù) 1. OMG的的CORBA 2. Microsoft的的ActiveX/DCOM 3. SUN的的Java/RMI 28 9.4 分布對象主流技術(shù)分布對象主流技術(shù)-CORBA nOMG是一個非盈利性國際組織是一個非盈利性國際組織,致力于使致力于使 CORBA成為成為“無所不在的中間件無所不在的中間件” n1989年成立年成立,當(dāng)時僅有當(dāng)時僅有8家
21、成員家成員,目前有目前有900家成家成 員員 nOMG制定的分布對象計算標準規(guī)范制定的分布對象計算標準規(guī)范,按照這些按照這些 規(guī)范設(shè)計的開發(fā)的分布式計算軟件環(huán)境可以在規(guī)范設(shè)計的開發(fā)的分布式計算軟件環(huán)境可以在 幾乎所有的主流硬件平臺和操作系統(tǒng)上運行幾乎所有的主流硬件平臺和操作系統(tǒng)上運行 nCORBA的通信協(xié)議是的通信協(xié)議是IIOP(Internet Inter- ORB Protocol). nCORBA結(jié)構(gòu)集中圍繞著兩個主要元素結(jié)構(gòu)集中圍繞著兩個主要元素:ORB和和 IDL,CORBA的語言獨立性和平臺獨立性主要的語言獨立性和平臺獨立性主要 來源于這兩個方面來源于這兩個方面. CORBA 29
22、 9.4 分布對象主流技術(shù)分布對象主流技術(shù)-CORBA nORB負責(zé)定位服務(wù)器對象負責(zé)定位服務(wù)器對象 nIDL是建立接口的基礎(chǔ)是建立接口的基礎(chǔ) 動態(tài) 激活 接口 IDL Stubs ORB 接口 靜態(tài)IDL Skeletons 動態(tài) Skeleton 對象 適配器 ORB內(nèi)核 客戶 (Client) 對象實現(xiàn) (Server) 30 9.4 分布對象主流技術(shù)分布對象主流技術(shù)-CORBA nIDL Stubs 、IDL Skeleton是由是由IDL 編譯器編譯編譯器編譯 產(chǎn)生的,用于靜態(tài)調(diào)用,有較好的性能和效率。產(chǎn)生的,用于靜態(tài)調(diào)用,有較好的性能和效率。 n動態(tài)調(diào)用接口和動態(tài)動態(tài)調(diào)用接口和動態(tài)
23、Skeleton用于動態(tài)調(diào)用,使用于動態(tài)調(diào)用,使 得即使在編譯時不知道可用的服務(wù)器和接口消息,得即使在編譯時不知道可用的服務(wù)器和接口消息, 也能完成客戶與服務(wù)器的作用也能完成客戶與服務(wù)器的作用 nCORBA中的說明語言,稱作中的說明語言,稱作OMGIDL,用以描,用以描 述對象的述對象的 接口。它本身不是一個可編程語言,但接口。它本身不是一個可編程語言,但 它為程序員提供了語言的獨立性,他們不必知道它為程序員提供了語言的獨立性,他們不必知道 調(diào)用者所采用的語言。調(diào)用者所采用的語言。 nIDL的詞法,語法規(guī)則遵從的詞法,語法規(guī)則遵從C+的規(guī)定,但加入的規(guī)定,但加入 了一些關(guān)鍵詞支持分布概念。用接
24、口描述語言了一些關(guān)鍵詞支持分布概念。用接口描述語言 (Interface Description Language)編寫的對)編寫的對 象接口,使得與語言無關(guān)的獨立性成為可能。象接口,使得與語言無關(guān)的獨立性成為可能。 31 9.4 分布對象主流技術(shù)分布對象主流技術(shù)-CORBA nCORBA規(guī)范的特點規(guī)范的特點: 1. 互操作性:互操作性:CORBA在客戶和服務(wù)器之間提供了在客戶和服務(wù)器之間提供了 兩層可操作性。一方面它將客戶與服務(wù)器都抽象兩層可操作性。一方面它將客戶與服務(wù)器都抽象 為對象,所有功能都封裝在對象內(nèi)部,對外提供為對象,所有功能都封裝在對象內(nèi)部,對外提供 簡單的接口,可被其它對象以動
25、態(tài)或靜態(tài)方式調(diào)簡單的接口,可被其它對象以動態(tài)或靜態(tài)方式調(diào) 用。另一方面,對象間的通信是通過用。另一方面,對象間的通信是通過ORB代理實代理實 現(xiàn),對象不必關(guān)心細節(jié),由現(xiàn),對象不必關(guān)心細節(jié),由ORB定址發(fā)送請求。定址發(fā)送請求。 是是ORB對象間的對象間的“通信總線通信總線”。 32 9.4 分布對象主流技術(shù)分布對象主流技術(shù)-CORBA 3.跨平臺性:由于跨平臺性:由于CORBA規(guī)范中定義了規(guī)范中定義了IDL語言這語言這 一與平臺無關(guān)的語言,并引入代理一與平臺無關(guān)的語言,并引入代理(ORB)概念,概念, 因此因此CORBA應(yīng)用具有較好的跨平臺性。應(yīng)用具有較好的跨平臺性。 2. 提供了軟總件機制:所
26、謂軟總線是指CORBA規(guī)范定義了 一組接口規(guī)范,任何應(yīng)用程序,軟件系統(tǒng)或工具只要具有與 該接口規(guī)范相符合的接口定義,就能方便地集成對CORBA 系統(tǒng)中,而這個接口規(guī)范是獨立于任何實現(xiàn)語言和環(huán)境。 33 ORB CLIENT STUBS SKELETONS SERVER ORB IIOP METHOD REQUEST OBJECT REFERENCESERVANT 9.4 分布對象主流技術(shù)分布對象主流技術(shù)-CORBA nCORBA結(jié)構(gòu)一次請求的過程結(jié)構(gòu)一次請求的過程 CORBA結(jié)構(gòu)一次請求的過程 34 9.4 分布對象主流技術(shù)分布對象主流技術(shù)-COM/DCOM nOLE對象鏈接和嵌入對象鏈接和嵌
27、入(Object Linking and Embedding) n從用戶角度看從用戶角度看OLE 1. OLE文檔文檔:以文檔為中心以文檔為中心,OLE集成數(shù)據(jù)集成數(shù)據(jù) 2. OLE自動化自動化 3. OLE控件控件:可以被嵌入應(yīng)用程序中的自包含的可以被嵌入應(yīng)用程序中的自包含的, 可重用的組件可重用的組件. COM,DCOM,OLE和和ActiveX 35 9.4 分布對象主流技術(shù)分布對象主流技術(shù)-COM/DCOM 36 9.4 分布對象主流技術(shù)分布對象主流技術(shù)-COM/DCOM 37 組件對象模型組件對象模型(COM) 結(jié)構(gòu)化存儲結(jié)構(gòu)化存儲 跟蹤器跟蹤器 (永久命名永久命名) 拖放拖放嵌入嵌
28、入剪貼板剪貼板 一致數(shù)據(jù)一致數(shù)據(jù) 傳輸器傳輸器 (UDT) 就地激活就地激活 (可視編程可視編程) 鏈接鏈接 OLE自動化自動化 OLE控件控件 為為 將將 來來 而而 建建 造造 9.4 分布對象主流技術(shù)分布對象主流技術(shù)-COM/DCOM 從程序員的角度看從程序員的角度看OLE OLE文檔文檔 屬性屬性事件事件 38 9.4 分布對象主流技術(shù)分布對象主流技術(shù)-COM/DCOM n構(gòu)件對象模型構(gòu)件對象模型COM (Component Object Model ) 是一個用于在交互平臺上開發(fā)客戶是一個用于在交互平臺上開發(fā)客戶/服服 務(wù)器應(yīng)用程序開放結(jié)構(gòu)務(wù)器應(yīng)用程序開放結(jié)構(gòu). nCOM是微軟的構(gòu)件
29、對象模型是微軟的構(gòu)件對象模型,是構(gòu)件之間實現(xiàn)是構(gòu)件之間實現(xiàn) 互操作的二進制標準互操作的二進制標準. nCOM對象通過接口來顯示功能。接口是對象通過接口來顯示功能。接口是COM 對象與外部世界的一個綁定約定。對象與外部世界的一個綁定約定。 nCOM可以用不同語言實現(xiàn)可以用不同語言實現(xiàn). nCOM只能運行在只能運行在WINDOWS平臺上平臺上 nCOM實現(xiàn)了實現(xiàn)了OLE對象的底層通信對象的底層通信,其作用類似其作用類似 于于CORBA/ORB 39 9.4 分布對象主流技術(shù)分布對象主流技術(shù)-COM/DCOM nActiveX是是OLE技術(shù)和技術(shù)和COM技術(shù)在技術(shù)在Internet網(wǎng)上的網(wǎng)上的 一個
30、擴展一個擴展.但是它的內(nèi)容更多但是它的內(nèi)容更多,它還組成了一系列用它還組成了一系列用 來產(chǎn)生豐富的來產(chǎn)生豐富的Internet網(wǎng)和多媒體服務(wù)網(wǎng)和多媒體服務(wù). nActiveX文檔:文檔: 將將OLE文檔擴展到文檔擴展到internet,能夠由瀏覽器打開的,能夠由瀏覽器打開的 word,powerpoint文件文件 nActiveX控件:控件: 將將OLE控件擴展到控件擴展到internet。如一個頁面包含。如一個頁面包含 ActiveX控件,該控件可以自動下載到用戶端。控件,該控件可以自動下載到用戶端。 nActiveX腳本:腳本: n將將OLE自動化帶進自動化帶進internet。可以利用。
31、可以利用VBScript, JavaScriot,Perl,等語言編寫。,等語言編寫。 40 9.4 分布對象主流技術(shù)分布對象主流技術(shù)-COM/DCOM n分布式組件對象模型分布式組件對象模型(DCOM或或ActiveX/DCOM):): 被稱為網(wǎng)絡(luò)被稱為網(wǎng)絡(luò)OLE,是二進制的是二進制的COM對象在局域?qū)ο笤诰钟?廣廣 域網(wǎng)和域網(wǎng)和Internet上的擴展上的擴展. nCOM能夠使客戶在本地處理中透明地訪問庫中的能夠使客戶在本地處理中透明地訪問庫中的 對象,對象,DCOM允許在遠程處理中透明地訪問對象。允許在遠程處理中透明地訪問對象。 (DCOM的功能實現(xiàn)使得程序員不必編寫網(wǎng)絡(luò)代的功能實現(xiàn)使得
32、程序員不必編寫網(wǎng)絡(luò)代 碼碼,或僅僅知道如何編寫網(wǎng)絡(luò)代碼)或僅僅知道如何編寫網(wǎng)絡(luò)代碼) nDCOM基于基于 (RPC- remote procedure call )工工 作,它不是一種編程語言,而是一種規(guī)范,一種作,它不是一種編程語言,而是一種規(guī)范,一種 服務(wù),是一種高級網(wǎng)絡(luò)協(xié)議。服務(wù),是一種高級網(wǎng)絡(luò)協(xié)議。 nDCOM是用是用COM實現(xiàn)的。實現(xiàn)的。 41 9.4 分布對象主流技術(shù)分布對象主流技術(shù)-COM/DCOM nActiveX控件通過底層控件通過底層DCOM進行通信,允許控進行通信,允許控 件互相訪問對方公布了的方法,而不必考慮控件件互相訪問對方公布了的方法,而不必考慮控件 是否在一個容器
33、或同一臺機器上。是否在一個容器或同一臺機器上。 nActiveX控件由事件連接在一起控件由事件連接在一起, 開發(fā)環(huán)境支持開開發(fā)環(huán)境支持開 發(fā)者創(chuàng)建方法,當(dāng)任何一個構(gòu)件出發(fā)了一個事件發(fā)者創(chuàng)建方法,當(dāng)任何一個構(gòu)件出發(fā)了一個事件, 這些方法都被調(diào)用這些方法都被調(diào)用. n目前有十幾家公司提供大量的控件目前有十幾家公司提供大量的控件,你可以訪問這你可以訪問這 些公司的些公司的WEB站點站點,下載你需要的下載你需要的ActiveX控件控件, 進行編程進行編程: . nWindows98和和WindowsNT5.0都把都把DCOM作為作為 操作系統(tǒng)的一部分操作系統(tǒng)的一部分. 42 9.4 分布對象主流技術(shù)分
34、布對象主流技術(shù)-Java/RMI nRMI是分布在網(wǎng)絡(luò)中的各類是分布在網(wǎng)絡(luò)中的各類Java對象之間的進行方對象之間的進行方 法調(diào)用的法調(diào)用的ORB機制機制. nJava語言支持通信的最基本機制是語言支持通信的最基本機制是Socket. 但是但是 Socket要求客戶和服務(wù)器在應(yīng)用程序級上對交換信要求客戶和服務(wù)器在應(yīng)用程序級上對交換信 息編碼的協(xié)議達成一致息編碼的協(xié)議達成一致. nRPC把通信接口抽象到子程序級把通信接口抽象到子程序級,而不是直接與而不是直接與 Socket打交道打交道,但由于不涉及對象但由于不涉及對象,在分布式運算中在分布式運算中 效果不好效果不好. nJava/RMI(Rem
35、ote Method Invocation)是是Java特特 有的分布式計算技術(shù)有的分布式計算技術(shù),它允許運行在一個它允許運行在一個Java虛擬虛擬 機上的對象調(diào)用運行在另一個機上的對象調(diào)用運行在另一個Java虛擬機上的對象虛擬機上的對象 的方法的方法. Java/RMI 43 9.4 分布對象主流技術(shù)分布對象主流技術(shù)-Java/RMI nRMI系統(tǒng)的一般結(jié)構(gòu)系統(tǒng)的一般結(jié)構(gòu) 1. Stub就是代表遠程對象的客就是代表遠程對象的客 戶方代理戶方代理,定義遠程對象版本定義遠程對象版本 所支持的所有接口所支持的所有接口. 2. Skeletons是與服務(wù)器方的是與服務(wù)器方的 RRL接口的服務(wù)器方構(gòu)件
36、接口的服務(wù)器方構(gòu)件 3. RRL負責(zé)維護不與具體負責(zé)維護不與具體Stub 或或Skeleton模型相關(guān)的獨立引模型相關(guān)的獨立引 用協(xié)議用協(xié)議.這個靈活性使這個靈活性使RRL的的 改變不會影響另外兩層改變不會影響另外兩層. 4. 傳輸層由傳輸層由4個抽象構(gòu)成個抽象構(gòu)成: 端點端點,通道通道,連接連接,傳送傳送 ClientServer Remote Reference Layer Stubs Transport Skeletons Application RMI System 44 9.4 分布對象主流技術(shù)分布對象主流技術(shù)-Java/RMI nRMI系統(tǒng)的一般原理系統(tǒng)的一般原理: 1. 定位遠程
37、對象定位遠程對象: RMI的命名工具注冊遠的命名工具注冊遠 程對象程對象. 2. 和遠程對象通信和遠程對象通信: RMI傳輸層處理通信細傳輸層處理通信細 節(jié)節(jié) 3. 裝載被串對象的字節(jié)碼裝載被串對象的字節(jié)碼: RMI提供了傳遞數(shù)據(jù)和提供了傳遞數(shù)據(jù)和 裝載一個對象代碼裝載一個對象代碼 的必的必 要機制要機制 Web ServerClient Server Web Serverregistry URL protocol RMI RMI URL protocol URL protocol RMI 45 9.4 分布對象主流技術(shù)分布對象主流技術(shù)-EJB nEJB-(Enterprise JavaBea
38、n1.0)是是Java服務(wù)器服務(wù)器 端構(gòu)件模型端構(gòu)件模型. n構(gòu)件模型構(gòu)件模型通常有客戶端構(gòu)件和服務(wù)器端構(gòu)件構(gòu)件通常有客戶端構(gòu)件和服務(wù)器端構(gòu)件構(gòu)件 n客戶端構(gòu)件模型客戶端構(gòu)件模型JavaBean專門用于處理程序的專門用于處理程序的 表示及用戶界面的問題表示及用戶界面的問題. n服務(wù)器端構(gòu)件模型服務(wù)器端構(gòu)件模型 EJB,把構(gòu)件模型的把構(gòu)件模型的 開發(fā)和中間件聯(lián)系開發(fā)和中間件聯(lián)系 起來起來,面向事務(wù)處理面向事務(wù)處理 的中間件提供基礎(chǔ)的中間件提供基礎(chǔ) 設(shè)施設(shè)施. Enterprise JavaBean 容器容器 容器連接容器連接 EJB服務(wù)器服務(wù)器 客戶客戶 46 9.4 分布對象主流技術(shù)分布對象主
39、流技術(shù)-EJB n為什么要有服務(wù)器端構(gòu)件模型為什么要有服務(wù)器端構(gòu)件模型EJB? 1. EJB將成為用將成為用Java語言開發(fā)分布式的、面向?qū)ο笳Z言開發(fā)分布式的、面向?qū)ο?的企業(yè)應(yīng)用系統(tǒng)的標準構(gòu)件體系結(jié)構(gòu),的企業(yè)應(yīng)用系統(tǒng)的標準構(gòu)件體系結(jié)構(gòu),EJB使得使得 通過組合構(gòu)件得到分布式應(yīng)用成為可能通過組合構(gòu)件得到分布式應(yīng)用成為可能 2. EJB不需要應(yīng)用開發(fā)人員了解底層的事務(wù)處理細不需要應(yīng)用開發(fā)人員了解底層的事務(wù)處理細 節(jié)節(jié),狀態(tài)管理狀態(tài)管理,多線程多線程,資源共享管理資源共享管理,以及其它底層以及其它底層 API細節(jié)細節(jié). 3. EJB遵循遵循Java的的“write once, run anywhe
40、re” 的原則的原則.一個一個EJB可以部署在任何可以部署在任何EJB平臺上平臺上. 4. EJB定義了一個協(xié)議定義了一個協(xié)議,使得不同供應(yīng)商提供的構(gòu)使得不同供應(yīng)商提供的構(gòu) 件能在運行時互操作件能在運行時互操作. 5. EJB體系結(jié)構(gòu)和已有的服務(wù)器平臺體系結(jié)構(gòu)和已有的服務(wù)器平臺,其它的其它的Java APIs, CORBA兼容兼容 47 9.4 分布對象主流技術(shù)分布對象主流技術(shù)-EJB nEJB與與JavaBean的關(guān)系的關(guān)系 1. 客戶端的客戶端的JavaBeans容器可以根據(jù)容器可以根據(jù)JavaBeans的的 屬性屬性,方法方法,事件的定義在設(shè)計時或運行時對事件的定義在設(shè)計時或運行時對Ja
41、va Beans進行操作進行操作. 一般一般JavaBeans是可視化的構(gòu)件是可視化的構(gòu)件. 一個標準的一個標準的JavaBeans是一個客戶端構(gòu)件是一個客戶端構(gòu)件,在運行在運行 時不能被其它客戶機程序存取或操作時不能被其它客戶機程序存取或操作 2. EJB沒有用戶界面沒有用戶界面,并完全位于服務(wù)器端并完全位于服務(wù)器端,EJB可以可以 由多個由多個JavaBeans組成組成. 3. EJB可以和遠程的客戶程序端通信可以和遠程的客戶程序端通信,并提供一定的并提供一定的 功能功能. 如果不和客戶端程序交互如果不和客戶端程序交互,EJB一般不執(zhí)行具一般不執(zhí)行具 體的功能體的功能. 4. EJB與與J
42、avaBeans的一個重要區(qū)別是的一個重要區(qū)別是EJB提供了提供了 網(wǎng)絡(luò)功能網(wǎng)絡(luò)功能. 48 9.4 分布對象主流技術(shù)分布對象主流技術(shù)-EJB nEJB與與CORBA的關(guān)系的關(guān)系 1. 一個一個CORBA客戶機客戶機(用用CORBA支持的語言些的程序支持的語言些的程序), 可以存取基于可以存取基于CORBA的的EJB服務(wù)器上的構(gòu)件服務(wù)器上的構(gòu)件 2. 一個客戶機在一個事務(wù)過程中可以同時調(diào)用一個客戶機在一個事務(wù)過程中可以同時調(diào)用CORBA的的 EJB服務(wù)器對象服務(wù)器對象 3. 通過通過IIOP可以使可以使EJB系統(tǒng)和系統(tǒng)和CORBA系統(tǒng)集成系統(tǒng)集成. nEJB與客戶機的關(guān)系與客戶機的關(guān)系 n對于
43、對于EJB來說來說,有兩種類型的客戶機可以使用有兩種類型的客戶機可以使用EJB: 1. EJB/CORBA客戶機客戶機-一個使用一個使用EJB APIs的的Java 客戶機客戶機. 2. 純純CORBA客戶機客戶機-用用CORBA IDL支持的任何語支持的任何語 言些的客戶機言些的客戶機. 49 nEJB的網(wǎng)絡(luò)計算的網(wǎng)絡(luò)計算 9.4 分布對象主流技術(shù)分布對象主流技術(shù)-EJB 客戶端客戶端 在網(wǎng)絡(luò)計算環(huán)境中利用Java的最好途徑是由EJB提供服務(wù)器 端的構(gòu)件,而由JavaBeans提供客戶端構(gòu)件. 50 9.4 分布對象處理技術(shù)分布對象處理技術(shù)-幾種構(gòu)件模型的比較幾種構(gòu)件模型的比較 n組件組件:
44、CORBA,JavaBean,ActiveX n協(xié)議協(xié)議:IIOP, RMI, DCOM nCORBA最大的特點是語言中性和跨平臺最大的特點是語言中性和跨平臺.可以跨可以跨 越不同網(wǎng)絡(luò)越不同網(wǎng)絡(luò),不同機器和不同操作系統(tǒng)不同機器和不同操作系統(tǒng),實現(xiàn)分布實現(xiàn)分布 對象之間的互操作對象之間的互操作.整體功能最強整體功能最強. nJava提出了一個概念清晰提出了一個概念清晰,結(jié)構(gòu)緊湊的分布計算結(jié)構(gòu)緊湊的分布計算 模型和構(gòu)件互操作方法模型和構(gòu)件互操作方法,為構(gòu)件應(yīng)用開發(fā)提供了相為構(gòu)件應(yīng)用開發(fā)提供了相 當(dāng)?shù)撵`活性當(dāng)?shù)撵`活性,使用上比使用上比CORBA方便方便.但是沒有提供但是沒有提供 分布對象事物管理等服
45、務(wù)分布對象事物管理等服務(wù). n微軟結(jié)合微軟結(jié)合ActiveX/DCOM的開發(fā)的開發(fā),配套提出了自己配套提出了自己 的事務(wù)服務(wù)器的事務(wù)服務(wù)器(MTS)和消息隊列服務(wù)器和消息隊列服務(wù)器,加之加之a(chǎn)sp 的使用的使用,以及以及wizard的可視化編程環(huán)境的可視化編程環(huán)境,倍受業(yè)界倍受業(yè)界 的歡迎的歡迎. 51 9.4 分布對象處理技術(shù)分布對象處理技術(shù)-幾種構(gòu)件模型的比較幾種構(gòu)件模型的比較 nCORBA的優(yōu)勢在技術(shù),較之的優(yōu)勢在技術(shù),較之COM/DCOM領(lǐng)先至領(lǐng)先至 少少2-3年;年; COM/ DCOM的優(yōu)勢在市場能力。的優(yōu)勢在市場能力。 n目前,只有目前,只有OMG的技術(shù)能夠支持大型異構(gòu)分布的技術(shù)能夠支持大型異構(gòu)分布 式應(yīng)用的開發(fā),式應(yīng)用的開發(fā),Microsoft的技術(shù)尚不能勝任。的技術(shù)尚不能勝任。 nCORBA技術(shù)與技術(shù)與Java技術(shù)趨于結(jié)合,技術(shù)趨于結(jié)合,CORBA的的 互操作性與互操作性與Java的可移植可移動性將使分布對象的可移植可移動性將使分布對象 技
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版門窗行業(yè)智能化升級改造合同3篇
- 2025年度模板木枋出口業(yè)務(wù)合同模板3篇
- 二零二五版借貸房屋買賣合同解除與終止合同4篇
- 美容院美容培訓(xùn)學(xué)校二零二五年度師資引進合同4篇
- 二零二五年度口罩生產(chǎn)設(shè)備居間引進合同范本3篇
- 二零二五年度品牌疫情防控物資采購與配送服務(wù)合同規(guī)范4篇
- 二零二五年度插畫版權(quán)轉(zhuǎn)讓及衍生品開發(fā)合同
- 二零二五年度外匯貸款貸前調(diào)查合同范本
- 二零二五年度圖片版權(quán)交易下載服務(wù)協(xié)議
- 2025年建筑工程施工合同合同履行中的變更與補充協(xié)議2篇
- 2025-2030年中國草莓市場競爭格局及發(fā)展趨勢分析報告
- 第二章《有理數(shù)的運算》單元備課教學(xué)實錄2024-2025學(xué)年人教版數(shù)學(xué)七年級上冊
- 華為智慧園區(qū)解決方案介紹
- 奕成玻璃基板先進封裝中試線項目環(huán)評報告表
- 廣西壯族自治區(qū)房屋建筑和市政基礎(chǔ)設(shè)施全過程工程咨詢服務(wù)招標文件范本(2020年版)修訂版
- 人教版八年級英語上冊期末專項復(fù)習(xí)-完形填空和閱讀理解(含答案)
- 2024新版有限空間作業(yè)安全大培訓(xùn)
- GB/T 44304-2024精細陶瓷室溫斷裂阻力試驗方法壓痕(IF)法
- 年度董事會工作計劃
- 《退休不褪色余熱亦生輝》學(xué)校退休教師歡送會
- 02R112拱頂油罐圖集
評論
0/150
提交評論