Архитектуры информационных систем

 

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

 

Выбор архитектуры ИС влияет на следующие характеристики:

1. Производительность ИС – количество работ, выполняемых в ИС за единицу времени.

2. Время реакции системы на запросы пользователя (время отклика системы).

3. Надёжность – способность к безотказному функционированию в течение определенного периода времени.

 

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

Обычно БД целиком хранится в одном узле сети, поддерживается одним сервером и доступна для всех пользователей локальной сети, называемых клиентами. Такая база данных называется централизованной. Распределенные базы данных, в которых БД распределена по нескольким узлам сети, обычно используются в организациях, содержащих территориально удаленные подразделения.

Сервер, как правило, — самый мощный и самый надежный компьютер. Он обязательно подключается через источник бесперебойного питания, в нем предусматриваются системы двойного или даже тройного дублирования. В зависимости от распределения функций обработки данных между сервером и клиентами различают две основных архитектуры – «файл-сервер» и «клиент-сервер». Возможны разновидности этих двух вариантов.

 

Архитектура «файл-сервер»

 

Для предприятий малого бизнеса возможна организация информационной системы на базе архитектуры "файл-сервер" с использованием СУБД Access, FoxPro (Visual FoxPro), Paradox и ряда других. Если количество пользователей системы не велико, подобное решение оптимально.

В архитектуре файл-сервер вся обработка данных выполняется на клиентских компьютерах, сервер служит в качестве хранилища данных (рис. 1.5).

 

Копии базы данных передаются для обработки на клиентские компьютеры, при этом постоянно выполняется синхронизация основной базы данных с ее копиями в случае их обновления.

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

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

Количество пользователей системы в архитектуре файл-сервер обычно не должно превышать 10-15, в противном случае пользователи будут ощущать замедление работы. Данное обстоятельство служит нарушением принципа масштабируемости, поэтому по мере роста количества пользователей ИС (допустим, произошло существенное расширение бизнеса) приходится выполнять переход от файл-серверной к клиент-серверной архитектуре. При разработке файл-серверной системы всегда нужно учитывать возможность такого перехода в будущем.

 

Архитектура «клиент-сервер»

 

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

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

 

 

 

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

Для того, чтобы прикладная программа, выполняющаяся на клиентском компьютере, могла запросить услугу у сервера, требуется некоторый интерфейсный программный слой, поддерживающий взаимодействие сервера с клиентами. Прикладное ПО или конечный пользователь взаимодействуют с клиентской частью системы. Клиентская часть системы

при потребности обращается по сети к серверной части. Интерфейс серверной части определен и фиксирован.

В современных информационных системах таким интерфейсом, как правило, является язык SQL, т.е. сервер принимает от клиентской части SQL-запрос и выполняет необходимые операции в базе данных, после чего возвращает ответ клиенту. По сути, язык SQL представляет собой стандарт интерфейса СУБД в открытых системах (концепция открытых систем затрагивалась в предыдущем разделе).

В системе «клиент-сервер» возможно создание новых клиентских частей уже существующей системы, причем максимальное количество одновременно работающих с общей БД клиентов несравнимо больше, чем в файл-серверной архитектуре, т.е. система клиент-сервер является более масштабируемой. Это объясняется тем, что сетевой трафик в клиент-серверной системе невысок (от клиента передаются только тексты запросов, от сервера – уже отобранные данные, а не вся база данных, как в архитектуре файл-сервер).

Термин «сервер баз данных» обычно используют для обозначения всей СУБД, основанной на архитектуре "клиент-сервер", включая серверную и клиентскую части. Собирательное название SQL-сервер относится ко всем серверам баз данных, основанных на использовании языка SQL.

В настоящее время имеется несколько широко распространенных коммерческих SQL-серверов – Oracle, DB-2, MS SQL Server, Sybase, In-formix, Interbase и свободно распространяемые серверы с открытым исходным кодом PostGres (PostgreeSQL), MySQL, FireBird (свободно распространяемый вариант сервера Interbase). Приведенный список далеко не полон.

SQL-cерверы обладают преимуществами и недостатками. Очевидное преимущество - стандартность интерфейса. В пределе, хотя на практике это пока не совсем так, клиентские части могли бы работать с любым SQL-сервером вне зависимости от того, кто его произвел. Иными словами, прикладное программное обеспечение на стороне клиента легко настраивается на взаимодействие с любым новым SQL-сервером.

Недостаток – большая нагрузка на сервер, который должен отрабатывать запросы всех клиентов, и малая нагрузка на клиентскую часть. По мере роста количества одновременно работающих пользователей сервер часто становится узким местом всей системы и возникает необходимость его разгрузки. Для этого существуют два пути.

• Если клиентские компьютеры обладают достаточной мощностью, то можно возложить на них больше функций обработки данных, разгрузив сервер.

• В случае применения маломощных клиентских компьютеров (а это более типичная ситуация), применяют многозвенную (многоуровневую) архитектуру «клиент-сервер», выделив промежуточные дополнительные слои программного обеспечения между клиентом и сервером.