BeepBeep is a lightweight runtime monitor for AJAX web applications and Java programs. It transparently checks in real time whether messages and events received and sent by an 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 application from sending erroneous messages or method calls, saving bandwidth, server processing time and a few bugs along the way.
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.
2011-04-21: BeepBeep also monitors Java programs See the new tour for a description of what it does.
2011-04-21: Version 0.9.3 is out! Several bugfixes and extended functionality. Get it from the download page.
2010-03-20: BeepBeep in IEEE Computer An article in IEEE's Computer appeared in the March 2010 issue of the magazine.
2009-03-27: BeepBeep at CAV 2009 A paper on BeepBeep will be presented at the Computer Aided Verification conference next July in Grenoble, France.