pro*_*eve 21 java networking network-programming rmi
存根在服务器端做什么?什么是骨架?

这是来自维基百科的图表.我在服务器计算机和客户端计算机上都安装了存根.我知道存根有助于客户端的网络连接但是存根在服务器端做了什么?
在上图中骨架是什么意思?
aMo*_*oly 16
看看下面的图片:
![]()
简而言之,存根和骨架是Web服务设置中的对应物.Skeleton belongs to service provider side和stub belongs to receiver side.在较低级别,存根和骨架相互通信.
从客户端,业务对象与存根对象通信,存根从消息中承担责任并调用Web服务.调用完成后,在服务提供者端,skeleton是存根的并行对象,它接收请求消息并理解它并将信息传递给服务端业务对象.
存根和骨架都隐藏了一些复杂性.
存根隐藏参数的序列化和网络级通信,以便向调用者提供简单的调用机制.
骨架负责将调用分派给实际的远程对象实现.
http://docs.oracle.com/javase/7/docs/platform/rmi/spec/rmi-arch2.html
http://www-itec.uni-klu.ac.at/~harald/ds2001/rmi/rmi.html
你需要做的第一件事就是忘记骷髅。自 1998 年以来,它们已过时。
该存根是由远程对象时其输出创建的。然后它要么绑定到注册表并由客户端通过查找获得,要么作为另一个远程方法的结果直接返回给客户端。
然后客户端使用存根作为相关远程接口的实现,来执行 RMI 的网络部分,与服务器 JVM 交互以最终调用客户端在存根中调用的远程对象中的相同方法。
理解“存根”和“骨架”的关键是理解编组的概念:
该rmiregistry的只是一个查找设施; 而已。当服务器执行 a 时bind(),它会在rmiregistry 中“注册”自己。当客户端执行 a 时lookup(),他会检查服务器上注册的内容。不多也不少。
我认为对“骷髅”之类的术语争论不休是没有意义的。如果您愿意,可以将所有内容都称为“存根”。关键是,两者都是代理,都做 MARSHALLING,一侧存在于客户端下(客户端调用),另一侧存在于服务器上(骨架调用到实际的服务器代码中)。
希望我的解释和示例对您的另一个链接有所帮助(至少有一点帮助)。