16.2. Многослойные приложения
Понятие многослойного приложения связано с внутренней структурой программного кода. При проектировании приложения стараются выделить основные слои — группы взаимосвязанных классов, которые можно рассматривать как самостоятельные компоненты. Слой слабо связан с другими слоями через стандартизированное API и поэтому относительно легко может быть обновлен.
Рассмотрим типичные слои, встречающиеся в веб-приложениях:
-
Слой пользовательского интерфейса (или презентационный), включает в себя статические и динамические веб-страницы, вспомогательные классы и библиотеки, используемые для обработки запросов и генерации веб-страниц.
-
Слой другого внешнего интерфейса (поддержка внешнего протокола, помимо графического интерфейса пользователя, для предоставления сервисов приложения).
-
Сервисный слой, задачами которого являются предоставление функциональности приложения в зависимости от типа интерфейса, используемого клиентом, а также вмещение логики, не принадлежащей концептуально слою модели. Зачастую объединяется в один слой с моделью.
-
Слой модели, включающий в себя абстракцию данных предметной области и бизнес-логику приложения.
-
Слой доступа к базе данных, содержащий классы, инкапсулирующие код работы с базой данных.
-
Слой ведения журналов (логов).
-
Слой проверки прав доступа к тому или иной функциональности системы и др.
Изобразим все вышеперечисленные слои в виде схемы (стрелками обозначены взаимодействия между слоями):
Многослойная организация кода приложения позволяет независимо разрабатывать и тестировать, а также использовать уже существующие компоненты и библиотеки в качестве слоев, позволяет упорядочить код приложения так, что его легко поддерживать благодаря структуризации и уменьшению взаимосвязей в коде.
- Раздел 16. Многоуровневые и многослойные приложения. Шаблон проектирования Модель-Представление-Контроллер
- 16.1. Многоуровневые приложения
- 16.2. Многослойные приложения
- 16.3. Шаблон проектирования Модель-Представление-Контроллер
- 16.4. Реализация шаблона Модель-Представление-Контроллер в веб-приложениях
- Раздел 17. Базы данных в веб-приложениях
- 17.1. Основные понятия баз данных
- 17.2. Системы управления базами данных
- 17.3. Язык запросов sql
- Транзакции
- 17.4. Доступ к базам данных из Java
- Пример: база данных студентов
- Поддержка транзакций
- 17.5. Объектно-реляционная проекция
- Лекция 18. Безопасность Интернет-приложений
- 18.1. Аутентификация и авторизация
- 18.2. Понятие безопасности Интернет-приложений
- 18.3. Классы атак сетевого уровня Сниффинг пакетов
- Подмена ip-адреса
- Отказ в обслуживании
- Сетевая разведка
- 18.4. Криптографические технологии
- 18.5. Уязвимости уровня приложений
- Уязвимости системы аутентификации
- Уязвимости системы авторизации
- Атаки на стороне клиента
- Выполнение кода на сервере
- Разглашение информации
- Злоупотребление функциональными возможностями
- Наиболее распространенные уязвимости
- 18.6. Резюме