国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

用RMI和CORBA進行分布式Java編程

2019-11-18 15:42:52
字體:
來源:轉載
供稿:網友

  java遠程方法調用(RMI)機制和公用對象請求代理體系(CORBA)是最重要 和使用最廣泛的兩種分布式對象系統。每個系統都有其特點和短處。它們在行 業中被用于從電子交易到保健醫療的各個領域。一個項目假如要從這兩種分布式 機制中選用一個,往往難以抉擇。
本文概括地介紹了RMI和CORBA,更重要的是, 它將介紹如何開發一個有用的應用程序,用于從遠程主機下載文件。

  客戶機/服務器模型是分布式計算的一種形式,在這種形式中,一個程序(客 戶機)與另一個程序(服務器)通訊以便交換信息。在這種模型中,客戶機和服 務器通常都說同樣的語言--也就是說客戶機和服務器能理解同一個協議--這 樣它們才能通訊。

  雖然客戶機/服務器模型的實現方式多種多樣,但典型做法是使用底層套接字。 使用套接字開發客戶機/服務器系統意味著,我們必須設計一個協議,也就是客戶 機和服務器都熟悉的一組命令集,通過這些命令它們就能通訊了。舉例來說, HTTP協議中提供了一個名為GET的方法,所有Web服務器都必須實現這個方法,所 有Web客戶機(瀏覽器)都必須使用這個方法,才能獲取文檔。

  分布式對象模型

  基于分布式對象的系統是一組對象的集合,這些對象以一種明確定義封裝的接 口把服務的請求者(客戶機)和服務的提供者(服務器)分隔開。換言之,客戶 機從服務的實現中分離出來,變成數據的呈現和可執行代碼。這就是基于分布式 對象的模型與純粹的客戶機/服務器模型的主要區別之一。

  在基于分布式對象的模型中,客戶機向對象發送消息,然后對象解釋該消息以 便決定要執行什么服務。這項服務,也就是方法,可以選擇是讓對象還是讓代理 來執行。Java遠程方法調用(RMI)和公用對象請求代理體系(CORBA)就是這種 模型的例子。

  RMI

  RMI是一個分布式對象系統,它使你能夠輕松地開發出分布式Java應用程序。 在RMI中開發分布式應用程序比用套接字開發要簡單,因為不需要做設計協議這種 很輕易出錯的工作。在RMI中,開發者會有一種錯覺,似乎是從本地類文件調用的 本地方法,其實參數傳送給了遠程目標,目標解釋參數后再把結果發回給調用方。

  RMI應用程序初步

  使用RMI開發分布式應用程序包括以下步驟:

  定義一個遠程接口
  實現這個遠程接口
  開發服務器
  開發客戶機
  生成存根和基干,啟動RMI注冊表、服務器和客戶機
  下面我們將通過開發一個文件傳輸程序來實踐這些步驟。

  范例: 文件傳輸程序

  這個應用程序答應客戶機從遠程主機上傳送(即下載)任何類型的文件(純 文本或二進制文件)。第一步是定義一個遠程接口,這個接口規定了服務器所提 供方法的信號,客戶機將調用這些方法。

定義一個遠程接口

  用于文件下載應用程序的遠程接口如代碼范例1所示。接口 FileInterface提供了一個方法downloadFile,這個 方法接受String參數(文件名),將文件的數據以字節數組的形式 返回。

  代碼范例1 1: FileInterface.java

import java.rmi.Remote;
import java.rmi.RemoteException;

public interface FileInterface extends Remote {
public byte[] downloadFile(String fileName) throws
RemoteException;
}

  請注重FileInterface的以下特征:

  它必須聲明為public,這樣客戶機才能加載實現遠程接口 的遠程對象。
  它必須擴展為Remote接口,以滿足使該對象成為遠程對象的 要求。
  這個接口中的每種方法都必須投出一個java.rmi.RemoteException。
  實現遠程接口



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新龙县| 卓尼县| 德昌县| 辽中县| 新安县| 习水县| 交城县| 宁安市| 寿宁县| 老河口市| 南华县| 松原市| 莱州市| 双辽市| 广宗县| 乌苏市| 习水县| 承德市| 双牌县| 安国市| 青龙| 化德县| 凤凰县| 洛扎县| 隆尧县| 堆龙德庆县| 鄱阳县| 天水市| 小金县| 屏山县| 衡阳县| 嵊州市| 崇阳县| 锡林浩特市| 始兴县| 林芝县| 灵山县| 那坡县| 阳信县| 灵山县| 榆社县|