Publicada Release 2.1.0 (gradius) de Onesait Platform
El 10 de julio de 2020 se ha publicado la Release 2.1.0 de la Onesait Platform (versión gradius), siguiendo nuestra política de versiones: /wiki/spaces/PT/pages/60326117).
Puedes seguir nuestro roadmap en Roadmap onesait Platform
A continuación puedes ver las principales funcionalidades de esta release.
Engine
Esta versión da soporte al desarrollo de aplicaciones y microservicios, para lo que la plataforma ofrece una consola web centralizada que soporta la administración, configuración y desarrollo de todo tipo de aplicaciones , integrando la creación de aplicaciones, su despliegue sobre la infraestructura CaaS, apificación, visualización,..
En esta versión se han incorporado las siguientes funcionalidades:
Nueva API Java para trabajar de forma transparente las ontologías: sabéis que las Ontologías como abstracción de las entidades son el núcleo de la Plataforma, y que la ejecución de muchos componentes parte de aquí, pero hay situaciones en las que por diversos motivos se elige gestionar la persistencia utilizando frameworks como Spring Data. Pero queremos que en esos escenarios se sigan pudiendo usar todas las capacidades de plataforma (por ejemplo desencadenar un flujo o una regla tras insertar en una ontología).
La librería cliente de Java de la Onesait Platform ahora provee un cliente -NotifierClient- que nos permite crear las ontologías desde clases Java e informar a la plataforma de las operaciones CRUD que realizamos con nuestro framework, de tal forma que aunque la plataforma no realice estas operaciones, estará al tanto de ellas, y al existir la definición de la ontología, se podrán usar todos los módulos sin ningún inconveniente.
Podéis encontrar todo el detalle sobre esta nueva API en esta guía: (Client APIs) API Java para trabajar de forma transparente con ontologías
Migración de módulos de Plataforma a Spring Boot 2: en esta versión se ha completado la migración de todos los módulos de plataforma de Spring Boot 1.5 a Spring Boot 2, esto nos ha permitido alinear la versión de Spring Boot de Plataforma con la de Arquitectura de los productos, además de interesantes funcionalidades como la siguiente.
Nueva Consola de Monitorización (Monitoring UI): que incluye un nuevo UI mucho más potente y con más capacidades, por ejemplo:
Visualización integrada de los Logs del módulo:
Integración con los microservicios desplegados desde plataforma, de modo que así pueden monitorizarse:
Leer más sobre capacidades de la nueva Consola de Monitorización: Monitoring UI Module
Integración de Portal Open Data CKAN como nuevo módulo de Plataforma: aprovechando que en los proyecos Smart Cities en los que nuestra plataforma tiene tanta presencia siempre requerían este módulo se ha decidido integrar en Plataforma el Portal Open Data CKAN.
CKAN (https://ckan.org)es un portal Open Data Open Source que se ha convertido en el estándar para la publicación de datos Open Data por ser una solución de gestión de datos de código abierto, madura y completa, su nidad básica son los datasets, donde se publican los datos, los cuales están formados por diferentes recursos y metadatos.
La integración permite crear datasets desde diferentes recursos de plataforma, incluidas las ontologías:
y se integra por completo con la seguridad de plataforma, haciendo SSO entre el Portal Open Data y el Control Panel y permitiendo que los usuarios de la plataforma accedan al portal en función de su rol.
Podéis encontrar una guía completamente detallada aquí: /wiki/spaces/PT/pages/593723479
Notificaciones sobre Tópicos Kafka: esta nueva funcionalidad completa la inserción en plataforma vía tópico Kafka y permite activar un tópico Kafka por ontología de modo que cada vez que se inserte en esta se notifique por este tópico:
En este completo tutorial podéis ver un ejemplo de uso con un cliente Kafka: ¿Cómo funciona la Notificación de Ontologías sobre tópicos Kafka?
Capacidad para añadir nuevos nodos en el FlowEngine: a partir de ahora el usuario de este componente podrá añadir nuevos componentes a sus flujos de los componentes gestionados en el npm de Node-red. (aunque debéis tener cuidado con los componentes que usáis porque pueden afectar al performance y rendimiento de vuestros flujos):
En esta guía /wiki/spaces/PT/pages/572686344 podéis encontrar información sobre cómo usarlo.
Soporte para trabajar con Git en el FlowEngine: en la nueva versión del FlowEngine se ha habilitado el concepto de Proyecto de NodeRED, esto permite gestionar las versiones de todos los flujos, inicialmente en un git local, pero también podemos engancharlo contra un git centralizado. El UI del FlowEngine permite hacer commits, pull, push y comprobar cambios entre versiones.
Podéis encontrar más información sobre su uso aquí: /wiki/spaces/PT/pages/590741509
Control de reintentos en FlowEngine para escenarios en los que FlowEngine se use para procesar las inserciones en Ontologías esto permite configurar al usuario si quiere tener reintentos en el proceso de notificaciones, así como asignarles un TTL:
Leer más: /wiki/spaces/PT/pages/715653168
Soporte paginación en Files Repository y nuevo componente Files Repository en DataFlow: en esta versión se ha incorporado una funcionalidad al API REST del Files Repository, que permite paginar la recuperación del contenido de ficheros de texto, además se ha incorporado un nuevo componente en el DataFlow para manejar de forma sencilla e integrada los ficheros almacenados en el Files Repository.
Podéis leer el tutorial completo en este artículo: /wiki/spaces/PT/pages/634847247
Además de un gran número de correcciones y de mejoras de performance identificadas a través de vuestras peticiones al buzón de soporte de plataforma que nos ayudan a mejorar la plataforma día a día, como el control de concurrencia sobre los elementos gestionados por plataforma:
Intelligence
Esta versión de la plataforma se centra en dar soporte al desarrollo de sistemas y aplicaciones que necesitan usar las capacidades analíticas, de AI o de ingesta distribuida de la plataforma.
En este trimestre nos hemos centrado en:
Integración CosmosDB como repositorio para trabajar con Ontologías: se ha incorporado el soporte completo para trabajar con las ontologías de Plataforma a esta interesante base de datos multimodelo de Azure (Cosmos DB es un servicio de base de datos multimodelo distribuido y con escalado horizontal que permite distribuir datos de forma global sobre cualquier número de regiones de Azure, con un proceso transparente de escalado y replicación de los datos)
Podéis encontrar más información sobre la integración en este artículo: Ontologías en CosmosDB
Soporte para trabajar con Git en el desarrollo de Notebooks: hasta ahora cuando quería gestionar las versiones de los Notebooks tenía que hacerlo usando las APIS REST de exportación e importación, con esta integración el científico de datos puede versionar sus Notebooks y comprobar cómo se comporta su modelo según los cambios:
Podéis encontrar más información en esta entrada: /wiki/spaces/PT/pages/594149596
Arquitectura de Plugins en Dashboard Engine: esto permite extender la seguridad en el acceso a los dashboards y poder por ejemplo parametrizar que a ciertos datos de un DataSource sólo puedan acceder ciertos roles o usuarios con un atributo específico
Actualización de estilos del Dashboard Engine: para adecuarlos más al look global de la Plataforma:
Things
Esta versión de la plataforma se centra en dar soporte al desarrollo de sistemas IoT, tanto en el ámbito Cloud como Edge.
En este trimestre nos hemos centrado en:
Virtual PLC: en esta versión se ha integrado el Eclipse 4diac dentro de los contenedores gestionados por Onesait Things Edge Engine. Gracias a esta integración, Onesait Platform cuenta a partir de ahora con la posibilidad de virtualizar PLCs siguiendo el estándar IEC 61499 . Empleando el entorno de modelado 4diac-IDE, ya es posible distribuir esquemas complejos de lógica PLC en los distintos runtimes FORTE incluidos en Edge Engine. Toda la información de proceso de los distintos bloques funcionales del PLC se ha conectado mediante MQTT al bus de datos de nuestra arquitectura Edge y está disponible para interactuar con otros componentes.
Integración de Dispositivos Edge con Digital Clients (IoTDigitalClient Container): Ya está disponible el nuevo DigitalClient sobre MQTT que permite el flujo bidireccional Cloud2Device y Device2Cloud empleando este protocolo de IoT de forma fácilmente configurable. El componente Edge Parser de parseo y adaptación de modelo de datos incluido recientemente en Edge Engine se emplea para la definición del mapping entre ontologías y protocolos de adquisición. El IoTDigitalCliente Container se encarga de la conexión y el transporte de los datos una vez adaptados empleando las credenciales del cliente digital dado de alta en plataforma.
Edge Parser (Protocols mapping module): a partir de esta versión ya está disponible como contenedor para la Onesait Things, el módulo Edge Parser. Este módulo permite el mapeo de los modelos de datos de protocolos Southbound OT (Modbus, OP-DA, etc) con Ontologías o modelos de datos específicos (caso de DDS) en plataforma de forma sencilla empleando “Transformadores”. Edge Parse permite la definición en runtime o consumidos de un repositorio el conjunto de transformadores disponibles para una instancia de Edge Engine.
Como se ve en la imágenes, Edge Parse es un componente dirigido por evento que aplica las distintas transformaciones cada vez que un mensaje es recibido en el bus interno de Edge Engine. Adicionalmente se ofrece una acceso por API REST para gestionar el conjunto de trasformadores desplegados en una instancia.
Edge BacNET Protocol: Ya tenéis disponible el contenedor de protocolo para BacNET basado en el framework open source BACnet4J de Serotonin. Esta versión del protocolo permite su uso en TCP y MSTP para serial. Se incluyen dos servicios de ejemplo: (1) autodescubrimiento de dispositivos y (2) obtención de eventos de un dispositivo.
DevOps
Dentro de esta categoría incluímos todas las herramientas que ayudan en el Desarrollo y la Operación de la plataforma.
En este trimestre hemos incorporado estas nuevas herramientas:
Actualización del Instalador de Plataforma compatible con Rancher 2 y Openshift: Una de las mejoras principales en esta categoría es la compatibilidad del instalador de Plataforma para:
Despliegues completos de clusters de Kubernetes + Rancher 2 con Ansible y despliegue de Plataforma con Helm Chart.
Despliegue de Plataforma con Helm Chart en clusters ya existentes de AKS (Azure) y GKE (Google)
Despliegue de Plataforma con Helm Chart en cluster ya existentes de Openshift (Red Hat)
HELM plugin para generación y despliegue de Route manifest en Openshift: Se ha introducido un plugin compatible con HELM v3 que permite, dado un nombre de dominio (con o sin wildcard) y un nombre de host, generar y desplegar el Route en un cluster de Openshift existente además de incluir en el mismo la terminación tls con certificados y claves auto generados para ese dominio. El plugin está disponible para su descarga y uso en GitHub: https://github.com/onesaitplatform/helm-certgen
Open Source Initiative
Esta línea de trabajo contempla todas las tareas relacionadas con la versión Open Source de la Plataforma (Onesait Platform Community).
En este trimestre hemos continuado con la línea lanzada en Q1 de 2020, concretamente:
Publicación de la versión 1.2.0-ce de Onesait Platform: la versión Open source de la plataforma está disponible en Github (https://github.com/onesaitplatform/).