Nueva versión API Manager

En la release 2.9 de Sofia2 se incluye la nueva versión del API Manager.

A partir de una ontología de Sofia2 se puede crear un API completa (con todos los métodos de inserción, actualización, consulta,..). Queda reflejado en los distintos interfaces de la aplicación:

La pantalla de invocación a las APIs quedaría:

Resumiendo, se incluyen las siguientes operaciones:

  • INSERT:

Operación con método HTTP POST sobre /sofia2.com/sib-api/api/{VERSION}/{API]/ enviando en el body de la petición una instancia de la ontología disponibilizada.

“Feed”: { “assetId”: “1”,

“assetType”: “CuadroElectrico”,

“assetSource”: “CuadroEntrada”,

“type”: “VIRTUAL”,

“timestamp”: {“$date”: “2014-05-19T13:57:39.342Z”}}

  • UPDATE:

Operación con método HTTP PUT sobre /sofia2.com/sib-api/api/{VERSION}/{API]/ enviando en el body de la petición un objeto con:

– ObjectId de la instancia a actualizar de la BTDR

– Nuevos datos de la instancia en el mismo formato descrito en el esquema de su ontología.

{“_id” : {“$oid” : “5388701fdef773767496e05d”} ,

“Feed”: {“assetId” : “2” ,

“assetType” : “CuadroElectrico” ,

“assetSource” : “CuadroEntrada” ,

“type” : “VIRTUAL” ,

“timestamp” : { “$date” : “2014-05-19T13:57:39.342Z”}}}

  • DELETE:

Operación con método HTTP DELETE sobre /sofia2.com/sib-api/api/{VERSION}/{API]/ enviando en el body de la petición un objeto con:

– ObjectId de la instancia a eliminar de la BTDR.

{“_id” :{ “$oid” : “5388701fdef773767496e05d”}}

  • QUERY:

Se implementan dos métodos:

– Operación con método HTTP GET sobre /sofia2.com/sib-api/api/{VERSION}/{API]/ enviando en el body de la petición un objeto con Id de la instancia a actualizar de la BTDR

– Operación con método HTTP GET sobre /sofia2.com/sib-api/api/{VERSION}/{API]/ enviando en el body de la petición un objeto con:

$targetdb: Base de datos sobre la que se realizará la consulta: BDTR o BDH

$filter: Consulta sql a realizar sobre la BBDD.

  • QUERY OPS:

Operación con método HTTP GET sobre /sofia2.com/sib-api/api/{VERSION}/{API]/ enviando en el body de la petición un objeto con:

$queryType:Tipo de consulta.

“SQLLIKE”

$query: Consulta SQL a realizar sobre la BBDD. Se incluyen INSERT, UPDATE y DELETE.

 

Nueva versión API Manager

Creando ontologias de manera sencilla con Wizard en Sofia2

Entre las funcionalidades introducidas en la release 2.9 de Sofia2 (https://about.sofia2.com/2014/06/28/sofia2-release-2-9-0-published/), se incluye un Wizard para el desarrollo de ontologías.

Como ya hemos hablado en otros posts, una ontología de Sofia2 consiste en un esquema definido en formato JSON Schema, donde se definen y estandarizan las propiedades, tipos de datos y restricciones de las entidades de información que producen y consultan los KPs en la plataforma.

Para facilitar el desarrollo de ontologías a usuarios no familiarizados con JSON Schema se ha introducido el Wizard de desarrollo de ontologías, que mediante un formulario, permite crear ontologías con los principales tipos de datos permitidos en JSON Schema.

Para crear una ontología desde el Wizard, acceder a la consola de administración en http://sofia2.com/console, elegir en el menú en la sección de Ontologías, la opción Crear Ontología con Wizard.

Esta opción ofrece al usuario una pantalla con el mismo formulario que la pantalla tradicional para crear ontologías, junto con el Wizard con el que se pueden declarar cada una de las propiedades que tendrá la ontología al generar su esquema Json

De este modo para crear una ontología hay que indicar en la página:

· Nombre de la ontología

· Si es activa o no

· Si es pública o no

· Establecer su configuración de paso a BDH

· Si es una ontología padre o no

· Descripción

Y generar el esquema añadiendo nuevas propiedades en la sección Nueva Propiedad Ontología:

Esta sección se trata de formulario donde se dan de alta todos los atributos de la ontología a crear incluyendo su tipo de datos e indicando si se trata de una propiedad requerida o no.

Una vez definida la propiedad, pulsando el botón Añadir, será incluida en la tabla de propiedades de la ontología.

Los tipos de datos disponibles para crear propiedades desde el Wizard son los básicos de JSON-Schema (string, number, integer, boolean, array), junto con los tipos timestamp y geometry, que permitirán a Sofia2 explotar las capacidades de la BDTR con estos tipos de datos sobre esta ontología.

Una vez definidos y añadidos todos los atributos, aparecerán en la tabla de propiedades, de la que podrán ser borrados en caso de que se detecte que alguno no debe formar parte de la ontología.

Finalmente, antes de generar el esquema de la ontología, es posible indicar si la ontología admite propiedades adicionales a las declaradas o no. Para ello se dispone de la combo Additional Properties.

En caso de no indicarse valor, o indicarse como false, la ontología no admitirá instancias de ontología con otras propiedades diferentes de las indicadas. En caso de informarse a true, si admitirá otras propiedades diferentes a las indicadas.

Una vez especificadas las propiedades y la restricción Additional Properties, es posible generar el esquema de la ontología pulsando el botón Generar ontología. Esto hará que en el editor de ontologías de la página aparezca el esquema JSON de la ontología con la definición de las propiedades indicadas.

Este esquema es editable, de manera que antes de crear la ontología en la plataforma, es posible editar a mano el esquema para por ejemplo añadir otros campos con otros tipos de datos.

Una vez que estemos conformes con el esquema, es posible crear la ontología pulsando el botón crear.

Una vez que estemos conformes con la ontología, lo siguiente es pulsar el botón Crear para dar de alta la ontología en Sofia2.

Creando ontologias de manera sencilla con Wizard en Sofia2

Información sobre mensajes procesados por la instancia SOFIA2 InCloud

A partir de la versión 2.9.0 de Sofia2 se ha incluido una funcionalidad para mostrar los mensajes procesados en tiempo real por la instancia SOFIA2 InCloud:

Esta funcionalidad muestra un ejemplo de uso de plugins de infraestructura en la plataforma. En este caso el funcionamiento es simple: se define un plugin que actúa sobre los mensajes que llegan al SIB, y se define un post-procesado de los mensajes recibidos. Siempre que la respuesta cumpla con las condiciones definidas(p. ej. que no sea un error) se incrementará el número de mensajes procesados almacenado en la BDTR.

Con las herramientas disponibles en Sofia2 hacer esto es tan sencillo como definir una clase que implemente SSAPMessagePluginAsync (en nuestro ejemplo queremos que la ejecución de nuestro plugin sea asíncrona) y definirla como bean de Spring. El post procesado de los mensajes se realizará en la implementación del método postProcess:

El recuento de mensajes procesados es un registro de la BDTR que se puede consultar a partir de un servicio REST expuesto para tal fin. A la hora de mostrar el contador, bastará una llamada ajax que consulte y actualice el contador periódicamente.

Información sobre mensajes procesados por la instancia SOFIA2 InCloud