Thursday, March 12, 2009

The Helsinki declaration: observation 2

To illustrate the second observation, let's take a look at the following quadrant. It maps character-mode / GUI-mode applications against stateless / statefull underlying protocol.

At the end of the eighties the bottom-left square, is were we were. Database applications were provided to endusers who were sitting behind a dumb character-mode terminal, 25 by 40 characters, maybe 25 by 80.The backend mainframe or mini computer would spit out a form to the terminal. The enduser could tab through fields, change data, and then hit the infamous SEND key (the only worn down key that didn't show anymore what it was for). While tabbing through the fields no communication with the backend server was possible. The SEND would submit the whole form back to the server, process it, and generate a new form back to the enduser. Those were the eighties.

Enter the early nineties, the dawn of the client-server era.

The user now has a PC on the desk. I.e. a machine with a local CPU. We're still in character mode. But, big but, the user is not looking at a static form, but at the screen output generated by a "client"program. There is now code that actually runs on the CPU of the users' PC. And this program has a dedicated connection to the server, open to be used at all times. So while the user is tabbing through fields the program can communicate to the server, typically to validate user input in a early stage. The uses was experiencing a very responsive application. The program might change the user interface on-the-fly without going back and forth to the server. When the user is done changing the data, he/she presses a Commit key (which would ussually be mapped to one of the function keys F1-F10). This would then cause the client program to compose and submit a transaction to the server.

During the nineties the only thing that really changed, is that the user interface went from character mode to graphical mode.

The dominant client operating system MS-DOS was replaced by Windows 3.11, NT, Win 95, etc.
The internet now became available. Browser wars were going on. And at the dawn of the new millenium browsers became the platform of choice to deliver database applications to end users. In terms of our quadrant this meant a shift to the bottom right square.

Beware: a browser brought us back to a stateless protocol (http). It is in essence a device that can display a graphical form. As opposed to the dumb terminal at the end of the eighties that was displaying a character form. This also caused lots of complaints from our endusers, who had gotten used to responsive (client/server) database applications. This was countered by introducing Javascript running inside the browser. In the early stages a bit unstructured, later on (nowadays) by using techniques such as Ajax, partial page refresh, dynamic html, etc. So we countered the loss of responsiveness by introducing more complexity inside the browser.

Rich (responsive) internet applications (RIA) are the buzzword now. Enter the third dimension. I sometimes refer to it as "complexity". Complexity not only on the client, but also between the client and the server. We still have the database server way at the end, but in between we now also have webservers and application servers.

So we are still delivering UFI's (User Friendly Interfaces) to our end user, but in ways that are much more complex than they have ever been. KISS is out, MICS (make it complex stupid) is hot.

Which leads us to the third observation. To follow soon.


  1. Two comments:
    1) We were using Oracle's IAF (which became SQL*Forms) in 1983. This was a stateful character mode application

    2) At the same time we used UFI (same initials, same meaning) which was later to become better known as SQL*Plus.

    PS - your instructions are in Dutch.

    Tot ziens


  2. Nigel, I fixed the language setting.

    I know statefull/charmode using IAF was done at that time (mentioned it in my previous post). We did that too, only a few years later 86-87 than you. These Oracle "pockets" however all over the world in the eighties were definitely not mainstream at that time. Big blue + dumb terminals was.

    Re. your second comment: I know people who still use UFI as an alias for sqlplus :-)