Cloud-Client Computing

The entire history of the computing industry ebbs and flows between centralized and distributed computing. We started with mainframes with terminals on the end, so that everything ran centrally in the mainframe with the terminals as displays. Then, we moved to a more distributed client-server model where some stuff (like the database) ran on the server and other stuff (like the CPU utilization and graphics) ran on the client.

And then, broadly speaking, we moved to the web, which displays stuff on webpages or mobile screens while the computing runs in the cloud. It seems like it’s distributed — but actually it’s rather centralized around “the cloud”, with endpoints that display what’s being produced in the cloud. The endpoint is really just an interface to all this.

Yet we have more processing power in our hands today through smartphones than we did in large computers decades ago. So why shouldn’t some of this processing move out of the cloud and back into the endpoint, into the phone? Doing processing locally has its advantages. For instance, the cost of an endpoint CPU and memory is a 1000x cheaper than the cost of CPU and memory in the server. And in many places around the world, connectivity and transmission costs are sometimes far more expensive than the device. In fact, it wouldn’t be ridiculous to imagine a world where the endpoints could become their own data center; or that containers (or some form of containers) move around from our phones back to the data center … and so on.

The key is nobody has to cool these devices, so it’s almost like free computing at the endpoint. If you harness everyone’s unused CPU and storage capacity to distribute workload, we could get an order of magnitude more done. The potential here hasn’t been realized yet, far from it.

Where we had client-servers before, we now have a more distributed, cloud-local computing (what Gartner calls ‘cloud/client computing’). This approach runs stateful, smart applications and stores data out at the endpoint, all synchronized with the back-end cloud. If the OS is at the endpoint and we have control over that endpoint, then you can start moving with fluidity between the endpoint. No one entity dominates or controls the entire thing.

Note, these endpoints aren’t just phones; they could be wearables and other small devices and screens connected to the internet. Beyond the devices themselves, it all adds up to a massive amount of compute power. The next decade of computing will be about doing something with it.

— Peter Levine