Por favor, deixe os seus contactos, enviar-lhe-emos a nossa visão geral por e-mail
Autorizo o tratamento dos meus dados pessoais para o envio de materiais de marketing personalizados em conformidade com a Política de privacidade. Ao confirmar a submissão, o utilizador aceita receber materiais de marketing
Obrigado!

O formulário foi enviado com sucesso.
Encontrará mais informações na sua caixa de correio.

Innowise é uma empresa internacional de desenvolvimento de software de ciclo completo fundada em 2007. Somos uma equipa de mais de 1800+ profissionais de TI que desenvolvem software para outros profissionais em todo o mundo.
Sobre nós
O Innowise é uma empresa internacional de desenvolvimento de software de ciclo completo fundada em 2007. Somos uma equipa de mais de 1600+ profissionais de TI que desenvolvem software para outros profissionais em todo o mundo.

Melhoria da aplicação Web GDS: aumento de 2x na velocidade de integração da API

A Innowise realizou uma refatoração abrangente do código da plataforma e simplificou significativamente o processo de integração de novas APIs. 

Cliente

Indústria

Viagens

Região

UE

Cliente desde

2023

O nosso cliente, um importante interveniente no sector das viagens, opera um sistema de distribuição global (GDS) para a emissão de bilhetes de ferry e outros serviços de viagem. Esta aplicação Web é um ponto de contacto único para a gestão de várias reservas de ferry, incluindo viagens de longa e curta distância, tipos de lugares múltiplos e até itinerários complexos com várias viagens.

As informações pormenorizadas sobre o cliente não podem ser divulgadas ao abrigo dos termos do NDA.

Desafio

Navegar pelas limitações do mercado e pelas lacunas na documentação

Este cliente viu-se limitado pela dimensão atual do seu mercado e queria expandir-se ainda mais. Para conseguir esta expansão, o seu objetivo era criar integrações de API com agências de viagens. 

Além disso, a ausência de uma documentação estruturada da arquitetura do software era um ponto problemático significativo. Esta lacuna deu origem a vários desafios, tais como a atualização dos membros da equipa recém-contratados, a manutenção de um entendimento comum do sistema entre os vários intervenientes e a implementação sem problemas de novas funcionalidades do produto. 

Consequentemente, o cliente recorreu a nós para integrações de API e para criar uma arquitetura de documentação de software abrangente.

Solução

Aumentar a eficiência das aplicações Web e aperfeiçoar as técnicas de integração de API

O Innowise forneceu a modernização de aplicativos da Web e otimizou Integrações API com agências de viagens para elevar a experiência do ferry em toda a Europa.

Criar uma documentação de arquitetura de software

No início, começámos por realizar entrevistas exaustivas com a equipa de desenvolvimento do cliente e com as partes interessadas. Esta abordagem garantiu que captássemos a essência do que eles precisavam. 

Com esta riqueza de informação, propusemo-nos a conceber uma estrutura de documentação intuitiva e compreensível. A documentação abrangia tudo, desde visões gerais de alto nível do sistema até detalhes ao nível do código. Incorporámos diagramas, fluxogramas e elementos interactivos para a tornar informativa e cativante.

Mas não se tratava apenas de criar um documento estático. Na nossa experiência, a melhor documentação é aquela que vive, respira e evolui com o sistema que descreve. Assim, implementámos um processo de documentação dinâmico que seria continuamente atualizado à medida que o sistema crescesse e mudasse. Esta abordagem de documento vivo garantiu que a documentação estivesse sempre actualizada.

Além disso, concentrámo-nos em tornar a documentação acessível e compreensível para todas as partes envolvidas. Isto significava evitar o jargão, utilizar uma linguagem clara e concisa e garantir que os intervenientes técnicos e não técnicos pudessem encontrar valor na documentação.

Essencialmente, ao estabelecer esta arquitetura abrangente de documentação de software, não nos limitámos a lançar as bases para o projeto atual, fornecemos ao cliente uma ferramenta que ajudaria no desenvolvimento futuro, na integração de novos membros da equipa e na facilitação de uma comunicação clara entre todas as partes envolvidas. Foi a pedra angular sobre a qual todos os desenvolvimentos posteriores foram construídos.

Refacção de código e migração para microsserviços

Ao mergulharmos no sistema existente do cliente, encontrámos a versão obsoleta de Java com duplicações de código e práticas desactualizadas. A arquitetura inicial, uma aplicação monolítica, tinha servido o seu propósito nas fases iniciais. No entanto, com o crescimento da plataforma, esta abordagem mostrou as suas limitações. A escalabilidade tornou-se árdua e a base de código tornou-se um labirinto confuso, cada vez mais difícil de navegar e atualizar sem introduzir novos erros.

