Is it a Web Service or not?

🙂 Mark Baker blogs about "the iTunes music store and the non-browser Web". He writes:

So let me understand... ITMS is presenting an HTTP/URI based interface intended for use by automata, and not human-controlled browsers? How is such a thing possible?! THE WEB IS FOR HUMANS (isn't it?)! Head .. about to ... explode. 😎

This is because Aaron Swartz has been trying to figure out how the iTunes music store has been implemented. Aaron writes:

...the XML format is pretty easy to figure out, and to serve it up you just use plain old HTTP.

Aaron suggests that one has to figure out the XML format of the information being exchanged with the iTunes music store. I guess Apple wanted to keep that information a secret. If, however, they wanted to describe the structure of that information, how would they do it? They'd probably use XML Schema. I am sure that internally they are. And if they wanted to describe the message exchange patterns, the contract for the interactions with the store (e.g., "when the XML document with the order information for a song comes, the response will be the XML document with the song")? What's the community's standard way of doing this? Yup, WSDL. And if they wanted their service to be integrated with other applications without having to read Apple specifications on how to include the information in HTTP requests and how to read HTTP responses? They'd use a SOAP over HTTP binding. Hmmm... could what the iTunes music store is doing be a propriety approach to Web Services? I think so.

I hope I've managed to keep Mark's head from exploding 🙂

2 responses to “Is it a Web Service or not?”

  1. Simon Woodman
    Hi Savas, interesting post, and I agree that iTMS is *remarkably* similar to a web service 😉 one comment though…. in my opinion WSDL does not really capture “message exchange patterns”. Yes, in the most basic sense it does, as it defines the RPC structure for synchronous operations. However, it does not define any message correlation or the “contract for interacting with the store”. In my view “contract” implies multiple messages forming some sort of conversation. Just a comment and maybe we can have a chat about it over coffee sometime. S.
  2. Hey Simon, I absolutely agree with your comment. I use the term “message exchange pattern” in the same way it is used in the WSDL 2.0 specification and not in the way you suggest in your comments, which is of course valid. You are talking about situation where we have message exchanges as part of a protocol-based interaction. I am talking about situations where exchanges could be “request-response”, “request and forget”, etc. See you at coffee 🙂