Синхронизация распределенных гетерогенных баз данных

              
Проход по ссылкам навигацииГлавная страница > Синхронизация баз данных > rusbssAgent – агенты синхронизации
rusbssAgent – агенты синхронизации

Агенты синхронизации – это программные компоненты «ruSBSS™», устанавливаемые на клиентской стороне (в дочерних сайтах) распределенной информационной системы. В совокупности с серверами синхронизации, устанавливаемыми в консолидирующих сайтах, агенты синхронизации выполняют сеансы синхронизации клиентских и консолидирующих баз данных.

Именно агент синхронизации инициирует сеанс обмена информацией между клиентскими и консолидирующими базами данных.

Агент синхронизации представляет собой клиентскую часть многослойного распределенного приложения «ruSBSS™». Он реализует выполнение следующих операций:
  • установление соединения с сервером синхронизации;
  • авторизация дочернего сайта;
  • выполнение сеансов синхронизации баз данных:
    • выполнение скриптов сквозного прохождения в клиентской базе данных;
    • прием «свежей» информации из консолидирующего сайта и ее импорт в клиентскую базу данных;
    • выбор «свежей» информации из клиентской базы данных и ее передача в консолидирующий сайт;
  • выполнение файлового обмена с консолидирующим сайтом.
Агент синхронизации поставляется в трех реализациях:
  • исполняемый модуль (rusbssAgent.exe);
  • исполняемый модуль для запуска по расписанию (rusbssAgentA.exe);
  • динамически подключаемая библиотека (rusbssAgent.DLL).

Исполняемый модуль агента синхронизации rusbssAgent.exe запускается как обычное приложение Windows, например: c:\MyFolder\rusbssAgent.exe Исполняемый модуль агента синхронизации для запуска по расписанию rusbssAgentA.exe предназначен для использования в тех случаях, когда Вам необходимо автоматизировать процесс выполнения сеансов обмена, т.е. проводить их по заранее заданному расписанию без участия оператора. Динамически подключаемая библиотека rusbssAgent.dll предназначена для использования в приложениях, реализующих технологию репликации баз данных на основе системы «ruSBSS™». Сеанс синхронизации всегда инициируется со стороны дочернего сайта путем запуска агента синхронизации, который взаимодействует с сервером синхронизации, установленным в консолидирующем сайте. Ниже приведено упрощенное описание алгоритма сеанса синхронизации. В реальности все происходит несколько иначе, однако именно такое упрощенное толкование алгоритма поможет Вам понять суть процесса синхронизации баз данных.

В каждом сеансе синхронизации выполняются следующие шаги:
  • Поиск сервера синхронизации
  • Попытка соединения сервера синхронизации с консолидирующей базой данных
  • Проверка прав доступа сайта к консолидирующей базе данных
  • Выполнение скриптов сквозного прохождения
    • агент передает серверу синхронизации идентификатор последнего удачно выполненного в прошлом сеансе скрипта сквозного прохождения и запрашивает список скриптов, которые он должен выполнить в текущем сеансе
    • если список скриптов не пуст, то производится их последовательное выполнение в клиентской базе данных; после каждого удачно выполненного скрипта агент фиксирует в клиентской базе данных факт его выполнения
  • Прием информации из консолидирующей базы данных
    • агент запрашивает у сервера синхронизации список таблиц для приема информации в текущем сеансе
    • для каждой таблицы из этого списка
      • агент информирует сервер о том, какая самая «свежая» запись была помещена в эту таблицу в клиентской базе данных в прошлом сеансе
      • сервер выполняет запрос данных нисходящего потока, выбирая из консолидирующей базы данных все более «свежие» записи
      • сервер упаковывает и передает агенту полученный набор данных
      • агент принимает, распаковывает этот набор и сохраняет его на локальном диске
      • агент последовательно (по одной записи в порядке сортировки принятого набора данных) накатывает его на таблицу-приемник клиентской базы данных с учетом кода операции (добавить/исправить/удалить запись)
      • агент фиксирует в клиентской базе данных информацию о степени «свежести» последней удачно размещенной записи
  • Передача информации в консолидирующую базу данных
    • агент запрашивает у сервера синхронизации список таблиц для передачи информации в текущем сеансе
    • для каждой таблицы из этого списка
      • агент выполняет проверку наличия и, при необходимости, создание в базе данных специальных объектов поддержки синхронизации для текущей таблицы
      • агент запрашивает сервер синхронизации о том, какая самая «свежая» запись была помещена в эту таблицу в консолидирующей базе данных в прошлом сеансе
      • агент выполняет запрос данных восходящего потока, выбирая из клиентской базы данных все «свежие» записи
      • агент упаковывает и передает серверу полученный набор данных
      • сервер принимает, распаковывает этот набор и сохраняет его на локальном диске
      • сервер последовательно (по одной записи в порядке сортировки принятого набора данных) накатывает его на таблицу-приемник в консолидирующей базе данных с учетом кода операции (добавить/исправить/удалить запись)
      • сервер фиксирует в консолидирующей базе данных информацию о степени «свежести» последней удачно размещенной записи

Более подробно см.  sbss_BOL (rusbss.BookOnLine).