« What went wrong with WebServices? | Main | What's new in the next version of WebLogic WebServices? »
August 25, 2004
Multi-Protocol Web Services
Most protocol processors like to process the headers and the bodies differently. If we look at HTTP, a very standard thing to do in your servlet engine is write a ServletFilter that processes the headers and routes the body without ever parsing the message. HTTP has a very nice separation of headers and body. This allows streaming filters to process the headers and not touch the body. Strangely enough SOAP starts to complicate this picture. If we were just passing XML then there is still a clear separation between the message body and the headers. However with SOAP over HTTP we get this strange behavior where you actually have to read the SOAP headers and then read the SOAP body.
Since SOAP is tag-delimited XML you don't even know if the body is well formed unless you parse the whole thing. And most parsing standars require you to parse the entire XML document (SAX/DOM). StAX is an exception to this rule.
So most SOAP processors have a very hard time doing what comes easy with HTTP (just looking at headers and passing along the body to do routing).
Posted by Chris at August 25, 2004 11:27 AM