Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević,...

95
Aleksandar Kovačević & Mina Mićanov 1 Introduction to Mobile Computing Aleksandar Kovačević, [email protected] Mina Mićanović, [email protected] Veljko Milutinović, [email protected]

Transcript of Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević,...

Page 1: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 1

Introduction to Mobile Computing

Aleksandar Kovačević, [email protected] Mićanović, [email protected] Milutinović, [email protected]

Page 2: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 2 / 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

Page 3: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 3 / 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

Page 4: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 4

Mobile Development Frameworks and Tools

Page 5: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 5 / 95

Mobile Development Frameworks and Tools

• Fully Centralized

Frameworks and Tools• N-Tier Client-Server

Frameworks and Tools

Page 6: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 6 / 95

Fully Centralized Frameworks and Tools

• Have custom-designed clients

• Embedded in nature

• Designed to do only one thing

Page 7: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 7 / 95

Fully Centralized Frameworks and Tools

Applies:• QOS• Limiter power supply• Active transactions• Location awarenessDo not apply:• Platform proliferation• Limited device capabilities• Support for variety of user interfaces

Page 8: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 8 / 95

Examples

• Call centers

• Battlefield systems

• Grocery store

Page 9: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 9 / 95

N-Tier Client-Server Framework and Tools

• N-Tier -Any Number of Tiers – No Limits

• 3-Tier– Client (User Agent)– Application Server– Database

Page 10: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 10 / 95

Basic problems

• Code portability

• Mobility

Page 11: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 11 / 95

Needs

• Layer of Software

• Performance and system requirements

Page 12: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 12 / 95

Selection of the Frameworks and Tools

• Thin-Client Wireless Client-Server

• Thick-Client Wireless Client-Server

• Stand-alone Applications

Page 13: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 13 / 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

Page 14: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 14 / 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

Page 15: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 15 / 95

Difficulties???

• Restricted resources• Deployment and provision problem

– Operating system or virtual machine– Programming environment

Page 16: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 16 / 95

Examples

• Operating system – Windows CE– Symbian

• Virtual Machine – J2ME

Page 17: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 17 / 95

Stand-alone Applications

• They do not need networking components

• Needs of synchronization with some external system

periodically

Page 18: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 18 / 95

Some products Connectivity

PlatformStand-alone

Networked

Wired Wireless

Mobile Platforms

WAP

Symbian

BREW

Java

.NET

Page 19: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 19 / 95

JAVA - features

• Object oriented language

• Complete code mobility

• Weak mobile agent ability

• It is a platform

Page 20: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 20 / 95

J2ME

Addresses the needs of

two categories of devices:– Personal, mobile,

connected information devices (CLDC)– Shared, fixed,

connected information devices (CDC)

Page 21: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 21 / 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

Page 22: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 22 / 95

CLDC/MIDP Features(2)

Providing: • a reasonable amount of functionality

for input and output• some internationalization capabilities• a reasonable amount of

networking capabilities

Page 23: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 23 / 95

KVM Does not provide:

– Floating point arithmetic– Support for JNI– Thread grouping– Full-blown exception– Automatic garbage collection of

unused objects– Weak references

Page 24: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 24 / 95

CLDC/MIDP features

• Providing a security framework for tasks such as downloading MIDlets (J2ME CLDC/MIDP applications)

Page 25: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 25 / 95

CLDC/MIDP features

• Providing a reasonable amount of functionality for input and output

Page 26: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 26 / 95

Internationalization capabilities

• Provides I/O stream readers that can handle different character encoding schemes

Two ways of internationalization:• Dynamic• Static

Page 27: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 27 / 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

Page 28: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 28 / 95

CLDC profiles

• MIDP (Mobile Information Device Profile)– Widely known and accepted

• Personal Digital Assistant Profile (PDAP)

• etc.

Page 29: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 29 / 95

MIDPDesigned 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

Page 30: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 30 / 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)

Page 31: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 31 / 95

Networking Capabilities

• J2SE assumes the availability of a TCP/IP connection

• CLDC defines a connection framework in its Java APIexample – WAP-style connections (WDP/UDP)

Page 32: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 32 / 95

Review of MIDP APIs

• Timers– java.util.Timer– java.util.TimerTask

• Networking– HTTP implementation– javax.microedition.io.* holds

HttpConnection

Page 33: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 33 / 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

Page 34: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 34 / 95

Hello MIDP example

For a J2ME class to qualify as a MIDlet, it has to do the following:1. Extend the MIDlet class2. Implement the following methods:

a) startApp()b) pauseApp()c) destroyApp(boolean b)

Page 35: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 35 / 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

Page 36: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 36 / 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

Page 37: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 37 / 95

Sun’s Development Kit

Offers following components:• KToolbar (GUI)• Preverifier• Compiler• Emulators• Emulation of Performance

Page 38: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 38 / 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

Page 39: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 39 / 95

XML & J2ME

Types of parsers:• Model Parsers• Push Parsers• Pull Parsers

Page 40: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 40 / 95

Using UML to Model J2ME Applications

• Class Diagrams

• State Diagrams

• Component Diagrams

• Sequence Diagrams

Page 41: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 41 / 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

Page 42: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 42 / 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

Page 43: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 43 / 95

Java Card

Page 44: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 44 / 95

Three Types of Smart Cards

