1
Mobile Platforms
There are many available platforms all of which could become the dominant design. This field is
characterized by competition, lack of de-facto standards and by divergence of the platforms. OMA
(Open Mobile Alliance) may ensure compatibility.
In the following text we shortly describe the following mobile platforms: Java, Symbian, Palm,
Microsoft Windows Mobile, Brew, Embedded Linux and Do-it-yourself OS. We concentrate on
Java and Symbian. An overview of politics is given below.
Overview of Politics
Guiding consortia
Java Symbian
Open development No ’own’
and standards development needed
Linux Microsoft
Full access Single company
to everything Proprietary development effort
OS
Mobile Systems Programming
tommi.mikkonen@tut.fi, Institute of SW systems, TUT
Java
The complexity of hardware and software is hidden from the programmer by the use of interfaces.
This makes programming much easier but resources are lost. On the other hand device indepen-
dence and security are enhanced. The interface(s) can be understood as a program code interpreted
by software. The interpreter is often called virtual machine (VM). The virtual machine provides the
runtime environment for the application. The executable program is named interpreted byte code.
The Java standard also defines necessary libraries. Instead of standardized interfaces also interfaces
developed by original equipment manufacturers (OEMs) are used.
The current release of the Java 2 platform is defined in three main editions. Each edition is targeting
a particular group of applications. The three editions are
Java 2 Enterprise Edition (J2EE) – Designed for heavyweight and scalable business
server applications
Java 2 Standard Edition (J2SE) – Designed for traditional and well-established desktop
applications
Java 2 Micro Edition (J2ME) – Designed for consumer, mobile and embedded device
applications
Special software has been developed for smartcards. The three main editions are illustrated below.
2
Java™ 2
Servers
Servers
Desktop
Platform
Desktop
machines
machines
Optional
Packages
High-end
High-end
consumer
consumer
devices Low-end
Low-end
Optional devices
Packages
consumer
consumer
devices
devices
Smart-
Smart-
Java 2 Java 2 Personal Profile cards
Enterprise Standard
cards
Edition Edition Foundation Profile MIDP
(J2EE) (J2SE)
Java
CDC CLDC Card
APIs
Java Virtual Machine KVM CardVM
Mobile Systems Programming
tommi.mikkonen@tut.fi, Institute of SW systems, TUT Java 2 Micro Edition (J2ME)
Each edition has its own virtual machine that is specially optimized for supporting its target
application. HotSpot VM is a highly tuned Java virtual machine for J2EE, corresponding traditional
virtual machine for J2SE is JVM. HotSpot VM and JVM are compatible. For low-end consumer
devices the virtual machine is KVM (kilo virtual machine). KVM is very compact in size and
requires much fewer system resources than the JVM and the HotSpot VM. KVM is suitable for
16/32-bit RISC/CISC microprocessors with a total memory budget of no more than a few hundred
kilobytes.
J2ME is a lean platform targeted specifically at applications running on consumer devices. A
modular and scalable architecture has been adopted. J2ME defines three layers of software built
upon the native operating system of the device:
Java Virtual Machine Layer – This layer is an implementation of a Java virtual machine
that is customized for a particular host operating system and supports a particular J2ME
configuration.
Configuration Layer – A J2ME configuration defines the minimum set of JVM, Java
language and class libraries for a particular ‘horizontal’ class of devices with a certain
memory budget and processing power. Shortly, the configuration can be seen as a contract
between the equipment manufacturer and the Java environment developer.
Profile Layer – A profile defines a set of APIs, and is available for a particular
configuration. It provides functionality for a specific range of devices within a ‘vertical’
functional market or device type family, for example smartphones. Shortly, the profile can
be seen as a contract between the application designer (programmer) and the Java
environment developer.
3
For high-end consumer devices there are two profiles, Personal Profile and Foundation Profile. The
configuration layer is CDC (Connected Device Configuration). The Foundation Profile acts as an
extension to CDC to achieve J2SE functionality. It is a subset of the J2SE APIs for running on
small devices with a network connection. The target devices do not require GUI (Graphical User
Interface) functionality. The Personal Profile comprises a subset of theJ2SE APIs and is a
replacement for Personal Java (pJava). Personal Java is a runtime environment targeted for devices
whose users have minimal computer experience. This includes devices such as set top boxes for
digital and satellite TV.
For low-end consumer devices the profile is MIDP (Mobile Information Device Procedure) and the
configuration is CLDC (Connected Limited Device Configuration). CLDC has been designed to
service small devices with limited resources and limited network connectivity. However, it gives
very limited functionality. MIDP sticks to the CLDC approach of minimizing resource usage but
provides ways to add reasonably a good user interface. A MIDP application is called MIDlet.
Java is intended as an add-on application because it runs on ‘almost’ every operating system. Savaje
is an example of an all-Java mobile platform.
Add-on to any system,
not a native system
New Java
Native down- Native App
App loaded App Java
App core
Native core Native core
Native executable Java executable
Mobile Systems Programming
tommi.mikkonen@tut.fi, Institute of SW systems, TUT
Mobile Service Architecture (MSA)
Java has developed strongly in the consumer area, such as in games, but will have an increasingly
important role in the Enterprise domain as one of the most important technology enablers. For
example, a new initiative, the Java API Platform (JSR232), aims to further develop Java into a
uniform enterprise technology for mobile terminals. The initiative specifies a component
management framework that will allow mobile devices based on the J2ME CDC (Java 2 Platform
Micro Edition, Connected Device Configuration) to evolve and adapt their capabilities by installing
new components in terminals on demand. Web services, messaging, presence, concurrent
applications, and multi-threading are among the specified features. The initiative specifies
downward compatibility with Java CLDC/MIDP-based mobile devices, and will be coordinated
with the Open Mobile Alliance and OSGi Alliance standardization bodies.
Nokia and Vodafone have established the MSA initiative within the Java Community Process to
improve application compatibility across multi-vendor mobile devices through structured Java
4
(J2ME) API standardization. The initiative defines a common, open standard-based, next-
generation mobile Java development and deployment platform for consumer and enterprise
applications and services.
The MSA initiative will strengthen and define the overall API platform architecture including any
dependencies or common platform features, such as security, with an aim to reduce fragmented and
often incompatible device implementations. For developers, this will accelerate and facilitate the
creation and distribution of mobile applications by providing a uniform end-to-end architecture that
includes a compatible programming environment, rich user interface component set, and platform
functionality.
MSA is supported by an expert group including the main players in the industry, such as Sun
Microsystems, Borland, Motorola, Orange, T-mobile, NTT DoCoMo, Siemens, Sony Ericsson, and
others.
The Mobile Service Architecture will bring benefits to all key stakeholders in the industry –
including application and middleware developers, device manufacturers, operators, enterprises, and
consumers. It will address the industry’s future needs by:
Simplifying the Java™ API landscape
Creating consolidated API platform roadmaps
Speeding up the pace of future API innovation
Providing backward and upward compatibility
Speeding up device creation through simplified licensing models
5
Symbian OS
Symbian OS is a mobile software product from Symbian Ltd. It’s an open operating system for
mobile phones including 2G, 2.5G and 3G system phones. Symbian is owned by some of the
leading mobile phone manufacturers with shares shown below.
Symbian is a software licensing company that develops and licenses Symbian OS, the global open
industry standard operating system for advanced, data-enabled mobile phones. Symbian licenses
Symbian OS to the world’s leading handset manufacturers. The following Symbian OS licensees
have Symbian OS-based mobile phones in production and development: Arima, BenQ, Fujitsu for
NTT DoCoMo FOMA, LG, Lenovo, Mitsubishi, Motorola, Nokia, Panasonic, Sendo, Sharp,
Siemens, Samsung and Sony Ericsson. In 2003, over 6.67 million Symbian OS-based mobile
phones were sold worldwide and almost 20 million have been sold to date (5.2.2005). Symbian OS
is designed for the specific requirements of open, data-enabled 2G, 2.5G and 3G mobile phones.
Symbian OS is characterized by:
integrated multimode mobile telephony – Symbian OS integrates the power of computing
with mobile telephony, bringing advanced data services to the mass market
open application environment – Symbian OS enables mobile phones to be a platform for
deployment of applications and services (programs and content) developed in a wide range
of languages and content formats
open standards and interoperability – with a flexible and modular implementation,
Symbian OS provides a core set of application programming interfaces (APIs) and
technologies that is shared by all Symbian OS phones. Symbian supports key industry
standards and contributes to the development of industry standards through Board
membership of the Open Mobile Alliance
multitasking – Symbian OS is based on a micro kernel architecture and implements full
multitasking and threading. System services such as telephony, networking middleware and
application engines all run in their own processes
fully Object-oriented and component based – the operating system has been designed
from the ground up with mobile devices in mind, using advanced OO techniques, leading to
a flexible component based architecture
flexible user interface design – by enabling flexible graphical user interface design on
Symbian OS, Symbian is fostering innovation and is able to offer choice to manufacturers,
carriers, enterprises and end-users. Using the same core operating system in different
designs also eases application porting for third party developers
robustness – Symbian OS maintains instant access to user data. It ensures the integrity of
data, even in the presence of unreliable communication and shortage of resources such as
memory, storage and power.
This diagram provides a general overview of the operating system:
6
Symbian OS v8.0 Architecture
Symbian OS provides a rich core of application programming interfaces that are common to all
Symbian OS phones.
Key features of Symbian OS v8.0:
Rich suite of application services – the suite includes services for contacts, schedule,
messaging, browsing and system control; OBEX for exchanging appointments (vCalendar)
and business cards (vCard); integrated APIs for data management, text, clipboard and
graphics
Java support – supports the latest wireless Java standards, including MIDP 2.0, CLDC 1.1,
JTWI (JSR185), Mobile Media API (JSR135), Java API for Bluetooth® wireless technology
(JSR082) and Wireless Messaging (JSR120)
Realtime – a realtime, multithreaded kernel provides the basis for robust, power-efficient
and responsive Symbian OS
Hardware support – supports latest CPU architectures, peripherals and internal and external
memory types
Messaging – multimedia messaging (MMS), enhanced messaging (EMS) and SMS; internet
mail using POP3, IMAP4, SMTP and MHTML; attachments
Multimedia – audio and video support for recording, playback and streaming; image
conversion
7
Graphics – direct access to screen and keyboard for high performance; graphics accelerator
API
Communications protocols – wide area networking stacks including TCP/IP (dual mode
IPv4/v6) and WAP, personal area networking support include infrared (IrDA), Bluetooth®
wireless technology and USB; support is also provided for multihoming capabilities and link
layer Quality-of-Service (QoS) on GPRS and UMTS networks
Mobile telephony – Symbian OS v8.0 is ready for the 3G market with support for WCDMA
(3GPP R4); GSM circuit switched voice and data (CSD and EDGE ECSD) and packet-
based data (GPRS and EDGE EGPRS); CDMA circuit switched voice, data and packet-
based data (IS-95 and cdma2000 1x); SIM, RUIM and UICC Toolkit; other standards can be
implemented by licensees through extensible APIs of the telephony subsystem
International support – supports the Unicode Standard version 3.0
Data synchronization – over-the-air (OTA) synchronization support using SyncML; PC-
based synchronization over serial, Bluetooth® wireless technology, infrared and USB; a PC
Connectivity framework providing the ability to transfer files and synchronize PIM data
Device Management/OTA provisioning – SyncML DM 1.1.2 compliant
Security – full encryption and certificate management, secure protocols (HTTPS, and SSL
and TLS), WIM framework and certificate-based application installation
Developing for Symbian OS – content development options include: C++, Java (J2ME)
MIDP 2.0, and WAP; tools are available for building C++ and Java applications.
Symbian platforms
Nokia develops and maintains several advanced software platforms that enable different user
interfaces and displays, product concepts, and feature configurations:
Series 30 is the lowest-cost platform, designed for entry-level mobile phones that feature
voice and basic messaging functionalities
Series 40 is a versatile, efficient and highly cost-effective feature phone platform,
particularly suited for the mobile phone product range
Series 60 is the world's leading rich smartphone software platform, available for OEM
licensing
Series 80 is a high-end software platform optimized for enterprise Communicators and
smartphones, enabling a two-hand operated QWERTY keyboard and a wide screen
8
Series 60 and Series 80 are based on the Symbian operating system, whereas Series 30 and Series
40 use Nokia's proprietary operating system. The Symbian operating system powers the majority of
advanced data-enabled mobile phones worldwide. Designed from the beginning for mobile
terminals, the Symbian OS supports the network protocols and hardware configurations required to
design devices for different user segments.
To complete the mobile software stack, the popular application platform and programming
language Java™ hides the device complexity from applications, ensures ease of programming, and
further increases developer productivity.
The combination of Symbian, Java, and the different Nokia software platforms attracts a vibrant
international software developer community. This ecosystem in turn contributes to a continuously
growing array of high-end applications and services for users.
to be continued….