WAP & WML Digest Manish
Manish
Roadmap
Motivation WAP History Introduction to WAP WAP protocol stack Stack Components WML Future of WAP Related Technologies
Manish
Differing Views on Wireless Messaging
Just a “scaled down version” IP could be modified (Mobile IP) Retain web technologies Fundamentally Different Low processing and batter power Only a few lines of display “Not always on” WAP follows this school of thought
Manish
Motivation
Examples: Delays with Interactive Voice Response (IVR) 1-simple device rather than n-devices (palmtop, laptop…) SMS: billions of messages per month Mobile camera/printer example Virtual cash – coke machine example Flight Delay example Manish
Origin & Inspirations
Phone.com’s HDML browser and UP.Link server Nokia’s smart messaging The Internet : Browser as thin client! Carriers needed Value Added Services
Manish
How to think of WAP
Not Wireless Web Value added Service to cellular phones
Manish
WAP Goals
Force a single new box upon carriers (WAP Gateway) Minimal initial investment Minimal disruption to infrastructure Do not force IP on carriers (Own protocol suite) Provide security (“Walled Garden” Approach, WTLS) Integrate telephony support (WTA) Make content suitable for one handed devices (WML…)
Manish
WAP Introduction
Manish
WAP Forum
Established 1997 Aim is ‘to develop the de-facto world standard for wireless information and telephony services on digital mobile phones and other wireless terminals.’ Comprises of Network Operators, Network Infrastructure suppliers Mobile Device Suppliers, IT Companies Content Developers
Manish
What is WAP
WAP is both an architecture and set of specifications that provide: Wireless Application Environment (WAE) Protocol stack for WAE Transport Layer security Additional Specifications for Telephony, PUSH etc..
Manish
Abstract Network Architecture
WAP Abstract Network Architecture resembles Internet Browser Request-Response model
Manish
Questions ?
Manish
WAP Stack
Based on the Internet Protocol Stack
Manish
Application Environment (WAE)
W hat is W AE ? Top of the W AP stack exposed to user and developers Components:
Manish
WAP vs Internet
Mapping Internet protocols onto W AP
Manish
WAP: Deployment Models
WAP WSP Server WAP + Web Server WAP Proxy WAP + HTTP Client
Manish
Deployment Model: WSP Server
Manish
Deployment Model: WSP Proxy/Gateway
Manish
Abstract View
Manish
Questions ?
Manish
WAP Protocol Stack: Components
Manish
WDP
Web: UDP Replaced by UDP by carriers running Mobile IP Goals: To accommodate airlink addresses Addressing by port numbers Ports allocated in dynamic, private port space Defines separate ports for secure connections Problem: Too many ports, Ports not registered
Manish
WDP Example: WDP on SMS
Manish
WTLS: Transport Layer Security
Goals Reliable data transfer Support for certificates Comparison Web: Security at 2 levels: IPSec and TLS WAP: only one level (single point of contact?)
Manish
WTLS
Provides for compression and encryption No explicit connection setup/tear down (message oriented and not stream oriented) Reliable data transfer Reduce 3-way handshake
Manish
WTLS
Supports port number addressing Abort for outstanding requests User Acknowledgement or Stack acknowledgement Between client & proxy or WSP server Problem: Does not interoperate with TLS/SSL
Manish
Transactional Prococol: WTP
Goals Efficient request-reply based transport mechanism Inspiration T/TCP (Transactional TCP) 3-message models: Class 0: Unreliable invoke (no result) [ Current session ] Class 1: Reliable invoke (no result) [ PUSH ] Class2 : Reliable invoke with one confirmed result WTP Ack could include explicit user confirmation! Manish
WTP
Reliable data transfer No explicit connection setup Reduces 3-way handshake Supports: Retransmission, selective-retransmit, segmentation/reassembly, port number addressing, flow control Message oriented (not stream) Supports Abort
Manish
WTP Example
Manish
Session Protocol: WSP
Equivalent to HTTP Enhancements to HTTP 1.1 Compact encoding (WBXML) Support for PUSH Suspend and resume Asynchronous requests
Manish
WSP
Enhancements to HTTP 1.1
Connectionless service
Capability negotiation
Content-negotiation (content-type)
Header copy (for maintaining state across requests)
Multiple-transaction support (eg. file & image at same time?)
Manish
Application Environment: WAE
Goals: Network-neutral application environment Narrow-band suited Device independence Leverage on Internet technologies Enable telephony aware apps
Manish
WAE Application Components
Manish
WAE – Content Formats
WML & WMLScript WBXML Images: WBMP Business Cards: IMC vCard Calendar: IMC vCalendar
Manish
Questions ?
Manish
Binary XML: WBXML
Similar to zip/deflate in http Tokenized XML Zip form has structure Allows skipping fields, random access etc.. Allows for 31 tags per code page
Manish
Markup Language: WML
Web equivalent: XML/HTML Tag-based browsing language Screen management Data input Hyperlinks XML based language Inherits from HDML (Phone.com) and HTML
Manish
WML
WML Cards User interactions are split into cards Navigation between cards possible Card Navigation Hyperlinks, UI event handling History State Management Shared Variables Reduced network traffic Manish
WML
Syntax
paragraph
Linebreak
WML Tasks e.g.
, <prev>, , … Tokenized WML sent to client Implies content provider does not know the size About 1.5k maximum binary size
Manish
WML Deck
Deck = file.wml Must contain atleast one card Eg. <wml> … … Manish
WML Example
Manish
WAE: WMLSciprt
Overview: Scripting language like Java-script (ECMAScript) Integrated with WML Reduces overall network traffic Client side logic
Manish
WAE - WMLScript
In Practice: Bytecode-based virtual machine ROM-able Better use of bandwidth and terminal memory Provides loops etc., shares variables with decks
Manish
Questions ?
Manish
PUSH Framework
Goals : Reduce penalty of polling
PUSH Framework provides: Special control mechanisms for lifetime and removal
Similar to expires etc..
Security framework
Information Flow: PushInitiator -> Push Proxy Gateway -> WAP Client Manish
WAE: Telephony Services (WTA)
Telephony sepcific extensions Call control, logging etc. WTA Browser: Extensions added to WML/WMLScript browser e.g. “wtai://” url => Call placed Currently Data session terminates Cannot resume data session
Manish
WAE: User Agent Profile (UAPROF)
Permits devices to advertise capabilities to WAP proxies or WSP servers and Application servers Developed jointly with W3C
Manish
Related Technologies
RealNames : keyword based navigation voiceXML Palm.net Avantgo Model iMode (based on cHTML) SMS, (EMS, MMS) Mobile Platforms: Symbian, CE, Palm
Manish
WAP Future
WAP 2.0 expected this year Move to XHTML basic Unclear whether WML will be discarded Short term solution until better processing capabilities Convergence with iMode expected Interaction with voiceXML Long term: Multi-modal support expected (bluetooth, wap etc.)
Manish
Questions ?
Manish
Related Technologies: SMS
Simple Messaging System Originally developed with GSM Transmitted on Signalling Channel Limit on number of characters ( 160? ) MAP protocol limitation Cheap Used for Messaging SIM activation/configuration Dial tone download Manish