Het formulier is succesvol verzonden.
Meer informatie vindt u in uw mailbox.
Innowise voerde een uitgebreide refactoring van de platformcode uit en vereenvoudigde het integratieproces van nieuwe API's aanzienlijk.
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.
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.
Innowise zorgde voor modernisering van de webapplicatie en optimaliseerde API-integraties met reisbureaus om de veerbootervaring in heel Europa te verbeteren.
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.
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.
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.
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 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:
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.
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
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.
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.
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.
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.
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.
4
Back-end ingenieurs
1
QA Engineer
1
Teamleider
1
Projectleider
1
Software Architect
1
Bedrijfsanalist
1
Leveringsmanager
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.
30%
boost in verkoop
2x
verhoging van de API-integratiesnelheid
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.
Na het bestuderen van de vereisten, stellen onze analisten en ontwikkelaars een projectvoorstel met de omvang van de werkzaamheden, teamgrootte, tijd en kosten schattingen.
Wij regelen een ontmoeting met u om het aanbod te bespreken en tot een overeenkomst.
We tekenen een contract en beginnen zo snel mogelijk aan uw project te werken.
© 2007-2024 Innowise. Alle rechten voorbehouden.
Innowise Sp. z o.o Ul. Rondo Ignacego Daszyńskiego, 2B-22P, 00-843 Warschau, Polen
Door u aan te melden gaat u akkoord met onze Privacybeleidmet inbegrip van het gebruik van cookies en de overdracht van uw persoonlijke gegevens.
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.