Mad Dog 21/21: Stay the Recourse
November 20, 2006 Hesh Wiener
IBM is hooting about SOA, which stands for Services Oriented Architecture and which approximately means putting the changing needs of end users at the heart of computer systems development. We don’t know where end users were in the landscape before; we had, apparently in mistake, thought they were always the most prominent feature. In any event, this kind of SOA stuff, even if it makes some excellent points, is largely a red herring. It won’t reduce software or support costs. To do that, IBM resorts to another SOA, Substitute Offshore Artisans. Services Oriented Architecture is the latest in a long series of software technologies and applications development schemes that has in fact advanced the state of the art. The roots of today’s hyped panacea are very deep, and, depending on how you look at things, might reach all the way down to the first assemblers, and certainly to macro assemblers. These technologies grew into language compilers, which in turn fostered development systems that also included version control systems and other programming tools. Computer language development has remained dynamic, evolving from the ancient process oriented languages, which remain popular and effective, and more recently into the very different ways of expressing computing procedures that can be classified as object oriented languages. Along with what might be considered standalone languages, computer systems that support Internet applications also use languages that are tied to the process of Web serving. Java falls into both camps, while PHP, Perl, and Python, to name just three starting with P out of a much larger universe, are used to link Web serving to databases, entire suites of applications, and whatever falls between. Examples of contemporary software infest innumerable Web pages in the form of JavaScript or ECMAScript code. You cannot find a decent Web browser that fails to include technology for executing these scripts, and Web browsers are as ubiquitous as operating systems, which for the most part include them as part of their basic software stacks. The browsers talk to Web servers that sport preprocessors and other extensions, and these servers may in turn pass along work to other computing nodes that retrieve information, possibly executing some very complicated operations along the way.
A lot of data processing, to use a very mature term, is also done by software and systems that don’t involve Web serving, but do support Web activities. A common example is the processing of credit card transactions, which may well be initiated over the Internet, but which also accept input from electronic payment systems and service centers that translate paper payments into electronic ledger entries. There’s also a lot of business computing that does not include transaction processing. A common example that fits with the others I have proposed is the complex reporting that distills billing information, detects shopping patterns and trends, or sniffs out possible fraud by examining databases of transactions. Some results produced by this kind of computing may, in the end, be piped back into online libraries that inform credit card holders of their account status or tip off merchants about emerging opportunities or incipient inventory gluts. Even where there is the widespread use of standard languages and techniques, there is no question that computing systems, not merely in general but also within every single organization of any appreciable size, resemble the Tower of Babel. If you don’t know much about the Tower of Babel because you spend too much time reading books left by the Gartners and not enough with the ones left by the Gideons, you can catch up on this ancient tale by catching the news. But you might be too busy for either activity, like overburdened computer technicians or the White House, so here’s a quick introduction: In Babylon, which is in Iraq, people don’t communicate very well. There’s not much successful discourse notwithstanding plenty of shouting, and despite the widespread use of the excellent amplifier technology invented by Mr Kalashnikov. Maybe the problem is with the listening, not the speaking. But whatever the cause, application systems are a mess. Diverse teams of developers work at cross-purposes, and even within groups there is a lot of inefficiency. IBM is saying that its SOA (the services one) can bring things to order, yielding a dramatic increase in efficiency and a corresponding reduction in applications development and maintenance costs. There’s no other way to keep computing structures from collapsing under their own weight, says IBM, and SOA is its recourse.
Well, I can tell you that before there was SOA a lot of industry pundits, including many within IBM, said more or less the same thing about using Java and object libraries as their only recourse to solve the very same problem and obtain the very same presumed results. And before that there was a movement to write applications in structured languages, particularly Structured COBOL, promoted as the best recourse in the very same fashion. It’s a safe bet that long after people forget about the promises of SOA, even if they adopt its concept and principles, there will be another, similarly promoted, cure for the cultural ills of computing. And when IBM calls users to the new way of working from its minarets, the faithful will respond, mindful of Big Blue’s esteemed position and forgetful when it comes to past declarations of “mission accomplished.” The sad thing about all of this is not that these calls to order occur from time to time. They are important and they do actually bring about improvements in the quality and quantity of software development. What wearies anyone old enough to remember past rallies and not so old that recollection has failed is an understand of why none of these excessively promoted schemes to solve serious problems has actually delivered on its promises to save time and money. Basically, whenever computing technology makes software development more practical, the goals of developers, inspired by the operational needs of the organizations that use computers, expand. Whenever an organization breaks through the barriers that have prevented it from building a big tower of software it immediately sets out to build an even higher tower. Without that tendency, computing, where hardware gets cheaper all the time and software packages get cheaper whenever Microsoft scares IBM, wouldn’t be a growth market. So it’s perfectly understandable that IBM, talking so much about SOA, is putting big money where it’s mouth is. It’s hard to say just how much dough is really earmarked for SOA, but we’ve seen news items that talk about sums in the vicinity of $1 billion. It’s also pretty clear that whatever IBM spends on the services SOA, it’s going to be spending even more on the offshoring SOA, something like $6 billion in India alone during the next three years. Between the two kinds of SOA, IBM ought to make some sort of progress that will be reflected in better values for its software and services customers, and, if IBM can keep whatever money it saves, higher profits. Meanwhile, though, another step in another ongoing trend in computing is underway. The trend is the shifting of computation away from central systems to client computers. The next step is the move to client machines that boast a sticker saying Windows Vista compatibility. Desktop computers being sold right now as basic machines eligible for the business version of Vista include dual-core X64 processors that are comparable to mainframe engines in raw computing power. Certified Vista boxes pack at least 2 GB of memory (although it’s possible to skimp and get Vista to load in a 1 GB machine), smart graphics subsystems that typically have 256 MB of their own memory, and very fast disk drives that can store anywhere from a sixth of a terabyte on up. A lot of this capability will be used to support the presentation scheme of the Vista operating system, but just wait. The client side parts of applications packages are going to take advantage of the presentation power, too. The results will show up first in the account information systems supported by banks and utilities, outfits where the cost of data presentation in formatted reports prepared by central systems has become monumental, and the cost of bandwidth to send formatted reports is vastly higher than the cost of sending abbreviated reports that the user’s machine will be able to format.
What that means back at computing central is that applications written to take advantage of the next generation of clients will have to be updated quite dramatically. That’s going to burn up any savings delivered by either of the SOAs, whether the applications are part of packaged suites or custom programs developed by end user organizations. Things pretty much have to develop this way. Microsoft can’t succeed with Vista if it’s only of interest to youngsters who want to swap music and videos, and Microsoft is not about to fail with a major operating system upgrade. IBM is probably too far behind to tame Linux or Unix for the desktop and thereby offer an alternative to the de facto standards that will be set by Vista and whatever Microsoft ties to it for business users. Apple, which IBM probably can’t afford to buy and which IBM doesn’t really understand anyway, is the only player that has a good chance to redefine the emerging computing environment with its OS X, but Apple is a five percenter. Hewlett-Packard, which proved it could eat if not perfectly digest Compaq, might once have had a chance to eat Apple and become the next IBM when it comes to defining information processing, but right now it looks more like Babylon than Cupertino at headquarters. That’s where computing stands right now, and it means that most end users are SOA, Shut Out of Alternatives. |