Laat uw contactgegevens achter, dan sturen we u ons overzicht per e-mail.
Ik geef toestemming voor het verwerken van mijn persoonlijke gegevens om gepersonaliseerd marketingmateriaal te sturen in overeenstemming met de Privacybeleid. Door de inzending te bevestigen, gaat u akkoord met het ontvangen van marketingmateriaal
Bedankt.

Het formulier is succesvol verzonden.
Meer informatie vindt u in uw mailbox.

Innowise is een internationaal full-cycle software ontwikkelingsbedrijf opgericht in 2007. Wij zijn een team van 1800+ IT professionals die software ontwikkelen voor andere professionals wereldwijd.
Over ons
Innowise is een internationaal full-cycle softwareontwikkelingsbedrijf bedrijf opgericht in 2007. Wij zijn een team van 1600+ IT professionals die software ontwikkelen voor andere professionals wereldwijd.

Verbetering GDS webapplicatie: 2x hogere API-integratiesnelheid

Innowise voerde een uitgebreide refactoring van de platformcode uit en vereenvoudigde het integratieproces van nieuwe API's aanzienlijk. 

Klant

Industrie

Reizen

Regio

EU

Klant sinds

2023

Onze klant, een prominente speler in de reisbranche, beheert een wereldwijd distributiesysteem (GDS) voor de uitgifte van ferrytickets en andere reisdiensten. Deze webapplicatie is een centraal aanspreekpunt voor het beheren van verschillende veerbootboekingen, waaronder lange- en korteafstandsreizen, multi-seat types en zelfs complexe multi-hop routes.

Gedetailleerde informatie over de klant kan niet worden vrijgegeven onder de voorwaarden van de NDA.

Uitdaging

Navigeren door marktbeperkingen en documentatiehiaten

Deze klant vond zichzelf beperkt door hun huidige marktomvang en wilde verder uitbreiden. Om deze uitbreiding te bereiken, wilden ze API-integraties met reisbureaus opzetten. 

Daarnaast was het ontbreken van een gestructureerde documentatie van de softwarearchitectuur een belangrijk pijnpunt. Deze leemte leidde tot verschillende uitdagingen, zoals het op snelheid brengen van nieuw aangenomen teamleden, het behouden van een gemeenschappelijk begrip van het systeem onder verschillende belanghebbenden en het soepel implementeren van nieuwe productfuncties. 

Daarom wendde de klant zich tot ons voor API-integraties en voor het maken van een uitgebreide softwaredocumentatiearchitectuur.

Oplossing

De efficiëntie van webapplicaties verhogen en API-integratietechnieken bijschaven

Innowise zorgde voor modernisering van de webapplicatie en optimaliseerde API-integraties met reisbureaus om de veerbootervaring in heel Europa te verbeteren.

Software-architectuurdocumentatie maken

Aan het begin hebben we uitgebreide interviews gehouden met het ontwikkelteam en de belanghebbenden van de klant. Deze aanpak zorgde ervoor dat we de essentie van hun behoeften vastlegden. 

Met deze schat aan informatie zijn we aan de slag gegaan om een intuïtieve en begrijpelijke documentatiestructuur te ontwerpen. De documentatie omvatte alles van systeemoverzichten op hoog niveau tot details op codeniveau. We verwerkten diagrammen, stroomdiagrammen en interactieve elementen om het informatief en boeiend te maken.

Maar het ging niet alleen om het maken van een statisch document. Onze ervaring is dat de beste documentatie leeft, ademt en evolueert met het systeem dat het beschrijft. Daarom implementeerden we een dynamisch documentatieproces dat voortdurend werd bijgewerkt naarmate het systeem groeide en veranderde. Deze aanpak met levende documenten zorgde ervoor dat de documentatie altijd werd bijgewerkt.

Bovendien richtten we ons op het toegankelijk en begrijpelijk maken van de documentatie voor alle betrokken partijen. Dit betekende dat we jargon vermeden, duidelijke en beknopte taal gebruikten en ervoor zorgden dat technische en niet-technische belanghebbenden er waarde aan konden hechten.

