Having lived through the advent of the mini computer and the introduction of the PC, I was fortunate enough to witness first hand the emergence of many different computing models. Once PCs were present on the desktop, they became new endpoint devices replacing so-called dumb terminals used to access the traditional mini and mainframe machines where all the applications and data resided.
Large PCs called servers later formed the center of new "local area networks" of computers. These LANs gave rise to client-server computing configurations. In this model the computing was shared between the server which typically hosted the data and major applications, and the PC which allowed for some of the processing and storage to happen locally. The servers continued to evolve in speed and capacity, and eventually displaced the minicomputer. Ironically, new technologies such as Citrix emerged to move processing back to the server leaving only the presentation layer happening at the PC, in effect, recreating the dumb terminal scenario.
The internet triggered another whole round of evolution in the world of computing. Initially the browser allowed you to access and display information on your PC that resided on host computers literally anywhere. The client-server model expanded its geographic boundaries allowing applications to have much greater reach than ever before. Some of you probably may have used travel or banking applications you could load to your PC which allowed you to interact with your key service providers. Then, as the browsers became more sophisticated, local applications were replaced with browser add-ons or java applets that executed locally. This was basically another incarnation of client-server with the browser and all of its extensions acting as the client side.
We are now living through a third wave of evolution involving tablets and smart phones. There are thousands upon thousands of applications on the Internet, which we sometimes characterize as "in the cloud." They provide information, offer services, process transactions and deliver entertainment to a variety of endpoint devices. Virtually all the services and applications I access on my PC at home are available to me on my HTC EVO smart phone.
With the advent of new browser standards (HTML5) and other capabilities being added to each of the major browsers it is going to become increasingly difficult to know (or care) where the processing is actually occurring. In today's "cloudy" environment, the server may, in fact, be a collection or cooperative of many computers banding together to deliver faster results. Similarly, how much processing is done on the endpoint device may depend on the capabilities of the particular PC, tablet or smart phone. Those devices with sufficient capacity may store and execute locally, accelerating results or providing off-line capability. Other less powerful devices might simply be required to handle only the presentation layer.
It's been fascinating to watch the pendulum swing back and forth. I doubt it will ever stop, but I suppose that is neither here nor there.
Follow me on Twitter @JPuglisiLLC