Эта модель
является расширением двухуровневой модели и в ней вводится дополнительный промежуточный
уровень между клиентом и сервером. Архитектура трехуровневой модели приведена
на рис. 10.7. Этот промежуточный уровень содержит один или несколько серверов
приложений.
Рис.
10.7. Модель сервера приложений
В этой модели
компоненты приложения делятся между тремя исполнителями:
Клиент обеспечивает
логику представления, включая графический пользовательский интерфейс, локальные
редакторы; клиент может запускать ло-кальный код приложения клиента, который
может содержать обращения к локальной БД, расположенной на компьютере-клиенте.
Клиент исполняет коммуникационные функции front-end части приложения, которые
обеспечивают доступ клиенту в локальную или глобальную сеть. Дополнительно
реализация взаимодействия между клиентом и сервером может включать в себя
управление распределенными транзакциями, что соответствует тем случаям, когда
клиент также является клиентом менеджера распределенных транзакций.
Серверы приложений
составляют новый промежуточный уровень архитектуры. Они спроектированы
как исполнения общих незагружаемых функций для клиентов. Серверы приложений
поддерживают функции клиентов как частей взаимодействующих рабочих групп,
поддерживают сетевую доменную операционную среду, хранят и исполняют наиболее
общие правила бизнес-логики, поддерживают каталоги с данными, обеспечивают
обмен сообщениями и поддержку запросов, особенно в распределенных транзакциях.
Серверы баз данных
в этой модели занимаются исключительно функциями СУБД: обеспечивают функции
создания и ведения БД, поддерживают целостность реляционной БД, обеспечивают
функции хранилищ данных (warehouse services). Кроме того, на них возлагаются
функции создания резервных копий БД и восстановления БД после сбоев, управления
выполнением транзакций
и поддержки устаревших (унаследованных) приложений (legacy application).
Отметим,
что эта модель обладает большей гибкостью, чем двухуровневые модели. Наиболее
заметны преимущества модели сервера приложений в тех случаях, когда клиенты
выполняют сложные аналитические расчеты над базой данных, которые относятся
к области OLAP-прнложений. (On-line analytical processing.) В этой модели большая
часть бизнес-логики клиента изолирована от возможностей встроенного SQL, реализованного
в конкретной СУБД, и может быть выполнена на стандартных языках программирования,
таких как С, C++, SmallTalk, Cobol. Это повышает переносимость системы, ее масштабируемость.
Функции промежуточных
серверов могут быть в этой модели распределены в рамках глобальных транзакций
путем поддержки ХА-протокола (X/Open transaction interface protocol), который
поддерживается большинством поставщиков СУБД.