Módulo 2   Clase 4   Sol mediadores y muestreos IGAE con microservicios

Módulo 2 Clase 4 Sol mediadores y muestreos IGAE con microservicios

Introducción a la Arquitectura de Microservicios

Conceptos Básicos

  • Se retoma la discusión sobre la arquitectura lógica basada en microservicios, enfatizando su objetivo de independizar los microservicios funcionalmente y minimizar el solapamiento entre ellos.

Comunicación entre Microservicios

  • La comunicación entre microservicios es esencial y puede realizarse de varias maneras, incluyendo métodos síncronos y asíncronos.
  • Ejemplos de comunicación incluyen el uso de RabbitMQ o Kafka como brokers de mensajería para facilitar el intercambio de información.

Despliegue y Contenedores

  • El despliegue de microservicios puede hacerse en una misma máquina, pero se introduce el concepto de contenedores para optimizar recursos físicos.
  • Docker se menciona como una herramienta clave para gestionar contenedores que permiten ejecutar microservicios con todas sus dependencias necesarias.

Gestión de Contenedores y Orquestación

Kubernetes

  • La gestión eficiente de contenedores presenta desafíos, donde Kubernetes se destaca como una solución para orquestar estos contenedores que albergan microservicios.

APIs y API Gateway

Funcionalidad del API Gateway

  • El API Gateway actúa como un punto único de acceso a todos los microservicios, facilitando las peticiones desde aplicaciones externas.
  • Este componente intermedio permite gestionar las APIs expuestas por los microservicios, actuando como un proxy que redirige las solicitudes adecuadamente.

Seguridad y Autorizaciones

  • Además del enrutamiento, el API Gateway implementa mecanismos de seguridad y gestión de permisos para proteger las APIs.
  • Se menciona Cong como una herramienta que ofrece interfaces gráficas para gestionar múltiples API Gateways eficientemente.

Backend for Frontends (BFF)

Concepto BFF

  • El patrón Backend for Frontends implica construir la interfaz del cliente en el servidor, modularizando tanto el backend como la API.
  • Este enfoque busca especializar aún más la interacción entre los clientes y los servicios backend mediante adaptaciones específicas según cada tipo de cliente.

Modularización del Backend y API Gateway

Importancia de la Modularización

  • La modularización del backend permite descomponer el API Gateway en partes más pequeñas, cada una atendiendo a diferentes tipos de clientes.
  • Es un error común crear interfaces gráficas específicas para cada rol; se sugiere tener solo dos: una para la ciudadanía y otra para la gestión.

Beneficios de la Modularización

  • Al modularizar, los cambios en una parte no requieren recompilar o reconfigurar todo el sistema, lo que facilita el mantenimiento.
  • Se propone dividir el API Gateway en tres: uno para interfaces web, otro para aplicaciones móviles y un tercero como servicio web para aplicaciones externas.

Protocolo y Orquestación

  • El protocolo utilizado puede ser REST o gRPC, dependiendo de las necesidades del sistema. La orquestación detrás del API Gateway debe ser transparente a los usuarios finales.

Diseño de Interfaces Gráficas y Microservicios

Composición del Frontend

  • Se plantea aplicar principios similares a los microservicios en el frontend mediante microfrontends, donde el servidor compone la interfaz según sea necesario.
  • Para sistemas con alta lógica de negocio y baja carga gráfica, es preferible que la composición se realice en el cliente utilizando frameworks como Angular.

Migración a Microservicios

  • Un diseño bien estructurado en tres capas facilita la migración hacia microservicios al mantener dependencias mínimas entre componentes.
  • La decisión sobre el uso del API Gateway es crucial para desacoplar las capas frontend y backend; aunque se podría prescindir de él, sería inusual.

Ventajas e Inconvenientes de Microservicios

Preparación para Ejercicios Prácticos

  • Es fundamental estudiar casos prácticos con claridad; tener versiones largas y cortas ayuda a tomar decisiones informadas durante exámenes o situaciones reales.
  • La preparación adecuada permite reaccionar ante preguntas teóricas inesperadas durante evaluaciones prácticas.

¿Cuáles son las ventajas y desventajas de los microservicios?

Preparación para el examen

  • La importancia de preparar supuestos de manera mecánica, siendo proactivos y evitando errores comunes en la práctica.
  • Las preguntas del examen pueden variar, por lo que es crucial estar bien preparado para no ser sorprendido.

