Разработка многоуровневых архитектур

Вопрос 2

Клиент-серверные приложения еще называют двухуровневыми, так как клиент взаимодействует с сервером непосредственно. Обычно двухуровневые архитектуры легко реализуемы, но имеют проблемы масштабируемости. В прошлом разработчикам часто приходилось использовать многоуровневые архитектуры следующим образом. Приложение исполнялось на одном компьютере. Кто-то решал, что оно должно стать распределенным. Например, из-за намерения поддерживать более одного клиента, ограничить доступ к ресурсу или использовать большие вычислительные возможности одного мощного компьютера. Как правило, первый прототип — двухуровневый; он работал отлично и двухуровневое решение принималось. Но по мере увеличения числа клиентов скорость работы немного падала. Если клиентов становилось еще больше, система полностью останавливалась. Проблему пытались решить путем модернизации аппаратных средств сервера, но этот вариант был дорогостоящим и лишь отсрочивал решение главной проблемы.

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

Логическое разделение функций системы дает преимущества даже тогда, когда более одного уровня многоуровневой системы находится на одном и том же компьютере. Разработчики или администраторы получают возможность работать с разными уровнями по отдельности, удалять их совсем или переносить на другие машины в соответствии с новыми требованиями масштабируемости. Вот почему трехуровневые (или по-настоящему многоуровневые) архитектуры оптимальны с точки зрения как масштабируемости, так и гибкости поддержки и развертывания программных систем.

Пример трёхуровневой архитектуры.

В компьютерных технологиях трёхуровневая архитектура, синоним трёхзвенная архитектура (англ. three-tier или Multitier architecture) предполагает наличие следующих компонентов приложения: клиентское приложение (обычно говорят «тонкий клиент» или терминал), подключенное к серверу приложений, который в свою очередь подключен к серверу базы данных.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: