2012-12-24 41 views
1

我用C/C++编写了几个定制的Unix程序来解析入站数据文件并将记录插入到数据库中。我想让客户有能力从一台或多台Windows PC监控这些程序的状态。在这个时代,最好的方式是在两者之间进行沟通?当前,我曾经通过在两台机器上编写一组专用的客户端/服务器TCP/IP套接字级程序来完成这种工作,使用本地协议来请求程序状态并生成响应。 Windows方面每分钟都会ping Unix,而Unix方面会回复各种记录等待处理,当天处理的记录,MTD和YTD(主要是指定目录中的简单文件计数,还包括数据库查找) 。 Windows方面也可以告诉Unix方面重新启动,或者将有问题的记录移到“保留”区域......这类事情。双方都包括一个专门的“父母”流程,以确保所有儿童流程继续运行,或者如果他们死亡将重新启动流程。如何从Windows监视/与Unix程序进行交互?

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

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

谢谢你的时间!

回答

0

RabbitMQ(一implementation of AMQP)将是一个很好的,很容易对实施你的问题的解决方案。

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

What can RabbitMQ do for you? [综述摘录】

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

你也许会想数据传输的,非阻塞操作或推 通知。或者您想要使用发布/订阅,异步处理或工作队列。所有这些都是模式,并且它们构成消息的部分 。

RabbitMQ是一个消息传递代理 - 消息传递的中介。它 为您的应用程序提供了一个共同的平台来发送和接收 消息,并且您的消息是一个安全的地方,直到收到。

+0

您好,感谢您的快速反应。在第一次腮红RabbitMQ似乎相当涉及...我希望有点轻。该项目是内部的,但处理医疗数据(和病人),所以我赞赏它的健壮性,但我会继续寻找。 –

+0

这可能是我曾经使用过的最简单的服务器。我在几个月前对其进行了原型设计,以确定它是否会支持我们的集成架构。我从三个小时内只从同事那里听到关于RabbitMQ的工作代码。这包括下载,安装和“配置”RabbitMQ,Erlang并编写两个.NET客户端来发送和接收消息。 –

相关问题