Lasciate i vostri contatti, vi invieremo il nostro whitepaper via e-mail.
Acconsento al trattamento dei miei dati personali per l'invio di materiale di marketing personalizzato in conformità con la normativa vigente. Informativa sulla privacy. Confermando l'invio, l'utente accetta di ricevere materiale di marketing
Grazie!

Il modulo è stato inviato con successo.
Ulteriori informazioni sono contenute nella vostra casella di posta elettronica.

Innowise è una società internazionale di sviluppo software a ciclo completo fondata nel 2007. Siamo un team di oltre 1600+ professionisti IT che sviluppano software per altri professionisti in tutto il mondo.
Chi siamo
Innowise è una società internazionale di sviluppo software a ciclo completo fondata nel 2007. Siamo un team di oltre 1600+ professionisti IT che sviluppano software per altri professionisti in tutto il mondo.

Modernizzazione del software logistico con un aggiornamento Java: 30% elaborazione più rapida degli ordini

Innowise ha modernizzato l'interfaccia utente e i componenti software obsoleti che presentavano deficit tecnici.

Cliente

Industria
Logistica
Regione
Europa
Cliente da
2022

Il nostro cliente è una delle aziende logistiche di maggior successo in Europa, rinomata per le sue impareggiabili soluzioni di gestione della supply chain. La sua vasta area operativa si estende a numerosi paesi, offrendo una gamma di servizi che soddisfano una clientela diversificata.

Le informazioni dettagliate sul cliente non possono essere divulgate in base ai termini dell'NDA.

Sfida

Modernizzare il software logistico per affrontare le sfide di domani

L'architettura esistente del nostro cliente aveva iniziato a mostrare la sua età. Sono state identificate le seguenti sfide:
  • Vulnerabilità critiche della sicurezza: nel mondo frenetico della logistica, qualsiasi falla nella sicurezza può portare a violazioni significative, compromettendo dati sensibili e operazioni.
  • Tecnologia obsoleta: essendo basati su stack tecnologici obsoleti, i loro sistemi non avevano la velocità, l'efficienza e le funzionalità richieste dalle moderne operazioni logistiche.
  • Problemi di manutenzione: diversi componenti del software erano così antiquati che la loro manutenzione stava diventando una battaglia in salita, se non impossibile in alcuni casi.
Riconoscendo questi problemi, il cliente si è rivolto a noi con grandi aspettative. Non volevano solo una soluzione a questi problemi, ma una revisione completa, per garantire che il loro software fosse pronto per le sfide future.

Soluzione

Migrazione del software alla versione più recente di Java

Innowise ha intrapreso una valutazione completa del software logistico. Attraverso un'analisi dettagliata, abbiamo individuato i moduli principali che funzionavano sulla piattaforma Java 6, ormai obsoleta. Grazie alla nostra esperienza e ai nostri metodi efficienti, siamo riusciti a migrare questi moduli a Java 17 in modo rapido e senza problemi.

Scoperta e pianificazione

La fase iniziale del nostro progetto di modernizzazione è stata la fase di scoperta e pianificazione. Questa fase cruciale ha comportato due attività fondamentali: la raccolta dei requisiti e l'analisi dell'architettura. Successivamente, abbiamo fornito al cliente una documentazione completa su visione e scopo.

Elicitazione dei requisiti

Abbiamo coinvolto gli stakeholder attraverso interviste e workshop per capire le loro esigenze aziendali. Il risultato è stato un elenco completo di funzionalità, esigenze aziendali, aspettative degli stakeholder e requisiti tecnici.

Analisi dell'architettura

I nostri professionisti hanno analizzato l'attuale panorama tecnologico, considerando i sistemi, le fonti di dati e le infrastrutture esistenti. Inoltre, hanno esaminato le entità di terze parti che sono parte integrante delle operazioni dell'azienda di logistica, assicurando una continuità senza soluzione di continuità nelle loro interazioni.

Inoltre, abbiamo esaminato gli obiettivi strategici dell'azienda, i requisiti funzionali e non funzionali per capire le loro esigenze e sfide uniche. Questo approccio olistico ci ha permesso di sviluppare una roadmap su misura, strettamente allineata agli obiettivi a lungo termine dell'azienda.

In questa fase abbiamo coinvolto esperti, tra cui un ingegnere di database, per valutare l'architettura dei dati ed elaborare un piano di migrazione preliminare. È stata valutata la fattibilità della soluzione proposta, considerando lo stack tecnologico, l'integrazione e i rischi.

Le fasi di scoperta e pianificazione hanno costituito una base dinamica, dando forma al percorso di modernizzazione del software. Attraverso la raccolta dei requisiti e l'analisi dell'architettura, abbiamo avviato una trasformazione che avrebbe ridefinito il panorama tecnologico dell'azienda logistica.

Migrazione da Java 6 a Java 17

Con una roadmap completa in mano, siamo passati al compito cruciale di migrare il software logistico da Java 6 a Java 17. Non si è trattato di un semplice aggiornamento, ma di una trasformazione strategica che ha richiesto una pianificazione accurata, un'esecuzione competente e l'impegno a garantire una transizione senza soluzione di continuità.

Strategy formulation

Sulla base della nostra esperienza, abbiamo elaborato una strategia completa per il processo di migrazione. La strategia ha affrontato le complessità tecniche, tenendo conto anche delle potenziali interruzioni delle operazioni aziendali. L'obiettivo non era solo quello di migrare la base di codice, ma anche di sfruttare le nuove funzionalità offerte da Java 17 per migliorare le prestazioni e le caratteristiche del software.

Migrazione della base di codice

Riconoscendo i cambiamenti fondamentali tra queste due versioni di Java, il nostro primo passo è stato un audit completo della base di codice esistente, seguito dalla creazione di un solido backup come misura di sicurezza. Sfruttando un ambiente di migrazione isolato, i nostri ingegneri hanno aggiornato le dipendenze del software per garantire la perfetta compatibilità con le funzioni avanzate e le metriche di performance di Java 17.

Un aspetto critico della nostra strategia di migrazione è stato il potenziamento dei meccanismi di registrazione del sistema. Grazie alla nostra esperienza, abbiamo potenziato i moduli dell'applicazione per acquisire un'ampia gamma di dati, dalle attività e dalle eccezioni degli utenti alle minacce alla sicurezza, come le operazioni improprie e i tentativi di accesso non corretti. Queste misure avanzate di registrazione non erano semplici aggiunte, ma erano parte integrante dei requisiti generali di sicurezza e conformità del cliente.

L'architettura del software era un altro punto focale. Data l'esigenza di agilità e scalabilità del cliente, e sulla base della nostra esperienza con i paesaggi tecnologici in evoluzione, il nostro team ha convertito il software in un modello di architettura a microservizi. Questo design disaccoppiato e modulare ha facilitato l'implementazione indipendente dei servizi, un migliore isolamento dai guasti e la scalabilità, un requisito fondamentale per un'entità logistica con operazioni di ampia portata.

Tuttavia, la vera sfida risiede nella modernizzazione del codice. Era indispensabile integrare l'API Stream e le espressioni lambda di Java 8, in modo da rendere il codice conciso e facilmente comprensibile. Nel frattempo, abbiamo esaminato tutte le collezioni per garantire l'allineamento agli standard di Java 17. L'adozione della parola chiave 'var' è stato un altro passo per modernizzare la nostra base di codice. Inoltre, le operazioni sulle stringhe sono state rinnovate per adeguarle alle specifiche di Java 17 e, laddove possibile, siamo passati dalle catene di istruzioni if/else alle più versatili istruzioni switch introdotte nella nuova versione di Java. Garantire che tutti questi cambiamenti non avessero conseguenze indesiderate è stata la nostra massima priorità, sottolineata da test rigorosi della logica di tutti i metodi pubblici.

