SESSION : Pltaforms for Mobile Applications

internalchildlikeInternet and Web Development

Nov 12, 2013 (3 years and 6 months ago)

136 views

Copyright: A. Umar

SESSION : Pltaforms for Mobile Applications






Mobile computing platforms


Middleware to support mobile commerce


Wireless Application Protocol (WAP)


I
-
mode and Wireless Java


Voice Markup Language


Amjad Umar

Copyright: A. Umar

Mobility Issues at Various Levels

M
-
Business and

Mobile Applications

Wireless Networks

Wireless

Infrastructure


Platforms for Mobile Applications

-
Middleware Platforms (WAP, I
-
Mode, J2ME)

-

Mobile Platform Services (Mobile OS, Utilities)



Copyright: A. Umar

Mobile Computing Platforms

Mobile Device
(Cell Phone, PDA, Pocket PC)
Server
(Web Server,
eMail
server,
Mainframe)
Application
Physical Wireless Network
(Antennas, Transceivers, Base Stations,
Cellular Networks, 802.11 LANs,
Satellites)
Middleware
Services
Network
Transport
Services
Local
Platform
Services
Application
Mobile
Computing
Platform
Network
Transport
Services
Local
Platform
Services
Middleware
Services
Copyright: A. Umar

Mobile Computing Platforms


Mobile operating systems

-

Palm OS

-
Windows CE

-

Symbian OS


Mobile database managers


Mobile transaction managers


Utilities for mobile devices


Wireless Middleware


Wireless Gateways


Mobile Application Servers

Copyright: A. Umar

Support Needed for Mobile Apps


Depends

on

how

extensively

the

applications

use

the

underlying

network
.



Applications

in

mobile

computing

fall

into

the

following

three

broad

categories
:



Stand
-
alone

applications

run

entirely

on

mobile

computers

in

disconnect

(detached)

mode
.



Simple

C/S

applications

(e
.
g
.
,

DB

query)
.

the

connection

time

for

C/S

interactions

is

short
.



Advanced

mobile

applications

(groupware

and

distributed

multimedia)

-

information

exchanged

is

time

critical

(i
.
e
.
,

real

time)





Copyright: A. Umar

The Role of Wireless Middleware

Hide the underlying wireless/wired issues


Transformation:

Convert between two contents (HTML
to WML)


Detection and adjustment
: Wireless middleware products
can detect different devices and can optimize the wireless
data output according to device attributes.


Compression.
Middleware products can use various data
-
compression algorithms to minimize the amount of data
being sent over the wireless link.


Security
: Wireless middleware should ensure end
-
to
-
end
security from handheld devices to application servers.


Message delivery
: Middleware can perform message
storage and forwarding should the user get disconnected
from the network.


Operation support
: Middleware should offer utilities and
tools to allow MIS personnel to manage and troubleshoot
wireless devices.


Copyright: A. Umar

Middleware for Mobile
Computing Applications

Two approaches:


"information hiding” wireless middleware


attempts to smooth over the mobile computing issues


the same applications can run on wired as well as wireless
networks.


This goal is met through specialized APIs


Example: WAP


"information providing" wireless middleware



provides as much information about the underlying
environment to the application as possible.


exploits the network quality of service, cost, and location
information for optimum performance


Many specialized middleware systems


Copyright: A. Umar

Mobile Application Servers

Copyright: A. Umar

WAP(Wireless Application Protocol)


Intended for data entry/display on cellular phones


“An open, global specification that empowers mobile users with wireless devices to

easily access and interact with information and services instantly.” w
ww.wapforum.org


Complete protocol stack similar to Internet protocols but optimized for wireless

information pull and push transport layer and above; across multiple wireless technologies


Designed to work with all wireless networks such as GSM, CDMA, and TDMA

Copyright: A. Umar

New Versus Old WAP

