Архитектуры информационных систем
В зависимости от взаимного расположения приложения и БД можно выделить:
· локальные БД;
· удаленные БД.
Для выполнения операций с локальными БД разрабатываются и используются так называемые локальные приложения, а для операций с удаленными БД — клиент-серверные приложения.
Расположение БД в значительной степени влияет на разработку приложения, обрабатывающего содержащиеся в этой базе данные. Delphi-приложение осуществляет доступ к БД через BDE (Borland Database Engine — процессор баз данных фирмы Borland).
BDE представляет собой совокупность динамических библиотек и драйверов, обеспечивающих доступ к данным. BDE должен устанавливаться на всех компьютерах, на которых выполняются Delphi-приложения, осуществляющие работу с БД. Приложение через BDE передает запрос к базе данных, а обратно получает требуемые данные.
Локальные БД располагаются на том же компьютере, что и работающие с ними приложения. В этом случае говорят, что информационная система имеет локальную архитектуру (рис. 2.1). Работа с БД происходит, как правило, в однопользовательском режиме. При необходимости можно запустить на компьютере другое приложение, одновременно осуществляющее доступ к этим же данным. Для управления совместным доступом к БД необходимы специальные среде а контроля и защиты. Эти средства могут понадобиться, например, в случае, когда приложение пытается изменить запись, которую редактирует другое приложение. Каждая разновидность БД осуществляет подобный контроль своими способами и обычно имеет встроенные средства разграничения доступа.
Рис. 2.1. Локальная архитектура
Для доступа к локальной БД процессор баз данных BDE использует стандартные драйверы, которые позволяют работать с форматами БД dBase, Paradox, FoxPro, а также с текстовыми файлами.
При использовании локальной БД в сети возможна организация многопользовательского доступа. В этом случае файлы БД и предназначенное для работы с ней приложение располагаются на сервере сети. Каждый пользователь запускает со своего компьютера это расположенное на сервере приложение, при этом у него запускается копия приложения. Такой сетевой вариант использования локальной БД соответствует архитектуре "файл-сервер". Приложение при архитектуре "файл-сервер" также может быть записано и на каждый компьютер сети, в этом случае приложению отдельного компьютера должно быть известно местонахождение общей БД (рис. 2.2).
При работе с данными на каждом пользовательском компьютере сети используется локальная копия БД. Эта копия периодически обновляется данными, содержащимися в БД на сервере.
Архитектура "файл-сервер" обычно применяется в сетях с небольшим количеством пользователей, для ее реализации подходят персональные СУБД, например, Paradox или dBase. Достоинствами этой архитектуры являются простота реализации, а также то, что приложение фактически разрабатывается в расчете на одного пользователя и не зависит от компьютера сети, на который оно устанавливается.
Однако архитектура "файл-сервер" имеет и существенные недостатки.
· Пользователь работает со своей локальной копией БД, данные в которой обновляются при каждом запросе к какой-либо из таблиц. При этом с сервера пересылается новая копия всей таблицы, данные которой затребованы. Таким образом, если пользователю необходимо несколько записей таблицы, с сервера по сети пересылается вся таблица. В результате циркуляции в сети больших объемов избыточной информации резко возрастает нагрузка на сеть, что приводит к соответствующему снижению ее быстродействия и производительности информационной системы в целом.
· В связи с тем, что на каждом компьютере имеется своя копия БД, изменения, сделанные в ней одним пользователем, в течение некоторого времени являются неизвестными другим пользователям. Поэтому требуется постоянное обновление БД. Кроме того, возникает необходимость синхронизации работы отдельных пользователей, связанная с блокировкой в таблицах записей, которые в данный момент редактирует другой пользователь.
· Управление БД осуществляется с разных компьютеров, поэтому в значительной степени затруднена организация контроля доступа, соблюдения конфиденциальности и поддержания целостности БД.
Рис. 2.2. Архитектура "файл-сервер"
Удаленная БД размещается на компьютере-сервере сети, а приложение, осуществляющее работу с этой БД, находится на компьютере пользователя. В этом случае мы имеем дело с архитектурой "клиент-сервер" (рис. 2.3), когда информационная система делится на неоднородные части — сервер и клиент БД. В связи с тем, что компьютер-сервер находится отдельно от клиента, его также называют удаленным сервером.
Клиент — это приложение пользователя. Для получения данных клиент формирует и отсылает запрос удаленному серверу, на котором размещена БД. Запрос формулируется на языке SQL, который является стандартным средством доступа к серверу при использовании реляционных моделей данных. После получения запроса удаленный сервер направляет его SQL-серверу (серверу баз данных) — специальной программе, управляющей удаленной БД и обеспечивающей выполнение запроса и выдачу его результатов клиенту.
Таким образом, в архитектуре "клиент-сервер" клиент посылает запрос на предоставление данных и получает только те данные, которые действительно были затребованы. Вся обработка запроса выполняется на удаленном сервере. Такая архитектура обладает следующими достоинствами.
· Снижение нагрузки на сеть, поскольку теперь в ней циркулирует только нужная информация.
· Повышение безопасности информации, связанное с тем, что обработка запросов всех клиентов выполняется единой программой, расположенной на сервере. Сервер устанавливает общие для всех пользователей правила использования БД, управляет режимами доступа клиентов к данным, запрещая, в частности, одновременное изменение одной записи различными пользователями.
· Уменьшение сложности клиентских приложений за счет отсутствия в них
кода, связанного с контролем БД и разграничением доступа к ней.
Рис. 2.3. Архитектура "клиент-сервер" ("толстый" клиент)
Для реализации архитектуры "клиент-сервер" обычно используются многопользовательские СУБД, например, Oracle или Microsoft SQL Server. Подобные СУБД также называют промышленными, т. к. они позволяют создать информационную систему организации или предприятия с большим числом пользователей. Промышленные СУБД являются сложными системами и требуют мощной вычислительной техники и соответствующего обслуживания. Обслуживание выполняет специалист (или группа специалистов), называемый системным администратором БД (администратором). Основными задачами системного администратора являются:
§ защита БД;
§ поддержание целостности БД;
§ обучение и подготовка пользователей;
§ загрузка данных из других БД;
§ тестирование данных;
§ резервное копирование и восстановление;
§ внесение изменений в информационную систему.
Доступ Delphi-приложения к промышленным СУБД осуществляется через драйверы SQL-Links. Отметим, что при работе с "родной" для Delphi СУБД InterBase можно обойтись без драйверов SQL-Links.
Описанная архитектура является двухуровневой — приложение-клиент и сервер БД. Клиентское приложение также называют сильным, или "толстым", клиентом. Дальнейшее развитие данной архитектуры привело к появления трехуровневого варианта "клиент-сервер" — приложение-клиент, сервер приложений и сервер БД (рис. 2.4).
Рис. 2.4.Трехуровневая архитектура "клиент-сервер" ("тонкий" клиент)
В трехуровневой архитектуре часть средств и кода, предназначенных для организации доступа к данным и их обработке, из приложения-клиента выделяется в сервер приложений. Само клиентское приложение при этом называют слабым, или "тонким", клиентом. В сервере приложений удобно располагать средства и код, общие для всех клиентских приложений, например, средства доступа к БД.
Основные достоинства трехуровневой архитектуры "клиент-сервер" состоят в следующем:
§ разгрузка сервера от выполнения части операций, перенесенных на сервер
приложений;
§ уменьшение размера клиентских приложений за счет разгрузки их от лишнего кода;
§ единое поведение всех клиентов;
§ упрощение настройки клиентов — при изменении общего кода сервера приложений автоматически изменяется поведение приложений-клиентов.
Отметим, что локальные приложения БД называют одноуровневыми, а клиент-серверные приложения БД — многоуровневыми.