亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

利用RMI實現JAVA分布式應用

2019-11-18 13:54:56
字體:
來源:轉載
供稿:網友

  java RMI (Remote Method Invocation 遠程方法調用)是用Java在JDK1.1中實現的,它大大增強了Java開發分布式應用的能力。Java作為一種風靡一時的網絡開發語言,其巨大的威力就體現在它強大的開發分布式網絡應用的能力上,而RMI就是開發百分之百純Java的網絡分布式應用系統的核心解決方案之一。其實它可以被看作是RPC的Java版本。但是傳統RPC并不能很好地應用于分布式對象系統。而Java RMI 則支持存儲于不同地址空間的程序級對象之間彼此進行通信,實現遠程對象之間的無縫遠程調用。RMI目前使用Java遠程消息交換協議JRMP(Java Remote Messaging PRotocol)進行通信。JRMP是專為Java的遠程對象制定的協議。因此,Java RMI具有Java的"Write Once,Run Anywhere"的優點,是分布式應用系統的百分之百純Java解決方案。用Java RMI開發的應用系統可以部署在任何支持JRE(Java Run Environment Java,運行環境)的平臺上。但由于JRMP是專為Java對象制定的,因此,RMI對于用非Java語言開發的應用系統的支持不足。不能與用非Java語言書寫的對象進行通信。本文擬從程序的角度舉例介紹怎樣利用RMI實現Java分布式應用。

  一、RMI系統運行機理

  RMI應用程序通常包括兩個獨立的程序:服務器程序和客戶機程序。典型的服務器應用程序將創建多個遠程對象,使這些遠程對象能夠被引用,然后等待客戶機調用這些遠程對象的方法。而典型的客戶機程序則從服務器中得到一個或多個遠程對象的引用,然后調用遠程對象的方法。RMI為服務器和客戶機進行通信和信息傳遞提供了一種機制。

  在與遠程對象的通信過程中,RMI使用標準機制:stub和skeleton。遠程對象的stub擔當遠程對象的客戶本地代表或代理人角色。調用程序將調用本地stub的方法,而本地stub將負責執行對遠程對象的方法調用。在RMI中,遠程對象的stub與該遠程對象所實現的遠程接口集相同。調用stub的方法時將執行下列操作:(1) 初始化與包含遠程對象的遠程虛擬機的連接;(2) 對遠程虛擬機的參數進行編組(寫入并傳輸);(3) 等待方法調用結果;(4) 解編(讀?。┓祷刂祷蚍祷氐漠惓#?5) 將值返回給調用程序。為了向調用程序展示比較簡單的調用機制,stub將參數的序列化和網絡級通信等細節隱藏了起來。在遠程虛擬機中,每個遠程對象都可以有相應的skeleton(在JDK1.2環境中無需使用skeleton)。Skeleton負責將調用分配給實際的遠程對象實現。它在接收方法調用時執行下列操作:(1) 解編(讀取)遠程方法的參數;(2) 調用實際遠程對象實現上的方法;(3) 將結果(返回值或異常)編組(寫入并傳輸)給調用程序。stub和skeleton由rmic編譯器生成。

  利用RMI編寫分布式對象應用程序需要完成以下工作:(1) 定位遠程對象。應用程序可使用兩種機制中的一種得到對遠程對象的引用。它既可用RMI的簡單命名工具rmiregistry來注冊它的遠程對象,也可以將遠程對象引用作為常規操作的一部分來進行傳遞和返回。(2)與遠程對象通信。遠程對象間通信的細節由RMI處理,對于程序員來說,遠程通信看起來就像標準的Java方法調用。(3)給作為參數或返回值傳遞的對象加載類字節碼。因為RMI答應調用程序將純Java對象傳給遠程對象,所以,RMI將提供必要的機制,既可以加載對象的代碼又可以傳輸對象的數據。在RMI分布式應用程序運行時,服務器調用注冊服務程序以使名字與遠程對象相關聯??蛻魴C在服務器上的注冊服務程序中用遠程對象的名字查找該遠程對象,然后調用它的方法。

  二、對象序列化

  在RMI分布式應用系統中,服務器與客戶機之間傳遞的Java對象必須是可序列化的對象。不可序列化的對象不能在對象流中進行傳遞。對象序列化擴展了核心Java輸入/輸出類,同時也支持對象。對象序列化支持把對象編碼以及將通過它們可訪問到的對象編碼變成字節流;同時,它也支持流中對象圖形的互補重構造。序列化用于輕型持久性和借助于套接字或遠程方法調用(RMI)進行的通信。序列化中現在包括一個 API(application Programming Interface,應用程序接口),答應獨立于類的域指定對象的序列化數據,并答應使用現有協議將序列化數據域寫入流中或從流中讀取,以確保與缺省讀寫機制的兼容性。

  為編寫應用程序,除多數瞬態應用程序外,都必須具備存儲和檢索 Java對象的能力。以序列化方式存儲和檢索對象的要害在于提供重新構造該對象所需的足夠對象狀態。存儲到流的對象可能會支持 Serializable(可序列化)或 Externalizable(可外部化)接口。對于Java對象,序列化形式必須能標識和校驗存儲其內容的對象所屬的 Java類,并且將該內容還原為新的實例。對于可序列化對象,流將提供足夠的信息將流的域還原為類的兼容版本。對于可外部化對象,類將全權負責其內容的外部格式。序列化 Java 對象的目的是:提供一種簡單但可擴充的機制,以序列化方式維護 Java對象的類型及安全屬性;具有支持編組和解編的擴展能力以滿足遠程對象的需要;具有可擴展性以支持 Java 對象的簡單持久性;只有在自定義時,才需對每個類提供序列化自實現;答應對象定義其外部格式。

  三、分布式應用的實現和運行步驟

  編寫Java RMI分布式應用程序的步驟主要包括以下幾步:

  (1) 將遠程類的功能定義為Java接口。在Java中,遠程對象是實現遠程接口的類的實例。在遠程接口中聲明每個要遠程調用的方法。遠程接口具有如下特點:1) 遠程接口必須聲明為public。假如不這樣,則除非客戶端與遠程接口在同一個包內,否則當試圖裝入實現該遠程接口的遠程對象時會得到錯誤結果。2) 遠程對象擴展java.rmi.Remote接口。3) 除了所有應用程序特定的例外之外,每個方法還必須拋出java.rmi.RemoteException例外。4) 任何作為參數或返回值傳送的遠程對象的數據類型必須聲明為遠程接口類型,而不是實現類。



