Mobile Platforms and Application Development. Prof. Sasu Tarkoma

Similar documents
Mobile Middleware Course. Introduction and Overview Sasu Tarkoma

Mobile Middleware Course. Mobile Platforms and Middleware. Sasu Tarkoma

Contents. Mobile Middleware Course. Introduction and Overview Sasu Tarkoma. Lecture Outline. Course Book. Mobile Evolution.

Mobile Middleware Course. Mobile Platforms Sasu Tarkoma

Chapter 3. E-commerce The Evolution of the Internet 1961 Present. The Internet: Technology Background. The Internet: Key Technology Concepts

Nokia for developers. Alexey Kokin. Developer Relations

Overview. M-commerce vs. E-commerce

Extending Enterprise Applications to Mobile - Key Considerations. Zensar Technologies Sep 2011

Nomadic devices Benefits and market outlook

IMS: Lessons Learned. Brough Turner SVP & CTO

Mobile Middleware Course. Mobile Platforms and Middleware. Sasu Tarkoma

WebRTC Gateway. Real-time communications in all browsers

Mobile Business & Mobile Applications

Glossary 1. ARPU or Average Revenue per User A method of measuring revenue associated with the delivery of mobile commerce services by MNOs.

WIT WebRTC Gateway. Real-time communications in all browsers. webrtc.wit-software.com

COPYRIGHTED MATERIAL. Introduction. 1.1 Mobile Middleware

Minne menet, Mobiili-Java?

Embedded Software: Its Growing Influence on the Hardware world

Mobile Computing. Juha-Matti Liukkonen, Nov 17, 2010

Copyright 2014, Oracle and/or its affiliates. All rights reserved.

MOTOROLA. Beyond Mobile Broadband. Anil Barot Director of Strategy & Portfolio Mgmt

In the Driver s Seat

Developing corporate mobile applications. An alternative approach to native development

Introduction to Mobile Application and Development

Software Development for Mobile Devices

Cisco Converged Services Platform

Competing with OTT Services: RCS e without IMS. November 15, 2011

Mobile Middleware Course. Mobile Platforms Sasu Tarkoma

SIMPLIFY MULTI-PLATFORM ENTERPRISE MOBILITY MANAGEMENT

MobiVine. A Middleware Layer to Handle Fragmentation of Platform Interfaces for Mobile Applications

Understanding what makes RhoMobile tick

Why Android? Why Android? Android Overview. Why Mobile App Development? 20-Nov-18

Arching Over the Mobile Chasm: Platforms and Runtimes

AJAX for Mobile Devices

Mobile Internet Devices and the Cloud

Next Generation Applications for SIM

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Android - open source mobile platform

WebSphere Puts Business In Motion. Put People In Motion With Mobile Apps

Mobile Application Development. Introduction. Dr. Christelle Scharff Pace University, USA

IMS, NFV and Cloud-based Services BUILDING INTEGRATED CLOUD COMMUNICATION SERVICES

Daniel Appelquist 22 April The Emerging Widgets Ecosystem

HTML5 on TV - was fehlt? Cloud-basierte TV apps auf der Basis neuester Webtechnologien

LTE : The Future of Mobile Broadband Technology

Breaking the Silos Access and Service Convergence over the Mobile Internet

Lecture - 01 Evolution of Wireless Communication Technologies

Mobile Game Programming

