450 likes | 602 Views
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 line May be solved by having a local data store
E N D
On Device Applications aka Smart or Fat Clients INF245 H2007 Ola Bø Høgskolen i Molde Build 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 Pocket PC Windows Mobile CE.NET CE.NET Windows Automotive CE.NET Molde University College INF 245 Fall 2007 OBø
Windows CE development CE.NET 2004 ARM, MIPS 2G-3G 5.0 SH, x86 VoIP Molde University College INF 245 Fall 2007 OBø
Windows CE Architecture Molde University College INF 245 Fall 2007 OBø Kilde Microsoft http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceintro5/html/wce50oriWelcomeToWindowsCE.asp
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ø
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ø
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) Symbian 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 >2GB • 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 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 Optional JSR packages Optional JSRPackages MIDP Molde University College INF 245 Fall 2007 OBø
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 Native vs. Java Molde University College INF 245 Fall 2007 OBø
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 Client and Server 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 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 purposes The 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ø
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 Important properties for synchronisation solutions 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 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 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 Molde University College INF 245 Fall 2007 OBø