Eclipse Kapua™ es una plataforma de integración modular diseñada específicamente para dispositivos IoT y sensores inteligentes. Su objetivo principal es establecer un puente entre la Tecnología de Operación (OT) y la Tecnología de la Información (IT).
La conectividad de los dispositivos en Eclipse Kapua™ se gestiona a través de un agente de mensajes multiprotocolo. En la contribución inicial, el protocolo para la conectividad de los dispositivos será el protocolo IoT MQTT. Sin embargo, el agente también admite otros protocolos, como AMQP y WebSockets, para la integración de aplicaciones. El módulo de conectividad de dispositivos se encarga de autenticar las conexiones, aplicar la autorización adecuada, por ejemplo, en el espacio de nombres de temas, y mantener un registro de dispositivos. Este registro almacena el perfil del dispositivo, el estado de la conexión y el registro de conexión del dispositivo. Además, permite la organización de dispositivos a través de atributos y etiquetas personalizados.
El componente de enrutamiento de mensajes permite manejar de manera flexible las corrientes de datos publicados por los dispositivos. Algunos mensajes, como los de comando y control, están destinados a ser consumidos por el componente de gestión de dispositivos; otros mensajes, como los datos de telemetría, están destinados a ser archivados en la plataforma IoT o redirigidos a otros sistemas. El componente de enrutamiento de mensajes permite evitar comportamientos codificados de forma rígida a través de rutas de mensajes configurables.
A través del componente de gestión de dispositivos, la plataforma IoT puede realizar operaciones remotas en los dispositivos conectados. La plataforma IoT expone un contrato abierto hacia los dispositivos gestionados sin suponer nada sobre la pila de software del dispositivo. En la contribución inicial, el contrato de gestión de dispositivos se basa en un protocolo de aplicación abierto sobre MQTT, que ya está implementado por el proyecto Eclipse Kura. Con este protocolo, la plataforma IoT puede realizar diversas operaciones, como inspeccionar y gestionar la configuración del dispositivo, gestionar los servicios del dispositivo, incluyendo el inicio y la detención de servicios, gestionar las aplicaciones del dispositivo, incluyendo la instalación, actualización y eliminación de aplicaciones, ejecutar comandos del sistema operativo remoto en el dispositivo, obtener y establecer atributos y recursos del dispositivo, y proporcionar la configuración inicial de los dispositivos. En su evolución y en futuras contribuciones de la comunidad, Eclipse Kapua puede adoptar protocolos de gestión de dispositivos adicionales, como el estándar emergente LWM2M.
Eclipse Kapua puede archivar los datos de telemetría enviados por los dispositivos en un almacenamiento persistente para su recuperación por las aplicaciones. Se define una carga útil de mensaje de referencia que permite un sello de tiempo, una posición geo, encabezados de mensaje fuertemente tipados y un cuerpo de mensaje opaco. La codificación elegida se basa en una gramática abierta de Google Protocol Buffers. En la contribución inicial, se utiliza un almacenamiento de datos NoSQL para permitir un índice flexible de los mensajes de telemetría. Los mensajes entrantes se almacenan e indexan por sello de tiempo, tema y activo de origen. El almacenamiento NoSQL también permite el índice de los encabezados de los mensajes. Además, la gestión de datos también mantiene un registro de datos que mantiene los temas y las métricas que recibieron tráfico entrante.
Una capa fundamental mantiene los aspectos de seguridad de la plataforma IoT, como la gestión de inquilinos, cuentas y usuarios. El modelo de cuenta soporta una estructura de control de acceso jerárquico. Siguiendo el Control de Acceso Basado en Roles (RBAC), se pueden definir identidades de usuario y asociarlas con uno o más permisos, garantizando el principio de "mínimo privilegio". Los dispositivos se conectan a la plataforma utilizando las credenciales de una de estas identidades de usuario o a través de autenticación SSL.
Para la integración con aplicaciones existentes, Eclipse Kapua ofrece modernas API de servicios web basadas en la Transferencia de Estado Representacional (REST). La API REST expone toda la funcionalidad de la plataforma, incluyendo la gestión de dispositivos y la gestión de datos. La API REST también ofrece un "puente" al agente de mensajes MQTT, permitiendo el enrutamiento de comandos desde aplicaciones a dispositivos sin una conexión específica al agente de mensajes. Se incluyen tecnologías como REST/Comet/WebSockets, lo que permite la visualización en tiempo real de los datos publicados por los dispositivos en páginas web y paneles móviles.
Eclipse Kapua cuenta con una consola de administración basada en web para realizar todas las operaciones de gestión de dispositivos y datos.