Двухуровневые архитектуры
Функциональная нагрузка компонентов в ИС
Информационная система состоит из совокупности взаимодействующих друг с другом программных компонентов. Каждый из таких компонентов представляет собой программный модуль, исполняемый в рамках отдельного процесса. В компоненте, могут быть реализованы функции из следующих трех групп:
· группа функций пользовательского интерфейса;
· группа прикладных функций, характерных для данной предметной области;
· группа функций хранения и управления данными.
Декомпозиция функций из этих групп по компонентам определяет логическую архитектуру информационной системы. Выбор приемлемой логической архитектуры информационной системы является одним из важнейших этапов проектирования ИС.
Число L, обозначающее максимальное количество компонентов, участвующих в процессе, предполагающем выполнение функций из первой, второй и третьей групп, определяет ранг ИС:
· локальная ИС (L=1);
· двухуровневые архитектуры (L=2);
· трехуровневые (L=3);
· распределенные одноранговые (то есть равноправные) архитектуры (L>3 или существуют отношения взаимодействия между компонентами, каждый из которых реализует функции всех трех групп).
Двухуровневая архитектура предполагает, что количество уровней равно двум. Это означает наличие максимум двух программных компонентов, в совокупности реализующих функции из первой, второй и третьей группы.
Один из двух компонентов выступает в роли сервера, т.е. реализует набор сервисов, доступных другому компоненту, который выступает в роли клиента, т.е. в процессе работы пользуется сервисами, предоставляемыми сервером. Компоненты могут располагаться как на одном компьютере, так и на различных компьютерах, объединенных в сеть.
Различия в реализациях двухуровневой архитектуры определяются в основном тем, функции каких групп выполняет клиент, а каких сервер. Существует несколько вариантов декомпозиции функций представления, прикладных функций и функций хранения и управления данными в рамках двухуровневой архитектуры.
Согласно указанным вариантам декомпозиции, можно говорить о следующих двухуровневых архитектурах:
· интеллектуального клиента (на клиенте реализован доступ к удаленным данным и их обработка; например, архитектура на базе файлового сервера);
· интеллектуального сервера (на клиенте реализован доступ в режиме терминала; архитектура интеллектуального сервера баз данных, то есть на сервере организовано и хранение и обработка данный, а клиент реализует только функцию пользовательского интерфейса);
· распределенной функциональной логики (при этом обработка данных частично ведется на сервере, а частично на клиенте).
Двухуровневые архитектуры обладают рядом достоинств и недостатков. Так, например, при применении интеллектуального сервера упрощается обновление программ, архивирование данных. Главный недостаток – плохая масштабируемость, рост количества клиентов базы ограничивается физическими причинами: мощностью процессора, пропускной способностью линий передач и т.п. Использование двухуровневых архитектур при построении крупных информационных систем, исходя из присущих им недостатков, приводит во многих случаях к краху проектов, связанных с их разработкой.