Thursday, July 9, 2009

Google's new OS project, SOA and stateless computing

The Chrome browser is pretty much an OS already - each tab is a separate process and they use shared memory to load the common code etc. etc. .. its a mini-OS. If you think about the work Chrome (the browser) does, its pretty much depending on a few low level system calls to do memory management and process scheduling plus the windowing system for graphics. So the proposed strategy of run that on a cut-down Linux kernel plus rewrite the graphics system certainly makes sense. The venerable X Window System (of MIT Project Athena fame .. early 80s!!!) has seen its time IMO and a rewrite and a rethink is in order. It would not shock me if the new system is more like NeWS, Sun's original Network Window System (think Display Postscript), one of Jim Gosling's inventions before Java. (Java is sorta the same thing .. at least in the applet days and when it was conceived as the Green project; the server-side success of Java was almost accidental. Funny how the world turns, eh?!) The beauty of that architecture in the now "network is the computer" world is that it makes it better for remote computing - you can do more granular work on the server and push down work to the client. Video for example can be built into the windowing system itself.

One can also easily argue that you really do have to rethink the entire security architecture of an OS to really make a "Web-safe OS" and one which is an instant-on experience like a TV instead of traditional computer. The use of a Linux kernel surprises me there - why be constrained by the Unix security model? I'm guessing that that decision was motivated by the daunting challenge of getting drivers written for a totally new kernel - at least by going with Linux have a pretty good likelihood that everything from digital cameras to USB disks etc. that people have and will plug into the Gnetbook will work in our lifetime.

Of course we've heard the "Microsoft killer" argument a few times .. first Netscape with Netscape and then Sun with Java. However, unlike Netscape's wishful-thinking and Sun's brain-dead JavaOS project which attempted to write an OS in Java (what were you thinking Sun?), the Google guys are not afraid to get their hands dirty and write real code in a real language (C, of course).

There's no doubt that a rethink of fundamentals of computing are in order for the network age. Google seems well positioned to take a crack at that problem and possibly make it take off due to their dominating presence and global "cool kid" brand value.

Not to seem like I'm trying to sell WSO2 stuff in this blog entry, but this approach of "client=browser=access to services on the net" fits perfectly with our vision of the enterprise back-end: that its all about services and ONLY services. Even on the front-end, we're moving towards gadgets being the only UI and are working on taking the gadget dashboard stuff we've done and making a total gadget server which is like a portal server except that instead of crappy server-side JSR 168 portlets, you just have client side gadget that talk directly to back-end services (in the enterprise and outside). Oh yeah, with Chrome I expect Google will provide an easy way to (safely) get rid of this cross-site browsing restriction nonsense; IMO that is an "old Web" thing that just needs to go away as it doesn't fit with the model any more. So in many ways, a pure Web client platform is the perfect counterpart to a service-oriented enterprise.

Here's a funny thing though - Microsoft tried to get the world to accept that a browser is inextricably tied to the OS .. and got KILLED for it (and are still paying for it in crazy EU land). Google does the same thing (except further - the browser *is* the OS) and it seems the world is very happy. Ah, how wonderful it must be the company that does no evil ;-). (Other than reading all my mail and monitoring every click I do of course.) To be fair to Google though, all technology success is a "right thing, right place, right time" thing and Microsoft was probably too far ahead of the curve to say the browser is indeed part of the OS. Google's timing is much better and in any case, this is new OS .. not a new OS that must be able to run any browser.

I'm beginning to believe more and more in a world of "stateless computing", by which I see my laptop and netbook and phone and all simply being a "throwaway" device to get to my data and services on the net. In WSO2 we use Google Apps (email, calendar, intranet sites, shared docs), SVN (all code) and run all our common stuff on EC2. What I have on my laptop is pretty much a local cache only - well with Gears you can nearly get there .. it caches enough for my experience to be "good enough". Even on the server side, we now have an internal cloud (based on Xen) where anyone can go to an intranet portal and fire up a server with the OS/software config they want and get a dynamic host name etc. and use it. (We'll be open sourcing that code soon.) That has been a totally liberating experience in terms of how we think about getting a server with some config; now its "just do it". BTW anyone who thinks the concept of "internal cloud" doesn't make sense is, in my book, an idiot.

