Архитектура клиент-сервер для баз данных
В настоящее время большинство СУБД поддерживают режим работы клиент-сервер. Технология клиент-сервер обеспечивает прикладным программам – клиентам – доступ к данным, которыми управляет сервер, и позволяет нескольким клиентам работать с одним сервером.
Сервер определим как процесс, который выполняет запросы от других процессов. (Иногда под сервером подразумевают также узел в сети, на котором выполняется процесс сервера). Сервер базы данных определим как логический процесс, отвечающий за обработку запросов к базе данных. Клиента определим как процесс, отправляющий серверу запрос на обслуживание. К функциям клиента относятся: установление связи с сервером БД; запрос конкретного вида обслуживания; получение результатов запроса; подтверждение окончания обслуживания.
При использовании технологии клиент-сервер клиент посылает запрос серверу, который в соответствии с запросом выбирает данные из базы данных, возможно, подвергает их предварительной обработке и отправляет результаты клиенту. Таким образом, основную работу с базой данных выполняет сервер, что позволяет уменьшить сетевой трафик.
|
|
В качестве языка, на котором формулируются запросы к базе данных, обычно выступает язык SQL.
Основной принцип технологии клиент-сервер – разделение функций стандартного интерактивного приложения на четыре группы:
1. Функции ввода и отображения данных (интерфейс).
2. Прикладные функции.
3. Функции хранения данных и управления информационными ресурсами.
4. Служебные функции.
Прикладные функции зависят от предметной области, например, для системы продажи авиабилетов такими функциями являются поиск мест на рейс, продажа и бронирование билетов и т. д.
Служебные функции играют роль связок между функциями групп 1–3. В соответствие с этими группами выделяют три логических компонента:
1. Компонент представления (для ввода и отображения данных).
2. Прикладной компонент (для реализации прикладных функций).
3. Компонент доступа к информационным ресурсам (для управления данными).
Рассмотрим модель организации архитектуры клиент-сервер для БД, предложенную специалистами Garther Groups (рис. 1).
Рис.1. Модель организации архитектуры клиент-сервер для баз данных
Как видно из рис. 1, модель архитектуры клиент-сервер зависит от распределения функций между клиентом и сервером. Для создания распределённой БД (1) необходима СУБД, поддерживающая функции распределённости. Это сложный в реализации и очень дорогостоящий вариант. Удалённое управление данными (2) используется в файл-серверах, основной недостаток которых – большой трафик и низкая параллельность работы с данными.
|
|
В реальных информационных системах чаще всего используются модели распределённой логики (3) и удалённого представления данных (4). Первая из них применяется тогда, когда нужно разгрузить сервер и передать часть функций по обработке данных клиенту. А удалённое представление данных – это классическое применение сервера баз данных.
Модель распределённого представления данных чаще всего говорит о неудачном проектировании АИС. Сервер не должен заниматься вопросами организации представления данных: этим должно заниматься клиентское приложение. К вопросам представления, в частности, относится преобразование типов данных, формирование отчётов, диаграмм и т. п.