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.)