Перехват событий и управление поведением через события для механизма выполнения BPEL

Я хотел бы 1. перехватывать события и 2. контролировать поведение через события для механизма выполнения BPEL. Могу я узнать, какой механизм выполнения BPEL поддерживает это?

Для 1. например, при вызове имени службы «привет», я хотел бы получить событие «invoke_hello» с сервера.

Для 2. например, когда сервер имеет параллельный вызов 3 служб, «invoke_hello1», «invoke_hello2» и «invoke_hello3», я мог бы контролировать поведение, сказав, что разрешаю запуск только «invoke_hello1».

Меня интересует, есть ли какие-либо движки BPEL, которые поддерживают 1, или 2, или оба, со страницей документации, которая примерно говорит об этом (чтобы я мог использовать эту функцию).


person william007    schedule 06.02.2013    source источник
comment
Не могли бы вы подробнее рассказать о том, чего вы пытаетесь достичь? О каких событиях вы думаете и как вы хотите их обработать? Это сильно варьируется от двигателя к двигателю.   -  person joergl    schedule 06.02.2013
comment
@joergl Я изменил вопрос, чтобы сделать его более ясным.   -  person william007    schedule 06.02.2013


Ответы (1)


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

Относительно вопроса 1 (уведомление о событии):

Apache ODE поддерживает события выполнения. Эти события попадают в его базу данных, и у вас есть несколько способов извлечения событий. Ты сможешь:

  1. запросите базу данных, чтобы прочитать их.
  2. используйте механизмы Management API, чтобы сделать это через веб-службы.
  3. добавьте свою собственную реализацию прослушивателя событий в путь к классам движка.

События ODE касаются жизненного цикла действий в BPEL. Таким образом, ваш "invoke_hello" должен сопоставляться с одним из событий ActivityXXX в ODE.

Sun BPEL Service Engine, включенный в OpenESB, имеет некоторые поддержка предупреждений, но в документации не так много подробностей о том, как его использовать. По-видимому, вы можете аннотировать действия с уровнем оповещения, и события генерируются при выполнении действия.

Относительно вопроса 2 (контролирующее поведение):

Это сложно, и я не уверен, действительно ли какой-либо движок поддерживает это в обычном режиме выполнения. Одним из простых способов добиться этого было бы запустить движок в режиме отладки и вручную контролировать каждый шаг. Таким образом, вы можете пропустить продолжение «invoke_hello2» и «invoke_hello3» и просто продолжить «invoke_hello1».

Насколько я знаю, в ODE нет отладчика. С другой стороны, сервисный движок Sun BPEL, , имеет весьма неплохой. Он интегрирован в редактор BPEL в Netbeans, который представляет собой визуальный редактор (который использует конструкции BPMN для визуализации действий BPEL) и позволяет вам переходить от любого действия и к нему.

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

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

person joergl    schedule 06.02.2013