Monday, March 31, 2008

Project 2

Due Date: Wednesday, 30 April (firm)

Group project

Functional and Architectural Requirements

In this project, you will have the opportunity to implement a resource-oriented reservation system. You should follow these requirements, using your web application from the previous semester as a starting point.

Overall, you should follow the architectural and design principles outlined here:
Your system should support at least two representations:
  • XHTML (suitable for a human user)
  • JSON or concise XML (suitable for a programmatic client)
The key conceptual component of this project is to map the uniform REST verbs to the functionality described in the requirements. To some extent, we should do this part as a group in class and through the mailing list. The example from chapter 7 of the REST book should help as well.

Other Non-Functional Requirements

  • The project is managed using Maven.
  • Restlet is used to expose the given functionality in a resource-oriented form. Where appropriate, suitable representations should be included that make the functionality accessible through a web browser (XHTML). Otherwise, the functionality should be accessible through a suitable client also implemented in Restlet (JSON or XML).
  • There should be a comprehensive test suite involving direct and client-based testing (using the chosen data representation) of the available functionality.
  • Persistence is provided using Hibernate as in your web application starting point, or you may switch to db4o instead.
  • Dependencies should be managed using the Spring framework.


Please use the repository for your group for collaboration and notify me when your work is ready for me to review. No explicit submission will be required.

Project 3

Due Date: Wed 9 April (outline); Mon 21 April (presentation)

Group project


In this project, you will have the opportunity to investigate a topic of interest in the area of web services.

Given the remaining time of the semester and the length of each presentation, you are not expected to conduct an exhaustive study of your topic. The purpose of this project is for you to find and present some starting points for using a particular technology or discuss the utility of some general approach. Please consult with me if you have any questions.


This project consists of the following deliverables:
  • Brief outline of your presentation due on 9 April.
  • Brief (15-20 minutes) in-class presentation of your findings (followed by up to 5 minutes of questions) on 21 April or before.
  • Accompanying materials, such as electronic copies of your visual presentation, code examples, etc.

Possible topics

Here are some possible topics:
You are welcome to choose other relevant topics pending my approval.


Please refer to the online submission procedure. Each team is to make exactly one submission. Any written materials should be submitted either in PDF format or through Google Docs.