Mobile Application
Framework
1
Mobile Application Framework
TM
•Wireless Business,
Mobile Business, Government, and Life Regulations, and
Standards
Mobile Computing Applications
•Architectures and
Integration
Mobile Computing Platforms
(Wireless Middleware, Mobile IP)
•Wireless Security
Enablers
TM
Mobile Applications
Categorization
B2B
C2B, B2C B2E, E2B
Consumer Business Employees
B2G, G2B
C2G, G2C
E2G, G2E
Citizens Government Employees
G2G
TM
Mobility Issues at
Various Levels
M-Business and
Mobile Applications
Wireless Networks
TM
Application Application
Middleware Middleware
Services Mobile Services
Computing
Local Network Platform Local Network
Platform Transport Platform Transport
Services Services Services Services
Generic Mobile
Computing Platform (2)
Applications
Middleware
Runtime Environment
Mobile Application
Platforms
• - Mobile Operating System
• Symbian OS
• Palm OS
• IOS
• Windows CE/Mobile • Blackberry
• Embedded Linux • Android
• Qualcomm BREW
- Runtime Environment
• J2ME (JVM-Java Virtual Machine)
• .NET CF (CLR-Common Language Runtime)
• Dalvik ( Android VM)
- Middleware
• Java 2 Micro-Edition (J2ME)
• Microsoft .NET Compact Framework (.NET CF)
• Wireless Application Protocol (WAP)
• I-mode
TM
Mobile Operating
System (1)
• It is the software responsible for managing, exporting and
arbitrating the hardware resources provided by terminals.
Mobile Operating
System (2)
1. Symbian OS
2. Palm OS
3. Windows CE .NET OS
4. Embedded Linux
5. Qualcomm BREW
Symbian OS v8
TM
Symbian OS v9
Palm OS TM
Embedded Linux
• Use of the Linux operating system in embedded systems such as
cell phones, PDAs, media player handsets, and other consumer
electronics devices.
• Advantages:
– Open source
– Small footprint
(Windows CE takes 21MB compared to 2MB for Embedded Linux)
– No royalty costs
– Mature and stable (over ten years of age and used in many devices)
– Well supported
QUALCOMM BREW
• http://ww.qualcomm.com/brew/
BREW
• QualComm created the BREW to address a specific problem.
– Nearly every cell phone sold today is expected to be
thrown away.
– Handset manufacturers must load each phone's
applications onto the handset at the factory.
– Each application must be custom-built for each individual
handset.
– How can the applications installed on your current phone
be transferred to your new one quickly
• BREW is intended to simplify application development on CDMA
handsets (from QualComm)
Runtime Environment
• It provides a safe and managed execution environment and
contributes to the development of portable applications.
OUTLINE
(Middleware)
• Overview of middleware
• Middleware for wireless and mobile wireless
applications
• Example mobile middleware
– Wireless Access Protocol (WAP)
– Java 2 Micro-Edition (J2ME)
– Microsoft .NET Compact Framework (.NET CF)
TM
Middleware (1)
Application Programs
API
Middleware
Operating System
and Networking Services
TM
Middleware (3)
• Goal is to simplify development effort and
increase application functionality and robustness
– Allow code to run across different platforms
– Provide higher level abstractions of services
• Example functions
– Messaging
– Distributed object management
– Directory services
– Location services
– User-defined and composite data types
– Remote procedure calls (RPC)
– Alternate communication abstractions
TM
• Operation support: Middleware should offer utilities and tools to allow MIS
personnel to manage and troubleshoot wireless devices.
Middleware for TM
Mobile Computing
Applications
• "information hiding” wireless middleware
– attempts to smooth over the mobile computing issues
– the same applications can run on wired as well as wireless
networks.
– This goal is met through specialized APIs
– Example: WAP
Functionality (1)
• Optimization – data compression
• Transformation – data format transformation to suit
various device specifications
– HTML pages to WML (for WAP 1.0 devices) and vice versa
– SOAP/XML for web services
• From XML to xHTML (for WAP 2.0 and future i-mode devices)
• From XML to cHTML (for existing i-mode phone devices)
• Support for security and privacy
• Support for mobility
– Location transparency (ad hoc communication) versus
awareness
TM
Desirable Middleware
Functionality (2)
• Support for service discovery
• Support for disconnected operation
• Context-aware adaptability
– Status of the host device, the user, the surrounding
environment, and the interactions between the host
device and other devices
– Essential for pervasive (ubiquitous) computing
• Platform independence
– Same program can be run on a wide variety of
devices and platforms
Example “Mobile” TM
Middleware (1)
• Client-server model
– Wireless Application Protocol (WAP)
– Web services
• Server
– Microsoft’s Mobile Internet Toolkit (MIT)
• Client
– Microsoft’s eMbedded Visual Toolkit (eVT)
– Microsoft’s .NET Compact Framework (.NET CF)
– Sun’s Java 2 Micro Edition (J2ME)
WAP – Objectives
• Enable wireless terminals, especially digital cellular
phones, to access Internet content and advanced data
services
• Specify a protocol that will work across differing global
wireless network systems
• Enable creation of content and applications that scale
across different networks and devices
• Where possible, use and extend existing standards and
technologies
Internet WAP Wireless
TM
Protocol CGI,
encoded
Gateways response etc.
response
Java Platforms
Wireless Java TM
and J2ME
Wireless Java
J2ME JavaCard
Profiles GSM
Personal MIDP, PDA
Configurations CDC
(Connected Device CLDC (Connected Java Card API
Configuration) Limited Device Configuration)
From S. Helal, “Pervasive Java,” IEEE Pervasive Computing, Vol. 1, No. 1, Jan.-March 2002, pp. 82-85.
TM
• Profile layer
– Minimum set of APIs available for the specified
underlying configuration
• Configuration layer
– Defines a minimum set of JVM features and core
Java class libraries available on a particular category
of devices
• JVM layer
– Virtual machine layer (bottom layer)
J2ME/MIDP TM
Runtime on a PocketPC
• Sun Microsystems has
released JVM with MIDP J2ME applications
(Mobile Information Device (MIDP)
Profile) for PalmOS PDAs,
but is not continuing ME4SE
(J2ME emulator)
development of JVM for
PocketPC
Jeode JVM
• J2ME can be run on a (Personal Java)
PocketPC
– Jeode JVM provides Personal
Java 1.2 support. PocketPC
– ME4SE emulates MIDP devices
using Personal Java
TM
Microsoft .NET
Compact Framework
• .NET CF, which provides a subset of the .NET framework functionality
customized to mobile terminals.
• .NET CF is similar to the standard framework but removes certain services
and libraries that are not considered essential for mobile devices.
• The Common Language Runtime (CLR) provides a secure and robust
execution environment.
• The CLR composed 2 components:
– Common Type System (CTS): CTS defines the types supported by executive
environment.
– Execution Engine (EE): EE handles garbage collection, handles exceptions,
enforces code access security and handles verification.
• The .NET framework defines a common language specification (CLS) that
is supported by all .NET language.
TM
Microsoft’s .NET CF
• .NET Compact Framework (.NET CF) is part of Microsoft’s
larger .NET Framework
– Targets PocketPC, WindowsCE, Windows Mobile, etc.
• .NET CF is based on Microsoft’s Common Language
Infrastructure (CLI) standard
– Source code and complied binaries in Microsoft Intermediate Language
(MSIL) can run across CLI-based heterogeneous devices
– Microsoft’s Common Language Runtime (CLR), like Sun’s JVM, has the
objective of platform independence
• NET CF allows small form-factor devices to easily access remote
(server) data using the Internet standard protocols
– XML-based Simple Object Access Protocol (SOAP)
– Web Service Description Language (WSDL)
– XML web services are central to Microsoft’s .NET framework
TM
C. Neable, “The .NET Compact Framework,” IEEE Pervasive Computing, Vol. 1, No. 4, Oct.-Dec. 2002, pp. 84-87.
TM
Available to applications in
.NET CF
Windows forms library
XML web services
ADO.NET (Active Data
Object for remote data-
access)
C. Neable, “The .NET Compact Framework,” IEEE Pervasive Computing, Vol. 1, No. 4, Oct.-Dec. 2002, pp. 84-87.
Mobile Data TM
Access in .NET CF
• Active Data Object (ADO) .NET
– Mobile applications can access
Microsoft SQL Server 2000 on
SQL Server CE
remote servers or access a SQL
• Caching Server CE locally on the device
• Synch
• Disconnected mode support
Internet – SQL Server CE lets applications
cache large volumes of data (tens of
Internet megabytes), read, and update in
Information disconnected mode
Server (IIS)
• SQL Server CE provides
synchronization mechanisms for
SQL Server
changes made upon reconnection
TM
.NET CF Functionality
(2)
• Data Transformation
– XML transformed automatically to HTML,
XHTML, cHTML, or WML (at the server end)
• Disconnected operations
– Data caching, pre-fetching, and synchronization
available using Microsoft SQL Server 2000 on the
remote server and SQL CE on the local device
TM
PocketPC User
Interface Design (1)
• User Interface design constraints
– A small, portrait-oriented, touch-sensitive screen
– User input with an input panel and the stylus (pointer)
• Single-tap opens an item
• A tap and hold displays a pop-up menu or a tip
• Normally no “Close” button is necessary
– PocketPC automatically closes idle applications as more
memory is needed
• Normally no “Save” button is necessary
– PocketPC relies on application’s “autosave” to retain user
data
PocketPC User TM
Interface Controls
• Buttons • Combo boxes
• Check boxes • Up/Down controls
• Option buttons • Date/Time pickers
• Command bars • MonthCal controls
• Tool bars
• List views
• ToolTips
• Header controls
• Menus
• Pop-up menus • Tree views
• Message boxes • Group Line Separators
• Property sheets • Scroll bars
• Tabs • Sliders
• Text boxes • Status bars
• List boxes • Progress bars
TM
Philosophies
• .NET is ...
– Language independent (VB, C#)
– Platform dependent
(Windows CE, PocketPC, Smartphone)
– Company driven
• Java is ...
– Language dependent
– Platform independent
– Community driven
TM
http://www.javaworld.com/javaworld/jw-02-2003/jw-0221-wireless.html
TM
Client-Server vs.
Peer-to-Peer (1)
Client-Server Computing Peer-to-Peer Computing
Server
Client-Server vs.
Peer-to-Peer (2)
Client-Server Computing Peer-to-Peer Computing
Client-Server Models
for Middleware
• Client-server
• Client-agent-server
• Client-intercept-server models
TM
Client-Server Model
(1)
• Communication models
– Message passing with queuing
– Remote procedure call (RPC)
• Client-server synchronization
– Synchronous
• Inadequate – Client is blocked if disconnected
– Asynchronous
• Client requests are queued locally and control is returned immediately
to the client
• When the mobile is connected, the queue is drained in the background
and any queued messages or calls are forwarded to the server
TM
Client-Agent-Server
Model (1)
• Computation is split into two units
– Client-agent: optimized for mobile environment
– Agent-server: traditional (non-mobile) design
Model (2)
Wireless Fixed
Network Network
Mobile Host
Application
Application Agent
Server
Client
Client-Agent-Server Example
• Wireless Application Protocol (WAP)
– Mobile device runs the client
– The gateway acts as the agent
– Standard HTTP server can be used
encoded
Client Gateway Server
request request
Web Encoders HTTP
Browser wireless Decoders Server
Protocol CGI,
encoded
Gateways response etc.
response
TM
Client-Intercept-
Server Model (1)
• Inter-agent optimization protocols can be used between
the client-side agent and the server-side agent
– Minimize communication cost via…
• Caching
• Differencing
• Header reduction
• One-HTTP connection per session
• Caching/prefetching at the client agent to allow
disconnected operations
– For example, ADO .NET/SQL server CE
TM
Client-Intercept-Server
Model (2)
Wireless Fixed
Network Network
Mobile Host
Client Application
Agent
Client Side Server
Agent
Resources
• Amjad Umar, “Mobile Computing and Wireless Communications”, NGE
Solutions, Publication, 2004
(http://books.google.com.my/books?id=27cSWnW86oEC&pg=RA1-
PA423&lpg=RA1-PA423&dq=Wireless+MAS& source=
web&ots=5RVuKkR8TH&sig=L6-xgfz5WuqrcjCjVsJp0hgEbeo &hl =
en&sa=X&oi=book_result&resnum=1&ct=result#PRA1-PA618,M1)
• S. Helal, “Pervasive Java,” IEEE Pervasive Computing, Vol. 1, No. 1, Jan.-
March 2002, pp. 82-85.
• S. Helal, “Pervasive Java, Part II,” IEEE Pervasive Computing, Vol. 1, No. 2,
April-May 2002, pp. 85-89.
• C. Neable, “The .NET Compact Framework,” IEEE Pervasive Computing,
Vol. 1, No. 4, Oct.-Dec. 2002, pp. 84-87.
• A. Tripath, “Challenges in designing next-generation middleware systems,”
Communications on the ACM, Vol. 45, No. 6, June 2002, pp. 39-42.
• Open Mobile Alliance, http://www.openmobilealliance.org/, 2003.