一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

rmi(Remote Method Invocation ) 學(xué)習(xí) - what's j...

 軟件團(tuán)隊(duì)頭目 2007-09-28

一:工作原理 

RMI系統(tǒng)結(jié)構(gòu),在客戶(hù)端和服務(wù)器端都有幾層結(jié)構(gòu)。 
         ---------                                     ---------
        | 客戶(hù)對(duì)象|                                    | 遠(yuǎn)程對(duì)象| 
         ---------                                     ---------
            | |                                            | | 
------------------------------         --------------------------------- 
     |  占位程序 Stub |                         |  骨干網(wǎng) Skeleton | 
-------------------------------        ------- ------------------------
                | |                                  | | 
     -----------------------------------------------------------------
               |  遠(yuǎn) 程 引 用 層 Remote Reference Layer  | 
     ------------------------------------ ----------------------------
                                   | |
                   ------------------------------------
                     |  傳 輸 層 Transport Layer  | 
                   ------------------------------------

方法調(diào)用從客戶(hù)對(duì)象經(jīng)占位程序(Stub)、遠(yuǎn)程引用層(Remote Reference 
Layer)和傳輸層(Transport Layer)向下,傳遞給主機(jī),然后再次經(jīng)傳 
輸層,向上穿過(guò)遠(yuǎn)程調(diào)用層和骨干網(wǎng)(Skeleton),到達(dá)服務(wù)器對(duì)象。 
占位程序扮演著遠(yuǎn)程服務(wù)器對(duì)象的代理的角色,使該對(duì)象可被客戶(hù)激活。 
遠(yuǎn)程引用層處理語(yǔ)義、管理單一或多重對(duì)象的通信,決定調(diào)用是應(yīng)發(fā)往一個(gè) 
服務(wù)器還是多個(gè)。傳輸層管理實(shí)際的連接,并且追追蹤可以接受方法調(diào)用的 
遠(yuǎn)程對(duì)象。服務(wù)器端的骨干網(wǎng)完成對(duì)服務(wù)器對(duì)象實(shí)際的方法調(diào)用,并獲取返 
回值。返回值向下經(jīng)遠(yuǎn)程引用層、服務(wù)器端的傳輸層傳遞回客戶(hù)端,再向上 
經(jīng)傳輸層和遠(yuǎn)程調(diào)用層返回。最后,占位程序獲得返回值。 
(以上為引用他人原話(huà))



二:rmi相關(guān)類(lèi)
rmi由5個(gè)包和3個(gè)應(yīng)用工具組成:

    java.rmi                       組織客戶(hù)端的rmi類(lèi),接口和異常
    java.rmi.sever                 組織服務(wù)器端的rmi類(lèi),接口和異常
    java.rmi.registry              組織用于管理rmi命名服務(wù)的類(lèi)
    java.rmi.dgc                   組織用于管理分布式垃圾收集的類(lèi)
    java.rmi.activation            組織用于實(shí)現(xiàn)按需緝獲的rmi服務(wù)的類(lèi)

    rmic                           編譯器,生成stub和sketon
    rmiregistry                    一個(gè)為rmi提供命名服務(wù)的服務(wù)器,這項(xiàng)服務(wù)把名字和對(duì)象關(guān)聯(lián)在一起
    rmid                           一個(gè)支持rmi激活框架的服務(wù)器

但是大多數(shù)情況下,我們只需要使用每個(gè)包的一部分方法和接口就可以成功的實(shí)現(xiàn)一個(gè)使用rmi分布式解決方案.



三:步驟
要完成以上步驟需要有以下幾個(gè)步驟: 
1、生成一個(gè)遠(yuǎn)程接口 
2、實(shí)現(xiàn)遠(yuǎn)程對(duì)象(服務(wù)器端程序) 
3、生成占位程序和骨干網(wǎng)(服務(wù)器端程序) 
4、編寫(xiě)服務(wù)器程序 
5、編寫(xiě)客戶(hù)程序 
6、注冊(cè)遠(yuǎn)程對(duì)象 
7、啟動(dòng)遠(yuǎn)程對(duì)象 



