You are on page 1of 37

WAP

• Wireless Application Protocol


Why is Internet not enough?
… or actually … "too much" ...
Big screen - small screen syndrome

?
What can be done with WAP?

Information services
Similar to web browsing
Small downloadable programs
WAP script language is based on
JavaScript™
Telephony functionality combined with
browser
Call the airline when your flight is delayed
Push
Server initiated content push
What is defined in WAP?
Layered telecommunication stack including
Datagrams and Transactions
Security
Session
Micro browser
Concept that is similar to the Internet
browsing
XML based markup language ( WML )
Scripting ( WMLS )
WTA / WTAI
Access to telephone functionality
Content formats e.g.
Service Indication
Wireless Bitmap ( WBMP )
WAP Architecture

Client Web Server


WAP Gateway
WML

with WML-Script
WML Encoder CGI

WML Decks
WML- Scripts
WSP/WTP WMLScript HTTP etc.
Script
Compiler
WTAI
Protocol Adapters Content
Etc.
Internet and WAP architecture
Internet Wireless Application Protocol

HTML Wireless Application Other Services and


JavaScript™ Environment (WAE) Applications

Wireless Session Layer (WSP)


HTTP
Wireless Transaction Protocol (WTP)

TLS - SSL Wireless Transport Layer Security (WTLS)

TCP/IP Wireless Datagram Protocol (WDP)


UDP/IP
Bearers:
SMS USSD CSD R-Data Packet UDP PDC-P Etc...
WAP Protocol Stack
Wireless Session Service Access Point

Developed by Wireless Session Protocol

 Wireless Protocols Wireless Transaction Service Access Point

Group (WPG)
 A WAP technical
Wireless Transaction Protocol

working group. Transport Service Access Point (TSAP)

Wireless Datagram Protocol


WCMP
Bearer Bearer
Bearer Service Service
Bearer Service C D
Service B
A
Physical Layer Air Link Technology
WAP Protocols

Wireless Application Other Services and


Environment (WAE) Applications

Session Layer (WSP)

Transaction Layer (WTP)

Security Layer (WTLS)

Transport Layer (WDP)

Circuit Switched
SMS Data USSD GPRS CDPD Flex Etc..
Wireless Datagram Protocol
Provides a network and bearer independent
interface to higher layers
Provides port level addressing
Provides segmentation and reassembly
For link layers that support IP, UDP is used as the
Wireless Datagram Protocol layer
Wireless Transaction Protocol

Provides efficient, reliable data transfer based on


request/reply paradigm
Supports selective-retransmission
Supports segmentation and re-assembly
Message oriented (not stream)
Supports an Abort function
Supports concatenation of PDUs
Wireless Session Protocol

Provides shared state between client and


server used to optimize content transfer
Provides semantics and mechanisms based on
HTTP 1.1
Supports compact encoding of headers
Supports push functionality
Supports capability negotiation
Standard Message Center
Adaptation Protocol
WAP
Mobile Proxy/Server

WAE WAE

WSP WSP

WTP Message WTP


Center
WTLS WTLS

WDP WDP

Non-IP bearer Non-IP bearer WDP Adaptation WDP Adaptation


(e.g. SMS) (e.g. SMS)
TCP TCP

IP IP
WDP Adaptation utilises SMPP,
industry standard for Message
Center access
WAP Protocol Stack - WSP

Provides shared state between client and


server used to optimize content transfer
Provides semantics and mechanisms based on
HTTP 1.1
Enhancements for WAE, wireless networks and
“low-end” devices
Enhancements beyond HTTP
 Binary header encoding

 Confirmed and non-confirmed data push

 Capability negotiation

 Suspend and resume

 Connectionless service
WAP Protocol Stack - WSP

Binary 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
 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 & Resume


 Allows the release of underlying bearer resources
WAP Protocol Stack - WSP
Connection & Connectionless service
 Connection-mode

 Long-lived communication
 Benefits of the session state
 Reliability

 Connectionless
 Stateless applications
 No session creation overhead
 No reliability overhead
WAP Protocol Stack - WTP

Reliable data transfer based on


request/reply paradigm
 No explicit connection setup or tear down
 Data carried in first packet of protocol
exchange
 Seeks to reduce 3-way handshake on initial
request
 Supports
 retransmission of lost packets
 selective-retransmission
 segmentation / re-assembly
 port number addressing (UDP ports numbers)
 flow control
 abort function for outstanding requests
 concatenation of PDUs
WAP Protocol Stack - WTP

WTP Protocol Exchange


Client (PDUs) Server
T-TRInvoke.req
Invoke T-TRInvoke.ind

Ack
T-TRInvoke.cnf T-TRInvoke.res
Result
T-TRResult.req
T-TRResult.ind
T-TRResult.res Ack T-TRResult.cnf
WAP Protocol Stack - WDP

WDP provides a connection-less, unreliable


datagram service
WDP is adapted to each particular wireless
network to provide the generic datagram
transport.
The basic datagram service is fundamental to
all wireless networks and makes it possible to
utilize WAP everywhere
Replaced by UDP when used over an IP
network layer.
 WDP over IP is UDP/IP

Uses the Service Primitive


 T-UnitData.req .ind
Wireless Application Environment
( WAE )

WAP Application framework


 Network-neutral application environment;

 Suitable for narrowband wireless devices;

 Follows the Internet/WWW programming

