Adam Bosworth lists these design principles for
Web Services:
- relatively coarse-grained communication:
in stateless protocols, round trips are expensive, so
minimize them. (Don't send 1000 requests for individual
rows of the table: send one request for a thousand rows.)
An issue for scalability.
- loose coupling. Learn from the problems of
old client/server work, OO work: don't know too much
about what's on the other side.
The format of the XML messages you accept and receive
is your contract with the world. “So it's critical that
the thing in charge here is the WSDL and not the code.”
- asynchrony: don't block if you don't get an
immediate response. (Hence: message-based architecture.)