EJB的存根和骨架的工作原理(转)
http://www.51cto.com/specbook/23/58094.htm
一、RMI工作原理
RMI的本质就是实现在不同JVM之间的调用,它的实现方法就是在两个JVM中各开一个Stub和Skeleton,二者通过socket通信来实现参数和返回值的传递。
有关RMI的例子代码网上可以找到不少,但绝大部分都是通过extend the interface java.rmi.Remote实现,已经封装的很完善了,不免使人有雾里看花的感觉。下面的例子是我在《Enterprise JavaBeans》里看到的,虽然很粗糙,但很直观,利于很快了解它的工作原理。
1、定义一个Person的接口,其中有两个business method, getAge() 和getName()
Client的本质是,它要知道Person接口的定义,并实例一个Person_Stub,通过Stub来调用business method,至于Stub怎么去和Server沟通,Client就不用管了。
注意它的写法:Person_Stub person = new Person_Stub();
为什么?因为要面向接口编程嘛,呵呵!
//RMI实质上就是生成2个类stub,skeleton来进行参数和返回值的传递,采用值传递方式
//类似于以前写的聊天室程序,被传递的对象应实现java.io.Serializable接口