bakalářská práce

Praktické využití systému mainframe

Text práce 1.21 MB

Autor práce: Bc. Adam František Čapka

Ak. rok: 2024/2025

Vedoucí: Ing. Bohuslav Křena, Ph.D.

Oponent: Ing. Jan Fiedor, Ph.D.

Abstrakt:

Tato bakalářská práce se zaměřuje na analýzu architektury mainframe systémů, jejich historický vývoj a praktické využití. Důraz je především kladen na úkoly, které tyto systémy vykonávají. Práce se soustředí na porovnání tradičního a moderního přístupu k databázovým systémům. První přístup využívá JCL (Job Control Language) pro dávkové zpracování úloh, zatímco moderní přístup se soustředí na vývojové nástroje jako Visual Studio a Data Studio. V rámci praktické části práce jsou navrženy a implementovány příklady na platformě IBM Z, které jsou následně podrobeny testování, analýze výkonnosti a porovnání efektivity jednotlivých přístupů. Výsledky jsou zhodnoceny především z hlediska efektivity a praktických možností využití příkladů, stejně jako potenciálu pro jejich další rozvoj.

Klíčová slova:

mainframe, COBOL, JCL, z/OS, IBM Z Xplore, DB2

Termín obhajoby

19.06.2025

Výsledek obhajoby

obhájeno (práce byla úspěšně obhájena)

znamkaDznamka

Klasifikace

D

Průběh obhajoby

Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm D.

Otázky k obhajobě

  1. V kapitole 3.7 diskutujete zadávání uživatelského jména a hesla v jazyce Java pro učely připojení k databázi Db2, kde porovnáváte jméno a heslo zadané uživatelem se jménem a heslem v .env prostředí. Následně použijete údaje z .env prostředí. V kapitole 4.4 pak v kódu na obrázku 4.14 vše diskutujete znova pro variantu v jazyce Python. Můžete vysvětlit účel a přínos tohoto ověřování? V textu uvádíte, že typicky jsou jména a hesla uložena na straně serveru, v tomto případě na straně databázového serveru. Pro úspěšné připojení k tomuto serveru musíte, jak máte v textu uvedeno, zadat správné jméno a heslo, jinak bude připojení odmítnuto. Proč je tedy potřeba simulovat připojení na straně klienta, když stačí nechat uživatele zadat tyto údaje, použít je k připojení k databázi a v případě selhání detekovat, že byly zadány špatné údaje? Tato funkcionalita a její popis zabírá v práci několik stran a tvoří podstatnou část kódu 3. příkladu, nevidím ale žádnou relevantní souvislost s cíli práce.
  2. V kapitole 5 zmiňujete, že pro plnohodnotnější testování času běhu programů by byl vhodnější větší objem dat, ke kterým jste na platformě ZEUS bohužel neměl přístup. Proč nebylo možné si taková data prostě vytvořit vložením nových záznamů do databáze? Proč nešlo testy s většími objemy dat realizovat alespoň pro varianty programů v jazyce Python, kde jste využíval vlastní databázi PostgreSQL a do té bylo určitě možné velké objemy dat vložit a taková data tedy vytvořit?

Jazyk práce

čeština

Fakulta

Ústav

Studijní program

Informační technologie (BIT)

Složení komise

prof. Ing. Lukáš Sekanina, Ph.D. (předseda)
Ing. Marcela Zachariášová, Ph.D. (člen)
Ing. Tomáš Milet, Ph.D. (člen)
Ing. Miloš Musil, Ph.D. (člen)
Ing. Petr Veigend, Ph.D. (člen)

Posudek vedoucího
Ing. Bohuslav Křena, Ph.D.

Přístup studenta k řešení práce nevybočoval z běžných zvyklostí. Lepším skloubením bakalářské práce a povinností v dalších předmětech bylo možné předejít problémům při dokončování práce.

Kritérium hodnocení Slovní hodnocení
Informace k zadání

Toto zadání bylo vytvořeno ve spolupráci se společností Kyndryl, za kterou řešení práce po odborné stránce konzultoval Ing. Aleš Malý. Práce přináší poměrně obecný úvod do systémů mainframe se zaměřením na porovnání tradičního a moderního přístupu v kontextu databázových operací. V průběhu řešení práce se vyskytly problémy s přístupem k databázi prostřednictvím moderního (Python) rozhraní, které nebyly na straně studenta a které se bohužel nepodařilo odstranit ani s pomocí odborného konzultanta. Student proto zvolil alternativní řešení, jehož výsledky však mají omezenou platnost. 

Práce s literaturou

Základní studijní zdroje (včetně výukové platformy IBM Z Xplore) poskytl studentovi odborný konzultant. S ohledem na téma práce z nich většina pochopitelně pochází od IBM, jakožto tvůrce IBM Z mainframů. Student je vhodně doplnil dalšími zdroji, přičemž převzaté texty a myšlenky pečlivě označil.

Aktivita během řešení, konzultace, komunikace

