
Трехуровневая архитектура
Необходимость масштабируемости систем стала непреодолимым барьером для традиционной двухуровневой архитектуры "клиент/сервер". В результате этого на клиентской стороне четко обозначились две указанные ниже проблемы, препятствующие достижению истинной масштабируемости приложений: - Для эффективной работы "толстого" клиента требуются значительные вычислительные ресурсы, включая дисковое пространство, оперативную память и мощность центрального процессора. - Значительные накладные расходы на администрирование клиентской части приложений.
В 1995 году появился новый вариант модели традиционной двухуровневой архитектуры "клиент/сервер", который был призван решить проблемы корпоративной масштабируемости. В этой новой архитектуре предлагались три уровня программного обеспечения, каждый из которых может функционировать на разных платформах (Рис. 2). 1. Уровень пользовательского интерфейса, который располагается на компьютере конечного пользователя (клиент). 2. Уровень бизнес-логики и обработки данных. Этот промежуточный уровень располагается на сервере и часто называется сервером приложения. 3. СУБД, в которой хранятся данные, необходимые для функционирования промежуточного уровня. Этот уровень может выполняться на отдельном сервере базы данных.
Клиент отвечает только за пользовательский интерфейс и, возможно, выполняет некоторую очень простую логическую обработку данных, например проверку корректности ввода данных. Ограниченный подобным функциональным набором клиент получил название "тонкого" клиента. Основная бизцес-логика приложения теперь находится на собственном выделенном уровне, который физически связан с клиентом и сервером базы данных посредством локальной (Local Area Network) или глобальной (Wide Area Network) вычислительной сети. При этом предполагается, что один сервер приложений может обслуживать множество клиентов.
Трехуровневая архитектура "клиент/сервер" имеет многие преимущества перед одно- и двухуровневой моделями. Ниже перечислены некоторые их них: - Для "тонкого" клиента требуется менее дорогостоящее аппаратное обеспечение. - Централизация бизнес-логики для многих конечных пользователей на одном сервере приложения и, как следствие, централизация сопровождения приложения. Благодаря этому исключается необходимость развертывания программного обеспечения на множестве компьютеров, что представляет собой одну из самых сложных задач в двухуровневой модели "клиент/сервер". - Дополнительная модульность упрощает модификацию или замену программного обеспечения каждого уровня без оказания влияния на остальные уровни. - Отделение основной бизнес-логики приложения от функций базы данных упрощает задачу равномерного распределения нагрузки.
Дополнительное преимущество заключается в том, что трехуровневая архитектура довольно естественно отображается на среду WWW, где Браузер играет роль "тонкого" клиента, а веб-сервер - сервера приложений. Трехуровневая архитектура может быть расширена до N-уровневой архитектуры с дополнительными уровнями, которые позволяют повысить гибкость и масштабируемость создаваемых приложений. Например, промежуточный уровень в трехуровневой архитектуре может быть расщеплен на два уровня, один из которых может выполнять задачи обычного веб-сервера, а другой - типичного сервера приложений.