Location Service Technical Description
The Location Service is used to register and find CSW services in the local network. A service can be an Akka actor (including CSW components, such as assemblies and HCDs), an HTTP server or a server running on some TCP host and port.
For information on using the Location Service, see these sections:
Location Service Implementation
The core feature of the Location Service is an Akka cluster that uses Conflict Free Replicated Datasets (CRDTs) to share location information in the network.
See here for some background on how the choice was made to use an Akka cluster with CRDTs.
When a CSW component or service starts up, it registers with the Location Service by posting a message to an HTTP API that talks to one of the actors in the cluster - typically one running on the local host. The location information is shared in the cluster and clients anywhere in the network can use the HTTP API to locate the service.
The implementation of the Location Service is split into four subprojects:
- csw-location-server - the main implementation, including the cluster actor and HTTP server
- csw-location-client - a wrapper for the HTTP API, used by clients
- csw-location-api - common API implemented by the csw-location-server and csw-location-client
- csw-location-agent - an application used to register non-csw services