Shifting Paradigms Bring New Technology

Computer-industry shifts seem to happen whenever there''s a significant change to the user interface.

Our grandparents and parents experienced many monumental paradigm shifts during the twentieth century, especially in the areas of transportation, energy, and communications. Today's information-age generation is going through some pretty miraculous paradigm shifts of its own. Think how the invention of Xerox and other copy machines suddenly made everyone into a printer. Similarly, today's desktop publishing allows almost anyone to become a publisher. Also, look at what can be done with products that let people edit digital photographs, video, or audio. The convergence of cell phones, digital cameras, camcorders, PDAs, iPods, GPS, and who knows what else promises that some significant paradigm shifting might be coming soon.

We in the computer industry have had our own superstar paradigm shifters: people like IBM's Dr. Edgar F. "Ted" Codd, who invented relational database technology, and the Xerox Palo Alto Research Center (PARC) team that revolutionized software development with the introduction of object-oriented programming. In the early years of computing, hardware and operating systems led the paradigm-shifting parade with people like Seymour Cray at Control Data and Gene Amdahl at IBM. In addition, every modern operating system can trace its roots back to two paradigm-shifting projects at MIT and Harvard in the late 1960s, Multics and Project MAC.

Over the years, I have learned when to anticipate upcoming major paradigm shifts. Shifts always seem to happen whenever there's a significant change to the user interface.

In the beginning there were batch systems. Applications were designed around punch cards and magnetic tapes. Usually, batch applications processed two files: an old master file and the daily transaction log file. The logic of the application performed a sort-merge operation resulting in a new master file.

Next came terminals. In IBM's case, the terminals were 3270s that essentially treated the entire display as a 24x80 memory buffer. Each of the 1920 character positions contained a character to be displayed or a control character to be stored. The latter allowed for support of forms with data entry fields that could be filled in by the operator. Once data entry on a form was completed, the terminal operator hit the SEND key on the keyboard, and the data inside the terminal was sent to a back-end IBM mainframe running an application called Customer Information Control System (CICS) that was responsible for all online transactions.

The minicomputer companies introduced character-based terminals that worked differently than IBM's 3270s. The quintessential example of these was the Digital Equipment Corporation (DEC) VT100. Every time the user pressed a key on the keyboard, that information was sent to the host computer, causing an interrupt. From there, the system would do two things. First, it would immediately turn around and resend the character back to the sending terminal with instructions for it to be echoed onto the display screen at the proper location. Second, it would pass the input character along to a corresponding host application. Unlike with CICS, the minicomputer timesharing operating systems treated each user's terminal as a virtual console connected to a virtual machine.

The next wave along the evolutionary user interface path was a tsunami. I'm referring, of course, to the introduction of the PC, including Microsoft's MS-DOS operating system. The original PCs evolved into present-day GUI-based WIMP (Windows, Icons, Menus, and Pointing devices, or Windows, Icons, Mouse, and Pull-down menus) systems as epitomized by Microsoft Windows. The magic of having a PC was how it allowed for support of a type of video I/O called memory mapping. Instead of sending data down a wire from a host to a terminal, PCs displayed data by having the CPU store directly into an area of memory that was mapped by the hardware to a specific physical location on the video screen.

Finally, we come to the current environment, where the Web browser has emerged as the all-purpose platform for user interfaces. Its greatest value is its ubiquity. But innovation has stagnated. Once Microsoft destroyed Netscape and monopolistically seized control over the Web browser market with its Internet Explorer (IE) product, new development virtually ceased. IE's only real potential competitor is Firefox (whose primary legitimate marketing weapon is that it's not IE). Most of the evil-doer hackers in the world concentrate their attacks on IE. Therefore, Firefox, at least for the moment, seems to be more secure.

One of the key drivers that has kept Web browsers front and center are portals. Portals are a type of middleware associated with application integration. Enterprise Information Portals (EIPs) allow users to view a multitude of separate, independent applications through a single Web browser–based user interface. Each running application can be executing on either side of a corporate firewall. One of the most important benefits of portals is being able to avoid the complexity and cost of working with Enterprise Application Integration (EAI) tools. With portals, the user connects to each back-end system through a common point of integration, and all interaction is performed through a standard Web browser user interface.

Interestingly, portals share many of the same characteristics exhibited by CICS in an earlier era. CICS allowed an inherently batch operating system, OS/360/370, to run online transactions. A large part of the problem with today's portals is that the Web was never intended to be used as a platform for interactive applications. Its design center, based around HTTP and HTML, was focused on transmitting documents. As such, in order for applications to simulate conversational exchanges, they must continually load and reload Web pages.

So, you ask, what is the next new user interface paradigm? Rich clients. Think of them as going back to the future. A rich client runs software on the client, just like an old-fashioned client/server application. One of the main differences, though, is that with rich clients, the back ends are now essentially all running only industry-standard Internet protocols. Service-oriented architecture (SOA), implemented using Web services, is what makes it possible for rich clients to be able to emerge at this time.

Back during the days of client/server computing, lots of applications were partitioned across multiple platforms using an Object Request Broker (ORB) like Microsoft's Distributed Component Object Model (DCOM) or OMG's CORBA as middleware. Other applications were partitioned at the database layer, sending SQL to a back-end relational database management system (RDBMS) or an Open Database Connectivity (ODBC) engine. The biggest problem with any of these older approaches was always security. Data packets just couldn't get past the firewalls. SOA-based Web services bypass the firewall problem entirely by passing freely through port 80 just like plain old HTML Web pages. The underlying breakthrough that makes SOA and rich clients possible is XML.

Why are people going to rush to embrace rich clients? The answer is a seductive user interface. To the user, the interface is the system. Have you ever held an Apple iPod in your hand? What makes the iPod share the same kind of brand power as, say, Kleenex or Band-Aid? It's not because Apple's player makes music sound better than other MP3 players. It's because the iPod's naturally intuitive user interface is awesome. Historically, the key to a killer interface has always been a feature known as direct manipulation. It's all about control. With SOA, suddenly it's possible to dream about all kinds of new and exciting ways for people to use computers for communicating, exploring, interacting, and being entertained.

In addition to the appearance of some cool-looking, sexy, new, rich client–enabled controls, I'm also looking forward to rich client–enabled interfaces cropping up embedded within other products. Imagine being able to start from Excel and easily access a service that automatically returns information directly into a spreadsheet, seamlessly and transparently.

I sense an impending paradigm shift. Rich clients are the next hot, new technology. They're going to grip the imagination of business strategists and create a market frenzy.