Zostaw swoje dane kontaktowe, a my wyślemy Ci nasz przegląd e-mailem
Wyrażam zgodę na przetwarzanie moich danych osobowych w celu przesyłania spersonalizowanych materiałów marketingowych zgodnie z Regulaminem. Politykę Prywatności. Potwierdzając zgłoszenie, użytkownik wyraża zgodę na otrzymywanie materiałów marketingowych
Dziękuję!

Formularz został pomyślnie przesłany.
Więcej informacji można znaleźć w skrzynce pocztowej.

Innowise jest międzynarodową firmą tworzącą oprogramowanie w pełnym cyklu założona w 2007 roku. Jesteśmy zespołem ponad 1800+ specjalistów IT tworzących oprogramowanie dla innych profesjonalistów na całym świecie. profesjonalistów na całym świecie.
O nas
Innowise jest międzynarodową firmą tworzącą oprogramowanie w pełnym cyklu założona w 2007 roku. Jesteśmy zespołem ponad 1600 specjalistów IT tworzących oprogramowanie dla innych profesjonalistów na całym świecie. profesjonalistów na całym świecie.

Modernizacja oprogramowania logistycznego za pomocą aktualizacji Java: 30% szybsze przetwarzanie zamówień

Innowise zmodernizował przestarzały interfejs użytkownika i komponenty oprogramowania, które miały braki techniczne.

Klient

Branża
Logistyka
Region
Europa
Klient od
2022

Nasz klient jest jedną z odnoszących największe sukcesy firm logistycznych w Europie, znaną z niezrównanych rozwiązań w zakresie zarządzania łańcuchem dostaw. Ich rozległy zasięg operacyjny obejmuje wiele krajów, oferując gamę usług, które zaspokajają potrzeby zróżnicowanej klienteli.

Szczegółowe informacje o kliencie nie mogą zostać ujawnione zgodnie z warunkami umowy NDA.

Wyzwanie

Modernizacja oprogramowania logistycznego w celu sprostania wyzwaniom jutra

Istniejąca architektura naszego klienta zaczęła wykazywać swój wiek. Zidentyfikowano następujące wyzwania:
  • Krytyczne luki w zabezpieczeniach: w szybko zmieniającym się świecie logistyki każda luka w zabezpieczeniach może prowadzić do poważnych naruszeń, narażając wrażliwe dane i operacje.
  • Przestarzała technologia: bazując na przestarzałych rozwiązaniach technologicznych, ich systemom brakowało szybkości, wydajności i funkcji, których wymagają nowoczesne operacje logistyczne.
  • Kwestie związane z konserwacją: kilka komponentów ich oprogramowania było tak przestarzałych, że ich konserwacja stawała się trudna, a w niektórych przypadkach wręcz niemożliwa.
Rozpoznając te problemy, klient zwrócił się do nas z wysokimi oczekiwaniami. Szukał nie tylko rozwiązania tych problemów, ale także kompletnego przeglądu, który zapewniłby, że jego oprogramowanie będzie gotowe na przyszłe wyzwania.

Wdrożenie

Migracja oprogramowania do najnowszej wersji Java

W Innowise podjęliśmy się kompleksowej oceny oprogramowania logistycznego. Dzięki szczegółowej analizie zidentyfikowaliśmy podstawowe moduły, które działały na przestarzałej platformie Java 6. Dzięki naszej wiedzy i skutecznym metodom byliśmy w stanie szybko i sprawnie przeprowadzić migrację tych modułów do Java 17.

Odkrywanie i planowanie

Początkową fazą naszego projektu modernizacji był etap odkrywania i planowania. Ta kluczowa faza obejmowała dwa kluczowe działania: zbieranie wymagań i analizę architektury. Następnie dostarczyliśmy klientowi kompleksową dokumentację wizji i zakresu.

Określanie wymagań

Zaangażowaliśmy interesariuszy poprzez wywiady i warsztaty, aby zrozumieć ich potrzeby biznesowe. W rezultacie stworzyliśmy kompleksową listę funkcji, potrzeb biznesowych, oczekiwań interesariuszy i wymagań technicznych.

Analiza architektury

Nasi specjaliści przeanalizowali obecny krajobraz technologiczny, biorąc pod uwagę istniejące systemy, źródła danych i infrastrukturę. Ponadto przeanalizowaliśmy podmioty zewnętrzne integralnie związane z działalnością firmy logistycznej, zapewniając płynną ciągłość ich interakcji.