I was thinking of going back to a desktop computer (netbooks are only good for little stuff; sorry the small keyboard and screen don't cut it for me for 24x7 use) with a big screen + a 3G connected netbook for access from other places. However, with the internal cloud stuff, I'm now thinking of getting two "nettop"s (like this totally cool looking puppy from Acer), attaching it to large monitors at office and home and a netbook to carry around. The nettop+screen works like an old X Terminal (!!!) with my real computers being personal "servers" running in the internal cloud. (Yeah I will be running an internal cloud at home too.)

That's stateless computing - if those $250 boxes give way, no problem throw it away and buy a new one. And total cost: 2 x 24-30" monitor (< $600), 2 x nettop ($500), 1 x netbook ($300) < $1500 for access and shared servers for the cloud. At home I can run that on boxes I already have or for say $1000 by a quad core box with 8GB memory plus 1TB mirrored and have a pretty safe world. In office we're running the internal cloud on 3 old Dell 1U boxes with 2 dual core processors each and each with 8GB. We can keep adding every old box we have to that cloud (soon with Zeroconf). Oh yeah, if I need public cloud servers I've got Amazon EC2.

That's liberation. Liberation from "shit my disk died and I've lost it all", from "shit my computer crashed" and more shits ;-).

Will desktop apps go away? No way. While Google Docs are usable, its nothing when compared to Open Office (which itself is nothing when compared to Microsoft Office, but that's a different blog). However, its "good enough" for quite a few scenarios and I suspect will become sufficiently better (with the improved proprietary extensions from your friendly neighborhood Google).

8 comments:

I'm very skeptical on Google's ability to pull this one off. There is no doubt that cloud computing is the next battle ground and and everyone has warmed up to it, but I don't see the appeal of Google's OS over any other good Linux distro.

Whats so special about google OS over any other Linux distro. The announce was pure marketing talk and lacked any substance. I seriously doubt google will write an Xorg replacement and hope to maintain it. That would mean tons of current gtk/qt apps will break to say the least. Sure they don't care as long as the browser works but IMHO thats crippleware.

But the main reason why I think this won't succeed is because IMHO google is not so good at getting FOSS developers to work for them. They may have code Open but the way they work seems closed enough. I can't think of one Google project that excited a lot of FOSS developers to contribute to it. At the end, I'm not sure if google is geared up to even accept patches. They need a social change before they can make this successful.

But I'm glad google is doing this as its a stepping stone to tapping the OEMs. Hopefully Canonical or someone else with better ties to the FOSS community can pick up the ball and roll with it.

Sanjiva - thanks for a great perspective on the Google OS project. I agree it's a good time to rethink computing architectures because of commodity "scale out" hardware systems and cloud/virtualization techniques for managing data.

I want to comment on one thing you said though. About Google getting a pass on the "integrated browser with OS issue." The difference is Microsoft already had a dominant market share of the OS when they tried to tie the browser to it. Google has very little browser share, never mind OS share...

@Bud: IMO the issue is not technical. Just look at the level of interest they've generated with Android and with Wave - Google has enough "cool cred" with developers to attract people.

You're right that they probably won't attract people who want to work on the core but rather people who want to build cool apps and make money out of the stuff. Well that's exactly what Google wants - to be in control of the platform and let others build on it. Their control comes from owning the direction of the platform and the online services that the platform will be innately tied to.

While I agree with @Eric that Google is a non-player in the OS and browser spaces, they are clearly the monopolist in the online services space. This OS and the entire Google strategy is about making computing more and more dependent on online services.

I am not saying that that's a bad thing - its the new mainframe world and it is so convenient for users (hence my comments about stateless computing).

It would be much better for all of us if the online services that Google is going to tie the Gnetbook to were "open services". The only one who can give a credible set of alternative services today is Microsoft .. and there's basically zero probability that Google will ever open up the box to support both. Unless (eventually) DoJ has to take it up as a monopoly issue.

I recently came across your blog and have been reading along. I thought I would leave my first comment. I dont know what to say except that I have enjoyed reading. Nice blog. I will keep visiting this blog very often.

I was just going through the code regarding BSF perl Engine.I wanted to know that is Bsf perl Engine support Multithreading environment? or Singleton Design pattern is followed there?Or Any suggestion so that we can make our code so that we could have multithreading support( implementing BsfPerlImpl class ).

Try away from home this useful court so when to carry out a uncomplicated overturn cell phone search to facilitate reverse phone unearth away who is behind that cell phone number. Along with you be capable of also expend this telephone number search to facilitate get something done a phone lookup regarding with the intention of liar. In addition to even by a reorder search can complete the reverse cell phone method the greatest thing you be able to continually make but you consider in relation to it in the present day.