May 05, 2006
SOA angst and the overuse of reuse
John Evdemon is fed up with the SOA hype (and the next-big-thing hype, and makes some sensible points about integration. In particular, that reuse is almost never the right argument for doing integration and interoperability.
Reuse often falls out as a side benefit from technologies. The critical requirement is to make the process you want to get working actually working. If this can save you effort next time, or on another system, thats great, but its not the primary motivation. We've seen this a lot in the learning objects discourse, with the "reuse" topic hijacking the agenda when perhaps other concerns, such as enabling coordination of shared activity, making it easier for teachers and students to write and publish, and making more connections between resources (rather than less - a requirement for LO reuse is fewer or no links) may have been more fruitful avenues to pursue.
Services and loosely-coupled connections have benefits that have nothing to do with reuse - separation of concerns, robust design, easing transitions to new implementations, enriched application capability and so on - some of which may be of particular importance within a project, application or process.
Service reuse can be a critical feature - feed aggregation being one of the most well-known cases of this. However, there are other types of services which are unlikely to ever get more than one consumer application in an organisation. Thats not a reason for not using a service-oriented approach to make it happen, however, as there are benefits in terms of easing system replacement and in clearly identifying the contracts between the systems to ensure there is a consistent application of policies on things like security, privacy and so on.
(For those who don't know him, John works for Microsoft on things like workflow management and web services.)