Wireless Application Protocol WAP F. Ricci 2009/2010 Content Web - - PowerPoint PPT Presentation

wireless application protocol wap
SMART_READER_LITE
LIVE PREVIEW

Wireless Application Protocol WAP F. Ricci 2009/2010 Content Web - - PowerPoint PPT Presentation

Wireless Application Protocol WAP F. Ricci 2009/2010 Content Web and mobility Problems of HTML in the mobile context Wap 1.x Motivations Features Architecture Examples of WML (Wireless Markup Language) pages Wap


slide-1
SLIDE 1

Wireless Application Protocol WAP

  • F. Ricci

2009/2010

slide-2
SLIDE 2

Content

Web and mobility Problems of HTML in the mobile context Wap 1.x Motivations Features Architecture Examples of WML (Wireless Markup Language)

pages

Wap 2.0 XHTML MP Examples Differences with Wap 1.x

slide-3
SLIDE 3

Examples

slide-4
SLIDE 4

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!

slide-5
SLIDE 5

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

  • ften 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.

slide-6
SLIDE 6

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.

slide-7
SLIDE 7

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.

slide-8
SLIDE 8

WAP optional Proxy Model

In WAP1.* (1998-2000) a WAP proxy (in the

middle) was used (still required for push)

slide-9
SLIDE 9

WAP - Wireless Application Protocol

  • Goals

deliver Internet content and enhanced services to mobile

devices and users (mobile phones, PDAs)

independence from wireless network standards

  • pen 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: Open Mobile Alliance www.openmobilealliance.org

(Open Mobile Architecture + WAP Forum + SyncML + …)

slide-10
SLIDE 10

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.

slide-11
SLIDE 11

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.

slide-12
SLIDE 12

WAP 1.x - reference model and protocols

Bearers (GSM, CDPD, ...) Security Layer (WTLS) Session Layer (WSP) Application Layer (WAE) Transport Layer (WDP) TCP/IP, UDP/IP, media SSL/TLS HTML, Java HTTP Internet WAP WAE comprises WML (Wireless Markup Language), WML Script, WTAI etc. Transaction Layer (WTP) additional services and applications WCMP A-SAP S-SAP TR-SAP SEC-SAP T-SAP

slide-13
SLIDE 13

WAP - network elements

wireless network fixed network WAP proxy WTA server filter/ WAP proxy web server filter PSTN Internet Binary WML: binary file format for clients Binary WML Binary WML Binary WML HTML HTML HTML WML WML HTML

slide-14
SLIDE 14

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, ...

slide-15
SLIDE 15

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

slide-16
SLIDE 16

Hello World (WML)

<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.3//EN" "http://www.wapforum.org/DTD/wml13.dtd"> <wml> <card id="card1" title="WML Tutorial"> <p>Hello World</p> </card> <card id="card2" title="WML Tutorial"> <p>Welcome to the world of WML</p> </card> </wml>

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

slide-17
SLIDE 17

Fonts

<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.3//EN" "http://www.wapforum.org/DTD/wml13.dtd"> <wml> <card id="card1" title="Font Style"> <p> <b>Bold</b><br/> <i>Italic</i><br/> <u>Underline</u><br/> <small>Small</small><br/> <big>Big</big><br/> <em>Emphasis</em><br/> <strong>Strong</strong> </p> </card> </wml>

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

slide-18
SLIDE 18

Tables

<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.3//EN" "http://www.wapforum.org/DTD/wml13.dtd"> <wml> <card id="page1" title="Table in WML"> <p> <table columns="3"> <tr> <td>Cell A</td> <td>Cell B</td> <td>Cell C</td> </tr> <tr> <td>Cell D</td> <td>Cell E</td> <td>Cell F</td> </tr> </table> </p> </card> </wml> http://www.developershome.com/examples/wap/wml/tablesEg1.wml

slide-19
SLIDE 19

Links

