TK Malv

TK Malv

  • NA
  • 1
  • 0

Design question on how to interface with Web Services

Aug 16 2008 12:42 PM
I have got an application to consume a Web service. The Web Service would utilise another third party Web Service for bank money transfers. Let me describe (its not the exact description of the problem statement though): (See attached diagram)

1. One consuming application (Call it myWebApp) which would send the money transfer information (from account, from bank, amount, to account, to bank) to a web service1 which is built in-house. The in-house web service1 is designed to format the message to be sent to the third party application and uses the third party web service to do the job.

2. The in-house web service1 sends the message to the third party web service and gets the acknowledgement for receipt of the message from it.

3. There is another in-house web service2 which gets call from the third party aplication. The call comes when the money transfer request is executed by the third party application. It is not executed due to exceptions, then the third party application sends an exception message. So this web service2 acts like a listener web service.

Here the step 2 and 3 happen almost instantaneously. The in-house web services (1 & 2) are completely de-coupled from myWebApp so that other applications can consume the services of it. Hence

The myWebApp application is a web based application which provides money transfer facilities to the customers. When customers submit the money transfer request, they should immediately get acknowledgement on the web page saying that THE MONEY HAS BEEN SUCCESSFULLY TRANSFERRED or some exception message like MONEY COULD NOT BE TRANSFERRED DUE TO XYZ REASON. Now these should happen in milliseconds.

The problem is, when I call from myWebApp to Web Service1, it just gives a message received response. What mechanism should I utilise so that when the listener Web Service2 receives the execution message back from third party (almost next moment), I would be able to capture that and display appropriate message to the customer. In other words, I want to make a single call from myWebApp to Web Service1 which should give me the execution message back.

I do not want to create another listener web service at myWebApp end to receive the message. That would require lot of handling. How should I design Web Service1 and Web Service2. I have got the liberty to create persistence at the Web Service layers.

Please can someone advise.