Introduction to Mobile Computing - PowerPoint PPT Presentation

About This Presentation
Title:

Introduction to Mobile Computing

Description:

Mobile Computing Aleksandar Kova evi , renesto_at_gmail.com Mina Mi anovi , minica82_at_EUnet.yu Veljko Milutinovi , vm_at_etf.bg.ac.yu Wireless Mobile or Mobile Wireless? – PowerPoint PPT presentation

Number of Views:2568
Avg rating:3.0/5.0
Slides: 96
Provided by: etf2
Category:

less

Transcript and Presenter's Notes

Title: Introduction to Mobile Computing


1
Introduction to Mobile Computing
  • Aleksandar Kovacevic, renesto_at_gmail.com
  • Mina Micanovic, minica82_at_EUnet.yu
  • Veljko Milutinovic, vm_at_etf.bg.ac.yu

2
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

3
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

4
Mobile Development Frameworks and Tools
5
Mobile Development Frameworks and Tools
  • Fully Centralized
  • Frameworks and Tools
  • N-Tier Client-Server
  • Frameworks and Tools

6
Fully Centralized Frameworks and Tools
  • Have custom-designed clients
  • Embedded in nature
  • Designed to do only one thing

7
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

8
Examples
  • Call centers
  • Battlefield systems
  • Grocery store

9
N-Tier Client-Server Framework and Tools
  • N-Tier -Any Number of Tiers No Limits
  • 3-Tier
  • Client (User Agent)
  • Application Server
  • Database

10
Basic problems
  • Code portability
  • Mobility

11
Needs
  • Layer of Software
  • Performance and system requirements

12
Selection of the Frameworks and Tools
  • Thin-Client Wireless Client-Server
  • Thick-Client Wireless Client-Server
  • Stand-alone Applications

13
Thin-Client Wireless Client-Server
  • Browser that loads markup code (Web-model)
  • No concern about environment
  • Server-side structure
  • Example WAP with his WML

14
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

15
Difficulties???
  • Restricted resources
  • Deployment and provision problem
  • Operating system or virtual machine
  • Programming environment

16
Examples
  • Operating system
  • Windows CE
  • Symbian
  • Virtual Machine
  • J2ME

17
Stand-alone Applications
  • They do not need networking components
  • Needs of synchronization with some external
    system periodically

18
Some 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
19
JAVA - features
  • Object oriented language
  • Complete code mobility
  • Weak mobile agent ability
  • It is a platform

20
J2ME
  • Addresses the needs of
  • two categories of devices
  • Personal, mobile, connected information devices
    (CLDC)
  • Shared, fixed, connected information devices
    (CDC)

21
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
22
CLDC/MIDP Features(2)
  • Providing
  • a reasonable amount of functionalityfor input
    and output
  • some internationalization capabilities
  • a reasonable amount of networking capabilities

23
KVM
  • Does not provide
  • Floating point arithmetic
  • Support for JNI
  • Thread grouping
  • Full-blown exception
  • Automatic garbage collection of unused objects
  • Weak references

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

25
CLDC/MIDP features
  • Providing a reasonable amount of functionality
    for input and output

26
Internationalization capabilities
  • Provides I/O stream readers that can handle
    different character encoding schemes
  • Two ways of internationalization
  • Dynamic
  • Static

27
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

28
CLDC profiles
  • MIDP (Mobile Information Device Profile)
  • Widely known and accepted
  • Personal Digital Assistant Profile (PDAP)
  • etc.

29
MIDP
  • 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

30
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)

31
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)

32
Review of MIDP APIs
  • Timers
  • java.util.Timer
  • java.util.TimerTask
  • Networking
  • HTTP implementation
  • javax.microedition.io. holds HttpConnection

33
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

34
Hello 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)

35
Hello 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)

36
Hello 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()

37
Suns Development Kit
  • Offers following components
  • KToolbar (GUI)
  • Preverifier
  • Compiler
  • Emulators
  • Emulation of Performance

38
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

39
XML J2ME
  • Types of parsers
  • Model Parsers
  • Push Parsers
  • Pull Parsers

40
Using UML to Model J2ME Applications
  • Class Diagrams
  • State Diagrams
  • Component Diagrams
  • Sequence Diagrams

41
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

42
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

43
Java Card
44
Three Types of Smart Cards
  • IC (Integrated Circuit)
  • Memory Cards
  • IC Microprocessor Cards
  • Optical Memory Cards

45
JINI
  • Java Intelligence Network Infrastructure
  • a base technology for ad-hoc networking
  • Basic transaction that JINI provides
  • Lookup
  • Discovery
  • Events
  • Leasing
  • Joining
  • Transaction Management

46
JINI Specification
  • Most todays implementations are not designed
    for mobile devices
  • There are some that offer mobilized JINI
  • PSINaptic

47
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)

48
BREW
  • BREW (Binary Run-time Environment for Wireless)
  • It is built directly on hardware
  • Software Development Kit (SDK)

49
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

50
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

51
(No Transcript)
52
Hello BREW
  • AEEClsCreateInstance
  • BREW Run-time environment
  • HelloBREW_HandleEvent
  • EventHandler

53
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

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

55
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

56
eMbedded Visual C
  • Compilers available for
  • ARM
  • MIPS
  • Intels x86
  • PowerPC
  • Hitachi processors

57
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

58
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

59
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

60
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)

61
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

62
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

63
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

64
Basic Communication Architecture in WAP
Application Server
WAP Proxy / Gateway
WAP Client
HTTP/ HTTPS
WSP,WTP,WTLS,WDP
65
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

66
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

67
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

68
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

69
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
  • MMS proxy-relay
  • Standard email interface (supports any email
    protocol)
  • Legacy wireless messaging systems

70
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

71
Security
  • WAP does not have application authorization
  • Offers guaranteed authentication of user devices
  • Offers guaranteed integrity of transactions

72
Symbian 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

73
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

74
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

75
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)

76
Cocoons Architecture
77
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

78
Transformers
  • Xalan XSL transformation engine
  • XSLs are not platform dependent or language
    dependent

79
Serializer
  • Responsible for publishing to the client through
    HTTP response
  • FOPSerializer (Converts HTML to PDF)
  • SVG Serializer

80
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

81
Overview of IBM Everyplace Suite
  • Addresses issues like
  • wireless connectivity
  • content management for wireless clients
  • wireless security
  • provisioning and device management

82
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

83
Other Tools
  • Asynchronous Messaging Systems
  • UML Tools

84
XML for Mobile Computing
85
XML and Mobile Applications
  • Mobile applications should understand and be able
    to manipulate XML content
  • Mobile applications use XML to facilitate their
    implementations

86
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

87
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)

88
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

89
Sample 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

90
Sample 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

91
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

92
WBXML
  • WAP Binary Extensible Markup Language
  • Defines a way to represent XML in 0s and 1s
    instead of text
  • KXML (parse WBXML)

93
SSML
  • Synthetic Speech Markup Language
  • It is used for the infrastructure of the voice
    user interface

94
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.

95
Thank You for Your Attention
Write a Comment
User Comments (0)
About PowerShow.com