Sie sind auf Seite 1von 37

Mobile Applications

Cellular Networks
Email/Web/Location services Intranet application access Wireless application protocol

Wireless LANs
Client-Server adaptations Disconnected operations

Ad-hoc Networks
Vehicular applications Emergencies

Data broadcasting Mobile agents

Variability of the Mobile Environment

Mobility
stationary

nomadic (pedestrian speed) mobile (vehicular speed) roaming (mobile across networks)

Connectivity Mobile Device Capability


form connected

factor Windows based GUI multimedia real-time multimedia

semi-connected (asymmetric) weakly connected disconnected

Source: Helal

Mobile Applications - 1
Vehicles
transmission of news, road condition etc ad-hoc network with near vehicles to prevent accidents

Emergencies
early transmission of patient data to the hospital ad-hoc network in case of earthquakes, cyclones military ...

Traveling salesmen
direct access to central customer files consistent databases for all agents mobile office

Mobile Applications - 2
Web access
outdoor Internet access intelligent travel guide with up-to-date location dependent information

Information services
push: stock quotes; pull: nearest cash ATM find nearest printer (Jini services)

Disconnected operations
file-system caching for off-line work mobile agents, e.g., shopping

Entertainment
ad-hoc networks for multi user games

World Wide Web and Mobility


HTTP/HTML have not been designed for mobile applications/devices

HTTP 1.0 characteristics


designed for large bandwidth, low delay stateless, client/server, request/response communication connection oriented, one connection per request TCP 3-way handshake, DNS lookup overheads big protocol headers, uncompressed content transfer primitive caching (often disabled, dynamic objects) security problems (using SSL/TLS with proxies)

HTML characteristics
designed for computers with high performance, color highresolution display, mouse, hard disk typically, web pages optimized for design, not for communication; ignore end-system characteristics

System Support for Mobile WWW


Enhanced browsers
client-aware support for mobility

Proxies
Client proxy: pre-fetching, caching, off-line use Network proxy: adaptive content transformation for connections Client and network proxy

Enhanced servers
server-aware support for mobility serve the content in multiple ways, depending on client capabilities

New protocols/languages
WAP/WML

Wireless Application Protocol


wapforum.org: co-founded by Ericsson, Motorola, Nokia, Phone.com Goals
deliver Internet services to mobile devices independence from wireless network standards GSM, CDMA IS-95, TDMA IS-136, 3G systems (UMTS, W-CDMA)

Browser
Micro browser, similar to existing web browsers

Script language
Similar to Javascript, adapted to mobile devices

Gateway
Transition from wireless to wired world

Server
Wap/Origin server, similar to existing web servers

Protocol layers
Transport layer, security layer, session layer etc.

Telephony application interface


Access to telephony functions

WAP: Reference model and protocols


Internet HTML, Java A-SAP WAP additional services and applications Application Layer (WAE) S-SAP

Session Layer (WSP)


HTTP TR-SAP Transaction Layer (WTP) SEC-SAP SSL/TLS T-SAP TCP/IP, UDP/IP, media Transport Layer (WDP) WCMP Security Layer (WTLS)

Bearers (GSM, CDPD, ...)

WAE comprises WML (Wireless Markup Language), WML Script, WTAI etc.

Source: Schiller

WAP: Stack Overview


WDP (Wireless Datagram Protocol):
Provides transport layer functions Based on ideas from UDP

WTLS (Wireless Transport Layer Security):


Provides data integrity, privacy, authentication functions Based on ideas from TLS/SSL

WTP (Wireless Transaction Protocol):


Provides reliable message transfer mechanisms Based on ideas from TCP

WSP (Wireless Session Protocol):


Provides HTTP 1.1 functionality Supports session management, security, etc.

WAE (Wireless Application Environment):


Architecture: application model, browser, gateway, server WML: XML-Syntax, based on card stacks, variables, ... WTA: telephone services, such as call control, phone book etc.

Content encoding, optimized for low-bandwidth channels, simple devices

WAP: Network elements


fixed network HTML filter WML HTML filter/ WAP proxy Binary WML WML WAP proxy wireless network Binary WML

Internet

HTML

web server

HTML

WTA server PSTN

Binary WML

Binary WML: binary file format for clients

Source: Schiller

WAE: Logical model


Origin Servers response with content Gateway encoded response with content Client WTA user agent

web server

other content server

encoders & decoders

push content

encoded push content

WML user agent

request

encoded request

other WAE user agents

Source: Schiller

