Механизм распределенных информационных баз

advertisement
Механизм распределенных информационных баз
Механизм распределенных информационных баз предназначен для создания территориально
распределенных систем на основе идентичных конфигураций 1С:Предприятия 8.
Этот механизм позволяет переносить как данные 1С:Предприятия, так и изменения конфигурации
информационной базы.
Возможности механизма распределенных информационных баз

интерактивное создание распределенной системы и выполнение обмена данными без
дополнительного программирования;

обеспечение идентичности конфигураций информационных баз, входящих в состав
распределенной системы;



подключение новых и отключение существующих узлов;

в рамках одной распределенной информационной базы может быть создано несколько схем
обмена;

распределенная информационная база может содержать схемы обмена с другими
информационными системами, в том числе с информационными базами 1С:Предприятия, не
являющимися распределенными информационными базами.


задание условий на передачу и прием изменений на уровне отдельных элементов данных;

сжатие сообщений обмена в формате .ZIP и автоматическая распаковка сообщений обмена при
приеме.
создание начального образа информационной базы для нового узла;
реализация различных способов разрешения коллизий при одновременном изменении данных в
разных узлах распределенной системы;
реализация восстановления обмена данными в таких случаях, как восстановление
информационных баз из резервных копии и т.д.;
Особенности механизма распределенных информационных баз

распределенная система должна иметь древовидную структуру, в которой существует корневой
узел и определено отношение "главный - подчиненный" для каждой пары связанных узлов;



обмен данными выполняется в формате ХML документов;



