




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