GDS-verkkosovelluksen parannus: API-integraation nopeus kasvaa 2x.

Innowise toteutti kattavan alustakoodin uudistamisen ja yksinkertaisti merkittävästi uusien sovellusliittymien integrointia. 

Asiakas

Teollisuus

Alue

EU

Asiakas vuodesta

2023

Asiakkaamme on merkittävä matkailualan toimija, joka ylläpitää maailmanlaajuista jakelujärjestelmää (GDS) lauttalippujen ja muiden matkapalvelujen myöntämiseen. Tämä verkkosovellus on keskitetty yhteyspiste erilaisten lauttojen varausten hallinnointiin, mukaan lukien pitkät ja lyhyet matkat, monipaikkaiset matkat ja jopa monimutkaiset usean välilaskun matkareitit.

Yksityiskohtaisia tietoja asiakkaasta ei voida luovuttaa NDA:n ehtojen mukaisesti.

Haaste

Markkinarajoitusten ja dokumentaation puutteiden selvittäminen

Tämä asiakas koki, että hänen nykyiset markkinansa olivat rajalliset, ja hän halusi laajentaa toimintaansa. Laajentuakseen he halusivat luoda API-integraatioita matkatoimistojen kanssa. 

Lisäksi jäsennellyn ohjelmistoarkkitehtuuridokumentaation puuttuminen oli merkittävä ongelmakohta. Tämä puute johti useisiin haasteisiin, kuten tiimin uusien jäsenten perehdyttämiseen, järjestelmän yhteisen ymmärryksen ylläpitämiseen eri sidosryhmien kesken ja uusien tuoteominaisuuksien sujuvaan käyttöönottoon. 

Tämän vuoksi asiakas kääntyi meidän puoleemme API-integraatioiden ja kattavan ohjelmistodokumentointiarkkitehtuurin luomiseksi.

Ratkaisu

Verkkosovellusten tehokkuuden lisääminen ja API-integrointitekniikoiden hiominen

Innowise tarjosi web-sovelluksen modernisointia ja optimoitua API-integraatiot matkatoimistojen kanssa, jotta lauttakokemusta voidaan parantaa kaikkialla Euroopassa.

Ohjelmistoarkkitehtuurin dokumentaation luominen

Aluksi teimme laajoja haastatteluja asiakkaan kehitystiimin ja sidosryhmien kanssa. Tällä lähestymistavalla varmistimme, että saimme selville heidän tarpeidensa ytimen. 

Tämän runsaan tietomäärän pohjalta suunnittelimme intuitiivisen ja ymmärrettävän dokumentaatiorakenteen. Dokumentaatio kattoi kaiken korkean tason järjestelmäkatsauksista kooditason yksityiskohtiin. Sisällytimme kaavioita, vuokaavioita ja interaktiivisia elementtejä, jotta dokumentaatiosta tulisi informatiivista ja mukaansatempaavaa.

Kyse ei kuitenkaan ollut vain staattisen asiakirjan luomisesta. Kokemuksemme mukaan paras dokumentaatio on sellainen, joka elää, hengittää ja kehittyy kuvaamansa järjestelmän mukana. Niinpä otimme käyttöön dynaamisen dokumentointiprosessin, jota päivitettäisiin jatkuvasti järjestelmän kasvaessa ja muuttuessa. Tämä elävän dokumentin lähestymistapa varmisti, että dokumentaatio oli aina ajan tasalla.

Lisäksi keskityimme siihen, että dokumentaatio on kaikkien osapuolten saatavilla ja ymmärrettävissä. Tämä tarkoitti sitä, että vältimme jargonia, käytimme selkeää ja ytimekästä kieltä ja varmistimme, että sekä tekniset että muut kuin tekniset sidosryhmät voivat hyödyntää sitä.

Luomalla tämän kattavan ohjelmiston dokumentointiarkkitehtuurin emme ainoastaan luoneet pohjatyötä nykyiselle projektille, vaan annoimme asiakkaalle työkalun, joka auttaa tulevassa kehityksessä, uusien tiimin jäsenten palvelukseen ottamisessa ja selkeän viestinnän helpottamisessa kaikkien osapuolten välillä. Se oli kulmakivi, jonka varaan kaikki tuleva kehitys rakennettiin.

Koodin refaktorointi ja siirtyminen mikropalveluihin

