Задать вопрос
Shwed_Berlin
@Shwed_Berlin
.net Software Developer

Какова архитектура многоклиентской программы?

Опишу задачу и текущее (проблемное?) решение:
Имеется несколько пользователей на планшетах работающих с общей БД.
В настоящее время пользователи коннектятся к серверу через RemoteDesktop, т.о. имеем центральную БД, принтеры зарегестририванные центрально (каждый пользователь может использовать любой принтер), программа выполняется на сервере (по инстанции на пользовательскую сессию). Используется Windows.
Сами планшеты используют WLAN. И в этом, кажется, большая проблема - при плохом сигнале или при переходе от одного AccessPoint'a на другой сигнал теряется и происходят разнае непонятные вещи.
Симптомы описанные (и сформулированные) пользователями:
-темнеет экран, происходит разрыв сессии
-экран не темнеет, но реакция в самой программе сильно замедляется
-происходят различные ошибки, данные теряются

Моя задача, независимо от описанной проблемы, переписать приложение с нуля, т.е. я волен выбирать архитектуру как мне удобно и как нужно/правильно. Вот только я не имел опыта разработки многоклиентских программ и поэтому не могу разобраться как нужно.

Варианты:
-Клиент-Сервер.
Плюс: на планшетах всегда рабочая программа, независимо от соединения. Есть еще +?
Минус: функциональность условная - нет сети = нет БД. Или воротить костыли с локальной БД и синхронизацией. Усложняется конфигурация принтеров.

-дальше использовать RemoteDesktop
Как решить проблему доступности сети? Или хотя бы как сделать эту проблему более user-friendly?

-какие еще есть варианты?
  • Вопрос задан
  • 713 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
Jump
@Jump Куратор тега Windows
Системный администратор со стажем.
Если и дальше планируется использовать планшеты в движении и при беспроводном подключении, то от RemoteDesktop в любом его проявлении надо уходить, ибо проблемы никуда не исчезнут.

Суть проблемы в том, что WiFi стандарт вообще не предусматривает роуминга как такового, и реализуется роуминг методом хитрых костылей. В результате при переходе с одной точки на другую возможны разрывы связи, и ваше приложение должно уметь их корректно обрабатывать, а RemoteDesktop явно не умеет этого делать.

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

Если программа используется в ограниченном количестве офисов, и вы можете повлиять на реализацию WiFi в этих офисах, то можно пойти этим путем, улучшить связь у клиентов, не трогая архитектуру приложения и устоявшиеся привычки пользователей.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@res2001
Developer, ex-admin
Делай WEB приложение, браузер и веб-сервер за тебя закроют половину проблем со связью.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы