Modernisering af logistiksoftware med en Java-opgradering: 30% hurtigere ordrebehandling

Innowise har moderniseret den forældede brugergrænseflade og de softwarekomponenter, der havde tekniske mangler.

Kunde

Industri
Region
Europa
Kunde siden
2022

Vores kunde er en af de mest succesfulde logistikvirksomheder i Europa, som er kendt for deres enestående løsninger til styring af forsyningskæden. Deres store operationelle fodaftryk spænder over adskillige lande og tilbyder en række tjenester, der imødekommer en forskelligartet kundekreds.

Detaljerede oplysninger om klienten kan ikke videregives i henhold til vilkårene i NDA'en.

Udfordring

Modernisering af logistiksoftware for at imødekomme morgendagens udfordringer

Vores kundes eksisterende arkitektur var begyndt at vise sin alder. Følgende udfordringer blev identificeret:
  • Kritiske sikkerhedssårbarheder: I den hurtige logistikverden kan ethvert sikkerhedshul resultere i betydelige brud, der kompromitterer følsomme data og operationer.
  • Forældet teknologi: Da deres systemer var baseret på forældede tekniske stakke, manglede de den hastighed, effektivitet og de funktioner, som moderne logistikoperationer kræver.
  • Vedligeholdelsesproblemer: Flere komponenter i deres software var så forældede, at det var op ad bakke at vedligeholde dem, hvis ikke umuligt i nogle tilfælde.
I erkendelse af disse problemer henvendte kunden sig til os med høje forventninger. De ønskede ikke bare en løsning på disse problemer, men en komplet revision, så deres software var klar til fremtidige udfordringer.

Løsning

Migrering af softwaren til den nyeste version af Java

Hos Innowise foretog vi en omfattende evaluering af logistiksoftwaren. Gennem vores detaljerede analyse fandt vi frem til de kernemoduler, der kørte på den forældede Java 6-platform. Med vores ekspertise og effektive metoder var vi i stand til hurtigt og problemfrit at migrere disse moduler til Java 17.

Opdagelse og planlægning

Den første fase af vores moderniseringsprojekt var opdagelses- og planlægningsfasen. Denne afgørende fase omfattede to nøgleaktiviteter: indsamling af krav og arkitekturanalyse. Efterfølgende forsynede vi kunden med omfattende dokumentation af vision og omfang.

Udarbejdelse af krav

Vi inddrog interessenter gennem interviews og workshops for at forstå deres forretningsbehov. Det resulterede i en omfattende liste over funktioner, forretningsbehov, interessenternes forventninger og tekniske krav.

Arkitekturanalyse

Vores fagfolk analyserede det nuværende teknologilandskab og overvejede eksisterende systemer, datakilder og infrastruktur. Derudover undersøgte vi de tredjepartsenheder, der er en integreret del af logistikvirksomhedens drift, for at sikre problemfri kontinuitet i deres interaktioner.

Desuden undersøgte vi virksomhedens strategiske mål, funktionelle og ikke-funktionelle krav for at forstå deres unikke behov og udfordringer. Denne holistiske tilgang gjorde det muligt for os at udvikle en skræddersyet køreplan, der lå tæt op ad deres langsigtede mål.

I løbet af denne fase engagerede vi eksperter, herunder en databaseingeniør, til at vurdere dataarkitekturen og udarbejde en foreløbig migrationsplan. Gennemførligheden af den foreslåede løsning blev evalueret under hensyntagen til teknologistakken, integration og risici.

Opdagelses- og planlægningsfaserne fungerede som et dynamisk fundament, der formede kursen for softwaremoderniseringen. Gennem kravindsamling og arkitekturanalyse satte vi gang i en transformation, der ville omdefinere logistikvirksomhedens teknologiske landskab.

Migration fra Java 6 til Java 17

Med en omfattende køreplan i hånden gik vi i gang med den afgørende opgave at migrere logistiksoftwaren fra Java 6 til Java 17. Denne indsats var mere end en simpel opdatering; det var en strategisk transformation, der involverede grundig planlægning, dygtig udførelse og en forpligtelse til at sikre en problemfri overgang.

Formulering af strategi

På baggrund af vores erfaring udarbejdede vi en omfattende strategi for migrationsprocessen. Strategien tog højde for de tekniske vanskeligheder, samtidig med at den tog højde for potentielle forstyrrelser i forretningsdriften. Målet var ikke kun at migrere kodebasen, men også at udnytte de nye muligheder i Java 17 til at forbedre softwarens ydeevne og funktioner.

Migrering af kodebase

I erkendelse af de grundlæggende ændringer mellem disse to Java-versioner var vores første skridt en omfattende revision af den eksisterende kodebase, efterfulgt af oprettelse af en robust sikkerhedskopi som en fejlsikker foranstaltning. Ved hjælp af et isoleret migreringsmiljø opgraderede vores ingeniører softwareafhængighederne for at sikre problemfri kompatibilitet med Java 17's forbedrede funktioner og præstationsmålinger.

Et afgørende aspekt af vores migrationsstrategi var at forbedre systemets logningsmekanismer. Ved at trække på vores ekspertise styrkede vi applikationsmodulerne, så de kunne registrere en lang række data - fra brugeraktiviteter og undtagelser til sikkerhedstrusler som ukorrekte operationer og forkerte login-forsøg. Disse avancerede logningsforanstaltninger var ikke blot tilføjelser, men en integreret del af kundens overordnede krav til sikkerhed og compliance.

Softwarens arkitektur var et andet fokuspunkt. På grund af kundens behov for smidighed og skalerbarhed, og baseret på vores egen erfaring med teknologiske landskaber i udvikling, ændrede vores team softwaren til et arkitekturmønster med mikrotjenester. Dette afkoblede, modulære design muliggjorde uafhængig implementering af tjenester, bedre fejlimplementering og skalerbarhed - en forudsætning for en logistikenhed med omfattende aktiviteter.

Men den virkelige udfordring ligger i kodemodernisering. Det var bydende nødvendigt at integrere Stream API'en og lambda-udtrykkene fra Java 8, så koden blev både kortfattet og letforståelig. I mellemtiden undersøgte vi alle samlinger for at sikre overensstemmelse med Java 17-standarderne. Indførelsen af nøgleordet 'var' var endnu et skridt i retning af at gøre vores kodebase mere tidssvarende. Derudover blev strengoperationer moderniseret for at matche Java 17-specifikationerne, og hvor det var muligt, skiftede vi fra kæder af if/else-sætninger til de mere alsidige switch-sætninger, der blev introduceret i den nyere Java-version. Det var vores højeste prioritet at sikre, at alle disse ændringer ikke havde utilsigtede konsekvenser, hvilket blev understreget af en grundig test af alle offentlige metoders logik.

Grundig testning var en hjørnesten i vores migreringsproces. Hvert migreret modul gennemgik omfattende test for at sikre, at det ikke kun opfyldte funktionelle krav, men også integrerede problemfrit med andre komponenter. Vores tests har vist, at denne strenge undersøgelsesmetode minimerede risikoen for problemer efter migreringen.

Her er en oversigt over, hvordan vi testede denne overgang på tværs af vores miljøer:

  • Udviklingsmiljø (DEV): I denne indledende fase tilpassede vores udviklere koden specifikt til logistikfunktioner. De kørte grundlæggende tests med fokus på ruteoptimering, fragtsporing og flådestyring for at sikre, at de grundlæggende funktioner fungerede problemfrit.
  • Produktionstestmiljø (IPT): Dette var vores avancerede testzone. Vi simulerede scenarier fra den virkelige verden, som f.eks. bookinger af store mængder gods og rutesøgninger i spidsbelastningsperioder, for at tjekke, om der var problemer. Dette miljø var med til at sikre, at vores software kommunikerede fejlfrit med andre logistiksystemer, f.eks. lagerdatabaser og transportstyringsværktøjer.
  • Testmiljø for emner (IFT): Hver gang vi stødte på en unik logistisk udfordring eller fejl, henvendte vi os til IFT. Dette miljø var også medvirkende til at uddanne vores logistikteams, verificere softwaresikkerhed midt i følsomme fragtdata og anvende målrettede tekniske rettelser.
  • Produktionsmiljø (PROD): Med tillid til vores IPT-resultater lancerede vi den opdaterede software i PROD. Det var her, vi observerede dens ydeevne i en levende logistiksituation med rigtige brugere, gods og transportruter.

Migration af data

Datamigrering stod i spidsen for vores softwaremoderniseringsprojekt. I erkendelse af dens centrale rolle engagerede vi vores erfarne databaseudviklere lige fra projektets start. Han gik i gang med en grundig gennemgang af de eksisterende datastrukturer og -mønstre. Bevæbnet med denne viden udarbejdede vi en præcis plan, der havde til formål at migrere hver eneste byte data problemfrit og samtidig bevare integriteten. Det handlede ikke kun om at flytte poster; det handlede om at sikre, at alle koblinger, konfigurationer og relationsstrukturer blev spejlet perfekt i det nye miljø.
Desuden blev vores revision understøttet af integrationen af Hibernate-frameworket, et strategisk træk foretaget af Innowise. Gennem dette persistenslag sikrede vi, at vores softwaremoduler kunne interagere flydende med databaser uden at være strengt bundet til Oracle-databasen. Denne bevidste integration var rettet mod at fremtidssikre vores løsning og gøre den tilpasningsdygtig og kompatibel med et væld af databaseteknologier. Da migreringen var afsluttet, foretog vores ingeniører en grundig verificeringsproces for at sikre, at den nyligt strukturerede database var i overensstemmelse med vores arkitektoniske plan og var klar til at yde optimalt i alle kommende projekter.

