Как спроектировать аутентификацию в толстом клиенте, чтобы быть отказоустойчивым? - PullRequest
6 голосов
/ 16 июня 2010

Вот пример использования:

У меня есть настольное приложение (созданное с использованием Eclipse RCP), которое при запуске открывает диалоговое окно с полями «Имя пользователя» и «Пароль».Как только конечный пользователь вводит свои имя пользователя и пароль, происходит соединение с сервером (пружинный удаленный сервлет, с клиентской стороной, являющейся пружинным httpclient: аналогично подходит здесь .)и проверка подлинности выполняется на стороне сервера.

Несколько вопросов, связанных с вышеупомянутым сценарием:

  1. Если бы эта служба аутентификации была закрыта, каков был бы лучший способ справиться с дальнейшими процедурами?Аутентификация - это то, с чем я не могу покончить.Будет ли хорошей идеей запустить настольный клиент в «ограниченном» режиме?Например, важные функции / меню / представления будут отключены, остальная часть приложения будет доступна?
  2. Должна ли я иметь резервную службу аутентификации, работающую на другом компьютере и работающую в качестве резервной копии?
  3. Каковы общие рекомендации в этом сценарии?Я помню, как читал о механизмах Google и о том, как это позволит вам редактировать и делать что-то в автономном режиме - нужно ли что-то подобное разрабатывать?Ценю вашу помощь.

Ответы [ 4 ]

5 голосов
/ 16 июня 2010

Простой ответ: не позволяйте сервису аутентификации выходить из строя!

Убедитесь, что ваша служба аутентификации работает в кластерной среде с балансировкой нагрузки за виртуальным IP-адресом.Таким образом, вы можете избежать простоев в случае отказа одного из серверов.Это относится не только к самой службе, но и к любым источникам данных, на которые она опирается.

Очевидно, что ни одна система не является полностью отказоустойчивой, но вы должны иметь возможность довести время безотказной работы до 100%нет необходимости создавать «ограниченный» режим для настольного клиента.

3 голосов
/ 16 июня 2010

Должна ли я иметь резервную службу аутентификации, работающую на другом компьютере, работающую в качестве резервной копии?

Да! Это было бы лучшим решением. Проблема должна решаться с ИМО на уровне сети / инфраструктуры, а не на клиенте.

Если есть полезные части приложения, которые все еще могут функционировать без доступа к сети (например, маршрутизатор выключен, NIC отключается), вариант 1 может быть рассмотрен. Сместите объем работы, необходимый для оценки вероятности и важности вашего приложения.

2 голосов
/ 16 июня 2010

Если бы эта служба аутентификации была закрыта, каков был бы лучший способ справиться с дальнейшими процедурами?Аутентификация - это то, с чем я не могу покончить.Будет ли хорошей идеей запустить настольный клиент в «ограниченном» режиме?Например, важные функции / меню / представления будут отключены, остальная часть приложения будет доступна?

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

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

1 голос
/ 16 июня 2010
  1. Если бы эта служба аутентификации была закрыта, каков был бы лучший способ провести дальнейшие разбирательства?Аутентификация - это то, с чем я не могу покончить.Будет ли хорошей идеей запустить настольный клиент в «ограниченном» режиме?Например, важные функции / меню / представления будут отключены, остальная часть приложения будет доступна?

Является ли клиент полезным без сервера?Пользователь может что-то сделать?Если да, хотите ли вы, чтобы пользователь мог выполнять эти действия без аутентификации?Это ответ на ваш вопрос.

Непонятно, что вы имеете в виду, когда говорите: «Аутентификация - это то, с чем я не могу отказаться».что ты имеешь в виду.Вы имеете в виду, что есть какие-то функции, которые требуют аутентификации пользователя, или это требование, наложенное кем-то другим, или?(Почему ты не можешь покончить с этим?)

Должна ли я иметь резервную службу аутентификации, работающую на другом компьютере, работающую в качестве резервной копии?

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

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

Каковы основные передовые практики в этом сценарии?Я помню, как читал о Google Gears и о том, как он позволит вам редактировать и делать что-то в автономном режиме - нужно ли что-то подобное разрабатывать?

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

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