SOA snuck up the industry in the wake of .NET and Java. At first, at least, service-oriented architecture wasn’t really much more than some notions about best practices mostly learned from experience with less-than-best practices (better known as real world experiences).
When Microsoft’s patterns & practices group rolled through Boston a little while ago, Ron Jacobs, product manager for the patterns & practices team, addressed issues of patterns for SOA, with an eye toward .NET. Jacobs said there are four major tenets to be considered when designing service oriented applications.
These are: boundaries are explicit; services are autonomous; services share schema and contracts, not classes; and service compatibility is determined by policy.
Underlying these tenets is the notion that systems must be built to anticipate change — that they will need to adapt to new services in the future.