Já está disponível a nova versão Sofia2 IoT Platform 4.0

Já está disponível a versão 4.0 de Sofia2 IoT Platform (f. FEEP IoT&Big Data Platform Sofia2). Esta versão também foi disponibilizada na Plataforma Experimental Sofia2 CloudLab.

Ver versões

Esta versão inclui numerosas novidades e melhorias, nomeadamente:

Seguir leyendo “Já está disponível a nova versão Sofia2 IoT Platform 4.0”

Já está disponível a nova versão Sofia2 IoT Platform 4.0

PUBLICADA FEEP IoT & Big Data Platform Sofia2 3.4

Ya está disponible la release 3.4 de FEEP IoT&Big Data PlatformSofia2 (también conocida como Sofia2 IoT Platform).
Esta release se ha disponibilizado en la Plataforma de Experimentación Sofia2 CloudLab
(FEEP IoT & Big Data Platform Sofia2 forma parte de la FEEP Enablement Platform de Minsait)

Esta release incluye numerosas novedades y mejoras, entre ellas:

 

Spaces/Grupos

Representa un Entorno colaborativo donde el creador del Space/Proyecto puede añadir usuarios, crear diferentes perfiles (roles virtuales) y compartir con estos los elementos de la plataforma, desde ontologías, informes, dashboards, notebooks, pipelines,…además de poder subir una web HTML5 asociada. También es posible asignar un dominio al Proyecto, donde se podrá arrancar un Node-red.

proyectos1

Ahora asociado a cada sistema IoT vertical (riego, gestión de residuos) podré tener un proyecto donde gestionaré de forma unificada todos sus elementos.

Además, con el soporte multitenant estrenado en esta release, cada proyecto actúa como un tenant.

 

Soporte Node-RED como motor visual de flujos

La Plataforma permite ahora crear visualmente reglas y flujos a través de Node-RED, una herramienta para la edición visual de flujos y motor de ejecución de estos flujos.

node_red

Node-RED se ha convertido en un estándar para crear flujos IoT y ofrece un gran número de componentes para crear aplicaciones IoT de forma sencilla. Además hemos creado diversos componentes Node-RED  que permiten interactuar con la plataforma de forma sencilla  y el soporte para crear dashborads con esta herramienta:

Como con los motores de reglas y CEP estos flujos se pueden desencadenar ante un evento (instancia de ontología) o de forma planificada.

La integración de Node-RED se ha hecho con un enfoque multitenant, de modo que cada Space actúa como un Tenant, con una instancia para cada grupo, de modo que los flujos de un grupo no afecten al resto.

Los que probéis esta funcionalidad en el entorno de experimentación comprobaréis que la instancia Node-RED sólo permanece arrancada un tiempo de 10 minutos.

Podéis haceros una idea de su funcionamiento en este post: Demo Node-RED y Twitter

Dashboard Node-RED

Node-RED dispone de un nodo llamado “Freeboard” que permite construir dashboards a partir de un JSON. Basta con poner dicho nodo a continuación del nodo que nos de la información que queremos representar, se nos abrirá una consola de administración, donde podemos diseñar nuestro propio dashboard a partir del JSON.

Una vez terminado el dashboard, nos da la opción de guardarlo. Una vez guardado podemos acceder al dashboard de dos formas:

  •  Accediendo a la consola de administración del nodo Freeboard y cargando el fichero .json que nos generó al guardar el dashboard.
  • Copiando la URL que se genera al guardar el dashboard, con dicha URL se podrá acceder al dashboard desde cualquier navegador o dispositivo.

creacion-dashboard-node-red

 

Ampliación Protocolo SSAP con nuevos mensajes LOG, ERROR, STATUS y COMMAND

Se ha ampliado el protocolo SSAP con estos nuevos mensajes:

LOG y ERROR: permite que un dispositivo o sistema (ThinKP) pueda enviar mensajes de LOG y ERROR a la Plataforma de forma sencilla. Estos mensajes se almacenan en la plataforma y cada ThinKP podrá buscar y filtrar los  mensajes de LOG y ERROR conforme a diversos criterios.