I test rigorosi sono stati una pietra miliare del nostro processo di migrazione. Ogni modulo migrato è stato sottoposto a test completi per garantire non solo la conformità ai requisiti funzionali, ma anche la perfetta integrazione con gli altri componenti. I nostri test hanno dimostrato che questo approccio rigoroso ha ridotto al minimo il rischio di problemi successivi alla migrazione.

Ecco come abbiamo testato questa transizione nei nostri ambienti:

  • Ambiente di sviluppo (DEV): In questa fase iniziale, i nostri sviluppatori hanno adattato il codice in modo specifico per le funzionalità logistiche. Hanno eseguito test di base, concentrandosi sull'ottimizzazione dei percorsi, sulla tracciabilità dei carichi e sulla gestione della flotta, per garantire che le caratteristiche fondamentali funzionassero senza problemi.
  • Ambiente di test di produzione (IPT): Questa era la nostra zona di test avanzati. Abbiamo simulato scenari reali, come prenotazioni di carichi ad alto volume e ricerche di itinerari nelle ore di punta, per verificare eventuali intoppi. Questo ambiente ci ha aiutato a garantire che il nostro software comunicasse perfettamente con altri sistemi logistici, come i database di magazzino e gli strumenti di gestione dei trasporti.
  • Ambiente di test del soggetto (IFT): Ogni volta che ci siamo trovati di fronte a una sfida logistica unica o a un bug, ci siamo rivolti a IFT. Questo ambiente è stato fondamentale anche per la formazione dei nostri team logistici, per la verifica della sicurezza del software in mezzo ai dati sensibili del carico e per l'applicazione di correzioni tecniche mirate.
  • Ambiente di produzione (PROD): Forti dei risultati dell'IPT, abbiamo lanciato il software aggiornato in PROD. Qui abbiamo osservato le sue prestazioni in un contesto logistico reale, con utenti, merci e percorsi di trasporto reali.

Migrazione dei dati

La migrazione dei dati è stata in prima linea nel nostro progetto di modernizzazione del software. Riconoscendo il suo ruolo fondamentale, abbiamo coinvolto i nostri esperti sviluppatori di database fin dall'inizio del progetto. Abbiamo intrapreso una revisione approfondita delle strutture e dei modelli di dati esistenti. Armati di queste conoscenze, abbiamo elaborato un piano preciso per migrare senza problemi ogni byte di dati, preservandone l'integrità. Non si trattava solo di spostare i record, ma di garantire che ogni collegamento, configurazione e struttura relazionale fosse perfettamente rispecchiata nel nuovo ambiente.
Inoltre, la nostra revisione è stata sostenuta dall'integrazione del framework Hibernate, una mossa strategica di Innowise. Grazie a questo livello di persistenza, ci siamo assicurati che i nostri moduli software potessero interagire fluidamente con i database senza essere strettamente legati al database Oracle. Questa integrazione deliberata era finalizzata a rendere la nostra soluzione a prova di futuro, rendendola adattabile e compatibile con una pletora di tecnologie di database. Al termine della migrazione, i nostri ingegneri hanno intrapreso un rigoroso processo di verifica, assicurando che il nuovo database strutturato fosse in linea con il nostro progetto architettonico e fosse pronto a garantire prestazioni ottimali in tutti i prossimi sforzi.

Distribuzione

Man mano che il software passava attraverso le fasi di migrazione e cominciava a evolversi nella sua forma più avanzata, ogni fase della distribuzione è stata affrontata con meticolosa attenzione e precisione. Per garantire la continuità e la minima interferenza nelle operazioni quotidiane del cliente, abbiamo implementato una strategia di implementazione scaglionata. 
Questo approccio ci ha permesso di introdurre sistematicamente le nuove funzionalità e caratteristiche, assicurando che ogni aggiunta si integrasse perfettamente senza causare problemi imprevisti o interruzioni ai processi in corso del cliente. Il nostro obiettivo principale era quello di offrire un'esperienza software migliorata, garantendo al tempo stesso la continuità delle attività per il team del nostro cliente.

Tecnologie e strumenti

