如何编写Java RMI回调或RMI监听器或双向RMI。

3

我正在编写一个RMI应用程序。

我能够执行RMI。数据通过RMI在客户端和服务器之间传输。

客户端应始终处于接收或更新服务器端数据的状态。

是否可以有一个监听器,可以从服务器传输或通知数据更新/修改到客户端。 我的意思是每当数据在服务器端更新/修改时,客户端应自动更新。 请告诉我,如果存在任何可用于此任务的RMI Call列表。

另外,在执行RMI时需要遵循哪些安全标准?

如何通过客户端更新服务器端对象? 如果我需要更新服务器端实例,我可以使用客户端进行更新吗?

请指导我如何实现这一点。

2个回答

1

RMI回调与RMI服务器对象没有区别,只是它是从客户端而不是服务器导出的。

然而,由于客户端防火墙的存在,这通常是一种不可行的架构。并且使用远程回调作为监听器会带来重大开销,使其在局域网内也通常不可行。你真的不想这样做。

你问题的最后部分实际上是关于如何编写远程方法调用,你应该参考Oracle RMI教程。


谢谢您的回复。是否有RMI双向通信的示例可用?此外,我的要求是不使用任何服务器,我必须使用纯Java来实现这个概念,否则我将使用WebSphere中的JMS。请建议一些好的网站或好的示例来实现这一点。提前致谢。 - VelNaga
任何远程对象都是服务器,因此它运行的主机也是服务器主机。询问示例表明您实际上未阅读我的答案。 - user207421

0
我在开发一个类似的服务器端应用程序。我们处理的方式是,客户端与服务器之间的通信是同步的,并通过RMI(通过HTTP)进行。然而,从服务器发送到客户端的响应是通过JMS消息队列发送的。每个客户端都有一个专用队列,客户端订阅该队列。在客户端登录时创建队列,在注销时销毁队列。这样,来自服务器的客户端响应具有异步性质。客户端的响应能力也得到提高。如果服务器响应是同步的,客户端可能会出现冻结的情况。

谢谢您的回答。我会看一下JMS。是否可以为RMI编写监听器或回调函数? - VelNaga

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接