Applications and the Open Web
Excerpts from TimBL post to the TAG mailing list:
The open web platform is a strong contender
for apps which you write once[,] run anywhere and end up being a better alternative [to], or quietlymoving out, native apps on all [kinds] of device.
Note that when people talk about installation, they often immediately discuss
packaging and manifest formats, which will need to be defined, and for which we might have more than one, but is not the crux of the issue -- the crux isallowing it access to precious and/or sensitive resources.
Web apps have got to be able to completely act as agents trusted by the user, like for example
- a web browser
- a calendar client
- an IMAP client
and so on. None of these can currently be written as a web app, because of same origin policies.
As a user, when I install an app, I want to be able to give it access to a selection of:
- Program storage, to a limit
- Whether it is permanently available or downloaded or cached for a while
- Access to RAM at runtime, to a limit
- Access to the net, maybe to a bandwidth limit
- CPU time when in background, to a limit
- Ability to access anything on the web
- Access to its own local storage up to a given limit
- Access to shared local storage up to a given limit
- Access to my location, as we currently allow an origin
- Access to my video and/or still camera
- Access to my microphone
- Access to other sensors such as temperature, accelerometer, etc.
I want to be able to see where all the resources (including CPU, RAM, 'disk') on my device are being used up, just like I can with stored music, movies, and other media.
I may want some default profiles for all the above.
(I'll want to sync the app's local and shared data storage between all my devices too.)
If I can't give these powers to web apps, then the web app platform cannot compete with native apps.
I don't want the value of these setting to be the originating domain name for the script or the app, as that is too high a granularity.
In order to be truly Platform (operating system, hardware, etc.) Agnostic, as a Web App should be, the following must each be treated separately --
- User Identity(ies)
- Data Object Identity(ies)
- Data Model(s)
- Data Representation Syntax(es)
- Data Serialization Format(s)
- Data Access Protocol(s)
User Identities help enable construction of User Profiles, which are basically collections of the restrictions and/or permissions listed above.
Best case, a User Profile would be entirely portable, and enable activation of a new device with pre-existing application setup, with minimal user interaction focused only on new configuration options (e.g., where a new device has a camera and the Profile contains no camera-related settings).
Mozilla app market https://marketplace.mozilla.org