• IC (Integrated Circuit)

Memory Cards• IC Microprocessor Cards• Optical Memory Cards

Page 45: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 45 / 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

Page 46: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 46 / 95

JINI Specification

• Most today’s implementations are not designed for mobile devices

• There are some that offer “mobilized JINI”– PSINaptic

Page 47: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 47 / 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)

Page 48: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 48 / 95

BREW

BREW (Binary Run-time Environment for Wireless)

• It is built directly on hardware

• Software Development Kit (SDK)

Page 49: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 49 / 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

Page 50: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 50 / 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

Page 51: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 51 / 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

DevelopDone No

Yes

Page 52: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 52 / 95

Hello BREW

• AEEClsCreateInstance– BREW Run-time environment

• HelloBREW_HandleEvent– EventHandler

Page 53: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 53 / 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

Page 54: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 54 / 95

Windows CE

Different flavors of the Windows CE OS, depending onhardware platform.• Pocket PC• Windows CE .NET• Pocket PC 2002

Page 55: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 55 / 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

Page 56: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 56 / 95

eMbedded Visual C++

Compilers available for:• ARM• MIPS• Intel’s x86• PowerPC• Hitachi processors

Page 57: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 57 / 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

Page 58: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 58 / 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

Page 59: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 59 / 95

Databases on Windows CEThree 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– it’s not relational database

• File System– fewer resources– increases the application

Page 60: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 60 / 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)

Page 61: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 61 / 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

Page 62: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 62 / 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

Page 63: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 63 / 95

WAP Architecture• It’s 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

Page 64: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 64 / 95

Application

Server

WAP Proxy /

Gateway

Basic Communication Architecture in WAP

WAP Client

WSP,WTP,WTLS,WDP

HTTP/HTTPS

Page 65: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 65 / 95

WAP UIDeveloping WML pages

WML – Mark-up language rendered by the WAP micro browsersAdvantages 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

Page 66: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 66 / 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

Page 67: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 67 / 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

Page 68: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 68 / 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

Page 69: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 69 / 95

MMSMMS - 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-relayb. Standard email interface (supports any email protocol)c. Legacy wireless messaging systems

Page 70: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 70 / 95

WAP Push• Based on Push Access Protocol (PAP)• Push operationWAP 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

Page 71: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 71 / 95

Security

• WAP does not have application authorization

• Offers guaranteed authentication of user devices

• Offers guaranteed integrity of transactions

Page 72: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 72 / 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

Page 73: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 73 / 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

Page 74: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 74 / 95

Publishing Frameworks

Examples:• Apache’s Cocoon

– best known publishing framework today– written in Java, supports ASP, Java and XSL (and many other)

• IBM’s 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

Page 75: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 75 / 95

Cocoon

• Open-source – widely accepted• Got his name from the movie• Cocoon’s Architecture aim to separate:

– content– style (the formatting of content)– logic (how content is generated or chosen)– management of content (creating content)

Page 76: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 76 / 95

Cocoon’s Architecture

XHTML

PDF

VXML

WML

XML

Binary

Java

Transformers

Generators Serializers

Page 77: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 77 / 95

Generators

• Take static/dynamic content• Generate XML in the form of SAX eventsThere are series of generators:• File generator• Server pages generator• JSP generator• Request generator

Page 78: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 78 / 95

Transformers

• Xalan – XSL transformation engine

• XSLs are not platform dependent or language dependent

Page 79: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 79 / 95

Serializer

• Responsible for publishing to the client through HTTP response

• FOPSerializer (Converts HTML to PDF)

• SVG Serializer

Page 80: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 80 / 95

IBM Wireless Transcoding Publisher

• Focusing on product, IBM Wireless Everyplace Suite

• Integrated environment with IBM’s Websphere Application Server

• Our focus is on pervasive and mobile aspects of this suite and comparison with Cocoon

Page 81: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 81 / 95

Overview of IBM Everyplace Suite

Addresses issues like:• wireless connectivity• content management

for wireless clients• wireless security• provisioning and device management

Page 82: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 82 / 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

Page 83: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 83 / 95

Other Tools

• Asynchronous Messaging Systems

• UML Tools

Page 84: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 84

XML for Mobile Computing

Page 85: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 85 / 95

XML and Mobile Applications

• Mobile applications should understand and be able to manipulate XML content

• Mobile applications use XML to facilitate their implementations

Page 86: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 86 / 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

Page 87: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 87 / 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)

Page 88: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 88 / 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

Page 89: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 89 / 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 user’s 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>

Page 90: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 90 / 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 user’s 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 user’s 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>

Page 91: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 91 / 95

XML PipelineRecognize 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

Page 92: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 92 / 95

WBXML

• WAP Binary Extensible Markup Language• Defines a way to represent XML

in 0’s and 1’s instead of text• KXML (parse WBXML)

Page 93: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 93 / 95

SSML

• Synthetic Speech Markup Language

• It is used for the infrastructure of the voice user interface

Page 94: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 94 / 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.

Page 95: Aleksandar Kovačević & Mina Mićanović1 Introduction to Mobile Computing Aleksandar Kovačević, renesto@gmail.com Mina Mićanović, minica82@EUnet.yu Veljko.

Aleksandar Kovačević & Mina Mićanović 95

Thank You for Your Attention