In the Bible of Software Development, a new book has just been written.
Steve Jones’ SOA Anti-patterns is one of the best things I have read in a while. I do have to say, however, that I must be missing something on one point here.
Organisations start with a detailed Process map and then attempt to “fit” this into a Service Oriented Architecture; this refactoring leads to process becoming the dominant feature and leads to a Process Oriented Architecture (POA) rather than SOA.
An organisation’s “Services” come in two basic types, firstly end-to-end processes that co-ordinate lots of individual steps, and secondly a large set of fine grained services that represent individual steps. Any hierarchy or structure is solely from the basis of process. The fine grained services proliferate and become difficult to manage while the large business process elements become difficult or impossible to change. The systems slowly, or quickly, stagnate and lead to solutions being built on top of the existing solution and the general treating of the process oriented system as a legacy application.
I must be missing something here, but this seems to represent EXACTLY what I hate about BPEL orchestrations. Now, I tend to be a fan of having somewhat fine grained services for systems-type access, and larger “Service-Services” that call back into them. The problem here is, both the anti-pattern and the resolution are pretty murky:
The first resolution is to independently of the process map create your services architecture. This will provide the structure for breaking down the processes and creating a clear hierarchy of use. Next, this service architecture should be over-laid onto the process map to understand where the cuts should be made. The current solutions can then be refactored to create a more service oriented solution by attacking the major inflexibilities in the system and then looking towards incremental change of the current systems.
This isn’t even so much about a technique or a pattern. What he is really saying here is “Hey, it helps if you plan stuff out and put a little A in your SO.” That is a whole lot of words for a “well duh” kinda point.
I do have to say, however, that Point to Point Web Services, DIY Transport, UBER Service and Defensive SOA all represent things that I have been railing against for months now at my current employer.