11/3/07 :: [SOA] JJ's World [permalink]

Some of the recent comments on SOA tickled me. Whether it is Nick Malik or Joe McEndrick. I am sure there are others that want to waste your time on the topic of Enterprise SOA (which is actually SAP's new moniker -I learned tremendously -maybe too much- at SAP on where SOA is going).

I am starting to wonder what Dorothy is thinking about all that. I am sure she needs some explanation.

"Wow, Dorothy, look at all the fun things to do, go ahead pick something..."

This picture describes the different aspects of IT touched by SOA: EAI, B2B, BPM. I shows that SOA will grow to become a composite application infrastructure that enables right sourcing

"Dorothy has a question"... Where are we with SOA today? Today SOA touches mainly EAI, B2B and BPM. This is where companies started to apply Web Services technologies over the last few years, probably successfully. Did it mandate all this cool new stuff? probably not, except for a few vexing interoperability issues, we probably could have done just fine with your traditional EAI suite. B2B? Well, Web Services offered a Reliable, Secure and Transacted message exchange capability in 2007 (only :-), so you probably had to build a lot of home grown stuff to make it work or you used ebXML. BPM is still emerging but you immediately found some support from SOA each time you needed to get to a back-end system.

"Dorothy has a question" ... What kind of crayons did you use to do that? Most likely one (or more) 3rd party service container (home grown is great too). WCF is a service container, so is your favorite ESB. You choose a service container based on its capabilities. However, you are going to need more crayons if you want to have more fun.

"Dorothy  has a question" ... Is there much ROI there? Probably nothing out of the ordinary.  If people want to call that "pragmatic SOA", I have no issue with it. Should you start there? It is by far reasonable, this is where most people started.

"Dorothy has a question" ... Will SOA stop there? If any one doubts it, we got the answer this week with Oslo when Microsoft announced it will take Composite Applications to the mainstream in 2009 and quadrupling their SOA investment. If I recall correctly, I remember Don Box saying WCF's team was 275 people, BizTalk's team is probably around 200 as well, so if the math is right MS is charging ahead with 2000 people to deliver this capability. SAP has had a Composite Application capability since 2003 (xApps). IBM now offers a mature Composite Application infrastructure (I learned a lot using it). And BEA just announced no less than the Genesis.

As a side note, it is quite surprising that Oracle did not pay BEA's price. Where are they going to find the workforce and technologies to catch up after SAP, IBM and Microsoft and of course BEA? Another side note, looking at it that way, it is almost as if Microsoft is coming "Après la bataille" and they could end up just being able to blow the cap off. For them SOA was not even EAI+B2B+BPM it was simply and only about interoperability. It was strategic to enable and control the interop pipe. Their goal was to get a foot in the door and then build on the merits of .Net. This strategy worked but somehow they did not see the elephant in the "interop" room until earlier this year.

Incidentally you also see the importance of the ecosystem for a large software vendor. The SOA .Net ecosystem has been abysmally empty. This has hurt Microsoft greatly because they have nothing to buy to keep pace with IBM. Look at all the acquisition IBM did to get there: CrossWorlds, BowStreet, Ascential, DataPower, Webify, Holosofix... (I forgot, there are probably many more). If I were Microsoft I would set aside quite a bit of money to seed the ecosystem such that in 3 years they can acquire what they will inevitably fail to deliver or think about. You simply can't predict where the market will be in 3 years, even if you are Microsoft, and especially if your infrastructure strategy is guided by only a very small group of people.

 

If you want to further your understanding of composite applications, I have written an ebook on "Composite Software Construction" that will be available for download on InfoQ in less than two weeks now. I also wrote this note in 2002, "The end in mind..." that I would like to think predicted where we are in 2007.

"Dorothy has a question" ...  Does it even makes sense to think of SOA outside an enterprise framework? Well everything is possible. We like to think that we somehow live in a free society that is even capable of defying the laws of physics.

This pictures describes the elements of a composite applicaiton infrastructure

"Dorothy has a question" ... Do you think someone could still be able to deploy such an infrastructure tactically? for one project? and then never use it again? How can I say it ... with nuance? Some people are nuts.

Ok, some are going to respond to me and say "you are the nut". Fair enough. But, this picture is not as complicated as it looks. It is just a service container, a process container and a task container supported by the traditional aspects of enterprise software, we make a big deal of it because the concepts are new and unfamiliar, but in five years most of us will wonder how we could have built anything without it.

"Dorothy has a question" ... Does it cost big bucks? not as much as one might think, and of course if you don't get robbed in the process. Shop around and ask yourself what is going to happen to this vendor and its products over the next 5 years.

"Dorothy has a question" ... What do you get for the money? What does the business want?

a) a solution delivery capability that is far superior to today's programming models (lowers the level of effort and risk)

