Вы находитесь на странице: 1из 100

WirelessApplicationProtocol

SridharIyer KRSchoolofInformationTechnology IITBombay http://www.it.iitb.ernet.in/~sri

Jan2001

Outline
Mobileapplications Howaremobile/wirelessenvironmentsdifferent? WhatisWAP? WAPArchitecture WAE(WML/WMLScript) WTAFramework WAPPushServices WAPProtocolStack Hypev/sReality ReferencesandResources

MobileApplications1
Vehicles
transmissionofnews,roadconditionetc adhocnetworkwithnearvehiclestopreventaccidents

Emergencies
earlytransmissionofpatientdatatothehospital adhocnetworkincaseofearthquakes,cyclones military...

Travelingsalesmen
directaccesstocentralcustomerfiles consistentdatabasesforallagents mobileoffice

MobileApplications2
Webaccess
outdoorInternetaccess intelligenttravelguidewithuptodatelocationdependent information

Informationservices
push:stockquotes;pull:nearestcashATM

Disconnectedoperations
filesystemcachingforofflinework mobileagents,e.g.,shopping

Entertainment
games,etc

VariabilityoftheMobileEnvironment
Mobility
stationary

nomadic(pedestrianspeed) mobile(vehicularspeed) roaming(mobileacrossnetworks)

Connectivity MobileDeviceCapability
formfactor connected

GUI multimedia realtimemultimedia

semiconnected (asymmetric) weaklyconnected disconnected

WorldWideWebandMobility
HTTP/HTMLhavenotbeendesignedformobileapplications/devices

HTTP1.0characteristics
designedforlargebandwidth,lowdelay stateless,client/server,request/responsecommunication connectionoriented,oneconnectionperrequest TCP3wayhandshake,DNSlookupoverheads bigprotocolheaders,uncompressedcontenttransfer primitivecaching(oftendisabled,dynamicobjects) securityproblems(usingSSL/TLSwithproxies)

HTMLcharacteristics
designedforcomputerswithhighperformance,colorhigh resolutiondisplay,mouse,harddisk typically,webpagesoptimizedfordesign,notforcommunication; ignoreendsystemcharacteristics

SystemSupportforMobileWWW
Enhancedbrowsers
clientawaresupportformobility

Proxies
Clientproxy:prefetching,caching,offlineuse Networkproxy:adaptivecontenttransformationforconnections Clientandnetworkproxy

Enhancedservers
serverawaresupportformobility servethecontentinmultipleways,dependingonclientcapabilities

Newprotocols/languages
WAP/WML

WirelessApplicationProtocol(WAP)
Empowersmobileuserswithwirelessdevicestoeasilyaccessand interactwithinformationandservices. AstandardcreatedbywirelessandInternetcompaniestoenable Internetaccessfromacellularphone wapforum.org:
cofoundedbyEricsson,Motorola,Nokia,Phone.com 450membersin2000,compriseofHandsetmanufacturers,Wireless serviceproviders,ISPs,Softwarecompaniesinthewirelessindustry Goals deliverInternetservicestomobiledevices enableapplicationstoscaleacrossavarietyoftransportoptionsand devicetypes independencefromwirelessnetworkstandards GSM,CDMAIS95,TDMAIS136,3Gsystems(UMTS,WCDMA)

WAP:MainFeatures
Browser
Microbrowser,similartoexistingwebbrowsers

Markuplanguage
SimilartoHTML,adaptedtomobiledevices

Scriptlanguage
SimilartoJavascript,adaptedtomobiledevices

Gateway
Transitionfromwirelesstowiredworld

Server
Wap/Originserver,similartoexistingwebservers

Protocollayers
Transportlayer,securitylayer,sessionlayeretc.

Telephonyapplicationinterface
Accesstotelephonyfunctions

InternetModel

HTML HTTP TLS/SSL TCP/IP

WAPArchitecture

Client
WML WML Script WTAI Etc.

WAPGateway
WMLEncoder

WebServer
HTTP
CGI Scripts etc. WMLDecks withWMLScript
Source: WAPForum

WSP/WTP

WMLScript Compiler ProtocolAdapters

Content

WAPApplicationServer

Client
WML WML Script WTAI Etc.

WAPApplicationServer
WMLEncoder

WSP/WTP

WMLScript Compiler ProtocolAdapters

Application Logic

Content

Source: WAPForum

WMLDecks withWMLScript

WAPArchitecture
Anotherlook Key Components
Origin/Web Server WAP Gateway/Proxy WAP Protocol Stack Micro Browser WML/WML Script Transcoders WTA

Source: WAPForum

WAP:NetworkElements
fixednetwork Internet HTML WML filter WML filter/ WAP proxy BinaryWML WAP proxy wirelessnetwork BinaryWML

HTML web server

HTML

HTML

PSTN

WTA server

BinaryWML

BinaryWML:binaryfileformatforclients

Source:Schiller

WAPSpecifies
WirelessApplicationEnvironment
WMLMicrobrowser WMLScriptVirtualMachine WMLScriptStandardLibrary WirelessTelephonyApplicationInterface(WTAI) WAPcontenttypes

WirelessProtocolStack
WirelessSessionProtocol(WSP) WirelessTransportLayerSecurity(WTLS) WirelessTransactionProtocol(WTP) WirelessDatagramProtocol(WDP) Wirelessnetworkinterfacedefinitions

WAPStack
Runs on top of WDP Provided lightweight X-oriented service Unreliable 1-way request Reliable 1-way/2-way req./response

MicroBrowser (WML, WMLScript, WTA, WTAI)

Lightweight SSL Uses WIM/PKICards Datagram service on different bearers Convergence between bearer services

Different Wireless Tech.

Source: WAPForum

WAPStack
WAE(WirelessApplicationEnvironment):
Architecture:applicationmodel,browser,gateway,server WML:XMLSyntax,basedoncardstacks,variables,... WTA:telephoneservices,suchascallcontrol,phonebooketc.

WSP(WirelessSessionProtocol):
ProvidesHTTP1.1functionality Supportssessionmanagement,security,etc.

WTP(WirelessTransactionProtocol):
Providesreliablemessagetransfermechanisms BasedonideasfromTCP/RPC

WTLS(WirelessTransportLayerSecurity):
Providesdataintegrity,privacy,authenticationfunctions BasedonideasfromTLS/SSL

WDP(WirelessDatagramProtocol):
Providestransportlayerfunctions BasedonideasfromUDP

Contentencoding,optimizedforlowbandwidthchannels,simpledevices

WHYWAP?
Wirelessnetworksandphones
havespecificneedsandrequirements notaddressedbyexistingInternettechnologies

WAP
Enablesanydatatransport TCP/IP,UDP/IP,GUTS(IS135/6),SMS,orUSSD. Optimizesthecontentandairlinkprotocols UtilizesplainWebHTTP1.1servers leveragesexistingdevelopmentmethodologies utilizesstandardInternetmarkuplanguagetechnology(XML) allWMLcontentisaccessedviaHTTP1.1requests WMLUIcomponentsmapwellontoexistingmobilephoneuserinterfaces noreeducationoftheendusers leveragingmarketpenetrationofmobiledevices SeveralmodularentitiestogetherformafullycompliantInternetentity

WhyisHTTP/HTMLnotenough?
Bigpipesmallpipesyndrome Internet
<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>

Wirelessnetwork
<WML> <CARD> <DO TYPE="ACCEPT"> <GO URL="/submit?Name=$N"/> </DO> Enter name: <INPUT TYPE="TEXT" KEY="N"/> </CARD> </WML>

HTTP/HTML

WAP

Contentencoding
010011 010011 110110 010011 011011 011101 010010 011010

<HTML> <HEAD> <TITLE >NNN Intera ctive< /TITLE > <META HTTPEQUIV= "Refre sh" CONTEN T="180 0, URL=/i ndex.h tml">

Source: WAPForum

WAP:KillerApplications
Locationbasedservices
Realtimetrafficreporting,Event/restaurantrecommendation

Enterprisesolutions
Emailaccess,Databaseaccess,globalintranetaccess InformationupdatespushedtoWAPdevices

Financialservices
Banking,Billpaying,Stocktrading,Fundstransfers

Travelservices
Schedulesandrescheduling,Reservations

GamingandEntertainment
Online,realtime,multiplayergames Downloadablehoroscopes,cartoons,quotes,advice

MCommerce
Shoppingonthego Instantcomparisonshopping Locationbasedspecialoffersandsales

WirelessApplicationEnvironment(WAE)

Goals
deviceandnetworkindependentapplicationenvironment forlowbandwidth,wirelessdevices considerationsofslowlinks,limitedmemory,lowcomputingpower, smalldisplay,simpleuserinterface(comparedtodesktops) integratedInternet/WWWprogrammingmodel highinteroperability

WAEComponents
Architecture
Applicationmodel,Microbrowser,Gateway,Server

UserAgents
WML/WTA/Others contentformats:vCard,vCalendar,WirelessBitmap,WML,...

WML
XMLSyntax,basedoncardstacks,variables,...

WMLScript
procedural,loops,conditions,...(similartoJavaScript)

WTA
telephoneservices,suchascallcontrol,textmessages,phone book,...(accessiblefromWML/WMLScript)

Proxy(Method/Push)

WAE:LogicalModel
OriginServers
web server response with content

Gateway
Methodproxy encoded response with content

Client
WTA useragent

othercontent server

Pushproxy push content encoders & decoders encoded push content

WML useragent

request

encoded request

other WAE useragents

WAPMicrobrowser

Optimizedforwirelessdevices MinimalRAM,ROM,Display,CPUandkeys ProvidesconsistentserviceUIacrossdevices ProvidesInternetcompatibility Enableswidearrayofavailablecontentand applications

WML:WirelessMarkupLanguage
Tagbasedbrowsinglanguage:
Screenmanagement(text,images) Datainput(text,selectionlists,etc.) Hyperlinks&navigationsupport

Content(XML) XSLProcessor
WML Stylesheet HTML StyleSheet

Takesintoaccountlimiteddisplay, navigationcapabilitiesofdevices XMLbasedlanguage


describesonlyintentofinteractionin anabstractmanner presentationdependsupondevice capabilities

CardsandDecks
documentconsistsofmanycards Userinteractionsaresplitintocards Explicitnavigationbetweencards cardsaregroupedtodecks deckissimilartoHTMLpage,unit ofcontenttransmission

WMLBrowsers

HTTPBrowser

Events,variablesandstatemgmt

WML
Thebasicunitisacard.CardsaregroupedtogetherintoDecksDocument~Deck(unitof transfer) Alldecksmustcontain Documentprologue XML&documenttypedeclaration <WML>element Mustcontainoneormorecards

WML File Structure


<?xml version="1.0"?> <!DOCTYPE WML PUBLIC "-//WAPFORUM//DTD WML 1.0//EN" "http://www.wapforum.org/DTD/wml.xml"> <WML> ... </WML>

WMLExample
<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>

Navigation

Card

Variables

Deck

Input Elements

