I'm in the position where I may be creating a new web service from scratch - without much pre-existing infrastructure to have to contend with. What resources are there that talk about the architectural aspects of deploying a web service? [Clarification: I'm not talking about an Enterprise SOA orientation here - rather setting up one family of services for the public.]
A first list of topics that I'd like to see covered are:
- SOAP vs. REST
- JSON vs. XML
- Relational Database Backed vs. SimpleDB backed vs. ?
- Scaling
- Availability
- Models for restricting access
- Models for throttling access
What would you recommend?