model;
 Ensures high degree of interoperability.

 Leverages Internet standard technology

 Device Independent

 Network Independent

 International Support

Developed by
 Wireless Applications Group (WAG);
WAE "Components"

WML
 Display language

WMLScript
 Scripting language

WTA
 Telephony services API and architecture

Content Formats
 Data exchange

User Agent Profiling


 Content customized for device

Push
 Server-initiated content delivery
WAE - WAP Gateway

Client Web Server


WAP Gateway
WML

with WML-Script
WML Encoder CGI

WML Decks
WML- Scripts
WSP/WTP WMLScript
HTTP etc.
Script
Compiler
WTAI
Protocol Adapters Content
Etc.
WAE - WAP Application Server

Client WAP Application Server


WML

with WML-Script
WML Encoder
Application

WML Decks
WML- WMLScript Logic
WSP/WTP
Script Compiler
WTAI Protocol Adapters Content
Etc.
WAE - WML

Wireless Markup Language (WML)


is a Tag-based browsing language:
 Screen management (text, images)
 Data input (text, selection lists, etc.)
 Hyperlinks & navigation support
W3C XML-based language
WAE - WML

Card metaphor
 User interactions are split into cards
 Navigation occurs between cards
Explicit inter-card navigation model
 Hyperlinks
 UI Event handling
 History
State management and variables
 Reduce network traffic
 Results in better caching
WAE - WML
<WML>
<CARD>
<DO TYPE=“ACCEPT”>
Navigation <GO URL=“#eCard”/>
Card
</DO
Welcome!
</CARD>
<CARD NAME=“eCard”>
<DO TYPE=“ACCEPT”>
Variables <GO Deck
URL=“/submit?N=$(N)&S=$(S)”/>
</DO>
Enter name: <INPUT KEY=“N”/>
Choose speed:
Input <SELECT KEY=“S”>
Elements <OPTION VALUE=“0”>Fast</OPTION>
<OPTION VALUE=“1”>Slow</OPTION>
<SELECT>
</CARD>
</WML>
WAE - WML Script
Scripting language:
 Procedural logic, loops, conditionals, etc.

 Optimized for small-memory, small-cpu

devices
Derived from JavaScript™
Integrated with WML
 Powerful extension mechanism

 Reduces overall network traffic

Bytecode-based virtual machine


 Stack-oriented design

 Designed for simple, low-impact

implementation
Compiler in network
 Better network bandwidth use
WAE - WML Script

Reduces network round-trips and


enhance functionality.
Example usages
 Field validation
 Check for formatting, input ranges, etc.
 Device extensions
 Access device or vendor-specific API
 Conditional logic
 Download intelligence into the device
WAE - WML Script

WMLScript is very similar to JavaScript


function currencyConvertor(currency, exchRate)
Functions {
return currency*exchangeRate;
}
Variables function myDay(sunShines) {
var myDay;
if (sunShines) {
Programming myDay = “Good”;
Constructs } else {
myDay = “Not so good”;
};
return myDay;
}
WAE - WTA

WTA Browser
 Extensions added to standard

WML/WMLScript browser
 Exposes additional API (WTAI)

WTAI includes:
 Call control

 Network text messaging

 Phone book interface

 Indicator control

 Event processing

WTAI available in WML & WMLScript


WAE - WTA

Placing an outgoing call with WTAI

<WML>
<CARD>
<DO TYPE=“ACCEPT”>
WTAI Call <GO URL=“wtai:cc/mc;$(N)”/>
</DO>
Input Element Enter phone number:
<INPUT TYPE=“TEXT” KEY=“N”/>
</CARD>
</WML>
WAE - WTA

Placing an outgoing call with WTAI

function checkNumber(N) {
if (Lang.isInt(N))
WTAI Call WTAI.makeCall(N);
else
Dialog.alert(“Bad phone number”);
}
WAE - Content Formats

Common interchange formats


Promoting interoperability
Formats:
 Business cards: IMC vCard standard

 Calendar: IMC vCalendar standard

 Images: WBMP (Wireless BitMaP)

 Compiled WML, WMLScript


WAE - Content Formats

Binary format for size reduction


 Bytecodes/tokens for common values and operators

 Compressed headers

 Data compression (e.g. images)

Example use of image


<WML>
<CARD>
Hello World!<BR/>
<IMG SRC=“/world.wbmp”
Image Element
ALT=“[Globe]” />
</CARD>
</WML>
WAE - Push

Server initiated content push


Provides end-to-end solution
Easy for developers
 XML based Push Access Protocol layered on

top of HTTP
 Helpful push specific content types

 Service Indication
 Service Loading
 Underlying wireless network complexity

hidden
Push Specifications are currently on Proposed
status
WAE - Push Framework

PUSH PROXY PUSH


CLIENT
GATEWAY INITIATOR

OVER-THE-AIR PUSH ACCESS

PROTOCOL PROTOCOL
PPG SERVICES

PUSH MESSAGE
WAE - User Agent Profile
(UAPROF)

Assist in content personalization, based upon:


 Device characteristics, user preferences

 Other profile information

Working with W3C on CC/PP


 RDF-based content format

 Describes “capability and profile” info

Efficient transport over wireless links, caching,


etc.
UAProf specification is currently on Proposed
status
Thank you!

You might also like