Wireless Application Protocol (WAP) 1
Motivation and Overview Mobile radio networks and cellular phones possess special properties and requirements Display: limited sizes and presented colors, numerical keyboard, lower processor performance and storage capacity... Networks: low data rates, high delays and costs WAP enables the use of several carriers TCP/IP, UDP/IP, USSD, SMS,... Integration of WWW and Mobile Communication Standardized by WAP-Forum (www.wapforum.org), initiated by Ericsson, Nokia, Motorola USSD - unstructured supplementary service data (GSM) SMS - short message service (GSM) 2
Why HTTP/HTML doesn t suffice? Big pipe - small pipe syndrome Internet Mobile radio networks HTTP/HTML <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='htt p://nnn.com';"> <A NAME="#top"></A> <TABLE WIDTH=599 BORDER="0"> <TR ALIGN=LEFT> <TD WIDTH=117 VALIGN=TOP ALIGN=LEFT> <HTML> <HEAD> <TITLE >NNN Intera ctive< /TITLE > <META HTTP- EQUIV= "Refre sh" CONTEN T="180 0, URL=/i ndex.h tml"> WAP <WML> <CARD> <DO TYPE="ACCEPT"> <GO URL="/submit?Name=$N"/> </DO> Enter name: <INPUT TYPE="TEXT" KEY="N"/> </CARD> </WML> Converting to binary format 010011 010011 110110 010011 011011 011101 010010 011010 3
WAP Standard Environment = Wireless Application Environment (WAE) WML (Wireless Markup Language) micro-browser WMLScript virtual machine WMLScript standard library Wireless Telephony Application (WTA) Interface Contents: WAP Content Types Protocol layer architecture Wireless Session Protocol (WSP) Wireless Transaction Protocol (WTP) Wireless Datagram Protocol (WDP) Interface definitions for mobile networks 4
Comparison: Internet/WWW and WAP Internet HTML JavaScript HTTP Wireless Application Protocol Wireless Application Environment (WAE) Session Layer (WSP) Transaction Layer (WTP) other services and applications TLS - SSL Security Layer (WTLS) TCP/IP UDP/IP Transport Layer (WDP) Carrier: SMS USSD GPRS CDMA CDPD etc.. SMS - Short Message Service (GSM), GPRS - General Packet Radio Service (GSM II+), CDMA - Code Division Multiple Access, CDPD - Cellular Digital Packet Data 5
Wireless Markup Language - WML(1) HTML-like page markup language different font styles are available, also tables and graphics, but limited based on W3C-XML Deck/Card-metaphor interactions-/selection possibilities are separated in Cards navigation (anchor: #) takes place between Cards Deck-stack corresponds to a WML-file and is unit of download (efficiency) W3C - World Wide Web Consortium, XML - extensible Markup Language 6
Wireless Markup Language - WML(2) explicit navigation model between Decks Hyperlinks Events from user interface History variables and status-management variable status can be maintained over longer interaction periods 7
WML text styles <wml> <card id= Card1 title= Text Styles > <p align="left"> <i>italic</i>, <b>bold</b>,<br> <big>big</big>, <small>small</small>, <u>underlined</u> </p> </card> </wml> Card Deck 8
WML-example (1) <wml> <card id= Card1" title= Currency" newcontext="true"> <p> Amount: <input format="*n" name= amount" title= Amount:"/> From: <select name= from value=" USD title= From:"> <option value="eur">euro</option>... <option value="usd">us Dollar</option> </select> To: <select name=... <br/> = <u>$(conv)</u> <do type="accept" label= Calculate"> <go href= bsp.wmls#convert('conv', '$(from)','$(to)',$(amount))"/> </do> <do type="help" label="help"> <go href="#card1_help"/> </do> </p> </card>... Variables Selected input Script call Navigation 9
WML-example (1): Processing 10
WML-example (2) <card id="card1_help" title="help"> <onevent type="onenterforward"> <go href="bsp.wmls#getinfodate('date')"/> Events </onevent> processing <p> Currency exchange rates stem from Federal Reserve Bank of New York and are from $(date). <do type="prev" label= Back"> <prev/> </do> </p> </card> </wml> 11
WMLScript: Overview scripting language, similar to JavaScript procedures, loops, conditions,... optimized for devices with low storage capacity and low CPUperformance integrated with WML, enables: reduction of network workload; validation of inputs access to vendor-specific APIs programming of conditional logic Bytecode-based Virtual Machine stack-oriented design ROM-able; designed with regard to simple implementation Compiler in network better utilization of network capacity and end-device storage Standard library basic functionality for processing of strings, URLs,... 12
WMLScript-example extern function getinfodate(varname) { WMLBrowser.setVar(varName, June,3"); WMLBrowser.refresh(); } extern function convert(varname,from,to,amount) { var multiplier = 0.0;... if (from == EUR") {... if (to == EUR") multiplier = 1.0; else if (to == RUR") multiplier = EUR_RUR;... } else if... WMLBrowser.setVar(varName,returnString); WMLBrowser.refresh(); } Procedures Variables Statements 13
Wireless Telephony Application - WTA Offers mechanisms for combined telephony applications; primary focus: operators/providers and vendors WTAI comprises: call control, messaging, interface to phonebook, events processing etc. own Client/Server-interaction model event signalization security via separation browser and port separated WTA Browser offers enhancements of standard WML/WMLScriptbrowsers own WTAI (... Interface) as part of WMLScript 14
WAE Content Formats WAE defines uniform formats Virtual business cards, so called IMC vcard Standard Date entries, IMC vcalendar Standard graphics, WBMP (Wireless BitMaP) compiled WML, WMLScript Goal: Interoperability IMC - Internet Mail Consortium 15
WAP layer architecture Wireless Session Protocol (WSP) Wireless Transaction Protocol (WTP) Wireless Transport Layer Security (WTLS) Wireless Datagram Protocol (WDP) Carrier A Adaptation Carrier Service A Carrier B Adaptation Carrier Service B Carrier C Adaptation Carrier Service C Carrier D Service D Physical Layer Air Link Technology 16
WAP abstract network architecture WSP/HTTP Request {URL} Client Gateway Network Application WSP/HTTP Reply {Content} 17
Specific Options User Agent Profiling Content adaptation to user, end-device etc. Push-model network initiates delivery of contents Options for performance improvement Caching,... 18
Example: WAP Gateway Client WML WML- Script WTAI etc. WAE User Agent WSP/WTP WAP Gateway WML Encoder WMLScript Compiler Protocol adapter HTTP Web Server CGI Scripts etc. Contents WML Decks, WML-Script 19
Example: WAP Application Server Client WML WML- Script WTAI etc. WAE User Agent WSP/WTP WAP Application Server WML Encoder WMLScript Compiler Protocol adapter Application logic Contents WML Decks, WML-Script 20
Wireless Session Protocol (WSP) supports Client/Server context (shared state), optimization of content transmission offers semantics and mechanisms based on HTTP and improvements for use in mobile radio networks: binary encoding negotiations of supported characteristics session suspend/resume: release of resources multiple asynchronous transactions connectionless service confirmed and unconfirmed network-initiated delivery (Push) 21
Wireless Transaction Protocol (WTP) Properties: packet oriented; robust data transmission no explicit connection set up and connection release data are transmitted already with the first packet concatenation of packets possible Transaction = Interaction of Initiator and Responder; transaction classes: Class 0: non-robust datagram-service for instance for Push during a session transactions are closed after transmission of Invoke Class 1: robust datagram-service transactions are closed after transmission of Invoke Class 2: robust datagram-service with robust Invoke- and robust Resultmessages transactions are closed via the Initiator after confirmation of the Responder 22
Wireless Datagram Protocol (WDP) provides connectionless, non-robust datagram-service is substituted by UDP, if IP is the a carrier adaptation to the carrier takes place in the Adaptation Layer supports port numbers 23
Wireless Transport Layer Security (WTLS) enables secure connections, using protocol elements of known, secure Internet-protocols (TLS) provides mechanisms for encryption, strong authentication, integrity and key management corresponding to guidelines of national authorities offers end-to-end security Future extensions shall support Server- and Clientcertificates, for instance via additional chip-cards in mobile phones, so called WIM - Wireless Identification Module 24
WTLS: Examples UBS (Switzerland) Data encrypted with WTLS class 2, 128 bit 3DES UBS authentication against mobile phone via certificates with a key size of 1024 bit participant authentication against UBS via WAP like via Internet with agreement number, password and transaction number automatic connection release (Timeout) after ten minutes without interaction participant is demanded to reauthenticate with password and transaction number Deutsche Bank (Germany) WTLS (Wireless Transport Layer Security) end-to-end-encryption similar features Sources: UBC.ch,db24.de 25
WAP: Examples Bond/Security-Order processing: Consors, Advance Bank, Deutsche Bank Mobile Yellow Pages Orange Telecom Mobile Timetable: wap.hafas.de Mobile access to enterprise data Mobile Auctioning: wap.yahoo.de, wap.ebay.de Mobile Last Minute Bargain : 12snap via Vodafone Mobile marketplaces/stock exchanges (Mobile Brokerage): http://www.amazon.de/ Football / soccer: www.wapgoal.com 26
WAP Example: Access to enterprise data Server WAP-Gateway HTTP Web-Server WML Java-Servlet-API Server Dir-X-wap LDAP/X.500- Directory- Service Dir-X-Servlet LDAP-Client LDAP WMLpages Profiles 27
WAP Example: Access to enterprise data Example: Siemens Dir-X Meta-Directory Service as a base of a corporate information pool software-package consists of Directory Server (Dir-X-Metahub) and several Clients, is completely LDAP v3 compatible, based on X.500 Two gateways for: Dir-X-Web and Dir-X-wap secure access also via WAP available, because all security properties of Directory-Servers are handed-on to mobile user registration via phone number and password, the authorization information is stored in user profiles within the system Java-Servlets implement the kernel components of WAP access (transformation of requests and results) Dir-X-wap-Server: Servlet-components implement communication with the Web-Server LDAP-Client enables data exchange between the Dir-X-WAP-Server and the directory service 28
WAP-Improvements: WAP2.0 (1) Oriented towards GPRS and 3G cellular/umts Improvements: color graphics and Pictograms location-specific content, navigational functions and user-friendly menus animation representations and streaming media Multimedia Messaging Service (MMS) large-file downloading (music) synchronization of user information with personal information manager software on a desktop PC at a remote location Source: http://www.wapforum.org 29
WAP-Improvements: WAP2.0 (2) WAP 2.0 builds upon current Internet standards: XHTML, TCP/IP, HTTP and Transport Layer Security (TLS) User Agent Profile (UAPROF) Application development Easier development of WAP applications More comfortable user environment Migration aspects WAP2.0 offers a migration to XHTML (Extensible Hypertext Markup Language) and TCP (Transmission Control Protocol) Supporting XHTML, WAP 2.0 reduces development costs, allowing developers to write applications for both PC and WAP Security offers higher security level due to end-to-end encryption (from the mobile device to the server) 30
WAP 2.0 (3) Service Inquiry External Services Security Cryptolibraries MMS Content- Formats WAE User Agent WML, XHTML Push Application Framework Provisioning Navigation Discovery Service Lookup Authentication Identification PKI (Public Key Infrast.) Secure Transport Secure Bearers Synchronisation Hypermedia Transfer (WTP, WSP, HTTP) Datagrams (WDP, UDP) Push Capability Negotiation Streaming Cookies MMS Messages Connections (TCP with wireless profile) Bearer 1 Bearer 2 Bearer 3 4 3 2 1 Protocol Framework 1 Bearer Layer; 2 Transport Layer; 3 Transfer Layer; 4 Session Layer 31
WAP: Summary WML does not bring the whole Internet s diversity to a mobile phone there are no satisfactory billing models at the moment; the datarates are too low even with GPRS limited input and selection possibilities require reconsidering of interaction semantics, WAP is not suited for many applications, for instance catalogs with a large selection -> PDAs, appliances, voice input and -recognition with introduction of data services with higher data-rates WAP could lose its relevance -> XHTML however WAP means a first step towards independence from PCs for access to Internet content -> multi-dimensional distribution channels for information WAP also means access to a large user population (potentially all mobile radio participants) 32
i-mode: Overview i-mode is a product and a trademark of NTT-DoCoMo NTT-DoCoMo started in the end of the 90s with a proprietary development: i-mode, although NTT- DoCoMo is a member of WAP-Forum itself Today i-mode has got a large number of registered users (over 33 million), very successful in Japan i-mode is packet oriented always online, no time delays to dial-up billing regarding data volumes and not regarding to time simple page markup language compact HTML (chtml) Migration to XHTML (like WAP 2.0); convergence Source: http://www.nttdocomo.com 33
compact HTML Simplified HTML (no frames or tables) pictures can be displayed only in GIF-format, max. 5 KB per page. GIFpictures must not larger than 120*128 dots (little display) also animated GIFs 256 colors (capable of Display) 166 additional pictograms Fine Heartbreak Compact HTML sites look like normal HTML, therefore also normal Browsers like Netscape display them i-mode on a mobile phone an i-mode screenshot 34
i-mode network architecture Connection Network [NSP/Corporate LAN] PDC: Personal Digital Cellular Telecommunication System PDC-P: PDC Packet System M-SCP PGW M-PGW i-mode Server IP Internet IP PPM PPM BS: Base Station IP: Information Provider BS BS BS BS M-PGW: Mobile Packet Gateway Module MS: Mobile Station PDC-P Network MS http://www.nttdocomo.co.jp/ MS MS MS M-SCP: Mobile-Service Control Point NSP: Network Service Provider PGW: Packet Gateway Module PPM: Packet Processing Module 35
i-mode network architecture i-mode Server: - consists of multiple server systems (B-,C-,M-Max..), each server system is responsible for special tasks - represents the contents of Information Providers, offers Internet-Mail and i-mode-mail, Internet Gateway M-PGW (Mobile Message-Packet Gateway Module): transforms the protocols: TCP with i-mode-server and TLP (Transport Layer Protocol) with PPM PPM (Packet Processing Module): implements the packet connection with the mobile end-devices M-SCP (Mobile-Service Control Point): authentication of user data (similar to voice communication) PGW (Packet Gateway Module): transition to other networks, for instance to offer a Virtual Private Network (VPN) 36
Java for mobile phones basis: Java 2 micro edition and Java MIDP (Mobile Information Device Profile) downloading of Java-programs (ca. 30-50 kbyte); color representation; applications, also games etc. billing via micro-payment of operator (ca. 1-5 per application) products e.g. of Nokia, Ericsson, Siemens; support through big operators 37