

![]() | Start a set with this search |
![]() | Include this search in one of my sets |
![]() | Exclude this search from one of my sets |
![]() | Permalink to these results Paste this link in email or IM: |
| Atom feed for tracking future search results Paste this URL into your reader: |
83 messages in org.w3.www-tagRe: FW: draft findings on Unsafe Meth...| From | Sent On | Attachments |
|---|---|---|
| Dan Connolly | Apr 15, 2002 8:50 am | |
| Larry Masinter | Apr 15, 2002 1:44 pm | |
| David Orchard | Apr 15, 2002 3:01 pm | |
| David Orchard | Apr 15, 2002 3:19 pm | |
| Mark Baker | Apr 15, 2002 8:00 pm | |
| Keith Moore | Apr 15, 2002 8:37 pm | |
| Scott Cantor | Apr 15, 2002 9:28 pm | |
| Edwin Khodabakchian | Apr 15, 2002 9:34 pm | |
| David Orchard | Apr 15, 2002 10:18 pm | |
| Paul Prescod | Apr 15, 2002 11:17 pm | |
| Tim Bray | Apr 15, 2002 11:32 pm | |
| Mark Nottingham | Apr 16, 2002 1:01 am | |
| Tim Bray | Apr 16, 2002 1:02 am | |
| Mark Nottingham | Apr 16, 2002 1:09 am | |
| Paul Prescod | Apr 16, 2002 2:11 am | |
| Paul Prescod | Apr 16, 2002 3:02 am | |
| Mark Baker | Apr 16, 2002 4:54 am | |
| Williams, Stuart | Apr 16, 2002 8:22 am | |
| Keith Moore | Apr 16, 2002 8:32 am | |
| jon...@research.att.com | Apr 16, 2002 8:44 am | |
| Scott Cantor | Apr 16, 2002 8:55 am | |
| Paul Prescod | Apr 16, 2002 9:40 am | |
| Mark Nottingham | Apr 16, 2002 9:42 am | |
| Hutchison, Nigel | Apr 16, 2002 9:43 am | |
| Henrik Frystyk Nielsen | Apr 16, 2002 10:48 am | |
| Bullard, Claude L (Len) | Apr 16, 2002 1:46 pm | |
| Larry Masinter | Apr 16, 2002 6:39 pm | |
| Roy T. Fielding | Apr 16, 2002 7:54 pm | |
| Larry Masinter | Apr 16, 2002 10:10 pm | |
| Graham Klyne | Apr 17, 2002 1:54 am | |
| Paul Prescod | Apr 18, 2002 12:33 am | |
| Graham Klyne | Apr 18, 2002 9:11 am | |
| Alex Rousskov | Apr 18, 2002 9:30 am | |
| Paul Prescod | Apr 18, 2002 9:45 am | |
| Graham Klyne | Apr 18, 2002 11:58 am | |
| Roy T. Fielding | Apr 18, 2002 3:11 pm | |
| Don Box | Apr 18, 2002 6:28 pm | |
| Mark Baker | Apr 18, 2002 8:50 pm | |
| Keith Moore | Apr 18, 2002 8:54 pm | |
| Paul Prescod | Apr 18, 2002 10:00 pm | |
| Graham Klyne | Apr 19, 2002 12:53 am | |
| Bill de hÓra | Apr 19, 2002 4:18 am | |
| Roy T. Fielding | Apr 19, 2002 1:20 pm | |
| Anne Thomas Manes | Apr 22, 2002 3:23 pm | |
| Paul Prescod | Apr 22, 2002 4:01 pm | |
| Anne Thomas Manes | Apr 22, 2002 8:17 pm | |
| Paul Prescod | Apr 22, 2002 10:21 pm | |
| Anne Thomas Manes | Apr 23, 2002 5:36 am | |
| Paul Prescod | Apr 23, 2002 12:03 pm | |
| Paul Prescod | Apr 23, 2002 2:09 pm | |
| Roy T. Fielding | Apr 23, 2002 2:14 pm | |
| Bullard, Claude L (Len) | Apr 23, 2002 2:50 pm | |
| Joshua Allen | Apr 23, 2002 2:53 pm | |
| David Orchard | Apr 23, 2002 4:14 pm | |
| Keith Moore | Apr 23, 2002 5:05 pm | |
| Roy T. Fielding | Apr 23, 2002 5:14 pm | |
| Simon St.Laurent | Apr 23, 2002 5:18 pm | |
| Larry Masinter | Apr 23, 2002 6:31 pm | |
| Mark Baker | Apr 23, 2002 6:36 pm | |
| Paul Prescod | Apr 23, 2002 8:03 pm | |
| Tim Bray | Apr 23, 2002 8:30 pm | |
| Dan Connolly | Apr 23, 2002 9:05 pm | |
| Joshua Allen | Apr 23, 2002 9:10 pm | |
| Anne Thomas Manes | Apr 23, 2002 9:28 pm | |
| Mark Nottingham | Apr 23, 2002 9:42 pm | |
| Jeff Bone | Apr 23, 2002 9:42 pm | |
| Joshua Allen | Apr 23, 2002 10:02 pm | |
| Paul Prescod | Apr 23, 2002 10:05 pm | |
| Joshua Allen | Apr 23, 2002 10:27 pm | |
| Joshua Allen | Apr 23, 2002 10:38 pm | |
| Mark Nottingham | Apr 23, 2002 10:57 pm | |
| Mark Nottingham | Apr 23, 2002 11:16 pm | |
| Joshua Allen | Apr 23, 2002 11:20 pm | |
| Dan Connolly | Apr 23, 2002 11:23 pm | |
| Tim Bray | Apr 23, 2002 11:56 pm | |
| Bullard, Claude L (Len) | Apr 24, 2002 7:23 am | |
| Larry Masinter | Apr 24, 2002 8:47 am | |
| Keith Moore | Apr 24, 2002 10:46 am | |
| Bullard, Claude L (Len) | Apr 24, 2002 10:56 am | |
| Aaron Swartz | Apr 24, 2002 11:27 am | |
| Mike Dierken | Apr 24, 2002 12:06 pm | |
| David Orchard | Apr 25, 2002 10:54 am | |
| Roy T. Fielding | May 5, 2002 3:38 am |

