BeepBeep is a lightweight runtime monitor for AJAX web applications. It transparently checks in real time whether XML messages received and sent by the application satisfy a predefined interface specification. This specification can impose constraints on the ordering of messages, on the data values inside one or multiple messages, or a combination of both. Using BeepBeep prevents an AJAX application from sending erroneous messages all the way to the server, saving bandwidth, server processing time and a few bugs along the way.
Take the tour to see a quick demo showing how to use BeepBeep form A to Z.
See additional examples showing the full range of interface contracts that can be monitored by BeepBeep.
BeepBeep is composed of two files, a Javascript include (7 kb) and a .jar applet (43 kb). The Javascript can be minified, which means that the total added volume is less than 50 kb.
To execute the applet, the client requires a plain JRE; no other classes or dependencies are required by BeepBeep.
Our experiments show that for typical properties, BeepBeep adds an overhead in the range of 10 milliseconds to process and monitor each message on the client. This, in turn, might save valuable CPU time on the servers accessed by the client by preventing invalid messages from reaching them.
2009-03-27: BeepBeep at CAV 2009 A paper on BeepBeep will be presented at the Computer Aided Verification conference next June in Grenoble, France.
2009-01-23: Version 0.9.2 is out! This version adds support for REST requests and fixes a few bugs. Get it from the download page.