当前位置: 首页 > 面试题库 >

请问Ja​​va RMI的意义是什么?

凤棋
2023-03-14
问题内容

人们为什么使用RMI,或者什么时候应该使用RMI?我在oracle网站上阅读了有关RMI的那些教程,但是没有提供足够的实际示例。

据我了解,软件应使其模块尽可能“无关且分开”。RMI某种程度上似乎是与我高度耦合的一个例子。为什么这不是不好的编码习惯?我认为客户端应该只触发指令,而对象的所有实际操作都是由服务器完成的。

(我目前正在攻读计算机科学学士学位,并且经验不足,因此,如果我理解错误的概念,请指正。)

提前致谢!


问题答案:

基本上由于您刚刚列出的原因,您实际上不应该将RMI用于今天构建的任何应用程序。

在某些情况下(分为传统应用程序或“企业”应用程序),您别无选择。

但是,如果您要开始一个新项目,则其他选项是:

通过HTTP的REST + JSON

事实标准,用于与远程服务进行通信。它的最大优点是重量轻且易于掌握该概念。

从理论上讲,它需要比RMI进行更多的工作,因为您必须手动制作可用的URL,每个URL中可接受的动词等。实际上,我会说RMI的样板并没有真正帮助任何人。

坚持使用Java,Jersey是一个出色的库,用于编写您自己的RESTful Web服务。

如果您希望使用Java的RESTful
Web服务包括电池的解决方案,Yammer的好朋友们提供的Dropwizard可以为您提供完整的服务器和框架,随时可以插入业务逻辑,并提供日志记录,数据库连接,序列化,请求路由和甚至是开箱即用的指标。

肥皂

与远程服务通信的先前标准。除非您有理由使用它,否则我会坚持使用REST。

节约

Thrift将创建一个客户端和一个服务器存根,基本上完成了许多工作。通信采用有效的二进制协议。它在Java世界中越来越流行,因为它在“大数据”领域中被许多开源项目所使用。例如,Cassandra,HBase(切换到Avro)。Scrooge是一个Twitter项目,用于为Scala创建惯用的节俭存根。

阿卡族演员

Akka是为Scala和Java
实现Actor模型的框架。包括用于服务间通信的条款,并在后台处理许多细节。一世

根据您的需求,某些会比其他人更合适。



 类似资料:
  • 问题内容: 按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 人们为什么使用RMI,或者什么时候应该使用RMI?我在oracle网站上阅读了有关RMI的那些教程,但是没有提供足够的实际示例。 据我了解,软件应使其模块尽可

  • 本文向大家介绍问题:SVM的物理意义是什么;相关面试题,主要包含被问及问题:SVM的物理意义是什么;时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 构造一个最优化的超平面在空间中分割数据

  • 问题内容: 好的,这可能有点钝了,但是Node.js的目的/需求是什么 我主要通过CloudFoundry注意到了它,但是不太确定它应该做什么。但是我猜想它可能相当大,因为为什么VMWare会支持它。 提前致谢。 问题答案: 这是一个… 高效且100%事件驱动的IO框架, 足够灵活,可以使用它可以找到的最佳基础操作系统功能, 以高级编程语言(客户端最有可能使用的相同语言)展示API, 在该语言的最

  • 我今天遇到了,我不确定我是否理解它的用途。。。在Spring文档中,它说 允许同一类处理多个请求类型的控制器实现。这个类的子类可以用表单的方法处理几种不同类型的请求 在另一个网站上,他们说 它将多个请求处理方法聚合到单个控制器中,因此相关功能可以很容易地保持在一起。 我仍然不明白扩展与下面的相比是更好还是不同?或者,更像是旧版本Spring的遗留产品?我觉得我有一些基本的误解。。。

  • 本文向大家介绍请问MyBatis中的动态SQL是什么意思?相关面试题,主要包含被问及请问MyBatis中的动态SQL是什么意思?时的应答技巧和注意事项,需要的朋友参考一下 考察点:SQL 参考回答: 对于一些复杂的查询,我们可能会指定多个查询条件,但是这些条件可能存在也可能不存在,需要根据用户指定的条件动态生成SQL语句。如果不使用持久层框架我们可能需要自己拼装SQL语句,还好MyBatis提供了

  • 在UNIX中,我应该编写一个Java文件,将“exit 1”打印到标准错误,然后以1的状态退出。 这是我的方法。 如果是,我应该如何在Unix shell中使用它?当我在bash中编译并运行它时,它只是打印“exit 1”(所以它做了与System.out.println相同的事情,为什么我要使用“err”?)。这里的“标准误差”是什么?