Mobile Middleware Course Mobile Platforms and Middleware Sasu Tarkoma
Role of Software and Algorithms Software has an increasingly important role in mobile devices Increase in device capabilities Interaction with sensors and other devices Integration with the Web and cloud Applications and services Development processes Testing of mobile sw Deployment and management
Smartphone Software APPLICATION APPLICATION FRAMEWORK AND COMMON APIs Cloud integration Context awareness File System Networking Media and Input Security LIBRARIES RUNTIME OS and drivers
Applications Middleware provides various Middleware transparencies (HW, OS, location, fault,..) for apps. Transport Layer APIs (TCP/UDP) for: RPC, messaging, transactions, session management, storage, directories, trading, etc. Networking Layer (IP) Underlying network (link layer, physical)
The Hourglass diverse applications divergence transport layer (TCP/IP) convergence diverse physical layers
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, tail energy, 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
Mobile Service Development The mobile landscape is fragmented Heterogeneous device base Many different wireless technologies The situation is challenging for the developer Many APIs Open vs. private 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
Introduction to Platforms Mobile middleware aims to support the development, deployment, and execution of distributed applications in the heterogeneous and dynamic mobile environment. The goals for mobile middleware include adaptability support, fault-tolerance, heterogeneity, scalability, and contextawareness. The industry solution to these challenges has been to create middleware platforms. A platform collects frequently used services and APIs under a coherent unified framework.
Platforms 2009 Java Micro Edition (Java ME) ios Symbian and Series 60 Windows Mobile Linux Maemo (MeeGo) Android BREW WAP 2012 ios Android Windows Phone 8 HTML5 web apps and Firefox OS 2014 Sensing and Internet of Things platforms
Android Linux ios FireFox OS Linux Windows Phone 8 Development Java, native code with JNI and C/C++ Objective-C Javascript ant HTML5 C# and.net, various Network features Basic APIs: Bluetooth, WiFi, cellular, NFC Network information Enumerate access points Signal strength Basic APIs: Bluetooth, WiFi, cellular, NFC Network information No (only for preinstalled applications) Basic APIs: Bluetooth, WiFi, cellular, NFC Network information Set connection preferences Background processing Yes (services) Task based multitasking since version 4 No (planned) Multitasking API Push notification Yes (Google Cloud Messaging) Yes (ios Push Notification) Yes (Firefox Push Notification) Yes (Microsoft Push Notification Service) Energy and power monitoring Battery status Monitoring since 3.0 Battery status Battery status HTML 5 Yes Yes Yes Yes Open Source Yes No Yes No 3rd party application installation Certificate, Google Play Certificate, Apple AppStore Certificate, app stores and web sites Certificate, Windows Phone Store
Context awareness Sensing Multitasking Applications Mobile OS and Platform Wireless connectivity Feature phone Smartphone Application developer OS provider / device manufacturer Application developer OS provider / device manufacturer Telecom operator Telecom equipment manufacturer Device manufacturer End user
Application Trends WP8 ios Native apps, cloud integration Native apps, cloud integration Potential for Web apps Android Native apps, cloud integration WebOS Web apps with HTML5 Obsolete (open source) Blackberry Native and Web apps
Challenges Fragmentation is a major problem device-level fragmentation standard fragmentation implementation fragmentation Energy consumption Modelling: where is the energy going Optimization: how to improve things 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 No malware for ios, plenty for Android
Current state of the art Communications WiFi and LTE for mobile data WiFi and Bluetooth for local communications (also NFC) Applications More APIs available, cloud integration Fragmentation and control challenges Cloud-based APIs, storage, control functions Cloud offerings from operators and manufacturers Cloud in the access network Mobile traffic Machine-to-machine as a new component in mobile traffic Increasing video component Crowdsourcing
Examples Classical examples WAP Java ME Symbian MAEMO / MeeGo Current Platforms Windows Phone 8 iphone Android Web apps