IBM Bob

Kontekst w skali mainframe

Jak ustrukturyzowane metadane, słowniki danych i augmentacja modelu dostarczają Bobowi wiarygodny kontekst w dużym środowisku Z.

Kontekst w skali mainframe

Autorzy

IBM Bob Team

Opublikowano

Kategoria

guide

Udostępnij

IBM Bob Premium Package for Z (Bob PP4Z) wnosi specjalistyczną wiedzę o IBM Z bezpośrednio do Boba. PP4Z to funkcja premium zbudowana na agentowej podstawie Boba, zaprojektowana, by wspierać zespoły mainframe w szerszym zakresie prac deweloperskich.

PP4Z jest dostosowany do realiów korporacyjnego środowiska mainframe: dużych aplikacji, ściśle powiązanych systemów, kryptycznych nazw zmiennych, wieloletniej logiki biznesowej i prac modernizacyjnych, które muszą być realizowane bezpiecznie, spójnie i ze świadomością architektury.

Ten artykuł wyjaśnia, dlaczego w dużych środowiskach mainframe uniwersalne narzędzia AI do kodowania osiągają granice swoich możliwości. Omawia, co ustrukturyzowane metadane i słowniki danych zapewniają poza prostym pobieraniem kodu źródłowego, jak augmentacja modelu opiera odpowiedzi na dokumentacji zatwierdzonej przez IBM oraz jak PP4Z łączy rozumowanie Boba oparte na modelu z deterministycznymi narzędziami IBM Z do analizy i walidacji.

Doświadczenie premium dla programowania IBM Z

Nowoczesne programowanie IBM Z obejmuje szeroki zakres działań wykraczających poza pisanie nowego kodu: rozumienie istniejących aplikacji, śledzenie wpływu zmiany na duży system, dokumentowanie wieloletnich reguł biznesowych i podejmowanie decyzji modernizacyjnych, które muszą być zarówno bezpieczne, jak i uzasadnione.

PP4Z jest zaprojektowany, by wspierać ten szeroki zakres. Zbudowany jest na agentowej podstawie Boba i korzysta z jego skills, subagentów i workflows. Następnie rozszerza je o to, czego IBM Z wymaga w szczególności: strukturowaną wiedzę o dużych, wzajemnie powiązanych środowiskach aplikacji, deterministyczne narzędzia analizy dla COBOL, PL/I i Assemblera oraz tryby specyficzne dla Z dostosowane do sposobu pracy zespołów mainframe.

Lokalne i korporacyjne metadane dla głębszego wglądu w aplikacje

Duża aplikacja mainframe może składać się z dziesiątek tysięcy wzajemnie powiązanych programów obejmujących COBOL, PL/I i Assembler, koordynowanych przez harmonogramy batch i zintegrowanych z podsystemami takimi jak Db2, CICS i IMS. Model nie może rozumować w obrębie całego środowiska wyłącznie na podstawie kontekstu. Zanim będzie mógł odpowiedzieć na pytanie, musi ustalić, które programy i relacje mają znaczenie.

Tu właśnie zawodzi zwykłe wyszukiwanie kodu źródłowego. Wyobraź sobie, że prosisz ogólne AI o znalezienie wszystkich programów wywołujących wspólną procedurę przetwarzania dat (rodzaj procedury wywoływanej przez dziesiątki programów w dużym środowisku COBOL). Statyczne wyszukiwanie tekstu znajdzie jawne instrukcje wywołania, ale ominie wywołania dynamiczne, gdzie nazwa programu jest przechowywana w zmiennej i rozwiązywana w czasie wykonywania. Uruchom to samo zapytanie dwa razy, a model może za każdym razem wybrać inną strategię wyszukiwania i zwrócić różne wyniki. Odpowiedź wygląda wiarygodnie, ale nie jest niezawodna.

PP4Z rozwiązuje ten problem, budując strukturowaną, odpytywalną reprezentację aplikacji przed rozpoczęciem rozumowania AI. Lokalne skanery zasilają metadane bezpośrednio z przestrzeni roboczej. To te same skanery, które są używane w kontenerze Z Understand, dostępne bez kroku przesyłania. Metadane rejestrują relacje między programami, hierarchie wywołań, przepływ sterowania, przepływ danych, użycie SQL, definicje transakcji i zależności zasobów w formie, którą model może precyzyjnie odpytywać.

W przypadku analiz na skalę korporacyjną zespoły mogą podłączyć PP4Z do kontenera Z Understand. Daje to Bobowi dostęp do strukturalnych metadanych obejmujących szersze portfolio aplikacji, w tym relacje wykraczające poza lokalne środowisko robocze dewelopera. Deweloperzy mogą wtedy zadawać Bobowi pytania takie jak:

  • Które programy wywołują dany utility?
  • Które programy odczytują daną tabelę SQL?
  • Na co może wpłynąć zmiana rozmiaru tego pola?

Bob odpytuje metadane, by zidentyfikować odpowiednie programy i relacje, a następnie analizuje odpowiedni kod źródłowy tam, gdzie potrzebna jest głębsza analiza. Odpowiedź jest oparta na spójnych, odpytywalnych danych aplikacji, a nie na probabilistycznym przeszukiwaniu plików źródłowych.

Impact Analysis

Augmentacja modelu: wypełnianie luki wiedzy IBM Z

Większość kodu aplikacji IBM Z znajduje się w prywatnych repozytoriach korporacyjnych. Ogólny model nie ma dostępu do kodu źródłowego, konwencji ani kontekstu biznesowego tych systemów. Musi też pracować z mniejszą liczbą publicznych przykładów niż dla popularnych języków i frameworków.

PP4Z odpowiada na ten problem za pomocą augmentacji modelu: wyselekcjonowane materiały referencyjne IBM Z są analizowane, indeksowane i udostępniane Bobowi, tak aby odpowiedzi dotyczące języków i middleware IBM Z były oparte na tym, co IBM faktycznie dokumentuje. Warstwa augmentacji przetwarza dokumentację IBM Z tak, aby deweloperzy mogli praktycznie wykorzystać ją do odpowiadania na konkretne pytania o konwencje wywołań, struktury pól, działanie middleware i udokumentowane przypadki brzegowe – obszary, w których uniwersalny model z ograniczoną znajomością tych środowisk może popełniać trudne do wykrycia błędy.

Praktyczna różnica ujawnia się, gdy deweloper pisze lub modyfikuje kod współpracujący z middleware IBM Z. Uniwersalny model może wygenerować pozornie poprawny składniowo kod, który narusza precyzyjne kontrakty określone przez IBM. Dzięki augmentacji modelu wiedza, z której PP4Z korzysta przy tworzeniu odpowiedzi, opiera się na tym, co IBM faktycznie specyfikuje, a nie na możliwie najlepszym przybliżeniu wynikającym z ograniczonej reprezentacji tych środowisk w danych treningowych.

Augmentacja modelu

AI świadome biznesu dzięki słownikom danych

Niejasne nazwy zmiennych istnieją w każdej bazie kodu, ale aplikacje IBM Z przedstawiają ten problem w innej skali i innej formie. W wielu wieloletnich aplikacjach COBOL logika biznesowa i logika aplikacji są ściśle splecione. Znaczenie jest zakodowane w skrótowych nazwach pól, układach copybook i konwencjach nazewnictwa, które nawarstwiły się przez dziesięciolecia bez spójnego egzekwowania. Weź pod uwagę tę sekcję WORKING-STORAGE SECTION:

01 WK10.
   10 WK10-QUDISP             PICTURE  9(10)
                                               VALUE ZERO.
   10 WK10-QUPIL              PICTURE  9(3)
                                               VALUE ZERO.
   10 WK10-QUDIS              PICTURE  9(15)
                                               VALUE ZERO.
   10 WK10-QUMYD              PICTURE  9(10)
                                               VALUE ZERO.

Cztery akumulatory numeryczne znajdują się w grupie o nazwie WK10. Ani nazwy, ani klauzule PICTURE nie mówią deweloperowi ani modelowi, co każdy z nich reprezentuje. Model bez dodatkowego kontekstu mógłby zauważyć, że WK10-QUDISP i WK10-QUDIS to oba pola numeryczne, prawdopodobnie związane z odległością sądząc po fragmentach QU i DIS, i zgadnąć, że służą podobnym celom. To zgadywanie jest błędne. Jednoznakowa różnica między nimi to cała historia.

Dzięki słownikowi danych wygenerowanemu przez PP4Z rozróżnienie jest wyraźne. WK10-QUDIS to skumulowany całkowity dystans przeleciony przez wszystkich pilotów. Jest inkrementowany podczas przetwarzania zapisów lotów i używany w końcowym obliczeniu średniej. WK10-QUDISP to akumulator dla każdego pilota z osobna. Resetuje się do zera na początku bloku przetwarzania każdego pilota i jest wyświetlany obok identyfikacji tego pilota. Jeden resetuje się dla każdego pilota; drugi nigdy. Wyjaśnienie lub analiza wpływu, która je myli, daje błędną odpowiedź na temat tego, co program robi.

Data Dictionary

PP4Z generuje te wpisy poprzez statyczną analizę sposobu, w jaki każda zmienna uczestniczy w programie. Analiza obejmuje przepływ sterowania, operacje I/O, obliczenia i przemieszczanie danych. Zamiast próbować dokumentować każde pole, identyfikuje zmienne, które najbardziej wpływają na zachowanie programu: te, które po nazwaniu czynią resztę programu czytelną. Wpisy słownika danych mogą być zarządzane lokalnie lub poprzez kontener Z Understand, z obsługą zbiorczego generowania, przeglądu i synchronizacji między zespołami.

Dokumentacja, wyjaśnienie i refaktoryzacja

Sekcje dotyczące metadanych, słownika danych i augmentacji modelu omawiają, jak PP4Z buduje obraz aplikacji. Ta sekcja opisuje, jak deweloperzy wykorzystują ten obraz.

Dokumentacja i ekstrakcja reguł biznesowych tworzą trwałą wiedzę o aplikacji na dużą skalę. Zespoły mogą generować ustrukturyzowaną dokumentację dla programów COBOL, PL/I i Assembler, obejmującą logikę programu, przepływy danych i osadzone reguły biznesowe. Mogą korzystać z lokalnych metadanych skanera dla skoncentrowanego zakresu lub kontenera Z Understand dla całej aplikacji. Reguły biznesowe pojawiają się w ramach tego procesu, dając zespołom technicznym i interesariuszom modernizacji czytelny zapis tego, co robi aplikacja, bez ręcznego śledzenia każdego akapitu.

Documentation

Ta dokumentacja na poziomie programu może być teraz skompilowana w widok aplikacji — ustrukturyzowaną stronę z diagramami i stronami z odsyłaczami obejmującymi całą aplikację. Indywidualna dokumentacja programu odpowiada na pytania dotyczące jednego programu. Widok aplikacji daje zespołom i interesariuszom modernizacji mapę całej aplikacji.

Application View

Kompleksowe wyjaśnienie generuje szczegółowe wyjaśnienie programu z perspektywy najbardziej istotnej dla danego zadania: Architekta, Dewelopera lub Biznesu. PP4Z korzysta z metadanych aplikacji, wpisów słownika danych i warstwy augmentacji modelu, aby oprzeć wyjaśnienie na działaniu programu.

Explain Workflow

Refaktoryzacja korzysta z zebranego kontekstu, by zrestrukturyzować istniejący kod w modularne, wielokrotnego użytku serwisy, zachowując funkcjonalność. Workflow Refactor COBOL or PL/I program identyfikuje kandydatów do ekstrakcji, mapuje ich zależności i prowadzi przez transformację. Daje to zespołom praktyczną ścieżkę modernizacji, która poprawia utrzymywalność bez wymagania pełnego przepisania.

Extraction Candidates

Refactor

Zintegrowane możliwości programistyczne, jakościowe i debugowania

