Monday, January 29, 2007

On SOA and Windows Vista

There have been a couple of headlines recently in a Computerworld "First Look" e-mail I receive at least once a day during the work week, that I found humorous in a "well duh..." kind of way.

The first (well, pair) indicated that IT Execs weren't sold on Vista, and questioned whether or not Vista presented a realistic ROI case for companies.

I'll save you some reading. IT Execs aren't sold on Vista because it doesn't present a realistic ROI case.

There's absolutely no compelling reason to dive into Vista and the accompanying support & engineering issues it will cause, much less Office 2007 (which completely and arbitrarily changed a very familiar user interface to one that is, well, obfuscatoryd at best), when 95% of corporate users don't use 10% of the product's capabilities. It's no secret that most people need simple formulas, a spell-checker/grammar-checker, maybe mail-merge, and that's about it.

OpenOffice is a technology looking at square miles worth of fertile black soil in which it can grow. Microsoft, just like Novell, have finally leapfrogged their customers by a significant enough distance to give it a real opportunity. Microsoft seem to think that people are so keen on SharePoint that they'll move heaven and earth to get better integration with it. I'm not sure they've seen the numbers contrasting Office seats to SharePoint seats, but I'm pretty sure it's a damned big gap.

Fortunately, Computerworld has finally been changing it's spin on the Vista story to one reflecting the skepticism that exists rather widely within the professional ranks, from one that had praised it (in nothing short of a biased manner) as the second coming of distributed computing. I almost stopped reading these e-mails because they were becoming an incessant Vista lovefest - something I don't think Don Tenant would particularly relish, but something I don't think he oversees directly.

The second article was buried as a "Tech pick", and was titled "What's holding back SOA?".

"Since about 2003, service-oriented architecture (SOA) has been touted as
the network-based, next-generation computing environment, replacing the
client/server architecture of the 1990s.

Industry leaders like Bill Gates have made brave predictions about a future in which their applications will live across the Internet, and developers will meet specific needs by combining functions from these networked applications on an almost ad hoc basis.

So what has happened in the past three or four years? On the surface, it might seem
very little. "Looking back, a lot of people were talking about this, and even among the vendors, you hear a variety of interpretations as to what SOA will be and what you will need," says Ettienne Reinecke, group chief technology officer at global IT solutions provider
Dimension Data."

Well, duh. SOA represents a remarkably esoteric theory for how you can keep developers from 'reinventing the wheel' - not just theirs, but any wheel. It's not anything you can buy, just a suggestion for stuff you should do if you develop a lot of web software. (Mainstream, eh?)

Ideally, if you're Amazon.com, you wouldn't need to write software that handled credit card transactions for your website - you could use someone elses (a bank, for instance), which they've offered as a "Web Service".

The problem is twofold - first, you have to ensure that just about everything you've ever written can be compartmentalized in such a way that software others in your company write *and* software others in the world write, can use the components of your code that they need without having to rewrite it themselves.

Secondly, you have to figure out how you will determine when someone makes a request of your service, what information you need from them, what you'll send back, how you'll secure the transmission of that information, etc. Of course, the methods you work out here will need to be the same for everyone who may potentially ever use them, and vice-versa.

So the question answers itself. It's not going anywhere because, much like EDI, there are only a fraction of companies and people in the world who can understand all of the details that go into making SOA work, and who can use SOA in such a way that the time invested in using SOA is significantly less than the time it saves future development efforts.

If you only develop software for your own company, why in the world would you care how reusable your components are using Web Services standards or protocols? If you do care, and you have the resources to understand and implement SOA principles (because SOA isn't a product, it's an idea), what are you waiting for?

Tech writers love to latch on to SOA and predict that it'll be "everywhere" and be "revolutionary", much the way Steve Jobs predicted the Segway scooter would change the way cities are built, and very unlike the way Bill Gates thought nobody would ever need more than 640k of RAM in a personal computer.

I guess boring, accurate stories don't sell magazines. Pity, that.

No comments: