Friday, February 5, 2010

Convergence in the cloud

The old convergence of PCs and TVs is underway. While WebTV was not the next big thing, YouTube and NetFlix have shown that the two technologies can work together. From here on out, the TV/PC convergence is a "done deal". On to the next convergence!

I think the next convergence will be in the computing realm.

We have multiple models of processing: stand-alone applications, client/server, web apps, smartphone apps, and (coming soon to a theater near you) cloud apps. These "platforms" are a varied lot, with different UI capabilities and different strengths.

The converged system will blend the capabilities of those different platforms and allow apps to move (or be exposed) at different levels. Some apps will work on a few levels, others will move to all levels.

This idea is not new. Once accounting systems were established on mainframes, but other levels of computing built bridges and inroads to extract data. Some of the solutions were hacked together from extract tapes, 3740 floppy discs, and report writer output, but they were useful. The advantages of sharing data, sharing information, are too great to leave applications at any single level.

I see the converged platform being cloud-based, with virtual processors and languages that use virtual machines, and interfaces that vary as they move from level to level. The "local PC" will be a cloud host, running a scaled-down version of the application. A plain application will run in the cloud -- perhaps your private cloud, but a cloud. 

Your smartphone will run its own cloud (or perhaps talk to a cloud) for its processing.

The notion of a plain executable will go away. There will be a generic processor, one that is present everywhere, delivered through processor virtualization.

The dominant languages will be those that can live in the cloud. LISP, Ruby, and possible C# will be the popular language choices. Elder languages such as COBOL and FORTRAN will be supported in emulators, interpreters, and translators. (Perhaps a just-in-time translator from COBOL to Java, and then an emulator for Java on the virtual processor.)

User interfaces will move further away from core processing. An application will talk to an interface or multiple interfaces. The interface will handle the specific device; your e-mail program (if we still use e-mail) will run on your cell phone, your tablet, your desktop, and your mainframe, using a "virtual interface" to present information.

Applications will be able to float and move from level to level. You can start a program on your desktop PC, transfer it to your cell phone as you commute to the office, and then use your tablet PC in a park at lunch.

We won't care about the processor (sorry, Intel!) or the supporting operating system (sorry, Microsoft!).

We *will* care about the brand and type of cloud. I expect that there will be multiple cloud vendors, with not necessarily compatible offerings. Microsoft is working on "Azure", Google has its "App Engine", and Amazon has its offerings. Look for Oracle to announce something soon. (And they had better be working on it, or they will be reduced to a minor player.) Also look for clouds from overseas. I expect China to create one, and another from a European consortium. India and Brazil may create clouds of their own.

We can look to clouds of different sizes. Clouds will be available for the general public, national governments (and state and local governments), corporations,  and individuals. You can run a cloud on your PC and talk to your account in the public cloud at the same time.

Your choice of cloud will define your business capabilities, just as your choice of operating system today dictates your capabilities.

Clouds will be hacked and attacked, just as computers are today. But in the future, once we find an attacker, we will be able to say:

"Hey, you! Get off of my cloud!"


No comments: