2013-12-13 35 views
1

我正在开发一个相当复杂的应用程序,我将直接进入设置,以便我可以解释工作流程。通过本地TCP/IP套接字的应用程序之间的通信

  1. 客户端连接到中央服务器(监控,管理和维护)
  2. 本地HTTP Server版本与扭曲的框架(服务1所配置的网络接口,1所管理的设备和1操作界面)
  3. 服务器为无论是从中央服务器或从HTTP服务器(打印,上传和等)在主机上执行的各种命令
  4. 未确认 GUI应用更换操作界面

我想建立的过程和客户端之间的TCP/IP通信(大概2和3将是服务器/客户端混合,因此要实现对数据的查询效果,表演)我的问题是:

这是在应用程序之间进行通信的最佳方式吗?

应用程序的每个实例将通过单一用户仅使用,所以将硬件的要求是什么,如果没有应用程序正在读取/写入大量数据,只有命令和元数据,因为应用程序在单机上运行(所以有权访问文件系统等)?

INFO: 该系统将在一个Debian环境中运行,在低端的硬件(CPU 1Ghz的,256-512MB RAM或类似的东西),该应用将被使用Python

完全建
+0

我知道这个问题可能会因为意见基础/关主题/不具有建设性而关闭 –

+0

我已经读过几次你的问题,我仍然与拓扑混淆。本地HTTP服务器是命令服务器还是那两个独立的实体?你期望有多少客户?你期望的用例是什么? “未确认”是什么意思? – 2013-12-13 20:41:44

+0

未确认意味着GUI可以替换Web界面。本地HTTP服务器与命令服务器不同,此特定设置上的客户端将最多为1-2位操作用户,并且在某些情况下,管理员将连接到应用程序(需要执行特定维护时)。 –

回答

1

看看ZeroMQ

ØMQ(又称ZeroMQ,0MQ,或ZMQ)看起来像一个嵌入式 网络库,但就像一个并发框架。它为您提供穿越各种传输(如 进程内,进程间,TCP和组播)的原子消息的套接字。您可以将套接字 与N对N连接,如扇出,发布 - 订阅,任务分发和 请求回复。它足够快成为集群 产品的面料。其异步I/O模型为您提供可扩展的多核应用程序,构建为异步消息处理任务。它具有 得分的语言API,并可在大多数操作系统上运行。 ØMQ从 iMatix开始,是LGPLv3的开源代码。

+0

对于海报提出的问题,我宁愿避免使用* MQ方法[0MQ,AMQP和类似的方法],它们引入了很大的复杂性,并且适用于特定要求(低延迟,大量消息,路由,广播等)我在这个问题中并没有看到。 –

相关问题