Why BPM doesn’t have to screw up SOA

Recently Steve Jones has published an article on his blog in which he states that "SOA makes great BPM, BPM makes crappy SOA". He argues that "BPM driven SOA tends to make bad SOA as it is driven from a procedural and process view, has poor separation of concerns and is mostly all about driving things from the technology perspective". This procedural and process view is a bad starting point, in his opinion, because it tends to see services equal to process steps, which results in "doing VISUAL Cobol and replacing function calls with service".

I agree with him that, if you just make each process step a service, you haven't got any clue about the meaning of a service. But in my opinion BPM can be a very good starting point for implementing a SOA! Of course some basic conditions are needed to make the process successful.

First the difference between service and component needs to be clear. In SOA and service identification I explained how I see services and components. In short: a service is a business function, while a component is an IT asset implementing one or more services. Figure 1 visualizes the definitions for services and components and shows how they relate to each other.

SOA layers

Figure 1 – SOA Layers [1]

Second the components should be identified in a formal way. As shown in SOA and service identificationdoing this with help of methods like BCI-3D will result in components with a high internal complexity/cohesion and a low external complexity. Due to the separation between service and component, the implementation of the services, the components, is fully independent from the interface (the service itself). So organizing components in another way does not affect the services and therefore also not the processes. The other way around is the same. The way you model your processes has nothing to do with the way IT assets (components) are organized.

To conclude: I don't think BPM driven SOA tends to make bad SOA. I think, as I argued in SOA and service identification, that both a top-down (BPM-service-component) and a bottom-up (IT-asset-component-service) approach are needed to make a good SOA in an existing IT landscape.

[1] Tilak Mitra, Business-driven Development. 09-12-2005. http://www-128.ibm.com/developerworks/webservices/library/ws-bdd/index.html#figure3

Be the first to comment!

Leave a Reply