Gregory Prokter wrote:

Much oblidged, Jeff. I was thinking to implement something like that, so if
it works this way great!
I'm still researching and would love to hear on the subject from Alek or Ant
or the other authors. I recall seeing suggestion like this (2 Queues: for
In and Out) in one of the 2001/2002 presentations by the IBM WSIF folks re.
async support in WSIF.


i am thinking to implement a simple prototype of API for HTTP one-way invocations modeling request-response MEP:

   Future<ResultType> result = service.method(param1, param2)

for example:

   Future<String> result = service.echoString("test")

Future is a class in util.concurrent (now part of JDK5 but there is also backport to JDK 1.4 with some limitations <http://www.mathcs.emory.edu/dcl/util/backport-util-concurrent/>) and i think that this could be quite elegant solution to async results

that would work with WS-Addressing enabled services (so message-id can be used for correlation) and would not require JMS.

any thoughts?

thanks,

alek

I've got another question and would appreciate an answer:

Can a single client use multiple Providers to multiple Services?  For ex. A
client calls WSDL1 over SOAP/HTTP and WSDL2 over JMS and WSDL3 over Java.  I
don't see why not, since the binding in in WSDL, but haven't run any
examples with this case and would like to hear howto's and any gotchas in
doing this.

Best to all,

Greg

-----Original Message-----
From: Jeff Greif [mailto:[EMAIL PROTECTED]
Sent: Wednesday, December 29, 2004 5:56 PM
To: [email protected]
Subject: Re: Async invocation in WSIF


I'm not sure JMS transport is required for the invoked web service endpoint. I think there is a test example which uses the JMS queue as the destination for the response, including persistence if the client happens to be shut down when the response arrives, but uses a JMS <-> HTTP bridge to invoke the "ordinary" web service endpoint synchronously.

Jeff

----- Original Message -----
From: "Gregory Prokter" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Wednesday, December 29, 2004 4:08 PM
Subject: RE: Async invocation in WSIF




Jeff-

The answer to your Q is YES.

Ok, after studying the WSIF code, it appears that the transport indeed has
to be JMS in order for WSIFPort_ApacheAxis.supportsAsync() which is called
by WSIFOperation_ApacheAxis.executeRequestResponseAsync() to return TRUE.
Otherwise, it return FALSE and
WSIFOperation_ApacheAxis.executeRequestResponseAsync() throws


WSIFException


("asynchronous operations not available"); as indeed happened in my case.

This is very disappointing since not ever Web Service supports JMS, but


all


support HTTP.

-----Original Message-----
From: Jeff Greif [mailto:[EMAIL PROTECTED]
Sent: Wednesday, December 29, 2004 12:40 PM
To: [email protected]
Subject: Re: Async invocation in WSIF


Did you look at tests/async in the wsif tree? Jeff ----- Original Message ----- From: "Gregory Prokter" <[EMAIL PROTECTED]> To: <[email protected]> Sent: Wednesday, December 29, 2004 11:54 AM Subject: RE: Async invocation in WSIF




Thanks Jeff.

Using an asynch transport, like a JMS provider or SOAP Provider on top


of


JMS is a possible approach to async invocation, but IMO it's rather a


far


leass advantageous approach than having async invocation in the WSIF


itself,


regardless of the synch trasport protocol, like HTTP you're running on


top


of. See an excellent ref on the subject:
http://www.voelter.de/data/articles/ijwr04.pdf. I thought and hoped


that


WSIF.executeRequestResponseAsync() is just that, an async invocation in
WSIF, and in my view if it doesn't work it will undermine considerably


the


value of WSIF.

Greg

-----Original Message-----
From: Jeff Greif [mailto:[EMAIL PROTECTED]
Sent: Wednesday, December 29, 2004 11:33 AM
To: [email protected]
Subject: Re: Async invocation in WSIF


This answer is not definitive, but may be helpful nonetheless. I


believe,


but am not certain, that you need to have a JMS implementation backing
asynchronous calls in WSIF. This means you need to build Axis with a


JMS


implementation (such as OpenJMS) in the class path and similarly make


that


implementation available in your classpath when WSIF is used. In


earlier


incarnations of WSIF, there was some documentation of what was


necessary,


but I have not looked recently to see if it's still there.

Jeff
----- Original Message -----
From: "Gregory Prokter" <[EMAIL PROTECTED]>
To: <[email protected]>
Cc: <[EMAIL PROTECTED]>
Sent: Wednesday, December 29, 2004 9:14 AM
Subject: Async invocation in WSIF




Hello WSIF experts!

Happy New 2005 Year to all!

Recently, I discovered WSIF and it looks awesome! Have run some


examples


with it. Not everything works smoothly and I will have to dive into


the


code myself, which I will do very reluctantly, since I'd rather


concentrate


on my project rather than WSIF code, but this is the nature of the


open


code.

Now to my question. When I ran an example involving asynch


invocation,


i.e.


ok = operation.executeRequestResponseAsync(input, responseHandler);
/* there is a definition of: public class AsyncResponseHandler


implements


WSIFResponseHandler  {} */

I got this cute Exception:

org.apache.wsif.WSIFException: asynchronous operations not available
    [java] at



org.apache.wsif.providers.soap.apacheaxis.WSIFOperation_ApacheAxis.executeRe


questResponseAsync(Unknown Source)
    [java] at



com.edrient.manager.samples.wsif.DynamicInvoker.invokeMethod(DynamicInvoker.


java:291)
    [java] at



com.edrient.manager.samples.wsif.DynamicInvoker.main(DynamicInvoker.java:105


)
    [java] Exception in thread "main"
    [java] Java Result: 1

So, is WSIFOperation.executeRequestResponseAsync() avail or not?  What
versions support it?  I got the lattest stable (downloaded around mid
December 04).

Need you help ASAP!

Thanks a lot in advance,

Greg








--
The best way to predict the future is to invent it - Alan Kay



Reply via email to