存根和骨架有什么区别?据我所知,存根使用java RMI而骨架则没有。
答案 0 :(得分:9)
RMI使用标准机制(在RPC系统中使用)与远程对象进行通信:存根和骨架。远程对象的存根充当客户端的本地代表或远程对象的代理。调用者在本地存根上调用一个方法,该方法负责对远程对象执行方法调用。在RMI中,远程对象的存根实现远程对象实现的同一组远程接口。
调用存根方法时,会执行以下操作:
存根隐藏参数的序列化和网络级通信,以便向调用者提供简单的调用机制。
在远程JVM中,每个远程对象可能具有相应的骨架(在Java 2平台环境中,不需要骨架)。
骨架负责将调用分派给实际的远程对象实现。
当骨架收到传入的方法调用时,它会执行以下操作:
在Java 2 SDK,Standard Edition,v1.2中,引入了一个额外的存根协议,消除了在Java 2平台环境中对骨架的需求。相反,通用代码用于执行JDK1.1中的骨架执行的职责。存根和骨架由rmic编译器生成。