There has recently been a lot of excitement about “Rich Internet Applications” and all of the changes that they are likely to bring. However, long before the Internet was widely used, there were other large scale networks that had similar client/server architectures.
In 1982, I was working for a financial services company in downtown Toronto that had branch offices across Canada and whose lines of business included insurance brokering, payroll services, pension administration and management consulting. We used an IBM mainframe connected via an SNA network to terminals and RJE workstations in each of the offices.
In the corporate and larger regional offices, we also had minicomputers which were used mostly for entering sales and accounting data, and then sending validated batches of input to the central machine. At the time, the IBM PC had just been introduced but was only available with floppy disks – the minicomputers would normally have 4-6 operators on a shared machine.
Technology has advanced considerably in the last 25 years with the biggest effect being the enormous difference in cost between then and now – processing power, memory, disk storage and communications.
However, for some things, there has been surprisingly little change.
For example, the way we fill out HTML forms and then send the content to a central server for processing. This is almost exactly the same way that CICS processed data from terminals in the 1980’s. In those days, it was necessary since a computer terminal typically only had about 4kb of memory (just enough for the data) and couldn’t run programs. Today, we do the same thing on PC’s with hundreds of megabytes of memory and fast processors. Of course, AJAX and RIA’s are slowly beginning to change that.
Another similarity is the debate over central/distributed for programs/data. Regional managers used to tell me that they “wanted control over their data”. My answer was that they would have to be responsible for backups, operator training, software installation, versioning, and recovery procedures. And without exception, they decided it was easier to have the central office handle it. Today, some people “don’t trust Google (or whoever)” with their data – and then they lose their laptop at the airport with all of their company’s data. Likewise, surprisingly few private PC’s have current versions of system patches, browsers, applications, or anti-virus tools – most people don’t enjoy system administration.
Finally, languages like C# are starting to be used in both server-side and client-side (XBAP) roles. In 1982, I was deploying a subset of mainframe COBOL over the network to three different models of minicomputer with very few problems; and in fact, one of the language vendors is still doing a thriving business. Downloading runtimes to client machines has been around for quite a while.
Making applications that have both centralized and distributed components can be difficult to get right. There are no simple, universal solutions.
The emergence of the “rich client” architecture is an exciting development in Internet evolution. But, exploiting its potential will require changes to the whole application architecture, including the server.