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
WML WMLScript WTAI Etc.

WAP Gateway
WML Encoder

Web Server
HTTP
CGI Scripts etc. WML Decks with WML-Script

WSP/WTP

WMLScript Compiler Protocol Adapters

Content

Internet and WAP architecture
Internet HTML JavaScript™ HTTP
Wireless Application Protocol Wireless Application Environment (WAE) Other Services and Applications

Wireless Session Layer (WSP) Wireless Transaction Protocol (WTP)

TLS - SSL TCP/IP UDP/IP

Wireless Transport Layer Security (WTLS) Wireless Datagram Protocol (WDP)
Bearers:
SMS USSD CSD R-Data Packet UDP PDC-P Etc...

WAP Protocol Stack
Wireless Session Service Access Point

Developed by  Wireless Protocols Group (WPG)  A WAP technical working group.

Wireless Session Protocol
Wireless Transaction Service Access Point

Wireless Transaction Protocol
Transport Service Access Point (TSAP)

Wireless Datagram Protocol
Bearer Bearer Bearer Service Service Bearer Service D C Service B A
Physical Layer Air Link Technology

WCMP

WAP Protocols

Wireless Application Environment (WAE) Session Layer (WSP) Transaction Layer (WTP) Security Layer (WTLS) Transport Layer (WDP)
Circuit Switched Data

Other Services and Applications

SMS

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
Mobile
WAE WSP WTP WTLS WDP Non-IP bearer (e.g. SMS) Non-IP bearer (e.g. SMS) WDP Adaptation TCP IP

WAP Proxy/Server
WAE WSP

Message Center

WTP WTLS WDP WDP Adaptation TCP 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.ind T-TRInvoke.res T-TRResult.req T-TRResult.cnf

T-TRInvoke.req

Invoke Ack Result

T-TRInvoke.cnf T-TRResult.ind T-TRResult.res

Ack

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
WML WMLScript WTAI Etc.

WAP Gateway
WML Encoder

Web Server
HTTP
CGI Scripts etc. WML Decks with WML-Script

WSP/WTP

WMLScript Compiler Protocol Adapters

Content

WAE - WAP Application Server

Client
WML WMLScript WTAI Etc.

WAP Application Server
WML Encoder

WSP/WTP

WMLScript Compiler Protocol Adapters

Application Logic

Content

WML Decks with WML-Script

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 Hyperlinks UI Event handling History Reduce network traffic Results in better caching

Explicit inter-card navigation model
  

State management and variables
 

WAE - WML
Navigation
<WML> <CARD> <DO TYPE=“ACCEPT”> <GO URL=“#eCard”/> </DO Welcome! </CARD> <CARD NAME=“eCard”> <DO TYPE=“ACCEPT”> <GO URL=“/submit?N=$(N)&S=$(S)”/> </DO> Enter name: <INPUT KEY=“N”/> Choose speed: <SELECT KEY=“S”> <OPTION VALUE=“0”>Fast</OPTION> <OPTION VALUE=“1”>Slow</OPTION> <SELECT> </CARD> </WML>

Card

Variables

Deck

Input Elements

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™
Functions
function currencyConvertor(currency, exchRate) { return currency*exchangeRate; } function myDay(sunShines) { var myDay; if (sunShines) { myDay = “Good”; } else { myDay = “Not so good”; }; return myDay; }

Variables Programming Constructs

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”> <GO URL=“wtai:cc/mc;$(N)”/> </DO> Enter phone number: <INPUT TYPE=“TEXT” KEY=“N”/> </CARD> </WML>

WTAI Call Input Element

WAE - WTA
Placing an outgoing call with WTAI

WTAI Call

function checkNumber(N) { if (Lang.isInt(N)) 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” ALT=“[Globe]” /> </CARD> </WML>

Image Element

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 GATEWAY PUSH INITIATOR

CLIENT

OVER-THE-AIR PROTOCOL PPG SERVICES

PUSH ACCESS PROTOCOL

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!

Sign up to vote on this title
UsefulNot useful