Preguntas que debe hacer antes de elegir su backend:
1. ¿Qué factores de escala se tienen en cuenta: la cantidad de dispositivos que se conectan a su backend, el tipo de comunicación, unidireccional o bidireccional y su frecuencia, cantidad de datos (bytes) por segundo, etc.?
2. ¿Qué protocolos de conectividad le gustaría admitir: HTTP / REST, MQTT, WebSockets?
- ¿Cuál es la cosa más loca e increíble que un IITian ha hecho?
- ¿Qué es un mapa del sitio y cómo hago uno?
- ¿Qué hace que un buen sitio porno gratuito (sitio de tubo)?
- ¿Qué herramienta de prueba debo usar para los proyectos de Django?
- Cómo mantenerse a la vanguardia en el mundo del desarrollo front-end
3. ¿Cuánto tiempo tiene que tener acceso a sus datos antes de que pueda pasarlos a almacenamiento en frío o eliminarlos por dispositivo?
4. ¿Tendría una interfaz de usuario o una aplicación orientada al consumidor? ¿Sería solo basada en la web o en un teléfono inteligente / tableta o ambas?
5. Mientras crea una aplicación de IoT, ¿necesita interactuar con algo más? Como un sistema de facturación o integración con otra API de nube o su aplicación requiere considerables requisitos de recursos informáticos (y en caso afirmativo, ¿sería en la nube o en la aplicación orientada al consumidor), etc.
6. ¿Cuáles son los mecanismos de seguridad / autenticación que desea admitir?
Todo lo anterior, y algunos más afectarían las tecnologías que elegiría para su backend.
Hablando genéricamente
1. Tendrá que mirar un Marco de programación + el middleware asociado o las tecnologías basadas en la nube disponibles para ese marco. El marco del lenguaje de programación podría ser uno o una combinación de lo siguiente:
Node.js, Java, Python y Ruby
Si la mayor parte de su IO es HTTP / REST, entonces tendrá muchos middlewares disponibles, especialmente para Node.js (por ejemplo, Express) y Ruby (Rails).
Su lista no tiene Java, y Java sigue siendo una opción sólida para implementar un back-end.
Mis pensamientos:
Meteor es más un marco basado en aplicaciones web que puede no ser la mejor opción para IoT; en otras palabras, está optimizado para crear aplicaciones basadas en web y en una aplicación de IoT que puede o no ser cierta. Meteor, por supuesto, está basado en Node.js.
Python + Tornado: le brindará excelentes capacidades HTTP / REST.
Socket.IO es una tecnología de comunicación para casos de uso de transferencia de datos bidireccionales, originalmente creada para la comunicación en tiempo real del navegador web de igual a igual, pero ahora también se está adoptando para otras cosas. Debería elegir Socket.IO + Node.js si ciertamente va a hacer comunicaciones bidireccionales. Recuerde que la escalabilidad de HTTP / REST y Sockets es fundamentalmente diferente.
PubNub vuelve a ser una comunicación que le ofrece un tipo de comunicación de publicación / suscripción en tiempo real. Por supuesto, es un servicio comercial pagado. Luego, también debe buscar un servicio similar ofrecido por los gustos de Google o considerar rodar el suyo usando MQTT o AMPQ o RabbitMQ.