Solución para integrar datos en la plataforma tecnológica asociada al Portal Junta

Información general

Ámbito
Presencia en Internet
Objeto
Integrar datos en la plataforma tecnológica asociada al Portal Junta, facilitando su publicación a través del Portal de la Junta de Andalucía, las webs orgánicas o el Portal de Datos Abiertos
Descripción

¿Cuándo utilizarla?

Cuando estés desarrollando una aplicación con interfaz web/app en la que interese integrar datos dentro de la plataforma tecnológica asociada al Portal Junta o consumir información que está disponible en ella.

El objetivo de esta plataforma es facilitar el intercambio y publicación, a través de cualquier web, de la información proveniente de distintos sistemas de información, así como ofrecer un mecanismo sencillo para la apertura de datos y reutilización de la información pública, utilizando los servicios que se ofrecen en la plataforma para facilitar esta tarea a los desarrolladores.

Finalidad y casos de uso

Ejemplos de casos de uso:

  • Publicación de datos en portales web: Exposición de información estructurada en el Portal de la Junta, en webs orgánicas de consejerías y agencias, o en cualquier otra web.
  • Consumo de datos vía API: Acceso a los datos disponibles en la plataforma para su reutilización a través de una interfaz compatible OpenAPI.
  • Apertura de datos públicos: Publicación en el Portal de Datos Abiertos de conjuntos de datos accesibles a la ciudadanía, cumpliendo estándares de calidad y transparencia.

Características y ventajas

Se trata de una plataforma abierta y flexible, basada en estándares y normas explícitas, que proporciona una alta disponibilidad y escalabilidad. Permite el aprovisionamiento ágil de los entornos y el despliegue automatizado de los servicios, al estar basada en tecnologías cloud-native y orientarse a la metodología DevSecOps.

Su uso permite la interoperabilidad técnica y semántica, facilitando la integración de los datos y el acceso a los mismos de una manera sencilla, así como pretende facilitar el gobierno del dato público y la analítica omnicanal de la presencia digital institucional.

Se promueve expresamente la reutilización de recursos (tales como: arquetipos, componentes web, hojas de estilo…) con el objetivo de facilitar y acelerar el desarrollo de nuevos servicios digitales, estandarizando a su vez la presencia digital en Internet, alineando las webs y apps con el sistema de diseño de la Junta de Andalucía.

Detalle técnico

Blueprint de la solución

 

 

La solución se basa en un flujo de interacción entre el usuario, el portal y los sistemas de backend:

  1. El usuario accede al Portal Junta de Andalucía
  2. Solicita información desde una página, buscador o mediante descarga.
  3. El portal envía la solicitud al backend a través del API Manager.
  4. El backend procesa la petición.
  5. Opcional La información puede estar en recursos accesibles por el backend.
  6. Opcional Si los datos están en sistemas externos, se envía la petición al bus de interoperabilidad.
  7. Opcional El bus solicita la información al sistema externo.

 

Cómo adaptarla a tu caso concreto

Adaptación

Para aplicar esta solución en tu proyecto, es necesario identificar el modelo de integración más adecuado según el origen de los datos y la arquitectura de la aplicación. La plataforma tecnológica ofrece distintos enfoques que permiten adaptar la integración a las necesidades específicas del servicio que se desea desarrollar.

Modelos de integración

  • Extremo a extremo: Los datos se gestionan directamente en la plataforma, por ejemplo, mediante el Gestor de Contenidos.
  • Interoperable: Los datos provienen de sistemas externos y se comunican mediante API REST.

A continuación, describimos cada uno de estos modelos, y si precisas más información, consulta la presentación del modelo de integración que encontrarás en la sección de documentación en esta página.

Actores
  • Proveedor: Sistema que ofrece conjuntos de datos mediante una API, expuestos a través de los servicios de backend de la plataforma tecnológica.
  • Adaptador: Agente encargado de recopilar datos desde sistemas proveedores, ya sean internos o externos, para integrarlos en la plataforma tecnológica.
  • Consumidor: Producto digital (por ejemplo, una web o aplicación) que accede y utiliza la información a través de la capa de APIs de la plataforma.

Para más información, consulta la presentación del modelo de integración (disponible en la sección de documentación).

Modelo de integración extremo a extremo

En este modelo, los datos son alojados y gestionados mediante un sistema proveedor que se encuentra dentro de la propia plataforma tecnológica. Por ejemplo, este sería el caso de un tipo de contenidos específico creado en un Sistema de Gestión de Contenidos desplegado en la plataforma.

Entre las ventajas de este modelo, posibilita la integración con otros servicios disponibles en la plataforma, la interoperabilidad de los datos a través de API Manager, el uso de las herramientas horizontales y el soporte del equipo responsable de la plataforma a través de un modelo de trabajo DevSecOps.

Modelo de integración interoperable

En este modelo, los datos son recuperados desde un sistema proveedor externo, bien a través de los servicios de Indexación de la capa de Interoperabilidad de la plataforma o mediante un Adaptador construido a tal efecto, que integran estos datos en un almacenamiento persistente (Elasticsearch de Interoperabilidad). Este mecanismo de indexación e integración de datos optimizados para su lectura se corresponde con el patrón arquitectónico Vista Materializada.

El sistema Proveedor debe proporcionar una API REST para realizar la comunicación de los cambios en los datos de origen al bus de interoperabilidad (o al Adaptador construido a tal efecto), si bien esta forma de integración deberá estudiarse y valorarse en cada caso, debido a la heterogeneidad y naturaleza diversa de los sistemas proveedores existentes y sus modelos de datos.

Esta API debe cumplir una especificación determinada para cada una de las siguientes operaciones:

  • Servicio de notificación de eventos:
    • Creación de un contenido: POST /events/{technology}/{type}/{id}
    • Actualización de un contenido: PUT /events/{technology}/{type}/{id}
    • Borrado de un contenido: DELETE /events/{technology}/{type}/{id}
  • Servicio de obtención de datos para un contenido concreto:
    • GET /{type}/{id}

Es recomendable la existencia de métodos adicionales que permitan el mantenimiento, comprobación, descarga masiva (p.e. para la puesta en marcha):

  • Obtención del número total de registros: GET /{type}/count
  • Obtención de todos los registros: GET /{type}/all
  • Obtención paginada de los registros: GET /{type}?offset={init}&max={elements}
    • {init} hace referencia al primer elemento del paginado a devolver
    • {elements} hace referencia al número de elementos que ha de devolver.
Integración con sistema Doble Agente

El sistema Doble Agente es un Adaptador que permite generar la API REST necesaria para proveedores basados en bases de datos relacionales. Está basado en Apache MiNiFi con almacenamiento en MinIO, y se despliega en Kubernetes (K3S). Se ha creado una imagen Docker para facilitar este despliegue.

MiNiFi es una versión reducida de NiFi, un software capaz de realizar las funciones ETL necesarias para obtener los datos de la base de datos de forma periódica, tratarlos y almacenarlos en formato JSON en MinIO.

El flujo seria el siguiente:

Flujo de trabajo del sistema Doble Agente

Para más información, consulta el manual del servicio Doble Agente (disponible en la sección de documentación).

Recursos relacionados

Activos

Servicios de Apoyo

Documentación

Documentos para Desarrolladores

Fecha Título
2022-10-17 Presentación del modelo de integración
2022-10-17 Manual del servicio Doble Agente (solo accesible desde RCJA)