Data Structure Abstractions for Asynchronous Web Applications Daniel S. Myers MIT CSAIL Jennifer N. Carlisle MIT CSAIL James A. Cowling MIT CSAIL 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 reme 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...
Daniel S. Myers, Jennifer N. Carlisle, James A. Co