Soporte para suscripciones REST

En la Release 2.21 de Sofia2, se ha añadido al Gateway REST la capacidad de registrar suscripciones a consultas y notificar los resultados de dichas suscripciones cuando se produzcan eventos que cumplan la condición indicada en la consulta.

Hasta ahora, la funcionalidad de suscripción estaba restringida a protocolos de transporte con estado (MQTT, TCP, Ajax-Push, Websockets…).

El nuevo Gateway REST de Sofia2 resuelve el problema de la notificación en REST mediante el registro por parte de la App Sofia2 cliente (KP) de un endpoint Http (Servicio Rest, Servlet…) donde Sofia2 debe enviar los mensajes de notificación con los resultados de la suscripción.

Para dar soporte a esta funcionalidad, se han añadido al API REST de Sofia2 dos nuevas operaciones:

· Subscribe: Para permitir registrar una suscripción a una query, asi como el endpoint de notificación

· Unsubscribe: para dar de baja una suscripción existente.

La documentación asociada a ambas operaciones, junto con un cliente para poderlas utilizar, se puede encontrar en la propia documentación web del API REST, en el CloudLab de sofia2.com, accediendo a http://sofia2.com/sib/ y consultando el API ApiRestful Sofia2:

Si extendemos la operación subscribe, vemos que los argumentos necesarios son los mismos que a través del protocolo SSAP, junto con el endpoint expuesto por la App cliente para recibir las notificaciones.

Asimismo, la operación unsubscribe recibe los mismos parámetros del protocolo SSAP: sessionkey e identificador de suscripción.

Las notificaciones de resultados desde el SIB de Sofia2 se realizan invocando mediante HTTP PUT a la url del endpoint registrado en la suscripción, enviando el mensaje SSAP de tipo INDICATION en formato application/json. Por lo que el servicio REST o Servlet que exponga la App Sofia2 cliente (KP), tiene que ser compatible con el método PUT y el content-type application/json.

Asimismo, hay que garantizar visibilidad del servicio REST de notificación al SIB de Sofia2. Por lo que los Apps cliente que utilicen la instancia de CloudLab (Despliegue en Cloud público) deberán indicar en la suscripción un endpoint con IP o nombre de máquina público, lo que en la mayoría de los casos necesitará de la correspondiente configuración NAT en el router o proxy a través del que acceden a internet, para de este modo indicar en la suscripción al SIB, la IP pública del router, que via NAT, se traducirá cuando se reciba una notificación, en una redirección a la IP privada de la máquina que expone el servicio de notificación.

Soporte para suscripciones REST

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s