SlideShare a Scribd company logo
Introduction to WAP and WML 
Kevin McManus 
Material re-cycled from Gill Windall 
© 2004 the University of Greenwich 1
What is WAP? 
WAP = Wireless Application Protocol 
WML = Wireless Markup Language 
• A series of specifications for delivering and presenting information 
on mobile (wireless) devices. 
• originally from the WAP Forum now the Open Mobile Alliance 
• Ericsson, Nokia, Motorola, Microsoft, Visa, IBM etc. 
• Why WAP & WML? 
• because the standard Internet and Web technologies (e.g. TCP/IP, 
HTTP, HTML) don't work well for small mobile devices across wireless 
networks 
• Isn't WAP & WML dead? 
• not yet 
• although it will be superseded before it ever achieves its full potential 
‘Rumours of my death have been greatly exaggerated’ 
Mark Twain 
© 2004 the University of Greenwich 2
Constraints of the wireless/mobile 
environment 
• Low bandwidth compared to wired networks 
• commonly 9600 bps or less – unless you have 3G 
• Less reliable networks 
• e.g. when your train goes into the tunnel 
• Devices with little memory and processing power 
• Small screens with low resolution 
• Fiddly user interface devices 
• Even greater diversity of devices than on the normal 
wired network 
• So basically: 
• data arrives slowly, if at all 
• when it arrives the device hasn't the power to do much with it 
• and anyway you can hardly see it and still less interact with it! 
© 2004 the University of Greenwich 3
And yet... 
• “By 2003 it is estimated that in Western Europe 
20% (78 million people) of the population will be 
active WAP users and over 40% of the 
population will own WAP enabled phones” 
Carl Henrick Marcussen 2000 
• “1.5 billion mobile subscribers by 2006, 684 
million of which will use microbrowser enabled 
services” 
Mackenzie & O’Loughlin 2000 
© 2004 the University of Greenwich 4
Comparing WAP with the Web 
• A simplistic view of 
the layers of Web 
technologies 
• As a developer of 
websites and web 
applications which 
of these do you 
need to deal with? 
Browser layer 
high level 
user oriented 
HTML, JavaScript, PNG, etc. 
HTTP 
TCP/IP 
low level 
hardware oriented 
© 2004 the University of Greenwich 5
WAE Wireless Application Environment: 
WML - equivalent of HTML 
WMLScript - equivalent of JavaScript 
WBMP - Wireless Bitmap - graphics format 
WSP (Wireless Session Protocol) - the WAP 
equivalent of HTTP - binary rather than text based 
WTP (wireless transaction protocol), WTLS 
(Wireless Transaction Layer Security), WDP 
(Wireless Datagram Protocol) 
Non-WAP "bearer" protocols 
IP, PPP, SMS, GSM, GPRS 
As a developer of 
WAP sites and 
applications which 
of these do you 
need to deal with?
Comparing WAP with the Web 
• The low-level protocols involved in wireless/mobile 
communication are not part of WAP. WAP runs over 
them 
• In ye olden times mobile phones in Europe, Asia and 
parts of the USA used GSM (Global System for Mobile 
Communications) 
• pay for the time of connection 
• GPRS (General Packet Radio Service) is an extension to 
GSM which offers higher bandwidth than GSM 
• only pay for the data transferred 
• was referred to as 3rd Generation wireless network technology 
• 3G only recently arrived with high bandwidth (~2Mbit) 
© 2004 the University of Greenwich 7
Comparing WAP with the Web 
• WTP, WTLS, WDP are WAP protocols that that 
provide glue between the low level non-WAP 
protocols and the higher level WAP protocols. 
• WSP (Wireless Session Protocol) is the WAP 
equivalent of HTTP. 
• HTTP is text based (human readable) whereas WSP 
is binary 
• why might that be? 
• WML, WBMP & WMLScript 
• versions of standard Web client technologies adapted 
for a wireless environment 
© 2004 the University of Greenwich 8
How do WAP web pages get to a 
WAP device? 
HTTP server 
hello.wml 
Page 
written in 
WML 
WAP gateway 
performs 
compression 
and translation the 
wired 
web 
the 
wireless 
web 
Pages written in WML are served from a standard HTTP 
server - this can be, and often is a normal web server which 
also contains HTML pages, runs server side programs (e.g. 
ASP, PHP, JSP), communicates with databases etc. 
© 2004 the University of Greenwich 9
WAP gateway 
• Communication between the WAP gateway and 
the HTTP server uses normal web protocols (i.e. 
HTTP over TCP/IP). 
• The WAP gateway may be run by the cell phone 
carrier or a third party gateway provider 
• Its role is to: 
• physically link the wired and wireless networks 
• translate between web protocols (HTTP and TCP/IP) 
and WAP protocols (WSP, WTP etc) 
• perform compression - WML is stored on the HTTP 
server in text format, the gateway converts it to binary 
format for transmission 
© 2004 the University of Greenwich 10
WAP browser 
• The WAP browser running on the mobile device (phone 
or PDA) works in a similar way as a normal web browser 
to format pages for display. 
• Because mobile devices tend to be even more diverse 
than static ones the same page may get displayed in 
very different ways by different browsers on different 
devices 
• e.g. the same page displayed in WinWAP (a PC based 
WAP browser) and on a simulator of a Nokia phone. 
© 2004 the University of Greenwich 11
Thoughts 
• What are the implications of the last point 
about the diversity of devices for the web 
developer? 
• How could the web developer avoid 
duplicating content by having to provide a 
normal web version of pages and a WAP 
version? 
© 2004 the University of Greenwich 12
Configuring an HTTP server to 
deliver WAP content 
• For most servers this just means configuring it 
to recognise the file types used by WAP and to 
generate the appropriate MIME Types. 
Extension Meaning MIME Type 
.wml WML text/vnd.wap.wml 
.wmls WMLScript text/vnd.wap.wmlscript 
.wbmp WBMP image image/vnd.wap.wbmp 
If you want to publish a WAP site via an ISP then you need to check 
with them whether the server is configured to deliver WAP content. 
© 2004 the University of Greenwich 13
WML - Wireless Markup Language 
• Smaller language than HTML adapted for: 
• limited display and user input facilities 
• low bandwidth 
• limited device power - memory and processing 
• An XML language 
• all the usual XML syntax rules apply - attribute values in quotes, 
every tag must have a closing tag etc. 
• It contains a subset of XHTML 
• It contains some powerful things not found in XHTML 
• variables 
• user input validation 
• templates 
• DTD available from the Open Mobile Alliance 
© 2004 the University of Greenwich 14
Structure of a WML document 
• We're very used to the idea of each HTML document 
• Each WML document consists of a deck of cards 
• normally only one card is displayed at a time. 
intro.wml shop.wml 
<card id="sh4"> 
<card id="sh3"> 
<card id="sh2"> 
</card> 
containing one HTML page 
• WML has a different structure. 
<card id="int3"> 
<card id="int2"> 
<card id="int1"> 
</card> 
</card> 
</card> 
<card id="sh1"> 
</card> 
</card> 
</card> 
© 2004 the University of Greenwich 15
WML 
• The whole deck is referred to by the URL of the WML 
page 
http://wap.webbedwonders.co.uk/intro.wml 
• Decks are downloaded at one time 
• saves the overhead of multiple requests for small documents. 
• Individual cards can be referenced 
http://wap.webbedwonders.co.uk/intro.wml#int1 
• What are the implications of the above if a WML 
document was to contain a large number of cards? 
© 2004 the University of Greenwich 16
reference to the WML DTD 
<?xml version="1.0"?> 
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN“ 
"http://www.wapforum.org/DTD/wml_1.1.xml"> 
information about the document (i.e. meta data) 
can go in the head 
the template can contain code that will appear on every 
card in the deck e.g. a "back" and "home" option 
cards contain the basic displayable content 
WML document structure 
<wml> 
<head> 
</head> 
<template> 
</template> 
<card> 
</card> 
<card> 
..... 
</card> 
etc 
</wml> 
© 2004 the University of Greenwich 17
cms1.wml - a three card deck 
card 1 
card 3 
card 2 
© 2004 the University of Greenwich 18
<?xml version="1.0"?> 
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN“ 
"http://www.wapforum.org/DTD/wml_1.1.xml"> 
<wml> 
<template> 
<do type="prev" label="back" id="prev-link"> <prev /> </do> 
</template> 
<card title="CMS School" id="cms1"> 
<p align="center"><big>CMS school</big></p> 
<p><a href="#cms2">About our courses</a></p> 
<p><a href="#cms3">Contact details</a></p> 
</card> 
<card title="CMS School" id="cms2"> 
<p> 
<select title="CMS Course List"> 
<option>Undergraduate</option> 
<option>Postgraduate</option> 
</select> 
</p> 
</card> 
<card title="CMS Contact Details" id="cms3"> 
<p>CMS School<br/> 
University of Greenwich<br/> 
Old Royal Naval College<br/> 
Greenwich</p> 
<p><b>Tel:</b> 44(0)20 8331 8500</p> 
<p><b>Fax:</b> 44(0)20 8331 8665</p> 
<p><b>email:</b> cms@gre.ac.uk</p> 
</card> 
</wml> 
template 
card 1 
cms1.wml 
card 2 
card 3
cms1.wml – card 1 
note how the title is 
displayed in the browser 
<card title="CMS School" id="cms1"> 
id attribute allows 
the card to be 
referred to as #cms1 
<p align="center"><big>CMS school</big></p> 
<p><a href="#cms2">About our courses</a></p> 
<p><a href="#cms3">Contact details</a></p> 
</card> 
anchor tags work 
just like HTML 
most content is contained 
inside a <p> tag 
what does ‘link’ do? 
where does this 
come from? 
© 2004 the University of Greenwich 20
cms1.wml – card 2 
<card title="CMS School" id="cms2"> 
<p> 
<select title="CMS Course List"> 
<option>Undergraduate</option> 
<option>Postgraduate</option> 
</select> 
</p> 
</card> 
the <select> and 
<option> elements offer 
user interactivity in a similar 
way as they do in HTML 
In this example selection of an option has no effect but in a 
more realistic case it may trigger an action such as linking to 
another card or sending to a server side program 
© 2004 the University of Greenwich 21
cms1.wml – card 2 
• Because of the limited space on most WAP 
phones these elements are displayed rather 
clumsily 
• On a larger device (e.g. a PDA) they may be 
displayed differently e.g. 
• The other main user input element is <input> 
• There is no <form> element 
© 2004 the University of Greenwich 22
cms1.wml – card 3 
<card title="CMS Contact Details" id="cms3"> 
<p>CMS School<br/> 
University of Greenwich<br/> 
Old Royal Naval College<br/> 
Greenwich</p> 
<p><b>Tel:</b> 44(0)20 8331 8500</p> 
<p><b>Fax:</b> 44(0)20 8331 8665</p> 
<p><b>email:</b> cms@gre.ac.uk</p> 
</card> 
Notice how even a small amount of information such 
as this requires scrolling on a mobile phone 
© 2004 the University of Greenwich 23
cms1.wml – template 
<template> 
<do type="prev" label="back" id="prev-link"> <prev /> </do> 
</template> 
• Templates add the same controls to all the cards in a deck 
• commonly used to add "back" and "home" controls. 
• Individual cards can override what they get from the template by a 
process known as shadowing 
• we won't look at this. 
• The <do> element is used to add a control to a card 
• the precise form of display is determined by the browser e.g. a button or 
a menu item as above. 
• All <do> elements have a type= attribute 
• the most common are "prev" and "accept" 
• A <do> element contains a task (in this case <prev/>) that is 
executed when the <do> element is activated. 
• <prev /> is a task element which returns to the 
previously displayed card 
• other task elements include <go> and <refresh> 
© 2004 the University of Greenwich 24
vareg.wml - user input and variables 
<wml> 
<card title="Variable example" id="v1"> 
<p> 
<fieldset> 
First name <input name="fname" maxlength="15" format="a*a" /> 
<br /> 
</fieldset> 
<fieldset> 
Family name <input name="lname" maxlength="15" format="aa*a" /> 
</fieldset> 
</p> 
<do type="accept" label="next"> 
<go href="#v2" /> 
</do> 
</card> 
<card title="Variable example" id="v2"> 
<p>Hello $(fname) $(lname)</p> 
</card> 
</wml>
vareg.wml – card 1 
<card title="Variable example" id="v1"> 
<p> 
<fieldset> 
First name <input name="fname" maxlength="15" format="a*a" /> 
<br /> 
</fieldset> 
<fieldset> 
Family name <input name="lname" maxlength="15" format="aa*a" /> 
</fieldset> 
</p> 
<do type="accept" label="next"> 
<go href="#v2" /> 
</do> 
</card> 
Will only accept input that conforms to the specified format 
• format="aa*a" means two lower case letters followed by zero or 
more other lower case letters 
• other format characters include 
• A - any uppercase alphabetic characters 
• N - any numeric character 
up to 15 characters 
can be entered 
input data is assigned 
to a variable
vareg.wml – card 1 
<do type="accept" label="next"> 
<go href="#v2" /> 
</do> 
• Another example of the <do> element - this time of the 
general purpose type "accept" with the label "next" 
• The task executed when the <do> is activated this time 
is a <go> task. 
• <go> tasks just cause the target href to be loaded - it 
may be another card in the same deck as in this 
example or another deck 
© 2004 the University of Greenwich 27
vareg.wml – card 2 
<card title="Variable example" id="v2"> 
<p>Hello $(fname) $(lname)</p> 
</card> 
• Variables in WML are shared by all cards in a deck 
• The two variables fname and lname are set by the 
<input> elements on card 1 
• When you want the value of a variable to be used then 
the most common form to use is 
$(variablename) 
© 2004 the University of Greenwich 28
Quick Questions 
• What are the two most significant features 
shown in the previous example that have 
no direct equivalents in HTML. 
• Why do you think they exist in WML and 
not HTML? 
© 2004 the University of Greenwich 29
Sending data for server side processing 
• HTML uses a <form> to send data to server side programs 
• data entered on to the form is automatically sent to the program named in the 
action= attribute 
• sending to the program is triggered by the form button of type="submit" 
• In WML there is no <form> element. 
• Sending to a server side program is often achieved by a <go> task 
triggered by a <do> element. 
• Data for processing by the server side program can be specified using 
<postfield> elements 
GET or POST 
<do type="accept" label="submit"> 
<go method="get" href="dowhatever.asp"> 
<postfield name="fname" value="$(fname)"/> 
<postfield name="lname" value="$(lname)"/> 
</go> 
</do> 
WML variable 
name seen by the 
server side program 
© 2004 the University of Greenwich 30
dating.wml
dating.wml 
<wml> 
<template> 
<do type="prev" label="back" id="prev-link"> 
<prev/> 
</do> 
</template> 
<card title="Wireless Dating" id="dat1"> 
<p align="center"> 
<img alt="heart" src="heart.wbmp"/> 
</p> 
<p> 
Find a new love! 
</p> 
<do type="accept" label="Adults only"> 
<go href="#dat2"/> 
</do> 
</card> 
WBMP image 
© 2004 the University of Greenwich 32
dating.wml 
<card title="Wireless Dating" id="dat2"> 
<p> 
First name 
<input name="fname" maxlength="15" format="a*a"/> 
<br/> 
Family name 
<input name="lname" maxlength="15" format="aa*a"/> 
</p> 
<do type="accept" label="next"> 
<go href="#dat3"/> 
</do> 
</card> 
© 2004 the University of Greenwich 33
dating.wml 
<card title="Wireless Dating" id="dat3"> 
<p> 
Your gender 
</p> 
<p> 
<select name="owng" title="own gender"> 
<option value="f">female</option> 
<option value="m">male</option> 
</select> 
</p> 
<p> 
Required gender 
</p> 
<p> 
<select name="dateg" title="wanted gender"> 
<option value="male">male</option> 
<option value="female">female</option> 
</select> 
</p> 
<do type="accept" label="next"> 
<go href="#dat4"/> 
</do> 
</card>
dating.wml 
<card title="Wireless dating" id="dat4"> 
<p> 
Age 
<input name="age" size="2" maxlength="2" format="2N"/> 
<br/> 
Your best feature 
<input name="des" maxlength="15" format="*a"/> 
<br/> 
</p> 
<do type="accept" label="next"> 
<go href="#dat5"/> 
</do> 
</card> 
© 2004 the University of Greenwich 35
dating.wml 
<card title="Wireless dating" id="dat5"> 
<p> 
Well $(fname) we hope to find you a nice $(dateg) who 
loves your $(des) 
</p> 
<do type="accept" label="submit"> 
<go method="get" href="date.php"> 
<postfield name="fname" value="$(fname)"/> 
<postfield name="lname" value="$(lname)"/> 
<postfield name="owng" value="$(owng)"/> 
<postfield name="dateg" value="$(dateg)"/> 
<postfield name="age" value="$(age)"/> 
<postfield name="description" value="$(des)"/> 
</go> 
</do> 
</card> 
response from server 
side program 
Variables from other 
cards set up to be 
sent to the server
date.php 
output the appropriate 
MIME header 
<?php 
header("Content-type: text/vnd.wap.wml"); 
echo "<?xml version="1.0" encoding="UTF-8"?>n"; 
?> 
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" 
"http://www.wapforum.org/DTD/wml_1.1.xml"> 
<wml> 
<card title="Suitable dates"> 
<p> 
Sorry <?php echo $_GET[fname] ?> no-one suitable at the moment 
- try again later.</p> 
<do type="accept" label="home" id="hom"> 
<go href="dating.wml#dat1" /> 
</do> 
</card> 
</wml> 
POST or GET 
data as usual 
© 2004 the University of Greenwich 37
Events 
• WML has some event handling capabilities built-in to the 
language 
• unlike HTML 
• Events can be bound to a task (e.g. a <go> task) using 
the <onevent> element 
type of event being bound 
task executed when 
the event occurs 
<option> 
<onevent type="onpick"> 
<go href="listungrad.php"/> 
</onevent> 
Undergraduate 
</option> 
• The effect of the code above is to request listungrad.php 
when the "Undergraduate" option is selected. 
• There is also a shorthand for binding some events which we 
won't look at. 
© 2004 the University of Greenwich 38
timer.wml 
<wml> 
do this when the 
timer expires 
<card title="timer example 1" id="tim1"> 
<onevent type="ontimer"> 
<go href="#tim2"/> 
Set a timer for 
</onevent> 
2.5 seconds 
<timer value="25" /> 
<p align="center"><big>Special Offer</big></p> 
</card> 
<card title="timer example 2" id="tim2"> 
<p align="center"><big>Buy lots!</big></p> 
</card> 
</wml> 
2.5 seconds 
later 
© 2004 the University of Greenwich 39
WMLScript 
• As we've seen WML allows you to do certain 
things that are not possible in HTML without 
resorting to the use of JavaScript or some other 
scripting language. 
• However there are many things it can't do e.g. 
maths, detailed validation. 
• In the wireless environment it is perhaps even 
more important to reduce trips to the server (e.g. 
to perform for validation) than on the normal 
web. (Why?) 
• The answer is ......... WMLScript! 
© 2004 the University of Greenwich 40
WMLScript 
• JavaScript (lovely though it is) is quite a large and 
complex language 
• requires a lot of processing by the browser 
• WMLScript is very similar to a cut down JavaScript 
• There are many similarities (syntax, operators, loops, 
conditonals, etc.) but also a number of differences 
• all WMScript code is declared in functions 
• there are no global variables 
• every WMLScript statement must end with a ";" 
• WMLScript code is not interspersed with WML but is stored in a 
separate file (with extension .wmls) 
• WMLScript is converted to a binary format (called bytecode) 
before transmission to the client 
• WMLScript uses standard libraries to perform many tasks 
© 2004 the University of Greenwich 41
dating2.wml 
<card title="Wireless dating" id="dat4"> 
<p> 
Age 
<input name="age" size="2" maxlength="2" format="2N"/> 
<br/> 
Your best feature 
<input name="des" maxlength="15" format="*a"/> 
<br/> 
</p> 
<do type="accept" label="next"> 
<go href="dating2.wmls#validateAge()"/> 
</do> 
</card> 
<card title="Wireless dating" id="tooyoung"> 
<p> 
Sorry kid! 
</p> 
</card> 
call function validateAge() 
in file dating2.wmls 
© 2004 the University of Greenwich 42
dating2.wmls 
extern function validateAge() { 
var theage = WMLBrowser.getVar("age"); 
if (theage < 18) { 
WMLBrowser.go("#tooyoung"); 
} else { 
WMLBrowser.go("#dat5"); 
} 
return; 
} 
if less than 18 go to 
the tooyoung card 
otherwise go to 
the next card 
© 2004 the University of Greenwich 43
Creating sites that deliver both 
HTML and WML content 
• Option 1 - Create separate content 
HTML pages 
Web server 
WML pages 
HTML browser 
WML browser 
• WML pages may be created using software such as 
Nokia WAP Toolkit or an add-in to Dreamweaver. 
© 2004 the University of Greenwich 44
Creating sites that deliver both 
HTML and WML content 
• Option 2a - Automatically create WML from 
HTML content 
• this could be a static converter 
HTML browser 
HTML pages 
converter 
WML pages 
WML browser 
© 2004 the University of Greenwich 45
Creating sites that deliver both 
HTML and WML content 
• Option 2b - Automatically create WML from 
HTML content 
• with a dynamic converter 
HTML browser 
HTML pages 
WML browser 
converter 
© 2004 the University of Greenwich 46
Creating sites that deliver both 
HTML and WML content 
• Option 3 - Create both HTML and WML content 
from XML using XSLT 
XSLT for HTML 
pages 
XML pages 
XSLT for WML 
pages 
HTML browser 
WML browser 
XSLT 
processor 
© 2004 the University of Greenwich 47
Quick Questions 
• What advantages and disadvantages are 
there for the three options given above? 
• Are there any other options? 
© 2004 the University of Greenwich 48
XSLT to generate HTML or WML 
showbooks.php 
If browser wants HTML 
use toHTML.xsl 
If browser wants WML 
use toWML.xsl 
toHTML.xsl 
goodBooks.xml 
...... 
<book> 
..... 
</book> 
….. 
<book> 
..... 
</book> 
..... 
toWML.xsl 
© 2004 the University of Greenwich 49
Creating sites that deliver both 
HTML and WML content 
• The user surfs to the URL of the ASP 
(showbooks.asp) 
• The ASP loads the XML file containing the book 
details 
• The ASP detects whether the browser wants 
HTML or WML and applies the appropriate 
stylesheet to format appropriately (e.g. no book 
cover image for the WML version) and transform 
the XML into the appropriate language 
© 2004 the University of Greenwich 50
showbooks.php <?php 
error_reporting(15); 
$xh = xslt_create(); 
xslt_set_base($xh, 'file:///home/mk05/public_html/web/wap/book/'); 
if ( strpos($_SERVER['HTTP_ACCEPT'],'text/vnd.wap.wml') ) { 
if ( $result=xslt_process($xh, 'goodBooks.xml', 'toWML.xsl') ) { 
header('Content-type: text/vnd.wap.wml'); 
} 
} else { 
if ( $result=xslt_process($xh, 'goodBooks.xml', 'toHTML.xsl') ) { 
header('Content-type: text/html'); 
} 
} 
if ($result) { 
echo "<?xml version="1.0" encoding="UTF-8"?>n"; 
echo $result; 
} else { 
echo("There is an error in the XSL transformation...n"); 
echo("tError number: " . xslt_errno($xh) . "n"); 
echo("tError string: " . xslt_error($xh) . "n"); 
exit; 
} 
xslt_free($xh); 
?> 
If the client 
accepts WML 
use toWML.xsl 
otherwise use 
toHTML.xsl 
output the appropriate 
mime type
WAP applications 
• Hunting for information rather than browsing! 
• Services wanted when away from the 
office/home computer 
• Potentially location specific (e.g. nearest cash 
machine, car park etc) 
• Online banking 
• Booking tickets - travel or entertainment 
• Information services e.g. 
• Share price news wap.ananova.com/business 
• Weather http://www.excite.co.uk/wap/weather 
• Yellow pages 
• Sports www.waparesult.com 
• News www.guardian.co.uk/wml 
• Google wap.google.com 
© 2004 the University of Greenwich 52
i-mode 
• i-mode - an alternative to WAP? 
• Developed in the USA but big in Japan 
• launched by NTT DoCoMo in 1999 
• arrived in the UK in 2005 (O2) 
• Approx 80% of the world's wireless 
Internet users are in Japan and approx 
80% of them use i-mode rather than WAP! 
• 45 million i-mode customers in Japan 
• 5 million i-mode customers in the rest of the 
world 
© 2004 the University of Greenwich 53
Differences between i-mode and WAP 
• WAP is a set of protocols and languages 
• i-mode is a complete wireless service provided by DoCoMo 
• uses DoCoMo proprietary protocols and open standards 
• WAP uses WML 
• i-mode uses cHTML - compact HTML 
• a subset of HTML with some extra features for mobile applications 
• will render on standard browsers 
• WAP services in Europe were circuit-switched until GPRS arrived 
• i-mode was always based on a packet-switched system 
• you're always connected and only pay for data downloaded 
• WAP services are mostly business oriented 
• i-mode services are mostly entertainment and games oriented 
• i-mode mail interoperates with e-mail 
• Until recently European devices were mostly black and white displays 
• Japan led the way with early adoption of colour displays 
• WAP never made much impact 
• i-mode was an overnight success 
© 2004 the University of Greenwich 54
Conclusions 
• WAP, WML and WMLScript provide elegant alternatives 
to HTTP, HTML and JavaScript 
• engineered to cope with the limitations of wireless technologies 
• but tiny screens and fiddly keyboards will always be small and 
fiddly 
• although this did not stop i-mode from catching on 
• perhaps it was the lack of content on WAP 
• or maybe it is a cultural thing 
• Mobile technology is advancing rapidly 
• high bandwidth, more memory, more processing power, larger, 
higher resolution colour displays 
• Perhaps the age of WAP and i-mode is over and the WWW will 
arrive fully on mobile devices 
• already seeing IE and Opera on mobile devices 
• all we need is a decent (virtual) keyboard 
© 2004 the University of Greenwich 55

