rusbssAgent – агенты репликации
Агенты репликации – это программные компоненты
«ruSBSS™», устанавливаемые на клиентской стороне (в дочерних сайтах)
распределенной информационной системы. В совокупности с серверами репликации,
устанавливаемыми в консолидирующих сайтах, агенты репликации выполняют сеансы
репликации клиентских и консолидирующих баз данных.
Именно агент репликации инициирует сеанс обмена информацией между клиентскими
и консолидирующими базами данных.
Агент репликации представляет собой клиентскую часть многослойного распределенного
приложения «ruSBSS™». Он реализует выполнение
следующих операций:
- установление соединения с сервером репликации;
- авторизация дочернего сайта;
- выполнение сеансов репликации баз данных:
- выполнение скриптов сквозного прохождения в клиентской базе данных;
- прием «свежей» информации из консолидирующего сайта и ее импорт в клиентскую базу данных;
- выбор «свежей» информации из клиентской базы данных и ее передача в консолидирующий сайт;
- выполнение файлового обмена с консолидирующим сайтом.
Агент репликации поставляется в трех реализациях:
- исполняемый модуль (rusbssAgent.exe);
- исполняемый модуль для запуска по расписанию (rusbssAgentA.exe);
- динамически подключаемая библиотека (rusbssAgent.DLL).
Исполняемый модуль агента репликации rusbssAgent.exe запускается как обычное
приложение Windows, например: c:\MyFolder\rusbssAgent.exe
Исполняемый модуль агента репликации для запуска по расписанию rusbssAgentA.exe предназначен для использования в тех случаях, когда
Вам необходимо автоматизировать процесс выполнения сеансов обмена, т.е. проводить
их по заранее заданному расписанию без участия оператора.
Динамически подключаемая библиотека rusbssAgent.dll
предназначена для использования в приложениях, реализующих технологию репликации
баз данных на основе системы «ruSBSS™».
Сеанс репликации всегда инициируется со стороны дочернего сайта путем запуска
агента репликации, который взаимодействует с сервером репликации, установленным
в консолидирующем сайте.
Ниже приведено упрощенное описание алгоритма сеанса репликации. В реальности
все происходит несколько иначе, однако именно такое упрощенное толкование алгоритма
поможет Вам понять суть процесса репликации баз данных.
В каждом сеансе репликации выполняются следующие шаги:
- Поиск сервера репликации
- Попытка соединения сервера репликации с консолидирующей базой данных
- Проверка прав доступа сайта к консолидирующей базе данных
- Выполнение скриптов сквозного прохождения
- агент передает серверу репликации идентификатор последнего удачно выполненного
в прошлом сеансе скрипта сквозного прохождения и запрашивает список скриптов, которые
он должен выполнить в текущем сеансе
- если список скриптов не пуст, то производится их последовательное выполнение
в клиентской базе данных; после каждого удачно выполненного скрипта агент фиксирует
в клиентской базе данных факт его выполнения
- Прием информации из консолидирующей базы данных
- агент запрашивает у сервера репликации список таблиц для приема информации
в текущем сеансе
- для каждой таблицы из этого списка
- агент информирует сервер о том, какая самая «свежая» запись была помещена
в эту таблицу в клиентской базе данных в прошлом сеансе
- сервер выполняет запрос данных нисходящего потока, выбирая из консолидирующей
базы данных все более «свежие» записи
- сервер упаковывает и передает агенту полученный набор данных
- агент принимает, распаковывает этот набор и сохраняет его на локальном диске
- агент последовательно (по одной записи в порядке сортировки принятого набора
данных) накатывает его на таблицу-приемник клиентской базы данных с учетом кода
операции (добавить/исправить/удалить запись)
- агент фиксирует в клиентской базе данных информацию о степени «свежести» последней
удачно размещенной записи
- Передача информации в консолидирующую базу данных
- агент запрашивает у сервера репликации список таблиц для передачи информации
в текущем сеансе
- для каждой таблицы из этого списка
- агент выполняет проверку наличия и, при необходимости, создание в базе данных
специальных объектов поддержки репликации для текущей таблицы
- агент запрашивает сервер репликации о том, какая самая «свежая» запись
была помещена в эту таблицу в консолидирующей базе данных в прошлом сеансе
- агент выполняет запрос данных восходящего потока, выбирая из клиентской базы
данных все «свежие» записи
- агент упаковывает и передает серверу полученный набор данных
- сервер принимает, распаковывает этот набор и сохраняет его на локальном диске
- сервер последовательно (по одной записи в порядке сортировки принятого набора
данных) накатывает его на таблицу-приемник в консолидирующей базе данных с учетом
кода операции (добавить/исправить/удалить запись)
- сервер фиксирует в консолидирующей базе данных информацию о степени «свежести»
последней удачно размещенной записи
Более подробно см.
rusbss_book,
rsx_book
| |