如何在同一机器上的程序之间进行通信?

时间:2013-04-20 14:35:35

标签: json web-services ipc

我的设置如下:一个主程序(用Python编写)充当检索数据的主应用程序,将其保存到SQLite数据库(然后再进一步处理)。此数据收集在其他程序中,在同一台计算机上运行,称为从属程序

请注意,一次只能运行一个从站,因此主站不需要同时从多个从站检索数据。但是,当一个从站关闭时,另一个从站可以开始向主站发送数据。

此设置的一个重要特征是从属可以用任何编程语言编写,我对它们没有太多控制权。然而,我可以“插入”这些从属程序,以便扩展其功能并将数据从该应用程序发送到主服务器。

发送给主人的数据必须采用“正式”格式,例如键/值对的列表,或类似的。该要求具有一定的灵活性,还取决于当前正在运行的从站。

现在我的问题是:如何在同一台机器上运行程序的实例之间实现通信?我想过 Web服务,但它们看起来有点过分,因为所有都运行在同一台主机上。另一个替代方案可能是通过套接字来传递基于Json的数据,但我还没有对这种方法有太多经验,所以在这种情况下我无法判断它是否符合我的需求。

这两种方法只是我的第一个想法,我愿意接受任何好的解决方案。

我认为有一种“最佳实践”方法如何实现这样的设置,因为我肯定不是第一个有这种要求的人。

任何想法,甚至更好:实践经验,在那? 感谢。

1 个答案:

答案 0 :(得分:0)

流程之间没有跨平台的通信方式,但我认为没有理由不使用tcp套接字。

示例:mongod是MongoDB的守护进程,其他进程只通过普通的tcp套接字与之通信(参见this)。