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
M-Business and
Mobile Applications
Wireless
Infrastructure
Platforms for Mobile Applications
-Middleware Platforms (WAP, I-Mode, J2ME)
- Mobile Platform Services (Mobile OS, Utilities)
Wireless Networks
Copyright: A. Umar
Mobile Device
(Cell Phone, PDA, Pocket PC)
Server
(Web Server, eMail server,
Mainframe)
Application
Application
Middleware
Services
Middleware
Services
Mobile
Computing
Platform
Local
Platform
Services
Network
Transport
Services
Local
Platform
Services
Network
Transport
Services
Physical Wireless Network
(Antennas, Transceivers, Base Stations,
Cellular Networks, 802.11 LANs,
Satellites)
Copyright: A. Umar
•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
• 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
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 datacompression 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
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
Copyright: A. Umar
•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
WAP 2.0 Stack WAP1.2 Stack
Wireless Application
Environment(WAE
HTTP
TLS-SSL
Transport
(TCP/UDP)
IP
Physical
Network
Wireless Application
Environment(WAE)
Session and Transaction layers (WSP, WTP)
Security Layer (WSL)
Transport Layer
(WDP)
Wireless
Networks
. CDPD,
GSM, Bluetooth
Copyright: A. Umar
• 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>
Acme Inc.
Directory
_____________
Next
<CARD NAME="card2">
<DO TYPE="ACCEPT">
<GO URL="?send=$type"/>
</DO>
Services
<SELECT KEY="type">
Services
1>Email
2 Phone
____________
OK
<OPTION VALUE="em">Email</OPTION>
<OPTION VALUE="ph">Phone</OPTION>
<OPTION VALUE="fx">Fax</OPTION>
</SELECT>
</CARD>
</WML>
Slide adapted from WAP web site
Copyright: A. Umar
• 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
Functions
Variables
Programming
Constructs
function currencyConvertor(currency,exchRate
) { return currency*exchangeRate;
} function myDay(sunShines) { var myDay; if (sunShines) { myDay = “Good”;
} else { myDay = “Not so good”;
}; return myDay;
}
Copyright: A. Umar
• 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
Slides from WAP web site
WTAI Call
Input Element
<WML>
<CARD>
<DO TYPE=“ACCEPT”>
<GO URL=“wtai:cc/mc;$(N)”/>
</DO>
Enter phone number:
<INPUT TYPE=“TEXT” KEY=“N”/>
</CARD>
</WML>
WTAI Call function checkNumber(N) { if (Lang.isInt(N))
WTAI.makeCall(N); else
Dialog.alert(“Bad phone number”);
}
Copyright: A. Umar
• 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 telephonyspecific extensions for call and feature control mechanisms
– Libraries
• common
• network specific (GSM)
Copyright: A. Umar
• 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
• 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
• 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
• 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
• 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
WML over WAP
WAP
Gateway
HTML/XML over HTTP
Web
Server
Web
Browser HTML/XML over HTTP Servet
Content
(XML/HTML) eCommerce
Module
Copyright: A. Umar
• 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
•Very popular in Japan (around 20 Million users)
•Competitor to WAP
•Very heavy graphics oriented
•WAP and I-mode may combine
I-Mode
Gateway cHTML over
Packet Switching
Network
•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
Web
Content
Applications
Wireless Java
J2ME
JavaCard
Applets MIDlets Java card Applets
GSM
Profiles
Personal
Configurations CDC
Runtime
Environments
Consumer Virtual
Machine (CVM)
MIDP, PDA
CLDC
Kilo Virtual Machine
(KVM)
Java Card API
JavaCard Virtual
Machine
Devices
High end devices
Handheld devices, cell phones Smart cards
Wireless Java = J2ME + other Java Technologies (e.g., Java Cards)
Copyright: A. Umar
• 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
WAP Browser
Voice Browser
Voice
Browser
WML
Stylesheet XSL
Processor
Dialog ML or Voice XML
Stylesheet
Web
Content in XML
HTML Browser
HTML
Stylesheet
•Voice-Commerce is an area of considerable activity (voice portal)
•Voice communication is convenient but more complex
VoiceXML Prototype
WML
WAP
Gateway
VoiceXML
VoiceXML
Gateway
HTML/XML
Content
(XML/HTML)
Web
Server
Servelet eCommerce
Module
Copyright: A. Umar
• 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.
Example
• Enable easy integration of voice and data services.
<?xml version=“1.0”> C: would you like coffee, milk, or tea?
<vxml version=“1.0”>
U: Juice
C: Sorry, try Again
<form>
U: Tea
<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”/>
Coffee | Black,
Cream&sugar;
Milk | Milk;
Tea | ice, hot;
</block>
|
</form>
Copyright: A. Umar
Speech
Text to
Speech
Text
Voice XML
Gateway
Voice
Browser
Automated
Speech
Recognition
Text
Speech
Web
Server
VXML
Doc
•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
Copyright: A. Umar