Ventajas de los microservicios

  • Los microservicios permiten una mayor reutilización al tener servicios especializados (ej. firma, gestión documental).
  • Ofrecen mayor disponibilidad y escalabilidad, permitiendo ajustar la capacidad según la demanda.
  • Facilitan la introducción y modificación de nuevos servicios debido a su bajo acoplamiento.
  • El poliglotismo permite usar diferentes lenguajes de programación según las necesidades del servicio (ej. Java y Python).
  • Se alinean bien con metodologías ágiles como Scrum, favoreciendo equipos organizados hacia servicios.

Desventajas de los microservicios

  • Mayor complejidad en comparación con aplicaciones monolíticas; más difícil gestionar errores y realizar pruebas.
  • Costos iniciales elevados para implementar un sistema basado en microservicios; requiere personal cualificado.
  • Aumenta los retos de seguridad al haber más puntos vulnerables (APIs).

Contenedores y su impacto

  • Los contenedores permiten una creación ágil y despliegue rápido de aplicaciones mediante comandos simples.
  • Garantizan consistencia entre entornos (desarrollo, preproducción, producción), facilitando replicaciones exactas.

Modularidad y rendimiento

  • La modularidad mejora el uso eficiente del procesamiento al evitar sistemas operativos pesados para cada aplicación.
  • Docker es gratuito y reduce problemas de compatibilidad entre diferentes entornos operativos.

Consideraciones finales sobre rendimiento

  • El rendimiento puede ser inferior a una aplicación monolítica; se debe evaluar si se prioriza flexibilidad o velocidad en tiempo real.

Microservicios: Adaptación y Desafíos

Adaptación de Microservicios a Necesidades Organizacionales

  • Los microservicios se adaptan bien a las necesidades de las aplicaciones modernas, aunque pueden presentar inconvenientes como un rendimiento inferior en comparación con aplicaciones monolíticas.
  • La dificultad para encontrar desarrolladores es cada vez menor, pero el cambio cultural dentro de la organización es crucial al adoptar este nuevo paradigma.

Cambio Cultural y Paradigma Organizacional

  • El salto hacia microservicios es inevitable, especialmente con la disponibilidad de plataformas como servicio en nubes públicas como Amazon, Azure y Google.
  • Se observa una tendencia a alejarse de infraestructuras tradicionales hacia soluciones más flexibles y escalables que permiten mayor agilidad en el desarrollo.

Ventajas de la Orquestación de Contenedores

  • La orquestación permite escalabilidad horizontal y despliegue automático, lo que facilita la gestión dinámica del tráfico y los recursos computacionales.
  • Proporciona un cuadro de mando integral para monitorear instancias de contenedores, mejorando el seguimiento del rendimiento y necesidades computacionales.

Inconvenientes en la Implementación

  • La complejidad puede aumentar si los conceptos sobre contenedores no están bien comprendidos dentro de la organización; esto puede dificultar la depuración sin una adecuada gestión de logs.
  • Es fundamental contar con perfiles capacitados para evitar que la falta de conocimiento limite el uso efectivo de microservicios.

Estrategias para Adoptar Microservicios

  • Para superar los desafíos culturales y técnicos, se requiere inversión en formación y contratación estratégica que facilite esta transición organizacional.
  • La elección por microservicios debe basarse en criterios claros como extensibilidad, rendimiento o escalabilidad según las necesidades específicas del organismo.

Coherencia en Soluciones Tecnológicas

  • Es esencial mantener coherencia al implementar nuevas tecnologías; no se deben adoptar soluciones solo porque son populares o innovadoras sin evaluar su aplicabilidad real.
  • Se recomienda optar por soluciones probadas que sean adecuadas para diversas situaciones antes de aventurarse a implementar tecnologías menos conocidas.

¿Cómo lograr robustez y escalabilidad en arquitecturas de microservicios?

Importancia de la arquitectura basada en microservicios

  • La arquitectura basada en microservicios, orquestada con Kubernetes, proporciona robustez ante fallos y capacidad de reacción ante picos de demanda, así como escalabilidad dinámica.
  • La solución propuesta permite obtener beneficios visibles rápidamente, facilitando el entendimiento y aceptación entre diferentes equipos.

