Обработка двоичных файлов с использованием ESB (WSO2, Mule, Petals, Service Mix)

Я очень хочу использовать ESB (вероятно, WSO2, Mule, Petals или Service Mix) в новом проекте.

У меня есть ряд бизнес-процессов/рабочих процессов, которые будут хорошо работать в ESB: однако я борюсь с одним конкретным сценарием.

Основным требованием является обработка входящих бинарных файлов в несколько этапов:

  • предварительная обработка файла с помощью внешнего инструмента;
  • разбиение файла на основе некоторых данных конфигурации;
  • обработка каждого из этих файлов меньшего размера для расчета «счета». Часть этого будет обрабатываться кодом, который я напишу, но в некоторых случаях также будет вызываться внешнее программное обеспечение;
  • загрузка всех рассчитанных баллов в базу данных. Это должно быть сделано в конце потока, а не постепенно (поскольку первичный ключ будет найден только во время обработки файла);
  • перемещение исходного файла в область архива.

Входящие файлы будут помещены в локальный каталог. Все инструменты поддерживают опрос каталога, так что это не проблема.

Однако из того, что я прочитал, большинство инструментов ожидают, что полезная нагрузка сообщения будет легко читаемой, чтобы обработка могла выполняться непосредственно на полезной нагрузке. В моем случае я просто хочу использовать входящий файл для генерации моих реальных данных полезной нагрузки: значений, которые я буду записывать в базу данных.

Может ли этот шаблон поддерживаться ESB? Есть ли статьи о такой обработке данных с помощью какого-либо из вышеперечисленных инструментов? Должен ли я смотреть на какие-либо другие технологии/шаблоны?

Надеюсь, это имеет смысл!

Большое спасибо,

Кен


person kennethmay    schedule 17.11.2011    source источник


Ответы (2)


WSO2 предоставляет возможность прослушивать файлы в файловой системе. Однако, согласно вашему запросу, кажется, вам нужно обработать двоичный файл с вашим собственным форматом. Если это так, вы можете использовать транспорт WSO2 ESB vfs [1], и вам необходимо реализовать собственный форматировщик сообщений и построитель (тривиальный код Java, как описано в [2])

[1] http://wso2.org/project/esb/java/4.0.0/docs/samples/transport_samples.html#Sample254 [2] http://charithwiki.blogspot.com/2010/11/how-to-write-axis2-message-builder.html

person Kasun Indrasiri    schedule 18.11.2011

Это должно быть возможно с ESB. В частности, с UltraESB вы можете сделать это с помощью встроенного механизма передачи файлов, который по умолчанию поддерживает перемещение файла после обработки в область архива.

Функции разделения и агрегации UltraESB можно использовать для разделения файла на части и их обработки по отдельности. Генерация «оценки» может быть выполнена с помощью Java или любого другого языка сценариев, который использует API UltraESB для взаимодействия с сообщением (в данном случае частью файла) и его средой.

Взаимодействие с БД может быть легко выполнено с помощью UltraESB с его механизмами подключения к базе данных. Кроме того, вы можете выполнять эти обновления транзакционно с помощью UltraESB.

Если файл имеет стандартный формат CSV или EDI, вы можете использовать поддержку csv или EDI для простой обработки файла. Все это с помощью чрезвычайно простой конфигурации с помощью Java или любого языка сценариев.

[1] – http://docs.adroitlogic.org/display/esb/Transactional+ESB+use+cases+made+simple+with+the+UltraESB

[2] – http://docs.adroitlogic.org

person Ruwan    schedule 26.03.2012