by Joe McKendrick
The main value of SOA is reuse. Build once, use often. So it can be assumed that any services you build and deploy should be reusable across the enterprise, or whatever other sphere you work in — or else you're not getting your money's worth, right?
Well, it depends, advises ZapThink's Jason Bloomberg.
Depends on what? SOA is all about reuse, right? Or you may as well just run a proprietary application for the same amount of expense.
The answer depends on whether your SOA is being built in a top-down or bottom-up fashion, Bloomberg says.
If your SOA effort is a top-down approach, reuse may not always be the number one priority. If your SOA is developing from the bottom up, reuse may add some value to the top 20% of applications getting the most usage.
In the top-down approach to SOA, business processes are decomposed with an eye toward identifying areas of redundancy. However, Bloomberg says there are more pressing priorities in a top-down scenario, such as the "evolvability" of services — their ability to adapt to changing business requirements. In addition, reusability may essentially be irrelevant in B2B scenarios, since the goal there is getting two disparate systems to talk, Bloomberg says.
With the bottom-up approach, however, the goal of SOA is to expose existing IT capabilities. Here, a good rule of thumb to apply to reusability is the 80/20 rule, which states that 20% of the existing functionality in any given system will be used 80% of the time, says Bloomberg. Worry about reusing that top 20%. "The remaining 80% of the functionality handles special cases, exceptions, and other low-use scenarios."
Bloomberg observes that "while the greatest use doesn't necessarily mean the greatest reuse, service-enabling that 20% is likely to lead to the greatest level of reuse as a rule of thumb. Clearly, if an architect can identify the 20% of existing IT systems with the heaviest use, service-enabling that portion of your functionality will provide the business its biggest bang for the buck."
Here, "composability" is also the key, Bloomberg says, putting it this way:
"A service would clearly be very reusable if there were a million service consumers out there making regular use of the service — and that would be a good thing, to be sure. But that service may not be composable if business users aren't able to find a way to incorporate it into composite applications that implement service-oriented business applications (SOBAs). If a service is truly composable, therefore, then the business should be able to find many ways to compose that service into different SOBAs. Such composability is where the true business value of SOA lies."