Plataforma

Mecanismos de integración e interoperabilidad en la Plataforma

En numerosos escenarios, la Plataforma actúa como plataforma central de la organización (por ejemplo, como Plataforma Smart City) y existen un conjunto de verticales/desarrollos/aplicaciones que deben volcar cierta información en la Plataforma (por ejemplo valores, de alarmas, KPIS, etc.) o bien consumir información gestionada por la Plataforma (como información de activos).

La correcta integración de los servicios verticales con la Plataforma es esencial para asegurar que la información que fluye por el vertical se incorpora al flujo de información global provisto por la Plataforma, permitiendo así explotar la información de una manera holística.

El objetivo de esta entrada es describir los mecanismos de integración que ofrece la Plataforma a través de sus componentes técnicos y sus capacidades de interoperabilidad.

Capacidades de la Plataforma

La integración, ya sea unidireccional o bidireccional, se llevará a cabo gracias a las capacidades de integración e interoperabilidad out-of-the-box de la Onesait Platform, que permiten su integración con cualquier dispositivo o sistema TI de forma muy simple y ágil. Entre estas capacidades encontramos:

  • Conectores: la Plataforma ofrece conectores en múltiples protocolos que permiten enviar, recibir y suscribirse a los datos gestionados por la Plataforma. Entre estos conectores tenemos: APIs REST, Bus MQTT, Bug Kafka y WebSockets. Además, la Plataforma permite crear conectores para el Digital Broker y desplegarlos como plugins o conectarse de forma sencilla a buses y plataformas existentes a través de DataFlow.
  • Soporte Protocolo FIWARE NGSI-v2: que permite la interoperabilidad con plataformas FIWARE a través de su Orion Context Broker. ESto lo explicamos con detalle en este artículo sobre compatibilidad FIWARE NGSIv2 en la Onesait Platform.
  • APIs cliente multilenguaje: la Plataforma ofrece APIs multilenguaje para facilitar el desarrollo de clientes que quieran comunicarse con la Plataforma. Entre estas APIs tenemos APIs en Java, Kafka, Python, Javascript, Node, Android y Node-red. Lo contamos con detalle en estas guías de APIs de Clientes y Broker Digital.
  • Plataforma Open Source: todos los componentes de la Plataforma son de código abierto, incluyendo las APIs cliente y los componentes que dan soporte a la integración.
  • Enfoque semántico: permite modelar la información en Entidades, que posibilitan gestionar la información de manera completamente agnóstica del protocolo tecnológico usado para enviar el dato, lo que se traduce en que independientemente del protocolo, la información se gestiona de la misma forma. Esto facilita la integración solo entre los servicios y la Plataforma, sino también la integración y la gestión global de datos entre los distintos servicios. Dentro de este enfoque la Plataforma soporta JSON-Schema y JSON-LD para datos linkados incluyendo la definición conforme schema.org.
  • Digital Twins: un Digital Twin es una representación digital de una entidad o sistema del mundo real que no actúa como un reemplazo del objeto físico del sistema que representa si no como una replica de este, permitiendo la comunicación (testeo, monitorización, mando) de este dispositivo físico sin tener que estar pegado a él. Esto lo contamos con detalle en el artículo de aplicabilidad e Importancia de los Digital Twins en el ámbito Smart Cities.

Módulos de la Plataforma que le dan soporte

En la siguiente imagen se muestran los componentes de la Plataforma organizados por capas, donde se remarcan las Capas de Adquisición y Publicación, que incluyen los componentes de la Plataforma para comunicar con ella (envío, consulta y suscripción):

Las capas descritas se corresponden con el Modelo de Capas de Plataforma de Ciudad Inteligente de la norma UNE-178104.

Capa de adquisición

Esta capa ofrece los mecanismos para la captación de los datos desde los sistemas de captación. También es la encargada de permitir la interconexión con otros sistemas externos que sólo consuman datos y abstrae la información de los sistemas de captación con un enfoque semántico estándar.

