LoRaServer (ChirpStack) vs The Things Stack (TTS)
Redes LoRaWAN privadas y públicas
Mucha gente, especialmente en el mundo maker, cuando empieza a trabajar con las tecnologías LoRa y LoRaWAN comienza utilizando redes públicas como The Things Network (TTN) dado que resulta muy sencillo empezar a implementar nodos y soluciones que se conecten a los gateways que ya existan de la comunidad. Cómo todo, esto tiene sus ventajas; pero también sus inconvenientes. Ambos son proyectos de código abierto y permiten implementar redes LPWAN para todo tipo de aplicaciones pero con este artículo intentaremos dilucidar cuando es mejor utilizar uno u otro servicio.
Cuando se quiere implementar soluciones escalables y de grado empresarial se requieren soluciones como puede ser LoRaServer, recientemente (nov 2019) renombrado como ChirpStack, un servidor LoRaWAN de código abierto, que proporciona los componentes para crear redes LPWAN basadas en LoRaWAN, con una interfaz web fácil de usar y APIs gRPC y REST lo que permite desplegar redes LPWAN públicas o privadas para aplicaciones finales en las que necesitamos un control total de la red.
The Things Networks desde hace menos tiempo también cuenta con una versión descargable que permite implementar nuestra propia red LPWAN de forma local, esta escrito en Go, LoRaWAN Stack , es un proyecto muy completo pero en mi opinión todavía no tiene la potencia y funcionalidad de LoRaServer.
Comparando LoRaServer y TTS
Para comparar ambos servicios vamos a describir primero cómo funciona cada uno de ellos:
La arquitectura de LoRaServer
La arquitectura de LoRaServer es similar a la arquitectura de TTN, está basada en gateways y servidores que interconectan los nodos LoRaWAN con nuestras aplicaciones; pero en LoRaServer hay varios servicios que pueden o no estar en un mismo servidor y que se detallan en el siguiente diagrama:
Los principales elementos de esta arquitectura son:
- LoRa Gateway Bridge:
- LoRa Server
- LoRa App Server
- LoRa Geo Server
- LoRa Gateway OS
LoRa Gateway Bridge
LoRa Gateway Bridge es un servicio que convierte los protocolos de reenvío de paquetes LoRa en un protocolo común de servidor LoRa (JSON y Protobuf). Este proyecto es parte del proyecto LoRa Server.
LoRa Server
LoRa Server es el servidor de red LoRaWAN propiamente dicho, y es la parte principal del proyecto LoRa Server. La responsabilidad del componente servidor de red es la desduplicación y el manejo de las tramas de enlace ascendente recibidas recibidas por las puertas de enlace o gateways, el tratamiento de la capa de mac LoRaWAN y la programación de transmisiones de datos de enlace descendente.
LoRa App Server
LoRa App Server es un servidor de aplicaciones LoRaWAN.. Es responsable de la parte del "inventario" de dispositivos de una infraestructura LoRaWAN, del control de las solicitudes de unión y el tratamiento y cifrado de las cargas útiles de las aplicaciones. Ofrece una interfaz web donde se pueden administrar usuarios, organizaciones, aplicaciones y dispositivos. Para la integración con servicios externos, ofrece un API RESTful y también gRPC.
LoRa Geo Server
LoRa Geo Server es un servidor de geolocalización. Se puede usar para resolver la ubicación de dispositivos basados en metadatos TDoA (diferencia de tiempo de llegada) proporcionados por los gateways LoRaWAN.
y por último está también
LoRa Gateway OS
- LoRa Gateway OS es un sistema operativo integrado de código abierto basado en Linux que puede ejecutarse en varios modelos de puertas de enlace LoRa. El objetivo es facilitar el inicio de LoRaWAN y el proyecto LoRa Server con los pasos mínimos necesarios para configurar sus puertas de enlace.