I read recently Paul Graham’s article on YCombinator that mentioned a WebOS as being an area they were interested in looking at. I thought it might be interesting to outline what I believe the core elements of a WebOS would be made up of.
First off – what IS a WebOS? A WebOS, to me, is a set of fundamental building blocks for Internet Services and Web Applications to run on top of.
I believe the WebOS must start with identity. This does not necessarily mean ‘who are you’ but also ‘what are you’ – identity is about devices identifying themselves as much as people. You could say that IPv6 is a form of Identity, although IP addresses are not really ‘owned’ by anything, especially with NATing and network virtualisation.
The WebOS needs an Identity Module for People primarily. I’m not certain what the best Unique_ID is – perhaps a fixed domain name or email address. Perhaps a ME page (.me maybe!) with your identity details, securely managed to the access levels you want to allow people/companies/trusted friends and applications gain – such as name, contact numbers, email, social profile (where are you on the web).
The second part of the Identity Module for WebOS that is required is Account Management – if it is an OS then you need a place to manage your identity, the elements of it, and if you would like, payment profiles associated, security options, access control and personal data. This can be done through OpenID or something more secure like Secure_ID, depending on your requirements.
Second in the WebOS layer must be data. Data is the fundamental driver of the Internet – albeit through a plethora of applications and interfaces – it is raw data that all our shiny new networks and data centres are pushing around. For WebOS Data the module must provide a secure, safe place to store.
What do you need to be able to do with your data:
– Store It – Safely and Securely
– Access It – Availbility, Mobility, Policy-Enforceability (Access Rights Control)
– Use It – Edit, Modify, Version and Backup (Integrated with Office Web Apps like Zoho or Google Apps)
– Advanced Features: PUT, GET, SELECT_FROM_IN_WITH_ORDER : SQL Based : DBTables
You need to be able to get, manage, delete, and port your data from other web sites too … such as your photos on Facebook, your Friends on MySpace, your Blog Posts on WordPress, your videos from YouTube.
Computing provides the processing layer for WebOS – on Data or on-behalf of other modules/applications. In the form of Internet Services, Computing needs to be a true on-demand utility – usable as-needed, and always available. The question here is do we need a standard Cloud Machine (ie. 2.4Ghz / 2GB RAM / x GB Hard Drive) that can be expanded or copied, or do we need another module.
To take the electricity grid example, which is commonly used for Cloud Computing – one doesn’t build a power station to get electricity at home or in the office, you plug into the grid – similar to Cloud Computing. However you do not plug into the grid at 300 kilowatts, you plug in at zero and pull down as much as you need.
So perhaps the Computing module of WebOS and for Cloud Computing needs to be similar – it should be based on Instructions Per Second (which is the real requirement of a process – not how many gigahertz and gigabytes of RAM are AVAILABLE, but how many instructions the process has used in the Cloud). Obviously Instructions Per Second is going to be a high number – so I suggest the utility model for WebOS Computing is MIPS – Millions of Instructions Per Second. For comparison, a number of MIPS -capacity- could be said to be equivalent to a current standard server configuration.
Communications is another absolutely fundamental layer to WebOS. Like Identity, Communcations is not limited only to an individual.
Type of Communication Supported (Open-API allows more to be integrated of course): Email, Messenger, Corporate, Phone-VOIP+Mobile+Hardline (ENUM), Social Networks (+Blog+Forum), Micro Blogs, Comments (left and recieved), Friend Feeds (friend activity stream, passive and directed at me), RSS.
Communications needs to be VERY mobile and location aware:
– Mobile Web
– Web Browser
– Within TYPES (Types= Within Other Networks, Within Coporate Firewalls WITHOUT breaking policy)
Groups is the really important definer of communications – and the methods by which the WebOS module for it should be created.
– To me
– From Me
– With Me
– To Myself (from Myself : IE. Reminders, Notifications, Calendars Events and Alarms, Notes)
– In A Group (Within the Group : CC’d, To, Part of Thread)
– From A System (Travel Reminders, Domain Renewal Reminders)
The GROUPS part of communications should define the WebOS actions taken. Again like Identity, a Communication may occur automatically, and trigger automatic actions, all machine based without human ineraction. The beauty of the WebOS is the overarching integration that streamlines and allows for automation and improvement on normal interations.
Does the WebOS need to develop all these modules? No. The WebOS needs to provide interoperability between them all, and WebOS should integrate with 3rd party API’s – so for ID you can use your Open_ID or other Identity Providier (Bank, Company ID, Government ID); for Data it should integrate with Amazon S3, Microsoft Live Mesh, Applie MobileMe. And so on. The WebOS needs to have two-way API’s that both allow the WebOS to talk to 3rd party core services (data/computing/applications) and also allow 3rd party core services not yet envisoned integrate themselves with WebOS – so it is a totally open maleable system – the only core being the Business Logic that allows open, scalable platform growth.