More Related Content

What's hot

wireless application protocol
wireless application protocol wireless application protocol
wireless application protocol
Smriti Agrawal
 
WAP Technology
WAP TechnologyWAP Technology
WAP Technology
vasanthimuniasamy
 
Mcpp113,16,33,41
Mcpp113,16,33,41Mcpp113,16,33,41
Mcpp113,16,33,41
Chaitali Kale
 
Wireless application protocol (WAP)
Wireless application protocol (WAP)Wireless application protocol (WAP)
Wireless application protocol (WAP)
Sajan Sahu
 
Wireless Application Protocol ppt
Wireless Application Protocol pptWireless Application Protocol ppt
Wireless Application Protocol ppt
go2project
 
Wireless Application Protocol
Wireless Application ProtocolWireless Application Protocol
Wireless Application Protocol
Nyi Tun
 
Wap
WapWap
WAP
WAPWAP
Mobile Internet Standards
Mobile Internet StandardsMobile Internet Standards
Mobile Internet Standards
Shujaa Solutions Ltd
 
Wireless Application Protocol WAP by Alvinen
Wireless Application Protocol WAP by AlvinenWireless Application Protocol WAP by Alvinen
Wireless Application Protocol WAP by Alvinen
Senthil Kanth
 
Wireless application protocol
Wireless application protocolWireless application protocol
Wireless application protocol
git tech
 
WWW Programming Model
WWW Programming ModelWWW Programming Model
WWW Programming Model
Gurparvesh kaur
 
Introduction to WAP
Introduction to WAPIntroduction to WAP
Introduction to WAP
Nitin Saswade
 
Wap ppt
Wap pptWap ppt
Wap ppt
Abhijit Nath
 
Introduction to wireless application protocol (wap)ogi
Introduction to wireless application protocol (wap)ogiIntroduction to wireless application protocol (wap)ogi
Introduction to wireless application protocol (wap)ogi
Senthil Kanth
 
112321 112333 wirless application protocol
112321 112333 wirless application protocol112321 112333 wirless application protocol
112321 112333 wirless application protocol
JAINIK PATEL
 
WAP 2.0
WAP 2.0WAP 2.0
WAP 2.0
Ramasubbu .P
 
Mobile applications
Mobile applicationsMobile applications
Wireless application prorocol
Wireless application prorocolWireless application prorocol
Wireless application prorocol
9535814851
 
WIRELESS APPLICATION PROTOCOL
WIRELESS APPLICATION PROTOCOLWIRELESS APPLICATION PROTOCOL
WIRELESS APPLICATION PROTOCOL
SiddikFathimaraliJaw
 

What's hot (20)

wireless application protocol
wireless application protocol wireless application protocol
wireless application protocol
 
