Logistiikkaohjelmiston nykyaikaistaminen Java-päivityksellä: 30% nopeampi tilausten käsittelytoiminto

Innowise on nykyaikaistanut vanhentuneen käyttöliittymän ja ohjelmistokomponentit, joissa oli teknisiä puutteita.

Asiakas

Teollisuus
Alue
Eurooppa
Asiakas vuodesta
2022

Asiakkaamme on yksi Euroopan menestyneimmistä logistiikkayrityksistä, joka on tunnettu vertaansa vailla olevista toimitusketjun hallinnan ratkaisuista. Heidän laaja toimintansa ulottuu useisiin maihin, ja he tarjoavat monenlaisia palveluja, jotka palvelevat monipuolista asiakaskuntaa.

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

Haaste

Logistiikkaohjelmistojen nykyaikaistaminen vastaamaan tulevaisuuden haasteisiin

Asiakkaamme nykyinen arkkitehtuuri oli alkanut näyttää ikänsä. Seuraavat haasteet tunnistettiin:
  • Kriittiset tietoturva-aukot: logistiikan nopeatempoisessa maailmassa mikä tahansa tietoturva-aukko voi johtaa merkittäviin tietoturvaloukkauksiin, jotka vaarantavat arkaluonteiset tiedot ja toiminnot.
  • Vanhentunut teknologia: koska järjestelmät perustuivat vanhentuneeseen teknologiaan, niistä puuttui nopeus, tehokkuus ja ominaisuudet, joita nykyaikaiset logistiikkatoiminnot vaativat.
  • Ylläpito-ongelmat: useat ohjelmiston osat olivat niin vanhentuneita, että niiden ylläpito oli hankalaa, ellei jopa mahdotonta joissakin tapauksissa.
Näiden ongelmien vuoksi asiakas kääntyi puoleemme korkein odotuksin. Hän ei etsinyt vain ratkaisua näihin ongelmiin vaan täydellistä uudistusta, jolla varmistettiin, että hänen ohjelmistonsa oli valmis tuleviin haasteisiin.

Ratkaisu

Ohjelmiston siirtäminen uusimpaan Java-versioon

Innowise:ssä suoritimme logistiikkaohjelmiston kattavan arvioinnin. Yksityiskohtaisen analyysimme avulla tunnistimme ydinmoduulit, jotka toimivat vanhentuneella Java 6 -alustalla. Asiantuntemuksemme ja tehokkaiden menetelmiemme avulla pystyimme siirtämään kyseiset moduulit nopeasti ja sujuvasti Java 17 -käyttöjärjestelmään.

Löytäminen ja suunnittelu

Modernisointihankkeemme alkuvaihe oli selvitys- ja suunnitteluvaihe. Tähän keskeiseen vaiheeseen kuului kaksi avaintoimintoa: vaatimusten kerääminen ja arkkitehtuurianalyysi. Tämän jälkeen toimitimme asiakkaalle kattavan visio- ja laajuusdokumentaation.

Vaatimusten selvittäminen

Otimme sidosryhmät mukaan haastattelujen ja työpajojen avulla ymmärtääkseen niiden liiketoiminnan tarpeet. Tämän tuloksena laadimme kattavan luettelon ominaisuuksista, liiketoimintatarpeista, sidosryhmien odotuksista ja teknisistä vaatimuksista.

Arkkitehtuurianalyysi

Asiantuntijamme analysoivat nykyisen teknologiakentän ja tarkastelivat olemassa olevia järjestelmiä, tietolähteitä ja infrastruktuuria. Lisäksi tutkimme logistiikkayrityksen toimintaan olennaisesti liittyvät kolmannet osapuolet ja varmistimme niiden vuorovaikutuksen saumattoman jatkuvuuden.

Lisäksi tarkastelimme yrityksen strategisia tavoitteita sekä toiminnallisia ja muita kuin toiminnallisia vaatimuksia, jotta ymmärsimme yrityksen ainutlaatuiset tarpeet ja haasteet. Tämän kokonaisvaltaisen lähestymistavan ansiosta pystyimme kehittämään räätälöidyn etenemissuunnitelman, joka oli tiiviisti linjassa yrityksen pitkän aikavälin tavoitteiden kanssa.

