Wireless Application Protocol WAP

F. Ricci 2008/2009 Content

‡ Web and mobility ‡ Problems of HTML in the mobile ‡ Wap 1.x „ Motivations „ Features „ Architecture „ Examples of WML (Wireless ) pages ‡ Wap 2.0 XHTML MP ‡ Examples ‡ Differences with Wap 1.x Examples World Wide Web and mobility

‡ Protocol (HTTP, Hypertext Transfer Protocol) and language (HTML, Hypertext Markup Language) of the Web have not been designed for mobile applications and mobile devices, thus creating many problems! ‡ Typical transfer sizes „ HTTP request: 100-350 byte „ responses avg. <10 kbyte, header 160 byte, GIF 4.1kByte, JPEG 12.8 kbyte, HTML 5.6 kbyte „ but also many large files that cannot be ignored ‡ The Web is not a file system „ Web pages are not simple files to download „ static and dynamic content, interaction with servers via forms, content transformation, push technologies etc. „ many hyperlinks, automatic loading and reloading, redirecting „ a single click might have big consequences! HTML and mobile devices

‡ HTML „ designed for computers with “high” performance, color high-resolution display, mouse, hard disk „ typically, web pages optimized for design, not for communication ‡ Mobile devices „ often only small, low-resolution displays, very limited input interfaces (small touch-pads, soft-keyboards) ‡ Additional “features” „ animated GIF, Java AWT, Frames, ActiveX Controls, Shockwave, movie clips, audio, ... „ many web pages assume true color, multimedia support, high-resolution and many plug-ins ‡ Web pages ignore the heterogeneity of end-systems! „ e.g., without additional mechanisms, large high- resolution pictures would be transferred to a mobile phone with a low-resolution display causing high costs. HTTP 1.0 and mobility

‡ Characteristics „ stateless, client/server, request/response „ needs a connection oriented protocol (TCP), one connection per request (some enhancements in HTTP 1.1) „ primitive caching and security ‡ Problems „ designed for large bandwidth (compared to wireless access) and low delay „ big and redundant protocol headers (readable for humans, stateless, therefore big headers in ASCII) „ uncompressed content transfer „ using TCP ‡ huge overhead per request (3-way-handshake) compared with the content, e.g., of a GET request ‡ slow-start problematic „ DNS lookup by client causes additional traffic. WAP Programming Model

‡ Aligned with the Web Programming Model, uses the Pull Model ‡ Add telephony support with WTA (Wireless Telephony Application) and enabling a Push Model, where a server can proactively send content to the client. WAP optional Proxy Model

‡ In WAP1.* (1998-2000) a WAP proxy (in the middle) was used (still required for push) WAP - Wireless Application Protocol

‡ Goals „ deliver Internet content and enhanced services to mobile devices and users (mobile phones, PDAs) „ independence from wireless network standards „ open for everyone to participate, protocol specifications will be proposed to standardization bodies „ applications should scale well beyond current transport media and device types and should also be applicable to future developments ‡ Platforms „ e.g., GSM (900, 1800, 1900), CDMA IS-95, TDMA IS-136, 3rd generation systems (IMT-2000, UMTS, W-CDMA, cdma2000 1x EV-DO, …) ‡ Forum „ was: WAP Forum, co-founded by Ericsson, Motorola, Nokia, Unwired Planet, further information www.wapforum.org „ now: www.openmobilealliance.org (Open Mobile Architecture + WAP Forum + SyncML + …) WAP - scope of standardization

‡ Browser „ “micro browser”, similar to existing, well-known browsers in the Internet ‡ Script language „ similar to Java script, adapted to the mobile environment ‡ WTA/WTAI „ Wireless Telephony Application (Interface): access to all telephone functions ‡ Content formats „ e.g., business cards (vCard), calendar events (vCalender) ‡ Protocol layers „ transport layer, security layer, session layer etc. WAP Push

‡ This service allows content to be sent or "pushed" to devices by server-based applications via a Push Proxy ‡ WAP Push messages are specially formatted SMS messages that display an alert message to the user, and give the user the option of connecting directly to a particular URL via the mobile phone's WAP browser ‡ Push functionality is especially relevant to real-time applications – e.g. that send notifications as messaging, stock price and traffic update alerts ‡ Without push, these applications would require the devices to poll application servers for new information or status ‡ In wireless environments such polling activities would constitute inefficient and wasteful use of the resources of wireless networks. WAP 1.x - reference model and protocols

InternetA-SAP WAP HTML, Java Application Layer (WAE) additional services and applications S-SAP Session Layer (WSP) HTTP TR-SAP Transaction Layer (WTP) SEC-SAP SSL/TLS Security Layer (WTLS) T-SAP

TCP/IP, Transport Layer (WDP) WCMP UDP/IP, media Bearers (GSM, CDPD, ...)

WAE comprises WML (Wireless Markup Language), WML Script, WTAI etc. WAP - network elements

fixed network wireless network

WML Binary WML Internet HTML WAP filter proxy

HTML WML HTML filter/ Binary WML WAP web HTML proxy server

WTA Binary WML server PSTN

Binary WML: binary file format for clients WAE - Wireless Application Environment

‡ Goals „ network independent application environment for low- bandwidth, wireless devices „ integrated Internet/WWW programming model with high interoperability ‡ Requirements „ device and network independent, international support „ manufacturers can determine look-and-feel, user interface „ considerations of slow links, limited memory, low computing power, small display, simple user interface (compared to desktop computers) ‡ Components „ architecture: application model, browser, gateway, server „ WML: XML-Syntax, based on card stacks, variables, ... „ WMLScript: procedural, loops, conditions, ... (similar to JavaScript) „ WTA: telephone services, such as call control, text messages, phone book, ... (accessible from WML/WMLScript) „ content formats: vCard, vCalendar, Wireless Bitmap, WML, ... Wireless Markup Language (WML)