Mobile Station Execution Environment (MExE( MExE) Developing web applications for PDAs and Cellphones. WAP (Wireless Application Protocol)

Introduction to Worklight Integration IBM Corporation

How many of us own. Mobile markets and development environments. Petri Vesikivi (Erkki Rämö) Fixed Telephone 1.3B TV 1.5B Credit card 1.

An overview of mobile and embedded platforms

COPYRIGHTED MATERIAL. Contents. 1 Short Message Service and IP Network Integration 1. 2 Mobility Management for GPRS and UMTS 39

Fragmentation vs Interoperabilty Jean-Pierre Temime, France Telecom-Orange

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

Chapter 1 Hello, Android

HTML5 Mobile App Development

The WAP Roadmap. Short Term Goals for WAP

User Manual. Mobile Viewer Mobile Manager Software (MMS) 1 st Edition : 10 Jan nd Edition : 31 Mar rd Edition : 20 May 2010

Pulse Secure Application Delivery

Mobile Technology Update

QCon - Mobile Maps HTML5 Team Andrea

Mobile AR Hardware Futures

Innovation Technology for Future Convergence Network

Digital Convergence Vision and Architecture. Timo Poikolainen Vice President, Marketing Technology Platforms Nokia

Fusing Sensors into Mobile Operating Systems & Innovative Use Cases

How to Route Internet Traffic between A Mobile Application and IoT Device?

4G Mobile Communications

Mobile Game Programming. Just that facts.

JSR 248: Taking Java Platform, Micro Edition (Java ME) to the Next Level

Copyright

The Java Mobile and Embedded Platform: Now and the Future

Software Development & Education Center ANDROID. Application Development

The Mobile Internet: The Potential of Handhelds to Bring Internet to the Masses. April 2008

Mobile Multimedia Services

Embedded HW/SW Co-Development

Operationalizing Seamless Mobility through Service Delivery Platforms

Intelligent Mobile App Testing

Transform to Your Cloud

Fixed Mobile Convergence

Wireless Access Protocol(WAP) architecture

Open Mobile Platforms. EE 392I, Lecture-6 May 4 th, 2010

Architecting C++ apps

CMPE 150/L : Introduction to Computer Networks. Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 4

Factors Driving LTE Adoption. Anil Barot Director Broadband Strategy & Device Alliance Ecosystem April 1, 2009

HTML5 VS NATIVE APP IS I

Introduction to the Application Layer. Computer Networks Term B14

Chapter 7. Telecommunications, the Internet, and Wireless Technology

IJRDTM Kailash ISBN No Vol.17 Issue

CEN 538 Wireless LAN & MAN Networks

Global Applications and Services Over CDMA

Mobile Internet Development in China

Broadband Britain a mobile perspective

Instant Messaging and Wireless Presence. Craig Peddie General Manager Motorola Lexicus Division

ios vs Android By: Group 2

Introduction to Distributed Systems

Mobile Ad Hoc Networks: Basic Concepts and Research Issues

Bringing it all together: The challenge in delivering a complete graphics system architecture. Chris Porthouse

IGLOO AND SNOWBALL. Philippe Garnier Ecosystem program

T Mobile Multimedia. Sakari Luukkainen Helsinki University of Technology Telecommunications Software and Multimedia Laboratory

Lecture 1 Introduction to Android. App Development for Mobile Devices. App Development for Mobile Devices. Announcement.

Transcription:

Mobile Platforms and Application Development Prof. Sasu Tarkoma

Introduction Mobile software is a growing area Ten billion downloads from Apple AppStore Development processes, tools, APIs are crucial for the ecosystem Integration with Web resources Key applications Voice Multimedia Messaging Web sites, mashups, services Location-based services Forthcoming features Context-awareness, adaptability, smart spaces

Mobile Evolution 1st generation (1990-1999) Text messages (SMS) and mobile data. Speeds up to tens of Kbps. 2nd generation (1999-2003) Limited browsers, WAP, imode, and MMS. Speeds up to 144Kbps. 3rd generation (2003-2008) Mobile platforms, middleware services. Series 60, J2ME, Android, iphone. Speeds up to several Mbps. 4th generation (2008-) Adaptive services, user interfaces, and protocols. Context-awareness, always-on connectivity. Speeds up to hundreds of Mbps. Emergence of app stores. Versatile devices: smartphones, pads. Cloud-assisted applications with social networks.

SMS ringtones, logos Stores and Web pages WAP Ringtones Portals Social sites, media portals AppStore Music downloads revenue On-demand and streaming video Advanced browsers Full music and video streaming Full music streaming Monophonic Polyphonic Master tones Music clips time

End Users End Users Service Cloud Developers & Services Service Delivery Platform Secure APIs Support Functions Adaptation Layer Networks MSS SMSC HLR LCS IMS SMSC HLR LCS

Wireless Technologies Global System for Mobile (GSM), General Packet Radio Service (GPRS) Universal Mobile Telecommunications System (UMTS) Long Term Evolution (LTE) Wireless LAN (WLAN) Worldwide Interoperability for Microwave Access (WiMax) Ultra-wideband (UWB) Wireless Personal Area Network (WPAN) Bluetooth, Wibree RFID

LTE Advanced: 4G, 1 Gbps Bandwidth 200 Mbps 802.11n 54 Mbps 5-11 Mbps 4 Mbps 1 Mbps 802.11a, g 802.11b 802.15.1 802.11a,g point-to point WiMAX UMTS/WCDMA-HSDPA, CDMA 2000-1xEVDO 3G enhanced 384 Kbps 56 Kbps UMTS/WCDMA, CDMA 2000 IS-95, CDMA, GSM 10-30 m 50-200 m 200 m-4 km 5 km -20 km 3G 2G Range

Mobile Service Development The mobile landscape is fragmented Heterogeneous device base Many different wireless technologies The situation is challenging for the developer Many APIs Many middleware platforms APIs evolve over time Current challenge of the industry pertains to improving the development processes

PC World Mobile World Idea Idea SW-Design SW-DesignX SW-DesignY Implementation Implementation OS X Implementation OS Y Build Build Device A Build Device B Build Device C Build Device D Build Device E Test Test Device A Test Device A Test Device C Test Device D Test Device E Deployment Operation Deployment A Deployment Downloading B Deployment A Deployment Downloading B Deployment Downloading B Operation Operation Operation Operation Operation

IMS Service Approach Stovepipe and IMS service models Stovepipe has separate service stacks for particular services IMS service model has common layers The IP Multimedia Subsystem Provides Multimedia Services Across Networks (fixed & mobile), such as: Instant Messaging, Video Sharing, Push-To-Talk, Gaming, Video Conferencing IMS Uses SIP protocol To Setup Multimedia Sessions Over IP Network SIP is a signalling protocol to: Locate user given SIP Universal Resource Identifier (URL) (e.g., sip:jane@isp.com) Set up session and negotiate its parameters

Network centric mobile application types Streaming Media high jitter, low throughput buffering, layered encoding Mobile Commerce high latency, security adaptive design, minimized comms. Pervasive Gaming latency variations system specific timeout values Web Browsing low throughput, high load phone caching,backoff algorithm

Real-Time Interaction Non-Real-Time Session-Based Voice Push-to- Video Streaming Video Push-to-talk Peer-to-Peer Online Games Enterprise VPN IP/TV Video on Demand Non-Session-Based Chats Instant Messaging Push email Web, HTML Messaging SMS and MMS E-Commerce SIP (IMS) only Applications SIP or Non-SIP Applications Non-SIP Only Applications

Mobile Platforms Collections of central services and libraries with both reactive and proactive functions APIs typically logically centralized Distributed between elements of the environment Multi-tier client-server Peer-to-peer Hybrids The platform running on the mobile terminal and the characteristics of the device determine how service is rendered for the end user

Wireless and Cloud Wireless hop is the limiting factor Bandwidth, connectivity, reachability, costs Server side scalability can be achieved by using traditional solutions: clusters, caching, geographical distribution, load balancing, data centers Cloud computing Integration, offloading Web apps vs. native apps

Challenges Fragmentation is a major problem Different types of fragmentation device-level fragmentation standard fragmentation implementation fragmentation Security is also a problem Sandboxed environments and privileged operations require certification Certification is difficult for developers Current trend is towards application stores and more lightweight certification processes

Android Linux Blackberry OS 5.0 iphone OS Java ME MIDP Kindle SDK MeeGo Linux HP WebOS Linux Symbian Series 60 Windows Mobile.NET and Windows Phone 7 Development Java, native code with JNI and C/C++ Java MIDP, Blackberry APIs Objective-C Java ME Java, Personal Basis Profile C/C++, Qt APIs, various Applications with Web tech. (HTML 5), C/C++ C++, Qt, Python, various C# and.net, various Network scanning Yes Yes (hotspot API) No No No Yes Limited (Web apps) Limited Yes Network interface control Limited Limited (hotspot API) No No No Yes Limited (Web apps) Yes Yes Background processing Yes (services) Yes No (Yes for 4.0) Yes (multitasking support in MIDP 3.0) No Yes Yes Yes Yes, not supported for third party applications in WP7 Energy and power monitoring and control Yes Limited (battery info) Monitoring since 3.0 No No Yes Yes (battery status, inform duration of activity) Yes Yes Memory management Yes Yes (low-memory events) Yes Limited Limited Yes Yes (no for Web apps) Yes Yes Persistent storage Yes Yes Yes Limited, exension Limited secure storage Yes Yes (HTML 5 storage) Yes Yes Location information Yes Yes Yes Extension No Yes Yes Yes Yes HTML 5 Yes, support depends on version Yes, support depends on version Yes N/A N/A Depends on WebKit version Yes No (Widgets and Javascript API) No SIP API support Limited No Limited Extension No Yes No Yes No Open Source Yes No No No No Yes No (some parts are Open Source) Yes No 3rd party application installation Certificate, Android store Certificate Certificate, Apple AppStore Certificate Kindle DRM Certificate Certificate Certificate Certificate, app store (WP7) Level of fragmentation Some fragmentation Minor fragmentation Minor fragmentation Fragmented Not fragmented Not fragmented Not fragmented Some fragmentation Some fragmentation

Application Trends WP7 Native apps, cloud integration ios Native apps Potential for Web apps Android Native apps WebOS Web apps with HTML5 Blackberry Native and Web apps

HTML5 HTML 5 is the next version of HTML The first public working draft of the specification available in January 2008 and completion expected around 2012 Improvements Web Socket API, advanced forms, offline application API, and client-side persistent storage (key/value and SQL). HTML 5 support divides the platforms. The iphone platform has a very good support for HTML 5.

Browser support Platform Browser Rendering engine Flash Widget engine Comments Android Android WebKit Yes (for Android 2.1) No Apple iphone Apple iphone Safari WebKit No Yes BlackBerry BlackBerry Mango No Yes Proprietary push technology Opera Mobile Symbian S60, Windows Mobile Presto Yes Yes Opera Mini supports other browser platforms using a proprietary proxy Symbian S60 Symbian S60 WebKit Yes Yes Windows Mobile Internet Explorer Trident/ MSHTML Yes No Silverlight

JavaScript access The Open Mobile Terminal Platform (OMTP) group defines requirements and specifications that aim towards simpler and more interoperable mobile APIs BONDI defines requirements governing Device Capability access by JavaScript APIs to promote interoperability and security of implementations The recent 1.1 release of BONDI is compliant with the W3C Widgets: Packaging and Compliance specification

BONDI Architecture Website Browser Widget Widget User Agent Web Engine (WebKit,...) JavaScript Extension JavaScript API and Access Control BONDI code Application Invocation, Network, Messaging, Communication Log, Media Gallery, Media Recording, Personal Information, Persistent Data, Location, User Interaction, Device Status, System Events, Policy Management, APIManagement, Extensions Device Capability Access Control Operating System

System bus An asynchronous system-wide event bus is a basic solution for interconnecting various on-device components There is no single standard for this. Android and Java ME use Java-specific events (Android Intent filtering) MeeGo uses D-BUS Palm's WebOS W3C Events One particular trend is to utilize URIbased conventions for naming system resources and services. This is extensively used in the Nokia Platform Services, WebOS and the BONDI architecture.

Summary Fragmentation is a current problem Device, standard, implementation Standards efforts are addressing this (JSR 248,..) APIs seem to be converging Java is one of the key languages Java ME poses significant problems regarding local storage and access to device resources Android allows better access (Java) MeeGo, Qt, Symbian allow low-level access SQLite, OpenGL ES, XML, Web services and REST Browsers (HTML5) and Flash

Mobile Development

Starting points Interfaces to mobile devices, to mobile operators Simple design, rapid prototyping Interoperable formats: Web technology and XML Backend in the cloud Can leverage WebKit on most smartphones Looks like an app but is a browser Use Web and HTTP to bridge different tech domains (Android, iphone, Qt)

Cloud development Combine private and public clouds For example: Local Eucalyptus cluster Use Amazon as the public cloud Offloading

Telco viewpoint GSMA is standardizing the One API specifications Initially Messaging and Location APIs Charging, Data connection profile and User profile APIs will be next Reference implementations available both in lightweight Web Services and with REST Open existing network infrastructure Broker useful for multi-operator deployment (bridging APIs across operators)

Recent trends Cloud and cloud-assisted services Push communications Stores and advertising Social networks Delay tolerant functions

Sw design for beyond Web apps Use MVC pattern to separate concerns Rely on brokers and proxies in the cloud Cloud to device messaging Event-based sw design is good for reactive apps Context-awareness UIs Fragmentation C++, Java, Objective C Scripting for portability Port the interpreter / VM License issues

General sw issues Use native methods/functions Avoid unnecessary creation of objects Pools Avoid floats / enums Avoid unnecessary updates (location, status, ) Avoid unnecessary WakeLocks (these keep the display on) Use the minimum possible Keep sw responsive Events, timers Engineering for the exceptions

User experience User experience Keep it consistent, different modes Do not make assumptions about the screen size Use vectors / high res graphics Use assertions for features API availability Check for GPS / compass /..

Application stores App stores Apple, Nokia, Android, WP7, In-app purchases Searching, purchasing, advertising, How to do software updates How to support community buildup Push notifications Dedicated push servers Control plane Inter-app communication is still in early phases

Sensors The number of sensors will increase dramatically Innovative new applications Pulse monitor, augmented reality, Nokia N8 sensors: Accelerometer Double Tap Accelerometer XYZ Ambient Light Magnetic North Magnetometer XYZ Orientation Proximity Monitor Rotation

Energy measurement Nokia Energy Profiler Other tools SW-based measurement is relatively easy, can be combined with hw-based measurements

Offloading Dessy: example of computational offloading IETF work on network controlled offloading (vertical handoffs)

Mobile Search: Dessy 2007: Search and Synchronization Prototype Dessy for Java Personal Profile (PDAs) Finds local files by their content and metadata Like Google Desktop for phones, but also syncs files between devices 2009: Dessy Ported to MIDP phones (Most Java-enabled phones) 2011: Dessy will allow offloading indexing to the cloud 37 12/4/11

Indexing: Desktop Search Basics percom P1.pdf, p65.doc, notes.txt Files are collections of words To find files by the words contained in them, we need to map words to collections of files that contain the word This is called an Inverted File, an Index To create this index, we need to read through all the files, creating a mapping from all their words to the file identifiers This is expensive CPU-wise 38 12/4/11

Offloading tasks to the Cloud Intuitively, CPU-intensive tasks can be offloaded Data transmission, waiting, and result reception energy should be smaller than execution energy on the phone Then offloading is beneficial and we win battery life on the phone 39 12/4/11

Summary The offloading decision should depend on expected energy use High energy savings can be obtained when offloading CPU-intensive tasks Indexing can and should be offloaded, even on a slower network (Minimum efficiency for a 1 MB file with Dessy is 17 kb/j, offloading with 16 kb/j causes a 1.5 % energy loss) Future mobile platforms may use cloud services to enable fast and energy-efficient on-device search 40 12/4/11

IETF work on offloading

Conclusions Mobile development has changed Dominant platforms: Android, IOS, WP7 Javascript/HTML5 as a promising alternative, with interfaces to device internals Cloud computing and mobile computing work together Applications partly in cloud, partly on the mobile Offloading as a service