Вопрос

У меня есть вопрос относительно jBPM.В одном из наших проектов я разработал корпоративный сервис (.Net), из которого другие системы (jBPM, Delphi и т. д.) должны получать данные.Для этого я предоставляю интерфейс SOAP.

Теперь есть случай, когда система jBPM обращается к службе, необходимо выполнить некоторую ручную работу, прежде чем данные, необходимые системе, могут быть возвращены.В этом случае служба SOAP возвращает «ManualWorkTicketId».Этот идентификатор затем можно использовать для опроса интерфейса SOAP, скажем, с интервалом в 1 минуту.Как только ручная работа будет выполнена, служба SOAP сможет вернуть необходимые данные в систему jBPM.Поскольку корпоративная служба не должна знать ни о каких системах, а просто предоставлять интерфейс SOAP для связи, я рассматриваю это как хорошее решение для обработки асинхронной части.

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

  1. вопрос:Поскольку я не являюсь разработчиком jbpm, мне было интересно, нет ли стандартного шаблона для обработки части опроса веб-сервиса в jBPM?
  2. вопрос:Какой подход вы бы предложили в таких случаях, учитывая, что корпоративная служба должна быть слабо связанной?
Это было полезно?

Решение

Если вы реализуете очередь JMS, я предполагаю, что разработчик Delphi будет жаловаться.SOAP — хорошее решение.

Взгляни на это, и передайте его разработчику jBPM.(кстати, вы используете jbpm 3 или 4?)

Если точное время не важно, он может опрашивать службу SOAP каждые X минут и видеть результат.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top