views:

399

answers:

1

Hi,

I ve got a question regarding jBPM. In one of our projects I developed an enterprise service (.Net) that other systems (jBPM, Delphi, etc.) should receive data from. For this I am providing a SOAP interface.

Now there's a case that when the a jBPM system contacts the service, some manual work has to be done before the data the system needs can be returned. In this case, the SOAP service returns a "ManualWorkTicketId". This id can then be used to poll the SOAP interface in let's say 1 minute intervals. As soon as the manual work has been done , the SOAP service is able to return the required data to the jBPM system. Since the enterprise service should not know about any systems and just provide a SOAP interface for communication, I see this as a good solution to handle the asnychronous part.

But the jBPM developer told me that this isn't a good approach. Instead he suggests to write the information in an ActiveMQ queue, that I should listen to. When then manual work is done, I have to write back to another queue the jBPM system provided me, where the message then is consumed by the jBPM process.

  1. question: Since I am not a jbpm developer, I was wondering if there isn't a standard pattern to handle the web service polling part within jBPM?
  2. question: Which approach would you suggest in such cases keeping in mind that the enterprise service should be loosely coupled?
A: 

If you implement a JMS queue, then I assume the Delphi developer will complain. SOAP is a good solution.

Take a look at this, and give it to the jBPM developer. (btw, are you using jbpm 3 or 4?)

If precision isn't important, he can poll the SOAP service every X minutes and see the result.

Bozho