b) the ability to change the solution as requirements and needs evolve (which is very difficult with today's programming models) - projects will become smaller if you can change without risk later.

c) the ability to tell the business in their own terms what is currently running (the As-Is view is easy to build)

d) the ability to tell the business with great precision how it is running (KPIs and other operational metrics or business events)

e) Sorry, I am not a believer in giving the capability to change the solution to the business except in specific cases when parameterization is necessary. Composite Applications will be built by developers and architects.

This is in line with Jack's remark: the business doesn't ask for SOA. They don't care how you deliver the five capabilities. It is your job.

"Dorothy has a question" ... if you want to deliver these capabilities consistently for all aspects of your business don't you have to do it at the enterprise level? you can't do that just for a project, even though it is totally fine to build these capabilities projects after projects with the end in mind.

"Dorothy has a question"... Do you think you can enable your business to continuously evolve the business model and to consolidate your assets, as needed (and of course avoid duplicating assets) if you go at it tactically?

Right-sourcing is a key enabler to help you innovate, adapt and optimize while consolidating your assets. Right-Sourcing is about being able to utilize assets wherever it is the most cost effective to operate them. This is SaaS with a business friendly level of granularity. Instead of outsourcing entire solutions, SOA (i.e. Composite Applications) gives you the opportunity to keep complete control of your processes (if you desire to do so) and leverage services and tasks or even sub processes wherever it is the most cost effective to operate them (In May 2006 I wrote an article on the topic in SAP Info Magazine). This is why I am a bit at odd with a post from Dave Linthicum on "Core Value of SOA is the ability to Reuse Services? Not a Chance" because Dave does not push the reasoning to the end, even though his argument is worth considering and mitigating. I would agree with Dave's math in an SOA=EAI+B2B+BPM world. In a right-sourced composite application model the opportunities for reuse are far greater. Entity services for one (the one that manage the system of records for your business entities) and Master Data services are the core to reuse.

Over the next few months -it has started already- all the Mr. Noodles of the IT world will be promptly offering their most polished conclusions to their favorite CIO (I said it and say it again, it makes you look smart to trash something important) even though "mature" Composite Application platforms have really been around for 12 months or less and hardly anyone has had time to collect decent metrics, let alone achieve a full enterprise implementation.  It has been so hard (:-) to get where we are today, yet, some people that blog all day come up with an anecdote, a "someone said so", a "one-enterprise-example" with the goal of toppling the whole thing. This attitude is simply irresponsible.  Now if they are talking about SOA = EAI + B2B + BPM, whatever, but I don't care about that, this is the tip of the iceberg.

This is my world (not as in mine, but the world I live in, as I see it and understand it), this is what I think and care deeply about in my professional life. Do I have a dose of skepticism about all this? You bet. It keeps me awake at night. What if the skills barrier is too high? what if a model-only approach will make this whole thing inflexible, what if the products are standards are not stable enough? ... the list is long. This is why I started wsper: lower the skills barrier, make the concepts clear more accessible to developers and architects, reduce the dependence on products and standards variations.