Molde University College INF 245 Fall 2007 OBø
On Device Applications aka Smart or Fat Clients
INF245H2007Ola Bø
Høgskolen i MoldeBuild upon Martyn Mallick (2003)
Molde University College INF 245 Fall 2007 OBø
Smart clients – an outline
Smart clients may be used when not on line
They may give access to data also when not on line May be solved by having
a local data store Smart clients permit a
better user interface than thin clients
Molde University College INF 245 Fall 2007 OBø
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
Molde University College INF 245 Fall 2007 OBø
On device application platforms
No clear leader – several possibilities Windows CE Symbian Palm OS Linux
Molde University College INF 245 Fall 2007 OBø
Windows CE A bad start (1996) (unstable
and cumbersome) Major progress
Pocket Word, Excel, IE, Outlook, Multimedia, Reader
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
CE.NET
CE.NET CE.NET
Pocket PC Windows Mobile
CE.NET
Windows Automotive
Molde University College INF 245 Fall 2007 OBø
Windows CE development
CE.NET 2004 ARM, MIPS 2G-3G5.0 SH, x86 VoIP
Molde University College INF 245 Fall 2007 OBø
Windows CE Architecture
Kilde Microsoft http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceintro5/html/wce50oriWelcomeToWindowsCE.asp
Molde University College INF 245 Fall 2007 OBø
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
Molde University College INF 245 Fall 2007 OBø
Molde University College INF 245 Fall 2007 OBø
Palm OS Early success
75 % of the market in early 2000 many applications now fading
New Palm devices are using windows as operating system
Molde University College INF 245 Fall 2007 OBø
Symbian Initially called EPOC an
operationg system for the PSION device with 640*240 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 messaging.
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.no/index.cfm/fuseaction/artikkel/id/47754)
Molde University College INF 245 Fall 2007 OBø
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 >2GBGeneric 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 environmentsApplication 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 frameworkTools and Documentation• Eclipse- and CodeWarrior-based development environments • Library of books from Symbian Press
• Developer portal at developer.symbian.com
Molde University College INF 245 Fall 2007 OBø
Linux
The most well known device is Sharp Zaurus
Nokia launched 770 ”Internet Tablet” spring 2005
See http://www.linuxdevices.com/articles/AT9423084269.html
Molde University College INF 245 Fall 2007 OBø
Java
MIDP
Optional JSR packages
Optional JSRPackages
Molde University College INF 245 Fall 2007 OBø
Molde University College INF 245 Fall 2007 OBø
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 OS Performance? Can use more device
functionality Can also be developed
using modern languages ”deFacto” standard
developed by one company can move faster
Molde University College INF 245 Fall 2007 OBø
Client and Server Client
Storage on the device reduces need for connectivity and improves performance and battery life
Stale data risk Client must communicate
with server and store data Ready made
synchronization solutions are available
Message based solutions may transfer data and events asynchroneously
No need for connection while computing
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
Molde University College INF 245 Fall 2007 OBø
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.
-> develop custom solution or buy a cots solution 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 -> Buy a COTS solution if possible
Molde University College INF 245 Fall 2007 OBø
Advanced user interfaces
What can be improved? Simplified navigation –
Few selections to get to the right place The most used functionality should be most accessible Must be developed while testing in practice
Pre filled field where possible Choose devices giving the right trade-off between
screen size and mobility
Molde University College INF 245 Fall 2007 OBø
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 idea 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.
Molde University College INF 245 Fall 2007 OBø
Local storage
Molde University College INF 245 Fall 2007 OBø
Ways to store data – an outline Flat Files – sequential access, difficult to insert and change data – easy
to store in sequence. 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.
Molde University College INF 245 Fall 2007 OBø
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
Molde University College INF 245 Fall 2007 OBø
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
Molde University College INF 245 Fall 2007 OBø
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 present)
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
Molde University College INF 245 Fall 2007 OBø
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->J2SEME->+J2ME
45kb -> Flexible synchonisation using UniSync server and JDBC
? 100 % Java
Molde University College INF 245 Fall 2007 OBø
Integration with enterprise systems
Molde University College INF 245 Fall 2007 OBø
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
Molde University College INF 245 Fall 2007 OBø
Types of Synchronization
PIM-synkronization: e-mail, addressbook and calendar Microsoft Outlook og Lotus Notes on desktop
File synchronization Data synchronization
Molde University College INF 245 Fall 2007 OBø
Architecture for synchronization
Molde University College INF 245 Fall 2007 OBø
Publish/Subscribe Model
The server publishes data for different purposesThe mobile device subscribes to data fitting the needs of the user
Molde University College INF 245 Fall 2007 OBø
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
Molde University College INF 245 Fall 2007 OBø
Solutions for transferrign data for synchronization
Important for application efficiency Should happen without involving the user (difficult) 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
Molde University College INF 245 Fall 2007 OBø
Important properties for synchronisation solutions 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
Molde University College INF 245 Fall 2007 OBø
Synchronization using different transport mechanisms
Molde University College INF 245 Fall 2007 OBø
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
Molde University College INF 245 Fall 2007 OBø
Synchronization solutions embedded in the device OS
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
Conduit plug-ins can be developed using VC++, VB or Java with Palm CDK
Symbian OS Connect
BT, kabel, IrDAavh av terminal
Converter API permits development of custom solutions
Molde University College INF 245 Fall 2007 OBø
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 place
Several commercial synchronization solutions are extensions of the OS device synchronization.
Molde University College INF 245 Fall 2007 OBø
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
Molde University College INF 245 Fall 2007 OBø
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 solutionsVendorProduct
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 1. RDA
2. 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
Molde University College INF 245 Fall 2007 OBø
Open source synch solutions
Funambol http://www.funambol.com/
Molde University College INF 245 Fall 2007 OBø
Open Mobile Alliance Data Synchronization and Device Management aka SyncML Heterogeneous synchronization solutions an obstacle to
integration SyncML industry standard(?) synchronization protocol 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, HTTP , WSP,
OBEX, SMTP, POP3, IMAP ... Can transfer all kinds of data Makes allowances for limited resources on mobile devices Should work on all mobile devices using all kinds of data sources
Molde University College INF 245 Fall 2007 OBø
SyncML
Packages containing messages containing commands Message format defined in SyncML representation prototcol SyncML Sync Protocol defines interaction between client and server
as message sequences SyncML Transport Binding define transport protocol usage: HTTP,
WSP og OBEX