Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 94

1 / 95

Wireless Mobile or Mobile


Wireless?
Wireless communication systems
are type of communication system
Dimensions of mobility:
The set of properties that distinguishes
the mobile computing system
from stationary computing system

2 / 95
Dimensions of
Mobile Computing
Location awareness
Network connectivity quality of service (QOS)
Limited device capabilities
Limited power supply
Support for a wide variety of user interfaces
Platform proliferation
Active transactions
3
Mobile Development Frameworks
and Tools
4 / 95
Mobile Development
Frameworks and Tools
Fully Centralized
Frameworks and Tools
N-Tier Client-Server
Frameworks and Tools
5 / 95
Fully Centralized
Frameworks and Tools
Have custom-designed clients
Embedded in nature
Designed to do only one thing
6 / 95
Fully Centralized
Frameworks and Tools
Applies:
QOS
Limiter power supply
Active transactions
Location awareness
Do not apply:
Platform proliferation
Limited device capabilities
Support for variety of user interfaces
7 / 95
Examples
Call centers
Battlefield systems
Grocery store
8 / 95
N-Tier Client-Server
Framework and Tools
N-Tier -Any Number of Tiers
No Limits
3-Tier
Client (User Agent)
Application Server
Database
9 / 95
Basic problems
Code portability

Mobility
10 / 95
Needs

Layer of Software

Performance
and system requirements
11 / 95
Selection of the
Frameworks and Tools

Thin-Client Wireless Client-Server
Thick-Client Wireless Client-Server
Stand-alone Applications
12 / 95
Thin-Client Wireless
Client-Server
Browser that loads markup code
(Web-model)
No concern about environment
Server-side structure
Example: WAP with his WML
13 / 95
Thick-Client Wireless
Client-Server
Client application-custom application
Using the client
as a means of storing data
for the offline business logic performs
Does not need to be centralized
Having thick clients is more difficult
14 / 95
Difficulties???
Restricted resources
Deployment and provision problem
Operating system or virtual machine
Programming environment

15 / 95
Examples
Operating system
Windows CE
Symbian
Virtual Machine
J2ME
16 / 95
Stand-alone Applications
They do not need
networking components
Needs of synchronization
with some external system
periodically
17 / 95
Some products
Connectivity


Platform
Stand-alone
Networked
Wired Wireless
Mobile
Platforms
WAP
Symbian
BREW
Java
.NET
18 / 95
JAVA - features
Object oriented language
Complete code mobility
Weak mobile agent ability
It is a platform
19 / 95
J2ME
Addresses the needs of
two categories of devices:
Personal, mobile,
connected information devices (CLDC)
Shared, fixed,
connected information devices (CDC)
20 / 95
CLDC/MIDP Features(1)
Providing:
a virtual machine
for providing language features
a security framework
for tasks such as downloading MIDlets
(J2ME CLDC/MIDP applications)
*MIDP - Mobile Information Device Profile
21 / 95
CLDC/MIDP Features(2)
Providing:
a reasonable amount of functionality
for input and output
some internationalization capabilities
a reasonable amount of
networking capabilities
22 / 95
KVM
Does not provide:
Floating point arithmetic
Support for JNI
Thread grouping
Full-blown exception
Automatic garbage collection of
unused objects
Weak references
23 / 95
CLDC/MIDP features
Providing a security framework
for tasks such as downloading MIDlets
(J2ME CLDC/MIDP applications)
24 / 95
CLDC/MIDP features

Providing
a reasonable amount of functionality
for input and output
25 / 95
Internationalization
capabilities
Provides I/O stream readers
that can handle
different character encoding schemes