Physical
Network
IP
Transport
(TCP/UDP)
TLS-SSL
HTTP
Wireless Application
Environment(WAE
Wireless
Networks
.
CDPD,
GSM,
Bluetooth

Transport Layer
(WDP)
Security Layer (WSL)
Session and Transaction
layers (WSP, WTP)
Wireless Application
Environment(WAE)
WAP 2.0 Stack
WAP1.2 Stack
Copyright: A. Umar

Wireless Markup Language (WML)
Features


Text and image support


formatting and layout commands


Deck/card organizational metaphor


WML documents
subdivided into cards, which specify one or more units of
interaction


Support for navigation among cards and decks


includes
provisions for event handling; used for navigation or
executing scripts

Copyright: A. Umar

Wireless Markup Language (WML) Example

<WML>


<CARD>


<DO TYPE="ACCEPT" LABEL="Next">


<GO URL="#card2"/>


</DO>


Acme Inc.<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>

Acme Inc.

Directory

_____________

Next

Services

1>Email

2 Phone

____________

OK


Slide adapted from WAP web site

Copyright: A. Umar

WMLScript


Scripting language derived from JavaScript
TM


Optimized for use with small CPU, small
-
memory
devices


Omits some functions


Integrates easily with WML



Assumes a bytecode
-
based, stack
-
oriented VM


Assume compiler is in network for reducing
network bandwidth and terminal memory/CPU
usage


Libraries for URL processing, simple dialog (UI)
processing, math and string processing, WML
browser interface

Copyright: A. Umar

WMLScript Example

function
currencyConvertor(currency,exchRate
) {


return currency*exchangeRate;

}

function myDay(sunShines) {


var myDay;


if (sunShines) {


myDay = “Good”;


} else {


myDay = “Not so good”;


};


return myDay;

}

Functions

Programming

Constructs

Variables

Copyright: A. Umar

Wireless Telephony Application (WTA)


Application framework for telephony services


Adds to the WAP architecture a user
-
agent on
client side and WTA server for mobile telephony


Adds extensions to the WML/WMLScript browser


Security by having a separate WTA browser and
port


Exposes additional API (WTAI) for:


Call control


Network text messaging


Phone book interface


Indicator control


Event processing

Copyright: A. Umar

WTA Example: Placing a call

Input Element

WTAI Call

<WML>

<CARD>


<DO TYPE=“ACCEPT”>


<GO URL=“wtai:cc/mc;$(N)”/>


</DO>


Enter phone number:


<INPUT TYPE=“TEXT” KEY=“N”/>

</CARD>

</WML>

WTAI Call


function checkNumber(N) {


if (Lang.isInt(N))


WTAI.makeCall(N);


else


Dialog.alert(“Bad phone number”);

}

Slides from WAP web site

Copyright: A. Umar

Wireless Application Environment
(WAE)


WAE specifies an application framework for wireless
devices


WAE elements:


WAE User agents


software that executes in the wireless device


Content generators


applications that produce standard content
formats in response to requests from user agents in the mobile
terminal


Standard content encoding


defined to allow a WAE user agent to
navigate Web content


Wireless telephony applications (WTA)


collection of telephony
-
specific extensions for call and feature control mechanisms


Libraries


common


network specific (GSM)

Copyright: A. Umar

Wireless Session Protocol (WSP)


Transaction
-
oriented protocol based on the
concept of a request and a reply (based on HTTP)


Provides applications with interface for two
session services:


Connection
-
oriented session service


operates above
reliable transport protocol WTP


Connectionless session service


operates above
unreliable transport protocol WDP


PDUs contain WML, WMLscript, images and
headers

Copyright: A. Umar

Wireless Transaction Protocol (WTP)


Lightweight protocol suitable for "thin" clients and over
low
-
bandwidth wireless links (e
-
commerce transactions)


WTP features


Three classes of transaction service


Optional user
-
to
-
user reliability: WTP user triggers confirmation of
each received message


Optional out
-
of
-
band data on acknowledgments


PDU concatenation and delayed acknowledgment to reduce the
number of messages sent


Asynchronous transactions

WTP Transaction Classes


Class 0: Unreliable invoke message with no result message (unreliable
push)


Class 1: Reliable invoke message with no result message (reliable
push, get acknowledgement)


Class 2: Unreliable invoke message with one reliable result message
(supports a request
-
reply model with some data from server)

Copyright: A. Umar

Wireless Transport Layer Security (WTLS)


Data integrity


ensures that data sent between client and
gateway are not modified, using message authentication


Privacy


ensures that the data cannot be read by a third
party, using encryption


Authentication


establishes authentication of the two
parties, using digital certificates


Denial
-
of
-
service protection


detects and rejects messages
that are replayed or not successfully verified

WTLS Protocol Stack:
two layers of protocols


WTLS Record Protocol


provides basic security
services to various higher
-
layer protocols


Higher
-
layer protocols:


The Handshake Protocol


The Change Cipher Spec Protocol


The Alert Protocol


Copyright: A. Umar

Wireless Datagram Protocol (WDP)


Used to adapt higher
-
layer WAP protocol to the
communication mechanism used between mobile node and
WAP gateway


WDP hides details of the various bearer networks from the
other layers of WAP


Adaptation may include:


Partitioning data into segments of appropriate size for the bearer


Interfacing with the bearer network

Copyright: A. Umar

Wireless Control Message Protocol
(WCMP)


Performs the same support function for WDP as ICMP
does for IP (I.e., provide feedback on problems
-

not
reaching destination, router buffer problems)


Used in environments that don’t provide IP bearer and
don’t lend themselves to the use of ICMP


Used by wireless nodes and WAP gateways to report
errors encountered in processing WDP datagrams


Can also be used for informational and diagnostic purposes


Copyright: A. Umar

Figure 2: WAP Prototype

WAP

Devices

Web

Browser

WAP

Gateway

Web

Server



Servet



Content

(XML/HTML)

eCommerce

Module

HTML/XML

over HTTP

WML

over WAP

HTML/XML

over HTTP

Copyright: A. Umar

WAP Summary


WAP is becoming an important element of the wireless
and mobile middleware space


WAP penetration is greater in Europe and Far East than
US and elsewhere
--

but gaining ground rapidly


Some questions:


How many content providers will generate WAP/WML content?
How well will automatic HTML/WML translators work?


Will existing Internet technology mature fast enough to reduce
impact of WAP?


Will sophisticated e
-
commerce services for mobile users (e.g.
stock purchase, transactions etc.) really become a significant
market?

Copyright: A. Umar

I
-
Mode

I-Mode
Gateway
Web
Content
Cellular
Cellular
Phone
Phone
with
with
I-Mode
I-Mode
Browser
Browser
Web
Web
Server
Server
cHTML
over
Packet Switching
Network

Very popular in Japan (around 20 Million users)


Competitor to WAP


Very heavy graphics oriented


WAP and I
-
mode may combine


NTT Docomo runs I
-
mode


Always on service (use GPRS)


9.6 Kbps at present
-

3G later


Need a special I
-
mode phone, larger screens


I
-
mode sites have pre
-
fabricated content


Copyright: A. Umar

Wireless Java and J2ME

Profiles
Configurations
Runtime
Environments
Devices

Personal
CDC
Consumer Virtual
Machine (CVM)
High end
devices
MIDP, PDA
Kilo Virtual Machine
(KVM)
Handheld devices,
cell phones
GSM
Java Card API
JavaCard
Virtual
Machine
Smart cards
CLDC

Applets


MIDlets

Java card Applets
Applications
J2ME
JavaCard
Wireless Java = J2ME + other Java Technologies (e.g., Java Cards)

Wireless Java

Copyright: A. Umar

BREW


QualComm

created

the

BREW

to

address

a

specific

problem



Nearly

every

cell

phone

sold

today

is

expected

to

be

thrown

away
.



Handset

manufacturers

must

load

each

phone's

applications

onto

the

handset

at

the

factory
.



Each

application

must

be

custom
-
built

for

each

individual

handset
.



How

can

the

applications

installed

on

your

current

phone

be

transferred

to

your

new

one

quickly


BREW

is

intended

to

simplify

application

development

on

CDMA

handsets

(from

QualComm)


End

users

can

download

new

applications

as

binary

code
.


Copyright: A. Umar

Voice Browsers

WAP Browser

HTML Browser

Web

Content

in XML

WML

Stylesheet XSL


Processor

Dialog ML

or Voice XML

Stylesheet


HTML

Stylesheet

Voice Browser

Voice

Browser


Voice
-
Commerce is an area of considerable activity (voice portal)


Voice communication is convenient but more complex


VoiceXML is used for dialogs

Copyright: A. Umar

VoiceXML Prototype

WAP

Gateway

Web

Server



Servelet



Content

(XML/HTML)

eCommerce

Module

HTML/XML

WML

VoiceXML

Gateway

VoiceXML

Copyright: A. Umar

Voice XML for V
-
Commerce


Voice XML Forum (www.voicexml.org)


Extension of XML in cooperation with W3C


Participation through IBM, AT&T, Lucent


Goals


Enable internet access via voice and phone (e.g Voice activated web
browsing).


Make setup of voice services, development of
interactive
speech
-
enabled
applications easier and cheaper.


Enable easy integration of voice and data services.



Example

<?xml version=“1.0”>

<vxml version=“1.0”>


<form>


<field name=“drink”>


<prompt> would you like coffee, milk, or tea?</prompt>


<grammar src=“drink.gram” type=“application/x
-
jsgf”/>


</field>


<block>


<submit next = “http://www.drink.example/drink2.asp”/>


</block>

</form>




C: would you like coffee, milk, or tea?

U: Juice

C: Sorry, try Again

U: Tea


Coffee | Black,
Cream&sugar;


Milk | Milk;


Tea | ice, hot;

|

Copyright: A. Umar

VoiceXML gateway

Text

to

Speech

Automated

Speech

Recognition

Text

Voice XML

Gateway

Text

Speech

Speech

Voice

Browser


User calls a site


Site sends VXML


Voice browser handles VXML


TTS translates to speech


User answers


Gateway invokes ASR to convert to VXML text


Browser sends VXML to the server



Web

Server




VXML

Doc