Thoughts on API Best Practices API Management and Infrastructure Blog

Mobile patterns are different from Web patterns

Mobile application patterns are different from web application patterns.  There are a consistent, discrete set of differences in how they access cloud services.  There are consistent reasons why they’re favored over websites as well, primarily based on implicit intent and purposive computing experience, but that’s a subject for a future blog entry. 

For now, let’s assume that like web applications, mobile applications use HTTP to access their services, but unlike old-school web applications, they use REST and SOAP as the basis of their service protocols.

Difference 1: Bandwidth is expensive

Bandwidth always costs two unique things in mobile applications – time and battery.  Jeffrey Sharkey has a great talk about battery usage and good citizenship.  In some areas and for some users, bandwidth also hits their data plan, which makes bandwidth cost real money as well 

Difference 2: Bandwidth is inconsistent

Disconnections are part of everyday life when using the mobile internet to access websites or cloud services. When your local cell area becomes overloaded with requests or your service loses track of where you are between towers, when you are in even a momentary cell shadow, your connection is gone.  If this is in the middle of a data connection, that connection is reset and has to start over.

Difference 3: Local processing matters

First, non-trivial requests for data from cloud services often results in large datasets being returned to the device.  These chunks can not only be hard to process, but may be more information than the user will bother to access.  A request that returns hundreds of row-equivalents worth of responses may be mostly wasted processing if the user is only going to glance at the first few displayed screens’ worth.

Second, local applications have differentiated access to devices – awareness of onboard camera, location, or other services.  They also have differentiated preferences about data.  For example, the iPhone operating system is fluent in XML processing, and many iPhone applications transmit XML dialects to their cloud services.  However, XML is more expensive to the iPhone than PLISTs (a JSON-like simple data format) – roughly 4-5 times more expensive in compute cycles.  Other mobile devices have their own variations based on operating system version and device services.

Difference 4: Welcome to the hit-driven app economy

Media has been a hit-driven economy for decades, with winners and losers being made and broken overnight based on the wisdom or madness of crowds.  With the fantastic potential of mobile applications and the inconsistent actual experiences, collaborative filtering and editorial selection are producing a hit-driven “Top 25” economy for mobile applications – the equivalent of being “above the fold” in a website.  It’s a steady climb to get in this elite area, but once your application gets to this point you might as well have been written up by Walt Mossberg or Slashdot – traffic, downloads, and usage of the cloud services backing your app will all surge dramatically.

Difference 5: Concurrent usage by millions of nomadic users

Just combining Difference 2 (inconsistent bandwidth) with the fact that most mobile connections use HTTP 1.0 means that many more connections are being made, dropped and suffer an expensive reset not just of application state but of the HTTP connection itself.  Adding Difference 4 (the hit-driven app economy) to this means that concurrency – including “shadow concurrency”, the load of the dropped and restarted connections – has an even bigger role in mobile applications than traditional web computing.

Solving for mobile application patterns in cloud computing

There are probably ways to solve each of these problems individually.  What we’ve seen with some of our key customers is that all of these can be solved by applying a cloud service controller to manage the connections between mobile applications and their cloud services.

With a cloud service controller in the middle of the application and cloud service interactions, they’ve done the following things:

  • Compressed service request and response data by 6-10x
  • Accelerated service response time 5-7x through intelligent caching
  • Carved large service responses into chunks likely to be used by the mobile user
  • Translated service responses into formats easily  processed by the mobile device
  • Reduced total network airtime usage by 15-20x
  • Reduced battery drain on the mobile device
  • Reduced dropped connection experiences for the mobile application
  • Scaled caching and response capacity dynamically to match growth and spikes in usage


In one example, a customer took the network request/response time from 17 seconds to 1 second, and took local processing on the mobile device from 17 seconds to one second.  This reduced total application response time from 34 seconds to 2 seconds – an acceptable, even exciting level of responsiveness for that application’s users.  This was all achieved in a few weeks without rewriting either the mobile application or the cloud service upon which the application depended.

They did this by taking our core product (ServiceNet), writing policies that let it route, cache, accelerate, paginate, and format their cloud services.  Since ServiceNet is available as an .ami (Amazon EC2’s virtual machine format)  we've deployed it as a cloud service that expands and contracts its use of computing resources to match the load.  This way they haven’t been caught unprepared when their app made the top 25 list on the iPhone App Store and their legions of new users had the same responsive application experience as the users who popularized it in the first place.  Finally, future devices and application platforms will be easier to support from a single cloud service through construction of new formatting or pagination policies that match the needs of those device platforms.

Mobile acceleration may seem like a standalone thing for Sonoa, but really it’s an example of using policy to solve an application pattern challenge.  More on that – and policy-oriented programming – in a future blog entry.  There are many more domains of use for this approach in cloud computing.

Here's a video we posted today describing our Mobile App Acceleration service.

COMMENTS (8)  |  Add a comment

December 27, 2009 at 1:17 am Ellen20

If students are willing to know about this topic, they would buy research papers or buy]http://www.gogetessays.com”]buy custom essay papers[/url] with the help of the essay writers.

January 06, 2010 at 11:34 pm AMY22

I can affirm that you do really nice data connecting with this good topic. You can complete the phd thesis for buy thesis services or just create your dissertation service and some students will buy dissertation online in that location.

January 26, 2010 at 4:47 am sadas

Do you want to transfer music, or other files from iPod to iTunes? iPod to iTunes Transferis ready for you which is an excellent software professionally created to transfer ipod to iTunes. Besides, the iPod to iTunes transfer can also transfer iPod to iPod, iPod to computer.
You can use DVD to MP3 Converter to select target subtitle and audio track according at your will. DVD to MP3 Converter also provides you with fruitful options to set audio properties of audio bitrate, Sample Rate and so on.

February 04, 2010 at 8:39 pm Travel Guide

Very interesting points are raised to show the clear difference between mobile patterns and web patterns..really good article to understand the concept..thanks for sharing this article..

February 07, 2010 at 7:33 pm ksharp

Secondly, you need guarantees. What can often happen is the

veteran player wants their veteran character back.[url=“http://www.ibay24.de/everquest2-platinum.html”

title=“eq2 plat”]eq2 plat[/url][url=“http://www.ibay24.de/everquest2-platinum.html” title=“everquest 2

platinum”]everquest 2 platinum[/url][url=“http://www.ibay24.de/everquest2-platinum.html” title=“eq2

platinum”]eq2 platinum[/url] You need to buy a character from an account retailer who will provide you the

necessary guarantee.[url=“http://www.ibay24.de/maple-story-m-mesos.html” title=“maple story mesos”]maple

story mesos[/url][url=“http://www.ibay24.de/maple-story-m-mesos.html” title=“maple story meso”]maple story

meso[/url][url=“http://www.ibay24.de/aion-eu-k-kinah.html” title=“aion powerleveling”]aion

powerleveling[/url] And thirdly, you need to make sure you’re dealing with a human!

February 08, 2010 at 3:05 pm lino

nice post, very educational,
Beverly Hills Ca Homes For sale

February 21, 2010 at 8:47 pm Patty

It seems that it’s going to take a while for real mobile web app patterns to emerge.  The platforms are constantly changing too.

Patty,
auto air purifier

February 23, 2010 at 3:27 am eskort bayanlar

Good work! Your post/article is an excellent example of why I keep comming back to read your excellent quality content that is forever updated. Thank you! 


eskort bayan

*required ADD A COMMENT



Please enter the characters you see below