Клиент-сервер: если клиенты объявляют о своем присутствии на сервере, а затем сервер вступает во владение, это все еще клиентский сервер или это P2P? - PullRequest
0 голосов
/ 12 февраля 2009

Приветствую читателей! Поэтому я пытаюсь разработать систему клиент-сервер. Так как я раньше не проектировал систему клиент-сервер, я подумал, что напишу вопрос и посмотрю, что скажут здесь эксперты.

Требования: .NET 3.5 WCF минимум 2 компьютера, Master и Slave.

Вариант использования - это среда тестирования, в которой ведомое устройство запускает тесты по запросу мастера.

Вопросы: Я бы предпочел, чтобы подчиненные находили и подключались к мастеру, а затем мастер берет на себя управление и является тем, который инициирует тесты, которые должны быть выполнены. Ведомое устройство также создает отчеты о ходе работ: новые данные испытаний, неожиданные события и т. Д.

Часть, в которой я запутался, заключается в том, что если раб инициирует контакт с хозяином, разве это не делает его хозяином?

Значит ли это, что мне нужны сервис-хосты как на ведомом, так и на главном, чтобы они могли инициировать действия?

Ответы [ 4 ]

4 голосов
/ 13 февраля 2009

Я решил ответить на этот вопрос в сообщении в блоге:

http://dotmad.net/blog/2009/02/the-role-ofclients-and-services-in-wcf

0 голосов
/ 20 февраля 2009

Ознакомьтесь с DuplexContracts, который позволит вам узнать методы, которые вы можете вызывать у своих клиентов. В WCF также есть обработка событий, хотя она требует немного больше работы, чем обычные события .NET.

0 голосов
/ 12 февраля 2009

Я не знаю, почему за ваш вопрос проголосовали, мне кажется, это нормально:)

Если бы я был тобой, я бы был склонен использовать netMsmqBinding (я люблю очереди!). Ведущий может отправлять запросы подчиненному, помещая сообщения в очередь MSMQ, и подчиненный может отправлять отчеты о состоянии обратно ведущему через MSMQ. Таким образом, два процесса могут работать независимо друг от друга, и вам не придется беспокоиться о том, что один будет идти в ногу с другим (если только один полностью не увязнет).

Для этого вам понадобится ServiceHost в обоих процессах. Ведущий должен разместить службу netMsmq, а также ведомый. Каждому из них также потребуется привязка клиента для отправки сообщений.

Это также позволит вам уменьшить количество ведомых (или ведущих) устройств, если вы хотите больше параллельной обработки. (Все ведомые могут просто извлекать сообщения из одной и той же очереди).

Просто мысль.

0 голосов
/ 12 февраля 2009

Клиент / сервер и ведущий / ведомый не следует путать. Мастер контролирует действия, но Сервер прослушивает соединения.

Если ваши клиенты (подчиненные) инициируют все контакты, все, что вам нужно на Master, - это что-то, что слушает эти запросы (веб-сервис и т. Д.) И систему обработки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...