Front-end

Angular 15, RxJs, TypeScript, Material UI

Back-end

Java 17, Groovy; Spring Boot (3.1.3)

DevOps/Cloud

Fase 1: Jenkins, SonarQube Apache Tomcat, Ansible;

Fase 2: Google Cloud Esecuzione, Google Cloud Funzioni, Google Kubernetes Engine, Terraform, Google Cloud Costruire

Team

4
Ingegneri Java
4
Ingegneri Angular
2
QA
2
AQA
2
BA
2
DBD
1
DevOps
1
Responsabile di progetto
team-innowise

Risultati

30% aumento dell'efficienza, potenziamento della sicurezza e sicurezza per il futuro del software per dominare il mercato

Innowise ha intrapreso una revisione completa del software, ottenendo una notevole riduzione di 30% nell'elaborazione degli ordini che ha aumentato direttamente la soddisfazione dei clienti. I nostri sforzi non si sono limitati a migliorare l'efficienza operativa, ma hanno eliminato tutte le vulnerabilità di sicurezza, garantendo la protezione dei dati critici dell'azienda.

L'aspetto veramente lodevole è che, in mezzo a questi aggiornamenti sostanziali, abbiamo garantito una transizione senza intoppi che ha permesso ai dipendenti di svolgere le loro mansioni senza alcuna interruzione. Ma la nostra visione va oltre la soluzione dei problemi immediati. Con la transizione a Java 17 e l'integrazione di tecnologie all'avanguardia, il software è ora a prova di futuro. Abbiamo costruito una solida base per soddisfare le esigenze di:

  • Scalabilità per gestire un volume di dati crescente.
  • Capacità di supportare l'uso contemporaneo di almeno 500 utenti senza sacrificare la reattività.
  • Flessibilità nell'introdurre o adattare le interfacce.
  • Misure di sicurezza potenziate, integrate da comunicazioni completamente criptate tramite HTTPS/TLS 1.3.
  • La possibilità di aumentare professionalmente le funzionalità dell'applicazione.

La revisione del software pone l'azienda in una posizione dominante, pronta a navigare e a capitalizzare le dinamiche di mercato in continua evoluzione.

Durata del progetto
  • Gennaio 2022 - In corso

30%

elaborazione più rapida degli ordini

100%

vulnerabilità note risolte

Contattateci!

Prenota una chiamata oppure compilate il modulo sottostante e sarete ricontattati una volta elaborata la vostra richiesta.

    Si prega di includere i dettagli del progetto, la durata, lo stack tecnologico, i professionisti IT necessari e altre informazioni pertinenti
    Registra un messaggio vocale sul tuo
    progetto per aiutarci a capirlo meglio
    Allega ulteriori documenti se necessario
    Caricare il file

    È possibile allegare fino a 1 file di 2 MB complessivi. File validi: pdf, jpg, jpeg, png

    Vi informiamo che cliccando sul pulsante Invia, Innowise tratterà i vostri dati personali in conformità con la nostra Informativa sulla privacy allo scopo di fornirvi informazioni adeguate.

    Cosa succede dopo?

    1

    Dopo aver ricevuto ed elaborato la vostra richiesta, vi ricontatteremo a breve per illustrare le esigenze del progetto e firmare un NDA per garantire la riservatezza delle informazioni.

    2

    Dopo aver esaminato i requisiti, i nostri analisti e sviluppatori elaborano una proposta di progetto con l'ambito di lavoro, le dimensioni del team, i tempi e i costi stimati.

    3

    Organizziamo un incontro con voi per discutere l'offerta e giungere a un accordo.

    4

    Firmiamo un contratto e iniziamo a lavorare sul vostro progetto il prima possibile.

    Grazie!

    Il tuo messaggio è stato inviato.
    Elaboreremo la vostra richiesta e vi ricontatteremo al più presto.

    Grazie!

    Il tuo messaggio è stato inviato.
    Elaboreremo la vostra richiesta e vi ricontatteremo al più presto.

    freccia