42

Introduction and Overview

  • Upload
    durin

  • View
    25

  • Download
    0

Embed Size (px)

DESCRIPTION

WAP Architecture . Introduction and Overview. Client. Web Server. WAP Gateway. WML. CGI Scripts etc. WML Encoder. WML-Script. WSP/WTP. HTTP. WML Decks with WML-Script. WMLScript Compiler. WTAI. Protocol Adapters. Content. Etc. The WAP Architecture. - PowerPoint PPT Presentation

Citation preview

Page 1: Introduction and Overview
Page 2: Introduction and Overview

Introduction and Overview

WAP Architecture WAP Architecture

Page 3: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

Web Server

Content

CGIScripts

etc.

WM

L D

ecks

with

WM

L-Sc

ript

WAP Gateway

WML Encoder

WMLScriptCompiler

Protocol Adapters

Client

WML

WML-Script

WTAI

Etc.

HTTPWSP/WTP

The WAP Architecture

Page 4: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

Internet

Comparison between Internet and WAP Technologies

HTMLJavaScript

HTTP

TLS - SSL

TCP/IPUDP/IP

Wireless Application Protocol

Wireless ApplicationEnvironment (WAE)

Session Layer (WSP)

Security Layer (WTLS)

Transport Layer (WDP)

Other Services andApplications

Transaction Layer (WTP)

SMS USSD CSD IS-136 CDMA CDPD PDC-P Etc..Bearers:

Page 5: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

WAP specifies…Wireless Application Environment

WML Microbrowser WMLScript Virtual Machine WMLScript Standard Library Wireless Telephony Application Interface WAP Content Types

Wireless Protocols Wireless Session Protocol (WSP) Wireless Transport Layer Security (WTLS) Wireless Transaction Protocol (WTP) Wireless Datagram Protocol (WDP) Wireless network interface definitions

Page 6: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

WHY WAP ?WAP utilizes standard Internet markup language

technology (XML) The WML UI components map well onto existing

mobile phone user interfaces no re-education of the end-users leveraging market penetration of mobile devices

WAP utilizes plain Web HTTP 1.1 servers leveraging existing development methodologies CGI, ASP, JAVA, etc.

Page 7: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

Why is HTTP/HTML not enough?Big pipe - small pipe syndrome

Wireless network<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>

<HTML><HEAD><TITLE>NNN Interactive</TITLE><META HTTP-EQUIV="Refresh" CONTENT="1800, URL=/index.html">

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

010011010011110110010011011011011101010010011010

Content encoding

HTTP/HTML WAP

Page 8: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

WHY WAP ?

Good relationships with standards

WAP compliance profile for GSM. WAP is actively working with the W3C and IETF

HTML-NG (HTML Next Generation) HTTP-NG (HTML Next Generation)

Page 9: Introduction and Overview

WAP Application Environment WAP Application Environment

WML and WMLScriptWireless Telephony ArchitectureContent Formats

Page 10: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

WAE Goals

Network-neutral application environment;

For narrowband wireless devices;

With an Internet/WWW programming model;

And a high degree of interoperability.

Page 11: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

WAE Requirements

Internet standard technology

Device Independent

Network Independent

International Support

Page 12: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

Requirements (cont.)

Initial focus on phones Slow bearers Small memory Limited CPU Small screen Limited input model

Page 13: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

WAE First GenerationArchitecture

Application model Browser, Gateway, Content Server

WML Display language

WMLScript Scripting language

WTA Telephony services API and architecture

Content Formats Data exchange

Page 14: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

WML Second Generation

Extensions and enhancements Currently under development

Performance Enhancements Caching, etc.

Page 15: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

GatewayClientNetwork

Application

WSP/HTTP Request {URL}

WSP/HTTP Reply {Content}

WAE Abstract Network Architecture

Page 16: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

Web Server

Content

CGIScripts

etc.

WM

L D

ecks