Desarrollo ágil y productos mínimos viables

  • Se menciona que se pueden desarrollar productos mínimos viables (PMV) en menos de 6 meses utilizando metodologías ágiles como Scrum junto con microservicios.
  • Históricamente, los PMV se han realizado con arquitecturas de tres capas; sin embargo, la integración con microservicios mejora este proceso.

Ejemplos prácticos y aplicaciones reales

  • En el examen A1 se ha solicitado a los estudiantes diseñar arquitecturas lógicas basadas en microservicios, evidenciando su relevancia actual.
  • Es importante entender las diferencias entre API REST y API Gateway para aplicar correctamente estas tecnologías en proyectos reales.

Diferencias entre API REST y API Gateway

  • Una API REST es un servicio web que responde a peticiones HTTP, mientras que un API Gateway actúa como punto de entrada para una arquitectura de microservicios.
  • El API Gateway puede proporcionar funcionalidades adicionales como enrutamiento, autenticación y monitoreo, simplificando la gestión del sistema.

Escalabilidad y gestión eficiente

  • Cada servicio REST puede escalar individualmente lo que complica la gestión; sin embargo, el uso del API Gateway facilita esta tarea al manejar solicitudes eficientemente.
  • Es crucial comprender estas diferencias para evitar confusiones entre desarrolladores novatos que no han trabajado previamente con APIs.

Decisiones sobre bases de datos en microservicios

  • Al implementar microservicios hay decisiones críticas sobre cómo gestionar las bases de datos: optar por una base monolítica o múltiples bases específicas por cada servicio.
  • También se puede adoptar un enfoque mixto donde algunos servicios compartan una base común mientras otros tengan sus propias bases dedicadas.

Arquitectura de Microservicios y Bases de Datos

Introducción a la Arquitectura de Microservicios

  • Se sugiere que, si no se tiene experiencia con microservicios, se puede optar por una base de datos monolítica. Esto permite un diseño similar al modelo de tres capas.
  • La centralización de datos facilita la consistencia, pero puede generar acoplamiento entre los servicios, lo cual es una desventaja significativa.

Desafíos en el Escalado y Rendimiento

  • A medida que la aplicación crece, pueden surgir problemas de escalabilidad y rendimiento. Es importante evitar crear múltiples bases de datos sin un criterio claro.
  • La comunicación entre microservicios puede realizarse mediante un bus de mensajería o API REST; ambas opciones son compatibles y no excluyentes.

Implementación del API Gateway

  • El uso del API Gateway debe ser considerado cuidadosamente; dividirlo en partes puede ser útil, pero no es necesario hacerlo excesivamente.
  • Un API Gateway actúa como intermediario para las comunicaciones externas y debe ser diseñado para facilitar la interacción entre microservicios.

Estrategias para Exámenes

  • En exámenes, es crucial presentar las respuestas ordenadamente. Utilizar frases introductorias ayuda a estructurar mejor las respuestas.
  • Se recomienda proponer arquitecturas basadas en microservicios debido a sus ventajas en escalabilidad y flexibilidad.

Diseño del Diagrama

  • Al diseñar diagramas, es esencial considerar cómo representar adecuadamente los componentes como frontend y backend.
  • El diagrama debe incluir el API Gateway como intermediario con servicios externos; esto requiere atención al detalle para asegurar claridad visual.

Microservicios y su Estructura

Introducción a los Microservicios

  • Se discute la estructura de microservicios en el contexto de un sistema que incluye módulos como autenticación, registro e intermediación.
  • Cada módulo se presenta como un microservicio independiente, enfatizando su funcionalidad específica dentro del sistema.

Clasificación de Microservicios

  • Se menciona que los microservicios no son anidados; todos operan al mismo nivel, lo que facilita su gestión y comprensión.
  • Ejemplos de microservicios incluyen: consulta del registro, validación de requisitos y aceptación/rechazo. Estos son considerados instrumentales para el funcionamiento general.

Complejidad en la Gestión de Microservicios

  • La dificultad radica en traducir requerimientos a una estructura clara de microservicios sin caer en la sobrecarga (ej. 50 microservicios).
  • Es crucial mantener claridad conceptual para facilitar la gestión del proyecto y estimar costos asociados al desarrollo.

Estrategias para el Desarrollo

  • Se establece que las decisiones sobre la base de datos deben ser monolíticas, simplificando así la comunicación entre el backend y la capa de datos.
  • La importancia del diseño UML se destaca, sugiriendo que es esencial para representar adecuadamente los componentes del sistema.

