Funcionalidad soporte multi-BDTR

image0141

En la Release 4.2 de Sofia2 IoT Platform se introdujo el concepto de multi-BDTR. Hasta ahora una instalación de Sofia2 sólo podía funcionar con una BDTR y con una BDH, es decir, si se usaba MongoDB como base de datos BDTR entonces todas las ontologías se almacenaban en esta base de datos.

En esta versión hemos añadido la capacidad de que en una misma instalación de Sofia2 se puedan gestionar diferentes BDTRs, de esta forma cuando creamos una ontología podemos seleccionar la base de datos sobre la que queremos que trabaje. Esta opción la podemos encontrar en Opciones Avanzadas > Seleccionar instancia BDTR en todas las pantallas de creación de ontología:

image0132

Esta funcionalidad nos permite tener tanto bases de datos relacionales como no relacionales en nuestra instancia de Sofia2. Para trabajar con bases de datos relacionales ,como puede ser un PostgreSQL se ha añadido una nueva funcionalidad que nos permite crear ontologías sobre este tipo de base de datos, a la cual podemos acceder desde el menú Ontologías > Crear Ontología > Crear Ontología en Base de Datos Relacional

image006

Lo que nos llevará al formulario para crear la ontología paso a paso, donde nuevamente en Opciones Avanzadas encontraremos el listado de BDTRs relacionales disponibles en la instancia de Sofia2:

post

La configuración de todas las BDTRs las realiza el administrados del sistema de la instancia de Sofia2, para ello se ha creado un nuevo rol SYS_ADMIN. Si accedemos a la instancia de Sofia2 con este rol podremos ver en un primer momento un listado de las BDTRs disponibles para la instancia:

post2

Si accedemos a Crear Instancia tenemos un formulario con todos los campos necesarios para configurar nuestras BDTRs:

post3

Cabe destacar que solo podemos tener una BDTR por defecto y que será en la cual se creen todas las ontologías si no seleccionamos ninguna BDTR en concreto en el apartado de Opciones Avanzadas de creación de ontologías.

Funcionalidad soporte multi-BDTR

Publicada Release 4.2 de Sofia2 IoT Platform

Ya está disponible la release 4.2 de Sofia2 IoT Platform (Minsait IoT Sofia2).

Esta release se ha disponibilizado en la Plataforma de Experimentación Sofia2 CloudLab.

Ver otras releases

Esta release incluye nuevos componentes y nuevas utilidades de apoyo al desarrollador de soluciones sobre la plataforma:

DESPLIEGUE DE APLICACIONES SPRING BOOT DESDE EL CONTROL PANEL

La Plataforma ahora permite desplegar aplicaciones Spring Boot simplemente subiéndolas a través del Control Panel, como se puede ver en la imagen:

Esta funcionalidad se ha implementado en KP-Container, de modo que ahora puede desplegar aplicaciones Python, Java y Spring Boot.

Además cuando esta aplicación Spring Boot actúa como un KP Sofia2 (es decir maneja ontologías) la plataforma es capaz de monitorizar por completo esta aplicación, a través de una instancia de Spring Boot Admin embebida en la plataforma.

NOTA: En el entorno de experimentación Sofia2 CloudLab sólo se permite al ROL ADMINISTRADOR desplegar aplicaciones Spring Boot. Pero en instancias dedicadas esta labor puede realizarla cualquier rol COLABORADOR.

SOPORTE MULTI-BDTR

El concepto de Ontología en la Plataforma consigue independizar la gestión de los datos del repositorio subyacente, de esta forma en Sofia2 puedo manejar una ontología de la misma forma aunque esta se almacene en la BDTR (por ejemplo en MongoDB o en un Postgresql) o bien en la BDH (Hadoop HIVE, Kudu, SAP HANA,…).

Hasta ahora una instalación Sofia2 sólo podía funcionar con una BDTR y con una BDH, es decir si usaba MongoDB como base de datos BDTR entonces todas las ontologías se almacenaban en esta base de datos. En esta versión añadimos la capacidad de que una misma instalación Sofia2 soporte diferentes BDTRs, de esta forma puedo seleccionar para cada ontología la base de datos sobre la que trabajará:

Con esto conseguimos que un mismo entorno Sofia2 pueda usar por ejemplo un HBase para almacenar datos de Logs, un MongoDB para datos IoT desde dispositivos Smart Home y un Postgresql para datos puros de gestión como clientes.

Se ha habilitado también una nueva opción de menú para guiar en la creación de ontologías desde una BD relacional:

EXPORTACIÓN E IMPORTACIÓN DE CONFIGURACIÓN Y DATOS DE LA PLATAFORMA

Esta utilidad ofrece un mecanismo para la importación y exportación de datos de configuración (usuarios, proyectos, ontologías, scripts,…) y de datos de negocio (instancias de ontologías).

De esta forma puedo de forma muy sencilla migrar una solución completa desde una instancia de desarrollo a una instancia de preproducción o producción.

Esta funcionalidad está accesible para cualquier rol COLABORADOR en la opción Herramientas > Exportar/Importar elementos

ESCRITORIOS SOFIA2

Los escritorios Sofia2 son aplicaciones Web que actúan como contenedores de otras aplicaciones web, que pueden ser proyectos web Sofia2, dashboards Sofia2 o aplicaciones externas. El escritorio gestiona la seguridad en el acceso a través de los usuarios de la plataforma.

Cualquier usuario COLABORADOR puede crear uno o más escritorios e ir añadiendo las aplicaciones que considere:

Dentro de un escritorio tenemos aplicaciones, que por defecto se abren como una pestaña:

Y widgets que se abren como un popup:

NUEVO ROL SYS_ADMIN

Hemos añadido un nuevo rol SYS_ADMIN que permite administrar una instalación de Sofia2 desde el propio Control Panel.

Por ejemplo, ahora las configuraciones de los diferentes DataSources gestionados en la plataforma los da de alta este rol:

GUÍA DE DESARROLLO DE SOLUCIONES

Uno de los objetivos fundacionales de la Plataforma Sofia2 fue simplificar y agilizar el desarrollo de todo tipo de aplicaciones, desde aplicaciones IoT en las que intervienen Gateways o dispositivos móviles a grandes sistemas Big Data, sin olvidar las aplicaciones web puras de gestión, para las que Sofia2 es un facilitador.

En este ámbito se ha añadido en la sección de Documentación una nueva guía que explica paso a paso cómo construir aplicaciones web (en la guía basadas en Spring Boot y Angular):

Complementando la guía se ha generado un entorno de desarrollo empaquetado como un ZIP que contiene todas las herramientas necesarias para construir estas soluciones (incluyendo JVM Java, IDE Eclipse, Maven, Apache Tomcat,…)

INTEGRACIÓN CON GIT

Esta nueva funcionalidad permite la asociación de una instancia de SCM GIT con una instalación de la plataforma Sofia2, con el objetivo de poder utilizar dicho repositorio como repositorio SCM de los desarrollos/soluciones que se realizan sobre la plataforma.

DOCUMENTACIÓN DE LAS ONTOLOGÍAS

Las Ontologías son el core de la plataforma, componen el Modelo de Dominio que maneja una solución Sofia2.

Para mejorar el intercambio de información entre los diferentes roles y equipos que trabajan con la plataforma en esta versión se puede añadir una descripción a la ontología y a cada uno de los atributos que la componen.

Así como generar un informe en PDF de esta metainformación:

REVISIÓN DE ARQUITECTURA SOFIA2

Arrancamos en esta release un proceso de revisión y adecuación de la plataforma. Entre las líneas ya lanzadas tenemos:

· Reestructuración de proyectos Maven que componen el código fuente de la plataforma:

· Automatizacióncompleta de todos los despliegues de la plataforma con Jenkins

· Generación de Contenedores Docker de toda la plataforma

· Automatización de despliegue de entornos Piloto con Ansible: https://about.sofia2.com/2017/10/20/como-instalar-plataforma-sofia2-en-un-so-linux-centos-con-ansible/

Publicada Release 4.2 de Sofia2 IoT Platform

Sofia2 IoT Platform 4.2 Released

Sofia2 IoT Platform (Minsait IoT Sofia2) release 4.2 is now available.

This release is available on the experimentation platform Sofia2 CloudLab

See other releases

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

SPRING BOOT APPLICATIONS DEPLOYMENT FROM CONTROL PANEL

The Platform now allows to deploy Spring Boot applications simply by uploading them through the Control Panel, as you can see in the image::

 

This functionality has been implemented in KP-Container, so you can now deploy Python, Java and Spring Boot applications.

In addition, when this Spring Boot application acts as a a Sofia2 KP (ie manages ontologies) the platform is able to fully monitor this application, through an instance of Spring Boot Admin embedded in the platform.

NOTE: In Sofia2 CloudLab experimentation environment, only the ROL ADMINISTRATOR is allowed to deploy Spring Boot applications. But in dedicated instances this work can be done by any COLLABORATING role.