WAP Technology
WAP TechnologyWAP Technology
WAP Technology
 
Mcpp113,16,33,41
Mcpp113,16,33,41Mcpp113,16,33,41
Mcpp113,16,33,41
 
Wireless application protocol (WAP)
Wireless application protocol (WAP)Wireless application protocol (WAP)
Wireless application protocol (WAP)
 
Wireless Application Protocol ppt
Wireless Application Protocol pptWireless Application Protocol ppt
Wireless Application Protocol ppt
 
Wireless Application Protocol
Wireless Application ProtocolWireless Application Protocol
Wireless Application Protocol
 
Wap
WapWap
Wap
 
WAP
WAPWAP
WAP
 
Mobile Internet Standards
Mobile Internet StandardsMobile Internet Standards
Mobile Internet Standards
 
Wireless Application Protocol WAP by Alvinen
Wireless Application Protocol WAP by AlvinenWireless Application Protocol WAP by Alvinen
Wireless Application Protocol WAP by Alvinen
 
Wireless application protocol
Wireless application protocolWireless application protocol
Wireless application protocol
 
WWW Programming Model
WWW Programming ModelWWW Programming Model
WWW Programming Model
 
Introduction to WAP
Introduction to WAPIntroduction to WAP
Introduction to WAP
 
Wap ppt
Wap pptWap ppt
Wap ppt
 
Introduction to wireless application protocol (wap)ogi
Introduction to wireless application protocol (wap)ogiIntroduction to wireless application protocol (wap)ogi
Introduction to wireless application protocol (wap)ogi
 
112321 112333 wirless application protocol
112321 112333 wirless application protocol112321 112333 wirless application protocol
112321 112333 wirless application protocol
 
WAP 2.0
WAP 2.0WAP 2.0
WAP 2.0
 
Mobile applications
Mobile applicationsMobile applications
Mobile applications
 
Wireless application prorocol
Wireless application prorocolWireless application prorocol
Wireless application prorocol
 
WIRELESS APPLICATION PROTOCOL
WIRELESS APPLICATION PROTOCOLWIRELESS APPLICATION PROTOCOL
WIRELESS APPLICATION PROTOCOL
 

Viewers also liked

Bt0087 wml and wap programing2
Bt0087 wml and wap programing2Bt0087 wml and wap programing2
Bt0087 wml and wap programing2
Techglyphs
 
Wml
WmlWml
Mobile Computing UNIT-8
Mobile Computing UNIT-8Mobile Computing UNIT-8
Mobile Computing UNIT-8
Ramesh Babu
 
Mobile Communication
Mobile CommunicationMobile Communication
Mobile Communication
Kathirvel Ayyaswamy
 
Ck
CkCk
XML Programming WML by Dickson K.W. Chiu PhD, SMIEEE
XML Programming WML by Dickson K.W. Chiu PhD, SMIEEEXML Programming WML by Dickson K.W. Chiu PhD, SMIEEE
XML Programming WML by Dickson K.W. Chiu PhD, SMIEEE
Senthil Kanth
 
Wap wml
Wap wmlWap wml
Wap wml
ishmecse13
 
WML-Tutorial
WML-TutorialWML-Tutorial
WML-Tutorial
OPENLANE
 
ITFT_Wireless markup language
ITFT_Wireless markup languageITFT_Wireless markup language
ITFT_Wireless markup language
Shilpa Sharma
 
Mobile Computing (Part-2)
Mobile Computing (Part-2)Mobile Computing (Part-2)
Mobile Computing (Part-2)
Ankur Kumar
 
WML BOX
WML BOXWML BOX
Wireless Markup Language
Wireless Markup LanguageWireless Markup Language
Wireless Markup Language
Hitesh Piprotar
 
Calvin klein
Calvin kleinCalvin klein
Calvin klein
Bộ Kinh Vân
 

Viewers also liked (13)

Bt0087 wml and wap programing2
Bt0087 wml and wap programing2Bt0087 wml and wap programing2
Bt0087 wml and wap programing2
 
Wml
WmlWml
Wml
 
Mobile Computing UNIT-8
Mobile Computing UNIT-8Mobile Computing UNIT-8
Mobile Computing UNIT-8
 
Mobile Communication
Mobile CommunicationMobile Communication
Mobile Communication
 
Ck
CkCk
Ck
 
XML Programming WML by Dickson K.W. Chiu PhD, SMIEEE
XML Programming WML by Dickson K.W. Chiu PhD, SMIEEEXML Programming WML by Dickson K.W. Chiu PhD, SMIEEE
XML Programming WML by Dickson K.W. Chiu PhD, SMIEEE
 
Wap wml
Wap wmlWap wml
Wap wml
 
WML-Tutorial
WML-TutorialWML-Tutorial
WML-Tutorial
 
ITFT_Wireless markup language
ITFT_Wireless markup languageITFT_Wireless markup language
ITFT_Wireless markup language
 
Mobile Computing (Part-2)
Mobile Computing (Part-2)Mobile Computing (Part-2)
Mobile Computing (Part-2)
 
WML BOX
WML BOXWML BOX
WML BOX
 