Two ways of internationalization:
Dynamic
Static
26 / 95
Profiles
The areas addressed by profiles
are the following:
Download and installation of application
Life-cycle management of application
User interface feature
Database functionality
Event handling
27 / 95
CLDC profiles
MIDP
(Mobile Information Device Profile)
Widely known and accepted
Personal Digital Assistant Profile
(PDAP)
etc.
28 / 95
MIDP
Designed for devices with assumed
characteristics
Small displays
(96x24,1:1 shaped pixels, depth 1bit)
Min 128kB of nonvolatile memory
(for storing application itself)
Wireless connection to the internet
Min of 8kB of nonvolatile memory
(for use by the application)
ITU-T phone keypad
29 / 95
Overview of the CLDC and
MIDP Java APIs
J2SE-like APIs
inherited from the J2SE environment
java.lang.*
java.io.*
java.util.*
CLDC-specific APIs
javax.microedition.io (connector class)
30 / 95
Networking Capabilities
J2SE assumes the availability
of a TCP/IP connection
CLDC defines
a connection framework in its Java API
example WAP-style connections (WDP/UDP)
31 / 95
Review of MIDP APIs
Timers
java.util.Timer
java.util.TimerTask
Networking
HTTP implementation
javax.microedition.io.* holds
HttpConnection
32 / 95
Review of MIDP APIs
Storage
javax.microedition.rms.*
(RMS-Record Management System)
for storing and retrieving data
User Interface
javax.microedition.lcdui.*
user interface APIs to build interfaces for MIDlets
33 / 95
Hello MIDP example
For a J2ME class to qualify as a MIDlet,
it has to do the following:
1. Extend the MIDlet class
2. Implement the following methods:
a) startApp()
b) pauseApp()
c) destroyApp(boolean b)
34 / 95
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class HelloMIDP extends MIDlet implements
CommandListener {

public static final String HELLO = Hello MIDP;

private DIsplay mDIsplay;
private Command mExit;

public HelloMIDP() {
mDisplay = Display.getDIsplay(this);
mExit = new Command(Exit, Command.SCREEN, 1);
}

Hello MIDP example
35 / 95
public void startApp() {
TextBox myMessage = new TextBox(HELLO, HELLO, 256,
0);
myMessage.addCommand(mExit);
myMessage.addCommand((CommandListener) this);
mDisplay.setCurrent(mDIsplay);
}
public void pauseApp() {}
public void commandAction(Command aCommand,
Displayable aDisplayHandle) {
if (aCommand == mExit) {
destroyApp(false);
}
}
public void destroyApp(boolean b) {
notifyDestroyed();
}
}
}
Hello MIDP example
36 / 95
Suns Development Kit
Offers following components:
KToolbar (GUI)
Preverifier
Compiler
Emulators
Emulation of Performance
37 / 95
Dimensions of Mobility by
CLDC and Profiles
Location awareness
no treatment
javax.microedition.location
Network QOS
Limited Device Capabilities
Limited Power Supply Management
Support for a Large Variety of User Interfaces
Platform proliferation
Active Transactions
38 / 95
XML & J2ME
Types of parsers:
Model Parsers
Push Parsers
Pull Parsers
39 / 95
Using UML to Model J2ME
Applications
Class Diagrams
State Diagrams
Component Diagrams
Sequence Diagrams
40 / 95
CDC
Targeted at environments
where more than 512kB
(usually about 2MB) of memory
is available for the Java environment
CDC Profiles
are built on top of the Foundation Profile
CDC has his own virtual machine
(CVM-C Virtual Machine)
CVM supports all of the features
that the J2SE VM does
41 / 95
Java Card
Smart cards embedded processor or
electronic memory device
Java Card API
allows interoperability
between different card readers/writes
and cards regardless of the manufacturer
and Java Card API implementer
42 / 95
Java Card
43 / 95
Three Types of
Smart Cards
IC (Integrated Circuit)
Memory Cards
IC Microprocessor Cards
Optical Memory Cards
44 / 95
JINI
Java Intelligence Network Infrastructure
a base technology for ad-hoc networking
Basic transaction that JINI provides:
Lookup
Discovery
Events
Leasing
Joining
Transaction Management
45 / 95
JINI Specification
Most todays implementations
are not designed for mobile devices
There are some that offer
mobilized JINI
PSINaptic
46 / 95
Java-based Peer-to-Peer
Protocol
JXTA peer-to-peer protocol
Implementation on J2ME
Direct Implementation
(JXTA APIs - provided on J2ME device)
Indirect Implementation
(JXTA through proxies)
47 / 95
BREW
BREW
(Binary Run-time Environment for Wireless)
It is built directly on hardware
Software Development Kit (SDK)
48 / 95
BREW SDK Overview
http://www.qualcomm.com/brew
register as a developer
download BREW SDK
offered only as a integrate set of components with MS Visual
C++ 6.0
You get this applications
BREW MIF Editor
BREW Device Configurator
BREW Emulator
BREW Image Authoring Tool
BREW ARM Compiler
Image Converter
BREW Resource Editor
BREW Pure Voice Converter
BREW AppLoader
BREW Grinder
BREW TestSig Generator and AppSigner
49 / 95
Building and Deploying a
BREW Application
Download the SDK and get started
Obtain a Verisign Class 3 certificate
Get a BREW phone
Register as a BREW developer
Obtain a Class ID for your application
Perform a unit test and send it to a testing lab
Perform a pricing and carrier evaluation
50 / 95
Download SDK
and Start
Unit Test
Obtain Class 3
Certificate from
Verisign
Get a BREW
Phone
Pricing and Carrier
Evaluation
True BREW Test Get a Class ID
Develop
Done
No
Yes
51 / 95
Hello BREW
AEEClsCreateInstance
BREW Run-time environment
HelloBREW_HandleEvent
EventHandler
52 / 95
Architectural Concerns
About BREW Application
Everything in BREW is event driven
(tight coupling to the hardware platform)
Two groups of APIs you can use:
those provided by qualcomm
those provided by third-party vendors
BREW API is still developing in C
53 / 95
Windows CE
Different flavors
of the Windows CE OS,
depending on
hardware platform.
Pocket PC
Windows CE .NET
Pocket PC 2002
54 / 95
Tools to build Applications
Embedded Visual C++
separate from Visual Studio
Emulators and a debugger is provided
exception handling, run-time debugging
Embedded Visual Basic
can be developed faster
no ability to be tuned and optimized
for resource-starved mobile devices
Smart Device Extensions for .NET
Microsoft Mobile Internet Toolkit
55 / 95
eMbedded Visual C++
Compilers available for:
ARM
MIPS
Intels x86
PowerPC
Hitachi processors
56 / 95
eMbedded Visual C++
Provides:
a subset of the Win32 APIs
for building Windows CE applications
a subset of the MFC
(Microsoft Foundation Classes) libraries
a set of classes specific
to the Windows CE platform
57 / 95
Things You Should keep in
mind
Graphics are expensive
Use events instead of polling when possible
Economize with your memory (saving power)
Provided functionality of getting the status
of the Power Consumption
useful for testing application
useful to change behavior of application
Clean up memory resources
whenever you get WM_HIBERNATE event
58 / 95
Databases on Windows CE
Three ways to store data:
MS SQL Server Windows CE Edition
most functionality
takes the most resources
offers only subset of its desktop/server version
views
stored procedure
CEDB
small and simple database
its not relational database
File System
fewer resources
increases the application
59 / 95
Windows CE and
Web Services
Importance of XML-based Web Service
.NET has Web Service-based functionality
based on two key technologies:
WSDL (Web Service Definition Language)
SOAP (Simple Object Access Protocol)
60 / 95
Microsoft Smart Phone
Microsoft Smart Phone 2002,
Microsoft's attempt to enter
the mobile technology market
It can host custom applications
written using smart phone SDK.
SDK is provided
as a plug-in for eVC
61 / 95
WAP
WAP Wireless Application Protocol
Installed on almost every mobile phone

