Hi Dalys, when I look at your architectur it seams that we have one more times :-) a) a client talking to b) an agent which in turn talks to c) a server (your external program)
The agent is the server for your client but then it becomes a client for the real server which is your external program. That is what agents (or call it brokers (one who knows how to satisfy a clients demand)) are. What I wonder is how your agent talks to your external program? What platforms and middlewar (among web-services) are you, would you use for that? Is your external program allready a web service too? why not make one out of it? It would allow to drop the agent-idea? Do you use some kind of legacy integration toolkits? I just wonder which one? Given you choos the client - agent - server approach would there be a need later that your agent talks to one-off-several-possible servers to fullfill the clients request? Given you would wrap your external program and make it an axis2 web-service you would then be able to code the client part of the agent to talk to this external program the same way as you client talks to the agent. The client would talk asynchronously to the agent and the agent would talk asynchronously to the server. That way, the agent does not have to wait for the server as it has established a call-back-routine, and this routine, when called, will just be used to pass-back and post the answer to the real client's callback-routine. The question migth come up then: do you need the agent in between? If you wrapp your external program and make it a real axis2 web-service, you can just drop the agent without changing anything on code, given that the answer returned by the external program is almost in a form suitable for your client. That is what agents also can do as intermediarries, adappting the differing possible server answers to an answer the client understoods. Dropping the agent will make your system less complex. Having it will add flexibility to the system. Your external program or legacy migth change over time or is already selected as to be migrated. If this is the case, having an agent, and hence nothing changes between client and agent, all required is to make the agent talk to a new type of service(es). This could also be a way of migrating away from a legacy to a new server application. There migth be other architectural constraints. I hoope that this lines help you before you dive to deep into details. Josef -----Ursprüngliche Nachricht----- Von: Dalys Sebastian [mailto:[EMAIL PROTECTED] Gesendet: Dienstag, 21. November 2006 23:48 An: [email protected] Betreff: Re: Using asynchronous messaging Hi Ali, Thanks for the links. I had read through these links, and I still am not able to get the complete picture of the service-side processing. For e.g.,suppose my service class will look like this: public class A { public void asyncservice(String data) { //determine the replyTo address //queue data in the server for further processing } } 1) And when I get back response after processing at the server, how will I communicate this to the client? 2) What must the client set in the replyTo address? It doesnot have any webservice running. It's a simple .Net client. Any answers for this will be very helpful. I apologize if I have overlooked something. Thanks, Dalys --- Ali Sadik Kumlali <[EMAIL PROTECTED]> wrote: > Hi Dalys, > > If you mean axis2, you might start from: > - "Do a Non-Blocking Invocation" title in user guide[1] > - "Request-Response, Non-Blocking that uses two transport connections" title > in this[2] > page. > - Similar e-mails in axis-user list[3] > > Regards, > > Ali Sadik Kumlali > > [1] http://ws.apache.org/axis2/1_1/userguide.html > [2] http://ws.apache.org/axis2/1_1/dii.html > [3] > http://www.mail-archive.com/search?q=axis2%20asynchronous&[EMAIL PROTECTED]&start=10 > > ----- Original Message ---- > From: Dalys Sebastian <[EMAIL PROTECTED]> > To: [email protected] > Sent: Tuesday, November 21, 2006 11:14:09 PM > Subject: Using asynchronous messaging > > Hello, > > I am trying to figure out how to configure the service side for solving the > following > problem: > > The server gets a request from a client which cannot be immediately > processed. It has > to > go to an external program to fetch information which may take a delay. Only > after a > response is obtained from the external program, can a response be sent back > to the > client. > > How do I implement the service-side logic to solve this issue? Till now I > have been > using > the RPCMessageReceiver and performing only synchronous calls. > > 1) What's the MessageReceiver that needs to be used in these situations? > 2) What must the client set in their reply-To address field? Should the > client be > running > a separate webservice to get back responses? > 3) And when I need to return back the response to the client, how does the > server > invoke > it? is it as a webservice call with the To address same as the received > replyTo field? > 4) How must the client-side code be to get back the response? Using > sendReceiveNonBlocking? > If there is an example somewhere which can demonstrate these configurations, > it would > help a lot. > > Thank you, > Dalys > > > > ____________________________________________________________________________________ > Sponsored Link > > Mortgage rates near 39yr lows. $510k for $1,698/mo. > Calculate new payment! www.LowerMyBills.com/lre > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > ____________________________________________________________________________________ Sponsored Link $200,000 mortgage for $660/ mo 30/15 yr fixed, reduce debt http://yahoo.ratemarketplace.com --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
