Chico CSCI 693 - AjaxScope: A Platform for Remotely Monitoring the Client-Side Behavior of Web 2.0 Applications

Unformatted text preview:

AjaxScope: A Platform for Remotely Monitoringthe Client-Side Behavior of Web 2.0 ApplicationsEmre Kıcıman and Benjamin LivshitsMicrosoft ResearchRedmond, WA, USA{emrek, livshits}@microsoft.comABSTRACTThe rise of the software-as-a-service paradigm has led to the de-velopment of a new breed of sophisticated, interactive applicationsoften called Web 2.0. While web applications have become largerand more complex, web application developers today have littlevisibility into the end-to-end behavior of their systems. This pa-per presents AjaxScope, a dynamic instrumentation platform thatenables cross-user monitoring and just-in-time control of web ap-plication behavior on end-user desktops. AjaxScope is a proxythat performs on-the-fly parsing and instrumentation of JavaScriptcode as it is sent to users’ browsers. AjaxScope provides facili-ties for distributed and adaptive instrumentation in order to reducethe client-side overhead, while giving fine-grained visibility intothe code-level behavior of web applications. We present a varietyof policies demonstrating the power of AjaxScope, ranging fromsimple error reporting and performance profiling to more complexmemory leak detection and optimization analyses. We also applyour prototype to analyze the behavior of over 90 Web 2.0 applica-tions and sites that use large amounts of JavaScript.Categories and Subject DescriptorsD.2.5 [Testing and Debugging]: Distributed debugging; D.4.7[Distributed systems]: Organization and DesignGeneral TermsReliability, Performance, Measurement, Management, LanguagesKeywordsWeb applications, software monitoring, software instrumentation1. INTRODUCTIONIn the last several years, there has been a sea change in the waysoftware is developed, deployed, and maintained. Much of this hasbeen the result of a rise of software-as-a-service paradigm as op-posed to traditional shrink-wrap software. These changes have leadto an inherently more dynamic and fluid approach to software dis-tribution, where users benefit from bug fixes and security updatesPermission to make digital or hard copies of all or part of this work forpersonal or classroom use is granted without fee provided that copies arenot made or distributed for profit or commercial advantage and that copiesbear this notice and the full citation on the first page. To copy otherwise, torepublish, to post on servers or to redistribute to lists, requires prior specificpermission and/or a fee.SOSP’07, October 14–17, 2007, Stevenson, Washington, USA.Copyright 2007 ACM 978-1-59593-591-5/07/0010 ...$5.00.instantly and without hassle. As our paper shows, this fluidity alsocreates opportunities for software monitoring. Indeed, additionalmonitoring code can be seamlessly injected into the running soft-ware without the users awareness.Nowhere has this change in the software deployment model beenmore prominent than in a new generation of interactive and pow-erful web applications. Sometimes referred to as Web 2.0, ap-plications such as Yahoo! Mail and Google Maps have enjoyedwide adoption and are highly visible success stories. In contrastto traditional web applications that perform the majority of theircomputation on the server, Web 2.0 applications include a signif-icant client-side JavaScript component. Widely-used applicationsconsist of over 50,000 lines of JavaScript code executing in theuser’s browser. Based on AJAX (Asynchronous JavaScript andXML), these web applications use dynamically downloaded Java-Script programs to combine a rich client-side experience with thestorage capacity, computational power, and reliability of sophisti-cated data centers.However, as web applications grow larger and more complex,their dependability is challenged by many of the same issues thatplague any large, cross-platform distributed system that crossesadministrative boundaries. There are subtle and not-so-subtle in-compatibilities in browser execution environments, unpredictableworkloads, software bugs, dependencies on third-party web ser-vices, and—perhaps most importantly—a lack of end-to-end vis-ibility into the remote execution of the client-side code. Withoutvisibility into client-side behavior, developers have to resort to ex-plicit user feedback and attempts to reproduce user problems.This paper presents AjaxScope, a platform for instrumentingand remotely monitoring the client-side execution of web applica-tions within users’ browsers. Our goal is to enable practical, flexi-ble, fine-grained monitoring of web application behavior across themany users of today’s large web applications. Our primary focusis on enabling monitoring and analysis of program behavior at thesource code level to improve developers’ visibility into the correct-ness and performance problems being encountered by end-users.To achieve this goal, we take advantage of a new capability of theweb application environment, instant redeployability: the ability todynamically serve new, different versions of code each time anyuser runs a web application. We use this ability to dynamicallyprovide differently instrumented code per user and per executionof an application.Instant redeployability allows us to explore two novel instrumen-tation concepts, adaptive instrumentation, where instrumentation isdynamically added or removed from a program as its real-world be-havior is observed across users; and distributed tests, where we dis-tribute instrumentation and run-time analyses across many users’execution of an application, such that no single user experiencesthe overhead of heavy-weight instrumentation. A combination ofthese techniques allows us to take many brute-force, runtime mon-itoring policies that would normally impose a prohibitively highoverhead, and instead spread the overhead across users and time sothat no single execution suffers too high an overhead. In addition,instant redeployability enables comparative evaluation of optimiza-tions, bug fixes, and other code modifications.To demonstrate these concepts, we have built AjaxScope, a pro-totype proxy that rewrites JavaScript-based web applications on-the-fly as they are being sent to a user’s browser. AjaxScope pro-vides a flexible, policy-based platform for injecting arbitrary in-strumentation code to monitor and report on the dynamic runtimebehavior of web applications, including their runtime errors, per-formance, function call graphs, application state, and other infor-mation accessible from within a web browser’s JavaScript


View Full Document

Chico CSCI 693 - AjaxScope: A Platform for Remotely Monitoring the Client-Side Behavior of Web 2.0 Applications

Download AjaxScope: A Platform for Remotely Monitoring the Client-Side Behavior of Web 2.0 Applications
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view AjaxScope: A Platform for Remotely Monitoring the Client-Side Behavior of Web 2.0 Applications and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view AjaxScope: A Platform for Remotely Monitoring the Client-Side Behavior of Web 2.0 Applications 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?