Lately I wanted to know why does Web Services Enhancements(WSE) consumes more memory than its ASMX web service analog. After a while I found a post by Clemens Vasters from the early 2004 - Indigo: The evolution of the in-memory message, where he describes the evolution of message processing from ASMX to INDIGO (via WSE).
WSE consumes more memory than ASMX because of this:
"Therefore, WSE has its own pipeline and its own extensibility mechanism that plugs as one big extension into ASMX and when you write extensions (handlers) for WSE, you don't get a stream but an in-memory info-set in form of a SoapEnvelope (that is derived from System.Xml.XmlDocument and therefore a DOM). Parsing the XML text just once and have all processing steps work on a shared in-memory object-model seems optimal."
I remember myself reading that post for the first time back in 2004 - I didn't understand much. Today everything seems obvious.
Sunday, April 08, 2007 10:45 PM