通过网络在应用程序之间进行通信

Communicate between applications over the network

本文关键字:通信 之间 应用程序 网络      更新时间:2023-10-16

在我们的项目中,我们有许多程序在计算机内部和内部网络上相互通信。为了解决这个问题,我们今天使用COM/DCOM。然而,我们认为DCOM太复杂了。如何为每个版本的Windows配置安全设置更改。

因此,我们正在寻找一种协议,该协议能够在不同Windows计算机上的不同程序之间进行通信,并且不会像DCOM那样有太多开销。

程序用C++/MFC和C#编写

安全性并不重要,因为系统运行在一个完全脱离其他网络的小型本地网络上。

如果您需要有保证的消息传递和事务支持,最好的选择是使用任何消息传递子系统。如果您完全确定您的所有系统都将在Windows计算机上运行-MSMQ是您的选择。它可以从Windows组件安装程序中轻松安装。如果您希望某些节点在其他操作系统上工作,请潜伏更多关于RabbitMQ的信息。可以使用各种消息传递子系统,即IBM MQ或Tibco消息传递。

如上所述,我同意MassTransit可能是使用MSMQ的一个很好的选择,但需要遵循一些初步的学习和体系结构方法。开源且免费使用。NServiceBus也是一样,可能更精致,但它不是免费使用的。对我来说很贵。

如果您决定使用RabbitMQ,请查看EasyNetQ包装器。

但是,如果您不需要保证应用程序之间的交付,为什么不使用MVC4使用REST服务呢。它的设置速度要快得多,您将能够轻松支持其他平台客户端,如iOS或Android设备。

为什么不使用NServiceBus或MassTransit?它们都可以使用MSMQ作为传输(在任何版本的Windows上都很容易启用)。

有了这样的工具(或者在MSMQ上使用自己的包装器),您将能够通过发送消息和订阅消息来自然地进行通信,这使您的系统组件很好地解耦。

或者,您可以使用RabbitMQ(如果您的目标是高端性能,甚至可以使用ZeroMQ),它们都绑定了几乎任何流行的编程语言,因此您的系统可能有用不同语言编写并在不同操作系统上工作的组件。

当你考虑以下选项时,一定要看看ZeroMQ:)