远程方法调用(RMI)

RMI 需要 3 个组件:客户端,服务器和共享远程接口。共享远程接口通过指定服务器必须实现的方法来定义客户端 - 服务器合同。接口必须对服务器可见,以便它可以实现方法; 接口必须对客户端可见,以便它知道服务器提供哪些方法(服务)。
实现远程接口的任何对象都注定要扮演服务器的角色。因此,服务器也可以调用客户端中的方法的客户端 - 服务器关系实际上是服务器 - 服务器关系。这称为*回调,*因为服务器可以回叫客户端。考虑到这一点,可以使用指定客户端来实现这样的服务器。

共享远程接口是任何扩展 Remote接口。充当服务器的对象经历以下操作:

  1. 通过扩展实现 RemoteUnicastRemoteObject ,显式或隐式实现共享远程接口。
  2. 导出,如果它扩展 UnicastRemoteObject,或者通过传递给 UnicastRemoteObject#exportObject 显式导出。
  3. 在注册表中绑定,可以直接通过 Registry 或间接通过 Naming 。这只是建立初始通信所必需的,因为可以通过 RMI 直接传递更多存根。

在项目设置中,客户端和服务器项目完全不相关,但每个项目都在其构建路径中指定共享项目。共享项目包含远程接口。