Com base na nossa análise, determinámos que era necessário fazer a transição para uma arquitetura de microsserviços. Os microsserviços ofereciam uma solução para os problemas de escalabilidade e agilidade do sistema monolítico. Cada microsserviço desta arquitetura funciona de forma independente, o que significa que as alterações efectuadas num serviço não afectam diretamente os outros. Esta independência é crucial para um sistema como o do nosso cliente, onde as actualizações e integrações frequentes são o padrão.

A migração para uma arquitetura de microsserviços não foi um processo que se realizou de um dia para o outro. Em vez disso, adoptámos uma abordagem incremental, desmontando cuidadosamente a estrutura monolítica e voltando a montá-la numa arquitetura mais dinâmica, baseada em microsserviços. Este método permitiu-nos manter a funcionalidade do sistema durante a transição, evitando qualquer tempo de inatividade significativo que pudesse afetar negativamente as operações do nosso cliente.

Extraímos cuidadosamente cada serviço, refinámo-lo e implementámo-lo de forma independente. Os nossos programadores separaram serviços como a reserva de bilhetes e a gestão de itinerários em unidades distintas. Esta separação significava que as actualizações ao sistema de gestão de itinerários, por exemplo, podiam ser feitas sem arriscar consequências indesejadas no sistema de reservas.

Para esta transformação, utilizámos o Spring Boot e o Spring Cloud. O Spring Boot facilitou a instalação e configuração de microsserviços, acelerando o desenvolvimento. O Spring Cloud ofereceu ferramentas valiosas para sistemas distribuídos, como gerenciamento de configuração e descoberta de serviços.

Também integrámos o Kafka como o nosso corretor de mensagens. A sua capacidade para lidar com grandes volumes de dados e garantir uma comunicação fiável entre serviços foi crucial, especialmente devido ao elevado fluxo de dados da nova arquitetura.

Por último, implementámos novos microsserviços na versão mais recente de Java. Esta atualização contribuiu para um melhor desempenho e uma segurança reforçada, formando uma base sólida e moderna para toda a arquitetura.

Elaboração do desenvolvimento de um novo módulo de processamento

À medida que aperfeiçoámos e melhorámos o sistema do nosso cliente, identificámos a necessidade de uma forma mais eficiente de lidar com novas integrações. Isto levou ao desenvolvimento de um módulo de processamento especializado, uma adição fundamental ao sistema que trouxe melhorias substanciais no processo de integração.

Resolver os desafios da redundância

Um dos principais desafios que enfrentámos foi a natureza repetitiva do processo de escrita de código para cada nova integração. Antes do desenvolvimento deste módulo de processamento, cada nova integração com outro agência ou serviço de viagens exigiu uma quantidade significativa de código escrito de raiz.

Conceção do módulo de processamento

O módulo de processamento que desenvolvemos foi concebido para atuar como uma interface versátil entre o sistema do nosso cliente e APIs externas. Este módulo consiste em modelos e ferramentas pré-construídos e personalizáveis que reduzem significativamente a necessidade de escrever novo código para cada integração. Funciona através da abstração de funcionalidades e processos padrão normalmente envolvidos na integração com vários serviços de viagens, tais como sistemas de reserva de bilhetes ou bases de dados de clientes.

O módulo inclui várias características-chave:

  • Manipuladores de comunicação API: foram concebidos para gerir os pedidos de API de entrada e de saída das agências de viagens. Lidam com as complexidades dos diferentes protocolos API e formatos de dados, facilitando a ligação a sistemas externos.
  • Ferramentas de mapeamento e transformação de dados: Muitas vezes, as estruturas de dados variam entre sistemas diferentes. O nosso módulo inclui ferramentas que mapeiam e transformam automaticamente os dados de e para o formato exigido pelo sistema do nosso cliente e pelos fornecedores de serviços externos. Isto facilita o intercâmbio e a integração de dados.
  • Interface de configuração e personalização: Reconhecendo a necessidade de flexibilidade, o módulo está equipado com uma interface que permite aos programadores configurar e personalizar facilmente as integrações sem se aprofundarem no código principal. Isto permite uma adaptação rápida aos requisitos específicos de cada nova agência de viagens ou serviço.

Integrações de API com agências de viagens

Posteriormente, integrámos o GDS do nosso cliente com 4 agências de viagens que utilizavam mecanismos de troca REST e SOAP. Estas integrações foram cruciais para melhorar os processos de reserva, modificação e cancelamento de bilhetes para serviços de ferry. O nosso desafio foi criar uma estrutura de integração capaz de gerir uma gama diversificada de reservas de ferry, incluindo diferentes rotas, configurações de lugares e serviços suplementares.

A implementação destas integrações envolveu várias etapas críticas. Inicialmente, analisámos as APIs das agências para compreender as suas estruturas de dados e exigências funcionais. Aproveitando o nosso módulo de processamento recentemente desenvolvido, criámos conectores personalizados para cada agência. Estes conectores foram adaptados para lidar com os formatos de dados e fluxos de trabalho operacionais específicos de cada agência, garantindo uma integração de dados fluida com o GDS do nosso cliente.

