The Beep Store

From Scube-casestudies
Jump to: navigation, search

This page serves as an appendix to the short paper Constraint-Based Invocation of Stateful Web Services: The Beep Store, to appear at the 4th International Workshop on Principles of Engineering Service-Oriented Systems ( The paper describes an environment for the verification and enforcement of stateful web service constraints.


The archive contains:

  1. An Ajax web application, the "Beep Store", that provides catalog browsing and shopping cart manipulation functions through browser-server exchange of SOAP XML messages
  2. A generator of traces, called cart-generator

System requirements

  • A web server with support for PHP and SQLite. Reported to work with Apache 2.x and Hiawatha 6.x.
  • To use the web client: a standards-compliant web browser with Java and JavaScript support

Installation instructions

  • Unpack the contents of the archive in a directory under the web server's root (e.g. htdocs/beepstore)
  • For SQLite usage: make sure the web server's directory is chmod 777 (this is due to an SQLite bug).

How to use The Beep Store

  • Open your web browser and visit the location where you unpacked the archive (e.g. http://localhost/beepstore). The application should start automatically. Links and buttons are self-explanatory. The "Documentation" section provides details about the SOAP messages exchanged and their constraints.
  • Use any instrumentation method (such as the Firebug extension in Firefox) to intercept and study the SOAP requests and responses between the client and the server.
  • The contents of the back-end database are located in `beepstore.sqlite`; use an SQLite manager (such as the "SQLite Database Browser" under Ubuntu) to open the database and modify its contents to your liking.
  • To log in, use the following credentials: username "user", password "1234", e-mail "". Other users can be changed in table "users" of the SQLite database.
  • The application can switch to MySQL for its database engine; some configuration settings can be changed in the file `beepstore.ini`. (You have to create the tables and populate the database manually in that case.)


Additional info

Please contact Sylvain Hallé ( for enquiries about this case study.

For more information about the Beep Store and its related constraints, please refer to the following papers:

  • Hallé, S., Villemaire, R. (2011). Runtime Enforcement of Web Service Message Contracts with Data. IEEE Transactions on Services Computing. Special issue on Enforcement and Management in Services Computing. Available as a preprint,
  • Hallé, S., Bultan, T., Hughes, G., Alkhalaf, M., Villemaire, R. (2010). Runtime Verification of Web Service Interface Contracts. IEEE Computer, March 2010, 59-66.
  • Hallé, S., Villemaire, R. (2010). Tutorial: Runtime Verification for the Web. Proc. Runtime Verification 2010, Springer: Lecture Notes in Computer Science 6418, 106-121.