Déjenos sus datos y le enviaremos un resumen por correo electrónico.
Consiento el tratamiento de mis datos personales para el envío de material publicitario personalizado de conformidad con la Política de privacidad. Al confirmar el envío, acepta recibir material de marketing
Gracias.

El formulario se ha enviado correctamente.
Encontrará más información en su buzón.

Innowise es una empresa internacional de desarrollo de software de ciclo completo fundada en 2007. Somos un equipo de más de 1800+ profesionales de TI que desarrollan software para otros profesionales de todo el mundo.
Conócenos
Innowise es una empresa internacional de desarrollo de software de ciclo completo de software de ciclo completo fundada en 2007. Somos un equipo de más de 1600+ profesionales de TI que desarrollan software para otros profesionales de todo el mundo.

Mejora de la aplicación web de GDS: multiplicación por dos de la velocidad de integración de la API

Innowise llevó a cabo una refactorización exhaustiva del código de la plataforma y simplificó significativamente el proceso de integración de nuevas API. 

Cliente

Industria

Viajar

Región

UE

Cliente desde

2023

Nuestro cliente, una destacada empresa del sector de los viajes, opera un sistema de distribución global (GDS) para la emisión de billetes de ferry y otros servicios de viaje. Esta aplicación web es un punto de contacto único para gestionar diversas reservas de ferry, incluidos viajes de larga y corta distancia, tipos de plazas múltiples e incluso itinerarios complejos de varios saltos.

La información detallada sobre el cliente no puede revelarse en virtud de los términos del acuerdo de confidencialidad.

Desafío

Superar las limitaciones del mercado y las lagunas de documentación

Este cliente se encontraba limitado por el tamaño de su mercado actual y quería expandirse aún más. Para conseguirlo, querían establecer integraciones API con agencias de viajes. 

Además, la ausencia de una documentación estructurada de la arquitectura del software era un importante punto débil. Esta carencia planteó varios retos, como poner al día a los miembros del equipo recién contratados, mantener un entendimiento común del sistema entre las distintas partes interesadas e implantar sin problemas nuevas funciones del producto. 

En consecuencia, el cliente recurrió a nosotros para la integración de API y la creación de una completa arquitectura de documentación de software.

Solución

Aumento de la eficacia de las aplicaciones web y perfeccionamiento de las técnicas de integración de API

Innowise proporcionó modernización de aplicaciones web y optimizó Integraciones API con las agencias de viajes para elevar la experiencia del ferry en toda Europa.

Creación de documentación sobre arquitectura de software

Al principio, realizamos entrevistas exhaustivas con el equipo de desarrollo del cliente y las partes interesadas. Así nos aseguramos de captar la esencia de lo que necesitaban. 

Con este caudal de información, nos propusimos diseñar una estructura de documentación intuitiva y comprensible. La documentación abarcaba desde descripciones generales del sistema de alto nivel hasta detalles a nivel de código. Incorporamos diagramas, organigramas y elementos interactivos para hacerla informativa y atractiva.

Pero no se trataba sólo de crear un documento estático. Según nuestra experiencia, la mejor documentación es la que vive, respira y evoluciona con el sistema que describe. Así que implantamos un proceso de documentación dinámica que se actualizaba continuamente a medida que el sistema crecía y cambiaba. Este enfoque de documento vivo garantizaba que la documentación estuviera siempre actualizada.

Además, nos centramos en que la documentación fuera accesible y comprensible para todas las partes implicadas. Para ello, evitamos la jerga, utilizamos un lenguaje claro y conciso y nos aseguramos de que los interesados, técnicos o no, pudieran encontrarle valor.

En esencia, al establecer esta completa arquitectura de documentación de software, no sólo sentamos las bases del proyecto actual, sino que proporcionamos al cliente una herramienta que le ayudaría en futuros desarrollos, incorporando a nuevos miembros del equipo y facilitando una comunicación clara entre todas las partes implicadas. Fue la piedra angular sobre la que se construyeron todos los desarrollos posteriores.

Refactorización de código y migración a microservicios

Al sumergirnos en el sistema existente del cliente, encontramos la versión obsoleta de Java con duplicaciones de código y prácticas anticuadas. La arquitectura inicial, una aplicación monolítica, había cumplido su propósito en las primeras fases. Sin embargo, a medida que la plataforma crecía, este enfoque mostró sus limitaciones. La escalabilidad se hizo ardua y el código base se convirtió en un laberinto confuso cada vez más difícil de recorrer y actualizar sin introducir nuevos errores.

Basándonos en nuestro análisis, determinamos que la transición a una arquitectura de microservicios era necesaria. Los microservicios ofrecían una solución a los problemas de escalabilidad y agilidad del sistema monolítico. Cada microservicio de esta arquitectura funciona de forma independiente, lo que significa que los cambios realizados en un servicio no afectan directamente a los demás. Esta independencia es crucial para un sistema como el de nuestro cliente, en el que las actualizaciones e integraciones frecuentes son la norma.

La migración a una arquitectura de microservicios no fue un proceso de un día para otro. En su lugar, adoptamos un enfoque incremental, desmantelando cuidadosamente la estructura monolítica y volviéndola a montar en una arquitectura más dinámica basada en microservicios. Este método nos permitió mantener la funcionalidad del sistema durante toda la transición, evitando cualquier tiempo de inactividad significativo que pudiera afectar negativamente a las operaciones de nuestro cliente.

Extrajimos cuidadosamente cada servicio, lo refinamos y lo desplegamos de forma independiente. Nuestros desarrolladores separaron servicios como la reserva de billetes y la gestión de itinerarios en unidades distintas. Esta separación permitía, por ejemplo, actualizar el sistema de gestión de itinerarios sin arriesgarse a consecuencias imprevistas en el sistema de reservas.

Para esta transformación, utilizamos Spring Boot y Spring Cloud. Spring Boot facilitó la instalación y configuración de microservicios, acelerando el desarrollo. Spring Cloud ofrecía valiosas herramientas para sistemas distribuidos, como la gestión de la configuración y el descubrimiento de servicios.

También integramos Kafka como corredor de mensajes. Su capacidad para gestionar grandes volúmenes de datos y garantizar una comunicación fiable entre servicios era crucial, sobre todo teniendo en cuenta el elevado flujo de datos de la nueva arquitectura.

Por último, implementamos nuevos microservicios en la última versión de Java. Esta actualización contribuyó a mejorar el rendimiento y aumentar la seguridad, formando una base sólida y moderna para toda la arquitectura.

Desarrollo de un nuevo módulo de procesamiento

A medida que perfeccionábamos y mejorábamos el sistema de nuestro cliente, detectamos la necesidad de una forma más eficaz de gestionar las nuevas integraciones. Esto nos llevó a desarrollar un módulo de procesamiento especializado, una adición fundamental al sistema que aportó mejoras sustanciales al proceso de integración.

Afrontar los retos de la redundancia

Uno de los principales retos a los que nos enfrentábamos era la naturaleza repetitiva del proceso de escritura de código para cada nueva integración. Antes de desarrollar este módulo de procesamiento, cada nueva integración con otra agencia o servicio de viajes requería una cantidad significativa de código escrito desde cero.

Diseño del módulo de procesamiento

El módulo de procesamiento que desarrollamos se diseñó para actuar como interfaz versátil entre el sistema de nuestro cliente y las API externas. Este módulo consta de plantillas y herramientas preconfiguradas y personalizables que reducen considerablemente la necesidad de escribir código nuevo para cada integración. Funciona abstrayendo funcionalidades y procesos estándar que suelen estar implicados en la integración con diversos servicios de viajes, como sistemas de reserva de billetes o bases de datos de clientes.

El módulo incluye varias funciones clave:

  • Manejadores de comunicación API: están diseñadas para gestionar las solicitudes API entrantes y salientes de las agencias de viajes. Gestionan las complejidades de los distintos protocolos API y formatos de datos, facilitando la conexión con sistemas externos.
  • Herramientas de mapeo y transformación de datos: A menudo, las estructuras de datos varían entre los distintos sistemas. Nuestro módulo incluye herramientas que mapean y transforman automáticamente los datos desde y hacia el formato requerido por el sistema de nuestro cliente y los proveedores de servicios externos. Esto facilita el intercambio de datos y la integración.
  • Interfaz de configuración y personalización: Reconociendo la necesidad de flexibilidad, el módulo está equipado con una interfaz que permite a los desarrolladores configurar y personalizar las integraciones fácilmente sin profundizar en el código central. Esto permite una rápida adaptación a los requisitos específicos de cada nueva agencia de viajes o servicio.

Integraciones API con agencias de viajes

Posteriormente, integramos el GDS de nuestro cliente con 4 agencias de viajes que utilizaban mecanismos de intercambio REST y SOAP. Estas integraciones fueron cruciales para mejorar los procesos de reserva, modificación y cancelación de billetes para los servicios de ferry. Nuestro reto era crear un marco de integración capaz de gestionar una amplia gama de reservas de ferry, incluidas diferentes rutas, configuraciones de asientos y servicios complementarios.

La implementación de estas integraciones implicó varios pasos críticos. Al principio, examinamos las API de las agencias para conocer sus estructuras de datos y sus necesidades funcionales. Aprovechando nuestro módulo de procesamiento recién desarrollado, creamos conectores personalizados para cada agencia. Estos conectores se adaptaron para gestionar los formatos de datos y flujos de trabajo operativos específicos de cada agencia, garantizando una integración de datos fluida con el SGD de nuestro cliente.

El proceso incluyó el despliegue de sofisticadas herramientas de mapeo y transformación de datos dentro de nuestro módulo de procesamiento. Esta tecnología desempeñó un papel crucial para garantizar la integridad y coherencia de los datos. Nuestro equipo realizó pruebas exhaustivas para validar la eficacia y fiabilidad de estas integraciones. Simulamos varios escenarios de reservas para probar las integraciones en diversas condiciones. Tras el éxito de las pruebas, desplegamos las integraciones en el entorno real, estableciendo mecanismos de supervisión continua para supervisar su rendimiento y resolver rápidamente cualquier problema.

Tecnologías

Back end

Java 17, Spring, Spring Boot, Spring Cloud, Hibernate

API

REST, SOAP

Almacenamiento de datos

PostgreSQL, Memcached

Corredores de mensajes

Kafka

DevOps

Canalizaciones CI/CD de GitLab

Servicios

Gitlab, Jira, Confluence

Proceso

Descubrimiento y análisis

Creamos un documento de Visión y Alcance para alinear los objetivos del proyecto con las expectativas del cliente en la fase inicial. Este documento sentó las bases del proyecto al comprender los objetivos del cliente y los retos del sistema.

Desarrollo de documentación sobre arquitectura de software

A continuación desarrollamos una documentación dinámica y de fácil comprensión, diseñada para evolucionar en sincronía con el proyecto, optimizando así la comunicación del equipo y haciendo más eficiente el proceso de incorporación.

Diseño y desarrollo

Aquí nos centramos en implantar la arquitectura de microservicios y crear el módulo de procesamiento. Esta fase puso de manifiesto nuestra experiencia técnica y dio como resultado una arquitectura de sistema refinada y un módulo de procesamiento totalmente funcional.

Integración y pruebas

Aprovechando el módulo de procesamiento, integramos a la perfección las API de las agencias de viajes. Unas pruebas rigurosas garantizaron la fiabilidad del sistema y una mayor funcionalidad.

Comunicación y seguimiento de tareas

Microsoft Teams era nuestra principal herramienta de comunicación, ya que agilizaba los debates, actualizaba las acciones y mantenía un repositorio central de información. Utilizamos Jira para mantener una gestión organizada y eficiente del flujo de trabajo para el seguimiento de las tareas.

Equipo

4

Ingenieros de back-end

1

Ingeniero de QA

1

Jefe de equipo

1

Jefe de proyecto

1

Arquitecto de software

1

Analista de negocio

1

Gestor de entregas

Resultados

Lograr resultados transformadores con un aumento vertiginoso de las ventas y una mayor presencia en el mercado

Tras la exitosa implementación, la aplicación web del cliente mostró notables mejoras de rendimiento. La combinación de la refactorización del código y la migración a una arquitectura de microservicios se tradujo en un funcionamiento notablemente más fluido. Esta revisión técnica, junto con la perfecta integración de nuevos servicios, catalizó un aumento sustancial de las ventas del cliente.

El impacto de esta transformación se extendió más allá del ámbito financiero. Se tradujo en una expansión significativa, no sólo de los ingresos, sino también de la presencia geográfica. Esto supuso un salto trascendental en la cobertura de mercado de la empresa, reforzando su posición como actor destacado en el sector. Nuestra colaboración con el cliente continúa, con más integraciones en el horizonte.

Duración del proyecto
  • Marzo 2023 - En curso

30%

aumento de las ventas

2x

aumento de la velocidad de integración de la API

Póngase en contacto con nosotros

Reservar una llamada o rellene el siguiente formulario y nos pondremos en contacto con usted cuando hayamos procesado su solicitud.

    Por favor, facilítenos detalles del proyecto, duración, tecnologías, especialistas informáticos necesarios y otra información relevante.
    Grabe un mensaje de voz sobre su proyecto
    para ayudarnos a comprenderlo mejor.
    Adjunte los documentos adicionales si es necesario
    Cargar archivo

    Puede adjuntar hasta 1 archivo de 2 MB en total. Archivos válidos: pdf, jpg, jpeg, png

    Le informamos de que cuando haga clic en el botón Enviar, Innowise procesará sus datos personales de acuerdo con nuestra Política de privacidad con el fin de proporcionarle la información adecuada.

    ¿Qué pasa después?

    1

    Una vez recibida y procesada su solicitud, nos pondremos en contacto con usted para detallar las necesidades de su proyecto y firmar un acuerdo de confidencialidad que garantice la confidencialidad de la información.

    2

    Después de examinar los requisitos, nuestros analistas y desarrolladores elaboran una propuesta de proyecto con el alcance de las obras, el tamaño del equipo, el tiempo y las estimaciones de costos.

    3

    Concertamos una reunión con usted para discutir la oferta y llegar a un acuerdo.

    4

    Firmamos un contrato y comenzamos a trabajar en su proyecto lo más rápido posible.

    Gracias.

    Su mensaje ha sido enviado.
    Procesaremos su solicitud y nos pondremos en contacto con usted lo antes posible.

    Gracias.

    Su mensaje ha sido enviado.
    Procesaremos su solicitud y nos pondremos en contacto con usted lo antes posible.

    flecha