Ejemplo Práctico

  • Se introduce un ejemplo práctico relacionado con muestreos y bases de datos por microservicio, mostrando cómo se pueden agrupar funcionalidades.
  • La reducción a microservicios específicos (usuarios fondos y registro fondos), permite una mejor organización y gestión dentro del sistema.

¿Cómo se estructuran las bases de datos y la arquitectura del sistema?

Estructura de Bases de Datos

  • Se mencionan tres tipos de bases de datos: operaciones, muestreos y controles, que son independientes entre sí.
  • Se introduce el concepto de API Gateway y un bus de eventos para facilitar la comunicación entre microservicios.

Descripción del Sistema

  • Se discute la importancia de identificar módulos y tecnologías en la arquitectura lógica del sistema, especialmente en contextos específicos como TIC1.
  • El enfoque es paso a paso para evitar confusiones al explicar los componentes del sistema.

Modelo Lógico

  • Se presenta un modelo lógico en tres capas: presentación, lógica de negocio y acceso a datos.
  • En la capa de presentación se ubican interfaces web para empleados e interventores, accesibles desde diferentes redes.

Funcionalidades del API Gateway

  • El API Gateway actúa como un punto único que gestiona el tráfico entre frontend y backend, optimizando la comunicación.
  • Ofrece beneficios como enrutamiento, autenticación y control de versiones, simplificando interacciones complejas.

Microservicios y Comunicación

  • Los microservicios están organizados por módulos lógicos que manejan funciones específicas dentro del sistema.
  • La comunicación entre microservicios se realiza a través del bus de eventos, promoviendo una arquitectura flexible y escalable.

Arquitectura de Microservicios y Tecnología

Comunicación entre Microservicios

  • Se utiliza GRPC o API REST para la comunicación entre microservicios, destacando la importancia de una capa de datos que emplea cuatro bases de datos relacionales para persistencia.

Acceso a Servicios Comunes

  • Los microservicios acceden a servicios comunes mediante interfaces, principalmente implementadas como servicios web y WSDL, utilizando un APIGateway para gestionar el acceso.

Estructura y Claridad en la Enseñanza

  • El presentador enfatiza la necesidad de claridad en las explicaciones, comparando el proceso educativo con hacer un puré: se busca simplificar conceptos complejos para facilitar su comprensión.

Diferenciación Conceptual y Tecnológica

  • Se discute la separación entre lo conceptual (lógico) y lo tecnológico en las preguntas del examen, subrayando que es crucial distinguir entre ambos aspectos al abordar soluciones arquitectónicas.

Justificación de Elecciones Tecnológicas

  • Es importante argumentar por qué se elige una tecnología sobre otra, considerando factores como versatilidad y disponibilidad de programadores. Esto conecta con los temas tratados en TIC 1 y TIC 2 sobre arquitectura tecnológica.

Opciones Tecnológicas para Aplicaciones Móviles

Diseño de Arquitectura del Sistema

  • Al diseñar la arquitectura del sistema, se debe representar mediante un diagrama de paquetes e incluir las tecnologías elegidas para cada módulo lógico identificado previamente.

Principios en el Desarrollo Web

  • Las interfaces web deben desarrollarse siguiendo principios responsive y accesibilidad según normativas vigentes, asegurando que cumplan con requisitos legales establecidos.

Normativas y Requerimientos Técnicos

  • Se mencionan diversas normativas relacionadas con accesibilidad y usabilidad que deben ser consideradas al desarrollar aplicaciones web, incluyendo criterios específicos como los establecidos por W3C.

Tecnologías y Arquitectura de Desarrollo

Elección de Tecnologías para Interfaces Web

  • La tecnología propuesta para las interfaces web es el framework Angular, que se basa en HTML5, CSS3 y JavaScript. Esto simplifica el desarrollo al proporcionar componentes reutilizables y facilitar el uso de contenido dinámico.
  • Se utilizará la librería Bootstrap para crear hojas de estilo responsive y la librería A11y de Angular para garantizar accesibilidad. Esta elección es fundamental para mejorar la experiencia del usuario.

Integración con APIs

  • Se sitúa un módulo en la capa de presentación que da servicio a sistemas externos desde donde se capta información, evaluando protocolos según requerimientos como tiempo real y velocidad.
  • La aplicación móvil se desarrollará en Flutter, consumiendo servicios web expuestos por una API, considerando SOAPI WSDL o API Redfull como opciones viables.

Interfaz Móvil y Accesibilidad

  • Para la interfaz móvil se optará por tecnologías híbridas como Flutter e Ionic, teniendo en cuenta lo mencionado sobre las interfaces web previas. También se considerará el uso del servicio Lasgat Factory.
  • Las interfaces de usuario incluirán alternativas auditivas mediante productos como Red Speaker (texto a voz), mejorando así la accesibilidad del contenido presentado.

Comunicación entre Capas

  • La comunicación entre la capa de presentación y la lógica de negocio será a través de HTTPS utilizando certificados X509 versión 3, empleando el protocolo TLS para asegurar autenticidad e integridad en las comunicaciones.
  • Se plantea reutilizar parte de la arquitectura existente cumpliendo con principios de reutilización; además, los desarrollos colaborativos se realizarán bajo licencia EUPL conforme a normativas legales vigentes.

Elección del Lenguaje y Módulos Técnicos

  • El lenguaje elegido será Java debido a su compatibilidad multiplataforma, portabilidad e interoperabilidad, alineándose con el principio de neutralidad tecnológica establecido por regulaciones actuales.
  • Se implementarán módulos específicos como el módulo de autenticación que gestionará credenciales y tokens necesarios para interactuar con otros servicios mediante estándares Wteroperability y WS Security.

Cumplimiento Normativo

  • Un módulo RIS garantizará cumplimiento con leyes sobre transparencia (Ley 19/2013) y reutilización (Ley 37/2007), permitiendo acceso estructurado a datos desde portales oficiales como datos.gov.es.
  • En caso necesario, se podrá implementar un módulo reporting utilizando librerías específicas como Jasper Reports o Microsoft Reporting Services dependiendo del tipo requerido (listados o cuadros de mando).

Cuadro de Mando y Herramientas de Visualización

Conceptos Clave sobre Cuadros de Mando

  • Se discute la importancia de los cuadros de mando en la visualización de datos, enfatizando que deben ser herramientas para directivos y no listas personalizadas.
  • Los cuadros de mando presentan datos agregados, lo que permite una visión general y no detalles específicos como listados individuales.

Herramientas Recomendadas

  • Power BI es destacado como la mejor herramienta según el cuadrante mágico de Gartner, que clasifica las capacidades de diferentes herramientas.
  • Otras herramientas mencionadas incluyen Penta Jot Blue, Kulic, MicroStrategy y Grafana, cada una con sus propias características.

Normativa Relacionada

  • Se menciona el artículo 20 de la Ley Orgánica 3/2007 sobre igualdad efectiva entre hombres y mujeres, que establece que las estadísticas deben estar desagregadas por sexo.

Gestores Documentales y Workflow

Ventajas del Uso de Gestores Documentales

  • Al Fresco se presenta como un gestor documental que cumple con el estándar CEMIS para integración con Insight.
  • Se sugiere usar Magnolia o Open CMS como gestores de contenido; WordPress es mencionado pero no recomendado.

Implementación del Workflow

  • El motor de workflow puede ser el propio del gestor documental o implementarse a través de herramientas como JBM.
  • Se critica el uso del motor workflow Acceda debido a su enfoque limitado en procedimientos administrativos.

Automatización e Inteligencia Artificial

Sistemas Automatizados

  • La ESGAT tiene un sistema inteligente aún sin carta de servicios definida; se menciona la ignorancia sobre RPA (Robotic Process Automation).
  • Se plantea la posibilidad de implementar RPA interno o utilizar sistemas externos como los ofrecidos por ESGAT.

Integración con Big Data

  • La discusión incluye módulos o microservicios relacionados con inteligencia artificial; se anticipa una clase futura sobre big data e IA.

Acceso a Datos y Bases Relacionales

Comunicación entre Capas

  • La capa lógica del negocio debe comunicarse efectivamente con bases relacionales; se espera tener bases relacionales en casi todos los sistemas.

Uso de ORM

  • Se menciona Ibernate como ORM para facilitar la interacción con bases relacionales.

Consideraciones Finales sobre Bases de Datos

  • Oracle es presentado como una opción viable para servicios gestionados sin necesidad profunda en administración técnica.

¿Cómo converger hacia la tecnología de ESGAT?

