如何在服务器和客户端等多个应用程序之间轻松维护RMI接口



任何一个处理RMI的人都肯定会遇到这样的困境,即如何轻松维护为其他客户端应用程序提供远程方法调用服务的对象的接口。每当我们决定对方法声明进行微小更改或添加/删除接口中声明的方法时,我们都必须在所有使用该接口从远程服务器访问RMI服务的客户端中手动复制更改。

考虑拥有一个可下载(Serializable)代理,该代理具有客户端使用的更稳定的接口,并使用远程接口来完成其工作。您可以使用代码库功能来确保它对所有客户端都可用。代理需要包含存根。您可以将代理绑定到注册表,或者从其他远程方法返回它。

或者,使用JWS来分发新版本的客户端。

或者,更稳定地设计远程接口,这样它们就不必更改-:)

我想出的一个好的解决方法是

  1. 将RMI服务器提供的所有接口放在一个单独的项目,它将在构建时将自己打包到一个jar文件中
  2. 然后只需将该jar文件作为依赖项添加到服务器应用程序的类路径,旨在提供RMI服务以及任何客户端应用程序希望使用这些接口来调用远程方法

这将通过在一个地方更新RMI接口来简化维护RMI接口的任务。在某些接口中更改方法签名的额外工作将仅限于更改调用该方法的应用程序代码。

相关内容

最新更新