52°North SPS v2.0 - Design Documentation
Design description
The 52°North SPS 2.0 reference implementation follows a loosely coupled design. The
API defines interfaces and central management logic to glue together every component implementing SPS interfaces.
An incoming service request is delegated to the
SensorPlanningService
interface. It is an interface aggregating operational capabilities of the configured SPS modules. Each incoming request is delegated to this interface from the
Webapp module which serves as frontend to the SPS and provides actual service bindings (plain old xml, SOAP, etc.). For now, plain old xml is supported only, but the design allows extending new service bindings with less efforts.
The
Core module provides implementations of the mandatory SPS interfaces provided by the
API, i.e. BasicSensorPlanner and SensorProvider. Each implementation makes use of an
SpsOperator
which provides access to the SPS framework. The SPS is designed modular and can be extended by further modules to enable functionality (e.g. cancelling or updating tasks). Because of the loosely coupled and dynamic design, a running SPS does not have to be recompiled if new modules are available. Declaration of available modules within the SPS configuration is sufficient.
52°North SPS 2.0 reference implementation provides central sensor and corresponding task management. It is designed to keep task and sensor instance management within the SPS framework so that sensor plugin developers can focus on implementing plugin logic.
Implementing a plugin for a concrete sensor type requires implementing the
SensorPlugin
and
SensorInterfaceFactory
interfaces. While the
SensorInterfaceFactory
implementation is only a mean for the
SensorInstanceProvider
to create sensor instances for a concrete (sensor) plugin type, the
SensorPlugin
class provides access to task storage management and the sensor's sensor configuration.