Древовидная архитектура (она же трехуровневая) представляет систему программирования, согласно которой программный комплекс состоит из трех разноуровневых компонентов.

Древовидная архитектура (она же трехуровневая) представляет систему программирования, согласно которой программный комплекс состоит из трех разноуровневых компонентов, являющихся независимыми модулями и чаще всего созданными на разных платформах.

Первый, простейший уровень – пользовательский интерфейс (терминал, «тонкий клиент», клиентское приложение), второй — сервер приложений, к которому подключается пользовательский интерфейс (уровень бизнес-логики и бизнес-правил), и третий уровень – уровень доступа к данным (сервер базы данных, с которым работает только сервер приложений).

Такая схема родственна клиент-серверной архитектуре, но имеет некоторые существенные отличия. Первый клиентский уровень не имеет прямых связей с базой данных, что обеспечивает ее безопасность, и работает преимущественно с простейшими элементами бизнес-логики. К таковым можно отнести простые операции с данными, проверку вводимых значений на соответствие, алгоритмы шифрования и интерфейс авторизации. На уровне сервера приложений располагается большая часть бизнес-правил, кроме тех, за которые отвечает уровень терминала, и кроме сложных процедур и триггеров, хранящихся на третьем уровне. На третий уровень выносятся объектно-ориентированные или реляционные БД, хранимые процедуры и триггеры. Если к этому перечню добавляется еще и схема, описывающая программу, совместимую с реляционной моделью СУБД, то второй уровень является программным интерфейсом, связывающим клиентский уровень с логикой базы данных.

Сервер приложений может находиться как на одном компьютере с сервером базы данных, так и на разных, причем последний вариант повышает степень надежности и безопасности всей системы. Идеальный вариант, когда терминалы подключены по сети к одному или нескольким серверам приложений, а те в свою очередь через сеть соединены с сервером базы данных.

К преимуществам данной модели можно отнести следующие ее свойства:

  • безопасность
  • надежность
  • расширяемость
  • конфигурируемость
  • уменьшение сетевого трафика
  • низкие требования к скорости сетевого соединения (между сервером приложений и терминалами) и к техническим характеристикам терминалов.

К недостаткам трехуровневой архитектуры относятся строгие требования к возможностям серверов, к скорости сетевого соединения между сервером баз данных и серверами приложений, а также высокая сложность создания приложений и администрирования в сравнении с клиент-серверными и файл-серверными моделями.