Tämän vaiheen aikana otimme asiantuntijoita, kuten tietokantainsinöörin, arvioimaan tietoarkkitehtuuria ja laatimaan alustavan siirtymäsuunnitelman. Ehdotetun ratkaisun toteutettavuutta arvioitiin ottaen huomioon teknologiapino, integrointi ja riskit.

Löytämis- ja suunnitteluvaiheet toimivat dynaamisena perustana, joka määritteli ohjelmistojen modernisointimatkan kulun. Vaatimusten keräämisen ja arkkitehtuurianalyysin avulla käynnistimme muutoksen, joka määritteli uudelleen logistiikkayrityksen teknologisen maiseman.

Siirtyminen Java 6:sta Java 17:ään

Kun meillä oli kattava etenemissuunnitelma käsissämme, siirryimme ratkaisevaan tehtävään, logistiikkaohjelmiston siirtämiseen järjestelmästä toiseen. Java 6 - Java 17. Kyseessä oli enemmän kuin pelkkä päivitys; se oli strateginen muutos, joka vaati perusteellista suunnittelua, ammattitaitoista toteutusta ja sitoutumista saumattoman siirtymisen varmistamiseen.

Strategian laatiminen

Kokemuksemme perusteella laadimme kattavan strategian siirtymäprosessia varten. Strategiassa käsiteltiin teknisiä yksityiskohtia ja otettiin samalla huomioon mahdolliset häiriöt liiketoiminnalle. Tavoitteena ei ollut pelkästään koodikannan siirtäminen vaan myös Java 17:n tarjoamien uusien mahdollisuuksien hyödyntäminen ohjelmiston suorituskyvyn ja ominaisuuksien parantamiseksi.

Koodipohjan siirtyminen

Koska näiden kahden Java-version väliset muutokset olivat perustavanlaatuisia, aluksi tarkastimme olemassa olevan koodipohjan kattavasti, minkä jälkeen loimme varmuuskopion varmuuskopiointitoimenpiteenä. Eristetyn siirtoympäristön avulla insinöörimme päivittivät ohjelmistoriippuvuudet varmistaakseen saumattoman yhteensopivuuden Java 17:n parannettujen ominaisuuksien ja suorituskykymittareiden kanssa.

Kriittinen osa siirtymästrategiaamme oli järjestelmän lokimismekanismien parantaminen. Asiantuntemuksemme avulla vahvistimme sovellusmoduuleja, jotta voimme tallentaa monenlaista tietoa - käyttäjän toiminnoista ja poikkeuksista aina tietoturvauhkiin, kuten virheellisiin toimintoihin ja virheellisiin kirjautumisyrityksiin. Nämä kehittyneet lokitoimenpiteet eivät olleet pelkkiä lisäyksiä, vaan ne olivat olennainen osa asiakkaan yleisiä turvallisuus- ja vaatimustenmukaisuusvaatimuksia.

Ohjelmiston arkkitehtuuri oli toinen painopistealue. Koska asiakas tarvitsi ketteryyttä ja skaalautuvuutta ja koska meillä oli kokemusta kehittyvistä teknologiamaisemista, tiimimme siirsi ohjelmiston mikropalveluarkkitehtuurimalliin. Tämä irrallinen, modulaarinen rakenne helpotti palveluiden riippumatonta käyttöönottoa, parempaa vianeristystä ja skaalautuvuutta - mikä on välttämätöntä logistiikkayritykselle, jolla on laajoja toimintoja.

