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).
| |