Integrar datos en la plataforma tecnológica asociada al Portal Junta

Contenido

Ámbito de aplicación de la solución

Esta solución aplica cuando queremos integrar datos en la plataforma tecnológica asociada al Portal Junta.

Integrar datos en la plataforma tiene las siguientes ventajas:

  • Facilita su publicación a través del Portal de la Junta de Andalucía y las webs orgánicas de consejerías y agencias.
  • Los datos están disponibles a través de una interfaz compatible con OpenAPI para su consumo sencillo.
  • Permite abrir los datos en el portal de datos abiertos en condiciones de calidad óptimas. Esto redunda en una mayor transparencia y reutilización de la información.

Guía descriptiva de la solución

La Junta de Andalucía dispone de una plataforma tecnológica asociada al Portal Junta basada en el software de contenedores Openshift que facilita la publicación de productos digitales. En ocasiones, cuando estés desarrollando una aplicación con interfaz web/app puede que te interese integrar datos dentro de la plataforma o consumir información que está disponible en ella.

Modelos de integración

  • Modelo de integración extremo a extremo: en este modelo, los datos se integran en un servicio de backend disponible en la plataforma tecnológica, habitualmente el gestor de contenidos. Al usar un servicio de backend ya disponible, los datos están disponibles en la plataforma de forma automática.
  • Modelo de integración interoperable: en este modelo, existe un proveedor de datos externo a la plataforma que se comunica con esta mediante una API REST.

Para más información, consulta esta presentación del modelo de integración (PPT, 10.3 Mb).

Modelo de integración extremo a extremo

En este modelo, los datos pasan a gestionarse a través de un sistema proveedor que se encuentra dentro de la propia Plataforma Tecnológica. Por ejemplo, se crea un tipo de contenidos específico en la herramienta "Gestor de Contenidos", y se cargan en él los datos necesarios.

Las ventajas que proporciona este modelo son:

  • El sistema proveedor interactúa con el resto de servicios de la plataforma de forma directa, evitando desarrollos.
  • Se proporciona soporte en la resolución de problemas del servicio a través de una integración en el modelo DevOps en el que opera la plataforma.
  • Acceso a herramientas horizontales en la plataforma.

Modelo de integración interoperable

Actores

  • Sistema proveedor de conjuntos de datos que exponen información a partir de una API en los servicios de backend.
  • Agentes de recopilación de datos para la plataforma tecnológica sobre sistemas proveedores de información internos o externos. (Adaptadores)
  • Sistema consumidor de información a partir de servicios expuestos por los servicios de entrega (Productos digitales).

    API REST

    El sistema proveedor debe proporcionar una API REST para realizar la comunicación de cambios en contenidos al BUS de interoperabilidad o al Agente construido a tal efecto, si bien deberá valorarse en cada caso debido a la diversas naturalezas de sistemas existentes. Esta API debe cumplir una especificación de 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 obtención del dato de un contenido concreto:
      • GET /{type}/{id}

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

    • Obtención del 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}
      • La descripción de las variables referenciadas:
        • {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 para bases de datos relacionales

    El sistema Doble Agente es un adaptador que facilita generar la API REST necesaria a proveedores basados en bases de datos relacionales. 

    El sistema Doble Agente está desarrollado en MiNiFi envuelto en una arquitectura de kubernetes. Este servicio es capaz de obtener datos de una base de datos de forma periódica, tratarlos y almacenarlos en un contenedor de MinIO.

    El despliegue en kubernetes se ha realizado utilizando el software K3S, el cuál permite el despliegue de múltiples contenedores con el servicio en paralelo. Por otro lado, el propio servicio se ha llevado a cabo utilizando la tecnología MiNiFi. Esta tecnología se trata de una versión reducida de NiFi, un software capaz de realizar las funciones ETL anteriormente descritas. Para trabajar con todas estas tecnologías se ha creado una imagen Docker que contiene los elementos básicos para arrancar una instancia de MiNiFi, K3S aprovecha dicha imagen en sus despliegues.

    El flujo seria el siguiente:

    Flujo de trabajo del sistema Doble Agente

    Para más información, consulta el manual del servicio Doble Agente (solo accesible desde RCJA).

    Archivos adjuntos
    Índice