Propuesta de Oracle y Almacenamiento de Datos

  • Oracle propone una convergencia tecnológica con ESGAT, utilizando su servicio de base de datos como servicio (DBaaS) y un data warehouse.
  • Se menciona el uso de Oracle Autonomous para almacenar datos recolectados, que servirán para informes y estadísticas, así como generación de "data marts" sectoriales.
  • Los datos estructurados se recibirán a través de procesos ETL implementados por SCOP o Apache Spark en Hadoop, ofreciendo flexibilidad al consumidor.
  • Se discute la inclusión de bases de datos NoSQL como DB o Cassandra para búsquedas masivas, además del uso de Elastic Search para almacenar comentarios en redes sociales.
  • La gestión de identidades se abordará mediante OpenLDAP, dejando las decisiones tecnológicas más profundas para la primera pregunta.

Arquitectura y Microservicios

  • Se destaca la importancia de elegir una arquitectura basada en microservicios, lo cual es crucial para el desarrollo eficiente del frontend y backend.
  • En el frontend se utilizarán interfaces web y aplicaciones móviles; se busca coherencia en la presentación visual.
  • Para la lógica del negocio, se propone Java con el framework Spring Boot debido a su amplia aceptación y eficacia en microservicios.
  • Se justifica el uso de Docker para aislar dependencias entre módulos; sin él podría haber conflictos y problemas de seguridad al desplegar binarios directamente en servidores.
  • Para orquestación, se recomienda Kubernetes u OpenShift por su capacidad para escalar horizontalmente y fomentar resiliencia.

Comunicación entre Microservicios

  • El API Gateway actuará como punto único entre el frontend y backend; será implementado con Nginx por sus capacidades avanzadas.
  • La comunicación entre microservicios puede realizarse mediante gRPC o APIs RESTful; también existe la opción del bus de mensajería RabbitMQ.
  • Se menciona un microservicio específico para reporting que interactúa con herramientas como Power BI dentro del ecosistema organizacional.
  • El cuadro de mando es esencial para visualizar datos a alto nivel; cualquier problema aquí podría afectar significativamente a los usuarios finales.

Desarrollo de Aplicaciones Móviles y Microservicios

Herramientas y Configuración

  • Se menciona la posibilidad de elegir entre un servidor íntegro o contenedores para implementar herramientas, destacando la flexibilidad en el uso de Kubernetes.
  • En el caso de usar Magnolia como gestor de contenidos, se aclara que no se programará, sino que se implementará directamente en el servidor o contenedor.

Acceso a Datos

  • Se discute la importancia del acceso a datos, mencionando que cada módulo puede tener su propia base de datos y que se utilizará Hibernate como ORM para la comunicación con bases de datos relacionales.
  • Se plantea el uso de Oracle para las bases de datos, enfatizando que los cambios entre diferentes configuraciones son sutiles pero significativos.

Movilidad y Aplicaciones Móviles

  • Se introduce el tema de movilidad en aplicaciones móviles, señalando su relevancia en proyectos anteriores (TIC A1 y A2).
  • Se plantean preguntas sobre alternativas para desarrollar aplicaciones móviles, subrayando la diferencia entre una aplicación móvil y una interfaz web.

Arquitectura y Conexiones

  • La conexión entre dispositivos móviles y servicios es crucial; las aplicaciones móviles deben conectarse a APIs REST para acceder a funcionalidades.
  • Se explica cómo las aplicaciones móviles pueden requerir autenticación al conectarse a servicios web mediante APIs REST.

Desarrollo Nativo vs. Híbrido

  • El desarrollo nativo permite un acceso más profundo a funcionalidades específicas del dispositivo, mientras que el desarrollo híbrido ofrece una solución más generalizada pero menos personalizada.
  • La elección entre desarrollo nativo (para iOS o Android específicamente) versus híbrido (un solo código para ambas plataformas), tiene implicaciones importantes en términos de mantenimiento y personalización.

¿Qué tecnologías se utilizan para el desarrollo de aplicaciones móviles?

Desarrollo Híbrido y Multiplataforma

  • Se discute la necesidad de aplicaciones que accedan a datos de memoria, biometría y GPS, destacando el desarrollo híbrido como una opción viable.
  • Flutter (de Google) y React Native (de Facebook) son mencionados como plataformas que permiten desarrollar aplicaciones con un solo código base para iOS y Android, facilitando el desarrollo multiplataforma.
  • Las Progressive Web Applications (PWA) son definidas como aplicaciones web que funcionan como móviles, accesibles desde navegadores pero limitadas en acceso a funciones del dispositivo.

