What options are available for using long polls in Delphi with SOAP?

I have a corporate Delphi application that acts as a client for the Java backend (SOAP, Axis2). Some of my queries take an indefinite or especially large amount of time to complete, and I would like to implement a long poll solution for SOAP requests.

As far as I know, I usually used WS-Addressing for this. However, it seems that the Delphi SOF client (WCF) does not implement WS-Addressing.

I am blocked in Java and Delphi. I use Axis 2 components such as lifecycles, but I could move on to another web service engine. I control both the server and the client side.

What are my options for doing long polls in Delphi and Java?

+6
source share
1 answer

You say that Java is already being used on the server side, and you are locked into Java there (if I understand correctly).

In this case, I will first try to use any of the modern SOAP implementations for Java EE to implement the Java client-side prototype as a “proof of concept”. The reason for this tip is that it will give you hands-on experience using various options on the Java side (and in web services in general) to implement asynchronous processing.

Porting this proof of concept to Delphi would be the second step.


Also, after some research, I do not see any link to specific support for long polling using SOAP (via WS-Addressing or otherwise).

However, handling “asynchronous SOAP” is the usual way to handle long procedures since SOAP 1.2. It is supported, for example, in JBoss - ( Asynchronous Web Services with JBoss WS ).

Perhaps you can also consider a different architecture using a message broker. This is called SOAP on top of JMS. For Delphi, there are free and commercial clients that will allow you to receive a SOAP response from the JMS system.

+1
source

Source: https://habr.com/ru/post/976233/


All Articles