<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.3//EN" "http://www.wapforum.org/DTD/wml13.dtd"> <wml> <card id="tutorial_tc" title="WML Tutorial"> <p> Hello, welcome to our WML tutorial.<br/><br/> Table of Contents:<br/> <anchor> <go href="linksEg2.wml#tutorial_ch1"/> Chapter 1: WML Introduction </anchor><br/> <anchor> <go href="linksEg2.wml#tutorial_ch2"/> Chapter 2: WML Deck and Card </anchor><br/> <anchor> <go href="linksEg2.wml#tutorial_ch3"/> Chapter 3: WML Document Structure </anchor><br/> <anchor> <go href="linksEg2.wml#tutorial_ch4"/> Chapter 4: WML Generic Metadata </anchor><br/> </p> </card> </wml>

http://www.developershome.com/examples/wap/wml/linksEg1.wml

wml page/deck wml card

slide-20
SLIDE 20

Going to a Card in the Deck

<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.3//EN" "http://www.wapforum.org/DTD/wml13.dtd"> <wml> <card id="tutorial_ch1" title="WML Tutorial Ch1"> <p> <em>Chapter 1: WML Introduction</em><br/><br/> ...<br/><br/> <anchor> <go href="#tutorial_ch2"/> Next chapter: WML Deck and Card </anchor> </p> </card> … <card id="tutorial_ch4" title="WML Tutorial Ch4"> <p> <em>Chapter 4: WML Generic Metadata</em><br/><br/> ...<br/><br/> <anchor> <go href="#tutorial_ch1"/> Back to chapter 1: WML Introduction </anchor> </p> </card> </wml>

slide-21
SLIDE 21

Input

<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.3//EN" "http://www.wapforum.org/DTD/wml13.dtd"> <wml> <card id="card1" title="WML Input Fields"> <p> Hello, welcome to our WML tutorial.<br/> What's your name? <input name="myname" maxlength="16"/> </p> </card> </wml>

slide-22
SLIDE 22

Events and Variables

<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.3//EN" "http://www.wapforum.org/DTD/wml13.dtd"> <wml> <card id="card1" title="WML Variable"> <onevent type="onenterforward"> <refresh> <setvar name="var1" value="variable 1"/> </refresh> </onevent> <p> What's your name? <input name="name" maxlength="16"/><br/> Which part of our WML tutorial do you like? <select name="tutorial_part"> <option value="Part 1">Part 1</option> <option value="Part 2">Part 2</option> <option value="Part 3">Part 3</option> </select><br/><br/> <a href="#card2">Next Card</a> </p> </card> <card id="card2" title="WML Variable"> <p> Your name is $(name).<br/><br/> You like $(tutorial_part) of our WML tutorial.<br/><br/> The value of var1 is <i>$(var1)</i>. </p> </card> </wml>

Variable declaration and initialization Variable assignment Variable declaration

slide-23
SLIDE 23

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

slide-24
SLIDE 24

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; };

slide-25
SLIDE 25

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");

slide-26
SLIDE 26

WTAI - example with WML only

<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card id="card_one" title="Tele voting"> <do type="accept"> <go href="#card_two"/> </do> <p> Please choose your candidate! </p> </card> <card id="card_two" title="Your selection"> <do type="accept"> <go href="wtai://wp/mc;$dialno"/> </do> <p> Your selection: <select name="dialno"> <option value="01376685">Mickey</option> <option value="01376686">Donald</option> <option value="01376687">Pluto</option> </select> </p> </card> </wml>

associate to the "accept" button the action to go to href="#card_two" associate to the "accept" button the action to dial dialno The mapping between a <do> element and a user interface element depends on the actual wireless device. Often associated to softkeys or items in the options menu that is brought up by pressing a softkey.

slide-27
SLIDE 27

WAP 2.0 (July 2001)

XHTML MP (XHTML Mobile Profile) is the markup language

  • f 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

slide-28
SLIDE 28

Hello World in WAP 2

<?xml version="1.0"?> <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml- mobile10.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>XHTML MP Tutorial</title> </head> <body> <p>Hello world. Welcome to our XHTML MP tutorial.</p> </body> </html>

http://www.developershome.com/examples/wap/xhtmlmp/helloWorldEg1.xhtml

slide-29
SLIDE 29

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.

slide-30
SLIDE 30

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.

slide-31
SLIDE 31

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

slide-32
SLIDE 32

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
  • f data with anchor links (it uses forms)

http://www.developershome.com/