Hi,

Could someone provide an update of the current status of Server-side
asynchrony for SOAP web services in CXF? Which transports support it? How it
can be done?

As far as I understand from looking at various descriptions, JMS transport
supports it. 
Using WS-Adressing and providing a callback from the client-side that will
be called once server-side is ready should be also a no brainer.

But what about server-side asynchrony that happens purely on the
server-side, completely transparent for the client? Which transports support
it and how?

I've found some links about CXF continuations that can be used for that, but
it is not quite clear how to do that and what is the current status:
 https://issues.apache.org/jira/browse/CXF-2002
 http://sberyozkin.blogspot.com/2008/12/continuations-in-cxf.html
 http://www.mail-archive.com/[email protected]/msg00801.html

It would be also interesting to see how server-side asynchrony support in
CXF relates to the Sun's Metro SOAP stack support for the same future? There
there are some special interfaces like AsyncProvider and some alternative
proposals:
 http://www.docjar.com/docs/api/com/sun/xml/ws/api/server/AsyncProvider.html
 https://jax-ws.dev.java.net/issues/show_bug.cgi?id=787    (motivation part
is very interesting)

https://jax-ws.dev.java.net/nonav/issues/showattachment.cgi/266/ResponseDispatch.html

Basically, it is very important for many enterprise server-side services to
be able to handle tens and hundreds of thousends requests, where many of
them require a very long time for their completion (due to invoking other
services, doing DBs, etc). Obviously, thread-per-request model would not
work in such situations and would be inefficient anyway. Therefore,
something like continuations in CXF or Fibers/Tubes in Metro are most likely
required to solve the problem. Requests need to be mapped to tasks
representing them and those task should be scheduled in a controlled way on
thread pools with limited number of threads or something similar.
Additionally, some features like timeouts and persistence of such tasks for
long-running operations may be required. Having a common mechanism that is
(mostly) transport independent (HTTP, HTTPs, JMS, etc) and eventually
supports both SOAP and REST services (i.e. JAX-WS and JAX-RS) would be even
better, of course.

Even if server-side asynchrony is not supported out of the box, it would be
interesting to hear if there are any plans regarding it. In any case, I
would appriciate any advices on implementing scenarios similar to the
described above in a client-transparent scalable way (so, not WS-Addressing
or polling).


-- 
View this message in context: 
http://old.nabble.com/Server-side-asynchrony-for-SOAP-web-services-in-CXF-tp28280821p28280821.html
Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to