Интеграция корпоративных систем остается одной из самых сложных задач в ИТ-инфраструктуре современных предприятий. Стандартные инструменты часто оказываются недостаточными для решения нетривиальных задач.
Никита Перевозчиков, технический архитектор компании Programming Store, раскрыл подход, который позволяет преодолеть эти ограничения через разработку программируемых коннекторов на платформе DATAREON.
Контекст: почему стандартных решений недостаточно
Платформа DATAREON — масштабируемое low-code решение для интеграции и управления корпоративными данными, выполняющее две ключевые функции. Во-первых, она выступает в роли единой интеграционной шины (ESB), централизуя все обмены данными между системами. Во-вторых, она функционирует как полноценная платформа управления данными, позволяя строить витрины данных, корпоративные хранилища и решать задачи управления мастер-данными (MDM).
В стандартной комплектации DATAREON включены базовые коннекторы, которые решают большинство типовых интеграционных задач. Это коннекторы для работы с 1С, веб-сервисы, расширенные REST API, прямые интеграции с базами данных и обмен через файлы и почту. Однако практика показывает, что реальная жизнь часто подкидывает задачи, которые выходят за рамки типовых сценариев.
Сложный программный интерфейс подключаемых систем, нестандартные типы данных, специфические протоколы обмена — все это требует более гибкого подхода. Особенно актуально это становится при переходе с legacy-систем на отечественное программное обеспечение, когда часто встречаются собственные протоколы, не поддерживаемые стандартными коннекторами. Именно в таких ситуациях на помощь приходят программируемые коннекторы, разработанные на C#.
Программируемые коннекторы как решение
Программируемый коннектор DATAREON Platform представляет собой плагин, разработанный на C#, который упаковывается по определенным правилам в архив и подключается как дополнительный модуль к платформе. Его основная задача заключается в инкапсуляции сложной логики получения данных из источников или передачи данных в приемники с применением специфических алгоритмов обработки.
Коннектор работает в двух направлениях. В первом случае он получает данные из различных источников, применяет к ним заложенную разработчиком логику и передает результат на модуль процессов DATAREON, который затем распределяет информацию дальше. Во втором случае коннектор получает данные из модуля процессов и передает их в приемник, но уже с применением сложной внутренней логики трансформации или маршрутизации.
Такой подход позволяет не только работать со структурированными данными в формате XML или JSON, но и обрабатывать бинарные данные, документы различных форматов (DOCX, PDF и прочие), а также реализовывать специфические протоколы обмена, которые невозможно реализовать через стандартные коннекторы.
Кейс из практики: автоматизация управления документами в строительной компании
Реальный пример из практики Programming Store демонстрирует эффективность такого подхода. Строительная компания столкнулась с проблемой, которая знакома многим крупным организациям: документы, договоры, сметы и другие файлы хранились в разрозненных местах. Пользователи различных служб сохраняли информацию на локальных компьютерах, сетевых шарах, FTP-ресурсах, разбросанных по всей компании. Отсутствие единого хранилища привело к хаосу и невозможности проводить полный аудит документооборота.
Решение было принято двухуровневое. На первом уровне была внедрена облачная система хранения документов Nextcloud, развернутая на собственных серверах компании. На втором уровне был разработан программируемый коннектор платформы DATAREON, который выступал в роли автоматического робота для миграции и классификации файлов.
Архитектура решения включала несколько компонентов. Источниками данных выступали локальные папки и сетевые ресурсы, разбросанные по всей организации. Программируемый коннектор постоянно мониторил эти источники, обнаруживал новые файлы и применял к ним многоуровневую классификацию. Затем модуль процессов DATAREON Platform передавал классифицированные файлы в Nextcloud, используя стандартные расширенные REST API-коннекторы. Весь процесс находился под контролем центра мониторинга и администрирования платформы.
Классификация файлов была реализована через четыре последовательных слоя анализа. Первый слой основывался на расширении файла. Это позволяло сделать первичные выводы о типе документа. Второй слой анализировал исходный путь к файлу. Если в пути присутствовали ключевые слова, например, «сметы», это давало дополнительную информацию о категории документа. Третий слой работал с именем файла, анализируя наличие специальных тегов и маркеров. Четвертый, самый глубокий слой, предполагал программный анализ содержимого файла для точного определения его назначения.
Такой многоуровневый подход позволил достичь высокой точности классификации. Файлы, которые не удавалось определить с уверенностью, отправлялись в специальный каталог для последующей ручной классификации пользователями. Это обеспечило баланс между автоматизацией и контролем качества.
За два года работы в продуктовой среде система обработала более 500 тысяч файлов. Примечательно, что после стабилизации решение практически не требовало доработок и улучшений, что свидетельствует о качестве разработки и надежности архитектуры.
Для заказчика были получены значительные эффекты. Во-первых, была создана единая библиотека файлов, централизованное хранилище, которое позволило избежать дублирования и потери документов. Во-вторых, автоматическая классификация значительно снизила нагрузку на персонал и ускорила процесс организации документов. В-третьих, система обеспечила полный аудит документооборота. Помимо передачи файлов в целевую систему, в базе данных платформы DATAREON создавались дополнительные таблицы логирования, которые фиксировали все операции с документами. Это позволило администраторам и пользователям отслеживать, какие файлы куда направлялись и когда, что было особенно полезно для анализа случаев, когда классификация не срабатывала.
Расширение горизонтов: другие сценарии применения программируемых коннекторов
Область применения программируемых коннекторов значительно шире, чем может показаться на первый взгляд. Например, интеграция с различными мессенджерами позволяет консолидировать коммуникационные каналы и создавать единые точки входа для уведомлений и оповещений. Также благодаря гибкости программируемых коннекторов становится возможным обмен бинарными данными и файлами различных форматов.
Интеграция с промышленным оборудованием представляет собой еще один интересный сценарий. DATAREON Platform может выступать в роли агрегатора данных со станков, датчиков и контроллеров. Зная программный интерфейс управляющего оборудованием программного обеспечения, разработчик может создать коннектор, который будет собирать данные с различных источников и передавать их в централизованное хранилище для анализа и мониторинга.
Переосмысление роли программируемых коннекторов
Программируемые коннекторы часто рассматриваются как запасной вариант, к которому обращаются в последний момент, когда стандартные решения не сработали. Однако это неправильный подход.
На самом деле программируемый коннектор — это полноценный инструмент архитектуры интеграции, который следует рассматривать наравне со стандартными коннекторами при проектировании решения. Его использование позволяет практически безгранично расширить возможности платформы и решить задачи, которые изначально казались невозможными.
Практика показывает, что успешные интеграционные проекты часто требуют комбинированного подхода. Стандартные коннекторы обеспечивают быстрое решение типовых задач, а программируемые коннекторы позволяют справиться с нестандартными требованиями. Кейс с автоматизацией управления документами в строительной компании демонстрирует, что даже относительно простое решение, основанное на программируемом коннекторе, может принести значительный бизнес-эффект.
Компании, использующие DATAREON Platform, могут решать сложные интеграционные задачи с помощью разработки программируемых коннекторов. Такой подход позволяет оставаться в рамках существующей инфраструктуры, сохраняя централизованное управление и мониторинг всех интеграций.