Mobile and Pervasive Computing
Download
Report
Transcript Mobile and Pervasive Computing
Ch 4. Mobile Computing Platforms,
Middleware, and Servers
Myungchul Kim
[email protected]
SESSION : Platforms for Mobile Applications
Mobile computing platforms
Middleware to support mobile commerce
Wireless Application Protocol (WAP)
I-mode and Wireless Java
• Voice Markup Language
Mobility Issues at Various Levels
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
Mobile Computing Platforms
Server
(Web Server, eMail server,
Mainframe)
Mobile Device
(Cell Phone, PDA, Pocket PC)
Application
Application
Middleware
Services
Local
Platform
Services
Network
Transport
Services
Mobile
Computing
Platform
Middleware
Services
Local
Platform
Services
Physical Wireless Network
(Antennas, Transceivers, Base Stations,
Cellular Networks, 802.11 LANs,
Satellites)
Network
Transport
Services
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
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)
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 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.
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
Mobile Application Servers
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.”
www.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
New Versus Old WAP
WAP 2.0 Stack
Wireless Application
Environment(WAE
WAP1.2 Stack
Wireless Application
Environment(WAE)
HTTP
Session and Transaction
layers (WSP, WTP)
TLS-SSL
Security Layer (WSL)
Transport
(TCP/UDP)
IP
Physical
Network
Transport Layer
(WDP)
Wireless
Networks
. CDPD,
GSM, Bluetooth
Wireless Application Environment
(WAE)
• WAE specifies an application framework for wireless
devices
• WAE consists of
– WML and WML Microbrowser
– WMLScript
– Wireless Telephony Application (WTA) and the API (WTAI)
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 telephonyspecific extensions for call and feature control mechanisms
– Libraries
• common
• network specific (GSM)
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
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">
Services
<DO TYPE="ACCEPT">
1>Email
<GO URL="?send=$type"/>
2> Phone
3> Fax
</DO>
______
Services
OK
<SELECT KEY="type">
<OPTION VALUE="em">Email</OPTION>
<OPTION VALUE="ph">Phone</OPTION>
<OPTION VALUE="fx">Fax</OPTION>
</SELECT>
</CARD>
</WML>
Slide adapted from WAP web site
WMLScript
• Scripting language derived from JavaScriptTM
– 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
WMLScript Example
function
currencyConvertor(currency,exchRate
Functions ) {
return currency*exchangeRate;
}
function myDay(sunShines) {
var myDay;
Variables
if (sunShines) {
myDay = “Good”;
Programming
} else {
Constructs
myDay = “Not so good”;
};
return myDay;
}
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
Slides from WAP web site
WTA Example: Placing a call
WTAI 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>
function checkNumber(N) {
if (Lang.isInt(N))
WTAI.makeCall(N);
else
Dialog.alert(“Bad phone number”);
}
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
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)
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
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
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
Figure 2: WAP Prototype
WAP
WAP
Devices WML Gateway HTML/XML
over HTTP
over WAP
Web
Server
Web
HTML/XML
Browser
Servet
over HTTP
Content
(XML/HTML)
eCommerce
Module
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?
I-Mode
• Very popular in Japan (around 20 Million users)
• Competitor to WAP
• Very heavy graphics oriented
• WAP and I-mode may combine
Cellular
Phone
with
I-Mode
Browser
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
• I-mode sites have pre-fabricated content
Web
Server
Web
Content
Wireless Java and J2ME
J2ME
Applications
Applets
Wireless Java
JavaCard
MIDlets
Java card Applets
GSM
Profiles
Personal
MIDP, PDA
CLDC
Java Card API
Configurations
CDC
Runtime
Environments
Consumer Virtual
Machine (CVM)
Kilo Virtual Machine
(KVM)
JavaCard Virtual
Machine
Devices
High end
devices
Handheld devices,
cell phones
Smart cards
Wireless Java = J2ME + other Java Technologies (e.g., Java Cards)
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.
Voice Browsers
WAP Browser
WML
Stylesheet
Processor
Voice Browser
Dialog ML
Voice
Browser
XSL
Web
Content
in XML
or Voice XML
Stylesheet
HTML Browser
HTML
Stylesheet
•Voice-Commerce is an area of considerable activity (voice portal)
•Voice communication is convenient but more complex
•VoiceXML is used for dialogs
VoiceXML Prototype
WML
WAP
Gateway
Content
(XML/HTML)
VoiceXML
VoiceXML
Gateway
HTML/XML
Web
Server
Servelet
eCommerce
Module
•
•
•
•
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.
Example• Enable easy integration of voice and data services.
C: would you like coffee, milk, or tea?
<?xml version=“1.0”>
U: Juice
<vxml version=“1.0”>
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”/>
Coffee | Black,
</field>
Cream&sugar;
<block>
Milk | Milk;
<submit next = “http://www.drink.example/drink2.asp”/>
Tea | ice, hot;
</block>
|
</form>
VoiceXML gateway
Speech
Text
to
Speech
Text
Voice XML Automated
Text
Speech
Gateway
Recognition
Voice
Browser
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