Thursday, June 12, 2008

Reusable processes and SOA

Joe McKendrick has an interesting post on SOA rituals that made me smile.

I agree that hatered against the 'poor beleagured' Silo may be misplaced. Some boundaries are necessary for you to be able to act and implement. If everything in the enterprise was to be implemented and controlled globally, very little could get done.

Joe then describes what he thinks SOA really is - "it is a scope of architecture, like Building Design vs. Urban Planning". I disagree. I think the "Urban Planning" space belongs to Enterprise Architecture. With SOA, I don't worry about what lies behind the service interface. When doing EA, I consider all the technologies and applications and systems in the Enterprise. I look at the gaps in the Business Architecture and look for ways to fill the gaps. I do this irrespective of whether they provide loosely coupled re-usable services or not (which is what I see SOA as doing).

On Reusable processes and SOA

James McGovern has a post where he casts a big shadow on the prospect of reusable services. He thinks reusable business rules might actually work but not reusabe services. In his experience, applications get rebuilt or rewritten if they have to be reused.

The way SOA is generally positioned, services should encapsulate reusable business processes. I don't find too many potentially reusable services when I look around.
  • They require access to data. Enterprise data is often local, not global. Regulatory requirements might prevent you from having global data stores (especially in the banking domain.) In any case, data for UK is likely stored in UK and data for Malaysia is likely stored in Malaysia.
  • The processes differ. The business process in one location may well differ from another location. There are differences in the business environment (cultural, political, administrative, regulatory, legal, geographical, economical etc.) that require that the process be different.
  • They involve people and roles. Large enterprises usually have global employee databases. However, the employees are organised differently and have different roles - again due to different business environments.

These factors greatly diminish the set of services that can be simply reused without customization.

No comments: