独立设备上最干净的程序间通信方法

Cleanest method of inter-program communication on separate devices

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

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

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

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

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

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

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


根据评论中的要求,这里有一些附加信息:

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