Sentilo platform architecture
Sentilo is a data publication & subscription Java system based in Redis, which offers the following features:
- Restful API
- Web Application management.
- Agent for storing historical data in a relational database.
- Agent for notifying alerts.
This section describes the main concepts of Sentilo. Many of these concepts are discussed later deeply.
Sentilo allows customers to publish and retrieve information and to subscribe to system events. This module is a stand-alone Java process that uses Redis as a publish/subscribe mechanism.
The different types of information considered are:
Primary repository where the platform stores all the information received. It is configured to do periodic backups in the file system. It is also the Publish/Subscrive engine.
The client's communication with publish/subscription mechanism is made using the REST API provided by the platform.
Services offered by the API can be classified into five main groups:
- data: provides operations to publish, retrieve, delete data.
- order: provides operations to publish, retrieve, delete orders.
- alarm: provides operations to publish, retrieve, delete alarms.
- subscribe: provides operations to subscribe, retrieve and cancel subscriptions.
- catalog: provides operations to insert, update, query and delete catalog resources (sensors, components and alerts).
By default, the information is transmitted using JSON format.
Agents are Java processes that expand the core functionality of the platform through a Plug & Play system using the Redis publish and subscribe mechanism.
Sentilo currently provides two agents:
- Relational database agent: used to export historical data to a relational database.
- Alert agent: used for processing each data received by the platform and validate it with the business rules configured in the catalog.
- Activity Monitor Agent: used for upload the events to Elasticsearch.
- Historian Agent: used for upload the events to OpenTSDB.
The invocation of different REST API services is secured using an authentication token.
This token must be sent in every request as a header parameter of the HTTP request named IDENTITY_KEY.
This token is unique for each provider or client application, and is managed by the catalog application.
Permissions allow Sentilo to identify the requester and to ensure that who makes a request is authorized to do it.
Permissions are managed by the catalog web app and allow to configure read or write permissions to client application on third party resources (provider or client applications).
By default, every platform entity has read and write permissions on its own resources.
Sentilo provides two mechanisms for nofitying events:
- If the client is capable of having an opened socket, the platform will send a notification to this socket every time an event is triggered (push).
- If the client cannot have an opened socket, then it must be doing periodic requests (polling) to the platform to retrieve last events.
The Web Application Platform console allows to manage the following resources: providers, applications, components, sensors, sensors types, component types, alerts and users.
It also provides a public console for displaying components and sensors registered in the platform as well as the data that has been received.
Sentilo allows to manage sensor-level alerts, aimed to control the validity of the data received.
The set of conditional operators available are: >, >=, <, <=, =, any change, variation, frozen.
When the value received from a sensor doesn't met any of the conditions defined, the alert agent publishes an event (alarm) notifying it.
- Product Code: Sentilo Architecture
- Availability: In Stock
- Ex Tax: $0.00