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

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

使用RMI和CORBA進行分布式程序設計

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

  使用RMI和CORBA進行分布式程序設計

RMI和corba是兩種最重要和使用最廣泛的分布式對象系統。 每種都有它的優點和短處。這兩種系統都在從電子商務到衛生保健等不同的行業成功的使用。在項目中使用這兩種分布機制中的任何一種都是一項很困難的任務。本文介紹了RMI和corba的機理和最主要的是顯示了如何開發一個有用的程序(一個從遠程站點下載文件的程序)。于是有以下內容:
? 一個分布式系統的簡介
? 一個RMI和corba的簡介
? 讓你體驗開發一個RMI和corba程序的滋味。
? 說明如何使用RMI和corba從遠程機器交換文件
? 提供一個RMI和Corba的比較。
客戶/服務端模式
客戶/服務模式是一個分布式計算應用。它通過使用一個應用程序(客戶)和另一個程序(服務端)交換數據。在這樣的一個例子里面客戶端和服務端一般使用同樣的語言來編寫,使用相同的協議來相互通信。
在客戶/服務模式應用到各種各樣的地方的過程中,使用低層次的socket來開發是很典型的。使用socket來開發客戶/服務端模式意味著我們必須自己設計一種協議,該協議包含客戶端和服務端都統一的命令集 ,使得客戶端和服務端能夠通過這個協議來通信。例如:HTTP協議提供了一個get的方法。所有的web服務器軟件都集成了該功能,而所有的瀏覽器軟件都能夠使用該功能來獲得資料。
分布式對象模式
分布式對象系統是一個對象集合,通過定義很完善的統一的接口來分隔開的要求服務(客戶端)和功能服務(服務端)。換句話說客戶端和公共服務的提供分隔開,這些服務包括數據表現和執行的代碼。這是一個分辨分布式對象模式和客戶/服務模式的主要不同。
在分布式對象模式里,客戶端發送一個消息到一個對象,由這個對象解釋這個消息然后決定應該由什么服務來完成。這個服務,方法或選擇的完成可能是被一個對象或是被一個broker。RMI和corba就是這種模式的例子。
RMI
RMI是一個分布式對象模式。它使得使用java開發分布式程序更加輕易。由于不需要設計協議(這基本是一個錯誤的任務) 使得使用RMI開發分布式程序比使用socket更加輕易。在RMI里面設計者就象在調用一個本地的類的方法一樣,而實際上是在調用的時候相應的參數被發送到遠端的對象和然后被解釋。最后結果返回給調用者。
一個 RMI應用的流程
使用 RMI開發一個分布式應用包括如下幾個步驟
1)定義一個遠端的接口
2)實現這個遠端的接口
3)開發一個服務端
4)開發一個客戶端
5)生成Stubs 和Skeletons,運行RMI注冊器,服務端 和客戶端
我們現在通過開發一個文件交換程序來解釋這些步驟
例子:文件交換程序
這個應用答應客戶端從服務端交換(或下載)所有類型的文件。第一步是定義一個遠程的接口,這個接口指定了的簽名方法將被服務端提供和被客戶端調用。
定義一個遠程接口
這個程序的遠程接口在代碼例子1中列出,接口FileInterface提供一個downloadFile這個帶一個字符竄(文件名)變量的的方法,然后返回以一個字符竄序列的形式的相應文件數據。
代碼例子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錯誤。
實現遠程的接口
下一步是實現遠程的接口FileInterface。實現的例子在代碼例子 2中列出。類FileImpl從UnicastRemoteObject擴展來。這顯示出FileImpl類是用來創建一個單獨的,不能復制的,遠程的對象,
這個對象使用RMI 的默認的基于TCP的通信方式。
代碼例子 2: FileImpl.java
import java.io.*;
import java.rmi.*;
import java.rmi.server.UnicastRemoteObject;

public class FileImpl extends UnicastRemoteObject
implements FileInterface {

PRivate String name;

public FileImpl(String s) throws RemoteException{
super();
name = s;


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久亚洲国产午夜精品理论片 | 欧美精品亚洲人成在线观看 | 成人在线观看地址 | 性明星video另类hd | 久久逼网 | 污污黄 | 娇妻被各种姿势c到高潮小说 | 男女羞羞视频在线免费观看 | 羞羞视频一区 | 一区国产视频 | 精品一区二区三区毛片 | 欧洲伊人网| 国产午夜精品一区二区三区不卡 | 91精品国产乱码久久桃 | 亚洲网视频 | 亚洲精品午夜国产va久久成人 | 国产精品美女一区二区 | 看黄在线 | 玩偶姐姐 在线观看 | 曰韩黄色片| 亚洲少妇诱惑 | 欧美一级特黄a | 欧美一级美片在线观看免费 | 免费a级片视频 | 亚洲视频综合 | 手机黄色小视频 | 最新亚洲国产 | 午夜视频久久久 | 免费久久精品 | 蜜桃网在线观看 | 国内精品久久久久久久久久久久 | 亚洲精品 欧美 | 国产亚洲精品久久久久5区 男人天堂免费 | 毛片免费观看视频 | videos真实高潮xxxx | 欧美一区黄色 | 一级黄色在线观看 | 鲁久久| 中国洗澡偷拍在线播放 | 国产精品欧美久久久久一区二区 | 成人毛片100部 |