The Beep Store
From Scube-casestudies
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 (http://www.s-cube-network.eu/pesos-2012). The paper describes an environment for the verification and enforcement of stateful web service constraints.
Contents
Description
The archive contains:
- An Ajax web application, the "Beep Store", that provides catalog browsing and shopping cart manipulation functions through browser-server exchange of SOAP XML messages
- 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 "me@example.com". 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.)
Download
http://beepbeep.sourceforge.net/examples/beepstore/bundle.zip
Additional info
Please contact Sylvain Hallé (mailto:shalle@acm.org) 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, http://dx.doi.org/10.1109/TSC.2011.10.
- Hallé, S., Bultan, T., Hughes, G., Alkhalaf, M., Villemaire, R. (2010). Runtime Verification of Web Service Interface Contracts. IEEE Computer, March 2010, 59-66. http://doi.ieeecomputersociety.org/10.1109/MC.2010.76
- Hallé, S., Villemaire, R. (2010). Tutorial: Runtime Verification for the Web. Proc. Runtime Verification 2010, Springer: Lecture Notes in Computer Science 6418, 106-121. http://dx.doi.org/10.1007/978-3-642-16612-9_10