Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архитектура информационных систем. Учебное пособие.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
676 Кб
Скачать

шое число зависимостей повлечёт за собой высокорисковые изменения других компонентов системы. Эту зону Р. Мартин называет зоной

«боли».

3.5. Вычислительные архитектуры ИС

Компонентно-ориентированный подход к организации архитекту-

ры ИС позволяет описывать все существующие на данный момент ба-

зовые вычислительные архитектуры ИС, такие как: клиент-серверная архитектура, трёхзвенная архитектура и микросервисная архитектура

[2]. Кроме того, разделение функционала ИС на горизонтальные и вер-

тикальные слои и грамотное взаимное расположение компонентов по-

зволяют осуществлять миграцию от одного вида базовой архитектуры системы к другой без значительных затрат рабочего времени разработ-

чиков ИС.

3.5.1. Клиент-серверная архитектура

Клиент-серверная архитектура ИС предполагает разделение ИС на два горизонтальных слоя: слой «клиент» и слой «сервер» (см. рис. 12) [2].

Рисунок 12 – Клиент-серверная вычислительная архитектура Клиент – локальная вычислительная машина, располагающаяся на

стороне пользователя ИС. Программный код, описывающий функцио-

50

нал клиента, разрабатывается универсальным для всех пользователей системы. При этом запущенных пользователем экземпляров клиентско-

го программного обеспечения может быть несколько.

На стороне клиента реализуются следующие функции:

предоставление пользовательского графического интерфейса;

формирование запросов к серверу и последующая обработка ответов от сервера;

выполнение специфичных для пользователя вычислительных

операций.

Сервер – центральное звено в клиент-серверной архитектуре.

Представляет собой высокопроизводительную вычислительную маши-

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

На стороне сервера реализуются:

хранение, защита и доступ к данным;

обработка запросов клиентов;

формирование запросов к БД;

описание общей бизнес-логики приложения (не зависящей от пользователя).

Вклиент-серверной архитектуре описание основных бизнес-

процессов выполняется обычно средствами системы управления базами данных (например, СУБД Oracle [42] и MS SQL Server [43]). СУБД для решения таких задач имеют встроенный язык программирования. Од-

нако при условии наличия высокопроизводительных клиентских вы-

числительных машин вся бизнес-логика ИС может реализовываться

51

средствами высокоуровневого языка программирования (например, Java, C#, C++, Delphi).

Архитектура клиент-сервер подразумевает абстрагирование от внутреннего представления данных, то есть физической модели дан-

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

Клиент-серверная архитектура позволила разрабатывать надёжные многопользовательские информационные системы с централизованной базой данных. Надёжность данной архитектуры обеспечивает, в том числе, целостность данных: описание модели предметной области в та-

ких системах выполняется посредством математического аппарата ре-

ляционной алгебры [44].

ИС, основанные на клиент-серверной архитектуре, независимы от аппаратной и программной части сервера БД и поддерживают графиче-

ский интерфейс пользователя на клиентских станциях, которые связаны локальной сетью.

Кдостоинствам клиент-серверной архитектуры можно отнести:

поддержку многопользовательской работы;

гарантию целостности данных;

масштабируемость ИС (вычислительные операции выполняют-

ся на нескольких вычислительных машинах).

Недостатки клиент-серверной архитектуры:

СУБД для описания бизнес-логики используют не объектно-

ориентированные языки программирования, а потому затруд-

нительно применять компонентно-ориентированный подход;

общая бизнес-логика, реализованная на клиенте, не отделена от бизнес-логики, специфичной для пользователя;

52

в клиент-серверных приложениях предъявляются высокие тре-

бования к пропускной способности каналов связи с сервером БД;

необходимость использовать сравнительно высокопроизводи-

тельные клиентские вычислительные машины, так как часть бизнес-логики все равно обрабатывается на клиентских местах.

Клиент-серверные приложения в целом не противоречат компо-

нентно-ориентированному подходу при условии, что в ИС отсутствует зависимость от конкретных реализаций, а уровни бизнес-логики разде-

лены на горизонтальные слои программных сущностей, бизнес-логики,

адаптеров и представления (см. раздел 3.4 и подраздел 3.4.4).

3.5.2. Трёхзвенная архитектура

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

му следующим шагом эволюции архитектур ИС является идея «тонкого клиента», то есть разбиения алгоритмов обработки данных на части,

связанные с выполнением бизнес-функций и с представлением инфор-

мации в удобном для человека виде. При этом на клиентской машине оставляют лишь вторую часть, связанную с первичной проверкой и отображением информации, перенося всю реальную функциональность системы на серверную часть. Архитектура системы с тонким клиентом называется трёхзвенной и изображена на рис. 13.

53

Рисунок 13 – Трёхзвенная архитектура

Первое звено в трёхзвенной архитектуре предназначено для реали-

зации пользовательского интерфейса. Второе звено используется для описания основной бизнес-логики приложения посредством высоко-

уровневых языков программирования. Хранение данных обеспечивает-

ся третьим звеном – СУБД.

Кпреимуществам трёхзвенной архитектуры можно отнести:

логическое и физическое разделение функциональных возмож-

ностей: каждый уровень можно запустить на отдельной вычис-

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

полняется по крайней мере на одном выделенном аппаратном или виртуальном сервере, уровни можно настраивать и опти-

мизировать независимо друг от друга;

более быструю разработку: поскольку разработкой уровней од-

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

рументы для каждого уровня;

более высокую масштабируемость в сравнении с клиент-

серверным приложением: каждый уровень можно масштабиро-

54

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]