Корпоративные базы данных - статьи


2. Архитектура "клиент-сервер"



Распределенные системы - это системы "клиент-сервер". Существует по меньшей мере три модели
"клиент-сервер" (подробно о них рассказано в ):


  • Модель доступа к удаленным данным (RDA-модель)
  • Модель сервера базы данных (DBS-модель)
  • Модель сервера приложений (AS-модель)

Первые две являются двухзвенными и не могут рассматриваться в качестве базовой модели
распределенной системы (ниже будет показано, почему это так). Трехзвенная модель хороша тем,
что в ней интерфейс с пользователем полностью независим от компонента обработки данных.
Собственно, трехзвенной ее можно считать постольку, поскольку явно выделены:


  • Компонент интерфейса с пользователем
  • Компонент управления данными (и базами данных в том числе)
а между ними расположено программное обеспечение промежуточного слоя (middleware),
выполняющее функции управления транзакциями и коммуникациями, транспортировки запросов,
управления именами и множество других. Middleware - это ГЛАВНЫЙ компонент распределенных
систем и, в частности, DDB-систем. Главная ошибка, которую мы совершаем на нынешнем этапе -
полное игнорирование middleware и использование двухзвенных моделей "клиент-сервер" для
реализации распределенных систем.

Существует фундаментальное различие между технологией "SQL-клиент - SQL-сервер" и
технологией продуктов класса middleware (например, менеджера распределенных транзакций
Tuxedo System). В первом случае клиент явным образом запрашивает данные, зная структуру базы
данных (имеет место так называемый data shipping, то есть "поставка данных" клиенту). Клиент
передает СУБД SQL-запрос, в ответ получает данные. Имеет место жесткая связь типа "точка-
точка", для реализации которой все СУБД используют закрытый SQL-канал (например, Oracle
SQL*Net). Он строится двумя процессами: SQL/Net на компьютере - клиенте и SQL/Net на
компьютере-сервере и порождается по инициативе клиента оператором CONNECT. Канал закрыт
в том смысле, что невозможно, например, написать программу, которая будет шифровать SQL-



- Начало -  - Назад -  - Вперед -