Архитектура информационных систем. Часть 1. Учебное пособие
.pdfоднопользовательский режим работы системы. Достоинства данной архитектуры:
автономность работы каждого компьютера системы;
развитый, настраиваемый интерфейс пользователя; Недостатки данной архитектуры:
ограниченная вычислительная мощность;
дублирование информации на разных компьютерах, слож-
ность её передачи и синхронизации.
Данные системы получили распространение с появлением персональных компьютеров в 80-х гг. В таких системах могут функционировать текстовые и графические редакторы, компиляторы, достаточно простые корпоративные программы. Современная корпоративная информационная система обычно не может состоять из отдельных, не связанных между собой компонентов.
5.3. Распределённая архитектура
5.3.1. Понятие распределённой вычислительной системы
Существует множество различных определений распределённой вычислительной системы. Одно из них с иронией дал Лесли Лампорт [6]:
«Распределенной вычислительной системой можно назвать такую систему, в которой отказ компьютера, о существовании которого вы даже не подозревали, может сделать ваш собственный компьютер непригодным к использованию».
Э. Таненбаум, в своем труде «Распределённые системы. Принципы и парадигмы» [7] сформулировал более строгое определение, которое мы в дальнейшем будем использовать:
«Распределенная вычислительная система (РВС) – это набор соединенных каналами связи независимых компьютеров, которые с точки зрения пользователя некоторого программного обеспечения выглядят единым целым».
В этом определении отмечено два важных момента: автономность узлов системы и представление системы пользователем в виде единого целого. При этом в качестве основного связующего звена распределенных вычислительных систем выступает программное обеспечение.
31
5.3.2. Промежуточное программное обеспечение
Рассмотрим ряд важных особенностей РВС:
обеспечение возможности работы с различными типами устройств (компьютерами, периферийными устройствами), а именно, различных производителей, использующих различные аппаратные платформы и операционные системы6;
обеспечение возможности простого и быстрого расширения и масштабирования7 системы;
обеспечение постоянной доступности ресурсов даже при временном отсутствии доступа к некоторым элементам РВС;
сокрытие от пользователей особенностей реализации коммуникаций в системе.
Для реализации рассмотренных особенностей, в том числе – обеспечения совместного функционирования разнородного оборудования в составе гетерогенной РВС, в состав ПО таких систем включают так называемое промежуточное программное обеспе-
чение (ППО). Его основной функцией является обеспечение прозрачности работы приложений в системе. Для этого ППО взаимодействует с системным ПО компьютеров (ОС, сетевым уровнем). Распределённые приложения, непосредственно реализующие прикладные задачи пользователя, взаимодействуют с ППО и располагаются в верхнем слое ПО системы (рис. 11).
Представление (восприятие) РВС пользователем как единой системы обеспечивается за счёт нескольких видов прозрачности:
прозрачный доступ к ресурсам – пользователь не видит разницы в представлении данных и в способах доступа к ресурсам системы;
6Вычислительные системы, построенные с использованием различных программноаппаратных платформ, называются гетерогенными.
7Под масштабированием понимается приведение в соответствие числа имеющихся подзадач числу процессоров системы путём объединения подзадач или их разделения на более мелкие подзадачи для обеспечения наибольшей производительности системы.
32
Компьютер A |
Компьютер B |
Компьютер C |
Распределённое приложение
|
Промежуточное ПО |
|
Локальная |
Локальная |
Локальная |
ОС |
ОС |
ОС |
(Windows 7) |
(Windows XP) |
(Linux) |
Сеть
Рис. 11. Распределение программного обеспечения в РВС по слоям
прозрачное местоположение ресурсов – для пользователя несущественно место физического расположения требуемого ресурса;
репликация – пользователь не видит того, что в реальности существует несколько копий используемого ресурса;
одновременный доступ – возможность параллельного совместного использования одного и того же ресурса различными пользователями независимо друг от друга в одно и то же время. Факт совместного использования ресурса должен быть скрыт от пользователя;
прозрачность отказов – отказ (потеря) каких-либо ресурсов системы не должен влиять на работу пользователя и его приложения.
5.3.3. Модель «Клиент-Сервер»
5.3.3.1. Парадигма клиент-серверной архитектуры
Рассмотрим ряд основных определений, необходимых для понимания последующего материала.
Ресурс – любая программа или аппаратное средство, используемые в системе. Например, компьютер, накопитель информации, файл, канал связи, сервис и т.п.
33
Сервер – процесс, реализующий некоторый сервис, например, сервис файловой системы или базы данных, сервис печати и т.д.
Клиент – процесс, запрашивающий сервисы у серверов путем посылки запроса и последующего получения ответа от сервера.
Сервис – это сетевая сущность, предоставляющая определенные функциональные возможности [5] (например, веб-сервер может предоставлять сервис передачи файлов по протоколу HTTP).
В соответствии с принципом построения клиент-серверной архитектуры совокупность клиентов и серверов вместе с промежуточным ПО и средой взаимодействия образуют единую систему, которая обеспечивает представление данных, позволяет выполнять их анализ и распределенные вычисления. Благодаря применению клиент-серверной подхода пользователи компьютеров имеют возможность доступа к различным ресурсам удаленных серверов, например, файлам и базам данных, принтерам, процессорному времени и др.
5.3.3.2. Разделение приложений по уровням
В клиент-серверной архитектуре одним из основных вопросов является вопрос о том, как разделить клиентов и серверы. Так, приложения типа клиент-сервер, предназначенные для обеспечения доступа к базам данных, зачастую разделяют на три уровня:
-уровень представления (пользовательского интерфейса);
-уровень бизнес-логики (обработки);
-уровень данных.
На уровне пользовательского интерфейса осуществляется непосредственное взаимодействие с пользователем, например, реализуется управление дисплеем. На уровне обработки содержатся приложения, а на уровне данных – непосредственно обрабатываемые данные.
Уровень представления
К данному уровню относятся программы взаимодействия пользователя с приложением.
В простейшем случае пользовательский интерфейс реализуется посредством драйвера дисплея, работающего в символьном режиме. Подобные интерфейсы используются в системах с централизованной архитектурой для взаимодействия мейнфреймов с терминалами системы. При этом если программы пользовательского ин-
34
терфейса выполняются на самом мэйнфрейме, то речь не идёт о модели клиент-сервер.
Во многих системах на терминалах пользователей выполняется хотя бы простейшая обработка: эхо-печать вводимых символов, возможность редактирования введённых данных до их отправки на основной компьютер.
Пользовательские интерфейсы современных систем являются значительно более развитыми. Пользовательский интерфейс, как правило, реализуется на клиентах.
Уровень бизнес-логики
Бизнес-логика – это совокупность правил, принципов и зависимостей поведения объектов предметной области [8]. Также часто используется синоним этого понятия логика предметной области
(анг. domain logic).
К уровню бизнес-логики относится реализация предметной области в информационной системе. Примерами элементов бизнеслогики являются экономические показатели эффективности производства, методы управления кадрами, методы управления предприятием, стратегии биржевой торговли и др.
Уровень данных
К уровню данных относят программы, которые обеспечивают предоставление данных для приложений. Уровень данных может быть реализован:
средствами файловой системы (в простейшем случае);
путём использования базы данных.
Уровень данных, как правило, располагается на стороне сервера. Основными требованиями к этому уровню являются:
сохранность данных – даже при неработающем приложении данные должны храниться в заданном месте в расчете на последующее использование;
поддержание целостности данных – обеспечение корректности данных и их непротиворечивости (включает целостность связей, чтобы исключить ошибки связей между
первичным и вторичным ключом).
Данные могут быть организованы в форме реляционной базы данных, либо в форме объектно-ориентированной базы данных.
35
Использование реляционных баз данных позволяет отделить уровень обработки от уровня данных. При этом обеспечивается независимость данных от приложений: изменения в организации данных не оказывают влияния на приложения, а приложения никак не влияют на организацию данных.
Объектно-ориентированные базы данных целесообразно использовать в случаях, когда данные и операции над ними проще описываются с помощью объектов, а не отношений. При этом обеспечивается хранение сложно организованных данных в форме объектов, и хранение методов обработки этих объектов. В связи с этим некоторая часть функций с уровня обработки переходит на уровень данных. Примерами использования объектов являются проекты интегральных микросхем, автомобиля, самолёта и т.д.
5.3.3.3. Разновидности клиент-серверной архитектуры
Однозвенная архитектура
Наиболее простым и впервые использованным на практике вариантом клиент-серверной архитектуры является так называемая «однозвенная» архитектура. В данной архитектуре клиент осуществляет только отображение информации, предоставляемой мейнфреймом (сервером), который несёт всю вычислительную нагрузку. В качестве примера данной архитектуры можно рассматривать доступ с терминала к удаленному серверу или удаленный рабочий стол. Централизованную архитектуру можно рассматривать как частный случай однозвенной клиент-серверной архитектуры.
Двухзвенная архитектура
В двухзвенной клиерт-сервеной архитектуре используется так называемый «толстый» клиент, который выполняет отображение информации и обработку всех данных (порядка 80 % всех работ). Сервер осуществляет только хранение и предоставление данных (порядка 20 % работ).
36
Уровень |
|
|
Интерфейс |
|
|
|
представ- |
|
|
|
|
|
|
|
|
пользователя |
|
|
|
|
ления |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Уровень |
|
|
Логика |
|
|
|
|
|
приложения |
|
|
|
|
бизнес- |
|
|
|
|
|
|
|
|
операторы |
|
|
|
|
логики |
|
|
|
|
|
|
|
|
обращения к |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
файл-серверу |
|
|
|
|
|
|
|
|
|
|
Уровень |
|
|
Выполнение |
Хранение и |
|
|
данных |
|
|
операторов |
управление |
|
|
|
|
|
|
файлами |
|
|
|
|
|
|
|
|
|
|
|
|
Клиент |
Файл-сервер |
|
|
|
|
|
(«толстый») |
|
||
|
|
|
|
|
|
|
Рис. 12. Двухзвенная клиент-серверная архитектура с файл-сервером
В зависимости от того, как реализован уровень данных, двухзвенная архитектура может иметь две разновидности: с файлсервером (рис. 12) или с сервером баз данных (рис. 13).
Рассмотрим основные преимущества двухзвенной архитектуры:
1.Поддержка многопользовательского режима работы с общими данными в том числе большого объёма.
2.Обеспечение сохранности и целостности данных – на выделенном сервере проще обеспечить защиту и целостность данных по сравнению с рабочими станциями клиентов.
Недостатками данной архитектуры являются:
1.Возможная перегрузка сервера баз данных и как следствие замедление обработки запросов пользователей всей системы. Сама перегрузка зачастую обусловлена тем, что каждый клиент устанавливает свои собственные соединения с базой данных и их постоянная поддержка требует значительных ресурсов.
37
Уровень |
|
|
Интерфейс |
|
|
|
представ- |
|
|
|
|
|
|
|
|
пользователя |
|
|
|
|
ления |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Уровень |
|
|
Логика |
|
|
|
|
|
приложения |
|
|
|
|
бизнес- |
|
|
|
|
|
|
|
|
операторы |
|
|
|
|
логики |
|
|
Хранимые |
|
||
|
|
обращения к |
|
|||
|
|
|
|
|||
|
|
|
СУБД |
процедуры |
|
|
|
|
|
|
|
|
|
Уровень |
|
|
|
Выполнение |
|
|
|
|
|
запросов |
|
||
данных |
|
|
|
Хранение и |
|
|
|
|
|
|
управление дан- |
|
|
|
|
|
|
ными |
|
|
|
|
|
|
|
|
|
|
|
|
Клиент |
Сервер |
|
|
|
|
|
(«толстый») |
баз данных |
|
|
Рис. 13. Двухзвенная клиент-серверная архитектура с сервером СУБД
2.Большие расходы на поддержание работы приложений на рабочих станциях пользователей, в связи с тем, что для обновления приложения требуется переустановка клиентской части ПО на всех рабочих станциях. В больших системах это также существенно усложняет администрирование.
3.В связи с неоднородностью программно-аппаратных платформ рабочих станций возникают проблемы при поддержании работоспособности клиентских частей приложений. Кроме того, устаревшие платформы некоторой части рабочих станций могут ограничить возможности обновления системы до новых версий.
Трёхзвенная архитектура
Отмеченные выше недостатки и ограничения двухзвенной архитектуры обусловили появление трёхзвенной клиент-серверной архитектуры с сервером приложений (рис. 14).
Уровень бизнес-логики в данной архитектуре реализуется преимущественно на сервере приложений. Такая организация вычислительного процесса обеспечивает следующие преимущества.
38
Уровень |
Интерфейс |
|
|
|
|
пользователя, |
|
|
|
||
представ- |
|
|
|
||
вызов функций |
|
|
|
||
ления |
|
|
|
||
сервера |
|
|
|
||
|
|
|
|
|
|
|
|
приложений |
|
|
|
|
|
|
|
|
|
|
|
|
Выполнение |
|
|
Уровень |
|
функций |
|
|
|
бизнес- |
|
приложения, |
Хранимые |
||
логики |
|
формирование |
|||
|
|
|
запросов к СУБД |
процедуры |
|
|
|
|
|
|
|
|
|
|
|
Выполнение |
|
Уровень |
|
|
запросов |
||
|
|
Хранение и |
|||
данных |
|
|
|||
|
|
управление |
|||
|
|
|
|
||
|
|
|
|
данными |
|
|
|
Клиент |
Сервер |
Сервер |
|
|
|
(«тонкий») |
приложений |
баз данных |
|
Рис. 14. Трёхзвенная клиент-серверная архитектура с сервером приложений
1.Сервер приложений имеет возможность управления пулом соединений с базой данных, в связи с чем может быть уменьшено число одновременно установленных соединений с сервером баз данных (одно соединение может обслуживать нескольких клиентов).
2.Для обновления приложения требуется его переустановка только на сервере приложений.
3.Снижаются требования к конфигурации и производительности рабочих станций («тонких» клиентов), что снижает затраты на построение системы.
Распространение Internet-технологий обусловили появление трёхзвенной архитектуры на основе Internet/Inranet8 технологий с Web-сервером (рис. 15).
8 Интранет (англ. Intranet) – это внутренняя частная сеть организации в отличие от сети Интернет. Интранет так же как и Internet построен на использовании протокола IP для обмена и совместного использования некоторой части информации внутри этой организации.
39
Уровень |
HTML-браузер |
|
|
|
|
представ- |
|
|
|
|
|
ления |
|
Web-сервер |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Выполнение |
|
|
Уровень |
|
функций |
|
|
|
бизнес- |
|
приложения |
Хранимые |
||
логики |
|
формирование |
|||
|
|
|
запросов к СУБД |
процедуры |
|
|
|
|
|
|
|
|
|
|
|
Выполнение |
|
Уровень |
|
|
запросов |
||
|
|
Хранение и |
|||
данных |
|
|
|||
|
|
управление |
|||
|
|
|
|
||
|
|
|
|
данными |
|
|
|
Клиент |
Web-сервер |
Сервер |
|
|
|
баз данных |
|||
|
|
|
|
||
Рис. 15. Трёхзвенная клиент-серверная архитектура на основе Internet/Intranet
В качестве примера рассмотрим организацию поисковой машины в Интернете (рис. 16) [8]. Интерфейс пользователя поисковой машины обеспечивает ввод пользователем строки, содержащей ключевые слова, и вывод списка заголовков найденных вебстраниц. Результат формируется из большой базы просмотренных и проиндексированных веб-страниц. Важнейшей частью поисковой машины является программа, которая преобразует введенную пользователем строку в один или несколько запросов к базе данных. Затем она помещает результаты запроса в список и преобразует этот список в набор HTML-страниц.
40
