EJB基礎之RMI入門

來源:互聯網
上載者:User

做過UNIX下編程的朋友應該都聽說過RPC的概念了,RPC的全稱是Remote Procedure

Call;如果和RMI的全稱(Remote Method Invocation)比較,聰明的你應該知道了他們的

區別了:RPC是基於過程的,RMI是物件導向的.實際上,RMI是RPC的JAVA版本,因此,Java

RMI具有Java的"Write Once,Run Anywhere"的優點,是分布式應用系統的百分之百純

Java解決方案。

1)為什麼序列化
既然是分布式應用系統,就涉及多JRE的問題.在A JRE中的對象,它的記憶體位址是

0xabcdef,該地址存放的值,和B JRE中的該地址放的值是不同的,所以,RMI不支援序列

化是不行的.我們在RMI的包中可以看到支援 Serializable(可序列化)的介面.

2)RMI系統運行機制
RMI應用程式通常包括兩個獨立的程式:伺服器程式和客戶機程式,這和一般的C/S開發

模式沒有什麼區別.RMI也是基於ORB標準的,包括stub和skeleton.調用stub的方法時將

執行下列操作:(1) 初始化與包含遠程對象的遠程虛擬機器的串連;(2) 對遠程虛擬機器

的參數進行編組(寫入並傳輸),序列化就是這裡做的;(3) 等待方法調用結果;(4) 解編

(讀取)傳回值或返回的異常;(5) 將值返回給調用程式。skeleton調用過程就不用說了吧.stub和

skeleton不用自己寫,它由rmic編譯器產生。

3)編寫Java RMI分布式應用程式的步驟
(1) 將遠程類的功能定義為Java介面。參考java.rmi.Remote,注意異常的拋出問題。

(2) 編寫伺服器類。用物件導向的觀點來考慮這個問題。
(3) 編寫使用遠程服務的客戶機程式。用java.rmi.Naming中的lookup()方法獲得對遠

程對象的引用,依據需要調用該引用的遠程方法,其調用方式和對本機物件方法的調

用相同。
?
4)編譯和運行RMI分布式應用程式的步驟
(1) 使用javac編譯遠程介面類,遠程介面實作類別和客戶機程式。按自己的商務邏輯寫代碼.。
(2) 使用rmic編譯器產生實作類別的stub和skeleton。 自動實現的啦,不用我們去管。.
(3) 啟動RMI註冊服務程式rmiregistry。使用CORBA系統時能看到這個視窗.。
(4) 啟動伺服器端程式。
(5) 啟動客戶機程式。

說明:最好看看java.rmi的包來理解上面的概念;最好看看>的附錄的

講解.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.