![]() | Permalink for this message Paste this link in email or IM: |
![]() | Permalink for this thread Paste this link in email or IM: |
| Atom feed for this thread Paste this URL into your reader: |
| Subject: | Re: FW: draft findings on Unsafe Methods (whenToUseGet-7) | Actions... |
|---|---|---|
| From: | Paul Prescod (pa...@prescod.net) | |
| Date: | Apr 23, 2002 12:03:56 pm | |
| List: | org.w3.www-tag | |
Anne Thomas Manes wrote:
Paul Prescod wrote:
We're getting off into a diversion. Can we agree that every piece of information available on the Web should be URL addressable or a PART of a URL-addressable resource? And I don't mean part in a vague sense: I mean you download a representation and the piece of information is in there. In many content-types you can also directly link to "sub-resources" of the resource (e.g. XML, PowerPoint, PDF)
Agreed. In the case of a Web service, if you perform a simple GET on the resource, you receive a service description, which tells you how to (a) how to invoke the service or (b) how to send a message to the service.
Let's be concrete. With the HTTP version of Google' web service I can refer to any cached page with a URI:
* http://216.239.35.100/search?q=cache:www.manes.net
With the SOAP version *I cannot do so*. Cached pages retrieved through the SOAP interface *have no URI*. If the SOAP interface is removed, the URI version provides all of the same functionality. But if the URI version is removed I can no longer use XPath/XPointer/XSLT's "document" function to retrieve this. I can no longer use XInclude to refer to it. I can no longer use a cached Google document as an XML Namespace definition. I can no longer make RDF assertions about it.
The HTTP-GET version of the service is in a very strict, concrete sense, more powerful than the HTTP-POST/SOAP version.
The same goes for UDDI. Please forget that UDDI is about discovery. I'm not talking about the best way to do discovery. I'm talking about the best way to make a bunch of information available on the Web. UDDI repositories happen to be a "bunch of information." For all I care it could be a rap album database. An HTTP-GET/PUT/POST/DELETE version of UDDI, or the rap database, would be more powerful in a strict and concrete sense then the HTTP-POST/SOAP version. Thousands of people have heard this claim and not one has disputed it.
I could go down the list of web services at XMethods and demonstrate the same thing. Each can be made demonstrably and substantially more powerful if you base them on multiple HTTP methods rather than just one. It doesn't matter whether the service is read-only or read-write, the multiple-method HTTP version still wins. Thousands of people have heard this claim and I am waiting for the first counter-example.
.... I encourage you to explore new ways to perform discovery.
I think we could have a very interesting conversation about this but I don't think it is the same conversation as whether SOAP should support more than one HTTP method.
... Right now the most popular form of discovery of Web resources by humans is Google, although Google doesn't particular help you discover Web services (a very specialized form of Web resource). Google (until now) hasn't been particularly available to application (non-human)clients. By building a SOAP API to Google, applications can now invoke Google searches. I would characterize the Google SOAP API as extremely flexible and powerful -- so I'm having trouble following your argument. Are you saying that it could be more flexible and powerful (i.e., support simpler discovery) if Google designed a API based on something else other than SOAP?
Yes, I will separately send you an article that demonstrates this.
If you spend a moment looking at the Google WSDL description, you'll realize that the input and output messages are relatively complex.
Just FYI, I've done more than look at the Google WSDL description. I rewrote it to use pure HTTP. (WSDL supports "pure" HTTP) I also wrote a server side application that maps from the HTTP version to the SOAP version. My version is a strict functional superset of the real Google version.
The other fascinating thing about it is that Google has three methods.
1. GetCachedPage. They *already* have an HTTP way to do this. They merely needed to descsribe it in WSDL and it would have been an official web service. For various reasons the HTTP version would be substantially more efficient and simpler.
2. SpellingCorrection. this one takes one string argument and returns one string argument. In order to do that, it builds two HTTP envelopes and two SOAP envelopes, although HTTP can trivially pass strings back and forth.
3. GoogleSearch. This one was provided in a XML/HTTP version around a year ago. That service became pay-only.
So they had their problem essentially solved a year ago and they had only to publish a WSDL. But instead they invented a less powerful, less efficient SOAP wrapper. That's progress!
... The data are structured and typed, and the formats change based on the function you're performing. From a developer's point of view, it much simpler to deal with these input and output messages as application structures than as URI constructs. I'm not sure that I'm willing to sacrifice developer productivity for a simpler discovery mechanism.
There is no change in developer productivity. If you are using the .NET framework you take my version of the wsdl and you say:
delete GoogleSearch.wsdl ren Pauls.wsdl GoogleSearch.wsdl wsdl Pauls.wsdl
That generates a C# class which is identical to C# or VB programmers (actually there is a bug in Microsoft's WSDL implementation that prevents this from being strictly true -- but it is very close). If other WSDL implementations are similarly sophisticated (they aren't, yet) then the same will be true for them. I'm not theorizing. I have the code to prove it:
wsdl: http://www.prescod.net/rest/googleapi/GoogleHTTP.wsdl generated C# client (after a small bug fix): http://www.prescod.net/rest/PureXMLGoogleHTTPService.cs C# client code (same as shipped with the Google API): http://www.prescod.net/rest/googleapi/Form1.cs server implementation: http://www.prescod.net/rest/googleapi/google_gateway.zip
To be clear, the only thing that changed for the average developer is the classname. For clarity I created a different class name than Google's. But now the underlying service is based on GET (they had no need of PUT/POST/DELETE) and supports URI referencing.
...
Since Web services by definition are identified by a URI, you can easily reference a Web service. Our are you looking for more granularity -- I imagine that you're asking for a mechanism to supply a URI that provides access to a specific method within the service? There are ways to do so. You could provide a reference to a specific QName (referencing an operation within a portType) within the WSDL document.
I don't want to reference the web service. I want to reference the information WITHIN the web service. If it is a stock database, I want to reference *individual* stock quotes. If it is a UDDI repository then I want to reference individual T-Models. If it is a Google search then I want to reference individual search results (as I could a year ago, but cannot with the SOAP API). If it is an album database I want to reference individual albums.
This is not rocket science. It works on the Web as we know it. We now have a trend of people choosing to use SOAP because it is new and shiny and losing features that the Web provided them in 1993. We need to figure out how SOAP can add value to the Web's existing features and not detract or compete with them.
Paul Prescod







