Dan North published a splendid article explaining SOA by describing a 1950 business scenario and then translating it into technology-agnostic SOA terms.
A PDF can be found here. In this PDF Dan comes up with a few tips:
1. Have a user
- Embedded in the business (he should not be a technical person)
- Who cares about the outcome
3. Remember that calling across the network takes time
4. Use coarse-grained services rather the a lot of little calls
1. Design for what you don't need
- Does it really need to be available 99.999% of the time?
- This includes security, availability - in fact all the “-ilities”
- Better still, don’t expose them as services in the first place
4. Expose your privates
- In other words, avoid putting implementation details into the message
- Instead package all the calls into a single, coarse-grained service call