Понятие архитектуры информационной системы
Архитектура – это совокупность существенных решений об организации ИС. Обычно в понятие архитектуры входят решения об основных аппаратных и программных составляющих системы, их функциональном назначении и организации связей между ними.
Выбор архитектуры ИС влияет на следующие характеристики:
1. Производительность ИС – количество работ, выполняемых в ИС за единицу времени.
2. Время реакции системы на запросы пользователя (время отклика системы)
3. Надёжность – способность к безотказному функционированию в течение определенного периода времени.
Локальные ИС, которые располагаются целиком на одном компьютере и предназначены для работы только одного пользователя, сейчас встречаются крайне редко. В дальнейшем речь пойдет о распределенных ИС, которые функционируют в сети и предназначены для многопользовательской (коллективной) работы.
Обычно база данных целиком хранится в одном узле сети, поддерживается одним сервером и доступна для всех пользователей локальной сети, называемых клиентами. Такая база данных называется централизованной. Распределенные базы данных, в которых БД распределена по нескольким узлам сети, обычно используются в организациях, содержащих территориально удаленные подразделения.
Сервер, как правило, — самый мощный и самый надежный компьютер. Он обязательно подключается через источник бесперебойного питания, в нем предусматриваются системы двойного или даже тройного дублирования. В зависимости от распределения функций обработки данных между сервером и клиентами различают две основных архитектуры – «файл-сервер» и «клиент-сервер». Возможны разновидности этих двух вариантов.
1.2.2 Архитектура «файл-сервер»
Для предприятий малого бизнеса возможна организация информационной системы на базе архитектуры "файл-сервер" с использованием СУБД Access, FoxPro (Visual FoxPro), Paradox и ряда других. Если количество пользователей системы не велико, подобное решение оптимально.
В архитектуре файл-сервер вся обработка данных выполняется на клиентских компьютерах, сервер служит в качестве хранилища данных (рис.1.5).
Рис.1.5 - Архитектура файл-сервер
Копии базы данных передаются для обработки на клиентские компьютеры, при этом постоянно выполняется синхронизация основной базы данных с ее копиями в случае их обновления.
Недостаток архитектуры файл-сервер – большая нагрузка на сеть и клиентские компьютеры, поскольку на всех клиентских компьютерах должна быть установлена копия СУБД, которая выполняет все необходимые функции по обработке данных, при этом все изменения в копиях обязательно передаются по сети в основную базу данных, существенно повышая сетевой трафик.
Преимущество состоит в том, что не требуется мощный сервер. Такую архитектуру можно реализовать даже в одноранговой сети без выделенного сервера, необходимо только выделить один из компьютеров в качестве хранилища общей базы данных.
Количество пользователей системы в архитектуре файл-сервер обычно не должно превышать 10-15, в противном случае пользователи будут ощущать замедление работы. Данное обстоятельство служит нарушением принципа масштабируемости (раздел 1.1), поэтому по мере роста количества пользователей ИС (допустим, произошло существенное расширение бизнеса) приходится выполнять переход от файл-серверной к клиент-серверной архитектуре. При разработке файл-серверной системы всегда нужно учитывать возможность такого перехода в будущем.
1.2.3. Архитектура «клиент-сервер»
Применительно к информационным системам архитектура «клиент-сервер» интересна и актуальна главным образом потому, что обеспечивает простое и относительно дешевое решение проблемы коллективного (многопользовательского) доступа к базам данных в локальной или глобальной сети.
Информационная система архитектуры «клиент-сервер» разбивается на две части, которые могут выполняться в разных узлах сети, - клиентскую и серверную части. На серверную часть возлагаются функции хранения и значительной части обработки данных, на клиентскую – функции взаимодействия с пользователем и, частично, обработки данных, полученных с сервера (рис. 1.6).
Рис. 1.6 - Архитектура «клиент-сервер»
Следует заметить, что обе части системы (серверная и клиентская) могут располагаться и на одном компьютере, такой вариант можно применять в процессе отладки клиент-серверной системы.
Для того, чтобы прикладная программа, выполняющаяся на клиентском компьютере, могла запросить услугу у сервера, требуется некоторый интерфейсный программный слой, поддерживающий взаимодействие сервера с клиентами. Прикладное ПО или конечный пользователь взаимодействуют с клиентской частью системы. Клиентская часть системы при потребности обращается по сети к серверной части. Интерфейс серверной части определен и фиксирован.
В современных информационных системах таким интерфейсом, как правило, является язык SQL, т.е. сервер принимает от клиентской части SQL-запрос и выполняет необходимые операции в базе данных, после чего возвращает ответ клиенту. По сути дела, язык SQL представляет собой стандарт интерфейса СУБД в открытых системах (концепция открытых систем затрагивалась в предыдущем разделе).
В системе «клиент-сервер» возможно создание новых клиентских частей уже существующей системы, причем максимальное количество одновременно работающих с общей БД клиентов несравнимо больше, чем в файл-серверной архитектуре, т.е. система клиент-сервер является более масштабируемой. Это объясняется тем, что сетевой трафик в клиент-серверной системе невысок (от клиента передаются только тексты запросов, от сервера – уже отобранные данные, а не вся база данных, как в архитектуре файл-сервер).
Термин «сервер баз данных» обычно используют для обозначения всей СУБД, основанной на архитектуре "клиент-сервер", включая серверную и клиентскую части. Собирательное название SQL-сервер относится ко всем серверам баз данных, основанных на использовании языка SQL.
В настоящее время имеется несколько широко распространенных коммерческих SQL-серверов – Oracle, DB-2, MS SQL Server, Sybase, Informix, Interbase и свободно распространяемые серверы с открытым исходным кодом PostGres (PostgreeSQL), MySQL, FireBird (свободно распространяемый вариант сервера Interbase). Приведенный список далеко не полон.
SQL-cерверы обладают преимуществами и недостатками. Очевидное преимущество - стандартность интерфейса. В пределе, хотя на практике это пока не совсем так, клиентские части могли бы работать с любым SQL-сервером вне зависимости от того, кто его произвел. Иными словами, прикладное программное обеспечение на стороне клиента легко настраивается на взаимодействие с любым новым SQL-сервером.
Недостаток – большая нагрузка на сервер, который должен отрабатывать запросы всех клиентов, и малая нагрузка на клиентскую часть. По мере роста количества одновременно работающих пользователей сервер часто становится узким местом всей системы и возникает необходимость его разгрузки. Для этого существуют два пути.
· Если клиентские компьютеры обладают достаточной мощностью, то можно возложить на них больше функций обработки данных, разгрузив сервер.
· В случае применения маломощных клиентских компьютеров (а это более типичная ситуация), применяют многозвенную (многоуровневую) архитектуру «клиент-сервер», выделив промежуточные дополнительные слои программного обеспечения между клиентом и сервером.
Дата добавления: 2015-08-26; просмотров: 6261;