WAP and WML - CS

Download Report

Transcript WAP and WML - CS

WAP and WML
DBI – Representation and
Management of Data on the Internet
Internet Connectivity Outlook
Millions
1,400
1,200
1,000
More handsets than PCs
connected to the Internet by
the end of 2003!
Projected
cellular
subscribers
Projected Web
handsets
800
600
Projected PCs
connected to
the Internet
400
(Dataquest 10/98)
200
0
1996 1997 1998 1999 2000 2001 2002 2003 2004 2005
'putting the Internet in everyone's pocket'
WAP
• WAP = Wireless Application Protocol
• A protocol and set of specifications to
connect wireless aplications to the Web
Needs for WAP
• Wireless networks and phones
– have specific needs and requirements
– not addressed by existing Internet technologies
• WAP enables any data transport
– TCP/IP, UDP/IP, GUTS (IS-135/6), SMS, or USSD
• The WAP architecture
– several modular entities
– together form a fully compliant Internet entity
– all WML content is accessed via HTTP 1.1 requests
Advantages of WAP
• WAP utilizes standard Internet markup language
technology (XML)
• Optimizing the content and airlink protocols
• 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
– CGI, ASP, NSAPI, JAVA, Servlets, etc.
The Specification Includes
•
•
•
•
•
WAP Architecture
Wireless Application Environment
Protocol Layers
Interoperability
Security
WAP Architecture
Web Server
WAP Gateway
WML
WML Encoder
WMLScript
WSP/WTP
WMLScript
Compiler
HTTP
CGI
Scripts
etc.
WTAI
Protocol Adapters
Etc.
Content
WML Decks
with WML-Script
Client
Internet vs. WAP
Wireless Application Protocol
Internet
HTML
JavaScript
Other Services and
Applications
Wireless Application
Environment (WAE)
Session Layer (WSP)
HTTP
Transaction Layer (WTP)
Security Layer (WTLS)
TLS - SSL
Transport Layer (WDP)
TCP/IP
UDP/IP
Bearers:
SMS
USSD
CSD
IS136
CDMA
CDPD PDC-P
Etc..
WAP Specifies
• Wireless Application Environment
–
–
–
–
–
WML Microbrowser
WML
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
Big Pipe - Small Pipe Syndrome
Internet
<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>
HTTP/HTML
Wireless network
<WML>
WAP
<CARD>
<DO TYPE="ACCEPT">
<GO URL="/submit?Name=$N"/>
</DO>
Enter name:
<INPUT TYPE="TEXT" KEY="N"/>
</CARD>
</WML>
Content encoding
<HTML>
<HEAD>
<TITLE>
NNN
Interac
tive</T
ITLE>
<META
HTTPEQUIV="
Refresh
"
CONTENT
="1800,
URL=/in
dex.htm
l">
010011
010011
110110
010011
011011
011101
010010
011010
WAP Application
Environment Goals
• Network- neutral application environment
• For narrowband wireless devices
• With an Internet/WWW programming
model
• And a high degree of interoperability
Device-Side Problems
•
•
•
•
Device Independent
Network Independent
Different vendors – requires interfaces
Initial focus on phones
–
–
–
–
–
Slow reactions
Small memory
Limited CPU
Small screen
Limited input model
WML
Wireless Markup Language
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 (Handheld
Device Markup Language) and HTML
WML (cont.)
• Card metaphor
– User interactions are split into cards
– Navigation occurs between cards
– Cards are put in to decks
• Explicit inter-card navigation model
– Hyperlinks
– User interface Event handling
– History
• State management and variables
– Reduce network traffic
– Results in better caching
All Decs Must Contain…
• Document prologue
– XML & document type declaration
• <WML> element
– Must contain one or more cards
<?xml version="1.0"?>
<!DOCTYPE WML PUBLIC "-//WAPFORUM//DTD WML 1.0//EN"
"http://www.wapforum.org/DTD/wml.xml">
<WML>
...
</WML>
Hello World Example
<?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="Card1" title="The dbi Course">
<p>
<!-- Hello World example -->
Hello World
</p>
</card>
</wml>
<card> </wml>
<wml>
</card>-It defines the beginning and the ending
of a
the
card
page, like <html> </html>
== The DBI Course ==
Hello World
__________________________________________
Back
The Result On a Different Device
Detecting a Click
<?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=“Card1” title=“The DBI Course”>
<do type=“accept” label=“Next”>
<go href=“#Card2”/>
</do>
<p> Select Next to go to Card 2. </p>
</card>
<card id=“Card2” title=“The DBI Course”>
<p> I'm Card 2. </p>
</card>
</wml>
== The DBI Course ==
== The DBI Course ==
Select Next to go to
I am Card 2.
Card 2.
__________________________________________
__________________________________________
Next
Back
Next
Back
<?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="Intro" ontimer="#Main" title=“DBI
Course">
<timer value="150"/>
<p> Welcome to the dbi site!! We will bring
you to our main page after 15 seconds. </p>
</card>
<card id="Main" title="Menu">
<p> This is our main page. Under
construction. </p>
Timer
</card>
After 15
seconds
== DBI Course ==
Welcome
the dbi
===
Menuto
===
site!! is
This
We
ourwill
main
bring
page.
you
to our main
page after
Under
construction.
15 seconds.
___________________________
___________________________
Back
Back
<?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="main" title=“DBI Example">
<do type="accept" label="Next">
<go href="#wel"/> </do>
<p> Please enter your name:
<input type="text" name="name"/> </p>
</card>
<card id="wel" title="Welcome">
<do type="prev" label="Back"> <prev/>
</do>
<p> Your name is $(name). Click BackInput
to go
to
Choosing the “Next”
Entering a name Choosing the “Options”
<?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="main" title=“DBI Example">
<do type="accept" label=“Send">
<go method="post"
href="www.cs.huji.ac.il/register.cgi">
<postfield name="firstname"
value="$(first)"/>
<postfield name=“course" value=“dbi"/>
</go> </do>
<p> Please enter your first name:
<input type="text" name="first"/> </p>
</card>
</wml>
Sending Data to the Server
WML Example
Navigatio
n
Variables
Input
Elements
<WML>
<CARD>
<DO TYPE=“ACCEPT”>
<GO URL=“#eCard”/>
</DO
Welcome!
</CARD>
<CARD NAME=“eCard”>
<DO TYPE=“ACCEPT”>
<GO URL=“/submit?N=$(N)&S=$(S)”/>
</DO>
Enter name: <INPUT KEY=“N”/>
Choose speed:
<SELECT KEY=“S”>
<OPTION VALUE=“0”>Fast</OPTION>
<OPTION VALUE=“1”>Slow</OPTION>
<SELECT>
</CARD>
</WML>
Card
Deck
A Deck of Cards
<WML>
<CARD>
<DO TYPE="ACCEPT" LABEL="Next">
<GO URL="#card2"/>
</DO>
DBI Portal.<BR/>Directory
</CARD>
<CARD NAME="card2">
<DO TYPE="ACCEPT">
<GO URL="?send=$type"/>
</DO>
Services
<SELECT KEY="type">
<OPTION VALUE="em">Email</OPTION>
<OPTION VALUE="ph">Phone</OPTION>
<OPTION VALUE="fx">Fax</OPTION>
</SELECT>
</CARD>
</WML>
DBI Portal.
Directory
_____________
Next
Services
1>Email
2 Phone
____________
OK
Defining the
Navigation Path
<CARD>
<DO TYPE="ACCEPT" LABEL="Next">
<GO URL="#card2"/>
</DO>
First name:
<INPUT KEY="fname"/>
</CARD>
<CARD NAME="card2">
<DO TYPE="ACCEPT" LABEL="Done">
<GO URL="?get=person" METHOD="POST"
POSTDATA="first=$fname&amp;last=$lname"/>
</DO>
Last name:
<INPUT KEY="lname"/>
</CARD>
The DO Element
• Binds a task to a user action
– Action type:
– Label:
– Task:
– Destination:
– Post data:
ACCEPT, OPTIONS, HELP
PREV, DELETE, RESET
Text string or image (optional)
GO
PREV, REFRESH, NOOP
URL
if METHOD=POST
<DO TYPE="ACCEPT" LABEL="Next">
<GO URL="http://www.mysite.com/myapp.wml"/>
</DO>
Anchored Links
• Bind a task to the ACCEPT action,
when cursor points to a link
– TITLE= sets the label string (default = “Link”)
– Links are not allowed in select list options
<CARD>
Please visit our
<A TITLE="Visit">
<GO URL="home.wml"/>home page</A>
for details.
</CARD>
Please visit
our home
page for
____________
Visit
Task Binding Rules
• User actions are scoped at three levels
• Deck
• Card
• Anchored links & select list options (ACCEPT)
– When tasks are bound to an action at different levels,
the action with narrower scope takes precedence
• Default task bindings
User Action
ACCEPT, PREV
Others
Task
PREV
NOOP
The TEMPLATE Element
• Defines actions & events for all cards in a deck
<WML>
<TEMPLATE>
<DO TYPE="OPTIONS" LABEL="Main">
<GO URL="main_menu.wml"/>
</DO>
</TEMPLATE>
<CARD NAME="msg1">
<DO TYPE="ACCEPT" LABEL="Next">
<GO URL="#msg2"/>
</DO>
First story
</CARD>
<CARD NAME="msg2">
Second story
</CARD>
</WML>
First story
…
_____________
Next
Main
Second story
...
_____________
OK
Main
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
The SELECT Element
• Display 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
<CARD>
<DO TYPE="ACCEPT" LABEL="View">
<GO URL="getcity.cgi?location=$city"/>
</DO>
Forecast
<SELECT KEY="city">
<OPTION VALUE=“jer">Jerusalem</OPTION>
<OPTION VALUE=“TA">Tel-Aviv</OPTION>
<OPTION TITLE="Find" ONCLICK="find.cgi">New
</SELECT>
</CARD>
Forecast
1 Jerusalem
2 Tel-Aviv
3>New City
____________
Find
City</OPTION>
A Long Select List
MULTIPLE and DEFAULT Attributes
<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">Bart</OPTION>
<OPTION VALUE="2">Lisa</OPTION>
<OPTION VALUE="3">Homer</OPTION>
<OPTION VALUE="4">Marge</OPTION>
<OPTION VALUE="5">Milhouse</OPTION>
<OPTION VALUE="6">Nelson</OPTION>
<OPTION VALUE="7">Smithers</OPTION>
<OPTION VALUE="8">Maggie</OPTION>
<OPTION VALUE="9">Burns</OPTION>
<OPTION ONCLICK="#card2">More...</OPTION>
</SELECT>
</CARD>
The INPUT Element
• Prompts user to enter a string of text
– Use FORMAT= to constrain input
• UP.Browser reserves soft key for
text entry mode, if necessary
<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
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
FORMAT Control Characters
–
–
–
–
N
A, a
X, x
M, m
Numeric character
Alphabetic character
Numeric or alphabetic character
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”
Displaying Images
• Insert app images or local icons within display
text
– 1-bit BMP format
• Images are ignored by non-bitmapped devices
<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>
Image Attributes
• alt=“..”
– ‘Names’ the image
– If the image is not displayed by the browser the
label is displayed instead
• src="..
– Image source - where the image is located
• width="..
• height="..
– Sets the dimensions of the image.
– For example, the screen sizes of the devices is
Nokia 7110 (48 x 96 pixels)
WBMP
• Wap supports WBMP (Wireless Bitmap
Picture) 2 bit images
• It is possible to convert existing images
to wbmp
• The MIME type of the images is declered
with the following header:
Content-type: image/vnd.wap.wbmp
<?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="main" title="Where are you?">
<timer value="10"/>
<img src="snail2.wbmp" alt="A search snail"/>
</card>
<card id="look" title="I found you">
<img src="snail3.wbmp" alt="A looking snail"/>
</card>
</wml>
Adding Images
Special WML Characters
• Use character entities in display text
&quot;
&amp;
&apos;
&lt;
&gt;
&nbsp;
&shy;
"
&
'
<
>
Blank space
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
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
WMLScript
• Scripting language:
– Procedural logic, loops, conditionals, etc.
– Optimized for small-memory, small-cpu devices
• Derived from JavaScript™
• Integrated with WML
– Reduces overall network traffic
• Bytecode-based virtual machine
– Stack-oriented design
– ROM-able
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
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
WMLScript Example
Functions
Variables
Programming
Constructs
function currencyConvertor(currency, exchRate) {
return currency*exchRate;
}
function myDay(sunShines) {
var myDay;
if (sunShines) {
myDay = “Good”;
} else {
myDay = “Not so good”;
};
return myDay;
}
Wireless Telephony Applications
• Tools for building telephony applications
• Designed primarily for:
– Network Operators / Carriers
– Equipment Vendors
• Network security and reliability a major
consideration
WTA (cont.)
• WTA Browser
– Extensions added to standard WML/WMLScript
browser
– Exposes additional API (WTAI)
• WTAI includes:
–
–
–
–
–
Call control
Network text messaging
Phone book interface
Indicator control
Event processing
WTA (cont.)
• Network model for client/server interaction
– Event signaling
– Client requests to server
• Security model: segregation
– Separate WTA browser
– Separate WTA port
• WTAI available in WML & WMLScript
WTA Example
Placing an outgoing call with WTAI:
WTAI Call
Input Element
<WML>
<CARD>
<DO TYPE=“ACCEPT”>
<GO URL=“wtai:cc/mc;$(N)”/>
</DO>
Enter phone number:
<INPUT TYPE=“TEXT” KEY=“N”/>
</CARD>
</WML>
WTA Example
Placing an outgoing call with WTAI:
WTAI Call
function checkNumber(N) {
if (Lang.isInt(N))
WTAI.makeCall(N);
else
Dialog.alert(“Bad phone number”);
}
Content Formats
• Common interchange formats
• Promoting interoperability
• Formats:
–
–
–
–
Business cards: IMC vCard standard
Calendar: IMC vCalendar standard
Images: WBMP (Wireless BitMaP)
Compiled WML, WMLScript
Content Format Example
Example Use of an Image:
Image Element
<WML>
<CARD>
Hello World!<BR/>
<IMG SRC=“/world.wbmp”
ALT=“[Globe]” />
</CARD>
</WML>
Push
• Push is under development
• Network- push of content
– Alerts or service indications
– Pre-caching of data
• Goals:
–
–
–
–
–
Extensibility and simplicity
Build upon WAP 1.0
End-to-end solution
Security
User friendly
User Agent Profiles (UAProf)
• UAProf is under development
• Goal: content personalization, based upon:
– Device characteristics, user preferences
– Other profile information
• Working with W3C on CC/PP
– RDF-based content format
– Describes “capability and profile” info
• Efficient transport over wireless links, caching,
etc.
WAP Protocol Layers
Wireless Session Service Access Point
Wireless Session Protocol
Wireless Transaction Service Access Point
Wireless Transaction Protocol
Transport Service Access Point (TSAP)
Wireless Datagram Protocol
WCMP
Bearer
Bearer Bearer Service
C
Service Service
B
A
Bearer
Service
D
Physical Layer Air Link
Technology
Wireless Session Protocol
Overview
• Provides shared state between client and server
used to optimize content transfer
• Provides semantics and mechanisms based on
HTTP 1.1
• Enhancements for WAE, wireless networks and
“low-end” devices
– Compact encoding
– Push
– Efficient negotiation
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
Suspend and Resume
• Server knows when client can accept a push
• Multi-bearer devices
• Dynamic addressing
• Allows the release of underlying bearer resources
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
Wireless Transaction Protocol
Overview
• Purpose:
– Provide efficient request/reply based transport
mechanism suitable for devices with limited resources
over networks with low to medium bandwidth.
• Advantages:
– Operator Perspective - Load more subscribers on the
same network due to reduced bandwidth utilization.
– Individual User - Performance is improved and cost is
reduced.
WTP Services and Protocols
• WAP provides reliable data transfer based on
request/reply paradigm
•
•
•
•
no explicit connection setup or tear down
data carried in first packet of protocol exchange
seeks to reduce 3-way handshake on initial request
supports
–
–
–
–
–
retransmission of lost packets
selective-retransmission
segmentation / re-assembly
port number addressing (UDP ports numbers)
flow control
• message oriented (not stream)
• supports an Abort function for outstanding requests
• supports concatenation of PDUs
Bearers
• Bearers currently supported by WAP
–
–
–
–
–
–
–
–
–
GSM SMS, USSD, C-S Data, GPRS
IS-136 R-Data, C-S Data, Packet
CDMA SMS, C-S Data
PDC C-S Data, Packet
PHS C-S Data
CDPD
iDEN SMS, C-S Data, Packet
FLEX and ReFLEX
DataTAC
Wireless Transport Layer Security
• Specifies a framework for secure connections,
using protocol elements from common Internet
security protocols like SSL and TLS.
• Provides security facilities for encryption, strong
authentication, integrity, and key management
• Compliance with regulations on the use of
cryptographic algorithms and key lengths in
different countries
• Provides end-to-end security between protocol end
points
WTLS Internal Architecture
Transaction Protocol (WTP)
WTLS
Handshake
Protocol
Alert
Protocol
Application
Protocol
Record
Protocol
Record
protocol
Datagram Protocol (WDP/UDP)
Bearer networks
Change Cipher
Spec Protocol
Goals and Requirements for WTLS
• Interoperable protocols
• Scalability to allow large scale application
deployment
• First class security level
• Support for public-key certificates
• Support for WAP transport protocols
WTLS Services and
Characteristics
– Provides connection security for two communicating
applications
• privacy (encryption)
• data integrity (MACs)
• authentication (public-key and symmetric)
– Lightweight and efficient protocol with respect to
bandwidth, memory and processing power
– Employs special adapted mechanisms for wireless
usage
• Long lived secure sessions
• Optimised handshake procedures
• Provides simple data reliability for operation over datagram
bearers
References
• WAP Forum. “Wireless Application Protocol Architecture
Specification.” PDF File. April 30, 1998.
http://www.wapforum.org/what/technical.html
• WAP Forum. “Wireless Application Environment
Overview.” PDF File. June 16, 1999.
http://www.wapforum.org/what/technical.html
• WAP Forum. “Wireless Transaction Protocol
Specification.” PDF File. June 11, 1999.
http://www.wapforum.org/what/technical.html
• Unwired Planet, Inc. “Wireless Internet Today.” PDF File.
February 1999. http://www.phone.com/industry/wap.html
• Nokia Wireless Data Forum. “ Wireless Application
Protocol.” Web Page.
http://www.forum.nokia.com/developers/wap/wap.html