Basics about WAP:
WAP is intended for thin clients
all logic calculated on the server
simple display instructions in some markup language
are done by the client
WAP is built on its own lower level communication protocol
Typical deployment of WAP includes a proxy or a gateway
WAP is a complete framework for a mobile applications
62 / 95
WAP Architecture
Its a client-server Architecture
Implementation standards
for client to interpret content
communication mechanisms
between the clients and the servers
additional required features in the server
(particulary proxy servers)
Communication functionality
between clients and server:
Handling of Telephony on the Device
Push
63 / 95
Application
Server
WAP Proxy /
Gateway
Basic Communication
Architecture in WAP
WAP Client
WSP,WTP,WTLS,WDP
HTTP/
HTTPS
64 / 95
WAP UI
Developing WML pages
WML Mark-up language rendered by the WAP micro browsers
Advantages over HTML
WML tag is smaller
WML is XML compliant
WML is designed for small monochrome screens
allows breaking a page into a deck of cards
allows client-side navigation between the cards
WML has mark-up tags
that allow interacting with the telephony
Disadvantages
Most content on Internet is in HTML
Conversion of HTML to WML is not easy process
WAP 2.0 fixes that using XHTML that is well-formed
and using XML techniques like XSLs to convert XHTML to WML
65 / 95
WAP
Proxies and Gateways
A server that supports
WAP and HTTP
Difference
between the proxy and the gateway:
user can determine will he use proxy
66 / 95
WAP Gateways (1)
Features of WAP Gateways:
Security
Handoff point between WTLS
(Wireless Transport Layer Security)
to external security mechanisms (SSL)
Network Access
Access point
Controlled access by Network Provider
Protocol Conversions
Converting WSP (Wireless Session Protocol)
to HTTP
67 / 95
WAP Gateways (2)
Caching
Extremely aggressive caching
cache expire must be set manually
reduces the pervasiveness of content
Preparation of Content and Scripts
Gateway encodes WML
into Compiled WML (WMLC)
WMLScript must be compiled
before being sent to client
Functionality offered through WAP 2.x
offering model of connectivity that puts
increasingly less functionality into the proxy
68 / 95
MMS
MMS - Multimedia Messaging Services
WAP MMS is a standard
Overview:
Presentation
handled through SMIL
(Synchronized Multimedia Integration Language)
Addressing
two addresses:
address of the MMS Proxy-relay
address of the recipient user and terminal
Delivery is possible through variety of interfaces.
These include the following:
a. MMS proxy-relay
b. Standard email interface (supports any email protocol)
c. Legacy wireless messaging systems
69 / 95
WAP Push
Based on Push Access Protocol (PAP)
Push operation
WAP push event do the following:
The mobile device connects
and registers to Master Pull Proxy
Application Server establishes a connection to PPG
through PAP protocol
The content being pushed can be a multipart document
following the MIME format
The user agent profile is accessed.
The message is then sent to PPG
The devices receives the message
70 / 95
Security
WAP does not have application
authorization
Offers guaranteed authentication
of user devices
Offers guaranteed integrity
of transactions
71 / 95
Symbian EPOC
Symbian OS 7.0 supports:
MMS, HTTP, SyncML, SMS,
Mobile IP, IrDA, and Bluetooth
It has free SDK
(supported languages: C++ and Java)
Designed more as a PDA OS
72 / 95
Publishing Frameworks
Presenting content in several different formats
Matching the type of document
requested with the type of document available
(or one that may need to be generated at run time)
Modularized infrastructure that separates
the various components of the framework,
the processing components, and the content
73 / 95
Publishing Frameworks
Examples:
Apaches Cocoon
best known publishing framework today
written in Java, supports ASP, Java and XSL (and many other)
IBMs Wireless Transcoding Publisher

