On Device Applications aka Smart or Fat Clients - PowerPoint PPT Presentation

View by Category
About This Presentation

On Device Applications aka Smart or Fat Clients


Molde University College INF 245 Fall 2007 OB . On Device Applications aka Smart or Fat Clients ... White/black list URI service. SIP/SDP. Multimedia Middleware ... – PowerPoint PPT presentation

Number of Views:56
Avg rating:3.0/5.0
Slides: 46
Provided by: OlaB1
Learn more at: http://kursinfo.himolde.no


Write a Comment
User Comments (0)
Transcript and Presenter's Notes

Title: On Device Applications aka Smart or Fat Clients

On Device Applications aka Smart or Fat Clients
  • INF245
  • H2007
  • Ola Bø
  • Høgskolen i Molde
  • Build upon Martyn Mallick (2003)

Smart clients an outline
  • Smart clients may be used when not on line
  • They may give access to data also when not on
  • May be solved by having a local data store
  • Smart clients permit a better user interface than
    thin clients

Smart client development challenges and goals
  • Challenges
  • Limited UI and low device capacity
  • Integration with other business systems
  • Connectivity
  • Application roll out and administration
  • Technology in development
  • Goals
  • Insight into challenges and solutions
  • Cover possible technologies

On device application platforms
  • No clear leader several possibilities
  • Windows CE
  • Symbian
  • Palm OS
  • Linux

Windows CE
  • A bad start (1996) (unstable and cumbersome)
  • Major progress
  • Pocket Word, Excel, IE, Outlook, Multimedia,
  • Simplified Win32 API
  • Support for Visual Studio.NET
  • Communications using BT, WLAN, GPRS, IPv6, 3G
  • Improved performance
  • CE.NET as Core operating system
  • CE is used in the operating system for several
    device types
  • Pocket PC uses a version of CE.NET adapted to PDA

Pocket PC
Windows Mobile
Windows Automotive
Windows CE development
CE.NET 2004 ARM, MIPS 2G-3G 5.0 SH, x86 VoIP
Windows CE Architecture
Kilde Microsoft http//msdn.microsoft.com/library/
Windows mobile
  • Started 2000
  • Supports several types of device
  • Now in version 6.0
  • connectivity
  • persistent storage
  • Office-support
  • Multimedia
  • Hard-disk storage
  • Multimedia
  • hard drive

