Course Overview
Introduction
Data in Wireless Cellular Systems
Data in Wireless Local Area Networks
Internet Protocols
TCP over Wireless Link
Ad-Hoc Networks, Sensor Networks
Services and Service Discovery
System Support for Mobile Applications

Challenges in Mobile Computing
wireless communication is substantially different from wired communication:
frequent spurious disconnections (handoff, shadowed areas)
lower bandwidth (GSM, CDPD: less than 20 kbps)
high bandwidth variability (roaming outdoors vs. plugged into docking station)
heterogeneous networks (outdoors: cellular, indoors: infrared LAN)
security risks (everyone can listen in on wireless channel)
mobility:
address migration (e.g., location management)
location dependent information (where is closest printer?)
migrating locality (optimal connection changes over time)

Challenges in Mobile Computing
portability (of computing device):
limited power supply (battery)
data security (someone steals your laptop)
small user interface (look at screen size of a PDA)
limited storage capacity (disks, for example, are a “power liability”)
solutions (or suggestions) exist to address all these issues, however, the solutions are often conflicting:
do not keep data on portable device to reduce security problem
do not send data if not necessary to save valuable energy

Solutions and Research Directions
solutions to overcome hardware disparities:
sophisticated power management (sleep modes, disk mgmt, clock speed, prefer receiving data over sending: “ether as cache”)
delegate tasks to stationary computers (application partitioning, stationary computer has disk space, high bandwidth connection, powerful CPU)
trade increased data processing for reduced network bandwidth requirements (on-line compression, difference-based updates, filtering, less restrictive consistency semantics)
reduce network latency (data prefetching, batch multiple messages)

Solutions and Research Directions
solutions addressing mobility:
flexible directory services to enable mobile to find location-dependent services, often based on “shopping” or negotiation:
scaleable, fault-tolerant architecture (exploit communication locality, replicate directory data, weakened consistency semantics: allow directory info to go stale as long as we can improve on suboptimal routes during connection)
brokerage service (e.g.: trading in ODP)
accounting service: mediate cost accounting between mobile client and servers
rebindable service interfaces (switch service providers “on-line”)
ubiquitous security and authentication (IPv6 will go a long way towards providing this goal)

Solutions and Research Directions
there seems to be general agreement that some sort of application partitioning is a good thing:
 reduce bandwidth requirements
overcome the physical limitations of the mobile computer
one open question: how do you partition and when?
static partitioning is easier (and we will see examples for WWW later)
however, computation environment can change radically during execution:
MH moves to area with better networking infrastructure (maybe gets back into his docking station)
PCMCIA cards all of a sudden add more memory
radio signal is dropped completely temporarily
implies growing interest in dynamic application partitioning

File Systems: Motivation
Goal
efficient and transparent access to shared files within a mobile environment while maintaining data consistency
Problems
limited resources of mobile computers (memory, CPU, ...)
low bandwidth, variable bandwidth, temporary disconnection
high heterogeneity of hardware and software components (no standard PC architecture)
wireless network resources and mobile computer are not very reliable
standard file systems (e.g., NFS, network file system) are very inefficient, almost unusable
Solutions
replication of data (copying, cloning, caching)
data collection in advance (hoarding, pre-fetching)

File Systems: Consistency Problems
THE big problem of distributed, loosely coupled systems
are all views on data the same?
how and when should changes be propagated to what users?
Weak consistency
many algorithms offering strong consistency (e.g., via atomic updates) cannot be used in mobile environments
invalidation of data located in caches through a server is very problematic if the mobile computer is currently not connected to the network
occasional inconsistencies have to be tolerated, but conflict resolution strategies must be applied afterwards to reach consistency again
Conflict detection
content independent: version numbering, time-stamps
content dependent: dependency graphs

File Systems: Limited Connectivity
Symmetry
Client/Server or Peer-to-Peer relations
support in the fixed network and/or mobile computers
one file system or several file systems
one namespace for files or several namespaces
Transparency
hide the mobility support, applications on mobile computers should not notice the mobility
user should not notice additional mechanisms needed
Consistency model
optimistic or pessimistic
Caching and Pre-fetching
single files, directories, subtrees, partitions, ...
permanent or only at certain points in time

