Building service capabilities that are strategic for your enterprise is a key aspect of SOA and lays the foundation for agile business processes in your organization. Many teams are engaged in building service capabilities both as part of SOA initiatives and bottom-up ones motivated by technology teams pursuing the benefits of service orientation.
How do you ensure that the service capabilities are in line with business objectives?
Are there assumptions that hurt your SOA? I believe so! Here are 10 design assumptions that you need to watch out for:
- Service capabilities are always Web Services
- Services need to support only one data format i.e. SOAP
- Services are implemented first and then contracts are extracted (aka code-first approach)
- Service contracts don’t have to be reviewed or governed
- Service capabilities from vendor solutions can be consumed out of the box without mediation
- Services handle exceptions in an ad-hoc manner
- Services implement consumer specific logic
- Service interfaces are always non-validating
- Service capabilities are always accessed in a on-demand fashion. No need to support event driven interactions.
- Service consumers will all migrate to new versions simultaneously. No need to support multiple versions.
Please add to this list any additional assumptions that inhibit the effectiveness of SOA efforts!