Posted by danmil
on February 26, 2004 at 9:10 AM PST
Wherein I wander around a Web Services Conference and ask: "Web Services, What Is It Good For?" (and hope that the answer isn't "Huh! Absolutely Nothing").
So, I just attended Edge East
2004 , a Web Services Conference here in scenic Boston. Full
disclosure: I'm not exactly the world's biggest fan of the Web Services. My
ten cents going in: they solve a very complex problem in a very complex
way. And thus, they are to be feared. If you can, by any means,
solve a simpler problem in a simpler way, you'll be happier. If you can,
by any means, solve the complex problem in a simpler way, you'll be
happier. If all else fails, maybe Web Services are the way to go. But
don't forget to fear them.
Or, at somewhat greater length: if you have lots of data locked up in
lots of different places and you need to join it together for one
application, gluing everything together via Web Services is maybe worth
looking at. However, you are definitely in for a world of pain: getting
data from many places to act like data from one place is incredibly tricky,
and using a variety of complex new technologies that interact in intricate
ways does not magically make everything easy. I know, I know, that's
precisely what the vendors claim: "But now, with Webix Servicesix Nineix,
all your data is transparently available everywhere in your enterprise."
Yeah, right. I've written enough code massaging data from one format to
another or wrapping a new API around something ugly and old to know that
that stuff is never going to be easy. If you can make it a little easier,
that's a huge win, but
No Silver Bullet.
And, as above, if you don't need to have applications sharing data in
complex ways at run time, for god's sake don't use Web Services. Copy it
all into one database and access it through JDBC and sleep easy at night.
In other words, I was going in with an open mind, ready to learn that there
are lots of powerful things that can be done with Web Services. Rah, rah.
Oh, also, as my friend Ben Clark said during lunch today, "Pretty much, as
soon as someone says 'business logic' I know there's a lie in there
Memo to self: listening to someone who is a technologist at a standards-producing organization talk for forty-five minutes at nine in the morning about why everyone should use standards is a recipe for personal disaster. Clearly, standards are important. But just as clearly, having your swanky new Web Services stack from Microsoft or IBM anointed as a standard is not going to save you if it turns out the technology has fundamental flaws. Sometimes I think I should keep a poster of the OSI Network Model over my desk just to stay clear on this key point.
And The Winner Is... Jini
The CTO of Orbitz , on the other
hand, gave a very interesting key note. Ostensibly it touted the benefits
of a Service-Oriented Architecture (one of the biggest buzzwords of the
day), but, as far as this listener could tell, a lot of what it added up to
was: hire the brightest programmer you can find; set up a process which
keeps out of their way; allow them to use Open Source tools if they like
them. But, especially, hire bright programmers. Sadly, this never seems
to be management's answer to anything. Chris Hjelm (the CTO in question)
was very clear that their technology gives them a competitive advantage.
If I had to sum it up, I would say that their key differentiators (did I
just use that a word? yikes) are: a) a very sophisticated search algorithm,
developed by ITA Software for
Orbitz; and b) a very short time to market for new features, made possible
by small teams working with as little technical and administrative overhead
Having the above-described chip on my shoulder, I doodled in my notebook
early in his talk, thinking: if I had to integrate multiple data sources
from various legacy airline reservation systems, would I resort to Web
Services? I was just scribbling "maybe" in my notebook when he announced
that they don't use Web Services almost at all. They use
href="http://www.jini.org/">Jini. Ah-hah, I thought. Interesting.
And they do find that Jini's run time discovery capabilities have given
them a great deal of flexibility when they need to add new services to
their application. Fascinating. Keep that one in mind for the future.
Take the flexibility promised by Web Services, skip the configuration,
management and general immaturity problems. Clever.
Executive summary: the Orbitz team has put in place a very nice
architecture, which lets them easily develop new features quickly and also
allows them to cheaply add computing capacity to their search process.
What makes it Service-Oriented? I'm not entirely clear. Possibly, that
they have a very decent decoupling of their core applications from the data
sources for those applications. This makes sense for Orbitz, because they
have a variety of data sources over which they have little control
(i.e. airlines, hotels, car rental companies, etc). Does it make sense for
everyone in the world? Not clear.
Data Sheets and Demos are Delightful
Wandered around on the Expo floor. Had a nice chat with some guys from
Ascential . Although their product
is definitely in the "it makes all data magically happy" category, it
sounded like it could, in fact, be useful if you had a bunch of legacy
system you needed to talk to. They've done a lot of the hairy work of
finding ways to interface with those legacy systems. With some
configuration (this is where I am unclear on how the magic happens), they
can get their hands on the key data and pass it on via something coherent,
like a JMS server or, now, a Web Services client. Worth keeping an eye on
if I am punished for something I did in a former life and find myself
writing data integration applications for legacy systems.
Also talked with a nice man from
href="http://www.iona.com/">IONA, who have a new Web Services-type
product called Artix. Now, personally, I remember IONA as one of the
main CORBA ORB vendors, from a few years back when CORBA was going to
magically make all the applications in the world talk to each other
transparently via a host of cryptic, acronymalicious, vendor-driven
standards. Hey, wait a minute... When I asked, the nice man proudly
informed me that one of Artix's great selling points is that it lets you
integrate your CORBA ORB into the new
everything-talks-seamlessly-to-everything-else Web Services world. I don't
think he caught the look of horror on my face as I got a glimpse of a
future in which your actual data was so far buried beneath so many
competing layers of middleware that you had to pay a consultant to find out
your own name, pretty much. I took some product sheets and staggered on.
Got the skinny from someone at
href="http://www.sonicsoftware.com/">Sonic about their new
Enterprise Service Bus, which adds a bunch of features on top of
their message queue product, SonicMQ. Now this I can get behind:
message-oriented middleware has always seemed like a great approach to me.
Split your application into comprehensible smaller parts which communicate
in clear, testable, monitorable ways. And you don't assume the network
will always be up. Good stuff.
That's most of it. The haze of industry-speak didn't go too far in
convincing me that Web Services is the wave of the future, but I did see a
bunch of ways in which they could be useful in interfacing to legacy apps.
As long as I always stay afraid of them.