Wireless Markup Language (WML)


Cards and Decks
Document consists of many cards, cards are grouped to decks Deck is similar to HTML page, unit of content transmission WML describes only intent of interaction in an abstract manner Presentation depends on device capabilities text and images user interaction navigation context management

Features

WMLScript
Provides general scripting capabilities Validity check of user input, local user interaction Access to device facilities (phone call, address book etc.)

WML: Example
<WML> <CARD> <DO TYPE="ACCEPT"> <GO URL="#card_two"/> </DO> This is a simple first card! On the next you can choose ... </CARD> <CARD NAME="card_two"> ... your favorite pizza: <SELECT KEY="PIZZA"> <OPTION VALUE=M>Margherita</OPTION> <OPTION VALUE=F>Funghi</OPTION> <OPTION VALUE=V>Vulcano</OPTION> </SELECT> </CARD> </WML>
Source: Schiller

Application Adaptations for Mobility


System-transparent, application-transparent
the conventional, unaware client/server model

System-aware, application-transparent
the client/proxy/server model the disconnected operation model

System-transparent, application-aware
dynamic client/server model data broadcasting/caching

System-aware, application-aware
the mobile agent model

The Client/Proxy/Server Model


Proxy functions as a client to the fixed network server Proxy functions as a mobility-aware server to mobile client Proxy may be placed in the mobile host (Coda), or the fixed network, or both (WebExpress) Enables thin client design:
Resource-poor mobile computers Application resides on the server Keyboard and mouse inputs sent from client to server Display outputs sent from server to client

Web Proxy in WebExpress

The WebExpress Intercept Model


Source: Helal

Disconnected Operations: File Systems


Goals
Efficient/transparent access to shared files within a mobile environment Support for disconnected operations while maintaining data consistency Standard file systems (e.g., NFS) are very inefficient, almost unusable

Approaches
Replication of data (copying, cloning, caching) Getting data in advance (hoarding, pre-fetching)

Main problem: consistency


Typical mechanisms: strong consistency (via atomic updates) Invalidation of caches through a server Cannot be used in mobile environments Mobile computer may not be connected to network

One solution: weak consistency


Tolerate occasional inconsistencies Apply conflict resolution strategies subsequently Use version numbering, time-stamps (content independent) Use dependency graphs (content dependent)

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 hoarding

Consistency
system keeps record of changes; compares files upon reconnection if different users have changed the same file, manual reintegration of the file into the system is necessary optimistic approach, coarse grained (file size)

mobile client application cache server

Source: Schiller

File Systems - Coda


Hoarding
user can pre-determine a file list with priorities contents of the cache determined by the list and LRU strategy explicit pre-fetching possible periodic updating

States of a client
hoarding weak connection write disconnected

strong connection

disconnection

Consistency
asynchronous, background comparison of files system weighs speed of updating against minimization of network traffic
connection

disconnection emulating

Cache misses
function of file size and bandwidth modeling of user patience: how long can a user wait for data without an error message?
Source: Schiller

Mobile Data Management


Maximize query capacity of servers, minimize energy/query at client
asymmetric links (high b/w from server to client; low b/w from client to server)!

Pull data delivery: clients demand, servers respond


clients request (validate) data by sending uplink messages to server

Push data delivery: servers broadcast data, clients listen


servers push data (and validation reports) through a broadcast channel,to a community of clients data are selected based on profiles and registration in each cell client energy is saved by needing receive mode only scales to any number of clients

Push and Pull data dissemination: Sharing the channel


Selective Broadcast: Servers broadcast "hot" information only On-demand Broadcast: Servers choose the next item based on requests

Organization of Broadcast Data


Flat: cyclically broadcast the union of the requested data A B C

Skewed (Random):
broadcast different items with different frequencies goal is that the inter-arrival time between two instances of the same item matches the clients' needs

A A B C

Broadcast Disks

Disk1 Disk2

A B

A B A C

Periodic broadcast of one or more disks using a broadcast channel Disks can of different sizes and can be broadcast at different speed Frequency of broadcasting each item depends on its access probability Disk speed can be changed based on client access pattern
Source: Helal

Indexing on Air
inx
inx

inx

inx

inx
inx

inx

inx

inx

inx

Server dynamically adjusts broadcast hotspot Clients read the index, enters into doze mode, and then perform selective tuning
Query Time: time taken from point a client issues a query until answer is received Listening Time: time spent by client listening to the channel
Source: Helal

Client Caching in Broadcasting


