如何从Windows监控/与Unix程序交互?

时间:2012-12-24 18:00:40

标签: windows unix communication monitor

我用C / C ++编写了几个定制用途的Unix程序来解析入站数据文件并将记录插入数据库。我想让客户能够从一台或多台Windows PC监控这些程序的状态。在这个时代,两者之间进行沟通的最佳方式是什么?

在当天,我曾经通过在两台机器上编写多组专用客户端/服务器TCP / IP套接字级程序来做这种事情,使用自行开发的协议来请求程序状态并生成响应。 Windows方面每隔一分钟就会对Unix端进行ping操作,并且Unix端会回复各种等待处理的记录,当天处理的记录,MTD和YTD(大多数是给定目录中的简单文件计数,还有数据库查找) 。 Windows方面也可以告诉Unix方面重新启动,或者将有问题的记录移动到“保留”区域......那样的事情。双方都包括一个专门的“父母”程序,以确保所有子进程继续运行,或者如果他们死亡将重新启动它们。

但那是在80年代和90年代初期。是否有更新,更好,更可靠的技术在这个时代基本上做同样的事情?我的专长是C / C ++ / C#,但我可以通过一个很好的教程实现一些基于Web的东西。此外,我还想坚持使用自定义代码或免费/开源解决方案。

我的手写TCP / IP客户端/服务器方法对于这种情况仍然是最好的吗?

谢谢你的时间!

1 个答案:

答案 0 :(得分:0)

RabbitMQimplementation of AMQP)对您的问题来说是一个很好且相当容易实施的解决方案。

您可以在platform of your choicethere are many client libraries, including Java and .NET上安装服务器,只需几行代码即可发布消息。

What can RabbitMQ do for you? [概述摘录]

  

Messaging使软件应用程序能够连接和扩展。   应用程序可以相互连接,作为更大的组件   应用程序,或用户设备和数据。消息是异步的,   通过分离发送和接收数据来解耦应用程序。

     

您可能正在考虑数据传输,非阻塞操作或推送   通知。或者您想使用发布/订阅,异步   处理或工作队列。所有这些都是模式,它们构成了一部分   消息传递。

     

RabbitMQ是一个消息传递代理 - 消息传递的中介。它   为您的应用程序提供一个通用的发送和接收平台   消息和您的消息是一个安全的住所,直到收到。