Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我如何知道是使用标准Java网络还是使用Java RMI?_Java_Network Programming_Rmi - Fatal编程技术网

我如何知道是使用标准Java网络还是使用Java RMI?

我如何知道是使用标准Java网络还是使用Java RMI?,java,network-programming,rmi,Java,Network Programming,Rmi,我正在讨论是否应该为我正在开发的应用程序使用JavaRMI或标准java网络 该应用程序将是一个具有心跳传感器和故障保护功能的网络系统。因此,它是一个三层系统,至少有一个DB和java应用程序 因此,如果我的数据库在一台机器上出现故障,我希望第二台机器能够“感知”这一点 我对JavaRMI有点困惑,是否值得学习它 或者,如果我使用标准的Java网络,我可以做与RMI相同的事情?我是说,如果我真的很了解Java网络 谢谢 如今,使用SOAP或REST设置web服务非常容易。使用REST,您可以使用

我正在讨论是否应该为我正在开发的应用程序使用JavaRMI或标准java网络

该应用程序将是一个具有心跳传感器和故障保护功能的网络系统。因此,它是一个三层系统,至少有一个DB和java应用程序

因此,如果我的数据库在一台机器上出现故障,我希望第二台机器能够“感知”这一点

我对JavaRMI有点困惑,是否值得学习它

或者,如果我使用标准的Java网络,我可以做与RMI相同的事情?我是说,如果我真的很了解Java网络


谢谢

如今,使用SOAP或REST设置web服务非常容易。使用REST,您可以使用XML或JSON消息,而不必真正了解所有信息。所有这些类型的服务都可以从.NET代码、PHP或Javascript访问。(嗯……除了在.NET和Java中,SOAP有点痛苦//个人观点)

Spring可以帮助您设置一个服务,并且它的客户端接口非常简单。与bean类和业务方法上的标准注释非常接近,它们定义了接口,Spring承担了繁重的工作。(我说的是SpringWeb服务,而不是SpringRemoting,不过这也行。SpringRemoting并不比RMiIMHO好多少。)

您还可以使用Jersey(JAX-WS)或Jackson(解析JSON)进行远程处理。bean类上的标准注释以及不构建接口的内容。CXF还将执行JAX-WS和JAX-RS。这些是通过远程消息进行通信的建筑服务和客户端的Java标准

另外,还有eclipse工具用于生成远程接口的两侧。所有这些都绑定到某个框架(Axis-2或CXS是一些)。这是一种代码生成的事情

你可能想看看这些,看看哪一个与你看待事物的方式产生共鸣


我知道我更喜欢所有这些,而不是使用RMI。但是我已经很长时间没有直接使用RMI了。

现在,使用SOAP或REST设置web服务非常容易。使用REST,您可以使用XML或JSON消息,而不必真正了解所有信息。所有这些类型的服务都可以从.NET代码、PHP或Javascript访问。(嗯……除了在.NET和Java中,SOAP有点痛苦//个人观点)

Spring可以帮助您设置一个服务,并且它的客户端接口非常简单。与bean类和业务方法上的标准注释非常接近,它们定义了接口,Spring承担了繁重的工作。(我说的是SpringWeb服务,而不是SpringRemoting,不过这也行。SpringRemoting并不比RMiIMHO好多少。)

您还可以使用Jersey(JAX-WS)或Jackson(解析JSON)进行远程处理。bean类上的标准注释以及不构建接口的内容。CXF还将执行JAX-WS和JAX-RS。这些是通过远程消息进行通信的建筑服务和客户端的Java标准

另外,还有eclipse工具用于生成远程接口的两侧。所有这些都绑定到某个框架(Axis-2或CXS是一些)。这是一种代码生成的事情

你可能想看看这些,看看哪一个与你看待事物的方式产生共鸣


我知道我更喜欢所有这些,而不是使用RMI。但是我已经很长时间没有直接使用RMI了。

RMI是比Java中通过套接字类提供的裸TCP/IP支持更高级的协议,您似乎将其称为“Java网络”。如果您的系统只发送心跳,并且只有很少的节点,那么出于简单的原因,您应该选择RMI。由于所有参与者都是JVM,所以不需要任何互操作和额外的库来支持,并且由于参与者的数量有限,不需要考虑任何花哨的东西。与java中的裸TCP/IP支持相比,

< P> RMI是更高级的协议,而您似乎称之为“java网络”。如果您的系统只发送心跳,并且只有很少的节点,那么出于简单的原因,您应该选择RMI。由于所有参与者都是JVM,所以不需要任何互操作和额外的库来支持这一点,因为参与者的数量是有限的,所以不需要考虑任何幻想。

如果您使用RMI,则与其他语言的互操作性告别。你真的想走那条路线吗?通常,RMI是通过TCP工作的。如果您对使用TCP或任何其他框架感到满意,请随意使用它。RMI基本上是序列化+代理+对象寄存器+TCP。@如果你说“被高估了很多”,我说“被低估了很多”。我认为没有理由使用RMI,因为您可以使用更标准的方法(例如JSON)传递同样多的信息(如果不是更多的话)。如果您想将Java对象从一台机器传输到另一台机器,那么使用RMI解决方案要简单得多。如果没有,那么从长远来看,
Socket
解决方案可能不会那么痛苦(一旦您启动并运行了协议)@Adel很多事情都可以工作。我说的是JSON:您只需要在所有端上都有一个JSON解析库,裸套接字就可以满足您的需要。更重要的是,它只是纯文本,因此很容易调试。如果您使用RMI,您将告别与其他语言的互操作性。。。你真的想走那条路线吗?通常,RMI是通过TCP工作的。如果您对使用TCP或任何其他框架感到满意,请随意使用它。RMI基本上是序列化+代理+对象寄存器+TCP。@如果你说“被高估了很多”,我说“被低估了很多”。我认为没有理由使用RMI,因为您可以使用更标准的方法(例如JSON)传递同样多的信息(如果不是更多的话)。如果您想将Java对象从一台机器传输到另一台机器,那么使用RMI解决方案要简单得多。如果不是,那么一个
Socket
解决方案可能不会那么痛苦