Mejoras en Protocolo SSAP

Introducción

En este POST presentamos las mejoras incorporadas en el protocolo de interoperabilidad SSAP de Sofia2, las ventajas que ofrece y cómo comenzar a utilizarlo. También vamos a ver cómo Sofia2 mantiene la retrocompatibilidad con la versión anterior de SSAP, de forma que los clientes actuales de Sofia2 pueden mantener sus desarrollos sin necesidad de modificación.

Las principales novedades del protocolo SSAP son las siguientes:

  1. Mejora en navegabilidad JSON. Gracias al cambio en el tipo de datos de algunos atributos del Schema JOSN se produce una mejora en la usabilidad y la navegabilidad de los mensajes y su integración con cualquier librería JSON de cualquier lenguaje de programación.
  2. Inclusión del campo version: Identifica la versión del protocolo con la que se está trabajando. También sirve para indicarle a Sofia2 la versión de protocolo con la que se desea trabajar. Las versiones disponibles son
    1. LEGACY: Implementación SSAP hasta ahora.
    2. ONE: Nueva implementación de protocolo.
  3. Inclusión del campo @type: Identifica el tipo de operación ubicada en el cuerpo del mensaje body

Descripción del protocolo

En este post (link a post) presentamos el protocolo de interoperabilidad SSAP de Sofia2 con el siguiente formato:

Formato LEGACY

{
“body”: “”,
“messageId”: “”,
“sessionKey”: “”,
“ontology”: “”,
“direction”: “REQUEST”,
“messageType”: “QUERY”
}

En la nueva versión el formato queda de la siguiente manera (en azul marcamos las diferencias):

Formato ONE (Nuevo)

{
“body”: {
      “@type”: “”,
      “data”: {},
      “version”: “[LEGACY|ONE]”
},
“messageId”: “”,
“sessionKey”: “”,
“ontology”: “”,
“direction”: “[REQUEST|RESPONSE|ERROR]”,
“messageType”: “”,
“version”: “[LEGACY|ONE]”
}

Campo body

Como se puede observar la mayor diferencia se encuentra en el campo body que pasa de ser una cadena String de datos a ser un objeto JSON. De la misma manera el campo data dentro de body se añade al esquema JSON. Gracias a esta conversión al serializar un String SSAP con cualquier librería JSON de cualquier lenguaje de programación es posible navegar a través del schema de la siguiente manera ssap_message->body->data.attribute1->subattribute1. En la versión anterior esta navegación no era nativa aunque si era posible implementarla realizando varias serializaciones, por lo que la nueva versión representa una mejora en la facilidad de uso y de rendimiento de operaciones con cadenas.

Campo data

Como se adelanta en la sección anterior en esta nueva versión se introduce el campo data dentro del Schema JSON. Esto es posible gracias al cambio de tipo de dato del campo body. En la versión anterior el campo data estaba implícito dentro del String body. Este cambio contribuye a mejora en navegabilidad JSON comentada en el punto anterior.

Campo versión

En el campo version se especifica la versión de protocolo SSAP con el que se está trabajando en la comunicación.

En las peticiones realizadas a Sofia2 si no se especifica la versión o no se incluye el campo se interpreta como versión LEGACY (anterior), de esta forma se mantiene la compatibilidad con las aplicaciones clientes ya existentes.

Existen dos formas de trabajar con la versión ONE de SSAP:

  1. Incluyendo en todas la peticiones a Sofia2 el campo versión con valor ONE
  2. Al realizar una una operación de JOIN contra Sofia2 con version = ONE Sofia2 devuelve un SessionKey al cliente. Todas las peticiones realizadas con esa SessionKey se consideran versión ONE aunque el campo no venga informado en el mensaje.

Campo @type

Para facilitar la interpretación de los mensajes devueltos por Sofia2 se ha añadido el campo @type en el que se identifica cómo es el cuerpo del mensaje ubicado en el campo body.

Todas las respuestas (response) de Sofia2 vienen con el @type informado. En cambio a la hora de realizar peticiones (request) a Sofia2, este campo es opcional ya que Sofia2 tiene un motor de inferencia de tipos en función del mensaje que recibe. Desde sofia2 recomendamos la utilización de este campo también en las peticiones

Los tipos de mensajes disponibles actualmente son:

  • SSAPBodyCommandMessage
  • SSAPBodyConfigMessage
  • SSAPBodyErrorMessage
  • SSAPBodyJoinMessage
  • SSAPBodyJoinTokenMessage
  • SSAPBodyJoinUserAndPasswordMessage
  • SSAPBodyLeaveMessage
  • SSAPBodyLocationMessage
  • SSAPBodyLogMessage
  • SSAPBodyOperationMessage
  • SSAPBodyQueryMessage
  • SSAPBodyQueryWithParamMessage
  • SSAPBodyQueryMessageQuasar
  • SSAPBodyReturnMessage
  • SSAPBodyStatusMessage
  • SSAPBodySubscribeCommandMessage
  • SSAPBodySubscribeMessage
  • SSAPBodyUnsubscribeMessage
  • SSAPBodyEmptyMessage
  • SSAPBodyBulkMessage

Prueba la nueva versión

API Rest de sofia2

Accede al playground del Api Rest mediante la url http://sofia2.com/sib/, si todavía no conoces la funcionalidad puedes verla en detalle en el siguiente post conociendo el API RESTful de SOFIA 2

Una vez dentro la única diferencia es que en la petición inicial de JOIN se debe informar el campo VERSION de la siguiente manera

{“join”: true,”instanceKP”: “:”,”token”: “”, “version”:”ONE”}

Como token e instancia de kp se pueden utilizar las credenciales SOFIA 2 demo (son las mismas credenciales usadas en los test y demo del API java)

  • test.officials.token=49622ff059364fcea6ce78e8b0fa8b4b
  • test.officials.kp=KP_APITesting
  • test.officials.kp_instance=KP_APITesting:KPTestTemperatura01

 API Manager

La funcionalidad de API Manager ha sido actualizada de manera que todas las peticiones son compatibles con versión ONE de protocolo SSAP. Como recordatorio adjuntamos Link con las capacidades del Api Manager https://about.sofia2.com/2014/11/17/api-rest-api-manager/

 API JAVA

Descargar el API JAVA de git y ejecutar los ejemplos o los tests. En el código de los tests se puede consultar la forma de uso del API. Puedes iniciarte en el uso del API JAVA siguiendo el siguiente POST Guía ejecución cliente Java.

Mejoras en Protocolo SSAP

2 comentarios en “Mejoras en Protocolo SSAP

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