with

WM

L-Sc

ript

WAP Gateway

WML Encoder

WMLScriptCompiler

Protocol Adapters

Client

WML

WML-Script

WTAI

Etc.

HTTPWSP/WTP

Network Example #1: WAP Gateway

Page 17: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

WAP Application Server

Content

ApplicationLogic

WM

L D

ecks

with

WM

L-Sc

ript

WML Encoder

WMLScriptCompiler

Protocol Adapters

Client

WML

WML-Script

WTAI

Etc.

WSP/WTP

Network Example #2:WAP Application Server

Page 18: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

WML

Tag-based browsing language: Screen management (text, images) Data input (text, selection lists, etc.) Hyperlinks & navigation support

W3C XML-based language

Inherits technology from HDML and HTML

Page 19: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

WML (cont.)Card metaphor

User interactions are split into cards Navigation occurs between cards

Explicit inter-card navigation model Hyperlinks UI Event handling History

State management and variables Reduce network traffic Results in better caching

Page 20: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

Handling User Input

Select lists Choose from a list of options

Input fields Enter a string of text or numbers

KEY variables Set by SELECT and INPUT elements How user input is passed to other cards and the application

server

Page 21: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

<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 City</OPTION> </SELECT></CARD>

Forecast1 Berlin2 Rome3>New City____________Find

The SELECT ElementDisplay a list of options

Each option may set the KEY variable and/or bind a task to the ACCEPT key

TITLE= dynamically sets the label string

Page 22: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

Other SELECT Attributes

MULTIPLE="TRUE" Allows user to pick multiple items UP.Browser reserves soft key for item-picker Key value is a semicolon-separated list

DEFAULT=key_value Default KEY value, if one is not chosen Sets cursor to the default choice entry,

if a corresponding OPTION / VALUE exists

Page 23: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

A Long Select List<CARD> <DO TYPE="ACCEPT"> <GO URL="get_addr.cgi?id=$recid"/> </DO> Addr [1..9] <SELECT KEY="recid" MULTIPLE="TRUE" DEFAULT="1;3;5"> <OPTION VALUE="1">Neil</OPTION> <OPTION VALUE="2">Kurt</OPTION> <OPTION VALUE="3">Jim</OPTION> <OPTION VALUE="4">Natasha</OPTION> <OPTION VALUE="5">Liz</OPTION> <OPTION VALUE="6">Aneesh</OPTION> <OPTION VALUE="7">Jennifer</OPTION> <OPTION VALUE="8">Jesse</OPTION> <OPTION VALUE="9">Dawnell</OPTION> <OPTION ONCLICK="#card2">More...</OPTION> </SELECT></CARD>

Page 24: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

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

Soc. Security:

287-33- _____________ NUM

Soc. Security:

287-33- 7629____________OK

The INPUT Element

Prompts user to enter a string of text Use FORMAT= to constrain input

UP.Browser reserves soft key fortext entry mode, if necessary

Page 25: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

Other INPUT Attributes DEFAULT=key_value

Default KEY variable (displayed to user)

FORMAT=format_specifier If omitted, free-form entry is allowed

EMPTYOK="TRUE" Browser will accept null input, even with format

TYPE="PASSWORD" Special entry mode handled by the browser

MAXLENGTH=number Maximum number of allowed characters

Page 26: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

FORMAT Control Characters N Numeric character A, a Alphabetic character X, x Numeric or alphabetic character M, m Any character

Leading backslash specifies forced characters Forced characters included in KEY variable value

Leading * specifies 0 or more characters Password: FORMAT=“mmmm*m”

Leading number specifies 0..N characters Zipcode: FORMAT=“NNNNN\-4N”

Page 27: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

<CARD> <DO TYPE="ACCEPT"> <GO URL="#c2"/> </DO> Continue <IMG LOCALSRC="righthand" ALT="forward..."/></CARD>