They treat the user interface problems presented by the following:
Proliferation of mobile devices
Localized and Internationalized user interfaces
Selection of segments of multichannel content
Selection and composition of content based
on device information
74 / 95
Cocoon
Open-source widely accepted
Got his name from the movie
Cocoons Architecture aim to separate:
content
style (the formatting of content)
logic (how content is generated or chosen)
management of content (creating content)
75 / 95
Cocoons Architecture
XHTML
PDF
VXML
WML
XML
Binary
Java
Transformers
Generators Serializers
76 / 95
Generators
Take static/dynamic content
Generate XML in the form of SAX events
There are series of generators:
File generator
Server pages generator
JSP generator
Request generator
77 / 95
Transformers
Xalan
XSL transformation engine
XSLs are not platform dependent
or language dependent

78 / 95
Serializer
Responsible for publishing
to the client through HTTP response
FOPSerializer
(Converts HTML to PDF)
SVG Serializer
79 / 95
IBM Wireless Transcoding
Publisher
Focusing on product,
IBM Wireless Everyplace Suite
Integrated environment with
IBMs Websphere Application Server
Our focus is on pervasive
and mobile aspects of this suite
and comparison with Cocoon
80 / 95
Overview of IBM
Everyplace Suite
Addresses issues like:
wireless connectivity
content management
for wireless clients
wireless security
provisioning and device management
81 / 95
Comparison of the
WTP and Cocoon
WTP offers better functionality
in converting HTML
to any other markup language than Cocoon
WTP offers custom transformers
that convert variety of image formats
WTP offers a set of WAP devices
that allow very simple publishing
of HTML and XML content
to WML-enabled devices
Very rich set of tools for developers
82 / 95
Other Tools