Ponadto przeanalizowaliśmy strategiczne cele firmy, wymagania funkcjonalne i niefunkcjonalne, aby zrozumieć ich unikalne potrzeby i wyzwania. To holistyczne podejście pozwoliło nam opracować dostosowaną mapę drogową, która była ściśle zgodna z ich długoterminowymi celami.

Na tym etapie zaangażowaliśmy ekspertów, w tym inżyniera baz danych, do oceny architektury danych i opracowania wstępnego planu migracji. Oceniono wykonalność proponowanego rozwiązania, biorąc pod uwagę stos technologii, integrację i ryzyko.

Fazy odkrywania i planowania posłużyły jako dynamiczny fundament, kształtujący przebieg modernizacji oprogramowania. Poprzez gromadzenie wymagań i analizę architektury zapoczątkowaliśmy transformację, która na nowo zdefiniuje krajobraz technologiczny firmy logistycznej.

Migracja z Java 6 do Java 17

Mając w ręku kompleksową mapę drogową, przeszliśmy do kluczowego zadania, jakim była migracja oprogramowania logistycznego z Java 6 do Java 17. To przedsięwzięcie było czymś więcej niż zwykłą aktualizacją; była to strategiczna transformacja, która wymagała dokładnego planowania, umiejętnego wykonania i zaangażowania w zapewnienie płynnego przejścia.

Formułowanie strategii

Korzystając z naszego doświadczenia, opracowaliśmy kompleksową strategię procesu migracji. Strategia ta uwzględniała zawiłości techniczne, a także potencjalne zakłócenia w operacjach biznesowych. Celem była nie tylko migracja bazy kodu, ale także wykorzystanie nowych możliwości oferowanych przez Javę 17 w celu zwiększenia wydajności i funkcjonalności oprogramowania.

Migracja bazy kodu

Uznając fundamentalne zmiany między tymi dwiema wersjami Java, naszym pierwszym krokiem był kompleksowy audyt istniejącej bazy kodu, a następnie utworzenie solidnej kopii zapasowej jako środka zabezpieczającego przed awarią. Wykorzystując odizolowane środowisko migracji, nasi inżynierowie zaktualizowali zależności oprogramowania, aby zapewnić płynną kompatybilność z ulepszonymi funkcjami i wskaźnikami wydajności Java 17.

Krytycznym aspektem naszej strategii migracji było usprawnienie mechanizmów logowania systemu. Korzystając z naszej wiedzy, wzmocniliśmy moduły aplikacji, aby przechwytywać szeroki zakres danych - od działań użytkowników i wyjątków po zagrożenia bezpieczeństwa, takie jak niewłaściwe operacje i nieprawidłowe próby logowania. Te zaawansowane środki rejestrowania nie były zwykłymi dodatkami, ale stanowiły integralną część nadrzędnych wymagań klienta w zakresie bezpieczeństwa i zgodności.

Kolejnym ważnym punktem była architektura oprogramowania. Biorąc pod uwagę zapotrzebowanie klienta na zwinność i skalowalność, a także w oparciu o nasze własne doświadczenie z ewoluującymi krajobrazami technologicznymi, nasz zespół przekształcił oprogramowanie we wzorzec architektury mikrousług. Ten oddzielony, modułowy projekt ułatwił niezależne wdrażanie usług, lepszą izolację błędów i skalowalność - co jest niezbędne dla podmiotu logistycznego prowadzącego rozległe operacje.

Prawdziwym wyzwaniem okazała się jednak modernizacja kodu. Konieczne było zintegrowanie Stream API i wyrażeń lambda z Java 8, aby kod stał się zarówno zwięzły, jak i łatwy do zrozumienia. W międzyczasie przeanalizowaliśmy wszystkie kolekcje, aby zapewnić zgodność ze standardami Java 17. Przyjęcie słowa kluczowego "var" było kolejnym krokiem w kierunku uwspółcześnienia naszej bazy kodu. Dodatkowo, operacje na łańcuchach znaków zostały dostosowane do specyfikacji Java 17, a tam, gdzie było to możliwe, zrezygnowaliśmy z łańcuchów instrukcji if/else na rzecz bardziej wszechstronnych instrukcji switch wprowadzonych w nowszej wersji Javy. Upewnienie się, że wszystkie te zmiany nie miały niezamierzonych konsekwencji, było naszym najwyższym priorytetem, podkreślonym przez rygorystyczne testowanie logiki wszystkich metod publicznych.

