- From: Mark Nottingham <mnot@mnot.net>
- Date: Tue, 28 Aug 2001 13:37:45 -0700
- To: Paul Prescod <paulp@ActiveState.com>
- Cc: xml-dist-app@w3.org
> If an arbitrary limitation of the software gets in the way of meaningful > useful real-world uses then it is lacking a feature whether we call it > broken or not. I don't think it's arbitrary; implementations need to protect themselves from overflow attacks, etc. Of course, if the world decides that longer URIs are a good and useful thing, fine. However, one of the ideas behind having HTTP bindings for SOAP is that it will be able to use the existing infrastructure (re-use existant HTTP stacks, and use HTTP for routing out of the firewall). If SOAP suddenly requires something that a good part of that infrastructure doesn't support, we lose a lot of value. > > I.e., it's not enough to say: > > http://www.example.com/service?arg1=foo&arg2=bar > > because one can't encode the entire range of SOAP envelopes possible; > > It isn't necessarily the case that we have to support EVERY SOAP > envelope. From a purist point of view I would advocate that. But from a > practical standpoint, I would be happy with much less. I would like to > not have to choose between SOAP and URIs for the sorts of things URIs > are already good at (e.g. get me a stock quote, what's the temperature, > please convert this currency value). From SOAP's standpoint, something that is a transport binding HAS to support every SOAP envelope. I'm not arguing that encoding the request in the URI isn't a good approach for some uses; it's just that it's hard to fit doing so into SOAP's model. > > while this encoding happens to be good enough for RPC, it isn't > > possible to encode anything more complex. That's not to say that this > > approach can't be done; it's just that the request isn't SOAP. > > It isn't SOAP as defined today. It can easily imagine a parallel > universe where method=mymeth&arg1=foo&arg2=bar maps into: > > <SOAP:Envelope > xmlns:SOAP='urn:schemas-xmlsoap-org:soap.v1'> > <SOAP:Body> > <mymeth> > <arg1>foo</arg1> > <arg2>bar</arg2> > </mymeth> > </SOAP:Body> > </SOAP:Envelope> I like your characterisation of this as a mapping; I don't think it can work as a transport binding, but perhaps as a convention to be used in conjunction with what is effectively one-way messsaging (SOAP envelope on the HTTP response). (just thinking out loud) > > The way to do it would be to actually serialize the XML infoset as > > URI parameters and/or query arguments. I.e., > > http://www.example.com/service?*some XML Infoset serialisation* > > In this manner, none of the expressiveness of SOAP is lost. > > That's another way but now you are trading off human-readability which > is a major advantage of both URI's and XML (that's why we don't use > UUIDs and ASN.1!). I think a=b&c=d would be a minimized format. The > serialization would be an expanded one. I don't disagree that this would be impractical and unfriendly; just staking out the space. > > Unfortunately, doing so doesn't gain the benefits that are being > > looked for; because there are a number equivalent ways to encode a > > message infoset in section 5, I think we'll find that the same > > service in fact would have a number of different URIs, based on how > > client implementations encode the data. > > Just as there is a canonical XML, canonical Unicode, etc. there should > be a canonical section 5. Yes; well said. I'm no section 5 expert, but this would make life a lot easier IMHO. Cheers, -- Mark Nottingham http://www.mnot.net/
Received on Tuesday, 28 August 2001 16:37:47 UTC