ADeckofCards
<WML> <CARD> <DO TYPE="ACCEPT" LABEL="Next"> <GO URL="#card2"/> </DO> Acme Inc.<BR/>Directory </CARD> <CARD NAME="card2"> <DO TYPE="ACCEPT"> <GO URL="?send=$type"/> </DO> Services <SELECT KEY="type"> <OPTION VALUE="em">Email</OPTION> <OPTION VALUE="ph">Phone</OPTION> <OPTION VALUE="fx">Fax</OPTION> </SELECT> </CARD> </WML>

AcmeInc. Directory _____________ Next

Services 1>Email 2Phone ____________ OK

Source:WAPForum

TheDOElement
Bindsatasktoauseraction
Actiontype: Label: Task: Destination: Postdata: ACCEPT,OPTIONS,HELP PREV,DELETE,RESET Textstringorimage(optional) GO PREV,REFRESH,NOOP URL ifMETHOD=POST

<DO TYPE="ACCEPT" LABEL="Next"> <GO URL="http://www.mysite.com/myapp.wml"/> </DO>


Source:WAPForum

AnchoredLinks
BindatasktotheACCEPTaction, whencursorpointstoalink
TITLE=setsthelabelstring(default=Link) Linksarenotallowedinselectlistoptions

<CARD> Please visit our <A TITLE="Visit"> <GO URL="home.wml"/>home page</A> for details. </CARD>

Pleasevisit ourhome pagefor ____________ Visit

Source:WAPForum

TheTEMPLATEElement
Definesactions&eventsforallcardsinadeck
<WML> <TEMPLATE> <DO TYPE="OPTIONS" LABEL="Main"> <GO URL="main_menu.wml"/> </DO> </TEMPLATE> <CARD NAME="msg1"> <DO TYPE="ACCEPT" LABEL="Next"> <GO URL="#msg2"/> </DO> First story </CARD> <CARD NAME="msg2"> Second story </CARD> </WML>

Firststory _____________ NextMain

Secondstory ... _____________ OKMain

Source:WAPForum

HandlingUserInput
Selectlists
Choosefromalistofoptions

Inputfields
Enterastringoftextornumbers

KEYvariables
SetbySELECTandINPUTelements Howuserinputispassedtoothercardsandtheapplicationserver

Source:WAPForum

TheSELECTElement
Displayalistofoptions
EachoptionmaysettheKEYvariableand/orbindatasktothe ACCEPTkey TITLE=dynamicallysetsthelabelstring

MULTIPLE=TRUE:Allowsusertopickmultipleitems
<CARD> <DO TYPE="ACCEPT" LABEL="View"> <GO URL="getcity.cgi?location=$city"/> </DO> Forecast <SELECT KEY="city"> <OPTION VALUE="ber">Berlin</OPTION> <OPTION VALUE="rom">Rome</OPTION> <OPTION TITLE="Find" ONCLICK="find.cgi">New </SELECT> </CARD>

Forecast 1Berlin 2Rome 3>NewCity ____________ Find City</OPTION>

Source:WAPForum

TheINPUTElement
Promptsusertoenterastringoftext
DEFAULT=key_value;DefaultKEYvariable(displayedtouser) FORMAT=format_specifier;Ifomitted,freeformentryisallowed EMPTYOK="TRUE;Browserwillacceptnullinput TYPE="PASSWORD;Specialentrymodehandledbythebrowser MAXLENGTH=number;Maximumnumberofallowedcharacters
Soc.Security:

<CARD> <DO TYPE="ACCEPT"> <GO URL="?get=person" METHOD="POST" POSTDATA="userid=$ssn"/> </DO> Soc Security: <INPUT KEY="ssn" FORMAT="NNN\-NN\-NNNN"/> </CARD>

28733_ ____________ NUM Soc.Security: 287337629 ____________ OK

Source:WAPForum

WMLContentFormats
Commoninterchangeformats,forinteroperability Formats:
Businesscards:IMCvCardstandard Calendar:IMCvCalendarstandard Images:WBMP(WirelessBitMaP) CompiledWML,WMLScript

Newlydefinedformats:
WMLtextandtokenizedformat WMLScripttextandbytecodeformat WBMPimageformat

Binaryformatforsizereduction
Bytecodes/tokensforcommonvaluesandoperators Compressedheaders Datacompression(e.g.images)

Generalpurposetransportcompressioncanstillbeapplied

DisplayingImages
Insertappimagesorlocaliconswithindisplaytext
1bitBMPformat

Imagesareignoredbynonbitmappeddevices
CheckHTTP_ACCEPTforimage/bmp

<CARD> <DO TYPE="ACCEPT"> <GO URL="#c2"/> </DO> Continue <IMG LOCALSRC="righthand" ALT="forward..."/> </CARD> <CARD NAME="c2"> <IMG SRC="../images/logo.wbmp" ALT="Unwired Planet"/> <BR/>Welcome! </CARD>
Source:WAPForum

WML(otherfeatures)
Settingcardstylestocreateforms Usingvariablestocacheuserdata Usingcardintrinsiceventstotriggertransparenttasks Usingtimers SecuringWMLdecks Bookmarkingdecks

WMLScript
ComplementtoWML
DerivedfromJavaScript

Providesgeneralscriptingcapabilities
Procedurallogic,loops,conditionals,etc. Optimizedforsmallmemory,smallcpudevices

Features
localuserinteraction,validitycheckofuserinput accesstodevicefacilities(phonecall,addressbooketc.) extensionstothedevicesoftware configuredevice,downloadnewfunctionalityafterdeployment

Bytecodebasedvirtualmachine
Stackorienteddesign,ROMable Designedforsimple,lowimpactimplementation

