Computing architectures seem to be attached to a pendulum, swinging every few decades from centralized to de-centralized and back again.
The first computing architectures were centralized and monolithic. The mainframe contained all the computing and storage using “dumb” terminals as an interface for the user. Client-server computing changed that equation, distributing the computing resources out to the end users, who now had powerful workstations with sophisticated graphics and local storage.
Web-based applications and various types of thin clients seem to have pushed the pendulum back to a centralized architecture. In fact, with the emergence of blade computing, clustering and data-center consolidation, it sometimes seems as though we’re headed right back to the mainframe era.
Appearances are deceptive, however.
The current trend for centralization is very different from the past, and the mainframe era is not coming back. A fundamentally new paradigm is emerging, defined by a mix of de-centralized resources on a much more fine-grained scale and centralized management - a mix of past eras which takes the best elements from older architectures. Here are some of the key differentiators of this new paradigm:
* That “thin client” is looking quite chubby. Web-based applications started out as quite thin clients. The earliest browsers had fewer features than a sophisticated (think 1372) mainframe terminal. They did graphics, but not forms or screen-refreshes, for example. The limitations of Web-based applications were addressed with client-side runtimes such as Java and ActiveX, turning the thin client into a computing platform again. A newer model based on JavaScript and XML (AJAX; see last week’s article) strikes a balance between anorexic clients (plain HTML) and Jabba the Hutt (Java and ActiveX).
* Web services are shifting the balance back to the client also. For now, Web services are mostly used to build portals, but the longer-term trend is for the desktop to consume Web services directly. Agent-based computing, with the agent on your desktop, could become a powerful new model for the Web.
* Broadband networking is still exploding. Client-server was enabled by an explosion in the availability of bandwidth. As this explosion continues, new models of computing are taking advantage of the increased bandwidth. XML-based protocols, for example, would be unthinkable in a low-bandwidth world. But with lots of bandwidth, machine-to-machine communications, and very flexible - albeit verbose - protocols become feasible.
* Peer-to-peer applications are blossoming. The essential nature of the Internet is peer-to-peer, even though the last mile is biased asymmetrically against that model. Instead of file sharing, think of VoIP, video and grid computing to get a glimpse of why peer-to-peer is important. Pushing the application power and control to the edges of the network is inconsistent with a return to the mainframe era.
There are useful similarities to draw from previous computing models. But you have to look beyond computing at the developments in software-as-a-service, application-development models, network capacity and distributed architectures to realize that what is coming next bears only superficial similarities to either mainframes or client-server.