【发布时间】:2011-09-10 05:43:46
【问题描述】:
您可能会想,为什么要拥有一个既可远程又可序列化的对象。好吧,让我给你一些背景。
我正在构建一个空中交通管制系统(学校项目),它是分布式的,因此每个管制区都在自己的服务器上运行并与其他管制区通信。每个控制区都跟踪自己的飞机。
当一架飞机(在控制区 A 中飞行)在其边界附近 100 公里处时,它会作为远程对象传递到它附近的控制区(控制区 B)。这样控制区 B 可以看到飞机在哪里(通过定期询问它的位置),而它仍然由控制区 A 控制。
但是当飞机越过控制区 A 和 B 之间的边界时,控制区 B 应该跟踪飞机而不是控制区 A。所以我们想要序列化飞机并将其传递给 controlZone B。这就是我们的问题所在.
我可以使飞机远程和可序列化吗?
编辑:另外,我可以使用远程方法来复制飞机所需的字段,但我更喜欢序列化它。
【问题讨论】:
-
如果飞机是可序列化的,为什么不把它传给离它一定距离的 Controlzone X,我不认为它也需要远程
-
我需要它的位置每秒 20 次,我不想向 Controlzone A 询问序列化对象 20 次..
-
问题是,RMI 系统应该如何决定何时序列化对象(即复制它)以及何时将其作为远程引用传递?
-
您可以从 ControlZone A 请求一次,然后 A 和 B 都可以跟踪它的运动,直到它完全穿过 B。
-
这行不通,因为飞机在 A 区时由 A 控制。所以如果我只是离开副本@B,它不会移动或改变方向。
标签: java serialization rmi