Jan 30th, 2013, 04:32 AM
Addressable webservice with JMS
I need to implement a service that can be used with HTTP/SOAP + WS-A and it communicates with IBM WebSphere MQ. I've used Spring MVC several times but never used Integration. So I need to know if it is the preferrable tool in my usecase or should I look elsewhere.
The flow of the service is this:
1. Client sends SOAP to WS with WS-A options (replyTo and MessageId)
2. Service responds with 202 Accepted
3. Service reads WS-A options for WS client and correlation
4. Service generates proprietary XML message from given parameters
5. Service sends XML to JMS MQ (IBM)
6. Service receives XML from JMS MQ (async)
7. Service generates response data with WS-A options (To and RelatesTo)
8. Service sends response with WS client to the replyTo address
9. Client receives response
In some cases the steps 4-6 might be executed several times before the final response. The JMS communication needs to be asyncronous.
What is the best practice to implement this kind of service? And can Spring integration help?
Do I need a local message queue of some sort or can the webservice thread handle all this by blocking the execution until it receives the mq messages?
Should i use for example ActiveMQ or similar to queue incoming tasks and store the WS-A info into them for later processing. Then I don't need the original webservice method/thread to send the response as long I know the replyto address and message id.