四:一個(gè)簡(jiǎn)單應(yīng)用
一共有三個(gè)java類(lèi),遠(yuǎn)程接口,服務(wù)端程序,客戶(hù)端程序

遠(yuǎn)程接口:

import java.rmi.*;

public interface HelloIn extends java.rmi.Remote{
 String sayHello() throws RemoteException;
}


服務(wù)端程序:

import java.rmi.*;
import java.net.*;
import java.rmi.registry.*;
import java.rmi.server.*;

public class Hello extends java.rmi.server.UnicastRemoteObject implements HelloIn{
 public Hello() throws RemoteException{
  super();
 }
 
public String sayHello() throws RemoteException{
  return "Hello,World!";

 } 
 public static void main(String[] args){
  //System.setSecurityManager(new java.rmi.RMISecurityManager());
  try{
  
     
Hello h=new Hello();
      java.rmi.Naming.rebind("hello",h);
      System.out.print("Ready......");
   }
   catch(Exception e){
    e.printStackTrace();
   }
  
 }
}

rmic Hello              生成Stub 和 Skeleton
start rmiregistry   執(zhí)行服務(wù)端程序前在命令行方式下啟動(dòng)rmi的注冊(cè)程序 
java Hello             啟動(dòng)服務(wù)器

客戶(hù)端程序:

import java.rmi.*;
import java.rmi.registry.*;

public class Helloworld{
 public static void main(String[] args){
  //System.setProperty( "java.security.policy", "client.policy" );
  //System.setSecurityManager(new java.rmi.RMISecurityManager());
  try{
   
HelloIn hi=(HelloIn)Naming.lookup("http://127.0.0.1/hello");
   for(int i=0;i<10;i++){
    System.out.println(hi.sayHello());
   }
  }
  catch(Exception e){
   e.printStackTrace();
  }
  }
 }
編譯:javac Helloworld.java
最后執(zhí)行java Helloworld 控制臺(tái)打印出 Hello,World,成功調(diào)用.



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=263163


[收藏到我的網(wǎng)摘]   [發(fā)送Trackback]  taie發(fā)表于 2005年01月21日 22:02:00

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多

    大香蕉久久精品一区二区字幕| 色欧美一区二区三区在线| 国产又爽又猛又粗又色对黄| 大香蕉伊人一区二区三区| 成人亚洲国产精品一区不卡| 欧美一区二区三区性视频| 久久综合日韩精品免费观看| 久久午夜福利精品日韩| 69久久精品亚洲一区二区| 国产精品午夜视频免费观看| 久久香蕉综合网精品视频| 欧美日韩国产二三四区| 日韩高清中文字幕亚洲| 少妇熟女精品一区二区三区| 亚洲一区二区三区一区| 精品少妇人妻av一区二区蜜桃| 日韩人妻少妇一区二区| 东京热加勒比一区二区三区 | 好吊视频有精品永久免费 | 免费大片黄在线观看国语| 国产二级一级内射视频播放| 亚洲一区二区欧美激情| 国产在线一区中文字幕| 欧美激情一区=区三区| 97人妻精品一区二区三区男同| 国产91人妻精品一区二区三区| 日韩一区二区三区四区乱码视频| 东京热男人的天堂久久综合| 日韩特级黄色大片在线观看| 日本不卡视频在线观看| 亚洲最新av在线观看| 亚洲国产中文字幕在线观看| 国产精品日韩精品最新| 91欧美视频在线观看免费| 亚洲视频一区二区久久久| 国产福利一区二区久久| 热情的邻居在线中文字幕| 久久国产人妻一区二区免费| 中文字幕精品人妻一区| 中日韩美女黄色一级片| 日韩熟妇人妻一区二区三区|