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

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

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

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

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

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

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

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

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

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

Кен

Ответы [ 2 ]

2 голосов
/ 18 ноября 2011

WSO2 предоставляет возможность прослушивать файлы в файловой системе.Однако, согласно вашему запросу, вам кажется, что вам нужно обработать двоичный файл с вашим собственным форматом.Если это так, вы можете использовать WSO2 ESB vfs transport [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

1 голос
/ 26 марта 2012

Это должно быть возможно с 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

...