熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

Java遠程方法調用(1)

2013-11-23 19:13:27  來源: Java核心技術 

  概述
  
    Java Remote Method Invocation ( RMI Java遠程方法調用)允許您使用Java編寫分布式對象本文將介紹RMI的優點以及如何將其連接到現有的和原有的系統中以及與用Java 編寫的組件的連接
  
    RMI為采用Java對象的分布式計算提供了簡單而直接的途徑這些對象可以是新的Java對象也可以是圍繞現有API的簡單的Java包裝程序Java體現了編寫一次就能在任何地方運行的模式而RMI可將Java模式進行擴展使之可在任何地方運行
  
    因為RMI是以Java為核心的所以它將Java的安全性和可移植性等強大功能帶給了分布式計算您可將代理和梢?務邏輯等屬性移動到網絡中最合適的地方如果您要擴展Java在系統中的使用RMI將使您充分利用其強大功能
  
    RMI可利用標准Java本機方法接口JNI與現有的和原有的系統相連接RMI還可利用標准JDBC包與現有的關系數據庫連接RMI/JNI和RMI/JDBC相結合可幫助您利用RMI與目前使用非Java語言的現有服務器進行通信而且在您需要時可擴展Java在這些服務器上的使用RMI可幫助您在擴展使用時充分利用Java的強大功能
  
  優點
  
    從最基本的角度看RMI是Java的遠程過程調用(RPC)機制與傳統的RPC系統相比RMI具有若干優點因為它是Java面向對象方法的一部分傳統的RPC系統采用中性語言所以是最普通的系統它們不能提供所有可能的目標平台所具有的功能
  
    RMI以Java為核心可與采用本機方法與現有系統相連接這就是說RMI可采用自然直接和功能全面的方式為您提供分布式計算技術而這種技術可幫助您以不斷遞增和無縫的方式為整個系統添加Java功能
  
  RMI的主要優點如下
  
   面向對象RMI可將完整的對象作為參數和返回值進行傳遞而不僅僅是預定義的數據類型也就是說您可以將類似Java哈希表這樣的復雜類型作為一個參數進行傳遞而在目前的RPC系統中您只能依靠客戶機將此類對象分解成基本數據類型然後傳遞這些數據類型最後在服務器端重新創建哈希表RMI則不需額外的客戶程序代碼(將對象分解成基本數據類型)直接跨網傳遞對象
   可移動屬性RMI可將屬性(類實現程序)從客戶機移動到服務器或者從服務器移到客戶機例如您可以定義一個檢查雇員開支報告的接口以便察看雇員是否遵守了公司目前實行的政策在開支報告創建後客戶機就會從服務器端獲得實現該接口的對象如果政策發生變化服務器端就會開始返回使用了新政策的該接口的另一個實現程序您不必在用戶系統上安裝任何新的軟件就能在客戶端檢查限制條件從而向用戶提供爍?快的反饋並降低服務器的工作量這樣就能具備最大的靈活性因為政策改變時只需要您編寫一個新的Java類並將其在服務器主機上安裝一次即可
   設計方式對象傳遞功能使您可以在分布式計算中充分利用面向對象技術的強大功能如二層和三層結構系統如果您能夠傳遞屬性那麼您就可以在您的解決方案中使用面向對象的設計方式所有面向對象的設計方式無不依靠不同的屬性來發揮功能如果不能傳遞完整的對象包括實現和類型就會失去設計方式上所提供的優點
   安  全RMI使用Java內置的安全機制保證下載執行程序時用戶系統的安全RMI使用專門為保護系統免遭惡意小應用程序侵害而設計的安全管理程序可保護您的系統和網絡免遭潛在的惡意下載程序的破壞在情況嚴重時服務器可拒絕下載任何執行程序
  便於編寫和使用RMI使得Java遠程服務程序和訪問這些服務程序的Java客戶程序的編寫工作變得輕松簡單遠程接口實際上就是Java接口服務程序大約用三行指令宣布本身是服務程序其它方面則與任何其它Java對象類似這種簡單方法便於快速編寫完整的分布式對象系統的服務程序並快速地制做軟件的原型和早期版本以便於進行測試和評估因為RMI程序編寫簡單所以維護也簡單
   可連接現有/原有的系統RMI可通過Java的本機方法接口JNI與現有系統進行進行交互利用RMI和JNI您就能用Java語言編寫客戶端程序還能使用現有的服務器端程序在使用RMI/JNI與現有服務器連接時您可以有選擇地用Java重新編寫服務程序的任何部分並使新的程序充分發揮Java的功能類似地RMI可利用JDBC在不修改使用數據庫的現有非Java源代碼的前提下與現有關系數據庫進行交互
   編寫一次到處運行RMI是Java編寫一次到處運行 方法的一部分任何基於RMI的系統均可%地移植到任何Java虛擬機上RMI/JDBC系統也不例外如果使用RMI/JNI與現有系統進行交互工作則采用JNI編寫的代碼可與任何Java虛擬機進行編譯運行
   分布式垃圾收集RMI采用其分布式垃圾收集功能收集不再被網絡中任何客戶程序所引用的遠程服務對象與Java 虛擬機內部的垃圾收集類似分布式垃圾收集功能允許用戶根據自己的需要定義服務器對象並且明確這些對象在不再被客戶機引用時會被刪除
   並行計算RMI采用多線程處理方法可使您的服務器利用這些Java線程更好地並行處理客戶端的請求Java分布式計算解決方案RMI從JDK 開始就是Java平台的核心部分因此它存在於任何一台 Java虛擬機中所有RMI系統均采用相同的公開協議所以所有Java 系統均可直接相互對話而不必事先對協議進行轉換
  

From:http://tw.wingwit.com/Article/program/Java/hx/201311/26469.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.