Web Services Server Evaluation/Implementation Report

Proposed Implementation

We will create a Subversion repository containing an initial working development enviornment for Tomcat+Hibernate+HSQLDB with example code. This will include base configuration for the software, some primitive start/stop and build scripts (using Ant) and sufficient documentation to play with the example code. We will use the standard DICE Subversion Service to host this repository so that read access to anyone with a DICE account and valid credentials will be possible.

Each student group will be provided with a shared group directory area and each student in a group will be added onto the necessary roles to give them access to their area. The group directory areas should have a reasonable quota applied. Additional areas will also be provided for the lecturer/TA solely for course testing purposes. We will use the standard DICE NFS Fileservice, Roles/Capabilities and Quota services to manage the shared group directory areas.

We will provide a single server with access to all the shared group directories. Each group will be able to run their own web container (on separate ports) out of their shared group directory on that server on a more long-term basis for external evaluation (as well as development if desired). This server will be configured as a basic DICE server using the standard DICE LCFG service. It is not intended that it be visible outside of Informatics.

At the start of the course each student group will export a copy of the working environment repository into their group area and work together on the course practical from within that area.

There are however various other ways for the students to work as a group and no particular working practice is prescribed here other than that the web service in the shared group area running on the provided server will be what is evaluated at the end of the course. For example, they may choose to all do work on different parts of the practical within the same group directory area (coordinating testing or independently testing on random lab machines) or they may choose to each work separately (for example by exporting the working environment repository into their own home directories and testing on the provided server or on random lab machines) and having regular meetings to tie work together into the shared group directory. Some might use an IDE such as Eclipse or Netbeans to develop code completely independently of the other students in the group and the provided working environment and then have regular meetings to make sure submitted code all works together when run on the official server and working environment.

This implementation proposal is essentially now an extension of the existing mechanisms used for teaching this course with the addition of shared group directories and a server for student groups to run web services on. The use of a single shared web container and the Tomcat manager API was ruled out on the basis of insufficient reliability and compartmentalisation for student practical work.

Project Stage 7 Milestones

  1. Finish developing prototype working environment. Essentially done now and working nicely so far including example code.
  2. Setup the working environment in Subversion.
  3. Setup the shared group directories and check that the working environment works from Subversion.
  4. Add documentation.
  5. Evaluate using Tomcat DBCP for the database connections (and for Hibernate) and switch to that if possible.
  6. Provide a server.
  7. Add bootstrap/initialisation/course documentation.

-- TimColles - 02 Aug 2006


There are no quotas on shared group areas.

  • Oh well - any reason why not?
    • Simply because it was a harder problem to solve, and not thought worth the effort.

For my own info, can I just check a few points.

  • The subversion repository is only used (by the students) as a source of the initial development environment.
    • Yes, that is correct.
  • The server will NFS mount these shared areas.
    • Yes, that is correct.
  • The students will then ssh to this server and run their "tomcat_start" script to run tomcat on an arbitrary port. How will port clashes be resolved, or ports allocated?
    • Each student group will be given a port to use. They would of course be able to configure any port - so in principle they could use someone elses port, such behavior would be discouraged.
  • The "tomcat_start" script will run as the person who executed the command, so any potential exploits would be limited to whatever access that user has.
    • Yes, that is correct.

-- NeilBrown - 03 Aug 2006 -- TimColles - 03 Aug 2006


Submitting text in the box above will add comments above the text box.

Topic revision: r4 - 07 Aug 2006 - 08:30:09 - NeilBrown
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback
This Wiki uses Cookies