RMI
RMI(Remote Method Invocation):一种执行远程调用的Java API。RMI的目的是使在不同计算机上运行的对象(Object)之间的调用行为类似于本地调用。
RMI机制:服务器(Server)应实现一定的功能并将其注册到注册表(Registry)中,客户端(Client)应在注册表的命名空间(Naming space)中获取对象。
分布式编程中有一种基本思想就是远程方法调用。使用远程方法调用,必然会涉及参数的传递和执行结果的返回。参数或者返回值可以是基本数据类型,当然也有可能是对象的引用。所以这些需要被传输的对象必须可以被序列化,这要求相应的类必须实现 java.io.Serializable 接口,并且客户端的serialVersionUID字段要与服务器端保持一致。
在JVM之间通信时,RMI对远程对象和非远程对象的处理方式是不一样的,始终有两个中间对象实际处理通信:存根(stub object)和骨架(skeleton object),RMI远程调用逻辑是这样的: