客户端 - 服务器:如果客户端向服务器宣布他们的存在,然后服务器接管,它仍然是客户端服务器,还是P2P?

时间:2009-02-12 00:30:12

标签: .net wcf architecture client-server distributed

问候读者! 所以我正在尝试开发一个客户端服务器系统..由于我之前没有设计过客户端服务器系统,我想我会发一个问题,看看专家们在这里说些什么。

要求: .NET 3.5 WCF 至少2台电脑,Master和Slave。

用例是一个测试环境,其中slave从主服务器的请求运行测试。

问题: 我希望从属设备找到并连接到主设备,然后主设备接受控制,并且是启动测试运行的设备。奴隶还会制作进度报告:新的测试数据,意外事件等。

我感到困惑的部分是,如果奴隶发起与主人的联系,这不是让他成为主人吗?

这是否意味着我需要slave和master上的servicehosts以便它们可以启动活动?

4 个答案:

答案 0 :(得分:4)

答案 1 :(得分:0)

不要混淆客户端/服务器和主/从。主控制操作,但服务器侦听连接。

如果您的客户端(从属服务器)正在启动所有联系,那么主服务器上您需要的只是监听这些请求(Web服务等)和处理系统。

答案 2 :(得分:0)

我不知道为什么你的问题得到了投票,对我来说似乎没问题:)

如果我是你,我可能倾向于使用netMsmqBinding(我喜欢队列!)。主设备可以通过将消息放在MSMQ队列上来向从设备发送请求,从设备可以通过MSMQ将状态报告发送回主设备。这样两个进程可以独立工作,你不必担心跟上另一个进程(除非一个人完全陷入困境。)

为此,您需要在两个进程中都使用ServiceHost。主服务器需要托管netMsmq服务,也需要托管服务器。每个人还需要一个客户端绑定来发送消息。

如果您想要更多并行处理,这还允许您扩展从属(或主控)的数量。 (所有从站都可以将消息从同一队列中拉出来。)

只是一个想法。

答案 3 :(得分:0)

查看DuplexContracts,它可以让您了解可以呼叫客户的方法。 WCF中还有事件处理,但它需要比普通.NET事件更多的工作。