STATUS: los clientes de la plataforma pueden ahora enviar el estado en el que se encuentran hacia la plataforma, que lo almacenará y permitirá ver el estado de cada uno de ellos.

COMMAND: este nuevo mensaje permite que el Broker de la Plataforma (SIB) pueda enviar comandos hacia uno o varios ThinKPs. Se ha comenzado por el comando STATUS que se encarga de solicitar el estado al ThinKP.

Estos nuevos mensajes se encuentran en el api java y se encuentran disponibles para invocación también a través del api rest

mensajes-ssap

 

 

UI Gestión Dispositivos integrada en Panel de Control

Asociado a los nuevos mensajes LOG,INFO, STATUS y COMMAND se han creado a unas nuevas pantallas que permiten ver y gestionar toda esta información de forma sencilla e integrada en la Consola Web de la plataforma.

ui-gestion-dispositivos

 

Wizard creación guiada de Aplicaciones Sofia2

Dentro de las continuas mejoras de usabilidad en la plataforma se ha creado un asistente que guía en todo el proceso de creación de un Sistema construido sobre Sofia2.

Este asistente nos permitirá seguir paso a paso la creación de proyecto, ontologías, dashboards, APIs,… hasta construir una aplicación completa.

wizard-creacion-aplicaciones

 

Visualización OpenData  

Aprovechando las capacidades semánticas de las ontologías y APIs Sofia2 se ha disponibilizado un visualizador OpenData que permite localizar información pública de la plataforma conforme a su categorización:

buscador-open-data

Y visualizar estos DataSets, además de poder valorarlos.

visualizacion

Podéis acceder a esta funcionalidad en esta url.

 

Sofia2 Bots Platform

Bajo la opción de menú ‘BOTS’ se ha disponibilizado una primera versión del soporte a la creación de Bots dentro de Sofia2.

bot1

Esta versión permite:

  • Crear Bases de Conocimiento: representan áreas específicas, como puede ser Turismo, Atención a Cliente, Saludos,… Las bases de conocimiento se pueden crear con diversas tecnologías (engines) como motores de scripting o motores NLP, en el entorno de experimentación se pueden crear bases sobre lenguaje Rivescript. Las bases de conocimiento pueden ser privadas (sólo para el usuario) o públicas.

base-de-conociemiento

  • Crear Bots: a cada Bot le podré asociar una o varias bases de conocimiento. Un Bot puede ser privado o público. El Bot es multicanal y soporta la interacción vía web, móvil, Twitter, Telegram, Slack,Facebook,… en el entorno de experimentación se disponibiliza como una URL de modo que pueda ser embebida en otros sistemas.

Aquí os mostramos un ejemplo de conversación:

conversacion

Este demostrador se ha creado con fines didácticos (probar diferentes opciones en el lenguaje de script), por lo que sus respuestas son limitadas.

 

MultiStore: Soporte Kudu

Sofia2 es multistore, o dicho de otra forma Sofia2 es una plataforma que independiza del repositorio de datos seleccionado, soportando diversas tecnologías de almacenamiento que se pueden configurar en función del caso de uso.

En esta release se ha incorporado el soporte a Apache Kudu, Kudu es una solución open-source creada por Cloudera que tiene como objetivo soportar carga de trabajo mixtas: real-time y analytics y para eso combina inserciones/actualizaciones rápida con un mecanismo eficiente de escaneado sobre una única capa de almacenamiento.

Con el uso de Kudu se diluye la diferencia entre BDTR y BDH, permitiendo el almacenamiento sobre una única capa de almacenamiento y simplificando la arquitectura de aplicacions mixtas.

A modo de ejemplo vamos a definir una ontología con los siguientes campos:

esquemajsonairpollutionkudu

Si mediante el crud de ontologías insertamos datos en esta ontología, desde la consola BDTR BDH podemos obtener los datos en dos formatos distintos: En formato tabla o en formato JSON. Ambos se muestran a continuación:

datostablaairpollutionkudu

datosjsonairpollutionkudu

 

Roles Virtuales y Usuario Extendido

