The relationship between components of Historical Datastore (HDS) is illustrated in the diagram below:
The core component is a client setting up Historical Datastore and its APIs. The configuration is obtained from the Configuration Loader and is used to initialize required APIs, the OAuth Client, and to register the service in one or more Service Catalog. This component also takes care of the graceful shutdown of all components and service de-registration.
Registry is a set of components allowing registration and retrieval of data source information. The information includes meta data about a sensor as well as the configuration and means to access the historical data of that sensor. The API exposes RESTful endpoints to interface with an underlying storage backend. The storage backend can be any storage system providing the required interface to the API component. Data Storage and Aggregation Storage components will be notified of any changes to data sources in order to take necessary actions (e.g. creating database tables).
Data provides an interface to store and access historical data. The API exposes endpoints to store and retrieve raw data points. The default API is RESTful, supporting SenML media type. The API and media types are extensible. The storage backend can be any scalable storage system providing the required interface. The storage keeps data for a specific period of time set during the data source registration. It also receives and handles notifications from the Registry API about changes to data sources and performs necessary actions to accept incoming data points from every source. Aggregation Storage will be notified of any successful data point submission to the Data API. This type of notification does not apply to storage backends that support built-in automated aggregation.
This component is currently removed from the datastore
This component requires a JSON file containing configuration of Historical Datastore and its APIs. Upon startup, the component loads the configuration object and provides an interface for structured retrieval of the attributes.
This component exchanges user credentials with an Authentication Server for access ticket to a Service Catalog. The client also takes care of ticket renewals and invalidation upon service updates and de-registration respectively.