<CARD NAME="c2"> <IMG SRC="../images/logo.bmp" ALT="Unwired Planet"/> <BR/>Welcome!</CARD>

Displaying Images Insert app images or local icons within display text

1-bit BMP format

Images are ignored by non-bitmapped devices Check HTTP_ACCEPT for “image/bmp”

Page 28: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

Special WML Characters

Use character entities in display text&quot; "&amp; &&apos; '&lt; <&gt; >&nbsp; Blank space&shy; Soft hyphen (discretionary line break)

Replace the “&” character in URL strings URL="query.cgi?first=$fname&amp;last=$lname"

Use “$$” to display a single “$” character

Page 29: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

Doing more with WML

Setting card styles to create forms

Using variables to cache user data

Using card intrinsic events to trigger transparent tasks

Using timers

Securing WML decks

Bookmarking decks

Page 30: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

WMLScript

Scripting language: Procedural logic, loops, conditionals, etc. Optimized for small-memory, small-cpu devices

Derived from JavaScript™

Integrated with WML Powerful extension mechanism Reduces overall network traffic

Page 31: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

WMLScript (cont.)

Bytecode-based virtual machine Stack-oriented design ROM-able Designed for simple, low-impact implementation

Compiler in network Better network bandwidth use Better use of terminal memory/cpu.

Page 32: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

WMLScript Standard Libraries

Lang - VM constants, general-purpose math functionality, etc.

String - string processing functions

URL - URL processing

Browser - WML browser interface

Dialog - simple user interface

Float - floating point functions

Page 33: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

WMLScript Example Uses

Reduce network round-trips and enhance functionality.

Field validation Check for formatting, input ranges, etc.

Device extensions Access device or vendor-specific API

Conditional logic Download intelligence into the device

Page 34: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

Functions

WMLScript ExampleWMLScript is very similar to JavaScript

ProgrammingConstructs

Variables

function currencyConvertor(currency, exchRate) { return currency*exchangeRate; }

function myDay(sunShines) { var myDay; if (sunShines) { myDay = “Good”; } else { myDay = “Not so good”; }; return myDay;}

Page 35: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

Content Format Example

Image Element

<WML><CARD> Hello World!<BR/> <IMG SRC=“/world.wbmp” ALT=“[Globe]” /></CARD></WML>

Example Use of an Image:

Page 36: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

Push

Push is under development

Network-push of content Alerts or service indications Pre-caching of data

Goals: Extensibility and simplicity Security User friendly

Page 37: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

WAE Technical Collaboration

W3C Technical collaboration

CC/PP HTML-NG HTTP-NG Etc.

Page 38: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

Summary: WAE Status

First generation released Implementations are in progress Specifications include:

WAE, WML, WMLScript WBMP, WTA, WTAI, etc.

Second generation in development Focusing on:

Push, Interoperability, UAProf Telephony, Internationalization, etc.

Page 39: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

Wireless Transaction Service Access Point

Wireless Datagram Protocol

BearerService

D

BearerService

CBearerService

B

Transport Service Access Point (TSAP)

BearerService

A

Physical Layer Air Link Technology

Wireless Transaction Protocol

Wireless Session Protocol

Wireless Session Service Access Point

WCMP

WAP Protocol Layers

Page 40: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

Capabilities

Capabilities are defined for: Message Size, client and server Protocol Options: Confirmed Push Facility, Push Facility,

Session Suspend Facility, Acknowledgement headers Maximum Outstanding Requests Extended Methods Header Code Pages

Page 41: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

Suspend and Resume

Server knows when client can accept a push

Multi-bearer devices

Dynamic addressing

Allows the release of underlying bearer resources

Page 42: Introduction and Overview

©1999 Wireless Application Protocol Forum, Ltd.

Connection And Connectionless Modes

Connection-mode Long-lived communication Benefits of the session state Reliability

Connectionless Stateless applications No session creation overhead No reliability overhead