WMLScriptcompilerresidesinthenetwork

WMLScriptLibraries
LangVMconstants,generalpurposemathfunctionality, etc. Stringstringprocessingfunctions URLURLprocessing BrowserWMLbrowserinterface Dialogsimpleuserinterface Floatfloatingpointfunctions

WMLScriptExample

Functions Variables Programming Constructs

function currencyConvertor(currency, exchRate) { return currency*exchangeRate; } function myDay(sunShines) { var myDay; if (sunShines) { myDay = Good; } else { myDay = Not so good; }; return myDay; }

Source:WAPForum

WirelessTelephonyApplication(WTA)
Collectionoftelephonyspecificextensions
designedprimarilyfornetworkoperators

Example
callinganumber(WML) wtai://wp/mc;07216086415 callinganumber(WMLScript) WTAPublic.makeCall("07216086415");

Implementation
ExtensionofbasicWAEapplicationmodel ExtensionsaddedtostandardWML/WMLScriptbrowser ExposesadditionalAPI(WTAI)

WTAFeatures
ExtensionofbasicWAEapplicationmodel
networkmodelforinteraction clientrequeststoserver eventsignaling:servercanpushcontenttotheclient eventhandling tableindicatinghowtoreactoncertaineventsfromthenetwork clientmaynowbeabletohandleunknownevents telephonyfunctions someapplicationontheclientmayaccesstelephonyfunctions

WTAIincludes:
Callcontrol Networktextmessaging Phonebookinterface Eventprocessing

Securitymodel:segregation
SeparateWTAbrowser SeparateWTAport

WTAExample(WML)
PlacinganoutgoingcallwithWTAI:
<WML> <CARD> <DO TYPE=ACCEPT> <GO URL=wtai:cc/mc;$(N)/> </DO> Enter phone number: <INPUT TYPE=TEXT KEY=N/> </CARD> </WML>

WTAICall InputElement

Source:WAPForum

WTAExample(WMLScript)
PlacinganoutgoingcallwithWTAI:

WTAICall

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

Source:WAPForum

WTALogicalArchitecture
othertelephonenetworks WTAOriginServer WML Scripts Client WTA&WML server mobile network WTA useragent WAE services

WML decks WTA services networkoperator trusteddomain

WAPGateway encoders & decoders otherWTA servers firewall

thirdparty originservers

Source:Schiller

WTAFrameworkComponents

Source:Heijden

WTAUserAgent
WTAUserAgent
WMLUseragentwithextendedfunctionality canaccessmobiledevicestelephonyfunctionsthroughWTAI canstoreWTAservicecontentpersistentlyinarepository handleseventsoriginatinginthemobilenetwork

WTAUserAgentContext
Abstractionofexecutionspace Holdscurrentparameters,navigationhistory,stateofuseragent Similartoactivationrecordinaprocessaddressspace

UsesconnectionmodeandconnectionlessservicesofferedbyWSP Specific,secureWDPportsontheWAPgateway

WTAEventsandRepository
WTAEvents
Networknotifiesdeviceofevent(suchasincomingcall) WTAeventsmaptodevicesnativeevents WTAservicesareawareofandabletoactontheseevents example:incomingcallindication,callcleared,callconnected

WTARepository
localstoreforcontentrelatedtoWTAservices(minimizenetworktraffic) Channels:definetheservice contentformatdefiningaWTAservicestoredinrepository XMLdocumentspecifyingeventid,title,abstract,andresourcesthat implementaservice Resources:executionscriptsforaservice couldbeWMLdecks,WMLScripts,WBMPimages.. downloadedfromWTAserverandstoredinrepositorybeforeserviceis referenced Servercanalsoinitiatedownloadofachannel

WTAChannelsandResources

Source:Heijden

WTAInterface(public)
WTAInterface
generic,highlevelinterfacetomobilestelephonyfunctions settingupphonecalls,readingandwritingentriesinphonebook..

PublicWTAI
forthirdpartyWMLcontentproviders restrictedsetoftelephonyfunctionsavailabletoanyWAEUserAgent libraryfunctions makecall:allowsapplicationtosetupcalltoavalidtelnumber sendDTMFtones:sendDTMFtonesthroughthesetupcall usernotifiedtograntpermissionforserviceexecution cannotbetriggeredbynetworkevents example:Yellowpagesservicewithmakecallfeature

WTAInterface(network)
NetworkCommonWTAI
WTAserviceproviderisinoperatorsdomain allWTAIfeaturesareaccessible,includingtheinterfacetoWTAevents libraryfunctions Voicecallcontrol:setupcall,accept,release,sendDTMFtones Networktext:sendtext,readtext,removetext(SMS) Phonebook:write,read,removephonebookentry Calllogs:lastdialednumbers,missedcalls,receivedcalls Miscellaneous:terminateWTAuseragent,protectcontext usercangiveblanketpermissiontoinvokeafunction example:Voicemailservice

NetworkSpecificWTAI
specifictotypeofbearernetwork example: GSM:callreject,callhold,calltransfer,joinmultiparty,sendUSSD

WTAEventHandling
Eventoccurrence
WTAuseragentcouldbeexecutingandexpectingtheevent WTAuseragentcouldbeexecutingandadifferenteventoccurs Noserviceisexecuting

Eventhandling
channelforeacheventdefinesthecontenttobeprocesseduponreception ofthatevent

Eventbinding
associationofaneventwiththecorrespondinghandler(channel) Globalbinding: channelcorrespondingtotheeventisstoredintherepository eventcausesexecutionofresourcesdefinedbythechannel example:voicemailservice Temporarybinding: resourcestobeexecutedaredefinedbythealreadyexecutingservice example:yellowpageslookupandcallestablishment

EventHandling(noserviceinexecution)

Source:Heijden

EventHandling(servicealreadyexecution)

1:Temporarybindingexists 2.Notemporarybindingandcontextisprotected 3:Notemporarybindingandcontextisnotprotected


Source:Heijden

WTA:VoicemailExample
WTAclient WTAserver voicemailserver incomingvoice message indicatenewvoicemessage mobilenetwork

pushdeck displaydeck; userselects waitforcall request

generate newdeck

translate

playrequestedvoicemessage setupcall setupcall

callindication acceptcall acceptcall voiceconnection

acceptcall

Source:Schiller

WTAApplication:Example(usingWML)
<WML> <CARD> <DO TYPE="ACCEPT" TASK="GO" URL="#voteChamp"/> Please vote for your champion! </CARD> <CARD NAME="voteChamp"> <DO TYPE="ACCEPT" TASK="GO" URL="wtai://cc/sc;$voteNo;1"/> Please choose: <SELECT KEY="voteNo"> <OPTION VALUE="6086415">Mickey</OPTION> <OPTION VALUE="6086416">Donald</OPTION> <OPTION VALUE="6086417">Pluto</OPTION> </SELECT> </CARD> </WML>

Source:Schiller

WTA:ExamplewithWMLandWMLScript
function 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

<WML> <CARD> <DO TYPE="ACCEPT" TASK="GO" URL="#voteChamp"/> Please vote for your champion! </CARD> <CARD NAME="voteChamp"> <DO TYPE="ACCEPT" TASK="GO" URL="/script#voteCall($voteNo)"/> Please choose: <SELECT KEY="voteNo"> <OPTION VALUE="6086415">Mickey</OPTION> <OPTION VALUE="6086416">Donald</OPTION> <OPTION VALUE="6086417">Pluto</OPTION> </SELECT> </CARD> <CARD NAME="showResult"> Status of your call: $Message $No </CARD> </WML>

WTA:ExamplewithWMLandWMLScript

Source:Schiller

WAPPushServices
Webpush
Scheduledpullbyclient(browser) example:ActiveChannels norealtimealerting/response example:stockquotes

Wirelesspush
accomplishedbyusingthenetworkitself example:SMS limitedtosimpletext,cannotbeusedasstartingpointforservice example:ifSMScontainsnews,usercannotrequestspecificnews item

WAPpush
NetworksupportedpushofWMLcontent example:Alertsorserviceindications Precachingofdata(channels/resources)

WAPPushFramework

Source:Heijden

PushAccessProtocol
Basedonrequest/responsemodel Pushinitiatoristheclient Pushproxyistheserver InitiatorusesHTTPPOSTtosendpushmessagetoproxy InitiatorsendscontrolinformationasanXMLdocument, andcontentformobile(asWML) ProxysendsXMLentityinresponseindicatingsubmission status Initiatorcan
cancelpreviouspush querystatusofpush querystatus/capabilitiesofdevice

PushProxyGateway
WAPstack(communicationwithmobiledevice) TCP/IPstack(communicationwithInternetpushinitiator) Proxylayerdoes
controlinformationparsing contenttransformation sessionmanagement clientcapabilities storeandforward prioritization addressresolution managementfunction

OvertheAir(OTA)Protocol
ExtendsWSPwithpushspecificfunctionality ApplicationIDuniquelyidentifiesaparticularapplication intheclient(referencedasaURI) Connectionorientedmode
clientinformsproxyofapplicationIDsinasession

Connectionlessmode
wellknownports,oneforsecureandotherfornonsecurepush

SessionInitiationApplication(SIA)
unconfirmedpushfromproxytoclient requesttocreateasessionforaspecificuseragentandbearer

WAESummary
WML
analogoustoHTML(optimizedforwireless) eventbased,microbrowseruseragent

WMLScript
analogoustoJavaScript featuresofcompilerinthenetwork

WTA
WTAI:differentaccessrightsfordifferentapplications/agents WTAUserAgent(analogywithoperatingsystems) ContextActivationRecord ChannelInterruptHandler ResourceSharedroutinesinvokedbyinterrupthandlers RepositoryLibraryofinterrupthandlers featureofdynamicallypushingtheinterrupthandlerbeforetheevent

Push
noanalogyinInternet

WAPGatewaySummary
Encoders
translatebetweenbinary(WML)andtext(HTML/WML)

Filters
transcodingbetweenWML(wireless)andHTML(wired)

MethodProxy
similartostandardproxyservices WAPstackonwirelessinterfaceandTCP/IPstackonInternetinterface

PushProxy
PushAccessProtocolwithInternetPushInitiator(WebServer) OvertheAirProtocolwithmobiledevice(andWAPPushInitiator) Performsnecessaryfiltering,translationetc.

WAPServersSummary
OriginServer
WebserverwithHTML/WMLcontents RunsTCP/IPstack,needsPAPprotocolforpush,noendtoend security

WAPServer
ServesWMLcontent RunsWAPstack,usesOTAprotocolforpush,endtoendsecurity possible

WTAServer
Specializedfortelephonyapplications(runsWAPstack,usespush extensively) Clientinitiated(makecallhyperlinkfromaYellowpages service) Serverintiated(incomingcallfromaVoicemailservice)

WAP:ProtocolStack
Internet HTML,Java ASAP WAP additionalservices andapplications

ApplicationLayer(WAE) SSAP SessionLayer(WSP)

HTTP

TRSAP TransactionLayer(WTP) SECSAP

SSL/TLS TSAP TCP/IP, UDP/IP, media

SecurityLayer(WTLS)

TransportLayer(WDP) Bearers(GSM,CDPD,...)

WCMP

WAEcomprisesWML(WirelessMarkupLanguage),WMLScript,WTAIetc.
Source:Schiller

WDP:WirelessDatagramProtocol
Goals
createaworldwideinteroperabletransportsystembyadaptingWDPto thedifferentunderlyingtechnologies transmissionservices,suchasSMSinGSMmightchange,newservices canreplacetheoldones

WDP
TransportlayerprotocolwithintheWAParchitecture usestheServicePrimitive TUnitData.req.ind usestransportmechanismsofdifferentbearertechnologies offersacommoninterfaceforhigherlayerprotocols allowsfortransparentcommunicationdespitedifferenttechnologies addressingusesportnumbers WDPoverIPisUDP/IP

WDP:ServicePrimitives
TSAP TDUnitdata.req (DA,DP,SA,SP,UD) TDUnitdata.req (DA,DP,SA,SP,UD) TDError.ind (EC)
SAP:ServiceAccessPoint DA:DestinationAddress DP:DestinationPort SA:SourceAddress SP:SourcePort UD:UserData EC:ErrorCode

TSAP TDUnitdata.ind (SA,SP,UD)

Source:Schiller

Service,Protocol,andBearerExample
WAPOverGSMCircuitSwitched
Mobile
WAE WSP

WAP Proxy/Server
WAE Appson OtherServers WSP

IWF

ISP/RAS

WTP UDP
IP PPP CSDRF CSD RF PSTN Circuit PPP PSTN Subnetwork Circuit IP

WTP UDP
IP

Subnetwork

RASRemoteAccessServer IWFInterWorkingFunction Source:WAPForum

Service,Protocol,andBearerExample
WAPOverGSMShortMessageService
Mobile
WAE WSP WTP WDP SMS SMS WDPTunnel Protocol Subnetwork

WAP Proxy/Server
WAE Appson otherservers WSP

SMSC

WTP WDP WDPTunnel Protocol Subnetwork

underdevelopment
Source:WAPForum

WTLS:WirelessTransportLayerSecurity
Goals
Providemechanismsforsecuretransferofcontent,forapplicationsneeding privacy,identification,messageintegrityandnonrepudiation Providesupportforprotectionagainstdenialofserviceattacks

WTLS
isbasedontheTLS/SSL(TransportLayerSecurity)protocol optimizedforlowbandwidthcommunicationchannels provides privacy(encryption) dataintegrity(MACs) authentication(publickeyandsymmetric) Employsspecialadaptedmechanismsforwirelessusage Longlivedsecuresessions Optimisedhandshakeprocedures Providessimpledatareliabilityforoperationoverdatagrambearers

WTLSInternalArchitecture
TransactionProtocol(WTP) Handshake Alert Protocol Protocol Application Protocol ChangeCipher SpecProtocol

WTLS

RecordProtocol Recordprotocol

DatagramProtocol(WDP/UDP)

Bearernetworks

Source:WAPForum

WTLS:Securesession,Fullhandshake
originator SECSAP SECCreate.req (SA,SP,DA,DP,KES,CS,CM) peer SECSAP SECCreate.ind (SA,SP,DA,DP,KES,CS,CM) SECCreate.res (SNM,KR,SID,KES,CS,CM) SECCreate.cnf (SNM,KR,SID,KES,CS,CM) SECExchange.ind SECExchange.res (CC) SECCommit.req SECExchange.req
KES:KeyExchangeSuite CS:CipherSuite CM:CompressionMode SNM:SequenceNumberMode

SECExchange.cnf (CC) SECCommit.ind

SECCommit.cnf

KR:KeyRefreshCycle SID:SessionIdentifier CC:ClientCertificate


Source:Schiller

WTLS:TransferringDatagrams
sender SECSAP SECUnitdata.req (SA,SP,DA,DP,UD) receiver SECSAP SECUnitdata.ind (SA,SP,DA,DP,UD)

Source:Schiller

WTP:WirelessTransactionProtocol
Goals
differenttransactionservicesthatenableapplicationstoselectreliability, efficiencylevels lowmemoryrequirements,suitedtosimpledevices(<10kbyte) efficiencyforwirelesstransmission

WTP
supportspeertopeer,client/serverandmulticastapplications efficientforwirelesstransmission supportfordifferentcommunicationscenarios class0:unreliablemessagetransfer unconfirmedInvokemessagewithnoResultmessage adatagramthatcanbesentwithinthecontextofanexistingSession class1:reliablemessagetransferwithoutresultmessage confirmedInvokemessagewithnoResultmessage usedfordatapush,wherenoresponsefromthedestinationisexpected class2:reliablemessagetransferwithexactlyonereliableresultmessage confirmedInvokemessagewithoneconfirmedResultmessage asinglerequestproducesasinglereply

WTPServicesandProtocols
WTP(Transaction) providesreliabledatatransferbasedonrequest/replyparadigm noexplicitconnectionsetuporteardown optimizedsetup(datacarriedinfirstpacketofprotocolexchange) seekstoreduce3wayhandshakeoninitialrequest supports headercompression segmentation/reassembly retransmissionoflostpackets selectiveretransmission portnumberaddressing(UDPportsnumbers) flowcontrol messageoriented(notstream) supportsanAbortfunctionforoutstandingrequests supportsconcatenationofPDUs supportsUseracknowledgementorStackacknowledgementoption

acksmaybeforcedfromtheWTPuser(upperlayer) defaultisstackack

WTPServicesandProtocols
usestheserviceprimitives
TTRInvoke.req.cnf..ind.res TTRResult.req.cnf.ind.res TAbort.req.ind

Client
TTRInvoke.req

(PDUs)

Server
TTRInvoke.ind T TRInvoke.res TTRResult.req TTRResult.cnf

Invoke Ack Result Ack

TTRInvoke.cnf TTRResult.ind TTRResult.res

WTPClass0Transaction
initiator TRSAP TRInvoke.req (SA,SP,DA,DP,A,UD,C=0,H)
Invoke

responder TRSAP TRInvoke.ind (SA,SP,DA,DP,A,UD,C=0,H)

PDU

A:AcknowledgementType (WTP/User) C:Class(0,1,2) H:Handle(socketalias)

Source:Schiller

WTPClass1Transaction,nouserack&userack
initiator TRSAP TRInvoke.req (SA,SP,DA,DP,A,UD,C=1,H) TRInvoke.cnf (H)
Invoke

responder TRSAP TRInvoke.ind (SA,SP,DA,DP,A,UD,C=1,H)

PDU

U AckPD

initiator TRSAP TRInvoke.req (SA,SP,DA,DP,A,UD,C=1,H)


Invoke

responder TRSAP TRInvoke.ind (SA,SP,DA,DP,A,UD,C=1,H) TRInvoke.res (H)

PDU

TRInvoke.cnf (H)

U AckPD

Source:Schiller

WTPClass2Transaction,nouserack,noholdon
initiator TRSAP TRInvoke.req (SA,SP,DA,DP,A,UD,C=2,H)
Invoke

responder TRSAP TRInvoke.ind (SA,SP,DA,DP,A,UD,C=2,H) TRResult.req (UD*,H)

PDU

TRInvoke.cnf (H) TRResult.ind (UD*,H) TRResult.res (H)

P Result

DU

AckPD U

TRResult.cnf (H)

Source:Schiller

WTPClass2Transaction,userack
initiator TRSAP TRInvoke.req (SA,SP,DA,DP,A,UD,C=2,H)
Invoke

responder TRSAP TRInvoke.ind (SA,SP,DA,DP,A,UD,C=2,H) TRInvoke.res (H) TRResult.req (UD*,H)

PDU

TRInvoke.cnf (H) TRResult.ind (UD*,H) TRResult.res (H)

U AckPD P Result DU

AckPD U

TRResult.cnf (H)

Source:Schiller

WTPClass2Transaction,holdon,nouserack
initiator TRSAP TRInvoke.req (SA,SP,DA,DP,A,UD,C=2,H) TRInvoke.cnf (H) TRResult.ind (UD*,H) TRResult.res (H)
Invoke

responder TRSAP TRInvoke.ind (SA,SP,DA,DP,A,UD,C=2,H) TRResult.req (UD*,H)

PDU
U DU

AckPD

P Result

AckPD U

TRResult.cnf (H)

Source:Schiller

WSPWirelessSessionProtocol
Goals
HTTP1.1functionality Request/reply,contenttypenegotiation,... supportofclient/servertransactions,pushtechnology keymanagement,authentication,Internetsecurityservices

WSPServices
providessharedstatebetweenclientandserver,optimizescontenttransfer sessionmanagement(establish,release,suspend,resume) efficientcapabilitynegotiation contentencoding push

WSP/B(Browsing)
HTTP/1.1functionalitybutbinaryencoded exchangeofsessionheaders pushandpulldatatransfer asynchronousrequests

HTTP1.1andWSP
HTTP1.1
extensiblerequest/replymethods extensiblerequest/replyheaders contenttyping compositeobjects asynchronousrequests binaryheaderencoding sessionheaders confirmedandnonconfirmeddatapush capabilitynegotiation suspendandresume fullyasynchronousrequests connectionlessservice

WSPenhancementsbeyondHTTP

WhyNotHTTP?
encodingnotcompactenough,inefficientcapabilitynegotiation nopushfacility

WSPOverview
HeaderEncoding
compactbinaryencodingofheaders,contenttypeidentifiersandother wellknowntextualorstructuredvalues reducesthedataactuallysentoverthenetwork

Capabilities(aredefinedfor):
messagesize,clientandserver protocoloptions:ConfirmedPushFacility,PushFacility,SessionSuspend Facility,Acknowledgementheaders maximumoutstandingrequests extendedmethods headercodepages

SuspendandResume

serverknowswhenclientcanacceptapush multibearerdevices dynamicaddressing allowsthereleaseofunderlyingbearerresources

WSPSessions
SessionContextandPush
pushcantakeadvantageofsessionheaders serverknowswhenclientcanacceptapush

Connectionmode
longlivedcommunication,benefitsofthesessionstate,reliability

Connectionlessmode
statelessapplications,nosessioncreationoverhead,noreliability overhead

WSP/Bsessionestablishment
client SSAP SConnect.req (SA,CA,CH,RC)
Conne c

server SSAP SConnect.ind (SA,CA,CH,RC) SConnect.res (SH,NC)

tPDU

SConnect.cnf (SH,NC)

PDU nReply Con

WTPClass2 transaction

CH:ClientHeader RC:RequestedCapabilities SH:ServerHeader NC:NegotiatedCapabilities

Source:Schiller

WSP/Bsessionsuspend/resume
client SSAP SSuspend.req SSuspend.ind (R)
Suspe ndPD

server SSAP SSuspend.ind (R)

WTPClass0 transaction

SResume.req (SA,CA)

Resum e

~
PDU

R:Reasonfordisconnection

SResume.ind (SA,CA) SResume.res

SResume.cnf

PDU Reply

WTPClass2 transaction

Source:Schiller

WSP/Bsessiontermination
client SSAP SDisconnect.req (R) SDisconnect.ind (R) server SSAP

SDisconnect.ind Discon nectP DU (R) WTPClass0 transaction

Source:Schiller

WSP/Bmethodinvoke
client SSAP SMethodInvoke.req (CTID,M,RU)
Metho dPDU

server SSAP SMethodInvoke.ind (STID,M,RU) SMethodInvoke.res (STID)


DU

SMethodInvoke.cnf (CTID) SMethodResult.ind (CTID,S,RH,RB) SMethodResult.res (CTID) WTPClass2 transaction


P Reply

SMethodResult.req (STID,S,RH,RB)

SMethodResult.cnf (STID) CTID:ClientTransactionID


M:MethodInvoked RU:RequestURI STID:ServerTransactionID S:ResponseStatus RH:ResponseHeader RB:ResponseBody Source:Schiller

WSP/BoverWTPmethodinvocation
client SSAP initiator TRSAP responder TRSAP server SSAP

SMethodInvoke.req TRInvoke.req Inv oke(M ethod) TRInvoke.ind SMethodInvoke.ind TRInvoke.res SMethodInvoke.res TRResult.req SMethodResult.req

U AckPD SMethodInvoke.cnf TRInvoke.cnf

SMethodResult.ind

eply) esult(R TRResult.ind R

SMethodResult.res TRResult.res

AckPD U

TRResult.cnf SMethodResult.cnf

Source:Schiller

WSP/BoverWTPasynchronous,unorderedrequests
client SSAP SMethodInvoke_1.req SMethodInvoke_2.req SMethodInvoke_2.ind SMethodInvoke_1.ind SMethodInvoke_3.req SMethodResult_1.ind SMethodResult_3.ind SMethodInvoke_4.req SMethodResult_4.ind SMethodResult_2.ind SMethodResult_1.req SMethodInvoke_3.ind SMethodResult_3.req SMethodResult_2.req SMethodInvoke_4.ind SMethodResult_4.req server SSAP

Source:Schiller

WSP/Bconfirmed/nonconfirmedpush
client SSAP SPush.ind (PH,PB)
PushP DU

server SSAP SPush.req (PH,PB)


PH:PushHeader PB:PushBody SPID:ServerPushID

WTPClass0 transaction client SSAP SConfirmedPush.ind (CPID,PH,PB) SConfirmedPush.res (CPID) WTPClass1 transaction

ConfP

server CPID:ClientPushID SSAP SConfirmedPush.req (SPID,PH,PB) PDU ush

SConfirmedPush.cnf (SPID)

Source:Schiller

WSP/BoverWDP
SUnitMethodInvoke.req (SA,CA,TID,M,RU) client SSAP server SSAP SUnitMethodInvoke.ind (SA,CA,TID,M,RU) SUnitMethodResult.req (CA,SA,TID,S,RH,RB) SUnitPush.req (CA,SA,PID,PH,PB)
Metho dPDU

SUnitMethodResult.ind (CA,SA,TID,S,RH,RB) SUnitPush.ind (CA,SA,PID,PH,PB)

P Reply PushP

DU

DU

WDPUnitdata service

Source:Schiller

WAPStackSummary
WDP
functionalitysimilartoUDPinIPnetworks

WTLS
functionalitysimilartoSSL/TLS(optimizedforwireless)

WTP
Class0:analogoustoUDP Class1:analogoustoTCP(withoutconnectionsetupoverheads) Class2:analogoustoRPC(optimizedforwireless) featuresofuseracknowledgement,holdon

WSP
WSP/B:analogoustohttp1.1(addfeaturesofsuspend/resume) method:analogoustoRPC/RMI featuresofasynchronousinvocations,push(confirmed/unconfirmed)

WAP:OngoingWork
WDP
TunneltosupportWAPwhereno(endtoend)IPbeareravailable supportforendtoendsecurity(extendingWTLSendpointbeyondWAP Gateway) interoperablebetweenWAPandInternet(publickeyinfrastructure) integratingSmartCardsforsecurityfunctions

WTLS

WTP
efficienttransportoverwirelesslinks(wirelessTCP) bearerselection/switching qualityofservicedefinitions

WSP
qualityofserviceparameters multicastdata,multimediasupport

WAE
Useragentprofiles:personalizefordevicecharacteristics,preferencesetc Pusharchitecture,asynchronousapplications Billing

WAP:HypevsReality
Lowbandwidthwirelesslinks
tcp/ipoverwirelesscanalsoaddresstheseproblems encodinginhttpcanalsoreducedatatransferonwirelesslinks

Limiteddevicecapabilities
Microbrowserisappropriatetoaddressthisproblem WTAIfeaturesarenotpresentintcp/ipdomain

ChallengesinWAP
adaptingtoapplicationsrichincontentandinteraction serviceguarantees interfacedesignandusability

OtherapproachesforWWWaccessthroughmobiles
iMode(fromNTTDoCoMo) WAPisaTRAP(http://www.freeprotocols.org/wapTrap)

ReferencesandResources
Books
Mobilecommunications:JochenSchiller,AddisonWesley2000 UnderstandingWAP:

OfficialWebsite(specifications)
www.wapforum.org

Technical/DeveloperInfoandtools
www.palopt.com.au/wap www.wap.net

Majorplayers
www.nokia.com/wap www.ericsson.se/wap phone.com

OpenSourceeffort
www.wapgateway.org(KannelWAPgatewayproject)

ThankYou

Thispresentationisavailableonlinefrom http://www.it.iitb.ernet.in/~sri/talks

SridharIyer KRSchoolofInformationTechnology IITBombay