Limitaciones de las PWA

  • La principal desventaja de las PWA es su incapacidad para acceder a funcionalidades del dispositivo, como la autenticación biométrica.
  • Se menciona que el desarrollo nativo es preferible para garantizar seguridad y experiencia óptima del usuario, aunque los frameworks multiplataforma pueden ser opciones adecuadas.

Consideraciones sobre la Arquitectura

  • Se enfatiza la importancia de entender las opciones tecnológicas al desarrollar aplicaciones móviles, especialmente en contextos académicos o profesionales.
  • En situaciones con limitaciones presupuestarias, se sugiere optar por PWA debido a su fácil acceso y actualizaciones automáticas.

Estrategia de Apificación

  • La arquitectura del sistema debe incluir una API REST segura y eficiente para asegurar una buena integración entre la API y la aplicación móvil.
  • Se destaca que muchas organizaciones están enfocándose en estrategias de apificación para mejorar sus servicios digitales.

Notificaciones Push y Registro en SIA

  • Se plantea utilizar funcionalidades del servicio común SIM para enviar notificaciones push personalizadas a los usuarios sobre actualizaciones relevantes.
  • Una vez desarrollada la aplicación móvil, esta debe registrarse en el Sistema de Información Administrativa (SIA), lo cual ha sido ampliado recientemente para incluir aplicaciones móviles.

Colaboración de ESGAT y Desarrollo de APIs

Introducción a la colaboración

  • Se menciona que ESGAT colabora con organismos para ayudar en el desarrollo, aunque no se profundiza en este aspecto.
  • Se presenta un documento extraído que contiene información relevante sobre el sistema de diseño con Figma, utilizado para crear interfaces.

Diseño y Arquitectura

  • Se discute la arquitectura de Flutter, destacando su uso en proyectos como App Factory y las ventajas que ofrece.
  • La integración continua y la gestión de APIs son temas clave en la estrategia de apificación.

Concepto de Apificación

  • La apificación se define como una filosofía estratégica que utiliza APIs como parte fundamental del negocio.
  • En App Factory, se requiere desarrollar una estructura organizada para gestionar las APIs necesarias para aplicaciones móviles.

Tipos de APIs

  • Se diferencian entre APIs abiertas (públicas), accesibles por terceros, y APIs privadas, utilizadas internamente para integrar sistemas.
  • Las APIs públicas permiten a desarrolladores externos mejorar o integrar sus aplicaciones con los sistemas existentes.

Gestión y Gobernanza de APIs

  • Se presenta un esquema sobre la arquitectura del API Management en App Factory, enfatizando la necesidad de gobernar las múltiples APIs expuestas.
  • El uso de un API Gateway es crucial para centralizar y gestionar servicios web desde diferentes organismos.

Ciclo de Vida y Seguridad

  • Mulesoft AnyPoint se menciona como herramienta clave para el ciclo de vida completo de las APIs: desde el diseño hasta la operación.
  • La autenticación segura es esencial; se discuten flujos específicos como el flujo del código de autorización para mitigar ataques.

¿Cómo funciona la autenticación en aplicaciones móviles?

Introducción a la autenticación y API Gateway

  • Se menciona el uso de un token Samele para la autenticación en aplicaciones móviles, que se obtiene tras pasar por un proceso de validación con un certificado electrónico instalado en el móvil.
  • La importancia del API Gateway en una arquitectura de microservicios es destacada, ya que permite gestionar cómo los organismos exponen sus APIs para ser utilizadas por aplicaciones móviles.

Desarrollo y gestión de aplicaciones

  • Se explica que aunque una aplicación móvil puede ser desarrollada externamente (por ejemplo, en Appactory), debe estar registrada adecuadamente con Mulesoft AnyPoint para garantizar su exposición correcta a través del API Gateway.
  • Se discute la complejidad de mezclar proyectos de gestión de APIs con el desarrollo de aplicaciones, sugiriendo que esto puede generar confusiones sobre las responsabilidades y objetivos.

Conclusiones sobre microservicios y diseño

  • El presentador concluye la clase sobre microservicios enfatizando la relevancia del diseño de interfaces dentro del contexto de las arquitecturas lógicas y servicios web. Además, se menciona que se proporcionará un documento PDF con información adicional.