VM.PL

Migracja z RPG do Java w systemach ERP: Korzyści, wyzwania i najlepsze praktyki

/ 24.11.2023
Java

Jeśli przez wiele lat pracowałeś w systemie ERP na platformie zbudowanej w kodzie RPG, migracja na inną technologię może okazać się prawdziwym wyzwaniem. Z pewnością wiesz, czym jest przestarzały system i choć dla wielu jest to określenie negatywne, tak naprawdę niestandardowe procedury i funkcje udoskonalane przez lata zapewniły Twojej firmie przewagę konkurencyjną. Jednak czas mija i warto przemyśleć jak zmodernizować system tak by przenieść obecną logikę na język utrzymywany przez nowe pokolenie. 

Transformacja cyfrowa sprawiła, że liderzy biznesowi muszą znaleźć skuteczne sposoby modernizacji starszych systemów.  Według danych z 2023 roku określonych przez Government Accountability Office (GAO), każdego roku rząd USA wydaje ponad 100 miliardów dolarów na technologie informacyjne. Większość tej kwoty zostanie wykorzystana do obsługi i konserwacji starzejących się systemów. Jednak są one kosztowne w utrzymaniu i podatne na ataki hakerów. W sektorze prywatnym, firmy amerykańskie w 2018 roku wydały prawie 600 miliardów dolarów na utrzymanie starszych systemów. 

"Dla wielu organizacji starsze systemy są postrzegane jako hamujące inicjatywy biznesowe i procesy biznesowe, które się na nich opierają. Gdy osiągnięty zostanie punkt krytyczny, liderzy aplikacji muszą zwrócić się ku modernizacji aplikacji, aby móc usunąć przeszkody". Stefan Van Der Zijden, wiceprezes ds. analiz w firmie Gartner 

Migracja starszych aplikacji na nowsze platformy tchnie nowe życie w firmę, podczas gdy utrzymywanie przestarzałego oprogramowania oznacza marnowanie zasobów na aktualizacje w celu naprawienia problemów z kompatybilnością.  Problemy te mogą zwiększyć koszty i postawić firmę w niekorzystnej sytuacji w stosunku do konkurencji, ostatecznie uniemożliwiając osiągnięcie pełnego potencjału. Dlatego tak ważne jest, aby firmy priorytetowo traktowały migrację starszych systemów. 

Modernizacja aplikacji oznacza również dostarczenie lepszej wartości biznesowej oraz zachowanie elastyczności i odporności na ryzyko. IBM obecnie zachęca firmy do przenoszenia kodu starszej technologii RPG do Java/J2EE, dlatego wiele firm szuka sposobów ułatwienia migracji. 

W tym artykule poznamy korzyści, wyzwania i najlepsze praktyki migracji z RPG do Javy, które warto wziąć pod uwagę w ramach transformacji technologicznej. Ułatwi to podejmowanie świadomych decyzji, które są zgodne zarówno z bieżącymi potrzebami firmy, jak i przyszłymi aspiracjami rozwoju. 

Czym jest RPG? 

RPG, co jest skrótem od Report Program Generator, to język programowania związany głównie z aplikacjami biznesowymi i tworzeniem oprogramowania dla przedsiębiorstw. Został opracowany przez IBM w latach 50. dla serii minikomputerów System/3x, a później ewoluował w celu obsługi większych systemów mainframe, takich jak IBM System/360 i AS/400. W przeszłości RPG odgrywał znaczącą rolę w tworzeniu oprogramowania dla przedsiębiorstw, zwłaszcza w kontekście systemów IBM klasy midrange i mainframe. Jego mocną stroną jest zdolność do wydajnej obsługi zadań skoncentrowanych na danych, dzięki czemu dobrze nadaje się do aplikacji wymagających rozległego przetwarzania baz danych i plików

Dlaczego zaistniała potrzeba zmian z RPG na inną technologię? 

Głównym powodem migracji RPG na inną, nowszą technologię jest brak programistów na rynku specjalizujących się w tym języku, którzy mogliby utrzymywać i rozwijać kod. RPG jest zastrzeżonym językiem, który jest używany tylko w linii produktów IBM dla komputerów klasy średniej, w tym w systemie operacyjnym IBM. Oznacza to, że programiści, którzy chcą pracować z RPG, muszą posiadać specjalistyczną wiedzę na temat sprzętu i oprogramowania IBM. Znalezienie inżynierów, którzy zastąpią kogoś w zespole, będzie wymagało czasu i wysiłku, z którym zespół rekrutacyjny może sobie nie poradzić. Co więcej, zwiększy to koszty budżetu przeznaczonego na utrzymanie oprogramowania. Przejście na nowoczesne stosy technologiczne pozwoli ci wykorzystać nadchodzące technologie i wykorzystać zaawansowane technologie.  