Wireless Markup Language
Wireless Markup LanguageWireless Markup Language
Wireless Markup Language
 
Calvin klein
Calvin kleinCalvin klein
Calvin klein
 

Similar to Wap

Protocols and tools
Protocols and toolsProtocols and tools
Protocols and tools
Vikram Nandini
 
FALLSEM2023-24_ITA1008_TH_VL2023240102332_2023-09-21_Reference-Material-I.pptx
FALLSEM2023-24_ITA1008_TH_VL2023240102332_2023-09-21_Reference-Material-I.pptxFALLSEM2023-24_ITA1008_TH_VL2023240102332_2023-09-21_Reference-Material-I.pptx
FALLSEM2023-24_ITA1008_TH_VL2023240102332_2023-09-21_Reference-Material-I.pptx
BARATHSHARMA
 
WAP, HTTP and HTML5 Web Socket Architecture Analysis in Contemporary Mobile A...
WAP, HTTP and HTML5 Web Socket Architecture Analysis in Contemporary Mobile A...WAP, HTTP and HTML5 Web Socket Architecture Analysis in Contemporary Mobile A...
WAP, HTTP and HTML5 Web Socket Architecture Analysis in Contemporary Mobile A...
Editor IJCATR
 
WAP, HTTP and HTML5 Web Socket Architecture Analysis in Contemporary Mobile A...
WAP, HTTP and HTML5 Web Socket Architecture Analysis in Contemporary Mobile A...WAP, HTTP and HTML5 Web Socket Architecture Analysis in Contemporary Mobile A...
WAP, HTTP and HTML5 Web Socket Architecture Analysis in Contemporary Mobile A...
Editor IJCATR
 
WAP, HTTP and HTML5 Web Socket Architecture Analysis in Contemporary Mobile A...
WAP, HTTP and HTML5 Web Socket Architecture Analysis in Contemporary Mobile A...WAP, HTTP and HTML5 Web Socket Architecture Analysis in Contemporary Mobile A...
WAP, HTTP and HTML5 Web Socket Architecture Analysis in Contemporary Mobile A...
Editor IJCATR
 
A Unique Application to Reserve Doctor Appointment by Using Wireless Applicat...
A Unique Application to Reserve Doctor Appointment by Using Wireless Applicat...A Unique Application to Reserve Doctor Appointment by Using Wireless Applicat...
A Unique Application to Reserve Doctor Appointment by Using Wireless Applicat...
IJMER
 
WAP.PDF
WAP.PDFWAP.PDF
WAP.PDF
kndnewguade
 
WAP- Mobile Personal Assistant Application
WAP- Mobile Personal Assistant ApplicationWAP- Mobile Personal Assistant Application
WAP- Mobile Personal Assistant Application
IJMER
 
It2402 mobile communication unit5
It2402 mobile communication unit5It2402 mobile communication unit5
It2402 mobile communication unit5
RMK ENGINEERING COLLEGE, CHENNAI
 
Wap architecture and wml script
Wap architecture and wml scriptWap architecture and wml script
Wap architecture and wml script
ishmecse13
 
Wap ppt
Wap pptWap ppt
Wap ppt
Abhijit Nath
 
Wap model
Wap modelWap model
Mobile computing seminar
Mobile computing seminarMobile computing seminar
Mobile computing seminar
Meenakshi Devi
 
Wirelss LAN
Wirelss LANWirelss LAN
Wirelss LAN
Surbhi Sharma
 
Internet on mobile
Internet on mobileInternet on mobile
Internet on mobile
Cassandra Leung
 
Internet on Mobile
Internet on MobileInternet on Mobile
Internet on Mobile
cassyp
 
IT8602 Mobile Communication - Unit V
IT8602 Mobile Communication - Unit V IT8602 Mobile Communication - Unit V
IT8602 Mobile Communication - Unit V
pkaviya
 
Wap01
Wap01Wap01
Wap01
Suresh030
 
wap.ppt
wap.pptwap.ppt
wap01.ppt
wap01.pptwap01.ppt
wap01.ppt
Ganesh Chavan
 

Similar to Wap (20)

Protocols and tools
Protocols and toolsProtocols and tools
Protocols and tools
 
FALLSEM2023-24_ITA1008_TH_VL2023240102332_2023-09-21_Reference-Material-I.pptx
FALLSEM2023-24_ITA1008_TH_VL2023240102332_2023-09-21_Reference-Material-I.pptxFALLSEM2023-24_ITA1008_TH_VL2023240102332_2023-09-21_Reference-Material-I.pptx
FALLSEM2023-24_ITA1008_TH_VL2023240102332_2023-09-21_Reference-Material-I.pptx
 
WAP, HTTP and HTML5 Web Socket Architecture Analysis in Contemporary Mobile A...
WAP, HTTP and HTML5 Web Socket Architecture Analysis in Contemporary Mobile A...WAP, HTTP and HTML5 Web Socket Architecture Analysis in Contemporary Mobile A...
WAP, HTTP and HTML5 Web Socket Architecture Analysis in Contemporary Mobile A...
 
WAP, HTTP and HTML5 Web Socket Architecture Analysis in Contemporary Mobile A...
WAP, HTTP and HTML5 Web Socket Architecture Analysis in Contemporary Mobile A...WAP, HTTP and HTML5 Web Socket Architecture Analysis in Contemporary Mobile A...
WAP, HTTP and HTML5 Web Socket Architecture Analysis in Contemporary Mobile A...
 
WAP, HTTP and HTML5 Web Socket Architecture Analysis in Contemporary Mobile A...
WAP, HTTP and HTML5 Web Socket Architecture Analysis in Contemporary Mobile A...WAP, HTTP and HTML5 Web Socket Architecture Analysis in Contemporary Mobile A...
WAP, HTTP and HTML5 Web Socket Architecture Analysis in Contemporary Mobile A...
 
A Unique Application to Reserve Doctor Appointment by Using Wireless Applicat...
A Unique Application to Reserve Doctor Appointment by Using Wireless Applicat...A Unique Application to Reserve Doctor Appointment by Using Wireless Applicat...
A Unique Application to Reserve Doctor Appointment by Using Wireless Applicat...
 
WAP.PDF
WAP.PDFWAP.PDF
WAP.PDF
 
WAP- Mobile Personal Assistant Application
WAP- Mobile Personal Assistant ApplicationWAP- Mobile Personal Assistant Application
WAP- Mobile Personal Assistant Application
 
It2402 mobile communication unit5
It2402 mobile communication unit5It2402 mobile communication unit5
It2402 mobile communication unit5
 
Wap architecture and wml script
Wap architecture and wml scriptWap architecture and wml script
Wap architecture and wml script
 
Wap ppt
Wap pptWap ppt
Wap ppt
 
Wap model
Wap modelWap model
Wap model
 
Mobile computing seminar
Mobile computing seminarMobile computing seminar
Mobile computing seminar
 
Wirelss LAN
Wirelss LANWirelss LAN
Wirelss LAN
 
Internet on mobile
Internet on mobileInternet on mobile
Internet on mobile
 
Internet on Mobile
Internet on MobileInternet on Mobile
Internet on Mobile
 
IT8602 Mobile Communication - Unit V
IT8602 Mobile Communication - Unit V IT8602 Mobile Communication - Unit V
IT8602 Mobile Communication - Unit V
 
Wap01
Wap01Wap01
Wap01
 
wap.ppt
wap.pptwap.ppt
wap.ppt
 
wap01.ppt
wap01.pptwap01.ppt
wap01.ppt
 

Recently uploaded

All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
Alina Yurenko
 
Cost-Effective Strategies For iOS App Development
Cost-Effective Strategies For iOS App DevelopmentCost-Effective Strategies For iOS App Development
Cost-Effective Strategies For iOS App Development
Softradix Technologies
 
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
widenerjobeyrl638
 
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptxOperational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
sandeepmenon62
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
safelyiotech
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
Bert Jan Schrijver
 
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
Tier1 app
 
Photoshop Tutorial for Beginners (2024 Edition)
Photoshop Tutorial for Beginners (2024 Edition)Photoshop Tutorial for Beginners (2024 Edition)
Photoshop Tutorial for Beginners (2024 Edition)
alowpalsadig
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Peter Caitens
 
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
kalichargn70th171
 
Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.
KrishnaveniMohan1
 
Building API data products on top of your real-time data infrastructure
Building API data products on top of your real-time data infrastructureBuilding API data products on top of your real-time data infrastructure
Building API data products on top of your real-time data infrastructure
confluent
 