Digital Broker

Es el Broker de la Plataforma y el mecanismo por defecto de adquisición de datos:

  • Ofrece Gateways multiprotocolo (REST, MQTT, WebSockets, etc.).
  • Ofrece comunicación bidireccional con los clientes de la Plataforma.
  • Ofrece APIs multilenguaje (Java, JavaScript, Python, Node.js, Android, etc.) que permiten que cada vertical desarrolle sobre su lenguaje y plataforma preferidos.

Es el mecanismo con el que típicamente se integran los sistemas y dispositivos.

Kafka Broker

La Plataforma integra un clúster Kafka que permite la comunicación con sistemas que utilizan este protocolo de intercambio, generalmente porque manejan un gran volumen de información y necesitan una latencia baja.

DataFlow

Este componente nos permite configurar flujos de datos desde una interfaz web. Estos flujos se componen de un origen (que puede ser archivos, bases de datos, servicios TCP, HTTP, colas, el Digital Broker de la Plataforma, etc.), una o más transformaciones (procesadores en Python, Groovy, Javascript, etc.) y uno o más destinos (las mismas opciones que el origen).

Es el mecanismo a usar cuando sea la Plataforma la que va a recoger información del sistema origen y no este el que lo envía a la Plataforma o bien cuando el sistema/dispositivo no está integrado y vuelca la información en un bus externo. Tras esto será necesaria una conversión en la Plataforma.

Entre sus principales características encontramos que:

  • Incluye un amplio número de conectores de entrada, salida, como conexión con bases de datos, servicios Web, Google Analytics, servicios REST, brokers, etc., que nos permite desacoplar de forma sencilla e integrada a través de una única herramienta (conectores). Entre los principales conectores del DataFlow podemos encontrar conectores Big Data con Hadoop, Spark, FTP, Ficheros, Endpoint REST, JDBC, BD NoSQL, Kafka, Servicios Cloud de Azure, AWS, Google, etc.
  • Ofrece gran número de conectores para escenarios IoT como OPC, CoAP, MQTT, etc.
  • Permite que un sistema externo comunique con la Plataforma a través de un protocolo de los soportados (MQTT, REST, Kafka, JMS, etc.), que la Plataforma orqueste este dato y que lo rute hacia otro sistema o bien lo incorpore a la Plataforma.
  • Además, existe una paleta de componentes que soportan protocolos más específicos y que el administrador de la Plataforma puede habilitar según necesidades:
  • Toda la información que fluye por el componente se monitoriza, audita y se disponibiliza para que se pueda explotar. Además de esto, el componente DataFlow ofrece trazabilidad y monitorización online:

Digital Twin Broker

Este broker permite la comunicación entre los Digital Twins y la Plataforma, y ​​entre ellos. Soporta REST y Web Sockets como protocolos.

La Plataforma, implementando el estándar W3C Web of Things, que define como se tiene que modelar un Digital Twin, así como las APIs de comunicación que debe proveer, proporciona un soporte completo para materializar estos conceptos en sistemas digitales que se pueden conectar entre ellos, y colaborar de acuerdo a unas reglas establecidas visualmente por un operador de gestión municipal.

Para ello se proporcionan las siguientes capacidades desde la Plataforma:

  • Modelado de un Digital Twin desde el Control Panel de la Plataforma: de modo que un usuario puede definir con precisión el interfaz (entradas, salidas y estado) de nuestro Gemelo Digital. El modelado permite usar la semántica incluida en la Plataforma (entradas, salidas y estado pueden ser a su vez entidades).
  • Simulación del Digital Twin: de modo que pueda estar probando el comportamiento del Gemelo Digital, permitiendo usar los módulos de Inteligencia Artificial de la Plataforma.
  • Implementación del Digital Twin: una vez modelado el Gemelo Digital, la Plataforma es capaz de generar código en diversos lenguajes para que implemente la funcionalidad requerida para el uso del gemelo en operación:
  • Estado del Digital Twin: nuestros Gemelos Digitales están conectados con la Plataforma de forma segura, y la Plataforma tiene un Shadow de su estado:
  • Orquestación de Digital Twins: una vez modelados, implementados y en ejecución la Plataforma permite construir visualmente una orquestación de Digital Twins, de modo que la salida de un Gemelo Digital pueda mapearse con la entrada de otro de modo que uno reaccione a los cambios de estado del otro.