File Systems: Limited Connectivity
Data management
management of buffered data and copies of data
request for updates, validity of data
detection of changes in data
Conflict solving
application specific or general
errors
Several experimental systems exist
Coda (Carnegie Mellon University), Little Work (University of Michigan), Ficus (UCLA) etc.
Many systems use ideas from distributed file systems such as, e.g.,  AFS (Andrew File System)

File Systems: Coda
Application transparent extensions of client and server
changes in the cache manager of a client
applications use cache replicates of files
extensive, transparent collection of data in advance for possible future use („Hoarding“)
Consistency
system keeps a record of changes in files and compares files after reconnection
if different users have changed the same file a manual reintegration of the file into the system is necessary
optimistic approach, coarse grained (file size)

File Systems: Coda
Hoarding
user can pre-determine a file list with priorities
contents of the cache determined by the list and LRU strategy (Last Recently Used)
explicit pre-fetching possible
periodic updating
Comparison of files
asynchronous, background
system weighs speed of updating against minimization of network traffic
Cache misses
modeling of user patience: how long can a user wait for data without an error message?
function of file size and bandwidth
States of a client

File Systems: Other Examples
Mazer/Tardo
file synchronization layer between application and local file system
caching of complete subdirectories from the server
“Redirector” responses to requests locally if necessary, via the network if possible
periodic consistency checks with bi-directional updating
Ficus
not a client/server approach
optimistic approach based on replicates, detection of write conflicts, conflict resolution
use of „gossip“ protocols: a mobile computer does not necessarily need to have direct connection to a server, with the help of other mobile computers updates can be propagated through the network
MIo-NFS (Mobile Integration of NFS)
NFS extension, pessimistic approach, only token holder can write
connected/loosely connected/disconnected

World Wide Web and Mobility
Protocol (HTTP, Hypertext Transfer Protocol) and language (HTML, Hypertext Markup Language) of the Web have not been designed for mobile applications and mobile devices, thus creating many problems!
Typical transfer sizes
HTTP request: 100-350 byte
responses avg. <10 kbyte, header 160 byte, GIF 4.1kByte, JPEG 12.8 kbyte, HTML 5.6 kbyte
but also many large files that cannot be ignored
The Web is no file system
Web pages are not simple files to download
static and dynamic content, interaction with servers via forms, content transformation, push technologies etc.
many hyperlinks, automatic loading and reloading, redirecting
a single click might have big consequences!

HTTP 1.0 and Mobility
Characteristics
stateless, client/server, request/response
needs a connection oriented protocol (TCP), one connection per request (some enhancements in HTTP 1.1)
primitive caching and security
Problems
designed for large bandwidth (compared to wireless access) and low delay
big and redundant protocol headers (readable for humans, stateless, therefore big headers in ASCII)
uncompressed content transfer
using TCP
huge overhead per request (3-way-handshake) compared with the content, e.g., of a GET request
slow-start problematic
DNS lookup by client causes additional traffic

HTTP 1.0 and Mobility
Caching
quite often disabled by information providers to be able to create user profiles, usage statistics etc.
dynamic objects cannot be cached
numerous counters, time, date, personalization, ...
mobility quite often inhibits caches
security problems
how to use SSL/TLS together with proxies?
today: many user customized pages, dynamically generated on request via CGI, ASP, ...
POSTing (i.e., sending to a server)
can typically not be buffered, very problematic if currently disconnected
Many unsolved problems!

HTML and Mobile Devices
HTML
designed for computers with “high” performance, color high-resolution display, mouse, hard disk
typically, web pages optimized for design, not for communication
Mobile devices
often only small, low-resolution displays, very limited input interfaces (small touch-pads, soft-keyboards)
Additional “features”
animated GIF, Java AWT, Frames, ActiveX Controls, Shockwave, movie clips, audio, ...
many web pages assume true color, multimedia support, high-resolution and many plug-ins
Web pages ignore the heterogeneity of end-systems!
e.g., without additional mechanisms, large high-resolution pictures would be transferred to a mobile phone with a low-resolution display causing high costs

