国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
rmi(Remote Method Invocation ) 學(xué)習(xí) - what's j...

一:工作原理 

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

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Java RMI 入門(mén)
Java RMI與RPC,JMS的比較
漫談EJB(1)
RMI-IIOP
用RMI開(kāi)發(fā)基于Java的企業(yè)分布式應(yīng)用 - GAULEN JAVA信息網(wǎng) - info....
Jini,J2EE和Web服務(wù)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服