Estos dos nuevos conceptos permiten que podamos delegar la autenticación y autorización de nuestras soluciones IoT sobre  los mecanismos ofrecidos por la plataforma.

El Rol Virtual se asocia a un Space/Proyecto y permite crear diferentes perfiles que luego podré gestionar desde mi Space. Por ejemplo si creo un sistema de gestión de residuos me puede interesar crear los roles de contratista, gerente, ciudadano, auditor…

roles2

Además ahora la plataforma permite configurar los atributos que se gestionan de un usuario, de modo que sin ninguna programación podré gestionar atributos adicionales a los que gestiona la plataforma, como su ubicación, categoría profesional, teléfono…

Un ejemplo de esta funcionalidad se puede ver en la siguiente imagen, en la que se han añadido los campos Empresa, Código del empleado, Fecha de ingreso y Motivo :

rol1

Si ahora nos logamos con este usuario creado, la plataforma nos dará los datos relacionados con este, entre los que figurarán los datos extendidos:

rol22

 

Despliegue multitenant

La Plataforma permite el despliegue y funcionamiento en modo multitenant, de esta forma sobre una misma instalación podré gestionar diversos tenants desde la propia consola (a través de un nuevo rol), los tenants no comparten recursos e incluso dentro de una misma instalación se puede configurar diferentes motores según el tenant (por ejemplo que un tenant use MongoDB como BDTR y otro use Kudu).

Cuando accedemos a la plataforma esta nos informará de que Tenant está usando, por defecto, si un usuario no pertenece a un tenant específico indicará que pertenece al tenant Default.

tenantdefault

El nuevo Rol, denominado Administrador de Infraestructura tendrá la capacidad de crear y gestionar todos los Tenant. Los administradores de la plataforma únicamente podrán administrar los tenant a los que pertenezcan.

tenants

Un Tenant consta de un Identificador, y una configuración de Base de datos de configuración y de Base de datos de tiempo real. Por último, la asignación de usuarios al tenant se realiza a nivel de Grupos, de forma que todos los usuarios que pertenecen a un grupo, pasarán a ser miembros del Tenant al que sea asignado el Grupo.

identificacion

Mejoras en los Dashboards

En esta release se han añadido numerosas mejoras visuales para la creación de dashboards más sofisticados.

Así de forma sencilla podré crear dashboards como este (pruébalo aquí)

dashboard_black

Las mejoras y novedades más importantes son:

  • Restyling del gadget Tabla
  • Nuevo Gadget multi: permite en un único gadget ver 1,2, 3 o 4 valores en forma de bar, línea, discrete, pie.
  • Gadget tipo Carrousel: permite mostrar diversas imágenes
  • Se permite la creación del gadgets desde el propio dashboard
  • Personalización de los colores del dashboard usando el Custom Style
  • Nuevas distribuciones del dashboard
  • Captura de pantalla

 

Exportación de Consultas de la BDH

A partir de esta nueva versión, se ofrece la posibilidad de descargar las consultas realizadas sobre la BDH desde la Consola BDTR y BDH en un fichero con formato XLS, XML y/o CSV

exportacion1

 

Nuevos tutoriales y webcasts 

 

Coincidiendo con la Release 3.4 de la plataforma Sofia2 y con el objetivo de simplificar la comprensión de las capacidades de la plataforma se han añadido nuevos y completos tutoriales y webcasts a los que podéis acceder desde este Blog o desde el canal Youtube de la plataforma.

 

PUBLICADA FEEP IoT & Big Data Platform Sofia2 3.4

FEEP IoT & Big Data Platform Sofia2 3.4 RELEASED

FEEP IoT&Big Data Platform Sofia2 (also known as Sofia2 IoT Platform) release 3.4 is now available.

 

This release is available on the experimentation platform Sofia2 CloudLab
(FEEP IoT & Big Data Platform Sofia2 is a building block of the FEEP Enablement Platform by Minsait)

 

The release includes several new features and improvements. These are the most relevant among them:

 

 

Spaces/Groups

 

It represents a collaborative environment where the Space creator can add users, create different profile (virtual roles) and share elements with these profiles (Ontologies, reports, dashboards, notebooks, pipelines …). The creator can also upload an associated HTML5 website. It is also possible to run a Node-red instance on a specific Space domain

 