MULTI-BDTR SUPPORT

The concept of Ontology in the Platform manages to make the data management of the underlying repository independent, so that in Sofia2 I can manage an ontology in the same way even if it is stored in the BDTR (for example in MongoDB or in a Postgresql) or in the BDH (Hadoop HIVE, Kudu, SAP HANA, …).

Until now, a Sofia2 installation could only work with a BDTR and with a BDH, that is, if it used MongoDB as a BDTR database, then all the ontologies were stored in this database. In this version we add the ability of the same Sofia2 installation to support different BDTRs, so I can select the database on which it will work for each ontology:

With this we get that the same Sofia2 environment can use for example an HBase to store data from Logs, a MongoDB for IoT data from Smart Home devices and a Postgresql for pure management data as clients.

A new menu option has also been enabled to guide the creation of ontologies from a relational database:

EXPORT AND IMPORTATION OF CONFIGURATION AND DATA FROM THE PLATFORM

This utility offers a mechanism for the import and export of data configuration (users, projects, ontologies, scripts, …) and business data (instances of ontologies). In this way I can very easily migrate a complete solution from a development instance to a preproduction or production instance. This functionality is accessible for any COLLABORATOR role in Tools> Export / Import

 

SOFIA2 DESKTOP

Sofia2 desktops are Web applications that act as containers for other web applications, which can be Sofia2 web projects, Sofia2 dashboards or external applications. The desktop manages access security through the users of the platform. Any COLLABORATOR user can create one or more desktops and add the applications they consider:

Inside a desktop we have applications, which by default open as a tab:

And widgets that open as a popup:

SYS_ADMIN NEW ROL

We have added a new SYS_ADMIN role that allows administering a Sofia2 installation from the Control Panel itself. For example, now the configurations of the different DataSources managed in the platform are registered in this role:

SOLUTION DEVELOPMENT GUIDE

One of the foundational objectives of the Sofia2 Platform was to simplify and speed up the development of all types of applications, from IoT applications involving Gateways or mobile devices to large Big Data systems, without forgetting pure web management applications, for which Sofia2 is a facilitator. In this area, a new guide that explains step by step “how to build web applications” (in the guide based on Spring Boot and Angular) has been added in the Documentation section:

Complementing the guide has generated a development environment packaged as a ZIP that contains all the necessary tools to build these solutions (including JVM Java, IDE Eclipse, Maven, Apache Tomcat, …)

INTEGRATION WITH GIT

This new functionality allows the association of an instance of SCM GIT with an installation of the platform Sofia2, with the aim of being able to use this repository as SCM repository of the developments / solutions that are carried out on the platform.

ONTOLOGIES DOCUMENTATION

The Ontologies are the core of the platform, they make up the Domain Model that manages a Sofia2 solution. To improve the exchange of information between the different roles and teams that work with the platform in this version, a description can be added to the ontology and to each of the attributes that comprise it.

As well as generate a PDF report of this metainformation:

REVISION OF SOFIA2 ARCHITECTURE

We start in this release a process of revision and adaptation of the platform. Among the lines already launched we have:

· Restructuring of Maven projects that make up the source code of the platform:

 

· Full automation of all platform deployments with Jenkins

 

· Generation of Docker Containers of the entire platform

· Automation of deployment of Pilot environments with Ansible: https://about.sofia2.com/2017/10/20/como-instalar-plataforma-sofia2-en-un-so-linux-centos-con-ansible/

Sofia2 IoT Platform 4.2 Released

¿Cómo instalar Plataforma Sofia2 en un SO Linux CentOS con Ansible?

En este post vamos a ver paso a paso cómo instalar la RI (Reference Implementation) de los componentes base de Sofia2 IoT Platform en una única VM, esto es:

0. Lo primero es conectar vía SSH con la VM (últimamente yo soy bastante fan de MovaXterm):

1. Tras esto instalaremos Ansible con el comando: sudo yum install ansible

2. Tras esto instalaremos git: sudo yum install git

Y lo configuraremos: git config –global http.sslVerify “false”

3. Y ya podemos empezar con la instalación de la Plataforma. Haremos un clone del repositorio git, donde está disponible todo lo necesario para instalar la Plataforma.

En este caso:

4. A continuación personalizaré algunas propiedades que se usarán en la instalación con Ansible. Estas propiedades están en la carpeta descargada /ansible-automation/Ansible/vars

La mayoría de propiedades pueden mantenerse, las unidades propiedades a modificar son nginx_console_public_ip y sofia_url

