![遠(yuǎn)程方法調(diào)用_第1頁(yè)](http://file4.renrendoc.com/view/d5b85c47d4e3ae840e3e4739f0f51167/d5b85c47d4e3ae840e3e4739f0f511671.gif)
![遠(yuǎn)程方法調(diào)用_第2頁(yè)](http://file4.renrendoc.com/view/d5b85c47d4e3ae840e3e4739f0f51167/d5b85c47d4e3ae840e3e4739f0f511672.gif)
![遠(yuǎn)程方法調(diào)用_第3頁(yè)](http://file4.renrendoc.com/view/d5b85c47d4e3ae840e3e4739f0f51167/d5b85c47d4e3ae840e3e4739f0f511673.gif)
![遠(yuǎn)程方法調(diào)用_第4頁(yè)](http://file4.renrendoc.com/view/d5b85c47d4e3ae840e3e4739f0f51167/d5b85c47d4e3ae840e3e4739f0f511674.gif)
![遠(yuǎn)程方法調(diào)用_第5頁(yè)](http://file4.renrendoc.com/view/d5b85c47d4e3ae840e3e4739f0f51167/d5b85c47d4e3ae840e3e4739f0f511675.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2023年2月6日廣州大學(xué)Java網(wǎng)絡(luò)編程主講:劉淼1第18章遠(yuǎn)程方法調(diào)用2023年2月6日廣州大學(xué)Java網(wǎng)絡(luò)編程主講:劉淼2學(xué)習(xí)目標(biāo)
了解Java遠(yuǎn)程方法調(diào)用編程2023年2月6日廣州大學(xué)Java網(wǎng)絡(luò)編程主講:劉淼3兩大類(lèi)網(wǎng)絡(luò)應(yīng)用程序網(wǎng)絡(luò)通信-----在程序之間移動(dòng)文件和數(shù)據(jù)分布式應(yīng)用---就好象在本地一樣DCOMCORBAJavaRMI-----Java分布式技術(shù)的基礎(chǔ)好處負(fù)載均衡減少數(shù)據(jù)通信量2023年2月6日廣州大學(xué)Java網(wǎng)絡(luò)編程主講:劉淼4遠(yuǎn)程方法調(diào)用定義Remotemethodinvocation(RMI)istheactionofinvokingamethodofaremoteinterfaceonaremoteobject.Mostimportantly,amethodinvocationonaremoteobjecthasthesamesyntaxasamethodinvocationonalocalobject.2023年2月6日廣州大學(xué)Java網(wǎng)絡(luò)編程主講:劉淼5與遠(yuǎn)程過(guò)程調(diào)用(RPC)的區(qū)別RPC可以用于一個(gè)進(jìn)程調(diào)用另一個(gè)進(jìn)程(很可能在另一個(gè)遠(yuǎn)程主機(jī)上)中的過(guò)程,從而提供了過(guò)程的分布能力。Java的RMI則在RPC的基礎(chǔ)上向前又邁進(jìn)了一步,即提供分布式對(duì)象間的通訊,允許我們獲得在遠(yuǎn)程進(jìn)程中的對(duì)象(稱為遠(yuǎn)程對(duì)象)的引用,進(jìn)而通過(guò)引用調(diào)用遠(yuǎn)程對(duì)象的方法,就好像該對(duì)象是與你的客戶端代碼同樣運(yùn)行在本地進(jìn)程中一樣。RMI使用了術(shù)語(yǔ)"方法"(Method)強(qiáng)調(diào)了這種進(jìn)步,即在分布式基礎(chǔ)上,充分支持面向?qū)ο蟮奶匦浴?023年2月6日廣州大學(xué)Java網(wǎng)絡(luò)編程主講:劉淼6對(duì)象的串行化在同一虛擬機(jī)上,當(dāng)對(duì)象作為參數(shù)傳遞時(shí),是引用傳遞。如何在不同虛擬機(jī)上傳遞對(duì)象?將對(duì)象轉(zhuǎn)化為字節(jié)序列,再將這些字節(jié)序列發(fā)送給遠(yuǎn)程機(jī)器。-----類(lèi)似傳值調(diào)用傳遞特殊的遠(yuǎn)程對(duì)象引用----當(dāng)遠(yuǎn)程機(jī)器調(diào)用此引用的方法時(shí),該調(diào)用會(huì)通過(guò)Internet回到最初創(chuàng)建此對(duì)象的機(jī)器,類(lèi)似引用調(diào)用。RMI:綜合運(yùn)用。2023年2月6日廣州大學(xué)Java網(wǎng)絡(luò)編程主講:劉淼7工作原理P621圖12023年2月6日廣州大學(xué)Java網(wǎng)絡(luò)編程主講:劉淼82023年2月6日廣州大學(xué)Java網(wǎng)絡(luò)編程主講:劉淼9如何定位遠(yuǎn)程對(duì)象?RMI的命名/注冊(cè)服務(wù)正是解決這一問(wèn)題的。當(dāng)服務(wù)器端想向客戶端提供基于RMI的服務(wù)時(shí),它需要將一個(gè)或多個(gè)遠(yuǎn)程對(duì)象注冊(cè)到本地的RMI注冊(cè)表中。每個(gè)對(duì)象在注冊(cè)時(shí)都被指定一個(gè)將來(lái)用于客戶程序引用該對(duì)象的名稱??蛻舫绦蛲ㄟ^(guò)命名服務(wù),指定類(lèi)似URL的對(duì)象名稱就可以獲得指向遠(yuǎn)程對(duì)象的遠(yuǎn)程引用。在Naming
中的lookup()
方法找到遠(yuǎn)程對(duì)象所在的主機(jī)后,它將檢索該主機(jī)上的RMI注冊(cè)表,并請(qǐng)求所需的遠(yuǎn)程對(duì)象。如果注冊(cè)表發(fā)現(xiàn)被請(qǐng)求的遠(yuǎn)程對(duì)象,它將生成一個(gè)對(duì)該遠(yuǎn)程對(duì)象的遠(yuǎn)程引用,并將其返回給客戶端,客戶端則基于遠(yuǎn)程引用生成相應(yīng)的Stub對(duì)象,并將引用傳遞給調(diào)用者。2023年2月6日廣州大學(xué)Java網(wǎng)絡(luò)編程主講:劉淼10RMI編程定義遠(yuǎn)程接口。這一步是通過(guò)擴(kuò)展java.rmi.Remote
接口,并定義所需的業(yè)務(wù)方法實(shí)現(xiàn)的。定義遠(yuǎn)程接口的實(shí)現(xiàn)類(lèi)。即實(shí)現(xiàn)上一步所定義的接口,給出業(yè)務(wù)方法的具體實(shí)現(xiàn)邏輯。編譯遠(yuǎn)程接口和實(shí)現(xiàn)類(lèi),并通過(guò)RMI編譯器rmic
基于實(shí)現(xiàn)類(lèi)生成所需的Stub和Skeleton類(lèi)。2023年2月6日廣州大學(xué)Java網(wǎng)絡(luò)編程主講:劉淼112023年2月6日廣州大學(xué)Java網(wǎng)絡(luò)編程主講:劉淼12定義遠(yuǎn)程接口遠(yuǎn)程接口必須直接或者間接的擴(kuò)展自java.rmi.Remote
接口。遠(yuǎn)程方法必須聲明拋出java.rmi.RemoteException
異常。在遠(yuǎn)程方法聲明中,作為參數(shù)或者返回值的遠(yuǎn)程對(duì)象,或者包含在其它非遠(yuǎn)程對(duì)象中的遠(yuǎn)程對(duì)象,必須聲明為其對(duì)應(yīng)的遠(yuǎn)程接口,而不是實(shí)際的實(shí)現(xiàn)類(lèi)。2023年2月6日廣州大學(xué)Java網(wǎng)絡(luò)編程主講:劉淼13舉例:Fibonacci接口
P6232023年2月6日廣州大學(xué)Java網(wǎng)絡(luò)編程主講:劉淼14實(shí)現(xiàn)遠(yuǎn)程接口必須繼承java.rmi.server.UnicastRemoteObject
或其子類(lèi)。UnicastRemoteObject
類(lèi)實(shí)現(xiàn)了我們前面所講的基于TCP/IP的點(diǎn)對(duì)點(diǎn)通訊機(jī)制。該類(lèi)構(gòu)造函數(shù)的最重要的作用就是調(diào)用UnicastRemoteObject
類(lèi)的exportObject()方法。導(dǎo)出(Export)對(duì)象是指使遠(yuǎn)程對(duì)象準(zhǔn)備就緒,可以接受進(jìn)來(lái)的調(diào)用的過(guò)程。而這個(gè)過(guò)程的最重要內(nèi)容就是建立服務(wù)器套接字,監(jiān)聽(tīng)特定的端口,等待客戶端的調(diào)用請(qǐng)求。2023年2月6日廣州大學(xué)Java網(wǎng)絡(luò)編程主講:劉淼15舉例:FibonacciImpl類(lèi)
P6252023年2月6日廣州大學(xué)Java網(wǎng)絡(luò)編程主講:劉淼16服務(wù)器端注冊(cè)舉例:FibonacciServerP626生成非守護(hù)進(jìn)程,服務(wù)器程序繼續(xù)運(yùn)行。2023年2月6日廣州大學(xué)Java網(wǎng)絡(luò)編程主講:劉淼17編寫(xiě)客戶程序舉例:FibonacciClientP6292023年2月6日廣州大學(xué)Java網(wǎng)絡(luò)編程主講:劉淼18運(yùn)行編譯服務(wù)器程序:javacFibonacciServer.java生成樁類(lèi):rmicFibonacciImpl啟動(dòng)服務(wù)器啟動(dòng)注冊(cè)表:rmiregistry&新啟動(dòng)JVM,啟動(dòng)服務(wù)器:javaFibonacciServer編譯客戶程序:javacFibonacciClient.java運(yùn)行客戶程序:javaFibonacciClientrmi://localhost/fibonacci01234555155
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度建筑材料租賃與施工進(jìn)度跟蹤合同模板
- 2025年度智慧城市建設(shè)項(xiàng)目建設(shè)工程技術(shù)咨詢合同樣本
- 2025年度廣場(chǎng)場(chǎng)地租賃合同物業(yè)管理責(zé)任界定
- 酒泉2025年甘肅敦煌市市直機(jī)關(guān)及黨群口事業(yè)單位選調(diào)21人筆試歷年參考題庫(kù)附帶答案詳解
- 赤峰2025年內(nèi)蒙古赤峰二中引進(jìn)高層次教師5人筆試歷年參考題庫(kù)附帶答案詳解
- 福建2024年福建海洋研究所招聘高層次人才筆試歷年參考題庫(kù)附帶答案詳解
- 邊緣計(jì)算在接入網(wǎng)中的應(yīng)用-詳解洞察
- 海南2025年海南省農(nóng)墾實(shí)驗(yàn)中學(xué)招聘臨聘教師筆試歷年參考題庫(kù)附帶答案詳解
- 小麥新品種項(xiàng)目籌資方案
- 江蘇2025年江蘇省衛(wèi)生健康委員會(huì)所屬事業(yè)單位長(zhǎng)期招聘189人筆試歷年參考題庫(kù)附帶答案詳解
- 建筑構(gòu)造(下冊(cè))
- 金工實(shí)訓(xùn)教學(xué)-數(shù)控銑床及加工中心加工
- 電流互感器試驗(yàn)報(bào)告
- 蔣中一動(dòng)態(tài)最優(yōu)化基礎(chǔ)
- 華中農(nóng)業(yè)大學(xué)全日制專(zhuān)業(yè)學(xué)位研究生實(shí)踐單位意見(jiàn)反饋表
- 付款申請(qǐng)英文模板
- 七年級(jí)英語(yǔ)閱讀理解10篇(附答案解析)
- 抖音來(lái)客本地生活服務(wù)酒旅商家代運(yùn)營(yíng)策劃方案
- 鉆芯法樁基檢測(cè)報(bào)告
- 無(wú)線網(wǎng)網(wǎng)絡(luò)安全應(yīng)急預(yù)案
- 國(guó)籍狀況聲明書(shū)【模板】
評(píng)論
0/150
提交評(píng)論