Niektóre części procesu dewelopera mają deterministyczne odpowiedzi: czy kod jest zgodny z regułą, jaką ścieżką podąża dana zmienna przez program lub gdzie sterowanie jest przekazywane po PERFORM. PP4Z obsługuje je za pomocą dedykowanych narzędzi. Model interpretuje wynikowe fakty w kontekście tego, co deweloper stara się osiągnąć.

W trybie niestandardowym PP4Z Z Code, Z Code Scan zapewnia szybką analizę statyczną opartą na regułach dla programów COBOL i PL/I. Informacje zwrotne w stylu lintera wykrywają problemy bez probabilistycznego wnioskowania. Tryb niestandardowy Z Architecture zapewnia analizę przepływu sterowania i danych, w tym jak wykonywanie przebiega przez program i jak dane przekształcają się przepływając między akapitami i copybook. Narzędzia te produkują spójne, powtarzalne wyniki niezależnie od sposobu sformułowania pytania.

Z Code Scan

Model pracuje z danymi wyjściowymi tych narzędzi. Może interpretować wynik skanowania w kontekście proponowanej zmiany lub śledzić przepływ danych, by odpowiedzieć na konkretne pytanie dotyczące zachowania programu. Deterministyczna analiza obsługuje to, co jest oparte na regułach; AI obsługuje to, co wymaga osądu.

PP4Z zawiera również IBM Debug for z/OS i możliwości pokrycia kodu, dzięki czemu zespoły mogą przejść bezpośrednio od programowania wspomaganego AI do walidacji na poziomie wykonania w tym samym środowisku.

Skill Builder dla wiedzy specyficznej dla korporacji

Metadane aplikacji, słowniki danych, augmentacja modelu i deterministyczna analiza stanowią fundament IBM Z dostarczany przez PP4Z. Skill Builder pozwala organizacjom budować na tym fundamencie własną wiedzę.

Dzięki Skill Builder zespoły mogą tworzyć niestandardowe skills, które rejestrują i stosują wiedzę specyficzną dla korporacji, taką jak standardy kodowania, konwencje nazewnictwa, wzorce techniczne, terminologia biznesowa i wskazówki specyficzne dla środowiska. Te skills pomagają Bobowi zrozumieć, jak programowanie jest realizowane w konkretnej organizacji, redukując ogólne założenia i poprawiając trafność odpowiedzi generowanych przez AI. Skills mogą być automatycznie przyswajane i dynamicznie wywoływane, gdy są istotne dla zapytania i kontekstu kodu użytkownika, integrując się bezpośrednio z istniejącymi workflows PP4Z.

Skill Builder

Łącząc to wszystko razem

Skala, gęstość semantyczna i zastrzeżony kontekst sprawiają, że tworzenie oprogramowania na mainframe jest trudne dla uniwersalnych narzędzi AI. PP4Z bezpośrednio odpowiada na każdy z tych czynników: ustrukturyzowane metadane umożliwiają pracę w dużej skali, słowniki danych zapewniają znaczenie biznesowe, augmentacja modelu pozwala uwzględnić dokumentację IBM Z, a deterministyczne narzędzia umożliwiają analizę opartą na regułach.

W tym podejściu rozumowanie AI i deterministyczna wiedza wzajemnie się wzmacniają. Bob zaczyna od strukturalnych metadanych, korzysta z wyselekcjonowanej dokumentacji i interpretuje wyniki narzędzi opartych na regułach. Deweloperzy mogą zbadać te dowody przed podjęciem działań na podstawie odpowiedzi w środowisku krytycznym dla misji.

Żeby zacząć, wybierz jeden program, którego Twój zespół unikał — być może dlatego, że jego cel jest niejasny albo jego logika biznesowa nie była dotykana od lat. Uruchom lokalny skaner, by zbudować jego metadane, i wygeneruj słownik danych dla kluczowych zmiennych. Skorzystaj z workflow wyjaśniania, by zrozumieć, co robi program, a następnie uruchom workflow dokumentowania, by utrwalić tę wiedzę w środowisku roboczym. Stamtąd ta sama podstawa obsługuje analizę wpływu, refaktoryzację i walidację jakości. Zespół zaczyna z programem, który teraz rozumie.