Модные слова в документе архитектуры - PullRequest
1 голос
/ 03 ноября 2011

В архитектурном документе нашего приложения есть пара модных слов, с которыми я не могу интуитивно относиться

  1. Распространяемое приложение без сохранения состояния

  2. Подключаемая модель безопасности

Я могу понять, что означает распределенное, но что значит быть не имеющим состояния? Что подразумевается под распространяемым приложением без сохранения состояния? Можете ли вы привести пример такого приложения?

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

Ответы [ 2 ]

6 голосов
/ 04 ноября 2011

Распределенное приложение без сохранения состояния

Распределенное приложение без сохранения состояния позволяет легко горизонтальное масштабирование (т.е. добавление большего количества машин с экземплярами приложения в систему).

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

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

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

Подключаемая модель безопасности

Модель безопасности определяет, как пользователи имеют право доступа к ресурсам.Примерами моделей безопасности являются списки управления доступом на основе ролей.

Реализация модели безопасности взаимодействует с бизнес-логикой.Прежде чем делать что-то чувствительное, бизнес-логика должна запросить у логики безопасности авторизацию.Сложная бизнес-логика может иметь много мест, где такие проверки должны быть выполнены.Если логика безопасности и бизнес-логика тесно связаны, то есть бизнес-логика напрямую вызывает логику безопасности, трудно изменить модель безопасности.

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

Такой интерфейс плагина часто реализуется как набор обратных вызовов, настраивается в бизнес-логике и используетсяпо бизнес-логике для запроса логики безопасности.

1 голос
/ 03 ноября 2011

С подключаемой моделью безопасности (по крайней мере, с той, с которой я знаком), конечный пользователь получает возможность настроить, какие методы безопасности используются для приложения. Например, конечный пользователь может выбрать использование стандартного метода имени пользователя / пароля, либо смарт-карт, либо сканирования сетчатки глаза, либо некоторой комбинации вышеперечисленного. Он «подключаемый», потому что поставщик, предоставляющий механизм безопасности (устройство чтения смарт-карт или что-то еще), предоставляет некоторое программное обеспечение для подключения к инфраструктуре аутентификации.

Некоторые примеры см. В подключаемых модулях аутентификации Linux (PAM) или javax.security.auth.login Java-пакете.

...