Windows CE, which is targeted to a number of em-
bedded device classes as diverse as PDAs, automotive
terminals and smart phones; and Symbian OS, which
has had a strong focus on telephony features from its
conception and comes in different “series” targeting
different handset classes. The LiMo Foundation, a
consortium of device manufacturers and network op-
erators, has recently begun efforts to deploy Linux-
based operating systems on mobile phones (LiMo,
2007). Last but not least, Google has announced the
Open Handset Alliance, an industry consortium of
more than 30 mobile technology companies who col-
laborate on the development of Android, an open and
comprehensive platform for mobile devices (Google,
2007a). Android will deliver a complete stack of soft-
ware for mobile devices: an operating system, mid-
dleware and key mobile applications. The Android
Software Development Kit (SDK) is open source; an
early version is already available.
Native applications are executable without the
need for a particular runtime environment, and poten-
tially run faster as they can directly access native fea-
tures of the device through the application program-
ming interface (API) of the operating system. On the
downside, this direct access to internals of the device
and operating system also elevates the security risks
for both the device and the application.
Since native applications need to be compiled for
a particular OS, they are typically not as portable as
applications built for a more generic runtime environ-
ment. In particular, different mobile OS may use dif-
ferent paradigms to achieve similar tasks such as dis-
play control, file management, multi-threading etc.,
some of which may even be entirely unsupported on
other devices. However, more recent OS develop-
ments such as Android or LiMo may ameliorate this
issue somewhat, as they specifically aim to provide
the flexibility for making applications available across
a wide spectrum of devices.
2.2 Java Platform, Micro Edition /
Microsoft .NET Compact
Framework
The Java Platform, Micro Edition (Java ME) as a
runtime environment tailored to the special features
and restrictions of mobile devices. Microsoft’s .NET
Compact framework, a subset of the full .NET frame-
work also geared specifically to mobile devices, has
a very similar aim. Since both solutions are concep-
tually related, we will focus on Java ME in the fol-
lowing discussion. Our conclusions, however, can be
generalized for either framework.
Due to the power and memory limitations of
mobile devices, Java ME provides only the essen-
tial libraries and virtual machine capabilities (Helal,
2002a; Helal, 2002b). Applications developed using
this technology are deployed as so-called MIDlets,
which require (like all Java-based programs) a Java
Virtual Machine (JVM, or just VM) as their runtime
environment.
While Java ME benefits from its relationship to the
desktop and server editions of the Java platform and
thus technically allows the reuse of code fragments
and developer skills, its portability is characterized
by the challenge of striking a balance between cater-
ing to the lowest common denominator of all mobile
devices, or tapping the potential of different device
classes’ features. This is not necessarily a fault of the
VM, but a consequence of the diverse range of capa-
bilities (such as display resolution and input modes)
offered by devices (Kochnev and Terekhov, 2003).
The approach to incorporate the Java VM directly
into the mobile phone’s operating system initially also
seemed like a viable alternative. However, develop-
ment of Sun’s own JavaOS, as well as the third-party
SavaJe OS, have recently been discontinued. The lat-
ter is currently being incorporated into Sun’s JavaFX
Mobile platform (Sun, 2007), a Java-based operation
and application environmentbased on a Linux OS that
is explicitly positioned for the development of Rich
Internet Applications. A more thorough evaluation of
this technology will be possible once JavaFX matures
from its current alpha development stage.
In contrast to most other runtime environments
discussed in this paper, Java ME has the benefit of be-
ing independent of a permanent network connection,
as all necessary logic can be deployed on the client
device. It also benefits from long-established devel-
oper skills and a wide spectrum of development tools.
As such, it is well-suited for rather isolated, compact
applications whose purpose does not hinge on a per-
manent network connection. Of course, this ease of
development and network independence comes at the
price of a comparably heavyweight runtime environ-
ment. However, for applications that rely heavily on
remote resources or content, and thus require a per-
manent network connection by virtue of their appli-
cation domain anyway, Java ME cannot keep up with
the flexibility and small footprint that the runtime en-
vironments for RIAs offer.
2.3 AJAX
Since a few years, interest in a new class of dynamic
web applications has surged, largely fueled by the
Web 2.0 hype: By using a combination of estab-
lished web-based technologies, developers are cre-
TECHNICAL CLASSIFICATION OF RUNTIME ENVIRONMENTS FOR MOBILE APPLICATIONS
155