En IoT , hay 2 API de comunicación:
- API de comunicación basadas en REST
- API de comunicación basadas en sockets web
El servicio web puede implementarse utilizando los principios REST o utilizando el protocolo Web Socket:
1. API de comunicación basada en REST :
la transferencia de estado representacional (REST) es un conjunto de principios arquitectónicos mediante los cuales puede diseñar servicios web y API web que se centren en los recursos de un sistema y cómo se abordan y transfieren los estados de los recursos. Las API REST siguen el modelo de comunicación de solicitud-respuesta. Las restricciones de la arquitectura REST se aplican a los componentes, conectores y elementos de datos dentro de un sistema hipermedia distribuido.
2. API de comunicación basadas en Web Socket :
las API de Web Socket permiten la comunicación bidireccional y dúplex completo entre clientes y servidores. Sigue el modelo de comunicación de pareja exclusiva. Esta API de comunicación no requiere que se configure una nueva conexión para cada mensaje que se envíe entre clientes y servidores. Una vez que se establece la conexión, los mensajes se pueden enviar y recibir continuamente sin ninguna interrupción. Las API de WebSocket son adecuadas para aplicaciones IoT con requisitos de baja latencia o alto rendimiento.
Diferencia entre la API Rest y la API Web Socket:
S. NO. | API REST | API DE SOCKET WEB |
---|---|---|
1. | Es un protocolo sin estado. No almacenará los datos. | Es un protocolo Stateful. Almacenará los datos. |
2. | Es unidireccional. Solo el servidor o el cliente se comunicarán. | Es bidireccional. Los mensajes pueden ser recibidos o enviados tanto por el servidor como por el cliente. |
3. | Es un modelo de solicitud-respuesta. | Es el modelo Full dúplex. |
4. | La solicitud HTTP contiene encabezados como sección de encabezado, sección de título. | Es adecuado para aplicaciones en tiempo real. No tiene gastos generales. |
5. | Se configurará una nueva conexión TCP para cada solicitud HTTP. | Solo conexión TCP única. |
6. | Escalado tanto horizontal como vertical (podemos añadir muchos recursos y número de usuarios tanto en horizontal como en vertical). | Solo escalado vertical (podemos agregar recursos solo verticalmente). |
7. | Depende de los métodos HTTP para recuperar los datos. | Depende de la dirección IP y el número de puerto para recuperar los datos |
8. | Es más lento que web socket en cuanto a la transmisión de mensajes. | web socket transmite mensajes muy rápido que REST API. |
9. | No necesita memoria ni buffers para almacenar los datos. | Requiere memoria y buffers para almacenar los datos. |