Kilde Microsoft
(No Transcript)
Palm OS
  • Early success
  • 75 of the market in early 2000
  • many applications
  • now fading
  • New Palm devices are using windows as operating

  • Initially called EPOC an operationg system for
    the PSION device with 640240 screen and pen
    based input
  • Symbian v6.0 2000
  • Better support for communications
  • Applications using C, Java and WAP
  • Symbian V 7.0 2002
  • For advanced mobile phones
  • Synchronizing OTA using SyncML
  • Security
  • Different UIs
  • pen based UIQ
  • series 60 for mobile phones
  • Includes apps for personal information, web and
  • Strong in Europe
  • Owners
  • Ericsson (15.6), Nokia (47.9), Panasonic
    (10.5), Samsung (4.5), Siemens (8.4) and Sony
    Ericsson (13.1)
  • Installed base (per october 2007)
  • Symbian operating system is used on an increasing
    number of mobile phones
  • Over 145 million devices sold
  • Symbian smartphone OS share for Q2 2007 is 72,
  • Embracing
  • (source computerworld.no http//www.computerworld.

Symbian ver 9,5
Core OS Security, Privacy and Content
Protection Application capability management
Application data caging Cryptographic
algorithms DES, 3DES, RC2, RC4, RC5 and AES
Cryptographic token framework DRM framework and
reference implementation IPSec and VPN client
support plus SSL and TLS User permissions
prompting Open Environments Standard C
environment Standard libraries including
partial POSIX support (P.I.P.S) Location-Based
Services GPS, A-GPS (terminal-assisted /
terminal- based) and network-based positioning
Mobile originated and mobile terminated requests
(including emergency requests) Telephony
Multimode Etel (2.5G / 3G) GSM Phase 2
HSCSD GPRS, classes A, B and C (R97/98) EDGE
(CSD and GPRS) WCDMA (3GPP R4 and R5 IMS
support) HSDPA, HSUPA SMS (3GPP TS 23.040
V6.5.0) EMS (3GPP TS 23.040 V4.5) SIM
Application Toolkit SIM and USIM support
Quality-of-Service framework Support for
multiple primary and secondary PDP contexts
Third party OTA API Networking Comms
Bluetooth v2.0 (L2CAP, RFCOMM, SDP, GAP and SPP)
plus profile support Bluetooth stereo headset
support USB v2.0 High Speed (Mass storage, ACM,
WHCM) and USB On-The-Go support WLAN IrDA
serial OBEX over Bluetooth, IrDA and USB
Bearer independent EAP-SIM/AKA Non-seamless
network bearer mobility TCP, IPv4, IPv6,
MSCHAP v2, PPP TCP/IP plug-in framework HTTP
plug-in framework - HTTP 1.1 - Pipelining WAP
push Connectionless WSP Multihoming, NAPT
Multimedia Video capture and playback
framework Audio capture and playback
framework Camera interface supporting
multi-megapixel cameras and advanced features
Tuner interface Digital TV hardware
abstraction Hardware abstraction layer for
multimedia acceleration Audio and video codec
interfaces compliant with OpenMax IL 1.0 Image
conversion (all common formats) with scaling
enhancements Graphics Bitmap and vector font
support with advanced font effects 2D graphics
support including OpenVG implementation 3D
graphics support including OpenGL ES APIs
Multiple display support Persistent Data
Services Embedded SQL database Generic OS
Services Extensive language support including
Thai, Arabic, Hebrew, Japanese, Chinese, Hindi,
Brahmic and Vietnamese scripts Unicode 3.0
Kernel Hardware Services ARMv5, v6 and v7
support L2 cache support Defragmentation of
physical RAM Demand paging of read-only code
and data Hardware-dependent support for VFP
floating point acceleration and accelerated maths
functions High performance file server with FAT
filesystem support MMC and SD card support
including media gt2GB Generic Middleware Security
Management Cryptographic services Certificate
management (X509 certificates) Secure Software
Install MIDP 2.0 support Application
Protocols Multimedia Transfer Protocol (MTP)
over USB plus data provider for files and
folders White/black list URI service SIP/SDP
Multimedia Middleware High-level multimedia
service abstraction RTP, RTCP System GUI
Frameworks Flexible application and UI
frameworks Control and windowing
environments Application Services / Logic Remote
Management Application Daemons Over-the-air
firmware upgrade (FOTA) OMA Client Provisioning
v1.1 OMA Data Synchronization v1.2 OMA Device
Management v1.2 Enterprise Application
Services Calendaring including vCalendar v1.0
and interoperability with Microsoft Exchange and
Lotus Notes servers Contacts management
including vCard v2.1 IMAP4 including IDLE
support, RFC2177 and RFC 3501 POP3
implementation compliant with RFC 1939 SMTP
implementation compliant with RFC 2821 SMTP
Service Extension for Authentication, RFC 2554,
Secure SMTP over Transport Layer Security, RFC
3207 Secure email using TLS with IMAP, POP3,
and ACAP, RFC 2595 Extensible framework for
push email solutions Java CLDC HI 1.1.1s
(JSR139) Bluetooth (JSR082) including OBEX
Content Handler (JSR211) JTWI (JSR185) MIDP
2.0 (JSR118) Mobile 3D Graphics (JSR184)
Mobile Media 1.1 (JSR 135) PIM FileGCF
(JSR075) Wireless Messaging 1.1 (JSR120)
including CBS Support for JSR248 PC
Connectivity MTP over USB Mobile Active
Sync Calendar and contacts sync framework Tools
and Documentation Eclipse- and
CodeWarrior-based development environments
Library of books from Symbian Press Developer
portal at developer.symbian.com
  • The most well known device is Sharp Zaurus
  • Nokia launched 770 Internet Tablet spring 2005
  • See http//www.linuxdevices.com/articles/AT9423084

Optional JSR packages
Optional JSRPackages
(No Transcript)
Native vs. Java
  • Java applications
  • run in a J2ME environment isolated from the
    devices OS
  • Cross platform
  • Java augments productivity and reduces errors
  • Java has good communications support
  • J2ME standard is developped in cooperation JCP
  • Native applications work directly with the device
  • Performance?
  • Can use more device functionality
  • Can also be developed using modern languages
  • deFacto standard developed by one company can
    move faster

Client and Server
  • Server
  • Invisible for end user
  • Responsability
  • Data synchronization
  • Data storage
  • Message exchange
  • Synchronization
  • Several possibilities
  • Several possible formats
  • Roll your own possibly using XML
  • SyncML
  • Databases and/or ERP-systems
  • In most cases only a limited amount of the data
    may be stored on device
  • What data should be on device?
  • Only some tables?
  • Only data for a certain geographic area
  • Only data for certain customers?
  • Building a custom solution or using COTS
  • Often a good solution to use COTS
  • Client
  • Storage on the device reduces need for
    connectivity and improves performance and battery
  • Stale data risk
  • Client must communicate with server and store
  • Ready made synchronization solutions are
  • Message based solutions may transfer data and
    events asynchroneously
  • No need for connection while computing

Integration with other systems in the enterprise
  • Different integration solutions database,
    system, XML-data, or integration using flat file.
  • Complexity also varies
  • Basic using standard synchronization using
    communications over IP-networks with RDBs.
  • -gt develop custom solution or buy a cots
  • Complicated Support for heterogeneous terminals,
    simultaneous synchronization for several users
    and communications with systems having
    complicated interfaces. Complex data models,
    substantial amounts of data and transactions.
    Conflict handling -gt Buy a COTS solution if

Advanced user interfaces
  • What can be improved?
  • Simplified navigation
  • Few selections to get to the right place
  • The most used functionality should be most
  • Must be developed while testing in practice
  • Pre filled field where possible
  • Choose devices giving the right trade-off between
    screen size and mobility

User interfaces
  • Typically 80 of code and cost
  • Must work in use
  • Screen size a problem
  • Input must be adapted to the real users
  • Early experimenting using prototypes is a good
  • Experience and studies show that actual use is
    different from what was planned by developers
  • User interface should be tested with real users
    in an early phase.

Local storage
Ways to store data an outline
  • Flat Files sequential access, difficult to
    insert and change data easy to store in
  • Relational databases logical structure built
    upon tables with rows and columns. Current
    standard for data storage. Improved with stored
    procedures and transactions
  • Object databases A challenger for RDBs but with
    small success. Stores objects rather than tables.
    Can be appropriate for som niches but relatively
    infrequently used.
  • XML-databases may be appropriate if all
    communications use XML, but is inefficient and
    slow if not. Infrequently used.

Why persistent storage on device?
  • Client with no storage is an alternative but the
    storage is most ofte appropriate because of
  • Network coverage problems
  • Speed problems
  • Static data
  • Battery capacity
  • Hybrid solutions is also possible
  • Persistent storage for static data
  • On-line update for data that must be up-to-date

Alternatives for on device persistent storage
  • The proprietary storage mechanism for the device
    operating system
  • J2ME record storage
  • Custom built data base
  • Commersial relational databases

Proprietary device storage solution
  • Windows CE object store API database using
    flat files. Supports inserts, search and sorting.
    Present in RAM.
  • Symbian OS Relational data base supporting SQL
    and transactions are a part of the operating
    system (A C API for the database is also
  • J2ME MIDP includes the RMS (Record Management
    System) that implements a standardized interface
    to the device data storage. RMS is covered in the
    J2ME programming part of this course.
  • Common properties All the built-in solutions are
    appropriate for simple applications with limited
    amounts of data. They may then be used to provide
    a cheap and quick solution, but all of them
    demands the development of your own code to
    synchronize with the enterprise data base and
    that may be difficult for complex applications

Commercial relational databases
  • Many data base engine manufacturers also makes
    versions adapted to mobile devices and
    corresponding synchronization solutions
  • Substantial differences between vendors

Vendor Product OS supported footprint synchronization encryption
Sybase/ iAnywhere SQL Anywhere Studio CE, Palm, Symbian,Linux, Java 3 MB on CE Ultralite 300k Two ways to all ODBC. adaption using rules. Good comms solutions Storage and comms Market leader 68 ?Both Java og C
IBMDB2 Everyplace CE, Palm, Symb, Linux, Java 150 kB SyncML two ways via Sync server DB2 DB From DB2 to ODBC ? SQL, but no transactions. Both VB, C, C, Java, QBE
OracleOracle 9i Lite CE, Palm, Symb 5 MB on CE DB Down to 1 MB på andre Proprietary solution synchs with Oracle databaser yes Powerful administration tools
MicrosoftSQL Server Compact CE 1-3 MB Via HTTP over MIIS to Microsoft SQL Server SSL Development using Visual Studio .NET
PointBasePointBase embedded edition and ME Java EE-gtJ2SEME-gtJ2ME 45kb -gt Flexible synchonisation using UniSync server and JDBC ? 100 Java
Integration with enterprise systems
Integration using synchronization
  • Synchronization
  • Means all data on the mobile device is updated in
    one operation
  • Continuous connection is not necessary
  • Advantages reduced traffic, costs and bandwidth,
    quick access and better control
  • Synchronization is a two ways update
  • Synchronization can be tethered or wireless

Types of Synchronization
  • PIM-synkronization e-mail, addressbook and
  • Microsoft Outlook og Lotus Notes on desktop
  • File synchronization
  • Data synchronization

Architecture for synchronization
Publish/Subscribe Model
The server publishes data for different
purposes The mobile device subscribes to data
fitting the needs of the user
Techniques for synchronization
  • Snapshot
  • Delete the whole table at the receiving end and
    replace with an updated table
  • Suitable if RO data, small datasets, high
    bandwidth, infrequent updates
  • Net changes
  • Only changed data are sent
  • Usually the most efficient solution
  • saves time when frequent updates and large tables

Solutions for transferrign data for
  • Important for application efficiency
  • Should happen without involving the user
  • Two solutions
  • Session based
  • Direct connection between mobile and central
    databases updateing both databases simultaneously
  • Firewalls can be an obstacle
  • Message based
  • Updates are sent as messages
  • Store and forward
  • Can support a considerable number of remote users

Important properties for synchronisation
  • Support for splitting up data
  • Subsetting of the database
  • Partitioning of data
  • Column partitioning
  • Row partitioning reduces update conflict
  • Data compression
  • Less data to transmit but overhead
  • Data transformation
  • floating point to integers
  • fixed length to variable length
  • Transaction integrity (ACID)
  • A challenge with intermittent connections
  • Conflict detection
  • When two user wants to update the same row with
    different data
  • Conflict resolution
  • Rules based last wins
  • Support for networing protocols
  • Handling of lost connection
  • At least HTTP over TCP/IP
  • Transport mechanisms
  • WWAN, WLAN, LAN, Via PC using BT...
  • Enterprise integration
  • Synchronization server should be able to
    communicate with all datasources
  • using JDB/ODBC with all data base engines
  • using adapters with ERP and CRM solutions
  • Security
  • Authentication, Authorisation, Encryption

Synchronization using different transport
Choices when developing synchronization solutions
  • Depends upon solution for persistence
  • Alternatives
  • Solutions from the database vendor
  • Custom built
  • Buy one
  • Synch solutions embedded in the device
  • Usually not made for database synchronization

Synchronization solutions embedded in the device
OS synch-solution Conn-ection Built in functionality Note
Windows CE ActiveSync Cradle, WLAN, IrDA, BT Transfer files and apps Synchroni-zation of e-mail, contacts, calendar, plans, notes with MS Outlook. Browse the internett, File handling, Backup, Restore C/S architecture Active Sync service providers can be bought or made. Two COM modules must be developed
Palm OS HotSync Cradle IrDA over nett Transfer files and apps Synchroni-zation of e-mail, contacts, calendar, plans, notes with MS Outlook. Browse the internett, File handling, Backup, Restore Conduit plug-ins can be developed using VC, VB or Java with Palm CDK
Symbian OS Connect BT, kabel, IrDAavh av terminal Transfer files and apps Synchroni-zation of e-mail, contacts, calendar, plans, notes with MS Outlook. Browse the internett, File handling, Backup, Restore Converter API permits development of custom solutions
Data synchronization using mobile device OS
synchronization support
  • Solution has important functionality
  • Users already employ this synchronization method
  • An advantage to extend the solution already in
  • Several commercial synchronization solutions are
    extensions of the OS device synchronization.

Custom built synchronization solutions
  • Build using C/C or Java
  • Must solve
  • Database problems
  • Device support
  • Networking protocol
  • Conflict resolution
  • Safety
  • Supoprt for SyncML?
  • Integration with OS synch solution
  • Maintenance
  • Conclusion Difficult/expensive

Commercial synch solutions
  • Delivered by database vendors
  • More or less tied to their own data base products
  • Varying flexibility
  • Platform for mobil server and device
  • Amounts of data
  • Conflict handling
  • May be sensible to let the choice of synch
    solution guide the choice of persistence solution

Commercial synch solutions
VendorProduct OS supported Synchronization
Sybase/ iAnywhere MobiLink CE, Palm, Symbian,Linux, Java Two ways to all ODBC. Adapted using rules. Rich communications Publish/Subscribe, Synchronization and conflict solution in the data base Supports simultaneous connection to several databases. Both Java and .NET
SQL Remote Only Sybase Message based solution
IBMDB2 Everyplace Sync Server CE, Palm, Symb, ... SyncML two ways via Sync server DB2 DB Thence to ODBC publish/subscribe
OracleOracle 9i Lite CE, Palm, Symb Proprietary solution conncting to Oracle databases Mobile server og mobile sync client.
MicrosoftSQL Server CE CE RDA merge Publish/SubscribeWeak conflict handling, but may be programmed
IBM (june 2007) PointBasePointBase embedded edition and ME Java Flexible synchronization UniSync server using JDBCnet for PB and Oraclesnapshot for other db-engines Publish/Subscribe
Open source synch solutions
  • Funambol http//www.funambol.com/

Open Mobile Alliance Data Synchronization and
Device Management aka SyncML
  • Heterogeneous synchronization solutions an
    obstacle to integration
  • SyncML industry standard(?) synchronization
  • Low impact so far
  • Already competing solutions on the market
  • Except PIM
  • Several major companies such as Motorola, Nokia,
    Sony Ericsson, IBM and Siemens AG already support
    SyncML in their products (source Wikipedia)
  • SyncML a data synchronization protocol
  • XML based
  • Supports a number of transport protocols TCP/IP,
  • Can transfer all kinds of data
  • Makes allowances for limited resources on mobile
  • Should work on all mobile devices using all kinds
    of data sources

  • Packages containing messages containing commands
  • Message format defined in SyncML representation
  • SyncML Sync Protocol defines interaction between
    client and server as message sequences
  • SyncML Transport Binding define transport
    protocol usage HTTP, WSP og OBEX
About PowerShow.com