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

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

1 ответ

Решение

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

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

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

Другие вопросы по тегам