Синхронизация данных
Оглавление
Ввод
межофисной синхронизации данных в эксплуатацию
Демонстрационные
офисы и хостинг
ШАГ
1. Установка и настройка Центра синхронизации
ШАГ
1.1. Выбор хостинга для сайта
ШАГ
1.2. Подготовка структуры каталогов и размещение файлов
ШАГ
1.3. Создание базы данных MySQL
ШАГ
1.4. Настройка конфигурационного файла area.ini
ШАГ
2. Установка и настройка агентов синхронизации
ШАГ
2.1. Выбор внутриофисной схемы размещения компонентов
ШАГ
2.2. Установка системы 'Агентство недвижимости' в локальной сети офиса
ШАГ
2.3. Установка пакета .NET Framework для Агента синхронизации
ШАГ
2.4. Настройка подключения Агента синхронизации к офисной базе данных
ШАГ
2.5. Настройка подключения Агента синхронизации к Центру синхронизации
ШАГ
3. Инициализация Центра синхронизации из главного офиса
ШАГ
4. Первоначальная настройка ЦС
ШАГ
4.1. Настройка списка офисов
ШАГ
4.2. Изменение пароля администратора ЦС
ШАГ
4.3. Задание общих параметров синхронизации
ШАГ
5. Синхронизация системного времени
ШАГ
7. Перезагрузка дополнительных офисов
Синхронизация
с сайтом Компании
Варианты
синхронизации с сайтом Компании
Вариант
1. Общий центр синхронизации
Вариант 2. Раздельные центры
синхронизации
Вариант 3. Синхронизация с сайтом
без межофисной синхронизации
Извлечение
данных из Центра синхронизации
Рекомендация
1. Пароль шифрования
Рекомендация
2. Навигация по строкам
Рекомендация
3. Формат хранения строк
Рекомендация
4. Организация данных на сайте
Рекомендация
5. Сеанс извлечения данных
Администрирование
Центра синхронизации
Повседневная
эксплуатация механизма межофисной синхронизации
Типовые
задачи администрирования
Задача:
Установка новых версий системы 'Агентство недвижимости'
Обобщенный
алгоритм установки новых версий
Обновление
версии базы данных ЦС
Задача:
Смена пароля шифрования данных
Задача:
Подключение нового дополнительного офиса
Задача:
Восстановление базы данных дополнительного офиса после сбоя
Предотвращение
дублирования данных
Итого:
Единое информационное пространство Компании
Начиная с версии 6.63 в системе 'Агентство недвижимости' доступна
подсистема 'Синхронизация данных', предназначенная для более эффективной
организации единого информационного пространства между офисами одной компании
по сравнению с уже имеющейся подсистемой 'Обмен данными'.
Основные возможности подсистемы "Синхронизация данных":
1) объединение любого числа
офисов компании в единое информационное пространство за счет синхронизации
между собой всех добавляемых/изменяемых/удаляемых данных в базах данных всех
офисов компании. В частности, становится возможным централизованное
редактирование справочников, в том числе справочника пользователей и их прав;
2) синхронизация данных
производится в автоматическом режиме с настраиваемой периодичностью и после
первоначальной настройки требует минимальных усилий по администрированию;
3) нет необходимости в
постоянном доступе к сети Интернет со стороны всех офисов компании;
4) минимизация трафика по
сравнению с подсистемой "Обмен данными" - добавление в
синхронизацию новых офисов увеличивает трафик на незначительную величину, т.к.
между офисами синхронизируются (отправляются/принимаются) только действительно
измененные данные;
5) шифрования всех
синхронизируемых данных
Подсистема "Обмен данными" не упраздняется по причинам:
1) для обеспечения обратной
совместимости версий системы;
для обмена данными между различными компаниями, когда необходимо ограничивать состав передаваемой информации по соображениям конфиденциальности
Подсистему "Синхронизация данных" предлагается
использовать для двух задач, которые раньше частично решались только в рамках
"Обмена данными":
1) для автоматической
сихронизации данных между офисами одной компании;
2) для автоматической
выгрузки данных на сайт компании
Функционирование подсистемы "Синхронизация данных" состоит
в следующем:
1.
На некотором сайте (поддерживающем технологию PHP) организуется Центр
синхронизации (ЦС). ЦС представляет собой некоторый набор служебных файлов
и скриптов, организованных в определенной системе каталогов (если покупатель
организует работу ЦС самостоятельно - ему предоставляется этот набор). Сайт
может располагаться как традиционным образом - у хостинг-провайдера, так и в
офисе (например, в главном офисе) Компании
2. Во всех офисах компании
помимо обычного комплекта системы 'Агентство недвижимости' на один из
компьютеров, подключенный к Интернет, устаналивается модуль 'Агент синхронизации' и осуществляется
его первоначальная настройка - адрес, имя и номер ЦС, логин и пароль доступа к
ЦС, пароль шифрования, периодичность синхронизации и проч. В случае интенсивной
синхронизации больших объемов данных рекомендуется устанавливать 'Агент синхронизации' на отдельный
компьютер
3. 'Агент синхронизации' можно запускать либо в круглосуточном режиме
либо только на нужные интервалы времени
4. В процессе своей работы 'Агент синхронизации' периодически
4.1. подключается к ЦС и к
базе данных своего офиса,
4.2. определяет перечень
данных, которые нужно отправить на ЦС, и данных, которые нужно принять с ЦС,
4.3. производит отправку
данных на ЦС, прием данных с ЦС и занесение их в базу данных своего офиса
Поддерживается работа с любым числом ЦС. Например, один ЦС может служить
для синхронизации данных между офисами компании, а другой - для выгрузки данных
на сайт компании (см. Варианты синхронизации с сайтом
Компании).
Обобщенно правила синхронизации данных между офисами состоят в следующем (под
информационным объектом далее понимается любая запись в базе данных - элемент
справочника, заявка по объекту недвижимости, учетная запись пользователя и
т.д.):
1.
После добавления информационного объекта в базу данных офиса '1' информация о нем появится в базах
данных других офисов если
1.1. Офис '1' проведет сеанс синхронизации с
Центром синхронизации
1.2. Другие офисы проведут
сеансы синхронизации с Центром синхронизации
2. После редактирования
информационного объекта в базе данных офиса '1' информация о произведенных изменениях появится в базах данных
других офисов если
2.1. Офис '1' проведет сеанс синхронизации с
Центром синхронизации
2.2. Другие офисы проведут
сеансы синхронизации с Центром синхронизации
2.3. Этот информационный
объект не был отредактирован в другом (других) офисах в более поздний момент
времени, чем в офисе '1'. Т.е. при
редактировании одного и того же информационного объекта в различных офисах
актуальной будет считаться та редакция, которая была совершена по времени
последней (см. также ШАГ 5. Синхронизация системного
времени)
3. После удаления
информационного объекта из базы данных офиса '1' он будет удален из баз данных других офисов если
3.1. Офис '1' проведет сеанс синхронизации с
Центром синхронизации
3.2. Другие офисы проведут
сеансы синхронизации с Центром синхронизации
3.3. В базах данных других
офисов нет ссылок на данный информационный объект со стороны других
информационных объектов. Если такие ссылки есть хотя бы в одном офисе, то
наличие заявленного к удалению информационного объекта будет восстановлено в
офисе '1' после еще одного сеанса
синхронизации (см. также ШАГ 4.3. Задание общих параметров
синхронизации в части параметра Время жизни
запросов на удаление объектов, суток)
Для наглядности далее в этом руководстве рассмотрение настройки и работы
межофисной синхронизации данных ведется на следующем примере:
В некоторой компании ООО "Недвижимость" имеются:
1) главный офис с
лицензионным номером 51
(демо-БД Realty-demo-51-ООО =Недвижимость=.fdb из комплекта поставки);
2) дополнительный офис с
лицензионным номером 52
(демо-БД Realty-demo-52-ООО =Недвижимость= филиал =Северный=.fdb из
комплекта поставки);
3) еще один дополнительный
офис с лицензионным номером 53
(демо-БД Realty-demo-53-ООО =Недвижимость= филиал =Южный=.fdb из
комплекта поставки)
В качестве демонстрационного домена
используется http://www.realty-index.ru.
См. также раздел Демонстрационный режим работы.
ЦС представляет собой набор служебных файлов и скрипта, организованных в
определенной системе каталогов на сайте. Для развертывания сайта ЦС подходит
любой хостинг с минимальными требованиями:
1) поддерживается
технология PHP;
2) поддерживается
технология MySQL, для одного ЦС нужна одна БД MySQL;
3) свободное место на сайте
достаточно для хранения синхронизируемых данных - ориентировочно можно принять текущее требуемое
свободное место на сайте равное удвоенному текущему размеру базы данных в
главном офисе компании.
Напомним, что сайт может располагаться как традиционным образом - у хостинг-провайдера, так и в офисе (например, в главном офисе) Компании, если Системный администратор
Компании сочтет такой вариант предпочтительным. При этом в настройке и
эксплуатации механизма синхронизации разницы между этими двумя вариантами нет
(за исключением случая, когда на одном хостинге требуется разместить и ЦС и
сайт Компании, подробнее об этом см. далее).
Первоначально
администратор сайта должен создать на нем структуру каталогов и скопировать 2 файла,
необходимые для функционирования ЦС:
|
Каталог |
Назначение |
|
\areas |
Корневой каталог центров синхронизации должен иметь имя areas. Сам
каталог areas может быть подкаталогом любого каталога сайта. В общем случае на одном
сайте могут быть развернуты несколько Центров синхронизации, но типичный
вариант - на одном сайте располагается один ЦС. |
|
area.ini |
(1-й файл) Конфигурационный файл, содержащий настройки для подключения к
БД ЦС (см. далее). |
|
\51 |
Этот каталог должен иметь имя, соответствующее номеру конкретного ЦС, в
данном случае - 51 |
|
\php |
В этом каталоге располагается PHP-скрипт, в котором реализована
функциональность ЦС |
|
s.php |
(2-й файл) PHP-скрипт Центра синхронизации |
Скрипт s.php и конфигурационный файл area.ini предоставляются отдельно при приобретении
варианта 'ЛЮКС' системы 'Агентство недвижимости'.
|
! |
Имя каталога для ЦС (в примере выше - \51) может быть выбрано любым, однако для определенности рекомендуется
делать его равным лицензионному номеру главного офиса компании, что и сделано
в примере. |
|
! |
Скрипт s.php должен быть
доступен для вызова извне. Все остальные каталоги и файлы доступа извне не
требуют и поэтому в целях безопасности должны быть закрыты от постороннего
доступа. |
В процессе работы ЦС
автоматически создаются дополнительные каталоги (в следующей таблице выделены
жирным шрифтом):
|
Каталог |
Назначение |
|
\areas |
|
|
\51
|
|
|
\db |
Этот каталог является корневым для разменения зашифрованных
синхронизируемых данных (по одному файлу для каждой строки базы данных). В процессе
работы ЦС в каталоге \db по определенному алгоритму будут автоматически создаваться подкаталоги
для того, чтобы распределить между ними большое (при необходимости) число
файлов и тем самым снизить нагрузку на файловую систему. |
|
\log |
Каталог для журналов действий и ошибок данного ЦС. |
|
\php |
|
|
\log |
Каталог для сервисных журналов действий и ошибок (все ЦС, если их на
сайте несколько) |
Для функционирования ЦС требуется пустая база данных MySQL. После ее создания
Администратор сайта должен внести данные для подключения к ней в
конфигурационный файл area.ini (см. ШАГ 1.4.
Настройка конфигурационного файла area.ini).
Конфигурационный файл area.ini должен содержать следующие параметры:
|
[parameters] mysql_host
=XXX.XXX.XXX.XXX mysql_login
=mysqllogin mysql_psw
=mysqlpsw mysql_db
=mysqldb svc_psw
=28a07720-624a-4c55-b3fa-c44c0a72dd3d |
Администратор после создания базы данных MySQL должен отредактировать
параметры mysql_XXX конфигурационного
файла таким образом, чтобы скрипт s.php
мог подключаться к базе данных.
Значение параметра svc_psw является сервисным паролем, который запрашивается 'Агентом синхронизации'
при выполнении инициализации БД ЦС. Значение svc_psw рекомендуется выбрать таким, чтобы исключить легкий подбор
и запоминание при беглом просмотре.
Возможны различные схемы размещения компонентов системы 'Агентство
недвижимости' в офисах. Приведем две рекомендуемые схемы:
|
Компьютеры |
Используемые компоненты |
Дополнительно |
|
СХЕМА 1 |
||
|
Компьютер 1 - Сервер |
1.
сервер баз данных FireBird; 2.
рабочая база данных; 3.
агент синхронизации |
Компьютер подключен к сети Интернет (обязательно), оснащен источником бесперебойного питания
(рекомендуется), в качестве рабочего места в рамках системы 'Агентство
недвижимости' не используется (рекомендуется) |
|
|
|
|
|
Остальные компьютеры локальной сети офиса - рабочие станции |
Программа 'Агентство недвижимости' |
|
|
|
|
|
|
СХЕМА 2 |
||
|
Компьютер 1 - Сервер |
1.
сервер баз данных FireBird; 2.
рабочая база данных |
Компьютер оснащен источником
бесперебойного питания (рекомендуется), в качестве рабочего места в рамках
системы 'Агентство недвижимости' не используется (рекомендуется) |
|
Компьютер 2 - Агент синхронизации |
1.
агент синхронизации |
Компьютер подключен к сети Интернет (обязательно), в качестве рабочего места
в рамках системы 'Агентство недвижимости' не используется (рекомендуется) |
|
Остальные компьютеры локальной сети офиса - рабочие станции |
Программа 'Агентство недвижимости' |
|
Если есть возможность реализовать любую из двух приведенных схем выбор
можно производить, основываясь на следующей информации:
1) Сервер баз данных
обрабатывает запросы от всех пользователей системы в офисе, поэтому компьютер
для выполнения роли сервера должен обладать достаточной вычислительной
мощностью.
2) В направлениях к и от
сервера баз данных имеет место, как правило, наибольший трафик в сети. В случае
большого числа рабочих мест в сети офиса системный администратор должен
принимать это во внимание.
3) Агент синхронизации во
время каждого сеанса синхронизации достаточно интенсивно генерирует запросы к
серверу баз данных и загружает процессор компьютера, на котором расположен.
На все офисные компьютеры, которые будут задействованы в системе 'Агентство
недвижимости' (в соответствии с выбранной схемой, см. ШАГ 2.1.
Выбор внутриофисной схемы размещения компонентов) необходимо установить
систему 'Агентство недвижимости'. В результате на каждый из этих компьютеров
будет установлен полный набор компонентов (за исключением .NET Framework, см. далее),
необходимых для использования компьютера в любом качестве - и сервера для
размещения базы данных и агента синхронизации и рабочей станции. Т.е. набор
компонентов на каждом компьютере, вообще говоря, будет избыточным, но к
осложнениям это не приведет, наоборот - упростит последующую настройку и
эксплуатацию системы.
|
! |
Агент синхронизации является отдельной
программой и устанавливается на компьютер автоматически во время установки
всех других компонентов системы 'Агентство недвижимости'. |
Для работы 'Агента синхронизации' требуется пакет .NET
Framework 4.0 или новее.
|
! |
Установка пакета .NET Framework требуется только для того компьютера,
на котором будет работать 'Агент
синхронизации'. |
Зачастую пакет .NET Framework 4.0 уже установлен на
компьютере, особенно, если ранее на нем устанавливались лругие продукты
Microsoft. Проверить, установлен ли .NET Framework 4.0, можно, например,
в инструменте Windows "Установка и удаление программ".
Установку пакета можно выполнить различными способами:
1) непосредственно
с сайта Microsoft - требуется подключение к интернету;
2) из заранее
загруженного полного дистрибутива .NET Framework - подключение к
интернету не требуется.
Если установку необходимо выполнить только на один компьютер - проще это
осуществить непосредственно с сайта Microsoft. Иначе, в условиях платного
интернет-трафика, рациональнее сначала скачать с сайта Microsoft полный дистрибутив,
а затем уже выполнять установку из этого дистрибутива на компьютеры без их
подключения к интернету и, соответственно, без дополнительных затрат на трафик.
Для работы программы установки .NET Framework требуется также пакет Windows
Installer 3.1. Скорее всего, он уже присутствует на компьютере. В
инструменте "Установка и удаление программ" он отображается
примерно следующим образом:

