- •Тема 6. Базы данных и сети. Архитектура «клиент-сервер»
- •6.1. История возникновения архитектуры «клиент-сервер»
- •6.2. Концепция открытых систем
- •6.3. Реализация распределенной бд в локальной вычислительной сети
- •6.4. Реализации www-доступа к бд с использованием архитектуры «клиент-сервер»
- •6.5. Облачные базы данных
6.2. Концепция открытых систем
Главной побудительной причиной развития концепции открытых систем явились повсеместный переход к использованию локальных компьютерных сетей и те проблемы несовместимости аппаратно-программных средств, которые вызвал этот переход.
Основу составила модель OSI (Open System Interconnection), принятая ISO в 1974 году. Переход к этой модели на практике оказался весьма длительным.
Параметрами, определяющими возможность отнесение того или иного продукта к категории открытых систем, являются - свойства мобильности (portability) и интероперабельности (interoperability).
Свойство мобильности означает сравнительную простоту переноса ПРОГРАММНОЙ СИСТЕМЫ в широком спектре аппаратно-программных средств, соответствующих стандартам (независимость от аппаратуры и ОС).
Интероперабельность означает возможность КОМПЛЕКСИРОВАНИЯ новых программных систем на основе использования готовых компонентов, выпускаемых различными производителями, со стандартными интерфейсами.
Достижение этих параметров стало возможно только за счет международной и национальной стандартизации аппаратных и программных интерфейсов. Это позволило обеспечить независимость от конкретного поставщика:
В сетях применяется разная аппаратура и протоколы связи. Попытки создания систем, поддерживающих все возможные протоколы, приводит к их перегрузке сетевыми деталями в ущерб функциональности.
Еще более сложный аспект этой проблемы связан с возможностью использования разных представлений данных в разных узлах неоднородной локальной сети. В разных компьютерах может существовать различная адресация, представление чисел, кодировка символов и т.д. Это особенно существенно для серверов высокого уровня: телекоммуникационных, вычислительных, баз данных.
На уровне аппаратных средств большинство проблем было решено примерно к середине 1990-х годов – с массовым внедрением сети Internet.
Общим решением проблемы мобильности систем, основанных на архитектуре "клиент-сервер" является опора на программные пакеты, реализующие протоколы удаленного вызова процедур (RPC - Remote Procedure Call).
В области СПО - стандартизованная на уровне сетевых интерфейсов операционная система.
В настоящее время такой системой являются, практически, все современные версии ОС семейства UNIX, Windows и др. Фирмам-поставщикам различных вариантов ОС UNIX и Windows в результате длительной работы удалось придти к соглашению об основных стандартах этой операционной системы. Сейчас все распространенные версии операционных систем в основном совместимы по части интерфейсов, предоставляемых прикладным (а в большинстве случаев и системным) программистам.
Применительно к информационным системам и базам данных технология “клиент-сервер” находит свое применение в двух основных направлениях:
6.3. Распределенные сетевые БД на базе локальных вычислительных сетей крупных компаний и организаций;
6.4. Организация доступа к базам данных, используя WEB-технологии.
6.3. Реализация распределенной бд в локальной вычислительной сети
Термин "сервер баз данных" - обычно используют для обозначения всей БД, основанной на архитектуре "клиент-сервер". Он включает три основных компонента:
Представление данных – клиентская часть, образующая интерфейс пользователя с базой данных.
Приложение – прикладная программа, реализующая необходимые прикладные функции для работы с базой данных.
Доступ к ресурсам – работа с данными, расположенными на физическом носителе.
Распределение компонентов в локальной сети может быть различным. Всего различают 5 способов реализации распределенной БД в локальной компьютерной сети (рис. 06p1 – Архитектура клиент-сервер).
(1-1) Файловый сервер
Данный подход впервые реализован фирмой Novell в продукте Netware.
Основное достоинство: минимальные требования к ресурсам сервера
Недостатки: 1) основной комплекс программ на клиентской станции, что предъявляет повышенные требования к ее ресурсам и 2) высокая интенсивность трафика по ЛВС.
(1-2) Распределенный файловый сервер.
Вариант применяется для снижения нагрузки на ЛВС путем разделения данных. При этом часть БД доступна только на локальной машине.
(2-1) SQL-сервер БД
Наиболее часто используемый вариант для средних и крупных баз данных.
В качестве основного интерфейса между клиентской и серверной частями выступает язык баз данных SQL - стандарт интерфейса СУБД в открытых системах.
Серверы баз данных, интерфейс которых основан исключительно на языке SQL, обладают своими преимуществами и своими недостатками.
(+) Очевидное преимущество - стандартность интерфейса. Клиентские части любой SQL-ориентированной СУБД могут работать с любым SQL-сервером вне зависимости от того, кто его произвел.
(-) Недостаток тоже довольно очевиден. При таком высоком уровне интерфейса между клиентской и серверной частями системы на стороне клиента работает слишком мало программ СУБД.
(2-2) Распределенный SQL-сервер. При этом часть БД кэшируется на локальной машине и затем переносится в ОСНОВНУЮ ЧАСТЬ!!!
0) В типичном на сегодняшний день случае на стороне клиента СУБД работает только такое программное обеспечение, которое не имеет непосредственного доступа к базам данных, а обращается для этого к серверу с использованием языка SQL.
1) В некоторых случаях хотелось бы включить в состав клиентской части системы некоторые функции для работы с "локальным кэшем" базы данных, т.е. с той ее частью, которая интенсивно используется клиентской прикладной программой.
2) С другой стороны, иногда хотелось бы перенести большую часть прикладной системы на сторону сервера, если разница в мощности клиентских рабочих станций и сервера чересчур велика.
(3) Сервер приложений
Используется при применении дорогих (количество лицензий) и ресурсоемких прикладных программ.