Rygorystyczne testy były kamieniem węgielnym naszego procesu migracji. Każdy migrowany moduł przeszedł kompleksowe testy, aby upewnić się, że nie tylko spełnia wymagania funkcjonalne, ale także płynnie integruje się z innymi komponentami. Nasze testy wykazały, że to rygorystyczne podejście do testowania zminimalizowało ryzyko wystąpienia problemów po migracji.

Oto zestawienie tego, jak przetestowaliśmy to przejście w naszych środowiskach:

  • Środowisko programistyczne (DEV): Na tym początkowym etapie nasi programiści dostosowali kod specjalnie do funkcji logistycznych. Przeprowadzili podstawowe testy, koncentrując się na optymalizacji tras, śledzeniu ładunków i zarządzaniu flotą, aby upewnić się, że podstawowe funkcje działają płynnie.
  • Środowisko testów produkcyjnych (IPT): To była nasza zaawansowana strefa testowa. Symulowaliśmy rzeczywiste scenariusze, takie jak rezerwacje ładunków o dużej objętości i wyszukiwanie tras w godzinach szczytu, aby sprawdzić wszelkie usterki. Środowisko to pomogło zapewnić bezbłędną komunikację naszego oprogramowania z innymi systemami logistycznymi, takimi jak bazy danych magazynowania i narzędzia do zarządzania transportem.
  • Przedmiotowe środowisko testowe (IFT): Za każdym razem, gdy napotykaliśmy wyjątkowe wyzwanie logistyczne lub błąd, zwracaliśmy się do IFT. Środowisko to odegrało również kluczową rolę w szkoleniu naszych zespołów logistycznych, weryfikacji bezpieczeństwa oprogramowania wśród wrażliwych danych ładunku oraz stosowaniu ukierunkowanych poprawek technicznych.
  • Środowisko produkcyjne (PROD): Mając pewność co do wyników IPT, uruchomiliśmy zaktualizowane oprogramowanie w PROD. To tutaj obserwowaliśmy jego wydajność w środowisku logistycznym na żywo, z prawdziwymi użytkownikami, ładunkami i trasami transportowymi.

Migracja danych

Migracja danych stała na czele naszego projektu modernizacji oprogramowania. Uznając jej kluczową rolę, zaangażowaliśmy naszych doświadczonych programistów baz danych od samego początku projektu. Rozpoczęli oni dogłębną analizę istniejących struktur i wzorców danych. Uzbrojeni w tę wiedzę, opracowaliśmy precyzyjny plan mający na celu płynną migrację każdego bajtu danych przy jednoczesnym zachowaniu ich integralności. Nie chodziło tylko o przeniesienie rekordów; chodziło o zapewnienie, że każde powiązanie, konfiguracja i struktura relacyjna zostały idealnie odzwierciedlone w nowym środowisku.
Co więcej, nasza przebudowa opierała się na integracji frameworka Hibernate, strategicznym posunięciu wykonanym przez Innowise. Dzięki tej warstwie trwałości zapewniliśmy, że nasze moduły oprogramowania mogą płynnie współpracować z bazami danych bez ścisłego powiązania z bazą danych Oracle. Ta celowa integracja miała na celu zabezpieczenie naszego rozwiązania na przyszłość, czyniąc je adaptowalnym i kompatybilnym z wieloma technologiami baz danych. Po zakończeniu migracji nasi inżynierowie przeprowadzili rygorystyczny proces weryfikacji, upewniając się, że nowo skonstruowana baza danych jest zgodna z naszym projektem architektonicznym i jest przygotowana do optymalnej wydajności we wszystkich nadchodzących przedsięwzięciach.

Wdrożenie

W miarę jak oprogramowanie przechodziło przez etapy migracji i zaczęło ewoluować do bardziej zaawansowanej formy, każdy krok fazy wdrażania był traktowany z drobiazgową starannością i precyzją. Aby zapewnić ciągłość i minimalną ingerencję w codzienne operacje klienta, wdrożyliśmy strategię stopniowego wdrażania. 
Takie podejście pozwoliło nam na systematyczne wprowadzanie nowych funkcjonalności i funkcji, zapewniając, że każdy dodatek integrował się płynnie, nie powodując nieoczekiwanych wyzwań lub zakłóceń w bieżących procesach klienta. Naszym głównym celem było zaoferowanie ulepszonego oprogramowania przy jednoczesnym zapewnieniu normalnego funkcjonowania zespołu naszego klienta.