Zde vkládám hodnocení odborného konzultanta, Ing. Malého:

Zpočátku bylo nasazení studenta poměrně velké a během zpracovávání teoretické části proaktivně vyhledával spolupráci a seznamoval se s prostředím. Během letního semestru nicméně došlo k útlumu, až jsem sám inicioval kontakt, abych se ujistil, jak mohu být nápomocen. Z nastalé situace bohužel následně vyplynula potřeba velmi intenzivních setkání. Vzhledem k objektivním potížím (dostupnost různých nástrojů na používaných platformách) jsme museli přistoupit k jiné interpretaci výsledků, než jaká byla původně zamýšlena. S danou situací si student poradil poměrně dobře, nicméně vycházel z předpokladu, že na něj mám víc času, než by reálně kdokoliv měl. Lepší časové plánování při plnění úkolů by bylo jistě ku prospěchu výsledné kvality, ale ani výrazně nevybočuje mimo očekávaný rámec.

Vzhledem ke komplexnosti tématu byl student schopen poměrně dobře nastudovat základní tématiku potřebnou ke zpracování práce, pochopit základní možnosti spouštění programu a zpracování dat v systému Db2 na z/OS a přenesení dat/programu mimo mainframe.

Aktivita při dokončování

Pro pohodlnou diskuzi měla být technická zpráva dokončena minimálně o týden dříve, ale díky zvýšenému úsilí na obou stranách je výsledná technická zpráva nakonec v dobrém stavu. 

Publikační činnost, ocenění
Výsledný počet bodů navržený vedoucím: 75

Známka navržená vedoucím: C

Posudek oponenta
Ing. Jan Fiedor, Ph.D.

Celkově jde o průměrně obtížnou práci, jenž mohla a měla být vypracována důkladněji, a to jak po obsahové stránce (více příkladů, názornější popis, rozsáhlejší evaluace), tak po formální stránce (chybějící provázanost textu s obrázky a kódem, neustále se měnící stylizace textu).

Kritérium hodnocení Slovní hodnocení Body
Náročnost zadání

Stupeň hodnocení: průměrně obtížné zadání

Práce se zabývá návrhem sady příkladů pro práci s databází Db2 na systémech mainframe ilustrující rozdíly mezi tradičním přístupem využívajícím jazyky jako je COBOL nebo JCL a moderním přístupem založeným na programech v jazyce Python.

Ačkoliv je implementace příkladů v jazycích COBOL a JCL náročnější na realizaci, vytvořené programy jsou velmi jednoduché a nevyžadují nikterak hluboké znalosti těchto jazyků.

Prezentační úroveň technické zprávy

Prezentační úroveň technické zprávy je slabší. Celková logická struktura práce je v pořádku, řada kapitol je ovšem náročná na pochopení z několika důvodů:

  1. Drtivá většina obrázků a kódu není z textu nijak odkazována, prostě se v práci objevují a je na čtenáři, aby pochopil k jaké části textu (pokud vůbec nějaké) se daný obrázek nebo kód váže.
  2. Některé popisy jsou vysloveně matoucí nebo nezapadají do obsahu dané kapitoly. Příkladem je třeba ukázkový postup práce s nástrojem SPUFI na straně 23, který má (pravděpodobně) ilustrovat použití tohoto nástroje v kontextu konkrétního příkladu, jenž ale není znám. Navíc mezi kroky 4 a 5 chybí krok, jenž si má asi čtenář domyslet z obrázku 3.2, který pravděpodobně ukazuje výsledek kroku 4 a některá z voleb v tomto obrázku má pravděpodobně vést ke kroku 5.
  3. Popisy příkladů v kapitole 4 jsou často velmi strohé. U práce, jenž se zaměřuje na vysvětlení rozdílů mezi tradičními a moderními přístupy bych čekal pravý opak. Příkladem je třeba vysvětlení využití JCL u příkladu 2 na straně 49, kde je zdůrazněno hned na začátku, že budou jednotlivé kroky překladu zopakovány, ale následuje jen posloupnost výpisů kódu a obrázků s výstupy bez jakéhokoliv komentáře.

Umístění nebo existence některých podkapitol je navíc problematická. Například kapitola 3.6 se zabývá překladem zdrojového kódu, ovšem schéma celého procesu je uvedeno až na úplném konci. Čtenář by očekával, že tímto schématem se začne a až poté se budou do podrobna probírat jednotlivé části tohoto procesu.

Kapitola 3.5 má popisovat hlavní komponenty Db2, ovšem ty jen vyjmenuje v jedné větě a v následujících 2 odstavcích, tvořících zbytek kapitoly, rozebírá pouze prostředí DSN. Tato kapitola působí spíše jako draft větší plánované kapitoly nebo zbytkový text pro přesunu textu do jiných kapitol.

60
Formální úprava technické zprávy