Secure-by-Design Using Hardware and Software Protection for FDA Compliance
Secure-by-Design Using Hardware and Software Protection for FDA ComplianceSecure-by-Design Using Hardware and Software Protection for FDA Compliance
Secure-by-Design Using Hardware and Software Protection for FDA Compliance
ICS
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
gapen1
 
Software Test Automation - A Comprehensive Guide on Automated Testing.pdf
Software Test Automation - A Comprehensive Guide on Automated Testing.pdfSoftware Test Automation - A Comprehensive Guide on Automated Testing.pdf
Software Test Automation - A Comprehensive Guide on Automated Testing.pdf
kalichargn70th171
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
dakas1
 
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdfThe Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
kalichargn70th171
 
Orca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container OrchestrationOrca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container Orchestration
Pedro J. Molina
 
Microsoft-Power-Platform-Adoption-Planning.pptx
Microsoft-Power-Platform-Adoption-Planning.pptxMicrosoft-Power-Platform-Adoption-Planning.pptx
Microsoft-Power-Platform-Adoption-Planning.pptx
jrodriguezq3110
 

Recently uploaded (20)

All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
 
Cost-Effective Strategies For iOS App Development
Cost-Effective Strategies For iOS App DevelopmentCost-Effective Strategies For iOS App Development
Cost-Effective Strategies For iOS App Development
 
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
 
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptxOperational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
 
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
 
Photoshop Tutorial for Beginners (2024 Edition)
Photoshop Tutorial for Beginners (2024 Edition)Photoshop Tutorial for Beginners (2024 Edition)
Photoshop Tutorial for Beginners (2024 Edition)
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
 
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
 
Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.
 
Building API data products on top of your real-time data infrastructure
Building API data products on top of your real-time data infrastructureBuilding API data products on top of your real-time data infrastructure
Building API data products on top of your real-time data infrastructure
 
Secure-by-Design Using Hardware and Software Protection for FDA Compliance
Secure-by-Design Using Hardware and Software Protection for FDA ComplianceSecure-by-Design Using Hardware and Software Protection for FDA Compliance
Secure-by-Design Using Hardware and Software Protection for FDA Compliance
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
 
Software Test Automation - A Comprehensive Guide on Automated Testing.pdf
Software Test Automation - A Comprehensive Guide on Automated Testing.pdfSoftware Test Automation - A Comprehensive Guide on Automated Testing.pdf
Software Test Automation - A Comprehensive Guide on Automated Testing.pdf
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
 
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdfThe Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
 
Orca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container OrchestrationOrca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container Orchestration
 
Microsoft-Power-Platform-Adoption-Planning.pptx
Microsoft-Power-Platform-Adoption-Planning.pptxMicrosoft-Power-Platform-Adoption-Planning.pptx
Microsoft-Power-Platform-Adoption-Planning.pptx
 

