450 likes | 815 Views
Wireless Application Protocol Overview. Jari Alvinen Nokia. Business challenge. There must be one global wireless network language and protocol stack Internet developers will only write to one global wireless Internet. carriers require multiple sources for compatible handsets.
E N D
Wireless Application ProtocolOverview Jari Alvinen Nokia
Business challenge • There must be one global wireless networklanguage and protocol stack • Internet developers will only write to one global wireless Internet. • carriers require multiple sources for compatible handsets. • handset vendors require common standards for economies of scale.
HTTP/HTML WAP <WML> <CARD> <DO TYPE="ACCEPT"> <GO URL="/submit?Name=$N"/> </DO> Enter name: <INPUT TYPE="TEXT" KEY="N"/> </CARD> </WML> 010011010011110110010011011011011101010010011010 Why is Internet not enough? … or actually ... "too much" ... • Big pipe - small pipe syndrome <HTML> <HEAD> <TITLE>NNN Interactive</TITLE> <META HTTP-EQUIV="Refresh" CONTENT="1800, URL=/index.html"> </HEAD> <BODY BGCOLOR="#FFFFFF" BACKGROUND="/images/9607/bgbar5.gif" LINK="#0A3990" ALINK="#FF0000" VLINK="#FF0000" TEXT="000000" ONLOAD="if(parent.frames.length!=0)top.location='http://nnn.com';"> <A NAME="#top"></A> <TABLE WIDTH=599 BORDER="0"> <TR ALIGN=LEFT> <TD WIDTH=117 VALIGN=TOP ALIGN=LEFT> Internet Content encoding <HTML> <HEAD> <TITLE>NNN Interactive</TITLE> <META HTTP-EQUIV="Refresh" CONTENT="1800, URL=/index.html"> Wireless network
Why is Internet not enough? … or actually … "too much" ... • Big screen - small screen syndrome ?
Why WAP? • WAP is an open technology based on Internet technologies • Allows competition - lower cost • WAP is backed by major vendors • Nokia, Ericsson, Motorola, Microsoft, IBM • Future proof • WAP Forum is open for all • WAP is not “take it or leave it” • Over one hundred companies have joined the WAP Forum • WAP supports several wireless systems • GSM, IS-136, CDMA, PDC etc. • WAP has a layered architecture • The same application can be used via several systems
CCL WAP Forum members
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 initated 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 )
Client Web Server WAP Gateway WML CGI Scripts etc. WML Encoder WML-Script WSP/WTP HTTP WML Decks with WML-Script WMLScript Compiler WTAI Protocol Adapters Content Etc. WAP Architecture
Wireless Session Layer (WSP) Wireless Transport Layer Security (WTLS) Internet and WAP architecture Internet Wireless Application Protocol Other Services and Applications HTML JavaScript™ Wireless ApplicationEnvironment (WAE) HTTP Wireless Transaction Protocol (WTP) TLS - SSL TCP/IP UDP/IP Wireless Datagram Protocol (WDP) Bearers: UDP PDC-P R-Data Packet Etc... SMS USSD CSD
WAP & Standards • Submit specifications for adoption by appropriate industry and standards bodies • Good relationships with standards bodies • Several Liaisons with ETSI • ETSI / WAP compliance profile for GSM and UMTS. • CTIA official Liaison Officer to the WAP Forum • WAP is actively working with the W3C and IETF
Wireless Session Service Access Point Wireless Session Protocol Wireless Transaction Service Access Point Wireless Transaction Protocol Transport Service Access Point (TSAP) Wireless Datagram Protocol Bearer Service D Bearer Service C WCMP Bearer Service B Bearer Service A Physical Layer Air Link Technology WAP Protocol Stack • Developed by • Wireless Protocols Group (WPG) • A WAP technical working group.
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 • Message oriented (not stream)
Client Server (PDUs) T-TRInvoke.req Invoke T-TRInvoke.ind Ack T-TRInvoke.cnf T-TRInvoke.res Result T-TRResult.req T-TRResult.ind Ack T-TRResult.cnf T-TRResult.res WAP Protocol Stack - WTP • WTP Protocol Exchange
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
WAP Protocol Stack - Bearer support • GSM SMS, USSD, C-S Data, GPRS • IS-136 R-Data, C-S Data, Packet • CDMA SMS, C-S Data • PDC C-S Data, Packet • PHS C-S Data • CDPD • iDEN SMS, C-S Data, Packet • FLEX and ReFLEX • DataTAC
WAP Proxy/Server Mobile WAE Apps on Other Servers WAE WSP WSP ISP/RAS IWF WTP WTP UDP UDP IP IP IP PPP PPP Subnetwork Subnetwork CSD-RF CSD-RF PSTN Circuit PSTN Circuit RAS - Remote Access Server IWF - InterWorking Function WAP Protocol Stack - Bearer Example • WAP over GSM Circuit Switched
WAP Protocol Stack - Bearer Example • WAP over GSM Short Message Service WAP Proxy/Server Mobile WAE WAE Apps on other servers WSP WSP SMSC WTP WTP WDP WDP SMS WDP Tunnel Protocol WDP Tunnel Protocol SMS Subnetwork Subnetwork under development
WAP Protocol Stack - WTLS • Specifies a framework for secure connections, using protocol elements from common Internet security protocols like SSL and TLS. • Provides connection security for two communicating applications • Privacy (encryption) • Data integrity (MACs) • Authentication (public-key and symmetric) • Lightweight and efficient protocol with respect to bandwidth, memory and processing power • Employs special adapted mechanisms for wireless usage • Long lived secure sessions • Optimised handshake procedures • Provides simple data reliability for operation over datagram bearers
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); • A WAP technical working group.
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
Client WAP Gateway WML CGI Scripts etc. WML Encoder WML-Script WMLScript Compiler WTAI Protocol Adapters Content Etc. WAE - WAP Gateway Web Server WSP/WTP HTTP WML Decks with WML-Script
Client WML WML Encoder WML-Script WMLScript Compiler WTAI Protocol Adapters Content Etc. WAE - WAP Application Server WAP Application Server Application Logic WSP/WTP 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 • Explicit inter-card navigation model • Hyperlinks • UI Event handling • History • State management and variables • Reduce network traffic • Results in better caching
Navigation Card Variables Input Elements WAE - WML <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> Deck
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 • Better use of terminal memory/cpu.
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
Functions Variables Programming Constructs WAE - WML Script WMLScript is very similar to JavaScript function currencyConvertor(currency, exchRate) { return currency*exchangeRate; } function myDay(sunShines) { var myDay; if (sunShines) { myDay = “Good”; } 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
WTAI Call Input Element 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 WAE - WTA • Placing an outgoing call with WTAI 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 • Service Indication ( Proposed ) • Service Loading ( Proposed ) • Cache Operation ( Proposed )
Image Element 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>
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 PROXYGATEWAY PUSHINITIATOR CLIENT OVER-THE-AIR PROTOCOL PUSH ACCESS 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! More information: www.wapforum.org