On Fri, 2006-02-24 at 19:18, Geoff Lane wrote:

> 
> In general, I'm not worried about this because things like Schema have 
> the ability to support optional entities so you can grow your schema 
> over time. Schema is flexible so that growing to another Address format 
> would not be difficult and people could still use the US format. You can 
> provide <xsd:choice> elements to provide multiple valid options for a 
> single entity. (OK, I'll quit now) People also generally do things like 
> versioning of Schemas to handle breaking changes.

I agree that changing the schema is easy. That is part of the problem.
You can do a schema change in a few minutes, and spend a year fixing
broken clients.

I spent some time last year working with a company that was just in the
process of painting itself into that kind of a corner. That was with one
service and _two_ clients.

<snip>
> 
> There's nothing wrong with REST, but you're implying that you can change 
> a REST service at any time and all the clients will still work? That's 
> just not true. If you make enough changes, you're going to break calling 
> clients. The service has some basic expectations. That's true of REST 
> and of SOAP.

Agreed. Any change to the service that is not backwards compatible can
break the clients. REST is no safeguard against poor schema design, but
it does keep the door open to building flexible data formats.

> 
> Don't mean to beat a dead horse with this one. SOAP is a tool, just like 
> many others. If I'm going to go through the trouble of doing SOAP, I do 
> Document Literal services because I can get full Schema validation from it.

But then the question becomes: what does schema validation buy you?
Sometimes it gets you a lot of benefits, I would not want to use an XML
editor without validation. When just transporting transient messages
between a service and its client, I have yet to see it pay off.

One problem with Document Literal is namespace polution. When you work
with content management systems, this can get quite painful. REST does
not have that problem, because there is no special wrapper around the
message.

/Henrik

--
http://kallokain.blogspot.com/ - Blogging from the trenches of software
development
http://www.henrikmartensson.org/  - Reflections on software development
http://testunitxml.rubyforge.org/  - The Test::Unit::XML Home Page
http://declan.rubyforge.org/ - The Declan Home Page