Автообнаружение удаленного сервера. Трансляция или нет?

У меня есть клиент-серверное приложение, которое взаимодействует с удаленным доступом .Net. Мне нужно, чтобы мои клиенты могли найти сервер (ы) в сети, не требуя настройки на стороне клиента.

Насколько я знаю, поддержки удаленного доступа в удаленном взаимодействии нет. Я готов реализовать решение UDP, где клиенты смогут находить серверы с помощью широковещательных сообщений.

Я хочу услышать коллективную ТАКУЮ мудрость, прежде чем идти вперед. Это лучший способ? Любые другие предложения?

22.08.2008 13:22:38
5 ОТВЕТОВ
РЕШЕНИЕ

Я рассмотрел как SSDP, так и UPnP для этого типа функциональности, но я бы порекомендовал использовать собственное многоадресное решение UDP . По сути, многоадресная передача очень похожа на широковещательную рассылку, но связываются только с машинами, которые присоединились к многоадресной группе (т. Е. Запросили широковещательную рассылку).

ИМХО, SSDP и UPnP и раздуты, и слишком сложны для обнаружения ресурсов ... но эй, это стандарт. ;)

4
2.10.2008 01:01:22

Лучшее решение, которое я нашел в своей работе по удаленному взаимодействию, состояло в том, чтобы сохранить список серверов в конфигурационном файле на клиентских системах и сделать его обновляемым. Не самый простой в обслуживании, но быстрый и без вещания.

0
22.08.2008 13:36:53
У меня уже есть конфигурационное решение на стороне клиента. Это требование неприкосновенности недавно упало мне на колени. По сути, нам необходимо развернуть огромное количество манекенов для конечных пользователей с минимальным административным вмешательством. В любом случае, спасибо.
Ishmaeel 7.09.2008 19:49:00

Похоже, что вам нужен простой протокол обнаружения служб или SSDP. Это реализовано в Windows как часть поддержки Microsoft Universal Plug and Play . Поскольку это протокол промышленного стандарта, это хорошая ставка. Например, если вы хотите иметь дело с брандмауэрами или другими проблемами, это будет выяснено другими вместо того, чтобы вам приходилось выбирать собственное решение.

Поскольку вы говорите .NET, я предполагаю, что вы находитесь на Windows. Есть довольно старый документ (2001), описывающий API в стиле C и COM API для Windows, озаглавленный Поддержка клиентов Universal Plug and Play (UPnP) . API-интерфейсы COM предоставляются UPNP.DLL, а API-интерфейсы в стиле C для SSDP - SSDPAPI.DLL.

В API , COM-стиль для UPNP , вероятно , ваш лучший выбор. Поскольку C # может обернуть COM-объекты для вас и обрабатывать взаимодействие. Я не смог найти места, где этот API был портирован на C # или .NET Framework изначально.

1
1.10.2008 22:19:32

Вы могли бы также рассмотреть Bonjour Apple , который является их реализацией Zeroconf . Он доступен для Mac, ПК и Linux / BSD.

1
2.10.2008 01:13:32

Мое многоадресное решение UDP кажется ненадежным из-за недавнего обновления MS.

0
25.03.2009 06:43:42