Technology Thoughts

Friday, October 06, 2006

SOA and reuse

There seems to be a debate about the true extent of reuse in SOAs. E.g. David Chappel, Joe McKendrick, or Theo Beack have blogged about it.

I think that inside an organization reuse is perfectly possible, because in many cases there is only a single context. E.g. inside of a company there should be room for only one logic for a Purchase_Order_service.

The problem for reuse is across a large market of organizations, or for larger organizations with different context. E.g. to be able to buy a "generic" Purchase_Order_service and adapt it for your context.

Theo Beack says that "the context should be elevated to the process layer and NOT encapsulated within the service". But I think this would result in services doing tasks of very limited usefulness, since the actually valuable business logic would be inside business processes, which would create the context by linking services. One can envision these business processes being traded across companies (the context changing thanks to using different services), but I think there is not yet a framework for this. But one for services is emerging, so it may be better to use it.

I think that the key to reuse may be to factor out funcionality as much as possible: create many small services doing concrete things, and relying themselves on other small services. Then all these small services can have a particular implementation inside a particular context. E.g. Purchase_Order_service would rely on Product, Customer, Invoicing etc services which would be specific for the context of an organization. Interface-oriented design is key to this.

This would make services to depend on other services, resulting in more thigt-coupled services, but in exchange they would deliver much more business value than isolated services.

0 Comments:

Post a Comment

<< Home

Weblog Commenting and Trackback by HaloScan.com