2007 USENIX Annual Technical Conference
Pp. 101–114 of the Proceedings
MapJAX: Data Structure Abstractions for Asynchronous Web Applications
Daniel S. Myers, Jennifer N. Carlisle, James A. Cowling, and Barbara H. Liskov, MIT CSAIL
The current approach to developing rich, interactive web applications
relies on asynchronous RPCs (Remote Procedure Calls) to fetch new data
to be displayed by the client. We argue that for the majority of web
applications, this RPC-based model is not the correct abstraction: it
forces programmers to use an awkward continuation-passing style of
programming and to expend too much effort manually transferring
data. We propose a new programming model, MapJAX, to remedy these
problems. MapJAX provides the abstraction of data structures shared
between the browser and the server, based on the familiar primitives
of objects, locks, and threads. MapJAX also provides additional
features (parallel for loops and prefetching) that help
developers minimize response times in their applications. MapJAX thus
allows developers to focus on what they do best-writing compelling
applications-rather than worrying about systems issues of data
transfer and callback management.
We describe the design and implementation of the MapJAX framework and show its
use in three prototypical web applications: a mapping application, an email
client, and a search-autocomplete application. We evaluate the performance of
these applications under realistic Internet latency and bandwidth constraints
and find that the unoptimized MapJAX versions perform comparably to the
standard AJAX versions, while MapJAX performance optimizations can dramatically
improve performance, by close to a factor of 2 relative to non-MapJAX code in
- View the full text of this paper in HTML and PDF. Listen to the presentation and Q & A in MP3 format.
Until June 2008, you will need your USENIX membership identification in order to access the full papers.
The Proceedings are published as a collective work, © 2007 by the USENIX Association. All Rights Reserved. Rights to individual papers remain with the author or the author's employer. Permission is granted for the noncommercial reproduction of the complete work for educational or research purposes. USENIX acknowledges all trademarks within this paper.