Title: WML introduction
1W_at_P
Technology and Application
Sitan Wei Zhiyuan Lu Zhongmin Shi Yang
Yang Xiaowei Song
2Agenda
- Introduction to WAP
- WAE and WAP Gateway
- WML Introduction and Implementation
- WMLScript and Dynamic WML Page
- WAP Solution-Success,Challenges, Future
3Part 1 Introduction to WAP
- What is WAP?
- WAP Overview
- WAP protocol layer
4What is WAP?
- The Wireless Application Protocol(WAP) is an
open, global specification that empowers mobile
users with wireless devices to easily access and
interact with information and services instantly. - Composed by a set of communication protocol.
5 WAP Overview
- What type of devices will use WAP?
- Handheld digital wireless devices such as
mobile phones, pagers, two-way radios,
smartphones and communicators -- from low-end to
high-end.
6WAP Device Manufacturers
7Which Wireless Networks Does WAP Work With?
WAP is designed to work with most wireless
networks such as CDPD, CDMA, GSM, PDC, PHS, TDMA,
FLEX, ReFLEX, iDEN, TETRA, DECT, DataTAC, Mobitex.
8WAP Wireless Operators
9WAP Software Companies
10WAP Example
- http//www.mobilewap.com/mobile/index.html
11WAP Features
- Low bandwidth
- Long latency
- Small screen size
- Mobile client
12Why WAP?
- WAP enables any data transport
- --TCP/IP,UDP/IP,GUTS,SMS or USSD
- WAP utilizes standard Internet markup language
technology (XML) - The WML UI components map well onto existing
mobile phone user interface - WAP utilizes plain Web HTTP1.1 servers
13WAP Protocol Stack
14WAP Layers
- WAEmain interfaces to the client devices and
specify a markup language, a scripting language,
and a telephony interface. - WSPprovide connection-based services to the
application layer - WTLSoptional layer which consists of description
devices - WTP WDP and Bearer ServiceThey provide reliable
transmission of WSP data packets between the
client and server over a wireless link.
15Part 2 WAP Application Environment and WAP
Gateway
- Overview
- Architecture
- WAP Gateway
- WML and WMLScript
- Content Formats
- Current Development
16WAE Overview
- For network applications
- On small, narrowband devices
- High degree of interoperability
- WAE defines basics
- For WAP user agents
- For WAP gateways.
- WAE contains
- WML and WMLScript specifications
- Wireless Telephony Application Interface (WTAI)
17WAE Abstract Network Architecture
18How It Works
Static file or CGI Output WML
HTTP
WAP
19Application Example
20Why Do I Need a WAP Gateway?
- Unable connect directly from current WAP devices
to web servers. - Speak a different language between WAP Devices
and the Web Servers - An extra server to handle translation
- WAP Gateway, or WAP Proxy
21WAP Gateway
- Provides a link between a mobile network and
Internet - Converts the 'WAP' request into a 'Web' request
- Converts the 'Web' response into a 'WAP' response
22WAP Gateway (contd)
- A particular piece of software located on a
server - Handles incoming requests from your WAP phone.
- Compiling the WML pages into bytecode (WMLC)
- Reduce the size and number of packets
- Provide hosting capabilities themselves
- For dynamic Web applications
- determine more about your target client's request
- Provide transaction security
23WML
- 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
24WMLScript
- 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
25Content Formats
- Common interchange formats
- Promoting interoperability
- Formats
- Business cards IMC vCard standard
- Calendar IMC vCalendar standard
- Images WBMP (Wireless BitMaP)
- Compiled WML, WMLScript (Wmlc, Wmlcs)
26Content Format Example
Example Use of an Image
ltWMLgt ltCARDgt Hello World!ltBR/gt ltIMG
SRC/world.wbmp ALTGlobe
/gt lt/CARDgt lt/WMLgt
27Current Development
- Push Model
- Alerts or service indications
- Pre-caching of data
- http//www-106.ibm.com/developerworks/eeng/library
/prowap.htm - User Agent Profiles (UAProf)
- Goal content personalization
- Working with W3C on CC/PP
- Efficient transport over wireless links, caching
- http//www.w3.org/TR/NOTE-CCPP/
28Part 3 WML Introduction and Implementation-
Make and display WML page
29How to Make WML page
- 1. Write your own code
- Write code directly
- From a CGI script
- 2. Convert from HTML
- 3. Visual tools
30Write your own code WML Example
lt?xml version"1.0"?gt lt!DOCTYPE wml PUBLIC
"-//WAPFORUM//DTD WML 1.1//EN" "http//www.wapforu
m.org/DTD/wml_1.1.xml"gt ltWMLgt ltCARDgt ltDO
TYPEACCEPTgt ltGO URLeCard/gt
lt/DOgt Welcome! lt/CARDgt ltCARD
NAMEeCardgt ltDO TYPEACCEPTgt ltGO
URL/submit?N(N)S(S)/gt lt/DOgt Enter
name ltINPUT KEYN/gt Choose speed
ltSELECT KEYSgt ltOPTION VALUE0gtFastlt/OPT
IONgt ltOPTION VALUE1gtSlowlt/OPTIONgt
ltSELECTgt lt/CARDgt lt/WMLgt
31Write your own code WML Elements
- Deck/Card Elements
- wml card template head access meta
- Event Elements
- Do ontimer onpick onevent postfield
onenterforward onenterbackward - Tasks
- Go prev efresh noop
- Variables
- Setvar
- User input
- Input select option optgroup fieldset
- Anchors, Images, and Timers
- a anchor img timer
- Text Formatting
- br p table tr td
32Write your own code Defining the Navigation
Path
ltWMLgt ltCARDgt ltDO TYPE"ACCEPT"
LABEL"Next"gt ltGO URL"card2"/gt
lt/DOgt DalhousieltBR/gtDirectory
lt/CARDgt ltCARD NAME"card2"gt ltDO
TYPE"ACCEPT"gt ltGO
URL"?sendtype"/gt lt/DOgt
Services ltSELECT KEY"type"gt
ltOPTION VALUE"em"gt1.Emaillt/OPTIONgt
ltOPTION VALUE"ph"gt2.Phonelt/OPTIONgt
ltOPTION VALUE"fx"gt3.Faxlt/OPTIONgt
lt/SELECTgt lt/CARDgt lt/WMLgt
33Write your own code 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
ltCARDgt ltDO TYPE"ACCEPT" LABELFind"gt ltGO
URL"getcity.cgi?locationcity"/gt lt/DOgt
Forecast ltSELECT KEY"city"gt ltOPTION
VALUE"ber"gtBerlinlt/OPTIONgt ltOPTION
VALUE"rom"gtRomelt/OPTIONgt ltOPTION
TITLE"Find" ONCLICK"find.cgi"gtNew
Citylt/OPTIONgt lt/SELECTgt lt/CARDgt
Forecast 1 Berlin 2 Rome 3 New
City ____________ Find
34Write your own code The TEMPLATE Element
- Defines actions events for all cards in a deck
ltWMLgt ltTEMPLATEgt ltDO TYPE"OPTIONS"
LABEL"Main"gt ltGO URL"main_menu.wml"/gt
lt/DOgt lt/TEMPLATEgt ltCARD NAME"msg1"gt ltDO
TYPE"ACCEPT" LABEL"Next"gt ltGO
URL"msg2"/gt lt/DOgt First story
lt/CARDgt ltCARD NAME"msg2"gt Second story
lt/CARDgt lt/WMLgt
First story _____________ Next Main
Second story ... _____________ OK Main
35Write your own code Add Image
- ltimg srclogo.wbmp" altLogo"/gt
- WBMP File Generator
- JPG, GIF,BMP -gt WBMP
- http//amazingvb.latinaddress.com
36Converting HTML to WML
- How
- translates non-complex HTML documents in to WML
- tag-by-tag processing and discard all
incompatible tags and contents - Significance
- Dramatically accelerates wireless content
development by using abundant HTML resources
37Converting HTML to WML Server Based
Converter
- Zygo http//wap.z-y-g-o.com
- embedded in the Apache web server via the
mod_perl mechanism. - For internal use.
- Download
- http//wap.z-y-g-o.com/tools/zygo-html2wml.
zip - installing the .pm file in the APACHEROOT/Zygo/
directory and modify Apache httpd.conf file. - The best option of web sites
- Enable server error messages to be displayed in
handset - Enable Billions of HTML pages, the major resource
of Internet, to be shared by wireless device.
38Converting HTML to WML User-based
Converter
- WapTools http//www.argogroup.com
39Visual Tools
- to develop wireless applications using only
point-and-click and drag-and-drop approach - DotWAP 1.0
- http//www.inetis.com/english/solutions_dotwap.htm
- XYBO v1.4
- http//www.xybo.com/
- MobileDev 2.0
- http//mobiledev.speedware.com/
40Visual Tools Example
41How to Display WML Pages
- PDA or Cell phone
- Emulator
- SmartPhone Emulator Developer Edition 1.2
- http//www.yospace.com
- WinWAP v3.0 PRO
- http//www.slobtrot.com/winwap/
- M3Gate
- http//www.m3gate.com/
42(No Transcript)
43Online Test
- online utility for code errors, common mistakes,
and valid links - The Wireless Internet Lab of www.AnywhereYouGo.com
44Embedded Browser
- YoSpace JavaBean Edition 1.0 Handset
Manufacturer Support - Put WAP emulation capability into your
application software using the SmartPhone as a
JavaBean - 5NINE
- an open source development project for creating a
WML Browser to work with all types of Linux
environments. - make wireless device an attractive alternative
for hard-ware manufacturers.
45Standard Java Classes for WAP
- develop and debug WAP programs with standard Java
development tools - Waba SDK and VM
- http//www.wabasoft.com
- UP.SDK 4.2
- http//developer.openwave.com
46Part 4 WMLScript Dynamic WML Page
47What Is WMLScript
- WMLScript is the client-side scripting language
used for WML pages - WMLScript is based on ECMAScript, like JavaScript
- WML scripts are not embedded in the WML pages,
they are sent separately.
48What Is WMLScript Used for ?
- WMLScript is used to calculate or validate user
input - WMLScript is used to generate message boxes and
dialog boxes locally - WMLScript is used to access facilities of the
user agentÂ
49WMLScript Example
- WML source file (check.wml)
- lt?xml version"1.0"?gt
- lt!DOCTYPE wml PUBLIC "- //WAPFORUM//DTD WML
1.1//EN" "http//www.wapforum.org/DTD/wml_1.1.xml"
gt - ltwmlgt
- ltcard id"no1" title"Go to URL"gt
- ltdo type"options" label"Go"gt
- ltgo href"check.wmlsgo_url((url)')"/gt
- lt/dogt
- ltpgt Enter a URL ltinput type"text"
name"url"/gt lt/pgt - lt/cardgt
- lt/wmlgt
- WMLScript source file (check.wmls)
- extern function go_url (url)
-
- if (String.find(url,"http//") lt 0)
-
- url"http//"url
-
- WMLBrowser.go(the_url)
50WMLScript File
- WMLScript source files (.wmls)
- For WML browser or WML simulator
- WMLScript compiled files (.wmlsc)
- For WAP device
- Stored on server
- Compiled by WAP gateway automatically
51WMLScript Interpreter
52Standard Libraries
- Lang Library (WMLScript language core)
- E.g. min(), max(), exit(), abort(), random(),
seed() - Float Library (arithmetic floating-point
functions) - E.g. pow(), round(), sqrt()
- String Library (string functions)
- E.g. length(), trim(), charAt(), subString(),
find(), replace()
53Standard Libraries (cont.)
- URL Library (handling both absolute and relative
URL) - E.g. isValid(), getHost(), getPort(),
getParameters(), getQuery() - Browser Library (access the associated WML
context) - E.g. getVar(), setVar(), go(), prev(), refresh()
- Dialogs Library (user interface functions)
- E.g. prompt(), confirm(), and alert()
54WMLScript vs. JavaScript
- WMLScript
- Used for WML
- No objects array
- Support library
- Separate file (.wmls)
- Support compiled file
- JavaScript
- Used for HTML
- Support objects array
- No library
- Embedded in HTML file
- No compiled file
55Dynamic WML Page
- Server Side Tools
- CGI
- Perl
- C/C
- ASP
- JSP
- Java Servlet
56Perl Example
- !/usr/bin/perl
- print "Content-Type text/vnd.wap.wml\n"
- print "\n"
- print "lt?xml version\"1.0\"?gt\n"
- print "lt!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD
WML 1.1//EN\" \n" - print "\"http//www.wapforum.org/DTD/wml_1.1.xml\"
gt\n" - print "ltwmlgt\nltcard id\"index\"
title\"index\"gt\n" - print "ltpgtHello everyonelt/pgt\n"
- print "lt/cardgt\nlt/wmlgt"
57Web Server Configuration
- Apache Server
- httpd.conf
- WML MIME Type
- AddType text/vnd.wap.wml
.wml - AddType application/vnd.wap.wmlc
.wmlc - AddType text/vnd.wap.wmlscript
.wmls - AddType application/vnd.wap.wmlscriptc .wmlsc
- AddType image/vnd.wap.wbmp
.wbmp
58Part 5 WAP Solutions
- Success
- Challenges
- Future
59Available Wireless Services
- Voice
- SMS Short Message Service
- Data (over voice)
- WAP simplistic and expensive
60Attractions of WAP
- WAP combines two of the fastest growing
industries wireless and the Internet IP - WAP is an attempt to define the standard for how
content from the Internet is filtered for mobile
communications - WAP is developed to make readily available
content from the Internet easily available to
mobile terminals
61WAP Scalable and Comprehensive
- Any mobile phone
- Any existing or planned wireless service
- Any mobile network standard
- Multiple input terminals
62Fast Growing of WAP
- WAP Forum Limited
- Over 450 members
- device manufacturers
- network operators
- SMS center suppliers
- SMS software suppliers
- Other vendors
-
63WAP Major Achievements
- Reduces resources and enriches the functionality
of the network - Generates additional traffic on the network and
revenue - Facilitates migration of applications between
networks and bearers
64WAP Achievement Examples
- Web browsing
- WAP email
- WAP conference
- WAP search
- Document sharing
- Collaborative working
- Still images
65WAP Promises Examples
- Moving images
- Home automation
- Job dispatch
- Remote point of sale
- Customer service
- Remote monitoring (Meters)
- Vehicle positioning
- Remote LAN access
- File transfer
66WAP Challenges - Commercial
- End-to-end security
- Client identification
- Encryption/Authentication
67WAP Challenges - Network
- Less bandwidth (300 bps to 9600 bps)
- More latency
- Less connection stability
- Less predictive availability
68WAP Challenges - Usability
- Screen size
- Advanced applications
- Data input
- Integration with voice
69WAP Challenges - Legal Issues
- Privacy Location information
- Eavesdropping
70 WAP Detractors and Controversies
- Difficult to configure for new services
- Unlikely in a long time-few mobile phones support
- WAP standard is incomplete
- WAP gateway vendors competing against each other
- Other protocols already widely supported or
designed to supercede WAP - WAP services be expensive
- Example of doubt on WAPs future
- http//www.infoworld.com/
-
71New Era of Wireless
- Next release of WAP
- WSG work area
- WTLS services
- WDP datagram protocol
72Competition for WAP
- Subscriber identity module (SIM) toolkit
- Windows CE
- JavaPhone
73Reference
- http//www.sce.carleton.ca/wmc/chameleon/wapdoc/wa
pintro.html - http//www.iec.org/tutorials/wap/topic04.html
- http//www.anywhereyougo.com/wap/Article.po?typeW
AP_Tutorialpage7402 - http//www.tenetindia.com/Wap/whatswap/Faq/Faq.asp
- http//www.tenetindia.com/Wap/Resources/Software/S
oftware.asp?choiceResources - http//www.123wapinfo.com/softwares/
- http//allnetdevices.com/faq/?faqrediryes
- http//www.palowireless.com/wap/
- http//www-106.ibm.com/developerworks/eeng/library
/eeng_wapexpo.htm - http//www9.org/w9cdrom/228/228.html
74?
WAP or NOT WAP