Udrulning

Efterhånden som softwaren gik gennem migrationsfaserne og begyndte at udvikle sig til sin mere avancerede form, blev hvert trin i implementeringsfasen grebet an med omhyggelig omhu og præcision. For at sikre kontinuitet og minimal indblanding i kundens daglige drift implementerede vi en forskudt udrulningsstrategi. 
Denne tilgang gjorde det muligt for os systematisk at introducere de nye funktioner og features og sikre, at hver tilføjelse blev integreret problemfrit uden at forårsage uventede udfordringer eller afbrydelser i kundens igangværende processer. Vores primære mål var at tilbyde en forbedret softwareoplevelse og samtidig sikre, at vores kundes team kunne fortsætte som hidtil.

Teknologier og værktøjer

Angular 15, RxJs, TypeScript, Material UI

Fase 1: Jenkins, SonarQube Apache Tomcat, Ansible;

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

Hold

4
Java Engineers
4
Angular Engineers
1
Arkitekt
2
AQA
2
BA
2
DBD
1
DevOps
1
Projektleder

Resultater

30% effektivitetsforøgelse, sikkerhedsforbedring og fremtidssikring af softwaren til markedsdominans

Innowise foretog et omfattende eftersyn af softwaren og leverede en bemærkelsesværdig 30% reduktion i ordrebehandlingen, hvilket direkte øgede kundetilfredsheden. Vores indsats omfattede mere end blot forbedring af driftseffektiviteten, vi eliminerede alle sikkerhedsproblemer og sikrede, at virksomhedens kritiske data forblev beskyttede.

Det er virkelig prisværdigt, at vi midt i disse omfattende opgraderinger sikrede en smidig overgang, så medarbejderne kunne udføre deres opgaver uden afbrydelser. Men vores vision rakte længere end til at løse de umiddelbare problemer. Ved at gå over til Java 17 og integrere de nyeste teknologier er softwaren nu fremtidssikret. Vi har opbygget et robust fundament, der imødekommer:

  • Skalerbarhed til at håndtere stigende datamængder.
  • Kapacitet til at understøtte samtidig brug af mindst 500 brugere uden at gå på kompromis med reaktionsevnen.
  • Fleksibilitet til at indføre eller tilpasse grænseflader.
  • Forbedrede sikkerhedsforanstaltninger, suppleret med fuldt krypteret kommunikation via HTTPS/TLS 1.3.
  • Muligheden for professionel udvidelse af applikationsfunktioner.

Softwareoverhalingen placerer virksomheden i en dominerende position, klar til at navigere og kapitalisere på den stadigt udviklende markedsdynamik.

Projektets varighed
  • Januar 2022 - Løbende

30%

hurtigere ordrebehandling

100%

kendte sårbarheder løst

    Kontakt os

    Book et opkald eller udfyld formularen nedenfor, så vender vi tilbage til dig, når vi har behandlet din anmodning.

    Send os en talebesked
    Vedhæft dokumenter
    Upload fil

    Du kan vedhæfte 1 fil på op til 2 MB. Gyldige filformater: pdf, jpg, jpeg, png.

    Ved at klikke på Send accepterer du, at Innowise behandler dine personlige data i henhold til vores Politik for beskyttelse af personlige oplysninger for at give dig relevante oplysninger. Ved at indsende dit telefonnummer accepterer du, at vi kan kontakte dig via taleopkald, sms og beskedapps. Opkalds-, besked- og datatakster kan være gældende.

    Du kan også sende os din anmodning
    til contact@innowise.com

    Hvad sker der nu?

    1

    Når vi har modtaget og behandlet din anmodning, vender vi tilbage til dig for at beskrive dine projektbehov og underskriver en NDA for at sikre fortrolighed.

    2

    Når vi har undersøgt dine ønsker, behov og forventninger, udarbejder vores team et projektforslag med forslag med arbejdets omfang, teamstørrelse, tids- og omkostningsoverslag.

    3

    Vi arrangerer et møde med dig for at diskutere tilbuddet og få detaljerne på plads.

    4

    Til sidst underskriver vi en kontrakt og begynder at arbejde på dit projekt med det samme.

    pil