Todellinen haaste on kuitenkin koodin nykyaikaistaminen. Oli välttämätöntä integroida Stream API ja lambda-lausekkeet Java 8:sta, jotta koodista tuli sekä tiivistä että helposti ymmärrettävää. Samalla tarkastelimme kaikkia kokoelmia varmistaaksemme niiden yhdenmukaisuuden Java 17 -standardien kanssa. Var-avainsanan käyttöönotto oli toinen askel koodipohjan ajantasaistamiseksi. Lisäksi merkkijono-operaatiot uudistettiin vastaamaan Java 17:n määrittelyjä, ja aina kun se oli mahdollista, siirryttiin if/else-lausekkeiden ketjuista uudemmassa Java-versiossa käyttöön otettuihin monipuolisempiin switch-lausekkeisiin. Ensisijainen tavoitteemme oli varmistaa, että kaikilla näillä muutoksilla ei ollut tahattomia seurauksia, ja tätä korostettiin testaamalla kaikkien julkisten metodien logiikka tarkasti.

Tiukka testaus oli siirtymisprosessimme kulmakivi. Jokainen siirretty moduuli testattiin kattavasti, jotta varmistettiin, että se täytti toiminnalliset vaatimukset ja integroitui saumattomasti muiden komponenttien kanssa. Testauksemme osoittivat, että tämä tiukka tarkastustapa minimoi migraation jälkeisten ongelmien riskin.

Tässä on erittely siitä, miten testasimme tätä siirtymää eri ympäristöissämme:

  • Kehitysympäristö (DEV): Tässä alkuvaiheessa kehittäjämme mukauttivat koodia erityisesti logistiikkatoimintoja varten. He suorittivat perustestejä, joissa keskityttiin reittioptimointiin, rahdinseurantaan ja kalustonhallintaan varmistaakseen, että perusominaisuudet toimivat saumattomasti.
  • Tuotantotestiympäristö (IPT): Tämä oli edistynyt testausalueemme. Simuloimme reaalimaailman skenaarioita, kuten suuria määriä rahtivarauksia ja ruuhka-aikaisia reittihakuja, tarkistaaksemme mahdolliset ongelmatilanteet. Tämä ympäristö auttoi varmistamaan, että ohjelmistomme kommunikoi moitteettomasti muiden logistiikkajärjestelmien, kuten varastointitietokantojen ja kuljetusten hallintatyökalujen, kanssa.
  • Kohteen testiympäristö (IFT): Aina kun kohtasimme ainutlaatuisen logistisen haasteen tai vian, käännyimme IFT:n puoleen. Tämä ympäristö auttoi myös logistiikkatiimiemme kouluttamisessa, ohjelmistoturvallisuuden varmistamisessa arkaluonteisten rahtitietojen keskellä ja kohdennettujen teknisten korjausten soveltamisessa.
  • Tuotantoympäristö (PROD): IPT-tulosten perusteella saamamme luottamuksen perusteella otimme päivitetyn ohjelmiston käyttöön PROD:ssa. Siellä tarkkailimme sen suorituskykyä todellisessa logistiikkaympäristössä, jossa oli todellisia käyttäjiä, rahtia ja kuljetusreittejä.

Tiedonsiirto

Tiedonsiirto oli ohjelmistojen nykyaikaistamishankkeemme etusijalla. Tunnustimme sen keskeisen roolin ja otimme kokeneet tietokantakehittäjämme mukaan heti projektin alusta alkaen. Hän aloitti olemassa olevien tietorakenteiden ja -mallien perusteellisen tarkastelun. Tämän tiedon avulla laadimme tarkan suunnitelman, jonka tavoitteena oli siirtää saumattomasti jokainen tavu tietoa säilyttäen sen eheys. Kyse ei ollut vain tietueiden siirtämisestä, vaan sen varmistamisesta, että jokainen linkitys, konfiguraatio ja relaatiorakenne heijastuu täydellisesti uuteen ympäristöön.
Lisäksi uudistusta tuki Hibernate-kehyksen integrointi, joka oli Innowise:n tekemä strateginen siirto. Tämän pysyvyyskerroksen avulla varmistimme, että ohjelmistomoduulimme voivat toimia sujuvasti vuorovaikutuksessa tietokantojen kanssa ilman, että ne ovat tiukasti sidottuja Oracle-tietokantaan. Tämä tarkoituksellinen integrointi tähtäsi siihen, että ratkaisumme olisi tulevaisuudenkestävä ja että se olisi mukautettavissa ja yhteensopiva lukuisten tietokantatekniikoiden kanssa. Siirtämisen päätyttyä insinöörimme suorittivat tiukan tarkastusprosessin, jolla varmistettiin, että vastarakenteinen tietokanta vastasi arkkitehtuurisuunnitelmaa ja oli valmis optimaaliseen suorituskykyyn kaikissa tulevissa hankkeissa.

Käyttöönotto

Kun ohjelmisto siirtyi siirtymävaiheiden läpi ja alkoi kehittyä edistyneempään muotoonsa, käyttöönottovaiheen jokaiseen vaiheeseen suhtauduttiin huolella ja tarkasti. Jatkuvuuden ja asiakkaan päivittäisiin toimintoihin kohdistuvien häiriöiden minimoimiseksi toteutimme porrastetun käyttöönottostrategian. 
Tämän lähestymistavan ansiosta pystyimme ottamaan uudet toiminnot ja ominaisuudet järjestelmällisesti käyttöön ja varmistamaan, että jokainen lisäys integroitui saumattomasti aiheuttamatta odottamattomia haasteita tai häiriöitä asiakkaan käynnissä oleviin prosesseihin. Ensisijaisena tavoitteenamme oli tarjota parannettu ohjelmistokokemus ja varmistaa samalla, että asiakkaamme tiimi voi jatkaa toimintaansa normaalisti.

Teknologiat ja työkalut

Angular 15, RxJs, TypeScript, Material käyttöliittymä
Java 17, Groovy; Spring saapas (3.1.3)

Vaihe 1: Jenkins, SonarQube Apache Tomcat, Ansible;

Vaihe 2: Google Cloud Run, Google Cloud Functions, Google Kubernetes Engine, Terraform, Google Cloud Build, Google Cloud Build

Joukkue

4
Java Engineers
4
Angular Engineers
1
Arkkitehti
2
AQA
2
BA
2
DBD
1
DevOps
1
Projektipäällikkö

Tulokset

30% tehokkuuden parantaminen, tietoturvan parantaminen ja ohjelmistojen varmistaminen tulevaisuutta varten markkinoita hallitsevan aseman saavuttamiseksi.

Innowise toteutti ohjelmiston kattavan uudistuksen, jonka tuloksena tilausten käsittelyssä saavutettiin huomattava 30% väheneminen, mikä lisäsi suoraan asiakastyytyväisyyttä. Toimintamme ei rajoittunut pelkästään toiminnan tehokkuuden parantamiseen, vaan poistimme kaikki tietoturva-aukot ja varmistimme, että yrityksen kriittiset tiedot pysyvät suojattuina.

Todella kiitettävää on se, että näiden merkittävien päivitysten keskellä varmistimme sujuvan siirtymisen, jonka ansiosta työntekijät pystyivät hoitamaan tehtävänsä ilman häiriöitä. Mutta visiomme ulottui välittömien huolenaiheiden ratkaisemista pidemmälle. Siirtymällä Java 17:ään ja integroimalla uusinta teknologiaa ohjelmisto on nyt taitavasti tulevaisuudenkestävä. Olemme rakentaneet vankan perustan, joka palvelee:

  • Skaalautuvuus kasvavan tietomäärän hallitsemiseksi.
  • Kapasiteetti, joka tukee vähintään 500 käyttäjän samanaikaista käyttöä reagointikyvyn kärsimättä.
  • Joustavuus rajapintojen käyttöönotossa tai mukauttamisessa.
  • Tehostetut turvatoimet, joita täydentää täysin salattu viestintä HTTPS/TLS 1.3:n kautta.
  • Sovellusominaisuuksien ammattimainen lisääminen.

Ohjelmistouudistuksen ansiosta yritys on hallitsevassa asemassa, ja se on valmis navigoimaan ja hyödyntämään jatkuvasti kehittyvää markkinadynamiikkaa.

Hankkeen kesto
  • Tammikuu 2022 - Jatkuva

30%

nopeampi tilausten käsittely

100%

tunnetut haavoittuvuudet ratkaistu

    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