Lämna dina kontaktuppgifter, så skickar vi dig vår översikt via e-post
Jag samtycker till att mina personuppgifter behandlas för att skicka personligt marknadsföringsmaterial i enlighet med Integritetspolicy. Genom att bekräfta inlämningen samtycker du till att få marknadsföringsmaterial
Tack!

Formuläret har skickats in framgångsrikt.
Ytterligare information finns i din brevlåda.

Innowise är ett internationellt företag för utveckling av mjukvara med fullständig cykel som grundades 2007. Vi är ett team med över 1800+ IT-proffs som utvecklar mjukvara för andra yrkesverksamma över hela världen.
Om oss
Innowise är ett internationellt företag som utvecklar mjukvara för hela cykeln som grundades 2007. Vi är ett team på över 1600+ IT-proffs som utvecklar mjukvara för andra företag yrkesverksamma över hela världen.

Förbättring av GDS webbapplikation: 2x ökning av API-integrationshastigheten

Innowise genomförde en omfattande refaktorisering av plattformskoden och förenklade avsevärt processen för att integrera nya API:er. 

Kund

Industri

Resa

Region

EU

Kund sedan

2023

Vår kund, en framstående aktör inom resebranschen, driver ett globalt distributionssystem (GDS) för utfärdande av färjebiljetter och andra resetjänster. Denna webbapplikation är en enda kontaktpunkt för hantering av olika färjebokningar, inklusive lång- och kortdistansresor, flersätestyper och till och med komplexa resvägar med flera hopp.

Detaljerad information om kunden kan inte lämnas ut enligt villkoren i sekretessavtalet.

Utmaning

Navigera bland marknadsbegränsningar och dokumentationsbrister

Denna kund kände sig begränsad av sin nuvarande marknadsstorlek och ville expandera ytterligare. För att uppnå denna expansion hade de som mål att skapa API-integrationer med resebyråer. 

Dessutom var avsaknaden av en strukturerad dokumentation av programvaruarkitekturen en betydande smärtpunkt. Denna brist ledde till flera utmaningar, t.ex. att få nyanställda teammedlemmar att arbeta snabbt, upprätthålla en gemensam förståelse för systemet bland olika intressenter och smidigt implementera nya produktfunktioner. 

Därför vände sig kunden till oss för API-integrationer och för att skapa en omfattande arkitektur för programvarudokumentation.

Lösning

Öka effektiviteten i webbapplikationer och förbättra teknikerna för API-integration

Innowise moderniserade webbapplikationer och optimerade API-integrationer med resebyråer för att förbättra färjeupplevelsen i hela Europa.

Skapa en dokumentation av programvaruarkitektur

Vi började med att genomföra omfattande intervjuer med kundens utvecklingsteam och intressenter. Detta tillvägagångssätt säkerställde att vi fångade kärnan i vad de behövde. 

Med denna rikedom på information började vi utforma en intuitiv och begriplig dokumentationsstruktur. Dokumentationen omfattade allt från systemöversikter på hög nivå till detaljer på kodnivå. Vi använde diagram, flödesscheman och interaktiva element för att göra den informativ och engagerande.

Men det handlade inte bara om att skapa ett statiskt dokument. Enligt vår erfarenhet är den bästa dokumentationen den som lever, andas och utvecklas med det system som den beskriver. Därför implementerade vi en dynamisk dokumentationsprocess som kontinuerligt skulle uppdateras i takt med att systemet växte och förändrades. Detta tillvägagångssätt med levande dokument säkerställde att dokumentationen alltid var uppdaterad.

Dessutom fokuserade vi på att göra dokumentationen tillgänglig och begriplig för alla inblandade parter. Det innebar att undvika jargong, använda ett tydligt och koncist språk och se till att tekniska och icke-tekniska intressenter kunde hitta värde i den.

Genom att skapa denna omfattande arkitektur för programvarudokumentation lade vi inte bara grunden för det aktuella projektet, vi försåg även kunden med ett verktyg som skulle underlätta framtida utveckling, introduktion av nya teammedlemmar och tydlig kommunikation mellan alla inblandade parter. Det var den hörnsten som all vidare utveckling byggde på.

Refactoring av kod och migrering till mikrotjänster

När vi dök ner i kundens befintliga system fann vi den föråldrade versionen av Java med koddubbleringar och föråldrade metoder. Den ursprungliga arkitekturen, en monolitisk applikation, hade tjänat sitt syfte i ett tidigt skede. Men i takt med att plattformen växte visade detta tillvägagångssätt sina begränsningar. Skalbarheten blev besvärlig och kodbasen blev en förvirrande labyrint som blev allt svårare att navigera i och uppdatera utan att introducera nya buggar.

Baserat på vår analys kom vi fram till att det var nödvändigt att övergå till en mikrotjänstarkitektur. Mikrotjänster erbjöd en lösning på det monolitiska systemets problem med skalbarhet och smidighet. Varje mikrotjänst i denna arkitektur fungerar självständigt, vilket innebär att ändringar som görs i en tjänst inte direkt påverkar de andra. Denna självständighet är avgörande för ett system som vår kunds, där frekventa uppdateringar och integrationer är standard.

Övergången till en mikrotjänstarkitektur skedde inte över en natt. Istället använde vi oss av en stegvis metod där vi försiktigt monterade ned den monolitiska strukturen och återmonterade den till en mer dynamisk, mikrotjänstbaserad arkitektur. Med den här metoden kunde vi bibehålla systemets funktionalitet under hela övergången och undvika betydande driftstopp som skulle kunna påverka vår kunds verksamhet negativt.

Vi extraherade noggrant varje tjänst, förfinade den och distribuerade den självständigt. Våra utvecklare separerade tjänster som biljettbokning och reseplanering i olika enheter. Denna separation innebar att uppdateringar av systemet för reseplanering till exempel kunde göras utan att riskera oavsiktliga konsekvenser i bokningssystemet.

För denna omvandling använde vi Spring Boot och Spring Cloud. Spring Boot gjorde det enklare att ställa in och konfigurera mikrotjänster, vilket påskyndade utvecklingen. Spring Cloud erbjöd värdefulla verktyg för distribuerade system, som konfigurationshantering och service discovery.

Vi integrerade också Kafka som vår meddelandemäklare. Dess förmåga att hantera stora datavolymer och säkerställa tillförlitlig kommunikation mellan tjänster var avgörande, särskilt med tanke på det höga dataflödet i den nya arkitekturen.

Slutligen implementerade vi nya mikrotjänster på den senaste versionen av Java. Uppgraderingen bidrog till bättre prestanda och ökad säkerhet, och utgjorde en stark och modern grund för hela arkitekturen.

Utvecklingen av en ny bearbetningsmodul

När vi förfinade och förbättrade vår kunds system identifierade vi behovet av ett mer effektivt sätt att hantera nya integrationer. Detta ledde till utvecklingen av en specialiserad bearbetningsmodul, ett viktigt tillägg till systemet som medförde betydande förbättringar i integrationsprocessen.

Hantering av utmaningar med redundans

En av de största utmaningarna vi stod inför var att kodskrivningsprocessen var repetitiv för varje ny integration. Före utvecklingen av denna bearbetningsmodul var varje ny integration med en annan resebyrå eller resetjänst kräver en betydande mängd kod som skrivs från grunden.

Utformning av bearbetningsmodulen

Den bearbetningsmodul vi utvecklade var utformad för att fungera som ett mångsidigt gränssnitt mellan vår kunds system och externa API:er. Modulen består av förbyggda, anpassningsbara mallar och verktyg som avsevärt minskar behovet av att skriva ny kod för varje integration. Den fungerar genom att abstrahera standardfunktioner och processer som vanligtvis ingår i integration med olika resetjänster, till exempel biljettbokningssystem eller kunddatabaser.

Modulen innehåller flera viktiga funktioner:

  • Hanterare av API-kommunikation: Dessa är utformade för att hantera resebyråernas inkommande och utgående API-förfrågningar. De hanterar komplexiteten i olika API-protokoll och dataformat, vilket gör det enklare att ansluta till externa system.
  • Verktyg för kartläggning och omvandling av data: Ofta varierar datastrukturerna mellan olika system. Vår modul innehåller verktyg som automatiskt mappar och transformerar data till och från det format som krävs av vår kunds system och externa tjänsteleverantörer. Detta underlättar smidigt datautbyte och integration.
  • Gränssnitt för konfiguration och anpassning: Med tanke på behovet av flexibilitet är modulen utrustad med ett gränssnitt som gör det möjligt för utvecklare att enkelt konfigurera och anpassa integrationer utan att gå djupt in i kärnkoden. Detta möjliggör snabb anpassning till de specifika kraven för varje ny resebyrå eller tjänst.

API-integrationer med resebyråer

Därefter integrerade vi vår kunds GDS med 4 resebyråer som använde REST- och SOAP-utbytesmekanismer. Dessa integrationer var avgörande för att förbättra biljettboknings-, ändrings- och avbokningsprocesserna för färjetjänster. Vår utmaning var att skapa ett integrationsramverk som kunde hantera ett varierat utbud av färjebokningar, inklusive olika rutter, sittplatskonfigurationer och tilläggstjänster.

Implementeringen av dessa integrationer omfattade flera viktiga steg. Inledningsvis gick vi igenom byråernas API:er för att förstå deras datastrukturer och funktionella krav. Med hjälp av vår nyutvecklade bearbetningsmodul skapade vi anpassade anslutningar för varje byrå. Dessa kopplingar var skräddarsydda för att hantera varje byrås specifika dataformat och operativa arbetsflöden, vilket säkerställde en smidig dataintegration med vår kunds GDS.

I processen ingick att implementera sofistikerade verktyg för kartläggning och omvandling av data i vår bearbetningsmodul. Denna teknik spelade en avgörande roll för att säkerställa dataintegritet och -konsistens. Vårt team genomförde omfattande tester för att validera effektiviteten och tillförlitligheten hos dessa integrationer. Vi simulerade olika bokningsscenarier för att testa integrationerna under olika förhållanden. Efter framgångsrika tester implementerade vi integrationerna i livemiljön och inrättade kontinuerliga övervakningsmekanismer för att övervaka deras prestanda och snabbt åtgärda eventuella problem.

Teknik

Back end

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

API

REST, SOAP

Datalagring

PostgreSQL, Memcached

Meddelandemäklare

Kafka

DevOps

GitLab CI/CD-pipelines

Tjänster

Gitlab, Jira, Confluence

Process

Upptäckt och analys

Vi skapade ett dokument med vision och omfattning för att anpassa projektmålen till kundens förväntningar i den inledande fasen. Detta dokument lade grunden för projektet genom att förstå kundens mål och systemutmaningar.

Programvaruarkitektur dokumentation utveckling

Sedan tog vi fram dynamisk, lättbegriplig dokumentation, utformad för att utvecklas i takt med projektet, vilket optimerar teamkommunikationen och gör onboardingprocessen mer effektiv.

Design och utveckling

Här fokuserade vi på att implementera mikrotjänstarkitekturen och utforma bearbetningsmodulen. Denna fas visade vår tekniska expertis och resulterade i en förfinad systemarkitektur och en fullt fungerande bearbetningsmodul.

Integrering och testning

Med hjälp av bearbetningsmodulen integrerade vi sömlöst resebyråernas API:er. Rigorösa tester säkerställde systemets tillförlitlighet och förbättrade funktionalitet.

Kommunikation och spårning av uppgifter

Microsoft Teams var vårt primära kommunikationsverktyg för att effektivisera diskussioner, uppdatera delningar och upprätthålla ett centralt informationsarkiv. Vi använde Jira för att hålla oss organiserade och effektiv arbetsflödeshantering för uppgiftsspårning.

Team

4

Back-end-ingenjörer

1

QA-ingenjör

1

Gruppledare

1

Projektledare

1

Programvaruarkitekt

1

Affärsanalytiker

1

Leveransansvarig

Resultat

Att uppnå transformativa resultat med kraftigt ökad försäljning och breddad marknadsnärvaro

Efter den framgångsrika implementeringen uppvisade kundens webbapplikation anmärkningsvärda prestandaförbättringar. Kombinationen av refaktorisering av kod och migrering till en mikrotjänstarkitektur resulterade i en betydligt smidigare drift. Den tekniska översynen, i kombination med den sömlösa integrationen av nya tjänster, ledde till en kraftig ökning av kundens försäljning.

Effekterna av denna omvandling sträckte sig bortom det finansiella området. Den ledde till en betydande expansion, inte bara vad gäller intäkter utan även geografisk närvaro. Detta innebar ett stort steg framåt i företagets marknadstäckning och stärkte dess ställning som en framstående aktör i branschen. Vårt partnerskap med kunden fortsätter, med fler integrationer på horisonten.

Projektets löptid
  • Mars 2023 - Pågående

30%

ökad försäljning

2x

ökad hastighet för API-integration

Kontakta oss!

Boka ett samtal eller fyll i formuläret nedan så återkommer vi till dig när vi har behandlat din förfrågan.

    Vänligen inkludera projektinformation, varaktighet, teknologistack, IT-proffs som behövs och annan relevant information
    Spela in ett röstmeddelande om ditt projekt för att hjälpa oss att förstå det bättre
     
    Bifoga ytterligare dokument vid behov
    Ladda upp filen

    Du kan bifoga upp till 1 fil på totalt 2 MB. Giltiga filer: pdf, jpg, jpeg, png

    Observera att när du klickar på knappen Skicka kommer Innowise att behandla dina personuppgifter i enlighet med vår Integritetspolicy för att ge dig lämplig information.

    Vad händer härnäst?

    1

    Efter att ha mottagit och behandlat din begäran kommer vi att återkomma till dig inom kort för att specificera dina projektbehov och underteckna en NDA för att säkerställa konfidentialitet av information.

    2

    Efter att ha undersökt kraven utarbetar våra analytiker och utvecklare en projektförslag med arbetets omfattning, lagets storlek, tid och kostnad uppskattningar.

    3

    Vi ordnar ett möte med dig för att diskutera erbjudandet och komma överens.

    4

    Vi skriver på ett kontrakt och börjar arbeta med ditt projekt så snabbt som möjligt.

    Спасибо!

    Cообщение отправлено.
    Мы обработаем ваш запрос и свяжемся с вами в кратчайшие сроки.

    Tack!

    Ditt meddelande har skickats.
    Vi behandlar din begäran och kontaktar dig så snart som möjligt.

    Tack!

    Ditt meddelande har skickats. 

    Vi behandlar din begäran och återkommer till dig så snart som möjligt.

    pil