Процесс BPEL для мониторинга каталога

Я пытаюсь написать процесс BPEL, чтобы отслеживать прибытие файла в локальный каталог и делать определенные вещи с этим файлом. Я использую Jboss EAP 6.4 в качестве сервера, Switchyard в качестве среды выполнения BPEL и Jboss Developer Studio для своей IDE. Я новичок в BPEL и Web-сервисах в целом. Последние пару недель я пытался понять, что мне нужно делать, но безуспешно. Моя первоначальная мысль заключалась в том, чтобы создать веб-службу Java для мониторинга каталога, а затем вызвать процесс BPEL для выполнения определенных действий с файлом. Мне интересно, нужна ли мне для этого служба или вы можете сделать это в самом BPEL. Я буду использовать BPEL для вызова службы, которая будет использовать файл. Любая помощь приветствуется.


person george_harrison    schedule 29.12.2015    source источник


Ответы (1)


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

Таким образом, вы не можете напрямую прослушивать файловую систему в процессе BPEL. Что вам нужно сделать, так это создать слушателя (на любом языке, который вы хотите), который будет вызывать ваш процесс BPEL при появлении нового файла. BPEL предназначен только для цепочки вызовов веб-сервисов. Или, если хотите, BPEL - это просто способ реализации веб-сервисов, которые служат связующим звеном между другими веб-сервисами. Логика, лежащая в основе процесса BPEL, заключается только в создании, преобразовании и маршрутизации сообщений правильным «получателям». Помимо передачи файла (имени, ссылки, содержимого ...) другим веб-службам, ваш процесс BPEL не сможет сделать больше. Если содержимым файла является XML, вы можете выполнять некоторые операции с его содержимым (благодаря XPath), но я не знаю, подходит ли это вашему варианту использования или нет.

Глядя на Switchyard, я вижу, что они используют Apache Camel. Итак, я думаю, вы должны иметь возможность настраивать компоненты Camel для достижения того, чего хотите. Предоставляемый ими редактор выглядит как редактор SCA на Eclipse.org. Я не знаю этого решения, но я бы попытался создать компонент в этом редакторе, иметь ссылку (точку входа для вызова) с привязкой «файл» и посмотреть, что мы можем сделать с этим вызовом. Я подозреваю, что Switchyard может «генерировать» как слушателя, так и процесс, который вызывается при появлении нового файла. Но в данном случае мы больше не делаем BPEL. Это выходит за рамки.

person Vincent Zurczak    schedule 29.12.2015
comment
Спасибо! Это многое проясняет. - person george_harrison; 29.12.2015