Thursday, 29 June 2017, 08:54:28

BOSS Online Submission System

BOSS Project

Latest Release


Technical Information about BOSS


BOSS is constructed in a three-layer architecture:

Diagram of the BOSS architecture

The top layer consists of the user interfaces, the Submission interface used by students, the Marking interface used by staff, and the Testing interface. These communicate with three servers, which in turn have access to data, both as files (such as work submitted by students) and database tables (such as marks).

The Submission and Marking clients are implemented as bootstrap programs which download the actual programs from the servers, and execute them. Communication between the interfaces and the servers is using RMI across a TCP/IP network.

The Testing interface is a daemon running under a separate userid (preferably on a separate machine with only local filestore). Its purpose is to run automatic tests in as safe an environment as possible, to minimise the risks of such a test damaging data, BOSS, or the host system.


The first two servers are used to communicate with the Submission and Marking interfaces. Each provides the Java classes and methods needed by the interfaces, and no more. Internally the servers share code.


BOSS is written completely in Java, and conforms to the 100% Pura Java™ standard. The classes are intended to provide a clear and consistent model of the data being accessed, and it is the intention of the authors to follow best practice in designing and coding the relevant classes. The clients are either Java applications or JSP web applications, due to the security implications of applets.

Data Store

The data consists of two separate stores.

  1. Directories containing files, which include:
    • files submitted by students (archived in the ZIP format), and
    • files used to specify input and output for the automatic tests.
  2. An SQL relational database, currently PostgreSQL, consisting of two logically distinct sets of tables:
    • student data (names, IDs, registrations) provided by the Institution, and
    • data managed by BOSS (marks, feedback, deadlines).

The decision to use ZIP was the availability of software, including Java classes, which support it. MySQL was the original database choice for the software, and is now being tested with BOSS again because of new support for referential integrity and its speed when compared to PostGreSQL.


Access to BOSS is guarded by a password database separate from any other system password mechanism. Initial access to the system is by means of a randomised password mailed to the person's default email address (as known to the institution). Communications between clients and servers are armoured with SSL.