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.
- 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)?
- 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.
- 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.
- 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.
- 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?
- 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)?
- 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.
- 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.
- 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?
- 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.
- 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!.
- 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.