5. En el fichero infraestructure.yml puedo configurar:

Lo abriré y configuraré: nginx_console_public_ip con la IP pública de mi máquina (si sólo quiero acceder desde local puedo mantener esta IP):

6. En el fichero sofia.yml puedo editar estas propiedades. En mi caso sólo tocaré la URL en la que despliego Sofia2, a través de sofia_url:

Dejando en mi caso:

7. Tras modificar estos parámetros ya puedo iniciar la instalación, para eso desde la carpeta ansible-automation/Ansible lanzaré: sudo ansible-playbook playbook-all.yml

Que comenzará la instalación de los diferentes servicios.

Pasados unos minutos y si todo ha funcionado bien saldrá:

La instalación lanza los servicios necesarios (Mongo, MySQL, Tomcats,…) de modo que la plataforma queda en ejecución.

8. Una vez instalado todo, para comprobar que la instalación se ha hecho de forma correcta lanzaré un navegador a la URL https://<sofia_url>/console/ accediendo con el usuario y password establecidos por configuración (sofia).

Para poder navegar es importante que tenga abiertos los puertos 443 y 80 de esa máquina. En Azure por ejemplo en Redes:

9. El usuario que hemos creado es un usuario Administrador, por lo que podrá dar de alta otros usuarios desde Administración/Gestión de usuarios. Los usuarios también pueden registrarse como Usuarios desde https://13.73.161.0/console/login?loggedout#

Una vez creado un usuario y pasado a rol COLABORADOR este verá:

10. Para desinstalar todo basta con lanzar el comando sudo ansible-playbook uninstall/uninstall-all.yml

(Gracias por el trabajo Roberto! ;))

 

¿Cómo instalar Plataforma Sofia2 en un SO Linux CentOS con Ansible?

Publicada Release 4.1 de Sofia2 IoT Platform

Ya está disponible la release 4.1 de Sofia2 IoT Platform.

Esta release se ha disponibilizado en la Plataforma de Experimentación Sofia2 CloudLab.

Ver otras releases

Esta release se ha centrado en mejorar e incorporar nuevas herramientas para el desarrollador, entre estas podemos destacar:

MEJORAS EN EL PANEL DE CONTROL

Dentro de la propuesta de valor de la Plataforma Sofia2, el desarrollador es un punto clave, en esa línea estamos trabajando de continuo en mejorar la relación del desarrollador con la consola:

  • Nueva Pantalla de Inicio del Control Panel: a partir de ahora cuando un usuario accede a la plataforma ve un grafo con su “Universo Sofia”, esto es las entidades creadas (Ontologías), clientes (ThinKPs), dashboards, reglas,…y sus relaciones, además pinchando en cada uno de los elementos puedo navegar directamente a su UI de edición:

  • Ayuda integrada en la consola: a partir de ahora desde dentro de la consola podéis buscar cualquier término, esta búsqueda se hace sobre el Blog

y sobre la web de ayuda de la plataforma:

Y NUEVAS UTILIDADES PARA EL USUARIO DE LA PLATAFORMA

Y siguiendo con simplificar la vida de los usuarios de la plataforma hemos incorporado nuevas herramientas que esperamos simplifiquen su día a día:

  • Exportación e importación de elementos entre entornos: esta funcionalidad permite desde el panel de control seleccionar los elementos creados en un entorno (ontologías, proyectos, ThinKPs, APIS,…) y exportarlos, la plataforma genera un ZIP que luego podré importar en otra instancia de la plataforma. Con este mecanismo puedo comenzar el desarrollo en un entorno y luego migrar de forma sencilla todo este desarrollo.

  •  Integración de Proyecto Sofia2 con Git: la plataforma permite configurar una conexión con un repositorio Git, una vez configurado por el administrador cuando creamos un proyecto esto replicará la estructura en este repositorio Git.

  •  Conversión de Ontologías a DTOs Java: permite generar desde una ontología la clase Java que la representa (incluidas anotaciones para pasar de Java a JSON y JSON a Java), de este modo podré trabajar en este lenguaje con la ontología como una clase más

  • Mejoras en Motor Scripting: para ayudar en la creación de scripts, el editor de scripts soporta el autocompletado (pulsando Ctrl+Espacio)

Además en el log de procesos pueden encontrarse los errores en la ejecución del script:

NUEVAS FUNCIONALIDADES EN MOTOR DASHBOARDS