WWW for Mobile Devices
Application gateways, enhanced servers
simple clients, pre-calculations in the fixed network
compression, filtering, content extraction
automatic adaptation to network characteristics
Examples
picture scaling, color reduction, transformation of the document format (e.g., PS to TXT)
detail studies, clipping, zoom
headline extraction, automatic abstract generation
HDML (handheld device markup language): simple language similar to HTML requiring a special browser
HDTP (handheld device transport protocol): transport protocol for HDML, developed by Unwired Planet
Problems
proprietary approaches, require special enhancements for browsers
heterogeneous devices make approaches more complicated

System Support for Mobile WWW
Client and network proxy
combination of benefits plus
simplified protocols
e.g., MobiScape, WebExpress
Special network subsystem
adaptive content transformation
for bad connections, pre-fetching,
caching
e.g., Mowgli
Additional many proprietary server
extensions possible
“channels”, content negotiation, ...

WAP - Wireless Application Protocol
Goals
deliver Internet content and enhanced services to mobile devices and users (mobile phones, PDAs)
independence from wireless network standards
open for everyone to participate, protocol specifications will be proposed to standardization bodies
applications should scale well beyond current transport media and device types and should also be applicable to future developments
Platforms
e.g., GSM (900, 1800, 1900), CDMA IS-95, TDMA IS-136, 3rd generation systems (IMT-2000, UMTS, W-CDMA, cdma2000 1x EV-DO, …)
Forum
was: WAP Forum, co-founded by Ericsson, Motorola, Nokia, Unwired Planet, further information www.wapforum.org
now: Open Mobile Alliance www.openmobilealliance.org 
(Open Mobile Architecture + WAP Forum + SyncML + …)

WAP - Scope of Standardization
Browser
“micro browser”, similar to existing, well-known browsers in the Internet
Script language
similar to Java script, adapted to the mobile environment
WTA/WTAI
Wireless Telephony Application (Interface): access to all telephone functions
Content formats
e.g., business cards (vCard), calendar events (vCalender)
Protocol layers
transport layer, security layer, session layer etc.

WAP 1.x
Reference Model and Protocols

WDP: Wireless Datagram Protocol
Protocol of the transport layer within the WAP architecture
uses directly transports mechanisms of different network technologies
offers a common interface for higher layer protocols
allows for transparent communication using different transport technologies (GSM [SMS, CSD, USSD, GPRS, ...], IS-136, TETRA, DECT, PHS, IS-95, ...)
Goals of WDP
create a worldwide interoperable transport system with the help of WDP adapted to the different underlying technologies
transmission services such as SMS, GPRS in GSM might change, new services can replace the old ones
Additionally, WCMP (wireless Control Message Protocol) is used for control/error report (similar to ICMP in the TCP/IP protocol suite)

WTLS: Wireless Transport Layer Security
Goals
data integrity
prevention of changes in data
privacy
prevention of tapping
authentication
creation of authenticated relations between a mobile device and a server
protection against denial-of-service attacks
protection against repetition of data and unverified data
WTLS
is based on the TLS (Transport Layer Security) protocol (former SSL, Secure Sockets Layer)
optimized for low-bandwidth communication channels

WTP: Wireless Transaction Protocol
Goals
different transaction services, offloads applications
application can select reliability, efficiency
support of different communication scenarios
class 0: unreliable message transfer
class 1: reliable message transfer without result message
class 2: reliable message transfer with exactly one reliable result message
supports peer-to-peer, client/server and multicast applications
low memory requirements, suited to simple devices (< 10kbyte )
efficient for wireless transmission
segmentation/reassembly
selective retransmission
header compression
optimized connection setup (setup with data transfer)

WSP: Wireless Session Protocol
Goals
HTTP 1.1 functionality
Request/reply, content type negotiation, ...
support of client/server, transactions, push technology
key management, authentication, Internet security services
session management (interruption, resume,...)
Open topics
QoS support
Group communication
Isochronous media objects
management