create

 

From now on, it will be possible to have all project’s elements unified under the same project. This features helps one-on-one association between your IoT verticals (smart irrigation, smart waste management …) and your projects on the platform. In addition, thanks to the multi-tenant support released also today, each project is managed as a different tenant.

 

 

Node-RED support as a visual flow engine

 

The platform allows now for visual creation and edition of IoT flows through Node-RED. Node-RED is a widespread tool for visual flow edition and engine.

 

node_red

 

It has become a standard when creating IoT flows, partially thanks to the great amount of components to create IoT applications in a quick and easy way. Besides, we have developed several Node-RED components enabling easy communication with Sofia2 Platform. This release also gives the user the option of creating dashboards with Node-RED.

 

Node-RED flows can be triggered either by event (Ontology’s instance) or by scheduling, in the same fashion you can trigger now rules using Sofia2’s rules engine and CEP rules.

 

Node-RED integration in Sofia2 is compliant with the new multi-tenant focus. Thus, every Space acts a separated Tenant, meaning that there will be an instance for each group so the flows defined for these groups do not interfere with other flows.

 

When trying out this new feature on the experimentation environment, please keep in mind your Node-RED instance will be up & running for 10 minutes.

 

This post gives a deeper dive on how to use Node-RED in Sofia2: Demo Node-RED & Twitter.

 

 

Node-RED Dashboard

 

Node-RED suite includes a node called “Freeboard”. This node lets the user build dashboards directly from a JSON. Just place this node next to the node providing the values to represent, and then you will be prompted with an admin console where you will be able to design your own JSON-based dashboard.

 

Once you are done editing, you can save it and then you will have two different ways to view your dashboard:

 

  • By using the administration console from the Freeboard node and loading the JSON file generated upon saving.
  • By copying the URL generated upon dashboard saving. This URL may be accessed from any browser/device.

 

creacion-dashboard-node-red

 

 

SSAP Protocol extension with new messages LOG, ERROR, STATUS and COMMAND

 

The SSAP protocol has been extended with these new messages:

 

LOG and ERROR: These messages can now be sent to the platform from any device or system (ThinKP). Messages are stored in the platform and can be queried and filtered by their corresponding ThinKP using many different criteria.

 

STATUS: Platform’s clients may now report their statuses to Sofia2. Again, this messages will be stored and will serve as base to keep track of clients’ statuses.

 

COMMAND: This messages provides the platform’s broker (SIB) with a tool to send commands to one or many ThinKPs. First command availbale will be the STATUS command. This command polls the remote ThinKP for its status.

 

You may find these messages within the Java API, but they are also available through the api rest .

 

mensajes-ssap

 

 

Device Management UI integrated within the Control Panel

 

A new Device Management UI has been created and is now available on the Web Console. These new screens associate the new SSAP messages (LOG, INFO, STATUS and COMMAND), and integrate their content into valuable information for operation purposes.

 

ui-gestion-dispositivos

 

 

Sofia2 Applications Guided Creation Wizard

 
Within the continuous improvements of usability in the platform, has been created an assistant that guides in the whole process of creating a System built on Sofia2.

 

This wizard will allow us to follow step by step the project creation, ontologies, dashboards, APIs… until we can build a complete application.

 

wizard-creacion-aplicaciones

 

 

OpenData Display

 

Taking advantage of the semantic capabilities of Sofia2 ontologies and APIs, an OpenData viewer has been made available to allows us to find public information about the platform according to its categorization:

 

visor

 

You can view these DataSets, and in addition, you can rate them.

 

visualizacion

 

You can access this functionality in this url.  

 

 

Sofia2 Bots Platform

Under ‘BOTS’ option menu, a first version of Bots support creation within Sofia2 has been made available.

 

bots1

 

This version allows:

 

  • Create Knowledge Bases: They represent specific areas, such as Tourism, Customer Service, Greetings… Knowledge bases can be created with various technologies (engines) such as scripting engines or NLP engines. In the experiment environment you can create bases on Rivescript language. Knowledge bases can be private (user-only) or public.

 

