rmi:Remot Method Incavotion。
顾名思义,即虚拟机间的、进程间的方法调用。
思想是“代理”模式中的“远程代理”模式,java提供的rmi包中完成了底层的对象序列化、反序列化、网络IO等的实现细节。
我们只需要遵循这个实现即可很方便的进行虚拟机、进程间的方法调用。
网络中相关的demo一搜一大堆,不管是输出“hello world”的或是打印个名字什么的,在此赘述没有什么意义。
个人觉得,理解rmi首先要理解“代理”模式,其次要掌握java网络编程知识,例如socket,和对象的序列化反序列化的相关内容。
理解“代理”模式是要理解rmi的思想,理解诸如“socket”等的技术知识是为了能够明朗底层的实现:无非就是传递字符串给server,server将相应的返回对象
序列化后传递给client,client再进行反序列化,继而输出。无出其右。
然而,通过网络进行传输,必定会出现很多复杂的情况,这个需要我们通过看底层的源码和经验去解决。
现将oracle中的rmi的helloword链接给出。个人觉得还是看这个好。
http://docs.oracle.com/javase/7/docs/technotes/guides/rmi/hello/hello-world.html#startRegistry