麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

用RMI和CORBA進(jìn)行分布式Java編程

2019-11-18 15:42:52
字體:
供稿:網(wǎng)友

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

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

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

  分布式對象模型

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

  在基于分布式對象的模型中,客戶機(jī)向?qū)ο蟀l(fā)送消息,然后對象解釋該消息以 便決定要執(zhí)行什么服務(wù)。這項(xiàng)服務(wù),也就是方法,可以選擇是讓對象還是讓代理 來執(zhí)行。Java遠(yuǎn)程方法調(diào)用(RMI)和公用對象請求代理體系(CORBA)就是這種 模型的例子。

  RMI

  RMI是一個分布式對象系統(tǒng),它使你能夠輕松地開發(fā)出分布式Java應(yīng)用程序。 在RMI中開發(fā)分布式應(yīng)用程序比用套接字開發(fā)要簡單,因?yàn)椴恍枰鲈O(shè)計(jì)協(xié)議這種 很輕易出錯的工作。在RMI中,開發(fā)者會有一種錯覺,似乎是從本地類文件調(diào)用的 本地方法,其實(shí)參數(shù)傳送給了遠(yuǎn)程目標(biāo),目標(biāo)解釋參數(shù)后再把結(jié)果發(fā)回給調(diào)用方。

  RMI應(yīng)用程序初步

  使用RMI開發(fā)分布式應(yīng)用程序包括以下步驟:

  定義一個遠(yuǎn)程接口
  實(shí)現(xiàn)這個遠(yuǎn)程接口
  開發(fā)服務(wù)器
  開發(fā)客戶機(jī)
  生成存根和基干,啟動RMI注冊表、服務(wù)器和客戶機(jī)
  下面我們將通過開發(fā)一個文件傳輸程序來實(shí)踐這些步驟。

  范例: 文件傳輸程序

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

定義一個遠(yuǎn)程接口

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

  代碼范例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,這樣客戶機(jī)才能加載實(shí)現(xiàn)遠(yuǎn)程接口 的遠(yuǎn)程對象。
  它必須擴(kuò)展為Remote接口,以滿足使該對象成為遠(yuǎn)程對象的 要求。
  這個接口中的每種方法都必須投出一個java.rmi.RemoteException。
  實(shí)現(xiàn)遠(yuǎn)程接口



發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 免费嗨片首页中文字幕 | 久久sp | 欧美www| 香蕉黄色网 | 蜜桃视频在线入口www | 久草成人在线 | 国产精品99久久久久久大便 | 成人 日韩 | 一级免费在线视频 | 销魂美女一区二区 | 叶子楣成人爽a毛片免费啪啪 | 久久久久久久免费视频 | 色999中文字幕 | 日韩精品久久久久久 | 性大片1000免费看 | 日韩精品二区 | 好吊色欧美一区二区三区四区 | 污污的视频在线观看 | 久久久久久久一区二区 | 97久久日一线二线三线 | 日本人乱人乱亲乱色视频观看 | 欧美人与牲禽动交精品一区 | 亚洲国产视频网 | 老女人碰碰在线碰碰视频 | 护士hd欧美free性xxxx | 成人男女啪啪免费观看网站四虎 | 成人在线观看免费视频 | 黄色午夜剧场 | 素人视频免费观看 | 亚洲一区久久久 | 一级做a爱片性色毛片高清 国产精品色在线网站 | 亚洲欧美成aⅴ人在线观看 av免费在线播放 | 国产精品欧美久久久久一区二区 | 黄色片网站免费观看 | 毛片在线视频在线播放 | 日韩精品中文字幕在线播放 | 欧美视频一二三区 | 精品999www | 红杏亚洲影院一区二区三区 | 久久久久久中文字幕 | 国产一级免费电影 |