O formulário foi enviado com sucesso.
Encontrará mais informações na sua caixa de correio.
Selecionar a língua
A Innowise realizou uma refatoração abrangente do código da plataforma e simplificou significativamente o processo de integração de novas APIs.
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.
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.
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.
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.
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.
À 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.
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.
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:
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.
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
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.
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.
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.
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.
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.
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
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.
30%
aumento das vendas
2x
aumento da velocidade de integração da API
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.
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.
Marcamos uma reunião consigo para discutir a oferta e chegar a um acordo.
Assinamos um contrato e começamos a trabalhar no seu projecto o mais rapidamente possível.
© 2007-2024 Innowise. Todos os direitos reservados.
Política de privacidade. Política de cookies.
Innowise Sp. z o.o Ul. Rondo Ignacego Daszyńskiego, 2B-22P, 00-843 Varsóvia, Polónia
Ao inscrever-se, o utilizador concorda com a nossa Política de privacidadeincluindo a utilização de cookies e a transferência das suas informações pessoais.
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.