Data are cached at clients to improve access time Lessen dependency on the server's choice of broadcast priority Traditionally, clients cache "hottest" data to improve hit ratio Cache data based on PIX:
Probability of access (P)/Broadcast frequency (X).

Cache data replacement


cost-based is not practical requires perfect knowledge of access probabilities comparison of PIX values with all resident pages

Alternative: LIX, LRU with broadcast frequency


pages are placed on lists based on their frequency (X) lists are ordered based on L, the running avg. of interaccess times page with lowest LIX = L/X is replaced

Client Cache Invalidation


Why?
Value of data may have changed since caching by client

When?
Synchronous: send invalidation reports periodically Asynchronous: send invalidation information for an item, as soon as its value changes

To whom?
Stateful server: to affected clients Stateless server: broadcast to everyone

What to send?
invalidation: only which items were updated propagation: the values of updated items are sent aggregated information/ materialized views

Another issue
Commit of transactions involving read and write by clients

The Mobile Agent Model

Mobile agent receives client request and Mobile agent moves into fixed network Mobile agent acts as a client to the server Mobile agent performs transformations and filtering Mobile agent returns back to mobile platform, when the client is connected

Mobile Code
Definition:
Capability to dynamically change the bindings between code fragments and the location where they are executed

Approaches: (Not a totally new concept)


Remote batch job submission & use of PostScript to control printers Distributed OS led to more structured approach Process Migration Object Migration (Mobile Objects) Mobile Code Systems (Mobile Agents)

Process Migration
Transfer of OS process from one m/c to other Migration mechanisms handle bindings between
process and execution environment (e.g. open fds, env variables)

Provide for load balancing Most of these facilities provide transparent process migration Other like Locus provide for some control
like external signal or migrate( ) system call

Object Migration
Makes possible to move objects among address spaces
finer grained mobility with respect to processes e..g Emerald system : Different granularity levels - small to complex objects does not provide complete transparency COOL (oo extension of Chorus OS) allows total transparent migration

Process and Object migration address issues when


code and state are moved among hosts of loosely coupled, small scale distributed systems insufficient when applied to large scale settings

Mobile Code Systems


Code mobility is exploited on Internet Scale
Large scale, heterogeneous hosts, technologies Strong v/s weak mobility

Mobility is location aware


Programming language provides mechanisms and abstractions that enable shipping/ fetching of code to/from nodes Underlying run-time supports marshalling, code, check in , security etc no knowledge of migration policies

Applications
Not just for load balancing E-commerce, distributed information retrieval, workflow

Mobile Code Systems: Design


Several Paradigms:
Client Server Remote Evaluation Code on Demand Mobile Agent

Example:
Two friends Sita and Gita interact to make a cake (results of service) recipe is needed (know-how about service) also ingredients (movable resources) oven to bake (hard to move resource) a person to mix ingredients as per recipe (computational component responsible for execution of code) prepare the cake (execute the service) where the cake is prepared (site of execution)

Client-Server: CS
Sita would like to have chocolate cake:
she does not know the recipe she does not have the required ingredients nor an oven

Sita knows that Gita (who likes baking cakes)


knows the recipe has a well supplied kitchen

Sita calls Gita asking:


Can you make me a chocolate cake please?

Gita makes the cake and delivers it back to Sita

Remote Evaluation: REV


Sita would like to have chocolate cake:
she knows the recipe she does not have the required ingredients nor an oven

Sita knows that Gita (who likes baking cakes)


has a well supplied kitchen does not know the recipe

Sita calls Gita asking:


Can you make me a chocolate cake please? Here is the recipe

Gita makes the cake and delivers it back to Sita

Code on Demand : COD


Sita would like to have chocolate cake:
she has the required ingredients and an oven she does not know the recipe

Sita knows that Gita


knows the recipe (and is willing to share it)

Sita calls Gita asking:


Can you tell me the recipe for making chocolate cake please?

Gita tells her the recipe and Sita makes the cake

Mobile Agent: MA
Sita would like to have chocolate cake:
she has the recipe and the required ingredients she does not have an oven

Sita knows that Gita


has an oven (and is willing to share it)

Sita could
prepare the batter go to Gitas place bake the cake

Several other variations are also possible

Mobile Agents: Example

Mobile Applications in Industry


Wireless access: phone.com Alerting services: myalert.com Location services: airflash.com Intranet applications: imedeon.com Banking services: macalla.com Mobile agents: tryllian.com .

wapforum.org palowireless.com

Das könnte Ihnen auch gefallen