package javatuning.ch2.vo;
import java.rmi.Naming;
public class Client {
public static void main(String[] argv) {
try {
IOrderManager usermanager = (IOrderManager) Naming
.lookup("OrderManager");
long begin = System.currentTimeMillis();
for (int i = 0; i < 1000; i++) {
usermanager.getOrder(i);
}
System.out.println("getOrder spend:"
+ (System.currentTimeMillis() - begin));
begin = System.currentTimeMillis();
for (int i = 0; i < 1000; i++) {
usermanager.getClientName(i);
usermanager.getNumber(i);
usermanager.getProdName(i);
}
System.out.println("3 Method call spend:"
+ (System.currentTimeMillis() - begin));
System.out.println(usermanager.getOrder(0).getClientName());
} catch (Exception e) {
System.out.println("OrderManager exception: " + e);
}
}
}
package javatuning.ch2.vo;
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface IOrderManager extends Remote {
public Order getOrder(int id) throws RemoteException;
public String getClientName(int id) throws RemoteException;
public String getProdName(int id) throws RemoteException;
public int getNumber(int id) throws RemoteException;
}
package javatuning.ch2.vo;
public class Order implements java.io.Serializable{
private int orderid;
private String clientName;
private int number;
private String produnctName;
public int getOrderid() {
return orderid;
}
public void setOrderid(int orderid) {
this.orderid = orderid;
}
public String getClientName() {
return clientName;
}
public void setClientName(String name) {
this.clientName = name;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public String getProdunctName() {
return produnctName;
}
public void setProdunctName(String produnctName) {
this.produnctName = produnctName;
}
}
package javatuning.ch2.vo;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
public class OrderManager extends UnicastRemoteObject implements IOrderManager {
protected OrderManager() throws RemoteException {
super();
}
private static final long serialVersionUID = -1717013007581295639L;
@Override
public Order getOrder(int id) throws RemoteException {
Order o=new Order();
o.setClientName("billy");
o.setNumber(20);
o.setProdunctName("desk");
return o;
}
@Override
public String getClientName(int id) throws RemoteException {
return "billy";
}
@Override
public String getProdName(int id) throws RemoteException {
return "desk";
}
@Override
public int getNumber(int id) throws RemoteException {
return 20;
}
}
package javatuning.ch2.vo;
import java.rmi.Naming;
import java.rmi.registry.LocateRegistry;
public class OrderManagerServer {
public static void main(String[] argv)
{
try
{
LocateRegistry.createRegistry(1099);
IOrderManager usermananger = new OrderManager();
Naming.rebind("OrderManager", usermananger);
System.out.println("OrderManager is ready.");
}
catch (Exception e)
{
System.out.println("OrderManager Server failed: " + e);
}
}
}