axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sam Ruby" <ru...@us.ibm.com>
Subject RE: [AXIS ARCH] - Message Internals
Date Tue, 30 Jan 2001 14:22:20 GMT
Yuhichi Nakamura wrote:
>
> I just read through this thread.  However, I am not sure
> how SAX is useful in the context of SOAP message processing.
> In order to process SOAP messages, we need to "manipulate"
> XML documents in such a way that header entries are removed,
> inserted, and potentially modified.  (Body entries might be
> manipulated in the same manner, but at least header entries
> MUST be processed by the Axis engine.)

It is my intiuition, experience, and reading of the current literature that
retaining the message in memory is not a scalable solution.  I've cited as
an example the recent cocoon rewrite, and pointed out reference to
Microsoft documentation that indicates that they have hit upon a similar
problem and outlined their solution.

Feel free to disagree with the above.  It is my point of view, perhaps
there are others out there.

But if you do see the potential for this being a problem, and you have any
hope for Axis to be successful and therefore deployed in enterprise
configurations, an alternative must be found.  If not now, it will
certainly be done in the *next* rewrite.

Avoiding discussions of a specific API for a moment, what is needed is a
streaming model.  Headers need to be made available to handlers as they are
being received.  A given handler could choose to do various things with
this information - pass it along unmodified, choose NOT to pass it along
(effectively deleting it), create a new header based on information in the
original.  In fact, a handler could easily insert a new header into the
output stream.

There are two basic approaches to streaming: a PUSH model, which SAX
represents.  Or a PULL model, which some of the APIs which have been
submitted to ECMA for standardization represent.  Between these two
alternatives, James seems to favor a pull model.  I'm inclined to agree.

- Sam Ruby



Mime
View raw message