Tomas
Restrepo calls out
Richard Turner for not being very pragmatic. Richard outlines
his opposition to building a communications "bus" for the
enterprise in the hope that it solves all the integration needs of
the business. Instead Richard is relying on WS-* to deliver the
necessary interop. Tomas says:
My humble opinion on the matter (not being an
expert on either ESBs nor WS-*) is that Richard's comment is, well,
not very pragmatic and overly optimistic, at best. In theory, I'd
agree 100%, it certainly sounds like a very compelling vision of
the future. In practice, however, I can't see how this would ever
be a reality.
To the contrary, this comment actually describes my opinion of
the Enterprise Service Bus (ESB) approach. You see, for the last
few years the ESB proponents have been offering essentially the
same vision under various different guises. They say that your
current systems that look something like this...

...can be changed, if you spend enough money on their particular
middleware/server/ESB/whatever infrastructure, into something that
looks like this...

Much neater. And here's where I would choose to apply Tomas'
quote: "In theory, I'd agree 100%, it certainly sounds like a very
compelling vision of the future. In practice, however, I can't see
how this would ever be a reality." The problem is that a radical
enterprise wide overhaul of systems to make them fit into this
pattern is just too hard to achieve.
Where I agree with Tomas is that BizTalk Server provides an
excellent platform for integrating enterprise applications. It
really is a fantastic way to bring disparate systems together and
makes it easy to place a service oriented interface around existing
applications. In fact, Microsoft could promote BizTalk as the
solution for how to provide an ESB using the Windows platform. I
think, though, that this would be a mistake.
The pragmatic approach I promote is to use BizTalk where
necessary to integrate applications into islands of functionality.
It may be useful to build a solution around two or three existing
business applications and to expose this collectively as a service
to the rest of the enterprise. In other areas, new systems will be
built as native services and will participate in service oriented
applications directly. Rather than seeing the enterprise built upon
a common service "bus", consider an enterprise wide directory
enumerating the disparate services made available within the
organisation. UDDI fulfils this role and allows services to be
catalogued and searched. This way, if your organisation already has
a zip code or postal code look-up service, or a payment gateway
service, or an invoicing service, or a credit checking service, or
whatever you need, then you can reuse an existing service if it
provides the functionality you need. Alternatively, you might be
able to extend an existing service if it doesn't provide
everything. This is how I see the value and promise of service
orientation being delivered and it doesn't require a centralised
message "bus".
We've come so far with web services in the last three or four
years and the future promises to move just as quickly. I respect
the doubts that Tomas has about whether we will arrive at a
compatible WS-* world. I certainly share some of those concerns as
the complexity level of the web service protocols increases. I
remain positive, though, that the goal of greater interop is one
that we will continue to be pursue. For the places where we need
localised integration, tools like BizTalk will deliver that
functionality without demanding enterprise wide agreement. More
broadly, integrating business services either through BizTalk or
simply in application code will be the best way forward.