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