Obecnie firmy, które wcześniej stworzyły systemy ERP, używając języka RPG lub COBOL będą musiały teraz, za rok, czy za 2 lata go przepisać, ponieważ nie są to języki przyszłościowe. Niekoniecznie to musi być Java, to mogą być inne nowoczesne technologie, które są rozwijane i mają wielu programistów. 

Dlaczego migrować do Java? 

Java to popularny język programowania, który jest szeroko stosowany w tworzeniu oprogramowania dla przedsiębiorstw. Przede wszystkim jest to znana i rozwijana technologia, przemyślana przez najlepszych programistów na świecie. Ma kilka zalet, które czynią go doskonałym wyborem do tworzenia skalowalnych, elastycznych i zintegrowanych aplikacji. 

  • Skalowalność. Aplikacje Java można łatwo skalować poziomo, dodając więcej serwerów do systemu. Umożliwia to obsługę dużej ilości ruchu i danych bez uszczerbku dla wydajności.  
  • Elastyczność. Java jest obiektowym językiem programowania, który obsługuje dziedziczenie, polimorfizm i hermetyzację. Ułatwia to tworzenie kodu modułowego, wielokrotnego użytku i łatwego w utrzymaniu.  
  • Wielowątkowość pozwala programistom tworzyć aplikacje, które mogą wykonywać wiele zadań jednocześnie. 
  • Doskonałe możliwości integracji. Aplikacje Java można łatwo zintegrować z innymi technologiami i platformami, takimi jak bazy danych, usługi internetowe i systemy przesyłania wiadomości. Umożliwia to tworzenie złożonych, rozproszonych aplikacji, które mogą płynnie komunikować się ze sobą. 

Jakie są wyzwania związane z migracją z RPG do Javy?  

Migracja z RPG do Javy to złożony proces, a programiści mogą napotkać różne wyzwania. Oto kilka typowych problemów, które mogą stanowić trudność podczas migracji: 

  • Brak dokumentacji 

Najczęściej brakuje dokumentacji, bo programy RPG dla ERP były pisane na najczęściej w latach osiemdziesiątych lub dziewięćdziesiątych i wtedy nie przewidywało się faktu, że za ileś lat będzie konieczne przepisanie tego kodu. Powoduje to sytuację, że chcąc poznać dokładnie logikę aplikacji, trzeba wnikliwie się “wczytać” w ten kod i jego reguły. 

  • Niedocenianie złożoności 

 RPG i Java mają różne paradygmaty i struktury. Niedoszacowanie złożoności migracji może prowadzić do opóźnień projektu i nieoczekiwanych wyzwań. Przed rozpoczęciem prac należy dokładnie przeanalizować istniejącą bazę kodu RPG i zrozumieć jej zawiłości.  

Poniżej na grafice widać definicję stack’a w RPG, gdzie wcześniej zdefiniowano dodawanie, modyfikacje i manualne usunięcie rekordów.  

W Javie już istnieje taka implementacja i mamy wszystkie metody już dostępne bezpośrednio z biblioteki, co ułatwia i przyśpiesza proces programowania.

  • Brak programistów rozumiejących technologię RPG 

Na rynku obecnie jest coraz mniej specjalistów czynnych zawodowo, którzy zajmują się kodowaniem RPG. Brak pomocy takiego specjalisty może utrudniać zrozumienie logiki aplikacji. Jeszcze trudniej jest wtedy, gdy kod jest wybitnie niestandardowy i brakuje dokumentacji. 

  • Brak szczegółowego planowania 

Planowanie ma kluczowe znaczenie dla udanej migracji. Bez szczegółowego planu można przeoczyć krytyczne aspekty, co prowadzi do problemów na późniejszym etapie procesu. Migracja powinna być zaplanowana zwinnie, tak by ustalić jasne priorytety, ale też przydzielić na każdy z nich wystarczającą ilość czasu i zasobów. 

  •  Zaniedbanie jakości kodu 

 Unikaj prostego tłumaczenia kodu RPG na Javę bez uwzględnienia jakości kodu.  Zaniedbanie jakości może skutkować trudniejszym w utrzymaniu i mniej wydajnym systemem.  

Kiedy programista przenosi całą logikę 1:1, nie tylko kod się przedłuża i jest nieczytelny dla innych programistów oraz dużo wolniejszy, a to przecież to mija się z celem. Jeśli zaniedbamy proces zrozumienia zależności, to zła migracja może spowodować, że program trwający 15 minut w RPG, w Javie może trwać kilkakrotnie dłużej. 😨 

  • Czas migracji 

