ISYS 2402/2403 : Mobile Caching

Lecturer

For any question regarding this section, please contact the lecturer directly.


Papers (for discussion in Week 2 of the topic)
Slides

Research questions

Guide To Answering Questions
The Mobile Context in terms of how it is different from the desktop context.

Choose one of the following questions as your topic.  Register this choice with an email to ronvs@rmit.edu.au.  First come-first served.  Note that these questions vary in difficulty.
  1. Belady’s anomaly is best demonstrated with equal sized cache components using a FIFO cache replacement   algorithm.  On the web this is not realistic.  How would the typical size distribution of components on the web   affect the algorithm (assume FIFO)?
  2. When a server updates data that is already cached within clients, the server can send an invalidation report to inform clients of the update.  This can be done either as a broadcast or only to those clients that the server knows are affected.  Discuss the advantages of each approach in a mobile context.
  3. When a client receives an invalidation report, it may choose to update its cache immediately, or indicate that an update is required prior to subsequent usage, and update only when required.  Discuss the advantages and disadvantages of each approach in a mobile context.
  4. It would seem obvious to use write-through caches where a client can update cached data.  This essentially means that a client sends the equivalent of an invalidation report and the new data to the server.  In a mobile context this may not always be ideal – particularly when disconnected.  Discuss circumstances where sending both invalidation report and changed data is not ideal, and the risks involved.  Can some compromise be reached?  Eg. Consider location data.
  5. The rise of AJAX usage changes the fundamental web model where there is a 1:1 correspondence between URL and resource, to one where a URL can link to many resources (eg gmail uses separate AJAX transfers for each mail item).   Caching is typically done at fragment level (fragment caching), not document level, but documents are more independent from each other compared to AJAX fragments to a given document.  So what are the implications of AJAX fragment caching in a mobile context?
  6. While AJAX subdivides a document into distinct parts that can be cached as fragments, or even as normal files, it is also possible for an intelligent cache to split a single page into statuc and dynamic components.  Describe how such a cache might work.  One approach is to use ESI (Edge Side Includes – what is the ‘edge’ referred to?) as proposed by W3, Akamal Inc. and others.  This implies that the cache needs hints in order to determine where to split the page.  Have there been attempts to automate this splitting without resorting to another language (like ESI)?
  7. Distributed caching, in which multiple different servers can cache different parts of a web page, can be implemented using standards such as ICAP (RFC 3507 – “To keep up with the growth in the number of clients,  there has been a move towards architectures that scale better through the use of    replication, distribution, and caching.”) or ESI as proposed by W3, Akamal Inc. and others.  This provides a unique business model where Akamal excel.  Describe the business model, and its implications on mobile caching.  What if a mobile carrier (such as Optus) were to provide such caching?  Are there security/privacy concerns here?  Compare this approach to fragment caching.  Consider the age of the standards.
  8. As http://www.thinkvitamin.com/features/ajax/5-ways-to-optimize-ajax-in-ruby-on-rails shows for Ruby on Rails and
    http://cs.rthand.com/blogs/blog_with_righthand/pages/Using-page-fragment-caching-and-AJAX-thing.aspx for ASP, AJAX caching can be done at various places: server (for generated content); external proxy cache; browser cache; and manual JavaScript cache (eg mouse-over images).  Under what circumstances is each of these cache locations likely to produce the best improvement when optimised?  What might be the best global scenario?  The worst?  These optima may be data-dependent.  Discuss some generic data display classes (eg newspaper, blog, picture gallery style) which might yield specific optimisations.
  9. ASP.NET offers a number of OutputCache parameter settings to deal with the caching of generated code (see http://asp.net-tutorials.com/caching/introduction/).  Discuss the implications of each of these settings in a mobile context.  Do not assume that the mobile device knows .NET, but include discussion of any advantages that a .NET awareness might bring.  How does this differ from an equivalent Java JSP/Java ME platform?
  10. Since a mobile device is not always connected to the net, in the times when it is known in advance that it will be offline for some time, a cache may be pre-emptively filled with the data items expected/predicted to be needed in the future.  This process is called data hoarding.  Is data hoarding unique to mobile usage, or is it used in other contexts, and how?  Give evidence.
  11. Mobile peer to peer caching could be improved in a situation where there are crowds of people in close proximity to each other.  In this case P2P could be implemented using Bluetooth, WiFi or Broadband.  What kind of issues can arise in this situation?  How could caching help here?  Assume that the people in the crowd are NOT static  (topology?) – ie they move!. 
  12. Mobile data-collection is a typically asymmetric operation that is least efficient in a mobile context if performed without caching (broadcast might be seen to be most efficient).  In turn, maximal caching limits real-time response to data-collected, so some form of middle-ground might seem best.  But when multiple data-sources need to be merged, and action taken based on the result, data caching on each device can become very problematic – particularly in a partially connected environment (eg. imposed on motes by power usage restrictions).  Discuss how mechanisms such as distributed and targeted invalidation reports generated from either client data sources or the data collection server can help improve this situation.