IBM Bob

Praca z IBM i z IBM Bob

Krótki przegląd platformy, codzienne problemy, jak IBM Bob wpisuje się w workflow dewelopera IBM i dzisiaj i dokąd zmierza dalej.

Praca z IBM i z IBM Bob

Autorzy

Peter MaTim Rowe

Opublikowano

Kategoria

announcement

Udostępnij

Praca z IBM i z IBM Bob

Jeśli nigdy nie napisałeś linii RPG, IBM i jest jedną z najbardziej fascynujących platform do produkcji na dużą skalę. Jeśli napisałeś kilka milionów linii, już wiesz, gdzie kryją się codzienne problemy. Ten post obejmuje obie rzeczy: techniczny zarys tego, co czyni IBM i unikalnym, gdzie faktycznie pojawia się tarcie modernizacji, jak IBM Bob wpisuje się w workflow IBM i dzisiaj, kroki konfiguracji, aby rozpocząć i co dalej na roadmap dla platformy.

Czym właściwie jest IBM i

IBM i nie jest systemem operacyjnym legacy w sensie "powinniśmy to przepisać". To zintegrowana platforma — OS, baza danych, model bezpieczeństwa i runtime są zaprojektowane i dostarczane jako jedna rzecz — która generuje przychody dla banków, ubezpieczycieli, szpitali, producentów i firm logistycznych od dekad. Powinniśmy więc nazwać to legendarnym.

Kilka szczegółów, które zazwyczaj zaskakują deweloperów widzących to po raz pierwszy:

  • Single-level storage. RAM i dysk dzielą jedną wirtualną przestrzeń adresową. Object pointers utrzymują się między restartami. OS traktuje pamięć i storage jako jedną warstwę i stronicuje między nimi transparentnie. Większość nowoczesnych systemów wciąż to nadrabia.
  • TIMI, Technology Independent Machine Interface. Binaria RPG skompilowane na sprzęcie z lat 90. działają bez modyfikacji na obecnych chipach POWER. OS retransluje pod maską na nowy zestaw instrukcji. Najbliższym nowoczesnym analogiem jest WebAssembly, dekady wcześniej.
  • OS oparty na obiektach. Programy, pliki, kolejki i uprawnienia są typowanymi obiektami z atrybutami — nie plikami z dolepionymi metadanymi. Bezpieczeństwo jest egzekwowane na poziomie obiektu.
  • Db2 for i jest zintegrowany, nie dolepiony. SQL i natywny record-level I/O sięgają tych samych danych. 40-letni plik fizyczny może być zapytywany przez nowoczesny widok SQL bez projektu migracji.
  • Source może żyć na systemie lub w Git — twój wybór. Historycznie, source IBM i był przechowywany jako members wewnątrz source physical files (QSYS), kompilowany bezpośrednio na systemie. Platforma początkowo pozycjonowała LPAR jako źródło prawdy. Ale IBM i ewoluował: kompilatory i OS teraz w pełni wspierają nowoczesne workflow skoncentrowane na Git, IFS stream files i lokalny rozwój, jeśli wybierzesz. Wiele shopów nadal używa bibliotek QSYS, ale platforma daje ci opcje.

Platforma wspiera również nowoczesne wzorce dostarczania out of the box: natywne silniki REST API jako część OS, chmurę hybrydową przez Power Virtual Server i wnioskowanie AI działające na tym samym sprzęcie co obciążenia transakcyjne. RPG, COBOL, CL i SQL współistnieją z praktykami rozwoju, których reszta twojej organizacji inżynierskiej już używa.

Platforma nie jest problemem. Tarcie jest wokół niej.

Gdzie pojawia się tarcie

Cztery wzorce pojawiają się w prawie każdym shopie IBM i. Żaden z nich nie dotyczy samego RPG — język jest w porządku — ale kontekstu wokół kodu, który nigdy nie został zapisany, i sposobu, w jaki platforma przechowuje i udostępnia ten konteks.

  • Kontekst niejawny, by design. Działający program RPG może obejmować cztery generacje języka w jednym source — RPG II, RPG IV, /COPY copybooks (współdzielone deklaracje włączane w czasie kompilacji) i free-format procedures — ze składnią wrażliwą na kolumny i numerowanymi indicators (*IN01*IN99) wykonującymi pracę, którą przepływ sterowania strukturalnego i nazwane boolean'y robią w większości innych języków. Składnię można nauczyć się w tydzień; konwencje i reguły biznesowe wokół niej żyją w głowach seniorskich inżynierów.
  • Zmiana nigdy nie jest lokalna. Typ pola nie jest deklarowany w programie, który go używa — jest deklarowany w samej tabeli bazy danych, w osobnym pliku source (member DDS). Każdy program, który czyta lub zapisuje tę tabelę, dziedziczy te definicje po prostu przez odniesienie do pliku na górze. Więc wydłużenie kolumny z 10 do 12 cyfr nigdy nie jest edycją jednego programu: rozprzestrzenia się przez każdy program, który dotyka pliku, a lista tych programów jest rzadko gdziekolwiek zapisana. Każda zmiana w krytycznym obciążeniu niesie więc ryzyko ciągłości, a modernizacja stoi w miejscu.
  • Source rzadko żyje tam, gdzie nowoczesne narzędzia go oczekują. Kanoniczna kopia programu jest na systemie, nie w repozytorium Git na laptopie. Czytanie kodu, który ktoś inny napisał piętnaście lat temu, zaczyna się od znalezienia go na LPAR, eksportu i potem decyzji, czy eksport jest kanoniczną kopią — workflow, do którego każde narzędzie zakładające lokalne drzewo robocze musi być dostosowane, zanim zasłuży na swoje miejsce.
  • RPG fixed-form nie wygląda jak nowoczesny kod. Większość produkcyjnego RPG została napisana w fixed-form: składnia wrażliwa na kolumny, gdzie operation codes żyją w kolumnach 26–35, Factor 1 w 12–25, a komentarze mieszczą się dopiero po kolumnie 80. Czyta się to jak język assembly dla każdego wyszkolonego na Python lub JavaScript. IBM wymyślił język na nowo z całkowicie free-format RPG (RPG IV, później po prostu "RPG"), który wygląda i czuje się jak nowoczesny język proceduralny — strukturalne bloki, nazwane zmienne, standardowe wyrażenia. Luka składniowa jest realna, ale sam język ewoluował. Tarcie polega na tym, że dekady działającego kodu wciąż są w fixed-form, a przepisanie go niesie ryzyko, którego większość shopów nie może uzasadnić.

Co Bob robi z aplikacją RPG dla IBM i

Skieruj Bob na program RPG i zacznij w trybie Ask:

  • "Przeprowadź mnie przez to, co ten program robi i jakich plików dotyka."
  • "Gdzie jest ustawione CUSTNO i które programy je czytają po tym?"
  • "Co by się zepsuło, gdybym zmienił długość tego pola?"

Przełącz się na tryb Plan, gdy masz zmianę na myśli: konwersję free-format, migrację SQL z record-level I/O lub rozbicie monolitu na moduły. Bob produkuje plan, dotknięte zależności i kroki, które zamierza podjąć, zanim jakikolwiek plik zostanie zmodyfikowany.

Przełącz się na tryb Code, aby zastosować zmianę. Bob:

  • Konwertuje RPG fixed-format na free-format używając powtarzalnych wzorców, plik po pliku.
  • Migruje record-level I/O do embedded SQL tam, gdzie jest to odpowiednie.
  • Generuje zestawy testów RPGUnit przeciwko istniejącym procedures, aby konwersja była weryfikowalna, nie tylko kompilowalna.
  • Produkuje dokumentację w prostym języku i diagramy Mermaid ze source — przeszukiwalne, udostępniane artefakty, które przeżywają każdego pojedynczego inżyniera.

Ten sam workflow obsługuje RPG II/III/ILE, CL, DDS, SQL i COBOL, więc nowy pracownik czytający program napisany przed jego urodzeniem nie jest już blokowany przez składnię.

Przygotuj swój source IBM i dla Bob

Bob dzisiaj pracuje przeciwko source na twoim lokalnym komputerze. Konfiguracja jest krótka:

  1. Pobierz swój source. Wyeksportuj swoje members RPG, RPGLE, CL, DDS i SQL do lokalnego folderu. Code for i Project Explorer dokumentuje eksport z physical file members: migrate source
  2. Otwórz folder w Bob. File → Open Folder na katalogu głównym source. Bob indeksuje codebase przy pierwszym otwarciu.
  3. Zainstaluj toolchain IBM i. Z panelu Extensions dodaj IBM i Development Pack (bundle Code for i) i renderer Mermaid dla diagramów, które Bob produkuje.
  4. Rozpocznij sesję w trybie Ask. Wybierz pojedynczy program — idealnie taki, którego nikt w zespole nie rozumie w pełni — i poproś Bob, aby go wyjaśnił. To najszybszy sposób, aby zobaczyć, czy Bob zasługuje na swoje miejsce w twoim workflow.

Jeśli twój zespół pochodzi z SEU lub RDi, migracja to głównie krok eksportu powyżej plus instalacja rozszerzenia. Powierzchnia edycji to nowoczesne środowisko rodziny VS Code z podświetlaniem składni, uzupełnianiem kodu i workflow AI opisanym powyżej; numery linii są nadal dostępne dla inżynierów, którzy ich chcą.

