I have seen this kind of operation in place before - SMS providers for example 
for event driven stuff across the solution boundaries using basically a 
callback implementation

I would 
* expose an http interface to my solution.  I think it would be RESTian for the 
usual reasons
* I would use some message broking in the middle because it guarantees the 
sequence, deliver once, dont lose thing.  ActiveMq seems pretty good - I am no 
expert though
* For the feedback leg to the client you could
     ** ask them to register an optional http endpoint that you could signal
     ** let them come and get it from you - e.g. you expose an rss feed 
personalised to that client

I think its a fairly standard way of exposing an inherently async service in a 
sync manner

On 31 Mar 2011, at 14:41, James Talbut wrote:

> Folks,
> 
> Another question along similar lines to the System architecture thread.
> 
> I need to provide an asynchronous web service that will accept calls
> from a client, persist them somewhere, then asynchronously try to call
> a corresponding web service implemented by a third party.
> If the call succeeds my service should notify the client (via another
> web service, probably most REST-like than SOAP-like).
> If the call fails I should keep trying periodically for 24 hours.
> 
> The two primary requirements are:
> 1. The initial call from the client should be quick (so don't try
> calling the third party straight away).
> 2. It must be impossible to lose a message or send it to the third
> party twice (hence it needs to persist the message somehow before
> returning).
> 
> I don't know ActiveMQ (but happy to learn) and the third party won't
> provide anything more than a simple web service interface (so they
> won't hook into an ActiveMQ that we implement).
> *
> I'd like to be able to reuse the infrastructure so providing the same
> functionality across different web services is trivial.
> i.e. I'd like the thing that picks up failed messages to work for any
> web service (requiring nothing more than the spring definition).
> 
> Is ActiveMQ the right tool for looking after persisting the messages
> and making them available?
> Should I just write my own component to persist (and recover) a
> complete Camel Exchange?
> Or is there something else out there that will do what I want?
> 
> Any pointers gratefully received.
> 
> Thanks
> 
> Jim
> 

Reply via email to