Java RMI - 客户端到服务器的调用

时间:2010-01-03 13:17:00

标签: java rmi

试图了解RMI是如何工作的(我有一个使用RMI的简单应用程序,似乎工作正常)。

我的问题是:当进行rmi通话时会发生什么?从rmi客户端到rmi服务器的过程中会发生什么?

2 个答案:

答案 0 :(得分:3)

在上述查找之后,用作rmi调用中的参数的对象被序列化(编组),这意味着对象的逐字节表示将通过网络连接发送非瞬态数据。在服务器端,序列化数据将被解组并且对象将被实例化。之后,调用服务器端方法,返回值将以与先前发送的参数类似的方式返回。它类似于将对象写入文件。

http://java.sun.com/j2se/1.4.2/docs/guide/rmi/faq.html

答案 1 :(得分:2)

RMI是RPC的面向对象方法。

客户端有存根,服务器端有 Skeleton 。客户端和服务器不直接通信,但它们通过Stub和Skeleton进行通信,这是自动生成的。

正如您可能猜到的那样,服务器和客户端必须使用一些对象。这些对象在服务器端定义并保留在 RMI注册表中。服务器和客户端都可以调用RMI注册表,它以某种方式作为内存工作(它不是一个内存,这只是一个清楚的例子)。服务器将对象绑定到注册表,客户端调用它上面的方法。