Mobile Service - Definition

  • “A radiocommunication service between mobile and land stations, or between mobile stations.” – traditional, short
    [International Telecommunication Convention, Malaga-Torremolinos, 1973]
  • “Radiocommunications services between ships, aircraft, road vehicles, or hand-held terminal stations for use while in motion or between such stations and fixed points on land.” – official, by WTO
    [http://www.wto.org/english/tratop_e/serv_e/telecom_e/tel12_e.htm]
  • “Any service that can be operated on a mobile device, such as both voice and data services, for example, roaming, SMS and MMS, video streaming, location-based services, etc.” – technically oriented


Mobile Services vs. Web Services I

  • Many Web Services and APIs were originally developed with server to server or server to browser in mind, not mobile applications


Mobile Services vs. Web Services II

  • Mobile platforms have their own set of challenges given:
    • Bandwidth
    • Memory and CPU Availability
    • Storage Capacity
    • Connectivity Options and Issues
    • Security  



Mobile Applications vs Desktop Applications

  • Less Computing Power
  • Need to keep down power consumption
  • Connection not 100% available
  • Smaller display
  • Different means of interactions
  • Mobile services (GPS, SMS, …)
  • A multitude of Operating Systems
  • Event driven paradigm


Mobile Devices Constraints I

  • Small screen size
    • This makes it difficult or impossible to see text and graphics dependent on the standard size of a desktop computer screen.
  • Lack of windows
    • On a desktop computer, the ability to open more than one window at a time allows for multi-tasking and for easy revert to a previous page. There are apps for the iPhone (e.g. Oceanus), as well as browsers such as Opera Minibut, allowing multiple windows, but sometimes a limited number, and not multiple windows in the same screen.
  • Navigation
    • Most mobile devices do not use a mouselike pointer, but rather simply an up and down function for scrolling, thereby limiting the flexibility in navigation.


Mobile Devices Constraints II

  • Types of pages accessible
    • Many sites that can be accessed on a desktop cannot on a mobile device. Many devices cannot access pages with a secured connection, Flash or other similar software, PDFs, or video sites, although recently this has been changing.
  • Broken pages
    • On many devices, a single page as viewed on a desktop is broken into segments, which are each treated as a separate page. Paired with the slow speed, navigation between these pages is slow.


Reference Architecture for Mobile Applications

  • Specialization of a three tier architecture
  • Some parts of data (data sources) and some parts of logic (services) are accessed via remote connection


Presentation Layer

  • The presentation layer is responsible for all interactions with the user
  • The most common ways to present data to mobile users:
    • HTML
    • Native UI


Data Layer

  • The main function of the data layer is to provide fast, reliable access to data needed to run a system
  • Additionally, the data layer is responsible for maintaining information about the relationships between data


Business-Logic Layer

  • The business-logic layer is responsible for implementing the basic rules of the system according to the operating rules of the business
  • This layer is in charge of accessing the data tier and for processing the data retrieved and sent to the presentation layer


Design Challenges

  • Authentication vs. Authorization
    • How to simplify Mobile User access to Web APIs and Services
  • Speed Traps
    • How to avoid excessive number of requests that may saturate the available bandwidth to the device (and cause higher connection prices)
  • Large Data Set Handling
    • How to handle large data set so as to reduce response time and bandwidth consumption
  • User Interaction
    • How to deal with constraints posed by mobile devices displays, connections to provide and effective interaction to users


Authentication vs. Authorization

  • Definitions
    • Authentication is any process by which a system verifies the identity of a user who wishes to access it [http://mtechit.com/concepts/authentication.html]
    • Authorization is the process of giving someone permission to do or have something [http://hitachi-id.com/concepts/authorization.html]
  • Security is an important concern over mobile connections where devices are used in more open environments
  • Usual desktop solutions for authentication and authorization that requires complex interaction with remote services may constitute a complex overhead to mobile users
  • Thus we need to adopt principles to simply, but still retain security of access to remote services through mobile devices
    • Authentication from the API provider based on API Key stored on the devices can avoid user to provide their authorization details.


Speed Traps

  • Connection in mobile environments is subject to different quality in different contexts
    • Connection could be on wifi, 3G or 1G based signal and bandwidth
  • Connection is a scarce resource
    • Connection may not be always available
  • Thus we need to adapt to connection quality and availability by
    • Segmenting functionality and/or calls to prevent bandwidth issues
    • Adopting polling techniques that adapts to the available bandwidth and connection
      • Create subset of calls and functionality when on slower bandwidth
      • Use notifications if possible
      • Modify polling interval based on need
    • Recovering from intermittent or lost connections


Overview

  • Data transmission is a costly resource
    • In term of performances, bandwidth and a service cost
  • Transmission of large chunk of data is more error prone than small chunk of data
    • Quality of connection is not constant in a mobile environment
  • Thus we need to minimize large data sets, by employing techniques such as:
    • Ask for only those elements that you require (Filtering)
    • Ask for only those items that you require (Paging)
    • Cache what you can locally instead of requesting the same data (Caching)


Filtering

  • Types of Request Filtering
    • Selection criteria for narrowing data set returned
  • In general determine how efficient are the calls – reduce data waste
    • How much extra data, streaming, parsing is happening to access the data you use?
      How much data is being dropped on the floor? 
<?xml version="1.0" encoding="utf-8"?> <FindItemsAdvancedRequest xmlns="urn:ebay:apis:eBLBaseComponents"> <!-- Standard Input Fields --> <MessageID> string </MessageID> <!-- Call-specific Input Fields --> <BidCountMax> int </BidCountMax> <BidCountMin> int </BidCountMin> <CategoryHistogramMaxChildren> int </CategoryHistogramMaxChildren> <CategoryHistogramMaxParents> int </CategoryHistogramMaxParents> <CategoryID> string </CategoryID> <CharityID> int </CharityID> <Condition> ItemConditionCodeType </Condition> <Currency> CurrencyCodeType </Currency> … <ShippingLocation> CountryCodeType </ShippingLocation> <ShippingPostalCode> string </ShippingPostalCode> <SortOrder> SortOrderCodeType </SortOrder> <StoreName> string </StoreName> <StoreSearch> StoreSearchCodeType </StoreSearch> </FindItemsAdvancedRequest>


Paging

  • Provide paging functionality to users
    • Cluster set of contents into pages (improves also UI usability)
  • Not all calls have paging available
    • If the service you are calling does not allow to retrieve “pages” of data, using them on the device, will not anyway prevent transfer of large chunk of XML data (unless device support live XML stream parsing).
  • Inform user of current location in set, easy access to next and previous sets (page)
    • Enable users to navigate through pages
    • Enable users to understand where they are
      in the collection of data 


Caching Strategies

  • To minimize API round trips leverage caching and storage
    • Cache in memory (volatile memory of the mobile device)
    • Cache in onboard light weight database or file (persistent memory of the mobile device)
    • Off device persistence (persistent storage service over the Web)


User Interaction

  • Besides issues related to connection aspects, adoption of mobile devices poses challenges for the User Interaction
    • Asking for new information using synchronous call, due to bandwidth limitations may totally block user interactions with the application
    • Re-requesting already accessed information may end up in making slower the interaction
  • Thus we need to employ techniques that hide the limitations of mobile devices and mobile connections by
    • Caching of information for future retrieval and navigation
    • Executing web service parsing and display in background when possible to prevent UI blocking
    • Using JIT and Information on Demand to maximize small layouts and minimize web service calls


Smartphone OS Competitive Landscape

 

iPhone OS(Apple)

BlackBerry OS (RIM)

Window Mobile (Microsoft)

Android (Google)

Symbian (Nokia)

 

Platform

Closed

Closed

Open

Open

Open

 

Source Code

Closed

Closed

Closed

Open

Open (in future)

 

2009 WW Market Share [Gartner]

14.4%

19.9%

8.7%

3.9

46.9%

 

Smartphone traffic share [ AdMob ]

WW: 46%

US: 39%

WW: 5%

US: 7%

WW: 1%

US: 1%

WW: 25%

US: 46%

WW: 21%

US: 1%

 

Pros

Early momentum

Data hungry early adopters

Powerful distribution channel

Strong reach (particularly in US)

Manufacturer / carrier agnostic

Manufacturer / carrier agnostic

Open source innovation

Massive global reach

Open source innovation

 

Issues

Apple dependant

BlackBerry dependent

Distribution

Distribution

Late to market

Uncertain consumer demand

Limited reach in US

Distribution

 

Application ecosystem

[ Distimo ]

iTunes Apps Store

>185K apps

More than 3B downloads

BlackBerry App World

5,5k apps

Windows Marketplace

1k apps

Android Market

50k apps

OVI Market

7k apps



Worldwide Smartphone Landscape



iPhone OS (Apple)

  • Pros
    • Strong user growth and data-hungry user base
    • Application store creating a vibrant app ecosystem with great momentum
      • More than 85K applications (~20% free)
      • More than 1 million downloads
    • Powerful technology enablers (e.g., multi-touch, GPS, accelerometer)
  • Issues
    • App approval process is largely a black-box to developers
    • Apps viewed as competitive to Apple are often shut down
    • Downloads highly dependent on “featured” or “top download” promotion in store
    • App store is the only authorized distribution channel
    • Apple / hardware dependent
  • Recent news / developments
    • NDA requirement: Apple finally removed the onerous NDA requirement
    • Flash: signs pointing towards development of iPhone flash player
  • Development resources
    • http://developer.apple.com/iphone/index.action
    • http://iphoneincubator.com/blog/



BlackBerry OS (RIM)

  • Pros
    • Large reach and data-hungry user base
    • Developers not limited to single distribution channel
  • Issues
    • Developer momentum appears to be shifting to iPhone
    • Less reach outside of North America
    • Application distribution more difficult today vs. iPhone’s app store 
    • Users more email focused vs. web consuming iPhone users
    • RIM / hardware dependent
  • Recent news / developments
    • BlackBerry Application Center scheduled to debut w/ BlackBerry Storm OS v4.7
    • Speculation that Storm (i.e., touchscreen iPhone competitor) will be available in November
  • Developer resources
    • http://na.blackberry.com/eng/developers/
    • http://www.blackberrydeveloperconference.com/
    • http://crackberry.com/


Windows Mobile

  • Pros
    • Strong user reach
    • Manufacturer agnostic
    • >18K apps
  • Issues
    • Current version in market (Windows Mobile 6) lacks support for some popular technology enablers (e.g., multi-touch, GPS, accelerometer)
    • Next-gen version will be late to market
    • Less developer enthusiasm vs. that for iPhone and Android
    • Application distribution more difficult today vs. iPhone’s app store 
  • Recent news / developments
    • Microsoft to launch “Skymarket” applications marketplace for Windows Mobile 7 (planned for launch in 2H ’09)
    • Speculation that Windows Mobile 7 will support revamped UI and multi-touch
  • Developer resources
    • http://www.microsoft.com/windowsmobile/en-us/business/developers.mspx


Android (Google)

  • Pros
    • Open source => could help accelerate pace of innovation
    • Manufacturer-independent => could help accelerate consumer adoption
    • Technology support (e.g., touchscreen, GPS, accelerometer, video and still cameras)
  • Issues
    • Late to market relative to iPhone
    • At least initially, demand is expected to trail iPhone demand
  • Recent news / developments
    • 1st Android phone (T-Mobile G1) went on sale on Oct. 22 2008
    • Sept. ’08: Officially released v1.0 of SDK in Sept
    • Aug ’08: Awarded $3.75MM to 20 developers in the Android Developer Challenge
  • Developer resources
    • http://android-developers.blogspot.com/
    • http://code.google.com/android/documentation.html


Symbian (Nokia)

  • Pros
    • Massive global reach
    • Like Android, being open source could help accelerate pace of innovation
  • Issues
    • Limited reach in the US
    • Application distribution more difficult today vs. iPhone’s app store 
  • Recent news / developments:
    • June ’08: Nokia announced plans to acquire full ownership of Symbian and start the Symbian Foundation, which will be an independent force for the future development of Symbian OS. They stated that Symbian OS (including the platforms S60, UIQ and MOAP(S)) will become open source in the first half of 2009
  • Developer resources
    • http://www.forum.nokia.com/main/resources/technologies/symbian/




Creator: sidraaslam

Contributors:
-


Licensed under the Creative Commons
Attribution ShareAlike CC-BY-SA license


This deck was created using SlideWiki.