BOSS is constructed in a three-layer 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.
The data consists of two separate stores.
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.