WAE: Wireless Application Environment
Goals
network independent application environment for low-bandwidth, wireless devices
integrated Internet/WWW programming model with high interoperability
Requirements
device and network independent, international support
manufacturers can determine look-and-feel, user interface
considerations of slow links, limited memory, low computing power, small display, simple user interface (compared to desktop computers)
Components
architecture: application model, browser, gateway, server
WML: XML-Syntax, based on card stacks, variables, ...
WMLScript: procedural, loops, conditions, ... (similar to JavaScript)
WTA: telephone services, such as call control, text messages, phone book, ... (accessible from WML/WMLScript)
content formats: vCard, vCalendar, Wireless Bitmap, WML, ...

WAE Logical Model

Wireless Markup Language (WML)
WML follows deck and card metaphor
WML document consists of many cards, cards are grouped to decks
a deck is similar to an HTML page, unit of content transmission
WML describes only intent of interaction in an abstract manner
presentation depends on device capabilities
Features
text and images
user interaction
navigation
context management

WMLScript
Complement to WML
Provides general scripting capabilities
Features
validity check of user input
check input before sent to server
access to device facilities
hardware and software (phone call, address book etc.)
local user interaction
interaction without round-trip delay
extensions to the device software
configure device, download new functionality after deployment

WAP Push Architecture with Proxy Gateway
Push Access Protocol
Content transmission between server and PPG
First version uses HTTP
Push OTA (Over The Air) Protocol
Simple, optimized
Mapped onto WSP

Examples for WAP Protocol Stacks (WAP 1.x)

i-mode: First of all a Business Model!
Access to Internet services in Japan provided by NTT DoCoMo
Services
Email, short messages, web, picture exchange, horoscope, ...
Big success – more than 30 million users
Many use i-mode as PC replacement
For many this is the first Internet contact
Very simple to use, convenient
Technology
9.6 kbit/s (enhancements with 28.8 kbit/s), packet oriented (PDC-P)
Compact HTML plus proprietary tags, special transport layer (Stop/go, ARQ, push, connection oriented)

Email Example: i-mode Push with SMS

i-mode Protocol Stack based on WAP 2.0

i-mode Examples

i-mode Examples (cont)

i-mode Examples (cont)

WAP 2.0 (July 2001)
New for developers
XHTML
TCP with „Wireless Profile“
HTTP
New applications
Color graphics
Animation
Large file download
Location based services
Synchronization with PIMs
Pop-up/context sensitive menus
Goal: integration of WWW, Internet, WAP, i-mode

WAP 2.0 Architecture

WAP 2.0 Example Protocol Stacks

Java 2 Platform Micro Edition
„Java-Boom expected“ (?)
Desktop: over 90% standard PC architecture, Intel x86 compatible, typically MS Windows systems
Do really many people care about platform independent applications?
BUT: Heterogeneous, “small“ devices
Internet appliances, cellular phones, embedded control, car radios, ...
Technical necessities (temperature range, form factor, power consumption, …) and economic reasons result in different hardware
J2ME
Provides a uniform platform
Restricted functionality compared to standard java platform (JVM)

Applications of J2ME
Example cellular phones
NTT DoCoMo introduced iappli
Applications on PDA, mobile phone, ...
Game download, multimedia applications, encryption, system updates
Load additional functionality with a push on a button (and pay for it)!
Embedded control
Household devices, vehicles, surveillance systems, device control
System update is an important factor

Characteristics and Architecture
Java Virtual Machine
Virtual Hardware (Processor)
KVM (K Virtual Machine)
Min. 128 kByte, typ. 256 kByte
Optimized for low performance devices
Might be a co-processor
Configurations
Subset of standard Java libraries depending technical hardware parameters (memory, CPU)
CLDC (Connected Limited Device Configuration)
Basic libraries, input/output, security – describes Java support for mobile devices
Profiles
Interoperability of heterogeneous devices belonging to the same category
MIDP (Mobile Information Device Profile)
Defines interfaces for GUIs, HTTP, application support, …

Hardware Independent Development

Summary J2ME
Idea is more than WAP 1.x or i-mode
Full applications on mobile phones, not only a browser
Includes system updates, end-to-end encryption
Platform independent via virtualization
As long as certain common interfaces are used
Not valid for hardware specific functions
Limited functionality compared to JVM
Thus, maybe an intermediate solution only – until embedded systems, mobile phones are as powerful as today’s desktop systems