Если Windows Installer не установлен, его можно скачать с сайта
Microsoft:
http://www.microsoft.com/downloads/details.aspx?familyid=889482FC-5F56-4A38-B838-DE776FD4138C&displaylang=ru
При наличии на компьютере Windows Installer 3.1 можно производить
установку .NET Framework.
Скачать пакет .NET Framework 4.0 можно с сайта Microsoft:
http://www.microsoft.com/downloads/details.aspx?FamilyID=9cfb2d51-5ff4-4491-b0e5-b386f32c0992&displayLang=ru
С указанной страницы на компьютер сначала скачивается небольшой
загрузчик, который затем загружает из интернета только необходимые части пакета
и устанавливает их.
Если же сначала необходимо скачать полный дистрибутив чтобы затем устанавливать
его на нескольких компьютерах, можно воспользоваться ссылкой
Полный дистрибутив занимает примерно 48Мб.
Настройка 'Агента синхронизации' заключается в добавлении в
офисную базу данных записи о Центре синхронизации и задании параметров
работы с ним. Рассмотрим настройку на примере демонстрационных баз данных.
При запуске 'Агента синхронизации' (меню Пуск->Программы->Агентство
недвижимости->Агент синхронизации) появляется окно подключения к базе
данных, например:

|
! |
Как было указано выше,
работа Агента синхронизации требует наличия на компьютере
установленного пакета .NET Framework. Если данный пакет на компьютере
еще не установлен, запуск 'Агента синхронизации' будет прерван с
сообщением об ошибке. |
По умолчанию в поле Компьютер указано localhost,
что означает "данный компьютер". Если необходимо работать с БД,
расположенной на другом компьютере, в это поле нужно ввести имя удаленного
компьютера.
Поле База данных изначально пусто. В него нужно ввести или выбрать имя
файла базы данных.
В поле Пользователь всегда введен специальный сервисный пользователь
базы данных REPLICATOR_USER, от имени которого будут
осуществляться все действия Агента синхронизации.
В поле Пароль необходимо ввести пароль пользователя REPLICATOR_USER, по
умолчанию это masterkey, как и для администратора Firebird -
пользователя SYSDBA. Пароль REPLICATOR_USER может быть изменен в программе 'Агентство
недвижимости' в окне Сервис базы данных в закладке Пароли
пользователей Firebird.
Зададим параметры подключения к демо-БД с лицензионным номером 51, она будет
выступать в качестве БД главного офиса:

После нажатия на Подключиться произойдет подключение к базе
данных и все введенные параметры, кроме Пароль, будут сохранены в файл
подключения Realty6Agent.dbconn в том же каталоге, где находится файл Агента
синхронизации Realty6Agent.exe. При последующих запусках Агента
синхронизации данные о компьютере и размещении базы данных будут
автоматически считываться из файла подключения и достаточно будет вводить
только пароль.
'Агент синхронизации' при первом подключении к базе данных
инициализирует ее для обеспечения процесса синхронизации данных. Процесс инициализации
заключается в специальной настройке структуры базы данных. Сервер баз данных
FireBird, который используется в
системе 'Агентство недвижимости', подразумевает такое создание от имени
администратора сервера с зарезервированным именем sysdba. 'Агент синхронизации' должен знать пароль администратора.
Если при первом запуске 'Агента синхронизации' пользователь sysdba имеет пароль masterkey, т.е. не измененный по
сравнением с тем, как он устанавливается по умолчанию, процесс инициализации
начинается автоматически. Иначе 'Агент синхронизации' просит указать пароль:

Кнопка Протестировать позволяет
убедиться в том, что пароль введен верно. Имя пользователя sysdba не редактируется. Впоследствии пароль может быть изменен в
закладке Администрирование офиса -
Настройки (см. ШАГ 2.5. Настройка подключения
Агента синхронизации к Центру синхронизации).
После подключения к базе данных появляется главное окно Агента
синхронизации. Во время самого первого запуска оно будет пустым:

Переключимся на закладку Администрирование
офиса, в ней на внутреннюю закладку Настройки
и нажмем на кнопку Добавить.
Появится окно Настройка взаимодействия
данного офиса с Центром синхронизации. Введем в этом окне необходимые
значения:

Номер ЦС - номер ЦС должен совпадать с номером ЦС, заданным на шаге ШАГ
1.2. Подготовка структуры каталогов и размещение файлов. В
нашем примере номер ЦС выберем как "51",
т.е. совпадающим с лицензионным номером главного офиса компании.
Название ЦС - его можно задать произвольно, но во избежание путаницы настоятельно
рекомендуется, чтобы оно было одинаковым при настройке Агента синхронизации
во всех офисах. Пусть это будет ЦС51.
Web-сервис ЦС - указывается полный интернет-адрес корневого каталога \areas
на сайте. В нашем примере ЦС размещен на сайте www.realty-index.ru, а корневой каталог ЦС размещен в корневом
каталоге сайта, поэтому интернет-адрес будет http://www.realty-index.ru/areas.
Пароль подключения данного офиса к ЦС - пароль подключения нашего офиса
(а сейчас мы рассматриваем главный офис) к ЦС. Для демонстрационных целей пока
пусть он будет равным номеру самого офиса. Заметим, что этот пароль на данном
этапе не важен, он станет актуальным позже, на этапе инициализации ЦС (см. ШАГ
3. Инициализация Центра синхронизации из главного офиса).
Кнопка Протестировать
подключение к ЦС: - после задания вышеуказанных параметров необходимо
проверить их корректность в работе. Для этого следует нажать на данную кнопку -
Агент синхронизации выполнит попытку подключения к ЦС, которое было настроено
ранее на шаге ШАГ 1. Установка и настройка Центра
синхронизации. Если подключение удалось, Агент синхронизации получит текущее
время по часам ЦС и отобразит сообщение вида:

Заметим, что этот тест должен сработать даже в том случае, когда
база данных на сайте еще не не создана и не инициализирована, т.к. выполнение
теста не подразумевает обращения к базе данных ЦС.
Пароль шифрования данных - пароль может быть задан любым, но обязательно
идентичным для всех офисов. Все данные в ЦС хранятся в файлах *.zip,
зашифрованные этим паролем. Зададим пароль 1 (в реальной эксплуатации нужно выбирать более стойкий
пароль - от 8 символов длиной). Заметим, что пароль шифрования данных хранится
только в офисных базах данных и не хранится в самом ЦС. По этой причине никто,
даже получив несанкционированный доступ к сайту, не сможет прочитать
зашифрованные данные.
Режим обмена данными - Пакетный или Пообъектный. Пакетный режим обмена данными является наиболее
эффективным с точки зрения скорости работы, минимизации обращений на сайт и
трафика. Пакетный режим объединяет в пакеты однотипные команды и данные
(объекты) вместо того, чтобы отправлять/принимать их поодиночке (пообъектно).
Вместе с тем пакетный режим создает повышенную нагрузку на сайт, т.к. за
единицу времени скрипт на сайте будет поглощать больше процессорного времени.
Пообъектный режим работает медленно, но вычислительная нагрузка на сайт
минимальна. Наличие пообъектного режима необходимо для особых случаев. По
умолчанию включается пакетный режим. Более подробно работа пакетного режима
рассматривается далее при описании сеансов синхроинизации.
Интервал синхронизации, сек - здесь необходимо выбрать, с какой частотой
Агент синхронизации будет подключаться к ЦС и осуществлять собственно
синхронизацию. Интервал выбирается в зависимости от предполагаемой
интенсивности работы в офисах - при редком редактировании баз данных в офисах
интервал можно выбрать большим, например 10 мин (10*60=600сек), при очень
интенсивном редактировании данных интервал имеет смысл уменьшить до нескольких
десятков секунд (в нашем примере выбрано 20сек). Следует помнить, что во время
сеанса синхронизации Агент синхронизации может потреблять значительные
вычислительные ресурсы компьютера, на котором он установлен, следовательно
очень частая синхронизация может приводить практически к постоянной загрузке
процессора компьютера, на котором работает Агент синхронизации.
Интервал опроса, сек - технический параметр, означающий, с какой
частотой Агент синхронизации будет производить попытки подключиться к
ЦС, если при первоначальной попытке подключения оказалось, что ЦС был занят
сеансом с другим офисом. Этот параметр следует выбирать меньшим, чем Интервал синхронизации (в нашем примере
выбрано 2сек).
Уровень подробности журнала - уровень подробности, с которым будут выводиться
в Журнал синхронизации (расположен на первой закладке - Синхронизация) сообщения о событиях,
возникающих в процессе синхронизации с ЦС. Для отображения всех сообщений
достаточно выставить уровень 10. Заметим, что более высокие уровни подробности
могут приводить к выводу в журнал большого числа строк, что, в свою очередь,
может замедлять собственно сеанс синхронизации. Если нет особых причин, уровень
подробности нужно выбирать минимальным - 1.
Осуществлять синхронизацию с данным центром синхронизации - этот
переключатель необходимо отметить, если ЦС, параметры которого задавались в
этом окне, должен участвовать в синхронизации. Необходимость в снятии отметки в
этом переключателе появляется тогда, когда в список ЦС добавляются более одного
ЦС и: 1) некоторые из этих ЦС являются резервными или 2) подготавливаются для
переноса ЦС с одного сайта на другой или 3) сайт компании, на который
синхронизировались данные из данного офиса, закрыт на реконструкцию и т.д.
По окончании редактирования следует нажать на Сохранить.
Содержимое закладки Администрирование
офиса - Настройки будет
выглядеть следующим образом:

В закладке Администрирование ЦС
нажимаем на кнопку Инициализировать ЦС:

Появится окно Инициализация ЦС:

Заполним поля:
ЦС для инициализации - с помощью кнопки : выберем ЦС (пока единственный в
списке), который необходимо инициализировать:

Сервисный пароль ЦС - здесь необходимо
ввести пароль, содержащийся в параметре svc_psw файла area.ini (см. ШАГ 1.4. Настройка конфигурационного
файла area.ini).
Номер главного офиса - укажем число 51, как это было условлено в разделе Демонстрационные
офисы.
Пароль подключения главного офиса - укажем строку 51, как это было условлено в разделе ШАГ 2.5.
Настройка подключения Агента синхронизации к Центру синхронизации.
Итого:

После нажатия на кнопку Инициализировать
и выдачи предупредительного сообщения

Агент синхронизации предпримет попытку подключения к ЦС 51 и отправит
команду на инициализацию ЦС. Собственно инициализация заключается в настройке
базы данных ЦС таким образом, чтобы в дальнейшем стало возможным управление ЦС
и его функционирование для межофисной синхронизации:

После инициализации ЦС можно приступать к его настройке на конкретный набор
синхронизируемых офисов. Для этого в закладке Администрирование ЦС нажимаем на кнопку Администрировать ЦС::
Выбираем ЦС для администрирования

и вводим специальный пароль Администратора ЦС:

По умолчанию при инициализации ЦС пароль Администратора ЦС автоматически
устанавливается в 1 (в дальнейшем
его настоятельно рекомендуется изменить). Откроется панель администрирования
ЦС:

Внесем в список офисов наши дополнительные офисы 52 и 53. Для этого
служит кнопка Добавить: ниже таблицы
Офисы в ЦС. Пример для офиса 52:

Для упрощения демонстрационного примера пароли подключения к дополнительным
офисам пока сделаем равными номерам самих офисов. Переключатель Этот офис является главным служит для
смены главного офиса в дальнейшем, если в этом возникнет необходимость.
Напомним, что перезагрузка ЦС (см. ШАГ 6. Перезагрузка ЦС) в целях безопасности
разрешена только из главного офиса. Итого:

Как было указано выше, по умолчанию пароль Администратора ЦС
устанавливается в 1. В начале работы его следует сменить (рекомендуемая длина
пароля - не менее 8 символов). Изменение пароля можно выполнить в блоке Пароль Администратора ЦС.
В блоке Общие параметры
синхронизации в панели администрирования ЦС представлены те параметры,
которые ЦС использует при проведении всех сеансов синхронизации со всеми
офисами. По умолчанию параметры выставлены таким образом, чтобы подойти к
большинству реальных ситуаций. Однако в некоторых случаях их можно
отредактировать для достижения особых целей. Прокомментируем их:
Размер блока данных для отправки из офисов
в ЦС, байт - при отправке данных из офисов в ЦС 'Агент синхронизации' разбивает их на
блоки. Чем больше блок, тем меньше отправок и тем выше общая скорость передачи.
Вместе с тем следует принимать во внимание по крайней мере 2 обстоятельства: 1) практически все php-хостинги накладывают ограничение на максимальный
размер принимаемых файлов, 2) если
интернет- канал неустойчив, то передача данных большими блоками ввиду сбоев
может затянуться надолго.
Размер блока данных для отправки из ЦС в
офисы, байт - влияние на общую скорость
синхронизации аналогично предыдущему параметру. Сильному увеличению значения
здесь могут препятствовать примерно те же причины.
Число команд в одном пакете для обработки
в ЦС - ЦС при работе в пакетном режиме (см. ШАГ 2.5.
Настройка подключения Агента синхронизации к Центру синхронизации) может столкнуться с
ситуацией, когда число полученных на исполнение команд от офиса слишком велико,
чтобы выполнить их все подряд до того момента, пока php-хостинг не сочтет, что выполняющийся скрипт превысил допустимое время
работы (часто это 30 сек) и принудительно не прервет выполнение скрипта.
Механизм работы ЦС обрабатывает такие ситуации - в следующем запуске скрипт
продолжает работу с команды, которая в предыдущем запуске выполнялась
последней, но была прервана. Вместе с тем, лучше избегать превышения
допустимого времени выполнения скрипта и устанавливать этот параметр не слишком
большим. Точное значение можно подобрать только экспериментально.
Таймаут запроса офиса на подключение к ЦС,
сек - В каждый момент времени в целях обеспечения целостности информации ЦС
может проводить сеанс синхронизации только с одним офисом. По этой причине по
мере увеличения числа синхронизируемых офисов в ЦС могут возникать отказы ЦС на
немедленные сеансы синхронизации с запрашивающими офисами. В этих случаях ЦС
ставит запросы на подключение от офисов в очередь и в дальнейшем запрашивающий
офис будет иметь приоритет на подключение по сравнению с офисами, которые
запрос на подключение сделали позже. Вместе с тем, возможна ситуация, когда
офис был поставлен в очередь, а затем перешел в неактивное состояние (например,
работа 'Агента синхронизации' в этом офиса была прекращена). Для того, чтобы
очередь не осталась в заблокированном состоянии, ЦС отслеживает данный таймаут
и удаляет из очереди офисы, ставшие неактивными.
Таймаут бездействия офиса, подключенного к
ЦС, сек - Если сеанс синхронизации с офисом был успешно начат, но затем офис не
проявлял активности в течение данного таймаута, сеанс принудительно
разрывается.
Время жизни запросов на удаление объектов,
суток - Удаление объектов из офисных баз данных производится по следующему
алгоритму:
1) некоторый объект
удаляется из офисной БД,
2) в процессе сеанса
синхронизации этого офиса в ЦС в числе прочих уходит команда на удаление
объекта,
3) остальные офисы при
синхронизации пытаются удалить объект в своих БД,
4) если удаление состоялось
во всех офисах, то по истечении значения данного параметра запрос будет в ЦС
удален; если же в БД одного или нескольких офисов удаление объекта не удалось
(т.е. на этот объект ссылаются другие объекты в офисной БД), то запрос на
удаление в ЦС будет аннулирован, а данный объект будет восстановлен в других
офисных базах данных.
Значение этого параметра следует выбирать таким, чтобы в течение этого
времени все офисы, заявленные в ЦС, провели по крайней мере 2 сеанса синхронизации.
Период хранения логов синхронизации
офисов, суток - В процессе своей работы ЦС документирует в офисных логах (см. ШАГ 1.2.
Подготовка структуры каталогов и размещение файлов) события, относящиеся к
сеансам синхронизации с этими офисами. Без принятия специальных мер объем логов
будет непрерывно расти. Данный параметр призван ограничивать такой рост.
Для
корректной работы механизма синхронизации данных необходимо во всех офисах
компании и в Центре синхронизации поддерживать одинаковое время.
В случае
размещения ЦС на сайте одного из платных хостингов точное время на сайте будет
обеспечиваться автоматически провайдером хостинга. Для офисных компьютеров
необходимо обеспечить синхронизацию их системного времени с одним из сервисов
точного времени в сети Интернет.
Обычно ОС Windows на
компьютере, подключенном к сети Интернет, автоматически корректирует системное
время компьютера. Пример для Windows XP:

Однако часть
компьютеров офиса может не иметь прямого подключения к Интернет и по этой
причине на них системное время автоматически корректироваться не будет. Для
таких компьютеров необходимо предпринять целенаправленные меры.
В общем случае
поддержание точного системного времени на компьютерах компании обеспечивает Системный
Администратор компании. Т.к. для этого существуют различные инструменты и
сервисы, задача не является чрезмерно сложной.
|
! |
Особое внимание необходимо обращать на
компьютеры, произвольно "сбрасывающие" установки системного времени
при каждой перезагрузке, например, по причине выхода из строя встроенного
элемента питания на системной плате. Особенно такая ситуация неприятна если
на подобном компьютере будет установлена рабочая база данных офиса. |
К
СВЕДЕНИЮ: для того, чтобы обеспечивать корректную синхронизацию данных между
офисами, расположенными в различных часовых поясах, все изменения данных в
локальных БД и в ЦС отслеживаются в Универсальном координированном времени (UTC, Coordinated
Universal Time).
К данному моменту вся настройка ЦС выполнена и можно выполнить перезагрузку
ЦС. Перезагрузка ЦС выполняется только из главного офиса (в нашем примере - 51) и заключается в экспорте всей базы
данных главного офиса в ЦС. Время, затрачиваемое на перезагрузку ЦС, напрямую
зависит от объема данных, хранящихся в БД. Запуск процесса перезагрузки ЦС
выполняется с помощью кнопки Перезагрузить
ЦС: в блоке Особые действия. После
запуска процесса можно переключиться в закладку Синхронизация и наблюдать за его ходом:

По окончании должно появиться сообщение:

Перезагрузка ЦС обычно выполняется один раз при вводе системы межофисной
синхронизации в действие. Однако в некоторых случаях (проблемы с хостингом,
смена хостинга и проч.) может потребоваться повторная перезагрузка ЦС. Заметим,
что если в ЦС уже были некоторые данные, то все эти данные в ЦС перед
собственно перезагрузкой будут удалены.
Последний этап ввода межофисной синхронизации в работу - первоначальная
перезагрузка офисов. Для этого в каждом из офисов (в любой последовательности)
нужно загрузить 'Агент синхронизации' и в закладке Синхронизация нажать на кнопку Старт.
При подключении к ЦС 'Агент синхронизации' автоматически определит, что
синхронизация данного офиса еще не проводилась и выполнит перезагрузку офиса. В
процессе перезагрузки дополнительного офиса 'Агент синхронизации'
·
очищает базу данных дополнительного офиса от всех хранящихся в ней данных,
·
подключается к Центру синхронизации и импортирует из него в базу данных
офиса все данные, ранее выгруженные в ЦС в процессе Перезагрузки главного
офиса.
Таким образом во всех дополнительных офисах оказывается практически полная
копия (за исключением некоторых служебных данных) базы данных Главного офиса.
Впоследствии возможно и принудительно инициировать перезагрузку
дополнительного офиса, даже если он уже был перезагружен. Для этого служит
кнопка Инициировать перезагрузку
дополнительного офиса: в закладках Администрирование
ЦС - Настройки. Операция состоит
в установке в ЦС специального флага, согласно которому при следующем сеансе
синхронизации с выбранным допофисом будет проведен не обычный сеанс, а
перезагрузка (См. также Задача: Восстановление офисной базы
данных после сбоя).
Механизм синхронизации данных может быть использован не только для
межофисной синхронизации, но и для синхронизации с сайтом Компании. Возможны
как минимум три варианта.
Если Центр синхронизации физически располагается на сайте Компании, то
никаких дополнительных настроек синхронизации не требуется. Все
синхронизируемые между офисами данные являются уже доступными для программного
кода сайта.
Если сайт Центра синхронизации и сайт Компании необходимо выполнить как два
физически разных сайта, то для снабжения сайта Компании данными на нем
необходимо развернуть еще один Центр синхронизации точно так же, как это было
описано выше для межофисной синхронизации. Рекомендуется такая конфигурация:
1) Главный офис Компании
объединен синхронизацией с остальными офисами посредством ЦС (назовем его
'межофисный ЦС'), развернутого на сайте, специально выделенном для организации
межофисного обмена;
2) Главный офис Компании (и
только он, другие офисы здесь не привлекаются) осуществляет синхронизацию также
и со вторым ЦС (назовем его 'сайтовым ЦС'), развернутым на сайте Компании. При
этом в 'Агенте синхронизации' главного офиса необходимо будет сконфигурировать
синхронизацию с двумя ЦС;
3) Программный код сайта
Компании может получать данные из 'сайтового ЦС' и далее использовать их для
отображения в интерфейсе сайта.
Заметим, что этот вариант наиболее сложен из всех трех и его выбор должен
иметь обоснование.
Данный вариант наиболее прост - межофисная синхронизация не используется
вообще (в Компании есть только один, он же главный, офис), а синхронизация
осуществляется только с 'сайтовым ЦС', рассмотренным в варианте 2.
При любом из вариантов синхронизации с сайтом Компании код сайта должен
иметь возможность извлекать данные из ЦС для обработки, отображения посетителям
сайта и т.д. Извлечение данных из ЦС должно производиться с учетом следующих рекомендаций:
Каким-либо образом (на усмотрение разработчиков сайта) необходимо хранить
на сайте общий для всех офисов текущий пароль шифрования данных (см., например,
ШАГ 2.5. Настройка подключения Агента синхронизации к Центру синхронизации) и получать его из кода
при необходимости.
Программист сайта может делать запросы к таблице rpRows сервисной базы данных, которая хранит ссылки на все строки всех таблиц
синхронизированной на данный момент базы данных Компании. Структура rpRows приведена в таблице:
|
"CREATE TABLE rpRows( ". "tableName
VARCHAR(64) not null, ". "rowID
BIGINT not null, ". "rowVersion
VARCHAR(64) not null, ". // в формате <updateNodeID>.<rowGeneration> "updateDate
DATETIME not null, ". // по времени узла, в UTM "fullFileName
VARCHAR(256) not null,
". "forDel
INT not null default
0,". // 0 or 1 "forDelDateSrv
DATETIME not null default
'0000-00-00 00:00:00',". "forRec
INT not null default
0,". // 0 or 1 "forRecDateSrv
DATETIME not null default
'0000-00-00 00:00:00',". "updateDateSrv DATETIME not null) " // по времени
сервера, в UTM |
Пояснения:
|
Столбец |
Назначение |
|
tableName |
Имя таблицы БД |
|
rowID |
Первичный ключ строки |
|
updateDate |
Последнее время обновления данной строки в одном из офисов |
|
fullFileName |
Полное имя файла, в котором (в зашифрованном виде) хранится собственно
содержимое строки в XML-формате (см. Рекомендация 3. Формат хранения
строк) |
|
forDel |
Если = 1, значит данная строка заявлена одним из офисов к удалению. Не
факт, что строка будет в итоге действительно удалена (см. пояснения по поводу
удаления в разделе Общие сведения) |
|
forRec |
Если = 1, значит строка сначала была заявлена к удалению, но уже от
одного из офисов поступил запрос к отмене удаления, т.е. строка скоро будет
восстановлена во всех офисах |
|
updateDateSrv |
Время последнего обновления строки по времени данного web-сервера |
Собственно данные хранятся в виде строк исходных таблиц базы данных. При
этом каждая строка представлена отдельным XML-файлом, заархивированным в собственный zip-архив с паролем шифрования данных. Схема XML-файла является стандартной для метода .NET
DataRow.Table.WriteXml(<ИмяФайла>,
XmlWriteMode.WriteSchema)
Расположение файлов рассмотрено в разделе ШАГ 1.2.
Подготовка структуры каталогов и размещение файлов, а их именование
осуществляется по следующему шаблону (на примере строки из справочника агентов):
RLT_AGENTS=12300051=51.4=20100216120550.xml.zip
где
|
RLT_AGENTS |
имя таблицы БД |
|
12300051 |
уникальное значение первичного ключа записи; по пяти последним цифрам (если
они есть) можно судить о том, на каком узле запись была первый раз создана,
например, в данном примере запись была создана на узле 00051 |
|
51.4 |
уникальный номер поколения записи: в данном примере запись была создана
(или последний раз обновлена) на узле 00051, причем всего же было 4 изменения
(первое изменение - создание) |
|
20100216120550 |
Создание (последнее обновление) записи было произведено 16.02.2010 года в
12:05:50; |
Для целей извлечения данных как правило могут представлять практический интерес
два параметра - имя таблицы и значение первичного ключа.
Содержимое самого XML-файла:
|
<?xml version="1.0"
standalone="yes" ?> <dsRLT_AGENTS> <xs:schema id="dsRLT_AGENTS" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xs:element name="dsRLT_AGENTS"
msdata:IsDataSet="true" msdata:MainDataTable="RLT_AGENTS" msdata:UseCurrentLocale="true"> <xs:complexType> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="RLT_AGENTS"> <xs:complexType> <xs:sequence> <xs:element name="ID" type="xs:double" minOccurs="0" /> <xs:element name="NAME" type="xs:string" minOccurs="0" /> <xs:element name="NODEID" type="xs:int" minOccurs="0" /> <xs:element name="AB" type="xs:string" minOccurs="0" /> <xs:element name="DLTD" type="xs:string" minOccurs="0" /> <xs:element name="UPDATEDATE" type="xs:dateTime" minOccurs="0" /> <xs:element name="ROWVERSION" type="xs:string" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> </xs:element> </xs:schema> <RLT_AGENTS> <ID>0</ID> <NAME>?</NAME> <NODEID>1</NODEID> <AB>?</AB> <DLTD>-</DLTD> <UPDATEDATE>2010-02-16T12:05:50.524+03:00</UPDATEDATE>
<ROWVERSION>51.4</ROWVERSION>
</RLT_AGENTS> </dsRLT_AGENTS> |
Организация данных на сайте может быть выбрана разработчиками сайта
любым приемлемым способом. Можно порекомендовать организовать некий
промежуточный способ хранения данных, в большей степени соответствующий
требованию оперативности отображения данных посетителям сайта. Стандартно таким
промежуточным способом хранения является база данных сайта (например,
организованная под управлением сервера БД MySQL). В этом случае данные,
отображаемые на страницах сайта, извлекаются из этой базы данных, а содержимое
самой базы данных периодически обновляется путем извлечения данных из файлов подкаталогов
каталога \db (см. ШАГ 1.2.
Подготовка структуры каталогов и размещение файлов).
Извлечение данных из
файлов каталога \db и помещение их в БД сайта рекомендуется производить
не произвольным образом, а оформлять его в виде сеанса так же, как это делают
офисы.
Для этого в 'Агенте синхронизации' главного офиса сначала необходимо добавить
фиктивный офис (ШАГ 4.1. Настройка списка офисов). Например:
|
0 |
фиктивный номер офиса, под которым будет подразумеваться сам сайт |
|
1234567 |
назначенный пароль |
Наличие фиктивного офиса позволит рассматривать обращения сайта к ЦС как
обращения обычного офиса и, таким образом, поставить эти обращения под контроль
ЦС и обеспечить необходимую безопасность данных.
Перед началом извлечения данных из файлов следует обратиться к web-серверу с
запросом:
http://www.realty-index.ru/areas/php/s.php?op=login_no_check_dbver&area=51&node=0&psw=1234567&dbVer=0
где
|
http://www.realty-index.ru/areas/php/s.php |
скрипт ЦС |
|
op=login_no_check_dbver |
параметр: команда - логин без проверки версии БД ЦС |
|
area=51 |
параметр: номер ЦС |
|
node=0 |
параметр: фиктивный номер узла |
|
psw=1234567 |
параметр: пароль фиктивного узла |
|
dbVer=0 |
параметр: в данном случае является фиктивным |
Если в ответ на этот запрос будет вернута строка
OK</br>ИдентификаторСеанса
значит, сеанс работы открыт, ему присвоен уникальный идентификатор ИдентификаторСеанса
и можно приступать к извлечению данных из файлов, не опасаясь того, в процессе
извлечения данных какой-либо офис начнет их изменение.
Если будет вернута какая-либо другая строка - значит в данный момент уже идет
сеанс с одним из офисов и сайт (как офис с номером 0) поставлен в очередь
ожидания. В этом случае необходимо повторять попытки открытия сеанса, например,
с интервалом 30 сек. Как только будет вернута строка
OK</br>ИдентификаторСеанса - сеанс открыт.
После окончания извлечения данных следует обязательно обратиться к web-серверу
с запросом:
http://realty-index.ru/areas/php/s.php?op=logout&area=51&node=0&sessionID=<ИдентификаторСеанса>&updateLastSessionInfo=1
где <ИдентификаторСеанса> - строка, возвращенная ранее при выполнении
логина
Если не выполнить операцию logout, ЦС будет заблокирован на время таймаута,
установленного для зависших сеансов (см. ШАГ 4.3. Задание общих параметров
синхронизации).
Закладка Настройки
в закладке Администрирование офиса была
подробно рассмотрена в разделе ШАГ 2.5. Настройка подключения Агента синхронизации к Центру синхронизации.
Закладка Мониторинг
в Администрировании офиса позволяет получать
статистику сеансов синхронизации для данного офиса:

Содержимое таблицы
статистики сеансов:
|
Старт |
Время начала сеанса |
|
Финиш |
Время окончания сеанса |
|
?ЦС |
?ЦС, для которого проводился сеанс |
|
Э-Доб |
Экспортировано объектов для добавления в ЦС |
|
Э-Обн |
Экспортировано объектов для обновления ЦС |
|
Э-Удал |
Экспортировано запросов для удаления объектов из ЦС |
|
Э-Восст |
Экспортировано запросов на отмену запросов на удаление из ЦС |
|
И-Доб |
Импортировано объектов для добавления в свою БД |
|
И-Обн |
Импортировано объектов для обновления в своей БД |
|
И-Удал |
Импортировано запросов для удаления объектов из своей БД |
|
Всего в ЦС |
Всего объектов в ЦС на начало сеанса |
|
Исх-Траф |
Исходящий трафик за сеанс в байтах |
|
Вх-Траф |
Входящий трафик за сеанс в байтах |
|
Сообщ |
Сообщение об ошибке, если сеанс завершился ошибкой |
ПРИМЕЧАНИЯ:
1) под объектом в таблице статистики подразумевается любая строка любой таблицы
в БД: заявка, город, улица, материал стен и т.д;
2) при подсчете трафика учитывается только значимая часть информации -
импорт/экспорт объектов (см. примечание 1) и основные служебные запросы;
3) длина сообщения ограничивается 2048 байтами; в случае более длинного
сообщения его можно полностью просмотреть в Журнале синхронизации.
Ниже таблицы статистики сеансов расположен переключатель Отображать только
результативные сеансы. Если переключатель включен, то в таблице статистики
сеансов будут отображаться только те сеансы, во время которых был
импортирован/экспортирован хотя-бы один объект.
Закладка Настройки
в закладке Администрирование ЦС была
подробно рассмотрена в разделе ШАГ 4. Первоначальная настройка ЦС.
Закладка Мониторинг
закладке Администрирование ЦС отображает
ход текущего сеанса (если он в данный момент проводится) в ЦС и статистику
сеансов синхронизации, получаемую непосредственно из ЦС.

Обновление
информации - В этом блоке можно выбрать режим обновления
информации - вручную или автоматически. При выборе в выпадающем списке элемента
'Обновлять автоматически' вид блока изменяется:

Параметром Интервал
обновления, сек можно регулировать частоту, с которой информация в блоках Общие сведения, Текущий сеанс и Очередь
подключений будет автоматически обновляться. Заметим, что чем меньше интервал,
тем больше нагрузка на web-сервер.
Общие сведения - параметр Номер ЦС не
изменяется и отображается для наглядности, Версия
БД изменяется редко.
Текущий сеанс - если в данный момент ЦС проводит сеанс синхронизации с одним из офисов,
в этом блоке отобажается основная информация об этом сеансе. Назначение всех
параметров достаточно очевидно, отметим лишь, что параметр Последняя активность сеанса имеет отношение к зависшим сеансам (см.
параметр Таймаут бездействия офиса, подключенного к
ЦС в разделе ШАГ 4.3. Задание общих параметров синхронизации).
Очередь
подключений - Отображает очередь офисов, которые заявили о
подключении к ЦС, но пока еще не смогли это сделать. Напомним, что максимальное
время нахождения офиса в очереди подключений регулируется параметром Таймаут запроса офиса на подключение к ЦС (ШАГ 4.3. Задание общих параметров синхронизации) для офисов, оставивших заявку на подключение и затем перешедших в
неактивное состояние.
Статистика
сеансов синхронизации для ЦС - ЦС ведет
собственную статистику всех сеансов синхронизации со всеми офисами. В данной
таблице эту статистику можно просмотреть. Получение статистики из ЦС (поскольку
может генерировать большой трафик и длиться ощутимое время) ограничено только
ручным режимом и осуществляется посредством кнопки Получить из ЦС статистику сеансов синхронизации.
После первоначальной настройки повседневная эксплуатация механизма 'Агента
синхронизации' оказывается достаточно простой:
1) Обязательно: в каждом из офисов - обеспечить запуск 'Агентов
синхронизации'
2) Периодически: в главном офисе - осуществлять
мониторинг синхронизации ЦС (см. Администрирование Центра синхронизации) и мониторинг
синхронизации собственного офиса (см. Администрирование офиса)
3) По мере необходимости: в дополнительных офисах
-- осуществлять мониторинг синхронизации этих офисов (см. Администрирование офиса). Необходимость в этом может возникнуть тогда, когда
мониторинг ЦС из главного офиса выявит для данного допофиса какие-либо
некорректные/непонятные особенности работы
4) По мере необходимости: в главном офисе -
выполнять процедуру обновления скрипта ЦС (см. Обновление
скрипта ЦС)
5) По мере необходимости: во всех офисах -
выполнять процедуру установки новых версий системы (см. Задача: Установка новых версий системы 'Агентство недвижимости')
В данном разделе
приведем обобщенный алгоритм установки новых версий системы 'Агентство
недвижимости' для того случая, когда в Компании используется механизм
синхронизации данных.
1.
В каждом офисе необходимо скачать программу установки системы
(файл вида realty-install-X-XX-XX.exe)
2.
В главном офисе:
2.1.
Выйти из программы 'Агентство недвижимости' на всех компьютерах,
где она была запущена
2.2.
Выйти из программы 'Агент синхронизации', если она была запущена
2.3.
Запустить и выполнить программу установки на компьютере, на котором
расположена общая база данных
2.4.
Запустить и выполнить программу установки на всех остальных
необходимых компьютерах офиса, в т.ч. на компьютере, на котором обычно работает
'Агент синхронизации'
2.5. Запустить
'Агент синхронизации' и сделать сеанс синхронизации с ЦС. Если необходимо, версия
БД в ЦС будет автоматически повышена до той, которая теперь установлена в
главном офисе.
3.
В каждом из дополнительных офисов выполнить ту же
последовательность действий, что и в главном офисе. Разница будет только в том,
что к моменту первого запуска 'Агента синхронизации' в допофисе версия БД на ЦС
уже повышена (если это было необходимо).
|
! |
Перед установкой новой версии системы
"Агентство недвижимости" в офисе необходимо ОБЯЗАТЕЛЬНО выйти из Агента
синхронизации, если он запущен |
Периодически
база данных системы 'Агентства недвижимости' подвергается модернизации с целью
расширения функциональности. При каждой такой модернизации версия базы данных
получает следующий номер. Синхронизация данных между офисами возможна только
если версии баз данных в ЦС и в офисах совпадают.
Напомним, что
версия базы данных указывается в третьей позиции номера версии системы
'Агентство недвижимости'. Например, в версии 6.61.79 системы 'Агентство недвижимости' число 79 означает версию БД офисов и ЦС.
'Агент синхронизации' поддерживает автоматическое
приведение версий БД в ЦС и главном офисе в соответствие друг с другом.
Фактически такое приведение происходит на этапе 2.5 из раздела Обобщенный
алгоритм установки новых версий.
|
! |
Если Агент синхронизации в
допофисе попытается подключиться к ЦС, на котором версия БД не совпадает с
версией БД в допофисе, подключение будет прервано с сообщением о несовпадении
версий баз данных |
Время
от времени PHP-скрипт,
обеспечивающий функциональность ЦС, может модернизироваться разработчиком
системы "Агентство недвижимости". В этом случае системным
администраторам компаний-клиентов рассылаются соответствующие уведомления со
ссылкой на новый вариант скрипта. Обновить свой ЦС системный администратор
может следующим образом:
·
завершить работу Агентов синхронизации во всех офисах
·
скопировать новый скрипт на сайт поверх прежнего
В крайнем случае
можно просто скопировать новый скрипт на сайт поверх прежнего, не контактируя с
офисами. Но при этом в офисе, который в данный момент вел сеанс синхронизации,
может произойти ошибка синхронизации, которая, тем не менее, во время
следующего сеанса будет нивелирована.
Для обеспечения
лучшей безопасности данных, передающихся между офисами, время от времени можно
менять пароль шифрования данных. Смена пароля осуществляется в следующем
порядке:
1)
Во всех офисах останавливаются 'Агенты синхронизации'.
2)
Во всех офисах в режиме ШАГ 2.5.
Настройка подключения Агента синхронизации к Центру синхронизации
выставляется новый, но одинаковый для
всех офисов пароль шифрования.
3)
В главном офисе запускается ШАГ 6.
Перезагрузка ЦС. При этом все отправляемые на ЦС данные будут зашифрованы уже
новым паролем. Следует напомнить, что во время перезагрузки в ЦС может быть
отправлен довольно большой объем данных.
4)
Во всех дополнительных офисах запускаются 'Агенты синхронизации', которые во время своих первых сеансов
проведут перезагрузку офисов,
как это было при вводе системы синхронизации данных в эксплуатацию (см. ШАГ
7. Перезагрузка дополнительных офисов).
Алгоритм
подключения нового дополнительного офиса не имеет каких-либо особенностей по
сравнению с описанным выше алгоритмом ввода межофисной синхронизации данных в
эксплуатацию в части, касающей допофисов.
Если
база данных дополнительного офиса оказалась по какой-либо причине утрачена,
можно воспользоваться механизмом синхронизации в качестве восстановления из
резервной копии. В роли резервной копии будет выступать база данных ЦС.
Необходимо лишь настроить 'Агент синхронизации' в допофисе, как это делалось
изначально (до сбоя) и провести перезагрузку дополнительно офиса. Если же по
каким-либо причинам требуется выполнить перезагрузку дополнительного офиса в
условиях, когда его БД не повреждена, можно воспользоваться специальной
функцией Инициировать перезагрузку дополнительного
офиса:, рассмотренной в разделе ШАГ 7. Перезагрузка дополнительных
офисов.
Пример:
Пусть сотрудник С1
в офисе О1 вводит в справочник городов элемент "Париж", если
его там еще не было. Элемент автоматически получает в системе внутренний
уникальный код, который затем будет использован системой для ссылок на
"Париж". Примерно в это же время в промежутке между сеансами
синхронизации данных сотрудник С2 в офисе О2 также решает
добавить город "Париж", т.к. в его географическом справочнике такой
город еще отсутствовал. После добавления в базу данных офиса О2 элемент
"Париж" также автоматически получает внутренний уникальный код,
гарантированно отличающийся от кода элемента "Париж", введенного в
офисе О1. После первого сеанса синхронизации в базах данных обоих офисов
(а если офисов в компании больше - то и во всех других офисах) в географическом
справочнике появятся 2 внешне идентичных элемента "Париж", но
с разными кодами, т.е. произойдет дублирование.
Положение вещей в приведенном
примере нельзя назвать удовлетворительным. Единственным способом исправить
ситуацию после произошедшего дублирования будет переназначение ссылок во всех
объектах со второго элемента "Париж" на первый и удаление второго
элемента (или наоборот - переназначение с первого на второй и удаление
первого). Такая операция будет тем более трудоемкой, чем больше элементов в
базе данных (заявки, микрорайоны и проч.) уже ссылаются на второй элемент.
Для
предотвращения дублирования настоятельно рекомендуется придерживаться
следующего правила:
Редактирование
справочников производится уполномоченными сотрудниками централизованно. Т.е.
права на редактирование определенных справочников предоставлены только
определенным сотрудникам, причем таким образом, чтобы организационно исключить
возможность одновременного редактирования одного и того же справочника
сотрудниками из разных офисов.
Важным частным
случаем правила является редактирование справочника пользователей. Для него
правило можно переформулировать более категорично:
Создание
и редактирование учетных записей всех пользователей производится только
администратором системы из главного офиса компании.
Механизм межофисной синхронизации данных позволяет организовать единое
информационное пространство системы 'Агентство недвижимости' в рамках
географически распределенной Компании. Скорость доведения обновлений данных,
произведенных в одном офисе, до всех остальных офисов (и до сайта компании,
если он также вовлечен в синхронизацию данных) зависит от набора факторов:
1) числа офисов,
2) интенсивности обновлений
в локальных базах данных офисов,
3) объема вовлеченных в
обновление данных,
4) доступной скорости
передачи данных по сети Интернет,
5) настроенной в офисах частоты
синхронизации.
Напомним, что необходимым условием корректной синхронизации данных между
офисами является систематически осуществляемая процедура коррекции системного
времени на всех компьютерах во всех офисах, с которых осуществляется работа с
системой (см. ШАГ 5. Синхронизация системного времени).
Программа
установки системы 'Агентство недвижимости' в числе прочих файлов копирует на
компьютер 3 демонстрационных базы данных (в каждую из которых можно ввести
вручную не более 10 заявок):
1)
realty-demo-51-ООО
=Недвижимость=.fdb
2)
realty-demo-52-ООО
=Недвижимость= филиал =Северный=.fdb
3)
realty-demo-53-ООО
=Недвижимость= филиал =Южный=.fdb
С помощью этих
демо-БД можно организовать демонстрационный стенд для изучения механизма
синхронизации данных. Для этого:
1.
Сделайте
запрос на получение комплекта файлов для самостоятельного развертывания Центра
синхронизации.
2.
В
любом каталоге на своем компьютере создайте следующую систему подкаталогов и
скопируйте туда указанные файлы:
\Realty51\
Realty.exe
Realty6Agent.exe
Realty-demo-51-ООО =Недвижимость=.fdb
\Realty52\
Realty.exe
Realty6Agent.exe
Realty-demo-51-ООО =Недвижимость=
филиал
=Северный=.fdb
\Realty53\
Realty.exe
Realty6Agent.exe
Realty-demo-51-ООО =Недвижимость=
филиал
=Южный=.fdb
Эти каталоги
будут имитировать компьютеры, расположенные в географически удаленных офисах
компании. Файлы можно взять в каталоге, куда система 'Агентство недвижимости'
была установлена программой установки.
3.
Запустите
файл Realty.exe поочередно в каждом
из каталогов и подключитесь к 'своей' базе данных (т.е. к той, что расположена
в одном каталоге с Realty.exe).
После этого в каталогах появятся файлы Realty.sys,
в которых будет храниться информация для последующего автоматического
подключения к 'своим' базам данных.
4.
Аналогично
п.3 запустите файлы Realty6Agent.exe
в каждом их трех каталогов и подключитесь к 'своим' базам данных. После этого в
каталогах появятся файлы Realty6Agent.dbconn,
в которых будет храниться информация для последующего подключения Агентов
синхронизации к 'своим' базам данных.
5.
Выполните
перечень шагов, приведенный в разделе Ввод межофисной синхронизации данных в
эксплуатацию.
Для перезагрузки офисов запустите файлы Realty.exe и
Realty6Agent.exe во
всех трех каталогах (в итоге окажутся запущенными 6 исполняемых файлов). В 'Агенте синхронизации' для главного
офиса выполните Перезагрузку ЦС (ШАГ 6.
Перезагрузка ЦС) и стартуйте 'Агент
синхронизации' для работы по расписанию (кнопка Старт в верхней
части главного окна 'Агента').
Также стартуйте и два других 'Агента
синхронизации'. Оба они вначале автоматически (по очереди) выполнят Перезагрузку
(ШАГ 7. Перезагрузка дополнительных
офисов) своих офисов, а затем перейдут в обычный режим работы по
расписанию.
Заметим, что это основная часть подготовки демонстрационного режима работы.
Фактически объем и содержание приготовлений здесь идентичны тому, как если бы
механизм синхронизации вводился в эксплуатацию в реальном информационном поле
Компании.
|
* |
Демонстрационный сайт
можно развернуть и на локальном компьютере - потребуются web-сервер
(например, Apache), MySQL
5, PHP 5. |
6. Теперь
можно в любой последовательности вводить и изменять данные во всех трех
запущенных экземплярах Realty.exe и наблюдать за тем, как
все изменения синхронизируются между тремя базами данных.
|
! |
Главное окно программы
Агентство недвижимости самостоятельно не перезагружает таблицу заявок,
поэтому для ее обновления (для визуализации новых заявок, импортированных в
результате синхронизации) следует периодически нажимать на F5 |