Co dalej dla Bob na IBM i

Niedawno ogłoszony Premium Package for i zapewnia natywne i zoptymalizowane doświadczenie dla zespołów deweloperskich IBM i. Premium Package for i będzie ogólnie dostępny 24 czerwca.

Premium Package for i. Z GA 24 czerwca Bob połączy się bezpośrednio z twoim IBM i. Z pojedynczej sesji czytasz source members bezpośrednio z QSYS, edytujesz je tym samym workflow powyżej i uruchamiasz cykle compile i testów bezpośrednio na systemie. Obok łączności Bob otrzymuje wbudowane skills i workflow dostrojone do rozwoju IBM i — konwersja fixed-to-free, refactoring, generowanie dokumentacji — więc początkowy prompt na codebase RPG ląduje bardziej bezpośrednio na konwencjach IBM i out of the box. Konkretnie oznacza to:

  • Jedna sesja Bob połączona z LPAR deweloperskim; bez oddzielnej pętli export-edit-import.
  • Błędy compile i wyniki testów z IBM i wracają do rozmowy, którą Bob już prowadzi.
  • Wbudowane skills i workflow dla wzorców refactoring, konwersji i generowania testów, które shopy IBM i wykonują wielokrotnie.

Dalej — SDLC end-to-end. Trzy wątki są w aktywnym projektowaniu dla przyszłych wersji:

  • Integracja DevOps. Bob uczestniczący w build, deploy, monitor i CI/CD dla obciążeń IBM i — uruchamiając przejście regresji przeciwko testowej LPAR, promując zmianę przez środowiska i przenosząc problem runtime z powrotem do sesji.
  • Wydajność SQL. Analiza danych i optymalizacja indeksów jako możliwość pierwszej klasy, oprócz wzorców migracji embedded-SQL, które Bob już produkuje dzisiaj.
  • IBM i Knowledge Assistant. Odpowiedzi oparte na wyszukiwaniu przez codebase, dokumentację projektową i tickety — aby kontekst żyjący poza source był osiągalny z tej samej rozmowy.

Dla zespołu adoptującego Bob dzisiaj, workflow plików lokalnych powyżej jest właściwym punktem startowym; elementy w tej sekcji opisują, jak ten workflow skraca się i rozszerza w miarę dojrzewania oferty IBM i.

Referencje klientów

Zespoły w opiece zdrowotnej, rolnictwie, IT przedsiębiorstwa i logistyce używają Bob przeciwko produkcyjnym codebasom IBM i dzisiaj:

  • MEDHOST. Aplikacje zdrowotne obejmujące wiele generacji RPG przez deployments szpitalne w USA. Zespół używa Bob do analizy wpływu i konwersji fixed-to-free oraz do onboardingu nowszych deweloperów na programy, których oryginalnych autorów już dawno nie ma.
  • NI+C. Japoński integrator przedsiębiorstwa z programami RPG, które działały bez zmian przez ponad dekadę bez przetrwałej dokumentacji projektowej. Bob wyprodukował dokumentację projektową i diagramy Mermaid wystarczająco dokładne, że inżynierowie, którzy wcześniej odbijali się od asystentów AI, kontynuowali używanie go do prawdziwej pracy.
  • Heartland Co-op. Kooperatywa rolnicza z siedzibą w Iowa streamująca dane z czujników IoT w czasie rzeczywistym do swojego środowiska IBM i do monitorowania jakości ziarna i sprzętu. Bob pomaga deweloperom rozumować przez współzależności między pipeline IoT, księgowością ziarna i podstawowymi systemami operacyjnymi, i skraca ramp-up dla nowych zatrudnień.
  • Carreras Grupo Logístico. Jeden z pierwszych przedsiębiorczych adoptujących Bob w Hiszpanii, używający go do wyjaśniania logiki programów legacy, generowania dokumentacji i refactoringu przez moduły platformy logistycznej.

Wspólny wątek między wszystkimi czterema jest taki sam: istniejąca codebase IBM i pozostaje na miejscu, a praca wyjaśniania, konwersji i dokumentacji działa obok systemu produkcyjnego, a nie przed projektem zastępczym.

Zacząć

  • Rozpocznij bezpłatny trial
  • Pobierz jeden program RPG do lokalnego folderu i otwórz go w Bob.
  • W trybie Ask poproś o walkthrough i diagram Mermaid jego przepływu danych.

Ta sesja — jeden program, jedna rozmowa — jest najkrótszą ścieżką do prawdziwej odpowiedzi, czy Bob pasuje do sposobu, w jaki pracuje twój zespół.