上一篇:純Java周歷的寫法

下一篇:返回對象

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久影视电视剧凤归四时歌| 另类天堂视频在线观看| 亚洲欧美日韩第一区| 中文字幕日韩高清| 精品国产一区二区三区久久狼黑人| 亚洲另类激情图| 国产91精品黑色丝袜高跟鞋| 亚洲精品久久久久久久久久久久久| 日韩大片在线观看视频| 日韩精品中文字| 日韩欧美综合在线视频| 欧美成人免费va影院高清| 成人妇女淫片aaaa视频| 国产精品久久久久久久久久久久| 日韩av在线最新| 中文字幕av一区二区| 欧美成人精品在线视频| 国产午夜精品视频免费不卡69堂| 亚洲深夜福利在线| 亚洲欧洲xxxx| 国产精品国产三级国产专播精品人| 欧美网站在线观看| 亚洲在线观看视频网站| 午夜精品久久久久久久99热| 欧美大荫蒂xxx| 九九久久综合网站| 亚洲国产精品电影| 亚洲一区av在线播放| 亚洲系列中文字幕| 亚洲免费小视频| 色偷偷噜噜噜亚洲男人| 亚洲老头老太hd| 成人动漫网站在线观看| 久久精品99久久香蕉国产色戒| 色99之美女主播在线视频| 一本大道亚洲视频| 中文字幕亚洲一区二区三区| 亚洲国产成人久久综合一区| 在线观看中文字幕亚洲| 国产综合久久久久久| 中文字幕亚洲欧美日韩在线不卡| 日韩欧美极品在线观看| 欧美日韩亚洲一区二区| 国产精品久久久久久久久久久不卡| 国产日韩欧美电影在线观看| 亚洲日韩中文字幕| 黄网动漫久久久| 久久精品国产久精国产思思| 成人av电影天堂| 国产精品美女久久久久av超清| 亚洲精品美女网站| 国产精品jizz在线观看麻豆| 欧美激情va永久在线播放| 亚洲一区二区免费| 国产精品极品美女粉嫩高清在线| 高跟丝袜一区二区三区| 中文亚洲视频在线| 久久人人爽人人爽人人片亚洲| 欧美尤物巨大精品爽| 久久精品中文字幕电影| 久久久久久久久久久91| 国产精品第七十二页| 久久精品国产91精品亚洲| 久久视频在线播放| 欧美日韩在线免费| 8050国产精品久久久久久| 精品亚洲aⅴ在线观看| 日韩电影中文字幕在线观看| 日韩一区二区福利| www.久久草.com| 亚洲无亚洲人成网站77777| 91亚洲va在线va天堂va国| 欧美一乱一性一交一视频| 国产激情999| 国产在线精品一区免费香蕉| 中文字幕日韩欧美在线视频| 日韩大陆毛片av| 中文字幕国产精品久久| 韩剧1988在线观看免费完整版| 日韩欧美在线看| 亚洲黄色片网站| 日韩视频中文字幕| 亚洲www在线观看| 精品久久久久人成| 色偷偷偷综合中文字幕;dd| 欧美国产欧美亚洲国产日韩mv天天看完整| 亚洲国产古装精品网站| 激情成人在线视频| 狠狠干狠狠久久| 国产伦精品一区二区三区精品视频| 日韩在线观看网址| 欧美精品在线免费播放| 91网站免费看| 亚洲国产福利在线| 91在线观看免费观看| 亚洲美女www午夜| 日韩精品在线电影| 国产欧美一区二区白浆黑人| 欧美激情一级二级| 日韩av手机在线观看| 国产精品91在线观看| 日韩中文第一页| 91国产视频在线播放| 色与欲影视天天看综合网| 国产视频久久久久| 成人精品网站在线观看| 国内精品久久久久| 国产999精品久久久| 亚洲精品91美女久久久久久久| 美女少妇精品视频| 国产成人avxxxxx在线看| zzijzzij亚洲日本成熟少妇| 久久精品国产欧美亚洲人人爽| 亚洲乱亚洲乱妇无码| 亚洲精品欧美一区二区三区| 69av在线播放| 日本19禁啪啪免费观看www| 亚洲精品小视频在线观看| 国内精品国产三级国产在线专| 亚洲视频精品在线| 色综合色综合网色综合| 国产在线精品成人一区二区三区| 国产成人激情视频| 高清欧美性猛交xxxx| 久久久久久久色| 国产精品久久久久久久久久尿| 欧美又大又硬又粗bbbbb| 国产精品高清免费在线观看| 91在线直播亚洲| 精品国产鲁一鲁一区二区张丽| 亚州成人av在线| 永久免费精品影视网站| 国产精品稀缺呦系列在线| 韩国日本不卡在线| 亚洲xxxx视频| 日韩av不卡电影| 欧美成人精品激情在线观看| 国产精品吴梦梦| 日韩中文字幕第一页| 亚洲人成网站777色婷婷| 91精品国产综合久久香蕉922| 亚洲精品福利免费在线观看| 久久手机精品视频| 国内精品视频久久| 97香蕉超级碰碰久久免费软件| 色综合久久天天综线观看| 亚洲人线精品午夜| 日韩欧美在线国产| 国产综合在线看| 亚洲字幕一区二区| 亚洲tv在线观看| 欧美国产极速在线| 国产成人精品综合久久久| 欧美xxxx18性欧美| 亚洲国产精品99久久| 国产精品男人的天堂| 国产精品白嫩初高中害羞小美女| 热99精品只有里视频精品| 日韩视频在线观看免费| 精品二区三区线观看| 国产精品久久久久久亚洲影视| 精品高清美女精品国产区| 亚洲男人天堂古典| 免费av在线一区|