Добрый день!
В промышленной эксплуатации есть некое приложение для аналитики, которое активно использует данные из других систем (может по расписанию делать запросы в БД или импортировать CSV/XML файлы).
Проблема в том, что в данном приложении практически отсутствует возможность предобработки данных перед их сохранением. А предобработка очень часто требуется т.к. необходимо привести данные к нужному виду.
Внести правки в приложение нет возможности.
Читал про решения типа ESB (Enterprise Service Bus), что на вид как-раз подошло бы под наши задачи, но многие продукты либо стоят как enterprise-решения, либо выглядят давно заброшенными.
Есть ли какие продукты (желательно free/open-source), которые можно использовать в коммерческих целях и которые можно поставить на Windows Server?
Типичный сценарий использования такого продукта/системы выглядит так:
- Данная система получает данные от смежной системы
Преимущественно PULL, т.е. сама лезет в БД/по API или забирает файл. Но не исключен вариант, когда может понадобится чтоб смежная система отправила данные (PUSH).
Основное требование, что бы система могла получать данные самостоятельно, по расписанию или, возможно, по событию (например, появление файла в директории).
- Система осуществляет обработку данных
Фильтруем/преобразуем значения (конвертируем даты, убираем лишние пробелы/символы, соединяем/разъединяем значения разных полей и т.д.), приводим данные к какой либо схеме.
- Существующее ПО забирает данные из данной системы
Желательно PULL, т.к. возможности API приложения крайне скудны. Например, система сохраняет обработанные данные в БД, тогда приложение идет и забирает данные из БД данной системы.
Сейчас для пары случаев использовали планировщик задач Windows, который запускал PowerShell скрипт (брали выложенный для нас XML файл, приводили его к нужному виду и сохраняли в другую директорию). Но это крайне неудобно.