Developing Mobile Applications WAP 1
Organizations 3GPP (3G Partnership Program) IETF (Internet Enginering Task Force) W3C (World Wide Web Consortium) OMA (Open Mobile Aliance) IANA (Internet Assigned Number Authority) 2
3GPP An organizations consisting of mobile operators and network manufacturers. Is the standardization body for GSM/GPRS and UMTS. Defines the physical and network layer. Defines services such as: voice telephony SMS IP connectivity 3
IETF www.ietf.org Issues RFC (request for comment) Mainly dealing with layer three, four and five protocols for example IP/TCP/HTTP For web programing the most important are: RFC 2616 - HTTP 1.1 RFC 2396 - URI RFC 2045-9 - MIME 4
W3C Takes care of the seventh i.e. the presentation layer. Most important are XHTML-Basic XML CC/PP (device capabilities and user preferences) SMIL 5
OMA Collaboration between mobile operators and manufacturer to standardize a service layer. The older WAP Forum is now part of OMA. Builds to a large extent its work on standards from IETF and W3C Most important are: WAP/WML/xHTML-MP MMS DRM 6
IANA Is responsible for registration of names and numbers used in the Internet protocols. We are especially interested in the MIME types i.e. tokens that specify media formats. 7
To understand WAP......you need to understand HTTP 8
HTTP http://www.it.kth.se:80/~jm/test.html?greeting=hello http:// host : port / path? query web server Request web proxy Response www.it.kth.se p ~jm/test.html 9
Request Request line Method URL HTTP-version Header general header request header entity (body) header Body most requests do not have a body 10
Methods GET get the resource POST submit information to a resource HEAD only return the header CONNECT request for a TLS tunnel of a proxy PUT, DELETE, TRACE, OPTIONS 11
GET vs POST A GET method that uses a query in the URL should not change the resource. Two or more identical GET methods should result in the same response. When you're adding information to a resource you should us POST. 12
general header Cache control max age, no cache... Connection closing the connection Date Pragma : : 13
request header Accept media types Accept-Charset Accept-Encoding compression Accept-Language From email of user (this should be disabled) Host 14
Media types Text text/html text/vnd.wap.wml Images image/jpeg image/gif Wild cards text/* 15
Response HTTP-version Status-code Reason-phrase Header general response entity header Body the thing we asked for 16
Status code 2xx the request was granted and here is the content 3xx the page has moved to another URL 4xx 404 not found :-( 5xx server error 17
entity header Content-Type Content-Encoding Content-Language Expires for how long is the content valid Last-modified good to know if we only requested the header and have a cached copy 18
Why Another Protocol mobile link high latency > 1s low capacity < 40 kbps unreliable device limited computational power provisioning if we charge we might want to know if it was received 19
HTTP over TCP syn ack ack GET... HTTP 1.1 OK... fin ack fin ack 20
Even worse We might have to do a DNS lookup. This can be avoided if we have a HTTP proxy. A page could contain in-line objects that need to be fetched. Each object could need its own TCP connection (the only way in HTTP 1.0) Do we know that the content was delivered correctly? 21
WAP www.wapforum.org WAE WSP WTP WTLS WDP/WCMP application environment: WML, WTAI session : HTTP session, push transaction : notify, request/respond security: privacy, authentication (SSL/TSL) UDP/ICMP in all networks that support IP Standardization taken over by Open Mobile Alliance 22
WSP options Connection oriented (continuous) WSP over WTP over WDP Connectionless WSP over WDP Secure connection oriented WSP over WTP over WTLS over WDP Secure connectionless WSP over WTLS over WDP 23
Who uses what? A server can chose to use connection less or connection oriented connection when pushing out messages. A terminal is (sometimes manually) configured to use either or when browsing. The default is connection oriented. Built in applications on the device can be pre-configured to use either or. 24
WSP over WDP: connection less byte coded request 0x40... (get) 0x04... (ok) byte coded content 25
WSP over WDP: connection less Advantages no setup time compact: request can be coded in a SMS Disadvantage every request contains the same headers no confirmation what if the content does not fit into one packet 26
WSP over WTP: connection oriented connect ack get connect reply reply ack dis 27
WSP sessions When the session is initiated the server is informed of device capabilities. the accept-headers in the GET A session can be long lived and survives if the connection is broken. 28
WTP: reliable transactions Message oriented not a stream of bytes. Transactions unconfirmed push confirmed push confirmed request reply Reliable retransmission segmentation ordering 29
WAP gateway WBXML WML WSP WSP HTTP HTTP WTP WTP TCP TCP UDP UDP IP IP IP IP mobile net fixed net 30
Operator and the WAP gateway PLMN Internet web server APN Gateway is often provided by the operator but could be anywhere on the Internet. WAP gateway 31
Operate your own WAPgw Kannel open source, C Linux, Cygwin www.kannel.org SoWAP open source, Erlang any Erlang platform sowap.sourceforge.net 32
WAP gateway security WBXML WML WSP WSP HTTP HTTP WTP WTP TLS TLS WTLS WTLS UDP UDP TCP TCP IP IP IP IP 33
Security gap Trust the operator only trust one and limit your customer base trust any Host your own gateway users have to change WAP settings to access your service Don't develop applications that need security no banking, payment, intranet... 34
WAP 2.0 WAE WSP WTP WTLS UDP W-HTTP TLS W-TCP 35
W-HTTP Based on HTTP 1.1 A pipe-line of GET messages using the same TCP connection. Use compression of content. multipart content to include several objects in one reply 36
W-TCP Large initial window Selective ACK Time stamp to measure RTT Large packet size, path MTU discovery Explicit congestion notification Compatible with regular TCP 37
Direct connection W-HTTP HTTP W-TCP TCP IP IP 38
Proxy W-HTTP W-HTTP HTTP HTTP W-TCP W-TCP TCP TCP IP IP IP IP 39
Security W-HTTP TLS End to end security W-HTTP TLS W-TCP W-TCP TCP TCP IP IP IP IP 40
Wireless Application Environment the browse WML, wireless markup language security WIM, wireless identity module user profile UAProf, content negotiation the phone WTA, wireless telephony application 41
WAP 1.2.1 June 2000 WML 1.3 many sites are still WML 1.1 and some phones only support 1.1, difference are small WMLScript 42
WAP 2.0 Jan 2002 XHTML-MP graphics layout style sheets super/sub-set of XHTML-Basic ECMAscripts (newer releases) WML 1.3 WMLscript 43