Video Broker

Este componente permite conectarse a cámaras a través del protocolo WebRTC y procesar el flujo de video asociándolo a un algoritmo (detección de personas, OCR, etc.).

El resultado de este procesamiento puede representarse en los Dashboards de la Plataforma de forma sencilla:

Capa de interoperabilidad

Esta capa ofrece interfaces sobre la capa de conocimiento estableciendo políticas de seguridad y conectores para que sistemas externos puedan acceder a la Plataforma y viceversa. Permite construir servicios a partir de los datos de la Plataforma. Para ello una de las APIs ofrecidas a los desarrolladores debe ser la API nativa de acceso a los datos de la capa de conocimiento.

API Manager

Este módulo permite disponibilizar la información gestionada por la Plataforma con interfaces REST; estas APIs se crean desde el panel de control y pueden ser de consulta o actualización. También ofrece un API Portal para el consumo de las API y un API Gateway para invocar las APIs.

La Plataforma integra el API Manager Gravitee para escenarios en los que es necesario un control más avanzado de las APIs REST, por ejemplo políticas personalizadas de seguridad, control de throughput, etc.

Es el mecanismo típico con el que integran las aplicaciones web, portales y aplicaciones móviles con la Plataforma, además de que las herramientas BI actuales ya ofrecen conectores, como puede verse en estos ejemplos:

Dashboard Engine

Este módulo permite, de forma sencilla, la generación y visualización de potentes cuadros de mando sobre la información gestionada por la Plataforma, consumibles desde diferentes tipos de dispositivos y con capacidades analíticas y de Data Discovery. Todo ello, orquestado de forma centralizada a través del panel de control de la Onesait Platform, pudiendo hacer estos Dashboards públicos o compartirlos con otros usuarios de la Plataforma.

Estos dashboards, se nutren de la filosofía de potentes frameworks de componentes como React, Angular o Vue, construyéndose a partir de sencillos componentes autónomos y reutilizables denominados gadgets.

Portal Open Data

La Onesait Platform integra el portal Open Data de código abierto CKAN entre sus componentes.

CKAN es un portal de datos de Código Abierto que proporciona herramientas para publicar, compartir, encontrar y utilizar los datos. Su unidad básica son los datasets, donde se publican los datos, los cuales están formados por diferentes recursos y metadatos. Los recursos almacenan los datos, permitiendo diferentes formatos (CSV, XML, JSON, Shapefile, etc.) y gracias a la integración con la Plataforma, se otorga al sistema completo funcionalidades como:

  • Gestión unificada en el Control Panel y la Plataforma.
  • Gestión completa sobre los datasets y los recursos.
  • Publicación de entidades como datasets.
  • Publicación de APIs como datasets.
  • Integración con los Dashboards de la Plataforma.
  • Integración de seguridad completa de la Plataforma, autenticaciones, autorizaciones, etc.

SDKs y APIS

La Plataforma ofrece APIs REST para acceder a todos los componentes de la Plataforma tanto a nivel de operación como a nivel de gestión. Igualmente ofrece SDKs multilenguaje para comunicar con la Plataforma de una forma sencilla:

Esto lo explicamos con detalle en las guías de APIs de Clientes y Broker Digital.


Esperamos que os haya parecido interesante. Si tenéis cualquier duda, por favor dejadnos un comentario y estaremos encantados de responderos.

Imagen de cabecera: スグブログ

✍🏻 Author(s)

Deja una respuesta