In wezen legden we met het opzetten van deze uitgebreide softwaredocumentatiearchitectuur niet alleen de basis voor het huidige project, maar voorzagen we de klant ook van een hulpmiddel dat zou helpen bij toekomstige ontwikkeling, het inwerken van nieuwe teamleden en het faciliteren van duidelijke communicatie tussen alle betrokken partijen. Het was de hoeksteen waarop alle verdere ontwikkelingen werden gebouwd.

Code refactoring en migratie naar microservices

Toen we in het bestaande systeem van de klant doken, vonden we de verouderde versie van Java met dubbele code en verouderde werkwijzen. De oorspronkelijke architectuur, een monolithische applicatie, had in de beginfase zijn doel gediend. Toen het platform echter groeide, bleek deze aanpak zijn beperkingen te hebben. Schaalbaarheid werd lastig en de codebase werd een verwarrend doolhof dat steeds moeilijker te navigeren en bij te werken was zonder nieuwe bugs te introduceren.

Op basis van onze analyse stelden we vast dat de overgang naar een microservices-architectuur noodzakelijk was. Microservices boden een oplossing voor de schaalbaarheids- en wendbaarheidsproblemen van het monolithische systeem. Elke microservice in deze architectuur werkt onafhankelijk, wat betekent dat veranderingen in de ene service geen directe invloed hebben op de andere. Deze onafhankelijkheid is cruciaal voor een systeem als dat van onze klant, waar frequente updates en integraties de norm zijn.

De migratie naar een microservices-architectuur ging niet over één nacht ijs. In plaats daarvan kozen we voor een stapsgewijze aanpak, waarbij we de monolithische structuur zorgvuldig ontmantelden en opnieuw samenvoegden tot een meer dynamische, op microservices gebaseerde architectuur. Dankzij deze methode konden we de functionaliteit van het systeem tijdens de overgang behouden en aanzienlijke uitvaltijd vermijden die de activiteiten van onze klant negatief zou kunnen beïnvloeden.

We hebben elke service zorgvuldig geëxtraheerd, verfijnd en onafhankelijk ingezet. Onze ontwikkelaars scheidden services zoals het boeken van tickets en het beheer van reisplannen in afzonderlijke eenheden. Deze scheiding betekende dat updates van bijvoorbeeld het reisbeheersysteem konden worden doorgevoerd zonder het risico te lopen op onbedoelde gevolgen in het boekingssysteem.

Voor deze transformatie gebruikten we Spring Boot en Spring Cloud. Spring Boot maakte het opzetten en configureren van microservices eenvoudiger, wat de ontwikkeling versnelde. Spring Cloud bood waardevolle tools voor gedistribueerde systemen, zoals configuratiebeheer en service discovery.

We integreerden ook Kafka als onze message broker. Het vermogen om grote datavolumes te verwerken en betrouwbare communicatie tussen services te garanderen was cruciaal, vooral gezien de grote datastroom van de nieuwe architectuur.

Tot slot hebben we nieuwe microservices geïmplementeerd op de nieuwste versie van Java. Deze upgrade droeg bij aan betere prestaties en verbeterde beveiliging, en vormde een sterk en modern fundament voor de hele architectuur.

Uitwerking van de ontwikkeling van een nieuwe verwerkingsmodule

Terwijl we het systeem van onze klant verfijnden en verbeterden, stelden we vast dat er behoefte was aan een efficiëntere manier om nieuwe integraties af te handelen. Dit leidde tot de ontwikkeling van een gespecialiseerde verwerkingsmodule, een cruciale toevoeging aan het systeem die voor substantiële verbeteringen in het integratieproces zorgde.

De uitdagingen van redundantie aanpakken

Een van de belangrijkste uitdagingen waarmee we werden geconfronteerd, was het repetitieve karakter van het code-schrijfproces voor elke nieuwe integratie. Vóór de ontwikkeling van deze verwerkingsmodule was elke nieuwe integratie met een andere reisbureau of -dienst vereiste een aanzienlijke hoeveelheid code die helemaal opnieuw moest worden geschreven.

De verwerkingsmodule ontwerpen

De verwerkingsmodule die we hebben ontwikkeld, is ontworpen om te fungeren als een veelzijdige interface tussen het systeem van onze klant en externe API's. Deze module bestaat uit kant-en-klare, aanpasbare sjablonen en tools die de noodzaak om nieuwe code te schrijven voor elke integratie aanzienlijk verminderen. Het werkt door te abstraheren van standaard functionaliteiten en processen die typisch betrokken zijn bij de integratie met verschillende reisdiensten, zoals systemen voor het boeken van tickets of klantendatabases.

De module bevat verschillende belangrijke functies:

  • API-communicatiehandlers: Deze zijn ontworpen om de inkomende en uitgaande API-verzoeken van reisbureaus te beheren. Ze verwerken de complexiteit van verschillende API-protocollen en gegevensformaten, waardoor het gemakkelijker wordt om verbinding te maken met externe systemen.
  • Tools voor het in kaart brengen en transformeren van gegevens: Vaak verschillen gegevensstructuren tussen verschillende systemen. Onze module bevat tools die gegevens automatisch in kaart brengen en transformeren van en naar het formaat dat wordt vereist door het systeem van onze klant en externe serviceproviders. Dit zorgt voor een soepele gegevensuitwisseling en integratie.
  • Configuratie- en aanpassingsinterface: De module erkent de behoefte aan flexibiliteit en is uitgerust met een interface waarmee ontwikkelaars integraties eenvoudig kunnen configureren en aanpassen zonder diep in de kerncode te hoeven duiken. Dit maakt een snelle aanpassing aan de specifieke vereisten van elk nieuw reisbureau of elke nieuwe service mogelijk.

API-integraties met reisbureaus

Daarna hebben we de GDS van onze klant geïntegreerd met 4 reisbureaus die REST- en SOAP-uitwisselingsmechanismen gebruikten. Deze integraties waren cruciaal voor het verbeteren van de processen voor het boeken, wijzigen en annuleren van tickets voor veerdiensten. Onze uitdaging was om een integratieframework te creëren dat in staat was om een breed scala aan veerbootboekingen te beheren, waaronder verschillende routes, stoelconfiguraties en aanvullende diensten.

Het implementeren van deze integraties bestond uit een aantal cruciale stappen. In eerste instantie doorzochten we de API's van de agentschappen om hun gegevensstructuren en functionele vereisten te begrijpen. Met behulp van onze nieuw ontwikkelde verwerkingsmodule creëerden we aangepaste connectors voor elk agentschap. Deze connectors werden op maat gemaakt voor de specifieke gegevensformaten en operationele workflows van elk bureau, waardoor een soepele gegevensintegratie met het GDS van onze klant werd gegarandeerd.

Het proces omvatte het inzetten van geavanceerde tools voor het in kaart brengen en transformeren van gegevens binnen onze verwerkingsmodule. Deze technologie speelde een cruciale rol bij het waarborgen van de integriteit en consistentie van gegevens. Ons team voerde uitgebreide tests uit om de effectiviteit en betrouwbaarheid van deze integraties te valideren. We simuleerden verschillende boekingsscenario's om de integraties onder verschillende omstandigheden te testen. Na het succesvol testen implementeerden we de integraties in de live-omgeving, waarbij we doorlopende bewakingsmechanismen instelden om de prestaties te controleren en eventuele problemen snel op te lossen.

Technologieën

Back end

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

API

REST, SOAP

Dataopslag

PostgreSQL, Memcached

Berichtgevers

Kafka

DevOps

GitLab CI/CD-pijplijnen

Diensten

Gitlab, Jira, Confluence

Proces

Ontdekking en analyse

In de beginfase hebben we een Vision & Scope-document opgesteld om de projectdoelen af te stemmen op de verwachtingen van de klant. Dit document legde de basis voor het project door de doelstellingen en systeemuitdagingen van de klant te begrijpen.

Ontwikkeling van documentatie voor softwarearchitectuur

