Thursday, February 14, 2008

Key facets a Network OS - (contd. from previous post)

The background for this post was set in the previous post. In my view the Network OS is the future or OS and it will finally deliver a paradigm shift in how we work.
(a) Humonguous Data Storage capability with access capability from anywhere and any device: Some data would be stored on your deskop computer and a lot of data would be stored on network/internet. The users would not be aware where the data is stored. Or in other terms a healthy mix of traditional storage and Network data storage. Infact, this may provide better data redundancy and security also. Another thing, as the data becomes network available it will become lot more easier to functionalize that data. For example, an internet based data company can scrounge through the data and see that I have a lot of RIA architecture documents, and show me relevant internet help links. Or in other terms, functionalizing the information that is already contained on my hard disk. For example, let us say I have a lot of research pdfs on my harddisk. The internet data scrounges it and identifies people who have similar research interest. Or functionalizing current data could be a key market in near future with an easy digital advertizing or paid service business model.
(b) Choosing applications as I want it: Currently, most of the application are monolithic and allows limited customizability especially in terms of what I want to see and how I want to see it. Next generation applications will be infrastructure and the user built widgets will run within it. For example, iGoogle and Eclipse where user can customize their own environment. Prebundled application like Visual Studio and MS Project might see a diminishing market. Things that will be instrumental in such development will be widgets and mashups.
(c) Only pay for software for what I use and how often I use: Software usage billing would become like usage transaction based. It will be like paying monthly electricity bill or telephone bill. You will get monthly bill and pay for what you use. I don’t have to pay $200 for Microsoft Office when I need to use only MS Visio that too twice a month. In next generation operating system, one may be able to buy and install a software if (s)he uses it frequently. For software which is not used that frequently, then (s)he can get access to it in transaction or time based business model.
(d) Collaboration: The operating system should be intelligent to identify where I am, and redirect the communication towards that device, location, etc. Collaboration is inbuilt within the operating system kernel. Using this collaboration stack, an application can ask the operating system that I need a particular persons contact address or latest location information. It will be an operating system call. The operating system would be able to connect to the relevant information and provide this information to requesting application. This collaboration is also extended to people and hardware devices. In terms of hardware devices, the collaboration stack will also be able to share hardware resources such as screen, mouses, keyboards, and mobile phones, PDA’s, etc.
(e) Miscellaneous: To enable this sort of Network OS, the operating stack has to embed a few other things such as (a) authentication mechanism where applications can authenticate with each other, user authentication, (b) XML serialization & deserialization and other protocols such as SOAP, REST, AJAX etc. at kernel level.
(f) Outsourcing/Insourcing CPU Cycles: The computer can identify that higher amount of CPU cycles are needed and it delegates the work to other computers, without the user doing anything. CPU cycles are outsourced as per the need. Possibly, in future the users with extra CPU cycles can earn money for outsourcing (but it will take a lot of time to become reality!!).

I am sure, this is not complete list J. Remember, you are reading somebody else’s dump (brain dump only).

Operating System – What next?

The current operating systems have kept themselves conservative. In last few years, we have not seen any new path breaking innovation. All the innovation were small and can be even barely called incremental innovation in operating system. The most of research & innovation in Operating system has been more scientific in nature for example
(a) Better multi-threaded hardware & software, power saving hardware, better memory caching, etc.
(b) Operating system has somehow been trying to integrate & embed new protocols in the market such as Bluetooth, USB, internet protocols, and then device driver software.
(c) Was to create more & better desktop applications.

So where am I going with this? Operating system has been relatively slow in adopting new business opportunities. For example:
(a) Collaboration tools: To this day, operating system does not virtually enable collaboration tools and integration points for that. Most of the collaboration tools are 3rd party desktop applications. Somehow, collaboration is not inbuilt within operating system stack.
(b) Search tools: The desktop computers have become data blackholes and it is difficult to find information on the computer. Operating system has not enabled them.
(c) User interfaces: There have been a few attempts at user interface innovation but it has not stuck on with the users. For example, tablet PC etc.
(d) Data Storage: The data is uniquely stored on the desktop environment. The data is not stored on shared drive and it is not universally available. I want to use the data from anywhere and any device. I don’t want to copy files to each device so that it is available. Further, the file versioning (or multiple copy of same artifact) creates huge headache for users. They are always wondering “which is the latest file” etc. Data storage should have universal presence capability, versioning capability, and inbuilt authentication mechanism.
(e) Need for higher cpu cycles: Current and traditional method of using number crunching or high performance application is to upgrade your machine. Invest in better chips and higher memory and get a small increase in performance. Whereas, for most of the computers (approx 80%) cpu cycles are wasted. Why can’t operating system stack be such that it outsources number crunching to nearby machines which are wasting CPU cycles? For example, I have three computers at home and in order to run some research mathematical models I have to go great lengths to create a multi-machine application. I know, outsourcing CPU cycle might not be as easy but there is a humongous amount of wasted CPU cycles and it needs to be leveraged on.

In the next post, I will continue towards my conclusion. So keep reading :)