‡ WML follows deck and card metaphor „ WML document consists of many cards, cards are grouped to decks „ a deck is similar to an HTML page, unit of content transmission „ WML describes only intent of interaction in an abstract manner „ presentation depends on device capabilities ‡ Features „ text and images „ user interaction „ navigation „ context management Hello World (WML)

Hello World

Welcome to the world of WML

http://www.developershome.com/examples/wap /wml/helloWorldEg1.wml Fonts

Bold
Italic
Underline
Small
Big
Emphasis
Strong

http://www.developershome.com/examples/wap/wml/fontStyleEg1.wml Tables

Cell A Cell B Cell C
Cell D Cell E Cell F

http://www.developershome.com/examples/wap/wml/tablesEg1.wml Links

wml page/deck wml card

Hello, welcome to our WML tutorial.

Table of Contents:
Chapter 1: WML Introduction
Chapter 2: WML Deck and Card
Chapter 3: WML Document Structure
Chapter 4: WML Generic Metadata

http://www.developershome.com/examples/wap/wml/linksEg1.wml Going to a Card in the Deck

Chapter 1: WML Introduction

...

Next chapter: WML Deck and Card

Chapter 4: WML Generic Metadata

...

Back to chapter 1: WML Introduction

Input

Hello, welcome to our WML tutorial.
What's your name?

Events and Variables

Variable declaration and initialization Variable assignment Variable declaration

What's your name?

Which part of our WML tutorial do you like?

Next Card

Your name is $(name).

You like $(tutorial_part) of our WML tutorial.

The value of var1 is $(var1).

WMLScript

‡ Complement to WML ‡ Provides general scripting capabilities ‡ Features „ validity check of user input ‡ check input before sent to server „ access to device facilities ‡ hardware and software (phone call, address book etc.) „ local user interaction ‡ interaction without round-trip delay „ extensions to the device software ‡ configure device, download new functionality after deployment WMLScript - example function pizza_test(pizza_type) { var taste = "unknown"; if (pizza_type = "Margherita") { taste = "well... "; } else { if (pizza_type = "Vulcano") { taste = "quite hot"; }; }; return taste; }; Wireless Telephony Application (WTA)

‡ Collection of telephony specific extensions ‡ Extension of basic WAE application model „ content push ‡ server can push content to the client „ handling of network events ‡ client side there is a table indicating how to react on certain events from the network „ access to telephony functions ‡ any application on the client may access telephony functions ‡ Example „ calling a number (WML) wtai://wp/mc;07216086415 „ calling a number (WMLScript) WTAPublic.makeCall("07216086415"); WTAI - example with WML only

associate to the "accept" button the action to go to href="#card_two"

Please choose your candidate!

associate to the "accept" button the

Your selection: action to dial dialno

WAP 2.0 (July 2001)

‡ XHTML MP (XHTML Mobile Profile) is the markup language of WAP 2.0. XHTML MP is a subset of XHTML (XHTML Basic + specific add-ons) ‡ In addition to the WAP stack, adds a stack based on common Internet stack based on TCP, TLS and HTTP (with „Wireless Profile“) ‡ New applications „ Color graphics „ Animation „ Large file download „ Location based services „ Synchronization with PIMs „ Pop-up/context sensitive menus ‡ Goal: integration of WWW, Internet, WAP, i-mode Hello World in WAP 2

XHTML MP Tutorial

Hello world. Welcome to our XHTML MP tutorial.

http://www.developershome.com/examples/wap/xhtmlmp/helloWorldEg1.xhtml Advantages of WAP 2

‡ If you are familiar with web technologies such as HTML, XHTML, and CSS, you can start developing your WAP site almost immediately ‡ The same development tools can be used to develop both web sites and WAP sites ‡ Ordinary web browsers can be used to view your WAP site during the development process ‡ HTML / XHTML pages on your web site can be converted to XHTML MP documents with minor changes or even without any changes ‡ XHTML MP supports WAP CSS, which enables the separation of content and presentation in different files ‡ With XHTML MP and WAP CSS, you have more control over the presentation: e.g., you can control borders, backgrounds, margins, padding, font sizes, font families and font colours. WAP 2.0 Enhancements

‡ User Agent Profile (UAProf) – This service provides a mechanism for describing the capabilities of clients and the preferences of users to an application server ‡ Based on the Composite Capabilities / Preference Profiles (CC/PP) work of the W3C, UAProf supports the client-server transaction model by sending client and user information to servers with the request ‡ This information permits the servers to adapt their content accordingly in preparation for the response ‡ Recognizing the importance of user's privacy, personal information submitted in these requests may be controlled by the user ‡ Data Synchronization – The SyncML messages are supported over both the WSP (Wireless Session Protocol) and HTTP/1.1 protocols. UAProf

‡ UAProf (User agent profile) is an XML document that contains information about the user agent type and device capabilities ‡ User agent profiles are stored in a server called the profile repository (often maintained by a mobile device manufacturer) ‡ The URL that points to the user agent profile of a mobile device can be found in the headers of requests sent by the mobile device: x-wap-profile header „ Example, the UAProf of Nokia N95 8Giga:

„ http://nds.nokia.com/uaprof/NN95_8GB-1r100.xml WML Features Lost in XHTML MP

‡ XHTML MP does not support decks and cards ‡ XHTML MP does not support timers ‡ XHTML MP does not support events ‡ XHTML MP does not support variables ‡ XHTML MP does not support client-side scripting ‡ XHTML MP does not support programmable softkeys ‡ XHTML MP does not support the format attribute for input fields (to restrict the input type) ‡ XHTML MP does not support posting of data with anchor links (it uses forms)

http://www.developershome.com/