BAPS3 Specification

Services

BAPS3 is comprised of multiple logical services. Each service is intended to be implemented as a separate server program, but may be merged (for reasons of performance, maintainability, and so on).

Core Services

There are six core services that define BAPS3’s minimal functionality:

Additional Services

Implementations of BAPS3 may define additional services. Examples of possible services not specified here include:

  • Additional frontends (for debugging purposes, for example);

  • Digitising and cataloguing services;

  • Installation, deployment and configuration services.

Core Functionality

All BAPS3 servers (consequently, all services) provide a minimum amount of functionality associated with the BAPS3 protocol. This includes the following request:

In addition, the following responses must be emitted by all services at start-up, in this order:

  • OHAI — Identifies the player implementation and welcomes the client;

  • FEATURES — The set of features implemented by the service;

  • STATE — The current service state (also emitted on state change).

All services will respond to a client request with one of the following responses:

  • OK — A client request was successfully honoured;

  • WHAT — A client request was not understood;

  • FAIL — An error has occurred.

Chapter Structure

We begin this chapter by discussing the rationale for dividing the BAPS3 system into a comparatively large number of small services.

Next, each core service is detailed in turn. The services are defined in terms of:

  • Their remits;

  • Their interfaces with other services (in brief; a more detailed specification follows in the next chapter);

  • Their implementation requirements;

  • Comparisons with existing software.