Upload
sabareeswaran
View
3
Download
0
Tags:
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.