Tutustuessamme asiakkaan nykyiseen järjestelmään löysimme vanhentuneen Java-version, jossa oli koodikaksoisuuksia ja vanhentuneita käytäntöjä. Alkuperäinen arkkitehtuuri, monoliittinen sovellus, oli palvellut tarkoitustaan alkuvaiheessa. Alustan kasvaessa tämä lähestymistapa osoitti kuitenkin rajoituksensa. Skaalautuvuudesta tuli hankalaa, ja koodikanta muuttui sekavaksi sokkeloksi, jossa oli yhä vaikeampi navigoida ja päivittää tuomatta uusia virheitä.

Analyysimme perusteella totesimme, että siirtyminen mikropalveluarkkitehtuuriin oli välttämätöntä. Mikropalvelut tarjosivat ratkaisun monoliittisen järjestelmän skaalautuvuus- ja ketteryysongelmiin. Jokainen mikropalvelu toimii tässä arkkitehtuurissa itsenäisesti, mikä tarkoittaa, että yhdessä palvelussa tehdyt muutokset eivät vaikuta suoraan muihin. Tämä riippumattomuus on ratkaisevan tärkeää asiakkaamme kaltaisessa järjestelmässä, jossa tiheät päivitykset ja integraatiot ovat standardi.

Siirtyminen mikropalveluarkkitehtuuriin ei tapahtunut yhdessä yössä. Sen sijaan omaksuttiin vaiheittainen lähestymistapa, jossa monoliittinen rakenne purettiin huolellisesti ja koottiin uudelleen dynaamisemmaksi, mikropalvelupohjaiseksi arkkitehtuuriksi. Tämän menetelmän ansiosta pystyimme säilyttämään järjestelmän toiminnallisuuden koko siirtymävaiheen ajan ja välttämään merkittäviä käyttökatkoksia, jotka voisivat vaikuttaa haitallisesti asiakkaamme toimintaan.

Otimme jokaisen palvelun huolellisesti esiin, jalostimme sen ja otimme sen käyttöön itsenäisesti. Kehittäjämme erottivat palvelut, kuten lippujen varaamisen ja matkasuunnitelmien hallinnan, erillisiksi yksiköiksi. Tämä erottelu tarkoitti sitä, että esimerkiksi matkareittien hallintajärjestelmään voitiin tehdä päivityksiä ilman, että varausjärjestelmään aiheutui tahattomia seurauksia.

Tässä muunnoksessa käytimme Spring Boot ja Spring Cloud. Spring Boot helpotti mikropalvelujen perustamista ja konfigurointia ja nopeutti kehitystä. Spring Cloud tarjosi arvokkaita työkaluja hajautettuihin järjestelmiin, kuten konfiguraationhallinta ja palveluiden löytäminen.

Integroimme myös Kafkan viestinvälittäjäksi. Sen kyky käsitellä suuria tietomääriä ja varmistaa luotettava viestintä palveluiden välillä oli ratkaisevan tärkeää, etenkin kun otetaan huomioon uuden arkkitehtuurin suuri tietovirta.

Lopuksi toteutimme uudet mikropalvelut uusimmalla Javan versiolla. Tämä päivitys paransi suorituskykyä ja lisäsi tietoturvaa ja muodosti vahvan ja modernin perustan koko arkkitehtuurille.

Uuden prosessointimoduulin kehittämisen jatkaminen

Kun kehitimme ja kehitimme asiakkaamme järjestelmää, havaitsimme, että tarvitsimme tehokkaamman tavan käsitellä uusia integraatioita. Tämä johti erikoistuneen käsittelymoduulin kehittämiseen, joka oli keskeinen lisäys järjestelmään ja joka paransi integraatioprosessia merkittävästi.

Redundanssin haasteisiin vastaaminen

Yksi tärkeimmistä haasteista oli koodin kirjoittamisen toistuvuus jokaista uutta integraatiota varten. Ennen tämän prosessointimoduulin kehittämistä jokainen uusi integraatio toiseen matkatoimisto tai -palvelu vaati huomattavan määrän alusta asti kirjoitettua koodia.

Käsittelymoduulin suunnittelu

Kehittämämme prosessointimoduuli suunniteltiin toimimaan monipuolisena rajapintana asiakkaamme järjestelmän ja ulkoisten sovellusrajapintojen välillä. Moduuli koostuu valmiista, mukautettavista malleista ja työkaluista, jotka vähentävät merkittävästi tarvetta kirjoittaa uutta koodia jokaista integraatiota varten. Se toimii abstrahoimalla vakiotoiminnallisuuksia ja -prosesseja, jotka tyypillisesti liittyvät integrointiin erilaisten matkapalvelujen, kuten lipunvarausjärjestelmien tai asiakastietokantojen, kanssa.

Moduuli sisältää useita keskeisiä ominaisuuksia:

  • API-viestinnän käsittelijät: on suunniteltu matkatoimistojen saapuvien ja lähtevien API-pyyntöjen hallintaan. Ne käsittelevät erilaisten API-protokollien ja dataformaattien monimutkaisuutta ja helpottavat yhteyden luomista ulkoisiin järjestelmiin.
  • Tietojen kartoitus- ja muunnostyökalut: Tietorakenteet vaihtelevat usein eri järjestelmissä. Moduulissamme on työkaluja, jotka kartoittavat ja muuntavat tiedot automaattisesti asiakkaan järjestelmän ja ulkoisten palveluntarjoajien edellyttämään muotoon ja muodosta. Tämä helpottaa sujuvaa tiedonvaihtoa ja integrointia.
  • Konfigurointi- ja räätälöintikäyttöliittymä: Tunnistaen joustavuuden tarpeen moduuli on varustettu käyttöliittymällä, jonka avulla kehittäjät voivat määrittää ja mukauttaa integraatioita helposti ilman syventymistä ydinkoodiin. Tämä mahdollistaa nopean mukauttamisen kunkin uuden matkatoimiston tai palvelun erityisvaatimuksiin.

API-integraatiot matkatoimistojen kanssa

Sen jälkeen integroimme asiakkaamme GDS-järjestelmän 4 matkatoimiston kanssa, jotka käyttivät REST- ja SOAP-vaihtomekanismeja. Nämä integraatiot olivat ratkaisevia, kun parannettiin lauttalippujen varaus-, muutos- ja peruutusprosesseja. Haasteenamme oli luoda integraatiokehys, jolla pystytään hallitsemaan monenlaisia lauttojen varauksia, mukaan lukien erilaiset reitit, istumapaikkakokoonpanot ja lisäpalvelut.

Näiden integraatioiden toteuttaminen sisälsi useita kriittisiä vaiheita. Aluksi tutkimme virastojen API-rajapintoja ymmärtääkseen niiden tietorakenteita ja toiminnallisia vaatimuksia. Hyödynsimme hiljattain kehittämäämme käsittelymoduulia ja loimme räätälöityjä liitäntöjä kutakin virastoa varten. Nämä liittimet räätälöitiin käsittelemään kunkin viraston erityisiä tietomuotoja ja toiminnallisia työnkulkuja, mikä varmisti tietojen sujuvan integroinnin asiakkaamme GDS-järjestelmään.

Prosessiin kuului kehittyneiden tietojen kartoitus- ja muunnostyökalujen käyttöönotto prosessointimoduulissamme. Tämä tekniikka oli ratkaisevassa asemassa tietojen eheyden ja johdonmukaisuuden varmistamisessa. Tiimimme suoritti laajoja testejä validoidakseen näiden integraatioiden tehokkuuden ja luotettavuuden. Simuloimme erilaisia varausskenaarioita testataksemme integraatioita erilaisissa olosuhteissa. Onnistuneen testauksen jälkeen otimme integraatiot käyttöön live-ympäristössä ja otimme käyttöön jatkuvat seurantamekanismit niiden suorituskyvyn valvomiseksi ja mahdollisten ongelmien ratkaisemiseksi nopeasti.

Teknologiat

Java 17, Spring, Spring saapas, Spring Cloud, lepotila

API

REST, SOAP

Tietojen tallennus

PostgreSQL, Memcached

Viestinvälittäjät

Kafka

GitLabin CI/CD-putket

Palvelut

Gitlab, Jira, Confluence

Prosessi

Löytäminen ja analysointi

Loimme Vision & Scope -asiakirjan, jotta hankkeen tavoitteet ja asiakkaan odotukset saatiin sovitettua yhteen alkuvaiheessa. Tämä asiakirja loi projektin perustan ymmärtämällä asiakkaan tavoitteet ja järjestelmän haasteet.

Ohjelmistoarkkitehtuurin dokumentaation kehittäminen

Sen jälkeen kehitimme dynaamisen, helposti ymmärrettävän dokumentaation, joka on suunniteltu kehittymään synkronoidusti projektin kanssa, mikä optimoi tiimin viestintää ja tehostaa käyttöönottoprosessia.

Suunnittelu ja kehittäminen

Tässä keskityimme mikropalveluarkkitehtuurin toteuttamiseen ja käsittelymoduulin luomiseen. Tämä vaihe osoitti teknisen asiantuntemuksemme, ja tuloksena oli hienostunut järjestelmäarkkitehtuuri ja täysin toimiva prosessointimoduuli.

Integrointi ja testaus

Käsittelymoduulin avulla integroimme saumattomasti matkatoimistojen API:t. Tiukka testaus varmisti järjestelmän luotettavuuden ja paremman toiminnallisuuden.

Viestintä ja tehtävien seuranta

Microsoft Teams oli ensisijainen viestintävälineemme, jolla tehostettiin keskusteluja, päivitettiin jakoja ja ylläpidettiin keskitettyä tietovarastoa. Käytimme Jiraa organisoidun ja tehokkaan työnkulun hallinnan ylläpitämiseen tehtävien seurantaan.

Joukkue

4

Back-End Engineers

1

QA Engineer

1

Tiimin johtaja

1

Projektipäällikkö

1

Ohjelmistoarkkitehti

1

liiketoiminta-analyytikko

1

Toimituspäällikkö

Tulokset

Saavutetaan mullistavia tuloksia myynnin kasvun ja laajemman markkinaosuuden ansiosta.

Onnistuneen toteutuksen jälkeen asiakkaan verkkosovelluksen suorituskyky parani huomattavasti. Koodin uudelleenmuokkauksen ja mikropalveluarkkitehtuuriin siirtymisen yhdistelmä johti huomattavasti sujuvampaan toimintaan. Tekninen uudistaminen ja uusien palvelujen saumaton integrointi lisäsivät asiakkaan myyntiä huomattavasti.

Tämän muutoksen vaikutus ulottui rahoitusalaa laajemmalle. Se johti merkittävään laajentumiseen, ei ainoastaan tulojen vaan myös maantieteellisen läsnäolon osalta. Tämä merkitsi merkittävää harppausta yrityksen markkina-alueen kattavuudessa ja vahvisti sen asemaa alan merkittävänä toimijana. Kumppanuutemme asiakkaan kanssa jatkuu, ja uusia integraatioita on luvassa.

Hankkeen kesto
  • Maaliskuu 2023 - Jatkuva

30%

myynnin kasvu

2x

API-integraation nopeuden lisääminen

    Ota yhteyttä

    Varaa puhelu tai täytä alla oleva lomake, niin otamme sinuun yhteyttä, kun olemme käsitelleet pyyntösi.

    Lähetä meille ääniviesti
    Liitä asiakirjoja
    Lataa tiedosto

    Voit liittää 1 enintään 2 Mt:n tiedoston. Hyväksytyt tiedostomuodot: pdf, jpg, jpeg, png.

    Klikkaamalla Lähetä, annat suostumuksesi siihen, että Innowise käsittelee henkilötietojasi meidän Tietosuojakäytäntö antaa sinulle asiaankuuluvia tietoja. Antamalla puhelinnumerosi suostut siihen, että voimme ottaa sinuun yhteyttä puheluiden, tekstiviestien ja viestisovellusten kautta. Puhelu-, viesti- ja datahintoja voidaan soveltaa.

    Voit myös lähettää meille pyyntösi
    osoitteeseen contact@innowise.com

    Mitä tapahtuu seuraavaksi?

    1

    Kun olemme vastaanottaneet ja käsitelleet pyyntösi, otamme sinuun yhteyttä ja kerromme yksityiskohtaisesti projektin tarpeet ja allekirjoitamme NDA-sopimuksen luottamuksellisuuden varmistamiseksi.

    2

    Tutkittuaan toiveesi, tarpeesi ja odotuksesi tiimimme suunnittelee projektin ehdotuksen, jossa esitetään työn laajuus, tiimin koko, aika- ja kustannusarviot.

    3

    Järjestämme kanssasi tapaamisen, jossa keskustellaan tarjouksesta ja sovitaan yksityiskohdista.

    4

    Lopuksi allekirjoitamme sopimuksen ja aloitamme projektisi toteuttamisen heti.

    nuoli