При необходимости аргументированного выбора между технологиями организации распределённой работы в DIRECTUM нередко возникают различные трудности и вопросы. Ресурс DIRECTUM Club содержит множество материалов на эту тему, попробую систематизировать информацию и дать рекомендации по выбору в тех или иных случаях.
Статья разделена на 4 части:
В первой части кратко пробежимся по технологиям, дадим необходимые определения. Если вы хорошо знакомы с теорией, первую часть можно пропустить. Во второй части рассмотрим основные решаемые задачи, назначение и идеологию. В третьей части на основании идеологических критериев определим рекомендации по применению. В четвертой части более подробно рассмотрим дополнительные технические критерии, являющиеся следствием кардинального отличия принципов работы технологий.
Процесс обмена данными между серверами в рамках информационной системы.
В механизме репликации участвуют две категории серверов – главные и вторичные. Структура серверов может быть иерархической: каждый вторичный сервер может иметь один главный сервер и множество своих вторичных серверов.
Вторичный сервер - сервер, участвующий в процессе репликации и содержащий некоторое подмножество данных информационной системы.
Главный сервер - сервер, участвующий в процессе репликации и содержащий данные всех вторичных серверов.
Центральный сервер - корневой главный сервер, содержащий все данные информационной системы.
При настройке схемы обмена данными между серверами можно значительно ограничить объем передаваемых на вторичные сервера и хранимых там данных. На каждом вторичном сервере пользователи могут работать со своим подмножеством документов и записей справочников. За счет этого снижаются технические требования к вторичным серверам (в первую очередь – требования к быстродействию и объему оперативной памяти).
Механизм репликации реализован без использования встроенных средств репликации SQL-сервера. Это позволяет организовать передачу данных при отсутствии прямой видимости между серверами и управлять возникающими конфликтами репликации. Часть конфликтов разрешается системой автоматически, для разрешения прочих конфликтов имеются специальные средства администрирования.
Набор программных средств, обеспечивающих обмен информацией между системами DIRECTUM, изначально никак не связанными между собой.
Основу DICS составляют агенты и контроллеры.
Агент DICS – программа-представитель DICS на стороне конечной системы. Основными задачами агента является накопление пакетов для отправки, отправка их контроллеру по расписанию, прием и накопление входящих пакетов от контроллера и отправка их в локальную систему по расписанию.
Контроллер DICS – маршрутизирующий узел, обеспечивающий передачу данных из одной системы в другую. Основной задачей контроллера является передача пакета по нужной цепочке промежуточных контроллеров. Помимо этого контроллер накапливает у себя часть передаваемой информации для быстрого подключения к нему новых систем.
Передача данных из одной системы в другую происходит следующим образом:
Связь агентов с контроллерами и контроллеров между собой происходит сеансами. Периодичность сеансов задается при установке контроллеров и агентов.
При каждом сеансе связи выполняются следующие действия:
Репликация и DICS это технологии объединяющие некоторое множество систем DIRECTUM в единое информационное пространство и позволяющие организовать обмен данными между серверами DIRECTUM в офлайн режиме по заданному расписанию.
С идеологической точки зрения технологии различаются в том, что репликация требует единого информационного пространства на всех серверах распределенной системы, единой версии системы и единой разработки. Таким образом, набор серверов репликации должен восприниматься, как если бы это была единая система. К DICS такого требования не предъявляется, системы могут быть изначально не связаны между собой, иметь разные версии системы и разную разработку.
Основной задачей репликации является полная синхронизация данных между серверами, основной задачей DICS – частичная синхронизация данных между серверами.
Выделим два основных критерия – объем синхронизируемых данных и независимость прикладной разработки. Для более четкого понимания отразим эту информацию на квадранте.
Репликация:
DICS:
Прежде чем приступить к рекомендациям по применению, нужно охарактеризовать потенциальных Заказчиков данных технологий.
Разделим Заказчиков на 2 группы:
Бизнес-партнеры в подавляющем большинстве случаев будут использовать DICS, т.к. в этом случае каждая система сможет развиваться самостоятельно и передавать только необходимые данные. Системы остаются независимыми (слабозависимыми), отсутствует лишняя информация, вследствие чего повышается безопасность.
Для холдингов выбор не столь однозначен и возможен в следующих ситуациях:
В первом случае для выбора необходимо изучить потребности Заказчика, совместно разработать критерии применимости, оценить их и принять верное решение. Часть таких критериев мы рассмотрим далее по тексту.
Во втором случае возможны следующие варианты: если система, функционирующая в филиале холдинга, удовлетворяет требованиям остальных филиалов, то можно тиражировать решение, в этом случае достаточно легко настроить репликацию. Если же у каждого филиала своя специфика, придётся внедрять DIRECTUM независимо от других филиалов и в дальнейшем настраивать DICS.
В третьем случае, как правило, используется DICS, если конечно в холдинге не планируется глобальная унификация процессов, с последующим сбором всех данных на одном сервере с использованием репликации. Глобальная унификация очень сложный процесс, как с организационной точки зрения, так и с технической.
В четвертом случае нужно изучить потребности Заказчика аналогично первому случаю и в зависимости от результатов исследования выбирать технологию.
Подробное описание технических критериев содержит статья DICS vs. REPLICA`ция, я остановлюсь на наиболее важных из них. Прежде чем их рассмотреть, я проведу группировку критериев:
Возможность отслеживания бизнес-процесса в рамках удаленной системы: при использовании репликации отслеживание ведётся в привычном интерфейсе, при использовании DICS – путем дополнительных модификаций и интерфейсов.
Перенос истории работы с объектами системы: при использовании репликации история синхронизируется и одинакова на всех серверах, при использовании DICS история в рамках каждого сервера своя.
Использование гиперссылок: при использовании репликации гиперссылки работают в рамках всех серверов, при использовании DICS – в рамках одного сервера.
С точки зрения привычной работы с системой DIRECTUM, эти критерии дают преимущество репликации, но мне кажется, для некоторых Заказчиков эти критерии будут не важны, что даст преимущество DICS.
Передача данных в рамках бизнес-процесса: при использовании DICS передаётся необходимая часть данных в рамках бизнес-процессов, при использовании репликации синхронизируются все данные.
Возможность миграции пользователей между серверами: при использовании репликации можно регистрироваться на нескольких серверах, DICS такой возможности не дает.
И вновь преимущество того или иного критерия зависит от Заказчика и его требований: для одного Заказчика нужно синхронизировать все данные, для другого такая синхронизация будет избыточна.
Первоначальная настройка синхронизации единицы НСИ без заполненных данных: при использовании репликации настройка синхронизации НСИ (нормативно-справочной информации) достаточно проста; при использовании DICS необходимо настраивать правила обмена и логику обработки конфликтов, что является достаточно сложной задачей. Здесь можно отметить преимущество репликации, однако, добавление новой единицы НСИ в синхронизацию с заполненными данными проще организовать при использовании DICS.
Неизбежность возникновения конфликтов: при использовании репликации конфликты явление постоянное, требуемое обработки администратором, при использовании DICS конфликты могут быть решены на прикладном уровне. Здесь преимущество у DICS, однако всегда нужно понимать, что DICS решает задачи синхронизации данных на другом уровне в отличие от репликации.
Требование обновления в тандеме: при использовании репликации необходимо обновлять одновременно все сервера для сохранения работоспособности, при использовании DICS сервера можно обновлять отдельно. Здесь тоже преимущество у DICS, т.к. обновление системы достаточно трудоемкий процесс, а при использовании репликации нужно обновлять сразу несколько серверов.
Еще хотелось бы отметить особенности, важные для понимания механизмов технологий. Их также можно использовать в качестве критериев для оценки.
Трудоемкость применения к уже работающим несвязанным системам: при использовании репликации необходимо несвязанные системы сначала привести к одной версии, потом к одной разработке, потом объединить в одну систему и только после этого создавать вторичную базу и настраивать процесс репликации. При использовании DICS все гораздо проще, нужно только настроить DICS.
Масштабируемость, влияние подключения новых узлов: при использовании репликации добавление нового сервера увеличивает нагрузку на главный сервер, и увеличивает размеры базы главного сервера, при использовании DICS добавление нового сервера не сильно влияет на работу других серверов.
Репликация – это способ организации распределенной работы с единой системой.
DICS – это способ интеграции между не связанными разными системами.
Рекомендуется использовать DICS:
Рекомендуется использовать репликацию:
В остальных случаях пользуемся существующими идеологическими и техническими критериями применимости, на основании своего опыта и опыта коллег добавляем дополнительные критерии, расставляем приоритеты, оцениваем критерии и принимаем единственно верное решение.
Авторизуйтесь, чтобы написать комментарий