97
Wireless Application Protocol Sridhar Iyer KR School of Information Technology IIT Bombay http://www.it.iitb.ernet.in/~sri Jan 2001

wap01

Embed Size (px)

DESCRIPTION

PPT slides

Citation preview

  • Wireless Application ProtocolSridhar IyerKR School of Information TechnologyIIT Bombayhttp://www.it.iitb.ernet.in/~sri

    Jan 2001

  • OutlineMobile applicationsHow are mobile/wireless environments different?What is WAP?WAP ArchitectureWAE (WML/WMLScript)WTA FrameworkWAP Push ServicesWAP Protocol StackHype v/s RealityReferences and Resources

  • Mobile Applications - 1Vehiclestransmission of news, road condition etcad-hoc network with near vehicles to prevent accidents

    Emergenciesearly transmission of patient data to the hospitalad-hoc network in case of earthquakes, cyclonesmilitary ...

    Traveling salesmendirect access to central customer filesconsistent databases for all agentsmobile office

  • Mobile Applications - 2Web accessoutdoor Internet access intelligent travel guide with up-to-date location dependent information

    Information servicespush: stock quotes; pull: nearest cash ATM

    Disconnected operationsfile-system caching for off-line workmobile agents, e.g., shopping

    Entertainmentgames, etc

  • Variability of the Mobile EnvironmentConnectivity connected semi-connected (asymmetric) weakly connected disconnectedMobile Device Capability form factor GUI multimedia real-time multimedia

    Mobility stationary nomadic (pedestrian speed) mobile (vehicular speed) roaming (mobile across networks)

  • World Wide Web and MobilityHTTP/HTML have not been designed for mobile applications/devicesHTTP 1.0 characteristicsdesigned for large bandwidth, low delaystateless, client/server, request/response communicationconnection oriented, one connection per requestTCP 3-way handshake, DNS lookup overheadsbig protocol headers, uncompressed content transferprimitive caching (often disabled, dynamic objects)security problems (using SSL/TLS with proxies)HTML characteristicsdesigned for computers with high performance, color high-resolution display, mouse, hard disktypically, web pages optimized for design, not for communication; ignore end-system characteristics

  • System Support for Mobile WWWEnhanced browsersclient-aware support for mobility

    ProxiesClient proxy: pre-fetching, caching, off-line useNetwork proxy: adaptive content transformation for connections Client and network proxy

    Enhanced serversserver-aware support for mobilityserve the content in multiple ways, depending on client capabilities

    New protocols/languagesWAP/WML

  • Wireless Application Protocol (WAP)Empowers mobile users with wireless devices to easily access and interact with information and services.A standard created by wireless and Internet companies to enable Internet access from a cellular phone

    wapforum.org: co-founded by Ericsson, Motorola, Nokia, Phone.com450 members in 2000, comprise of Handset manufacturers, Wireless service providers, ISPs, Software companies in the wireless industryGoalsdeliver Internet services to mobile devicesenable applications to scale across a variety of transport options and device typesindependence from wireless network standardsGSM, CDMA IS-95, TDMA IS-136, 3G systems (UMTS, W-CDMA)

  • WAP: Main FeaturesBrowserMicro browser, similar to existing web browsersMarkup languageSimilar to HTML, adapted to mobile devices Script languageSimilar to Javascript, adapted to mobile devices GatewayTransition from wireless to wired worldServerWap/Origin server, similar to existing web serversProtocol layersTransport layer, security layer, session layer etc.Telephony application interfaceAccess to telephony functions

  • Internet Model

  • WAP ArchitectureSource: WAP Forum

  • WAP Application ServerWAP Application ServerApplicationLogicWML Deckswith WML-ScriptWSP/WTPSource: WAP Forum

  • WAP ArchitectureAnother lookSource: WAP Forum

  • WAP: Network Elementswireless networkfixed networkWAPproxyWTAserverfilter/WAPproxywebserverfilterPSTNInternetBinary WML: binary file format for clientsBinary WMLBinary WMLBinary WMLHTMLHTMLHTMLWMLWMLHTMLSource: Schiller

  • WAP SpecifiesWireless Application Environment

    WML MicrobrowserWMLScript Virtual MachineWMLScript Standard LibraryWireless Telephony Application Interface (WTAI)WAP content types

    Wireless Protocol Stack

    Wireless Session Protocol (WSP)Wireless Transport Layer Security (WTLS)Wireless Transaction Protocol (WTP)Wireless Datagram Protocol (WDP)Wireless network interface definitions

  • WAP StackMicroBrowser (WML, WMLScript, WTA, WTAI)Runs on top of WDPProvided lightweight X-oriented service Unreliable 1-way request Reliable 1-way/2-way req./responseLightweight SSLUses WIM/PKI-CardsDatagram service on different bearersConvergence between bearer servicesDifferent Wireless Tech. Source: WAP Forum

  • WAP StackWAE (Wireless Application Environment):Architecture: application model, browser, gateway, serverWML: XML-Syntax, based on card stacks, variables, ...WTA: telephone services, such as call control, phone book etc.WSP (Wireless Session Protocol):Provides HTTP 1.1 functionality Supports session management, security, etc.WTP (Wireless Transaction Protocol):Provides reliable message transfer mechanismsBased on ideas from TCP/RPCWTLS (Wireless Transport Layer Security):Provides data integrity, privacy, authentication functionsBased on ideas from TLS/SSLWDP (Wireless Datagram Protocol):Provides transport layer functionsBased on ideas from UDP

    Content encoding, optimized for low-bandwidth channels, simple devices

  • WHY WAP?Wireless networks and phones have specific needs and requirementsnot addressed by existing Internet technologiesWAP Enables any data transport TCP/IP, UDP/IP, GUTS (IS-135/6), SMS, or USSD.Optimizes the content and air-link protocolsUtilizes plain Web HTTP 1.1 serversleverages existing development methodologiesutilizes standard Internet markup language technology (XML) all WML content is accessed via HTTP 1.1 requestsWML UI components map well onto existing mobile phone user interfacesno re-education of the end-usersleveraging market penetration of mobile devices Several modular entities together form a fully compliant Internet entity

  • Why is HTTP/HTML not enough?Big pipe - small pipe syndromeSource: WAP Forum

  • WAP: Killer ApplicationsLocation-based servicesReal-time traffic reporting, Event/restaurant recommendationEnterprise solutions Email access, Database access, global intranet accessInformation updates pushed to WAP devicesFinancial servicesBanking, Bill-paying, Stock trading, Funds transfersTravel servicesSchedules and rescheduling, ReservationsGaming and EntertainmentOnline, real-time, multi-player gamesDownloadable horoscopes, cartoons, quotes, adviceM-CommerceShopping on the goInstant comparison shoppingLocation-based special offers and sales

  • Wireless Application Environment (WAE)Goalsdevice and network independent application environmentfor low-bandwidth, wireless devicesconsiderations of slow links, limited memory, low computing power, small display, simple user interface (compared to desktops)integrated Internet/WWW programming model high interoperability

  • WAE ComponentsArchitectureApplication model, Microbrowser, Gateway, ServerUser AgentsWML/WTA/Otherscontent formats: vCard, vCalendar, Wireless Bitmap, WML, ...WMLXML-Syntax, based on card stacks, variables, ...WMLScriptprocedural, loops, conditions, ... (similar to JavaScript)WTAtelephone services, such as call control, text messages, phone book, ... (accessible from WML/WMLScript)Proxy (Method/Push)

  • WAE: Logical ModelOrigin Serverswebserverother contentserverGatewayClientotherWAEuser agentsWMLuser agentWTAuser agentPush proxyencodedrequestrequestencodedresponsewithcontentresponsewithcontentpushcontentencodedpushcontentMethod proxyencoders&decoders

  • WAP MicrobrowserOptimized for wireless devicesMinimal RAM, ROM, Display, CPU and keysProvides consistent service UI across devicesProvides Internet compatibilityEnables wide array of available content and applications

  • WML: Wireless Markup LanguageTag-based browsing language:Screen management (text, images)Data input (text, selection lists, etc.)Hyperlinks & navigation supportTakes into account limited display, navigation capabilities of devicesXML-based languagedescribes only intent of interaction in an abstract mannerpresentation depends upon device capabilitiesCards and Decksdocument consists of many cardsUser interactions are split into cardsExplicit navigation between cardscards are grouped to decksdeck is similar to HTML page, unit of content transmissionEvents, variables and state mgmtContent (XML)

  • WMLThe basic unit is a card. Cards are grouped together into Decks Document ~ Deck (unit of transfer)All decks must containDocument prologueXML & document type declaration elementMust contain one or more cardsWML File Structure

  • WML Example

  • A Deck of Cards

    Acme Inc.Directory

    Services Email Phone Fax

    Acme Inc.Directory_____________NextServices1>Email2 Phone____________OKSource: WAP Forum

  • The DO ElementBinds a task to a user actionAction type:ACCEPT, OPTIONS, HELP PREV, DELETE, RESETLabel:Text string or image (optional)Task:GO PREV, REFRESH, NOOPDestination:URLPost data:if METHOD=POST

    Source: WAP Forum

  • Anchored LinksBind a task to the ACCEPT action, when cursor points to a linkTITLE= sets the label string (default = Link)Links are not allowed in select list options

    Please visit our home page for details.

    Please visit our home page for____________VisitSource: WAP Forum

  • The TEMPLATE ElementDefines actions & events for all cards in a deck

    First story Second story

    First story

    _____________Next MainSecond story...

    _____________OK MainSource: WAP Forum

  • Handling User InputSelect listsChoose from a list of options

    Input fieldsEnter a string of text or numbers

    KEY variablesSet by SELECT and INPUT elementsHow user input is passed to other cards and the application server Source: WAP Forum

  • The SELECT ElementDisplay a list of optionsEach option may set the KEY variable and/or bind a task to the ACCEPT keyTITLE= dynamically sets the label stringMULTIPLE=TRUE: Allows user to pick multiple items

    Forecast Berlin Rome New City

    Forecast1 Berlin2 Rome3>New City____________FindSource: WAP Forum

  • The INPUT ElementPrompts user to enter a string of textDEFAULT=key_value; Default KEY variable (displayed to user)FORMAT=format_specifier; If omitted, free-form entry is allowedEMPTYOK="TRUE; Browser will accept null inputTYPE="PASSWORD; Special entry mode handled by the browserMAXLENGTH=number; Maximum number of allowed characters

    Soc Security:

    Soc. Security:

    287-33- _____________ NUMSoc. Security:

    287-33- 7629____________OK Source: WAP Forum

  • WML Content FormatsCommon interchange formats, for interoperabilityFormats:Business cards: IMC vCard standardCalendar: IMC vCalendar standardImages: WBMP (Wireless BitMaP)Compiled WML, WMLScriptNewly defined formats:WML text and tokenized formatWMLScript text and bytecode formatWBMP image formatBinary format for size reductionBytecodes/tokens for common values and operatorsCompressed headersData compression (e.g. images)General-purpose transport compression can still be applied

  • Displaying ImagesInsert app images or local icons within display text1-bit BMP formatImages are ignored by non-bitmapped devicesCheck HTTP_ACCEPT for image/bmp

    Continue

    Welcome!

    Source: WAP Forum

  • WML (other features)Setting card styles to create formsUsing variables to cache user dataUsing card intrinsic events to trigger transparent tasksUsing timersSecuring WML decksBookmarking decks

  • WMLScriptComplement to WMLDerived from JavaScriptProvides general scripting capabilitiesProcedural logic, loops, conditionals, etc.Optimized for small-memory, small-cpu devices

    Featureslocal user interaction, validity check of user inputaccess to device facilities (phone call, address book etc.)extensions to the device softwareconfigure device, download new functionality after deployment

    Bytecode-based virtual machineStack-oriented design, ROM-ableDesigned for simple, low-impact implementationWMLScript compiler resides in the network

  • WMLScript LibrariesLang - VM constants, general-purpose math functionality, etc.String - string processing functionsURL - URL processingBrowser - WML browser interfaceDialog - simple user interfaceFloat - floating point functions

  • WMLScript Examplefunction currencyConvertor(currency, exchRate) { return currency*exchangeRate; }

    function myDay(sunShines) { var myDay; if (sunShines) { myDay = Good; } else { myDay = Not so good; }; return myDay;}Source: WAP Forum

  • Wireless Telephony Application (WTA)Collection of telephony specific extensionsdesigned primarily for network operators

    Examplecalling a number (WML) wtai://wp/mc;07216086415calling a number (WMLScript) WTAPublic.makeCall("07216086415");

    ImplementationExtension of basic WAE application modelExtensions added to standard WML/WMLScript browserExposes additional API (WTAI)

  • WTA FeaturesExtension of basic WAE application modelnetwork model for interactionclient requests to serverevent signaling: server can push content to the clientevent handlingtable indicating how to react on certain events from the networkclient may now be able to handle unknown eventstelephony functionssome application on the client may access telephony functions WTAI includes:Call controlNetwork text messagingPhone book interfaceEvent processingSecurity model: segregationSeparate WTA browserSeparate WTA port

  • WTA Example (WML)Placing an outgoing call with WTAI:

    Enter phone number:

    Source: WAP Forum

  • WTA Example (WMLScript)Placing an outgoing call with WTAI:

    function checkNumber(N) { if (Lang.isInt(N)) WTAI.makeCall(N); else Dialog.alert(Bad phone number);}Source: WAP Forum

  • WTA Logical Architectureother WTAserversother telephone networksmobilenetworkfirewallthird party origin serversnetwork operatortrusted domainSource: Schiller

  • WTA Framework ComponentsSource: Heijden

  • WTA User AgentWTA User AgentWML User agent with extended functionalitycan access mobile devices telephony functions through WTAIcan store WTA service content persistently in a repositoryhandles events originating in the mobile network

    WTA User Agent ContextAbstraction of execution spaceHolds current parameters, navigation history, state of user agentSimilar to activation record in a process address space

    Uses connection-mode and connectionless services offered by WSPSpecific, secure WDP ports on the WAP gateway

  • WTA Events and RepositoryWTA EventsNetwork notifies device of event (such as incoming call)WTA events map to devices native eventsWTA services are aware of and able to act on these eventsexample: incoming call indication, call cleared, call connectedWTA Repositorylocal store for content related to WTA services (minimize network traffic)Channels: define the servicecontent format defining a WTA service stored in repositoryXML document specifying eventid, title, abstract, and resources that implement a serviceResources: execution scripts for a servicecould be WML decks, WML Scripts, WBMP images..downloaded from WTA server and stored in repository before service is referencedServer can also initiate download of a channel

  • WTA Channels and ResourcesSource: Heijden

  • WTA Interface (public)WTA Interfacegeneric, high-level interface to mobiles telephony functionssetting up phone calls, reading and writing entries in phonebook..

    Public WTAIfor third party WML content providersrestricted set of telephony functions available to any WAE User Agentlibrary functionsmake call: allows application to setup call to a valid tel numbersend DTMF tones: send DTMF tones through the setup calluser notified to grant permission for service executioncannot be triggered by network eventsexample: Yellow pages service with make call feature

  • WTA Interface (network)Network Common WTAIWTA service provider is in operators domainall WTAI features are accessible, including the interface to WTA eventslibrary functionsVoice-call control: setup call, accept, release, send DTMF tonesNetwork text: send text, read text, remove text (SMS)Phonebook: write, read, remove phonebook entryCall logs: last dialed numbers, missed calls, received callsMiscellaneous: terminate WTA user agent, protect contextuser can give blanket permission to invoke a functionexample: Voice mail service

    Network Specific WTAIspecific to type of bearer networkexample: GSM: call reject, call hold, call transfer, join multiparty, send USSD

  • WTA Event HandlingEvent occurrenceWTA user agent could be executing and expecting the eventWTA user agent could be executing and a different event occursNo service is executingEvent handlingchannel for each event defines the content to be processed upon reception of that eventEvent bindingassociation of an event with the corresponding handler (channel)Global binding: channel corresponding to the event is stored in the repositoryevent causes execution of resources defined by the channelexample: voice mail service Temporary binding:resources to be executed are defined by the already executing serviceexample: yellow pages lookup and call establishment

  • Event Handling (no service in execution)Source: Heijden

  • Event Handling (service already execution)1: Temporary binding exists2. No temporary binding and context is protected3: No temporary binding and context is not protectedSource: Heijden

  • WTA: Voice mail ExampleSource: Schiller

  • WTA Application: Example (using WML)

    Please vote for your champion!

    Please choose:MickeyDonaldPluto

    Source: Schiller

  • WTA: Example with WML and WMLScriptfunction voteCall(Nr) {var j = WTACallControl.setup(Nr,1);if (j>=0) {WMLBrowser.setVar("Message", "Called");WMLBrowser.setVar("No", Nr);}else {WMLBrowser.setVar("Message", "Error!");WMLBrowser.setVar("No", j);}WMLBrowser.go("showResult");} Source: Schiller

  • WTA: Example with WML and WMLScript

    Please vote for your champion!Please choose:MickeyDonaldPlutoStatus of your call: $Message $No

    Source: Schiller

  • WAP Push ServicesWeb pushScheduled pull by client (browser)example: Active Channelsno real-time alerting/responseexample: stock quotesWireless pushaccomplished by using the network itselfexample: SMSlimited to simple text, cannot be used as starting point for service example: if SMS contains news, user cannot request specific news itemWAP pushNetwork supported push of WML contentexample: Alerts or service indicationsPre-caching of data (channels/resources)

  • WAP Push FrameworkSource: Heijden

  • Push Access ProtocolBased on request/response modelPush initiator is the clientPush proxy is the serverInitiator uses HTTP POST to send push message to proxyInitiator sends control information as an XML document, and content for mobile (as WML)Proxy sends XML entity in response indicating submission statusInitiator can cancel previous pushquery status of pushquery status/capabilities of device

  • Push Proxy GatewayWAP stack (communication with mobile device)TCP/IP stack (communication with Internet push initiator)Proxy layer doescontrol information parsingcontent transformationsession managementclient capabilitiesstore and forwardprioritizationaddress resolutionmanagement function

  • Over the Air (OTA) ProtocolExtends WSP with push-specific functionalityApplication ID uniquely identifies a particular application in the client (referenced as a URI)Connection-oriented mode client informs proxy of application IDs in a sessionConnectionless mode well known ports, one for secure and other for non-secure push Session Initiation Application (SIA)unconfirmed push from proxy to clientrequest to create a session for a specific user agent and bearer

  • WAE SummaryWMLanalogous to HTML (optimized for wireless)event based, microbrowser user agentWMLScriptanalogous to JavaScript features of compiler in the networkWTAWTAI: different access rights for different applications/agentsWTA User Agent (analogy with operating systems)Context Activation RecordChannel Interrupt HandlerResource Shared routines invoked by interrupt handlersRepository Library of interrupt handlersfeature of dynamically pushing the interrupt handler before the event Pushno analogy in Internet

  • WAP Gateway SummaryEncoderstranslate between binary (WML) and text (HTML/WML)Filterstranscoding between WML (wireless) and HTML (wired)Method Proxysimilar to standard proxy servicesWAP stack on wireless interface and TCP/IP stack on Internet interfacePush ProxyPush 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 SummaryOrigin ServerWeb server with HTML/WML contentsRuns TCP/IP stack, needs PAP protocol for push, no end-to-end securityWAP ServerServes WML contentRuns WAP stack, uses OTA protocol for push, end-to-end security possibleWTA ServerSpecialized 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 Source: Schiller

  • WDP: Wireless Datagram ProtocolGoalscreate a worldwide interoperable transport system by adapting WDP to the different underlying technologiestransmission services, such as SMS in GSM might change, new services can replace the old ones

    WDPTransport layer protocol within the WAP architectureuses the Service PrimitiveT-UnitData.req .induses transport mechanisms of different bearer technologiesoffers a common interface for higher layer protocolsallows for transparent communication despite different technologiesaddressing uses port numbersWDP over IP is UDP/IP

  • WDP: Service PrimitivesSAP: Service Access PointDA: Destination AddressDP: Destination PortSA: Source AddressSP: Source PortUD: User DataEC: Error CodeSource: Schiller

  • Service, Protocol, and Bearer Example

    WAP Over GSM Circuit-SwitchedSource: WAP Forum

  • Service, Protocol, and Bearer ExampleWAP Over GSM Short Message ServiceSMSWDPWTPWSPWAESMSSubnetworkWDPWDP Tunnel ProtocolSubnetwork WDP TunnelProtocol

    WTPWSPWAEApps onother serversSMSCWAP Proxy/ServerMobileunder developmentSource: WAP Forum

  • WTLS:Wireless Transport Layer SecurityGoalsProvide mechanisms for secure transfer of content, for applications needing privacy, identification, message integrity and non-repudiationProvide support for protection against denial-of-service attacks

    WTLS is based on the TLS/SSL (Transport Layer Security) protocoloptimized for low-bandwidth communication channelsprovidesprivacy (encryption)data integrity (MACs)authentication (public-key and symmetric)Employs special adapted mechanisms for wireless usageLong lived secure sessionsOptimised handshake proceduresProvides simple data reliability for operation over datagram bearers

  • WTLS Internal ArchitectureSource: WAP Forum

  • WTLS: Secure session, Full handshakeSource: SchillerKES: Key Exchange SuiteCS: Cipher SuiteCM: Compression ModeSNM: Sequence Number Mode

    KR: Key Refresh CycleSID: Session IdentifierCC: Client Certificate

  • WTLS: Transferring DatagramsSEC-Unitdata.req(SA, SP, DA, DP, UD)SEC-Unitdata.ind(SA, SP, DA, DP, UD)senderSEC-SAPreceiverSEC-SAPSource: Schiller

  • WTP: Wireless Transaction ProtocolGoalsdifferent transaction services that enable applications to select reliability, efficiency levelslow memory requirements, suited to simple devices (< 10kbyte )efficiency for wireless transmissionWTPsupports peer-to-peer, client/server and multicast applicationsefficient for wireless transmissionsupport for different communication scenariosclass 0: unreliable message transferunconfirmed Invoke message with no Result messagea datagram that can be sent within the context of an existing Sessionclass 1: reliable message transfer without result messageconfirmed Invoke message with no Result messageused for data push, where no response from the destination is expectedclass 2: reliable message transfer with exactly one reliable result messageconfirmed Invoke message with one confirmed Result messagea single request produces a single reply

  • WTP Services and ProtocolsWTP (Transaction)provides reliable data transfer based on request/reply paradigmno explicit connection setup or tear downoptimized setup (data carried in first packet of protocol exchange)seeks to reduce 3-way handshake on initial requestsupportsheader compressionsegmentation /re-assemblyretransmission of lost packetsselective-retransmissionport number addressing (UDP ports numbers)flow controlmessage oriented (not stream)supports an Abort function for outstanding requestssupports concatenation of PDUssupports User acknowledgement or Stack acknowledgement optionacks may be forced from the WTP user (upper layer)default is stack ack

  • WTP Services and Protocolsuses the service primitivesT-TRInvoke.req .cnf. .ind .resT-TRResult.req .cnf .ind .resT-Abort.req .ind

  • WTP Class 0 TransactionTR-Invoke.req(SA, SP, DA, DP, A, UD, C=0, H)Invoke PDUTR-Invoke.ind(SA, SP, DA, DP, A, UD, C=0, H)initiatorTR-SAPresponderTR-SAPSource: SchillerA: Acknowledgement Type (WTP/User)C: Class (0,1,2)H: Handle (socket alias)

  • WTP Class 1 Transaction, no user ack & user ackSource: Schiller

  • WTP Class 2 Transaction, no user ack, no hold onSource: Schiller

  • WTP Class 2 Transaction, user ackSource: Schiller

  • WTP Class 2 Transaction, hold on, no user ackSource: Schiller

  • WSP - Wireless Session ProtocolGoalsHTTP 1.1 functionalityRequest/reply, content type negotiation, ...support of client/server transactions, push technologykey management, authentication, Internet security services

    WSP Servicesprovides shared state between client and server, optimizes content transfersession management (establish, release, suspend, resume)efficient capability negotiationcontent encodingpush

    WSP/B (Browsing)HTTP/1.1 functionality - but binary encodedexchange of session headerspush and pull data transferasynchronous requests

  • HTTP 1.1 and WSPHTTP 1.1extensible request/reply methodsextensible request/reply headerscontent typingcomposite objectsasynchronous requestsWSP enhancements beyond HTTPbinary header encodingsession headersconfirmed and non-confirmed data pushcapability negotiationsuspend and resumefully asynchronous requestsconnectionless serviceWhy Not HTTP?encoding not compact enough, inefficient capability negotiationno push facility

  • WSP OverviewHeader Encodingcompact binary encoding of headers, content type identifiers and other well-known textual or structured valuesreduces the data actually sent over the networkCapabilities (are defined for):message size, client and serverprotocol options: Confirmed Push Facility, Push Facility, Session Suspend Facility, Acknowledgement headersmaximum outstanding requestsextended methodsheader code pagesSuspend and Resumeserver knows when client can accept a pushmulti-bearer devicesdynamic addressingallows the release of underlying bearer resources

  • WSP SessionsSession Context and Pushpush can take advantage of session headersserver knows when client can accept a push

    Connection-modelong-lived communication, benefits of the session state, reliability

    Connectionless-modestateless applications, no session creation overhead, no reliability overhead

  • WSP/B session establishmentS-Connect.req(SA, CA, CH, RC)Connect PDUS-Connect.ind(SA, CA, CH, RC)clientS-SAPserverS-SAPConnReply PDUS-Connect.res(SH, NC)S-Connect.cnf(SH, NC)WTP Class 2transactionSource: SchillerCH: Client HeaderRC: Requested CapabilitiesSH: Server HeaderNC: Negotiated Capabilities

  • WSP/B session suspend/resumeS-Suspend.reqSuspend PDUS-Suspend.ind(R)clientS-SAPserverS-SAPReply PDUS-Resume.resWTP Class 2transactionS-Suspend.ind(R)~~S-Resume.req(SA, CA)S-Resume.ind(SA, CA)Resume PDUS-Resume.cnfWTP Class 0transactionSource: SchillerR: Reason for disconnection

  • WSP/B session terminationDisconnect PDUS-Disconnect.ind(R)clientS-SAPserverS-SAPS-Disconnect.ind(R)WTP Class 0transactionS-Disconnect.req(R)Source: Schiller

  • WSP/B method invokeS-MethodInvoke.req(CTID, M, RU)Method PDUS-MethodInvoke.ind(STID, M, RU)clientS-SAPserverS-SAPReply PDUS-MethodInvoke.res(STID)S-MethodInvoke.cnf(CTID)WTP Class 2transactionS-MethodResult.req(STID, S, RH, RB)S-MethodResult.ind(CTID, S, RH, RB)S-MethodResult.res(CTID)S-MethodResult.cnf(STID)CTID: Client Transaction IDM: Method InvokedRU: Request URISTID: Server Transaction IDS: Response StatusRH: Response HeaderRB: Response BodySource: Schiller

  • WSP/B over WTP - method invocationS-MethodInvoke.reqS-MethodInvoke.indclientS-SAPserverS-SAPS-MethodInvoke.resS-MethodInvoke.cnfS-MethodResult.reqS-MethodResult.indS-MethodResult.resS-MethodResult.cnfTR-Invoke.reqinitiatorTR-SAPTR-Result.indTR-Invoke.cnfTR-Result.resTR-Invoke.indresponderTR-SAPTR-Invoke.resTR-Result.reqTR-Result.cnfInvoke(Method)Result(Reply)Ack PDUAck PDUSource: Schiller

  • WSP/B over WTP - asynchronous, unordered requestsS-MethodInvoke_1.reqS-MethodInvoke_1.indclientS-SAPserverS-SAPS-MethodInvoke_2.reqS-MethodInvoke_3.reqS-MethodResult_1.indS-MethodInvoke_4.reqS-MethodResult_3.indS-MethodResult_4.indS-MethodResult_2.indS-MethodInvoke_3.indS-MethodInvoke_2.indS-MethodResult_1.reqS-MethodResult_2.reqS-MethodResult_3.reqS-MethodResult_4.reqS-MethodInvoke_4.indSource: Schiller

  • WSP/B - confirmed/non-confirmed pushS-Push.req(PH, PB)clientS-SAPserverS-SAPConfPush PDUWTP Class 1transactionS-Push.ind(PH, PB)S-ConfirmedPush.res(CPID)S-ConfirmedPush.ind(CPID, PH, PB)WTP Class 0transactionPush PDUS-ConfirmedPush.req(SPID, PH, PB)clientS-SAPserverS-SAPS-ConfirmedPush.cnf(SPID)Source: SchillerPH: Push HeaderPB: Push BodySPID: Server Push IDCPID: Client Push ID

  • WSP/B over WDPS-Unit-MethodInvoke.req(SA, CA, TID, M, RU)clientS-SAPserverS-SAPS-Unit-MethodResult.ind(CA, SA, TID, S, RH, RB)S-Unit-Push.ind(CA, SA, PID, PH, PB)S-Unit-MethodInvoke.ind(SA, CA, TID, M, RU)S-Unit-MethodResult.req(CA, SA, TID, S, RH, RB)S-Unit-Push.req(CA, SA, PID, PH, PB)Method PDUReply PDUPush PDUWDP UnitdataserviceSource: Schiller

  • WAP Stack SummaryWDPfunctionality similar to UDP in IP networksWTLSfunctionality similar to SSL/TLS (optimized for wireless)WTPClass 0: analogous to UDPClass 1: analogous to TCP (without connection setup overheads)Class 2: analogous to RPC (optimized for wireless)features of user acknowledgement, hold onWSPWSP/B: analogous to http 1.1 (add features of suspend/resume)method: analogous to RPC/RMIfeatures of asynchronous invocations, push (confirmed/unconfirmed)

  • WAP: Ongoing WorkWDPTunnel to support WAP where no (end-to-end) IP bearer availableWTLSsupport for end-to-end security (extending WTLS endpoint beyond WAP Gateway)interoperable between WAP and Internet (public key infrastructure)integrating Smart Cards for security functionsWTPefficient transport over wireless links (wireless TCP)bearer selection/switchingquality of service definitionsWSPquality of service parametersmulticast data, multimedia supportWAEUser agent profiles: personalize for device characteristics, preferences etcPush architecture, asynchronous applicationsBilling

  • WAP: Hype vs Reality Low-bandwidth wireless linkstcp/ip over wireless can also address these problemsencoding in http can also reduce data transfer on wireless linksLimited device capabilitiesMicrobrowser is appropriate to address this problemWTAI features are not present in tcp/ip domain

    Challenges in WAPadapting to applications rich in content and interactionservice guaranteesinterface design and usability

    Other approaches for WWW access through mobilesi-Mode (from NTT DoCoMo) WAP is a TRAP (http://www.freeprotocols.org/wapTrap)

  • References and ResourcesBooksMobile communications: Jochen Schiller, Addison Wesley 2000Understanding WAP:

    Official Website (specifications)www.wapforum.orgTechnical/Developer Info and toolswww.palopt.com.au/wapwww.wap.netMajor playerswww.nokia.com/wapwww.ericsson.se/wapphone.com

    OpenSource effortwww.wapgateway.org (Kannel WAP gateway project)

  • Thank YouThis presentation is available online fromhttp://www.it.iitb.ernet.in/~sri/talks

    Sridhar IyerKR School of Information TechnologyIIT Bombay

    Any bearer which supports IP will be able to support WTP since WTP/T and in future WTP/C is defined for operation over UDP. The WTP/D service is UDP/IP.

    Note: UDP will require a new port number to be issued/reserved by IANA for WAP. After which the suite of WAP protocols will be distinguished by port numbers or protocol identifiers defined by the WAP Forum within the WAP UDP port number issued by IANA.Note to translator:

    Here I am going to explain and talk about each of the protocol elements in the WTLS layerSince there is no connection setup phase there is no mechanism to negotiate parameters (actually some things can be negotiated but not in the full sense that a connection-oriented call setup would allow) to be used during the message exchange, such as packet size or window size (packet group). Therefore using WTP/T requires an a priori agreement between the mobile and server as to the default parameters to be used during a message exchange.Packet versus Streams-a packet interface allows the application more control over a partial transmission. It requires the application (Session layer) to segment its transmission data to fixed length packets, this allows the restarting of a failed transmission at the place of the last successful transmission - checkpointing.-a stream interface is what is most commonly implemented for TCP (sockets) and is widely used by TCP applications.

    Ack may be piggybacked on a Result packet, therefore the Ack is shown with a dotted line.