This post was written by Ajit Jaokar, who is a R/WW guest blogger on Mobile Web 2.0 and digital convergence.
In my last post, I spoke
of the differences between browser applications on the web and on the mobile device. This
topic is important because the Mobile Web is all about extending the concept of web
applications to mobile devices. However, as I pointed out in my last post, it’s not
a ‘straight convert’ - i.e. any application running on the Web can’t
run on a mobile device as is.
In this post, I am going to explore browser applications further – specifically in respect to accessing device APIs.
To be truly useful, any application running on a mobile device must have access to some features of the device itself. Traditionally, browser applications running on the device did not have access to device APIs (with the exception of some proprietary APIs created by specific vendors). In contrast, non browser applications running on the device have had much better access to device APIs.
Non-browser apps on a mobile device
Broadly, you can class non-browser applications running on a mobile device into two categories:
Note that for simplicity we are ignoring messaging applications like SMS and SIM applications, which have a totally different architecture.
So to understand what we are missing with mobile browser applications, we have to understand what features ‘operating system applications’ and ‘downloadable applications’ provide. In other words, what can they do which browser applications traditionally can’t do?
Let’s look at Java applications - i.e. downloaded applications. As you can expect, they run on a JVM (Java virtual machine) and can be downloaded to the device – either ‘over the air’ or synchronised from a PC. Operating system applications (like symbian applications) also have access to similar functionality. In fact because they operate lower down the stack, they have access to more features
Security
Before we discuss APIs, the previous discussion highlights another issue – security. An application running on a device poses a number or risks: privacy risks (access to phone book), financial risks (if the device is being used as a payment mechanism), risks to minors (due to the ability that a device can be tracked) and so on.
Java ME solves this issue by ‘security domains’. There are four security domains: manufacturer domain (i.e. the device manufacturer like Nokia (www.nokia.com), operator domain (the mobile operator like Vodafone (www.vodafone.com), trusted third party domain (i.e. applications which are trusted) and finally the untrusted domains (everyone else!)
Device APIs: Java ME as a model for upcoming mobile browsers
Let’s look at the Java ME model in more detail. The documentation can be downloaded from
http://jcp.org/aboutJava/communityprocess/final/jsr118/
Most of it pretty much standard but the most interesting bits are found in a section at the very end called ‘The Recommended Security Policy for GSM/UMTS Compliant Devices’. The APIs are listed below in two groups. They are self explanatory (in this context, MIDlet is the actual program running on the device).
Network/cost-related API groups:
User-privacy-related API groups:
This then, gives us an idea of the possible functionality an application running on the phone should implement (such as access to the phone book). At the moment, most of the browser vendors don't offer access to device APIs and the only options possible are proprietary. The exception to that is Opera - which was one of the first to announce this. I expect other vendors will follow.
Ajit Jaokar's blog about mobile web 2.0 is Open Gardens.
TrackBack URL for this entry: http://www.readwriteweb.com/cgi-bin/mt/mt-tb.cgi/2644
Comments
Subscribe to comments for this post OR Subscribe to comments for all Read/WriteWeb posts
Is this only an announcement or is there something to try out already?
Posted by: yeah | April 5, 2006 9:50 AM