Количество обрабатываемых сообщений за месяц
Сокращение трудозатрат на задачи интеграции
Практически каждый проект внедрения системы DIRECTUM включает задачи, связанные с первичной миграцией данных из исторических систем и организацией информационного обмена с другими системами. Реализация таких задач может кардинально отличаться в зависимости от требований Заказчика и технических возможностей интегрируемых систем. При этом выбранный вариант реализации зачастую влияет на дальнейшее сопровождение и развитие системы.
Анализ результатов завершенных проектов подтолкнул к цели – сформировать единый подход к разработке решений для интеграции и миграции данных, который позволит сократить затраты при внедрении и сопровождении. Для достижения поставленной цели было принято решение разработать универсальный настраиваемый инструмент, который позволил бы реализовывать следующие задачи:
Разработанное решение получило название – Центр управления сообщениями (ЦУС).
Решение состоит из двух частей:
Рисунок 1. Архитектура решения
Все входящие и исходящие сообщения в рамках информационного обмена создаются и хранятся в справочнике Очередь сообщений. Запись справочника (Рисунок 2) содержит служебную метаинформацию, а также позволяет просматривать содержимое сообщения и журнал его обработки.
Рисунок 2. Карточка записи справочника Очередь сообщений
Для всех создаваемых записей в справочнике Очередь сообщений присваивается начальный статус «Подготовлено». Обработка каждого сообщения выполняется в зависимости от настроек его типа. Реализованы следующие способы запуска обработки:
В зависимости от результата выполнения обработки, статус записи справочника Очередь сообщений может принимать значения «Обработано» или «Ошибка». В случае возникновения ошибки, администратор может вручную отменить (статус «Отменено») или возобновить (статус «Подготовлено») обработку сообщения.
Рисунок 3. Жизненный цикл сообщения
Справочник Типы сообщений содержит настройки, отвечающие за валидацию и обработку сообщений. При настройке новых типов можно воспользоваться готовыми функциями обработки:
Перечисленные функции обработки и их параметры хранятся в отдельном справочнике Параметры типов сообщений и могут быть автоматически перенесены в создаваемые записи справочника Типы сообщений с помощью действия - Заполнить по умолчанию. На основе готовых функций обработки разработчики могут создавать новые функции для решения различных задач, возникающих в рамках внедрения/сопровождения DIRECTUM.
Для проверки входящих сообщений на соответствие требуемой бизнес-логике предусмотрена возможность валидации данных с помощью отдельно разрабатываемых функций. Такие функции позволяют выполнять валидацию данных в момент добавления сообщения в справочник Очередь сообщений.
Настройки соответствия между реквизитами объектов DIRECTUM и содержимым сообщений (параметры XML, столбцы Excel) выполняются с помощью стандартных справочников: Интегрированные системы и Настройки обмена данными с интегрированными системами.
Для отладки и выполнения разовых операций (например, загрузка исторических данных) в карточке записи справочника Типы сообщений предусмотрена возможность ручного запуска настроенного обработчика.
Для каждой записи справочника Типы сообщений можно также задать:
Рисунок 4. Карточка записи справочника Типы сообщений
Справочник Сообщения позволяет настраивать шаблоны для исходящих сообщений с помощью встроенного редактора. В данном редакторе реализована возможность добавления параметров, связанных с объектами DIRECTUM (реквизиты справочников/документов, параметры задач, константы и т. д.), а также предпросмотра настроенных шаблонов в форматах HTML и XML.
Рисунок 5. Карточка записи справочника Сообщения
Для настройки списков рассылки исходящих сообщений различных типов используется справочник Подписки на сообщения. В зависимости от выбранного типа сообщения в качестве получателей могут использоваться записи справочника DIRECTUM, содержащего реквизит-адрес для отправки сообщений (например, E-mail или Телефон).
Рисунок 6. Карточка записи справочника Подписки на сообщения
Веб-сервис архитектурно представляют собой WCF-сервис, состоящий из одного метода CreateMessage, предназначенного для добавления полученных запросов в справочник Очередь сообщений. Обработка запросов может выполняться в синхронном режиме или асинхронном с помощью отложенного запуска через планировщик Windows / серверные события.
Взаимодействие внешних систем с веб-сервисом ЦУС осуществляется путем передачи SOAP-сообщений, с использованием в качестве транспорта протокола HTTP(S). Веб-сервис является многопоточным и способен обрабатывать параллельно несколько запросов.
Процесс обработки входящих сообщений включает следующие этапы:
Рисунок 7. Схема взаимодействия
Структура сообщения представляет собой две части:
MCC_Core.xsd – статичная структура, содержащая жестко заданный набор параметров запроса и ответа, который нельзя изменять:
MCC_Сustom.xsd – настраиваемая структура, определяющая набор параметров, которые могут содержаться внутри параметра MetaData в зависимости от передаваемого значения параметра Type.
Рисунок 8. Структура сообщения
В случае возникновения ошибки веб-сервис ЦУС возвращает в ответе для внешней системы код состояния HTTP 500 с текстом ошибки, а также код SOAP FAULT, позволяющий установить на каком этапе она возникла:
Веб-сервис ЦУС поддерживает следующие типы аутентификации:
В зависимости от выбранного типа аутентификации все действия в DIRECTUM осуществляются:
Рисунок 9. Доступные способы аутентификации
Логирование осуществляется с помощью библиотеки NLog (https://nlog-project.org/), которая позволяет настраивать:
Рисунок 10. Содержимое лог файла
Ключевым полем в логе является GUID, по которому можно идентифицировать пакет и проанализировать все выполненные с ним действия.
В дополнение к логированию веб-сервис ЦУС может осуществлять хранение полученных запросов и отправленных ответов в виде отдельных файлов формата XML. Данная опция настраивается в Web.config файле веб-сервиса ЦУС.
Установка и первичная настройка веб-сервиса ЦУС осуществляется через инсталлятор, разработанный с помощью набора инструментов Windows installer XML (WiX). В инсталляторе пошагово задаются параметры для добавляемого пула приложений IIS, реквизиты подключения к базе данных DIRECTUM и настройки логирования. По результатам работы инсталлятора автоматически создаются:
Появление ЦУС поспособствовало стандартизации и унификации процесса разработки интеграционных решений в части расчета требований проектов и написания технической документации. Разработанные шаблоны оценки требований и технического проекта интеграции, а также документация по решению обеспечивают возможность быстрого обучения новых сотрудников и подключения их к решению задач интеграции и миграции данных.
На данный момент решение ЦУС уже внедрено и активно используется более чем в десятке организаций различной величины. В некоторых из них суммарное количество обрабатываемых сообщений за месяц составляет более 100 тысяч.
Простота настройки и гибкость решения помогли адаптироваться к проблеме часто изменяющихся требований и позволили значительно упростить реализацию механизмов межсистемного взаимодействия и рассылки сообщений, а также уменьшить трудозатраты по данным задачам на проектах до 50%.
Обсудите реализацию с экспертом Directum
Комментарии (2)
А в чем преимущество этого решение от Directum Cross-system Interaction Toolset, DCI?
Directum Cross-system Interaction Toolset (DCI) - узкоспециализированное решение, предназначенное в первую очередь для построения сквозных бизнес-процессов между системами Directum. В стандартную поставку DCI входят инструменты для связывания только систем Directum, а для работы с другими системами необходимо выполнять дополнительную разработку под каждую из них.
ЦУС позволяет реализовать межсистемное взаимодействие с любыми системами. Кроме того, список возможных сценариев использования значительно шире, чем в DCI.