




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第4講電子商務技術之分布式計算技術參考資料《分布計算環(huán)境》 王柏,王紅熳,鄒華北京郵電大學出版社《分布式軟件體系結構》(電子版)李文軍、周曉聰、李師賢等,中山大學計算機系Visibrokerforjava開發(fā)人員指南機械工業(yè)出版社主要內容分布式系統(tǒng)概述分布計算技術的發(fā)展歷程分布式系統(tǒng)中的面向對象技術1分布式系統(tǒng)概述
什么是分布式系統(tǒng)?Acollectionofautonomouscomputerslinkedbyanetwork,withsoftwaredesignedtoproduceanintegratedcomputingfacility-例如: 從規(guī)模上: LAN、WAN
從行業(yè)上: 銀行網(wǎng)絡(ATM)電信網(wǎng)絡(IPPhone) 從技術上: WWW、WAP、寬帶網(wǎng) 從邊界上: Internet、Intranet
從協(xié)議上: TCP/IP目前需要特別關注以IP為核心實現(xiàn)的網(wǎng)絡環(huán)境什么是分布式系統(tǒng)
在網(wǎng)絡計算平臺上開發(fā)、部署、管理和維護以資源共享和協(xié)同工作為主要應用目標的應用系統(tǒng)。其技術特征如下:包含任意個數(shù)的系統(tǒng)進程和用戶進程。體系結構模塊化,由數(shù)目可變的多個處理部件組成。通過在共享通信結構上的報文傳遞進行通信。實行某種全系統(tǒng)范圍的控制,以便提供動態(tài)的進程間的合作和運行時間的管理。進程之間的報文傳送存在延遲且延遲時間可變。ExamplesofSyn.DSandAsyn.DSAsynchronousDSEmailFTPSynchronousDSVODVoiceConferenceSystem網(wǎng)絡環(huán)境下應用系統(tǒng)應具備的特點ResourcesharingOpennessConcurrency(并發(fā))ScalabilityFaulttoleranceTransparencyAccess,Location,Replication,Failure,…共享性
一旦授權,可以訪問環(huán)境中的任何資源: 硬件(e.g.printer,scanner,camera)、軟件、數(shù)據(jù)(file,database,webpage) 資源管理器控制資源的訪問
提供命名機制 控制并發(fā)訪問資源共享模型(例如客戶/服務器、基于對象)描述: 如何提供資源 它們如何被使用 用戶與提供者如何交互 開放性OpenDSarebasedontheprovisionofauniformcommunicationmechanismandpublishedinterfacesforaccesstosharedresources. 環(huán)境擴展與改進的需要 需要發(fā)布構件之間的接口細節(jié) 新構件需要能夠與已存在的構件進行集成 必須解決異構性并發(fā)性
網(wǎng)絡環(huán)境中的構件可以在并發(fā)的過程中被執(zhí)行構件可以訪問、更新共享的資源如果不對并發(fā)進行協(xié)調則無法保持環(huán)境的完整性可伸縮性 利用網(wǎng)絡環(huán)境可以: 為更多的用戶服務 響應更快 通常通過增加更多/更快的處理機 更可靠、更完善的服務實現(xiàn) 當環(huán)境增長時,構件不必改變 所設計的構件應當便于系統(tǒng)的伸縮容錯 硬件、軟件、網(wǎng)絡發(fā)生錯誤的不可避免性 網(wǎng)絡環(huán)境必須維護可用性 容錯的實現(xiàn)途徑: 恢復(recovery)
e.g.Rollback 冗余(redundancy)
e.g.IProute,replicatednametableofDNS透明性網(wǎng)絡環(huán)境對于用戶與應用程序而言 應當是一個整體 而不是一個相互協(xié)作的簡單的構件集合
SUN:Networkisacomputer透明性具有多層的內容: 訪問透明性 位置透明性 并發(fā)透明性 副本透明性 故障透明性 性能透明性 伸縮透明性。。。(1)訪問透明性 采用相同的操作訪問 本地信息對象與遠地信息對象 例子:
Web環(huán)境中的導航
SQL查詢(2)位置透明性
不必知道信息對象的位置 即可以訪問它們 例子:
NFS中的文件系統(tǒng)操作
Web中的頁面(URL
)
分布式數(shù)據(jù)庫中的表(3)并發(fā)透明性
多處理機并發(fā)地操作共享的信息對象 并且互不干擾 例子:
ATM網(wǎng)絡 數(shù)據(jù)庫管理系統(tǒng) 課程在線系統(tǒng)(4)副本透明性
信息對象存在多個實例 以增強可靠性、響應速度用戶或應用程序不必關心關于副本的信息 例子: 分布式DBMS Web頁面鏡像、Web-caching (5)故障透明性 故障對用戶、應用程序是隱蔽的 允許用戶、應用程序完成它們的任務 盡管其它的構件出現(xiàn)故障 例如: 數(shù)據(jù)庫管理系統(tǒng)
email(6)性能透明性 當負載變化時 允許系統(tǒng)重構以改善性能 例子: 分布式make
負載平衡
(7)伸縮透明性 允許系統(tǒng)及應用程序在規(guī)模上擴展 不改變系統(tǒng)結構及應用程序算法 例子:
WWW
分布式數(shù)據(jù)庫通過互連和互操作提高系統(tǒng)的協(xié)作能力通過并行處理提高系統(tǒng)的性能。通過復制技術提高系統(tǒng)的可靠性和可用性通過模塊化技術提高系統(tǒng)的可伸縮性。通過動態(tài)配置和重新配置功能提高系統(tǒng)的可擴展性通過資源共享提高系統(tǒng)的性能價格比。
...分布式系統(tǒng)的優(yōu)勢
分布式系統(tǒng)的(潛在)缺點
軟件需求:適合的操作系統(tǒng)、程序設計語言及應用設計方法
通信網(wǎng)絡:信息丟失、恢復、網(wǎng)絡過載...
安全問題數(shù)據(jù)共享vs數(shù)據(jù)保密2分布計算技術的發(fā)展歷程
技術路線面向過程的第一代分布計算技術-C/S模式第二代分布計算技術―分布對象技術面向代理的第三代分布計算技術(?)什么是分布式計算?簡單地說,分布式計算是兩個或多個軟件共享信息、協(xié)同工作。這些軟件既可以在同一臺計算機上運行,也可在通過網(wǎng)絡連起來的幾臺不同機器上運行。分布式計算的好處:可以連接不同的機構或團體分布式應用程序邏輯可以在多個應用程序間重用,分布式應用程序的升級不會導致整個系統(tǒng)的全面升級。通過分布式應用程序邏輯,使得業(yè)務負載分攤到不同的計算機,有利于負載平衡。新的需求產(chǎn)生,應用程序邏輯可以重新分布或擴展。分布式計算
絕大多數(shù)的分布式計算基于客戶機/服務器模型客戶機軟件:它提出信息或服務的請求服務器軟件:提供這種信息或服務。e.g.Proxyserversandcachese.g.
Servicesprovidedbymultipleserverse.g.
PeertoPeer非分布式計算轉向分布式計算計算機上行分布化(ComputerUpsizing) 把業(yè)務從PC機上的非分布式計算轉移到網(wǎng)絡分布式計算(包括PC機、高性能服務器和工作站)的過程。計算機下行分布化(ComputerDownsizing) 把業(yè)務從實驗室里的大型機上的非分布式計算轉移到辦公室里的工作站和PC機的分布式計算的過程。共享資源和平衡負載是計算機上行分布化和計算機下行分布化的核心思想之一2.1技術路線(1)
理想的技術路線(80年代學術界普遍追求的目標)試圖在互連的計算機硬件上部署全新的分布式操作系統(tǒng),全面管理系統(tǒng)中各自獨立的計算機,呈現(xiàn)給用戶單一的系統(tǒng)視圖。技術路線(2)現(xiàn)實的技術路線(90年代以來工業(yè)界普遍遵守的路線)在網(wǎng)絡計算平臺上部署分布計算環(huán)境(多采用中間件),提供開發(fā)工具和公共服務,采用開放的(通用)協(xié)議和一致的編程接口支持分布式應用資源共享和協(xié)同工作實現(xiàn)分布式計算的常用機制網(wǎng)絡應用程序編程接口(API)SOCKET、CGI遠程過程調用機制(RPC)分布對象技術(CORBA、DCOM、EJB、WebService)。網(wǎng)絡應用程序編程接口(API)
使用網(wǎng)絡API通常要求用戶為打包、傳送請求、解包、把請求傳遞到例程而編寫代碼,可能還要做大量的緩沖區(qū)操作并注意使多個平臺上的應用程序能夠理解不同格式的數(shù)據(jù)表示。遠程過程調用(RPC)
在發(fā)送方的地址空間里創(chuàng)建一個遠程組件(對象)的代理,在接收方的地址空間里創(chuàng)建一個樁(Stub)。發(fā)送方與代理通信,代理再和接收方側的Stub通信。在這種體系結構下,組件間的遠程通信封裝在代理/Stub通信中,它是由建立在中間件API基礎上的IDL編譯器生成的。發(fā)送方只和本地代理通信,接收方從本地Stub得到所有的請求。
ClientClient側StubServerServer側Stub進程邊界遠程過程調用機制(RPC)Client側的stub如何定位server? 可能的解決方法:當系統(tǒng)生成與調用者對應的stub時,將遠程過程的地址也并入其中。不靈活!在進行調用之前,與調用者對應的stub向系統(tǒng)中的其他節(jié)點進行組播,請求有關的節(jié)點通報其地址。 一系列的消息傳遞!由系統(tǒng)管理一個表,其表項內容為節(jié)點地址該節(jié)點上將運行的遠程過程的名字 常用的方法!遠程過程調用機制(RPC)RPC通常是通過使用某一類型的接口定義語言(IDL)描述接口來達到的。IDL與操作系統(tǒng)、硬件和編程語言無關,它為接口定義提供了一個標準的方法。對不同的操作系統(tǒng)/編程語言都存在著IDL編譯器(實質上是存根/骨架生成器),由IDL編譯器生成的編碼(結合下層的中間件服務)負責以發(fā)送方使用的格式從發(fā)送方接收數(shù)據(jù),并以接收者能理解的格式將數(shù)據(jù)呈現(xiàn)給接收方。分布對象技術 遠程過程調用系統(tǒng)試圖使對另一臺機器上的過程進行調用看起來像是對本地同一地址空間中過程進行調用; 遠程對象系統(tǒng)如CORBA和DCOM把編程的級別從過程調用抬高到對象的調用,但本質上是模仿本地調用的方式。
這些技術都盡量使網(wǎng)絡“透明”,也就是說,要使程序員感覺不到網(wǎng)絡的存在。2.2面向過程的第一代分布計算技術
(1)兩層C/S模式強調客戶端與服務端的分離:
e.g.Web,FTP,NEWS,DNS(MultipleServers)廣義上來講,函數(shù)的調用與實現(xiàn)也屬于Client/Server關系C/S模式發(fā)展過程
局域網(wǎng)文件服務器客戶端共享文件服務器提供的文件服務數(shù)據(jù)庫服務器SQL查詢存儲過程分布式對象相對的客戶端和服務端多種不同的體系結構并存(CORBA,DCOM/.NET,WebService,
EJB)傳統(tǒng)兩層C/S模式特點:胖客戶
請求/應答方式,以消息交換作為通信方式基于過程的服務訪問服務集中于特定Server客戶端與服務端的分離帶來的好處:
比傳統(tǒng)的基于局域網(wǎng)的應用大大減少了網(wǎng)絡傳輸?shù)臄?shù)據(jù)量,有效提高系統(tǒng)的運行效率,
數(shù)據(jù)獨立性(客戶端)平臺無關性(一定程度上)。可擴充性、安全性、可靠性等。兩層模式的不足使得系統(tǒng)更復雜開發(fā)人員不得不分別開發(fā)客戶端和應用端的應用程序,并力求保持兩端的一致性。軟件系統(tǒng)的部署與維護更加困難。需要考慮更多的可靠性、安全性、性能等軟件質量要素。客戶端的應用程序嚴格依賴于服務器端數(shù)據(jù)存儲和組織方式。應用接口的異構性嚴重影響系統(tǒng)間互操作,系統(tǒng)的伸縮性差關鍵問題:通信Client與Server直接連接,沒有中間結構來處理請求
Server定位通常需要網(wǎng)絡細節(jié)
Server必須是活動的。2層==〉3層==〉N層結構2層結構存在很多缺陷:客戶端的負擔仍比較重仍然需要客戶端進行較復雜的數(shù)據(jù)處理客戶端的可移植性不好處理復雜必然牽涉更多的移植性問題每個客戶端上都要安裝數(shù)據(jù)庫驅動程序系統(tǒng)的可維護性不好客戶端包含過多的商業(yè)邏輯商業(yè)邏輯與人機交互界面交織在一起數(shù)據(jù)的安全性需求:需要更合理的工作分配——3層或多層結構(2)三層瀏覽器/服務器結構
層的概念:在客戶/服務器意義上,一個層就代表一個具有定義好的特定功能平臺,一個平臺是一個計算機軟件和硬件的組合三層(多層)結構的主要優(yōu)點:
更合理的分配任務,層次清晰,管理和維護相對簡單。使“胖客戶”變成“瘦”客戶;客戶端只需把精力集中在人機界面上。中間業(yè)務邏輯層包含了大量的供客戶端程序調用的業(yè)務邏輯規(guī)則(被用戶共享),可隨具體業(yè)務的變化而改變,大大提高系統(tǒng)的可伸縮性。使中間層的業(yè)務邏輯處理與數(shù)據(jù)層的業(yè)務數(shù)據(jù)緊密結合在一起,可以提高系統(tǒng)的性能。數(shù)據(jù)服務層主要提供對數(shù)據(jù)庫進行各種操作的方法。系統(tǒng)的安全性提高。大量的中間層中間件平臺提供豐富的系統(tǒng)級服務,使得開發(fā)人員可以以更少的工作量開發(fā)出更復雜、可靠、高效的軟件系統(tǒng)。N層結構
在3層結構中,客戶層和數(shù)據(jù)層已被嚴格定義,但中間層并未明確定義。中間層可以包括所有與應用程序的界面和持久數(shù)據(jù)存儲無關的處理。假定將中間層劃分成許多服務程序是符合邏輯的,那么將每一主要服務都視為獨立的層,則3層結構就成為N層結構。例如,中間層可以分為實現(xiàn)任務分配機制和界面呈現(xiàn)的Web服務器層和實現(xiàn)實際商業(yè)邏輯的EJB層。EJB應用中的多層結構 因為分布式軟件跨越了多臺計算機,所以需要一種類似于TCP/IP這樣的網(wǎng)絡基礎設施來連接應用程序的各節(jié)點。需要抽象層次更高、更方便實用的通信機制。在兩層結構中,對網(wǎng)絡協(xié)議的抽象是比較容易的:
數(shù)據(jù)庫驅動程序嵌入式SQLODBC/JDBC等。多層結構需要更復雜基礎設施以實現(xiàn)跨網(wǎng)絡的通信。層間通信RPC(RemoteProcedureCall)第一個得到廣泛認可的通信中間件技術。使用RPC,客戶應用程序可以調用在遠程計算機上執(zhí)行的C語言函數(shù)IIOP(InternetInter-ORBProtocol)CORBA對象交互所使用的標準協(xié)議ORB(ObjectRequestBroker):作為一個“軟件總線”來連接網(wǎng)絡上的不同對象,提供對象的定位和方法調用。GIOP(GeneralInter-ORBProtocol):定義了一個不同ORB之間的接口IIOP:IIOP把GIOP消息數(shù)據(jù)映射為TCP/IP連接行為和輸入/輸出流讀/寫,一般認為IIOP是GIOP的一個實例層間通信協(xié)議/標準(1)DCOM通信協(xié)議:是Microsoft在DCERPC體系結構上實現(xiàn)的分布式COM組件通信協(xié)議RMI(RemoteMethodInvoke)(注釋)Java遠程調用標準可以看作一種簡化的、專用于Java平臺的CORBA通信模型RMI/IIOP:EJB間通信所使用的協(xié)議層間通信通信協(xié)議/標準(2)2.3第二代分布計算技術―分布對象技術
新的需求應用程序規(guī)模不斷擴大應用需在異構的網(wǎng)絡環(huán)境下運行(不同硬件平臺,不同系統(tǒng)軟件,不同網(wǎng)絡協(xié)議,不同網(wǎng)絡體系結構,…)OO的精髓在于對象維護自身的狀態(tài)并通過消息進行通信,這對于分布式計算環(huán)境是非常理想的。分布對象技術核心內容在于分布對象之間的互操作,尤其是異構環(huán)境中的互操作問題分布對象技術要解決的基本問題?B機A機就是支持訪問異地對象同一地址空間C++編譯器完成連接
C++MainProgramC++Object分布對象技術要解決的問題分布對象技術要解決的基本問題匯編語言單機應用開發(fā)環(huán)境分布式應用開發(fā)環(huán)境SocketAPIFortran語言OOP語言軟構件技術RPC分布對象技術分布對象技術的核心概念
分布對象的位置對客戶透明可以被遠程客戶應用以方法調用的形式訪問分布對象所使用的語言要對客戶透明分布對象運行的系統(tǒng)平臺對客戶透明分布對象具有移動性(允許時間,空間,語言,操作平臺的差異性)分布對象技術主要特點
面向對象的多層客戶/服務器計算模型將分布在網(wǎng)絡上的全部資源都按照對象的概念來組織每個對象都有定義明晰的訪問接口支持客戶訪問異地分布對象的核心機制稱為對象請求代理(ORB).ORB處于分布對象技術的核心位置。2.4面向代理的第三代分布計算技術
(9月26日上課點)代理(Agent)應該具有以下屬性:代理性:代表他人工作自治性:獨立自主的實體主動性:遵循承諾采取主動的行為,面向目標的行為反應性:感知外界的環(huán)境,并作出反應社會性:與外界進行通信智能性:一定層次的智能合作性:與其它代理分工協(xié)作移動性:移動能力分布計算技術發(fā)展的三個階段小結
傳統(tǒng)的面向對象技術分布式系統(tǒng)對傳統(tǒng)對象模型的影響實現(xiàn)分布式對象模型的機制分布對象技術三大流派并行計算和分布式計算的區(qū)別3分布式系統(tǒng)中的面向對象技術3.1傳統(tǒng)面向對象技術
面向對象技術已在軟件生存期的各個階段部分取代傳統(tǒng)的結構化方法,成為當前軟件開發(fā)的主流技術。OO的基本思想 從現(xiàn)實世界中客觀存在的事務(即對象)出發(fā)來構造軟件系統(tǒng),并在系統(tǒng)構造中盡可能利用人類的自然思維方式。 程序對象+相互關系重要特征:封裝、數(shù)據(jù)抽象、繼承和多態(tài)。面向對象的開發(fā)過程實際上是一個建模過程。強調的是復用,先進的分布式軟件體系結構必須與面向對象技術結合在一起,從而可分享面向對象技術帶來的眾多好處。3.2分布式系統(tǒng)對傳統(tǒng)對象模型的影響
傳統(tǒng)的對象與訪問該對象的程序只能存在于同一進程中,客戶進程不可能直接訪問異地服務進程中的常規(guī)對象傳統(tǒng)對象的關注點:通過封裝和繼承對實現(xiàn)進行重用。封裝提供了一種將對象實現(xiàn)細節(jié)與其他對象屏蔽開的嚴格方法,可以大大緩解在面向過程系統(tǒng)中較突出的維護問題。繼承提供了一種重用對象實現(xiàn)的簡便方法分布式環(huán)境要求更好的可插入性:不太關注于直接重用代碼,而是要求能夠利用遠程所實現(xiàn)的服務。要求另一層次上的封裝,即只需暴露公用接口對象==〉組件分布式對封裝性的影響
在分布式對象系統(tǒng)中,對象不僅要屏蔽有關的算法和數(shù)據(jù)結構,還需要屏蔽“系統(tǒng)是分布的”這一特性,提供分布透明性。位置透明性:用戶不必關心對象位于何處訪問透明性:可用一致的方式訪問不同類型的機器上的對象持久透明性:對象所處的狀態(tài)既可以是活動的,也可以是靜止的重定位透明性:對象的位置可以變化而不影響對它的調用遷移透明性:系統(tǒng)內部可以遷移對象的位置失敗透明性:屏蔽被訪問對象的失敗及恢復過程(容錯)事務處理透明性:與事務處理相關的調度、監(jiān)控和恢復復制透明性:用戶不知道有多少個對象副本存在分布式對繼承性的影響
問題:分布對象計算系統(tǒng)中都不支持跨站點的繼承性,因為實現(xiàn)代價太大。解決:把對象分為接口和對象實現(xiàn)。接口由接口定義語言IDL來描述,對象實現(xiàn)的方式則根據(jù)具體的編程語言而定。接口:描述使用該對象的方法。由該對象所能提供的操作的說明組成。對象實現(xiàn):實際構成該對象所提供的服務。它定義了與對象有關的數(shù)據(jù)的格式和用于管理這些數(shù)據(jù)的服務。分布式對繼承性的影響
分布式對象繼承機制的實現(xiàn):從接口繼承出發(fā)。系統(tǒng)首先根據(jù)接口的繼承關系生成接口的繼承關系圖,當客戶請求某一個接口中所描述的某個服務時,如果系統(tǒng)檢查到與該服務所對應的對象實現(xiàn)不存在時,根據(jù)接口的繼承關系圖,向客戶返回一個能夠提供該服務,并且相應的對象實現(xiàn)又存在的對象的訪問信息。分布式對對象引用的影響
對象引用用于在系統(tǒng)中標識一個對象,客戶可以根據(jù)它所知道的對象引用來與相應的對象建立連接,從而訪問該對象。集中式系統(tǒng)中:對象引用由指向該對象所在的內存地址的指針來表示。分布式系統(tǒng)中:對象引用需要由一個較復雜的數(shù)據(jù)結構來表示。需要充分考慮到由系統(tǒng)的分布所帶來的一些問題,如網(wǎng)絡協(xié)議、網(wǎng)絡地址和對象的遷移等。如何獲得一個對象引用
生成對象。對其他對象調用一個對象生成請求,返回這個新生成對象的對象引用。目錄服務。通過調用查找服務來得到對象引用。命名服務–通過對象名稱得到對象引用交易服務--通過對象性質得到對象引用字符串轉換。一個應用請求ORB將一個對象引用轉換成字符串并保存到文件或數(shù)據(jù)庫中,以后再取出通過ORB轉換回對象引用。3.3實現(xiàn)分布式對象模型的機制
分布式調用 通過把相應的請求信息傳遞給遠端對象來完成。提供位置透明性和訪問透明性。分布式系統(tǒng)中的通用服務(系統(tǒng)級服務)分布式調用
RPC:允許應用像調用本地進程一樣來調用遠程過程,利用底層的消息傳輸設施來為遠程構造本地進程的抽象。RMI、ORB:允許應用像調用本地對象一樣來調用遠程對象提供的服務。全局變量問題參數(shù)傳遞問題異常處理客戶無法定位服務器服務器發(fā)回的應答丟失(如取錢)服務器收到請求后崩潰客戶機在發(fā)送請求后崩潰(孤兒問題)客戶發(fā)給服務器的消息丟失(重發(fā))遠程調用可能遇到的問題
接口(Interface):
接口是系統(tǒng)中用來定義分布式對象能力的約定。數(shù)據(jù)類型(DataType)
分布式對象系統(tǒng)必須提供能讓數(shù)據(jù)在分布式對象間進行傳輸?shù)臄?shù)據(jù)類型。 如COM和CORBA都提供了豐富的數(shù)據(jù)類型并且支持枚舉類型、常量以及結構。 EJB中分布式對象之間可以傳輸Java原始數(shù)據(jù)類型和任何類型的對象(實現(xiàn)了Serializable或Remote接口)。 WebService中支持任何可以用XML描述的數(shù)據(jù)。遠程調用相關概念(1)編組與解組(MarshalingandUnmarshaling):
當數(shù)據(jù)在分布式對象間傳時,系統(tǒng)必須確保維護數(shù)據(jù)的完整性。編組過程將數(shù)據(jù)封裝成標準的格式以便于傳輸,解組過程則負責打開傳輸來的數(shù)據(jù)。COM、CORBA、Webservice都定義了獨立的編組/解組機制EJB則利用了Java的對象串行化技術來實現(xiàn)。代理/存根/框架(Proxy/Stub/Skeleton): 分布式對象系統(tǒng)抽象了對分布式對象的訪問,以便客戶應用程序能夠按統(tǒng)一的模式處理這些對象而無需考慮對象的實現(xiàn)或位置。COM、CORBA、EJB都提供了相應的機制支持組件之間的通信。WebService體系結構中沒有直接對應實體,但實現(xiàn)了相應的功能。遠程調用相關概念(2)對象句柄/引用(ObjectHandle/Reference) 在客戶程序的編程語言或腳本環(huán)境內用來引用分布式對象的實例。對象引用絕對不同于OO中的對象指針概念!對象創(chuàng)建(ObjectCreation) 分布式對象系統(tǒng)必須為創(chuàng)建一個新的分布式對象實例提供一種機制。工廠(factory)是一種特殊的分布式對象類型,常用來創(chuàng)建其它的分布式對象。對象調用(ObjectInvocation) 分布式對象系統(tǒng)必須為分布式對象的調用提供一種機制。遠程調用相關概念(3)對象撤銷(ObjectDestruction) 分布式對象系統(tǒng)必須提供一種機制,一旦一個分布式對象的實例不再被使用,就必須及時的將它從系統(tǒng)中刪除。COM提供了分布式引用計數(shù)和垃圾回收方法CORBA沒有對此提供系統(tǒng)級支持EJB明確定義了各種Bean的生命周期管理策略WebService沒有對此提供系統(tǒng)級支持。遠程調用相關概念(4)除了通信協(xié)議外,分布式系統(tǒng)還會用到一些可能很復雜,但又會經(jīng)常重復使用的服務。如安全性管理、事務處理等。一個平臺或體系結構所顯式提供的服務越多,開發(fā)者就越容易在更短的時間內開發(fā)出高質量的分布式系統(tǒng)。有了平臺提供的服務,開發(fā)者可以將更多的精力集中于系統(tǒng)的商業(yè)邏輯(如EJB)可通過交易功能提供通用服務。 e.g.事務處理服務、時鐘服務、管理服務、定時服務、安全服務,email服務…
分布式系統(tǒng)中的系統(tǒng)級服務
命名服務(Naming)在分布式系統(tǒng)中,命名服務提供了一種定位分布式對象的機制。監(jiān)視(Monitoring)監(jiān)視服務不僅可以監(jiān)視系統(tǒng)的運行狀態(tài),而且當需要操作人員參與時可以發(fā)出警告信息。許可(Licensing)許可服務用于確認分布式系統(tǒng)的用戶已經(jīng)購買了適當?shù)氖褂迷S可。持久性(Persistence)持久性服務提供一種統(tǒng)一的機制,使得分布式對象可以通過持久的數(shù)據(jù)存儲來保存、更新和恢復它的狀態(tài)常見的服務(1)
安全性(Security)安全性服務確保于分布式對象的通信是安全的,并確認相應的用戶具有適當?shù)臋嘞蕖J聞眨═ransaction)事務服務能夠確保一個事務或者完全完成,或者完全放棄。在企業(yè)系統(tǒng)中,事務定義了工作的原子級(atomic)單元。分布式事務處理就是一個跨越多臺計算機的單個工作單元。消息處理(Messaging) 消息處理服務提供異步編程模式。異步模式在很多應用中都需要。常見的服務(2)
分布式垃圾回收(Distributedgarbagecollection) 當一個程序不再使用分布式對象時,分布式垃圾回收服務會自動釋放分布式對象所占用的存儲單元。資源管理(ResourceManagement) 一般來說,資源管理器按照使可伸縮性最大化的方式來管理分布式對象,即支持大量的客戶程序同分布式對象在短時間內進行交互的能力。常見的服務(3)
3.4分布對象技術三大流派OMG的CORBA:CommonObjectRequestBrokerArchitecture微軟的COM/DCOM:(Distributed)ComponentObjectModel (在Internet上,.NET框架,基于XML的WebService)SUN的EJB/J2EE
CORBAOMG1991年頒布COBRA1.0標準,最新版本是CORBA3.X。
特點:大而全,互操作性和開放性非常好。 缺點:龐大而復雜,且技術和標準的更新相對較慢。3個層次:對象請求代理、公共對象服務、公共設施對象請求代理ORB,規(guī)定了分布對象的定義(接口)和語言映射,實現(xiàn)對象間的通訊和互操作,是分布對象系統(tǒng)中的“軟總線”公共對象服務:如并發(fā)服務、名字服務、事務(交易)服務、安全服務等各種服務;公共設施:定義了組件框架,提供可直接為業(yè)務對象使用的服務,規(guī)定業(yè)務對象有效協(xié)作所需的協(xié)定規(guī)則。OMG的CORBA模型一個應用邏輯A機對象對象對象對象A機一個應用邏輯對象對象對象對象D機C機B機JavaJavaVBC++VB集中==〉分布式應用ORBCC++AdaIDLIDLIDLIDLIDLIDLClientSideObjectImplementationSideCOBOLCAdaC++SmalltalkJAVAIDLIDLIDLIDLIDLIDLORBCOBOLSmalltalkJAVARoleofCORBAIDLCORBAIDLexampleRemoteinterface:specifiesthemethodsofanobjectavailableforremoteinvocationaninterfacedefinitionlanguage(orIDL)isusedtospecifyremoteinterfaces.E.g.theaboveinCORBAIDL.JavaRMIwouldhaveaclassforPerson,butCORBAhasastruct
structPerson{ stringname; stringplace; longyear;};interfacePersonList{ readonlyattributestringlistname; voidaddPerson(inPersonp); voidgetPerson(instringname,outPersonp); longnumber();};parametersarein,outorinoutremoteinterfaceremoteinterfacedefinesmethodsforRMICORBAhasastructRolesofORBsProvidesaLocal,Well-KnownPointofContactforAllObjectInvocationsaClientmaymakePassesinvocationtoLocalorRemotetargetObjectImplementationUnderstandsIDL;MaintainsRepositoryofavailableObjectInterfacesAlsoMaintainsRepositoryofAvailableImplementationsFederatesthisinformationacrosstheSystem
CORBA的主要特點極廣泛的平臺和編程語言支持與面向對象方法完全兼容,以保持分布式應用程序的靈活性和可升級性具有廣泛的開發(fā)商、開發(fā)人員、和用戶支持開放的、可互操作的體系結構包含一種靈活的對象間通訊的互聯(lián)網(wǎng)協(xié)議標準支持面向對象的分布式應用程序成熟的對象概念接口和實現(xiàn)之間的良好分隔Microsoft的COM系列幾個階段:OLE2/COM、ActiveX、DCOM和COM+COM(ComponentObjectModel):微軟的構件對象模型為構件的互操作而定義的二進制標準COM對象通過接口來顯示功能。接口是COM對象與外部世界的一個綁定約定。是一種底層的構件軟件結構,實現(xiàn)了OLE對象的底層通信,其作用類似于CORBA/ORB。微軟用其接口定義語言MIDL來精確定義接口、每一接口中的方法、以及每一方法參數(shù)。
同CORBA類似,COM/DCOM將所有應用都看作是對象,并通過接口提供對象的服務。客戶只能通過指針來使用接口。
構件對象的所有接口都必須繼承名為“IUnknown”的基本接口,它提供三個方法查詢對象的不同接口和管理其生命周期:
QueryInterface
客戶調用它從支持接口的構件對象獲得一個接口指針(或返回NULL)
。(2)AddRef用于管理對象的生命周期。 每當客戶機創(chuàng)建對象的一個新的實例時,COM激活該對象并將指向該對象接口的一個指針返回給客戶機。同時,COM代表該客戶機調用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中醫(yī)職業(yè)藥師試題及答案
- 天津市濱海七所重點學校2025屆數(shù)學高二下期末檢測模擬試題含解析
- 云南省施甸縣第三中學2025屆數(shù)學高二下期末質量檢測模擬試題含解析
- 云南省屏邊縣民族中學2025屆物理高二下期末質量跟蹤監(jiān)視模擬試題含解析
- 鹽城市高二年級下學期期終考試地理試題
- 餐飲檔口外賣配送與配送服務合同
- 教育機構場地出租印花稅繳納標準合同
- 餐飲行業(yè)服務員競業(yè)禁止合同范本
- 教育培訓機構場地租賃分成與課程開發(fā)合同
- 拆除工程拆除現(xiàn)場安全管理合同模板
- 北京餐飲垃圾管理制度
- 電子胎心監(jiān)護應用專家共識解讀
- 超標準洪水應急預案
- 2025湖南中考:英語必背知識點
- 2025年內蒙古自治區(qū)呼和浩特市中考二模英語試題 (含答案無聽力音頻及原文)
- 別墅的施工合同范本
- 食鹽安全追溯管理制度
- 食堂餐廳就餐管理制度
- 2025-2030中國移動球幕影院行業(yè)市場現(xiàn)狀分析及競爭格局與投資發(fā)展研究報告
- 中國政治制度史復習重點
- 人教版七年級下冊數(shù)學 期中 數(shù)學試卷(含答案)
評論
0/150
提交評論