首页 > 解决方案 > 在不同设备上进行程序间通信的最简洁方法

问题描述

我需要确定分布在多台机器上的多个程序之间的通信方法。数据本身相当简单,由带有一些元数据描述符的可变长度向量组成。

每个程序“类型”都会将数据发送到其他 1 个程序类型,并希望看到它的回复。

给定程序的连接数随时间而变化,并且可以随时添加或删除程序。

程序可能分布在多个处理器上,这些处理器可能使用不同的操作系统,也可能是微处理器。

示例程序结构

我以前没有真正面对过这样一个相互沟通的难题,我不确定最干净的方法是什么。我听说 ROS 可能有用,但它可能不适合 Windows 环境并且学习曲线陡峭。我可以想象在节点之间创建一个数据库,它可以充当一种黑板,但这感觉可能非常低效。如果使用套接字可以提高效率,那么如何管理/维护连接?

我目前的主要开发环境是 Julia,但我可以将数据移植到 C++ 或 Python 上,而不会带来太多不适。

我对想法和学习新事物持开放态度,但我不知道该走哪条路。任何智慧的金块将不胜感激。


根据评论中的要求,以下是一些附加信息:

标签: pythonc++juliacross-platforminterprocess

解决方案


也许看看一些成熟的东西(因此应该能够连接到你最终使用的任何一种语言),比如 Redis 或 RabbitMQ 会是明智的,因为你需要能够与许多不同的网络上的设备。无论哪种方式,都建议使用某种形式的中央集线器来处理其他设备之间的通信。


推荐阅读