Tuesday, April 10, 2007

SOA - Stir Oats & Acknowledge

It has been a while, but I have been busy expanding my photography collection (which can be seen following this link), so I have been away from the computer most of the Easter week. But it is good - refreshing ! - gives me good perspective to analyse Robin Harris's article on SOA and why is it dead from inception.

At first, I found it a bit strange to start an article about SOA referring to ILM, that is until I saw where is that Robin Harris' expertise lies: he is in charge of ZdNet's storage sections.

So I remember ILM - and I am still waiting to see who has the money to implement it - multi-tiered storage is still very expensive to implement (for the average enterprise at least), and it solves a problem (ever heard of the reasons for SoX compliance for traceability and accountability or the case of the email lost by Intel): you keep relevant data for your business AWAY from your service delivery platform - until it is required and then move back again to where it needs to be processed. And yes, you can claim that applications could be developed to take the life cycle of information into consideration - but that would make them more complex to implement, so rather than increase the complexity in the software layer, let's implement information life cycle as a different aspect in a different dimension (storage handles it on behalf of the applications).

The demand side of the equation
But enough of ILM, he talks about SOA. So if we start from the beginning - if the enterprise is not developing software, it means that it requires no change - hence it doesnt'need SOA. But problem is, most enterprises have delivered solutions with timescales, mostly poorly designed, with budget constraints (see "Why projects fail"), projects have been failing since before SOA and CORBA - and shamefully most will continue failing after SOA and CORBA (See the "CHAOS Report" from 1994 by the Standish Group). Failures are not only the ones listed above, it is the fact that solutions are thought tactically and developed tactically, when they should be thought strategically and developed tactically.

No way to show a return
SOA is all about evolution - and decoupling design from implementation (remember - "highly cohesive, loosely coupled"), you don't pay for SOA 'upfront' ... you pay for the technology - the same way you pay for a database - not for the data models!!!! OOP failed at the big scale because the granularity is too fine, each department had it's own agenda and schedule - it is like blaming Java or C for failures because enterprises use a mixture of not only languages, but operating systems, repositories, methodologies & IDE tools.
Assessment: you will show as much return on a SOA effort as you can show on any new project - if the project lacks business case, SOA lacks business case for your organization.

SOA increases execution variability
Once a service has been developed it is possible to get a average response times under different loads - the implementation of the service is the same as an API in C++, EJB in Java or stored procedure inside a database - if the design gives room for non-deterministic behaviour, you will get it, disregarding the fact that it COULD be implemented in a highly deterministic way (obvious room for some peaks under different circumstances during different scenarios).
Assessment: if your software executes with high variability - it will do disregarding of SOA, it is a problem in your design and/or implementation, don't go blaming the technology.

“They make you feel cool. And hey. I met you. You are not cool.” Almost Famous
Obvious, the usual enterprise IT is not - see the case of customer relationship management - everyone thought they were unique, needing to treat customers in a unique, bespoke way - increased costs of development, lacked standardization, created highly customised pieces of software - a new release came and ... you guessed ! all the software had to be thrown as it wasn't portable due to the bespoke, unique customisations. But as a matter of fact, what is so different in the insurance market ? 90 to 95 percent should be the same standard business processes (see in telecommunications eTOM, NGOSS, etc.) ... the fact is that if you create a pattern, your software becomes commodity ... THAT IS WHAT IS COOL - making your software behave like bricks for the organisation.
Assessment: I can't save this one, lacks fundamentals - iPods and SOA are unrelated, period.

The Storage Bits take
Here the point of SOA is hit, only if briefly - you can estimate more accurately the development of a business enabling service (i.e. of the type "createSubscriber" that non technical people will understand and can trace through their use cases). Once you have elaborated on the business components that this service touch, you can give a cost assessment ("LOB dollars") - but one advantage of the decoupling is that once you have created (if you know how) a service with a version, all your applications depending of that specific service and specific version can continue being operational when new versions come along, you can do this in any technology (i.e. CORBA), but truth is that the platform agnostic web services are the ones that give you a method that really achieves this flexibility.
Assessment: As I said, touches the point of SOA, only if briefly.

No comments: