需要WCF架构帮助

时间:2013-03-08 21:06:47

标签: c# wcf architecture wcf-binding wcf-security

我们正计划实施新的软件应用程序,如下所示。

这种架构是否适合用途?

需要注意的事项:

  • 有很多PC
  • 个人电脑有一个WCF客户端,因为它需要将数据上传到 数据库定期。
  • PC有一台服务器,因为终端服务器上的最终用户需要 能够查询电脑获取信息
  • 终端服务器是用户的GUI,因此可以远程连接 到特定的PC询问电脑的信息
  • 我们正在使用下面的basicHttpBinding

我们还考虑了什么?

  • 我们尝试过WCF NetPeerTcpBinding(即P2P),但它不支持 请求 - 回复操作。

  • 我们已经尝试过WCF Duplex,但是在要注意的项目中列出了上面列出的要求,我们最终会在两端都有一个客户端和服务器。

enter image description here

1 个答案:

答案 0 :(得分:2)

我很抱歉,但我基本上不同意你的架构。

  • WCF的设计或适用于请求 - 响应通信以外的任何其他内容。 它的全双工功能不会使您的服务器端向特定客户端发出通信,除非该客户端已经发出与服务器的连接。 这意味着为了与所有客户实现享有盛誉的在线全双工通信 - 您的所有客户都必须维护到服务器的开放端口。

  • 为了实现在线全双工,每台PC拥有双客户端和服务器是向前迈进的一步,因为它将解决每个客户端保持端口开放的问题,但它在安全性方面有缺点,因为它意味着特定PC打开以接收多个连接请求。如果你不小心,可能会发生致命的重入问题。所以,基本上你将保存“端口”以换取架构 可维护性和适用于您的解决方案。

因此,如果您的目标是部署大约200-300台PC,那么您的架构将会成立,但如果您的目标是针对数千台PC的更大部署,那么它将无法实现。