Unfortunately, it seems that browsers are a step behind. To support standards and to make it available to everyone, browsers lack a lot of features and here it comes: more vendors are trying to build browsers that offer users an additional environment to write software that is first connected to the web, and then it bypasses the limitation of the browser based front-end.
Most of the browsers vendors are excited about what they offer through their browser front end, in addition to supporting the basic functionality required by the community for a respectful browser and smooth user surfing experience, some sort of a development/deployment environment, where developers can write applications, tiny application in most cases in the form of plug-ins, or add-ons that enrich the user surfing experience, and bring the user something from the web to the personal computer. For example, a variety of FF add-ons allows the users to share websites, rank them, and share comments about them. This is what I call to bring the Internet to your home computer. However, this is so tiny, and it's just on the form of add-ons, and it does that by incorporating server data centers available some where on the cloud to help achieve this.
"Our computers are only dumb terminals connected to other computers" http://labs.opera.com/news/2009/06/16/, said Lawrence Eng, from opera labs in his blog post, and I can't agree more. Dumb Terminals is the right phrase to describe our computers surfing the web, now, Opera are pushing our Dumb Terminals to be part of the web, to be part of this huge network, that is instead of being behind a window watching what is happening in the fields, you are going to be just there, part of it, serving others, it looks like what we have in what is called P2P, as the technology used by Skype and other file sharing software like Limewire, Ares and others that utilize our computers as a storage medium, and allow others to stream files from and to our hard desk, What is Opera trying to do with Opera Unite is just the same, but in a wider scale, and by doing so, will also expand it's usage from file sharing to numerous of other usage scenarios, making it a platform for developing software using this new software and service model, which i will call it, for short Web P2P, the "Web" comes to differentiate it from the traditional P2P.
Web P2P is a programming and service offering model, that is based on the Web using the user's browser, and using the user's machine for delivering the service using P2P.
Cloud Computing model is different, it uses the same, to some extent, the traditional programming model with some changes: moving away from relational database, using stateless architecture to easily support scaling, etc..
|Cloud computing||Web P2P|
|1. Software consumed by the user using the same URI, updates will not affect the user||1. Software is available within the browser.|
|2. Using the cloud to host the software - so the provider of the software will pay for hosting it.||2. Using the user machine to host the software - now one will pay anything, it's free.|
|3. Software logic and data resides on the same place, and accessed via the software browser front end (in web based application)||3. Software Logic is deployed to be distributed to user's browser - logic is distributed and data is stored on the user's machine - Now This software model might also store the data some where on the cloud instead of using the user machine - so they do not contradict.|
|5. Service centric, users access the service available on line, and when allowed sharing and collaboration are there||5. User centric - the user will host the service, and copy of the application software, and will offer it to his/her friends.|
|6. Feel free to add more ...||6. Feel free to add more ...|
The concerns or challenges to this "Software model" or "Service model" could be summarized by the following
- User identity, once the user connects to the Internet, s/he must be assigned a unique id to separate him/her from others - IP is not a good solution, you need some sort of cookie like mechanism to over come some of the problems one of them is computers behind firewalls and behind proxies.
- Building heavy software application that might consume a lot of the user's machine resources
- security model: developers are closer to the user's machine more than any time before...
This model is different approach to computing than the one offered by cloud computing, cloud pushing all of the computing to the Internet, offloading user's computers, and more over offloading corporate computing and moving it to the cloud. Web P2P computing on the other hand offload the Internet and the cloud, and adding load to the user's computer, creating by doing though a private Internet if i can call it so, which is a subset of the whole cloud, providing services to connected peers. Please note that offloading the cloud is not the goal behind Web P2P, it's just happens to be this way.
Web P2P model also allows the users to host their data locally instead of the cloud, that means the old headache of backup, security, availability, mobility and some others. It solves sharing for example, and also allow some sort of collaboration. There is some software that might be better if done using Web P2P, and some others are better to be hosted. Personally Ii prefer to store my documents on line, but also like the fact that I can do collaboration directly with my peers instead of going all the way to the 3rd party service.
I believe that there is a set of services that is best served using the Web P2P model, but you got to think. Games maybe! chatting!
I don't want to think of Web P2P or Opera Unite as a different approach from cloud computing, or it is offload the cloud and load the client. On the contrary, I would love to think of it as it an opportunity for all computers to participate and be part of the cloud, that is, pushing the client/user's computer toward the cloud!
Opera Unite is a great initiative, moving the user's machine to the web, and allows a new level of possibilities for developers, vendors, and users. User's computer is the server at the same time, user's can collaborate together on their machines without the need to go to 3rd party servers/machines. This is good also if resolving unique names is done using extra information that allow users within the same network to use direct connection instead of going all the way over the cloud, this is valuable in disconnected networks. User can create a photo album and offer it to friends within his network created using Unite, and they will be stored on his/her machine. File sharing again is just great, I can also stream videos or audios of what I'm watching or listening, and much more.
We said a lot about cloud computing, and platform development and how Web operating systems and all the vendors that are thinking, and utilizing the Internet as a platform they using the Internet. Opera unite is no different except that they used a different direction, and went a step ahead of the others. Google Chrome also offer a variety of services but all using the cloud, pushing computing needs to the cloud.
This is a serious step, and will be of dramatic effect if Opera is lucky enough. There is positional problems like the adoption in the market, and Opera market share, but I hope this will change soon, or maybe Opera can open it's standards and other browsers vendor can just follow their initiative.