Java RMI協定開發
在Java的開發中,Web端隻是以個較小的亮點,抛開HTTP協定,Java世界裡還有很多比較牛×的技術,但做為J2EE的核心技術,RMI協定就顯得由為重要,RMI對搞過EJB的人來說應該不陌生,但EJB是在RMI和CORBA的基礎之上進行了封裝(也就是RMI//IIOP),程式員往往不用接觸底層.做為Java工程師,對J2EE最核心的技術-----EJB的心髒 RMI自然是要非常熟悉.
RMI的程式設計模型是采用架構和樁的模式,基本原理如下:
客戶請求------>(rmi協定)---------->遠端架構(注冊機)------------>遠端對象----------(處理)--------->結果傳回到架構--------->客戶
1. 伺服器端建立遠端接口和實作遠端接口的類
2. 通過RMIC指令(%java_home%/bin/rmic.exe)來編譯遠端接口實作類進而生成 stub等檔案.
3. 運作 rmiregistry指令(%java_home%/bin/rmiregistry.exe) 來啟動RMI遠端注冊機
4. 向RMI注冊機注冊遠端對象供用戶端調用
下面來個實實在在的例子,大家回去根據效果自己領悟,寫理論我不在行
1. 首先 建立以個遠端接口 Mclaren.java
package com.skylink.rmi;
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface Mclaren extends Remote{
public String sayHello(String username) throws RemoteException;
}
2.建立以個遠端接口實作類,來做為RMI服務提供方 MclarenServer.java
package com.skylink.rmi;
import java.rmi.RemoteException;
import java.rmi.Naming;
import java.rmi.server.UnicastRemoteObject;
pulic class MclarenServer extends UnicastRemoteObject {
public MclarenServer() throws RemoteException {
super();
}
public void registry(String name){
try{
System.setSecurityManager(new RMISecurityManager());
Naming.rebind(name,this);
}catch(Exception e)[
e.printStackTrace();
}
}
public String sayHello(String username){
return "輸出為 : "+username;
}
}
3 建立用來啟動伺服器的類 StartServer.java
package com.skylink.rmi;
public class StartServer{
public static void main(String[] args){
try{
System.setSecurityManager(new RMISecurityManager());
new MclarenServer().registry("//192.168.0.192:1099/Mclaren");
System.out.println("服務已經注冊..");
}catch(Exception e){
e.printStackTrace();
}
}
}
本文轉自:http://www.cnblogs.com/dkblog/archive/2008/03/27/1980820.html