Práce je psaná v češtině a po gramatické stránce obsahuje minimální počet chyb, často se ovšem vyskytují věty začínající malým písmenem. Typografická stránka práce je ovšem velmi slabá. Na řadě míst v rámci kapitol se vyskytují velké plochy volného místa (více než polovina prázdné stránky) jen aby se na další stránce pokračovalo dalším odstavcem textu. Řada kódu vloženého jako obrázek je zalomena na další stránku. Očislované a neočíslované seznamy použivají co chvíli jinou stylizaci (ruzné styly definice pojmů, ruzné oddělovače od jejich vysvětlení, atd.). Naopak v situacích, kdy je potřeba stylisticky oddělit pojem od standardního textu, jako např. při zmínce o položce i, jsou tyto pojmy vysázeny jako standardní text a težce pro čtenáře rozeznatelné od standardního textu kolem.

65
Realizační výstup

Výsledkem práce jsou 3 dvojice celkem jednoduchých příkladů demonstrujících práci s databází Db2, resp. PostgreSQL. Důvodem využití databáze PostgreSQL u moderních přístupů byl problém s nedostatečnými oprávněními pro připojení k databází Db2, jenž ovšem nemohl student předpokládat ani sám vyřešit.

Ačkoliv jsou příklady plně funkční, všechny jsou velmi jednoduché a demonstrují jen základní práci s databázemi, což je i pro bakalářskou práci trochu málo. Očekával bych alespoň pokrytí základních CRUD operací s databází, ne jen 3 velmi podobné příklady dotazování (čtení) nad databází.

Jelikož všechny příklady realizují jednoduché dotazování nad databází, očekával bych také v části věnované testování výkonnostních parametrů evaluaci závislosti velikosti databáze na časové náročnosti vykonávání uvedených příkladů. Práce tuto evaluaci zmiňuje jako práci do budoucna, nenašel jsem ovšem důvod proč ji nešlo realizovat již v rámci této práce.

70
Využitelnost výsledků

Vytvořené příklady jsou velmi jednoduché a demonstrují pouze základní dotazování nad databází. Výsledky porovnání tradičního a moderního přístupu tedy nemohou být na takto malém vzorku pokládány za příliš relevantní. Popis jednotlivých příkladu není pro čtenáře jednoduše pochopitelný, je tedy diskutabilní do jaké míry usnadní čtenáři práce proniknout do této problematiky.

Rozsah splnění požadavků zadání

Stupeň hodnocení: zadání splněno

Zadání bylo splněno, ačkoliv některé body zadání byly splněny velmi minimalisticky (jen 3 jednoduché příklady pro porovnání a otestování výkonnostních parametrů).

Rozsah technické zprávy

Stupeň hodnocení: je v obvyklém rozmezí

Práce počtem stran přesahuje obvykle rozmezí, důvodem je ovšem velké množství obrázků a kódu a také volného místa mezi různými částmi textu v rámci jednotlivých kapitol.

Práce s literaturou

Práce cituje velké množství zdrojů, je ovšem nutno zdůraznit, že velká řada z těchto zdrojů jsou manuály k jednotlivým technologiím a jiné online zdroje. Jen minimum zdrojů jsou knihy nebo odborné publikace. Všechny zdroje jsou v textu práce řádně citovány.

80
Otázky k obhajobě:
  1. V kapitole 5 zmiňujete, že pro plnohodnotnější testování času běhu programů by byl vhodnější větší objem dat, ke kterým jste na platformě ZEUS bohužel neměl přístup. Proč nebylo možné si taková data prostě vytvořit vložením nových záznamů do databáze? Proč nešlo testy s většími objemy dat realizovat alespoň pro varianty programů v jazyce Python, kde jste využíval vlastní databázi PostgreSQL a do té bylo určitě možné velké objemy dat vložit a taková data tedy vytvořit?
  2. V kapitole 3.7 diskutujete zadávání uživatelského jména a hesla v jazyce Java pro učely připojení k databázi Db2, kde porovnáváte jméno a heslo zadané uživatelem se jménem a heslem v .env prostředí. Následně použijete údaje z .env prostředí. V kapitole 4.4 pak v kódu na obrázku 4.14 vše diskutujete znova pro variantu v jazyce Python. Můžete vysvětlit účel a přínos tohoto ověřování? V textu uvádíte, že typicky jsou jména a hesla uložena na straně serveru, v tomto případě na straně databázového serveru. Pro úspěšné připojení k tomuto serveru musíte, jak máte v textu uvedeno, zadat správné jméno a heslo, jinak bude připojení odmítnuto. Proč je tedy potřeba simulovat připojení na straně klienta, když stačí nechat uživatele zadat tyto údaje, použít je k připojení k databázi a v případě selhání detekovat, že byly zadány špatné údaje? Tato funkcionalita a její popis zabírá v práci několik stran a tvoří podstatnou část kódu 3. příkladu, nevidím ale žádnou relevantní souvislost s cíli práce.
Výsledný počet bodů navržený oponentem: 68

Známka navržená oponentem: D

Odpovědnost: Mgr. et Mgr. Hana Odstrčilová