Asynchronous Messaging Systems
UML Tools
83
XML for Mobile Computing
84 / 95
XML and Mobile
Applications
Mobile applications should understand
and be able to manipulate XML content
Mobile applications use XML
to facilitate their implementations
85 / 95
Key XML Technologies for
Mobile Computing
XHTML
VXML
designed for voice user interfaces
allows specification of a command-based voice dialog
through a markup language
WML
XForms
CCXML
XML Pipeline
WBXML
SSML
RDF
86 / 95
CCXML
Call Control Extensible
Markup Language
Application of XML
for managing voice calls
It focuses on routing the calls
and connecting calls (in contrast to VXML)
It is based on Java Telephony APIs (JTAPI)
87 / 95
XML Pipeline
It specifies how to process
various XML resources
It can be thought in two different contexts:
It specifies the flow of processing instructions
that are applied to one or more given documents
residing on the host
It specifies the flow of processing instructions
that are applied to a variety of XML documents,
residing at a variety of hosts
88 / 95
Sample XML Pipeline
Document
<?xml version=1.0>
<pipeline xmlns=http://www.w3.org/2002/02/xml-pipeline
xml:base=http://www.cienecs.com/Examples/XMLPipeline>

<param name=target select=result />

<! This section defines the processes and links them to their definitions (typically some hint to
the controller on where and how to start off the processes). We chose Java for our
examples, so the definition is in terms of Java classes. --!>
<processdef name=selector definition=com.cienecs.mobile.http.get_content_selector />
<processdef name =selector_content
definition=com.cienecs.mobile.http.get_content_generator />
<processdef name=authenticator definition=com.cienecs.mobile.security.authenticator
($username) ($password) />
<processdef name=transformer definition=com.cienecs.mobile.transformer.xslt />

<! For our example, we chose a set of processes that select some content based on the users
request. SO, the first thing to do is to find the content that the user requested. --!>
<process id=3 type=selected_content >
<input name=uti_param_1 label=content_finder_param_1 />
<input name=uri_param_2 label=content_finder_param_2 />
<output name=cresult label=generic_content_URI />
</process>
89 / 95
Sample XML Pipeline
Document
<! For our example, we want to transform the content based on the device that the user is using.
SO, we need to fire off a process that finds out the users device type.. --!>
<process id=1 type=selector >
<input name=deviceId label=unique_device_id />
<input name=ccpp_header_string label=ccpp_header_string />
<output name=result label=device_type />
</process>
<! Now, based on the users device type and the selected content, we can find the right type of
transformer and transform the content properly. --!>
<process id=2 type=transformer >
<input name=device_type label=device_type />
<input name=generic_specific_URI label=generic_content_URI />
<input name=authenticated label=authenticated />
<output name=device_specific_content label=device_specific_content />
</process>
</pipeline>
90 / 95
XML Pipeline
Recognize type of processes:
Constructive processes produce new information
Augmenting processes add new types (definitions)
of information
Inspection processes look
at the content of a document
Extraction processes copy
a part of the document that they look into
Packaging processes are distributed processes
that address the processing of distributed resources
91 / 95
WBXML
WAP Binary Extensible Markup Language
Defines a way to represent XML
in 0s and 1s instead of text
KXML (parse WBXML)
92 / 95
SSML
Synthetic Speech Markup Language
It is used for the infrastructure
of the voice user interface
93 / 95
RDF
Resource Description Framework
Created specifically:
to allow discovery of various resources
indexing them
creation of resources
that are made up of other RDF resources
by simply nesting the RDF descriptions
RDF is part of Semantic Web.
94
Thank You
for Your Attention

You might also like