There are six core services that define BAPS3’s minimal functionality:
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.
All BAPS3 servers (consequently, all services) provide a minimum amount of functionality associated with the BAPS3 protocol. This includes the following request:
quit
— Quits the service (including any downstream services).
In addition, the following responses must be emitted by all services at start-up, in this order:
All services will respond to a client request with one of the following responses:
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.