Title: Introduction to Mobile Computing
1Introduction to Mobile Computing
- Aleksandar Kovacevic, renesto_at_gmail.com
- Mina Micanovic, minica82_at_EUnet.yu
- Veljko Milutinovic, vm_at_etf.bg.ac.yu
2Wireless 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
3Dimensions 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
4Mobile Development Frameworks and Tools
5Mobile Development Frameworks and Tools
- Fully Centralized
- Frameworks and Tools
- N-Tier Client-Server
- Frameworks and Tools
6Fully Centralized Frameworks and Tools
- Have custom-designed clients
- Embedded in nature
- Designed to do only one thing
7Fully 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
8Examples
- Call centers
- Battlefield systems
- Grocery store
9N-Tier Client-Server Framework and Tools
- N-Tier -Any Number of Tiers No Limits
- 3-Tier
- Client (User Agent)
- Application Server
- Database
10Basic problems
- Code portability
- Mobility
11Needs
- Layer of Software
- Performance and system requirements
12Selection of the Frameworks and Tools
- Thin-Client Wireless Client-Server
- Thick-Client Wireless Client-Server
- Stand-alone Applications
13Thin-Client Wireless Client-Server
- Browser that loads markup code (Web-model)
- No concern about environment
- Server-side structure
- Example WAP with his WML
14Thick-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
15Difficulties???
- Restricted resources
- Deployment and provision problem
- Operating system or virtual machine
- Programming environment
16Examples
- Operating system
- Windows CE
- Symbian
- Virtual Machine
- J2ME
17Stand-alone Applications
- They do not need networking components
- Needs of synchronization with some external
system periodically
18Some products
Connectivity Platform Stand-alone Networked Networked
Connectivity Platform Stand-alone Wired Wireless
Mobile Platforms WAP
Mobile Platforms Symbian Symbian Symbian
Mobile Platforms BREW BREW BREW
Mobile Platforms Java Java Java
Mobile Platforms .NET .NET .NET
19JAVA - features
- Object oriented language
- Complete code mobility
- Weak mobile agent ability
- It is a platform
20J2ME
- Addresses the needs of
- two categories of devices
- Personal, mobile, connected information devices
(CLDC) - Shared, fixed, connected information devices
(CDC)
21CLDC/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
22CLDC/MIDP Features(2)
- Providing
- a reasonable amount of functionalityfor input
and output - some internationalization capabilities
- a reasonable amount of networking capabilities
23KVM
- Does not provide
- Floating point arithmetic
- Support for JNI
- Thread grouping
- Full-blown exception
- Automatic garbage collection of unused objects
- Weak references
24CLDC/MIDP features
- Providing a security framework for tasks such as
downloading MIDlets (J2ME CLDC/MIDP applications)
25CLDC/MIDP features
- Providing a reasonable amount of functionality
for input and output
26Internationalization capabilities
- Provides I/O stream readers that can handle
different character encoding schemes - Two ways of internationalization
- Dynamic
- Static
27Profiles
- 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
28CLDC profiles
- MIDP (Mobile Information Device Profile)
- Widely known and accepted
- Personal Digital Assistant Profile (PDAP)
- etc.
29MIDP
- Designed for devices with assumed
- characteristics
- Small displays (96x24,11 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
30Overview 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)
31Networking 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)
32Review of MIDP APIs
- Timers
- java.util.Timer
- java.util.TimerTask
- Networking
- HTTP implementation
- javax.microedition.io. holds HttpConnection
33Review 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
34Hello MIDP example
- For a J2ME class to qualify as a MIDlet,
- it has to do the following
- Extend the MIDlet class
- Implement the following methods
- startApp()
- pauseApp()
- destroyApp(boolean b)
35Hello MIDP example
- 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)
-
36Hello MIDP example
- 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()
-
-
37Suns Development Kit
- Offers following components
- KToolbar (GUI)
- Preverifier
- Compiler
- Emulators
- Emulation of Performance
38Dimensions 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
39XML J2ME
- Types of parsers
- Model Parsers
- Push Parsers
- Pull Parsers
40Using UML to Model J2ME Applications
- Class Diagrams
- State Diagrams
- Component Diagrams
- Sequence Diagrams
41CDC
- 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
42Java 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
43Java Card
44Three Types of Smart Cards
- IC (Integrated Circuit)
- Memory Cards
- IC Microprocessor Cards
- Optical Memory Cards
45JINI
- Java Intelligence Network Infrastructure
- a base technology for ad-hoc networking
- Basic transaction that JINI provides
- Lookup
- Discovery
- Events
- Leasing
- Joining
- Transaction Management
46JINI Specification
- Most todays implementations are not designed
for mobile devices - There are some that offer mobilized JINI
- PSINaptic
47Java-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)
48BREW
- BREW (Binary Run-time Environment for Wireless)
- It is built directly on hardware
- Software Development Kit (SDK)
49BREW 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
50Building 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
51(No Transcript)
52Hello BREW
- AEEClsCreateInstance
- BREW Run-time environment
- HelloBREW_HandleEvent
- EventHandler
53Architectural 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
54Windows CE
- Different flavors
- of the Windows CE OS,
- depending on
- hardware platform.
- Pocket PC
- Windows CE .NET
- Pocket PC 2002
55Tools 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
56eMbedded Visual C
- Compilers available for
- ARM
- MIPS
- Intels x86
- PowerPC
- Hitachi processors
57eMbedded 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
58Things 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
59Databases 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
60Windows 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)
61Microsoft 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
62WAP
- 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
63WAP 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
64Basic Communication Architecture in WAP
Application Server
WAP Proxy / Gateway
WAP Client
HTTP/ HTTPS
WSP,WTP,WTLS,WDP
65WAP 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
66WAP Proxies and Gateways
- A server that supports WAP and HTTP
- Difference between the proxy and the gateway
- user can determine will he use proxy
67WAP 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
68WAP 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
69MMS
- 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
- MMS proxy-relay
- Standard email interface (supports any email
protocol) - Legacy wireless messaging systems
70WAP 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
71Security
- WAP does not have application authorization
- Offers guaranteed authentication of user devices
- Offers guaranteed integrity of transactions
72Symbian EPOC
- Symbian OS 7.0 supportsMMS, HTTP, SyncML, SMS,
Mobile IP, IrDA, and Bluetooth - It has free SDK (supported languages C and
Java) - Designed more as a PDA OS
73Publishing 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
74Publishing 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
75Cocoon
- 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)
76Cocoons Architecture
77Generators
- 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
78Transformers
- Xalan XSL transformation engine
- XSLs are not platform dependent or language
dependent
79Serializer
- Responsible for publishing to the client through
HTTP response - FOPSerializer (Converts HTML to PDF)
- SVG Serializer
80IBM 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
81Overview of IBM Everyplace Suite
- Addresses issues like
- wireless connectivity
- content management for wireless clients
- wireless security
- provisioning and device management
82Comparison 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
83Other Tools
- Asynchronous Messaging Systems
- UML Tools
84XML for Mobile Computing
85XML and Mobile Applications
- Mobile applications should understand and be able
to manipulate XML content - Mobile applications use XML to facilitate their
implementations
86Key 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
87CCXML
- 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)
88XML 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
89Sample XML Pipeline Document
- lt?xml version1.0gt
- ltpipeline xmlnshttp//www.w3.org/2002/02/xml-pip
eline xmlbasehttp//www.cienecs.com/Examples/X
MLPipelinegt - ltparam nametarget selectresult /gt
- lt! 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. --!gt - ltprocessdef nameselector definitioncom.cienec
s.mobile.http.get_content_selector /gt - ltprocessdef name selector_content
definitioncom.cienecs.mobile.http.get_content_ge
nerator /gt - ltprocessdef nameauthenticator
definitioncom.cienecs.mobile.security.authentica
tor (username) (password) /gt - ltprocessdef nametransformer definitioncom.cie
necs.mobile.transformer.xslt /gt - lt! 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. --!gt - ltprocess id3 typeselected_content gt
- ltinput nameuti_param_1 labelcontent_finder_par
am_1 /gt - ltinput nameuri_param_2 labelcontent_finder_pa
ram_2 /gt - ltoutput namecresult labelgeneric_content_URI
/gt - lt/processgt
90Sample XML Pipeline Document
- lt! 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.. --!gt - ltprocess id1 typeselector gt
- ltinput namedeviceId labelunique_device_id
/gt - ltinput nameccpp_header_string
labelccpp_header_string /gt - ltoutput nameresult labeldevice_type /gt
- lt/processgt
- lt! Now, based on the users device type and the
selected content, we can find the right type of
transformer and transform the content properly.
--!gt - ltprocess id2 typetransformer gt
- ltinput namedevice_type labeldevice_type /gt
- ltinput namegeneric_specific_URI
labelgeneric_content_URI /gt - ltinput nameauthenticated labelauthenticated
/gt - ltoutput namedevice_specific_content
labeldevice_specific_content /gt - lt/processgt
- lt/pipelinegt
91XML 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
92WBXML
- WAP Binary Extensible Markup Language
- Defines a way to represent XML in 0s and 1s
instead of text - KXML (parse WBXML)
93SSML
- Synthetic Speech Markup Language
- It is used for the infrastructure of the voice
user interface
94RDF
- 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.
95Thank You for Your Attention