This post might be of interest to those in Internet of Things, Virtualization and Mobile OSes simply because it tries to combine all three. As usual, I have zero technical insight into these areas. I am just a mobile user asking for a better deal. Also, as usual, I want to talk about breaking down some or the other monolithic architecture into interchangeable components.
What I am proposing here is simply this: Get rid of SoC. Google’s Ara phone is a step in the right direction but still too Google dependent. And Hardware oriented. We need to get rid of Hardware Integration for sure but also Software Integration.
The whole point of this post is that if a developer wants to make a tiny little app for a old operating system, people should not get to laugh at the OS, they can of course laugh at the app itself.
Yes I am talking about are individual App Plus OS Virtual Machines (APOSVMs) running on component level Hypervisors. So there is one Hypervisor for the camera. Another one for the GPS and so on.
But best of all, because there is no traditional OS, just a bunch of APOSVMs, backup processes are not just fast and flexible but also allow for huge offshoring potential. Offshoring is where the APOSVM uses an external resource even if it is just storage but can also be processing and sensors etc.
How many of us have tried to mess with an Android device and have it promptly get all bricked up. It is simply the result of the tight integration not just within the hardware but also between the hardware and software.
Similarly how many of us have got locked into an old OS because it takes a huge effort to achieve the said integration so much so that it is only worthwhile for popular and high end mobiles.
With APOSVMs, these things would not be a worry because the OS is no longer monolithic. Not just that, think about the evolution of the OS itself We would soon see thousands of custom Mini OSes dedicated to handling only a subset of tasks.
But most importantly we might get to see truly distributed computing because APOSVMs allow offshoring.
APOSVMs are of course the goal, but let’s start off small. Let’s start with an Android phone which allows use of camera or GPS without booting up, yikes. Essentially we have a separate chip for the Camera, another one for the GPS, both these have their own WiFi, Bluetooth and maybe even cellular capability.
Naturally with the Internet of Things being deployed we may see newer protocols for short and long distance communications. Also these have their own RAM and storage (both flash and faster cache). This also means that if we are aren’t using either, these are in a power off state.
Of course that does not mean that we can’t take that sudden photo. That’s because we were assuming no APOSVMs. With APOSVMs, the Camera would be powered on and have a Hypervisor running and the Camera App APOSVM would have an instance on the Camera Hypervisor and another on the Mother System for offshoring. Of course the offshoring would be opportunistic and take place only when the Mother System is handling fewer tasks of lesser importance. For instance to convert RAWs to JPEGs.
This also brings up the topic of Mother System, which is essentially a general purpose offshoring platform that offers Cloud Components too. And of course there is no restriction on the number of Mother Systems on a phone. So for instance there can be a low powered Mother System akin to the Motion Coprocessor seen in modern Mobile Chip Architectures. Similarly there can be a scalable Mother System to achieve the sweet spot between performance and efficiency. And so on.
Cloud Components for Mother Systems refer to remote storage, processing or sensor capabilities. Even the Home NAS could be fair game here.
So there you have it: an APOSVMs based OS that runs of Independent Hardware Components each of which use Hypervisors that manage APOSVMs along with their offshoring to Mother Systems and Cloud Resources. In a way, this is what the Project Ara should really be gunning for.
For the longest time, I have been the most ardent advocate of three layered structures, not just on the web but also in the brick and mortar world. The reason is simple: game theory. Human psychology is such that it favours monopolies even though monopolies are as bad as things could possibly get. A three layer structure, properly thought out, can achieve the unthinkable – a non monopolizable structure.
Mobile Browsing as a space is ripe for disruption and you guessed it, a three layered structure could achieve such disruption.
The biggest problem with websites is that they are interactive but not standardized.
The biggest problem with syndication is that it is standardized but not interactive.
So clearly there is a sweet spot somewhere which is both interactive and standardized.
We have users with their browsers on the one hand and we have service providers with their websites on the other. What we want is some sort of middle layer that operates between these two groups.
What could such a layer possibly do? To start with, it could do FORMATTING, lol.
No I’m serious.
Imagine a service that could reformat each and every website into a standardized template.
Imagine if we could buy things without being aware of whether it is Amazon or Newegg.
This is possible because if both Amazon and Newegg make their products available to middle parties, third parties can present these on a single page.
Yes such transparent cooperation is a near impossible mission but only to begin with. We need to make a start.
We need to break down the gigantic problem into smaller pieces.
Why I am stressing on REFORMATTING is because the clients are so much more diverse than the services.
To start with, let’s take a simplified case: a service which mediates only between a single website and all its diverse users.
Let’s say I am a user with an email account and three devices: a phone, a tablet and a desktop PC. In the real world I would have to depend on the email provider to support all three types of access. Now based on how popular and responsible that service is, I would experience varying levels of support and refinement.
But what if there were a third party whose raison d’être was to provide a high level of refinement for my email experience. What if I could simply switch apps and threaten to stop using this third party in case it fails to live up to my expectation or keep up with what other such services are offering.
So essentially what I am proposing is this:
We need apps that are backed up with cloud services which are authorized to mediate in any and all our interactions with the actual web services out there. In other words, Cloud service B mediates between website A and user C.
It is allowed to do so because it offers to customize the experience based on User’s C’s hardware and usage patterns.
And because Cloud Service B is just a middleman, it always lives in fear of being replaced. So it tries to support as many user configs and website types as it can possibly afford to.
By User Configs I mean, if I am on Android 4.1 and have a 800×480 screen but only 256MB RAM and 512kbps access, I am still good to go because Cloud Service B would reformat the Websites A1, A2 and so on to fit my setup. And it is not just about reformatting, there is also real time malware detection implicit in such moderation.
Hopefully the story wont end there. Because Cloud Service B could get into acceleration of common components. But even that has been done before. What we are talking is a much higher level of integration later on.
For instance, today we talk of price comparison because each seller is locked into their own system. Later on it would all be dynamic based on the demand and supply situation. There won’t be any need of price comparison, only price history where the buyer would decide at what level of demand does he want to bite, if at all.
At least to my mind, it is the ideal setup.
Imagine all users and websites plugging into third party cloud services that offer a far more customized, standardized and refined experience to one and all. Imagine senior citizens getting their all their websites with large fonts and simple menus and so on. Imagine never having to worry about malware or backups because everything is mediated and in the cloud. Imagine fast loading services because everything is cached and customized.
Internet was always destined to disrupt ANYTHING and EVERYTHING. And while it has caused its fair share of disruption, things have remained, shall we say, non stormy.
For stormy disruption, we need fluidity. Three layer structures provide just that.
And there is no need to fear the resulting disruption because all such disruption eventually leads to a more equitable configuration for all concerned.