Thanks David. I didn’t think of leveraging another service to
make the Message available in messaging systems. I think it would be better to
have just one request sent to the messaging system. More like what Pim
suggested.
~Makesh
Actually I was suggesting two approaches. One is just the
traditional backend application UserMessage - but the other is using a hybrid
approach with a messaging queue and messaging service.
I've used this in production for a Grants.gov application built
for NIH.
The actual messages packages are quite large - combination of XML
and PDF attachments - so the original submission goes into the queue. The
delivery system then allows external systems to query for messages waiting in
the queue (actually this is a webservice via SOAP - but can easily be via ebMS
too).
Having downloaded the current messages in the queue stack - then
the external system issues requests to the messaging service - and it goes and
gets those from the queue and delivers them.
Original Message
--------
Subject: RE: [ebxml-msg] Pull'ing a specific document
From: "Makesh Rao (marao)" <marao@cisco.com>
Date: Mon, March 29, 2010 9:12 pm
To: "David RR Webber (XML)" <david@drrw.info>
Cc: <ebxml-msg@lists.oasis-open.org>
So this will need to be a UserMessage rather than a Pull
SignalMessage ? Backend implementation is something we have solution for, it
was more on how to get the request for a particular package when Pulling data.
This sounds a bit like interfacing with an RSS server.
Otherwise this functionality is typically backend application enabled -
from the payload - rather than the messaging system.
I know in RSS world people can pull delivery packages out of
sequence - so priority items, or priority customers get handled first.
I assume something similar to that is what they are looking - so
it would require some customization involving a delivery queue - in combination
with the messaging server - so that you instruct the queue to peel a package
off and route it to the AS4 server for dispatch. So the first thing you
get is a notification of a package having been added to the queue - its size,
priority and its queue id # - and then you issue a request message back to the
server - and it releases it from the queue at that point for actual delivery.