Правила взаимодействия клиентского приложения и ядра СУБД ЛИНТЕР

Взаимодействие клиентского приложения и ядра СУБД ЛИНТЕР осуществляется по следующим правилам:

  • сетевой драйвер клиента, запущенный на компьютере с клиентским приложением, принимает команды интерфейса нижнего уровня, посланные клиентским приложением удаленному ЛИНТЕР-серверу, и перенаправляет их по сети сетевому драйверу сервера или локальной БД (если используется локальный протокол обмена данными local);

  • сетевой драйвер сервера принимает команду и (как любое клиентское приложение) отправляет ее ядру СУБД.

Соответствие имени удаленного ЛИНТЕР-сервера и его сетевого адреса задается в конфигурационном файле сетевого клиента (nodetab).

Оба драйвера работают в автоматическом режиме.

Таким образом, схема прохождения команды от клиентского приложения на узле-клиенте к ядру СУБД на узле-сервере выглядит следующим образом (выделенное квадратными скобками не всегда является обязательным):

Приложение - > Драйвер клиента - > [Драйвер сервера] - > ядро СУБД

Результаты обработки запроса (ответы) проходят обратный путь:

ядро СУБД - > [Драйвер сервера] - > Драйвер клиента - > Приложение

Если имя удаленного ЛИНТЕР-сервера на задано явно, то клиентское приложение «не видит» разницы между собственно ядром СУБД и сетевым драйвером клиента. Приложение подаёт запрос, не зная, кто его получит (ядро СУБД или сетевой драйвер клиента). Аналогичным образом принимаются и ответы – все равно от кого: от ядра СУБД или от драйвера сервера.

Такой механизм взаимодействия позволяет отлаживать клиентское приложение на локальном компьютере и впоследствии без изменения кода переносить его на удаленный компьютер.

Если клиентскому приложению необходимо использовать несколько ЛИНТЕР-серверов (например, для переноса данных из одной БД в другую), то ему придётся явно указывать логическое имя ЛИНТЕР-сервера, к которому относится посылаемая команда. Привязка логического имени ЛИНТЕР-сервера и его сетевого адреса осуществляется в конфигурационном файле (nodetab).

СУБД ЛИНТЕР позволяет кодировать (шифровать) передаваемые ею по сети данные. Кодирование/декодирование выполняется сетевыми драйверами клиента и сервера (шифрование возможно только в том случае, если установлен соответствующий протокол обмена данными).