Skip to content

Kamea concepts

You will find below the description of all major concepts of this IoT Solution. In preamble, you will find the major components of the global solution description.

Main components

Main components in Kamea

Kamea - Backend

The backend manages the entire IoT platform management features. It includes user management, device management, tenant management, data ingestion, and storage.

It is fully Web API oriented in order to allow full freedom for front-end development.

Kamea - Frontend

A front-end that allows a graphical management of all features of the Kamea solution.

Business Application

Custom applications are developed on top of the Kamea - backend to manage specific business needs. They integrate custom features and can use easily all the backend concepts and features.

For example:

  • the advanced user system can be used to manage users of the business application.
  • the ingested IoT data can be retrieved easily to be displayed and analyzed
  • ...

The system can integrate as many Business applications as needed.

Main concepts

This section provides a quick overview on the main concepts of the platform.

Tenant

A Tenant is a virtual regrouping used to separate the platform into smaller environments. Each Tenant contains its own Users, Devices, Folders, and more.

In our platform, Tenants could be considered as different companies or business units that need privacy from each other.

The system integrates a default Tenant which represents the platform owner.

User

A User is a virtual representation of a person that has access to this IoT ecosystem. It identifies a person in a unique way by its email address. It uses its email address and password to login into the system.

This is relevant for Users of the Kamea platform, as well as Users of the business applications. Some Users can have no Permissions on the main Kamea entities but some Permissions in business applications.

User group

A User Group is a collection of users inside a specific Tenant. It helps with managing the access control of several users at a time.

Permission

A Permission is an action that a user can perform in the platform: Read, Create, Update, Delete, Edit metadata, ...

It gets linked to an Entity Type. Entities can be anything that the platform manages: Tenants, Folders, Devices, Users, and so on.

For example:

  • Device.Create: allows a user to create a device
  • User.Delete: allows a user to delete a user

Role

A Role is a set of Permissions, where each Permission is linked to an Entity Type. It is used to simplify the access control management.

A role can be assigned to a User Group.

Authentication

Authentication is the process of proving an entity's identity to the platform, used for instance by users to login with their credentials. Entities can be:

  • Users: Used for a physical person
  • Service accounts: Used for technical purposes, like a background task

The platform uses OAuth 2.0 standard for Authentication.

Device

A Device is a virtual representation of a physical or virtual device. It is identified in a unique way in the platform.

Devices use a secure bidirectional channel to communicate with the platform. They can communicate with two types of data:

  • Telemetry data: Represent Device sensor data
  • Configuration data: Represent bidirectional payloads used to send and retrieve various information

Each Device has a unique Device Type. A Device is part of only one Tenant.

Device Type

A Device Type is a virtual representation of a device model. This Device Type integrates a name, a description and the specific decoding feature for the device model. The specific decoding function is called a Codec

There are some generic Device Types to start using the platform easily.

For example:

  • 'Azure IoTHub JSON' Device Type allows to ingest all JSON data coming from an Azure IoTHub device
  • 'HTTP JSON' Device Type allows to ingest all JSON payloads coming from a HTTP request with a dedicated authentication system.

These generic Device Types store all incoming data with the same associated 'key' name.

Codec

A Codec is a library that allows payload decoding. This is essential in the heterogeneous devices support.

Interface

Devices communicate with the platform using different types of Interfaces. They can represent protocols like HTTP, MQTT, FTP, LoraWan, Sigfox, ...

The Interfaces are managed by the Device Type.

Data Ingestion

The action of integrating telemetry data coming from a Device

Data Storage

Data coming from Devices are stored in an InfluxDB database. This is a timeseries database in which the device telemetries are stored, isolated by Tenant.

Device Configuration

Device Configurations are a bidirectional communication method.

A User can provide a desired configuration for their Device, and the Device can report their current state.