Reversing the Cloud

I was just noticing that the eBay photo uploader does something pretty unusual -- it offloads a compute-intensive task to the browser.

When you edit your photo and rotate it, it rotates the photo on the client (the browser) and then uploads the result to the server.

This is a departure from the pattern in web-server dev for the past decade or more, where the more compute-intensive tasks were performed on the server. I get the feeling that we'll see more of this in the future.

Why were these compute-intensive tasks on the server? Mainly, because it was not possible to offload the work onto the client: the browser just didn't allow it. Attempting to do something that required memory and CPU just didn't work out well. If you needed performance, you could turn to Java or Active X, but that required a lot more intervention on the part of the user.

Also, on the server, you could offload the work to something written in C, so it would be faster, as long as the server wasn't busy.

The good news, now, is that the server side can get a little leaner, so more users can be handled.