Jeśli mamy określony czas migracji na przeniesienie określonej funkcjonalności, wtedy nie ma wiele czasu na zrozumienie logiki RPG. Trzeba skorzystać z pomocy zespołu doświadczonych specjalistów, którzy migrowali dziesiątki lub setki podobnych aplikacji, tak żeby użyć odpowiedniej funkcji Java, lecz nie powodować restrukturyzacji kodu. 

  • Niewystarczające testowanie 

Migracja programowania to jest jedna część działań, a prawie tyle samo zajmuje potem testowanie i poprawki.  Testowanie jest krytyczną fazą procesu migracji, a jego brak może prowadzić do błędów, problemów z wydajnością i nieoczekiwanego zachowania. W tym celu trzeba zainwestować w kompleksowe testy, w tym testy automatyczne, jednostkowe, testy integracyjne i testy systemowe. Jeśli programista sprawdzi, że wynik testów jest logiczny, w kolejnym etapie konsultant ERP wykonuje testy manualne, który zna wszystkie procesy całego systemu. Jeśli znajdzie błędy musi je szczegółowo opisać programistom, tak by łatwiej było wykonać poprawki. 

  •  Ignorowanie kwestii wydajności  

 RPG i Java mają różne stopnie wydajności, jeśli to zignorujemy podczas migracji to może spowodować, że system nie spełni oczekiwań wydajnościowych. Należy monitorować wydajność podczas całego procesu migracji i eliminować wszelkie wąskie gardła.  

  • Ignorowanie najlepszych praktyk bezpieczeństwa:  

 Bezpieczeństwo powinno być najwyższym priorytetem podczas migracji, tak by nowy system napisany w Javie był odporny na luki i zagrożenia.  Należy wziąć pod uwagę takie aspekty jak uwierzytelnianie, autoryzacja czy szyfrowanie danych.  

  • Kwestia szkolenia  

 Przejście z RPG na Javę wymaga zmiany umiejętności i sposobu myślenia.  Dlatego w ramach code review doświadczeni Java deweloperzy udzielają wskazówek dotyczących zrozumienia składni projektu RPG. Następnie trzeba ćwiczyć proces migracji, począwszy od prostych do bardziej skomplikowanych aplikacji oraz zapoznać się z wewnętrzną dokumentacją. 

  • Zaangażowanie interesariuszy 

Bardzo ważna jest komunikacja z klientem, ponieważ gdy jej zabraknie może to skutkować nieporozumieniami i rozbieżnościami między migrowanym systemem a wymaganiami biznesowymi Co więcej klienci często zatrudniają doświadczonych programistów RPG, którzy pracowali przy starszym systemie, przez co kontakt z nimi jest najlepszym sposobem na zrozumienie logiki aplikacji. Koniecznie też trzeba informować interesariuszy o przebiegu prac, zbierać ich opinie i upewniać się, że migracja spełnia ich oczekiwania. 

  • Przyspieszanie procesu 

Migracja z RPG do Javy jest dużym przedsięwzięciem, a pośpiech może prowadzić do błędów i niedopatrzeń. Poświęć czas na dokładne zaplanowanie, staranne wykonanie i upewnij się, że każda faza została pomyślnie zakończona. 

Podsumowanie 

 Migracja z RPG do Javy to nie tylko aktualizacja techniczna; stanowi ona strategiczny krok w kierunku przyszłościowych systemów ERP, dzięki czemu mogą rozwijać się w dynamicznym i ewoluującym krajobrazie przedsiębiorstw. Jest to przyszłościowa decyzja, która wykracza poza sferę techniczną, przyczyniając się do zwinności, konkurencyjności i długoterminowego sukcesu organizacji. 

Jeśli chciałbyś zmodernizować swój system ERP, skontaktuj się z nami. Chcemy być Twoim partnerem w tej kwestii, dostarczając narzędzia i usługi do konwersji kodu RPG do Java. Dzięki temu zachowasz swoją niestandardową logikę aplikacji oraz rozwiniesz nowe możliwości biznesowe. 

 

Design, Development, DevOps czy Cloud - jakiego zespołu potrzebujesz, aby przyspieszyć pracę nad swoimi projektami?

Porozmawiaj ze specjalistami, aby porozmawiać o swoich potrzebach.

Jakub Orczyk
Członek zarządu / Dyrektor sprzedaży
VM.PL
Zamów bezpłatną konsultację
Jakub Orczyk

Umówmy się na spotkanie!

Z przyjemnością odwiedzimy Cię w Twoim biurze. Pozwoli nam to osobiście przedyskutować możliwości i korzyści współpracy.

Jeśli chcesz się z nami umówić na spotkanie, zostaw wiadomość. Skontaktujemy się z Tobą w celu ustalenia dogodnego terminu.

* Prosimy wypełnić wszystkie obowiązkowe pola.
Umówmy się na spotkanie!