Опишу задачу и текущее (проблемное?) решение:
Имеется несколько пользователей на планшетах работающих с общей БД.
В настоящее время пользователи коннектятся к серверу через RemoteDesktop, т.о. имеем центральную БД, принтеры зарегестририванные центрально (каждый пользователь может использовать любой принтер), программа выполняется на сервере (по инстанции на пользовательскую сессию). Используется Windows.
Сами планшеты используют WLAN. И в этом, кажется, большая проблема - при плохом сигнале или при переходе от одного AccessPoint'a на другой сигнал теряется и происходят разнае непонятные вещи.
Симптомы описанные (и сформулированные) пользователями:
-темнеет экран, происходит разрыв сессии
-экран не темнеет, но реакция в самой программе сильно замедляется
-происходят различные ошибки, данные теряются
Моя задача, независимо от описанной проблемы, переписать приложение с нуля, т.е. я волен выбирать архитектуру как мне удобно и как нужно/правильно. Вот только я не имел опыта разработки многоклиентских программ и поэтому не могу разобраться как нужно.
Варианты: -Клиент-Сервер.
Плюс: на планшетах всегда рабочая программа, независимо от соединения. Есть еще +?
Минус: функциональность условная - нет сети = нет БД. Или воротить костыли с локальной БД и синхронизацией. Усложняется конфигурация принтеров.
-дальше использовать RemoteDesktop
Как решить проблему доступности сети? Или хотя бы как сделать эту проблему более user-friendly?
Если и дальше планируется использовать планшеты в движении и при беспроводном подключении, то от RemoteDesktop в любом его проявлении надо уходить, ибо проблемы никуда не исчезнут.
Суть проблемы в том, что WiFi стандарт вообще не предусматривает роуминга как такового, и реализуется роуминг методом хитрых костылей. В результате при переходе с одной точки на другую возможны разрывы связи, и ваше приложение должно уметь их корректно обрабатывать, а RemoteDesktop явно не умеет этого делать.
Поэтому вам нужен либо тонкий клиент, либо браузер, где вы сможете контролировать и корректно обрабатывать таймауты связи с сервером, прозрачно для пользователя.
Если программа используется в ограниченном количестве офисов, и вы можете повлиять на реализацию WiFi в этих офисах, то можно пойти этим путем, улучшить связь у клиентов, не трогая архитектуру приложения и устоявшиеся привычки пользователей.
Aleksej: Я не предлагаю уходить от больших площадей.
На каком оборудовании сделана WiFi сеть? Производитель оборудования, есть ли контроллер.
Очень подозреваю что проблема с разрывами сети связана с аутентификацией на RADIUS, но не факт.
АртемЪ Оборудование Ubiquiti UAP. Roaming как функция включена. По словам техника - покрытие более чем достаточное.
Но пользователи упорно говорят, что вылетает в определенных областях склада.
Постараюсь попасть туда сам и посмотреть вживую.
Aleksej: планшеты, очевидно, плохо поддерживают или явно саботируют роуминг, остаются висеть на АР с дохлым RSSI, вместо того, чтоб переассоциироваться с ближайшим. Обращайтесь к тому, кто разворачивал wifi и требуйте решить проблему, но учтите, что решение может свестись к замене планшетов :(
pi314: планшеты не китайские, но в случае андроида я не уверен что сам андроид умеет роуминг поддерживать. Как в этом можно убедиться?
Если найду программы-анализаторы сигнала - на какие параметры смотреть? RSSI, что еще показательно?
Aleksej: смотрите на список "видимых" АР и с которым из них ассоциирован планшет в момент возникновения на нем проблем. Если моё предположение верно, он будет упорно висеть на каком-нибудь еле-еле видимом вместо того, чтоб переключиться на ближайший. У меня была такая ситуация в продакшене, вылечилось заменой АР. Как промежуточное решение - апп, контролирующая это дело со стороны планшета, но это отвратительный костыль.
АртемЪ: Полагаю что постоянно. Какой может смысл выключать контроллер? И что такое вообще контроллер? Программа? Или головное устройство? pi314: насколько я могу судить по беглому обзору сети - AP стоят не самые дешевые
АртемЪ: имел удовольствие наблюдать процесс зависания вживую. Программы-анализаторы мне установить не дали ("мы все протестировали - роуминг работает"). Анализировал переключение по количеству балок.
Планшет на windows определенно переключался на лучший сигнал при движении - сигнал постепенно падал до двух балок и резко возвращался к пяти.
Планшет на андроид не имел балок (не дискретный индикатор), при движении сигнал падал до уровня ~50% и оставался так, программа реагировала с замедлением вплоть до рассоединения сессии.
Мне показалось вы разбираетесь в беспроводных сетях - что означают каналы? Я заметил что все АР имеют одно имя SSID, но разные каналы.
И еще: анализатор на телефоне показал что сетей там много - может ли это сильно влиять на роуминг и способность быстро переключаться на лучший сигнал?
Aleksej: Какой может быть смысл выключать контроллер в каждом конкретном случае, это не у меня надо спрашивать, а у того кто выключает, или не выключает.ъ
Контроллер это программа управляющая точками доступа.
И кстати при чем тут цена AP?
АртемЪ: pi314 написал что в его случае проблема решилась заменой АР, я лишь хотел сказать что у нас стоят вроде как не самые плохие. Я понимаю что цена не решающий фактор, но относительно показательный.
Про контроллер я спрашивал потому что не знаю как это работает - могут ли АР вообще работать без контроллера. Видимо могут.
Aleksej: Точки доступа работают самостоятельно, и контроллер для работы им нафиг не нужен.
Контроллер, управляющий работой точек может понадобиться только человеку который хочет добиться более-менее приемлемого роуминга в беспроводной сети.
"что означают каналы? Я заметил что все АР имеют одно имя SSID, но разные каналы. "
Каналы это разнесение по соседним частотам.
По уму - соседние точки должны сидеть на максимально удаленных каналах.
Так что один SSID и разные каналы это правильно.
А по поводу проблем - посмотрите как эта ситуация выглядит на контроллере. Можно немного изменить направление антенны и мощность передатчиков, чтобы сигнал быстрей пропадал.
А тот факт что в эфире много сетей - это не столько на роуминг влияет, сколько на общую скорость работы беспроводной сети.
res2001alexxandr а можно подробнее, аргументированнее?
Имел опыт разработки простых asp.net приложений - односложных форм или же не критичной к связи визуализации.
В данном случае все сложнее - процесс ввода данных многошаговый и прерывание посередине процесса добавят проблем.