Распределенное приложение без сохранения состояния
Распределенное приложение без сохранения состояния позволяет легко горизонтальное масштабирование (т.е. добавление большего количества машин с экземплярами приложения в систему).
Без сохранения состояния относится к экземплярам приложения, не поддерживающим информацию о состоянии.Поскольку состояния нет, любой экземпляр приложения будет выдавать один и тот же вывод для данного ввода независимо от того, какой ввод он получил ранее.Поэтому не имеет значения, какой экземпляр отвечает на запрос.
Это значительно упрощает масштабируемость, поскольку нет необходимости поддерживать сеансы, которые «привязаны» к определенным экземплярам.Логика распределения запросов (например, балансировщик нагрузки) может распределять нагрузку на любой экземпляр, не беспокоясь о том, что произошло ранее.Экземпляры можно добавлять или удалять из кластера, не беспокоясь о живых сеансах.
Такие архитектуры обычно поддерживают информацию о состоянии на уровне персистентности систем, что означает, что экземпляры приложения получают свежую информацию о состоянии с уровня персистентности для каждого запроса, который онипроцесс.Это штраф за гибкость масштабирования.
Подключаемая модель безопасности
Модель безопасности определяет, как пользователи имеют право доступа к ресурсам.Примерами моделей безопасности являются списки управления доступом на основе ролей.
Реализация модели безопасности взаимодействует с бизнес-логикой.Прежде чем делать что-то чувствительное, бизнес-логика должна запросить у логики безопасности авторизацию.Сложная бизнес-логика может иметь много мест, где такие проверки должны быть выполнены.Если логика безопасности и бизнес-логика тесно связаны, то есть бизнес-логика напрямую вызывает логику безопасности, трудно изменить модель безопасности.
Подключаемая модель безопасности заменяет слабую связь слабой связью, гдебизнес-логика взаимодействует через интерфейс плагина с моделью безопасности.Поскольку бизнес-логика ничего не знает о внутренностях логики безопасности, логика безопасности может быть заменена без изменения бизнес-логики.
Такой интерфейс плагина часто реализуется как набор обратных вызовов, настраивается в бизнес-логике и используетсяпо бизнес-логике для запроса логики безопасности.