我需要为现有系统设计一个解决方案,该系统需要在多个应用程序和服务之间使用安全的双向通信。目前的环境如下:
我的任务是设计一个应用程序和网络协议:
这是Microsoft环境,客户端更喜欢将C#和.NET用于服务器应用程序。中央系统可以有一个Web服务器(IIS和ASP.NET MVC),但本地服务器无法满足硬件和安全性。所有本地通信都在封闭的网络中。
我的问题是:
HTML5和Websockets以外的本地服务器之间的双向通信是否有更好的解决方案?
哪种网络协议最适合中央网络服务?这在图中以红色圈出。这些是我们正在考虑的协议:
WebSocket:一些开发人员认为,如果Websockets用于HTML5客户端,那么它可以用于本地和中央服务之间的双向通信。这纯粹来自开发工作和维护考虑,但我不相信在本地和中央C#应用程序之间使用它。 HTTPS和使用Web端口以避免打开套接字的能力是另一个优势。
TCP / IP:与上述相同的参数。工程师已经拥有一些TCP / IP经验,可以重用其他应用程序的代码来加速开发。
WCF Duplex:这对我来说很有意义,但增加了一层难以向工程师和管理层出售的复杂性。配置WCF,故障排除也是一个障碍,因为部署必须在每个位置都很快。这曾经是几年前的问题,但我相信WCF配置变得更容易。网络服务应用程序将比网络更多,因此WCF将位于现有组件之上。
任何其他有意义的协议或技术。
答案 0 :(得分:0)
WebSockets对于客户端 - 服务器通信看起来没问题。
如果客户端的Web浏览器本身不支持Web套接字,请注意可以选择(通过您的框架)作为后备的长轮询。 所以我想说你的系统在任何情况下都应该为某种程度的负载做好准备。
对于服务器 - 服务器通信,有使用REST或消息传递的趋势(RabbitMq,Kafka等)