When Google unveiled their new Chrome Web Store which would let developers offer / sell their web applications through an online store-like interface, the move was met with much scepticism, over its description as an open web store even from developers at Mozilla. A web store for apps which only works on one browser, Google Chrome, what’s so open about that?
It seems Mozilla has since been working on a more open design for a web app store on their own. Ultimately though, their design is not a web store in itself, but a specification for how one can provide metadata for their application such that it can be listed on any number of online stores. Mozilla’s concept transcends any single browser or store. It merely describes how a completely open system can be made to work, where the app developer has full control over his app and the end-user over their computer.
Mozilla’s system allows developers to self-publish their applications, bypassing any requirement to go through a third-party store or approval process. Stores on the other hand, have their own advantages. Each store can have its own features such as applications ratings, reviews, and payment / purchase services. Additionally stores can have their own approval process, so for those who want to install safe, pre-approved applications can go to the store of their liking.
Each application should include a manifest, which provides basic meta-data about the application, such as its name, description, icons, name of the developer etc. It can also enlist the capabilities of the applications, so if an application uses offline storage or the geolocation capability of the browser, the same can be notified to the user before they install the application. The manifest of an application is provided to the browser when the user chooses to install the application; this could be from the developer’s own website for self-published applications, or from a store.
Application repositories themselves, and how installed applications are managed is up to the browser and the repository. This way there is enough scope for a unique experience with each browser / repository host.
While the entire specification itself is open, that does not mean individual apps need to be either open or even free. Mozilla’s specification includes support for applications which require payment or subscription, along with support for authorization using open technologies such as OpenID.
What Mozilla has emulated here — and what they were trying to — is pretty much the way you buy any other product. You have the choice of what to buy, and where to buy it from. You just enter a store, buy a product and add it to your collection.
Apps using Mozilla’s specification support notifications that could possibly be aggregated and available at your dashboard. Applications can offer deep search capabilities so the same search query could have matches in your contact book app, your media app and your image storage app. The specification has quite a lot of support for integration of apps.
Why do web applications need to be treated differently at all though?
The web and web browsers have traditionally been for browsing web content, and the only rich application-like functionality that websites provided was that involved int browsing the content. Browsers thus tended to have back, forward and home buttons, refresh buttons to reload updated content, and a url bar to navigate to websites. However if you look at a web application today, an application like GMail for example, there is little need for navigating back and forwards as the application has its own interface for that, there is little reason to refresh the page, as the application manages that as well, and you will probably not be messing with the URL entry bar once the app has loaded. However web apps are still treated as normal websites and we are required to deal with the noisy of our browsers even while browsing such site.
If web applications are clearly defined, then they can be treated as normal applications, and the browser can use reduced chrome while dealing with such applications while still showing the usual interface for normal sites. Additionally you might be able to use web applications as default handlers for tasks which currently require native applications. For example, you could use GMail to send mails or Google Docs to open documents on your computer. While this is not part of Mozilla’s proposal, it is certainly a possibility as web applications mature.
Web applications will certainly be a bigger part of our workflow over time. Already most people use web applications for their email rather than dedicated clients, since they simply work without configuration and are accessible from everywhere. It is not hard to imagine other tasks - such as editing documents - which we delegate to web applications.
Mozilla’s prototype is an encouraging model of how web application can be discovered, bought and installed without requiring a central authority or any at all. It will be interesting to see how their develops from a prototype to something that might some day become an integral part of the internet.
Check out the following demonstrations of the prototype: