16.1. Многоуровневые приложения
Говорят, что приложение имеет многоуровневую архитектуру, если оно состоит из физически разделенного программного обеспечения.
Например, если приложение использует СУБД для хранения данных, оно имеет, как минимум, два уровня. Типичный пример двухуровневой архитектуры — бухгалтерская программная система, в которой имеется одна общая база данных, располагающаяся на выделенном сервере и, собственно, программная среда, копия которой устанавливается на каждый компьютер. Программная среда в этом случае выступает клиентом по отношению к СУБД, а так как она реализует не только логику отображения данных, но и обработку данных бухгалтерского учета, то клиент называется «толстым».
В отличие от «толстого», «тонким» клиентом называют клиентское приложение, содержащее, по возможности, только логику отображения данных, не налагающее на аппаратное обеспечение компьютера пользователя больших требований. В случае работы с веб-приложением в роли тонкого клиента выступает браузер.
Архитектура типичного веб-приложения, использующего СУБД в качестве хранилища данных, трехуровневая. Программное обеспечение, соответствующее разным уровням таково:
-
Браузер + клиентская часть веб-приложения (веб-страницы, апплеты, JavaScript и др.).
-
Сервер веб-приложений + серверная логика веб-приложения.
-
СУБД и база данных (включая бизнес-логику, реализованную в самой базе, например, триггеры).
На рисунках ниже приведены схемы двух- и трехуровневых приложений.
Двухуровневая архитектура:
Трехуровневая архитектура:
Достоинства приведенной на схеме трехуровневой архитектуры:
-
Размещение базы данных на выделенном компьютере в сети позволяет организовать одновременную работу с одними и теми же данными многих пользователей.
-
Повышается надежность системы, так как возможно быстрое переключение на резервный сервер (как сервер базы данных, так и сервер веб-приложений). Более того, возможно настроить систему на работу с несколькими серверами одновременно и равномерно распределить нагрузку между ними так, что выход из строя одного из серверов останется незамеченным для пользователей.
-
Повышается безопасность системы, так как в этом случае настройка политик безопасности производится и отслеживается централизовано администраторами системы.
-
Аппаратное обеспечение серверов может быть улучшено, если необходимо увеличить производительность системы.
-
Производительность системы не зависит от аппаратного обеспечения компьютеров пользователей и, следовательно, больших требований к нему не предъявляется.
-
Возможность централизовано обновлять програмное обеспечение, без необходимости действий со стороны пользователей.
К недостаткам можно отнести высокие требования к производительности серверов.
- Раздел 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. Резюме