Formuläret har skickats in framgångsrikt.
Ytterligare information finns i din brevlåda.
Innowise genomförde en omfattande refaktorisering av plattformskoden och förenklade avsevärt processen för att integrera nya API:er.
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.
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.
Innowise moderniserade webbapplikationer och optimerade API-integrationer med resebyråer för att förbättra färjeupplevelsen i hela Europa.
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å.
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.
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.
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.
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:
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.
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
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.
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.
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.
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.
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.
4
Back-end-ingenjörer
1
QA-ingenjör
1
Gruppledare
1
Projektledare
1
Programvaruarkitekt
1
Affärsanalytiker
1
Leveransansvarig
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.
30%
ökad försäljning
2x
ökad hastighet för API-integration
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.
Efter att ha undersökt kraven utarbetar våra analytiker och utvecklare en projektförslag med arbetets omfattning, lagets storlek, tid och kostnad uppskattningar.
Vi ordnar ett möte med dig för att diskutera erbjudandet och komma överens.
Vi skriver på ett kontrakt och börjar arbeta med ditt projekt så snabbt som möjligt.
2007-2024 Innowise. Alla rättigheter förbehållna.
Integritetspolicy. Policy för cookies.
Innowise Sp. z o.o Ul. Rondo Ignacego Daszyńskiego, 2B-22P, 00-843 Warszawa, Polen
Genom att registrera dig godkänner du vår Integritetspolicy, inklusive användning av cookies och överföring av din personliga information.
Tack!
Ditt meddelande har skickats.
Vi behandlar din begäran och kontaktar dig så snart som möjligt.
Tack!
Ditt meddelande har skickats.
We’ll process your request and contact you back as soon as possible.