Wap

  • 1. Introduction to WAP and WML Kevin McManus Material re-cycled from Gill Windall © 2004 the University of Greenwich 1
  • 2. What is WAP? WAP = Wireless Application Protocol WML = Wireless Markup Language • A series of specifications for delivering and presenting information on mobile (wireless) devices. • originally from the WAP Forum now the Open Mobile Alliance • Ericsson, Nokia, Motorola, Microsoft, Visa, IBM etc. • Why WAP & WML? • because the standard Internet and Web technologies (e.g. TCP/IP, HTTP, HTML) don't work well for small mobile devices across wireless networks • Isn't WAP & WML dead? • not yet • although it will be superseded before it ever achieves its full potential ‘Rumours of my death have been greatly exaggerated’ Mark Twain © 2004 the University of Greenwich 2
  • 3. Constraints of the wireless/mobile environment • Low bandwidth compared to wired networks • commonly 9600 bps or less – unless you have 3G • Less reliable networks • e.g. when your train goes into the tunnel • Devices with little memory and processing power • Small screens with low resolution • Fiddly user interface devices • Even greater diversity of devices than on the normal wired network • So basically: • data arrives slowly, if at all • when it arrives the device hasn't the power to do much with it • and anyway you can hardly see it and still less interact with it! © 2004 the University of Greenwich 3
  • 4. And yet... • “By 2003 it is estimated that in Western Europe 20% (78 million people) of the population will be active WAP users and over 40% of the population will own WAP enabled phones” Carl Henrick Marcussen 2000 • “1.5 billion mobile subscribers by 2006, 684 million of which will use microbrowser enabled services” Mackenzie & O’Loughlin 2000 © 2004 the University of Greenwich 4
  • 5. Comparing WAP with the Web • A simplistic view of the layers of Web technologies • As a developer of websites and web applications which of these do you need to deal with? Browser layer high level user oriented HTML, JavaScript, PNG, etc. HTTP TCP/IP low level hardware oriented © 2004 the University of Greenwich 5
  • 6. WAE Wireless Application Environment: WML - equivalent of HTML WMLScript - equivalent of JavaScript WBMP - Wireless Bitmap - graphics format WSP (Wireless Session Protocol) - the WAP equivalent of HTTP - binary rather than text based WTP (wireless transaction protocol), WTLS (Wireless Transaction Layer Security), WDP (Wireless Datagram Protocol) Non-WAP "bearer" protocols IP, PPP, SMS, GSM, GPRS As a developer of WAP sites and applications which of these do you need to deal with?
  • 7. Comparing WAP with the Web • The low-level protocols involved in wireless/mobile communication are not part of WAP. WAP runs over them • In ye olden times mobile phones in Europe, Asia and parts of the USA used GSM (Global System for Mobile Communications) • pay for the time of connection • GPRS (General Packet Radio Service) is an extension to GSM which offers higher bandwidth than GSM • only pay for the data transferred • was referred to as 3rd Generation wireless network technology • 3G only recently arrived with high bandwidth (~2Mbit) © 2004 the University of Greenwich 7
  • 8. Comparing WAP with the Web • WTP, WTLS, WDP are WAP protocols that that provide glue between the low level non-WAP protocols and the higher level WAP protocols. • WSP (Wireless Session Protocol) is the WAP equivalent of HTTP. • HTTP is text based (human readable) whereas WSP is binary • why might that be? • WML, WBMP & WMLScript • versions of standard Web client technologies adapted for a wireless environment © 2004 the University of Greenwich 8
  • 9. How do WAP web pages get to a WAP device? HTTP server hello.wml Page written in WML WAP gateway performs compression and translation the wired web the wireless web Pages written in WML are served from a standard HTTP server - this can be, and often is a normal web server which also contains HTML pages, runs server side programs (e.g. ASP, PHP, JSP), communicates with databases etc. © 2004 the University of Greenwich 9
  • 10. WAP gateway • Communication between the WAP gateway and the HTTP server uses normal web protocols (i.e. HTTP over TCP/IP). • The WAP gateway may be run by the cell phone carrier or a third party gateway provider • Its role is to: • physically link the wired and wireless networks • translate between web protocols (HTTP and TCP/IP) and WAP protocols (WSP, WTP etc) • perform compression - WML is stored on the HTTP server in text format, the gateway converts it to binary format for transmission © 2004 the University of Greenwich 10
  • 11. WAP browser • The WAP browser running on the mobile device (phone or PDA) works in a similar way as a normal web browser to format pages for display. • Because mobile devices tend to be even more diverse than static ones the same page may get displayed in very different ways by different browsers on different devices • e.g. the same page displayed in WinWAP (a PC based WAP browser) and on a simulator of a Nokia phone. © 2004 the University of Greenwich 11
  • 12. Thoughts • What are the implications of the last point about the diversity of devices for the web developer? • How could the web developer avoid duplicating content by having to provide a normal web version of pages and a WAP version? © 2004 the University of Greenwich 12
  • 13. Configuring an HTTP server to deliver WAP content • For most servers this just means configuring it to recognise the file types used by WAP and to generate the appropriate MIME Types. Extension Meaning MIME Type .wml WML text/vnd.wap.wml .wmls WMLScript text/vnd.wap.wmlscript .wbmp WBMP image image/vnd.wap.wbmp If you want to publish a WAP site via an ISP then you need to check with them whether the server is configured to deliver WAP content. © 2004 the University of Greenwich 13
  • 14. WML - Wireless Markup Language • Smaller language than HTML adapted for: • limited display and user input facilities • low bandwidth • limited device power - memory and processing • An XML language • all the usual XML syntax rules apply - attribute values in quotes, every tag must have a closing tag etc. • It contains a subset of XHTML • It contains some powerful things not found in XHTML • variables • user input validation • templates • DTD available from the Open Mobile Alliance © 2004 the University of Greenwich 14
  • 15. Structure of a WML document • We're very used to the idea of each HTML document • Each WML document consists of a deck of cards • normally only one card is displayed at a time. intro.wml shop.wml <card id="sh4"> <card id="sh3"> <card id="sh2"> </card> containing one HTML page • WML has a different structure. <card id="int3"> <card id="int2"> <card id="int1"> </card> </card> </card> <card id="sh1"> </card> </card> </card> © 2004 the University of Greenwich 15
  • 16. WML • The whole deck is referred to by the URL of the WML page http://wap.webbedwonders.co.uk/intro.wml • Decks are downloaded at one time • saves the overhead of multiple requests for small documents. • Individual cards can be referenced http://wap.webbedwonders.co.uk/intro.wml#int1 • What are the implications of the above if a WML document was to contain a large number of cards? © 2004 the University of Greenwich 16
  • 17. reference to the WML DTD <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN“ "http://www.wapforum.org/DTD/wml_1.1.xml"> information about the document (i.e. meta data) can go in the head the template can contain code that will appear on every card in the deck e.g. a "back" and "home" option cards contain the basic displayable content WML document structure <wml> <head> </head> <template> </template> <card> </card> <card> ..... </card> etc </wml> © 2004 the University of Greenwich 17
  • 18. cms1.wml - a three card deck card 1 card 3 card 2 © 2004 the University of Greenwich 18
  • 19. <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN“ "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <template> <do type="prev" label="back" id="prev-link"> <prev /> </do> </template> <card title="CMS School" id="cms1"> <p align="center"><big>CMS school</big></p> <p><a href="#cms2">About our courses</a></p> <p><a href="#cms3">Contact details</a></p> </card> <card title="CMS School" id="cms2"> <p> <select title="CMS Course List"> <option>Undergraduate</option> <option>Postgraduate</option> </select> </p> </card> <card title="CMS Contact Details" id="cms3"> <p>CMS School<br/> University of Greenwich<br/> Old Royal Naval College<br/> Greenwich</p> <p><b>Tel:</b> 44(0)20 8331 8500</p> <p><b>Fax:</b> 44(0)20 8331 8665</p> <p><b>email:</b> cms@gre.ac.uk</p> </card> </wml> template card 1 cms1.wml card 2 card 3
  • 20. cms1.wml – card 1 note how the title is displayed in the browser <card title="CMS School" id="cms1"> id attribute allows the card to be referred to as #cms1 <p align="center"><big>CMS school</big></p> <p><a href="#cms2">About our courses</a></p> <p><a href="#cms3">Contact details</a></p> </card> anchor tags work just like HTML most content is contained inside a <p> tag what does ‘link’ do? where does this come from? © 2004 the University of Greenwich 20
  • 21. cms1.wml – card 2 <card title="CMS School" id="cms2"> <p> <select title="CMS Course List"> <option>Undergraduate</option> <option>Postgraduate</option> </select> </p> </card> the <select> and <option> elements offer user interactivity in a similar way as they do in HTML In this example selection of an option has no effect but in a more realistic case it may trigger an action such as linking to another card or sending to a server side program © 2004 the University of Greenwich 21
  • 22. cms1.wml – card 2 • Because of the limited space on most WAP phones these elements are displayed rather clumsily • On a larger device (e.g. a PDA) they may be displayed differently e.g. • The other main user input element is <input> • There is no <form> element © 2004 the University of Greenwich 22
  • 23. cms1.wml – card 3 <card title="CMS Contact Details" id="cms3"> <p>CMS School<br/> University of Greenwich<br/> Old Royal Naval College<br/> Greenwich</p> <p><b>Tel:</b> 44(0)20 8331 8500</p> <p><b>Fax:</b> 44(0)20 8331 8665</p> <p><b>email:</b> cms@gre.ac.uk</p> </card> Notice how even a small amount of information such as this requires scrolling on a mobile phone © 2004 the University of Greenwich 23
  • 24. cms1.wml – template <template> <do type="prev" label="back" id="prev-link"> <prev /> </do> </template> • Templates add the same controls to all the cards in a deck • commonly used to add "back" and "home" controls. • Individual cards can override what they get from the template by a process known as shadowing • we won't look at this. • The <do> element is used to add a control to a card • the precise form of display is determined by the browser e.g. a button or a menu item as above. • All <do> elements have a type= attribute • the most common are "prev" and "accept" • A <do> element contains a task (in this case <prev/>) that is executed when the <do> element is activated. • <prev /> is a task element which returns to the previously displayed card • other task elements include <go> and <refresh> © 2004 the University of Greenwich 24
  • 25. vareg.wml - user input and variables <wml> <card title="Variable example" id="v1"> <p> <fieldset> First name <input name="fname" maxlength="15" format="a*a" /> <br /> </fieldset> <fieldset> Family name <input name="lname" maxlength="15" format="aa*a" /> </fieldset> </p> <do type="accept" label="next"> <go href="#v2" /> </do> </card> <card title="Variable example" id="v2"> <p>Hello $(fname) $(lname)</p> </card> </wml>
  • 26. vareg.wml – card 1 <card title="Variable example" id="v1"> <p> <fieldset> First name <input name="fname" maxlength="15" format="a*a" /> <br /> </fieldset> <fieldset> Family name <input name="lname" maxlength="15" format="aa*a" /> </fieldset> </p> <do type="accept" label="next"> <go href="#v2" /> </do> </card> Will only accept input that conforms to the specified format • format="aa*a" means two lower case letters followed by zero or more other lower case letters • other format characters include • A - any uppercase alphabetic characters • N - any numeric character up to 15 characters can be entered input data is assigned to a variable
  • 27. vareg.wml – card 1 <do type="accept" label="next"> <go href="#v2" /> </do> • Another example of the <do> element - this time of the general purpose type "accept" with the label "next" • The task executed when the <do> is activated this time is a <go> task. • <go> tasks just cause the target href to be loaded - it may be another card in the same deck as in this example or another deck © 2004 the University of Greenwich 27
  • 28. vareg.wml – card 2 <card title="Variable example" id="v2"> <p>Hello $(fname) $(lname)</p> </card> • Variables in WML are shared by all cards in a deck • The two variables fname and lname are set by the <input> elements on card 1 • When you want the value of a variable to be used then the most common form to use is $(variablename) © 2004 the University of Greenwich 28
  • 29. Quick Questions • What are the two most significant features shown in the previous example that have no direct equivalents in HTML. • Why do you think they exist in WML and not HTML? © 2004 the University of Greenwich 29
  • 30. Sending data for server side processing • HTML uses a <form> to send data to server side programs • data entered on to the form is automatically sent to the program named in the action= attribute • sending to the program is triggered by the form button of type="submit" • In WML there is no <form> element. • Sending to a server side program is often achieved by a <go> task triggered by a <do> element. • Data for processing by the server side program can be specified using <postfield> elements GET or POST <do type="accept" label="submit"> <go method="get" href="dowhatever.asp"> <postfield name="fname" value="$(fname)"/> <postfield name="lname" value="$(lname)"/> </go> </do> WML variable name seen by the server side program © 2004 the University of Greenwich 30
  • 32. dating.wml <wml> <template> <do type="prev" label="back" id="prev-link"> <prev/> </do> </template> <card title="Wireless Dating" id="dat1"> <p align="center"> <img alt="heart" src="heart.wbmp"/> </p> <p> Find a new love! </p> <do type="accept" label="Adults only"> <go href="#dat2"/> </do> </card> WBMP image © 2004 the University of Greenwich 32
  • 33. dating.wml <card title="Wireless Dating" id="dat2"> <p> First name <input name="fname" maxlength="15" format="a*a"/> <br/> Family name <input name="lname" maxlength="15" format="aa*a"/> </p> <do type="accept" label="next"> <go href="#dat3"/> </do> </card> © 2004 the University of Greenwich 33
  • 34. dating.wml <card title="Wireless Dating" id="dat3"> <p> Your gender </p> <p> <select name="owng" title="own gender"> <option value="f">female</option> <option value="m">male</option> </select> </p> <p> Required gender </p> <p> <select name="dateg" title="wanted gender"> <option value="male">male</option> <option value="female">female</option> </select> </p> <do type="accept" label="next"> <go href="#dat4"/> </do> </card>
  • 35. dating.wml <card title="Wireless dating" id="dat4"> <p> Age <input name="age" size="2" maxlength="2" format="2N"/> <br/> Your best feature <input name="des" maxlength="15" format="*a"/> <br/> </p> <do type="accept" label="next"> <go href="#dat5"/> </do> </card> © 2004 the University of Greenwich 35
  • 36. dating.wml <card title="Wireless dating" id="dat5"> <p> Well $(fname) we hope to find you a nice $(dateg) who loves your $(des) </p> <do type="accept" label="submit"> <go method="get" href="date.php"> <postfield name="fname" value="$(fname)"/> <postfield name="lname" value="$(lname)"/> <postfield name="owng" value="$(owng)"/> <postfield name="dateg" value="$(dateg)"/> <postfield name="age" value="$(age)"/> <postfield name="description" value="$(des)"/> </go> </do> </card> response from server side program Variables from other cards set up to be sent to the server
  • 37. date.php output the appropriate MIME header <?php header("Content-type: text/vnd.wap.wml"); echo "<?xml version="1.0" encoding="UTF-8"?>n"; ?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card title="Suitable dates"> <p> Sorry <?php echo $_GET[fname] ?> no-one suitable at the moment - try again later.</p> <do type="accept" label="home" id="hom"> <go href="dating.wml#dat1" /> </do> </card> </wml> POST or GET data as usual © 2004 the University of Greenwich 37
  • 38. Events • WML has some event handling capabilities built-in to the language • unlike HTML • Events can be bound to a task (e.g. a <go> task) using the <onevent> element type of event being bound task executed when the event occurs <option> <onevent type="onpick"> <go href="listungrad.php"/> </onevent> Undergraduate </option> • The effect of the code above is to request listungrad.php when the "Undergraduate" option is selected. • There is also a shorthand for binding some events which we won't look at. © 2004 the University of Greenwich 38
  • 39. timer.wml <wml> do this when the timer expires <card title="timer example 1" id="tim1"> <onevent type="ontimer"> <go href="#tim2"/> Set a timer for </onevent> 2.5 seconds <timer value="25" /> <p align="center"><big>Special Offer</big></p> </card> <card title="timer example 2" id="tim2"> <p align="center"><big>Buy lots!</big></p> </card> </wml> 2.5 seconds later © 2004 the University of Greenwich 39
  • 40. WMLScript • As we've seen WML allows you to do certain things that are not possible in HTML without resorting to the use of JavaScript or some other scripting language. • However there are many things it can't do e.g. maths, detailed validation. • In the wireless environment it is perhaps even more important to reduce trips to the server (e.g. to perform for validation) than on the normal web. (Why?) • The answer is ......... WMLScript! © 2004 the University of Greenwich 40
  • 41. WMLScript • JavaScript (lovely though it is) is quite a large and complex language • requires a lot of processing by the browser • WMLScript is very similar to a cut down JavaScript • There are many similarities (syntax, operators, loops, conditonals, etc.) but also a number of differences • all WMScript code is declared in functions • there are no global variables • every WMLScript statement must end with a ";" • WMLScript code is not interspersed with WML but is stored in a separate file (with extension .wmls) • WMLScript is converted to a binary format (called bytecode) before transmission to the client • WMLScript uses standard libraries to perform many tasks © 2004 the University of Greenwich 41
  • 42. dating2.wml <card title="Wireless dating" id="dat4"> <p> Age <input name="age" size="2" maxlength="2" format="2N"/> <br/> Your best feature <input name="des" maxlength="15" format="*a"/> <br/> </p> <do type="accept" label="next"> <go href="dating2.wmls#validateAge()"/> </do> </card> <card title="Wireless dating" id="tooyoung"> <p> Sorry kid! </p> </card> call function validateAge() in file dating2.wmls © 2004 the University of Greenwich 42
  • 43. dating2.wmls extern function validateAge() { var theage = WMLBrowser.getVar("age"); if (theage < 18) { WMLBrowser.go("#tooyoung"); } else { WMLBrowser.go("#dat5"); } return; } if less than 18 go to the tooyoung card otherwise go to the next card © 2004 the University of Greenwich 43
  • 44. Creating sites that deliver both HTML and WML content • Option 1 - Create separate content HTML pages Web server WML pages HTML browser WML browser • WML pages may be created using software such as Nokia WAP Toolkit or an add-in to Dreamweaver. © 2004 the University of Greenwich 44
  • 45. Creating sites that deliver both HTML and WML content • Option 2a - Automatically create WML from HTML content • this could be a static converter HTML browser HTML pages converter WML pages WML browser © 2004 the University of Greenwich 45
  • 46. Creating sites that deliver both HTML and WML content • Option 2b - Automatically create WML from HTML content • with a dynamic converter HTML browser HTML pages WML browser converter © 2004 the University of Greenwich 46
  • 47. Creating sites that deliver both HTML and WML content • Option 3 - Create both HTML and WML content from XML using XSLT XSLT for HTML pages XML pages XSLT for WML pages HTML browser WML browser XSLT processor © 2004 the University of Greenwich 47
  • 48. Quick Questions • What advantages and disadvantages are there for the three options given above? • Are there any other options? © 2004 the University of Greenwich 48
  • 49. XSLT to generate HTML or WML showbooks.php If browser wants HTML use toHTML.xsl If browser wants WML use toWML.xsl toHTML.xsl goodBooks.xml ...... <book> ..... </book> ….. <book> ..... </book> ..... toWML.xsl © 2004 the University of Greenwich 49
  • 50. Creating sites that deliver both HTML and WML content • The user surfs to the URL of the ASP (showbooks.asp) • The ASP loads the XML file containing the book details • The ASP detects whether the browser wants HTML or WML and applies the appropriate stylesheet to format appropriately (e.g. no book cover image for the WML version) and transform the XML into the appropriate language © 2004 the University of Greenwich 50
  • 51. showbooks.php <?php error_reporting(15); $xh = xslt_create(); xslt_set_base($xh, 'file:///home/mk05/public_html/web/wap/book/'); if ( strpos($_SERVER['HTTP_ACCEPT'],'text/vnd.wap.wml') ) { if ( $result=xslt_process($xh, 'goodBooks.xml', 'toWML.xsl') ) { header('Content-type: text/vnd.wap.wml'); } } else { if ( $result=xslt_process($xh, 'goodBooks.xml', 'toHTML.xsl') ) { header('Content-type: text/html'); } } if ($result) { echo "<?xml version="1.0" encoding="UTF-8"?>n"; echo $result; } else { echo("There is an error in the XSL transformation...n"); echo("tError number: " . xslt_errno($xh) . "n"); echo("tError string: " . xslt_error($xh) . "n"); exit; } xslt_free($xh); ?> If the client accepts WML use toWML.xsl otherwise use toHTML.xsl output the appropriate mime type
  • 52. WAP applications • Hunting for information rather than browsing! • Services wanted when away from the office/home computer • Potentially location specific (e.g. nearest cash machine, car park etc) • Online banking • Booking tickets - travel or entertainment • Information services e.g. • Share price news wap.ananova.com/business • Weather http://www.excite.co.uk/wap/weather • Yellow pages • Sports www.waparesult.com • News www.guardian.co.uk/wml • Google wap.google.com © 2004 the University of Greenwich 52
  • 53. i-mode • i-mode - an alternative to WAP? • Developed in the USA but big in Japan • launched by NTT DoCoMo in 1999 • arrived in the UK in 2005 (O2) • Approx 80% of the world's wireless Internet users are in Japan and approx 80% of them use i-mode rather than WAP! • 45 million i-mode customers in Japan • 5 million i-mode customers in the rest of the world © 2004 the University of Greenwich 53
  • 54. Differences between i-mode and WAP • WAP is a set of protocols and languages • i-mode is a complete wireless service provided by DoCoMo • uses DoCoMo proprietary protocols and open standards • WAP uses WML • i-mode uses cHTML - compact HTML • a subset of HTML with some extra features for mobile applications • will render on standard browsers • WAP services in Europe were circuit-switched until GPRS arrived • i-mode was always based on a packet-switched system • you're always connected and only pay for data downloaded • WAP services are mostly business oriented • i-mode services are mostly entertainment and games oriented • i-mode mail interoperates with e-mail • Until recently European devices were mostly black and white displays • Japan led the way with early adoption of colour displays • WAP never made much impact • i-mode was an overnight success © 2004 the University of Greenwich 54
  • 55. Conclusions • WAP, WML and WMLScript provide elegant alternatives to HTTP, HTML and JavaScript • engineered to cope with the limitations of wireless technologies • but tiny screens and fiddly keyboards will always be small and fiddly • although this did not stop i-mode from catching on • perhaps it was the lack of content on WAP • or maybe it is a cultural thing • Mobile technology is advancing rapidly • high bandwidth, more memory, more processing power, larger, higher resolution colour displays • Perhaps the age of WAP and i-mode is over and the WWW will arrive fully on mobile devices • already seeing IE and Opera on mobile devices • all we need is a decent (virtual) keyboard © 2004 the University of Greenwich 55