Conectividad
La comunicación se realiza utilizando tres protocolos:
- MQTT: un protocolo de conectividad machine-to-machine (M2M) muy liviano y de alta escalabilidad, bajo footprint de código y ancho de banda.
- SQL: en particular el protocolo de red de PostgreSql, ya que la base de datos se implementa con ese servidor.
- HTTP o HTTP: el protocolo HTTP o su variante con TLS para manejar Alta, Bajas y Modificaciones (ABM).
Los servicios marcados dentro de la Raspberry Pi / server pueden o no estar en conjunto en el mismo, dependiendo de la escalabilidad que se le pretenda dar al sistema.
Este esquema permite que:
- Todos los dispositivos puedan enviar datos al broker fácilmente (el protocolo MQTT se ha implementado en PICs de poca potencia).
- Todas las aplicaciones que consumen los datos puedan acceder a los mismos en tiempo real.
- Las aplicaciones móviles no necesitan disponer de base de datos, pueden requerirlos al datakeeper u otra aplicación afín.
Componentes
- Dn cada uno de los dispositivos MoSimPa.
- Broker MQTT servidor de mensajería MQTT. Actualmente utilizamos mosquitto.
- datakeeper es la aplicación que interfasea entre los dispositivos, los monitores y la base de datos. Su código fuente se encuentra en este repositorio.
- Monitor general es laplicación utilizada para monitoreo de los pacientes en forma masiva desde la Pi o alguna otra máquina con Linux. Su código fuente se encuentra en este repositorio.
- Base de datos guarda los datos de pacientes, ubicaciones, internaciones y valores históricos entre otros. Utilizamos PostgreSQL.
- Servidor web a futuro correrá la aplicación de Alta, Baja y Modificación (ABM) web.
- ABM aplicación de aplicación de Alta, Baja y Modificación. Actualmente desarrollada en C++ aquí, a futuro se reemplazará por una aplicación web. Su funcionalidad se especifica aquí.
- Tablets/celulares los mismos podrán acceder a los datos a través del monitor para Android.
Extras (para considerar a posteriori):
- Se puede hacer autenticación de dispositivos directamente desde el broker MQTT.
- Se pueden hacer conexiones encriptadas.
- Se pueden agregar tantas aplicaciones de monitoreo como sea deseado (en éste caso sin replicar el broker)
- Se puede realizar autenticación de usuarios.