Java RMI有什么意义?

时间:2015-10-04 04:11:30

标签: java rmi

为什么Java RMI存在?谁使用它以及用于什么?

我最紧迫的问题;

  • 您为什么要调用未在您的计算机上定义的方法?执行还需要更长的时间吗?我不知道这是如何让世界变得更美好的地方。让许多机器运行整个程序而不是许多机器运行各个部件会不会更聪明?
  • 您是否必须手动为所有计算机(客户端和服务器)提供接口,以消除远程对象提供的任何好处?换句话说,如果拥有远程对象的好处是客户端程序员不必与服务器程序员进行交互,那么手动联系彼此以更新两者上的接口并不令人烦恼。每一个小变化的方面?
  • 与客户端与服务器通信的典型Web应用程序的设置有何相似或不同?在我看来,HTTP调用更容易理解。 RMI服务器是否需要来自RMI客户端的某种密码?
  • 使用Java RMI通常会使用哪种应用程序?有什么难的例子吗?

1 个答案:

答案 0 :(得分:4)

  

为什么存在Java RMI?

呃,因为Sun建了吗?与提供Sun-RPC的Sun相同。

  

谁使用它以及用于什么?

RMI是J2EE的基础,仅举一个小例子。然而,远程方法调用的概念可以追溯到至少CORBA,并且远程过程的概念至少要求调用20世纪70年代。 Sun在1982年左右提供了RPC的实现,它是NFS的基础之一。

  

为什么要调用未在机器上定义的方法?

呃,如果你想让它们在另一台机器上运行?

  

执行会花费更长的时间吗?

当然。

  

我不知道这是如何让世界变得更美好的地方。让许多机器运行整个程序而不是许多机器运行各个部件会不会更聪明?

那你从来没有听说过分布式计算吗?

  

您是否必须手动为所有计算机(客户端和服务器)提供接口,以消除远程对象提供的任何好处?

没有

  

换句话说,如果拥有远程对象的好处是客户端程序员不必与服务器程序员交互

有人说这是一个好处吗?

  那么,为了每次小改动,手动联系以更新双方接口是不是很麻烦?

如果您在实施系统之前实际​​设计系统,则不会有太多变化。但这并不是唯一的发展模式。你可以让第三个人开发界面。或者同一个人发展双方。或者具有由规范定义的远程接口。或者......

  

与客户端与服务器通信的典型Web应用程序的设置有何相似或不同?

它使用RMI而不是HTTP。

  

在我看来,HTTP调用更容易理解。

您可以比远程界面更容易理解,但显然您的里程会有所不同。

  

RMI服务器是否需要来自RMI客户端的某种密码?

是的,它可以使用相互认证的SSL,或者通过自定义套接字工厂实现的任意认证协议。