O processo incluiu a implementação de ferramentas sofisticadas de mapeamento e transformação de dados no nosso módulo de processamento. Esta tecnologia desempenhou um papel crucial na garantia da integridade e consistência dos dados. A nossa equipa realizou testes exaustivos para validar a eficácia e a fiabilidade destas integrações. Simulámos vários cenários de reserva para testar as integrações em diversas condições. Após testes bem sucedidos, implementámos as integrações no ambiente real, criando mecanismos de monitorização contínua para supervisionar o seu desempenho e resolver rapidamente quaisquer problemas.

Tecnologias

Back end

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

API

REST, SOAP

Armazenamento de dados

PostgreSQL, Memcached

Corretores de mensagens

Kafka

DevOps

Pipelines de CI/CD do GitLab

Serviços

Gitlab, Jira, Confluence

Processo

Descoberta e análise

Criámos um documento de Visão e Âmbito para alinhar os objectivos do projeto com as expectativas do cliente na fase inicial. Este documento estabeleceu as bases do projeto ao compreender os objectivos do cliente e os desafios do sistema.

Desenvolvimento de documentação de arquitetura de software

Em seguida, desenvolvemos uma documentação dinâmica e facilmente compreensível, concebida para evoluir em sincronia com o projeto, optimizando assim a comunicação da equipa e tornando o processo de integração mais eficiente.

Concepção e desenvolvimento

Aqui, concentrámo-nos na implementação da arquitetura de microsserviços e na elaboração do módulo de processamento. Esta fase demonstrou os nossos conhecimentos técnicos, resultando numa arquitetura de sistema refinada e num módulo de processamento totalmente funcional.

Integração e testes

Aproveitando o módulo de processamento, integrámos sem problemas as API das agências de viagens. Testes rigorosos garantiram a fiabilidade do sistema e uma funcionalidade melhorada.

Comunicação e controlo de tarefas

O Microsoft Teams era a nossa principal ferramenta de comunicação, simplificando as discussões, actualizando as partilhas e mantendo um repositório central de informações. Utilizámos o Jira para manter a organização e a gestão eficiente do fluxo de trabalho para o acompanhamento de tarefas.

Equipa

4

Engenheiros de back-end

1

Engenheiro de QA

1

Chefe de equipa

1

Gestor de projectos

1

Arquiteto de software

1

Analista de negócios

1

Gestor de entregas

Resultados

Alcançar resultados transformadores com um aumento das vendas e uma presença alargada no mercado

Após a implementação bem-sucedida, a aplicação Web do cliente registou melhorias de desempenho notáveis. A combinação da refacção do código e da migração para uma arquitetura de microsserviços resultou numa operação notavelmente mais suave. Esta revisão técnica, juntamente com a integração perfeita de novos serviços, catalisou um aumento substancial nas vendas do cliente.

O impacto desta transformação ultrapassou o domínio financeiro. Conduziu a uma expansão significativa, não só em termos de receitas, mas também de presença geográfica. Isto marcou um salto importante na cobertura de mercado da empresa, reforçando a sua posição como um ator proeminente no sector. A nossa parceria com o cliente está em curso, com mais integrações no horizonte.

Duração do projecto
  • março de 2023 - Em curso

30%

aumento das vendas

2x

aumento da velocidade de integração da API

Contactar-nos!

Marcar uma chamada ou preencha o formulário abaixo e entraremos em contacto consigo assim que tivermos processado o seu pedido.

    Inclua os detalhes do projeto, a duração, o conjunto de tecnologias, os profissionais de TI necessários e outras informações relevantes
    Gravar uma mensagem de voz sobre o seu
    projeto para nos ajudar a compreendê-lo melhor
    Anexar documentos adicionais, se necessário
    Enviar ficheiro

    Pode anexar até 1 ficheiro de 2MB no total. Ficheiros válidos: pdf, jpg, jpeg, png

    Informamos que, ao clicar no botão Enviar, o Innowise's processará os seus dados pessoais de acordo com a nossa Política de Privacidade com o objectivo de lhe fornecer informações adequadas.

    O que é que acontece a seguir?

    1

    Após termos recebido e processado o seu pedido, entraremos em contacto consigo para detalhar as necessidades do seu projecto e assinar um NDA para garantir a confidencialidade das informações.

    2

    Após a análise dos requisitos, os nossos analistas e programadores elaboram uma proposta de projecto com o âmbito dos trabalhos, tamanho da equipa, tempo e custos e custos.

    3

    Marcamos uma reunião consigo para discutir a oferta e chegar a um acordo.

    4

    Assinamos um contrato e começamos a trabalhar no seu projecto o mais rapidamente possível.

    Obrigado!

    A sua mensagem foi enviada.
    Processaremos o seu pedido e contactá-lo-emos o mais rapidamente possível.

    Obrigado!

    A sua mensagem foi enviada.
    Processaremos o seu pedido e contactá-lo-emos o mais rapidamente possível.

    seta