изменения конфигурации передаются от главного узла к подчиненным;
изменения конфигурации распространяются в сообщениях обмена вместе с изменениями данных;
внесение изменений в конфигурацию возможно только в одном (корневом) узле распределенной
системы;
внесение изменений в данные возможно в любом узле системы;
изменения данных передаются между любыми связанными узлами;
Реализация механизма распределенных информационных баз
Механизм распределенных информационных баз реализуется Планами обмена. Для того чтобы
распределенная система, описанная конкретным планом обмена, функционировала как распределенная
информационная база, достаточно отметить соответствующее свойство плана обмена.
В этом случае становятся доступны интерактивные функции обмена, которые могут быть полностью
продублированы средствами встроенного языка, используя средства обмена данными, которые
содержит платформа.
Кроме этого, из встроенного языка становится доступным ряд методов и событий Плана обмена,
позволяющих управлять структурой распределенной информационной базы и обработкой конкретных
сообщений обмена.
Планы обмена
Объекты прикладного решения План обмена используются для реализации механизмов обмена
данными. Планы обмена содержат информацию об узлах, которые могут участвовать в обмене данными,
определяют состав данных, которыми будет производиться обмен, и указывают, следует ли задействовать
механизм распределенной информационной базы при обмене.
В одном прикладном решении может существовать несколько планов обмена, каждый из которых может
описывать свой порядок обмена данными. Например, если выполняется обмен данными с удаленными
складами и удаленными офисами, то, скорее всего, будет существовать два плана обмена (один для
обмена со складами, другой - для офисов), поскольку состав данных, которыми производится обмен со
складами, будет значительно "уже", чем состав данных, предназначенных для обмена с офисами.
Назначение Плана обмена
В плане обмена хранится список узлов, - участников обмена в распределенной информационной системе.
В качестве узлов могут выступать информационные базы 1С:Предприятия 8, информационные базы
1С:Предприятия 7.7 или другие информационные системы, не основанные на 1С:Предприятии.
Для каждого узла можно задать код, наименование и необходимый перечень реквизитов, описывающих
узел. Узел может иметь также несколько подчиненных табличных частей для хранения информации,
связанной с этим узлом, несколько форм, для отображения информации, содержащейся в плане обмена,
и т.д. Например, структура плана обмена УдаленныеСклады может выглядеть следующим образом:
При создании плана обмена существует возможность указать, будет ли он задействовать механизмы
распределенной информационной базы или нет.
Также в плане обмена указывается состав данных, которыми предполагается вести обмен:
Для каждого из объектов прикладного решения, которые могут участвовать в обмене, задается режим
регистрации их изменений. Если разрешена авторегистрация, то система сама отслеживает выполняемые
изменения, и формирует набор данных, которыми нужно обменяться. Если же разработчик запрещает
авторегистрацию изменений, - он должен, средствами встроенного языка, самостоятельно выполнять
регистрацию нужных ему изменений.
Механизмы, реализуемые Планом обмена
Механизм распределенных информационных баз
Позволяет создавать в рамках конкретного плана обмена распределенную информационную базу.
Распределенная информационная база представляет собой иерархическую структуру, состоящую из
отдельных информационных баз 1С:Предприятия – узлов распределенной информационной базы,
между которыми организован обмен данными с целью синхронизации конфигурации и данных.
В основе механизма распределенных информационных баз лежат универсальные механизмы обмена
данными, такие как служба регистрации изменений, инфраструктура сообщений, XMLсериализация и чтение/запись XML-документов. Однако механизм распределенных
информационных баз содержит ряд специфических возможностей, недоступных через универсальные
механизмы обмена данными.
К таким возможностям относится интерактивное создание начального образа информационной базы, а
также интерактивное чтение и запись изменений, которые могут быть выполнены сразу же, после
указания того, что данный план обмена будет использовать механизм распределенных информационных
баз. Таким образом, распределенная информационная база может быть создана без какого-либо
дополнительного программирования, исключительно средствами визуального конструирования. При
этом обмен в распределенной информационной базе будет осуществляться на основе некоторых
алгоритмов, изначально заложенных в платформе.
Все действия, выполняемые при интерактивном обмене, могут быть продублированы программно, и
кроме этого разработчик имеет возможность программно управлять принятием и отправкой изменений,
а также выполнять реструктуризацию распределенной информационной базы, добавляя новые и удаляя
существующие узлы.
Служба регистрации изменений
Суть регистрации изменений состоит в том, чтобы иметь перечень измененных элементов данных которые
должны быть переданы в очередном сообщении тому или иному узлу, с которым производится обмен
данными. При каждом изменении данных регистрируется, что имеются изменения, которые предстоит
передать во все узлы, с которыми поддерживается обмен этими данными. При получении подтверждения
приема сообщения, в котором были отправлены изменения, записи регистрации изменений должны быть
удалены.
Состав данных, которыми осуществляется обмен, описывается в Плане обмена и представляет собой
перечень элементов данных (например, СправочникОбъект.<имя>,
РегистрСведенийНаборЗаписей.<имя>, КонстантаМенеджерЗначения.<имя> и т.д.).
Для каждого элемента данных, указанного в плане обмена, ведется своя таблица регистрации изменений.
Таблицы имеют разную структуру, в зависимости от того, для каких элементов данных регистрируются
изменения, но все-таки структуры таблиц подобны. Каждая запись указывает на некоторый элемент
данных, некоторый узел и содержит номер сообщения, в котором это изменение передано в первый раз.
При изменении элемента данных его изменение регистрируется для всех узлов, в которые это изменение
должно быть передано. Таким образом, в результате изменения элемента данных в таблице регистрации
изменений появляется N записей, где N — количество узлов, для которых регистрируются изменения.
Каждая из этих записей указывает на одно и то же значение элемента данных и на различные узлы.
Непосредственно после выполнения регистрации изменения, в каждой новой записи изменений номер
сообщения имеет значение NULL. При первой отправке изменения в составе сообщения, он заменяется
номером сообщения, в котором изменение отправлено.
При описании состава данных в плане обмена, для каждого элемента данных есть возможность указать
признак Авторегистрации. Авторегистрацию можно «Разрешить» или «Запретить». Если авторегистрация
разрешена, то при изменении данных регистрация изменений будет выполнена автоматически. Если
запрещена, то регистрацию изменения можно выполнить «вручную», средствами встроенного языка.
Инфраструктура сообщений
С точки зрения плана обмена, между узлами происходит обмен сообщениями. Каждое сообщение
содержит изменения данных, изменения конфигурации (если это распределенная информационная база)
и ряд служебной информации. Каждое сообщение точно ассоциировано с планом обмена, имеет
уникальный номер и имеет одного отправителя и одного получателя.
Сообщение оформляется как документ XML, имеющий определенную структуру. Инфраструктура
сообщений позволяет формировать нужную структуру сообщения, и контролировать ее корректность. В
частности, инфраструктура сообщений поддерживает нумерацию сообщений, и позволяет получать
подтверждения от узла-получателя о приеме сообщений. Такое подтверждение содержится в каждом
сообщении, приходящем от узла-получателя в виде номера последнего принятого сообщения.
XML-сериализация
XML-сериализация - это процесс преобразования данных 1С:Предприятия 8 в последовательность данных
формата XML и наоборот, преобразование последовательности данных формата XML в данные
1С:Предприятия 8, если существует подходящий тип данных.
Средства XML-сериализации активно используются при реализации различных схем обмена данными.
Сериализуемые типы данных 1С:Предприятия 8
С точки зрения представления в XML типы данных 1С:Предприятия 8 делятся на простые и сложные.
К простым типам данных относятся типы, значения которых представляются подсистемой XMLсериализации в виде элементов XML только с текстовым содержимым:










Число;
Строка;
Дата;
Булево;
ДвоичныеДанные;
Null;
УникальныйИдентификатор;
ХранилищеЗначения;
все ссылки на объекты базы данных;
ссылки на перечисления, определяемые в метаданных.
Значения сложных типов представляются в виде элементов XML, содержащих вложенные элементы:






Тип;
ОписаниеТипов;
КонстантаМенеджерЗначения.<Имя константы>;
все объекты базы данных;
наборы записей регистров, последовательностей, перерасчетов;
УдалениеОбъекта;
Объекты базы данных представляются в XML как совокупность значений реквизитов и табличных частей.
Состав элементов XML, вложенных в корневой элемент, определяется типом объекта базы данных, а
также составом реквизитов и табличных частей. Каждый из реквизитов объекта представляется
отдельным вложенным элементом XML; каждая из табличных частей также представляется отдельным
вложенным элементом XML. Каждая из строк табличной части представляется элементом XML, вложенным
в элемент, представляющий табличную часть. Реквизиты табличной части представляются элементами
XML, вложенными в элемент, представляющий строку табличной части.
Представление в XML набора записей включает отбор, по которому получен набор записей и сами записи,
входящие в отбор. Значения отбора представляются вложенным элементом XML с именем Filter, а все
записи составляющие набор записей - вложенным элементом XML с именем Records. Отдельные записи
представляются элементами XML с именем Record, вложенными в элемент Records.
Чтение и запись XML-документов
Средства чтения и записи XML-документов позволяют работать с данными формата XML на «базовом»
уровне, без привязки к объектам 1С:Предприятия. В частности, они позволяют открывать XMLдокументы для чтения, читать из них данные, создавать новые XML-документы и записывать в них
данные.
Средства чтения и записи XML-документов активно используются при реализации различных схем
обмена данными.
Работа с XML в формате Fast Infoset
Платформа предоставляет средства для работы с XML-документами в бинарном формате Fast Infoset.
Технология Fast Infoset использует альтернативный синтаксис отображения XML-данных. Это
обеспечивает меньший объем файлов и более высокую скорость обработки, чем скорость обработки
данных, записанных в обычном XML-формате. Файл, записанный в формате fast infoset, имеет
расширение .fi или .finf.
Создание распределенной информационной базы и
настройка плана обмена
Для создания распределенной информационной базы необходимо зайти в 1С в режиме "Предприятия".
Для создание узлов распределенной базы в меню выбираем: Операции - Планы обмена. Откроется окно
"Выбор объекта: План обмена".
1. Рассмотрим вариант с планом обмена "Полный".
Обмен будет, осуществляется по всем организациям, находящимся в распределенной информационной
базе.
Выберем план обмена "Полный". Откроется окно "План обмена полный".
Заполняем две записи:
- первую запись назовем "Главный узел", код укажем "ГУ",
- вторую запись назовем "Подчиненный узел", код укажем "ПУ".
Как видим из рисунка, у первой записи значок изображен с зеленным кружком, это значок "Главного
узла".
Для создания копии информационной базы "Главного узла", кликаем на "Подчиненный узел" и нажимаем
на значок "Создать начальный образ". Это будет информационная база "Подчиненного узла".
Откроется окно "Создание начального образа ИБ", выбираем "На данном компьютере или на компьютере
в локальной сети", нажимаем "Далее".
Выберете "Каталог информационной базы", местоположение, куда будет установлена копия "Главного
узла", нажимаем "Готово".
Начнется создание начального образа подчиненного узла распределенной информационной базы,
прогресс вы можете видеть в правом нижнем углу.
После создания информационной базы "Подчиненного узла" появится сообщение:
Нажимаем "Ок".
Добавляем информационную базу "Подчиненного узла" в "1С: Предприятие". Заходим в подчиненную
базу в режиме "Предприятия". Откроем: Операции - Планы обмена. Откроется окно "Выбор объекта: План
обмена". Выберем план обмена "Полный". Откроется окно "План обмена полный". Видим что значок
"Главного узла" красный, это значит, что этот узел является главным для той информационно базы, в
которой мы находимся.
Следующие настройки делаем и в Главном и в Подчиненном узле:
1. Добавляем префикс для распределенной информационной базы.
Это делается для того чтобы не возникало конфликтов в номерах и кодах документов и справочников,
созданных в двух базах, поэтому в каждой базе указываем префикс, который будет добавляться в номера
документов и коды справочников. Открываем: Сервис - Настройка программы - закладка "Обмен
данными". В поле "Префикс узла для распределенной информационной базы:" в подчиненной базе
вводим "ПУ", в главной базе вводим "ГУ".
2. Добавляем настройку обмена данными между узлами:
Открываем: Сервис - Распределенная информационная база (РИБ) - Настроить узлы РИБ. Откроется окно
"Настройки обменов данными".
Нажимаем "Добавить", откроется окно "Настройка обмена данными". Вводим "Наименование" вашей
настройки.
В поле "Узел" автоматически появится узел, для "Главного узла" будет "Подчиненный узел", для
"Подчиненного узла" будет "Главный узел".
В поле "Каталог" выберете папку, в которую будут поступать данные обмена, для главной и подчиненной
базы лучше всего указывать один каталог.
В поле "Тип обмена" настраиваем передачу данных между базами: через файловый или фтп-ресурс.
Выбирем например "обмен через файловый ресурс".
В остальных полях ничего не меняем.
Нажимаем "Ок". Видим, что появилась настройка.
3. Для обмена данными делаем следующее:
Сначала в базе, в которой были сделаны изменения, нажимаем на значок "Выполнить обмен по текущей
настройке", как показано на рисунке.
Начнется выгрузка.
После выгрузки появится окно результата выгрузки.
Потом в базе, в которую необходимо передать изменения, нажимаем на значок "Выполнить обмен по
текущей настройке" и данные попадут в ту базу, в которую вы хотите.
2. Рассмотрим вариант с планом обмена "По организации".
Обмен будет, осуществляется по выбранным организациям, находящимся в распределенной
информационной базе.
Для создание узлов распределенной базы в меню выбираем: Операции - Планы обмена. Откроется окно
"Выбор объекта: План обмена".
Выберем план обмена "По организации". Откроется окно "План обмена По организации".
Заполняем две записи:
- первую запись назовем "Главный узел", код укажем "ГУ", видим отличие от "Плана обмена: Полный",
появилась таблица, в которой указываем Организации по которым будет происходить обмен.
- вторую запись назовем "Подчиненный узел", код укажем "ПУ", указываем организации.
Во всем остальном настройка идет абсолютно аналогично с "Планом обмена: Полный".
Download