Technologie i narzędzia

Front-end

Angular 15, RxJs, TypeScript, Material UI

Back-end

Java 17, Groovy; Spring Boot (3.1.3)

DevOps/Cloud

Faza 1: Jenkins, SonarQube Apache Tomcat, Ansible;

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

Zespół

4
Inżynierowie Java
4
Angular Inżynierowie
2
QA
2
AQA
2
BA
2
DBD
1
DevOps
1
Kierownik projektu
team-innowise

Wyniki

30% - wzrost wydajności, poprawa bezpieczeństwa i przyszłościowe oprogramowanie zapewniające dominację na rynku

Innowise przeprowadziło kompleksowy przegląd oprogramowania, zapewniając znaczny spadek przetwarzania zamówień o 30%, co bezpośrednio zwiększyło zadowolenie klientów. Nasze wysiłki obejmowały więcej niż tylko zwiększenie wydajności operacyjnej, wyeliminowaliśmy wszystkie luki w zabezpieczeniach, zapewniając, że krytyczne dane firmy pozostają chronione.

To, co jest naprawdę godne pochwały, to fakt, że wśród tych znaczących aktualizacji zapewniliśmy płynne przejście, które pozwoliło pracownikom wykonywać swoje zadania bez żadnych zakłóceń. Ale nasza wizja wykraczała poza rozwiązywanie bezpośrednich problemów. Dzięki przejściu na Java 17 i integracji najnowocześniejszych technologii, oprogramowanie jest teraz doskonale przygotowane na przyszłość. Zbudowaliśmy solidne podstawy, które pozwalają na:

  • Skalowalność umożliwiająca zarządzanie rosnącą ilością danych.
  • Zdolność do obsługi jednoczesnego użytkowania przez co najmniej 500 użytkowników bez poświęcania szybkości reakcji.
  • Elastyczność we wprowadzaniu lub dostosowywaniu interfejsów.
  • Ulepszone środki bezpieczeństwa, uzupełnione o w pełni szyfrowaną komunikację za pośrednictwem HTTPS/TLS 1.3.
  • Możliwość profesjonalnego rozszerzenia funkcji aplikacji.

Modernizacja oprogramowania stawia firmę na dominującej pozycji, gotową do nawigacji i wykorzystywania stale zmieniającej się dynamiki rynku.

Czas trwania projektu
  • Styczeń 2022 r. - w toku

30%

Szybsze przetwarzanie zamówień

100%

usunięte znane luki w zabezpieczeniach

Skontaktuj się z nami!

Zadzwoń lub wypełnij poniższy formularz, a my skontaktujemy się z Tobą po przetworzeniu Twojego zgłoszenia.

    Prosimy o podanie szczegółów projektu, czasu trwania, stosu technologicznego, potrzebnych specjalistów IT i innych istotnych informacji.
    Nagraj wiadomość głosową na temat
    projekt, który pomoże nam lepiej go zrozumieć
    W razie potrzeby dołącz dodatkowe dokumenty
    Prześlij plik

    Można załączyć maksymalnie 1 plik o łącznej wielkości 2 MB. Ważne pliki: pdf, jpg, jpeg, png

    Informujemy, że po kliknięciu przycisku Wyślij Innowise będzie przetwarzać Twoje dane osobowe zgodnie z naszą Polityką prywatności w celu dostarczenia Ci odpowiednich informacji.

    Co będzie dalej?

    1

    Po otrzymaniu i przetworzeniu Twojego zgłoszenia skontaktujemy się z Tobą wkrótce, aby wyszczególnić potrzeby projektu i podpisać umowę o zachowaniu poufności, aby zapewnić poufność informacji.

    2

    Po przeanalizowaniu wymagań, nasi analitycy i programiści opracowują projekt z zakresem prac, wielkością zespołu, czasem i kosztami szacunki.

    3

    Umówimy się z Tobą na spotkanie, aby omówić ofertę i dojść do porozumienia porozumienia.

    4

    Podpisujemy umowę i rozpoczynamy pracę nad projektem tak szybko, jak to możliwe.

    Dziękuję!

    Wiadomość została wysłana.
    Przetworzymy Twoją prośbę i skontaktujemy się z Tobą tak szybko, jak to możliwe.

    Dziękuję!

    Wiadomość została wysłana.
    Przetworzymy Twoją prośbę i skontaktujemy się z Tobą tak szybko, jak to możliwe.

    strzałka