Java - 分布式编程,RMI?

标签 java distributed rmi simulation traffic-simulation

我这里遇到了一个棘手的问题。我的目标是建立一个框架来集成不同的交通模拟模型。这种集成基于模拟之间共享链路连接、链路成本和车辆。

为了进行分布式模拟,我计划有一个“协调器”(星形拓扑)。所有参与的模拟都只需向其注册,并仅与协调器对话。然后协调器协调每次模拟之间各种任务的执行。

分布问题的一个简单示例是当一个模拟“负责”某些对象(例如道路)时。另一个则“负责”其他道路。然而,这些道路是相互连接的(因此,我们需要这些模拟之间的同步,并且需要能够远程交换数据/调用方法)。

我查看了 RMI,认为它可能适合这项任务。 (抽象出必须创建有线信号规则)。

这理智吗?这里的问题是,模拟参与者需要将其部分数据存储集中在“协调器”中,以确保模拟之间的显式同步。此外,一些模拟可能需要其他模拟的组件或方法。 (因此产生了使用 RMI 的想法)。

我的基本方法是让“协调器”运行一个巨大的 RMI 注册表。每次模拟都只需查找注册表中的所有内容,确保每一步都使用正确的对象。

有人对走这条路有什么建议吗?

最佳答案

您可能想查看Hazelcast还。 Hazelcast 是队列、主题、映射、集合、列表、锁定和执行器服务的开源事务、分布式/分区实现。它非常容易使用;只需将 hazelcast.jar 添加到类路径中并开始编码即可。几乎不需要任何配置。

如果您有兴趣以分布式方式执行可运行、可调用任务,请查看分布式执行器服务文档:http://code.google.com/docreader/#p=hazelcast

Hazelcast在 Apache 许可证下发布,并且还提供企业级支持。

关于Java - 分布式编程,RMI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/506911/

相关文章:

java - 如何在 IBatis2 中处理带有 In 子句和空 Java 列表的 SQL 语句?

c++ - 内部分布式时间服务器实现

java - 在 0.0.0.0 上启动自定义 JMX 服务器时出错

java - 如何在Java中进行并行编程?

java - 序列化 Java 8 流

java - 监控负载较重的 Java 应用程序

java - 递归函数中的字符串操作导致堆栈溢出

python - 分布式 Tensorflow 重新加载模型失败

java - 分布式计算应用

java - 详细 rmiregistry - 如何跟踪 rmiregistry 状态?