АРХИТЕКТУРА КЛИЕНТ-СЕРВЕР СУБД INTERBASE
ОСНОВНЫЕ ОСОБЕННОСТИ АРХИТЕКТУРЫ КЛИЕНТ-СЕРВЕР
Клиенты и серверы локальных сетей
В основе широкого распространения локальных сетей компьютеров лежит известная идея разделения ресурсов. Развитие этой идеи приводит к функциональному выделению компонентов сети: рабочих станций и серверов локальной сети.
Рабочая станция предназначена для непосредственной работы пользователя или категории пользователей и обладает ресурсами, соответствующими локальным потребностям данного пользователя. Специфическими особенностями рабочей станции могут быть объем оперативной памяти (далеко не все категории пользователей нуждаются в наличии большой оперативной памяти), наличие и объем дисковой памяти (достаточно популярны бездисковые рабочие станции, использующие внешнюю память дискового сервера), характеристики процессора и монитора (некоторым пользователям нужен мощный процессор, других в большей степени интересует разрешающая способность монитора, для третьих обязательно требуются средства ускорения графики и т. д.). При необходимости можно использовать ресурсы и (или) услуги, предоставляемые сервером.
Сервер локальной сети должен обладать ресурсами, соответствующими его функциональному назначению и потребностям сети. Сервер локальной сети предоставляет ресурсы (услуги) рабочим станциям и (или) другим серверам.
Клиентом локальной сети принято называть компонент локальной сети, запрашивающий услуги у некоторого сервера. Сервер — компонент локальной сети, оказывающий услуги некоторым клиентам.
Системная архитектура «клиент-сервер»
Понятно, что в общем случае, чтобы прикладная программа, выполняющаяся на рабочей станции, могла запросить услугу у некоторого сервера, как минимум, требуется некоторый интерфейсный программный слой, поддерживающий такого рода взаимодействие. Из этого, собственно, и вытекают основные принципы системной архитектуры «клиент—сервер».
Система разбивается на две части — клиентскую и серверную, которые могут выполняться в разных узлах сети. Прикладная программа или конечный пользователь взаимодействует с клиентской частью системы, которая в простейшем случае обеспечивает просто надсетевой интерфейс. Клиентская часть при потребности обращается по сети к серверной части. Заметим, что в развитых системах сетевое обращение к серверной части может и не понадобиться, если система может предугадывать потребности пользователя, и в клиентской части содержатся данные, способные удовлетворить его следующий запрос.
Интерфейс серверной части определен и фиксирован, поэтому возможно создание новых клиентских частей существующей системы.
Серверы баз данных
Термин «сервер баз данных» обычно используют для обозначения всей СУБД, основанной на архитектуре «клиент—сервер», включая и серверную, и клиентскую части. Такие системы предназначены для хранения и обеспечения доступа к БД.
Хотя обычно одна база целиком хранится в одном узле сети и поддерживается одним сервером, серверы БД представляют собой простое и дешевое приближение к распределенным базам, поскольку общая БД доступна для всех пользователей локальной сети.
Принципы взаимодействия между клиентскими и серверными частями
Доступ к БД от прикладной программы или пользователя производится путем обращения к клиентской части системы при использовании языка SQL.
Собирательное название SQL-сервер относится ко всем серверам БД, основанных на SQL.
Серверы БД, интерфейс которых основан исключительно на языке SQL, обладают своими преимуществами и недостатками. Очевидное преимущество — стандартность интерфейса. Клиентские части любой SQL-ориентированной СУБД могли бы работать с любым SQL-сервером вне зависимости от того, кто его произвел.
Недостаток тоже очевиден. При таком высоком уровне интерфейса между клиентской и серверной частями системы на стороне клиента работает слишком мало программ СУБД. Это нормально, если клиент использует маломощную рабочую станцию. Но если клиентский компьютер обладает достаточной мощностью, то часто возникает желание возложить на него больше функций управления БД, разгрузив сервер, который является «узким местом» всей системы.
Одним из перспективных направлений СУБД является гибкое конфигурирование системы, при котором распределение функций между клиентской и пользовательской частями СУБД определяется при установке системы.
Типичное разделение функций между клиентами и серверами
В типичном на сегодняшний день случае на стороне клиента СУБД работает только такое программное обеспечение, которое не имеет непосредственного доступа к БД, а обращается для этого к серверу с использованием языка SQL.
В некоторых случаях хотелось бы включить в состав клиентской части системы некоторые функции для работы с «локальным кэшем» БД, т. е. с той ее частью, которая интенсивно используется клиентской прикладной программой. В современной технологии это можно сделать только путем формального создания на стороне клиента локальной копии сервера БД и рассмотрения всей системы как набора взаимодействующих серверов.
С другой стороны, иногда хотелось бы перенести большую часть прикладной системы на сторону сервера, если разница в мощности клиентских рабочих станций и сервера чересчур велика.
InterBase и область его применения
InterBase представляет собой полнофункциональный SQL-сервер. Сервер БД — это программный процесс, который выполняется на узле сети, где расположен главный компьютер и физически расположена сама БД. Процесс сервера — единственный процесс на любом узле, который может исполнять прямые операции ввода-вывода для файлов БД.
Клиенты посылают запросы серверному процессу, чтобы выполнить различные действия, включая:
- ? поиск в БД по заданным условиям;
- ? сравнение, сортировку и предоставление данных в табличном виде;
- ? изменение хранимых данных;
- ? добавление новых данных в базу;
- ? удаление данных из базы;
- ? создание новых БД и структур данных;
- ? выполнение программного кода на сервере;
- ? передачу сообщения другим клиентам, подключенным в данный момент к серверу.
Серверный процесс является полностью сетевым. Он поддерживает запросы на подключение от других узлов сети и тот же протокол InterBase прикладной программы, что и клиентские процессы.
Несколько клиентов могут быть связаны с многопоточным процессом сервера одновременно.
Сервер регулирует доступ к отдельным записям данных в пределах БД и обеспечивает монопольный доступ к записям, когда клиенты выдают запросы на изменение данных в записях.
Отличительными особенностями InterBase являются:
у/ высокая производительность и надежность сервера при минимальных требованиях к техническим средствам;
v/ поддержка стандарта SQL-92, обеспечивающая переносимость приложений;
у/ относительная низкая стоимость продукта;
? простота установки и поддержки сервера. Удобный механизм администрирования БД.
InterBase в основном используется для реализации корпоративных систем малого и среднего масштаба (количество пользователей около нескольких десятков).
- Ш ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ
- 1. Назовите компоненты локальной сети.
- 2. Опишите архитектуру «клиент—сервер».
- 3. Объясните взаимодействие между клиентским приложением и сервером.
- 4. Назовите функции, которые выполняет клиент и сервер.
- 5. Опишите СУБД InterBase и перечислите ее отличительные особенности.