"When someone mentions the idea of using SOA for reuse, I cringe..." -Harry Pierson, Microsoft
The assault on the concept of reuse as the value driver for SOA continues. David Chappell, who began publicly questioning assumptions around SOA reuse in an August newsletter article, followed up with a report that he's seen a surprising level of agreement to his point of view. (But notes that he's not sure I share his perspective.) A business object has significant contextual requirements, which makes reuse difficult or impossible
David reports on a recent conversation with SOA consultant and author Thomas Erl, who is "significantly more bullish" on the potential for reuse. Erl's view is that "if an organization does an appropriate top-down analysis of a well-defined business domain, it's quite possible to discover and implement reusable services." David agrees with this argument, but Erl was not able to entirely sway him: "What's harder for me to believe is that a majority of organizations will be able to do this. Instead, I've come to expect most efforts to take a more technically oriented bottom-up approach." He notes that vendors will be forcing enterprises to adopt SOA, with or without reuse benefits.
David also cites a biting critique of SOA reuse, coming from Harry Pierson at Microsoft. Pierson departs a bit from David Chappell, observing that reuse within the object-oriented world did see a large degree of success, as evidenced in Microsoft's own development environments (strings, linked lists, buttons, class libraries).
However, business service reuse is a whole different animal, since its success will depend on context:
"A string or a linked list or a button has very little in the way of contextual needs. ...you can use it the exact same way in a wide variety of environments. A business object on the other hand has significant contextual requirements, which makes reuse difficult or impossible."
Pierson illustrates his point:
A Purchase Order object in a military procurement system may be reusable, "at least until you take into account the differences between branches of the military, between ordering tanks and ordering uniforms, between active units and reserve units, etc. Once the generic Purchase Order has been specialized to the point of practical usability for a given scenario, it's no longer reusable in the general case."
Thus, the only true candidates for reusable services "will be the ones with little or no contextual needs," such as directory services, management and operations, business activity monitoring and provisioning. "I actually think there will be less reuse in services than there was with objects," Pierson concludes. Plus, calling services from across the network is more expensive than simply accessing more localized services, he adds.
Can reuse catch hold as SOAs develop? There's a lot to gain and little to lose in terms of development time and potential agility for the business. The vendors are getting a handle on the governance aspect of creating and maintaining services. Questions that need to be answered include who (which department) will put up the time and money to create a service, whether they will be willing to share their investment, and who will maintain and test the service for the rest to use.
The bottom line is that enterprises may have no choice but to reuse as much as possible. From a management standpoint, reuse offers the ultimate shortcut to getting projects done and rolled out the door as businesses demand it. In today's complex IT environments, speed is everything -- and no one has the time or can afford to keep reinventing the wheel.