Vervolgens ontwikkelden we dynamische, gemakkelijk te begrijpen documentatie, ontworpen om synchroon met het project te evolueren, waardoor de teamcommunicatie werd geoptimaliseerd en het onboardingproces efficiënter werd.

Ontwerp en ontwikkeling

Hier richtten we ons op het implementeren van de microservices-architectuur en het maken van de verwerkingsmodule. Deze fase toonde onze technische expertise, wat resulteerde in een verfijnde systeemarchitectuur en een volledig functionele verwerkingsmodule.

Integratie en testen

Door gebruik te maken van de verwerkingsmodule integreerden we naadloos API's van reisbureaus. Strenge tests zorgden voor betrouwbaarheid van het systeem en verbeterde functionaliteit.

Communicatie en het bijhouden van taken

Microsoft Teams was onze belangrijkste communicatietool voor het stroomlijnen van discussies, het bijwerken van shares en het onderhouden van een centrale informatieopslagplaats. We gebruikten Jira om georganiseerd te blijven en efficiënt workflowbeheer voor het bijhouden van taken.

Team

4

Back-end ingenieurs

1

QA Engineer

1

Teamleider

1

Projectleider

1

Software Architect

1

Bedrijfsanalist

1

Leveringsmanager

Resultaten

Transformatieve resultaten behalen met stijgende verkoopcijfers en een bredere aanwezigheid op de markt

Na de succesvolle implementatie vertoonde de webapplicatie van de klant opmerkelijke prestatieverbeteringen. De combinatie van code refactoring en de migratie naar een microservices architectuur resulteerde in een aanzienlijk soepelere werking. Deze technische revisie, in combinatie met de naadloze integratie van nieuwe services, zorgde voor een aanzienlijke stijging van de omzet van de klant.

De impact van deze transformatie reikte verder dan het financiële domein. Het leidde tot een aanzienlijke uitbreiding, niet alleen in inkomsten maar ook in geografische aanwezigheid. Dit betekende een enorme sprong voorwaarts in de marktdekking van het bedrijf en versterkte zijn positie als prominente speler in de sector. Onze samenwerking met de klant gaat door en er liggen nog meer integraties in het verschiet.

Duur van het project
  • Maart 2023 - Doorlopend

30%

boost in verkoop

2x

verhoging van de API-integratiesnelheid

Neem contact met ons op!

Boek een gesprek of vul het onderstaande formulier in en we nemen contact met je op zodra we je aanvraag hebben verwerkt.

    Voeg projectgegevens alsjeblieft, duur, technische stapel, IT-professionals nodig en andere relevante informatie toe
    Neem een spraakbericht over uw
    project op om het ons beter te helpen begrijpen
    Voeg indien nodig aanvullende documenten bij
    Bestand uploaden

    Je kunt maximaal 1 bestand van 2MB bijvoegen. Geldige bestanden: pdf, jpg, jpeg, png

    Wij wijzen u erop dat wanneer u op de verzendknop klikt, Innowise uw persoonsgegevens verwerkt in overeenstemming met ons Privacybeleid om u van de juiste informatie te voorzien.

    Wat gebeurt er nu?

    1

    Na ontvangst en verwerking van uw aanvraag, nemen wij binnenkort contact met u op om uw projectbehoeften in detail te beschrijven en een NDA te ondertekenen om de vertrouwelijkheid van informatie te garanderen.

    2

    Na het bestuderen van de vereisten, stellen onze analisten en ontwikkelaars een projectvoorstel met de omvang van de werkzaamheden, teamgrootte, tijd en kosten schattingen.

    3

    Wij regelen een ontmoeting met u om het aanbod te bespreken en tot een overeenkomst.

    4

    We tekenen een contract en beginnen zo snel mogelijk aan uw project te werken.

    Bedankt.

    Uw bericht is verzonden.
    Wij verwerken uw aanvraag en nemen zo spoedig mogelijk contact met u op.

    Bedankt.

    Uw bericht is verzonden. 

    We’ll process your request and contact you back as soon as possible.

    pijl