现代应用程序中的 RMI

RMI in modern applications

我正在学习计算机科学,本学期我们在其中一门课程中开始了一个基于 RMI 的项目。我们不能选择使用的技术。我们为图书馆制作了一个简单的客户端-服务器应用程序,他们可以在其中租借、预订书籍等。

我记得我曾经在另一门课程中被告知 RMI 已被弃用,但我不记得参数了。

那么 RMI 真的被弃用了吗?and/or 什么时候应该使用它,现代的替代品是什么?

从广义上讲,"RMI" 还活着:在许多应用程序中,一个进程公开要由另一个进程执行的方法。当该术语用于表示 JVM 中内置的 RMI 专有方法时,情况略有不同,并且从 Java 的早期就已经存在。这种 RMI 方法使用了一种相当特定于 Java 的协议,没有对传播事务上下文或安全上下文的内置支持,并且很难通过防火墙进行路由。您可以在 Java 中使用与 IIOP 等协议相同的 RMI 框架,这些协议与语言无关并支持事务和安全上下文传播;但是防火墙还是有问题。

传统Java RMI 仍然广泛用于远程管理和监控,但我认为它在应用程序级别的使用并不多。现在似乎更流行将方法公开为 Web 服务,并使用 HTTP(S) 调用它们。在 Java 中有执行此操作的框架,并且可以使此类服务与语言无关。