Unit 5 WAP WTA
Unit 5 WAP WTA
Outline
Mobile applications
How are mobile/wireless environments different?
What is WAP?
WAP Architecture
WAE (WML/WMLScript)
WTA Framework
WAP Push Services
WAP Protocol Stack
Hype v/s Reality
References and Resources
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
Disconnected operations
– file-system caching for off-line work
– mobile agents, e.g., shopping
Entertainment
– games, etc
Variability of the Mobile Environment
Mobility
• stationary
• nomadic (pedestrian speed)
• mobile (vehicular speed)
• roaming (mobile across networks)
Connectivity
• connected
Mobile Device Capability • semi-connected
• form factor (asymmetric)
• GUI • weakly connected
• multimedia • disconnected
• real-time multimedia
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 high-
resolution 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 (WAP)
wapforum.org:
– co-founded by Ericsson, Motorola, Nokia, Phone.com
– 450 members in 2000, comprise of Handset manufacturers, Wireless
service providers, ISPs, Software companies in the wireless industry
– Goals
• deliver Internet services to mobile devices
• enable applications to scale across a variety of transport options and
device types
• independence from wireless network standards
• GSM, CDMA IS-95, TDMA IS-136, 3G systems (UMTS, W-CDMA)
WAP: Main Features
Browser
– “Micro browser”, similar to existing web browsers
Markup language
– Similar to HTML, adapted to mobile devices
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
Internet Model
HTML
HTTP
TLS/SSL
TCP/IP
WAP Architecture
with WML-Script
WML Encoder CGI
WML Decks
WML- Scripts
WSP/WTP WMLScript
HTTP etc.
Script
Compiler
WTAI
Protocol Adapters Content
Etc.
with WML-Script
WML WML Encoder
WML Decks
Application
WML- WSP/WTP WMLScript Logic
Script Compiler
WTAI Protocol Adapters Content
Etc.
Another look
Key Components
• Origin/Web Server
• WAP Gateway/Proxy
• WAP Protocol Stack
• Micro Browser
• WML/WML Script
• Transcoders
• WTA
HTML WML
HTML
filter/ Binary WML
WAP
web HTML proxy
server
Source: Schiller
WAP Specifies
Lightweight SSL
Uses WIM/PKI-Cards
Goals
– device and network independent application environment
– for low-bandwidth, wireless devices
– considerations of slow links, limited memory, low computing power,
small display, simple user interface (compared to desktops)
– integrated Internet/WWW programming model
– high interoperability
WAE Components
Architecture
– Application model, Microbrowser, Gateway, Server
User Agents
– WML/WTA/Others
– content formats: vCard, vCalendar, Wireless Bitmap, WML, ...
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)
Proxy (Method/Push)
WAE: Logical Model
<WML>
...
</WML>
WML Example
<WML>
<CARD>
<DO TYPE=“ACCEPT”>
Navigatio <GO URL=“#eCard”/>
Card
</DO
n Welcome!
</CARD>
<CARD NAME=“eCard”>
<DO TYPE=“ACCEPT”>
Variables <GO URL=“/submit?N=$(N)&S=$(S)”/> Deck
</DO>
Enter name: <INPUT KEY=“N”/>
Choose speed:
<SELECT KEY=“S”>
Input <OPTION VALUE=“0”>Fast</OPTION>
Elements <OPTION VALUE=“1”>Slow</OPTION>
<SELECT>
</CARD>
</WML>
Handling User Input
Select lists
– Choose from a list of options
Input fields
– Enter a string of text or numbers
KEY variables
– Set by SELECT and INPUT elements
– How user input is passed to other cards and the application server
<CARD>
<DO TYPE="ACCEPT" LABEL="View"> Forecast
<GO URL="getcity.cgi?location=$city"/> 1 Berlin
</DO> 2 Rome
Forecast 3>New City
<SELECT KEY="city"> ____________
<OPTION VALUE="ber">Berlin</OPTION> Find
<OPTION VALUE="rom">Rome</OPTION>
<OPTION TITLE="Find" ONCLICK="find.cgi">New City</OPTION>
</SELECT>
</CARD>
Soc. Security:
<CARD> 287-33- _
<DO TYPE="ACCEPT"> ____________
<GO URL="?get=person" NUM
METHOD="POST" POSTDATA="userid=$ssn"/>
</DO> Soc. Security:
Soc Security:
<INPUT KEY="ssn" FORMAT="NNN\-NN\-NNNN"/> 287-33- 7629
</CARD> ____________
OK
<CARD>
<DO TYPE="ACCEPT">
<GO URL="#c2"/>
</DO>
Continue <IMG LOCALSRC="righthand"
ALT="forward..."/>
</CARD>
<CARD NAME="c2">
<IMG SRC="../images/logo.wbmp"
ALT="Unwired Planet"/>
<BR/>Welcome!
</CARD>
Complement to WML
– Derived from JavaScript™
Provides general scripting capabilities
– Procedural logic, loops, conditionals, etc.
– Optimized for small-memory, small-cpu devices
Features
– local user interaction, validity check of user input
– access to device facilities (phone call, address book etc.)
– extensions to the device software
• configure device, download new functionality after deployment
function myDay(sunShines) {
Variables var myDay;
if (sunShines) {
myDay = “Good”;
Programming } else {
Constructs myDay = “Not so good”;
};
return myDay;
}
Example
– calling a number (WML)
wtai://wp/mc;07216086415
– calling a number (WMLScript)
WTAPublic.makeCall("07216086415");
Implementation
– Extension of basic WAE application model
– Extensions added to standard WML/WMLScript browser
– Exposes additional API (WTAI)
WTA Features
Extension of basic WAE application model
– network model for interaction
• client requests to server
• event signaling: server can push content to the client
– event handling
• table indicating how to react on certain events from the network
• client may now be able to handle unknown events
– telephony functions
• some application on the client may access telephony functions
WTAI includes:
– Call control
– Network text messaging
– Phone book interface
– Event processing
Security model: segregation
– Separate WTA browser
– Separate WTA port
WTA Example (WML)
<WML>
<CARD>
<DO TYPE=“ACCEPT”>
WTAI Call <GO URL=“wtai:cc/mc;$(N)”/>
</DO>
Enter phone number:
Input Element
<INPUT TYPE=“TEXT” KEY=“N”/>
</CARD>
</WML>
function checkNumber(N) {
if (Lang.isInt(N))
WTAI Call WTAI.makeCall(N);
else
Dialog.alert(“Bad phone number”);
}
third party
firewall
origin servers
Source: Schiller
WTA Framework Components
Source: Heijden
WTA User Agent
Source: Heijden
WTA Interface (public)
WTA Interface
– generic, high-level interface to mobile’s telephony functions
– setting up phone calls, reading and writing entries in phonebook..
Public WTAI
– for third party WML content providers
– restricted set of telephony functions available to any WAE User Agent
– library functions
• make call: allows application to setup call to a valid tel number
• send DTMF tones: send DTMF tones through the setup call
– user notified to grant permission for service execution
– cannot be triggered by network events
– example: Yellow pages service with “make call” feature
WTA Interface (network)
Network Common WTAI
– WTA service provider is in operator’s domain
– all WTAI features are accessible, including the interface to WTA events
– library functions
• Voice-call control: setup call, accept, release, send DTMF tones
• Network text: send text, read text, remove text (SMS)
• Phonebook: write, read, remove phonebook entry
• Call logs: last dialed numbers, missed calls, received calls
• Miscellaneous: terminate WTA user agent, protect context
– user can give blanket permission to invoke a function
– example: Voice mail service
Source: Heijden
Event Handling (service already execution)
setup call
call indication setup call
accept call
accept call accept call
voice connection
Source: Schiller
WAP Push Services
Web push
– Scheduled pull by client (browser)
• example: Active Channels
– no real-time alerting/response
• example: stock quotes
Wireless push
– accomplished by using the network itself
• example: SMS
– limited to simple text, cannot be used as starting point for service
• example: if SMS contains news, user cannot request specific news
item
WAP push
– Network supported push of WML content
• example: Alerts or service indications
– Pre-caching of data (channels/resources)
WAP Push Framework
Source: Heijden
Push Access Protocol
WML
– analogous to HTML (optimized for wireless)
– event based, microbrowser user agent
WMLScript
– analogous to JavaScript
– features of compiler in the network
WTA
– WTAI: different access rights for different applications/agents
– WTA User Agent (analogy with operating systems)
• Context – Activation Record
• Channel – Interrupt Handler
• Resource – Shared routines invoked by interrupt handlers
• Repository – Library of interrupt handlers
– feature of dynamically pushing the interrupt handler before the event
Push
– no analogy in Internet
WAP Gateway Summary
Encoders
– translate between binary (WML) and text (HTML/WML)
Filters
– transcoding between WML (wireless) and HTML (wired)
Method Proxy
– similar to standard proxy services
– WAP stack on wireless interface and TCP/IP stack on Internet interface
Push Proxy
– Push Access Protocol with Internet Push Initiator (Web Server)
– Over the Air Protocol with mobile device (and WAP Push Initiator)
– Performs necessary filtering, translation etc.
WAP Servers Summary
Origin Server
– Web server with HTML/WML contents
– Runs TCP/IP stack, needs PAP protocol for push, no end-to-end
security
WAP Server
– Serves WML content
– Runs WAP stack, uses OTA protocol for push, end-to-end security
possible
WTA Server
– Specialized for telephony applications (runs WAP stack, uses push
extensively)
– Client initiated (make call “hyperlink” from a Yellow pages
service)
– Server intiated (incoming call from a Voice mail service)
WAP: Protocol Stack
WAE comprises WML (Wireless Markup Language), WML Script, WTAI etc.
Source: Schiller
WDP: Wireless Datagram Protocol
Goals
– create a worldwide interoperable transport system by adapting WDP to the
different underlying technologies
– transmission services, such as SMS in GSM might change, new services
can replace the old ones
WDP
– Transport layer protocol within the WAP architecture
– uses the Service Primitive
• T-UnitData.req .ind
– uses transport mechanisms of different bearer technologies
– offers a common interface for higher layer protocols
– allows for transparent communication despite different technologies
– addressing uses port numbers
– WDP over IP is UDP/IP
Service, Protocol, and Bearer Example
PPP PPP
WDP WDP
under development
Source: WAP Forum
WTLS:Wireless Transport Layer Security
Goals
– Provide mechanisms for secure transfer of content, for applications
needing privacy, identification, message integrity and non-repudiation
– Provide support for protection against denial-of-service attacks
WTLS
– is based on the TLS/SSL (Transport Layer Security) protocol
– optimized for low-bandwidth communication channels
– provides
• privacy (encryption)
• data integrity (MACs)
• authentication (public-key and symmetric)
– Employs special adapted mechanisms for wireless usage
• Long lived secure sessions
• Optimised handshake procedures
• Provides simple data reliability for operation over datagram bearers
WTLS Internal Architecture
Record Protocol
Record protocol
Bearer networks
Goals
– HTTP 1.1 functionality
• Request/reply, content type negotiation, ...
– support of client/server transactions, push technology
– key management, authentication, Internet security services
WSP Services
– provides shared state between client and server, optimizes content transfer
– session management (establish, release, suspend, resume)
– efficient capability negotiation
– content encoding
– push
WSP/B (Browsing)
– HTTP/1.1 functionality - but binary encoded
– exchange of session headers
– push and pull data transfer
– asynchronous requests
HTTP 1.1 and WSP
HTTP 1.1
– extensible request/reply methods
– extensible request/reply headers
– content typing
– composite objects
– asynchronous requests
WSP enhancements beyond HTTP
– binary header encoding
– session headers
– confirmed and non-confirmed data push
– capability negotiation
– suspend and resume
– fully asynchronous requests
– connectionless service
Why Not HTTP?
– encoding not compact enough, inefficient capability negotiation
– no push facility
WSP Overview
Header Encoding
– compact binary encoding of headers, content type identifiers and other
well-known textual or structured values
– reduces the data actually sent over the network
Capabilities (are defined for):
– message size, client and server
– protocol options: Confirmed Push Facility, Push Facility, Session Suspend
Facility, Acknowledgement headers
– maximum outstanding requests
– extended methods
– header code pages
Suspend and Resume
– server knows when client can accept a push
– multi-bearer devices
– dynamic addressing
– allows the release of underlying bearer resources
WSP Sessions
Connection-mode
– long-lived communication, benefits of the session state, reliability
Connectionless-mode
– stateless applications, no session creation overhead, no reliability
overhead
WSP/B session establishment
client server
S-SAP S-SAP
S-Connect.req
(SA, CA, CH, RC) S-Connect.ind
(SA, CA, CH, RC)
S-Connect.res
(SH, NC)
S-Connect.cnf
(SH, NC)
Source: Schiller
WSP/B session suspend/resume
client server
S-SAP S-SAP
S-Suspend.req S-Suspend.ind
S-Suspend.ind (R)
(R) WTP Class 0
transaction
R: Reason for disconnection
S-Resume.req
(SA, CA)
~ ~
S-Resume.ind
(SA, CA)
S-Resume.res
S-Resume.cnf
WTP Class 2
transaction
Source: Schiller
WSP/B session termination
client server
S-SAP S-SAP
S-Disconnect.req
(R) S-Disconnect.ind
S-Disconnect.ind (R)
(R) WTP Class 0
transaction
Source: Schiller
WAP Stack Summary
WDP
– functionality similar to UDP in IP networks
WTLS
– functionality similar to SSL/TLS (optimized for wireless)
WTP
– Class 0: analogous to UDP
– Class 1: analogous to TCP (without connection setup overheads)
– Class 2: analogous to RPC (optimized for wireless)
– features of “user acknowledgement”, “hold on”
WSP
– WSP/B: analogous to http 1.1 (add features of suspend/resume)
– method: analogous to RPC/RMI
– features of asynchronous invocations, push (confirmed/unconfirmed)
WAP: Ongoing Work
WDP
– Tunnel to support WAP where no (end-to-end) IP bearer available
WTLS
– support for end-to-end security (extending WTLS endpoint beyond WAP
Gateway)
– interoperable between WAP and Internet (public key infrastructure)
– integrating Smart Cards for security functions
WTP
– efficient transport over wireless links (wireless TCP)
– bearer selection/switching
– quality of service definitions
WSP
– quality of service parameters
– multicast data, multimedia support
WAE
– User agent profiles: personalize for device characteristics, preferences etc
– Push architecture, asynchronous applications
– Billing
WAP: Hype vs Reality
Challenges in WAP
– adapting to applications rich in content and interaction
– service guarantees
– interface design and usability
• Small screens: For web phones, there's an incredibly small viewing area;
palmtops are barely better.
• Speed of access: All devices have slow access.
• Limited or fragmented availability: Wireless web access is sporadic in
many areas and entirely unavailable in other areas.
• Price: Many technology limitations are being addressed by higher-end
devices and services. But the entry price for a good wireless web palmtop
with decent display, keyboard, and speed is easily $700 to $900, not
including monthly access.
• Lack of user habit: It takes some patience and overcoming the learning
curve to get the hang of it -- connecting, putting in an address, typing.
Users just aren't used to the idea and protocol yet.
•