« Using WSDL & Schema for Compatible Evolution | Main | New Grouse Grind Records »

Atom 0.3 WSDL 2.0

I've written up a WSDL 2.0 specification for Atom 0.3. It's based upon Randy's work on WSDL 1.1

My proposal for WSDL 2.0 Atom is at http://www.pacificspirit.com/Authoring/wsdl/atom3.1.wsdl2

I have a number of questions and comments about the WSDL 1.1 and WSDL 2.0 as a result:

WSDL 1.1 comments/questions:
- Shouldn't there be a WSDL 1.1 HTTP binding?
- I think the WSDL 1.1 action fields are wrong. The soap action should be the atom ns defined operations, not HTTP operations. Chris Ferris also suggested this. I've done what Chris suggested.
- Is the mime ns decl necessary?
- Why are the responses in "wrapped mode"? I removed the wrapper on the response.

WSDL 1.1 and WSDL 2.0 comments/questions:

- Why isn't the doc/lit style used? This has used the "wrapped" doc/lit. I'd prefer either straight up doc/lit, or even rpc/literal, rather than re-inventing rpc and calling it doc/literal.

- If wrapped is kept, and the responses are correctly unwrapped, then the wrappers can be updated. I've done so.

- Will SOAP 1.2 be supported?

- Does a service have to support both HTTP Transfer and SOAP/HTTP for the Post and EditURIs? The WSDL to describe that a given dynamic URI supports both bindings is hard to write. It seems harder to write server software as an HTTP POST could be one of: Atom:POST, SOAP:envelope (with one of POST/PUT/DELETE/GET), atom:PUT, atom:DELETE, depending upon whether http, soap, http wrapped are used.

- No mention of any binary data, can't remember if there was talk of adding binary data for images..

- There's no SOAP Faults content

- Is the "wrapped" HTTP supported? Where the POST could contain a DELETE or PUT?

WSDL 2.0 comments/questions:

- in WSDL 2.0, optional elements are allowed, so you could have the security element. I have left it in as I understand the reason for removing it from wsdl 1.1 was that headers can't be optional in wsdl 1.1

- There must be 2 interfaces: the SOAP and the HTTP interface because the interface has to know whether to put the "procedure" as the child or not. A classic leaky abstraction. I also observe the inability to separate soap from http in the abstract layer.

- There must be 3 http bindings and 3 http endpoints because there are 3 different HTTP uris - POST, ENTRY, and FEED. hmmm.

- The Atom WSDL 1.1 did not provide an HTTP binding, so any comparison of bindings of WSDL is misleading.

- In summary, there are 2 interfaces, 4 bindings, 2 services and 4 endpoints. This doesn't seem very simple from an HTTP perspective. The SOAP binding does look markedly simpler, especially if the ws-security is removed.

Comments (3)

I will edit my comments on my blog
http://www.kbcafe.com/rss/?guid=20040705155320
so that you can see them before I'm finished.
And when I'm finish, I will post the whole lot here and in the mailing list. Unless you object.

\definitions\types\xs:schema\@targetnamespace should be http://purl.org/atom/ns/types#
atomtypes:entry should be atom:entry.
atomapi:POST should be atomtypes:POST.
atomapi:GET should be atomtypes:GET.
atomapi:DELETE should be atomtypes:DELETE.
atomapi:PUT should be atomtypes:PUT.

Dave: Shouldn't there be a WSDL 1.1 HTTP binding?
Randy: I don't see how this is possible for POST, PUT and DELETE. I can do it for the GET operations.

Dave: The soap action should be the atom ns defined operations, not HTTP operations.
Randy: Agreed, I thought I already changed this. Oopsy!

Dave: Is the mime ns decl necessary?
Randy: No, I think it was left behind from a time that I did require them.

Dave: Why are the responses in "wrapped mode"? I removed the wrapper on the response.
Randy: Excellent idea.

I've done the fixes that you suggested and reposted

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

About

This page contains a single entry from the blog posted on July 5, 2004 3:07 PM.

The previous post in this blog was Using WSDL & Schema for Compatible Evolution.

The next post in this blog is New Grouse Grind Records.

Many more can be found on the main index page or by looking through the archives.

Powered by
Movable Type 3.34