base-de-conociemiento

 

  • Create Bots: To each Bot you can associate one or several knowledge bases. A Bot can be private or public. The Bot is multichannel and supports interaction via web, mobile, Twitter, Telegram, Slack, Facebook…An URL is available at experimental environment so it can be embedded in other systems.

Here is an example of conversation:

 

conversacion

 

This demonstrator has been created for didactic purposes (try different options in the scripting language), so your answers are limited.

 

 

MultiStore: Kudu Support

 

Sofia2 is multistore, or in other words, Sofia2 is a platform that is independent of the selected data repository, supporting various storage technologies that can be configured according to the use case.

 

In this release, support has been added to Apache Kudu, Kudu is an open-source solution created by Cloudera that aims to support mixed workloads: real-time and analytics, and for that it combines quick insertions/updates with an efficient scanning mechanism on a single layer of storage.

 

With the use of Kudu, the difference between RTDB and HDB is diluted, allowing storage on a single layer of storage and simplifying the architecture of mixed applications.
As an example we will define an ontology with the following fields:

 

esquemajsonairpollutionkudu

 

Through the ontology crud we insert data into this ontology, and from the RTDB & HDB console we can obtain the data in two different formats: table formato or JSON format.

 

Both are shown below:

 

datostablaairpollutionkudu

 

datosjsonairpollutionkudu

 

 

Virtual Roles and Extended User

 

These two new concepts allow us to delegate authentication and authorization of our IoT solutions on the mechanisms offered by the platform.

 

Virtual Role is associated with a Space/Project and allows you to create different profiles you can manage from “My Space”. For example if you create a waste management system, you may be interested in creating the contractor, manager, citizen, auditor role…

 

roles2

 

In addition, now the platform allows to configure attributes that are managed of a user, so that without any programming you will be able to manage additional  attributes to those managed by the platform, such as their location, professional category, telephone…

 

An example of this functionality can be seen in the following image, in which the fields Company, Employee Code, Date of Entry and Reason have been added

 

rol

 

Now, If we log in with this created user, the platform will give us the data related to this one, which will include the extended data:

 

rol22

 

 

Multitenant Deployment

 

The Platform allows the deployment and operation in multitenant mode. In this way, on a single installation, we can manage several tenants from the console itself (through a new role). Tenants don’t share resources, and even within a single installation, different engines can be configured according to the tenant (for example one tenant uses MongoDB as RTDB and another uses Kudu).

 

When we log in to the platform this will inform us wich Tenant is using. By default, if a user does not belong to a specific tenant it will indicate that it belongs to the Tenant Default.

 

tenantdefault

 

The new role, called Infrastructure Manager, will have the ability to create and manage all Tenant. Platform administrators can only manage the tenants to which they belong.

 

tenants

 

A Tenant consists of an Identifier, and a Configuration Database configuration and Real-time Database. Finally, the assignment of users to the tenant is done at the Group level, so that all users belonging to a group, will become members of the Tenant to which the Group is assigned.

 

identificacion

 

Improvements in Dashboards

 

Numerous visual enhancements have been added in this release to create more sophisticated dashboards.

 

So I can easily create dashboards like this (try it here)

 

dashboard_black

 

The most important improvements and innovations are:

 

  • Restyling the gadget Table
  • New Gadget multi: allows in a single gadget to see 1.2, 3 or 4 values in the form of bar, line, discrete, foot.
  • Carrousel type gadget: allows you to display various images
  • Creation of gadgets from the dashboard itself
  • Customizing dashboard colors using Custom Style
  • New dashboard distributions
  • Screenshot

 

 

Exporting queries from DBH

 

Now you can download your HDB queries from the RTDB & HDB Console to a XSL, XML or CSV file,

 

exportacion1

 

 

New workshops and webcasts available

 

In order to ease the learning curve on the platform’s capabilities, and together with the 3.4 release, new workshops and webcasts have been produced. You can get to this extensive material from either our Blog or our Youtube channel.

 

 

FEEP IoT & Big Data Platform Sofia2 3.4 RELEASED