En base a las necesidades identificadas en algunos de los proyectos en los que colaboramos se han incluido:

  • Paso de parámetros tanto a gadgets como a dashboards para que estos lo pasen a la consulta con la que se cargan los datos
  • Internacionalización de los textos: desde el propio editor podremos definir un JSON de internacionalización que luego se utiliza en los campos:

  • Plantillas de Gadget: esta funcionalidad permite disponilibilizar un gadget tipo HTML5 como plantilla de modo que otros usuarios puedan crear sus propios gadgets completando los parámetros asociados al gadget
  • Gadget tipo Weather: en función de la configuración es capaz de mostrar para una localización temperatura y previsiones

NUEVAS FUNCIONALIDADES EN MOTOR SINÓPTICOS

Este módulo se inició como demostración de lo que podíamos hacer con la plataforma y tecnologías Web (SVG) en un ámbito tradicionalmente copado por los SCADAS.

Gracias a las mejoras identificadas por los colaboradores en esta nueva versión soportamos:

NUEVAS FUNCIONALIDADES EN API MANAGER:

El API Manager cada vez es un componente más habitual en arquitecturas SW, este componente que cumple ya 3 años en la plataforma sigue incorporando novedades como:

DIFUSIÓN DE LA PLATAFORMA

Uno de los focos de trabajo en la plataforma es que la plataforma sea usable tanto para un rol usuario como para un rol Desarrollador avanzado o científico de datos, y para eso disponer de material formativo es muy importante.

En esta versión hemos generado estas guías:

Publicada Release 4.1 de Sofia2 IoT Platform

Release 4.1 Sofia2 IoT Platform Published

Release 4.1 of Sofia2 IoT Platform is already available.

In this release has been made available the Sofia2 CloudLab Experimentation Platform

See other releases

This release has been centered on improving and incorporating new tools for the developer, among them we can highlight:

IMPROVEMENTS IN THE CONTROL PANEL

Inside the value proposal for the Sofia2 platform, the developer is a key element, and in this line we are continuously working on improving the relationship of the developer with the console:

  • New control panel landing page: From now on when a user accesses the console is presented with a graph displaying his ‘Sofia Universe’, that is, created entities (ontologies), clients (ThinKPs), dashboards, rules… and their relationships. Also, clicking on each of this elements you can navigate straight to their specific UI.

  • Console integrated help: From now one you can search for any term directly from the console, for example, this search is done over the blog:

and over the platform web help:

AND NEW UTILIDES FOR THE USER OF THE PLATFORM:

Also, following the line of simplifying the platform user’s daily life, we have incorporated new tool we hope can ease their day-to-day:

  • Exportation and importation of elements between environments: This functionality allows, from the control panel, to select the elements created in an environment (ontologies, projects, ThinKPs, APIs) and export them. The platform generates a ZIP file able to be used later for import on another platform. With this mechanism I can start development on one environment and later migrate everything to another in a simple way.
  • Sofia2 project integration with Git: The platform allows to configure a connection with a git repository. Once this is configured by an administrator, when we create a project, this will replicate the structure in the Git repository.
  • Ontology to Java DTOs: This allows to generate a Java class from an ontology (including annotations to migrate from Java to Json and viceversa).

  • Improvements on the scripting engine: To help with the script creation, the editor now supports autocompletion (using to Ctrl+Space combination).

Also on the process log the script errors can be found:

NEW FUNCTIONALITIES ON THE DASHBOARD ENGINE

Bases on the requirements identified on some projects we collaborate with we have also included:

  • Parameter passing either to gadgets or dashboards, so they can, in turn, pass them to the queries they use to load data
  • ·Text internationalization: From the editor we can now define an internationalization JSON to be used on the fields:

  • Gadget templates: This functionality allows to make available a HTML5 as a template so other users can create their own gadgets completing the template with their own parameters associated to the gadget.
  • Weather type gadget : Depending on the configuration now it is possible to display temperature and predictions based on location

NEW FUNCTIONALITIES ON THE SYNOPTIC ENGINE

This module started as a demonstration on what could we do with the platform and SVG web technologies on a field traditionally dominated by the SCADAs.

Thanks to the improvements identified by the collaborators, on this new version we support

NEW API MANAGER FEATURES:

The API Manager is an increasingly more commonly found on SW architectures. This component, now 3 years old, has incorporated features like:

PLATFORM DIFUSION

One of the work focus of the platform is for it to be accessible either for a user role, an advanced developer or a data scientist, and for that disposing of learning material is very important.

For this release we have generated the following guides:

Release 4.1 Sofia2 IoT Platform Published

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